From 35509dbd7091b3fa97c9dd6a4b73a546fec305f0 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 10:56:47 +0000 Subject: [PATCH 01/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007/Varela/Varela@23 1c943782-d109-9647-9548-93b3ac332352 --- Build/Build.fbl5 | Bin 0 -> 2621440 bytes Build/Build.fbp5 | 2825 +++++++ Build/Build.fbv | 1 + Build/Build.fbw | 0 Build/buildlog.html | 1298 ++++ Database/1 - tablas.sql | 878 +++ Database/2.1 - vistas inventario.sql | 1028 +++ Database/2.2 - vistas ventas.sql | 284 + Database/2.3 - vistas stock.sql | 579 ++ Database/3 - procedimientos.sql | 176 + Database/ANTERIOR/Script Datos.sql | 178 + Database/ANTERIOR/Script Tablas.sql | 519 ++ Database/ANTERIOR/Script Vistas INVRPT.sql | 1156 +++ Database/ANTERIOR/Script Vistas STOCK.sql | 431 ++ Database/ANTERIOR/Script Vistas.sql | 302 + Database/SCRIPT MEJORAS TABLAS.SQL | 473 ++ Database/__Script mejoras.sql | 434 ++ Lib/midas.dll | Bin 0 -> 296448 bytes .../Informes/InformeReferenciaGenerica.fr3 | 27 + Resources/Iconos/CargaEDI.ico | Bin 0 -> 14846 bytes Resources/Iconos/Cliente.ico | Bin 0 -> 17542 bytes .../Iconos/Devoluciones/16x16/Remove.png | Bin 0 -> 420 bytes Resources/Iconos/Devoluciones/16x16/Thumbs.db | Bin 0 -> 9216 bytes .../Iconos/Devoluciones/24x24/Remove.png | Bin 0 -> 544 bytes Resources/Iconos/Devoluciones/24x24/Thumbs.db | Bin 0 -> 57856 bytes .../Iconos/Devoluciones/28x28/Remove.png | Bin 0 -> 605 bytes Resources/Iconos/Devoluciones/28x28/Thumbs.db | Bin 0 -> 7168 bytes Resources/Iconos/FicherosEDI/16x16/Delete.png | Bin 0 -> 734 bytes .../Iconos/FicherosEDI/16x16/History.png | Bin 0 -> 1034 bytes Resources/Iconos/FicherosEDI/16x16/Thumbs.db | Bin 0 -> 12800 bytes Resources/Iconos/FicherosEDI/16x16/Tick.png | Bin 0 -> 3254 bytes Resources/Iconos/FicherosEDI/16x16/carga.png | Bin 0 -> 3290 bytes .../Iconos/FicherosEDI/24x24/History.png | Bin 0 -> 1804 bytes Resources/Iconos/FicherosEDI/24x24/Thumbs.db | Bin 0 -> 10240 bytes Resources/Iconos/FicherosEDI/24x24/cargar.png | Bin 0 -> 3613 bytes .../Iconos/FicherosEDI/28x28/History.png | Bin 0 -> 2370 bytes Resources/Iconos/FicherosEDI/28x28/Thumbs.db | Bin 0 -> 10240 bytes Resources/Iconos/FicherosEDI/28x28/cargar.png | Bin 0 -> 3645 bytes Resources/Iconos/Generales/16x16/013422.bmp | Bin 0 -> 2360 bytes Resources/Iconos/Generales/16x16/09378.bmp | Bin 0 -> 916 bytes Resources/Iconos/Generales/16x16/09378.png | Bin 0 -> 420 bytes Resources/Iconos/Generales/16x16/About.png | Bin 0 -> 490 bytes .../Generales/16x16/Añadir-capítulo.png | Bin 0 -> 717 bytes .../Generales/16x16/Añadir-material.png | Bin 0 -> 685 bytes Resources/Iconos/Generales/16x16/Back.png | Bin 0 -> 909 bytes .../Iconos/Generales/16x16/Box-Closed.png | Bin 0 -> 400 bytes .../Iconos/Generales/16x16/Box-Open-2.png | Bin 0 -> 640 bytes .../Iconos/Generales/16x16/Card-Copy.png | Bin 0 -> 442 bytes .../Iconos/Generales/16x16/Cell-Format.png | Bin 0 -> 584 bytes Resources/Iconos/Generales/16x16/Clear.png | Bin 0 -> 440 bytes Resources/Iconos/Generales/16x16/Copy.png | Bin 0 -> 499 bytes Resources/Iconos/Generales/16x16/Cut.png | Bin 0 -> 709 bytes .../Iconos/Generales/16x16/Dates-Adjust.png | Bin 0 -> 473 bytes .../Generales/16x16/Debug-Breakpoint.png | Bin 0 -> 530 bytes .../Generales/16x16/Debug-Watch-Delete.png | Bin 0 -> 580 bytes .../Iconos/Generales/16x16/Debug-Watch.png | Bin 0 -> 427 bytes Resources/Iconos/Generales/16x16/Delete.png | Bin 0 -> 734 bytes .../Iconos/Generales/16x16/Details-Hide.png | Bin 0 -> 309 bytes .../Iconos/Generales/16x16/Details-Show.png | Bin 0 -> 379 bytes .../16x16/Distribute-Rows Evenly.png | Bin 0 -> 351 bytes Resources/Iconos/Generales/16x16/Edit.png | Bin 0 -> 496 bytes Resources/Iconos/Generales/16x16/Exit.png | Bin 0 -> 606 bytes Resources/Iconos/Generales/16x16/Filter.png | Bin 0 -> 488 bytes .../Iconos/Generales/16x16/Format-Font.png | Bin 0 -> 563 bytes Resources/Iconos/Generales/16x16/Forward.png | Bin 0 -> 896 bytes .../Generales/16x16/Grid-Select Column.png | Bin 0 -> 391 bytes Resources/Iconos/Generales/16x16/Group By.png | Bin 0 -> 261 bytes Resources/Iconos/Generales/16x16/Home.png | Bin 0 -> 454 bytes Resources/Iconos/Generales/16x16/Minus.png | Bin 0 -> 263 bytes Resources/Iconos/Generales/16x16/New.png | Bin 0 -> 350 bytes .../Generales/16x16/Outline-Collapse.png | Bin 0 -> 264 bytes .../Iconos/Generales/16x16/Outline-Expand.png | Bin 0 -> 343 bytes .../Generales/16x16/Outline-Move Down.png | Bin 0 -> 389 bytes .../Generales/16x16/Outline-Move Up.png | Bin 0 -> 380 bytes Resources/Iconos/Generales/16x16/Parcel.png | Bin 0 -> 561 bytes Resources/Iconos/Generales/16x16/Paste.png | Bin 0 -> 543 bytes Resources/Iconos/Generales/16x16/Plus.png | Bin 0 -> 343 bytes Resources/Iconos/Generales/16x16/Preview.png | Bin 0 -> 597 bytes .../Iconos/Generales/16x16/Print-Options.png | Bin 0 -> 446 bytes Resources/Iconos/Generales/16x16/Print.png | Bin 0 -> 484 bytes Resources/Iconos/Generales/16x16/Refresh.png | Bin 0 -> 486 bytes Resources/Iconos/Generales/16x16/Save.png | Bin 0 -> 482 bytes Resources/Iconos/Generales/16x16/Search.png | Bin 0 -> 441 bytes .../Iconos/Generales/16x16/Select All.png | Bin 0 -> 586 bytes .../Iconos/Generales/16x16/Speaking-Start.png | Bin 0 -> 407 bytes Resources/Iconos/Generales/16x16/Sum-2.png | Bin 0 -> 238 bytes .../Iconos/Generales/16x16/Table-Search.png | Bin 0 -> 651 bytes Resources/Iconos/Generales/16x16/Thumbs.db | Bin 0 -> 75264 bytes .../Iconos/Generales/16x16/Total-capítulo.png | Bin 0 -> 519 bytes .../Generales/16x16/Título-capítulo.png | Bin 0 -> 559 bytes Resources/Iconos/Generales/16x16/Undo.png | Bin 0 -> 682 bytes .../Iconos/Generales/16x16/View-One Page.png | Bin 0 -> 445 bytes .../Generales/16x16/View-Page Width.png | Bin 0 -> 476 bytes Resources/Iconos/Generales/16x16/Warning.png | Bin 0 -> 687 bytes Resources/Iconos/Generales/16x16/Zoom-In.png | Bin 0 -> 862 bytes Resources/Iconos/Generales/16x16/Zoom-Out.png | Bin 0 -> 848 bytes .../Iconos/Generales/16x16/db-Next-2.png | Bin 0 -> 289 bytes .../Iconos/Generales/16x16/db-Previous-2.png | Bin 0 -> 295 bytes .../Iconos/Generales/16x16/db-first-2.png | Bin 0 -> 327 bytes .../Iconos/Generales/16x16/db-last-2.png | Bin 0 -> 323 bytes Resources/Iconos/Generales/24x24/About.png | Bin 0 -> 1054 bytes Resources/Iconos/Generales/24x24/Back.png | Bin 0 -> 1488 bytes .../Iconos/Generales/24x24/Box-Open-2.png | Bin 0 -> 700 bytes .../Iconos/Generales/24x24/Card-Copy.png | Bin 0 -> 577 bytes .../Iconos/Generales/24x24/Cell-Format.png | Bin 0 -> 931 bytes Resources/Iconos/Generales/24x24/Clear.png | Bin 0 -> 958 bytes Resources/Iconos/Generales/24x24/Copy.png | Bin 0 -> 653 bytes Resources/Iconos/Generales/24x24/Cut.png | Bin 0 -> 1215 bytes .../Iconos/Generales/24x24/Dates-Adjust.png | Bin 0 -> 690 bytes .../Generales/24x24/Debug-Breakpoint.png | Bin 0 -> 732 bytes .../Generales/24x24/Debug-Watch-Delete.png | Bin 0 -> 1156 bytes .../Iconos/Generales/24x24/Debug-Watch.png | Bin 0 -> 983 bytes Resources/Iconos/Generales/24x24/Delete.png | Bin 0 -> 1170 bytes .../Iconos/Generales/24x24/Details-Hide.png | Bin 0 -> 319 bytes .../Iconos/Generales/24x24/Details-Show.png | Bin 0 -> 457 bytes .../24x24/Distribute-Rows Evenly.png | Bin 0 -> 401 bytes Resources/Iconos/Generales/24x24/Edit.png | Bin 0 -> 728 bytes Resources/Iconos/Generales/24x24/Exit.png | Bin 0 -> 1053 bytes Resources/Iconos/Generales/24x24/Filter.png | Bin 0 -> 761 bytes .../Iconos/Generales/24x24/Format-Font.png | Bin 0 -> 921 bytes Resources/Iconos/Generales/24x24/Forward.png | Bin 0 -> 1482 bytes .../Generales/24x24/Grid-Select Column.png | Bin 0 -> 486 bytes Resources/Iconos/Generales/24x24/Group By.png | Bin 0 -> 330 bytes Resources/Iconos/Generales/24x24/Home.png | Bin 0 -> 815 bytes Resources/Iconos/Generales/24x24/Minus.png | Bin 0 -> 264 bytes .../Generales/24x24/Outline-Collapse.png | Bin 0 -> 266 bytes .../Iconos/Generales/24x24/Outline-Expand.png | Bin 0 -> 391 bytes .../Generales/24x24/Outline-Move Down.png | Bin 0 -> 427 bytes .../Generales/24x24/Outline-Move Up.png | Bin 0 -> 430 bytes Resources/Iconos/Generales/24x24/Paste.png | Bin 0 -> 738 bytes Resources/Iconos/Generales/24x24/Plus.png | Bin 0 -> 423 bytes Resources/Iconos/Generales/24x24/Preview.png | Bin 0 -> 995 bytes .../Iconos/Generales/24x24/Print-Options.png | Bin 0 -> 823 bytes Resources/Iconos/Generales/24x24/Print.png | Bin 0 -> 802 bytes Resources/Iconos/Generales/24x24/Refresh.png | Bin 0 -> 756 bytes Resources/Iconos/Generales/24x24/Save.png | Bin 0 -> 667 bytes Resources/Iconos/Generales/24x24/Search.png | Bin 0 -> 631 bytes .../Iconos/Generales/24x24/Select All.png | Bin 0 -> 984 bytes .../Iconos/Generales/24x24/Speaking-Start.png | Bin 0 -> 514 bytes Resources/Iconos/Generales/24x24/Sum-2.png | Bin 0 -> 341 bytes .../Iconos/Generales/24x24/Table-Search.png | Bin 0 -> 1143 bytes Resources/Iconos/Generales/24x24/Thumbs.db | Bin 0 -> 76288 bytes Resources/Iconos/Generales/24x24/Undo.png | Bin 0 -> 1050 bytes .../Iconos/Generales/24x24/View-One Page.png | Bin 0 -> 570 bytes .../Generales/24x24/View-Page Width.png | Bin 0 -> 802 bytes Resources/Iconos/Generales/24x24/Warning.png | Bin 0 -> 1039 bytes Resources/Iconos/Generales/24x24/Zoom-In.png | Bin 0 -> 1411 bytes Resources/Iconos/Generales/24x24/Zoom-Out.png | Bin 0 -> 1390 bytes .../Iconos/Generales/24x24/db-First-2.png | Bin 0 -> 424 bytes .../Iconos/Generales/24x24/db-Last-2.png | Bin 0 -> 443 bytes .../Iconos/Generales/24x24/db-Next-2.png | Bin 0 -> 352 bytes .../Iconos/Generales/24x24/db-Previous-2.png | Bin 0 -> 342 bytes .../Iconos/Generales/28x28/Box-Open-2.png | Bin 0 -> 804 bytes .../Iconos/Generales/28x28/Card-Copy.png | Bin 0 -> 647 bytes .../Iconos/Generales/28x28/Cell-Format.png | Bin 0 -> 1127 bytes .../Iconos/Generales/28x28/Dates-Adjust.png | Bin 0 -> 773 bytes .../Generales/28x28/Debug-Watch-Delete.png | Bin 0 -> 1213 bytes .../Iconos/Generales/28x28/Debug-Watch.png | Bin 0 -> 1042 bytes .../Iconos/Generales/28x28/Details-Hide.png | Bin 0 -> 350 bytes .../Iconos/Generales/28x28/Details-Show.png | Bin 0 -> 500 bytes .../28x28/Distribute-Rows Evenly.png | Bin 0 -> 411 bytes Resources/Iconos/Generales/28x28/Filter.png | Bin 0 -> 763 bytes .../Iconos/Generales/28x28/Format-Font.png | Bin 0 -> 898 bytes .../Generales/28x28/Grid-Select Column.png | Bin 0 -> 711 bytes Resources/Iconos/Generales/28x28/Group By.png | Bin 0 -> 366 bytes Resources/Iconos/Generales/28x28/Home.png | Bin 0 -> 800 bytes .../Generales/28x28/Outline-Move Down.png | Bin 0 -> 434 bytes .../Generales/28x28/Outline-Move Up.png | Bin 0 -> 436 bytes .../Iconos/Generales/28x28/Speaking-Start.png | Bin 0 -> 512 bytes Resources/Iconos/Generales/28x28/Sum-2.png | Bin 0 -> 348 bytes .../Iconos/Generales/28x28/Table-Search.png | Bin 0 -> 1394 bytes Resources/Iconos/Generales/28x28/Thumbs.db | Bin 0 -> 37888 bytes Resources/Iconos/Generales/28x28/Warning.png | Bin 0 -> 1236 bytes Resources/Iconos/Generales/Thumbs.db | Bin 0 -> 8704 bytes Resources/Iconos/Recepciones/16x16/Insert.png | Bin 0 -> 3113 bytes Resources/Iconos/Recepciones/16x16/Thumbs.db | Bin 0 -> 8704 bytes .../Iconos/Recepciones/16x16/albaran.png | Bin 0 -> 3488 bytes Resources/Iconos/Recepciones/24x24/Insert.png | Bin 0 -> 3259 bytes Resources/Iconos/Recepciones/24x24/Thumbs.db | Bin 0 -> 58880 bytes .../Iconos/Recepciones/24x24/albaran.png | Bin 0 -> 3910 bytes Resources/Iconos/Recepciones/28x28/Insert.png | Bin 0 -> 3346 bytes Resources/Iconos/Recepciones/28x28/Thumbs.db | Bin 0 -> 14336 bytes .../Iconos/Recepciones/28x28/albaran.png | Bin 0 -> 3720 bytes .../16x16/Label-Edit.png | Bin 0 -> 531 bytes .../Referencias genéricas/16x16/Thumbs.db | Bin 0 -> 8192 bytes .../Referencias genéricas/16x16/enespera.png | Bin 0 -> 525 bytes .../Referencias genéricas/16x16/pendiente.png | Bin 0 -> 274 bytes .../Referencias genéricas/16x16/resuelto.png | Bin 0 -> 334 bytes .../24x24/Label-Edit.png | Bin 0 -> 693 bytes .../28x28/Label-Edit.png | Bin 0 -> 714 bytes Resources/Iconos/Servidor.ico | Bin 0 -> 22486 bytes Resources/Iconos/Servidor/16x16/Database.png | Bin 0 -> 749 bytes Resources/Iconos/Servidor/16x16/Thumbs.db | Bin 0 -> 44544 bytes Resources/Iconos/Servidor/24x24/Database.png | Bin 0 -> 1131 bytes Resources/Iconos/Servidor/24x24/Thumbs.db | Bin 0 -> 46080 bytes Resources/Iconos/Servidor/28x28/Database.png | Bin 0 -> 1317 bytes Resources/Iconos/Servidor/28x28/Thumbs.db | Bin 0 -> 15872 bytes Resources/Iconos/Stock/16x16/Task.png | Bin 0 -> 594 bytes Resources/Iconos/Stock/16x16/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Stock/24x24/Task.png | Bin 0 -> 797 bytes Resources/Iconos/Stock/24x24/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Stock/28x28/Task.png | Bin 0 -> 886 bytes Resources/Iconos/Stock/28x28/Thumbs.db | Bin 0 -> 7168 bytes Resources/Iconos/Thumbs.db | Bin 0 -> 19456 bytes Resources/Iconos/Traspasos/16x16/Entrada.png | Bin 0 -> 3035 bytes Resources/Iconos/Traspasos/16x16/Salida.png | Bin 0 -> 398 bytes Resources/Iconos/Traspasos/16x16/Swap.png | Bin 0 -> 476 bytes Resources/Iconos/Traspasos/16x16/Thumbs.db | Bin 0 -> 10240 bytes Resources/Iconos/Traspasos/24x24/Swap.png | Bin 0 -> 584 bytes Resources/Iconos/Traspasos/24x24/Thumbs.db | Bin 0 -> 57856 bytes Resources/Iconos/Traspasos/28x28/Swap.png | Bin 0 -> 586 bytes Resources/Iconos/Traspasos/28x28/Thumbs.db | Bin 0 -> 10240 bytes Resources/Iconos/Usuarios/16x16/Thumbs.db | Bin 0 -> 49152 bytes Resources/Iconos/Usuarios/16x16/User-Add.png | Bin 0 -> 832 bytes Resources/Iconos/Usuarios/16x16/User-Edit.png | Bin 0 -> 818 bytes .../Iconos/Usuarios/16x16/User-Password.png | Bin 0 -> 721 bytes .../Iconos/Usuarios/16x16/User-Remove.png | Bin 0 -> 773 bytes Resources/Iconos/Usuarios/16x16/User.png | Bin 0 -> 768 bytes Resources/Iconos/Usuarios/16x16/Users.png | Bin 0 -> 903 bytes Resources/Iconos/Usuarios/24x24/Thumbs.db | Bin 0 -> 55808 bytes Resources/Iconos/Usuarios/24x24/User-Add.png | Bin 0 -> 1345 bytes Resources/Iconos/Usuarios/24x24/User-Edit.png | Bin 0 -> 1385 bytes .../Iconos/Usuarios/24x24/User-Password.png | Bin 0 -> 1233 bytes .../Iconos/Usuarios/24x24/User-Remove.png | Bin 0 -> 1282 bytes Resources/Iconos/Usuarios/24x24/User.png | Bin 0 -> 1267 bytes Resources/Iconos/Usuarios/24x24/Users.png | Bin 0 -> 1555 bytes Resources/Iconos/Usuarios/28x28/Thumbs.db | Bin 0 -> 21504 bytes Resources/Iconos/Usuarios/28x28/User-Add.png | Bin 0 -> 1618 bytes Resources/Iconos/Usuarios/28x28/User-Edit.png | Bin 0 -> 1728 bytes .../Iconos/Usuarios/28x28/User-Password.png | Bin 0 -> 1563 bytes .../Iconos/Usuarios/28x28/User-Remove.png | Bin 0 -> 1581 bytes Resources/Iconos/Usuarios/28x28/User.png | Bin 0 -> 1525 bytes Resources/Iconos/Usuarios/28x28/Users.png | Bin 0 -> 1918 bytes Resources/Iconos/Usuarios/48x48/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Usuarios/48x48/Users.png | Bin 0 -> 5154 bytes .../Iconos/Ventas en proceso/16x16/Thumbs.db | Bin 0 -> 5632 bytes .../16x16/Ventas en proceso.png | Bin 0 -> 3363 bytes .../Iconos/Ventas en proceso/24x24/Thumbs.db | Bin 0 -> 6144 bytes .../24x24/Venta en proceso.png | Bin 0 -> 3515 bytes .../16x16/Currency-Notes.png | Bin 0 -> 384 bytes .../Ventas terminadas/16x16/Currency.png | Bin 0 -> 477 bytes .../Iconos/Ventas terminadas/16x16/Report.png | Bin 0 -> 437 bytes .../Iconos/Ventas terminadas/16x16/Thumbs.db | Bin 0 -> 8704 bytes .../16x16/Venta terminada.png | Bin 0 -> 3180 bytes .../24x24/Currency-Notes.png | Bin 0 -> 676 bytes .../Ventas terminadas/24x24/Currency.png | Bin 0 -> 777 bytes .../Iconos/Ventas terminadas/24x24/Report.png | Bin 0 -> 489 bytes .../Iconos/Ventas terminadas/24x24/Thumbs.db | Bin 0 -> 12800 bytes .../24x24/Venta terminada.png | Bin 0 -> 3453 bytes .../28x28/Currency-Notes.png | Bin 0 -> 673 bytes .../Ventas terminadas/28x28/Currency.png | Bin 0 -> 887 bytes .../Iconos/Ventas terminadas/28x28/Report.png | Bin 0 -> 505 bytes .../Iconos/Ventas terminadas/28x28/Thumbs.db | Bin 0 -> 8192 bytes Resources/Imagenes/Cabecera.jpg | Bin 0 -> 18969 bytes Resources/Imagenes/Cabecera.psd | Bin 0 -> 337118 bytes Resources/Imagenes/Thumbs.db | Bin 0 -> 7680 bytes Resources/Imagenes/WaitProgress/1021.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1022.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1023.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1024.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1025.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1026.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1027.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1028.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1029.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1030.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1031.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1032.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/1033.BMP | Bin 0 -> 1550 bytes Resources/Imagenes/WaitProgress/Thumbs.db | Bin 0 -> 23552 bytes Resources/Imagenes/Watermark Ficheros.psd | Bin 0 -> 462918 bytes Resources/Imagenes/Watermark-Ficheros.png | Bin 0 -> 23588 bytes Source/AdminPVGroup.bdsgroup | 32 + Source/AdminPVGroup.bdsgroup.local | 6 + Source/AdminPVGroup.bpg | 72 + Source/Base/BaseD10.bdsproj | 673 ++ Source/Base/BaseD10.dpk | 112 + Source/Base/BaseD10.drc | 29 + Source/Base/BaseD10.identcache | Bin 0 -> 2882 bytes Source/Base/BaseD10.rc | 22 + Source/Base/BaseD10.res | Bin 0 -> 4748 bytes Source/Base/uBizInformesBase.pas | 14 + Source/Base/uConfigurarConexion.dfm | 113 + Source/Base/uConfigurarConexion.pas | 74 + Source/Base/uDBSelectionList.pas | 183 + Source/Base/uDataModuleBase.dfm | 1660 ++++ Source/Base/uDataModuleBase.pas | 254 + Source/Base/uDataTableUtils.pas | 324 + Source/Base/uEditorBase.dfm | 1622 ++++ Source/Base/uEditorBase.pas | 218 + Source/Base/uEditorDBBase.ddp | Bin 0 -> 51 bytes Source/Base/uEditorDBBase.dfm | 70 + Source/Base/uEditorDBBase.pas | 305 + Source/Base/uEditorDBItem.ddp | Bin 0 -> 51 bytes Source/Base/uEditorDBItem.dfm | 60 + Source/Base/uEditorDBItem.pas | 89 + Source/Base/uEditorGridBase.dfm | 1433 ++++ Source/Base/uEditorGridBase.pas | 194 + Source/Base/uEditorItem.dfm | 53 + Source/Base/uEditorItem.pas | 41 + Source/Base/uEditorPSPreview.dfm | 15 + Source/Base/uEditorPSPreview.pas | 24 + Source/Base/uEditorPreview.dfm | 937 +++ Source/Base/uEditorPreview.pas | 311 + Source/Base/uEditorUtils.pas | 108 + Source/Base/uExceptions.pas | 21 + Source/Base/uGridUtils.pas | 261 + Source/Base/uIntegerList.pas | 61 + Source/Base/uSysFunc.pas | 249 + Source/Base/uViewBarraSeleccion.dfm | 53 + Source/Base/uViewBarraSeleccion.pas | 37 + Source/Base/uViewBase.dfm | 14 + Source/Base/uViewBase.pas | 32 + Source/Base/uViewGrid.dfm | 79 + Source/Base/uViewGrid.pas | 86 + Source/Base/uViewGridBase.ddp | Bin 0 -> 51 bytes Source/Base/uViewGridBase.dfm | 10 + Source/Base/uViewGridBase.pas | 335 + Source/Base/uViewPreview.dfm | 10 + Source/Base/uViewPreview.pas | 43 + Source/CargaEDI/CargaEDI.bdsproj | 679 ++ Source/CargaEDI/CargaEDI.cfg | 46 + Source/CargaEDI/CargaEDI.dof | 480 ++ Source/CargaEDI/CargaEDI.dpr | 14 + Source/CargaEDI/CargaEDI.drc | 14 + Source/CargaEDI/CargaEDI.identcache | Bin 0 -> 239 bytes Source/CargaEDI/CargaEDI.rc | 23 + Source/CargaEDI/CargaEDI.res | Bin 0 -> 15548 bytes Source/CargaEDI/uCargaEDI.ddp | Bin 0 -> 51 bytes Source/CargaEDI/uCargaEDI.dfm | 843 ++ Source/CargaEDI/uCargaEDI.pas | 163 + Source/ClearFiles.msbuild | 18 + Source/Cliente/AdminPV.bdsproj | 677 ++ Source/Cliente/AdminPV.cfg | 46 + Source/Cliente/AdminPV.dof | 480 ++ Source/Cliente/AdminPV.dpr | 25 + Source/Cliente/AdminPV.drc | 14 + Source/Cliente/AdminPV.identcache | Bin 0 -> 1038 bytes Source/Cliente/AdminPV.rc | 26 + Source/Cliente/AdminPV.res | Bin 0 -> 18368 bytes Source/Cliente/uAcercaDe.dfm | 959 +++ Source/Cliente/uAcercaDe.pas | 66 + Source/Cliente/uMenuUtils.pas | 263 + Source/Cliente/uPantallaPrincipal.ddp | Bin 0 -> 51 bytes Source/Cliente/uPantallaPrincipal.dfm | 441 ++ Source/Cliente/uPantallaPrincipal.pas | 569 ++ Source/Cliente/uSplash.ddp | Bin 0 -> 51 bytes Source/Cliente/uSplash.dfm | 935 +++ Source/Cliente/uSplash.pas | 56 + Source/Configuracion/Configuracion.bdsproj | 677 ++ Source/Configuracion/Configuracion.cfg | 45 + Source/Configuracion/Configuracion.dof | 471 ++ Source/Configuracion/Configuracion.dpk | 35 + Source/Configuracion/Configuracion.drc | 14 + Source/Configuracion/Configuracion.rc | 22 + Source/Configuracion/Configuracion.res | Bin 0 -> 4748 bytes Source/Configuracion/uPanelControl.dfm | 262 + Source/Configuracion/uPanelControl.pas | 50 + .../Cliente/uDataModuleControles.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleControles.dfm | 172 + .../Cliente/uDataModuleControles.pas | 76 + Source/ControlesBase/Cliente/uDateUtils.pas | 68 + .../Cliente/uEditorControlBase.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlBase.dfm | 1324 ++++ .../Cliente/uEditorControlBase.pas | 133 + .../Cliente/uEditorControlesBase.dfm | 1394 ++++ .../Cliente/uEditorControlesBase.dfm.cbk | 1394 ++++ .../Cliente/uEditorControlesBase.pas | 167 + .../Cliente/uFormPropiedadesControl.dfm | 384 + .../Cliente/uFormPropiedadesControl.pas | 117 + .../Cliente/uViewAgrupaciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewAgrupaciones.dfm | 135 + .../Cliente/uViewAgrupaciones.pas | 339 + .../ControlesBase/Cliente/uViewColumnas.ddp | Bin 0 -> 51 bytes .../ControlesBase/Cliente/uViewColumnas.dfm | 42 + .../ControlesBase/Cliente/uViewColumnas.pas | 113 + .../Cliente/uViewControlBase.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlBase.dfm | 616 ++ .../Cliente/uViewControlBase.pas | 179 + .../Cliente/uViewControlGrid.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlGrid.dfm | 149 + .../Cliente/uViewControlGrid.pas | 284 + .../Cliente/uViewControlesBase.dfm | 269 + .../Cliente/uViewControlesBase.dfm.cbk | 269 + .../Cliente/uViewControlesBase.pas | 210 + Source/ControlesBase/Cliente/uViewFiltros.ddp | Bin 0 -> 51 bytes Source/ControlesBase/Cliente/uViewFiltros.dfm | 115 + Source/ControlesBase/Cliente/uViewFiltros.pas | 197 + .../Cliente/uViewParametrosControlGrid.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosControlGrid.dfm | 3 + .../Cliente/uViewParametrosControlGrid.pas | 82 + .../Cliente/uViewPeriodoFechas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewPeriodoFechas.dfm | 174 + .../Cliente/uViewPeriodoFechas.pas | 203 + .../ControlesBase/Cliente/uViewSumarios.ddp | Bin 0 -> 51 bytes .../ControlesBase/Cliente/uViewSumarios.dfm | 115 + .../ControlesBase/Cliente/uViewSumarios.pas | 325 + Source/ControlesBase/ControlesBaseD10.bdsproj | 658 ++ Source/ControlesBase/ControlesBaseD10.dpk | 85 + Source/ControlesBase/ControlesBaseD10.drc | 14 + .../ControlesBase/ControlesBaseD10.identcache | Bin 0 -> 2239 bytes Source/ControlesBase/ControlesBaseD10.rc | 22 + Source/ControlesBase/ControlesBaseD10.res | Bin 0 -> 4748 bytes .../Reglas/schControlesClient_Intf.pas | 209 + .../Reglas/schControlesServer_Intf.pas | 235 + .../Reglas/uBizControlesBase.pas | 80 + .../Servidor/srvControles_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvControles_Impl.dfm | 264 + .../Servidor/srvControles_Impl.pas | 48 + .../Devoluciones/Cliente/Devoluciones.bdsproj | 677 ++ .../Devoluciones/Cliente/Devoluciones.cfg | 45 + .../Devoluciones/Cliente/Devoluciones.dof | 479 ++ .../Devoluciones/Cliente/Devoluciones.dpk | 77 + .../Devoluciones/Cliente/Devoluciones.drc | 14 + .../Cliente/Devoluciones.identcache | Bin 0 -> 947 bytes .../Devoluciones/Cliente/Devoluciones.rc | 22 + .../Devoluciones/Cliente/Devoluciones.res | Bin 0 -> 4748 bytes .../Devoluciones/Cliente/MPCommonLibD10.drc | 23 + .../Cliente/cxVerticalGridVCLD7.drc | 23 + .../Cliente/uDataModuleDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleDevoluciones.dfm | 1639 ++++ .../Cliente/uDataModuleDevoluciones.pas | 87 + .../Cliente/uEditorAjustarDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarDevoluciones.dfm | 944 +++ .../Cliente/uEditorAjustarDevoluciones.pas | 351 + .../Cliente/uEditorListaDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaDevoluciones.dfm | 1708 +++++ .../Cliente/uEditorListaDevoluciones.pas | 356 + .../Cliente/uPluginControllerDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerDevoluciones.dfm | 125 + .../Cliente/uPluginControllerDevoluciones.pas | 73 + .../Cliente/uViewListaDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaDevoluciones.dfm | 476 ++ .../Cliente/uViewListaDevoluciones.pas | 608 ++ .../Devoluciones/Reglas/uBizDevoluciones.pas | 77 + .../Servidor/srvDevoluciones_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvDevoluciones_Impl.dfm | 1505 ++++ .../Servidor/srvDevoluciones_Impl.pas | 51 + .../FicherosEDI/Cliente/FicherosEDI.bdsproj | 677 ++ .../FicherosEDI/Cliente/FicherosEDI.cfg | 45 + .../FicherosEDI/Cliente/FicherosEDI.dof | 474 ++ .../FicherosEDI/Cliente/FicherosEDI.dpk | 74 + .../FicherosEDI/Cliente/FicherosEDI.drc | 14 + .../Cliente/FicherosEDI.identcache | Bin 0 -> 1531 bytes .../FicherosEDI/Cliente/FicherosEDI.rc | 22 + .../FicherosEDI/Cliente/FicherosEDI.res | Bin 0 -> 4748 bytes .../Cliente/uAsistenteCargaFicheros.ddp | Bin 0 -> 51 bytes .../Cliente/uAsistenteCargaFicheros.dfm | 2769 +++++++ .../Cliente/uAsistenteCargaFicheros.pas | 344 + .../Cliente/uAsistenteEtiquetasMontajes.dfm | 6759 +++++++++++++++++ .../Cliente/uAsistenteEtiquetasMontajes.pas | 99 + .../FicherosEDI/Cliente/uCargarFicheros.pas | 258 + .../Cliente/uDataModuleFicherosEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleFicherosEDI.dfm | 192 + .../Cliente/uDataModuleFicherosEDI.dfm.cbk | 193 + .../Cliente/uDataModuleFicherosEDI.pas | 61 + .../Cliente/uEditorHistorialCargasEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorHistorialCargasEDI.dfm | 147 + .../Cliente/uEditorHistorialCargasEDI.pas | 76 + .../Cliente/uPluginControllerFicherosEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerFicherosEDI.dfm | 601 ++ .../Cliente/uPluginControllerFicherosEDI.pas | 76 + .../FicherosEDI/Cliente/uSubirFicheros.pas | 233 + .../Cliente/uViewHistorialCargasEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uViewHistorialCargasEDI.dfm | 123 + .../Cliente/uViewHistorialCargasEDI.dfm.cbk | 123 + .../Cliente/uViewHistorialCargasEDI.pas | 72 + .../Reglas/schEDILogClient_Intf.pas | 154 + .../Reglas/schEDILogServer_Intf.pas | 167 + .../Modulos/FicherosEDI/Reglas/uBizEDILog.pas | 30 + .../Parametros/Cliente/Parametros.bdsproj | 677 ++ .../Modulos/Parametros/Cliente/Parametros.cfg | 45 + .../Modulos/Parametros/Cliente/Parametros.dof | 479 ++ .../Modulos/Parametros/Cliente/Parametros.dpk | 57 + .../Modulos/Parametros/Cliente/Parametros.drc | 14 + .../Parametros/Cliente/Parametros.identcache | Bin 0 -> 766 bytes .../Modulos/Parametros/Cliente/Parametros.rc | 22 + .../Modulos/Parametros/Cliente/Parametros.res | Bin 0 -> 5056 bytes .../Cliente/uDataModuleParametros.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleParametros.dfm | 214 + .../Cliente/uDataModuleParametros.pas | 78 + .../Cliente/uViewParametrosCentro.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosCentro.dfm | 36 + .../Cliente/uViewParametrosCentro.pas | 91 + .../Cliente/uViewParametrosColeccion.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosColeccion.dfm | 36 + .../Cliente/uViewParametrosColeccion.pas | 91 + .../Reglas/schParametrosClient_Intf.pas | 196 + .../Reglas/schParametrosServer_Intf.pas | 203 + .../Parametros/Reglas/uBizParametros.pas | 49 + .../Servidor/srvParametros_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvParametros_Impl.dfm | 155 + .../Servidor/srvParametros_Impl.pas | 48 + .../Recepciones/Cliente/Recepciones.bdsproj | 679 ++ .../Recepciones/Cliente/Recepciones.cfg | 45 + .../Recepciones/Cliente/Recepciones.dof | 479 ++ .../Recepciones/Cliente/Recepciones.dpk | 84 + .../Recepciones/Cliente/Recepciones.drc | 14 + .../Cliente/Recepciones.identcache | Bin 0 -> 1259 bytes .../Recepciones/Cliente/Recepciones.rc | 22 + .../Recepciones/Cliente/Recepciones.res | Bin 0 -> 4748 bytes .../Recepciones/Cliente/cxVerticalGridD10.drc | 23 + .../Cliente/cxVerticalGridVCLD7.drc | 22 + .../Cliente/dxLayoutControlD10.drc | 23 + Source/Modulos/Recepciones/Cliente/rtl.drc | 10 + .../Cliente/uDataModuleRecepciones.dfm | 1830 +++++ .../Cliente/uDataModuleRecepciones.pas | 131 + .../Cliente/uEditorAjustarRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarRecepciones.dfm | 907 +++ .../Cliente/uEditorAjustarRecepciones.pas | 352 + .../Cliente/uEditorListaRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaRecepciones.dfm | 1715 +++++ .../Cliente/uEditorListaRecepciones.pas | 370 + .../uEditorListaRecepcionesAlbaran.ddp | Bin 0 -> 51 bytes .../uEditorListaRecepcionesAlbaran.dfm | 1576 ++++ .../uEditorListaRecepcionesAlbaran.pas | 184 + .../Cliente/uPluginControllerRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerRecepciones.dfm | 756 ++ .../Cliente/uPluginControllerRecepciones.pas | 94 + .../Cliente/uViewListaRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaRecepciones.dfm | 513 ++ .../Cliente/uViewListaRecepciones.pas | 595 ++ .../Cliente/uViewListaRecepcionesAlbaran.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaRecepcionesAlbaran.dfm | 262 + .../Cliente/uViewListaRecepcionesAlbaran.pas | 111 + .../Recepciones/RecepcionesGroup.bdsgroup | 24 + .../RecepcionesGroup.bdsgroup.local | 6 + .../Recepciones/Reglas/uBizRecepciones.pas | 85 + .../Servidor/srvRecepciones_Impl.dfm | 2482 ++++++ .../Servidor/srvRecepciones_Impl.pas | 52 + .../Cliente/ReferenciaGenerica.bdsproj | 677 ++ .../Cliente/ReferenciaGenerica.cfg | 45 + .../Cliente/ReferenciaGenerica.dof | 479 ++ .../Cliente/ReferenciaGenerica.dpk | 75 + .../Cliente/ReferenciaGenerica.drc | 14 + .../Cliente/ReferenciaGenerica.identcache | Bin 0 -> 1360 bytes .../Cliente/ReferenciaGenerica.rc | 22 + .../Cliente/ReferenciaGenerica.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleReferenciaGenerica.dfm | 227 + .../Cliente/uDataModuleReferenciaGenerica.pas | 139 + .../uEditorCambioReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uEditorCambioReferenciaGenerica.dfm | 574 ++ .../uEditorCambioReferenciaGenerica.dfm_ | 144 + .../uEditorCambioReferenciaGenerica.pas | 314 + .../uEditorCambioReferenciaGenerica.pas_ | 210 + .../uEditorListaReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uEditorListaReferenciaGenerica.dfm | 1652 ++++ .../uEditorListaReferenciaGenerica.pas | 447 ++ .../uPluginControllerReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uPluginControllerReferenciaGenerica.dfm | 132 + .../uPluginControllerReferenciaGenerica.pas | 72 + .../Cliente/uViewListaReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaReferenciaGenerica.dfm | 140 + .../Cliente/uViewListaReferenciaGenerica.pas | 180 + .../schReferenciaGenericaClient_Intf.pas | 913 +++ .../schReferenciaGenericaServer_Intf.pas | 1045 +++ .../Reglas/uBizReferenciaGenerica.pas | 317 + .../Reglas/uBizReferenciaGenericaServer.pas | 145 + .../Servidor/srvReferenciaGenerica_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvReferenciaGenerica_Impl.dfm | 1302 ++++ .../Servidor/srvReferenciaGenerica_Impl.pas | 178 + Source/Modulos/Stock/Cliente/Stock.bdsproj | 677 ++ Source/Modulos/Stock/Cliente/Stock.cfg | 45 + Source/Modulos/Stock/Cliente/Stock.dof | 479 ++ Source/Modulos/Stock/Cliente/Stock.dpk | 81 + Source/Modulos/Stock/Cliente/Stock.drc | 14 + Source/Modulos/Stock/Cliente/Stock.identcache | Bin 0 -> 1499 bytes Source/Modulos/Stock/Cliente/Stock.rc | 22 + Source/Modulos/Stock/Cliente/Stock.res | Bin 0 -> 4748 bytes .../Stock/Cliente/cxVerticalGridD10.drc | 22 + Source/Modulos/Stock/Cliente/teedb.drc | 22 + .../Stock/Cliente/uDataModuleStock.ddp | Bin 0 -> 51 bytes .../Stock/Cliente/uDataModuleStock.dfm | 1209 +++ .../Stock/Cliente/uDataModuleStock.pas | 112 + .../Stock/Cliente/uEditorControlStockEDI.ddp | Bin 0 -> 51 bytes .../Stock/Cliente/uEditorControlStockEDI.dfm | 2230 ++++++ .../Stock/Cliente/uEditorControlStockEDI.pas | 242 + .../Cliente/uEditorControlStockVARELA.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlStockVARELA.dfm | 1716 +++++ .../Cliente/uEditorControlStockVARELA.pas | 134 + .../Stock/Cliente/uPluginControllerStock.dfm | 126 + .../Stock/Cliente/uPluginControllerStock.pas | 97 + .../Stock/Cliente/uViewControGridStockEDI.dfm | 609 ++ .../Stock/Cliente/uViewControGridStockEDI.pas | 220 + .../uViewControGridStockEDIInventario.dfm | 609 ++ .../uViewControGridStockEDIInventario.pas | 224 + .../uViewControGridStockPrendasCentros.dfm | 351 + .../uViewControGridStockPrendasCentros.pas | 199 + .../Cliente/uViewControGridStockVARELA.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridStockVARELA.dfm | 365 + .../Cliente/uViewControGridStockVARELA.pas | 187 + .../Stock/Cliente/uViewFiltrosStock.dfm | 72 + .../Stock/Cliente/uViewFiltrosStock.pas | 111 + .../Stock/Reglas/schStockClient_Intf.pas | 1684 ++++ .../Stock/Reglas/schStockServer_Intf.pas | 1991 +++++ Source/Modulos/Stock/Reglas/uBizStock.pas | 58 + .../Modulos/Stock/Servidor/srvStock_Impl.ddp | Bin 0 -> 51 bytes .../Modulos/Stock/Servidor/srvStock_Impl.dfm | 1389 ++++ .../Modulos/Stock/Servidor/srvStock_Impl.pas | 59 + .../Traspasos/Cliente/Traspasos.bdsproj | 677 ++ .../Modulos/Traspasos/Cliente/Traspasos.cfg | 45 + .../Modulos/Traspasos/Cliente/Traspasos.dof | 479 ++ .../Modulos/Traspasos/Cliente/Traspasos.dpk | 82 + .../Modulos/Traspasos/Cliente/Traspasos.drc | 14 + Source/Modulos/Traspasos/Cliente/Traspasos.rc | 22 + .../Modulos/Traspasos/Cliente/Traspasos.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleTraspasos.dfm | 1406 ++++ .../Cliente/uDataModuleTraspasos.pas | 87 + .../Cliente/uEditorAjustarTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarTraspasos.dfm | 725 ++ .../Cliente/uEditorAjustarTraspasos.pas | 288 + .../Cliente/uEditorListaTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaTraspasos.dfm | 1607 ++++ .../Cliente/uEditorListaTraspasos.pas | 308 + .../Cliente/uPluginControllerTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerTraspasos.dfm | 126 + .../Cliente/uPluginControllerTraspasos.pas | 72 + .../Traspasos/Cliente/uViewListaTraspasos.ddp | Bin 0 -> 51 bytes .../Traspasos/Cliente/uViewListaTraspasos.dfm | 514 ++ .../Traspasos/Cliente/uViewListaTraspasos.pas | 554 ++ .../Traspasos/Reglas/uBizTraspasos.pas | 77 + .../Traspasos/Servidor/srvTraspasos_Impl.ddp | Bin 0 -> 51 bytes .../Traspasos/Servidor/srvTraspasos_Impl.dfm | 1293 ++++ .../Traspasos/Servidor/srvTraspasos_Impl.pas | 51 + .../Cliente/VentasProceso.bdsproj | 677 ++ .../VentasProceso/Cliente/VentasProceso.cfg | 45 + .../VentasProceso/Cliente/VentasProceso.dof | 479 ++ .../VentasProceso/Cliente/VentasProceso.dpk | 74 + .../VentasProceso/Cliente/VentasProceso.drc | 14 + .../Cliente/VentasProceso.identcache | Bin 0 -> 1607 bytes .../VentasProceso/Cliente/VentasProceso.rc | 22 + .../VentasProceso/Cliente/VentasProceso.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleVentasProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleVentasProceso.dfm | 364 + .../Cliente/uDataModuleVentasProceso.pas | 113 + .../Cliente/uEditorControlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlVentaProceso.dfm | 1716 +++++ .../Cliente/uEditorControlVentaProceso.pas | 241 + .../Cliente/uEditorControlesVentaProceso.dfm | 154 + .../Cliente/uEditorControlesVentaProceso.pas | 40 + .../uPluginControllerVentasProceso.ddp | Bin 0 -> 51 bytes .../uPluginControllerVentasProceso.dfm | 284 + .../uPluginControllerVentasProceso.pas | 73 + .../Cliente/uViewControGridlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridlVentaProceso.dfm | 194 + .../Cliente/uViewControGridlVentaProceso.pas | 351 + .../Cliente/uViewControlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlVentaProceso.dfm | 148 + .../Cliente/uViewControlVentaProceso.pas | 120 + .../Cliente/uViewControlesVentaProceso.dfm | 2 + .../Cliente/uViewControlesVentaProceso.pas | 24 + .../Reglas/schVentasEnProcesoClient_Intf.pas | 460 ++ .../Reglas/schVentasEnProcesoServer_Intf.pas | 541 ++ .../Reglas/uBizControlVentasProceso.pas | 69 + .../Reglas/uBizVentasProceso.pas | 88 + .../Servidor/srvVentasEnProceso_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvVentasEnProceso_Impl.dfm | 249 + .../Servidor/srvVentasEnProceso_Impl.pas | 135 + .../Cliente/VentasTerminadas.bdsproj | 677 ++ .../Cliente/VentasTerminadas.cfg | 45 + .../Cliente/VentasTerminadas.dof | 474 ++ .../Cliente/VentasTerminadas.dpk | 84 + .../Cliente/VentasTerminadas.drc | 14 + .../Cliente/VentasTerminadas.identcache | Bin 0 -> 2168 bytes .../Cliente/VentasTerminadas.rc | 22 + .../Cliente/VentasTerminadas.res | Bin 0 -> 4748 bytes ...uEditorControlVentasTerminadasCrossTab.dfm | 1611 ++++ ...iewControGridlVentasTerminadasCrossTab.dfm | 204 + .../Cliente/uDataModuleVentasTerminadas.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleVentasTerminadas.dfm | 576 ++ .../Cliente/uDataModuleVentasTerminadas.pas | 127 + .../Cliente/uEditorControlResumenVentas.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlResumenVentas.dfm | 1700 +++++ .../Cliente/uEditorControlResumenVentas.pas | 156 + .../uEditorControlVentasTerminadas.dfm | 1776 +++++ .../uEditorControlVentasTerminadas.pas | 241 + .../uEditorControlesVentasTerminadas.dfm | 176 + .../uEditorControlesVentasTerminadas.pas | 43 + .../uPluginControllerVentasTerminadas.ddp | Bin 0 -> 51 bytes .../uPluginControllerVentasTerminadas.dfm | 329 + .../uPluginControllerVentasTerminadas.pas | 96 + .../Cliente/uViewControGridResumenVentas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridResumenVentas.dfm | 211 + .../Cliente/uViewControGridResumenVentas.pas | 144 + .../uViewControGridlVentasTerminadas.ddp | Bin 0 -> 51 bytes .../uViewControGridlVentasTerminadas.dfm | 278 + .../uViewControGridlVentasTerminadas.pas | 385 + .../Cliente/uViewControlVentasTerminadas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlVentasTerminadas.dfm | 248 + .../Cliente/uViewControlVentasTerminadas.pas | 148 + .../uViewControlesVentasTerminadas.dfm | 11 + .../uViewControlesVentasTerminadas.pas | 24 + .../Reglas/schVentasTerminadasClient_Intf.pas | 1331 ++++ .../Reglas/schVentasTerminadasServer_Intf.pas | 1598 ++++ .../Reglas/uBizControlVentasTerminadas.pas | 65 + .../Reglas/uBizInformesVentas.pas | 82 + .../VentasTerminadas/Reglas/uBizVentas.pas | 115 + .../Reglas/uBizVentasTerminadas.pas | 158 + .../Servidor/srvVentasTerminadas_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvVentasTerminadas_Impl.dfm | 445 ++ .../Servidor/srvVentasTerminadas_Impl.pas | 210 + Source/Servidor/AdminPV_Server.bdsproj | 678 ++ Source/Servidor/AdminPV_Server.cfg | 45 + Source/Servidor/AdminPV_Server.dof | 480 ++ Source/Servidor/AdminPV_Server.dpr | 73 + Source/Servidor/AdminPV_Server.drc | 2579 +++++++ Source/Servidor/AdminPV_Server.identcache | Bin 0 -> 7940 bytes Source/Servidor/AdminPV_Server.rc | 26 + Source/Servidor/AdminPV_Server.res | Bin 0 -> 23588 bytes Source/Servidor/Configuracion/uConexionBD.ddp | Bin 0 -> 51 bytes Source/Servidor/Configuracion/uConexionBD.dfm | 101 + Source/Servidor/Configuracion/uConexionBD.pas | 90 + .../Configuracion/uConfFicherosEDI.ddp | Bin 0 -> 51 bytes .../Configuracion/uConfFicherosEDI.dfm | 129 + .../Configuracion/uConfFicherosEDI.pas | 102 + .../Servidor/Configuracion/uConfGeneral.ddp | Bin 0 -> 51 bytes .../Servidor/Configuracion/uConfGeneral.dfm | 39 + .../Servidor/Configuracion/uConfGeneral.pas | 52 + .../Servidor/Configuracion/uConfiguracion.ddp | Bin 0 -> 51 bytes .../Servidor/Configuracion/uConfiguracion.dfm | 214 + .../Servidor/Configuracion/uConfiguracion.pas | 105 + .../Configuracion/uFrameConfiguracion.dfm | 10 + .../Configuracion/uFrameConfiguracion.pas | 30 + Source/Servidor/EDI/EDI_INVRPT.pas | 195 + Source/Servidor/EDI/EDI_Log_Impl.ddp | Bin 0 -> 51 bytes Source/Servidor/EDI/EDI_Log_Impl.dfm | 169 + Source/Servidor/EDI/EDI_Log_Impl.pas | 73 + Source/Servidor/EDI/EDI_Reader.pas | 109 + Source/Servidor/EDI/EDI_SLSRPT.pas | 284 + Source/Servidor/EDI_Inventary_Impl.dfm | 7 + Source/Servidor/EDI_Inventary_Impl.pas | 52 + Source/Servidor/EDI_Log_Impl.dfm | 179 + Source/Servidor/EDI_Log_Impl.pas | 75 + Source/Servidor/EDI_Sales_Impl.dfm | 7 + Source/Servidor/EDI_Sales_Impl.pas | 52 + Source/Servidor/EDI_Utils.pas | 40 + Source/Servidor/RDX_VARELA.daConnections | 1 + Source/Servidor/RDX_VARELA.daDictionary | 1 + Source/Servidor/RDX_VARELA.daSchema | 35 + Source/Servidor/RODLFILE.res | Bin 0 -> 18469 bytes Source/Servidor/RegExpr.pas | 4042 ++++++++++ .../EDI_Inventary/EDI_Inventary_Impl.ddp | Bin 0 -> 51 bytes .../EDI_Inventary/EDI_Inventary_Impl.dfm | 16 + .../EDI_Inventary/EDI_Inventary_Impl.pas | 139 + .../schEDIInventaryClient_Intf.pas | 742 ++ .../schEDIInventaryServer_Intf.pas | 855 +++ .../EDI_Inventary/uBizEDIInventary.pas | 323 + .../uDataModuleEDI_Inventary.ddp | Bin 0 -> 51 bytes .../uDataModuleEDI_Inventary.dfm | 1061 +++ .../uDataModuleEDI_Inventary.pas | 318 + .../Services/EDI_Sales/EDI_Sales_Impl.ddp | Bin 0 -> 51 bytes .../Services/EDI_Sales/EDI_Sales_Impl.dfm | 17 + .../Services/EDI_Sales/EDI_Sales_Impl.pas | 143 + .../Services/EDI_Sales/EDI_Sales_Types.pas | 9 + .../EDI_Sales/schEDISalesClient_Intf.pas | 1948 +++++ .../EDI_Sales/schEDISalesServer_Intf.pas | 2329 ++++++ .../Services/EDI_Sales/uBizEDISales.pas | 476 ++ .../EDI_Sales/uDataModuleEDI_Sales.ddp | Bin 0 -> 51 bytes .../EDI_Sales/uDataModuleEDI_Sales.dfm | 2699 +++++++ .../EDI_Sales/uDataModuleEDI_Sales.pas | 483 ++ .../Servidor/Services/Login/srvLogin_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/Services/Login/srvLogin_Impl.dfm | 99 + .../Servidor/Services/Login/srvLogin_Impl.pas | 135 + .../srvTransfereciaFicheros_Impl.ddp | Bin 0 -> 51 bytes .../srvTransfereciaFicheros_Impl.dfm | 6 + .../srvTransfereciaFicheros_Impl.pas | 104 + Source/Servidor/VARELA.RODL | 378 + Source/Servidor/VARELA_Intf.pas | 1079 +++ Source/Servidor/VARELA_Invk.pas | 707 ++ Source/Servidor/cxVerticalGridD10.drc | 23 + Source/Servidor/fServerForm.ddp | Bin 0 -> 51 bytes Source/Servidor/fServerForm.dfm | 1069 +++ Source/Servidor/fServerForm.pas | 103 + Source/Servidor/srvInformes_Impl.ddp | Bin 0 -> 51 bytes Source/Servidor/srvInformes_Impl.dfm | 331 + Source/Servidor/srvInformes_Impl.pas | 48 + Source/Servidor/uAcercaDe.ddp | Bin 0 -> 51 bytes Source/Servidor/uAcercaDe.dfm | 959 +++ Source/Servidor/uAcercaDe.pas | 47 + Source/Servidor/uDataModuleServer.ddp | Bin 0 -> 51 bytes Source/Servidor/uDataModuleServer.dfm | 96 + Source/Servidor/uDataModuleServer.pas | 364 + Source/Servidor/uSchemaUtilsServer.pas | 161 + Source/Usuarios/Usuarios.bdsproj | 677 ++ Source/Usuarios/Usuarios.cfg | 45 + Source/Usuarios/Usuarios.dof | 471 ++ Source/Usuarios/Usuarios.dpk | 50 + Source/Usuarios/Usuarios.drc | 14 + Source/Usuarios/Usuarios.identcache | Bin 0 -> 631 bytes Source/Usuarios/Usuarios.rc | 22 + Source/Usuarios/Usuarios.res | Bin 0 -> 4748 bytes Source/Usuarios/uCambiarPassword.dfm | 94 + Source/Usuarios/uCambiarPassword.pas | 41 + Source/Usuarios/uDataModuleUsuarios.ddp | Bin 0 -> 51 bytes Source/Usuarios/uDataModuleUsuarios.dfm | 132 + Source/Usuarios/uDataModuleUsuarios.pas | 117 + Source/Usuarios/uLoginForm.ddp | Bin 0 -> 51 bytes Source/Usuarios/uLoginForm.dfm | 784 ++ Source/Usuarios/uLoginForm.pas | 100 + Source/Usuarios/uUsuario.dfm | 123 + Source/Usuarios/uUsuario.pas | 39 + Source/Usuarios/uUsuarios.dfm | 119 + Source/Usuarios/uUsuarios.pas | 89 + Source/leeme.txt | 5 + Source/uDADataTable.pas | 4645 +++++++++++ 807 files changed, 167699 insertions(+) create mode 100644 Build/Build.fbl5 create mode 100644 Build/Build.fbp5 create mode 100644 Build/Build.fbv create mode 100644 Build/Build.fbw create mode 100644 Build/buildlog.html create mode 100644 Database/1 - tablas.sql create mode 100644 Database/2.1 - vistas inventario.sql create mode 100644 Database/2.2 - vistas ventas.sql create mode 100644 Database/2.3 - vistas stock.sql create mode 100644 Database/3 - procedimientos.sql create mode 100644 Database/ANTERIOR/Script Datos.sql create mode 100644 Database/ANTERIOR/Script Tablas.sql create mode 100644 Database/ANTERIOR/Script Vistas INVRPT.sql create mode 100644 Database/ANTERIOR/Script Vistas STOCK.sql create mode 100644 Database/ANTERIOR/Script Vistas.sql create mode 100644 Database/SCRIPT MEJORAS TABLAS.SQL create mode 100644 Database/__Script mejoras.sql create mode 100644 Lib/midas.dll create mode 100644 Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 create mode 100644 Resources/Iconos/CargaEDI.ico create mode 100644 Resources/Iconos/Cliente.ico create mode 100644 Resources/Iconos/Devoluciones/16x16/Remove.png create mode 100644 Resources/Iconos/Devoluciones/16x16/Thumbs.db create mode 100644 Resources/Iconos/Devoluciones/24x24/Remove.png create mode 100644 Resources/Iconos/Devoluciones/24x24/Thumbs.db create mode 100644 Resources/Iconos/Devoluciones/28x28/Remove.png create mode 100644 Resources/Iconos/Devoluciones/28x28/Thumbs.db create mode 100644 Resources/Iconos/FicherosEDI/16x16/Delete.png create mode 100644 Resources/Iconos/FicherosEDI/16x16/History.png create mode 100644 Resources/Iconos/FicherosEDI/16x16/Thumbs.db create mode 100644 Resources/Iconos/FicherosEDI/16x16/Tick.png create mode 100644 Resources/Iconos/FicherosEDI/16x16/carga.png create mode 100644 Resources/Iconos/FicherosEDI/24x24/History.png create mode 100644 Resources/Iconos/FicherosEDI/24x24/Thumbs.db create mode 100644 Resources/Iconos/FicherosEDI/24x24/cargar.png create mode 100644 Resources/Iconos/FicherosEDI/28x28/History.png create mode 100644 Resources/Iconos/FicherosEDI/28x28/Thumbs.db create mode 100644 Resources/Iconos/FicherosEDI/28x28/cargar.png create mode 100644 Resources/Iconos/Generales/16x16/013422.bmp create mode 100644 Resources/Iconos/Generales/16x16/09378.bmp create mode 100644 Resources/Iconos/Generales/16x16/09378.png create mode 100644 Resources/Iconos/Generales/16x16/About.png create mode 100644 Resources/Iconos/Generales/16x16/Añadir-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Añadir-material.png create mode 100644 Resources/Iconos/Generales/16x16/Back.png create mode 100644 Resources/Iconos/Generales/16x16/Box-Closed.png create mode 100644 Resources/Iconos/Generales/16x16/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/16x16/Card-Copy.png create mode 100644 Resources/Iconos/Generales/16x16/Cell-Format.png create mode 100644 Resources/Iconos/Generales/16x16/Clear.png create mode 100644 Resources/Iconos/Generales/16x16/Copy.png create mode 100644 Resources/Iconos/Generales/16x16/Cut.png create mode 100644 Resources/Iconos/Generales/16x16/Dates-Adjust.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Breakpoint.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/16x16/Delete.png create mode 100644 Resources/Iconos/Generales/16x16/Details-Hide.png create mode 100644 Resources/Iconos/Generales/16x16/Details-Show.png create mode 100644 Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/16x16/Edit.png create mode 100644 Resources/Iconos/Generales/16x16/Exit.png create mode 100644 Resources/Iconos/Generales/16x16/Filter.png create mode 100644 Resources/Iconos/Generales/16x16/Format-Font.png create mode 100644 Resources/Iconos/Generales/16x16/Forward.png create mode 100644 Resources/Iconos/Generales/16x16/Grid-Select Column.png create mode 100644 Resources/Iconos/Generales/16x16/Group By.png create mode 100644 Resources/Iconos/Generales/16x16/Home.png create mode 100644 Resources/Iconos/Generales/16x16/Minus.png create mode 100644 Resources/Iconos/Generales/16x16/New.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Collapse.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Expand.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/16x16/Parcel.png create mode 100644 Resources/Iconos/Generales/16x16/Paste.png create mode 100644 Resources/Iconos/Generales/16x16/Plus.png create mode 100644 Resources/Iconos/Generales/16x16/Preview.png create mode 100644 Resources/Iconos/Generales/16x16/Print-Options.png create mode 100644 Resources/Iconos/Generales/16x16/Print.png create mode 100644 Resources/Iconos/Generales/16x16/Refresh.png create mode 100644 Resources/Iconos/Generales/16x16/Save.png create mode 100644 Resources/Iconos/Generales/16x16/Search.png create mode 100644 Resources/Iconos/Generales/16x16/Select All.png create mode 100644 Resources/Iconos/Generales/16x16/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/16x16/Sum-2.png create mode 100644 Resources/Iconos/Generales/16x16/Table-Search.png create mode 100644 Resources/Iconos/Generales/16x16/Thumbs.db create mode 100644 Resources/Iconos/Generales/16x16/Total-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Título-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Undo.png create mode 100644 Resources/Iconos/Generales/16x16/View-One Page.png create mode 100644 Resources/Iconos/Generales/16x16/View-Page Width.png create mode 100644 Resources/Iconos/Generales/16x16/Warning.png create mode 100644 Resources/Iconos/Generales/16x16/Zoom-In.png create mode 100644 Resources/Iconos/Generales/16x16/Zoom-Out.png create mode 100644 Resources/Iconos/Generales/16x16/db-Next-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-Previous-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-first-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-last-2.png create mode 100644 Resources/Iconos/Generales/24x24/About.png create mode 100644 Resources/Iconos/Generales/24x24/Back.png create mode 100644 Resources/Iconos/Generales/24x24/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/24x24/Card-Copy.png create mode 100644 Resources/Iconos/Generales/24x24/Cell-Format.png create mode 100644 Resources/Iconos/Generales/24x24/Clear.png create mode 100644 Resources/Iconos/Generales/24x24/Copy.png create mode 100644 Resources/Iconos/Generales/24x24/Cut.png create mode 100644 Resources/Iconos/Generales/24x24/Dates-Adjust.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Breakpoint.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/24x24/Delete.png create mode 100644 Resources/Iconos/Generales/24x24/Details-Hide.png create mode 100644 Resources/Iconos/Generales/24x24/Details-Show.png create mode 100644 Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/24x24/Edit.png create mode 100644 Resources/Iconos/Generales/24x24/Exit.png create mode 100644 Resources/Iconos/Generales/24x24/Filter.png create mode 100644 Resources/Iconos/Generales/24x24/Format-Font.png create mode 100644 Resources/Iconos/Generales/24x24/Forward.png create mode 100644 Resources/Iconos/Generales/24x24/Grid-Select Column.png create mode 100644 Resources/Iconos/Generales/24x24/Group By.png create mode 100644 Resources/Iconos/Generales/24x24/Home.png create mode 100644 Resources/Iconos/Generales/24x24/Minus.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Collapse.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Expand.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/24x24/Paste.png create mode 100644 Resources/Iconos/Generales/24x24/Plus.png create mode 100644 Resources/Iconos/Generales/24x24/Preview.png create mode 100644 Resources/Iconos/Generales/24x24/Print-Options.png create mode 100644 Resources/Iconos/Generales/24x24/Print.png create mode 100644 Resources/Iconos/Generales/24x24/Refresh.png create mode 100644 Resources/Iconos/Generales/24x24/Save.png create mode 100644 Resources/Iconos/Generales/24x24/Search.png create mode 100644 Resources/Iconos/Generales/24x24/Select All.png create mode 100644 Resources/Iconos/Generales/24x24/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/24x24/Sum-2.png create mode 100644 Resources/Iconos/Generales/24x24/Table-Search.png create mode 100644 Resources/Iconos/Generales/24x24/Thumbs.db create mode 100644 Resources/Iconos/Generales/24x24/Undo.png create mode 100644 Resources/Iconos/Generales/24x24/View-One Page.png create mode 100644 Resources/Iconos/Generales/24x24/View-Page Width.png create mode 100644 Resources/Iconos/Generales/24x24/Warning.png create mode 100644 Resources/Iconos/Generales/24x24/Zoom-In.png create mode 100644 Resources/Iconos/Generales/24x24/Zoom-Out.png create mode 100644 Resources/Iconos/Generales/24x24/db-First-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Last-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Next-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Previous-2.png create mode 100644 Resources/Iconos/Generales/28x28/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/28x28/Card-Copy.png create mode 100644 Resources/Iconos/Generales/28x28/Cell-Format.png create mode 100644 Resources/Iconos/Generales/28x28/Dates-Adjust.png create mode 100644 Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/28x28/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/28x28/Details-Hide.png create mode 100644 Resources/Iconos/Generales/28x28/Details-Show.png create mode 100644 Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/28x28/Filter.png create mode 100644 Resources/Iconos/Generales/28x28/Format-Font.png create mode 100644 Resources/Iconos/Generales/28x28/Grid-Select Column.png create mode 100644 Resources/Iconos/Generales/28x28/Group By.png create mode 100644 Resources/Iconos/Generales/28x28/Home.png create mode 100644 Resources/Iconos/Generales/28x28/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/28x28/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/28x28/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/28x28/Sum-2.png create mode 100644 Resources/Iconos/Generales/28x28/Table-Search.png create mode 100644 Resources/Iconos/Generales/28x28/Thumbs.db create mode 100644 Resources/Iconos/Generales/28x28/Warning.png create mode 100644 Resources/Iconos/Generales/Thumbs.db create mode 100644 Resources/Iconos/Recepciones/16x16/Insert.png create mode 100644 Resources/Iconos/Recepciones/16x16/Thumbs.db create mode 100644 Resources/Iconos/Recepciones/16x16/albaran.png create mode 100644 Resources/Iconos/Recepciones/24x24/Insert.png create mode 100644 Resources/Iconos/Recepciones/24x24/Thumbs.db create mode 100644 Resources/Iconos/Recepciones/24x24/albaran.png create mode 100644 Resources/Iconos/Recepciones/28x28/Insert.png create mode 100644 Resources/Iconos/Recepciones/28x28/Thumbs.db create mode 100644 Resources/Iconos/Recepciones/28x28/albaran.png create mode 100644 Resources/Iconos/Referencias genéricas/16x16/Label-Edit.png create mode 100644 Resources/Iconos/Referencias genéricas/16x16/Thumbs.db create mode 100644 Resources/Iconos/Referencias genéricas/16x16/enespera.png create mode 100644 Resources/Iconos/Referencias genéricas/16x16/pendiente.png create mode 100644 Resources/Iconos/Referencias genéricas/16x16/resuelto.png create mode 100644 Resources/Iconos/Referencias genéricas/24x24/Label-Edit.png create mode 100644 Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png create mode 100644 Resources/Iconos/Servidor.ico create mode 100644 Resources/Iconos/Servidor/16x16/Database.png create mode 100644 Resources/Iconos/Servidor/16x16/Thumbs.db create mode 100644 Resources/Iconos/Servidor/24x24/Database.png create mode 100644 Resources/Iconos/Servidor/24x24/Thumbs.db create mode 100644 Resources/Iconos/Servidor/28x28/Database.png create mode 100644 Resources/Iconos/Servidor/28x28/Thumbs.db create mode 100644 Resources/Iconos/Stock/16x16/Task.png create mode 100644 Resources/Iconos/Stock/16x16/Thumbs.db create mode 100644 Resources/Iconos/Stock/24x24/Task.png create mode 100644 Resources/Iconos/Stock/24x24/Thumbs.db create mode 100644 Resources/Iconos/Stock/28x28/Task.png create mode 100644 Resources/Iconos/Stock/28x28/Thumbs.db create mode 100644 Resources/Iconos/Thumbs.db create mode 100644 Resources/Iconos/Traspasos/16x16/Entrada.png create mode 100644 Resources/Iconos/Traspasos/16x16/Salida.png create mode 100644 Resources/Iconos/Traspasos/16x16/Swap.png create mode 100644 Resources/Iconos/Traspasos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Traspasos/24x24/Swap.png create mode 100644 Resources/Iconos/Traspasos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Traspasos/28x28/Swap.png create mode 100644 Resources/Iconos/Traspasos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/16x16/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/16x16/User-Add.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Password.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/16x16/User.png create mode 100644 Resources/Iconos/Usuarios/16x16/Users.png create mode 100644 Resources/Iconos/Usuarios/24x24/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/24x24/User-Add.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Password.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/24x24/User.png create mode 100644 Resources/Iconos/Usuarios/24x24/Users.png create mode 100644 Resources/Iconos/Usuarios/28x28/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/28x28/User-Add.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Password.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/28x28/User.png create mode 100644 Resources/Iconos/Usuarios/28x28/Users.png create mode 100644 Resources/Iconos/Usuarios/48x48/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/48x48/Users.png create mode 100644 Resources/Iconos/Ventas en proceso/16x16/Thumbs.db create mode 100644 Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png create mode 100644 Resources/Iconos/Ventas en proceso/24x24/Thumbs.db create mode 100644 Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png create mode 100644 Resources/Iconos/Ventas terminadas/16x16/Currency-Notes.png create mode 100644 Resources/Iconos/Ventas terminadas/16x16/Currency.png create mode 100644 Resources/Iconos/Ventas terminadas/16x16/Report.png create mode 100644 Resources/Iconos/Ventas terminadas/16x16/Thumbs.db create mode 100644 Resources/Iconos/Ventas terminadas/16x16/Venta terminada.png create mode 100644 Resources/Iconos/Ventas terminadas/24x24/Currency-Notes.png create mode 100644 Resources/Iconos/Ventas terminadas/24x24/Currency.png create mode 100644 Resources/Iconos/Ventas terminadas/24x24/Report.png create mode 100644 Resources/Iconos/Ventas terminadas/24x24/Thumbs.db create mode 100644 Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png create mode 100644 Resources/Iconos/Ventas terminadas/28x28/Currency-Notes.png create mode 100644 Resources/Iconos/Ventas terminadas/28x28/Currency.png create mode 100644 Resources/Iconos/Ventas terminadas/28x28/Report.png create mode 100644 Resources/Iconos/Ventas terminadas/28x28/Thumbs.db create mode 100644 Resources/Imagenes/Cabecera.jpg create mode 100644 Resources/Imagenes/Cabecera.psd create mode 100644 Resources/Imagenes/Thumbs.db create mode 100644 Resources/Imagenes/WaitProgress/1021.BMP create mode 100644 Resources/Imagenes/WaitProgress/1022.BMP create mode 100644 Resources/Imagenes/WaitProgress/1023.BMP create mode 100644 Resources/Imagenes/WaitProgress/1024.BMP create mode 100644 Resources/Imagenes/WaitProgress/1025.BMP create mode 100644 Resources/Imagenes/WaitProgress/1026.BMP create mode 100644 Resources/Imagenes/WaitProgress/1027.BMP create mode 100644 Resources/Imagenes/WaitProgress/1028.BMP create mode 100644 Resources/Imagenes/WaitProgress/1029.BMP create mode 100644 Resources/Imagenes/WaitProgress/1030.BMP create mode 100644 Resources/Imagenes/WaitProgress/1031.BMP create mode 100644 Resources/Imagenes/WaitProgress/1032.BMP create mode 100644 Resources/Imagenes/WaitProgress/1033.BMP create mode 100644 Resources/Imagenes/WaitProgress/Thumbs.db create mode 100644 Resources/Imagenes/Watermark Ficheros.psd create mode 100644 Resources/Imagenes/Watermark-Ficheros.png create mode 100644 Source/AdminPVGroup.bdsgroup create mode 100644 Source/AdminPVGroup.bdsgroup.local create mode 100644 Source/AdminPVGroup.bpg create mode 100644 Source/Base/BaseD10.bdsproj create mode 100644 Source/Base/BaseD10.dpk create mode 100644 Source/Base/BaseD10.drc create mode 100644 Source/Base/BaseD10.identcache create mode 100644 Source/Base/BaseD10.rc create mode 100644 Source/Base/BaseD10.res create mode 100644 Source/Base/uBizInformesBase.pas create mode 100644 Source/Base/uConfigurarConexion.dfm create mode 100644 Source/Base/uConfigurarConexion.pas create mode 100644 Source/Base/uDBSelectionList.pas create mode 100644 Source/Base/uDataModuleBase.dfm create mode 100644 Source/Base/uDataModuleBase.pas create mode 100644 Source/Base/uDataTableUtils.pas create mode 100644 Source/Base/uEditorBase.dfm create mode 100644 Source/Base/uEditorBase.pas create mode 100644 Source/Base/uEditorDBBase.ddp create mode 100644 Source/Base/uEditorDBBase.dfm create mode 100644 Source/Base/uEditorDBBase.pas create mode 100644 Source/Base/uEditorDBItem.ddp create mode 100644 Source/Base/uEditorDBItem.dfm create mode 100644 Source/Base/uEditorDBItem.pas create mode 100644 Source/Base/uEditorGridBase.dfm create mode 100644 Source/Base/uEditorGridBase.pas create mode 100644 Source/Base/uEditorItem.dfm create mode 100644 Source/Base/uEditorItem.pas create mode 100644 Source/Base/uEditorPSPreview.dfm create mode 100644 Source/Base/uEditorPSPreview.pas create mode 100644 Source/Base/uEditorPreview.dfm create mode 100644 Source/Base/uEditorPreview.pas create mode 100644 Source/Base/uEditorUtils.pas create mode 100644 Source/Base/uExceptions.pas create mode 100644 Source/Base/uGridUtils.pas create mode 100644 Source/Base/uIntegerList.pas create mode 100644 Source/Base/uSysFunc.pas create mode 100644 Source/Base/uViewBarraSeleccion.dfm create mode 100644 Source/Base/uViewBarraSeleccion.pas create mode 100644 Source/Base/uViewBase.dfm create mode 100644 Source/Base/uViewBase.pas create mode 100644 Source/Base/uViewGrid.dfm create mode 100644 Source/Base/uViewGrid.pas create mode 100644 Source/Base/uViewGridBase.ddp create mode 100644 Source/Base/uViewGridBase.dfm create mode 100644 Source/Base/uViewGridBase.pas create mode 100644 Source/Base/uViewPreview.dfm create mode 100644 Source/Base/uViewPreview.pas create mode 100644 Source/CargaEDI/CargaEDI.bdsproj create mode 100644 Source/CargaEDI/CargaEDI.cfg create mode 100644 Source/CargaEDI/CargaEDI.dof create mode 100644 Source/CargaEDI/CargaEDI.dpr create mode 100644 Source/CargaEDI/CargaEDI.drc create mode 100644 Source/CargaEDI/CargaEDI.identcache create mode 100644 Source/CargaEDI/CargaEDI.rc create mode 100644 Source/CargaEDI/CargaEDI.res create mode 100644 Source/CargaEDI/uCargaEDI.ddp create mode 100644 Source/CargaEDI/uCargaEDI.dfm create mode 100644 Source/CargaEDI/uCargaEDI.pas create mode 100644 Source/ClearFiles.msbuild create mode 100644 Source/Cliente/AdminPV.bdsproj create mode 100644 Source/Cliente/AdminPV.cfg create mode 100644 Source/Cliente/AdminPV.dof create mode 100644 Source/Cliente/AdminPV.dpr create mode 100644 Source/Cliente/AdminPV.drc create mode 100644 Source/Cliente/AdminPV.identcache create mode 100644 Source/Cliente/AdminPV.rc create mode 100644 Source/Cliente/AdminPV.res create mode 100644 Source/Cliente/uAcercaDe.dfm create mode 100644 Source/Cliente/uAcercaDe.pas create mode 100644 Source/Cliente/uMenuUtils.pas create mode 100644 Source/Cliente/uPantallaPrincipal.ddp create mode 100644 Source/Cliente/uPantallaPrincipal.dfm create mode 100644 Source/Cliente/uPantallaPrincipal.pas create mode 100644 Source/Cliente/uSplash.ddp create mode 100644 Source/Cliente/uSplash.dfm create mode 100644 Source/Cliente/uSplash.pas create mode 100644 Source/Configuracion/Configuracion.bdsproj create mode 100644 Source/Configuracion/Configuracion.cfg create mode 100644 Source/Configuracion/Configuracion.dof create mode 100644 Source/Configuracion/Configuracion.dpk create mode 100644 Source/Configuracion/Configuracion.drc create mode 100644 Source/Configuracion/Configuracion.rc create mode 100644 Source/Configuracion/Configuracion.res create mode 100644 Source/Configuracion/uPanelControl.dfm create mode 100644 Source/Configuracion/uPanelControl.pas create mode 100644 Source/ControlesBase/Cliente/uDataModuleControles.ddp create mode 100644 Source/ControlesBase/Cliente/uDataModuleControles.dfm create mode 100644 Source/ControlesBase/Cliente/uDataModuleControles.pas create mode 100644 Source/ControlesBase/Cliente/uDateUtils.pas create mode 100644 Source/ControlesBase/Cliente/uEditorControlBase.ddp create mode 100644 Source/ControlesBase/Cliente/uEditorControlBase.dfm create mode 100644 Source/ControlesBase/Cliente/uEditorControlBase.pas create mode 100644 Source/ControlesBase/Cliente/uEditorControlesBase.dfm create mode 100644 Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk create mode 100644 Source/ControlesBase/Cliente/uEditorControlesBase.pas create mode 100644 Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm create mode 100644 Source/ControlesBase/Cliente/uFormPropiedadesControl.pas create mode 100644 Source/ControlesBase/Cliente/uViewAgrupaciones.ddp create mode 100644 Source/ControlesBase/Cliente/uViewAgrupaciones.dfm create mode 100644 Source/ControlesBase/Cliente/uViewAgrupaciones.pas create mode 100644 Source/ControlesBase/Cliente/uViewColumnas.ddp create mode 100644 Source/ControlesBase/Cliente/uViewColumnas.dfm create mode 100644 Source/ControlesBase/Cliente/uViewColumnas.pas create mode 100644 Source/ControlesBase/Cliente/uViewControlBase.ddp create mode 100644 Source/ControlesBase/Cliente/uViewControlBase.dfm create mode 100644 Source/ControlesBase/Cliente/uViewControlBase.pas create mode 100644 Source/ControlesBase/Cliente/uViewControlGrid.ddp create mode 100644 Source/ControlesBase/Cliente/uViewControlGrid.dfm create mode 100644 Source/ControlesBase/Cliente/uViewControlGrid.pas create mode 100644 Source/ControlesBase/Cliente/uViewControlesBase.dfm create mode 100644 Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk create mode 100644 Source/ControlesBase/Cliente/uViewControlesBase.pas create mode 100644 Source/ControlesBase/Cliente/uViewFiltros.ddp create mode 100644 Source/ControlesBase/Cliente/uViewFiltros.dfm create mode 100644 Source/ControlesBase/Cliente/uViewFiltros.pas create mode 100644 Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp create mode 100644 Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm create mode 100644 Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas create mode 100644 Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp create mode 100644 Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm create mode 100644 Source/ControlesBase/Cliente/uViewPeriodoFechas.pas create mode 100644 Source/ControlesBase/Cliente/uViewSumarios.ddp create mode 100644 Source/ControlesBase/Cliente/uViewSumarios.dfm create mode 100644 Source/ControlesBase/Cliente/uViewSumarios.pas create mode 100644 Source/ControlesBase/ControlesBaseD10.bdsproj create mode 100644 Source/ControlesBase/ControlesBaseD10.dpk create mode 100644 Source/ControlesBase/ControlesBaseD10.drc create mode 100644 Source/ControlesBase/ControlesBaseD10.identcache create mode 100644 Source/ControlesBase/ControlesBaseD10.rc create mode 100644 Source/ControlesBase/ControlesBaseD10.res create mode 100644 Source/ControlesBase/Reglas/schControlesClient_Intf.pas create mode 100644 Source/ControlesBase/Reglas/schControlesServer_Intf.pas create mode 100644 Source/ControlesBase/Reglas/uBizControlesBase.pas create mode 100644 Source/ControlesBase/Servidor/srvControles_Impl.ddp create mode 100644 Source/ControlesBase/Servidor/srvControles_Impl.dfm create mode 100644 Source/ControlesBase/Servidor/srvControles_Impl.pas create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.dof create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.drc create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.rc create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.res create mode 100644 Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc create mode 100644 Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc create mode 100644 Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp create mode 100644 Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm create mode 100644 Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm create mode 100644 Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp create mode 100644 Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm create mode 100644 Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp create mode 100644 Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm create mode 100644 Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas create mode 100644 Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp create mode 100644 Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm create mode 100644 Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res create mode 100644 Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.ddp create mode 100644 Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp create mode 100644 Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk create mode 100644 Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp create mode 100644 Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp create mode 100644 Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas create mode 100644 Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp create mode 100644 Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm create mode 100644 Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk create mode 100644 Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas create mode 100644 Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas create mode 100644 Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas create mode 100644 Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.bdsproj create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.cfg create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.dof create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.dpk create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.drc create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.identcache create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.rc create mode 100644 Source/Modulos/Parametros/Cliente/Parametros.res create mode 100644 Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp create mode 100644 Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm create mode 100644 Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm create mode 100644 Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas create mode 100644 Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas create mode 100644 Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas create mode 100644 Source/Modulos/Parametros/Reglas/uBizParametros.pas create mode 100644 Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp create mode 100644 Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm create mode 100644 Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.cfg create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.dof create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.dpk create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.drc create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.identcache create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.rc create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.res create mode 100644 Source/Modulos/Recepciones/Cliente/cxVerticalGridD10.drc create mode 100644 Source/Modulos/Recepciones/Cliente/cxVerticalGridVCLD7.drc create mode 100644 Source/Modulos/Recepciones/Cliente/dxLayoutControlD10.drc create mode 100644 Source/Modulos/Recepciones/Cliente/rtl.drc create mode 100644 Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm create mode 100644 Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas create mode 100644 Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup create mode 100644 Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local create mode 100644 Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas create mode 100644 Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm create mode 100644 Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas create mode 100644 Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp create mode 100644 Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm create mode 100644 Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas create mode 100644 Source/Modulos/Stock/Cliente/Stock.bdsproj create mode 100644 Source/Modulos/Stock/Cliente/Stock.cfg create mode 100644 Source/Modulos/Stock/Cliente/Stock.dof create mode 100644 Source/Modulos/Stock/Cliente/Stock.dpk create mode 100644 Source/Modulos/Stock/Cliente/Stock.drc create mode 100644 Source/Modulos/Stock/Cliente/Stock.identcache create mode 100644 Source/Modulos/Stock/Cliente/Stock.rc create mode 100644 Source/Modulos/Stock/Cliente/Stock.res create mode 100644 Source/Modulos/Stock/Cliente/cxVerticalGridD10.drc create mode 100644 Source/Modulos/Stock/Cliente/teedb.drc create mode 100644 Source/Modulos/Stock/Cliente/uDataModuleStock.ddp create mode 100644 Source/Modulos/Stock/Cliente/uDataModuleStock.dfm create mode 100644 Source/Modulos/Stock/Cliente/uDataModuleStock.pas create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm create mode 100644 Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas create mode 100644 Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm create mode 100644 Source/Modulos/Stock/Cliente/uPluginControllerStock.pas create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm create mode 100644 Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas create mode 100644 Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm create mode 100644 Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas create mode 100644 Source/Modulos/Stock/Reglas/schStockClient_Intf.pas create mode 100644 Source/Modulos/Stock/Reglas/schStockServer_Intf.pas create mode 100644 Source/Modulos/Stock/Reglas/uBizStock.pas create mode 100644 Source/Modulos/Stock/Servidor/srvStock_Impl.ddp create mode 100644 Source/Modulos/Stock/Servidor/srvStock_Impl.dfm create mode 100644 Source/Modulos/Stock/Servidor/srvStock_Impl.pas create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.cfg create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.dof create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.dpk create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.drc create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.rc create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.res create mode 100644 Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.ddp create mode 100644 Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm create mode 100644 Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm create mode 100644 Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp create mode 100644 Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm create mode 100644 Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp create mode 100644 Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm create mode 100644 Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas create mode 100644 Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp create mode 100644 Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm create mode 100644 Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.dof create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.drc create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.rc create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.res create mode 100644 Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.ddp create mode 100644 Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp create mode 100644 Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp create mode 100644 Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm create mode 100644 Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas create mode 100644 Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas create mode 100644 Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas create mode 100644 Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas create mode 100644 Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas create mode 100644 Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp create mode 100644 Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm create mode 100644 Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res create mode 100644 Source/Modulos/VentasTerminadas/Cliente/_uEditorControlVentasTerminadasCrossTab.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm create mode 100644 Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas create mode 100644 Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas create mode 100644 Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp create mode 100644 Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm create mode 100644 Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas create mode 100644 Source/Servidor/AdminPV_Server.bdsproj create mode 100644 Source/Servidor/AdminPV_Server.cfg create mode 100644 Source/Servidor/AdminPV_Server.dof create mode 100644 Source/Servidor/AdminPV_Server.dpr create mode 100644 Source/Servidor/AdminPV_Server.drc create mode 100644 Source/Servidor/AdminPV_Server.identcache create mode 100644 Source/Servidor/AdminPV_Server.rc create mode 100644 Source/Servidor/AdminPV_Server.res create mode 100644 Source/Servidor/Configuracion/uConexionBD.ddp create mode 100644 Source/Servidor/Configuracion/uConexionBD.dfm create mode 100644 Source/Servidor/Configuracion/uConexionBD.pas create mode 100644 Source/Servidor/Configuracion/uConfFicherosEDI.ddp create mode 100644 Source/Servidor/Configuracion/uConfFicherosEDI.dfm create mode 100644 Source/Servidor/Configuracion/uConfFicherosEDI.pas create mode 100644 Source/Servidor/Configuracion/uConfGeneral.ddp create mode 100644 Source/Servidor/Configuracion/uConfGeneral.dfm create mode 100644 Source/Servidor/Configuracion/uConfGeneral.pas create mode 100644 Source/Servidor/Configuracion/uConfiguracion.ddp create mode 100644 Source/Servidor/Configuracion/uConfiguracion.dfm create mode 100644 Source/Servidor/Configuracion/uConfiguracion.pas create mode 100644 Source/Servidor/Configuracion/uFrameConfiguracion.dfm create mode 100644 Source/Servidor/Configuracion/uFrameConfiguracion.pas create mode 100644 Source/Servidor/EDI/EDI_INVRPT.pas create mode 100644 Source/Servidor/EDI/EDI_Log_Impl.ddp create mode 100644 Source/Servidor/EDI/EDI_Log_Impl.dfm create mode 100644 Source/Servidor/EDI/EDI_Log_Impl.pas create mode 100644 Source/Servidor/EDI/EDI_Reader.pas create mode 100644 Source/Servidor/EDI/EDI_SLSRPT.pas create mode 100644 Source/Servidor/EDI_Inventary_Impl.dfm create mode 100644 Source/Servidor/EDI_Inventary_Impl.pas create mode 100644 Source/Servidor/EDI_Log_Impl.dfm create mode 100644 Source/Servidor/EDI_Log_Impl.pas create mode 100644 Source/Servidor/EDI_Sales_Impl.dfm create mode 100644 Source/Servidor/EDI_Sales_Impl.pas create mode 100644 Source/Servidor/EDI_Utils.pas create mode 100644 Source/Servidor/RDX_VARELA.daConnections create mode 100644 Source/Servidor/RDX_VARELA.daDictionary create mode 100644 Source/Servidor/RDX_VARELA.daSchema create mode 100644 Source/Servidor/RODLFILE.res create mode 100644 Source/Servidor/RegExpr.pas create mode 100644 Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp create mode 100644 Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm create mode 100644 Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas create mode 100644 Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas create mode 100644 Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas create mode 100644 Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas create mode 100644 Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp create mode 100644 Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm create mode 100644 Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas create mode 100644 Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp create mode 100644 Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm create mode 100644 Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas create mode 100644 Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas create mode 100644 Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas create mode 100644 Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas create mode 100644 Source/Servidor/Services/EDI_Sales/uBizEDISales.pas create mode 100644 Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp create mode 100644 Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm create mode 100644 Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas create mode 100644 Source/Servidor/Services/Login/srvLogin_Impl.ddp create mode 100644 Source/Servidor/Services/Login/srvLogin_Impl.dfm create mode 100644 Source/Servidor/Services/Login/srvLogin_Impl.pas create mode 100644 Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp create mode 100644 Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm create mode 100644 Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas create mode 100644 Source/Servidor/VARELA.RODL create mode 100644 Source/Servidor/VARELA_Intf.pas create mode 100644 Source/Servidor/VARELA_Invk.pas create mode 100644 Source/Servidor/cxVerticalGridD10.drc create mode 100644 Source/Servidor/fServerForm.ddp create mode 100644 Source/Servidor/fServerForm.dfm create mode 100644 Source/Servidor/fServerForm.pas create mode 100644 Source/Servidor/srvInformes_Impl.ddp create mode 100644 Source/Servidor/srvInformes_Impl.dfm create mode 100644 Source/Servidor/srvInformes_Impl.pas create mode 100644 Source/Servidor/uAcercaDe.ddp create mode 100644 Source/Servidor/uAcercaDe.dfm create mode 100644 Source/Servidor/uAcercaDe.pas create mode 100644 Source/Servidor/uDataModuleServer.ddp create mode 100644 Source/Servidor/uDataModuleServer.dfm create mode 100644 Source/Servidor/uDataModuleServer.pas create mode 100644 Source/Servidor/uSchemaUtilsServer.pas create mode 100644 Source/Usuarios/Usuarios.bdsproj create mode 100644 Source/Usuarios/Usuarios.cfg create mode 100644 Source/Usuarios/Usuarios.dof create mode 100644 Source/Usuarios/Usuarios.dpk create mode 100644 Source/Usuarios/Usuarios.drc create mode 100644 Source/Usuarios/Usuarios.identcache create mode 100644 Source/Usuarios/Usuarios.rc create mode 100644 Source/Usuarios/Usuarios.res create mode 100644 Source/Usuarios/uCambiarPassword.dfm create mode 100644 Source/Usuarios/uCambiarPassword.pas create mode 100644 Source/Usuarios/uDataModuleUsuarios.ddp create mode 100644 Source/Usuarios/uDataModuleUsuarios.dfm create mode 100644 Source/Usuarios/uDataModuleUsuarios.pas create mode 100644 Source/Usuarios/uLoginForm.ddp create mode 100644 Source/Usuarios/uLoginForm.dfm create mode 100644 Source/Usuarios/uLoginForm.pas create mode 100644 Source/Usuarios/uUsuario.dfm create mode 100644 Source/Usuarios/uUsuario.pas create mode 100644 Source/Usuarios/uUsuarios.dfm create mode 100644 Source/Usuarios/uUsuarios.pas create mode 100644 Source/leeme.txt create mode 100644 Source/uDADataTable.pas diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 new file mode 100644 index 0000000000000000000000000000000000000000..dd58805fdeab2a06bd1ab29789e2cd5a94d5b18e GIT binary patch literal 2621440 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

t=9^YF>Vr;Ev|dim3FPk)bkGt4i5FB3--D6 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 XfB*=900@8p2!H?xv=D)lbS?h@8ui%p literal 0 HcmV?d00001 diff --git a/Build/Build.fbp5 b/Build/Build.fbp5 new file mode 100644 index 0000000..f25caf3 --- /dev/null +++ b/Build/Build.fbp5 @@ -0,0 +1,2825 @@ + + + + + + base.fbz5 + + + 0 + + + + False + True + Main + {4C1B4E5D-F42F-4877-9F28-41B527858954} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + False + True + True + True + ftString + False + True + False + + 0 + smNone + %FBPROJECTDIR% + False + 0 + 1000 + False + project_path + + + + + 0 + {78526C82-A8E7-42B3-8C9D-1E229C79D915} + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + + True + True + + project_path + \Build + + False + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + + + True + True + False + False + True + + + True + False + + False + + True + False + True + + 0 + False + + + 0 + 0 + tpNormal + True + 1000 + rcEqualTo + 0 + %source_path% + False + True + 1 + True + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + search_path + False + True + False + + 0 + False + 0 + SOFTWARE\Borland\BDS\5.0\Library + -2147483647 + rtString + + + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + True + True + True + False + True + False + False + + 0 + False + 0 + 1000 + False + + + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Servidor + 0 + + Servidor + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\Servidor.ico + False + True + True + True + False + False + False + False + False + False + False + True + 3082 + + 1 + 0 + 2 + False + 0 + %source_path%\Servidor\AdminPV_Server.dpr + True + 5 + + + rcBorland + 1000 + %source_path%\Servidor\ + False + True + False + False + [usPackages,usVersionInfo] + False + True + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path%\Servidor + False + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;vclsmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclofficexp;cxlibraryvcld7;dxthemed7;cxtreelistvcld7;cxeditorsvcld7;cxdatad7;cxexteditorsvcld7;cxgridvcld7;cxpagecontrolvcld7;cxschedulervcld7;dxcomnd7;dxsbd7;dxbard7;dxbardbnavd7;dxbarextdbitemsd7;dxbarextitemsd7;dxdockingd7;dxlayoutcontrold7;dxnavbard7;dxpscored7;cxexportvcld7;cxintl5d7;cxintlprintsys3d7;cxintlschedulerd7;fsibx7;fs7;fqb70;frx7;frxado7;frxbde7;frxcs7;frxdb7;frxdbx7;frxe7;frxibx7;fsado7;fsbde7;fsdb7;cxverticalgridvcld7;easylistviewd7;remobjects_indy_d10;indyprotocols;indycore;indysystem;pascalscript_ro_d10;dataabstract_core_d10;dataabstract_scripting_d10;dataabstract_ide_d10 + False + fa8 + True + False + ..\Lib;..\Base + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + .\ + False + False + True + + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Base + 255 + + Base + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Base\BaseD10.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\ControlesBase\ControlesBaseD10.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Parametros\Cliente\Parametros.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Usuarios\Usuarios.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Configuracion\Configuracion.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + Módulos + 0 + + Módulos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Devoluciones\Cliente\Devoluciones.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Stock\Cliente\Stock.dpk + True + 2 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + Cliente + 0 + + Cliente + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\Cliente.ico + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 1 + False + 0 + %source_path%\Cliente\AdminPV.dpr + True + 1 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + based10;configuracion;controlesbased10;usuarios;ficherosedi;ventasproceso;ventasterminadas;referenciagenerica + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + True + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\CargaEDI.ico + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 1 + False + 0 + %source_path%\CargaEDI\CargaEDI.dpr + True + 1 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + based10;configuracion;ficherosedi;rtl;dbrtl;vcldb;dataabstract_core_d10;dataabstract_ide_d10 + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + True + True + + + + + + + 0 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Servidor\FactuGES_Server.exe + + True + True + False + True + True + True + False + False + False + + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Cliente\FactuGES.exe + + True + True + False + True + True + True + False + False + False + + + + + + 0 + + True + False + True + efHTML + False + True + True + True + True + True + True + True + True + False + + 0 + False + + + %project_path%\Build\buildlog.html + 0 + 1000 + False + + + + + + True + False + OnFailure + {BA6B406D-5FE5-4FF9-8D33-0459EBECDF95} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + Project + + %project_path%\Output\Debug + True + False + False + output_path + vtProject + + + + + False + False + False + search_path + vtProject + + + + + + False + False + False + library_path + vtProject + + + %output_path%\Cliente + True + False + False + package_path + vtProject + + + + + False + True + False + project_path + vtProject + + + %source_path%\Lib + True + False + False + modules_dcp_path + vtProject + + + %source_path%\Lib + True + False + False + base_dcp_path + vtProject + + + %DELPHI2006% + False + False + False + DELPHI + vtProject + + + %project_path%\Source + True + False + False + source_path + vtProject + + + + diff --git a/Build/Build.fbv b/Build/Build.fbv new file mode 100644 index 0000000..bd99b75 --- /dev/null +++ b/Build/Build.fbv @@ -0,0 +1 @@ + diff --git a/Build/Build.fbw b/Build/Build.fbw new file mode 100644 index 0000000..e69de29 diff --git a/Build/buildlog.html b/Build/buildlog.html new file mode 100644 index 0000000..e6beb80 --- /dev/null +++ b/Build/buildlog.html @@ -0,0 +1,1298 @@ + + + + + + +FinalBuilder Log for Project Build.fbp5 + + +

FinalBuilder 5 LogFile for Build.fbp5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Project File :C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build\Build.fbl5
Log Title :Build.fbp5
Date :06/09/2007
Start Time :12:09:00
End Time :12:09:45
Run Time :00:00:45

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusAction NameDescriptionStart TimeEnd TimeRun TimeOutput
Show All
Hide All
-Action ListAction List: Main12:09:0012:09:4500:00:45
CompletedSet VariableSet Variable project_path to [ C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build ]12:09:0012:09:0000:00:00
CompletedString ReplaceString Replace12:09:0012:09:0000:00:00View
+
+
CompletedAction GroupBorrar ficheros temporales12:09:0012:09:0000:00:00
CompletedRun DOS CommandRun DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ClearFiles.msbuild" /t:CleanFiles ]12:09:0012:09:0200:00:02View
+
+
CompletedRead Registry ValueLeer la ruta de búsqueda de Delphi desde el registro12:09:0212:09:0200:00:00View
+
+
CompletedLog Variable ValuesLog Variable Values12:09:0212:09:0200:00:00View
+
+
CompletedAction GroupServidor12:09:0212:09:0200:00:00
CompletedCompile Delphi Win32 ProjectCompile Servidor\AdminPV_Server.dpr12:09:0212:09:2200:00:19View
+
+
CompletedAction GroupBase12:09:2212:09:2200:00:00
CompletedCompile Delphi Win32 ProjectCompile Base\BaseD10.dpk12:09:2212:09:2400:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile ControlesBase\ControlesBaseD10.dpk12:09:2412:09:2500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Parametros\Cliente\Parametros.dpk12:09:2512:09:2700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Usuarios\Usuarios.dpk12:09:2712:09:2800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Configuracion\Configuracion.dpk12:09:2812:09:2900:00:01View
+
+
CompletedAction GroupMódulos12:09:2912:09:2900:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\FicherosEDI\Cliente\FicherosEDI.dpk12:09:2912:09:3100:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk12:09:3112:09:3200:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasProceso\Cliente\VentasProceso.dpk12:09:3212:09:3400:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk12:09:3412:09:3500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recepciones\Cliente\Recepciones.dpk12:09:3512:09:3700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Devoluciones\Cliente\Devoluciones.dpk12:09:3712:09:3800:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Traspasos\Cliente\Traspasos.dpk12:09:3812:09:4000:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Stock\Cliente\Stock.dpk12:09:4012:09:4200:00:01View
+
+
CompletedAction GroupCliente12:09:4212:09:4200:00:00
CompletedCompile Delphi Win32 ProjectCompile Cliente\AdminPV.dpr ]12:09:4212:09:4400:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile CargaEDI\CargaEDI.dpr ]12:09:4412:09:4500:00:00View
+
+
CompletedExport LogExport Log12:09:4512:09:4500:00:00


+ + + diff --git a/Database/1 - tablas.sql b/Database/1 - tablas.sql new file mode 100644 index 0000000..b3035f6 --- /dev/null +++ b/Database/1 - tablas.sql @@ -0,0 +1,878 @@ +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CABINV] +GO + +CREATE TABLE [RDX_CABINV] ( + [NUMDOC] varchar(25) NOT NULL, + [TIPODOC] varchar(3) NULL, + [TIPOLIQ] varchar(3) NULL, + [FECHA] datetime NULL, + [FECHALIQ] datetime NULL, + [EMISOR] varchar(17) NULL, + [RECEPTOR] varchar(17) NULL, + [DPTO] varchar(3) NULL, + [CENTRO] varchar(17) NULL, + [FECHA_CARGA] datetime NULL, + [IGNORAR] varchar(1) NULL, + [CARGADO] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CABINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] + ([FECHALIQ]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx3] ON [RDX_CABINV] + ([IGNORAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LININV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LININV] +GO + +CREATE TABLE [RDX_LININV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [CODART] varchar(17) NULL, + [FAMILIA] varchar(17) NULL, + [BARRA] varchar(17) NULL, + [TALLA] varchar(17) NULL, + [MARCA] varchar(25) NULL, + [TAMANO] varchar(25) NULL, + [SERIE] varchar(25) NULL, + [COLOR] varchar(25) NULL, + [MODELO] varchar(25) NULL, + [DIBUJO] varchar(25) NULL, + [DESCRIP] varchar(70) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LININV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] + ([CODART]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CANTINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CANTINV] +GO + +CREATE TABLE [RDX_CANTINV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO] varchar(17) NULL, + [TMOV] varchar(3) NULL, + [FACT] varchar(12) NULL, + [DEPTO] varchar(3) NULL, + [IDVEN] varchar(10) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CANTINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] + ([IDVEN]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CABVEN] +GO + +CREATE TABLE [RDX_CABVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [NUMINF] varchar(35) NULL, + [FUNCION] varchar(10) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [FECINF] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL, + [EANOFI] varchar(17) NULL, + [EANEMI] varchar(17) NULL, + [EANREC] varchar(17) NULL, + [EANVEN] varchar(17) NULL, + [EANALM] varchar(17) NULL, + [EANREP] varchar(17) NULL, + [EANPRO] varchar(17) NULL, + [EANADMSA] varchar(17) NULL, + [EANREPSR] varchar(17) NULL, + [ADMVENSA] varchar(35) NULL, + [REPDEPSR] varchar(35) NULL, + [EMAILSA] varchar(35) NULL, + [NUMFAXSA] varchar(35) NULL, + [NUMTELSA] varchar(35) NULL, + [NUMTLXSA] varchar(35) NULL, + [X400SA] varchar(35) NULL, + [EMAILSR] varchar(35) NULL, + [NUMFAXSR] varchar(35) NULL, + [NUMTELSR] varchar(35) NULL, + [NUMTLXSR] varchar(35) NULL, + [X400SR] varchar(35) NULL, + [NUMPRE] varchar(35) NULL, + [NUMINFSC] varchar(35) NULL, + [NUMCON] varchar(35) NULL, + [FECPRE] datetime NULL, + [FECINFSC] datetime NULL, + [FECCON] datetime NULL, + [DIVPED] varchar(3) NULL, + [DIVPRE] varchar(3) NULL, + [DIVPAG] varchar(3) NULL, + [DIVPEDF] varchar(3) NULL, + [DIVPREF] varchar(3) NULL, + [DIVPAGF] varchar(3) NULL, + [TASCAM] numeric(15, 3) NULL, + [FECTAS] datetime NULL, + [FECHA_CARGA] datetime NULL, + [IGNORAR] varchar(1) NULL, + [CARGADO] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CABVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [RDX_CABVEN] + ([NUMINF]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [RDX_CABVEN] + ([IGNORAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LUGVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LUGVEN] +GO + +CREATE TABLE [RDX_LUGVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [EANLUG] varchar(17) NULL, + [LUGVEN] varchar(70) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [RDX_LUGVEN] + ([EANLUG]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_ARTVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_ARTVEN] +GO + +CREATE TABLE [RDX_ARTVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [NUMVAR] varchar(35) NULL, + [CODPRO] varchar(35) NULL, + [DESARTCO] varchar(35) NULL, + [DESART] varchar(70) NULL, + [NUMCON] varchar(35) NULL, + [NUMLIS] varchar(35) NULL, + [CONESP1] varchar(3) NULL, + [CONESP2] varchar(3) NULL, + [CONESP3] varchar(3) NULL, + [VALVEN] numeric(15, 3) NULL, + [PRENETCT] numeric(15, 3) NULL, + [PREBRUCT] numeric(15, 3) NULL, + [PREINFET] numeric(15, 3) NULL, + [PREINFFT] numeric(15, 3) NULL, + [PRECALCT] numeric(15, 3) NULL, + [PRENETCA] numeric(15, 3) NULL, + [PREBRUCA] numeric(15, 3) NULL, + [PREINFEA] numeric(15, 3) NULL, + [PREINFFA] numeric(15, 3) NULL, + [PRECALCA] numeric(15, 3) NULL, + [BAPRUN1] numeric(9, 0) NULL, + [UNIMED1] varchar(3) NULL, + [BAPRUN2] numeric(9, 0) NULL, + [UNIMED2] varchar(3) NULL, + [BAPRUN3] numeric(9, 0) NULL, + [UNIMED3] varchar(3) NULL, + [BAPRUN4] numeric(9, 0) NULL, + [UNIMED4] varchar(3) NULL, + [BAPRUN5] numeric(9, 0) NULL, + [UNIMED5] varchar(3) NULL, + [CANVEN] numeric(15, 3) NULL, + [EXIPRO] numeric(15, 3) NULL, + [DESEXI] numeric(15, 3) NULL, + [ESPMEDCV] varchar(3) NULL, + [ESPMEDEP] varchar(3) NULL, + [ESPMEDDE] varchar(3) NULL, + [CANDEV] numeric(15, 3) NULL, + [EANVEN] varchar(17) NULL, + [NOMVEN] varchar(70) NULL, + [NUMTALON] varchar(35) NULL, + [CANVENNET] numeric(15, 3) NULL, + [UMEDVENNET] varchar(3) NULL, + [CANESP] numeric(15, 3) NULL, + [UMEDESP] varchar(3) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [RDX_ARTVEN] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [RDX_ARTVEN] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [RDX_ARTVEN] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [RDX_ARTVEN] + ([EANVEN]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INFORMES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INFORMES] +GO + +CREATE TABLE [RDX_INFORMES] ( + [ID] smallint IDENTITY(1, 1) NOT NULL, + [CATEGORIA] varchar(15) NULL, + [ICONO] smallint NULL, + [NOMBRE] varchar(50) NULL, + [DESCRIPCION] varchar(255) NULL, + [ORDEN] smallint NULL, + [VISTA] text NULL, + [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL +) +ON [PRIMARY] +TEXTIMAGE_ON [PRIMARY] +GO + +ALTER TABLE [RDX_INFORMES] +ADD CONSTRAINT [RDX_INFORMES_pk] +PRIMARY KEY CLUSTERED ([ID]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [RDX_INFORMES] + ([CATEGORIA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INFORMES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LOG_CARGA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LOG_CARGA] +GO + +CREATE TABLE [RDX_LOG_CARGA] ( + [ID] int IDENTITY(1, 1) NOT NULL, + [REPORT] varchar(10) NOT NULL, + [FECHA] datetime NOT NULL, + [OK] bit NOT NULL, + [ERROR_MSG] varchar(255) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LOG_CARGA] +ADD UNIQUE NONCLUSTERED ([ID]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LOG_CARGA] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_REFERENCIA_GENERICA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_REFERENCIA_GENERICA] +GO + +CREATE TABLE [RDX_REFERENCIA_GENERICA] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [FECHACAMBIO] datetime NOT NULL, + [ESTADO] char(1) NOT NULL, + [CODIGO_BARRA] varchar(25) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [NUMCON] smallint CONSTRAINT [DF__RDX_REFER__NUMCO__28C3F2C0] DEFAULT 0 NOT NULL, + [VALVEN] numeric(15, 3) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_REFERENCIA_GENERICA] +ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3], [NUMCON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [RDX_REFERENCIA_GENERICA] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [RDX_REFERENCIA_GENERICA] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [RDX_REFERENCIA_GENERICA] + ([ESTADO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_REFERENCIA_GENERICA] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_ALBARAN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_AJUSTES_ALBARAN] +GO + +CREATE TABLE [RDX_AJUSTES_ALBARAN] ( + [ALBARAN] char(7) NOT NULL, + [ESTADO] varchar(15) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_AJUSTES_ALBARAN] +ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] +PRIMARY KEY CLUSTERED ([ALBARAN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [RDX_AJUSTES_ALBARAN] + ([ESTADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [RDX_AJUSTES_ALBARAN] + ([CONTABILIZAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_ALBARAN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_HOJA_DEVOLUCIONES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +GO + +CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( + [NUMHOJA] char(8) NOT NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] +PRIMARY KEY CLUSTERED ([NUMHOJA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_DEVOLUCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_DEVOLUCION_AJUSTES] +GO + +CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_DEVOLUCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [RDX_DEVOLUCION_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [RDX_DEVOLUCION_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_DEVOLUCION_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_RECEPCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_RECEPCION_AJUSTES] +GO + +CREATE TABLE [RDX_RECEPCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_RECEPCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [RDX_RECEPCION_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [RDX_RECEPCION_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_RECEPCION_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TRASPASOS_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_TRASPASOS_AJUSTES] +GO + +CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CENTRO2] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL, + [TIPOCANT] varchar(3) NOT NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_TRASPASOS_AJUSTES] +ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [RDX_TRASPASOS_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [RDX_TRASPASOS_AJUSTES] + ([ESTADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [RDX_TRASPASOS_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TRASPASOS_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_FILIALES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_FILIALES] +GO + +CREATE TABLE [RDX_FILIALES] ( + [CODFILIAL] char(6) NULL, + [CODBARRA] varchar(17) NULL +) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [RDX_FILIALES] + ([CODBARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [RDX_FILIALES] + ([CODFILIAL]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_FILIALES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TALLAS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_TALLAS] +GO + +CREATE TABLE [RDX_TALLAS] ( + [TALLA] char(2) NOT NULL +) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [RDX_TALLAS] + ([TALLA]) +ON [PRIMARY] +GO + + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TALLAS] +TO [public] +GO + + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INVENTARIOEDI] +GO + +CREATE TABLE [RDX_INVENTARIOEDI] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [FECHA] datetime NULL, + [CENTRO] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [CODVEN] varchar(10) NULL, + [VENDEDOR] varchar(66) NULL, + [CODIGO_BARRA] varchar(17) NULL, + [CODIGO] varchar(12) NULL, + [PRODUCTO] varchar(40) NULL, + [COLOR] varchar(10) NULL, + [TALLA] varchar(8) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO2] varchar(17) NULL, + [FILIAL2] varchar(25) NULL, + [ULTIMO_INVENTARIO] char(1) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_INVENTARIOEDI] +ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] +PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] + ([FECHA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] + ([CODIGO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] + ([CENTRO2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] + ([ULTIMO_INVENTARIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] + ([CENTRO], [CODIGO], [COLOR], [TALLA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INVENTARIOEDI] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_VENTASEDI] +GO + +CREATE TABLE [RDX_VENTASEDI] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [PERVENINI] datetime NULL, + [NUMTALON] varchar(35) NULL, + [EANLUG] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [EANVEN] varchar(17) NULL, + [CODVEN] varchar(4) NULL, + [VENDEDOR] varchar(66) NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [PRODUTO] varchar(12) NULL, + [DESC_PRODUTO] varchar(40) NULL, + [COR_PRODUTO] varchar(10) NULL, + [GRADE] varchar(8) NULL, + [TIPO_PRODUTO] varchar(25) NULL, + [GRUPO_PRODUTO] varchar(25) NULL, + [DESC_COLECAO] varchar(40) NULL, + [VALVEN] numeric(15, 3) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANDEV] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_VENTASEDI] +ADD CONSTRAINT [RDX_VENTASEDI_pk] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] + ([EANVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] + ([PRODUTO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_VENTASEDI] +TO [public] +GO + +/* EOF */ + + diff --git a/Database/2.1 - vistas inventario.sql b/Database/2.1 - vistas inventario.sql new file mode 100644 index 0000000..8a62f8f --- /dev/null +++ b/Database/2.1 - vistas inventario.sql @@ -0,0 +1,1028 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2, + ULTIMO_INVENTARIO +FROM RDX_INVENTARIOEDI +WHERE FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND ((IGNORAR IS NULL) OR (IGNORAR <> 'S')) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_PESADA AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ULTIMO_INVENTARIO AS +SELECT FECHA, + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + SUM(CANTIDAD) AS CANTIDAD +FROM RDX_INVENTARIOEDI +WHERE (TIPOCANT = '145') AND + (ULTIMO_INVENTARIO IS NOT NULL) +GROUP BY FECHA, + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS +SELECT + CENTRO, + CODIGO, + COLOR, + TALLA, + FECHA = MAX(FECHA) +FROM RDX_INVENTARIOEDI +WHERE TIPOCANT = 145 + AND FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND (IGNORAR IS NULL) OR (IGNORAR <> 'S') +GROUP BY + CENTRO, + CODIGO, + COLOR, + TALLA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ + OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 46) or (TIPOCANT = 48) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_ORIGEN = CENTRO2, + FILIAL_ORIGEN = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_DESTINO = CENTRO2, + FILIAL_DESTINO = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASO_ENTRADA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) + +FROM + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASO_SALIDA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) +FROM + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASOS AS +SELECT + TIPO = 'S', + CENTRO_ORIGEN as CENTRO, + FILIAL_ORIGEN as FILIAL, + CENTRO_DESTINO as CENTRO2, + FILIAL_DESTINO as FILIAL2, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_SALIDA +UNION +SELECT + 'E', + CENTRO_DESTINO, + FILIAL_DESTINO, + CENTRO_ORIGEN, + FILIAL_ORIGEN, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_ENTRADA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_TRASPASOS AS +SELECT + RDX_V_TRASPASOS.TIPO, + RDX_V_TRASPASOS.FECHA, + RDX_V_TRASPASOS.CENTRO, + RDX_V_TRASPASOS.FILIAL, + RDX_V_TRASPASOS.CENTRO2, + RDX_V_TRASPASOS.FILIAL2, + APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), + ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, + OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), + RDX_TRASPASOS_AJUSTES.FECHACAMBIO, + RDX_V_TRASPASOS.CODIGO, + RDX_V_TRASPASOS.PRODUCTO, + RDX_V_TRASPASOS.COLOR, + RDX_V_TRASPASOS.T38, + RDX_V_TRASPASOS.T40, + RDX_V_TRASPASOS.T42, + RDX_V_TRASPASOS.T44, + RDX_V_TRASPASOS.T46, + RDX_V_TRASPASOS.T48, + RDX_V_TRASPASOS.TOTAL, + TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), + TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), + TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), + TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), + TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), + TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), + TOTAL_RECT = + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) +FROM RDX_V_TRASPASOS +LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON + ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND + (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND + (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND + (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND + (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND + (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ALBARANES AS +SELECT + FATURAMENTO.NF_SAIDA AS ALBARAN, + FATURAMENTO.EMISSAO AS FECHA, + RDX_FILIALES.CODBARRA AS CENTRO, + FATURAMENTO.NOME_CLIFOR AS FILIAL, + PRODUTOS_BARRA.CODIGO_BARRA, + FATURAMENTO_PROD.PRODUTO AS CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN F1 + WHEN '40' THEN F2 + WHEN '42' THEN F3 + WHEN '44' THEN F4 + WHEN '46' THEN F5 + WHEN '48' THEN F6 + END, + RDX_AJUSTES_ALBARAN.ESTADO, + RDX_AJUSTES_ALBARAN.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') +FROM FATURAMENTO_PROD +INNER JOIN FATURAMENTO ON + ((FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) AND + (FATURAMENTO.SERIE_NF = FATURAMENTO_PROD.SERIE_NF)) +INNER JOIN FATURAMENTO_TIPO ON + (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) +LEFT OUTER JOIN FILIAIS ON + (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) +LEFT OUTER JOIN RDX_FILIALES ON + (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) +LEFT OUTER JOIN PRODUTOS_BARRA ON + (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON + (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) +WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ +AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ +AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_RECEPCION AS +SELECT + CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + + /* ALBARAN Y ESTADO */ + ALBARAN = RDX_V_ALBARANES.ALBARAN, + ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, + OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, + CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + ENVIADO = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ), + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) +FROM + RDX_V_ALBARANES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND + (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) +GROUP BY + ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + RDX_V_ALBARANES.ALBARAN, + RDX_V_ALBARANES.ESTADO, + RDX_V_ALBARANES.OBSERVACIONES, + ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_RECEPCION AS +SELECT + APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), + RDX_RECEPCION_AJUSTES.FECHACAMBIO, + + RDX_V_RECEPCION.CENTRO, + RDX_V_RECEPCION.FILIAL, + RDX_V_RECEPCION.CODIGO, + RDX_V_RECEPCION.PRODUCTO, + RDX_V_RECEPCION.COLOR, + RDX_V_RECEPCION.FECHA, + + /* ALBARAN Y ESTADO */ + RDX_V_RECEPCION.ALBARAN, + RDX_V_RECEPCION.ESTADO_ALBARAN, + RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, + RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, + + /* CANTIDADES RECIBIDAS RECTIFICADAS */ + RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), + RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), + RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), + RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), + RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), + RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), + + RECIBIDO_RECT = + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) + ) - ENVIADO +FROM + RDX_V_RECEPCION +LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON + ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND + (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND + (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND + (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ALBARANES_PENDIENTES AS +SELECT DISTINCT ALBARAN, APROBADO +FROM RDX_V_CONTROL_RECEPCION +WHERE ALBARAN IS NOT NULL +AND APROBADO = 'N' +GO + +/*--------------- SQL ---------------*/GO + +CREATE VIEW RDX_V_CONTROL_RECEPCION_ALBARANES AS +select RDX_V_CONTROL_RECEPCION.ALBARAN +,ESTADOALBARAN = CASE + WHEN RDX_V_ALBARANES_PENDIENTES.ALBARAN is NULL THEN 'R' + ELSE 'P' + END +,ESTADOPRODUCTO = CASE RDX_V_CONTROL_RECEPCION.APROBADO + WHEN 'N' THEN 'PENDIENTE' + WHEN 'S' THEN 'APROBADO' + END +, CENTRO, FILIAL, FECHA, CODIGO, PRODUCTO, COLOR, E38, E40, E42, E44, E46, E48 +from RDX_V_CONTROL_RECEPCION +left join RDX_V_ALBARANES_PENDIENTES +on (RDX_V_CONTROL_RECEPCION.ALBARAN = RDX_V_ALBARANES_PENDIENTES.ALBARAN) +where RDX_V_CONTROL_RECEPCION.ALBARAN is not null +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END, + RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, + RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON + (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) +WHERE + LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_DEVOLUCIONES AS +SELECT + CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + SOLICITADO = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END + ), + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + + ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) +FROM + RDX_V_HOJAS_DEVOLUCIONES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON + ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) +GROUP BY + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS +SELECT + APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), + RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, + + RDX_V_DEVOLUCIONES.CENTRO, + RDX_V_DEVOLUCIONES.FILIAL, + RDX_V_DEVOLUCIONES.CODIGO, + RDX_V_DEVOLUCIONES.PRODUCTO, + RDX_V_DEVOLUCIONES.COLOR, + RDX_V_DEVOLUCIONES.FECHA, + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + RDX_V_DEVOLUCIONES.NUMHOJA, + RDX_V_DEVOLUCIONES.ESTADO_HOJA, + RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, + RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, + + /* CANTIDADES ENVIADAS RECTIFICADAS */ + ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), + ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), + ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), + ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), + ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), + ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), + + ENVIADO_RECT = + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) + ) - SOLICITADO +FROM + RDX_V_DEVOLUCIONES +LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON + ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND + (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND + (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND + (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) +GO + + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_RECEPCION_AJUSTES.FECHA, + RDX_RECEPCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), + RDX_RECEPCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_RECEPCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), + CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) +FROM + RDX_V_RECEPCION_AJUSTES_DESGLOSADO +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) +GROUP BY + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) +GO + + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_DEVOLUCION_AJUSTES.FECHA, + RDX_DEVOLUCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), + RDX_DEVOLUCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_DEVOLUCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_HOJAS_TRASPASOS AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS +SELECT + RDX_TRASPASOS_AJUSTES.FECHA, + RDX_TRASPASOS_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), + RDX_TRASPASOS_AJUSTES.CENTRO2, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), + TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, + RDX_TRASPASOS_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_TRASPASOS_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) +LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END IS NOT NULL +GO + +/* EOF */ diff --git a/Database/2.2 - vistas ventas.sql b/Database/2.2 - vistas ventas.sql new file mode 100644 index 0000000..d2edf4f --- /dev/null +++ b/Database/2.2 - vistas ventas.sql @@ -0,0 +1,284 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI, + NUMTALON, + EANLUG, + FILIAL, + EANVEN, + CODVEN, + VENDEDOR, + EANART, + CODCOM, + PRODUTO, + DESC_PRODUTO, + COR_PRODUTO, + GRADE, + TIPO_PRODUTO, + GRUPO_PRODUTO, + DESC_COLECAO, + VALVEN, + CANVEN, + CANDEV, + CANVENNET, + CANESP, + IGNORAR +FROM RDX_VENTASEDI +WHERE (IGNORAR IS NULL) OR (IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_PESADA +AS +SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP +FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) +WHERE (RDX_CABVEN.IGNORAR IS NULL) OR (RDX_CABVEN.IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS +AS +SELECT * +FROM RDX_REFERENCIA_GENERICA +WHERE ESTADO = 'R' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_RESUELTAS +AS +SELECT + RDX_V_VENTASEDI.NUMINF, + RDX_V_VENTASEDI.CLAVE1, + RDX_V_VENTASEDI.CLAVE2, + RDX_V_VENTASEDI.CLAVE3, + RDX_V_VENTASEDI.PERVENINI, + RDX_V_VENTASEDI.NUMTALON, + RDX_V_VENTASEDI.EANLUG, + RDX_V_VENTASEDI.FILIAL, + RDX_V_VENTASEDI.EANVEN, + RDX_V_VENTASEDI.CODVEN, + RDX_V_VENTASEDI.VENDEDOR, + EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), + RDX_V_VENTASEDI.CODCOM, + PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), + DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), + COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), + GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), + TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), + GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), + PRODUTOS.COLECAO, + DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), + RDX_V_VENTASEDI.VALVEN, + RDX_V_VENTASEDI.CANVEN, + RDX_V_VENTASEDI.CANDEV, + RDX_V_VENTASEDI.CANVENNET, + RDX_V_VENTASEDI.CANESP +FROM RDX_V_VENTASEDI +LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( + (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) +LEFT JOIN PRODUTOS_BARRA ON ( + (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) +LEFT JOIN PRODUTOS ON ( + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) +LEFT JOIN COLECOES ON ( + (COLECOES.COLECAO = PRODUTOS.COLECAO)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_ERRONEAS +AS +SELECT +* +FROM + RDX_V_VENTASEDI +WHERE PRODUTO = '107CH.EN.01' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_REFERENCIA_GENERICA +AS +SELECT DISTINCT + VENTAS.NUMINF, + VENTAS.CLAVE1, + VENTAS.CLAVE2, + VENTAS.CLAVE3, + NUMCON = ISNULL(REF.NUMCON, 0), + VENTAS.PERVENINI AS FECHA, + VENTAS.EANLUG AS CODCENTRO, + VENTAS.FILIAL AS CENTRO, + VENTAS.EANVEN AS CODVENDEDOR, + VENTAS.VENDEDOR, + VENTAS.NUMTALON, + CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), + CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), + TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), + VTAPROCESO = ISNULL(REF.CANESP, VENTAS.CANESP), + VTAFINAL = ISNULL(REF.CANVENNET, VENTAS.CANVENNET), + VTATERM = ISNULL(REF.CANVEN, VENTAS.CANVEN), + VALTOT = ISNULL(REF.VALVEN, VENTAS.VALVEN), + REF.ESTADO, + REF.FECHACAMBIO +FROM RDX_V_VENTASEDI_ERRONEAS VENTAS +LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON + (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND + REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) +LEFT OUTER JOIN PRODUTOS_BARRA on + (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASPROCESO AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + CANESP AS INICIO, + CANVENNET AS FINAL, + VALVEN AS IMPORTE +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) +AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS +SELECT NUMTALON, + CODIGO, + COLOR, + TALLA, + SUM(ISNULL(INICIO, 0)) AS INICIO, + SUM(ABS(ISNULL(FINAL, 0))) AS FINAL +FROM RDX_V_VENTASPROCESO +GROUP BY NUMTALON, CODIGO, COLOR, TALLA +HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND + (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASTERMINADAS +AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + + VTATERMDEV = ISNULL(CANVEN, 0), + VTAFINALRESC = ISNULL(CANVENNET, 0), + + VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, + + DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, + + TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), + + VALTERMDEV = CASE WHEN (CANVEN <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, + VALFINALRESC = CASE WHEN (CANVENNET <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, + + VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, + VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, + VALTOT = VALVEN +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ +AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ +AND ((CANVENNET >= 0) OR (CANVENNET IS NULL)) /* IGNORAR LAS RESCISIONES DE V.PROCESO */ +GO + +/* EOF */ diff --git a/Database/2.3 - vistas stock.sql b/Database/2.3 - vistas stock.sql new file mode 100644 index 0000000..44cb859 --- /dev/null +++ b/Database/2.3 - vistas stock.sql @@ -0,0 +1,579 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_VARELA AS +SELECT ESTOQUE_PRODUTOS.FILIAL, + ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, + ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECCION = PRODUTOS.COLECAO, + ESTOQUE_PRODUTOS.ES1 as K38, + ESTOQUE_PRODUTOS.ES2 as K40, + ESTOQUE_PRODUTOS.ES3 as K42, + ESTOQUE_PRODUTOS.ES4 as K44, + ESTOQUE_PRODUTOS.ES5 as K46, + ESTOQUE_PRODUTOS.ES6 as K48, + ESTOQUE_PRODUTOS.ESTOQUE as KT + +FROM ESTOQUE_PRODUTOS +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) +WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_INVENTARIO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI.CENTRO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO))), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), + COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), + TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), + CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), + OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT + WHEN '194' THEN 'R' + WHEN '46' THEN 'E' + WHEN '145' THEN 'RM' + WHEN '48' THEN 'S' + WHEN '61' THEN 'D' + WHEN '65' THEN 'T' + ELSE + CASE + WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' + WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' + ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO + END + END +FROM RDX_V_INVENTARIOEDI +FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) +FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_VENTAS AS +SELECT + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + EANLUG AS CENTRO, + FILIAL AS FILIAL, + CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COLOR = ISNULL(COR_PRODUTO, '300'), + GRADE AS TALLA, + CANTIDAD = ISNULL(CANVEN, 0) + + + CASE + WHEN ISNULL(CANVENNET, 0) < 0 THEN + ISNULL(CANVENNET, 0) + ELSE 0 + END + + + ISNULL(CANESP, 0) +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK AS +SELECT + CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + FILIAL = ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), + CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, + GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, + COLECCION = PRODUTOS.COLECAO, + COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), + E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END) +FROM + RDX_V_STOCK_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_VENTAS ON + (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) + AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) + AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) + AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) + AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) +GROUP BY + ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), + ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + PRODUTOS.COLECAO, + ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_CALCULADO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + E38, + E40, + E42, + E44, + E46, + E48, + TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), + S38, + S40, + S42, + S44, + S46, + S48, + TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), + K38 = ISNULL(E38, 0) + ISNULL(S38, 0), + K40 = ISNULL(E40, 0) + ISNULL(S40, 0), + K42 = ISNULL(E42, 0) + ISNULL(S42, 0), + K44 = ISNULL(E44, 0) + ISNULL(S44, 0), + K46 = ISNULL(E46, 0) + ISNULL(S46, 0), + K48 = ISNULL(E48, 0) + ISNULL(S48, 0), + KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + + ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + + ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) + +FROM RDX_V_STOCK +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_CALCULADO_DESGLOSADO AS +SELECT CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_V_STOCK_CALCULADO.K38 + WHEN '40' THEN RDX_V_STOCK_CALCULADO.K40 + WHEN '42' THEN RDX_V_STOCK_CALCULADO.K42 + WHEN '44' THEN RDX_V_STOCK_CALCULADO.K44 + WHEN '46' THEN RDX_V_STOCK_CALCULADO.K46 + WHEN '48' THEN RDX_V_STOCK_CALCULADO.K48 + END + +FROM RDX_TALLAS, RDX_V_STOCK_CALCULADO +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_STOCK_DESGLOSADO AS +SELECT + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO, RDX_V_ULTIMO_INVENTARIO.FILIAL) as CENTRO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO, RDX_V_ULTIMO_INVENTARIO.CODIGO) as CODIGO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.PRODUCTO, RDX_V_ULTIMO_INVENTARIO.PRODUCTO) as PRODUCTO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR, RDX_V_ULTIMO_INVENTARIO.COLOR) as COLOR, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA, RDX_V_ULTIMO_INVENTARIO.TALLA) as TALLA, + + RDX_V_STOCK_CALCULADO_DESGLOSADO.TIPO_PRODUCTO, + RDX_V_STOCK_CALCULADO_DESGLOSADO.GRUPO_PRODUCTO, + RDX_V_STOCK_CALCULADO_DESGLOSADO.COLECCION, + + RDX_V_STOCK_CALCULADO_DESGLOSADO.CANTIDAD as CANTIDAD_STOCK, + RDX_V_ULTIMO_INVENTARIO.CANTIDAD as CANTIDAD_INVENTARIO + +FROM RDX_V_ULTIMO_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_CALCULADO_DESGLOSADO ON +(RDX_V_ULTIMO_INVENTARIO.FILIAL = RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO) +AND (RDX_V_ULTIMO_INVENTARIO.CODIGO = RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO) +AND (RDX_V_ULTIMO_INVENTARIO.COLOR = RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR) +AND (RDX_V_ULTIMO_INVENTARIO.TALLA = RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_STOCK AS +select + CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + I38 = SUM(CASE TALLA + WHEN '38' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I40 = SUM(CASE TALLA + WHEN '40' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I42 = SUM(CASE TALLA + WHEN '42' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I44 = SUM(CASE TALLA + WHEN '44' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I46 = SUM(CASE TALLA + WHEN '46' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I48 = SUM(CASE TALLA + WHEN '48' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,K38 = SUM(CASE TALLA + WHEN '38' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K40 = SUM(CASE TALLA + WHEN '40' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K42 = SUM(CASE TALLA + WHEN '42' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K44 = SUM(CASE TALLA + WHEN '44' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K46 = SUM(CASE TALLA + WHEN '46' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K48 = SUM(CASE TALLA + WHEN '48' THEN + CANTIDAD_STOCK + ELSE 0 + END) + +from RDX_V_INVENTARIO_STOCK_DESGLOSADO + +group by CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_INVENTARIO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + + I38, + I40, + I42, + I44, + I46, + I48, + TI = ISNULL(I38, 0) + ISNULL(I40, 0) + ISNULL(I42, 0) + ISNULL(I44, 0) + ISNULL(I46, 0) + ISNULL(I48, 0), + + K38, + K40, + K42, + K44, + K46, + K48, + TK = ISNULL(K38, 0) + ISNULL(K40, 0) + ISNULL(K42, 0) + ISNULL(K44, 0) + ISNULL(K46, 0) + ISNULL(K48, 0), + + D38 = ISNULL(I38, 0) - ISNULL(K38, 0), + D40 = ISNULL(I40, 0) - ISNULL(K40, 0), + D42 = ISNULL(I42, 0) - ISNULL(K42, 0), + D44 = ISNULL(I44, 0) - ISNULL(K44, 0), + D46 = ISNULL(I46, 0) - ISNULL(K46, 0), + D48 = ISNULL(I48, 0) - ISNULL(K48, 0), + DT = ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + + ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + + ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0) + +FROM RDX_V_INVENTARIO_STOCK +where ((ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + + ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + + ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0)) <> 0) + +GO +/* EOF */ diff --git a/Database/3 - procedimientos.sql b/Database/3 - procedimientos.sql new file mode 100644 index 0000000..11c1189 --- /dev/null +++ b/Database/3 - procedimientos.sql @@ -0,0 +1,176 @@ +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE crosstab + @select varchar(8000), + @sumfunc varchar(100), + @pivot varchar(100), + @table varchar(100) +AS + + DECLARE @sql varchar(8000), @delim varchar(1) + SET NOCOUNT ON + SET ANSI_WARNINGS OFF + + EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2') + EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' + @pivot + ' Is Not Null') + + SELECT @sql='', @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, ' END)' ) + + SELECT @delim=CASE Sign( CharIndex('char', data_type)+CharIndex('date', data_type) ) + WHEN 0 THEN '' ELSE '''' END + FROM tempdb.information_schema.columns + WHERE table_name='##pivot' AND column_name='pivot' + + SELECT @sql=@sql + '''' + convert(varchar(100), pivot) + ''' = ' + stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot + ' WHEN ' + @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', ' FROM ##pivot + + DROP TABLE ##pivot + + SELECT @sql=left(@sql, len(@sql)-1) + SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ', ' + @sql + ' ') + + EXEC (@select) + SET ANSI_WARNINGS ON +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI +AS +BEGIN + INSERT INTO RDX_INVENTARIOEDI ( + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, + VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, + CENTRO2, FILIAL2, IGNORAR ) + SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), + RDX_CABINV.IGNORAR + FROM RDX_CANTINV + INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) + INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) + LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) + LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) + LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) + LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) + WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND RDX_CABINV.CARGADO IS NULL + + UPDATE RDX_CABINV SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI +AS +BEGIN + INSERT INTO RDX_VENTASEDI ( + NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, + FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, + DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, + DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) + SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP + FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) + WHERE RDX_CABVEN.CARGADO IS NULL + + + UPDATE RDX_CABVEN SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO +AS +BEGIN + DECLARE @CENTRO VARCHAR(17), + @CODIGO VARCHAR(12), + @COLOR VARCHAR(10), + @TALLA VARCHAR(8), + @FECHA DATETIME, + @UPDATECMD VARCHAR(255) + + DECLARE ASD CURSOR FOR + SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA + FROM RDX_V_INVENTARIO_MAXFECHAS + OPEN ASD + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + + IF @@ROWCOUNT >= 0 + BEGIN + WHILE @@FETCH_STATUS = 0 + BEGIN + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL + WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA + + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 + WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 + + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + END + END + CLOSE ASD + DEALLOCATE ASD +END +GO + +/* EOF */ \ No newline at end of file diff --git a/Database/ANTERIOR/Script Datos.sql b/Database/ANTERIOR/Script Datos.sql new file mode 100644 index 0000000..0a98c3d --- /dev/null +++ b/Database/ANTERIOR/Script Datos.sql @@ -0,0 +1,178 @@ +--------------- SQL --------------- +CREATE USER [usuario_gft] + FOR LOGIN [usuario_gft] + WITH DEFAULT_SCHEMA = [dbo] +GO + +COMMIT +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010082','8422416200065') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010083','8422416200058') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010086','8422416200041') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010089','8422416200102') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010090','8422416200126') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010091','8422416200133') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010092','8422416200188') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010244','8422416101256') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010094','8422416200959') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010096','8422416209068') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010088','8422416200089') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010103','8422416200140') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010087','8422416200072') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('000001','8435159800003') +GO + +COMMIT +GO + + + +--------------- SQL --------------- +CREATE TABLE [RDX_TALLAS] ( + [TALLA] char(2) NOT NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TALLAS] +TO [public] +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('38') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('40') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('42') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('44') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('46') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('48') +GO + +COMMIT +GO + + + + + +/* Códigos de barra de ECI que son referencias nulas */ + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61800000000','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001406','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001547','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001042','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001141','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('8300733557232','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +COMMIT +GO + + + + + + + + + + + diff --git a/Database/ANTERIOR/Script Tablas.sql b/Database/ANTERIOR/Script Tablas.sql new file mode 100644 index 0000000..2d1d3e9 --- /dev/null +++ b/Database/ANTERIOR/Script Tablas.sql @@ -0,0 +1,519 @@ +--------------- SQL --------------- +CREATE TABLE [RDX_CABINV] ( + [NUMDOC] varchar(25) NOT NULL, + [TIPODOC] varchar(3) NULL, + [TIPOLIQ] varchar(3) NULL, + [FECHA] datetime NULL, + [FECHALIQ] datetime NULL, + [EMISOR] varchar(17) NULL, + [RECEPTOR] varchar(17) NULL, + [DPTO] varchar(3) NULL, + [CENTRO] varchar(17) NULL, + [FECHA_CARGA] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +ALTER TABLE [RDX_CABINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] + ([FECHALIQ]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] + ([CENTRO]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_LININV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [CODART] varchar(17) NULL, + [FAMILIA] varchar(17) NULL, + [BARRA] varchar(17) NULL, + [TALLA] varchar(17) NULL, + [MARCA] varchar(25) NULL, + [TAMANO] varchar(25) NULL, + [SERIE] varchar(25) NULL, + [COLOR] varchar(25) NULL, + [MODELO] varchar(25) NULL, + [DIBUJO] varchar(25) NULL, + [DESCRIP] varchar(70) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +ALTER TABLE [RDX_LININV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] + ([CODART]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_CANTINV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO] varchar(17) NULL, + [TMOV] varchar(3) NULL, + [FACT] varchar(12) NULL, + [DEPTO] varchar(3) NULL, + [IDVEN] varchar(10) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +ALTER TABLE [RDX_CANTINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] + ([IDVEN]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_CABVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [NUMINF] varchar(35) NULL, + [FUNCION] varchar(10) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [FECINF] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL, + [EANOFI] varchar(17) NULL, + [EANEMI] varchar(17) NULL, + [EANREC] varchar(17) NULL, + [EANVEN] varchar(17) NULL, + [EANALM] varchar(17) NULL, + [EANREP] varchar(17) NULL, + [EANPRO] varchar(17) NULL, + [EANADMSA] varchar(17) NULL, + [EANREPSR] varchar(17) NULL, + [ADMVENSA] varchar(35) NULL, + [REPDEPSR] varchar(35) NULL, + [EMAILSA] varchar(35) NULL, + [NUMFAXSA] varchar(35) NULL, + [NUMTELSA] varchar(35) NULL, + [NUMTLXSA] varchar(35) NULL, + [X400SA] varchar(35) NULL, + [EMAILSR] varchar(35) NULL, + [NUMFAXSR] varchar(35) NULL, + [NUMTELSR] varchar(35) NULL, + [NUMTLXSR] varchar(35) NULL, + [X400SR] varchar(35) NULL, + [NUMPRE] varchar(35) NULL, + [NUMINFSC] varchar(35) NULL, + [NUMCON] varchar(35) NULL, + [FECPRE] datetime NULL, + [FECINFSC] datetime NULL, + [FECCON] datetime NULL, + [DIVPED] varchar(3) NULL, + [DIVPRE] varchar(3) NULL, + [DIVPAG] varchar(3) NULL, + [DIVPEDF] varchar(3) NULL, + [DIVPREF] varchar(3) NULL, + [DIVPAGF] varchar(3) NULL, + [TASCAM] numeric(15, 3) NULL, + [FECTAS] datetime NULL, + [FECHA_CARGA] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +ALTER TABLE [RDX_CABVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_LUGVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [EANLUG] varchar(17) NULL, + [LUGVEN] varchar(70) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] + ([PERVENINI]) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) + REFERENCES [RDX_CABVEN] ([CLAVE1]) + ON UPDATE CASCADE + ON DELETE CASCADE +GO + +ALTER TABLE [RDX_LUGVEN] +NOCHECK CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_ARTVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [NUMVAR] varchar(35) NULL, + [CODPRO] varchar(35) NULL, + [DESARTCO] varchar(35) NULL, + [DESART] varchar(70) NULL, + [NUMCON] varchar(35) NULL, + [NUMLIS] varchar(35) NULL, + [CONESP1] varchar(3) NULL, + [CONESP2] varchar(3) NULL, + [CONESP3] varchar(3) NULL, + [VALVEN] numeric(15, 3) NULL, + [PRENETCT] numeric(15, 3) NULL, + [PREBRUCT] numeric(15, 3) NULL, + [PREINFET] numeric(15, 3) NULL, + [PREINFFT] numeric(15, 3) NULL, + [PRECALCT] numeric(15, 3) NULL, + [PRENETCA] numeric(15, 3) NULL, + [PREBRUCA] numeric(15, 3) NULL, + [PREINFEA] numeric(15, 3) NULL, + [PREINFFA] numeric(15, 3) NULL, + [PRECALCA] numeric(15, 3) NULL, + [BAPRUN1] numeric(9, 0) NULL, + [UNIMED1] varchar(3) NULL, + [BAPRUN2] numeric(9, 0) NULL, + [UNIMED2] varchar(3) NULL, + [BAPRUN3] numeric(9, 0) NULL, + [UNIMED3] varchar(3) NULL, + [BAPRUN4] numeric(9, 0) NULL, + [UNIMED4] varchar(3) NULL, + [BAPRUN5] numeric(9, 0) NULL, + [UNIMED5] varchar(3) NULL, + [CANVEN] numeric(15, 3) NULL, + [EXIPRO] numeric(15, 3) NULL, + [DESEXI] numeric(15, 3) NULL, + [ESPMEDCV] varchar(3) NULL, + [ESPMEDEP] varchar(3) NULL, + [ESPMEDDE] varchar(3) NULL, + [CANDEV] numeric(15, 3) NULL, + [EANVEN] varchar(17) NULL, + [NOMVEN] varchar(70) NULL, + [NUMTALON] varchar(35) NULL, + [CANVENNET] numeric(15, 3) NULL, + [UMEDVENNET] varchar(3) NULL, + [CANESP] numeric(15, 3) NULL, + [UMEDESP] varchar(3) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] FOREIGN KEY ([CLAVE1], [CLAVE2]) + REFERENCES [RDX_LUGVEN] ([CLAVE1], [CLAVE2]) + ON UPDATE CASCADE + ON DELETE CASCADE +GO + +ALTER TABLE [RDX_ARTVEN] +NOCHECK CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_INFORMES] ( + [ID] smallint IDENTITY(1, 1) NOT NULL, + [CATEGORIA] varchar(15) NULL, + [ICONO] smallint NULL, + [NOMBRE] varchar(50) NULL, + [DESCRIPCION] varchar(255) NULL, + [ORDEN] smallint NULL, + [VISTA] text NULL, + [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL +) +ON [PRIMARY] +TEXTIMAGE_ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INFORMES] +TO [public] +GO + +ALTER TABLE [RDX_INFORMES] +ADD CONSTRAINT [RDX_INFORMES_pk] +PRIMARY KEY CLUSTERED ([ID]) +ON [PRIMARY] +GO + +--------------- SQL --------------- + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + + +--------------- SQL --------------- +CREATE TABLE [RDX_LOG_CARGA] ( + [ID] int IDENTITY(1, 1) NOT NULL, + [REPORT] varchar(10) NOT NULL, + [FECHA] datetime NOT NULL, + [OK] bit NOT NULL, + [ERROR_MSG] varchar(255) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LOG_CARGA] +TO [public] +GO + +ALTER TABLE [RDX_LOG_CARGA] +ADD UNIQUE NONCLUSTERED ([ID]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_REFERENCIA_GENERICA] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [FECHACAMBIO] datetime NOT NULL, + [ESTADO] char(1) NOT NULL, + [CODIGO_BARRA] varchar(25) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_REFERENCIA_GENERICA] +TO [public] +GO + +ALTER TABLE [RDX_REFERENCIA_GENERICA] +ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_AJUSTES_ALBARAN] ( + [ALBARAN] char(7) NOT NULL, + [ESTADO] varchar(15) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_ALBARAN] +TO [public] +GO + +ALTER TABLE [RDX_AJUSTES_ALBARAN] +ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] +PRIMARY KEY CLUSTERED ([ALBARAN]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( + [NUMHOJA] char(8) NOT NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] +TO [public] +GO + +ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] +PRIMARY KEY CLUSTERED ([NUMHOJA]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_DEVOLUCION_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_DEVOLUCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_RECEPCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_RECEPCION_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_RECEPCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CENTRO2] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL, + [TIPOCANT] varchar(3) NOT NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TRASPASOS_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_TRASPASOS_AJUSTES] +ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR], [TIPOCANT]) +ON [PRIMARY] +GO \ No newline at end of file diff --git a/Database/ANTERIOR/Script Vistas INVRPT.sql b/Database/ANTERIOR/Script Vistas INVRPT.sql new file mode 100644 index 0000000..d2d4f7f --- /dev/null +++ b/Database/ANTERIOR/Script Vistas INVRPT.sql @@ -0,0 +1,1156 @@ +-- +-- Definition for view RDX_V_ALBARANES : +-- + +CREATE VIEW RDX_V_ALBARANES AS +SELECT + FATURAMENTO.NF_SAIDA AS ALBARAN, + FATURAMENTO.EMISSAO AS FECHA, + RDX_FILIALES.CODBARRA AS CENTRO, + FATURAMENTO.NOME_CLIFOR AS FILIAL, + PRODUTOS_BARRA.CODIGO_BARRA, + FATURAMENTO_PROD.PRODUTO AS CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN F1 + WHEN '40' THEN F2 + WHEN '42' THEN F3 + WHEN '44' THEN F4 + WHEN '46' THEN F5 + WHEN '48' THEN F6 + END, + RDX_AJUSTES_ALBARAN.ESTADO, + RDX_AJUSTES_ALBARAN.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') +FROM FATURAMENTO_PROD +INNER JOIN FATURAMENTO ON + (FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) +INNER JOIN FATURAMENTO_TIPO ON + (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) +LEFT OUTER JOIN FILIAIS ON + (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) +LEFT OUTER JOIN RDX_FILIALES ON + (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) +LEFT OUTER JOIN PRODUTOS_BARRA ON + (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON + (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) +WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ +AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ +AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_ALBARANES] +TO [public] +GO + +-- +-- Definition for view RDX_V_HOJAS_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END, + RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, + RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON + (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) +WHERE + LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_HOJAS_DEVOLUCIONES] +TO [public] +GO + +-- +-- Definition for view RDX_V_HOJAS_TRASPASOS : +-- + +CREATE VIEW RDX_V_HOJAS_TRASPASOS AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_HOJAS_TRASPASOS] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIOEDI : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_CANTINV.IDVEN + '%') +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ + OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_RECEPCION : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_RECEPCION] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_ORIGEN = CENTRO2, + FILIAL_ORIGEN = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_SALIDA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_DESTINO = CENTRO2, + FILIAL_DESTINO = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] +TO [public] +GO + +-- +-- Definition for view RDX_V_RECEPCION : +-- + +CREATE VIEW RDX_V_RECEPCION AS +SELECT + CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + + /* ALBARAN Y ESTADO */ + ALBARAN = RDX_V_ALBARANES.ALBARAN, + ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, + OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, + CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + ENVIADO = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ), + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) +FROM + RDX_V_ALBARANES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND + (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) +GROUP BY + ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + RDX_V_ALBARANES.ALBARAN, + RDX_V_ALBARANES.ESTADO, + RDX_V_ALBARANES.OBSERVACIONES, + ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_RECEPCION] +TO [public] +GO + +-- +-- Definition for view RDX_V_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_DEVOLUCIONES AS +SELECT + CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + SOLICITADO = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END + ), + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + + ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) +FROM + RDX_V_HOJAS_DEVOLUCIONES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON + ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) +GROUP BY + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_DEVOLUCIONES] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS +SELECT + APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), + RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, + + RDX_V_DEVOLUCIONES.CENTRO, + RDX_V_DEVOLUCIONES.FILIAL, + RDX_V_DEVOLUCIONES.CODIGO, + RDX_V_DEVOLUCIONES.PRODUCTO, + RDX_V_DEVOLUCIONES.COLOR, + RDX_V_DEVOLUCIONES.FECHA, + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + RDX_V_DEVOLUCIONES.NUMHOJA, + RDX_V_DEVOLUCIONES.ESTADO_HOJA, + RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, + RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, + + /* CANTIDADES ENVIADAS RECTIFICADAS */ + ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), + ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), + ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), + ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), + ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), + ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), + + ENVIADO_RECT = + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) + ) - SOLICITADO +FROM + RDX_V_DEVOLUCIONES +LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON + ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND + (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND + (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND + (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_DEVOLUCIONES] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_RECEPCION : +-- + +CREATE VIEW RDX_V_CONTROL_RECEPCION AS +SELECT + APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), + RDX_RECEPCION_AJUSTES.FECHACAMBIO, + + RDX_V_RECEPCION.CENTRO, + RDX_V_RECEPCION.FILIAL, + RDX_V_RECEPCION.CODIGO, + RDX_V_RECEPCION.PRODUCTO, + RDX_V_RECEPCION.COLOR, + RDX_V_RECEPCION.FECHA, + + /* ALBARAN Y ESTADO */ + RDX_V_RECEPCION.ALBARAN, + RDX_V_RECEPCION.ESTADO_ALBARAN, + RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, + RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, + + /* CANTIDADES RECIBIDAS RECTIFICADAS */ + RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), + RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), + RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), + RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), + RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), + RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), + + RECIBIDO_RECT = + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) + ) - ENVIADO +FROM + RDX_V_RECEPCION +LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON + ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND + (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND + (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND + (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_RECEPCION] +TO [public] +GO + +-- +-- Definition for view RDX_V_CONTROL_TRASPASOS : +-- + +CREATE VIEW RDX_V_CONTROL_TRASPASOS AS +SELECT + RDX_V_TRASPASOS.TIPO, + RDX_V_TRASPASOS.FECHA, + RDX_V_TRASPASOS.CENTRO, + RDX_V_TRASPASOS.FILIAL, + RDX_V_TRASPASOS.CENTRO2, + RDX_V_TRASPASOS.FILIAL2, + APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), + ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, + OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), + RDX_TRASPASOS_AJUSTES.FECHACAMBIO, + RDX_V_TRASPASOS.CODIGO, + RDX_V_TRASPASOS.PRODUCTO, + RDX_V_TRASPASOS.COLOR, + RDX_V_TRASPASOS.T38, + RDX_V_TRASPASOS.T40, + RDX_V_TRASPASOS.T42, + RDX_V_TRASPASOS.T44, + RDX_V_TRASPASOS.T46, + RDX_V_TRASPASOS.T48, + RDX_V_TRASPASOS.TOTAL, + TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), + TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), + TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), + TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), + TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), + TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), + TOTAL_RECT = + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) +FROM RDX_V_TRASPASOS +LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON + ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND + (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND + (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND + (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND + (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND + (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_TRASPASOS] +TO [public] +GO + + + + + + + + + + + + +-- +-- Definition for view RDX_V_TRASPASO_SALIDA : +-- + +CREATE VIEW RDX_V_TRASPASO_SALIDA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) +FROM + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASO_SALIDA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_TRASPASO_ENTRADA : +-- + +CREATE VIEW RDX_V_TRASPASO_ENTRADA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) + +FROM + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASO_ENTRADA] +TO [public] +GO + +-- +-- Definition for view RDX_V_TRASPASOS : +-- + +CREATE VIEW RDX_V_TRASPASOS AS +SELECT + TIPO = 'S', + CENTRO_ORIGEN as CENTRO, + FILIAL_ORIGEN as FILIAL, + CENTRO_DESTINO as CENTRO2, + FILIAL_DESTINO as FILIAL2, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_SALIDA +UNION +SELECT + 'E', + CENTRO_DESTINO, + FILIAL_DESTINO, + CENTRO_ORIGEN, + FILIAL_ORIGEN, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_ENTRADA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASOS] +TO [public] +GO + + + + +-- +-- Definition for view RDX_V_RECEPCION_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_RECEPCION_AJUSTES.FECHA, + RDX_RECEPCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), + RDX_RECEPCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_RECEPCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_RECEPCION_AJUSTES_DESGLOSADO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_RECEPCION_DESGLOSADO : +-- + +CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), + CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) +FROM + RDX_V_RECEPCION_AJUSTES_DESGLOSADO +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) +GROUP BY + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_RECEPCION_DESGLOSADO] +TO [public] +GO + + + + +-- +-- Definition for view RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_DEVOLUCION_AJUSTES.FECHA, + RDX_DEVOLUCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), + RDX_DEVOLUCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_DEVOLUCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIO_MAXFECHAS : +-- + +CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS +SELECT + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + FECHA = MAX(FECHA) +FROM RDX_V_INVENTARIOEDI +WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 +GROUP BY + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIO_MAXFECHAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 46) or (TIPOCANT = 48) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_TRASPASOS_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS +SELECT + RDX_TRASPASOS_AJUSTES.FECHA, + RDX_TRASPASOS_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), + RDX_TRASPASOS_AJUSTES.CENTRO2, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), + TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, + RDX_TRASPASOS_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_TRASPASOS_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) +LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] +TO [public] +GO + +-- +-- Definition for view RDX_V_ULTIMO_RECUENTOINVENTARIO : +-- + +CREATE VIEW RDX_V_ULTIMO_RECUENTOINVENTARIO AS +SELECT + RDX_V_INVENTARIOEDI.FECHA, + RDX_V_INVENTARIOEDI.CENTRO, + RDX_V_INVENTARIOEDI.FILIAL, + RDX_V_INVENTARIOEDI.CODIGO, + RDX_V_INVENTARIOEDI.PRODUCTO, + RDX_V_INVENTARIOEDI.COLOR, + RDX_V_INVENTARIOEDI.TALLA, + RDX_V_INVENTARIOEDI.CANTIDAD +FROM RDX_V_INVENTARIOEDI +INNER JOIN RDX_V_INVENTARIO_MAXFECHAS ON + (RDX_V_INVENTARIOEDI.FECHA = RDX_V_INVENTARIO_MAXFECHAS.FECHA AND + RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIO_MAXFECHAS.CENTRO AND + RDX_V_INVENTARIOEDI.CODIGO = RDX_V_INVENTARIO_MAXFECHAS.CODIGO AND + RDX_V_INVENTARIOEDI.COLOR = RDX_V_INVENTARIO_MAXFECHAS.COLOR AND + RDX_V_INVENTARIOEDI.TALLA = RDX_V_INVENTARIO_MAXFECHAS.TALLA) +WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_ULTIMO_RECUENTOINVENTARIO] +TO [public] +GO + diff --git a/Database/ANTERIOR/Script Vistas STOCK.sql b/Database/ANTERIOR/Script Vistas STOCK.sql new file mode 100644 index 0000000..04deb77 --- /dev/null +++ b/Database/ANTERIOR/Script Vistas STOCK.sql @@ -0,0 +1,431 @@ +-- +-- Definition for view RDX_V_STOCK_VARELA : +-- + +CREATE VIEW RDX_V_STOCK_VARELA AS +SELECT ESTOQUE_PRODUTOS.FILIAL, + ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, + ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECCION=COLECOES.DESC_COLECAO, + + ESTOQUE_PRODUTOS.ES1 as K38, + ESTOQUE_PRODUTOS.ES2 as K40, + ESTOQUE_PRODUTOS.ES3 as K42, + ESTOQUE_PRODUTOS.ES4 as K44, + ESTOQUE_PRODUTOS.ES5 as K46, + ESTOQUE_PRODUTOS.ES6 as K48, + ESTOQUE_PRODUTOS.ESTOQUE as KT + +FROM ESTOQUE_PRODUTOS +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) +LEFT OUTER JOIN COLECOES ON (PRODUTOS.COLECAO = COLECOES.COLECAO) + +WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' +GO + + + +-- +-- Definition for view RDX_V_STOCK_VENTAS : +-- + +CREATE VIEW RDX_V_STOCK_VENTAS AS +SELECT + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COLOR = ISNULL(COR_PRODUTO, '300'), + GRADE AS TALLA, + CANTIDAD = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_STOCK_VENTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_STOCK_INVENTARIO : +-- + +CREATE VIEW RDX_V_STOCK_INVENTARIO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), + COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), + TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), + CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), + /*RDX_V_INVENTARIOEDI.CANTIDAD, + RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, + RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, + RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD,*/ + OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT + WHEN '194' THEN 'R' + WHEN '46' THEN 'E' + WHEN '145' THEN 'RM' + WHEN '48' THEN 'S' + WHEN '61' THEN 'D' + WHEN '65' THEN 'T' + ELSE + CASE + WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' + WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' + ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO + END + END +FROM RDX_V_INVENTARIOEDI +FULL OUTER JOIN RDX_V_INVENTARIO_MAXFECHAS ON + (RDX_V_INVENTARIO_MAXFECHAS.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIO_MAXFECHAS.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_INVENTARIO_MAXFECHAS.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_INVENTARIO_MAXFECHAS.TALLA = RDX_V_INVENTARIOEDI.TALLA) +FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) +FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +WHERE + ((RDX_V_INVENTARIO_MAXFECHAS.FECHA IS NULL) /* Puede haber prendas que no se hayan inventariado nunca */ + OR + (ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))) >= RDX_V_INVENTARIO_MAXFECHAS.FECHA)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_STOCK_INVENTARIO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_STOCK : +-- + +CREATE VIEW RDX_V_STOCK AS +SELECT + CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, + GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, + COLECCION = COLECOES.DESC_COLECAO, + COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), + E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END) +FROM + RDX_V_STOCK_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_VENTAS ON + (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) + AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) + AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) + AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) + AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) +LEFT OUTER JOIN COLECOES ON + (COLECOES.COLECAO = PRODUTOS.COLECAO) + +GROUP BY + ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) +GO + +-- +-- Definition for view RDX_V_STOCK_CALCULADO : +-- + +CREATE VIEW RDX_V_STOCK_CALCULADO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + E38, + E40, + E42, + E44, + E46, + E48, + TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), + S38, + S40, + S42, + S44, + S46, + S48, + TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), + K38 = ISNULL(E38, 0) + ISNULL(S38, 0), + K40 = ISNULL(E40, 0) + ISNULL(S40, 0), + K42 = ISNULL(E42, 0) + ISNULL(S42, 0), + K44 = ISNULL(E44, 0) + ISNULL(S44, 0), + K46 = ISNULL(E46, 0) + ISNULL(S46, 0), + K48 = ISNULL(E48, 0) + ISNULL(S48, 0), + KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + + ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + + ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) + +FROM RDX_V_STOCK +GO + + + + + + + + diff --git a/Database/ANTERIOR/Script Vistas.sql b/Database/ANTERIOR/Script Vistas.sql new file mode 100644 index 0000000..70c2461 --- /dev/null +++ b/Database/ANTERIOR/Script Vistas.sql @@ -0,0 +1,302 @@ +-- +-- Definition for view RDX_V_VENTASEDI : +-- + +CREATE VIEW RDX_V_VENTASEDI +AS +SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP +FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI] +TO [public] +GO + +-- +-- Definition for view RDX_V_REFERENCIAS_RESUELTAS : +-- + +CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS +AS +SELECT * +FROM RDX_REFERENCIA_GENERICA +WHERE ESTADO = 'R' +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_REFERENCIAS_RESUELTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASEDI_RESUELTAS : +-- + +CREATE VIEW RDX_V_VENTASEDI_RESUELTAS +AS +SELECT + RDX_V_VENTASEDI.NUMINF, + RDX_V_VENTASEDI.CLAVE1, + RDX_V_VENTASEDI.CLAVE2, + RDX_V_VENTASEDI.CLAVE3, + RDX_V_VENTASEDI.PERVENINI, + RDX_V_VENTASEDI.NUMTALON, + RDX_V_VENTASEDI.EANLUG, + RDX_V_VENTASEDI.FILIAL, + RDX_V_VENTASEDI.EANVEN, + RDX_V_VENTASEDI.CODVEN, + RDX_V_VENTASEDI.VENDEDOR, + EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), + RDX_V_VENTASEDI.CODCOM, + PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), + DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), + COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), + GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), + TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), + GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), + DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), + RDX_V_VENTASEDI.VALVEN, + RDX_V_VENTASEDI.CANVEN, + RDX_V_VENTASEDI.CANDEV, + RDX_V_VENTASEDI.CANVENNET, + RDX_V_VENTASEDI.CANESP +FROM RDX_V_VENTASEDI +LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( + (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) +LEFT JOIN PRODUTOS_BARRA ON ( + (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) +LEFT JOIN PRODUTOS ON ( + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) +LEFT JOIN COLECOES ON ( + (COLECOES.COLECAO = PRODUTOS.COLECAO)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI_RESUELTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASEDI_ERRONEAS : +-- + +CREATE VIEW RDX_V_VENTASEDI_ERRONEAS +AS +SELECT +* +FROM + RDX_V_VENTASEDI +WHERE PRODUTO = '107CH.EN.01' +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI_ERRONEAS] +TO [public] +GO + +-- +-- Definition for view RDX_V_VENTASTERMINADAS : +-- + +CREATE VIEW RDX_V_VENTASTERMINADAS +AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, + + DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, + + TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), + VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, + VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, + VALTOT = VALVEN +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ +AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASTERMINADAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASPROCESO : +-- + +CREATE VIEW RDX_V_VENTASPROCESO AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + CANESP AS INICIO, + CANVENNET AS FINAL, + VALVEN AS IMPORTE +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) +AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASPROCESO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASPROCESOPENDIENTES : +-- + +CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS +SELECT NUMTALON, + CODIGO, + COLOR, + TALLA, + SUM(ISNULL(INICIO, 0)) AS INICIO, + SUM(ABS(ISNULL(FINAL, 0))) AS FINAL +FROM RDX_V_VENTASPROCESO +GROUP BY NUMTALON, CODIGO, COLOR, TALLA +HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND + (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASPROCESOPENDIENTES] +TO [public] +GO + + + +--------------- SQL --------------- + +-- +-- Definition for view RDX_V_REFERENCIA_GENERICA : +-- + +CREATE VIEW RDX_V_REFERENCIA_GENERICA +AS +SELECT DISTINCT + VENTAS.NUMINF, + VENTAS.CLAVE1, + VENTAS.CLAVE2, + VENTAS.CLAVE3, + VENTAS.PERVENINI AS FECHA, + VENTAS.EANLUG AS CODCENTRO, + VENTAS.FILIAL AS CENTRO, + VENTAS.EANVEN AS CODVENDEDOR, + VENTAS.VENDEDOR, + VENTAS.NUMTALON, + CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), + CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), + TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), + VENTAS.CANESP AS VTAPROCESO, + VENTAS.CANVENNET AS VTAFINAL, + VTATERM = VENTAS.CANVEN, + VALTOT = VENTAS.VALVEN, + REF.ESTADO, + REF.FECHACAMBIO +FROM RDX_V_VENTASEDI_ERRONEAS VENTAS +LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON + (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND + REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) +LEFT OUTER JOIN PRODUTOS_BARRA on + (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_REFERENCIA_GENERICA] +TO [public] +GO + + diff --git a/Database/SCRIPT MEJORAS TABLAS.SQL b/Database/SCRIPT MEJORAS TABLAS.SQL new file mode 100644 index 0000000..769a8be --- /dev/null +++ b/Database/SCRIPT MEJORAS TABLAS.SQL @@ -0,0 +1,473 @@ +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_LUGVE__CLAVE__4A59F0B5]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) + ALTER TABLE [RDX_LUGVEN] + DROP CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] +GO + +-- +-- Dropping foreign key FK__RDX_ARTVEN__56BFC79A : +-- + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_ARTVEN__56BFC79A]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) + ALTER TABLE [dbo].[RDX_ARTVEN] + DROP CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] +GO + +ALTER TABLE [RDX_CABINV] +ADD [CARGADO]char(1) NULL +GO + +ALTER TABLE [RDX_CABVEN] +ADD [CARGADO]char(1) NULL +GO + + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INVENTARIOEDI] +GO + +CREATE TABLE [RDX_INVENTARIOEDI] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [FECHA] datetime NULL, + [CENTRO] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [CODVEN] varchar(10) NULL, + [VENDEDOR] varchar(66) NULL, + [CODIGO_BARRA] varchar(17) NULL, + [CODIGO] varchar(12) NULL, + [PRODUCTO] varchar(40) NULL, + [COLOR] varchar(10) NULL, + [TALLA] varchar(8) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO2] varchar(17) NULL, + [FILIAL2] varchar(25) NULL, + [ULTIMO_INVENTARIO] char(1) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_INVENTARIOEDI] +ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] +PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] + ([FECHA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] + ([CODIGO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] + ([CENTRO2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] + ([ULTIMO_INVENTARIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] + ([CENTRO], [CODIGO], [COLOR], [TALLA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INVENTARIOEDI] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_VENTASEDI] +GO + +CREATE TABLE [RDX_VENTASEDI] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [PERVENINI] datetime NULL, + [NUMTALON] varchar(35) NULL, + [EANLUG] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [EANVEN] varchar(17) NULL, + [CODVEN] varchar(4) NULL, + [VENDEDOR] varchar(66) NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [PRODUTO] varchar(12) NULL, + [DESC_PRODUTO] varchar(40) NULL, + [COR_PRODUTO] varchar(10) NULL, + [GRADE] varchar(8) NULL, + [TIPO_PRODUTO] varchar(25) NULL, + [GRUPO_PRODUTO] varchar(25) NULL, + [DESC_COLECAO] varchar(40) NULL, + [VALVEN] numeric(15, 3) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANDEV] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_VENTASEDI] +ADD CONSTRAINT [RDX_VENTASEDI_pk] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] + ([EANVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] + ([PRODUTO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_VENTASEDI] +TO [public] +GO + + + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI +AS +BEGIN + INSERT INTO RDX_INVENTARIOEDI ( + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, + VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, + CENTRO2, FILIAL2, IGNORAR ) + SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), + RDX_CABINV.IGNORAR + FROM RDX_CANTINV + INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) + INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) + LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) + LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) + LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) + LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) + WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND RDX_CABINV.CARGADO IS NULL + + UPDATE RDX_CABINV SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +go + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI +AS +BEGIN + INSERT INTO RDX_VENTASEDI ( + NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, + FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, + DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, + DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) + SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP + FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) + WHERE RDX_CABVEN.CARGADO IS NULL + + + UPDATE RDX_CABVEN SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +go + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO +AS +BEGIN + DECLARE @CENTRO VARCHAR(17), + @CODIGO VARCHAR(12), + @COLOR VARCHAR(10), + @TALLA VARCHAR(8), + @FECHA DATETIME, + @UPDATECMD VARCHAR(255) + + DECLARE ASD CURSOR FOR + SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA + FROM RDX_V_INVENTARIO_MAXFECHAS + OPEN ASD + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + + IF @@ROWCOUNT >= 0 + BEGIN + WHILE @@FETCH_STATUS = 0 + BEGIN + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL + WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA + + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 + WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 + + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + END + END + CLOSE ASD + DEALLOCATE ASD +END +go + + +/* borrar vistas */ + + +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES]')) +DROP VIEW [dbo].[RDX_V_ALBARANES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_HOJAS_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_HOJAS_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_CONTROL_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_CONTROL_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VARELA]')) +DROP VIEW [dbo].[RDX_V_STOCK_VARELA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK]')) +DROP VIEW [dbo].[RDX_V_STOCK] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_CONTROL_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASTERMINADAS]')) +DROP VIEW [dbo].[RDX_V_VENTASTERMINADAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESO]')) +DROP VIEW [dbo].[RDX_V_VENTASPROCESO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESOPENDIENTES]')) +DROP VIEW [dbo].[RDX_V_VENTASPROCESOPENDIENTES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIA_GENERICA]')) +DROP VIEW [dbo].[RDX_V_REFERENCIA_GENERICA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VENTAS]')) +DROP VIEW [dbo].[RDX_V_STOCK_VENTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_STOCK_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES_PENDIENTES]')) +DROP VIEW [dbo].[RDX_V_ALBARANES_PENDIENTES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ULTIMO_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_ULTIMO_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_ERRONEAS]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_ERRONEAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_ENTRADA]')) +DROP VIEW [dbo].[RDX_V_TRASPASO_ENTRADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_SALIDA]')) +DROP VIEW [dbo].[RDX_V_TRASPASO_SALIDA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_RESUELTAS]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_RESUELTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_MAXFECHAS]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_MAXFECHAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO]')) +DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_RECEPCION] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIAS_RESUELTAS]')) +DROP VIEW [dbo].[RDX_V_REFERENCIAS_RESUELTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_RECEPCION] +go +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_PESADA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_PESADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_PESADA]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_PESADA] +GO + + diff --git a/Database/__Script mejoras.sql b/Database/__Script mejoras.sql new file mode 100644 index 0000000..21f90d7 --- /dev/null +++ b/Database/__Script mejoras.sql @@ -0,0 +1,434 @@ +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [dbo].[RDX_FILIALES] + ([CODBARRA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [dbo].[RDX_FILIALES] + ([CODFILIAL]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [FILIAIS_idx] ON [dbo].[FILIAIS] + ([COD_FILIAL]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [LOJA_VENDEDORES_idx] ON [dbo].[LOJA_VENDEDORES] + ([RG]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx3] ON [dbo].[RDX_CANTINV] + ([TIPOCANT]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [dbo].[RDX_AJUSTES_ALBARAN] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [dbo].[RDX_AJUSTES_ALBARAN] + ([CONTABILIZAR]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [FATURAMENTO_TIPO_idx] ON [dbo].[FATURAMENTO_TIPO] + ([INDICADOR_TIPO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [dbo].[RDX_TALLAS] + ([TALLA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [dbo].[RDX_DEVOLUCION_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [dbo].[RDX_DEVOLUCION_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [PRODUTOS_idx] ON [dbo].[PRODUTOS] + ([DESC_PRODUTO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [dbo].[RDX_ARTVEN] + ([EANART]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [dbo].[RDX_ARTVEN] + ([CODCOM]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [dbo].[RDX_ARTVEN] + ([NUMTALON]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [dbo].[RDX_ARTVEN] + ([EANVEN]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [dbo].[RDX_CABVEN] + ([NUMINF]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [dbo].[RDX_CABVEN] + ([IGNORAR]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [dbo].[RDX_INFORMES] + ([CATEGORIA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [dbo].[RDX_LUGVEN] + ([EANLUG]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [dbo].[RDX_RECEPCION_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [dbo].[RDX_RECEPCION_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([CODIGO_BARRA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + + + + + + + + + + + + + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') +GO + + + +create table RDX_INVENTARIOEDI ( + [NUMDOC]numeric(10, 0) NOT NULL, + [NUMLIN]numeric(5, 0) NOT NULL, + [NUMCANT]varchar(17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIPOCANT]varchar(70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FECHA]datetime NULL, + [CENTRO]datetime NULL, + [FILIAL]datetime NULL, + [CODVEN]datetime NULL, + [VENDEDOR]datetime NULL, + [CODIGO_BARRA] + [CODIGO] + [PRODUCTO] + [COLOR] + [TALLA] + [CANTIDAD] + [CENTRO2] + [FILIAL2] + PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]), + CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) + REFERENCES [dbo].[RDX_CABVEN] ([CLAVE1]) + ON UPDATE CASCADE + ON DELETE CASCADE +) + + + + + + + + + + + + + + + + + diff --git a/Lib/midas.dll b/Lib/midas.dll new file mode 100644 index 0000000000000000000000000000000000000000..7b11def572d99fc4aa9fdca1f790becf1fca43f2 GIT binary patch literal 296448 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τ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 literal 0 HcmV?d00001 diff --git a/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 b/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 new file mode 100644 index 0000000..0de6515 --- /dev/null +++ b/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Iconos/CargaEDI.ico b/Resources/Iconos/CargaEDI.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c20b2333f8a3d199cd73895d18caf2cb04f54f8 GIT binary patch literal 14846 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 X=-n&wjCQU%>f*=;8 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 pk)4mwB_BL42b{{zB!H)a3; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Devoluciones/16x16/Remove.png b/Resources/Iconos/Devoluciones/16x16/Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..332ae886bf386f9d15543de7506055920dd4dc61 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K;ba4!+xHV^zz5k&Ak)!qe*1s8fX6INreQkk3Y`OxS6ygU1!+dK{1JZs90-LqF{q%*#` zcTZ>0PZ>AoS6kK6do9!zh4)PB@?k|!PE49GKGZT+}J zDQ=HShX$vbs``8Z!JO{aN1kG{%c2So9y0e9TP}RDWn*mR2L2ll*}g^@M_8}CaerMw zfeXL;o;!*I`eSuyMof*W%;Y89^H4e|8}m{Q5lANCC9!$;m@~v z{Boza)@rV$jqmoBGHA?~|NQmy>Fn3C|9iepC^xBe-)yLK^glC$<<#l3rMJli14ER- M)78&qol`;+00U>FTL1t6 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Devoluciones/16x16/Thumbs.db b/Resources/Iconos/Devoluciones/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8496f5f4e5d5e89acb706fb845f3e720ea8d1cc9 GIT binary patch literal 9216 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%0Dr|C-+uD2FgJNs03A@8q|PVPzUM(`dlAi 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Devoluciones/28x28/Remove.png b/Resources/Iconos/Devoluciones/28x28/Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f4bb20c10c4704ee50bb951dcecbde679068ef GIT binary patch literal 605 zcmV-j0;2tiP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-(@8`@RCwCFmc2>?Q4oc{O%?(+T3JOzv=JM@LPSs@ zc?k;*1Nkm+2AQc;GWEP zXOc4;LqzybnE;P_V+Ej^;4SKSW{zL3q7Fr*_42Tr7tgaKN}gxQ>8hS5?lvOQ>JT88 zE8+W3Fn&;X=&@eR;HiszS{sJ$sU3 z@uT-Q2!ifHPU!YJ9vz_XS2(*{i8bqZl4OVok9%W<>*x4TFOO5y@eDNhY1dlM!3TKQ z%@@+FIJ1vXS0@kl$>mCs-?LRNR{=vGm=NluX$(I2DOOx2b*L57*r{2X!1uSmu((i1 zOk-|-8D=d>9efpR@n}_fe0j3T`W8a1Y^Z?6i;cr-HX+o?6$fmuO({RKur$prRu|L+ zXlKUIZB8|f`=?g`T(@-z+jg0p7zOBpntd#cVmoK;jMRVLcEU_Ei|Yl93=jQw3P#Vs z@HFO1NEFO*0zN(+Zg1+eIxO|oVWe!^1>nneX*xcR6Li3mR$C8R-#S?xbv}UqQ{Mvs%G2KCusV6`00000NkvXXu0mjffZ+W0 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Devoluciones/28x28/Thumbs.db b/Resources/Iconos/Devoluciones/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..70502f6cac2358179b850367fcdab3088edd9344 GIT binary patch literal 7168 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 a=uIUI_g1+4TmL@%6~+12Gyj`<;Qs(oFU9Ww literal 0 HcmV?d00001 diff --git a/Resources/Iconos/FicherosEDI/16x16/Tick.png b/Resources/Iconos/FicherosEDI/16x16/Tick.png new file mode 100644 index 0000000000000000000000000000000000000000..14a31e9e7cbadc3bf32ecd4e717dc49d0276c14e GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/FicherosEDI/16x16/carga.png b/Resources/Iconos/FicherosEDI/16x16/carga.png new file mode 100644 index 0000000000000000000000000000000000000000..c115d914ddd925f1da2a4f51bcd9e4799ad320d4 GIT binary patch literal 3290 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 Bsg(c# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/FicherosEDI/24x24/cargar.png b/Resources/Iconos/FicherosEDI/24x24/cargar.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d3347c7d0582384305c7a12d922cdf30a55c10 GIT binary patch literal 3613 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/FicherosEDI/28x28/Thumbs.db b/Resources/Iconos/FicherosEDI/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..1414e12b6578a7cce920ba61a20b7494774997cb GIT binary patch literal 10240 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 P00000NkvXXu0mjf8k+Z< literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/013422.bmp b/Resources/Iconos/Generales/16x16/013422.bmp new file mode 100644 index 0000000000000000000000000000000000000000..315851d43e5ff2c79f09af5c353b9c81055169cc GIT binary patch literal 2360 zcmZ?rwcum`12Z700mKGCEC9re3=%++fq@AqFDMSdU;!ZUdK8cz042?%M4a)VE+rnaIEZ072j7XXUTG6T)6D2anX=T zx_CTY{y1xb@GFsvqN(k4xsOw&b47ahL=!JnXCa_&9nd!3s*yZF_M!}!tzj1UVG z0)!s)(+PMyK!`iSN763ba2yBx1P_&<#boGf3QR>oN|vGVJd{WTI&qbFit@T!Q&kw6 z22GuWqqMHUB5kRZ*HrSNyxWtaxpms7kO$=) zBL$QCO5ankei*bvBVQSgX}~6EG-LlNkss~*X}}`xSSFkU8@7Afqz^2FMzA6CWrNih~<%y;4Wja!~q!OK@J4*Ps$k%;oqiPeN4N(&3F z<@u+fM?JxT!R!9MK3B7)`0TVG2#KYoL&aISSE7MdG2ImdGF8zAlfA$*1*0Nes@`K9&Gf_m0Dghg}V z2pd3ObM_XFkEd8sW5qctYe<2x2>@HbjR2aaH#wBAMUhjTzF~E}CGM2Vk5kev5M#h> z$}kMHpWZR-?nx<$9Ljjqwo4U}xrmsEVkbsQ8U98{DI@LzW{&ufkb{BA`;uJ8gzp0) zazAqJ!(8^PfnxZvB|lQqoe&?!|gl|7@6KO36a*_4(VD-!bKtB(q z3LS!>Xz<~c_bULbD5>1pRUEc`3{mTub${K#6U*>RVZQ@snSUw!5Az6>1CH(^!n8#I O0000+5jntuob?#; z=Kf?b)?fikUb}D-O!G*ZGQ58Ok741SZwz;)vN9}Qw~s+VQ2`vVj4;hU_PPuu3xB~i zC)lvSUFVv+8RTbV0MmTx_7AWZ+NZ5yu(32sfyV$SbYH#u1P*QFD8v>M1x@qdF~Nu& zjUYdP{08!4hRt;p7tA=KiDEO>qz!Wk$QF=o0d3#FDG{5^cvB;?AtY(WW(Xn8jQ9)z gg$XFCaQYbt0GS|fm@h($07*qoM6N<$f}R@HF8}}l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Añadir-capítulo.png b/Resources/Iconos/Generales/16x16/Añadir-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..16e9ab93e2523a1da2bb6f082ca1c54111b80edc GIT binary patch literal 717 zcmV;;0y6!HP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqLrFwIRCwBqlTAoeVHAd+@7_Cqq?wRtC5b{sKMNbE zHnS;WFv19I)1pO-7J-YPMF|}I-@gl zf4&x`IH=XT{myybbNJpPf`RT1;5C)H*4fqD&p#xkL<9rf@@9v#;^A3;`M)5$0=7VQ zRA*PO*Z^p|73~Dw30whK$xFgh7Li{z0MjB$-~Is(?yW^P3Pcxj+?Lk~2D;^+7Eu8R zPg#h3j$7V1ihz$xN#>ebcyRU#?@HrzJ$l83Jww#Z#`qLrg8MxvTiqA39=r`%6amt* zsFQ-CVUQzFezgd|KHFSxhN~4Tgr_VHx#pR$7BF=iSuPXGWLe$sKt*BAC_@h3kRZ`W z?8ONh?*+vHZL52GQa& z`wmrvkbnnkTM}iD9NvTlM7rd*$QMc&riJPd*j0RxeR6W6M)~WxIj9#VL~==Hm(w_$ zDoE;gjq)}rlz*g>`sBzwhHjzS3V5hEhTj7K`Ro^OC8U&<00000NkvXXu0mjfL`y52 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Añadir-material.png b/Resources/Iconos/Generales/16x16/Añadir-material.png new file mode 100644 index 0000000000000000000000000000000000000000..d43ef4ac1b5e30272d9cc99cfdbf16cc6276db2b GIT binary patch literal 685 zcmV;e0#f~nP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqBS}O-RCwB)lDTVCQ5eO4Z<&`jCOD>wSO`%RB!U@n z0SVCz60nG(SZJYWVUa>mtO9~qrLjmO>K|aCje>#@WC{_93P~VjR3^({GR~6lGH=$m zUyGS+P6ELLm-}7rIp@2}k%SPe;>B%geX#>9R${0d#W(IWlN`G-EU;H+3%-uk_vQZ; zNA}h^((_vgwSDKu_EzfR>Dd@S{R-EwHWO_NJ{xei)XKiy?U+uL-+v4SYtS+qqc{(ccV@oVmPe6mc7c558VuPR~%T*tnjL5|S9zl3n7JNUVM1{g<^X z+r?ITBJ~~f_Q#V(j#O!hkfz`YzXM2Yn}bb|ac1&4GclINHGPyohA_@X%HIJ1;(z|d TZuXkZ00000NkvXXu0mjf2~H@A literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Back.png b/Resources/Iconos/Generales/16x16/Back.png new file mode 100644 index 0000000000000000000000000000000000000000..31194b5487e28e2006793b4d6559de85363b4b63 GIT binary patch literal 909 zcmV;819JR{P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<14%?dRCwBClU-{`gyup}TJWL}1hJsdOD_VwkgC)`s$y(u5|L^^ zEC$=Sn`HN#nK|doobjT`vg+J?49xR=@5j8a!~ahKc(}2-;r^zUhFrC(%F0)lfN5a0 z{-L!NukPNM$!7NV-E;e~{ztYKi#z+WZC$O-UyG$=W_nKkaA9`l+QRjdCNk%Na2;~i zYPO@RaD3p|-N%N82ik7CvkS)olO%*DVp&$0pI@-&KEH7N()nNB56W@^h^)1^0B+iS ze(=!VHxIw_V%r^k-K5+Uj^i?ZbP8!ggi+*rnw`fE_jhf3y!Tz;$#n%Tu=%0A+s9sb zd0(y}n_1K4@ZOPc0I0@-O6;>5`h=N?yN5P!>?{^e0G$A?m+_u{^r>B&n)8h$){+2Y zBVRFj_A~%zMz1nCzQpv&h)NWon+@#`w%vux0RXSPGylZ49ldE|6C7(8Kk{u2o;-UR zsUn1m8GiL`s!@Qi1=%ed8oVZNAMlCSertYfbD@dY#C-6^cQsgRL#z!##RwJOTqg?f zBY|l(c=^;;0ME;$JZ-fT#Ip9Ex&}tXIzgxifYs2)j{*WMoy1LA0NkZN%YQ7Dm+i8u zaA0&JgD;KLV4-3vzCzY12x5s}5>}V>3V?TGu{4;JhfmTSZ`1{jt04fK+$BzYmD3Cft zRuwCsRj=vGX1}#|)&+jL^7Yk;AHSRnmqmqTwMt2@AfKB7U`17_sDL0=2&M3+h17HA z6fj$F<&Jz$%c(8T^b8gHTQ?{#B#0GK%bQczCI=U#45y+q++Y+~vDVfa0Nj$!rAG?) z<%V-Rn>w9tHx*@KWK|)4S4PapMg6OpK=3h8T2G_%pD24k(MfaAYx9aui<8wA6C|bN jGMX=dp8-=J=YIwOdeNBT-uohq00000NkvXXu0mjfJY%Kx literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Box-Closed.png b/Resources/Iconos/Generales/16x16/Box-Closed.png new file mode 100644 index 0000000000000000000000000000000000000000..189b83f2890a119a53bb0e00fbca690b3fbf222c GIT binary patch literal 400 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 P00000NkvXXu0mjfPt?C$ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png b/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..464fcd71fe5bada44d33e974dbc055a8f3151a64 GIT binary patch literal 530 zcmV+t0`2{YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-h)G02RCwB?lQB*kK@^6+K@=1SOBM@}?rAb4x4bt9#3)qSjAQEVEgFQhSoEsp^9de9eXV>#4#b#k`uha0F(bLTT z{r~9AC~Gb6sbv7AROx0XaO;2%1T8+@BC(+S*rAOLO_CNT2m3?Kq&q7i{TZ+j|9 zIl#=XT5F7fM90K0S;E&VbOQIFS|Kz7!x4^|aW;|(i~SU!S|Qv!_5k?tE$rn7W}QXg zdHjSF080S-XOX)79s=BG9g`-S=kXJx;UnYGAH*&goX(iD4GuPqc8r&Rh5ntle^-QOw|_XjZ>>nr?s zjO~j^{k;1%CGHPm`h%EEaktaVzQ1|Nr*PstuiuP6j+Y2N?Jm7y2_NPm2Ax@?`dm3L_=O&-QKHGE7eM zy*N5N_SXH*61QWHv)z&S?a5PNHV_a?Ia^=%Z$i|@1S@65@IxkxZ{$3F*=_6?WBlO% z|3i*zq>lZ6s+IiR>d1%xsiJNFd#1gMyZl7;sd3^Y{`vNE^iE1Og92*`t$dD`K~EjKC#XC zTo07e*Zb0W;?HlD!qdTGZO(`ONK3}=6~8S0`2LrW?~7#vJ6|u}8*wJlvakQLq{N!U zB}Aba4!+xRvzh|9^XC)rQVSCj%ay0}OnO3;mgsC&hkTc`|!Og^`lt=l?(u82dm# z;8%!~gUhS0x5IaTko@rKAn#^%{rLtUut6dF-{;TmSGrg)OLFcMS|)ikP1-+xl2A+U z^7kO!#v3AbRr^jB5SW;hkdV;fapKSa4?hpT47zkm`r5hKd%7DN8x<`yufM%{c{k&y zNuOrkh&d=Ral+5~V=ZNE-1 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;R7pfZRCwB?lU+ztVHn4M=WJ@5qYqo^n$5NRz^uul zFqN{4D1-=ty03)7>?WwYf{40_5-eJ*3kP0wmlp*_5(QfsQCLw~URaifrTb`l+;)!V z?Cl~QQ!0ucc;S8F`Tw5(`@mlkLh#?!4aLuV?hB9Cmz@WsKlS!F?JalR_6J=ib_*de z2f^K3DL-+#tfiR}H~l8_lE&8~r+@|40^q3idOBrI*&q8dk&?g$z{4UgrRoqfUWC$I zD$<8{iLlqxk?W+_VQU@mI%1*HJaOAbqzf7Wgb+vpux>5mzH1o`ngK?>1zU}eH}Ah* z9(wiRw8yp7zdS#4FdA2+DV5Jrg_c$r%mU`@+3THzimcRV2Fzw8Y@RAcKTV7k=*hB# zqB5m2I!Ga&aUD$#Eb(Uk?G|-TsLnwwX3hm*<8J{6z!dUUT=h2j&Zc4!Su;S@ zAvKGk8IS?HN#>p(s(%SMURiQ+OG8cjXgDNk`cH8pP4Ih?rliK8s)L@vAwl02Si1nw zTWs04sjB$I*uV>>;?t-)Osj+^HQHL?Y1Ck|mZ1aCC2-|K-*s?i|NXJPe0W8n+4KD6 zFscqojmcP=x}z|jJIN2*B&#?Bu0sJlZTma?;*NQ9$SrQJwrvWpQ2!vY&bHw})Qg}D>(UGE)?2nn zv9soCYS{%adroVq`C~5_dQ{cTqHT|{NpwZ?jNfnFTpS-pb+zj>DjU=nxr9nGC-5-& z%${Y|z2edY&v^;WJ2pR9d#zSzqVWoe!z)*Aj69;qtNEFwAy!~>jcWiy>-+KzZ`W?$ x+p5T<&i+oS=Eb4!9Chmt*6&tW_r6AwVR27*@>7cmQ9x%ic)I$ztaD0e0sy_eY>WT^ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Details-Show.png b/Resources/Iconos/Generales/16x16/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fc51737618e59cd3efd5d53c5b9b359664c92 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QEc;uunK>&WE2eoT%ct><5Cikw_4kv0FojbBVEE%(F?6b(&Wtd<&^gtRpE^@V@1 z>|rzbb3$j6{MEkAX-9pxeK0Yeyt8<}@%M8Q4xuH>x{PkB$hm7w-Js!nA>FvJ`s-@9 zg=eR~JaAM)&ei9dKTn*s%ipM#)r?#&RqVKW0M#xBH9kumoNxz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-W=TXrRCwBylFuu{VI0R_TU`7DqHj)9PMV82szog% zEor$(k%Nm1#YszYaB>);)V7O@SX&7>e&>RnSSuwCD+gt1dcM#1T-4=@tH~uK@sP-yjS~d2aFm0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-)Ja4^RCwBilf6$J7pz_`hvMkgV0vBb^As0oe6O(Zc43bKGE1VPcJ@Otk($Km-(oA%*J z?s7hU_k4P)isyN>OQkY342)!Ndir*!Lz{$ofu+6+BLMH;&aj_^d4W-(kL~)m46Ogl zVD9MgaeOaC0TGLc1J4KGOl5*|+b_A+e+vMuM?C&K&-9Z?{EQU%(O$4RL@lb)`e`LD zQ{8-k)+4;lVoTowIB_^;-bZnW``5WDfl-8`gdY#U`I{OCI)ZAz#q9AR+`o5zh;7W;eAp z_nKB;H&y?6g*XBaPVe7Fb-S?M$ewVNLYwa49kn} s_B|%A{hS8|COSZw)55}|+;jdr0HIg{q*(P~JOBUy07*qoM6N<$f+tN1od5s; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Filter.png b/Resources/Iconos/Generales/16x16/Filter.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a5e99258899a6fc97e0888cc928b6c7306e6ef GIT binary patch literal 488 zcmVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-UP(kjRCwB?(@!YFaTv$(_ixCN1LET1;-Kv3;zHVS z*-BBwMH`J=gv*p0yZDof8ks2hmkXs7H#e5wa*z^f&1RR0#3uDPuwUEkx1~Mxy*%GO zulhbuUqwU!P!t6KRdxO}08R5L7*sM>oZ3`Xr&z|^T$#%8pPiwCxHO-BKLme3Q)Xjf zEx_sa1ubz6m*%5mdX%Qx8kzwwNM4}3exJC_&E8-XfZ)n5Wx)t#22V)?Y<;b4G~Q6u zIYFtpj()G1%V2~@AZ7sQGnkrNm+A&9JSKxN=LCQwhX*@INV|jI zdFVjkI?UmC6|WzDX6846Q3A7Jzyb~n00TqAgkqnpYLn^fNUp^0@Q8@W%lntyJ;mkx z_Dw$r=g+cq9F^pn^;{}ogk*+u0+~p*a9$u4$rk<>kS&}Fm?*Gv0{78GVL+F4Bz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-sYygZRCwB?lRrzFQ5431uLK-ilu{5&@B_G*K{^zq zL(w8G9jb`Y$rfGg(nX4EKY@iT(zi(!Dx%RrN*AMIhl+!W;vX_Krjt}@s7da*_jG9U z8k+>PJ#gW2;Q2l0564qg{wG2J?~|r8tER> zx@zQ!%?ZNO;flOihY^br%jfMw04e}hE&hQ|CYNFDbPWKfO3_#fMG0OhDgeoJlIDhH z0Q>_Vr;5mxvk{Aks|}dinZob#X{>K#{$!qu%O8QTsWTqHssfI_ACbzWXrF24yl_s= zI%j~#ccK3NAKaTuqmGfwu?!0$nd#gw%WDt-3P_KEGr$Uggq zh@<1~eOemsk$T<7T)ZVHJ719ME%Yw;lDByxGZBnfp0AFOeKQF_-*A@Jp1Gifsui3J zr-NY?io)!x2Ymh5f3*Q)X?wbasWrs%72SE503iJM!!iaPm!0E(yGGCRqL2Dt-ufC}j1ESB4FC?EOM^9?HnIQ!002ovPDHLkV1kL5 B^UVMN literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Forward.png b/Resources/Iconos/Generales/16x16/Forward.png new file mode 100644 index 0000000000000000000000000000000000000000..2a17743d96ff4519fed2f71b76ca3c0165b49c92 GIT binary patch literal 896 zcmV-`1AqL9P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_DMuRRCwBClU-;WRTze!nVsG4CL1=pYksV@rY5#p z-Fng1U@KbDKy6+Bh!qhb;!UAaTU1aXf(FqW+Y3>GP%KywyzxTlg#>E}q#(wICJ|8s z(&A!TcC*=?Ip@sGIWu0k2^;&}96mVD_r2%vz7{uE0eGk*o4&uZE1hdLRZY3-GB5+I zwqK0n7^ki8NM%xohwj;WV))@*rP7|EOtHV)`lnKjW@i@UPZ#HBuPrTqVgfS-_-l~W zIy1ffg*Qf?*>_@eY@~Smo&8uAm?*+G0V}e>;^I<#{@lgo%TvF7+DyVuU|BX3uTLY5k1&edK-PNn=y3ne#|FoNC)O0$z_teu?0WCW zs|R!GOsb{J!nCw~`qmtc&}G$k@lyeJk8ZoAuT=N|=mT(^l=IXhhxTsC<~xYunD<}1 zu;E9)`}#A=FCL?GJfsnL=&YgVf#O}ui?t_#Gfq!m{_&l=2a_g_uwt_gwbwUap619a zC&`U@xLT0ezA5c=ItPI>cF%439oa%Bp$Spi-vDZDkSai^kk3zl$m-dxxPicQ8=QP% zN9zd*N5|UoLWys}4X{ulLIs36LZ|?MM&ROUX+?I_1>oHHyLRmkBCs>Rz<99x(?u6uhga&ul%`xaNib3XbHfxFCSl5^6|v@I_w1ksTJ;$ zFp(EuS~Jq_z2$q)kDT1!8zcfet&m#bg%Wvg5P(Yg0i}FmG(|&sc%eclg*zjpUNEPC`F1P!<_Ee?ZGU=T zv@qPgNjW}VsE}Izx3#s|yCkJQ9h~Jl?*jEWj@JhO+?vcKj}`9Ajpg=q_F0?lM34%R zO@;VN88Is>`VTXS;0vI-mPYG;QFefmmE<|6=#;E3E2A66i>lEans0$$0n;Ame+K}* W?uTl1G=)Y00000K|O^2F;Ok2f`K&fS&Du*WXoZ<{SoRkWFY z>i3RvfpYub`FpDqrgJBEaDIPae$0x0%{t|eQ(o+6T_iB$=SQdXP8Jp+#T8pP?B{v4 z3#?I)mYMK_L(tcTy_uu=p4mTrjf-dG^6$*3J84}W+8ea|v&SDnvtwzopr0EU;EM*si- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Group By.png b/Resources/Iconos/Generales/16x16/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47750f39cc83b336d67c85bf72b879238af8ac GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%~PaSW-rmGtNTe|u)thR#N(0~s&od2SIt_kPZ~4!vWC4jeczVg5`$@gJX`>mU9; zf4{`Ozdw$Cc>CMGP5*wqflc+_c@K{r6^`IdZ8R*C+wCz;JVF8p)coe3bO?3u+QGx@ zETOq|ChK&TjhW4?^IslW!rQg?fW?EIf(8sT`&@T^nwhKzbOwW`tDnm{r-UW|8kAmD literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Home.png b/Resources/Iconos/Generales/16x16/Home.png new file mode 100644 index 0000000000000000000000000000000000000000..199e9cd5963d6cbad1e957fedd7d4ff6783b38c5 GIT binary patch literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lQB!fKorM+SNtA+gapB%gL@v@o*AS=t5=HBMHfMbLP0^A9FaIAjj^Vu(1RQ9-TVD{_rLcNP(VT=!1nOY9vsK(irARlo#p#3$OAqWYG@DJFR)kXemnY&cI5BCt??-nGi%OKz z0Iui;`PUF*g=3RqOv>eTpU<1UZx1?Q{-<86ogGx*qy3*P;vG&%ObWnpZ-WPYE0*@b zJTdTn0^cuVaS^YsMjf0~5@)lw{Dlkg+CHeh8DKhn=3Gq>HNv$5A2Y-0MO2>S_?^x5 wNBScejK=n1@>=ceY25qw6wXZ)tB&*60Ib2mExk<-9RL6T07*qoM6N<$f)mNS(EtDd literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Minus.png b/Resources/Iconos/Generales/16x16/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8a7d0d9c5b55a08c2715a48ecd6f3c7336846b GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%{OaSW-r^=6VGSBrs&OZ*Y%Bi=jOi@xhsvv2*9aXVMk*F~wOn}ajw`TG?1x{uwJ z28SgC9T#&g&0|<`+MxH2B6?B{C2OjtN3(tS&$sVk z(wVlur}l*jNAx)NthH~Fh-SLWZgw>4&3_if59Lj(92sKr1sJM%{uF#%m?hM5*nYjj ou}QY^CV@v2_T9T2@}805RMaSW-r^=8s;PNqN+m-Dp|9lkSH{JqiC5thKeP0?(_iKecY`**i*FiKPU;b}H` zZibqr@xd7?zceleGc&lYPuyg|;UHuwuEb?2J}aY;|4#GiytH^mhR-j5yj-7mCH--Q zS4e5n?t6dY6gr<~{onZW8E&j$Xu0sw2t@k^=Z`ibD<2Sy{pv;NU6)d(*VND5{7p~nobgsGO>>rNg zg>4Je*n)p1ButOpSDW9iSne+V^+MoW#=o!HI!=}D*|B4lzSGUuPi*B2;obaF zKRZ^-m&-aJRyRfg{{r(;A{1a_97oLYlmo|#NEc-9& h@ZX+$F5`Aa2K942TUA;9>m$fWQC% literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Outline-Move Down.png b/Resources/Iconos/Generales/16x16/Outline-Move Down.png new file mode 100644 index 0000000000000000000000000000000000000000..09fdc6883db962d2032c3fcec4479045d336ec73 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QTh;uunK>&oPfUd)aHZTmSp*H6&f=%p-nP>IpeBUMqQS3qFn>FOn$wtQez$<=c7 znCR7Ql9V|)DCdaUh9_Nf?&oPfSxkWfuJ3gw#cvQeBCthJyW2r)Bc~a6m{ZX0$e*mg#eZ=}FWWFh zK|^I~%TcwtH%=Wotb4CII)=N~qa-|4Ti?g<@R>&I!yKL|6PtTZ@i3fp{xkhGtIuoo znLGu18~&|NTm1j5$$?1jb>biXuH_Ns>{@E`>aKs>-sZ=NTLnetbFH{07x=QLLhwNq zV{fOS#6O2z7A>KcQwOi-FfP{pwEiEbOW)pZ4u%Iy%~Lmj?Fq2#xTfuMtXRkX)~D^w z-RUN3ZYyM3ve>WOQj0SzUzd^Fld<>EVY~g32_-!zEBMyFRh*>q{Xh3i#@mbx+q|b3 UX;*{;JFVdQ&MBb@0JQaw#Q*>R literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Parcel.png b/Resources/Iconos/Generales/16x16/Parcel.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0ef92f196bd544cb9e9323ea8c396fb21c9188 GIT binary patch literal 561 zcmV-10?z%3P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpr%6OXRCwB?lfO?CK@@<$x!hs`g(MUtkU)h$h=S2r zsSTwa|AdxaXKi6&3>_9{bqOsA{sDGJdj%^YQ3`^IMuH|HH@mnq^B%=4ce|I6kg(0} z&U@eY-kaSqs>*dPQ+?^KqrLR%@T<0(W);5uu*IDviz$~C0SVYYdwhC+i&m$@`|){_ z?Zbhjc>&*BX)}5E1@E?g41%v$XZg1I45QHMba*o{N76my(S7KBi8+n#I=Zm*@=_Q; zO@o7}$K33G2OvqPcd(zf*-zU%sm!Zk5uc$h1K{Le%=_;y5g-n6 zmf$nQokqBn0UZ5~X=!C28W)u{ID)eTZxPoYc2M*Q?i7G5huLYEnH~`!9`UxEJBxRp zqdqHzaRg%^2>d*P*2nl4H)H3O$|Vq=<3_5Ff*WJ->v#wc1itu-h8!vSNXSu_mm-UX zGYVG>K3^3EFrU}Pb@yv_rNc7{t19NY$N78!K1UT?!;v5H00000NkvXXu0mjfHGSrR literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Paste.png b/Resources/Iconos/Generales/16x16/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cbee68f7c708feae0f6e6399824c5151f4e5a6 GIT binary patch literal 543 zcmV+)0^t3LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-l}SWFRCwBilRHQwQ51&1k!i%rYMTWMi|u?>QEX&D zZL)$|r~#QKXp9UIL1YVy1(&d}5XAVvMzCJ*J`m$K&+5MiMzbF zw#?VuGEkO*x-VJEGEn7WQk9EIWf}fvdVR9HoW{)NdAz#8j;(H2&hcSyvW zLPyYp50(;XZ~uL9jgLYr<*C7LuIUf2?m!%8dDS63R)ut1(;|;5n`MNvZ3XHMhRgBY>OkQfQ zm0r2A_9c6vg226MW6!ou2KLUjwfPFWmNLk_Srodvf9j#XKN6mc{Sf>wzQLvW?}6+a zvvXn?)507U74p8GbTc&6z~x51>HikZC&AM`%K0dYr`|m8xaP|A3syYQNvpm#bTTZ` zcxig(Q?U_4{sbnyc@r}3WN-IKbNQL6%OkjIm)yxl_BIYy!JgzBI*m;n({1E?H-$ea h*vGW}IqP)EL>d?}x?gPW{^1R>A^L^guQTQ7#W)^%} zh{t2MmB>T@I4OcV`CE?~3dLHf8ieP0;eTrK3I9S`0t8}F{{tAvWg8$`t70MC@OFPKnvV64fIYP1DGBCmG3Kk~vW1GfuynYYy1nIi#?-LhrRJ=&2+|9Nhgw z*4H-359BCX_VEtp-YnBIauv~*pd@0LZIJ7W;|sys*PrO7-h2w8?()lWP<4|t?J>G! z^>P({)HKwt6rOCsbG>K>fjD@qxTTcZa%BA%Gc12vr|)tvoHD4^!6}w0u6`${Z_>X%EpHD+ z0lW~BN|{tDH9mh_m1iGcQL(Ku@q;gz>0Oe8*O})%=iWv-aKk<5&UA+Jw;hLIi}$ul zyqlTA?inUstCP;(VDlyZe}I*5Tag=Sp1r`m$wg)-Zo-FQMp>d@k5w7~qYs{)wArBF jg^kygcgLA{{xIwg&d{pat0 zL-)-8AR9pdOecB$2dQU4*9@d8+&ono_MW(lVK{qaA;V8YMzGCBPvsdf3;==zpk^IG zJ}!n3H(iE5fB!K6Z3pAFKA>z_9|Jo~<d>oV3rGxEs75MzXD2Kna- z%ywj({{q<{{+~bp7}6`IGMMNqF-WT#F>GA3hGF%&Dh5W7%~zjXSVAbuw(LHMJr-(v z7W~HtK7ar7|Jl2r_+z22cOg*;2WKoa6~|*J{_^85!{_fn45YvO_y_RR!w6>h2ka?R(F{l**h(HemX)T{!)2l`#{n841X2o>%o0 ooDO`G+N6Q>6QV*9O*2&h0GKoIiDr{^lK=n!07*qoM6N<$g84wX2LJ#7 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Print.png b/Resources/Iconos/Generales/16x16/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..8f029d705285fd648303eddf2cf043efcbcff1c0 GIT binary patch literal 484 zcmVagaKGD3l`1MAkA)`stkgBTwt+3fB!N3{__`%Uwrz{ zP*O7iuAT*p<_eJJy(jKs*y?Pd%<%HVUl217tFu5(fA{h0e;5GT`2X9FU;jUT`Tidy ze)HM4|Gr6W|B>~upxN#Ma`u{CmoW^tH&q1M4$%uWWb5X6RX!|G%^-m*Ag6;sfU`E- z&wqjb2Zh0(KmQoId!{m&=qoWus~RzET(ia->;jO@SD#z}v30J_zJNE%478-cns1!h zh42DU^OC0Gc$}KP{P@f8`8yB;=`TP2F>F}3hCxx+f#K$ZO^7h4>s`n|2wb@K4DO2e z??0jjA~qMG+wAJ~kKyajzYNFrZe;lM`3qbf6EV)NJ?{h7eE-@hu>6}h?{FJ{uK6nv z3r%@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwBykiAPnQ5eR5hDd@=K}cg1eF$N+6f^}< zB7sXSIb^g1N#f8_leFg68iM){Xc1ULTRKS4>=3rOHk6)o?rFH)n-{;I;c(93eSYuz zye_RZ0EPRic^RVE-nz@WYpu;gYfZjX(ZiH4RrKo4sqO?!Fro~@03ef2(Ft*nY8KK2 zEX)STq*J6o1FpV+;>Qa&?`Z(ayJfst54o9FBC!icox7hoTHdnX-mC|J?TuypzB3x1 z4ekm>fbJbwW_cp{K57GSy%qsLNX5#0z){}?u*^alcIT_w!ymvvNHsV@>sav9k_f42 z?tdYqLP&*_idI`9!~lSh3LzA}+@zzZ9&RF}!O~NJ+GeAF1R<0?qLsVToCqcdM=-}V z9J%KnrvXR=lN|cbhXMYVR1Y_aza0P&nhM!wtHFQ?ls)$CV!{6FW$p4nQ=1 c$+-F*02@E=UZe<$eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-SV=@dRCwB)lPgFBK^TC)l?#V(hZigsK?Gk127~>& z2x1niK@kMOW-wSRo<%T-a=}Lslf`mHM9^Xo4Hmg3>dmq9xLMY)yWH*VJ;Z@whGD+% z|L6Z1$M=2KH=ca{Ia1MPZhnO0lNU~pX4_s=+CyrK(w5DwXC}ws?50HDU!pX_%2)t) zwhI8g1+B2E2ZG(byWWC!ur?k5H6gnTI>C`ZDbrcd4UTFcrHOYT8a21xfJ0E3c=SM^ zlY-@?aaPtIdv;|Y^Vwctt;gcRFj8uiGAL<~;i{BDN`t7nh^kHsto6c64Oj>noJBG> z0E5|510h_LGL)_lx~8A?XOPk)Gl-%Bl&=oS4dwZGyXUK__!gS?$`9w47gSyY*jlee z5WW{6J2=Wzegc48Hcc*@j#WQ`V*=TfL9w_`ra#4P`62OyW*ETneILhhm@cgT>r4L* Y07cC$DQasV3jhEB07*qoM6N<$f|t+2`v3p{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Search.png b/Resources/Iconos/Generales/16x16/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a675863890e092903cd6d675fed1fa20c3abdf GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|`huba4!+xV2`otshgMNbCOP!M9#AEm2EkmU=9vq2tRYme{JYi*cjEOxB2u1&0oK zwKTDq&SWw<#=&UPa?s$!iDf zw^gV2t<2of;bUbW6sWbG_h0w_8<#f6%9MMozN#w3H_`ieh=5(ug5K4s{M#&d*F1S~ z<;kyAMxy^OGdifqB&Ak%-mloa;l1UDHdmKh)0B^T#cwOyv}xDODN_Q)?ES6>KWeQA zTE*Q^nV-zNPh+;}`M7;m?egIn-y}OL6d7$I*E8(7Va9N4(cxpatQ>0|C;4YCp71HH zeRg~Ls;_cKolfpffBRv)rE?FwgvCyE^m{uyKn!Zgngg0 gqixo;_kU~|{__81aa9g-1qL&Nr>mdKI;Vst03I-{8~^|S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Select All.png b/Resources/Iconos/Generales/16x16/Select All.png new file mode 100644 index 0000000000000000000000000000000000000000..b3476eb3bbd41cf0da841d1f1d4c015638796c80 GIT binary patch literal 586 zcmV-Q0=4~#P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-z)3_wRCwB?lTApJaS+CTuM~l|C4`8=ONDe;T=3AT zQ&dQSEM(X&h#t!5&>^}A(amGgCA6S2G)YP~i0BX~_)(M}b&2#+7Fa>zTHEfvJM(|1 zgY4^?yP-6f8F*%%XP$xa%#8nuZ2-NgiG-Q;ZFSi5yd-AE-JvntY=}C`<_orx$yw~! zd8=B-80!ghrFwhAZA2ZD(;wC>{2exXZe1OiQ4mLFvJFv(U(gV*sx-LwcweY~Fh0oe z$VWsSk;C^<4ayS~R|WX;Jc*k*%bWf&=o&}V0ff1th3`u_u69o`Io=5NLY_DhT$*B+*b<{QvBLA`wn6doR2Ow6rlh0o>AzoC@ z`%<1@wJG3oYn0tJ)kK>gbLHlAh~<6d?Z64@TJ~(bfx3X~t9J4QA-X@p%s>;O4%Glr zhloSeQQz{Ew6c*v)KPut4glX?oMG3I2LQ~c;v8riTHSyS(h5Ja5IG&=x`JnB+#4RZ z_|b+nwKB?5g6%lDkL8E6bave;v7iC3-_398iGJt6D<0m==uJ%|Zglr=`5P~GB$9sy Y04JO(F~J6zd;kCd07*qoM6N<$fz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp4M{{nRCwClkv~g2#&+z+5yDHEe`7BKJUfPneHE)@Yn6lQ*DTK#hYocZPIW*+kqXMvgde1P=hi&ANC zo*Z%JaW3#MeAx*|7EN5=Jppiba>UGe9*3`-Ut9vv>ol`#T(9)@ex%M-U$uJUmm{mj z!a8J;-0L(Ga%efUnz+fFbwa+|wy3}#^$!5w0{~XM+sHM@ysQ8K002ovPDHLkV1me2 Br5ykO literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Sum-2.png b/Resources/Iconos/Generales/16x16/Sum-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5d8e92634df72e667cb0b428e9a005f6daf980 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5b3mApeM<0Mpdd@S zqpu?a!^Xav-+_~Xe1&9>AYTTCDpdxChGqtapZ|gMO9qBg0|tgy2@DKYGZ+}e^C!h0 zbpxtR@pN$vskoK&=l_3uX4QtyMkj}jj5-Ev%F4=tbw7cE%6j4!3pPq_Ojx64q`hv-P%F)ge}(eGHzielF{r5}E)~O-UpG literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Table-Search.png b/Resources/Iconos/Generales/16x16/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..be8bf80bfffff5b9a2e510743d5253d44c34b726 GIT binary patch literal 651 zcmV;60(AX}P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;0ZBwbRCwB?lTk=haTLaXx5P9kNEeC^4M80}#E=R~ z62^MyK`iX00v{p<83XAu3L&fz7LwtTFe-e|2zm%AAu7ly7&&O=@^K@`H66Q^yK^#a zyPKzn;c7I&@_YNA|HpT}!#STKB5VYk*dP=Du73J28*;^}l&wDc4>shB0vSU{E(xh+ zVIc*JOM;#hk|`l=6h&S&M#j4saZ0nvUWWll>-I2xDcBj-d!emekARh6pR7V6vD*|V#fp;w{8 z--+IC?v9KTk4<7f<|w@dkH>=+4b!^69$!qs(qy5*U;IpU*s+UyNH8XRF~#WHU{26^HOqGfXQxCV*GCK@X%< zC#H#KSep*;&^=rrJqVaNbM_=gHiu#4&=;4B1v-}8m~5TQJ%5bv!xjROUXJ%o6m^>W zwov+%XYU*mldTi&^*B%8l@W;encmv5u2Y_Rd0SCjT@GoioF}bi2}JyidSlAEv#^?E lSC>Ohx7Pl1phSdU0|4)G=nerk-Gu-E002ovPDHLkV1g|e5Oe?l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Thumbs.db b/Resources/Iconos/Generales/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..fa43abb5919994779f34e9614cc13064c99596f5 GIT binary patch literal 75264 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

T+wCOs4*C_irHwa zc6Z-yvhUx_>mlyeXUw`Da&Rv1!OVQV-}n8^n;FG%9LBPZV~m@sC`wiX+s-uZ1olUx z(UQ@|cuV{v1+s*{1WJ}Ii=vJbNXtZ+2Ex*jsb}I9xmrFwlS(Q2swh1-Ckwb!QPx{9 zRp}r<`3xpb8ws}zq;Qz7Xjr-+uFj;epcuziGuNQ)Oruj-9zqZM`RlsQ@pC3hxMKud zm^!wpBTbu}!33sZpc@8SJb~JJCHT>Wh{e$ogQ$)J>sHTm!P}dgs9yM#myd%ydgh^i%W|SU z0XoBznO_c9{r|GKEX;($0)%M}ix@hVkt7~Tpeb?2OELTfA3ASuZlbb0#6VYoM=z%0 znOQ-=*UgKthkQ?*ss)pS7OC9 zB2mp<?&4r{jl#I_@Urr}aL2q{^;;Sk-gOIf<8kXR_l z_LCMTF5LV04|mk7=(>TF^8biZAR(L)a3Lf@N*Z<_Z37G6=XfyKLd9_Y~ZgpB7MoH2n10%ju4~+9mvP=}yMURn_HL3cPc> zalib2$@cZ?2N9~VQTx#pcIC=iJb3QMk^=qqL z&cFYza#ZKpMx>@9dhob!Y>rHTnvMI$>`Yd^_*=z)0|3d$cBhz>dDs8|002ovPDHLk FV1kXVwi*Bc literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Clear.png b/Resources/Iconos/Generales/24x24/Clear.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce31c8541c3e6ab43592269e5cc04e869851be9 GIT binary patch literal 958 zcmV;v13~z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ_hdIAY1&QJR;3_fYl~p2 zsaAsY?x6_cwH1p0KoN=;>A83-LJuBWirBj-y?gK`o4VPZ-JN~NK0iNYH`)0;%=|ng zB)e|fB!wOvn8OS+ug}cy_x;XqEMp9>bDQBcZ$SXdvW|Vj!za(a1a1M>$4>tR{Cem1 zjX%b(HO62WV~!oLhyVWd7i$<}(eCe{J)hQ=OFEs20?|9SZ+!Dg0ps}jH>Ro%3A1`t6Uv4>KplrP8=UF%pWAkhnt9AMTJY)adjE zgcbs9b(;WRy|hdZ!-dqiu43d$Mnd2U$w)|~^7!P#3!GY*BU@_F?(|;X2QR{fRQtQ! zKh}J@a)EYlKr&aw&ea(V)np$Wi3^QTW4JoNuU)xFyE`D7Dq!boB$Gup<3)hqfXOO4 z3YQaav5R;6L+osYNFq-nQ6dv{sOGAyuRorwqQh`k9AI(}c7?+8e6C%&NVBuWKZ!iC zY=ziHo>sB4k53HIVfe_E2jeaju8;_&(c0s)kKU)=?h#Lyv2#^yyGXZECmYXC;Nx>} z>*EjJB^+AZ>r9RNpC=beBc*0-^%C_~k660IM!JlXDpPd|QYqF}FVpD__&c7% zDKto>N;vB&8l@NG69F5kBK2mMx6UrHFh7Uq`3R-(J)gDJ%hZ}(>}-Wtx=g|@(k<4G z#K!|RTfO0X!;z%a=<)U&AzP zGodgu0gE&90nRNiVtm6=Xb~UCl_Hc;y zG+O%%wsuHHGBipJRz6=j)&lj*&)-{9>%qe(&%Ud*dOuaGRg_W~V=%@L`!jjs^*9oF gv>Wih{;T+R05+|S=yH#id;kCd07*qoM6N<$f-fM!q5uE@ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Copy.png b/Resources/Iconos/Generales/24x24/Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf2618a269df0e1bba70682ed5f750f6faf7543 GIT binary patch literal 653 zcmV;80&@L{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;14%?dRCwC7Ry#->Q4~G1t{8t+wM3NrSY_R|AcnCMG|f@ke>JZhbn%iU4SDACv66j+L~C;%IO3JMX0H+1Ql&b1mB)sywChHRx_7=hL+|xI5<2u zR6vY{t&2d3)}~)-nU{`6iHI13%?~w#pNId9vgl&~fg(nARV5TL3W|y=m~Vl9_-2-9 zaz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=HAzH4RCwC7lWlBMWfaH%&%L+z-nO$@yKZgSX2;kp zZti`)KuHFPAB+ixn3QZHnrWQ-fML;T6cXzQV_uciZ$@0`K;p>n0%9zV6mH03f?zW~HJKfQ+K(wOa85r_;%-CVuF|MVnR>-b*Bs zt2VG|F(Cw78*F>hy6WbY@*OUhO3icqTN-SJwU)dxK*_L#fNOeeqflxw^me#hs_ZA` zg#IOaqwQI>$U~v)1VlrU3Y3Tp!@%D7$aZtWu*Lxr{YSaoFyiNqv~jQ%c%qKN~?-+$%yx&Z(vlcLUR+q}N%eus#m01F7|059%?TH^(ld*VJof$^cv z=p6xtF$A9Ae8>}5c%J3B7vONP_a`zbqk zVJ{fA7=#Qwn3L^iUkAuR0H)HssH7L9(*b4Spl_%rzVy&OSPdvg06YW0571tW>~-Zd d+JAli8UQPB#r(LqP6z-1002ovPDHLkV1k_JKlcCt literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Dates-Adjust.png b/Resources/Iconos/Generales/24x24/Dates-Adjust.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bf558eb7fce615e24e841c60cbd8d5a0f0d771 GIT binary patch literal 690 zcmV;j0!{siP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;C`m*?RCwC7mOW?_VHn4MCk@m%x%vg7Z3UsB>0mi0 zEfSa7NrytEf?x|moE!=&7^sVbr5zG<5Caa{&B3CG;BX{h+F+rnAEk>O3QDVzYtr83 zamd%*<>Fni`44yh=Y5}#d!F~ z=mjBPkjlF(>jfx&tJ@sn6na6}>iq0}$j7?6$*pKahQ@q3-!8)L{*&ZZG>)9Uie3;5 z)8&w>=m~}C359(-*9(Fk=p`6>$ajbHh5+|pefqzi>~vYHcG29Mth55tEJ<<4ki1@$ zUw^jc=Vo3ue*Bj8jV+mZ_FDQP6JqNkHz?QAHhJd!re_kD2G2Avkt?z(Qt@#H;#nTV z?y>$Qji%|SY7oH2XOr_7W~sHSA{8I6@u}D(hr8=vXysKn12kkXo1C{u2N{TGYf{(I z3rxk}^4K|>ji%}K0FE|tEz!-t<807*qoM6N<$f)MXDSO5S3 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png b/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..16e45420228784209968601101fdb1ef15cd0fe7 GIT binary patch literal 732 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 JS?83{1OSFPbmIU3 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Details-Show.png b/Resources/Iconos/Generales/24x24/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..db15b5664a27bc19614a89f5de440424a5f99cc2 GIT binary patch literal 457 zcmV;)0XF`LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-KS@MERCwC#mOW0xKoEuBB3HhG`?MhicYuNu&`{?R zv_!NKH3bz1NN8xNQbZyZg++ywCMhT)|Ezarmm*rjI?K=Eq=>{wmOR$@&Ad-LmW43} zyNm?+&NqA`6;{uP#1i^jwlkEUQ^2TPkp z6Ky|cp~$u#{|@%hLFmN64dOTsYq0l!74HK8+}0h>XIO-g00000NkvXXu0mjfiSM;9 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png b/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png new file mode 100644 index 0000000000000000000000000000000000000000..e18f1278ee3d9b2cc70ce0b48fba10613ce289f5 GIT binary patch literal 401 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Format-Font.png b/Resources/Iconos/Generales/24x24/Format-Font.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa01b2d90d568cc8622b96905a9270d68abd13c GIT binary patch literal 921 zcmV;K17`e*P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<4@pEpRCwC7mS1QTR}{v7n*>_a2ZI!9gA%PMZN(=+ zM4@01L@oH>Q{1Sbi=}ANJouncL3}Y9q=AA)2)eBsN~yF#h(--mjXng;A2m&_BpClE zYV0POjT`5jiV=6}hz)y`=Hkn!MeFBFFE@sWhZM-sMn^Y> zs;^cfCMkjm;3A6S7>+28JI{$A+7l(RI6~x$2m^@$Vz*+bnGY(CN03J568$HEm{9*$ zJzGEDN@Q`wm&=b>6i3~Nbpny*K+xFN$jVPvGV8-xEGk??$($0po_5jP-;4ybw@Kil zHn|Qaj=Gz5wA^bU+7k_|*K{7_%h@Gp09@aax@%c?aQ)eJ;>kGnogo#%_;!bv-;7Z- zy@=LFm$>ot2BPL0Dr%f)>ZN$yZ$4p0g1ay75^fH&alyuvpc04gqj%j3}j z)CIrT@t8eFIskA)vYT9dteEbhZgySSMftgMKf-N)MyTnm2B2%GgSBT?;fT`rV3^v5 z9zXX*CQDS1UO-xz0`#iVli|k|N2pzX*q1=n7)gv%aiEQws->*iao#1EY;s@+>ENC` z>E?OhNk^zW&_-41XUzS0THyPPX__mzqspP5yIHcZkmXB03PdcbXeNnr0T)$Hw)9hX z@}E@kHS`1v^c`7L5O|mY+`I3%HN>xH@6h?nSLEk|N-ABKhEJ!m$jMS@PJqDNG)x&i zmK2&=?-M=M%i-P2$j<|DQac)Wmhi!D-y30m(TofpNLs{Rzj4W8O}*^=;VRvI|FZXJ zSD?YIue#uaeZ8-Z`-6!L5@qqAY~81nu9@fe`}B8P>sKRcq@V5m51+rg7oEP;J~fAa vC=?2pRql^@$K3lE<(oEy0YX##+wx`r;X^ruR2^=l00000NkvXXu0mjf9v7{) literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Forward.png b/Resources/Iconos/Generales/24x24/Forward.png new file mode 100644 index 0000000000000000000000000000000000000000..2ceec67ccbabf86f8ec28e00d2587677d3901165 GIT binary patch literal 1482 zcmV;*1vUDKP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>KuJVFRCwBymVazrWf{jm?>X=N(cAWR_qKOk*R^!4 zqtFgE(Xp8fq8q^tiVhtR;(&;Mm?(j0V$?qf2^y7PH2Y(T#)OFcG5=6AL}P-$wm>3r z8!Y2z8T;kBmb*?1z3n~c{p}z3c6PH(bizU9{TQtQp7&h~-szOJ@HYd)H-rLKB@ zYG!(B=H&Er?T|^#OTg>E++rZHi0W&klwTPf?z?Yz!{F7|tzVrRSlcUB^jFB`GtA8; zoIm>^WAB^^Zy!6Aj2%1m-sGu^&wB6o180G-&;xM=d{ep7@$kki>vr6J_sz?OH>{zf zvq%&RLI^nT@xh~7zOL78%A3gdC-}}X8w9^<2tz9i*D`>7N20 z%o~ZC-*;v*@$Rj+Z~DTnhi)tM5B7*Sjz9<+7eu1*>XYAojnrvUt4M50ielM7ySVZ0 z;o|Dey*q(>fOZxr&t)>v7jN7$y!%VLx3=~4R|KMAUH}L|h$3wBM|pnVUVi<9cd5IS zx=pCtl*B7qR^`Re9RuaAq0-lZZP18L1XPNh9Xmg>Wu&Wru!j%=A%tdF1R)aGC_+X5 zP1p1L_VU~lRZ`pZ#H1uHrFEc%%KB2DY?GtFG5{IJtn2RWylLIWwNWM~@xc=j@%Y0B zmfRrDdw&1S9(FzWC_~>;)SE_Z*3mK4Ci8#Ketve=jsS_1wh|#*Uxfu&#Shs9;b|bL}@Z+F7(W=%&$+ zpSkLC<)a5sMv*q*MqAQTD!6HX1kcMfxAXY))XZPrdF|x2mFvqb*>Z-|DU@p%GR;{z z18@mGKKgPa=1sVE7Ii_R#`H{>3x5QTEvyIEwU+WvZu;u_?bmF-O1i8UiJN!30oTq@ z_`|0GIJ4t#=;kxyZDX#PP(PSz{gU||n#X{13yj=%7Je<=8o?wh(|oAW|7 zJ<&}M3c#5iFQA=4HQ~k?bj^hHh&JY^IgI96U~;jF)=tDd<*SR2^xe`kT-j8Xq9oA4 zTuQuljl39d(B5KIq+v7U96%36oGBIQs!&rk&dm!;kH6-POG5D%#1zZ{z{#vfmeZKsggNAGQip>8{H*~ax~j1hcXq}7B7!u zS`qqV6Li&BJ7s6ww0}3$!hS5zHS4jxva1kFoXDctvaBTL1|hkgtSCnjIqyh<4pTUe k<9G|GHd~iP+m`@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwCdmd#4TKoH0O(O@4#0#dy8KD@dd=A z7kvP85T8Ku1cK5-D|oHFdJzu_VlG}Pg&y@Fh!U$MnVBBaG|48>w7PP?aOqDlF~n{O}_mj0Bg_THm`z)(?$Ozwp+HF+Hct|h&grM zTq#Um1$bI0Rd*tp(m`~1Z@!!ZC4)?fEZa>m0MN7w?Rh%UHx4okcJAXcImpyp)tN;v zgMe5sgMj`!gFm(P%f5ZT75lrDx~^Kz-BJ@~SX& cKU+ov0Ffs+H@Xh9Z2$lO07*qoM6N<$f)=X5a{vGU literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Group By.png b/Resources/Iconos/Generales/24x24/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..70adc01c8c1dc321dbe3ce0b35f566218bbf2385 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zsy*Q8;uunK>&-MnE+#_(*ZOHPt{bifS1{@)E}xoy!7Jy8bw=vKoAW@Lc+Kf#x2y{p?#By+4}%Vz7^2ck;APt3C6z*}8Rcmye!n zTip5Ad6)R3r2fq(^~xrm_V?VC_jvg#5t|z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;rAb6VRCwC7mPM6#D!La zi7_#0jFFO{#T`qQ4I9`K7rJzXaYI-Vb%)P|#f52D7-D=3QAtgZPAi0#@@P6O4DCEz zOrO)~gG6RCll%Dod;WXQy(1Wg!AU+2PWTa888j2%G9X%-JyWx+0KC9$q*()C7nrW# zwzUfPdOcO`p^zxf1j-@+I-ngVf=YNKvV|-k0MOalL0{iFLLm{rb9UA(rdT5jB!S1R zL{JHrq&U%NqSUvyCnE>~UayBxNEGGMQ4TVY0Cp^#wr22kX`h%Br{5o>tE&ruR4PsQ z)ol#HX^J3{dcUk`N7Zx&uU)6#{{cyg6Nzk5 zNN2IYM6j-0lH&9Zy<~Lsep9%r>ZR}RpO=Wd_v3PP<8pPEQrJ=Hxw-PiW5YE~=c4BZ z?t6=7B+*nU5@9Al>9ia02OD}`4{pBA{_w9AHiES z?(|NL_*NR`manoZeiIs2a^Kt+*Jlnja@lgpbI&(|N} t*6-wzu?b^6y!_uT`(hmkC;i*DP#fr-ElL0Y002ovPDHLkV1i9vX^;Q_ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Minus.png b/Resources/Iconos/Generales/24x24/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2257fa1a2a432cda4573926a64381c21be0d90 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%>MaSW-rmGtNTe|u(KMq%dOgDY4Uiv{pSNC3gJSKdLk#wzhO=Qy@EG&VLWTB=UX zYCAvISo$ivOQZaK35mKI*F_88%+Givf6u_cz+-|0`w^*skEJCi`gA>v&~e~h)OvP{ xr)x*Y#09%pdln!43Nrk{Jtm;d4FCT#Gh}B5-h8+ID$sQd44$rjF6*2UngGaOS2X|t literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Outline-Collapse.png b/Resources/Iconos/Generales/24x24/Outline-Collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7c2cc9dcf7172e4d694f4b156e5cea21ef9e3f GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs%`LeaSW-rmGtNTe|u(KMq%dOgDY4Ui}5gWM!85~1_Oqp$J@T!N9%gTe~DWM4f Dcm-VU literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Outline-Expand.png b/Resources/Iconos/Generales/24x24/Outline-Expand.png new file mode 100644 index 0000000000000000000000000000000000000000..c643a7c0cdd35604de00c74c5c1e727825a31366 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QNf;uunK>&n!Bg}~>G#4ZpV*H6e)M?O^Rs7mA6zQ*w`x*}CF911 z9WI-!c>7Ou8GFx=iYRaLeUEk>OPuQWtu$lK8N>N~@sD=D zU0OSF_B}C`)}Aba4!+xRvzh|9^XCT}EN%-h&smH?Yn;eBwmM!UId+E1mPW6}+T>A)~EdWJjT^ z-vq0+2!{hqmuegMYkvHh{P6gBdmj6`zo`-19`k&C%#ik@e|~+2@JWNi^?w#kWeosQ zf4u9o4oy!=X#4-;>+}g#Q>Gm4n6pMgQc_ZaC+$!C1`8q8GZT6L|NG2;_~-2J20pf1 zUkWlGZsl?NlG2sQ$jr>#e6Z)g@G{m!(?7p~cHOW0llbG`WB$Y2<@ZbO`&YqlE)#8c zK#pD9NP>IQwTU?vW({}Q4H66<*E{xdd$tLSyJSo|^7N*_+oDUl4N;F|)15*#BwW$| z|Nnn`@}2_;$Lcrl%Kb0NllCCABj+Aa)N=zv7N?@>3o(Pfu$hPNGaUd1r`8dE`FTJF O1B0ilpUXO@geCy^v#uWi literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Outline-Move Up.png b/Resources/Iconos/Generales/24x24/Outline-Move Up.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc2673f686ddbd0a4700693a7b6639cd297f57b GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|>}7ba4!+xRvzh|9^XCT}EN%-h&smH$43R|9^oG$Br+tfBd^DfgJUFOw;#u|2Mb! z@p1magk$wVItp4HF~9Wwo#zZnulV{-x_Rb&8D>TA35?vDZU6s#ovwK0Xh$OuJQO+H z^PflDNJ4WH!`%<^`~MmJ`SG>=;Mthj8Qu{drhlIMbKH(`Z`JUgal-J=^Y`{V_v`;Js}f7h|om*~))InO`+h$MS;*B8l+tkXNUSscC>+%K{3|DV$z{vMZaQMtCkUw!?G2FZVa zpUdBx;%aa>u*M;jdqG>h@)~J0yYXc+0x|uA; U`aXP&28Jzzr>mdKI;Vst01BP7JOBUy literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Paste.png b/Resources/Iconos/Generales/24x24/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4c3f0b6c40154f2d9b9a6536957f315743a2ad GIT binary patch literal 738 zcmV<80v-K{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;SV=@dRCwC7md|SwK@`WoTl)uyMKPe*N<|M96iTUj z4Hy&jB-$GMaS#cFYCtPJh*W86@CO)eBuEhv0!4Z#riT=~C=?Zi#;Rb!i-#6byxFvw z*?H5$c9-n#Om-D~mtA&eKJR_MZ)Rr=DJA}AwAwd@VJHU_&%swg>M4w{2@G4oyS#B2 zK&A2J+bWRC6&;+BsQ^Hwy?YoNJ2zXE52caH74YZB0&ZS@ z;0(Hc?;?^IL#a&2J-ZJnI7o0TFEUJx4_5%Ux<&aB18kXbj3jH7KLfDW05Kz zzDk5%nu90Xjiw5Gt3wh1;L3>|fn)DJ|Bkk3UjBZ0$pC$yGc7Ck_CIO9ib!y01KIas;LMch zk4CU*!+rq3)#98#feP-msBh%6HsP%cyKv}0H)h{_@GH>4y$U9-b@?jyUhQzLA|2e@ zgCKZg0-pjEyfJ|wAUUeHXz)}AYIUJcpn^*>9ry|(Jj(3xRm@C6olDf}BETXA-0r~& zBc&ZS+QBswUI19W^6%g(V6%*XFvE7)P8=$()ba4!+xOFCMckW>Wfm-nb4&MigHg2y(^g`2^&QB=OWQq`8;j>Uwhox=8ErS@T zb&u2@xKBSeMb%MB^C-)wUBZ3u?*{g}3mGe`u`mc+tT@JfOuORP3#aHE94jB`#+E)R zo%cAThQ0Jd!-*gDOkS@mn7pz*l9%n)V6pdd%;L4&$oz2YBhhJllpn;oGdP^#sZxCx zy|MrE(;{I*wr&;4Gn>Vp@lG!8ezmL3WLfY|)#*`>KNn;qT|LG9>!jVMvNcur_b}Bf z$_okn{VRRwa?wr2pDR|qH1oZjW0LuCM#Ap<=CKSM^IQ*^i>?*b-I*o7<;=!Bud4k@yV^ OR0dC1KbLh*2~7YHaiwGc literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Preview.png b/Resources/Iconos/Generales/24x24/Preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4d185c12c186a8e62bc67669365dd1e5e027c3c3 GIT binary patch literal 995 zcmV<9104K`P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZTGE z1ec&I0iiy$eNd3RFGvNUf*^{Bf)6725+?jq%i!{dxKqJAUA~riXL=7iDN~4e{QaFVPILC4dkTfS~5v6yn;7 zxDYihuSeY!qB<3v%VbHXXUQ8T;fPKm5u>X;0>Bf=SDbZGvnZGqQl~DEH%vMQcGA)p zrMOyP^2{{hh|Z&l7;n7#Jm#87E|&w~=)?(UfPz_J;^TAl4EOWk{XO_JFN&fdrKD_@ zS@_{sCeKW>Z~q8BpNbIok~;g1bCXl2F3|NrFT?SEdV_w-ri&}r6y~#T*3jvB=sr4j zb&^icB7{T=+j*PLWwPWAlfI!oLT)!<1vH>gf?^r28DIz>(bzrY4U^?;0U_@KkWSCi zu`5bI_meTu-yj*6V~z2vST}QKQCbY-L{TQ&KoAJ13N*1--}SHfY%K> zGzfcZC(BmBR6+zI8dtCW*|-;X%s>c9IHFT6RRB;F@VKGX4-sz-)aHl&Ab6`~swInX zM0WHa!-XOrvVLP&zTkA3?`NPlsWykRnYU<85zmX?dmoc$hv zwd+4Ie}0+Q9$zF7PcnAyEsip@IiN0H2YEeiMn?zvBUfN<>c%XJKN3TAxj26KGt}a5 zT)tjm(3PTXZ;}+_bf3Nr;N~oZta-96q!Et~{A16OlBW*6$dMODfro(#d#n?*?M<@y zA$IqnFO}Pts4iYN{#Nn&`ssJhbL{2E8jwLX)qrdOtXrZnSA?{�?>7+f6eBHb8b; zC&^UXo0sU;iRd&&p8bgFBL^FhPjbz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;tw}^dRCwC7mQP4jQ5eO46Y30%6CpVg=|alXg*D2! zXc2C-G@=+VX_ug2g_TeX5h}08r z?$_ew=s3UE+ZD zYjE}!Oi$rHSc18>1&&qzQxjqhp7xIo&CLFi)t65x(Y-#=bdM}*y4-%$Cz=D%9EePO zHtvlzl6&B!A9PbV^~p(z{+bfOrv#-GN(nxt05G4q4uIR0ZA>gXAAl7X%KHLmI+5%F zpwNYR;0^APUc;KL$>9mss^8~K4^pm_pp@|V*%YMhgu-IXnVC>@7~&I_Etb-`!C->b z>esVn8C)sD=DgxlD=)vg6x6EgS>#MkN<@k9?&CyQdvdaN(bLvIRqY*$%PQELVWq39 zlloMzzg0~lg2`m!!i@*AJ136JtcGwUd*g4vd8PA{@n41fSRsY@(7x)&^(Hs{@1vRwi)euqzbny z8*_OLdH07&-JTXY2ho6QdW<=^c=KV*JEq;95`7LrS+t&VV=N304us4>*d#{-u6e@e zAR<8|@FiVwda(pta4%zq@1J^^_%V&mwi&C<#+R>?p$Vb^*E|ZX8Jgqs(JmWbv#>A^ zz~uBi-K}-O=YiL^3SbrZayqKeWfRwr<+U-xh$s0{{!#4&q5>S3Cd!002ovPDHLkV1m9I BY{&or literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Print.png b/Resources/Iconos/Generales/24x24/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6e3908b1aeaf495a86808bc2c6f8d6bfb4f158 GIT binary patch literal 802 zcmV+-1Ks?IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwC7R!e9TQ4~GXrb!_|v>1vaYN^^HZDVVS zxX|jx`svbEM9@Mu)|IFm3w2>#HlQm5(h{qiV4;{4MT+>TAetBtxc2n$*&}nKyTabIv>W&V3^=GuAVzu+Cuv06`FnK70^{)9gevhJXidH`Mkcoj`xelcBAh06?f(Nqr@@5D`8l<^cf8h9>m( zodYp29-1m?k=I@40x@GIHdof3Jv%qU9|+-ipAQFjJ25#qfvr255TE^FB^VkBa$9Q$ zy0Vt&L^$BtZs~EN!v5EE0ssqmehAEr;X4mm)$}!ugz9P=>bErl0G>R30RRY(UKeZt zplUj9UcFEjL{El2`;N_0WaF7H~jb4 zJURDwG($>Da5-It1f?u0r+g`!kG}~+lBCt02j#%W(}!^?x)HKsbW&OrAxRR_l30G4 zR-!x@j~nl*27xH1D%(M&w#WhC_GqVBz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;YDq*vRCwC7R!e9TQ4~Fq)Wnd`Xd1*11+gHlQlp|S zL@;3eP^p9pK?n$46cjfGEC?c!jVrS#)^4n{HK99&rXUIuaMh+@<3bS=G>d*rZJ>Tq z#LRuy#Wd4QCX-Ct_+S|3&b#N_cka2vn3x&=bD2vYq7zdaVte>#1T(J&O{FoVaAsDn zNNkeVyCShkj!&id$ocDBPQc9AQV$v2E(gM)Aj(MqY>t3P008VZi!O^3~dtFz}%t$y^c);M|@r+-ki6N5qOH z|8F?#H<4e-BbUno0G>w2jT1ciG>n(?&j0{TcG-zDKVoQo(XU8#;^1CLLV##LVs8@0 zPcXfhMDN=kP2AVw#qnMHFq_VRNUVYj2-1#GRTtf!3d;BP`&ha57rz33(B|~0_LPE? zVBBfz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;5lKWrRCwC7mOp3|K@`TnT`mf@NQxllNRdCnA!y(< zWgv|R$u;3x3+scV@D9Nuf~`R~OGP0~Agx#=opMd;q)E`&*k~mfdVapz3%>EAB@{?p;fm0fPP+gvObxl*Y!GlQ8U2e#P!_|vKDCyO^s zUaeN`h-~q^HZ|}~DGeEhP)b9E8cL-(0JK`iAR=sSwagmdm2aMSQh6a6tN9FXO5=jW6`~q4t zRH(7OeA9H7I*1%;%{_B$Hdzo2caXK770=?*-0vW_z|ONOrdRhabxqXf3UPrUh_)Nc z5lcZa(`ZpPPc~GTu^fI5!cc=qV&lcrOS!mRUb+}j)OE`6;NY!QM3R6M0we?^39L2u z0RZ2>wXJ(#&OsvH%Pg@;ygCHr~jZnBNx`1mc9O0$@sU$lx#8Z3|vKb@q3 zyCe}WmmgTgRi=O~{Om>5izpGFm?&Arr9*)N0JPrR^_q<%o|zr%L-gVO#)X|rBIx)I z$_tN~;dveapi-&-mlwd{;XCtB_D21x@G;`}Hvk!=UCp+d6zTu~002ovPDHLkV1jic BB-#J~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Search.png b/Resources/Iconos/Generales/24x24/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..3af96da8d230999af504afa00b7129532de6ebf2 GIT binary patch literal 631 zcmV--0*L*IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-?MXyIRCwC#mO*P1K^TUgiAfLDi}fH%Nd*ro#juEw zpobzALQ~L-u!uq*km@zCb121Jd}h6 zlVVzX5c=I_=AHTYp6_L5gi?x=3=bz9|9=86fDmF}a%m;5&Q_iNIFU?|PQMW2YLrs@ z35Lb;qGP&DD5VAvEv>{AKt1~v+pgd^Zhx(ZprSG#;C>jYdb8!;gkhtfn z2;T*)j1Cm3*IWvPG5~WA?-348qZ?IpLn1EwdG+=a;_3}FVyc(KbFjJ5NQiK7dStnU zLYZuKd*piH=JliZ;8)kfwqY?b;T_+m%THb_fWXuwKHnMKMvHcP57R2+HrnKJCW>yK zt)|74-+zhu`P&E~=ybZYnm>__iz6G@wu5OE+1Pk4yaTp7z*IM?bj5jc8GYdJp4V?Z zh^uSCz#n@m-y~Ljzh|e{^=X2C_@V)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ{m6@)MrB@RsK&40z^)?m#Avpe+g_^ zR(SWTIiI7doM^hHvo#S>BckKB(a}fa8Xp3oa`m#*J+*KMPiM8QQ_o&Uwm1k(yCO3k4hVpq#px_BNNOV99eW4CXgZ49;% zY+EM$zaUUm#3RAp{x~n~ZKm>_Hdd`zNaXEY-+m(rWf{j$r6N^DI`?D5Lm*1YTbGIc z6a(Pc8!y0=%h8psC|wPCGZ#6KecT6bjBvB(fxCXEKhB#U-tYm8jN0zr4Mk^D%QV64 z1ves8Rb-Qq9wZ|@$g$6E@k(wcTQ{vBEzM%?V*%c;@5UJ6`{y#L?y8`3-OA)C5|552 zrKjx5Uqg7?)05YODA~_0@gHO&?*}3uP_ygxjPk{FvLz^C#WX^rv^`k>bQ5Yh^MwRxF7y} zx{zlInp{6xpGQ{lS*j<}q9a3StPkn!p}bE$E^D9+@>q;e5^2pKIn7bM;gx4(sPN15jIkjy)v>;g-guPKqqc`qzIE)lRbmpaNXLKL-F>Y`8>EExP*v0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpcu7P-RCwC#lrc-gKp2MK1Q$V97o8NbileLO(4nP6 zgm&)cSd5E&Gh1+t^ z^W9x|IU>R=GY0@1$3c>{1b{;Tg3rAL02i5byy!V35kZo*gd}TMcg7?6NzWWmrPiW7 z;pkS9wFD8tZP|iA@aLB%TU=qA%vS5O0-3SD4cV6w!8-4`Yle2uI zS~q;dyKj9cs@_N?V?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm_H=O!skrs#sx8+c2Z6SSq0( zXQp6b(6Z!4`u-d2U6eFfA7p>)s!+gn zb%nJvYq(EGtayQ-%TanXm@SmpQKn;bfx~HRE2~>%7>fQ2h0`zRlomj hGvWWj`0(|N3~kDXn3}5p>;ig=!PC{xWt~$(69634e6|1p literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Table-Search.png b/Resources/Iconos/Generales/24x24/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..b145e046edca4bc37d1cd8329f5b1ef49a442d99 GIT binary patch literal 1143 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Undo.png b/Resources/Iconos/Generales/24x24/Undo.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe4cc99e2b87e4f0fbb8cead659d4461345ed92 GIT binary patch literal 1050 zcmV+#1m*jQP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZUl0>ZFbpY3e34 z86t{^N_A4LX;C3AL==iY8yAAMT|~u=u0&L*RZGo6q|!wRS`(^Yh-kckgi#5@yKE5T#vsHkSkEe&0Rke&^iFhzQryIIgpaMu#!hHt>Zp z(uap|FLAkrbM00R@JcNRNK#gW^dnFAu|Jk$8>_;aoHhgpzOVJh*Xtk6&DXc*W_{r} z0i*=F3=Y%e*tE&CD>eD??zH*Zza|(vne^`}67a8?;ikL+AVv)1)I4XG)1eA;1j@1L3fSNJK+4sv#EBpa^h1 z!ike5Y)Bd}z4a~K*!B(ze)WgjdkXve#%RybQ1DpQk>eAm9T7-|a73V54p1ysP+BOU z?$r>ECSZiuK`92uQJA{u-Zq%B9tH4O%M2D=2``W@TKfEW%~1z`{iW0dp34?6ePIG+ zXYrWpRbQX^YvR~^Zi*BEq=3IKd5nM^Z8HD>5<0W(;PDebEkNjE1-y{AF>~o`A(q(q z^6?MuJ`4aG)1U5@YU)cP+_POb;;7aXTu=2jo_kdvc(po&E}Fn?yN=n*lf-$~Gt1xr zF#Y56u2S?#rIdpr0K~vRe%nSAjJBj~X_sUQT zU<}}b*&R!i$q}Stkbws)vZNBm#TnoC_qFPgx)anwhFp@X&LA|*cN`T$BV_Xdii-@k zEfMS15Q%RX7`SU>s1*T=YFz+>BEYgVxNb8+QwB405^mrCB$3Gm5U4`>E|gz0eXlk) z_|$i~-w!`@ym3#rnY@K-T~G?>j%x7gG~Je9ed^{=w5aLJety+?tHCPO5x*}K?S&#B znbajgodmSj1V?u<4}iDUNqNtn%ciumJDIS+7(-7&yL#?|H-kI%YcsCBV)hB$Ox&Rq zL#p3I)unIVdoq&isG_x6|FdV4nnCYyJ<1J(Bh_!zC(l>k?)V<8)dqL|X6d>*7z*E% z6dK3ygONZt_$wbi7r%H-2sAUa*9b))j>iPHrX#Q{{(fdkJJ3?bYk6=Q?SWl$n`7%} za&wg=(f=3&B~(xo&ke4`^XOKi$p^I`ig_EMz@K@j`9EdU&TKI0Jz(% U0Z)CITL1t607*qoM6N<$f;RByIRF3v literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/View-One Page.png b/Resources/Iconos/Generales/24x24/View-One Page.png new file mode 100644 index 0000000000000000000000000000000000000000..b66609e7e20872813dafa049c36f0913596f70c4 GIT binary patch literal 570 zcmV-A0>%A_P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-ut`KgRCwC7Ry|9@P!v6>rJ#R7XD1P%AXP+hsJK{k zX%P`c1gTWp;#392!CkRX1s5l&i@OK~7dIFGg-aKyB=5^1eaTDulE!}A<=rIY+;h&& zyDx?i0>g|r0OYFKB7o}wW0&fM=Nm%^fm}5!itB}*P&gPUw?McF!mW00VSk~F=6BPG z_d}5i8(4zMwOV`hTBM85Mk`{O5dfo@Nc}iPI(iTkh3(Z)XvPHyWth(#qcWRx6sQsF z)gB4{P=B-SQf!K>001s-8-dSG_U4>i?ZLkaTplfJnOlT{5au>~7z*;6NhdeiFNo-& zfK=dTZs)E72~M~tG{%+B(Q9>z{inWqQpP7W;~w>|(^l;NuO9;jd= zJ*oMMLM&3}3XlLH4CURFmbt$NT`lqtEg%tSi+bPvidrBV1u-21$D%Iagffpsa`0&t zNCxU|B!uDR^&`^gP^YT4fC?^ItnE~ykM8!nTrdDeX953AADj8Y!SuL&?VI~SxeX3| z5Bv(8wGZ$P1$XyPeVlJbXo1q<(&<1C{gv}{2>^^?|F--M0Dd41e-^;;e*gdg07*qo IM6N<$f}T(5eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwB~l21rfQ5431uV!P=R)~loTqw0j41x;8 zKx?6q3r9sn?B8JdFG-@vq>`YWY2Y6asZc2wF04gCh(-~SMIi{4AOwMfsnE=*bML#i z#hZD}n|w1b>%d){``z<>=Y02|wZ<*-0<-QQ!2aHpxYimUfWNz}3Fu4&=Vopa!(2(` zX7ZV)SNl)D*a&V0?iyNa%J2Dg)5&@pY3#_Pu`-LUk*|)5u4_RWJ2D-26~)=Kw)OFR zYzIO`kt&K%QO+E>$Z~Mm@FmN}$%8+AG*)NX_ciqcK#uh$cK>Zbv9!Fxm6mdfN*^)y zcpE}Rxz}^wuG^AGez;`TCI^`RE_nB8fvGq1f6O0T_F)(X0HIKrKwq`WObFr#U&PhSSK+;;WeT{5DJB@6Asfi_>AFUg-8-`SoD4(LU+q<8ru43 zI9E(}{}adKkCSTvT(~@B-_=$XFgP^9gZ90cpAF=m*X{xU_0`9zuLdKx&swz)0S8`J z1(1zWnyq>L3=U1OGF5{#O$sYo3EbJ~Zjob$lZX>TDUCE0fK5I!{t_VdA9xXolM89u ze!|E^s(BO6bU=$({`TRoGW zEIM&C%dw`ee_$zR*qvWGb;wiaA~s>#EwX?N)`fHwE2YwsCvK6_CSbT*6ff?2_|}s} z1qXMf#C^%5#XCD&mTPsL; z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZHib_xk2?+@yu|e_*sr&=1kN}maEuvLb zQ6W)Slr&D_#C~t)UKTb^oG8&Wb*j)J8fp=3InEBrUg#rTT?a0MWy?|~jy5QG^Z@}{pGjpbMW=v!SN5`D;)S5pR zz5tSk(PXtLIjjbo}@__;QJPb;-<)|x3!U~?}K`Dhwr2_UeI_)G`R%CHM7yAOft zIN8a)v)B``eASt4a_S*$au1BIBWZS`9J`d9upm;SsW2Uo{y8L@xT-e3XKoFHm z1t*;rKwL0uFe`ur_HcAKRWe@l10b@(3li-i@iyz?A{xVk&1j7<1u9 zgclL(-l|^ybKnB(;;T=Gc8II`Jk%MaxE+|!pGUBsWn=Znr-PYO6Kdn$wh*i0o~QB6 zw+iFbq9k$C&{?D!RT&RG=1tF4Qw<-h;{T{Ps@ zk9gk%fWPR`xqIJzahrMX4nuan5P*F;5(1;bbdH{+Z8^yJcL0kTEueW-mpT9d002ov JPDHLkV1jI7)lvWe literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Zoom-In.png b/Resources/Iconos/Generales/24x24/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..131feedfb73acbac46782838aac44f255e7021d8 GIT binary patch literal 1411 zcmV-}1$_F6P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=`AI}URCwB~RqanxR~&xMeQA690xcBU0!0La3KAo3 zB-6QQM3cG1EHS!2!0f}a#ZUV{_F|^Vl6^2)mKYPVC7QTT`ej)bvrHy}87c$EU@b+U zrP3BCw7u%{QuY|C z%Ihq(Am!xDl`HR+0GR7D$n#Qvezo5%X88RaXMK~gGDj>{wvJH5s+3h#ESBblZ2lXe zn7uU?pPm@Fd8N3PM?VkwwHrhA5-+^%u5n+e4SKt`@7Y${(%Hf_wgp*#lh5XKJ8P^Q z_XUUGAs;%f}fN5)6Q=MuQo`>j_hmfxxJdERY*c}M-ujz-GvbrXeHpqdPb#fD0s zhxmill*MZGE27q37NkO1Ql``CC-Rm8r%&IY{XXjTO0WC=c0o zK;<)8vI?vS1Vx>NuQ@=~H#P0H*_?0G)$OX>QXrqxo1K-;!!^NbT4q?1RR|;AukWvcG69R-MmUFq zBOr~N3Z&C8T3S`1EGxPyE1+l#E?+$J=X~$rBmis}0|2)LSXhwEQn9GYvPd=+7#O&q zy?XdsvXCn*7czp~Rp%g$`#hitP;CWz2cO2C>h?f40RuqM(2-APk&MTdrIN6)$00;q03MdF7gk@fznHrzs`AlfjcQD#>dOThnZV zM^nlE3b)JVt+f-?q@Wu>S8EGS9BBst>}=*>5ED6BF=OGVIecd@G4kN{t#o?+yT7&Q z;fKdwvv9^hv(18%O+;DY)yRWMb*E`E6#*|*W?1Yy&DJK4!=hPOe-=H=*7hqeKDRD48^b#O$9|6&~=Su zGX*mdUqtNJX>D}ie(K@S4|jil*mqNr<%a;o4LcbA;OHr5g?=f}d7#E&*T6@zFj6W? zLJ0+#zM76Dr)D2d9rgMHyL|P5DvOO}ihR*X%+2NE(dpUP?D$AHG4grZvBhE{zFX_oD4oPhUh$tXvT$!g#|1XvM0X0J#n|Kt!sOAAh4V0bc?Rbm71o3 z&u6lU_{>3;8RTWf1R#aO z!;=VO8UVZQH#Pt$0JLWd4m0|3_feaZ>TBrif`ijmS01M^m90i(eg@&x44;#efrBPg4b?rYfF4hP3PwS})*C103X=0&BaKg3_he*~3c+%PN-Cu!&UCkxl{f?!hFA}GU$ z`C=Nmr6&j_qsWW$+5S-eg~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Zoom-Out.png b/Resources/Iconos/Generales/24x24/Zoom-Out.png new file mode 100644 index 0000000000000000000000000000000000000000..26cf347d4faf78cc4ffba3c5b91cc81bcbe0f29a GIT binary patch literal 1390 zcmV-!1(EuRP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=@1FPfd*0{yz0X7NuV9m}E?#R?N{%K=Q-ZoyZ?be< zFdbAuDXYZ`7e1~5u%Em^o|pRTOT#|7C>-Q@=X;Ekd5d*A+6YCQT3y%WYAqv`#P6kQ z>E>j5K00#kLUr>V{XFECuikA}1nC1`i|=e}BrvdZ|Blw4{vN)wH{u9&1v!t;)8gd$ zR~edp*~jx*urrd0PmRmZC2;QI4*{iG|Ii<7`l#=fUF~}gbW*N>k7$I2ZZjY(2XC;6 zgd)up>vV=R+32fFN~Nx7^D8Tl)ole%p1ewjg4EmIfbWw7hjz8~?r5QW3+r2rOy zW&pYYs5-DF5mZeFg56=Ny{l^<$9djuYuoGHRzNJ9-5#&!NK2%dRv8B=X#|Q1tknU< z05}?Gasoc*x_1Pbz~($8&>mnqBHc&){)XMmcIDA)YJ~G};Re5lh;<-Q2J8*r5qjN% zsA{_*|tEx=46c`yfYrKBs za;{RYtX7JWtD((JZd^b8OaYdd5LZgbrBka)O)4x0}%iAlg9=JPPiM) z?>hVUyF*PfU^`J%Krbz=nM>)CWNDU@7&<7*f@vD0RIJ$9^b%6P&l?jX_wu86f4Y5t zbm*F*u#l#)Aovi^En+s8fT(IV0A+f5YzEVq2jF;O8e0G~0LEVz4m0t^ zz){Xa4R!P%f}1ziGf&f)Ej1&aNnkpk5Xy>iW;iDNxVhE<=o{ympg0db)bUau+&uGV zSp@$&c_FbX$lBm=Ot^yo2rAF`V6kqLL5QM7sd8o wNvaNH%QYx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/db-First-2.png b/Resources/Iconos/Generales/24x24/db-First-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c36c2eab20d20acf28084901f064f8fca349873c GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K~+G4q53V$6v z!=K0g31fAg=QuHagNFJAw*I$216_dPuJe|@JScr<-OKN+@(;^|e=t2>Df(`QsDyvO z?h9Py(#sZ!jY9XuPCALsWunDobJze4BQ$Ny*ldEWG#kzvcskFWo}zLE|M ORR&L2KbLh*2~7ZKzNQ}l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/db-Last-2.png b/Resources/Iconos/Generales/24x24/db-Last-2.png new file mode 100644 index 0000000000000000000000000000000000000000..97292c37b084de680702f4ccfb09f7e204296439 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|=-#ba4!+xb_g6k$}EKOjwvv63`T9*N$??)u%9)5O!y<9ZH&8%QjZ9%z4m_>KZ2e0pq3r-!Zo_=VfIKI&KeyM{^W3lhm%icBW%XM^Vt?!s4j9NJDKa;A?U6fd-Ou^|;X{vg z{2L_yJw0CE7Q8#%(B?+q0gpnNfFz5;LWjnOEKPUaa8@7MiXzK``pTmA2^{ky~#NdKEV%kDthkMHpzn;518WrGyu9~l2R&9C+2 zfkQjv<0jek4O0KUvQJg|c}Io&n6CTzWQl)MXHBfho5cEfqqle<&vGw;h0#UNAFA$n z7_yxq?c{R)aLIjtew_dC_<5z*&rkp@MEG0Ssn3xHY{3*6?t6=nev6k6O@xW!Md dfSZAtVT$Kw>q-qz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;nn^@KRCwCl)=x+jQ5?YW?<`ZTf6zSm2M9brFiL9XpAKC^`xqD)uCM5b+R+WiAqkNVE`I1cgE>vb(c0^WLn} zVgJp#GqZmp4?P%Wc)WR^`TgF!-;840Hb>b49C1@B4Vb#wWdnTQ+O8XU5i2^X-@vEi z*w;eWnVx<{U~qyPZE?@BLQ15_9zsYgX|W#PU}We5zdAeZXf&$$rZkJ)Enu3a)rEER z_Aqf(Asi0do)NlX>2$g#Z0O=yI(mB$hQKrh;{yT++o~UyId`AL{ytJl*9a>`mdAvV zJ)o&H!o!%RX@%&75G5<%g^i62(bC;shQ0aPMl>2#)M_wI(~wdE%@rf_!wPGd$L3~c znVMNGOPw@QNIivcoGl}T(36OC0--07O2##fiysz=I<`ds;K56jxtUoWO~0!Pd$u5m ze~G(dyQglKSDGhdC+)w%2E_`St)s*~#?VuG0o!aHEiY|u*nuT5Q+pW6Jq*X$Ozxs5 zcF+^Q(UUs`%rJBSwzjqrW)TYo*2+K?;NHW@x~k%!SmDa>B^KtFxN~NQ*Bhg-JnxAC zsE_CN6^InxR4Z}1YVvaEJbKyypsBf$P+*Ov9M;&>fN2Q#2%T;0)`%yN$sA<2f+-MY zc1s9T0uXEn(m&7#>uYp%x4U8$i+44c6ge<>0)YO3KD3mh3|e)7ewfIC>M@m|+s&yO z!Ah9SrPK}m@$DzH)ByTnhHhs2g)E&ghpw)y^SNc1NF<_E1v)W3U7TDBtN0L(m&Vza z7eBdTo?t#z`3e27!x6rJ8}r0mzxcIc(g9Y&T)}^dc}7?(22_Q)uHo}#HP_wXf9LVi i>uN9n<-h;){xblz?>NN4i+L*m0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-{YgYYRCwC7mOpP3K@i2Cqb>3UP*56zAU$+gN(WM^ z(BPheL`r8%Q7Rhv21yqwd<0vGs4QHg2nmT)QL4yA3d;!vR7jpTLviQ(=e=WXd{eE? z=lSiMoq2l=ocwtMpo{WoVSlxUC4~dfJ$hFDLZ?6M0%$A~7$v@}cxF^68%1j{ z@%+*N(7>k`itRNf>Y@#CF`${DHJG5v5O&XRG2DBQgDtEuJLOe|uyK0ldHNV=wt;5b ze1_n>t*?f<48axKUNvftx(vY;l}$UYE<*AqAo*l0OE%h?KP9783M&1%Cuyj24QAYgqri_N}$gWa;5abG&e5Ai=YzdGlZpm h2>Zfk2>%;@2LNu|5bz-9=nnt@002ovPDHLkV1krr6fyt+ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Cell-Format.png b/Resources/Iconos/Generales/28x28/Cell-Format.png new file mode 100644 index 0000000000000000000000000000000000000000..ab87664044d882096ca736e1d6e38727b20e027e GIT binary patch literal 1127 zcmV-t1ep7YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<-AP12RCwClmg{SqRUF4ZPm(5CFX{a@ky-`O7uBt` z%nN0<+KFyd6k$Sf2*VfRA5iN*Fnl#9ifo9CPN*pDHnlQm8@rC#GG%HvWZ2GZ>20yM zr%lr2$@83Ze32$?dP^d*7an*>a?W{vpM1Z+-{Jf;r4;va*to~Tp=nyioBO&x+7Ijj z-qm%zD&78HOU9VWonx2fL?g~|WC{BMsA_#ahv{h-i+U7Cjsv6xB8Ht9reR@)HE!Ad zWXdLZqP!s`j+O;%@R_}12uCgM+yHL38=K1srT{Anu@I;bA{-^O9K-J~;HG_+9%<25 z|8nLzTo3b9KEU9>?{uHJiN0t;VLm7eGqQp-4OG+w%fM}qQBxY=pwmPc3SGaQd>q-p z{KMy&UnpitmkbZj(ipQS+GXIhMKHoEC@YH13WF8Kh6`_UB@H zi1o1317#d~>3)hl4tjcgOx~K|$l+?J*3gzsY)XKNVVTQ>qe1dC3t>o1VXXlHUU{xA zg|iTtX5`}86xh&cAyt*d1fy=Gj8ao2S=J+be|dq&9uhoQ5(E`tMGp}ZLB=Pd-0_=O zC5rio1i)pNn=RcA=BeIIbHi@Veltl}pQXLc!-|nh*ZBqJW|k;xGRP&&-5CR6SKPSc zX6P3iV*i?fhOli0ZUt+7^Fx08`eUyCbc3pV6Gx$&>wo2tXOHnhT?F54KgZ83Vh3E# zT$Ig8z$nJd&qEk$-I1_uT{IhE1*KIq9ekV1eVu(XvEjrGTzW z8$*TS&m*;nPy#B@dizJ!`W(*Ro#MMs-vLO%q?8D$&}U~DzHpM2sR1g>-7GKo85^Hq z$XCmWQ+-V6(9!uG*RPyQp6`~<7UinQNiCYhP)bo)Ud`c-o+M=LQ;}a>L1XJ%{QLuy zIK3cknxzBGB%~id(5k)028p2pIu1V*#3GmQYyN?9NZMd?b^qEd-ri^#0U6z zwz+;4D0jXsfTW6}M_RX3_S&mWNGVr;E2L5gp%AP4gov+Yd>^K>F%y^&GPCICz?dzJxu@r002ovPDHLkV1g-@4}1Us literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Dates-Adjust.png b/Resources/Iconos/Generales/28x28/Dates-Adjust.png new file mode 100644 index 0000000000000000000000000000000000000000..15234454f4b7ae28bdc1c7a89234cba1ea94c7c0 GIT binary patch literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwCFmQQFCK@^9-*cMSQ^(NE`Qd(3{(Lz(w zn>FaACPEEP4v!cEtpefz>~ocYwH@rqqpmZ=?47T*T>qrM*H!xGMHT!P95qz!mWFc z8iHjFL6^g{oS5XN;ZuhI58i#&2QA!Hmg~t@~_Pfd3 z_shKa;t^6;(OmshW_x@tQ`drq2K)STSfgWkFJGW3{$m;}FQhXvtY&_1!k0smYwSZhsd53f=u~;(vApO&;E{mpZ z)7=>+J^``uH~^#32(j@v^D|-l94#J&rhg8dIXc_roud#DU{# z1mJ0JFS)$hy&P7O1uI@F_`krKZf({fT&WgUHmSMYRtRHlKqXuo9`ro%l`=7vxb4a$ z@A#L+TrupADS1^fyh`>au{g#RsZh*0S?YFWp#LZ00000NkvXXu0mjf DS%qh$ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png new file mode 100644 index 0000000000000000000000000000000000000000..faf46e86064195a8ee24aaa6962bbec30362ba98 GIT binary patch literal 1213 zcmV;u1Va0XP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=Gf6~2RCwClmR(F+Wf;f*?>VO*D@?*dD7Dow)-gWj zh6zk2pSl2L;=~WegD*zCVMVil@Ju?D8eptxiuCA@;`}&sBX4u``t(x)%YFHLmc!38m@VGZW zcd54RrAD*GqIsBv-aYl{xK7b5rYkA2oII(CFgevyEbQV19x)}-WXLOMH0e!%tPDRE ziani<*3t1!*4*7&`+0$1o#Rr$tX7+bk)_IzwCLgm9&%J}yE;5Hd=)_53ojo9a8|uV zV@L;_TDr}sgQ`tUL#$S-hRIs042g?wUf@AN4~-3fcX6fPBo>i;06-|jv<3ZpbC;3^ zt5u`gnqL(XLvCK+K@`&V!$AMQ%5w^UiV^V|BFaut;>OeQq@27B#^ToM-Jw#kS^I;* zpfdq;51qewe+7PZIu`&eBr;xENXp@Pc4w$&eEa|*sEoO&8H@|W^BLI|y)@(Mb^Ye|R3Zu$lDP)cVR4RZ~6r$6qrD@;2 ziC>C}l-i&a8y&bn5*ZSGVaYQD#03B*y$Jw5PHMhy%ATFK{Q`hX>)WuezO`Y-`)7Nh zVf%>?&O=(OW(5*9C(?7Xb8}I*nW{;Fkbl8JH7+ungSz%a6&v zZuo=ImfzfiBLL`;H+!CAsC+q{#y2fIZ+KEalE{!*534Kywxrl7Pd$-~-Cdt!!N(7k zmzN)W<;byBSUQaq7Dtj?>K=6i0CKg!Ob`ggQX8NmM<0JtRsEn^mwox)Xzu)RXU(Ou z60HL8lV1Y-E0ck6ye#1qr)A>QFzHQ5XbKN&kpp1*th7N>q?Yl0F~zJd?q;TD zN9pL#v+*7X%W+^Jye487)tCqf*tMs0=GL_z+qh`R0ssk3zXvd!u%Z5_Hc4}H{w_ue zMUa+G0P#2i0Iltv#YO4%3wB^RO`0s zoz=%rL&E~3N{hGcHu&tlIQNNyiGTpd*EL`c9fQx_i+&GqeErv{y1Ci>Uhik_+SV7T z(Yz<=YHaWD8cHgf0I=)(-_rSdX^3GhXz20R7`e@OzUp%=ACaN3n1O{T=|o8)pW+ zDWRFl?$xNpNWWkSbpY1;dzx`*)MBJAlZrZkFCS#2j6x^(ZKDo=I)JPPxi_Q06z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZO(%S;UC@!a#>?|k3y`<-)$X_|PJgTXT%|9?VawIC1(FuzVr zH?l0Q0f3s;TE4x|)ek^lEyYB4u*wN9!M<)~YEQ@PYpr8W93d>}SIc!=ALVl(e2YW!ISEIwh@!s6df6v;!5T<;^aq3($?e=j8OuR%~r; z9~Dmj5!pipnw{hFk@@`rJEJQ#vXTr@fkIE|zM;OJz99gOZyb3Czy;endxaHYbZ&yN ziTsM8A%4H#&J@no$Wk&)1qu`9>w|rlFD=%aq%|c50K|l3Y3Sc8r<8d8emlRutX7uf zFcm0>L44P*{BULQy9vOQH0d@pW2>Za!&ZDsap_aR;+Fhw<9W7lk0^@43|YA6;-x1Y z_&FGy1u&aYytt9Pk0wAsc!aOi70jdt%dlbjm7afR;se`|SyZZr{ z$KLOJl`-{RD@^R6@LI)-&i;%-W;t0+Ij}BIqrCJ&3AVR?j@cOPsjjZx|MszWvt(8n zMV0z)A<9iyV$w#quQo!o1>`r-(Vh$KUhksZlr1f+=wecd~q_N zF4&^xIW04%hRf-~YB7o`)n*m$-qv!@x!E&t^UsAE2=fczgt`P^lQxVb1XS+yOhs=0 zq@D1!NkdE7Ob~us{(EZ5)%*NyU=VvAds;a8s zcJHWjY;XqaJ~+1`MoDR&ndonk%*!HsJ=L|excAokzPvTm+pyeo0I1yQnHr0XzZZ*) zEWehRgU3%a%_oyTKDj=F8NEB&{MW?&aRA5?uDxm22-gVzbHaZH0JG<`zg7aaaR2}S M07*qoM6N<$g2EU8DgXcg literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Details-Hide.png b/Resources/Iconos/Generales/28x28/Details-Hide.png new file mode 100644 index 0000000000000000000000000000000000000000..84f6b2408ee39ce673c1f4376d21c1a4db34853a GIT binary patch literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs=ear;uunK>&-N8u0sw2F7e%~=NwD!$mV~*TQqHsLfnC^_ni7Cy6)?)5p&ut(Ifvz zU06nONrHrgMAoX^yCecbW0KmEE!5{QcX+J#?tXe~760*CjYX^Wa@wBXtfX@~s321+ z)KoPzBT{rl)ON?EAY7rhMV@n4v`Woxm;zl_;F o#+q|P{4RdGoFRNY{_kl9o|dhV^O_Bw0{zF}>FVdQ&MBb@0IC~+9smFU literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Details-Show.png b/Resources/Iconos/Generales/28x28/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..6b28c945093e0bce4171ed50c3bbff1cb1ff4ba5 GIT binary patch literal 500 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-YDq*vRCwC#ma$61P!xv$E1B{Nd4P`Eg72V%PvGL* zmvC^gxE37ipoDmfI9)S(TdP3-CQV+C(nhYkQM#-i9fN&o;vwDOj_ zt20%qX|h$@#2y~sj7K=B=TM0VTBj|^_MB#oz1>X%0ODqWf~>`0000zbxCDVclB?o)1Qvo2s=64Riya>ZrEz`&)d*Kf|e zDamzMs5$4YMCww7eJPdQ-~XoX-?~ZL*xB={#v1nr_h0-hO;fEf*4}^kl=WNPTlsdY zey`uM;tY>6!;e3=Vndg#Qb-bzU*G-pN#>hJ_r*VRIS6wwz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;aY;l$RCwC#)=x;2VI08m?<65V=!UcK@tfRK}LmUXy*R8Ux)X7 z=frpOb(KW)gNMC)|2&`lp6B^J?-UW?Fr$G(jw4nl6-6l@yWPGJ@YML)lS*k}yPaE& zo?>~@08Ol0ivTd>^P9Ky1X9{8@D}I?CW7$pm%vKw)gr{^=613k9Uzd>c0CgW#SVyw z>}f`J(lIK6JEAvVQg7~vs2~y!i-g0Xf-HcjAa?q$xoBds6tuSLEtw?S)`gn#6A0_m zI2;PmZrs}rSfRESO=b8TNqznTgER)-;N>#I!B82g3=_2)-hIpB+O13Y97)=mA`D&7 zF&GDL8n5cId}b1u>5d#c!`}X=IGbB=HiLIHTgGxZKSW(Lw%^684iXKf%UMnW^5Q)g zfiGKq=Flp(GmOQjiN&YsOn6XVF6_bp19dS~fyLs}WR~W+anpbBIee`>AXg}%O|6ib zjnjFj4}gwS=XQQn!UJ6%09;G+T=Dog?r2~mTdE3Ht;62_s64)RoAs@2@`Vz)qA)h| zjZd?2(jPLo&N^v2f0Y)eqkKJA6jnEiOgz^ZA9<)8c&9PZmGy$&VL`|jOU9>=GawVp ztQE>wwZgAihfnT%l}7{5IDO)1&6QW!W)D{P+rmW8oIGZEeKT8P`D@-5R!Dislt zx#b^{Ufh(#$L}(hSd*cN&vL!1Pi*&X7pz3ni<|pmzXdeWt^D@BSY4a<} literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Format-Font.png b/Resources/Iconos/Generales/28x28/Format-Font.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ceec7e02147ad30d58de87cac5e7a3a4328d03 GIT binary patch literal 898 zcmV-|1AY97P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_(?=TRCwClmQP3&Q5?s=6ZQuRQoL!Dhd?MVdNd(H zN$FCCCtYd}8zd+T5n*7r!nI45kqen_VX<})5ep45)I>tp|GFBLxQAMEja_wDN9Vm? zhn=0>Vb^hn&_fR%49vXudB5N9`}@ulhzJKc4&i`DQsm)P$51&DweAN*5CqeWs~6q? z0Eh@ggqHR}`j^2tryYsWmbgQ~O_A1vTjXC0(W*a4*+mr;;pj@K>$eLj_7nufK*IN& z2%Hlb<6xY}JQLn_4j8Xt{dhh6q8|>o!w`&fZd^3Wp=FFNk0SYKGHfF@Fk-r4jFWMo zW6l9fmIapc7I;Hmw9dEg3X>!biOEw6PeVXP3{A65FrPESl4ViS%Xnl%rUEcIDlSLK zjHa~Xdk6B;@{oEg6`3iSC_G(=iIoX-FZL)YW1NFCN(kc#QktX%v`^d7>*bWuWF?T5AXPDhDnz6oPshN|eoXo%;$Y66A2?O)RA7wh6wT85 z5=`ADl%6dO*HT_AkN{KWbpSx+Kn1)(uLAq(Swqcpm+E`nZIRKOftl4AR1a0d{L!o| zzS(C%-B>LEVB9x`OCR#V8ONr`aOd$C1UDrBkkuL%l&%_*mEumyIN@2I9Zzx_qk@qY zdcV;MOsEzgq$eaOY%u2iK!ZzvGAr{gB}DnwozJ;5nUf+0DDHL$2}r2 zk9PwNPB)yj7gf>dwl*WMZHb}MHjIarIXH6okg5f=tW6c6UKryXw&p2}FZ@Bt?Y{Vu z#C)#_)C>DG>czrR0Q2o7Dj&@*>rzy@o3*Kd8Ze1*Y=m~u+3&&Yu5WlzlM5+wKt}kr z8dCOI@ryWlA}OJ@scINirrPl(Il7#(PTXs7!Mzy3(>Axt+Adc`Q~TiMbV68s4fpWH zskSS-n)Yx@k)~-Uj8F>}YXC<75E?ZkynFxoV6KURAef5F?(WMq(R!=gq;UTGoA=)V Y09JtJYB}|=rvLx|07*qoM6N<$g8HF|LjV8( literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Grid-Select Column.png b/Resources/Iconos/Generales/28x28/Grid-Select Column.png new file mode 100644 index 0000000000000000000000000000000000000000..5033d4ce33e08b2bdb991b742c7aba3a72553152 GIT binary patch literal 711 zcmV;&0yzDNP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;JxN4CRCwClmcMHhK@`WoCx@np)ip-Mq&R{RA)YAy z0Tvp_e~?NrkQ4_-B3dX!NFxds79N6+{PYAufGGQf{e{5Wv7Y)2jTH;AdZ$<0#m4|HeFq9jV506f+xDph!$zBBfwc=3p?g59H2q*($vyprfKuXKQj+MowW684 z=>jm7Hhelqy)wfJ$Bq#XB=tKbF#-yJcjKo`hC?esS#!YV{eW4=h=*?v0y~w>Lp5B| zIt;6iN3zKb#lkRZmnNfxoW8lNHT6DS%dnbRDw{X#s0<@?2z10!lfQ)IWrU#PLy2Gu${)%P^H)3V5+x#<1=9&lqeFHa|elJb@_c!l<0|0j4LFA(WwV?n2002ovPDHLkV1n6TF|+^x literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Group By.png b/Resources/Iconos/Generales/28x28/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..95af7df091cb5eac01a185bdb609ef0cd9b35e15 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(s?=;uunK>&-PsuBHG1wg>e`7PI8O7Lh%mcX6FrS=+6U)i3zAW<55H+V(~)(ZX2Q zghTtv$DaxX4mCD%bsz5i&|axk6UK1eqJR>>>>>;J9(V9C(Oz4&%oQo#YBe;GVo{an^L HB{Ts5E0L3K literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Home.png b/Resources/Iconos/Generales/28x28/Home.png new file mode 100644 index 0000000000000000000000000000000000000000..f89327a0512c34e19100cc915859a3cf710d3844 GIT binary patch literal 800 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 XM(yr;*1ajH`{k3{_K1v*Be? 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 Sfc(MR$B5sR`M#b1E%_g7Ao#NY literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/16x16/Insert.png b/Resources/Iconos/Recepciones/16x16/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb5501065324e7596ed437529633ec8775793fa GIT binary patch literal 3113 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 D42tY6 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/16x16/Thumbs.db b/Resources/Iconos/Recepciones/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..5c8b1074b993c0240004a6aa94b15f1f72d63549 GIT binary patch literal 8704 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 n@ODQ5Mg^6rt$v(>0J7u literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/16x16/albaran.png b/Resources/Iconos/Recepciones/16x16/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..6251fbf5e2636727a4fc75e83179e7e2d5e53308 GIT binary patch literal 3488 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/24x24/albaran.png b/Resources/Iconos/Recepciones/24x24/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..fd60ff3494e539a222ff9615141cf020da79c332 GIT binary patch literal 3910 zcmV-M54rG(P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C1Y=1=K~#9!q?Ai+RYe%be{;^9d+zOnw$N%Rw3Jdbv|L)1 zhYG|SBDZmicnj!!pAeV)+=j5Z|!h%n2 zOJLa+zUL!^;mTm@XsCb}pIio+8~_Llg&?tFvtfM5u{C0#QY-2(d4LMQal?ye&7D{7 zNSlyrle&=s<1w7*UZ6EiIsl_?_R0yH4j^+EKnVH143$1Uv$k=G?FuX*NGAj0=^mba zYYRQc|D-#1jkW7nVr4Gy<@T+MMrG|UHOm(24~nY;+!I zc^zaDtU_8p-%aC+N6?pJ{P@||^mX>o)Zh|!B@N4)Iea9}aA*|^pRORdKE&ytzv8cp zY;%_rF$Ov~tULp(v&0xZze!)`O``@Ik{SA&D?E(YRu@N$i3J#)!9Ky1( zm7*xRfiDhdh6eZX?ox+H*k?k(KOuys(ABJ8zkxlGO0?GF_5>jz5M!D1HLI2_rlO~x z9Up#tTkWI(0Idy{fQ{=~m@Jescz%FEa4Ob^wCzc2CHD{`=MRzW*bPA;+E{r}bqXB{ zQJyNv`}+R?`eKK0OUkIMUX9Tp3>XZfXTPV^8wBS5cYra5{(%_T@@D2&r?HB|Xf%=r zg3*h^i%g(kXstJsrR&G3j|VedY+E%C5i z3u*fxk~jTmG)60=W0T2xq%uB%(!9E^p5%=z zEh}cTXh8{qQfTcHD1!u~v=P%!vcc#8VTU-@d5II9CrM{Lge4FNW)(sEAJ;g3YRm}& z1Ofv%QgS_QO={Qt9T-8N1U01zT3ZidC$BJ5T9_a&o6)xtqcKWhjK1lNXBs5Z24yAz zXhOx>nnC2+H@wt%8YxA-;h1ds?=gVZXstl2aZfp1?A3Ta#S=@UGTSm&Pd{<~oLilxcY@0+P6;ocSDw|f#Sq~gN?F(?*zA@k$60S?^&a%G;01Ofo UJ6!lszyJUM07*qoM6N<$f?dyFHvj+t literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/28x28/Insert.png b/Resources/Iconos/Recepciones/28x28/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..2c075b694eb987686e305a0472e921ace17a7077 GIT binary patch literal 3346 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/28x28/Thumbs.db b/Resources/Iconos/Recepciones/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6418f7c507b6b19ec6dc11cffe54815d16f3b4e1 GIT binary patch literal 14336 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 O0ay1=hs(cU4g3d_^~d)B literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Recepciones/28x28/albaran.png b/Resources/Iconos/Recepciones/28x28/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..716a0280d6a3e4d65ce6151fb01d48d347f05c00 GIT binary patch literal 3720 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 VD~u+bwWa_7002ovPDHLkV1l;N+GhX& literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db b/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..3a5ac328a08c766ffd1b322be2ade38e4ec759a1 GIT binary patch literal 8192 zcmeG=dpuO@+KX`?z}gYlYBDfK`A6CcpwV z0!YYwcF0<$!G8f3R>(#UPA+a9IHXVvWrzg^V`YOet%kINpmBgrfL(C^32hD`b9>GM zp27-u;xf1-b%=F{a~%|^lUKY#xp_oH#de7wJS2Vi$WcY5Q_3o;YPx6i^bHJ+j4jSv zT3xtkZR2qD+I7bpPR`yww{H95{QSf2-V47U5g8Sq@HjCk`N`9i%$Hf&uX0}JzIk6* zR9sS8R$fux(Ae~$`QxXS&aUpB-o9`B1LNe0$*Jj?pJ(T&E34nvXg}!d8%)1g0NAf? z{pQ*4{1SltVr654v2il}Vqx`#5GKIJzW)S=ptd=uy{FItg*#lrI&m4qI&R66=O~CP zUL8ClQi|gTsZ7^?@$8Q|7WyxF_M2n>?biUn3uA$j2NM8Lz&4WF9xMA@lXiUWRE5t3 zYmm-ja!c`$!W$U>UMq=vZNhRY0Te_W6AC@DC^1Z8Q z5SXx3-jc46-xhv?r=0wS$E;%LVeU7t+6keh98|A0n}dLQAGqzs!jnUcO*00JLd|A#%YC^?PQ(oOMA5-j;yPu|x{rEyzX znI~D|uEzPYthz}F!uYwYn%l8lBv*LA@-Ec9VCf;J5sAJvc%F%@V3%28S;C@)ag%Xj zZsLXHF!rd}XRCG1<+#u`HtKR%0h_ZNs_6RNkDQ-B9$Sjw>}EC7RF=4aq=loj}7nV|nz89X&w6^oJ_Y_{gn%HGpR^0meEzPA8b1#;!M8lrk0RrYY z{P*zAs&ratNuLlIb?*>my^Ar_7xKEhbRBc~xSwBt+tAwbtX*$mkX$MVz~$z+*(|ix zjpHFF?9{%6wMz($R8@2}{xHY+f1tIS^eB;p=#Pwm9-lmHk+y@viKtySL)Ncomz(K4 zyX&RhjIwQjClx5KA_ZR-mk8))v8RkN*3P_<{h(m59JyO%mxe=ZWj41}N={ED)&*Z{kbEjb zR4F@d?$K!w;8-i%n_@Mmy7)tRpvDWX>{f}}{iSz(N;QW`b<$ z_Zs8GkRX=G^4CyxTJ2#UE73^>?;c%>G=lf>G#B3*B^orjBXEura!<$UO4lm7ZX%9N zny4H|;3PV zlGQ`ZZ)Wx@o|4_WtEqY9o3-wn(41p@XRp7R#Tl+qhZ#*56)N~Ns7PhO03da>Ismqljk{{F%e#WwW0Vd6RZ1M)mw{FBmXglK*y zJ>G~tT3Ibc&#|IAbnXuFO8WClOM_`#?P3M+v6;Gd#MW8*9TzH`jK~eEBMNu>$nTgV znmFV+4Lq+RzV-ehp1DP;d>&f#@a_8yneEZm{ZSvN`u3c6&7L21Ga0dIepNlav``XN zQ!vw6;q!iuZ=lA>#8eFgYV9^=Gob9Tq8mm91NE^{3|SDko1#=ode>dF+fH<0?5QkP z5MG>sI)ZZ;kPLieD<$FZJy&THk8n=kS)6(%UfoWAmTN$tQx`rmwEgrdcU5kXTEF(-2hX(U z^Pgn1sL8eM^rX61&RYAs&|heeiN~{ywQfr-1fy_%(lI#{+TwoVM7uEG#)CQ#$huuT zYG*w-dZy!2-JV9*Z0m!kYs0$v1H@}2@)zbD4)pXDCo>+mX#^cqG97783^t_uHsgh= z4pN#MD*7S=C3E@*=&Kjv~nLNb8YVF0!>s?#hoJ8krKnm9=;%fLr z^bX~Z58h8YZ_I@8uQ_7MelJ6qU{cI_*Yhf{e|2>4xpbqg!{k=9$Gk{Q*b_lt$B%L6xFjX|%-rhbq z)9io0HupQ8jm}LXe&0;IZ=J*r_xd8UJHndeUr>8RQ9{DAODbU&``&j!FJnugb3wyC zU+Tx+10r2VLZ?RptoO&=RMww5o8@r;!!s6^PEg)-4DQ-1NcW_gm~<9HCE+h0vozI_ zSz)Sco+PiJc(N^Xf6a()hx4s0&?EbSMkQQLXGRv-0}6% zk{{pbo3_lYbhTot(Wo8ziGi+DN4&iTTJ2D}Ujl8%cUAG-V8~NqvR3AHog8(#-BGmS zjFx0)6Dn&i{2a&7oAmJDFxZiY(`x;I<|>c$0UJ zCqCv-KP9}blkn&T6{|Npb4p}%?GyeHVIMtXQ)3u6k5%4~esG8qR7AvQ^*hmWt~E~e zr}*|C<+wfcBA$DlQ!8CI?AbLPfz*-**tq$g2hpif8sa}_*URX!1rO3=(uEdlWM@y< z`rRJ5+)3`JiVVAUXw~fy@1W(hT~65anG@atD_|5IXxk$+ z>j>4pR1Y`l3R<{j=VwK z%HZ7b^I^WBTy!_=2|~)S+|?e`JuhZ2GO(dwBL=rULz*Ns6JA`g9UYm zps<~NE9rgr*8a<#sD46l|8!m1Lc*2C)^h(-e3F_nlgLP<;FYfgd8y8qZo7Xf*0RA` z8+I7yd_LN!@LF=;BM*Ne+lkeqD&ljG2^Co3immp%Pi2?__q(_!S}_ax*}bLTwKl2B zbtFz)FGGEqpRQX!u(sgIB{*a8b-X;zf$h&Zp*d1LG7UwPB5Tgy zC5Wjue`#{+vHNM_Y!wI;$b-O(lnq`>EoVWqb57Fk{&v;q(41?Eoi^(Sc4*4Q+#_0N z@LahB6Oa}|E?UOQEi(e3r%^C;wiPwXUVUYQ?-K@ruX?zo=bIMVo)dQN##PWe>6?$H zmruC}yn>*w8d9 zTPr~zje;Ld0D-2CsbLUk$Dx)#fdF}aCjSEMLveYZNNfFGai~7tf3@Y#s@(K@|7|nk z$oq?49;YN?mmP=&HRyrX@t|ic%YjC;3rIh$1|Ry?8O*c3++zs{;nW<>09EBxqv61| z8xw~=6=fBD*R=iHJ^P+JyN*(bRfokw^>e-BIXHrwz3tM&G#p?2I@VE>Wz|6J&tY|xnS~bp!iXVq%|6L!$M|n z^#E!d8?S++m34{8vklS{f9UOfPD=pYd^k(Mq$(G+M(=`t&!=TQ3$D8u#e zc{}u?0^+E`=9QGw!5#(_*vD;`?>`!Akfl_!Nbl_7D&k;!skhE)&*Cs%L9RJYXR3P$ zmR(lk1Q{(f?`?-ZI82C?Z_1Pk$+-9U=z7Qtb;_4#5? zPsF~i&~8h-ik}U||9qfEW;@#_mTrZYkX3pdVNE|k{zO;{tBYKkPP#Qh$&oV=3%>H! zUl2F3sJZ+3fo4XT0aUS3Ze+jlGFKcd&lMXZE8luoslwdtur&yMEGx!vVGDEL7)!496iwc zlx*i~cyWs-3u}$B(b$J+=ba1Z&h+|xMg2N&wy3&+ilj1XENx{Lqe|+nGWDc=4Ahmd zaLQCEkP#h(ng)izvRi1ofOc)ffmch&xe{^&>m2w)t;!fKD$6dMIbZ^KV_ zRh`Jze&uxP)W*$pj^(4horoyKp{9q3(=e%o+Bs9do>fP3Y`DR;-c6`VrmL;0QWj>& zIpI**K!T)c5N<(g(M_07=RoZUJuUt9pNj1PC*F;M|pwq-=?afNQ`x&Z8 z+(fm>IpWvry>4<#8C3=)<)NCD_E8Ek(`t|UBhpyJ?AyFJmbVV2$$&s+z-#Cd{7hpYZ=P0{l>?pIHN!{|1>nPV-A9vsW7cXakCX0@MUN z11JMJz$ri$>J+O&lqy6iLek^Vs4T=QLz>J{1waM5nEVMya^@Fa2cm+YRsV#4w+Ixg zep2#%@Hoz3`o#8}BRnka z`7e8`H^`1Mz*o}=p%3`d7d@0SYfA{ItNFhK$nMt3H%j7OG3YJC1tQ9%3mu_B8@W5S*J`gb+ z>Dt1#k5|U~8Ej>}*nN?QZa6;sWu^OpZ;ndV;{>;IJ;|PW-8stJIb*e^>}9=q$NoaF P|KF{U|Fq{{iokyXp}Yj^ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Referencias genéricas/16x16/enespera.png b/Resources/Iconos/Referencias genéricas/16x16/enespera.png new file mode 100644 index 0000000000000000000000000000000000000000..618db415dfdea80261582f4e1f1903fec08e0ddf GIT binary patch literal 525 zcmV+o0`mQdP)r4=(0ffAGoa0%N80g6f6`B6f_hJ6g0eHW-7>IW*_NH zFFJahd%uxR#kKORC8Z2Cuz)U#F$QY{5vh1k)y*8IOxx`42dZcCDU($(BG|n_>d%c< z06HtG3P9h#(DyHhJYn}coV8F3Atd6I%hv>1%kbu50b>NS5#p3l&9sf9Z5^tRQbq*a z-rh;pH({-%Yb;Oo6X)fOY9!C#|3u8zV7EIEL6;8%dDaq+3AZqQzEB?*&5pBV!kENG`=XH$L?XY z(WR6$rIJsdQyMYDuD~Y literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Referencias genéricas/16x16/pendiente.png b/Resources/Iconos/Referencias genéricas/16x16/pendiente.png new file mode 100644 index 0000000000000000000000000000000000000000..d1992233c610f9c6a925925680e40f1faf696999 GIT binary patch literal 274 zcmV+t0qy>YP)VgZtuHhV_h@G;MaE%ICz_&*Y9 YU-gJr5IT;{X8-^I07*qoM6N<$f*@dZKmY&$ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Referencias genéricas/16x16/resuelto.png b/Resources/Iconos/Referencias genéricas/16x16/resuelto.png new file mode 100644 index 0000000000000000000000000000000000000000..230d9269350e5ae50e648f625cd57d02daf17fe5 GIT binary patch literal 334 zcmV-U0kQsxP)0$_zK9V- z1UomRm>$D2qN-?Cn#zA19_|4OxvJ|Ldp5;6ixdJGC=5~vNfU1EC*74jKwXAPHKBP6 zfQ*FHLP|;#o2_rcWYwbGoukh`nF~K?A8N;`qkUF3agDZ#cppxhSMv99cI5nO7jEOu zURJs)L=Mez@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;D@jB_RCwC#l|N`xQ5eO~eRLFbRLLY*5fq|>ic3KR zOAthH)4@eZD-{x?aq3_lf{R$*HJE)vA6XA?(J-Y z7Z3m-NJ0p)W%#kvhoCJ?AyPO20EiApk$#yrfVKj`aGX*pNU5Oeqf`<~DzxvOL<7E9 z{e-2N5nR0Og6C2IjWv;wPgrIU497{5QY!vjt8ry@jo+(3`1RWg(-AML3lF%Oy~6pF zhuMD6<#KWE<1$O-&n(U^@yMAD>kNY7I0N4EP>S_#Xmpi-_Rbjy#!t$XSR zOJQU*vmtmpc+GAXt#>j#vuFUf3jf1_nUlBg-f!zNY_a;$5ZUf+E1Z5Zn@ht#uKxm? b)~^8oqijoYVMm4a00000NkvXXu0mjfYMv)- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png b/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..5305bccbead53172559b154ccab3969cd67b8184 GIT binary patch literal 714 zcmV;*0yX`KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;KuJVFRCwC#)=g;BU>FDR|62-P1U+j()Ts;{#34gv z;1I#O%Pw9wR6NYO9W3HRK|!4d59^`BIR;WXVL9xuD%g$5j4Y3B#) zsR+%R$AdN`HR<9=dfIb(Lq2}_zj^W|jEGRr@}SODcMxt)X-r@g6BrpRx4@Xdh(GKl zy0TM4iO8KP9T$fQ06Z(BK%%JKfGf{%TpXs>whruxBynfk1w11L0O*ka3>*ceNH_f` z5(^W+_o45>h~c=NPCv8k(r`3R8&z3RNs4q+DL+WR=FU@grk&;{)64<+K=hM_n$ zWYQ_@JJ5(=NCvlwRln!n>MqnLJud9kE>KoDUcO3b+nd2G7w<~aw{lj)^hr01nI<$# w`u^jxV_y_+t(_Ir$xj&D`c2#d|F?b*03#K5bgv~G3jhEB07*qoM6N<$f=0_OzyJUM literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor.ico b/Resources/Iconos/Servidor.ico new file mode 100644 index 0000000000000000000000000000000000000000..ff7c9cc3bb27014d4095afd93a3e812c3497ae15 GIT binary patch literal 22486 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/16x16/Database.png b/Resources/Iconos/Servidor/16x16/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..badb104aa97c644b9d306698abdc46a020986c27 GIT binary patch literal 749 zcmV z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;V@X6oRCwBqlRIk^VHAd+Z)SIMS+iM=_=nh&3`^*05qHmpm)w7 z>R@0dQmih%qpQy%lRJqp1X0*TMFE?EkMwG|wF0tHA@m)D(ZQg*H^a!WDa`a?d_TZ0 zeM3400>45iZG;e{`*S1`8Yv=7ql1CoN`?@^VAt-0B$6p)W^V@r`F{o<-+y@UW94hS z69QgCQmO_|w`Z{(=j)dflM`pBuZ|v{Jm1}$KB59=KnRUnT_u$Dnq65fm5ce;Rw4iF f(M#U6uIASOrd@6EpSQ5-00000NkvXXu0mjfe?LME literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/16x16/Thumbs.db b/Resources/Iconos/Servidor/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..57412b64200b947e09354cd83f7177d09d00156a GIT binary patch literal 44544 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/24x24/Database.png b/Resources/Iconos/Servidor/24x24/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..cd859e172492b1f45af0c46c8a018e04bffd9640 GIT binary patch literal 1131 zcmV-x1eE)UP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<;Ymb6RCwCVmdk5gRUF4Z_s%nuWX6dzO_Q`u9~h-= z+W4YcL_`Wgvk{~Vw=M*sCI4h$dnxDCPHWrN&#&v%5%JR=chcEzb?ven<`Q)wacx7Pc zyIXd?yldUa3+d|64pNysjsw0@L-63tPc`JG!6XVm1i3ny#!`bV{L z{MEsO)~qo2^zFX)pBX>&-qzi(rPG-_OJ%JEt1!vJZE%1|{5vMg43+ShxN_c{K7H=U z>mQ3Z0o*0fx<~iCGy41+9dK(TM*3(`UtF@jOnYr@WF3^x`n5f7wbHwPiP1KgzWQ^n zHudXDxQ^R!BRq_(V?-SzJN2TO$AUl0AJ?1C5+}VR)(j4F?bH`sK2>CR+c?#M$8c$(DaT2XFO+c|a9tOf%_AcptRab$)sEj8@`I|j zLG9KRu3tWmHTvI?tVM{3An;I1b+)K7u$k`OJ}w;lnrvYW<-sv}`!?gc4q6GcPB1z_ zD~U>CL=+GP(}ck^acdqWLR`mCES5;mgm<68!~L774)4OIdI`f8-s~m9U<%RlP@;)S zTIeLgs2FP%t^+-#D&4(Bk~koV{KfgKHso|VPhbCf%4elRii)DH(9-~Gza$k<+|yEJ%DP?ZQ~XJ+lx zjmfDi6W(V|Xg+M;=I`H@ef!7`>Gac?Z1+n;!`pY3*KFF5%`oaXq;k0)w2le=n%^!;r{cT3^{o(Hr%fBsu4FDvrtE|zR_l5uf002ovPDHLkV1gEV7wP~2 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/24x24/Thumbs.db b/Resources/Iconos/Servidor/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c75e445fa281d3337e67cb758aca08259adfb549 GIT binary patch literal 46080 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 b{yzf%hd^OX9!?AG00000NkvXXu0mjfi&16T literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/28x28/Thumbs.db b/Resources/Iconos/Servidor/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8b1904795ef08a4857efc44f9211e843e6ba9070 GIT binary patch literal 15872 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 z z$}W|GGj=5dXgZS?SF)kVC~Dz6=9m}Hw;Z*~MLL*AZKJE|*G?bh=JOx&LUZBW(x!$< zRyD>w{1yxP?RDXY(6+9@aa{EC zksp^ZGba4Z5-TD;Va(HLJ#CARnqg zjGfiCdLY2F(it7{e3z;`Ij=#~&77NtL0Rf;%IN6J2;KLGm>RBFWQ!a~D4kgLuQ}j@ zZa{=7?Co4kzUi8Nwl6LJUYePyy>Dz%t;;^)VwKzIJE&;!?a{3JFnTo1^vCMgr)wow zH^#!5j;`7koV8EbACq?Wtewnbv9|P8=SAJUxpBhT9W8Nwj9MQt4``1S6gd`eo0j3O zi5(g-S=3&VDeBdYbI8q~8yREiT%jb=& zMd|YqAZMX$?-P2P<6iNPeEWNQ%^O*aqdnYj6)$R=C!k$2adZ9L4GAt4^UZpi@)HJ; zs@-yL`FeWK#2(w=>Jby}#Ojt_)ln5}=A77!H>1w+e_m-*m2PUkLV)P~96hZ)Ig}(s z004YqSgr0DhU^!a?N1HbN{|5fYX hPyP4nYp#F0|3CPt|9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-$Vo&&RCwB)lg~?3Q545N?=b{pp;92>rbVl8k&7%B zLBh1qHi8X^2=Nf2KzwDEivks8WFQ7?XlN#)X;t9#!&QHS1kt#N3X3L)oJA2$>U-~c z^|%;)%xi|R`oe{K?m6ef_a5#wLMsf;f_qN+$l2mxf0vGd2bZau9`=JR01 zQvi$)4zoBH1TLAeDDVssVQ~&|iz$Dlt#WKf5Icf=&)Z^0%4h3e6Y~4>tk@C6cL4DG zbq4^Y+)1o>iq+x=045SP&W{2Y`t~zEI85iYR~%jL^qqt%Z4I33Ad@Rw-qrM2(%&C) z;C3=gx`)~TfJ<4a8mOl<-|i)Fiz_U=QGuMv9`cmt%j78Q%kMaFWvVJ4`kQ9w{aX&E zaww&%YJ3Og&Rh62c9Hz)W4NnptUSESua_@qjz2(Y!K(+@eM~L=7H;7qg_|Q3XKv6u zc?TVC#8Vo#F2F1U_O+j)sds>%^I5{(eV8ZC_|3H(getG#?G!Z*jpCI`G+dntG}i?f zhQXSn@RVlb@Dak(_i>cQa}=)9Y;JDV9CX0J+5YSNt9(FL>l0dgGXDoyGGo!lBf;Oe gm)d$`QGo3M01&|3gJ>gnn*aa+07*qoM6N<$f(&v3T>t<8 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Stock/16x16/Thumbs.db b/Resources/Iconos/Stock/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..a2ff4bed1dedb232e57a133642bb1274d6871078 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Stock/28x28/Task.png b/Resources/Iconos/Stock/28x28/Task.png new file mode 100644 index 0000000000000000000000000000000000000000..edfbc98d8d7555c00b880b5696e70258d4c7e733 GIT binary patch literal 886 zcmV-+1Bv{JP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>`6pHRCwCFmP>3*Q5eU6_jZV;2x-cq7Lr;KQi)0} zBuxZUS}To55tUGB>ronMNyIA@2{jZe(_j#y5s#<{jg?2zxCnwu8VlN@l?JW3=V383 z*G#9=OsCavbIv`l-}n9RcTPS-Yt3+)E7UOzBj%#BYl-RA#yVnd>?;@t_@st~KtmAk zEU+xi+UnXq4}5WD6PxELU6^l1!%%MEUQ8g+FnQJ<#!X3!SYTPD{A_&(z`pGs0FL-- zoiTvv1;^3SMoEEIHl1(Z)7tE7i10jU5w7)y)m4_VbnE7bvBG@Qfo0^BQJ8O1xn_$4 zQ_`lj*~fEB^{I*x()sBLLuW3prM@W(fUaw^S-g5l)Q05L$pCbJZ*j&xzq*a@mLhxG zvw$NXvUzSPioM$CPg2KLEXv~4_q$xbkQ;aQ%_wf5>upx~w9M*OJChdo-NIhK-6VvhA(wQHUqzQ-pe)pO$6-6YkEWtHvu9Kai`9TBQ zc9+pSErqTJcMyJ?FBL`Tv~(wMAq*FzH|&TB zODIc~_!EdQ?ElEIsU$C3&-lFMBxOvE2}=wpMPz0M!DGtzBc#G_i+?Xo0z}?(f(_mRcb8u!R?tZJb;j+I203abSuhwPLv;Y7A M07*qoM6N<$f@?FATmS$7 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Stock/28x28/Thumbs.db b/Resources/Iconos/Stock/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0275ba67ed5962676924b890dbffde504ea3b227 GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Thumbs.db b/Resources/Iconos/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..b783c8d2539ccdba48b395c449d4be61c82863d7 GIT binary patch literal 19456 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 dnJO394*;p3gEH@$002ovPDHLkV1l!R#Iyha literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Traspasos/16x16/Salida.png b/Resources/Iconos/Traspasos/16x16/Salida.png new file mode 100644 index 0000000000000000000000000000000000000000..1779d0d54016de6e878960050e52ae6e802fb4f8 GIT binary patch literal 398 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Traspasos/24x24/Thumbs.db b/Resources/Iconos/Traspasos/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..2c5ec159a0f15f51845a69395d38ffe77cf2e015 GIT binary patch literal 57856 zcmeFa2S5}{w)j1W3KB(fR00Dpy0A2wI5r7y#3m^fI0oVZK015ylfC@kjpaIYUSON5ai-1c21^^>~ z3BU|s0bB-10OSDd01*HufD6D4-~sRg(C^;gbE4q57(g6w1#lH03y=gz0j>eA1Ec{r z05<_L0C|8aKpUU{Py{FeZUK}5w*e}EI{-DneZXD7J%Bnu1E2}e0_Xr90dxU+05gC- zzyR<7U(>y?}nE|0w^X-_al-gVq7){EyZnXdUqP@;_Qnpmo6C%KzxF zzUP0mjzH^?%K&x&`d$B9`5*oMpzomoKoEcqLm2pIeeu`%AFWT&I^ZAWfAsli9f8(6 zXg#0+Pz3zF{I3d*p>@Dt=YMoK==_h?A!r?d&i`mVfz|;(lK;`~;&&Zj3AWMsAFW5w zI^cW$e+;&50JZ=-fIYwg;0SO6I0Mkv;R<{=fIGkg;0f>oJOSVV(C+{zc=#tnCsUB~ zin0o_5Df5AJpg}@lTnaGFi)LA{{wd#{GY)-bLRBvGdNgSXR+~c@bGYPaB=YoE}X|F zAR@rUJx_L?h?ssE9PsC=F&i_KH)(vM8cxdZ$4u_1Kf|81vg_Z3xyP%M; zh^UzOjhiyEa`Fm_ckiidXliNe7#W+GnweWz+SxleIyt+z`abo0<{uCk^fKaAWK{I) znAoJ`l+?8J_ZgWV3kr*hOG?YiYijH28ycIMTY7r?`UeJwhDWAnX6NP?7QZenBR03T zcXs!X`v>TBVL&kdl&oJ<_E+g50_i$+`ZVTgEOfdsPB{TEiB6xn#CP_>byX}w8)622 zZ)_6j@WlKt=NJXl;G_?2yK%^v1gDu1=%js1*^ed6=Xa&-*M$8!T_X@YObqbwFo{3` ze8hzev9mLq);29FcOzGNqqe7-u%mjEbamBh7`H-fma>yX-?^d{esJ4IurJjJ;uoqR zc5OfK1Y&rNE1sV(tdc#io<7i%0%=4CKq^1OT}F7w!uOYq$}jteE4MK;IlJQ{#A@i z0`2dbIlUf4uSV;5^jGNK*OrGIjfIPzA>a$;m6JBllgu_bSK6+x8>8)P(;t7Pl z(5=;r4#kNGG9NrxkCQcskeWO)cB}Y9smll}Mwft6 zp%o;YK8-CYXp1j*XRboqJ?W)^&lTR4J%zo&jlPrN@0sm9s41d#_Jdzw0RFd}_$WyK z^PPH(8$cu3gBsgoptb%~zOn!bbcq8YQ|zw4^IiWu{HcF_>Yu--SpR4A&tde8({pzd z==+uQYn9cTt2_^i4(Vd7EjRaNu~VH?#c4Zql&hW3&f z=60!M%bcuJ^`Qg@xxHs1YI2iTyHItl4BVoazVULjHv3V8xVpk^2ojTkxA*Rk6c!iu zJ$f^&y)F4HjX_lL{L8eswcf*$fzg-~2v*g_Wl0uL33A;BG>8jgVIa) zA7S704u7esA*W%&?AaO#Utn-HuZhz)qaJTA-ht()Idvi1Oks*~8jH9FAA7Aj2Ktt( z7|r#C3lOGxHi^z^D(8oniJ3pgQXe`?R9?r^m5=O;cs+z@;OjK}ygYf{UJBRQb+PvN zN+o>qnb2aN=g5du;AxRV;wBkQoR{7&#U>Papp0z z!g#73J5ZgpV$((n_1Z$YCEY?}n+btl#FfOXH75|Nr4j2u35GrLkw+Oc;+%XVg4smy zRQHAnmnpaSvZNr6-O4J7{D^f=kLQsiQh(N3X!Y|a_g()SfeP^d#rhAr-uy@0?`eNA zfe6n5eUEnNI{P1S==i~-`_^9ps=7ba{u2W7`{dg7^uf@V!>ppdJcX@C+Z`WLl@>(Y!kW`wrm8SYHW%6L4hm3ZD@L$yBaca zI_y~$TX>~HuGZI9HzTVLTw{s1DvT2xyZgLLjkl?vxdv@gcZNyfchgbx1dt8v-s0Pp zcfb$8dXT=sfY?*_IaHN#)pF%~tR}{xyk$GI8HVBh5I*T$#jF*$!zEQO-QwbaPkpc8 z1?AXly0ay5cVEu1vZeS)f|MtpA<=Bo_#!SE`yyFGHDtruVIvEfbdaEoru(heKa?%Mmmh2YN6U|&`s063e_TTlBy-25F7mRcY2-YuRt^^zXUwrxBplsB}t& zPF#lO@F?^={17W!rlFf7y*mkg{1N|)NJDnVEGGepag=lrM{MC(T*3{@J0YSYY`^M@ z@A+R6l&Aj}>yJP4|NkfRe*!YO-f2WOCSyz+nba}8HXS8@!;-9RRb7EHSl8B8@~icu zz3i2|K)Z2d(6Pl1A+~m-p`C+?nYBlrN7V9#+=muS8h#D4^99_zr<#2$a_r(c5o=>3 zLMVP@bZzt!S7kt#F7g>=?6rG7i5lIw#Jw1=5>y8&EPDG{LM=Mmn&5-=%Fr2=Ai-)} zOR8siWN$p)E2ml}uM!O_;Wd-?t-ux-BcemQpI1Io%nr)5J)Gremf3f4cGXD|=SThE*Egi!K{=QY6TTx?}o&nEfQKa}@6AbM1#d3fqA` z*}+dQOEEq^M;q4FE#sjloK&cr5T~Fwye+EYQ(ce{j8d2lA=g1TCg+ZP)nOWlEs4lj zCRb~A%WROeAiF%ac7Ktde=ZAljb9swEm!d)Y&1#yVqvx2uL|XdY8`(T`mTSpf9ju~ z{b&E){<9+igh*g=&&ATvE6?3rF8SqhTdlw4B;$Req|5<^7*Abm>L9#!j$Q<%gm}AT zl(v$5JNh>KQ+sQp^$azy*EBsMeF-iv6PYR5 z%EkMyQ8Q;17?}vK8<;(5&1i@dkL28+Z(Z^_s>r(+EoZmLr`256!PgsUFff_Eleq4M zUB$y1LTayPsw7&eLi%w$C5j)bpdY4%A6;x6QO+_}c0Yph!MTgcd9kM`xW-v8O#b+L=^2=Be?aG)7gOF+E{tOOMXql$drW zh%a+$XY;s9uY1qB{si)rV^(W!K+vSnw+=D#DLHl3ZFNUi1Ir_F=D~Vki7@r)2CWy^ z+&S>Ly;}J^cZZ`V2XUw=|fx>tZLhKRsg}JFw=Zh-8Lv z{HZ`XrIOCcJ5$~ibC|)!w!9E7vUFz&T_=~*tA_BM;P%tqiwjkeo}2XYui$bT7kxK_ zg{1;3)uH%)?MFLJAG)&}nBI85B`l54L6ygUUZXf#u#$Q16(Hbjq~80eXl00}@JMl* zGp9%pCp4P-TIl8TkDcN%*(jKdA4I8DDowYE@2!a-a1{{Og1=7URtk7>bBbOmQhIN| z#&7~jvtXE?7d!LnUGo;6iMlzPVEGQVaDS%^V$uiY@@^%1uZmPL5=nWIuwju3RQ9173c-^@U7JL|olJAe)N{ZX{_CvuGt_ zv^RubXN7a`#j>g<-mSzucI$&J)?toyw*=o~M)%u3TQ|FPr|_z%x-Q6bw!xjFZ=2g6 zK2R6oVI#b3w!{+fTsXI zz%zh9AOH{uK-&;K2YxUh1P}`70lWZ&16~3m0IvX%fG9vT;58ry5DRz%cngRF!~+rl z?*QnqlYpNLNCBh*(g5jz_kavQCLjxt4afoH0`dSK0O<2S0>1!I2q*#+14;m;fHFWi zpaM_{_yni|R0BQ(z5vi+)B?W_P!DJTGy<9c&43m_E1(U~4(I@M0=fX*0QC92z+VLP z0|o$tfFZyzU<5D<7z2z0CIFLwDZn&f1~3bl1Iz;!0O&9efxiS;2CM*90c(JDzy<&g zKmaxYTYzoA4qz9s2S5V$0S5qdcmx;_$Ps!Q@NJ+BeE(0@|MV3V-P8R$jsrVsy$DB! z5^W)Eu6yrG`~uW3ut}7$Vj{Di4xpTJ%ssDkrNKkr@W|kEhz3jNnf7GRv}DGGR%j5Gji|yb25T>drw_bSzC$du)wlELBN( zVIet`Uh0OBUFOcsYxSzRkOPSkry9kvK9c}l_ zfr}+R&>??fsY;+nNbmmAopC{(cTdJ~sY{tk;->LPnlc!&_|LNALauSXn`LBnpGI8K zFGr{ZRAS9!DO>i8xLK20h`W7B)US6t{eCYzv2B6$rSRrDtL!~?O6FQCHI1Ofdc#lt z92>m_vV~AL-F-U5jMr07YJ}(egJ-F9>ATSok)fTe(VL7o z08&~CDf`HNgMPFzZR~zhYl^e&!trGzi}B?4x~R>4f5W?FT8lPg3LQ8c1>Bz$M4P`B z9f=>jMONEh&P^wB%UIFB+>g5aFqSZ6gGq&Wi5zB^iF~*`%oud#E1j$v+1H@V%r+&r zt)3vZ^jHhFJcBMRu9VJSyF2PJ?f~msJ76PZ@)uS@?BE^61pLWL2rXp`Bpe|Y;M3_Z zBw2vaX|&{h{GEDWafFt%_-4!eTdN~sAaLeyN^t>O?#Cd03t$0k1+L_`XQ9JBi#{v% z+Ez6P`#P}Iw*H$IO;~6tmPYYE**rZ0S7`{YDna5#%3?zgKO7QoTI0_P@HTLihf{(I;EHD%g!r4 zIrediXG^;_uWf8XVu*@e=!I-gAmkFxC9V_Ix%C;A;*aR)Lt$i}Ytsr}baG(qHcK=- z4W-oJDwA5?!`#wrnk?9TGn>Ujh4gArp$}NCB3GIjo`6|)Pbis|@=|DAH^t;IRT+;# zB_)1%<4r-g!%4y{7w?wkzUPQ4?wj4sX|DG&7)YNqfK*9ZOwvB8RA$b0^(gA_&+zb( zf8-$a>4NM-IfXCSPZ5l`=rdtmKCd61x<+K_7!o5$QzoDMs>q#*vNI&F%tyc&iSEH~$Cogz&>7~UM zZvFKf!Lm)^{eAC|NPWH|4#kG-;eTmXHJ!UV3n95W8sGXy4pPTiXFj%-sgBiwlMju0V)-WWQ6py3 z*+s$2hKK?`QuD8CBTHA@bDbWr-%dTl9=f6Kxog&^-r%m)Eul2yb*?$t*>o45f944F zJZnF2{7e~^OE5vMvuaa=!ZI+6iImMsRuf`~fa*CI*o=z0$(NRtZum*z*>^rYCMxdQ z9xGLewHVz{T+E^ZM&SLK57`xSG+mT5>Tkcbkdek|rvF7re9!+UKlA^8Wc#1*kM}?R zI_C>CF~2n{|4ESn$p-?s->U5Bxm$eyO#B}nNB4i?0to`ZkH%jEWYPA%XeaRB5I;Ex zhXU}U@%I7Q7r&%m@Q=s;ZB8!rzYzadAp7Q*`2UmJ|0?mu#XbtgSJZ?!8@n(f48%|- z$a;%u6^Ld0+HXsM~8D<)BG6em+J!%L_+&Ol@GfyTb8y?V8ifCwO#adSF6px4W)1 z;wVJSmoiE*%BP&2DqETCZ87uBdcLbZU-U*_-{TRgNK}CBVa9Z%qN<~l=GBNAdNR&z zhQdDkPYyzH=W-c}`nambN|-Zq_Uzg=d!}mjRCRL)-v| zH(#o?`gj;F)5TFR@!Fu+Q%JQM+u8_R#^eSQ2&?drPM_%sw>QqEmJV>PIY~rVUc0rW zxT>Q-u_r3f;{478IBg>EfAL$Q$Jv%$rAp7F}9a?GU znOEyYJ+NFVqIu%Y0@6#b!#nS5Y9g>2bjAl3hI{V8X6%F?b4Ry>-zqOaETx z?G9lWhsd6u^|FoW`MTbBnRi3Ol;WFVGpz|2_lL*cRJ@5JfIclLE2(_dHZa;jcGIq- z%jShbQe~b3oagBUW~2+e3fKQ*p94wN01tj&i2}}(pt@!bzGkg%=|y@rlwzf2Qf9SD zNouv`euU3%RkItc16Lj4A1q}~PnPE=!FQ%kynSji+mbw-BB`$`SA9c7wD-^m4*Ul0$Dt{>c;Gf%S9>uqhAw!~>=_2<{V?;@V{Zzw4i;pgjE9e*M{g{WrE>ck=>HAVoZNJpT058#(Sb6NVi%oUm5Q9|n&q zSt{VPeKx(eEU@69(F8G!`qWr&P;6b>iR&&}j8K|9%3WA;tWB0)wsQY0rqLk%{`drP zF;vq@akCT278WQ$B;qsMn>(YMK%p%k0<*(C1HFc15fR-l$-8m|LKD8}k2>rUVuD9~ znzkl(&Z-rO?euM5*gBnwxb7KVy}=kNEnG}^hcLeZI-MR=KV_rN){rh?k~2|Rvb{Fi z+jVq^6+Z8NJ#sp~=<#~+RQ4=2kA;Z`4{CILrK-5^i0vrBT@K+kJNbM~^3saarnA8G z_Vwz5Z4T#G#cA2RlzTqzRsJq>Z&ybM%=5gEX0s;{0{7c+*~l55a}zgQ636Q#e6exo zXML%8;QZShqa>O`hD(Ry&-Ky%jPlWYb5=wOs4b~%>X-U+IUVc3&8UJLxM;}L( zx7v%qof%wHVD&}awf2H0Ul)w^TQ8h?y$(~FPYXF-a=A@{v1ivrjh)v`t2<5a>oDn$ zKr-HeuZ0ZyF?hpfdzqf|H3addx@8fxVLx!`Fi$G|AgXweWM6%Kd?RB6an>QYQ3=13 zTOC^_mG%P6dS%~U(i16mco|u}YmV%snZQ8cSkmJ-q}gSemls4_jX2FB5)ewWj#E)8 zD*9ju513ZT#|1h+lZ6#i8sH$G4-OM2Z6|u^zSn~X}QH|D5Kj?0P5d!pR!(We| z@PhNvZKB_fB%tMtfaFE6>dhnYht{^=^TFGt#@6Wr6t85=UExSp?fojhW0_#^wJ$!fbYjC)Ek8Oy9H2$Ey^h?x_J?^@+` zu1a2=B>^S3-J*)4$=B`VyC2MC>qZ}9XuCIUZhY8}<9T8oMITtjcf-N>@DbPOYW^s! zJWM=3Z>yOnN~B?^hV}KRqM~COs(C*U;oEQrYJkDogAy$nprh|XSu^SkuQ0C*J=q}1 zW7=vX)ga+s&Z5I5n^5ADhOTUm;pG?U39d%-+&pGp$SWUhUzx10n<2%%EabS+zkOUi zMenh4%!>e;$l4;MBml-^dg%2m0+u)W@@DAzx;%Gqpu}cf^CfRo<%K5PXY*>Z96^Zm zknIq+Ss}lW_=@C-F)(!;M`@Q@EyOWMNKC6~ot%qOdy2hc)aq#TZu?p3DmPMSmZQPT ztKzD!tWt7DdlQG98}$%8PbF+-$U!?*N_b&%b=e5cJdsKzUouFX@@$zrxaAo~6rIKl zQNV*1_dZXl`YH)zWQKWcosM#Dp7ndBbQg^aBDL+x5^vhyQ)w76`5GEtQr{dko$Gw_ zArOZnU!jF+RDIYhyd#0BFIsN%Ff3-3vx*UUIIDtUjHjdWOQ>6c_P+0Q%8XRCI<*u+ zv(+$S@5X4rFkEFGA$b>K%+H=LLyFkuZO%B{M5gX0$aWuu!rrtJvJ-{i+}_UkWKq9C zvYK1GT5kV$%#HqwR{XxI1iH3J_#1tv26Ub2w=rY8zZyGz0Hn?XG7T>zL*d``pVa?R z{U`Lt`=2lc&QGdMu zkr_ls1NhPS&w~N`@9U3={_*&~teIv+406HuN z;4=c40L%au04snEa2dc3-~ey}xB%P$9sn05gC&zye?ifCA9r!GLcCum(H^*Z^z+ zb^v>T1HcjB1aJnp09*lX0C#`~03A*e@SgyF&fojro4@zZ=KmL1uUFEij_c`+BVUc` z>D2Xhp02tSV;m%;*S4DWDAVusOJ|5_7%8o4o`eFyb9UY3f~BYzqhq3{ueEd4#60%g z{j9XMQ9`>i3p1N8@%Lm-aW$)@m0!*xi(SjGoM0^N3tu-5f7XoC{K)V$jM?#pE?2|( zh(#krqwVJp;{Q*Z8wWp&3tYLf9@VY+JSO%Q!%thFz1#t4Q4~shsMR zr9MYT$5!Qz6tv|Rry4oX43JxpL?~0n8{-P%&ns%;wFL|3evP?#MlHIoxQYYW2sgWv zAJI`5t=1QN`3hLCz;ql^J2cBU6vQ!{J1HHnhr z`3KJ)@SmUmK%lrT`e;jrwD4mkxA^&Z1`#MsXVRl$2!R-K6^+S*QEyI+6jdDxRmUvT zVI%hZDm4+U(=uWH4slX<4r$lE9$tOh(jeLpW1k#aN<-KJY}tZ?p3YLNS@*~1Qce&a zeEq%s-;EeLGuZ8gIa$mef6RA;P%@{z1^Z!{5P-dW}& zx2WA$nycE`8_RrhH7>_>Xuo=#o+n`(aucEP;cIpk{y>1?3-=YmV})FD710yOy9`e$ zRJfXb$((}MXf-PEg(QbXIn4>goQ|s(C1YCqC@RdujJ74dofwmfsFxi%`(juxgcT*o z>VE=R98p10StOvMbv)^j-bPu-8Wo&z9Rmy31Fblv)o2c4)6q7feeYQ(gDRWg^{KZ; zr*}3UowoX1OkzwN3LUQL?Of`z4Y8leJ^Gq<0-?OW@D{$T5qZ_at66Jn5^1hNcmnAx zOh5|uO6_xp{nhsh6~RN#dsP-Y^pP&~qr>SaFij45>I5BY5de`pt}+-;^R^0;JL4O)ri&*HLuEWb#9=bUJ#awDy>gQ37` z%J5gK zYaenmGUJD&mbQ$yCKEb}1k)OyOFX>lAYZ-xY@iZqfaIDX3>b8ZeI+SLMGz{)vHh{< z1oDxgRCtwJkHwm|yudmfcj{<-hz94fOh+;I<&mw}?Y;Q4&PcYhHS=RR%tQ4RuTf7j zHvc14Sng*CMijU0RT~2(=Zd=UC9p&UVr$KYMd0n*+4#4b&DEsGRID{QjBB135uC?D z`Ht2i@_Is?YO{DjxVK*xT*RAhAXy*wePX8{p6S`9&s_Scyu1pTd236)M~M~1_`z>N zm-Sc|WALh<<@?rU%do;h1Lvi;@7crO4#Yk8!m{qjIMiMl48GCH>W6*CbNx&mW=Uz@ z`-O|6VqY+g9#HK=cRjn-+({8znq4gA*5@s|zH*5T=Z zXI1)~#B^N>1`UtZceRArOvZ91x?T6WHu)5}Kg}lbm2_9V+hW_|K#az@ryPEryyNmJ z-h`Y$t>K_{fLf9pu5$DgyqrDMv3*+{)c0T$yl~C$dzNadcQfgCHt7%UE2{SBzeK&Z zNSEYAIMd$FAd`aQ3{;*#?jZ}N^Dxb~mUN;@OpLNvQZovpUN)WXepVUY^>Hc^FE{&K z!*#51z2m4M#9)yBk<2>~7l+PZza$w_#GvZUojw#}q9u93dE?UZUc)E_YzSV#W!5KH zLc3acm<@gPDQkz#>0jrXvUCJJ68Njay?i7uBd2GfQUS3f#X46}I^$b3^-%NUM>&Ue z4@t3DaZ=tAKv*htc}DmTYHN=f`zoESwjHPnKaR#^za7=p$-hpb@BTPo4&(Kcx%tu^ z(jk=7Q3Ch2uSl>YInqr*e4FgU2vB}vq$y-sHi55QUZ_+Fl|&eCQd0WvKPNF4CW=5v zh)XpXjHG{dt@Ff#XM-h=F6^zIor1oo@te8KhELLSNs2?(^}z+PCWh)etw`O=S+5lR zTtlubZ)C2SS*5ql3IyM`>5da+DO^h2KI?}dfO-W~i6bQaoE&z`+%Gw#Eycz~B`|Mt zr@o#btx3Lo(N9XGwc%V|$}s`T>jN@BZQLR@G7QBqAy!!8vO|d5c}1DI(4aAN15>NS)iqBE*FV61yS6y`H?3XZm4|=#GE32@IF*RWttr|u7q1Z+R!MBr!3_I{{ zH)1ZZK2c%i*wsSn=AsPx2WK4CbF#jQpCLc=LE8PN#r>E{-6dC7<%YB zf#kh9fozxhh9vVSc;32LDm)>Kc=SA^IisdlGO1;toDiwF{?SvuY*%Xbeq~5WgFY|) z4$-$I4J{jE^dj?-Z&`SVsEBQDr|h0Uh=uQ6QhQ4idDOqp=yiM{EBpk)IlXh3j)IEF zylkv}h_VnDj!6xXURFA+&ezG7vM6)6j#Vz5WPD)Kq42pmQ}^o@+woYNCaTK#==O7` zd7&LzJ%!LP@qLq$SyZ<-ob07ADwlEie($wwFh>sB+1yP0*#%A#=inCuT#Y z_C>+MfLob0HImn>7Zd{rGB$TzB2}p+#o%T~UY#e96iw1WU#~T1uY-M+6NplvKnPg! ziXZj5HEncOg~Dq{n&*h2IHR&9!*d8x0&dRgCGz8N-Mf2-eY2B?FfRlMLeWf_V&aul zEqybYM2kdAPF1wW%R+Ub0mP;kgBXID!Urt}iPLbbV-wOGLiYmV=g)5Qw=n0jw3r^RZ}(G}4f;r0b} zJLpBn2+zuH-2qj3=aS>6hZ`u|f)mK>w%1>L-TAU3VSR+zcLMohcLHJbg5Egxlskc( zGFVWq>@Mw-8jj~Wfh0;Ef?ca85abd4f7x-j;RMokRRu*ZwMk!;2ufVW6Nop@7R#9V zgeCoICmA@J-~o0ydZ9eS{`z~ytk+k%^kdwFeXKulF761(H3{I={v5p@VI|luQ~-vr zu)GGr6(7ji+&XSUSRb9+n?#bEoj@9wPau9MffGR;&rXRv_|Om+c?YwEUU$Sfw6^|Wu(sV!vGh)>!O6nVl*a*6INoBVX zOqM0wzM|7ph72?#?St11Mn9X74V>tdsf_1ZR{TH^&?5if`j=(w6|LPlP-u9}ybzC5 zBRpa(N=NFzEhb3IJdSlwAePI1<=}97XNO#xSE}drXLaJFd{Ge^86wGEZJqg9%8G*9 z6_y-uZhd#%9{ViKvOX&-!8bP>4s(>`DvJF0uTiIjt7|en;dfyoNCDYr+E}+3yRcu2 z2s~txwPV8SgYx}?-2#NkK-N?H$6W}R8>tsLFM<&~XLfO5etGODbSb#|<38*K17k3qzk~Zcyg(~K_b6AWqHNyD zaGHl*G^QD++T!VySvpff-C&PvIQ_8G6%{(Ags#CpRmG~a>i6R_c04|*NG925WjdCO znciPUd=;lMFqqWQ8kVCXk98Qyc#9EHQFc*-4H=CI@odgqv${@4TP;Rcy}Z)lWkE>N zNng8EDFrhgBx*N<**G|}V#BV-xL3alORx#?#|lj=ITmuRsF$RG-_DWp;e_oN5X*Ky zzrxYTfs4uS-#qceP$Ybdz&G#4Y%5vPQg`q^tmVyuW52`TP5W|w)rGkVr=rSGreI))0$zrb%Y#*P2$IKGu^#-Bhf*4`byjzAV`jN`gSU)xg~>5X87lLRY45`OUq{ST zQxv-{EDw2~KwfY(yVD+OAy;Y)D20@*>#I%$ZPhy-Xbx>W^wri{n<|(jsfd(+HTU>2 zlh~N^*(xMb2H|!M**R_Q&`EfIe|MvTW4@`vhA|zH6!9`-q*|pmdz7QLL9y_afmU-- z?zqb9h%YmiqUF#Sd+6Oo9?+=x!Xrs(PIVleNo!Z<`YyjLba7QDVx$#jlke+doBl#X zc4(wE{Dpj;jh^t}O;8RCwo*HDu0GmGEAbf_xkREW8>NZ!K0s6*G{2`HXIvARAfkEv zebiDHP~1|>mw|3fi57z2R}Ze6S$U8eka4+4gSz;*&nbBG}hc%FQESj%kg{#yPl8+mRJadpDTso$Fu2xO<+~aDW6aSU_rEl7aGSnox4sB3O zW^V`6FG<1kQHmHVnV==QM4O}fyslWE9$tX^Jm6B~j^6!uvDZ?SlGuo%;N8N^#2e`8)6`-yU*uTl4lVy;%CoglWQI9w!Ao!5a z-&rgMP#q%{lm!+`W<=}hu)}XNp zk8svGfgGybtn{&FSZRJqdq_EJ9VMedVQkp6wiJZQhl90QieR!EcM*i4Rm9FKI*7^< ziB_}sBj(Y3DLUmoN&7Yp`C0f+FQl^#H}6djt<d1v>LQ@=Z_;}CHIQ+&Xm^c587gzJW2PPyp0w*ZwcSy=XB}^$6-sz`LLC1^C zN?Foz=OXk&;lNpkC!Nd-tT0ja#g({mZ34lx!$NC=cq;Yu_?Rb<>q>b?Ol5iP`NRIZ zVSOvoG=)cnE>`Pn?ZnF;kQRphTFT>_SB}~kM3IRzgeq%L>mw#m6qf8-AZ=#zh{soA zC;dIgGbTta7RXC3mu8-!y!Qg5#{2Wy?Lk2)A`40Jz8wy(voO=1^=0ZhH|T4|(PD~Z zwh5yQ{MUg~M9*jzFT%pek?+mu39a{6K(Wmsb$mr{7$!fpGBd#P>S*~TbkFXkMM66OM#MS^k6Wd1D|xbSWG=;%A98J)F+c z!PW%4N2~6v(}Y2eWU5CIDj$(Cnc6kMbE_dlq?()x7thc{L>L&+Q#fab?X#Bq)9+kB z*C2~FI~$~i?>0(a9mq3*yO$5vjuWd^dg!Y50=^U$63}r7ZX4=0etJ4_4bOT(qTIzrDU1QM(g9UB!%8sGzSO=#Eg$SEgRI z89R#CR(VlQrBR&Ueli4Si>8H!IO8%5m-Jb7<7i7tTr17w^(NBh2^sN46Zso zXR@aKY*Gaqbv$px2(@bNIODN)n`3&Jg68HW@kmzDX699n_1@y`9+b)jvD=2?edF@= zOaoOt30?@gdPM7ta*4OKa$+f&YgBrYmdDElX>a1z_=o#=E-l64G^S&dy;!>PyU2ydedfqD{A+8`Y=k&z>>THt#0DZ*PnOH8&SVo3Q&7 zo|3XwX4vR*=>#&ff~k*ePhZ|mFzII2-l4P&uQLv=ObN#Bmz`0%z~`NCyJ(vnbum`z z=sYd!@sWiWN?mgFODrt1Pegd~l;Egazrpmw~_hA27|~TdrM2pmi*SEi`(ob?9P;o z@0PS9iaj}ycE>f*UI$8cdL;Ush+BM_thE)}>eSL9ifxdqdJ1jZ}I#=fvj!CNV0h$=1&zoNTFp|L26wTcK2F~~54+ozk~^L0uWO^MKiwOqEB z$Q1D}$UOIq8IS?*mO{+&kfpd#?U<-XfL{QUi&pTGa}cYoOEe`x;rIYeGvYaX@* zj|X#mV3bnKbn!>wTd|d~IQPDPb(7Cppjg1Ssgc$$h+_p|Kdqd4 z`q=S^K%DxPiQex1M5ECp&^yUUaelrUpUnl4L zFavJv*yU^4a|zK2z4096Q%?1hcx@5}X7*k)CY-W2ppT8T*4Gl{SdFfnmU7vueE;P% zBEsM*jVX&uMNM%eSGj>z*r#I|C8B5v9)|2sMQhL%FBN4E`%Q^ho}go~t}4M5eYUR3 ztJYHW%GVQA`UJ;SZie>o(X=LidE|f0!u-l5!L*i={_M=%{A(;hJ6AqAeR1umPP=ce zPua8m$rR>vgLo1QrkE9OHVC=#gvU;3+E%g}M9%aHbJ6lRXTUVlm={3AA?-}Mjlr~dg}_UmGQ-2M=Q7F1s80Kly5 zhwLu}fZdtXFZPFM+m=7#(DT31@zVbb@ymet1Ad90@4qSji~mCWx*&eEy)oMH|2M^d z354~d_x}-y|Hd!z|Fr-4{q{fqwEX$+s=p@qBoJ+{v@Lr^^FVoUVVIndANJZX0A5pM175uO^|uAmoz2&IbgmxBFeUcPd_&N_rmc zC||y?*&BXgLbO7y-RGQEG0z#TreKXA4$A2dMW&helF52i)cY;tkLaq(<6#n9>_R5` zFAGNsEC&lFH?Fe$OV!^4boI9Z?(?ki&(+^w=TEtV{Pc7F=+F71|Hk>Fhg88Y#rSLOUgyN0uFrxjyvUue?#=?^s&D(6M=p%@8?TUHPCRkDsq$ z3Ipdl!3l(y5vx5f4e9mHIbC{?rxJGLYmv?sQwrZ%Ef%=ndiA9Yp4vIzjmw9AwWs%e zJ3qXSy>4(Rqz&P0*{h~3qu4sGpj!@u?&s{3D=ji}c6>5ZIj7LlZeWsbKM~gJS?qC@ zz790BkG-coZs;hVMa&erRot=K&SQ`&`hxYgOTK0)mW5+E9r=M^0FoDR%<}b^OBsmXRFVr7h!y zg$63ZZI4TX?R=fzD-s;o$uumt-iy`IU;H|d4>y?J3n;o0qNEOIeO7c;cDkh9$t8KT zl`|*UB<{t_$5?muaS^!Ftbv7ba%x3zR-c`#gtucIqnqF{-LOXsHBaT*o41Hs*v5!R zZLuaKe1fLhcm=oE6+>Jk?`qUi3pa-J}ex=(M;JO+r`}KBmTg6lP?wwsf=8irT0To=6$8&>aC1z8+3{{tl8J-7V7iX z9*XC;L)wkxdzn>-c@hq!AmZaVVEuH$5v$QG%%PhjB(|fJuP-$$cFdf`W}0QG)OyGl zCS-3Moj;mxUA4C~v}Y1E%B7V`-u`K)D9^g|09OZD;FgR_Nkq10+P8g39tvYw?wl{H zd^YsKg@C`xarMEXmFO}K0(PU}m>O|rA_SUjK^E)Lh+?9mE{xjJDq|ONlL*#rTMM4r z5{Rq|MtP#`ZH)zL93LRHbG^^bR+><&lan&W`x(gI~HIT!}c*Ho5$&8ZvS~NHI zl6OQ?1GEmzwnzx3BZY@nCz?Ci6+mB(>qk**wv+_srr>ncp~@~EAeOYMAyrq9BI;#` z_^7S3{kLRgi%R*jouayuqlP-Z5Qs=Rky40B7!NY>?pL(Y3z6?Y^-<-z(23DWCC9&YwU)Z}YHGQ#bJf$SIzF9SEc<$kZ*&{Qo@KABkVOjJ%9S6q7 zx>fSkM)g%n0v~Im%5b_0GIs0l< zp9kh_3|mS)i`_0Ch=#W|I*r8mO+8z@GhqK@V0l>`Rm}p%LYS=P(4CZ41-I^5xDhzD zj%=XX;&FWcUwd}}R#nzL4E!RglprM%Qi`O4l%QCEh=O#3f*_3|DJ2LfNGJ?l($do1 zB`sZ&A|-Jz-G1xN==;w6|KB|C#QV&A^L(7gp9l4LHt1oUz1P`i?daUk8znQ=vJQeM zpT(S*7rTci?3r&H-ztupR_rr1yXQe=J{Bd;zCKHI^?LtcLJ3i>tk^@vbhiAd3o+P) zfAqaCbSLNAwy~G@zxz78zv%0rb7bf$g9w!FIJyt@@2Vf)5CTF$7zhUuAQD7@Xz&Ka0QBF_g?&6o0Er+8yamZ11*C#BkPb3HCU^(3 zKsLw$==1c#J|7f-LQn*XK?x`YWuP2XfJ#sWszD8?1$CevpwIOl_KlzkG=mn<3fe$B z_y9UUC+Gs*pa-D;ZXfKo!2lQpL*OGA1|wh;jDc}50X~6A@EJ^jX@EY@EbQmN7cdVN zz#>=zNPq&%Um&UuzMNx5vQ7_;LIGt%Gq06AK#$7w_;9d^jNQC}j9CF%My3Vq;^$ zMT_AGe~!Q+!6s!mcLnFz!SmO@?fL7fwx?)bL!GF*b}mJn@r2ucTUR>QiTPqd*>y>i z{_zvGn(alGFPXEbGZ|p`mj|FI7t)b^HKPQarFRFT2la}v89H?I1oZD>ur^1q9zX6} zd9Fx|wNRYx!crjB(sc{|EL{Jhsw!MpXPYjl z@oTJWa*vkpeCgiZ&k!aLo|wDiE^S+8wl-N|Z@rK|@_c5a66RLl-Fs82t%oAks0gkc zB|gcLyKtzNZ!|gilcjsrsY}s9Ric$-wB5=dpn6%U&G?e17GamjwQ>7?^IY{p7xxLO z0bc@>it6SM$unZ)TNxK}(pC2t+k^|!B3^_?nwf2*6G+pDK z`$#L=oDm+?N^)^HyB92Sd*{NgmdDC?TWK&oL0+i(j&4nHsduO9tN65cg7oLGu%~gc za5y)9i1k99Qz5Iy)fhaN3u}g`!Agb^xG--$}5YY!ty zJ}kQ+tpoZnU0z2sp@LtoX%D7ObUWc9dnWU>NV}*s=BVB1m)mGwv9!zZUp-PwJgnL7 zYD+goexph8hLomt9RlB5DIa}+2{hQqzD4PY$Pu9<>J!>c2Dv& zb3h~fh%H13hDck-5UFrdcrCS-FD1MDzIpblc5l-_4Y4%eXH`zsxm8&)+v$71B_8PgSlPk^ z>a_lH{U>JV4WMhPBfPvL++f6`0C{Cygz+y%Md%Fh_xN!Nx&{Z&-wvL?{e{op_E`E@ zx<2)-omumd))c;-o0aE$F7G%egHM!dcM#hg&y6eX?^2YgGhO+N3l}&2 zdb0RSR5Fh%=}03^&k(Aia8k}|s%w_)cV%@n8LkVKb_Y0+Oc}eZ5c6Crs@!_cY&By? zji==bGsI^Fv0^gCIOwICfN;m|es9sIqF0LobA*mOIinTY{qmPjv zXSdQ$y?0=BqYOoSkby+&zqiP<`Bu zIlj-gxiqd#Vyk;6+nLr@S-!}|?;x=|EzEqeG@{;9fM}kou?(9Ztc8#b?RdG842{w@g;q<2bB8(9)??B4SBa z#B0YN1+~jViD@ETA%)C#&cTX_wlo@rGs|_V+{-@|okqu%ZyUOH9pa;?IXcGNfu~It z@bt<8aqoXU#X{FprA8mihfG6fV6MWkwh+6%#~<{1z6bH=ApZP?@n`$fdeB~sRjRP5 zOtm(l<*<}i@3=O%TzSVrLLt8$N4Z*v3)_IQ+?eZ;YzCt2ixsWhX%6C@y8<{dsm9Jn z7xXAnFIE=ztO*VfwYC;re}?tA5_487+A-PT+NNa67bkq=EYh?mKT<^Ji(IgDRGWI^ zWPyj$>o{K}u?exusqTtm3JPM1bQe+DwNN#J&d)08OPKF#^1Nmao>TrT+^p7kcY_QunrpS!vjFHt&N z+4LD3J!V*-wB1`aQD%Q9)N~A)5tDk`p1hhS=s8cxi^)o^2XYjgp~7*hBGrYW12jfS z>nX@XbA8-aEX7*t)h*J8xS}8OwxjqlbU*H3h}o+uQv1L8yb!g=xt+A$^4qiD%n0+e^&!FETZvv`I zH=?5DdN?!at9bHCc^h~o_L6muyS_7V&TKGZ&G5Y6FDWf=IC8rn)8=v1@eIZY1twz_ z(-L|eheMkfNxSr2@fD@Z+`HP&RO&;UF3aP$o~_&RV34?Ca9lQ|!nupM?j7s3ZrJ6{ z%6dhWsX5}aob+QGlmFC*`W}C>|KRvZ;J=W6g!Ix^^h%lNJvv1Gr>y~UPvzh8uY&)j z_R(#lxBt{O`p^5J{V(6z7y2)?52>`@{PoX3`?7GqKyPPZ1)@K*LH_%9=bv|=eY$V$ zALRcGjUHQCS=-p!J$dHl?(zJErNpF)=vU7fQmcaPG%EY0T zS60{7H#WDn(Rob_D5?5=`{_UUf8;euAg_4{>z}-S3QK2h0_vvb=;-j=iSnVx<}^wL zE9%UKWbH>M1T+G2m?PFQ>>C>O#>-n;#ju0ce=?IWPp5r^Jbn2RH_4s)40ZTk$ z)Ug4JSH0MSluELShvfWxoM;WSkH+S_)F>#5{+& z+N=_PuaeS-fdO^#cU7ilE=*p02sSof^2<<<79lIfo}d0OyR4Z^R*WGUVmljp?O{Er z&xo$-`16@of^f~C*YrZ%K3aSoS%)G2<8k+31dLwW_yHU*4?R`%8pFS=>4=WQ=vu^x z-iBawpH?15*61};etCBEDk$h#`v~Fh_m9y(c>g$v9|!Rxzo4+FxVomcuD;=YV^e2W zcTaC$|G?nC0^`5q;vj+m69XRpV3Ht25j)!J)qC+GGCN$GNBZh7h}PJk_Maasp6jej zb@a^r+=LgA`TC5dP7D6SV@A`$g~8(+^)m1VI@vBm;%0OW9nmIwkqx)2DqQzaYqMB% zZ~W%Xs4P#eWUVGUw3w!brqGx$z7%LkKk;u_c+;yWK zv*Yw`Phd`~dw1SqvG%?5g8;qog&Bcwjl3*%BJ@a|kWYox%ab2qn5eJ zuD(j;Nq(HOFh6#N`KW-UAa@lnl=k9STOw8KAMLM79(vDcp8ZkXvtz)NPyE{Fkk16y zu$eZ@-%}}x&3@8KxIBFrJt}3uPdIv zz~Da!)lZG5^L}`r_*o^!C-4RS8C)8NPZ!1PG?y00$AHXkT`h(HTkvmA`S|7>=SfX8` zW+08Pgiv~IO$us`4{n*=KT^!`VaXaVltZ_X;WD;6nXHO(9E~Waph@stTMLbyVcyj5 ze+2lJR}6YLSD}}3A9^+Db&P)A3qsE~N55H!z^h38dDiV3tX^b}cnrsXk6)w*@#_!8 zFANyC9s-yE3t$5rfD7=zVQ>WC1N1x+9@rBBVsI3Y08(%akO6W)0Vn|#I1Z@62|xpA z0Ue+R=<_kao)ItsX21eYfzyB$oB?cr9dH0nzy-L$S#S=Z&m#`|^MDWV0|6iigun$L z3`D?1a0!Tl%is#Q3a)|cKn$SI=M4KBKoZ;pQs5T24Wxk#xC3N?9FPYJKoKYbWuOAk z=Td{cI?w=`KnrMtyWk$s0lMHm&;$D50WbiDzz7%v^tnu7ZwAc4L+}V#fXBcRSOIHb z18jjEcmnK!18@XR0DZ2fus@jp|EnYW|I~loBi(dCVa&%Db*$P4x~`wRG@5Lxta(xO z8up#a)Q>!`6!F-+swFXS1gEw#ujiJbg3`8EwN9g~1IJ2KRZ^3@@^}X0pT3gg?87x- zd-7gL=d2q-EgTh4wNKx>e|~fEi+soV;j3d>L)?)zhBTSEhUcMG`T(cF6ue;iCz71vodYoK5NnVM_Ql-z? zc;0slI_bm~&pz8_9u?Rt{1`ne<|r;B+f%*LY&|eG^-2LnlQr*mXR`~LGjS>hb-GTu znAqKn@1nq+LRSN>*s@$770!5)vqQ{HHH0UK#B5>KkY2RUh3Sygu?B^^60Iq!&ZuqH z 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Traspasos/28x28/Swap.png b/Resources/Iconos/Traspasos/28x28/Swap.png new file mode 100644 index 0000000000000000000000000000000000000000..2e23a78da239f1b72cb4c3b383ab3fa609ece00f GIT binary patch literal 586 zcmV-Q0=4~#P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpz)3_wRCwC#mcL5^VI0Pv*912qoT8)%m)xWvB*;+P z`Ue`sKqOBr4L@3&t+O0vMY;#H-B9M|0w4po8AH%oB6Fv3r^$H>AfrI1T z&ppq3-22?UjEFEvnE@alwfg|v=&*hs#uf_8P)3; zo6)O9SMODz)#^9;RL!1;;R$RuMI;_JG+`b_PmG9=kJ^3dl6I**^YHU9|Hc0={@*XY zX`s|I;s`y1#I>Ebkme7S~-^o2_C6;-*7+Vk50t1wl$4cp=j+@1R=Cot|n$_b3QMB3W% z0>IE9MM{{$8G6FrQ1|*0vYEnACKyh3&lS$_J5(=u^$O%+Oh*1`T0wdooAl1xgbC|= Y0QQeYt(hT9rvLx|07*qoM6N<$f@G)uxc~qF literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Traspasos/28x28/Thumbs.db b/Resources/Iconos/Traspasos/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..972a0818dd2ce88a0f0e4149ff465a05d424b1b7 GIT binary patch literal 10240 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 UaP~O{PB)~SHiY_K{l6~%KTO2c4*&oF literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/Thumbs.db b/Resources/Iconos/Usuarios/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..a4ab3cef5192c68594aabfdf696a680d1bae07f6 GIT binary patch literal 49152 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⋘rA=xl{z?G|qXSSM0yNUEHedbx+A1TD> z;?||*A&Y%r@7lQQ`0jh*Weh=&@Oya~i~Pq)oRcTE_WBD>U3Xa>XiiZ~+R{fqSo0!? z!NfMi;*(BbmbJZ5!b|xZy444sml5wEtUmKvsL>)n`^-sBmcnSxt0^?Z)kDL$VvFfv z3z0`l4(KT*RWv7S;I|8fZeP7KujH#O5yF!&&5zBAL!7t&$s8r zUV$oMSB;nzK1PD*e$R3_H~6Ku5p;zHWEb_T&xob-Ol-UB>^9lZbIG*05L>j&m4?j*v8I(h~0Sy_4p*;EXPqNiO?p4EQ42;GQHKMMYyjHx8_D` zC*6*g)_TU~=u=o1W1^S%PVQB{cO-*%d#d|E{(!)^6o5Kj;?^HdV4dn_fKI2Cw?{XURfI7|j0&ToRP$J*;#N5)%u}fr<;n5~WCL4o zij<|t6kZJfzdrxq&vgjRW!ZJ zc?g912e2h(TFV-5=LHTEbt`vgjqaNyy7^RODt18Zm~FoS0qIhJ(mEcs62x}$MN+PK54lbSD~?|!UdipZ^DIC<;?`MYCk^r5w9QMAy^TknN{lk}c zN;fjxCq5N&HadubyixS=yq@l9I&}wUHk`T)ws1v71?RXbkM&-m-A{^R`Wl~^93yKJ zM$#=G&5HB{leMW;w^lyVC%LXFIQynjEfWW7jS?eXf=SWE2KEcL z?tMX}Z7X==d1P>#P+ewvOonZ6saf&Sv33coIudE6ZP-&YBsBkr`$I$MsQvBljJ=MtRIHWv+@Y&SfBRW-h-?_UoUr8%2MU^ftZ!J4 z+RkKW2FzC3)XDNxzg}h3O5e*UbU@s^h&02~G`^!od~cU|4`nfjx$tu*FZtW)f}y0N zhi0`D?$=ogJTN`b6tmK^m-bjVFZ9JQhkM+3_qR6l8t zLVbzP+G$H~Ud&Vgr7W@i1zy=k38S1;3F;MIC^Um{?&vjV2abf%Q&Vf(*~rGAC}?NB zeHfNWPt`oP#=eN#%b1^2vKH3aR$a+NCgHcj`t*f#O~y;Z1FzMRSjB>f7grD1%d*@dV@Zh=~ z!CIjGjq+aRwmjpe?KnYAdTHwFoh)yaM*F;|#H#Df(j6QE)bmj?(>HB0Q>D+Zbbg(-wjliI)SPJ7;L2I?5ns(ng zG17YYq;yR2F*b>PY<84=MoG`HE;dP>k&*yM8Ur_!6X$MMKynFCfn zV?xIhF=iDGGu0;3tf$|agbSZsK9rHfz^9D!S<8jdlWy6lkIMV8ld2R};K69yI?DK+ zU7hTuw28%(&#E$swIKx&ks>Cn%r~!;J+sx$y646cp}jgTY`OY)k%u<=+;cnK>73Rs zm3;Mg>}@DoP{1oh29<^1CoohN=It5;`wq9<*Gg)cr22pjn9fU zxB)(v%Nk0=sO+BLcm_MT{+*WjAGLKqbdU0WaKH6BSYOELooAa#>$Mo_Bt-!|Erq*a z#UGmumQ=;%dD9sLFSN#eNSTrGJ!xrVwnvkTt2f3&eFnWuzC^~=gznWOwfSI{q4w2n$6 zMT}zgaKbL$th||$*PmmZBDEie>z&aVKfjJD&z+{Ie&Z|d_ZHWH*C|Erc}t;c3R^B! zig4!;^KG?g`uA3BJCb9UNGpqlv#`$7vuhM2lKY1?mO?GRVaU{A~ z_Dh5~mh2Mq;I_16&THu>wIqu@q~*XVTdT99T*UD1m9}Cf0k0?5eG*fn2kgs*lcU=& zCbb`)I5i}8pkU&t4NjxWyk|$9QtXUKPV#B(58Ac|4XrQEG*Qo_ zG3+W%QKcn5DVlaM{9@}c+q;iXs<;?p8c2p{v@bu}m;11|Rl{n6iR1z!vpdy<^`$gC z+kFkal(_@suSIv)yNJc@YhRJTkiHUUf6+efCfCQ-tfC;*=j%84!6{uk_Cy3x;E`hi zGtxmA*-8^-icVXvUB2_Q62_%sW!B&dx)}!2yY5>FlnzZkQtB|$X<6HgwXI%Ky!P0< zc>naO--1KD`;d0sK!u7LtC8OLrDrpwF>=GAuW9CaHJ=^DYwc5AM{PX|?K9GlIuX~M zzPA<%bJtM}Olu#UrLeZ>eXB7N*=(y1iYeAnugst=;THyf9<)vPhAoh0SgkeAiq{XW zCcjyo?BQ`}aO@9gek-PhK5E-vYZ0}^oH4!VCA2N|TqaiM*^OR|e&}99jktx@2jTnf zg=?AC%dhPa2;N}QwTLi=Le!9rf5x}rA!;RH$Ml;?Wm22q4nlHOI$HH}%S0%f%k zy^#v4d6O5Xtf!d_<+rKu2e+yyeFn#0LoHz?YR@+9cWv!WCecnjxVdi1L?~ewI$mbX z49pFf7ArNU_iy(-ugk;4E!v;s;frl7k1ioA6y6btX7Y7h3VwFwDb8xDHMOLl1Y7U? z$*Io5kl6**JZIewH;LARkJ!eQCiWS33bgEK=Ig?rawNv8s5o!wvhTUzkS!jdjhCrF6t5ZNSNLeDAz8EO6Vb)Cn`u0RdF&{ zJ}=nC^1|ej`(y7QJ61}X!x0yh?o}nPZBJQ8y=FAkd-Xn+vM5#GU}Xo>O4uAvd6D#( z+O+;Xd%MgsTaK6_ZdURa6+!qKc_W zVB&~W(A~wTOuM55720{Bf<-FJ$L~nzWW9`?_&78~&|OSxMEFqnybizjYuxQ0hEauW z1#dXd_4_3Y*Qs!Qyo(N3QJkpVZzrKxR@T?2(|KyYNOsYuqDxDAVG~d}&$_2YC8aJx zyjixEB2z0cXH;M?o&2Ic`}A6b|MX&&3+XF)hr6_?D;9$4Gm4dpL&pVe!f6Og%NQ!w z{3H%yeU%unerQs^RQhUhM$C?vS5mcPOvIxPsyx)AprR#|^*t+xT1k$pDmfz7SQk9EV#Dblq!`uNkiMM-1Y2Br0q?W!$S=L>V< z*C;I4bTeMqS*F?@FGpQIPVge#OOvwU<*iKXHQjd|3#%XFSw|Q-wdAxXJjEoa>(k#< zVR@E0oYFk0%F#W6!Y)cT>~)Chbh=sOMU#9cjQwkDUT2(0y?65_4ew`H^xi5r`Az&Ru+ltsOv42o^wj}q${)?>nKcZX_Flfxdo$m^SsUkz9n5-!;ov9>z&(d z9~ggk>6b*F?lKW$XV|*GQ;4N|q+vfhTbE@eYsfvV9Bn86YE8KC#dj`r{M5)7GRp8@ z9yZrM{_y(8wzPvnDIMtM)Q8~;;*HY2Q_6ADSLi?Urtrkj-FlIGTv_eh z{4)~Og#e83^)+@Uqw>Qc*;Z*nHFMT1HQ6s7#C2Oup4WOxPkmV@eMV>tItV=SS>M^ylXv;p~R< zVg$Z-{?j7J8h@Eif;_{4|DWXQ`#(bVzd`iEI*{+yzZKTKp8Bev@86`K`A_Jl0{whn z_4EIm^zZo-`dLB$#{S31V-vOjxBwo2tQ*FMm;fLIwgKA#B7hhm0d@eS02x3IPyk4} zT@X_OyZ|*o1JD9=06o9}>;@PCc)kIO8Q24`07!Z^h}nU?00*!S*bf{4IDvxz7r+hh z07x2bi1`5lKoAfD4gtb|2p|d^295w?z)=86Cjs#>;5Z-&NC78+lYlfJ1IPk$z$ri; zK+-8dtOzIp%D@>w1yBXlfU|%)paEzCS^$zx2VzG+56}k;fOCK$a2_xMi~$qC6fgrW z0OkOa-U8xFfF)oBSOb@VD}W7P3)lhnfCGS}c>u99-~zY;Zh$-B0eAvefz9W4Y(Br^ z51vf&ulB$CzVi1NgMmEHXkyUdkOh3RyD(q^B{eXp@7dpbkXODwJJLV{SXnrvaL zIO}wLfKWF<1zj-A6mL-tp=PPS|$en^a6Ml?C21#Xj2Sdw}NY z)J{iQ3CBCe=`99Q^-qFB4)7(@?YI*%rR2KQGyI3mOQ_ZSt3ZJWd^49AnPqGEWriyk z>Nw0^HU7=)RY4Hm`F}}q66DR{2;a_lMdsxq^Xvb)mTx7I`LkaZ7NkBMK<2KVg_*l1 zFn9G^8DvH>vReYGKA2d4Y{P%BZ~BkFWc|y3@%o45_=TH=Z6~zP2H&et&$oYd%FJAN z_nSlg*V<8YZ1zu(8A(!SqRU-!33&u0t9k&*PCgUr%8CN-V-L<_XF>Z@arz`KblsR6|Y|n%} z$$dU*y3x^^S>AkxFIR?PlEJd(6JHSBXYI?6vz*lm1}}Cw^OROE+gxw1J4m$6hZlqwRxQoM{U*+vrmV59C0Qu8Hm8SEJ*P0b*InVX7?mpRtn_l{(rAz3 z@b9{okTo8^lu`WuP)Z^D+MqH^*i$F}M@rx~QU`yvKmN_~>u*_p3H+P-pO6(>(B<%5 z>o57B-vMbaApu!A^fO_j|Bn?8^1b@SLI1}7+d@CD|BGHkHxj-lFQ-Aj%GdlK`g#30 z$Z9O4PW!$3bwU66uloPS&ky}K_+R>kY)o~9j#ALV0@3}^Xnn%x0koFk%^y{_j%Auk zJG0V$*k+6?X4xQGld-%LTZg8_tfk%`bzywM1L&F zJfpjxUYPAvOvv)nXRNPu&09>*NgXU{==w0c*8S*EW~0#`)L%CD@7=7w{HNr zC;AUK(2ZUmLSwKv3s<|#!p3|?_NGoYo%(aJ#}84`8Tndd2}V)DH#pb?hb>*X8+x0|K0y9 z{de-{^y?l1V;%w+f{qFMmzUyBc)jaun)m#0l5C4ma9iUbE5q$C1J}MsOG1V)c|l@0 zu9of(om!OJxxxHi2D|a4RPS2!G$kB=#6n5Jd{E-@edEid_4;Yl+)unxR8n5o5BKfv0LV)8OR%Q=mwf^@>|cG;{{NQk zm%nlSb&+(ZM>7+-r^!?ZU2uHGP<(|x*}DPfXK52G+v60cqF<|AesBpj5ES~Vi^EBb(UUot0R1|Vd+g3{C z^i-#ljWJO^WtW~XxrI$gY!fHP4li89TxVo_ zn`VMZer2iHmwVivpKH-?;L^Q*5iLWGsjX#rlSKEr*49zHOLzAzi`X1I6)}MJj6+;Db*0`4D2aCpwS4sa>sk~u-yEpCcFR?%2e?$8dX?G%{ z8sFRgya?^j{a@RkBL61+9DhQ;6X@6fs$cZqq<_nw(C-WSH=cjaixPm8KOUg}<4^ZL zM1X$$ulfHk9{*T96Mn+?P`ET<0FeM+DaxL$Jy;9dqm6AxcN{F-@5mk2>&|^SZ)u!$ zr$KE3Q&y=`xBi{@G(ucF%z)=EF$oMmX`r@W`6_`{>(rbzb%JWWqiw#Sp%sI_N%x{M zO6!!Jdq&6r)6*5!J_Ui&k8~|_yBT}NJMDuc_uUdT`jEwhHf75&s$sj;R@51>|J;7* zbpE?TMIUSIEyeSic=j$c@ZC+Rsj6o$xwDR9{X;iug);kc^B^OS$R6ORlY6?58jl)` zVj7_=e$!iv>;{DFQ-&()qCjLMp|*7m?gcNv8@LYm0La`SKZtJt{y+c_2m}GaKnM^D z+yugaaNrhzq>F?&3Wx@712I4>a0j>x+yml(c;G&Oq6bW0$D&dkOSlbdB6+cC6Esk0EIviPz;m+NcwJwUjgMn1yBi80oA~3 zpa!S~>VP*uJaVt@1Ng4X>t(jj_1wr8zP7@|*k}Gg$LYbdd5)lU zRGmc_PUG$ODy%%$8Em@zhdcQU5)@ zX@7r7{rA7P{<91_0AD%In3JMtIUcKC{JvQid%j=u{KK~Q*KTV%pR=+qY8SH;8unnv zm}c}&QDHf>-ZJL~G%TxUzO@(9kqN;PXqD!`qdo72>bE!Nze^?kcaE zMRT5{t8l!?yPae#yw!KmvTU}1fO)aro+;~H_XI3&cjq7aJQ$f&P!irf*g)6%vB5IP zy)d1va&Y3a!=%LZkq-pkvXNJknCW>tdxbL5=S+C0)7KqMk=;4Dpe_CFOvi&@Wysnflve3W zq`jdG?F}24TWNzb{B@4yhW%~s|NYmDfAakW{SObJ?Xj`{H~(LtKNIwy{M!E^@E7PW z`$oUuU!cDc^viGd|14!Kgkt+J2ECz`yIFMZ^bmfMz|V0AdFzzBSl;du6f4xf^{o7K z^z?yp*5ON|hn|>d;7-L`V;!wA+exHU#rfLBIMF05@~-BB1tmL1H0bQ&4EaBg9kl7z z<=oqo6=8o_&K&2A4_B{2j(Q-*2t6E5E)jyJaGV}`m(6JZ%67Av7Mi!`m7#IH@;dDicFwW)AnhLt1^mFmwn{h;M^wY zuR<&!a?pf%Uq=+`hpIkb>OdR)MM_2t7#1zSU;n+f~2J zt4I9zw>}=}_eIuTqQZ3B5Ff7!BWsrbP!b?B=$R3zw7Z%o;plR3Oa~|p%zy2F5Z!G5 zY_@;?!_QyQ?mtakyg$Y=+f}|TWI>Bt413-rCb5<0?1}4|y0R%Z2+gRJa1 zv6?)&Adi2?I-&6jI-NA1#`(zW&KO2SN4l;B~_bP9FS zX-3o;*|S>j4K(L$W4@5V_`sHhs(V-Ht~(sj7W?rCR9kKh8KJ3t=X=PVB$QfmCa5MI zFx=M|4#m2+UV6jYnwMoM`|!+K!Nc_PO17G35(6|V2J34aR#H<#V~aG=YB~-Db7R(6 zE11z+94GUm9>D19IQWJiKz5ej^NpoSf;}69{UbZ;|K9FdKyIV{wrRhAP5te^x&Pw- z8~a7-1t=1HA*o|H~K*X|hgrgTqG^-Ik(r9B<^<8jGt zh4ht7+r)V;?!;!cjg`6tSwHKkvp-;do2s-R`3Pgim2`EtCY9#KgYd14C;Gk(|lhmX+y+}MBR(9i4t)AJw3LBHzP_OI|?pnnPU zBmG@S5cv!A6F^@#vfcm*yS_WDm!ilC;mJQ_o6leQ|Ks^9%Nz?qFWS=GB9yg#eA5-_R4O1pWNO^Kk$DQzd`7x4-A_hX0iTd)OTR z*&P4*PmcfmEBlLoWsuG2H(lMA7RD1||3uHDb>We+UH4#@UuXE6j!!h7&jn>svh61v zbW`oO4i+;MuF^AfQ%b(r_K_hwR{jX--l|DWiY*Qaqg+jKl8Wu@Qsl3z@Cj6x`7iLh zoyH90EmivnSqi^mq?JvY9;eGzVSbU{Al`AAP1*SNR#m!N%f+-;uh96RA23`Jkjvjc z)38(&nYy?jpR%`2DDlvISFBh4k|E7?B0YMI2OD42 zSyIg<-D1#eFZlLczUyvrp%Bf9$^x>K!}-${(*xn|BDh=H%Nsj6HLzyAB;vI-6ZTF) z&z_h+uCZln^Utl%o22@5+D53g02g;3i-Zt!mm53~Ew0p%v+z}pYq3UR;oQpMJ1Z>c18T6XY6yRP~D(&M|~KLt1a=U?JKH|^(-+Yhr6glqLZ3W#^uYX43p(zkrIUAWX`4rl5Z755 zim}z!1Xn&!Q&d`X!o__jalT|HwsuOfO_0Pc7$?ow0ct7wXGanM#R-U`yaR8kSQb`Mr3UH&qKdMZ~JQg*`8p?6Mm8BexpL}kN#HrmnRI{!gGU>*)G4`eGFNbh>Vz`3Yx}# Vn+kc>uO*~#_}zF6BK*G@{tr0(J^=s# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User-Add.png b/Resources/Iconos/Usuarios/16x16/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..1649f3864a3970a2b3cd5aa73f1557dda67fb387 GIT binary patch literal 832 zcmV-G1Hb%z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;wn;=mRCwBSl3j?DRT#&A=bU$TX2+dfXJ^yh!QFJ# zv?$0Z`oLmKBnZ3_^-56uN-x!$z33`0Du{xjP!!z2o02f7AOs;QbSVnkMG|&(SNvFU zW}SCuoO$1K&ilTn3)^v4?YTM!p8xOp^M4-UoI?n~d|f`hZ#%??D}Hs!o$}np@hdY& z-a9cq3cyZWvvC9gAZe-bQ#*Ed=d)jB(y8Y&ZC-IvyLxA3U+1}ZH?7(@-*fcn&Q=ND z{NtO0ue8T5`oQg~_x0rwfds)lCz?;h&jrASBS18+YpT z7P{!j0N3tM4ve8xtFd=@h`<<5eRBQ*psy!CFgvHQks!aglQ&-~B9aKBLjd;g9|2(R z@DRs8{JA-|nL*mafAQ&lUVmW)&khz)!VxDiNs@4BXtUcgxoj6exmJ4+;s~M%xL&$@ zUWb7-I>hJ@YYmaL#BoHUq2mkxl%@dAeDUXk5Jl@6|2nbx>#kgO8-Pm^;yA)u%jnq6 z%X>ck{SBbRL$zRyW0!6ns#I&Ytqw6pW3*han)vK-;sp-Y4i^imSp2eEh^+_p zDv`sdR2O_+nRfoN%xExi_rUbA>AxTA;JM*}e7bw}FEW?iR_=FVeEAxB-~Ncn*IuUb zRz`SB7QNc_)bd{kcMNWL7~lbT-ijkawLg=%1~|cY*&i{X;al%}pbZ>ImCkkcJ$aJc z)pgXEUEn~)*-au+Nb4cBN07vv_J61o8R5vaygi)XzBm$`wvMx#Hv?)(qA1nQF z`?vqQgPzQQx2B^vJ3zbYa0$}s$VQ=UM6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;s7XXYRCwBilU+!YQ5eVn=Y8Mlwzlb}rVcl-ggGgh z^npQLL_`!yVAe$hhLP1p7uL-#yi=?o5KKZyf}n2d!h#%i(M>^m6>GyjbYkGlk2&|@ zKHm2|?|V)cwV{~xTs;TQ|HuD1&;Jn4IS3&r)VCKsmjL~CBAMR3x|Rxt=a%~W#==wB zp@hwc@YAj<4!ik@vDDx*mPpQBCh^SPTHCv8?F}dY3wYk!YSOuOCz(tO8<{NfvVv4b zfgljG*IhOY!18Ygw7cUe z1ym!jm)mgskQ0PyP!$E;o?o40>AspM*>9$ z=lVV@eHyD8FSGIs0Kgf8u4|x_;`3}QvKUvUr$)hF?+IZo^bA4}0Ql)GYYa{Qyp>3A zEK@~>swz+w1@S~$ee`B_cxn`@&21w%Ao;PJF#!O20742uYVt=twQQ8%{}O@u%t2#SO})8Ptv z0bq;R*>xDzEtMy>=YR^jAWIPP28bd9VZR;vx-|qJOXwV^L(TOT2q_6nlPWd?2`c(&#s0d6Txm!gtq|xeCJA|Tk=?H%x;)O w3uh3xqEStzIW11pxkY^mz&wEDW(U6p05XnB6LaUlIsgCw07*qoM6N<$f)`_8cmMzZ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User-Password.png b/Resources/Iconos/Usuarios/16x16/User-Password.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d89420380b48e68b47f719f7cd36bdf1c9838c GIT binary patch literal 721 zcmV;?0xtcDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;M@d9MRCwBilTBz7K^(>3%ZM5apa=0*~$v$GLfIBD&G! zo=u#KD!!+(N7^lSiAld#7}=f(y}2+tFuWz;`Q!nw?OL}qO{dkGfku;|Qe&W$_%iA6 z41hrA1d*;oHN%LP*D5HMD=4f~5DbKoO2iQf$%6x_&`>*o*xDpwO1fNO;1+=r3E|kj zB#2|dWKD$R9&$Ld(py;8HwSn`XnQj$h>`>Vuq_MRvEeul2wb;Xx6v`da&hflObKzv zu_XX-90wNXux$(VI}YJtuFYaBx4=<1!Ju{X^lMeRKU2{U_Qc z*mLdZU7~m|aitDRX+ZV>Bk^HmOJmqdA^-@sZ`8FYC>KGQh=#;4tGz@PV>mm01cqV2 z@Av<=PF;VpULvP9ZHk}`2|~>SQI{d9J^=XVP&-cnfN7;0Ts6wHN?oDqfuMOIt^+pS z*v^v;-#I3y#lb+2FAc8{a2?QlS6@H)vhb~A2Y&_tsO=E#uU-wU00000NkvXXu0mjf DN{2q# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User-Remove.png b/Resources/Iconos/Usuarios/16x16/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5edbd1da7184451a0f9266aacd2554a6309e4e9a GIT binary patch literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwBil1oTbVI0NJ_n3#HGdkmBI^<;bu!0ss z(SsJ1i&oJhY83w}_I5W<5bnd<1 z{qFs~79tpqc2@th`EfYsPqfw`gkVYE`_G*Qyo*Jn)G(8u`ePrLS2dD^{d7$qtk3Ck9kTM(d>gaDxP&Lt24 zq&NeT9R>OF7JZ+WC#druTqu{c{}Qc4VG za$}PPF}fxI07gdtTqu_2r=_srIE$b{vE)2_leq;TR|!Ct9%*}bqMjuZcVmQ{>=Ii@ z7zT1>g4@NcHZ}wYt<3ECY+rV`VuD@W$!H+9^&Jg|PUV|5Nw>72@#uAo9oUQFks#p> z)%$C=wG6bLY3-<3BIlcW39H(vvIjF;-TwcEdAdLKF=7w)D>We`K2yqy|G@uBmV4!6RH7A^WW@04wY5IM|6#&G8 zN#0h|7)qjw)o2B(g)3cKnr=as%t>zwz&HS7IpFUAdAlgQ4e)El00000NkvXXu0mjf Dp=d`~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User.png b/Resources/Iconos/Usuarios/16x16/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6f2a7b82fdb6371b42f0983eb8b346852c8c0a GIT binary patch literal 768 zcmV+b1ONPqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;c1c7*RCwBal21sJVI0T5&!2by+@_n;+;GdxGJ_zY zD5DM~5d@y1PJxG@=xAL$c*;WroeY8~h@evv1r>DZl2JmJbV$Kg3Tj5%+`H-C?RlT~ zeVz^?_-E~V`@!$`;mh~?BU)%a&z149C+TTy(dHe+ z4yB(DUyDWp&wO6vsL#U_O@4N9e?0u*#!%0B)X_G;i;+MNApk9&)9aN=TVb_?T%m;QQVF48Gm`N(w1j=VJ<0IEP5|FJ#AA_Ep(G$3 zf=EjkXOAa9lmlDT5cYMDGkr^)*~Rkz0bUOCSYHy{FaQ9q<3K7GN+}R%y=J*+=wLCo z`Z*Q}OQl=`0F+X2q=f4_uq@$z`JS6^n8Bs7sTH$ad1VU$TL?%Y;7A)%O3Y+(+2w+m zYaAkg*}31hisiLGQq*AE8=yk5Y(IXVnE;U6xlgt}(xK5rD@!CEMhUq*B6>&&CUO;m z2gL<#cKW8Pnbn&Mj}~U?KGKoVRKy!S@R5cBSMo_s(p|mixNr~IQzuY7=OetmX`uOF z*Hrg#_h8)+Io~%UKpYAWizN5-#|C%TD5*z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;{YgYYRCwB?lS^n^RRD&+bI-Z+er6gnlb8h4HV>^u znwZjs;6_mB#zjFAaO0|rcH>4@E(Aev<61=p7uHP?L8_$?+!)JHp=JyP)7aRilg?x^ znVCEHdCql}EQ;X5fAz!v*!=v0|G@q4FTbUO=-t+Sx7^%oul>5Q``$;_?)`P7TTl7L z)$@!kE@A`Jzg&GIDXlMrU_nW$$%K4!e!6_?R5dqx6p%;c+e;^3TRmI3S{?cf#9T$9das0wmsdz(L@J8e1%!u41$%3pLfy0oT7?el>NhMefpk-L%9LLBP3OA2EH0fspFQ{SOm?j1 z`7zn&6ycL3v-jqBHkzQ+FHxW0XWKkNx(Sq%L^?^7ldB>(D!h-0sHU@%@J0s{{Rid#i}! dnE!)+1^}~(b}S0I7AF7z002ovPDHLkV1lw4r!xQm literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/Thumbs.db b/Resources/Iconos/Usuarios/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..79aece3460dcbe147cc31cd1721f7031866a8806 GIT binary patch literal 55808 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Add.png b/Resources/Iconos/Usuarios/24x24/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..3616f187179dff8ea71aa49b90ce86e145f22cea GIT binary patch literal 1345 zcmV-H1-|-;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=w@E}nRCwBylv{|ERTRg6dw<_KXD;VBqjS_59d$HO zp&YUD!5f-%MH37Hdk}g{1fz$1hzNs9MCd7lq=W(SsZ25hwTLb%sWg~onoih^GwO_& zX3os{F8kY;9?mzZGwRTS1)IIsTK~P)`mZINa|j_ADPMoMdTR5e;v3G{Rbd#_mxhAt zy*CDr96fz?_h*MXy6?7aZ7aIr^O;v~-V@B{K5}yRh7~iW7r&5#;!rst&hamSE&YSBh?FK!4sAWAOd8MXm%Ha;9%!uzXnS3MF-tptZ)NYKK9LVQ?tYKc4P81w;VH z_gosArT`Z@ufP9fb?*60)~^dndR~5{{m|cB$)TcnmNj*TX{xZNs)-+B-UX z-%V6(^>C>Y^6Nb%CTqgBGJM; z8R5tJN@>@%gMVxt_>KNCSH+ySX3VRqZ$3g@cACj5TrIS>^s)Altz;Hoe}wwq_~0vo8;vj4wa1M6)+f7*|s@W53Mir#aFcDIM3EZ*%O{&&;1c zA2lW9%i4pG6(Af=RP1tf6Q5{a_SjzXOnhJlwfUJFeOWipxCG%ug*sLsgvZ{(=d_$?)%#laf$r^q9+iP_>(&V?5k?@4L}(AGJVfka@i^;s zV2ngYJ~HtUiI>`?KGtJgL(@yZg!}iv_>Dq)2<;&fgH#?)`gj7YkqFNM0-+^Rc}V3W zl#d+tF%nPa8i69vHyS{jE|GXGQhDI{IO&jpvjUOvaMFRJ@>}g8V;>p&2$g1b=WXK)@ zuB5HM|DdHQRsjW|Ha+|4y-inhlBxp2RO9r0l>9pYc|4hMa3cXH00000NkvXXu0mjf DW@u{S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Edit.png b/Resources/Iconos/Usuarios/24x24/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..1af01adc08792cc3ec4086340d1526267be64391 GIT binary patch literal 1385 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Remove.png b/Resources/Iconos/Usuarios/24x24/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b50a9daa5740c56ddb70ea1aa36adb2bf7b83768 GIT binary patch literal 1282 zcmV+d1^xPoP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=cu7P-RCwBymP>3^MHt6_Gw0k#Z|`kOZz-j;wkQ!2 zB?OHN5M#nZV@NQXXySsE8i|R#~Y?rz_IvSmd_Ys)*{yUmqKwW&}n zkB&{up6EGqeeajY`i59w6ZZoAws+gpT@SQ;BLywRQki0@OtDydPE5^Cp6ngnzUOG) zLBP%j2=DIrZr3xbT3YJA#ru4uHO5%1bvRdxbW-Lwu3NhA`puGlzUU7v8j#O7ePoTv z7fU6qbwrUuDTUSsV+_uFvgxpX<0H#9>|F`JVcb{lm zzpC?UCX-G}A+XM&wWb;=#-~aQjaOKJu|{LGs#y|;wKj&-K+al!<$7TdC@mQ9=I4Kn&&-yN8&fMuqcz4DY#iQgo+}rj?en{d-}!- ztHVD4wW!N(^^Sad*xL1l$k#pRl1e;#v6~Iqkd&Jy(vE>bimzrbQC*)UA;QQE7WRxB zIlpt}Pp0QB(}&;dT9a<-I6-5w(_Z&7%+1bgs$-g;UvNegp~*rAXR{f0vrKngFdX4$ZCkxAwmc7 zyg0`NG~}1R2sGb&4{X>bOn@)}LR+K?@G>M2;H*Rh4iE?28*fo)ue^38Q#J)PT^^emm_9f8lP@~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User.png b/Resources/Iconos/Usuarios/24x24/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ddb1dd69331d62266d693421ce4f7b2a18bd656e GIT binary patch literal 1267 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 FV1kHF1ET-{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/Thumbs.db b/Resources/Iconos/Usuarios/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..7f04aaaf3fb4cc010bc5bc7463ce87a583ef7e82 GIT binary patch literal 21504 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 OK=j{Rq4Kv)#s3dU;s411 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Add.png b/Resources/Iconos/Usuarios/28x28/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..76459dc67af9152e9c910c8eb764d663cb3e004a GIT binary patch literal 1618 zcmV-Y2CeytP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>$Vo&&RCwB)mR)QdR~5&9_uiRZuf2}Fj@>4~j$1<7 z5SNIwfCMGP2xukRsznqCNJuCT^h-SO5EZFZJb*yrLr6qI0wge$Dr%ytRFsDbNXtXh zN})7tK@JH?lMsK@cCy)B@668JFCJ$7nYEMlN=GxAxpRK^ocW(~ukhX@grMCx{P?GP zw!E+Zp?s+BPE-A!`9@r?)*9od&RstA?cbdE3!vM5w`;85FWi^EHn+mLSPOXUS6{jF zron+jxttn`qL@b1B#L7iQB1ua`SVlNzdd{O>_dMo&z%PRYT%>$?&aZ!$6$;V&Skq5 zzVO4(esE|@-wXMCFl3CuI)`hScMd5LoBHyj_kCjcxsl=G4xoLC+Kj7!hrfW@d}H75 zym!4(91}Ma(p003!5E9R4r?7A7#t|1OYTwlmP12WK(HAcSCeQ#YGRdA@TltbBg#<@^@1%RSjUKR=ajt{PJ~llIXIv7HbX8 z8muu`yI^*y9{o~XPF`wMf%@_WaO|nm*H;$RTK)M_PuCtVrEqd-J$_m7J8Ls@4(BYV zC+ZWx>{{(?-NGL~IsHr{itE1=c7-i~<2bcP-Gu<)=n# zZ;WBNS<^~$E7itmPMp3pdHhu6rB+JcIS}Bfr^`Q@p1bm@HJTM>m%v7AE?WGHT^^;@m^4MFDV2KczyGK4lmEI{f987A*>-!{@mTjp zHMI4|^cTOHYou!b>{f2SA*C}X@ZOPX%YSDb2glDbJ5nIu9lX^%JNM*UKfibcNZ%1~ z$G5iL5pLZ4oG2BBTp`64G$UsQxu^GT;>vlVMvcUGa#Bq4>TsD{R~M=oBIcz}FU&mq zza!(1HO{Ud?IQ5~j}Pz8_YNOrL$22rQe3CT6*Q`;c_M#+y&w4`N-5rMOtJspU#G4N zDhiQtF1tn{&B^Ik#(!P@BA1w4_a6>^lR_>(bXW#my~|&E0coG-Q2h`|nh=Qw2hJRz z+TH4t3x7fYLeNyY(l)hIRMDQf}w|oZ7g}c?}MP7vKcK3WSx651wOR`Af_f zB9ab=Oag?H*&LV6#e?ut6bEj4uxHnWBh_;Jhjz-90DM4kp>7Y5k@V|wb=qfQ4C5qZ+Z~uS~Egv!{J4M$s9@TKzb11oj_=prOpY2 zmdG?frV6?6%>vX)g0ORYE3NhRz0^?`Mj?ztXoplDCq06U>5arI*HW2Sj9jEaD_Yfx zI5TfhKyJ+lQ+wsbQ1|Z^N(rGHQu?g%JMdQEgI2U;kF#tjM5?kVQ-#nO7~_0>dUgtE zt_hs{`|Cd#xFy}z*>}VJN_6ERKzadAX3+&6gkRiVg%ugl$PAVQkQyIX=jNwR{O9=0 zYcszE=B`!v1v=Q>v%TZa&Ko!E42p%#vLh(ToXVrTLLj{L4(F^h-uT37m-y7i$-J&L zFGVx)M0`Py1OEU{t#vAIck&iM2y_7XmZ_GaeM{;VFw0E0%&b0zuO9y&0McJ|>29a! Q*Z=?k07*qoM6N<$g0q(i?EnA( literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Edit.png b/Resources/Iconos/Usuarios/28x28/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..139ec635691d96ff80aaa57fd20275b2b002cd44 GIT binary patch literal 1728 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 N002ovPDHLkV1kx6|D6B; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Remove.png b/Resources/Iconos/Usuarios/28x28/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b046745f0687f41cd2ae091bba653ae48da16f98 GIT binary patch literal 1581 zcmV+|2GaS7P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>qe(ax(PxkD1 zPv2vOoW4Iz&AS#GNxinv7(H`g{>V3faq3Ti;RZ$s0oe%n^3z|s_m;u_Bl)}@isOVv z+$2sC8gW9s9*6O%+FxHdasIJCSLV(FVY9$!y&sN$@6+!e+OhR`p%9ggF*xt>Z3XX9 z3K`g1*#DW24Zk>DYaTc~zBu;G-T}V}rmO)T{TzDx&0BvJf-lEOg0+q`H5hBL*5RDT zIZprv`-^)X_|VS7r^nxT7~qjdzq+!}m07s(MyA>v&zb>%wGMN4ed?inBzMMff{5Up z!x&4NrWlif7aA#%3TQ2iyt`-r-dlSf1bFtDr`ItR0RyY9R*gcWzSwNF#25o2c<-^+ zlBR~*Vw2JF1^RnSbQU$OR)emB*7uC`fBDhlZ*BwTuNBWn)&m-2KN`mgN+}Q_cuze} zIXBrrM|nQ+!CmzA;p-Glvls@fuMI_})j#g6`N zig}Iq9_Jjcov9%N2%wcvF6DAS36Se;kyXG`Co9$c9~nt*A1W7=(uh*ai4(jhc()Am z-V;K0-fG!R7XWqj#m`>Fv|6U(oWnVbcNS+Y&MnEU?8mUOFDEZIYCwH61wj4(joL!} zC1-7L)?%&2T9ZMS_mM6n7v_#0Hb5m&o|Q1~i z{TeXyj)0H<^j{N~rm8=(#ss_UGLy6IFtM(!%abS1RR7Wr>5T&ce*IkK`_pq* zUUAm2N^S*gjbZ*u-1_lLW4{Mp2K+k){-*MFBs{_clGW^9S^mzLIaG`rzzN?z$#d($ItHXS)DQ3Y#?HHQ+qSWmin`od#bt=%(SR z!XfUv=i_LtdAl*i!P8%(t}Qywp^|)djB_+6r~fwk^UCMB%;ZKu1u*z^iuuCOQ5AKS zS4|K|w+4>XkI+h6#M0otRRB@w zdk8O*Eug?D#3{ro#As9+F<)wuMuKYPkTgP!Labhy>#`TfNh#{Rb>INdwV^}ha>L62 zn=Pb_2NggdctMQMLgxiB3YA8vRHK%jS%Nx6l08_CAtj=aNQkx4P{(Q?O_tzoEm_UHN0q^z9R^MYKn$kQIIp!3iO1yCu7wMMER0 z&RnJ%F&P-^Lw$O73TSQ!oczbD-|fFG-PO7ErU$ij6(B+d0k1N5Q2+_c?Nyv)K&vuX zD}vO9q&BxWed<3aXZ}9(OJMGLm8M7s`+9bF+}nBcmOW9axLtKby(+H@=%5iKxZv^L zc^hnKIpbR)bxCW{EHp32Gs#49(ToEB1kSAYRld=ew*Wby11Pkm+Zi3&sqO%Kl}uaq fT1_~F!2bpS=B0X~@=}?n00000NkvXXu0mjf!_xs} literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User.png b/Resources/Iconos/Usuarios/28x28/User.png new file mode 100644 index 0000000000000000000000000000000000000000..e389c2a1bd24629b7531a91ecfb397179902264d GIT binary patch literal 1525 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>Ye_^wRCwB)mRoEbR~g5D-#N3hUV9y1Vz)`K}S7}y zAk>!)OKD)Bub2Bjyr1FzGI)oz77<}=S1-E;%Jf%C@v+}eR&Us0BS`6WNUcOz%!?7^}`<@PwyD*FDs=Hr4SLE za|Oh^Rhajl5Q_UOvu0aa`t#Q?S!Qa^Ih?b2XK~iz+=|@Vehh2-a{6kk0W>#qw`rC( zmYOd(YlE{EYc1BA0=gpS@GJ5j?;Yo+np431wzkE@ zy*~RoFt;t>6F+-n>dH+0$JUr&S6vozwiD(~sI4`eId^sX^x68~Iw8GrAi!^*sr_Jf z;o2+C8m^OD16yNQyq07?d13O8z{`N&Ht=_~cUn)sS^LhLv-Q-icWDeZ&oOyUy_tsZ z{%Km&1fx%;M^?pO%HlN-ld^PXc97nvWg zQ0|T1ZeLjV_S-+bauUdIs2(2p=H7csJ9j@X1C>!<$#E6K`1uhY?0DL>9W4 zlxbcWs}c9~pxY&6S%v)a+;jguIq_uc!kXJnfggBk>`=LX>=ZlVepkuy-3DJV=(geM z@=@-;_fu%Cd8akQk$-=krncy$gi7P$nv`fy&%QMA%i5z{WqQ*BJn{`Hae4HFih8a) z@q<7<7&zWMPL^jR(&Fg(qcnPx&PrLkiqJhU`mx);aL12;9h)9)1M$HlvEI4Q2Lm1? z2zWu9AWktca*;399%H$Zkac-f79n00V|+1|01}i`hi`eL@2<-y8@2Qg>ofN{hfx@M z7%x&xpuj1_Da0zoXjC4tSZ$L>g33xr9w9~{RfYZ8YxCW!g{LW2Bi19vqjbQlfKV`l zRRrxj*(R&bC6798b;og`V9`Llp~Ku=`*X<*9TKfYv`48>9Q+=F6GGH+OYyjfhDLH- zxXd+T3NY4(=Is0o(B2R@{g2naH+*}(uY2&OhqUyRAwmTKuL^fj012z*Rh$$+s|r{a zL2g6ZSXiDt^Pkgmug?7%SlH^MsnErtzWrVIb>F<>U{tN_R$bA6igg(sG=c;dJl;ER zgAJK8J`1@^vt_f?zM9OXQ|Vz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ?^hrcPRCwCFmTia~R~^QG=bV|jZ#(ziy}Q{>c9Y%g zMw&F#q{iB`iMH5UErhDYA{A^Ap~Wv!f*+)m(vS9of+7f3N}&NOh-eX7lF(w)ciJSh zc`Iu-$!0e%o4dPrU+&w?dGo`)o5m)HRdL{97-r`D=KuWXobw3pJ^#-`{5LPZ@!JQ# z8TVu!Ns@HSN~76csMU{tbf)^ulh1wl7T~V;j`~kPPd$Zv=EslxdgF$HpGTqEECm&T z9|#rOi-q9fZJSD^SC7oT4w(N5@ac!Xw|B6=^n`U*rims=QqnXfNm8^gT zZ=IYw^yx~2>kYW~HgZEfz4zs!U}xe`3$66TnT4fSet(S9zuS9TC6kd)HkwU=htwF7 zG$lj((ANb%_pPD3$9ntz zB8BK_X^j#BDFhNks8mqNWqvSqY{Cro_fYJ~0?HK7?Kw}Jx%gy#L z|8!~}aOBhTTmo3<)+E+)c5()trWm~{jWHT$Y{yz_F~)FqY8E^ko2k)mC+M`Zw53U# znfV4!96n<&-&O7@eYq5V8rZ4Onqo7B>B)0`u684pVpeo~qxg-55JKmWJxaGi<2Z7qA8_qS@T z(N6f$4Sk|xXU9fs3|4Ej*1Y-lDQb�M2eLP#M30Z-0F+8*jdcWVFPe`wt*9A;Kz@ z%vW-8?*q}GpIAD!^bz0{z)b^Wt>fOsgz57W!R&^ixGyeBxoV-&8m&{_e1Cx>$1meU zjRQ_^?`L{+mM?`nu(9Ux3s2GtG*T;M8X$Fmve_t`Eq<-lxO_0Vs4uQ=z~Za%$n6jG z-SYI7-htg0qN;Rv%rH>S5-M0~q#Qf7LVSE9o3n!)%Ae=uTc=5PMfi$EIfsiJ4uNci zsAhz0M5smv)re5_h^5KN7bf-{|6u^|i#7Lc8mUzF_2u*9nLsh_*Ya^=foNTh`Q-#B z1l#JvtS=9tt>fO-7~^mB^6bzgD>;FSEIw68E0KvpqzY*i!pM%CB$F@i0tVzyxTmnT zSbi~%GUK9~IkGAsI9FzPT_3k?A7OKOh|%RCln_@k$!HSu@CzFWPs?sK5vmy?TOl$D z5lMj53SksNE2Iy5fRfy_zV}CkD7w+F{*{3D&_7q9w&Ka->yyenbk7wC+leoQFsRLUHe#_;<{SB z{$!=O)LQha1!HOql9R zzzM*9*5s{#ED!^QZZuepAg&u~bysbm**)9Ol4<`j02MekoqKKa^Z)<=07*qoM6N<$ Ef)!=4#Q*>R literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/48x48/Thumbs.db b/Resources/Iconos/Usuarios/48x48/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c827026b6e070a5a8bfb9f3d6d8e4a9728fbcb6f GIT binary patch literal 5632 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 QzW@LL07*qoM6N<$f)ttjA^-pY literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db b/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..56e3ebd786ae4b93de41bf3dc964efb217aced50 GIT binary patch literal 5632 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 F_%A9qx#Iu; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png b/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png new file mode 100644 index 0000000000000000000000000000000000000000..9299fe2622be39291f905cedf048c4318da99558 GIT binary patch literal 3363 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png b/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png new file mode 100644 index 0000000000000000000000000000000000000000..b12113796ebdb8a55f86fdc76043f8b409151c56 GIT binary patch literal 3515 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 KMNUMnLSTY^94nCk literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas terminadas/24x24/Currency.png b/Resources/Iconos/Ventas terminadas/24x24/Currency.png new file mode 100644 index 0000000000000000000000000000000000000000..af28329ecc21e96d0d1ed4e2f92a938480889f7a GIT binary patch literal 777 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 DM^Wc} literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png b/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png new file mode 100644 index 0000000000000000000000000000000000000000..6d04f299bb9a13d2225776909885283a4336573c GIT binary patch literal 3453 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 Hu0mjfY8W9W literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas terminadas/28x28/Currency.png b/Resources/Iconos/Ventas terminadas/28x28/Currency.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7259ccbef18d789f14487057c836e9cf75c571 GIT binary patch literal 887 zcmV--1Bm>IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;?MXyIRCwC#mQ6@hQ5c4wJL4jMD$R{BEt-Cak_a18 zY$-vcLPMlcflvx9TGlFm3V+(PtXTw_P>^V0noPDDs70Z2nKVR{>INxJi&D^NymP;E zTa2SKspBN#BKqKR&*9v2p6|Qwd(OR@ZQE>RIN0L&58U)f1L*J%*;@((xKMU{Lkn19 zBciZGA&Zx#;@YARu@R*>f3;y52yl6zAZ3u)Hl_%sWkv6QUP>*E_ZLoJe4R?HFc$4a z!341Ddl`+Vo7My?rBF&CB9wQRU}k;6REiOAh`pUTm?BuBlAETzD7YrK`>SzG5Ig2pQ6A$_o9fm;`E8^2~JNHq>lAe}Q zf4L9calnJ%dFY8&`_KbN1mT`oO7NKMno$QAZXkU9N!3;GfaNO+}5U20^%prIccPd6bV%!fufHc^jFDeMP+0)hI3 z`4b@>bBC}{W1&6JqCk}d7=y(!{E+dCvOp)M2+c!KTwM!!ZU`9wgpHQ~%o@`Gobo$p ztvv~WGVBAT06d=_Cq2it5*XVKYn>h+hmK$vW4QCGF^n4kgpAomV}+L138!yMNW$NC zj&rx(tpvV$^FFC}rt)q=;0`TyzE#JkXTsd~T_Gx6R??Is&xTmc*LgnwH+mwm|sl zs-{ULQq?gofi6JXD6q1n&UX=f-ZjR1s;f_UgU0L%4S}eJnwHudecSA=C@wzK^%wd9 z^Z>Wp0^#9}RM^Ggv+L^D76@zWe(^U`zm$G4HcLO?cCrPufBw(=_W%q^%4FTviC6#t N002ovPDHLkV1m+ji0S|U literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas terminadas/28x28/Report.png b/Resources/Iconos/Ventas terminadas/28x28/Report.png new file mode 100644 index 0000000000000000000000000000000000000000..36a49f11c768c157591d22d339c661ae9797e6e3 GIT binary patch literal 505 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Z%IT!RCwClma$I5Fc5}+qr6Nfl%e7kP)8QjZkbq_ zcmQ622?-X;0*DR_l|amh1u-C|E)48+1Ee#)i{hgijDG|Xc zZ38Q|ARS!YJue-#+i9yH_oDV>ECOZ$5rdeGvEXv}fU}Dsx}7!x*CgsxVW-tXOoW&S zv*Z~QVaAM!)|e7OGh?dt+}9f8-ghR(%*83S+0AHFnbs5|7Jot6liF!a#fT~rX6cQT zGyZuzf!1?jVgV<@#5Dz_|4U2EATlVJtzul3(lU~&_ICJDPH57+UWeG+eX;tc_e*@!ieg^BMSsg6dJmocAHrPh{6zWv7EKarO>0j0zxI%m%eYBGXK72T zLX(8fN|Uap(NpRoObcz3gw__rT+Ko~y)W^7V+(sog7MK;VZ|@HA(+JLhOl;RwvU?< vE7(K9;P!DfZ6W|{_YRicm#VezynhA&No3TzWrWA$00000NkvXXu0mjfm<-e2 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db b/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6c6799f67aa39a97987c7ab02170625b365573b3 GIT binary patch literal 8192 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 apaos~vNEJO^{Z?EwPGNzf6@Q74EzTf?(1Lx literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/Cabecera.jpg b/Resources/Imagenes/Cabecera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce37d1a97993fbc86699c5ff7aed7def7b6344e5 GIT binary patch literal 18969 zcmeG^c|26z`*&7j>|;{04YDQsE<2T-#!^X%nZabtFf&4w7Og4~3YF|{R9caCDR0rH zkfbajS<-?;{LUSU-tYTe`u#q??_b?<&phYZ&U2pg+;g6}_gs_DCtD#=$E6NSAp{Zu z*@F)>*@opViJ}KWkc$hn5P~2a#D^e2C;%bA2SUt;FgzH70uWL^;PnXAX&xlt(Sbk- zNr97%(B;8I0Po*LhtSiqdEomoI6;fB)~Ro6Dl33Sat~&4S)5>27|GUyw1Up0vLZQ< zuC}(JskRaLBkAax8t9tp8UZN?LY+X&*meT>T|Xl71nN5sQF)vYghimHd9kzmfsmc) z2SRyvKY&lB?L}xJf9S?oOzZo}_Q}8VWj`dy>yw|Y3xt>)fP{H9h`I%6Kuk76@sJ=6 zhvUZy^79Ld3E&09=7H(q{3N262!B{W%7gq@1s*5EiWuLQATrh`x zD?m@5z3quDpHi~NVA}@@$3P;Pl1;S+qeIM7=wb%J<7?Aq*U_|}uvRvQ2 z=wZq_T4+m1=IXfUD*d=RhwPHz7#zn}=?vDI?~0>PP=R;LZP^P!7P)svCZXoE_Zzd8 zAzBPi7*kG_jMpp*o`iCaMs2x_Z#eRybEl2nMgfPO{GMVd!sn+^O~yVG8EZ4nozvJ8 zUc94Z3jh2tq5R*X)u*^I*(b{1Ldmh)67nx4I4!MQ5YwbH*itr;LH$&T?3S0)ua?d~ zd(i^4p`m%^Yi7hUj;vB)x7;nar>>F+X#2W%IP3kvev^+syX-dMN}W4h&0t+iJahRm zQ-gEuHT%jrn|G2ShGv8XqCQT(xVGAuO||UIJv1|xXV144_=3{1bB{C*-&hf9S;2Sd z*!9Cb60cnfm5#W~vkd&qAC2g0fA7Iv^X}T%w^zlRCZW$_@85QHd}SQnwc^#;cQ5P* z4bSgfJqfw^RafWim2_Q<;Wo(clero_V$ys)^U%kxH2bZ3f801+cR^MlyNURW%720-DqmEsKX5J3aCFRhIXMDgX=tg?s$=c$rKg&P;s1W^uY>&&cX; zy~_et6K)WSH~?YkM6i&Ugf_0t^7>GfHLuk2lM*bq$?ZiEN28?ZtJ|RjsWsXf$3-$k zyw@3f-Jt8hu6tja)Ne`rnu?8G+d5ioW8ind*L=PV|Ai-K zAC1d>8+|uXweA+uc)#Lqw{tFuPjPqO$K$>wD4kTfTsHY+NakdM7{RrEzPv$l-n`AY zJxWCvm!18RfA-4+o?cgPKP*Qql_T0E*ZU|wk0n2k^?aINl+=$sHnfLWHwIO302N$#w zZ`u)^o_v0M!8BC=G;L}YMozCJNS>TBk0$&>0J7WyO=%S3;ow<4ipMGWqb|$S`iWQP z=ary9OiAH+b+AssJStQ6;Cbs7OyISN8shQTLt24>fWiPJSY^P0n8swMXZ*nE^6);O z{LW**!)VN4c-DLYbqERrtMcC-sJAfrZ%LE?7aGqquxik^sotUC^&Em=KfqZ4`0#je zJggcI3n8rlJ2>H-fR6;6g>?rN^>v`&RdKD;-joFxh_|v%d3QcsMJ)lvlsDii1h3kN zNbrq=Y$1Or0HQ$@aIygm+whOaEF4b`$p3uIV)#LThjJRvj9@T84els5fEB@{a@+#e zQ)cL73Refz;Lw3QL2|-iF@s z!ib;R!SHARO#mk!ui{`gOE+H-n-vlE6AH^>(}U`8Uwm+`nP>{*L~cT_7OHmc?MPXE|4FO25sr9|Rx*xw4qBulc#GFt-RU zhc-KK@C*=0|9}+?U~xe}{R3VA3~}&Z*?HHcD%=nx2u_6MAP=6p(%>w7Duji2d@u)u zf#)IEZ70B~4!~9jatAQTbLW99^><$TJFo2;{+-wU&TD_?wZEL#@@83iFt0+82RIS% zG%EsGgXD(AOKC`uI}{9HE;uHpUpB#;vE)J@ImQ&|%q$h$yZh5&bPB=v*2 z+%QuuEhb0PAHJueNnwR*Mfrzm>1b+eL1vawVg8g58kZD619^kF%KIxfR7iBHxylLy z7j2g?TUs#Pej}UavC-9&vN42WLRGP}z?(&xMumoj(zyPls89xzV;W_y!c%SvU>L2X zLgKM-L(ElHy10|LU^Nb*b4ehZ*U&XyL<(g4hteWh>=2TUrlAT@$fgFGlI@mGs{=K2 zm1(;pBO^5<^)y-RAT1pe6B8|MT`gT*4ZxwniDq*BqcoTtMbH}04Eo9+Vn214zLM8l z&=8))Ys!wsp|I&;Tsn(Mf}8dSSsvG1B_e`OH8rLh>gwtQ8f$1%{S7sAbf^IuCVGJZ z8vaxY)x^Y~W)z@JRl$>{o1}sJV}IW$O!?j{iDU*>O?j)o2k#Uv(b3kPEi#J&T%ZN_d6p0UAN&$FYY2ZD3qSx~ z(bEEh@!v7z`z^%3AEmJGoc_Z3UD$<1 zr3Xg;C&IHhe+YxwlIqX(|Bu9H^L|&rGadZa05hxw@0Rl4-ZYXAC%8GVPzl z@ApyQz(13;;0TFeQ)qx)ab|V}JT5N(dJscHc~c2*99>+%tj4Bqpi!5yS)sg{J_GBbftjE(gIj0|}TjP5^KV7@moOBp=ia0vd~$?qWyWB*;l(<>W@?SHnNDYVps5toKo&dHpKC!6^$((Htq-FGnQ6^n z|K8rIMGxc{AluOTk-xz1`~N?FH}Xq9{_U>c?)oJU{1Wr;==$xhU-G~&G5?OP-|qS) z5Bw7I@96sNu3z%NFERg)uHWwZB@g@(^Y7^T?XF+)z%McXZ=(x8^8|#(1dlx;!SjvD zcEObnwzhumWVfXb&P#ZYY6R__=}Z<9Y!V4&a@pi%Hl&rSd`Nr`!6p%YuvZ0a2l1zH z!dyI-!aErthb6Wo4q$@enPa$NYLCNH4SRPIX$JovL1L6JHrR`Ra0lFaRPg))!0`ZP zL~_GmJp62*7!U%(NO)rkkqrz4@H`j}nt~Vcc&1=07^a3Y!8Q;iY;zbjlnTRD0N%YJ z0^S~iat83u4RjjVdxLrg;026`P&$C&y-37Rnm^dGf`<1EEa1{8!2s3+ zAbyOSGru=@JPSc99RkD}O4GiJ*$)(0QAuAX~C0i4wuyFvWs~zc66uoCrjO zBq3Qy5mJRTAYI4^S`1l1OCU$c4f2FmL2JSOwqPg}>~M>OVxg_jPACC72&F<9P!^O2 zorKOn=bu42^+Z+I$Ehgg8PHA%{>xs3UX{#s~|< z5`;5?j97(OhX_J25fO-3#CAjiA{mi^$VQw*oI_kj+(O(#JV7)e+7La6kBF~G6jBgL zM9LtQky=P&q&3nB>4{u}3_^w@HzMPa2ardQImlDUQsgaU4YD5DitI%Wfo=5yC<&B2 zN&{t#vPHR}d{BWXHfl3!FDea{gF1t%KvkojqFPaXs8KW)EsiFkHPDOE_Gm9O1s#sw zjNXUNK>vX*MOUGpqTA4e=n0GvMjE4zF~vAwR$_uMk(iyBG)w{J66Ox39@B{##$vG& zSQV@h)*ibGyB-^Z-G@DfEy3QzKEZZihxqvTB>B|&%=z5-{Q0DTyOL0CpCT<%p4OfJ_j;q6U10wt) zN+Q-GYehDSq={S*c_h*&$}g%cYAfn5x>+<+^s;E9=#ZGWn2wm6Sg6=Ou_Cd1Vs8n2 z1ZBb!0+kR?$R*q+bcmzG6~%4EDdOA3^Th9ncM`Eg6`})iJu!iJn)r}7IEOGte~$N@ zs5zN)uFYwcKuIV|I7l!g5+%+{G)R1%D>K)6E^Y3fxo76q%^jI1HP31uZQkB_CG+a% zeU&6hE|Cn8Op+{t$19ugmtxiOX5Y(dAO)ZpghO%^_Kn7^EYlD$=05 zw7k81gnYLAL-{cU6$LMaZ3-m{EsA(WW5qzl6vax#!3A;)To%MGC|>YFiC@WBDOl;S zQnk{EvWoHwDoY+RZuy9Y>vQIu$w}brx_;XH5wC*-HrDd|7n6Tu`!7=xoR?MYG}$eJ#YGcvBu(% z#YKzXnyHx4%<{}S%oWW2&9lv0El3vYEKXRoTFP7cTjp4{TPa#mtqQEVt<|j8Tc5HX zu+g?*+g!34u{E{bWP8&NWw*?3uie8Xge6`}GM2nrs<1R@Y4Os*Wd_S)mff_+*gM%L z**7}KI8Yo;It)4*Ic{>SauRg%aLRCMcV6hscCK(ix;VNVa(U^hPl3LsgFS9kgv`0n&=SfjEgYR$d1^Vc%gUh@<2 z^Y^>34zq5>x}tUC{%-y`{zCx{0Y?J{DYlfulwPV8HHF$kGp8lfx&zGvlLOxdnFk#T z>It?CP7Cg%+tM@WAJ*Hi&sskc;ucaEGRauMC<(=dt_!`)BrrpmRV-On6zfTtdf3je z)^OAC)bK&J6T5(e;H=@4bBQ3Cs*O;M*b&jT!D2(^hA)xckr$%GqL@*&(F>#ZM0amo zx-mZn9Ycw!jFpew8r!zXdQC4`L584>lxOCjF5tmb@{!iC%~nXH7YuP5jyo@X!1F3nNS zNz29NZpiJ*^UkZzH_ksW z@-rG|vP&dN63#+rBhJ1%x9(iSd8hN07mP2Qxu|sU=q2$>drJ|e(WQfB!DX%GtID5T zcD!6!vAE*W70oM!SLLr}UYm0*@jCu`{PoEj8*dEV47=HPE9h27rC(+9?UlEmRV}Z2 zc*p6^pLdtuy#5z-yU!e+)zrJzKWXr4c;4vS*!rCM{B0AX>BEZ+FUFd;yu`fR+alVM z_DcFy&TF;TC9Q_7*V^pbYTG^9n>#2Sy>B>g#yjJ?gu2qY<+@M4)qQ)lXKBylcdOrZ z_J;M2_3i8z>pwc6I&ks5)%)7Pm4lrh*dHc8?)xP9sqnM@=gJ}Xp;yD9!($_Rzes-h zW7K%G`s<3X-D8pCeB(#HseP-MaGH2I847mi&%F0#1#*F@_rB05_y8qX55dWYL8CEz zI4qVAi^bt_{NTXh@q+L%Rr0`D1p zNl%E+uzXt;yi(_eXP?t0f6!YnXNe74QR!B|ww&{vT+bBR4hb<>IRyN{2VOA)Dj-M< z!BZmdkI}JSo*lmRmV)kiY|;~UPTk-+8*(zSvi+l?-Ua=iU$y#tNvW^*QDt(<4g)&g zkxZ;hQd6(8Nq4kK4i}@Jv`?weQ_GikQNz>iB^~TNo~YqL>1dMy7!MYts12m-(9cs# zfqCr5$Oj7>X6g=VcpC4I4htlQi{^Rko@P$TL!aj{<|}wOE-5%_r$$KGp-BZ=6ek}K zVGMdhmPo)YoN{!qmxRR+7WT=gc`N!fLR|;Dj@uaV+h5$~xkJAgPbU-Wi}CAuaNIdy zC6L;oJEdFRMRm&38bv~%qfoR>(tUx9N|Va z%mFQB53ldw4WBhi?~F5o$$-h7ar$P*qs!w4>Ia%@gVgskDZ3ths^8aLSJm{&&lw$a zJ|Ej#Ft&Ky_J;Du2F=C$OUI2PyAKy+B{KX|3N|LBqgS@)H?1!3H~knE(%k3oKM56h zoGdlJ91&FB|Do>zea$G}1COfc676&GEKDZ9B{eX;7ei$i)M`c+g%q|m_Jv+E*30va z-X&lf)4gxg!1>zSC$}-IWOwg7-%;o7rYCJe>)2e7@qU6~(rMo41-fEa0K3G8=gNXq zat0XMe0ev!lcF__MM_{0)Bw*C-MSpO(}YuMpYr9MRm2Dxo@#wSt{9Ak(t|;YiEwe?u#~K6@j<*28KUn z#vZL~HV}aJa9Pd172E+cDd(NO=7lRX2Uf6Td|zz}D_P(Y68o)db=Zb0Wu@ioI-J}) z8g*PpT;~m4&#dj}k9bts(bZQ$3kfmfc|a{C+c_Ukw{mg>VZw_Aw`?^+23cb&E~diO zCdOo?jPuw}xsWAFV0I?vEv0Ux5lEPC*CH-vdcF#OU=bKQKdv&W{UK&Koo@MzP%AQ1tdrLc)4C-rTL-x8Y^&SmD!=xNG}f9=o`IV8L1k*5ZQa zEj7VoPWg~|ajr$li;m{f@Xx*1Z)C2p9QJ*^jQcd zA(tK$r}oKfJSkVw*ztJ70hcB|qY>oi>q#ZDnIVHUcQ@x(3%|S`R4v)~&2nhL)vo>H zH6h2FI>TS;GdUYCj@2ALc46nY+q5@Fw{I?7jqG1MY_X|a+P6|=Gohil!6d5DIY_qe zT6fQb;pWm89hM2V-yVtFVbG;sN34tIw?XHropdiqwI{$+MzOueLNf8|95~nvR3$em z;n&v@zY?>-bq0XC9eTIaaKt>pi{MHnDFJ53co}|g;sF-L4X;*PP2^G3Q@?G3=OYI7 z@3~hJ0?*!Xx%PO3K6-KYK&f1AMaD>MZDCHubAdFx!5$CScL&+MY&2cB-bWQ-N`?!*15- zx^R_bk#jZAHi|5EF=|dUzN>PrD~`P3%BL}3?$E>LkWw>)504UC!kW&^8;kVyd%2X> zD|2njdlnkpM!7rRrStXpGLx%)YqzJrlfK%2yXMZLYS!hFNAKgb8a|mH?m5t%p78LY zNz|9k8k11r==DN@n$bqpFX{U(45aNxUyr@Lw!=z9`9(;j#I|!+_Fq0`UivULJTcJB zV4@_mX~X6{FW7pCSMFqeVvXGB99@0 zWwA*^ku|L$FF(eq)qI(=@w&s!JIBwiljSlk7rHH#(rYEY8`VOEnUkxogzu}7o3NnV zEL>fqf*5ilSmt+LcRMnuR{!zd%`DFksIP&m-;5?AVKTJI>-M;j#>d#|t*&KhuIR7D zyS^}a)Dl2Ne)GD0+rLs!p-Y1J=syRG|L zr8bJ#8%=GsI2o{6GHrC)4&=AxRpWY74VAzRCA# z&}b4OHt+H)G&8e&*X-@4ReJYD5OYyL%vH-6xuU28Zk_3&%O*e%y&s+KOfzy3DLS&> z$1;s}t>eTbq*BX4#`SF!hdW<(?bCx@M`+FMr#0B#hq~83w+*+HI#@~((4t=PIqaR> zxxMts;?1e~LuZ2K(o2=YI|?Trth$zV;aFnH$IhltmdEbjp^s}k?g~H2h&H(?zI80E z3INuJM!EUIKbSwEa2 z5VF#Js~V1wbhfs|xw=D>+4)x4iB-{V5aP6(!IWaO1ehb(l^wEbmiIR=ueC4T9B}LK zg;3u>$Jq7`@t2VDIy7JJiSf2u{`3|O_o_*1>g`=ppAP6&(zYwvC*LD$$TsTwmhL=v zerQK4;sm6BsBg`&5+epjV>pv?tIniE`Dl#pd_C8`ru;(JK&189;gi*I)u+Bx7|WdO zX-sD-2da#^w%ui>jL-!gB+N(HW2S(~M+@TZc~ zwdC%r<)S|GAN#H;sX#lq^qO`vpE4*NB{iEkX+gBM2i1+=nl@FhdaXy02}$POvs?cp zT;tFdW@d1ghf04q`x*Olb8cH%|HSja{-fbv+UjLPl493;U6G!IDpKafz2Y=xybmwC zp^>Fx94q1w+A>5Kpg46Iu3gx6AyDS_8r`mEXJrgAw+=krr`dYm(y=#dB&NIN)+8ix zCd=!gsZYnFzMAW#w|*`qIyk~9k|S6ap3 z%uE~-cqpQA>E@b0lk}{5n$Brfu7v2P?k$=lcdy){=bO5U@5j#{M#?*zWUW3A_#J8v zkJ}V6e!F%>t3b^IdCE#7LZ?ysiJ>!Rf{Ye-HXdy>+RAO5XEl|`gWnM#jMef%)@4;Q z{o7+J{EH-|4o)bhf1ZF0b~`VbTf}cyKsdM+EUF1Es^3|VAPKTn74=zqqR;xx6E!)- zN$6hNk!r`%RKxpDW!y}G%mhih4~t6EH7Y*8Jv-cQVlv{^_Ap}n-0K4yzKnc3eXP20 z!sp6@m-i|%|9HIXjn+}znBX@Fi%nXk&CRF34u2b{jr4sPqxbQ4Z-@4gs|Gi?RZR}( z%Njj2ZKW2?W!v>b&psb(h*M83R9`Ejvp@Vz_3KS#51I|G6`bns^=TpSnSj(MzpA-tc z+&=IiTv{3YQ;Vz2%TbG18in4NGYq}eqnQ&2%R3dr`D}oCFgM@`@%-*v7lNGDeooHK ze4HsE9{+etK8~1;T#kY<1avks8_}ANBjl01?1?!yQx&XElQF7i(K#SN@s8))Mn>!< zixP8g^*Qc0Zo1DOIbt2zN^HNK5)gP_x*~CS&GSN8VTs&zQT6f0;R30ZOSbxmf@ZVv zUU8F;M?BRRR`}z|q9+m$i`%!S*rKcwLfz@L!B0;VNEkk3`1IElb?uLq7`*yGG1IEN z8yF6n&c>0G9(hXe=}J`$ZdU_SIm`-Zq^G5*o7OIM+;Bo+ee014IO`$=i2w`_=Ojzh5KFw zY<#pnW$l15T$Q&9HxIg`COq&;<eF9NO7b3@<091s@{m61>ONp*-q%7;S!tOp|wS4UcSTr*&cKCZT1duPru;4K$)pR%paDMP5%Q8U!*Vq literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/Cabecera.psd b/Resources/Imagenes/Cabecera.psd new file mode 100644 index 0000000000000000000000000000000000000000..e3bd135617cf987c6aa263a4cf8a4a9da5e284c0 GIT binary patch literal 337118 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�B$XLmOD7ca2Uj$Q+| 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

{`GeX)DD8{%7!^XH3^@1J3*}&hdQNFGy$f2kk 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 literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/Thumbs.db b/Resources/Imagenes/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0e88c293897a8289f8e969db5a4097de08964c08 GIT binary patch literal 7680 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 BWXk{m literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1021.BMP b/Resources/Imagenes/WaitProgress/1021.BMP new file mode 100644 index 0000000000000000000000000000000000000000..e24987644cfe4b7840bb9cc120a5a9f60102e056 GIT binary patch literal 1550 zcmeH{u?@m75Jf))G?6H%GC~?!2B2pTHgE-zmw_Vb+clzo?9*85+5gYYn>9v&(9ONiUN{?y2-N$PS;rpCs7{ub7d$$wr6haWi7!4y; zm-)gVUc)%5Gc1On!0_iN^{}_%(+?l&)>{Ao literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1022.BMP b/Resources/Imagenes/WaitProgress/1022.BMP new file mode 100644 index 0000000000000000000000000000000000000000..b792f59ad5736a64abe0f0eeb14abfff4b9dde58 GIT binary patch literal 1550 zcmc(fAr8V&42FvULxMnY1Pl^_#&eGaMKDhR*&W~tAT~F@j6;whK_UnV7kGT5frRR9 z?@!yMd!k?Z+Bci`I`YwkIK)SI7jMacC~|3w^!ZWxS6=)fN!Ocg6hhQJCMgWU$2s>5 zC#us3fhf;&#qf%t)1hH}7gdKJbLEPW)#Dg*`vhChz|eP>MTt!_(W^>Qq(kuj|| zJ&%pm%VC;98lWHClNk!}@0#3wz25y>?NUKr*5It-HN1%Dq{1n(&x@1^#QwHOqPgb}hNDgvM%{(yqd|B$ zj&seq{rKoiixe=@@X)x2gnpc*&B u0sU2n&S^X!x-XxV(HCi+ly+TL*j+Xll9kbnAPBh0BCayJ0?*3g`}7Ga{ECSH literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1024.BMP b/Resources/Imagenes/WaitProgress/1024.BMP new file mode 100644 index 0000000000000000000000000000000000000000..798cb413bb05b6e856796c12abe8cc3af271870b GIT binary patch literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9!fK8iR~YW@Cf&yZ2jz^zx-J zNKa<0;9<_k^mA&^mp5A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z4AOUp9m8Ti ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88%~~rHvj+t literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1026.BMP b/Resources/Imagenes/WaitProgress/1026.BMP new file mode 100644 index 0000000000000000000000000000000000000000..63b1f2fc25d115559c28de3314ea2c61b85ab498 GIT binary patch literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&Wh8te}euai0hFtr0 z6%9ee4}Lm;hJfNgrvTkRkvs1ExPyiu_U-(z0}VmMr@owmhN$C?b6?M*A&7l*Ud=*7 z5b>-B8EA+)?m!C+AQxgET3`UV5OK7?0CKUo0~k*b)x?u%i37-m=tWB$KrTcaEpY(3 zkaP-4ACUY4&oU4RdXhk^8yg!LfO!{~gMplZ0>Hr7ym>RQB>N96%7CE)0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`?q{R$013}5qh zH5vkn1DyhN15Mm<=f@p11aU{v!vZu!TX&rMdKL{q++lIm6b;eV9cY08@4g QuqXqD3Xnfg092j=08JLGLjV8( literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1028.BMP b/Resources/Imagenes/WaitProgress/1028.BMP new file mode 100644 index 0000000000000000000000000000000000000000..c9266e2f1726c55f27f807699bdf5f715cbb3586 GIT binary patch literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`Q@yBZBa3_tkk z02%^{1DyhN15Mmf^soR8LEJI*-KFrFZ) zDJRhq2apRf6D@H7xsY@UN*|E?0?#rK33`%1s~Z~|8Gv~gn1g|wfdat5*t~f&uq68r PEXshP0^|=A0F|czs+*fv literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1029.BMP b/Resources/Imagenes/WaitProgress/1029.BMP new file mode 100644 index 0000000000000000000000000000000000000000..a8a7b404516ba3ecf52f2130bfa56801d85a54e5 GIT binary patch literal 1550 zcmc(fuWrI{5XTPzh6I7)5im#=^gQoDPz$CCNZ(;dkeg^-)h3$lAqGg0gb>KYZ26RL zn7B+VKR3pB*L$Uz_Z{QhuIe(^JRAdeI@T%}{M zesWN~$>!NX`S-({!)`QAStbMOl8H9swE< BiroMJ literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1030.BMP b/Resources/Imagenes/WaitProgress/1030.BMP new file mode 100644 index 0000000000000000000000000000000000000000..97e45215bc13b13201e50e9a5d60a7ebb300893d GIT binary patch literal 1550 zcmc(fF-rqM6oj9JHiCtfKf%T_!P?&c5v;`KDh>A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z(np^o!(u*mhaH3VJ$ULFq@P!32I=>cJHui= ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88(Ri~Hvj+t literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1031.BMP b/Resources/Imagenes/WaitProgress/1031.BMP new file mode 100644 index 0000000000000000000000000000000000000000..3f7eb1e5210728067f9d148abb3868deae460771 GIT binary patch literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9yHV3WJQ@z26$7PiA9-^yaHE zNKa<0;9<_k(bJ(pUk;zo4AO7jt_{+spHoB9fy9K5-SM_TTMr%w2I&{gxk38qy1$kPXvx?X7BA$~9r^q%hQYMi2%VLSgp5N*AT3Hx%C!UW6 z;o&&WF*~C=jSv)tVW=|Vznj)YgYY+02O1XVxq%AXT-OE~kM5Dd4D zcXpZ@Xnc3u8Kk45y>A(4-cd9((D>@IG)PB>X$DmDnr1*XZkhp2K?ncI3$<}3vcZt7jAjHuz)co&mC+S=R+ikS54Opp{Qv*} literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/1033.BMP b/Resources/Imagenes/WaitProgress/1033.BMP new file mode 100644 index 0000000000000000000000000000000000000000..bc8fdfacfaf3fd00c06f444cede2a9cf50846655 GIT binary patch literal 1550 zcmc(fp$@`842FvULxMo@2pA*;jpsd(1TzI>F9Tw8^LqnuOAs^IB?Lu6f;hgTfrRR9 z_owaBo#>ZddyD0uCm+p-V|;@5@s5m$BA2enkRRT^a^en2y4~$pAw=C{lENT-qA0qD z6V+*iK$PdXVz}0&bzu;0LpfkbZ;3Glt6r6{8i7H9;g4f;T^rMS<+C)_EXTZ<8q<2` z$H`c;9Htqh0s6r`nc*N+4l^92b@fB%)X#_R%Wq}$pv_3>IF5zgWrImViDqP3#!KdS M%IFGtDEasF4HBfRLjV8( literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/WaitProgress/Thumbs.db b/Resources/Imagenes/WaitProgress/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..68464d9b5f1c683f8a020a9a5a23114951d0c6d9 GIT binary patch literal 23552 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 literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/Watermark Ficheros.psd b/Resources/Imagenes/Watermark Ficheros.psd new file mode 100644 index 0000000000000000000000000000000000000000..f89490a9b04e5554ed48c9e4538377bbd8538122 GIT binary patch literal 462918 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

V4vpR|XSqeN=ks0c1)*P|W|Dub#P zOR12|QP|m0VQjY-6Pa?9yTc+!sSr(u2fGsr>m&fD7zp_+dd?Wa7zB`lDduZjkY=*=xjm@ z=L}kK(i|9&GLd6LwMM&0!y!j^!^)=(6-Zq{Nsdw|0M7`u8wF;Kaf}`_X7p%tj5S(} zL8~zsd`vsIIa-5#OaNv{;uu)P7=wvbKY}F4ju2zoMpHT8Xce(u&Jv?O0(O(f6r%#8 zFQT{s@*|Hp(OHl_Mj4HM7sfaV%b3xDF&YVyL$D>lLAbmiNud(VWXKY*We^38U?akW zEL&;Hm^3s=Lr9uqOj_C)NLHGYC78m-q>UjNEG+;BqRDTLaj;FMp=(+@EMz54dH`fV zJ_G*7m~&|&T~EUnrD;^@JVGu(Z3Ay-Gqtu5P9Z>*rlOfiYnlODfJ*~4c$f`_@yIbo z5GEWZ5={a}`GAtHrlqIDm=470X%eE9jv1j^>47vgJ&i4nwDh#JbTsF1nHB+i$C-w> zP+LJ1f;5UXP(!9UVcxRwVjyr6TpNo&12@?S6l2}c#-_7Lri-x#OwRPN zutBuOS|BBTtj?ksYo@!%!%h{9GJp%AVl3(YbO+T6c44;;7Y5;KZQzvRP1iEUj?FN} ziVS_Mi$t7WXcF`$s2%YBGFBOzj*#?A44l9dUXku+on$;ys25NaE{H$z$wT2 zGTbN|RIChZtcoT&95MrQWN73x$A)6H!(d0QZM6_$AT)$@KIPa*$n3Ta0?FMv-L?$? zF^_{%>}0MtHY31u(ySJ;M22HrM#i`dInK%m8J95*CsaK{j5A>)9>}o9wSwyzE{?Rl zEwFr;@gbnu6Ns^Ac@mdBBxb@hoN;!X$Y=xUsE$6!*P$8X9Nb7|TpFj5WOgu_5g6xW zAKIHF(jjd(L9{>w%c2qhY5)cRAX=qB_FLn^sRU)x%B~D6(;O!=m2qHZX6U#~KE`Ec z%5l!jaijnP)=XoZfK6ojnZnr@jQuQV*2k$Zzl1^BK`rB~Ofl}QObyB7bcjZ#iUbpq ziAr9OgSx?P!EcTWz#}13A1hPIgd(}3WQZ2w7{@+>89XVO%fMmM7<#9wXUg$brh9zm zc$}Hz(G;pWJ~PuCFES0t)_5gzJW#=DWI8FRBgz_&Eg6r5mQ0PTdWYMeDc~}&wu8K& zOQ18EZR16j4tfctKOe7AOCQ7lx)|Vcyb4n|m7;?}KfHdy1Y>4>0U`=p=% z0_1ox-pta*XN@0kWQ7vT%A!-xvc^ZUL>e3Acn3@Rc#SwRfiDa(oCS+HK7t%{Qjzg8 zs|~d+#F^u*EMIyC;4OBb2KkZe zq%aafs0WFRmr7=v6SeG#*QhIaaQj zBbY9Am_+XX01eF9fgEfRFk`o&8E6#%Z)LAW=yiw$%60>CuE^0r2FT1+b8>UqaxF*} zdx$H!tXjF@Ik~wVCvx0~<r8V~rz_1hq_Za4$dWTpaaHXvU;S_RzwoNr}NUV-lVo z$U3+L=>(GUZU}}GL_Tc+)?7fgCdtXxq_D}8CgY@Kl0F$@O~#C*q9Q~W`EW{hsce^% zLnwjFh=}YEZ9{-kxEfU#C=)^f+yfgl*-zCePe8PZI{7E52=YN{1q9cW$&=|cCyObq zAURo`LYl?etBi$;5nLi_)S>BwF4(dieJn&E9~g|u4ni`?ALQm_WfDqSljRf@?E+I! zgvkMI%4Cye^7s%#aec_l2Q7R;Fee*Rl*z!TOhLXiIV>1KeiPlX9 zK|U{+grNmfo0Bz4#duS+sZ*v-Me(WbDI`sq0>ur9WQby_K1GFO@~T6ZltKnE^(@kq zDO0@=Kbz8mq2R|qz-aM+7kTv7DLnF&H>Qdy7pGcN%&8hxZh`2Z>Yz3-nINa#(wwS7 zklfjv5||pwIA9_$a%vb$Y=ds0iZM09&SdNa#+oXo$*JZvc)=ahrcRwURZdfRl~dJe zQ#-vTA~e{i1=wsrwUgvD6Dbb3DA<}7!V(ptvQ*whE|3nb732evET?MZ`76ei)8#ZV zy?vU+oa76jFF*#PIWtX6Z3h|C46N`o1<=3`+0Rg{sZJ_~KGWPb27-Vm1y$8))2Er! zt!eJ*(;#6npj?`+k?5Nq!Zz5^JuqD$5{~JJ(Lv@k6&{Hq)-;8xC>$ql;X_#mi8K8iV$RS=u`7z1Z7^O!2=VhX ztXaS?OP^`Y^3POf&75@s+Qpf2)*C=(fV?1mro`GdQ$h1w-A>Li&+Lr38LBNEZ6K=vvJOn zvmtim@C}U#1Xx#x9IAlJDGm~(+3JMDf3kwQlVP8lj zUa_)A6c~l5S?CBxn$WER2Za{O0=3I3pj(A19MXRmLXW4g5GxKkr6*7*JQ75l$QPu~!QU_R0>+Fb)MOHT-y8HDb!3PWsIFv-F&a`53PG(ApRlpeEC z@gUDEw1P2qHpP(53JzlwhEgt{2-Ki>WRcTTROIm#`8`?@{x=b_$n@w%7`zC1MPab8 z7Yy}_+|c>-djtXnj8>5WvOG@PBa1Z3(c$y5onl0h4}@Wg6c3B<@fKLcR*@)1MsZPb zF`5?pNGvKgAiiH@5%+uq@-h*s02*E74gjd4Q2;1RI1DltLBuq41d2t`Ih1#yG>St9 zP7t-U;0qLMWH!-Oq7RuQTqZ~b1f$qRZsf{h(+0&LrCktqv)DlqKu;wp7kR;1ptcn` zIUOPz6`_b#B8v4AvpA%rxTK`G7^^JymV}Z34J+W4XruxJd;$hhf;k|ou=-*3Lc0hu zi=P4DmSVF+EiEaPC8D$y^fo#eAjt4gx685@Rb)vdmFJT&Adv%!OYY68$*~r9#bD@0 z{bjL(VVkASlG4(Wl2Wt8Dvh*7fZ#)x0&S^-je4n75`a$B)ozrk@S7#wDWx+Vidhm$ z1~Qe}RiIg@qLh}HrT!AlZpw^C_Mv|OoMb;_;*vI`L@h&uGNrW4D0P&T;xJ1E$VqZ( z8NifX009ULvNV*;d<0EETy_rBQi`yW)>4fi(Krl*Cc*?I7fO|~a#<$I-z?Kg%gRdi zGQnh&IjLG%DSV|~+ZR9^?oQTFa^ggkS!N)}C<_VpC&U&3m!B`}s!+-+%!A4oBRKTuLuo27;;Z#bZsyaCPP+Kdb3A<3!^kcRFxjvCvE!D@WSxrx+{gJo7Y3Mv3G0cefC+A*)DW?qds zPt+LmWQ_!=^J=h~^Dy>2cg;L#Y>)_%^PC7~6;V*poOJ*MN1B-Dv(pd-LxAix^9ac3v%N*Xr|BNUifkEehBE8O42|PeIg~h;SJ5R1|8T*WGSQEBC7j%u@)Z#h?fn zc7(wp#GI#5SZl4A=dDG<+If1dioTLplT3uci_Q*6^X8e5%vyzv0VK&fD$|m z3LSqS2T4N$&@(gU8L-nJ6hV<*CJPlfz(g^#&Z<@GYQaUV0okfkYU>O#VRd4~2?Xqs zwMret7CT61cWrH*zg94{liLU7Q@}jORj#E+5nssDgoE5bHG|#*IsYc`RhfUtasGa<1o-yt*-+Q zsjG*9Y&!eu>M?)4(>9r$V%3ErltOTtsN`VT?5sgEgmu=bgWWs0iv(oN$z^K`QQgql&Y>S&k`d?t)+ z0Z4Pci*54}>O>5?5r%`ptoa(5IuA<&i}|KKKh56KA&U7% zgNjJ2QJ*gx5!YzVcQnq&Az3E7XbjAEl5KvY0VB{io(BOWOcLB`Y@4r<`_lZEc{IS9 z&l4K+&o_!D19TDe7B>*{KMZo&s8Lm5V1t|=05^k9qtQLTk&4<-2o5f%04P3Ie}1y)nUf~MdBw!mx>AhHvQ1rpqBG8Y7zoC}&L zkOGXRP*QAz!BOy%DxtK2TAP#wO)q0W8d3)#tucT));lpBCCCSYt;s+? z6*Y8l(&YjR<>UefH!>E45GRP_VRXgAbP<#z+|ihZs9`jV&|g8i*d?D7Dz6(7AcDt`4)>s?TaF{*VH6tD=`rCk7l&OAJ#8#mW+x5Yz@s3y8SB_#<@vm~l~e71aZal|_hD zmo8bVFA+;GfX;&aDD?@N1%d=0%O<)8mZ<1xAi{yh)W<^WYZotJ4F+4lN(SIzEEsKx zyTfTMRhKMX;$141m`fdymM)b`G_WOdskKC3s=)veYzedw3Rps?TpDgmltC({MFMei zsj_6L$#Vc%M+FO_2|s)iQ?-K(s7_9Y2R)atwS_aqQn?Jd%a$%%YA!REie;$244bjc zxpWzf%Z#82@RtEHV!>hUkXqpnEOk)+G97X|>tb0OxQSBl1L#Et%@aD7Enl{5xv@+v zH$i?-dysVSR&+iO3V>ReKF2CS$l#XBGIk;ns$A*@CT>m0wdE*oEEmgKKytaY%t5_i zaV=X;u4Ou!TI{p^6k{zXNED?kTP~NGAlodLDa%=Oa}~q@$8v$y&uJDrNk`vhs4SOz zL3TAN;pCpn1ItwSjTP2%{|d3(SfMOmA;HY$Vug2k*ox)$v3v!r$_hC2<<<%ns+R-A z3g2=SArcy;n4~QaKmv*tuPs*ry?wb{Ayx)f$d%}@Qm#-}u7D<1erD71cJytfn#;Xh z*@BLYhLwI*Q{Q>hG_K~ z09d1uP96c(!CnbTu5nNlOTiEqXOf9RO{BOeoP#V_oE=5gU`4LB#$2teUZZo4SYv>< zgU(>=w$;WOb?ut9#u^t^I{a(oT62v6C%c41+DmK1YTp_ajl65xAxpx%W_24x1Ed28 z5rK*zIE;`)~#PJVQ&Zhb{#ez6j;}W)j(Bc-C7?+1h6U@h^@<&l&juQs4&SXD(O(X}_sc=h3Cc$N_z)LQ3ozuoo z*nt$};0Uo^-{4-qVLi?b>x~VFWC~fo0R}Ro&jw)F(9KraPVwdj2jy%q*K5S&dRH(3 zpg6%ok{5)*HlXKvH~gr#VZGeYx?Y8H34yJki?E1|MCiRy+puv16m8>%4Xit$Z`c^v zpu!wLj1T`G(>B)LMp^#`eS=0t4V$$9kF~+c$N-T7B1xeTq75*9vQcbk2epANp@+WF z+Ta71(2b3~sK0%7auX49BO#C*l#Lrq4q`8$;pA{iH&F)2DTEXZ4g<|*Z8R9OwrS(0 zjdD{jtefm}BZ;)gO$gj%Y!sUSXj4RonK-N}n7Pr#IU6@gMCcp)Ql3q0?@;xPPU!H- zjR7tvHeudPFQUli&HhcU&6_rD#$j$o%gy>Gx!GhAn**CvILPV+86Y3%txbMFGeP<$ zYhwUpZ3^vxzlj~@CKU!5#J6dqvB?$0|NLfwMno3=x3dC`1h}XuQtj(^V)3-UoPM|;>67?{~7XM}oS;ppYj^orVTQDa(TfxoE z8oA8PA>4!HOPd{Ax8N|h7+b9^a%%wp_gz%!NZ}V-C48jIEfHI{Ac^wm&|z!e zqLJa^mNq~*3$O&`5_4;F>lUYtrfsX(W`O>@Rc!eP(< zVW@2)8|Q8Zvrx_t?ARPc@KC_E!?)eq5wH{NB%s?t4kC&VYS=Sr6JEHt&$lF7o3rn~fbR1mJJ>b&&)t7JOv2u$mw*`!8UukL^i~9m@6{VrQV) zCJBBC^f{=lS?p+U21IZ_$N>3*JkV@HlFcgmGZMnrEFrrI9IQLqnw1@Fv12IO!Sk4e zVTZD_+1M$X&w})wO7l*$`NB?T^Uj^kJDUSLH4-FT#!lHBva^}(lfE&3M0(>AHCwC1ld-m-0?h$+C z9(C`Yy#bcQUjH6z@0XB2L*et>8_&%i6?Ng^mY29~2*IIqx1V*56myT02LKdfPhhXu za}LxFGSEc_$)K)-lYE(6djJBEzP*UX26_y#&H8uF4T*ZzI`=+vPZ`_%pW_6Hz6 z#}LI{6a3SCE_9^R1SWqFyuMEbGB0bN?ic&cgS;RU;sC_hT3KJD>;i5bYpr;Br5Zn+OR-G7dWBJ|}ti?N<)$*AD>x0aQ8Q2g&{N zfVJN`pzS|^Fo^mA9jdiI6#9V!WIcdxFi@;{z!9{#$bl2!5p=-2-$87D8^R2P6Zh^9 zv-2quRmnqE_27Yn@_+zY2dx7RXa^1kp!*KMb3h){$Up%=deB6W_karyI^PHOmIEJS zH9ycI`ayB%M+Y4T4kEwxpb9Qw3*~au2p!}>%*JFL2qzOY zqtzfR2NA9ips=8e+%`1R#;PCC4jwvmFmOmcc<7*U$U3MTI_N(H>=5N47x~!DQ9%PD z_NvnZT!#)Ggz6-A@K7uKmq0pa_zqf!twY-3 zLx&E_L*lU47QGO4TMR%n54kAd(BZ?aw(-2p&cP=Soj>HDx_~GSdU>oio<|%!4=xXj zBL?WVhXED@8Kj~XhC@jRhguIiNPyisWWsMp1rEE(Nn`?od04YWCn6zX54faxD1?h3 z>~P>v;0WM?E*;ShA2|$BJ$&Q{Y928T8%F|%CA$NM)gy=5Y96-Wv5vSAjPN4}P!1oF zhc!}64wHwKBZqawcu}PVTxYYr(qv?Z|EP6D9(5i$dgSO)2rdXD>qjh*gwqKPJ_&>G zhyd?29ytoch!RKrpbw6Gh|bWMF3|voTaSoifurKs`J?KwqsKlzDvq>+^rH@HcH{!L zruG;UvPPYx?L4ZGsKQ{tYex`|goTq)0Efv*V3e=2!NCrKE02kz-ecBL^O$<{*fDw3 zfG(jMAhKJqIgTBL&p4_aV^<_#+6UQTa*%dR#|-kQMmE14DvpMb1Ky+XP*n>gIMRf! z97RzY`XY=zPRBpQdmNCM^kZSij~%1)I8OgD-*Nqzbv%SESfGjH?Xaj&%;VNE6*lvj z1M9Kl0r-3%lZhhV#b5!nhXt)|@)3lHN20(zo zvI9^Ej7B_gBAjA~=roRpumBHAsIbZ77IL{F;g?*-gvmPLraF{M4)ljpobVq&sJO%uq)>AH6=pc&(IiQ?6X(Glr zrIE+zG+8GVJ6qZ)sgNE_lcyY%cZwsheHg$Bnv9c9I8L5~iKAH3U^;aH1M27_Ph;-W zVB(Z-?Ups}iy!>zVGj?ISH-J?f$ zM_ZgC)11*)*-H6WwzG*4!Esr|JRM29eUo0tL!? z2DUb=Gun2O?iGr4nZQF{Bfj!^=pkbh@b$9@H zsC6)^s?%dJN%uiz8%>@K)Es@#03uoov{t??Y_EQ>oyTv_Kd9)Sc{?QAxeQVf7E^a0 zbZ-9un6QJE@m7nrXJ8q;y@{a~WK}TZX_dKt&PyMp+w&c6d$gm8c`V0TWvpC-nUAsl z?QtOpKZj>v`yatq4i|OddV>kjLB^6&&k~It(f0lwVY}z_JCf}?b}%_?Pj+nI&QM1- zC9Lh(uBQkE{I$hGn?n(q1&0U5n%iS)`HsqV3SmblFnig`xU(WDR(jLzBSld{w(rQ` z_|?uGJ9iYXojZ5xX3I6 zpYEva+>w)z^mk#nqSsV}9VxScqDaaD zRySoksU(u!GN3n*+xcWywA1ZMcJA7>GsDfX!Cjp;a2H?2Ua=Hl>8=1gFy8G<1n|3B zrNUk4VW2d*oxdvaI;@jiMd<8hE14LEY-eW)+DW{7m)o81s_)*lYxnM5yZx?!Rd(<4 zyDPhPyIm2r(oFr~|Wy_G$Cxi5qIy&aaOAPp@n+SC3p+S|egF<+W;&aA%oLsWc7 z6z~0TZ;qat#UHx8;X^A@&GA_Y8%A+&@p|jvdJJ08Dryge!%K_~EtJ}-tVFFY1_qA$ zaGxH1?DZekUwUC*_^^#-`}~J~A6@$@AMSG>2Et(_h|c`OXdjF1Yhdza?GGREWwm`b zKTI?xgCO~6-@cFX;`jl&mQhB~BNjimaS_NETEDMW$m-dbNLjjXxCu0|U|&&nNcFxC zoBJMr6zv=MDB1VXNBdlH_>cU)iXsGJ{-b!`NBf!|jpWNCH72N5glveqs)BuOz-<3f zlbrJDzLc7CpGa|``}bd^^z`hHKi>awwx3P*Cm-+M|8aYNrw)?)KX#U8 z3p*^J7J;mYJqOhKB+*p4;j`q^&p!J!|IB^*+s{7z z^fLuAJ%!Ia0=D=p#j;OF7|Z~leb!4#r55HOa|UjFdV!_88O@weKglUXpFhJMeHMK> zh-Fywvlx;-yjG#1{aLW?%4eU-?Hm$-IQIIiu94)t^^Y`tg+i$-*uv-0XZh#xXP{~Ko>re@v&)H08_F3I%;ru*&QTzOh&%gNMbN2i&yLF^+b| zxy)QM+eHnf66!RFZU$hyZ(|;+M zTBz%*=*#C=>#GFLFFo!6*2Mf*Ri!vl{neK_DQ9UGwNq1h^d;j#C{y{;RC)tBOVz|9 z^5J}qlQ31^*VV7S{_5+m9bSy*6_a4r*Npu-e3fI-*O~b>Dh3)#x2zO>-R4A^wIB_+ ze2c$w=CRY)>}04Hko9~Oz8UuQH{X2y^*20UyKkCbcgj-&KYZiAj?7w|4!iO-myb2R zCW16U2uJi)+k`ulsx|mA@I8}$UC0HemH2-3b?-Nb!@9nyYdCN7o0y^QoA7ncybN>H z{Wl#FBRwf8m13lMN?Z!y@J;3GZ!*(X`NrxIVIuixQ!5vTMc<@f*KMhl7HwSe2wp- zL+$VUp?*%8hozVk9m>8NX1ov`I+O#h$^-1as~kc@%|i64p@YEUqMzx&B5MnRrxFC} zdp+NO*Zw|y7rtjX&ggrle(x}dz8_uy4ClUk#n7bG^xgL<;P!Vh$pN7LyF^K6Zs1fw z9D>QR^7NdKzstW5KLpHuADQ{@>py(|z21~ej`d-eP}Pr-`!4#@!t<03OHM~OZcIpLNG&~ak%fR+Utj5hky9N-ou9>I}GvR@I#6PV)@D8 z9}XXOKSYEbCDtnbhd-i1O`n28kvC+3NF6aLWmt++ga>Ww%Hbo8!|{>BM{XaEe&}LK zld}(q<8+4;F?!Oz5aj-!+gm|c`lyA9MKQq2=kA`hmY{B z9zJs9@Zo$YbHpEZL;m6Rks27vPB0#K1g0a2T5{FMS%W`ZSJ{wgCRdpJV178#clg)T z^_GXczQa{(MAZ?NKAIk>9X)dN$dRM@5q}gRM_*t_CFME8(ZM5$%0C`yqOw&;Y2lhw zQE8JDYckj$89W*td2}?;j3BIm^_U+Zs~j=T?L2xcqtXBslX2i;O77^d z1^7Km0TQrqtYr<6HKs@F#&h)8@uT7Ri(~QeW5?aG=y(g$*^fO#0RGXtHo{xfh zF*HNvA*1zZhK^vv_(hIYjvh;ohhvT7(Xsq^{n&A4XiDYyu@b?(>@TYjuVtt$9qNpaM496O#{Y)m7Jz63g3Ha+&M6UR@SI9`~( zCr&W*M9k@qM<*J`180pi5Klsu9Vmaq@7qG)a5WB^xHhEsm0e1#`7xSWVj zoQz53C-iNf2!fL74@K3GX`$<+I~ASGP9-N#ojTbv7g?P7sj7|1@x56Q`%{6~olK;`3xt!O zjQO(RshBwDOsUlhog)oGowop0PM*q64!5vK7yTJM4SEB6YFBRf)bJlq{dkI3AEf-~ zPK6(ms$h%Dtmw8<67m|XkESBAhM`4NI}I{c`T z|FLqKpjPBxXwB0kBdjhYFPohnDC|t@baW;=ot!y+`b>_SpAL39e3fJ#dxqUafJF3S zrFtiwrbHi_f6Pp!l*&Rm69s3Y(++Dx*LMc7XR4>q@Z{u*TA(hA$f@38^)qKEv%a+| z9SX6IbWH@Osk)NPQ?=xoGwJD=nm7 z%`*|cKU+C-7A;tO_6!(#g|#@_fKxjotEtW=XYZT(=rkm!8(4bg(b+nrdi%~sXByam z&CSjZW4aY2B0A%+yaXekC_9@7;m;;&cV~lyHYrGRIQyHTyJRo8@-w646tA6?b7%8& z2*-xb_PN^Gb3A8#S@7qwv+23IQsn*F;f14sD8dqD{Mm4>a`s$)w!^yl?4+4=gp^XKFZp6@KZ^XCNcii^^@^n9QJj`QwZavqpJ-#XW+ zq8^gre1^sN;oLCGtM@z#j489u;lkRCbHIys^>e@H2Qhy>y5P=NE}Zul2G3V7oaaI1 zh4bexsN&Cu3qj$93vJxW`3tFKqYK&jm~37^Z=ZiE9p@Sh&dqD$Wwt<7^U?m~LUcaG zT9`A78J0rdAR4?-)o2C|<0zk013k)+c>y$7f1ySZH!a2H)}RjS4i^$NJ4SRCEJUJk z(u-ZZ;4W4#T)fDri|kffLVS@q7u%S#w7&VbfOpE+9kKaD6eRDQbXe+m~J7X6f8tOC1enTiU+vb_P=g*Ym6 zYO0GFE1Fef@K057U(7Bhs`eEiyp-|_Y@nPGF8QCLOATxg8^8`RikLAmv{WJH`Ylst zsd0Jb2*X{Z`(maHBGW#G^LQvGLQp216r z@+nEw{2Z_*K8h^oh}AHFwJ+_zl>HoC>c!m8$)%rvzLc69U21W5{X9~sp)o+BOCCZ^ ztJ*B?#Rf$5xl8_1tw4JK+0U;OdXy5_fk4^M)PO1FFU5S_rH&$Gub-j2?0=51>gAt* zzRc+^$DGjPC&~f3?0$|f|9rUzFQYKjg!aq1Rf{t>)ZouGwf%f~(8>|bDo2+atfS3; zxXjIz)(e@tJX~;IeLR(18u(T&0}MF1q)1)3{5vWI_!nPNMITpnxvB!E_R6n>%hfBF zd5EvD=at&!D_1TnbQW5fy1!CUGP>d}cNiX!vqY;%6dd77dO4=fC0yw@w7b%wlHMkX z97|zq*cn|J(44C+>?ziTJ!CGY$&rTiN=)y7ee=uBveLHGU)GtLk8qyL;i|t}t5uY3@~0o?3_1h}_kxx$dgFQn^aST@lZ4a7C{m$^~jEC(Kty z4G|mW>XrOz<;vATHptCtMYF%!zLJQ9wrezA%ds}*Fn={z?5~czcJ->g*Ep_a)EZY4 zB?fTW-n`&*RNd{pu_=+$OcReom2~g^jeJnxo)ZT#q>{ zyB@B!ugCQH@>>(+It7W);Hr&F)q4#ZVI5sVc;f5B$k}Aku;TTR1&Pw+{mX^mvh`Th zcF>XxRN%yXz4ONP8`pVnT=zFB*Kfd99KW&bP>nh-+5z|*iSV@BH^Qq5e53bzWc@iX zw!hIVW1X_+SQl52Ue9ktH}BmD*9Xj?yK#N+1{aEDq;hC#kVERPw=JO}KMN+1O!-70 z6#_Ow0gruh)uh-U;bwB<=FJ=aW_;u3jn+-JxLLVzGrbXR<~KTT-XN(D>}IfY$`sdB zym^yx1Tn6=Q5PC71(e>XKui&8O2Lxq9xVO)H=f^&Zarb>;LYepjNRShmE3jm4Cy6j{!9k&OuE-b}< zpecnh$6`ihFt)Jvtzi(Ej$1dC%*{N72nn(nKyv%mt=s+<$L(9`?aHm&taCfu3TAnc zcehb?JHB-rVCD8L$Dw*mk4J$wFEuQIs5snhC->Iv%)m90yof+`pcY|O)o-KrcGGyo zHNWH`wnck+jr`G<-0pEo(Isn6Eyh_xVjG0AWyzGm^i{6rg0k7-L4f- zcc*guj(orlOfc2j!5I>QBGoRoYZ`|(%M2aeiSORIo81X_(>pc1J9qB3??iXeb+?~n z<<8v(hr)}tOR>kDZVRH@Iqcxri;KnrdB{Y4C#NmDOZIMbr-5ad|5vQeyt|C_cVCew ze<%^|Bntf95oJmdVTQ#3T~V*xwJ~7tFfH5-cdByDN4tjSAh>_)zuUtitaA??_tLwS zd$=j?Gc31Ma_{cld)>IGz2~sUx&z6keg`b`6AA6X9k{Cv^lG>CZhkMi>#z*-X8vx= z;&3;HIK@xzRqx*8Q9ZqfVw>Wv&)tiuxO=1S-UA|3af&nC9j1gbcWFskP`0^$AA5N3ChbFeHA;Ra z4{4^u-;eIK?=$!QaJu!%`pCBKziJs0LvMb+YI9nQ9afA~kH6=vATQAA?Nc&z64s=h;+I}PMAbOC?E8quD%!$7NbWzl{{W#6asq!pJZNFze&>VxD)4dCRM+_g z>&Bkle~y&AkkWTQX0G-uwY8PFUwLr90a5-Sy5IevDl%xQI_{?rVvB&d2g7WN)g2O~ zNfz#pFsv2sLxa!<_p=8TsePp^naD!EgUWVkqc6W7gU~j0b-^LRm&^Kx;X(D`g9i^E z_=lAT58Z>|4<9^KENeap4+kDZ57W|)Ke$-Pzu!Vwze#rw>on_q4pl<;gFzhku!cuA ze^@mqB^e%acMm9oVWJ}~^RUwuJ?g^x9-d}a|HDKY+{2gysgJ56 zdzb_BkD`a|N0o<izbntmV^T#{j3E@fQ@e}_ze!{wP(eWfROGrII znx&eL!;>cdiN_}7@uTNx9(eq#LaTiXp>64W{3v@o@PvDMQhWS_2WoGeIZ2r-&-_W% z0L>=>4A(;5Gry`Xdcu?V@e|I<6Vh@6K#F)$CO~*R(!d&{R}07*)ZAm1c=Dvh@$|`4 zhCXHB(C+LA zYkIsa$JN?zA$1jmHg>&Ll<3A>7Tf#CbCYYNZmPoF*Iea52p4a~)R>YojN`b;IVPoK4)*6cJ1a( zthYcp($b6s%s(qva8K(c4T+4JaOg2yA17;&*L0^T8pkj7EPC#r#m}ETKk_Vk+Q6Ea z!!pd5e$JUcOVr|!IkJaOgO(^lD+J*(Pcff;pX@ILd;k@UQnn{mqT zRDt*TGe^~d?kF>qWBO8L=Fh^*Rul-plbU$uKCdf;CQ}Xn*>l!-KJaoul*18`trf%k zvt$TGzUv0;xf%Cc`q}f&LN&wkGMiYe4kOxR z{@JSn7^*mt;hyJRmFHdld8O;Q?+VX5yPorOJ%3ImbRkGCkKz~y$z6lbe`hF?R<*Lc zu0E>nc~Zcc4}lV)>n`U52E<^y8Po3K4*|bnxnl~@V# zUBeZckS_RyQ=gbLIbad(^ zu6mKii@KRZZ`9r2rP>cRT?&$}?(VL3chu#(&28!E>dMH-@*?}9I8rk0Zlqd8J)x`8 z-KBKi9mAv)oSLhF4y5Q_25d}=)Oa*{lh4oEZEdi=fXeJCXO5xa#q%=vb2pi;K}-XC z%{0_^HM*-Wx?jBL&cWv|Ug@@gk8<7Fi%RzkWW8YQi@#tg(nU=U5MB=?GFVKC#h_A4 zhKv}L>#n@$4y9YO{%%KBa*JL^Prwh|R_=b$q$q%h-HXtZzleGoSPQ!a^<|7)cl(7# zHt|4p_j49n|5)1e6k^Lj9S*azha2kYc+q3e3s2}U-;=#ad+H>WM^R5_3F#qJa3TfMcrD}8_Mmj^uz#K2x($D)@!1;9!}R2 z$c2|;^PU>4yxe3@B4%}Zh6^Pd>Z*t|m|B~e_jLC5^!C{6dusT+jh?Dfy&!u7#umNY zOD{4k*WZ%}h>G5q)8^|`?BR&PAfuNBdhhh)#!_WaFMfcL`@!q?bUtfrkPS;cE?P&va4A3srjgoKB9DX_~5g`jxh_iU_YS z>FtBCk6C@_!(3nJjr)2nLM>+vM45n#a+RpJ5B=8G;%s1#dQ)^f#rm1p#o6wC1)RFA zp|{Vel?buW_&%WIg?}MQWwJeV#@xdj@~A2B3>tDqW66rcH-8h46@urs_&01 zCM8Jm^!BB_!^)9lQq*Wu*IVi9-GrzdYn7Ju$#Z?3L+$ucZ)T!$`wsTKT8t2X@#-c= z_V@AVqp$A|eRa9Kd0*Ai%9+>i`$B)c1iOCjyg%*xm7&WP9sLXj8F7aGMC55-qC%@L zd&&KXdb6)q^a?C%^i}%xK8Ly&%WXu|mvXxP7^;S4uo3Z_D`pn$?glDcOJ@>>r2*PvJith=D2FI}pszwTgN( z2A)f z%=K|TFXMdh0rWrFh)QG7(c~JnK?u3b2G`se%p1c88zk%<^bM|;LIMEra3S^Z`UW@N zh(YF(gkQBTHIRjm7$Eyg>R`aJb&a~K71#zh-FID@&zu0Uv8;$0Wl`co4;hQxM9>|(#!Z7(IH;FBA_Arg-#2(IO=NC0>u(q1VKtuG#I)-s4>*F z>T)0vK#epRTurI9D&HXpWF^cbXU%$h8u7@9ZJ7QZ8wVFOqn72oQ#iDHy; zUt)CT#KJqnar4IITQMEQ+FC$8wL*|a|GIFszn&r9;e~4{=@9?#4aQbzb+lWpw#>C^ z?Uo$hsuwv@QM-XTScH z(v`M-nzid`yRDc0G;ep7Q9FInuBBE$LE37E6qNv?bO3*UJ5RZ;G-;<|sRPvGNaiUb zjZKV*CeDaGHHWX!F;nu?VZNQv2(MrPxT*5(VK!RIN-E0>QnN`QeG16r@^NWX+Vzn1 z?IzPwtWloNIWw$KSokR;UD|0a1yhVKjXn*i3*hmvKPfRB#{V)TW|#(PZLOujQO2l@ z>&Q~~(rdwF zr2GygQQ?U+&my2~!SsmJfX-Ag(PbS1sY~MER*();20c6;@~RvFjRH$|N`O2leNEytf13I)w*bDWw!0+7Vmp+o?rl`<@3qw*}b zH_J2Lyf>@L$$b`KArE#&U=&9=qc{__q*=_-wr{H}_h*ms&T6?lf7Pf(D`p;-*L2F^ zGV@mmUcMUX%W)x(L1}zlctHGIC5z(>#FAEFVU7;tBrloD=hRgwjGK7bpTUZ11Pm=E zriuonXzC&TjC0WR@h8XGg*gc+mHVu1RndDqVKe%48QzHVylQBlwX8Q$?%eaD4M_qloeW&8>LneJ4f--_!-qx^gobd}*nRNil}ZqE%%usdWgQ zyTnqi;^=ZETAY>_^%G2Enxc0DKqz_sl}p5=n&>pLYEDWuP>|Hz$i)69Ruj->Q7aRI z`GP|Zza3qCeO&;97i>WbsSVD0Nuq-bCo?n^2L4OHBL3xX%z{GM|5eT=-mRhyk`k zjW0+Ss^+-BEr*0MH4v0?K6QZ%rcNCM*;MCVF zLnrqI6PLq3fsn9Fdg$pXxjedZiB&^J(6)rcs!)pNFR$2x&fIt$5<6(I@wuhBTI&g% z#fEkl`hQ2Tr^OH-X7X>DNR7lw(Oqkr$$$0AAM6iz@Q1&FKl}~+;cwvodw&B_CHhaI z?ff@U|D|YR^l|h*M1Mc}Ao{Zf!|3&B68@h?b71(hXj?Qn`p@zHXR>pM-zNU+(O!6#!t>t||7kQodds-}Hr{k5 zZHxXU{C^JX_UONfHb?&p*%dH+82yLQj%W<3-UG2M`rFa+=>Li4@juG=*FgQ1Xf2ry z(f=0xOLYE&XcL)r(f<^^1J6RHj%MEfNyp!ac2ivu{nycAy5~l-qW>{k4d2e_uSV;m ze+2K}Vz+-1y$R14@c*2?zX{8qvgbdF_C$Y&o&Pq9{}$&I6fcSX1uTD`^FLyyl>e1z zP4su+{8M=TZ_YobJ`t{sOj;TJGdTYtH~J6R;vYx5*z0|K>G;R={f%f9H@$(4HZW-c zH?|>~9ZjSAAE4oH*+x6)S%-!t(f<)mxkZA;}z_+kdD6=ePa9kV{Ypm^zMXl0XO;gxSK!Y7XBIeZ`kMUXgr1%6S#@p z;8vjJukv4=`_I_%!{|Rl`9^-FO(^+m`~v?gx3-1OcbM?+5wGFbUd8j5@D_sJO6A|h zTM_;H%-9U`KjBWtplz+8)<@sN{4cqeS<$}@_f{tUU2f|=5dS+j^=|Z+xved*{HNUc z8aDfzWR^tx=>NA+xQ@Tre-ZsV+}TE^{EMhFs{Y~m!wvlZ=mth-uZ7X=*W%HyjqZ6Z z8r}PvCyLB+&J4Tq+SAvfKPUS0J}kw^{(1jvl|O&YzxF3IzBameUz5vIW?qBK8*}zr z-LkI{2dpxhQsuSL4)*-Ds&%>75@7@gW(G=e0j8pPEr!@rmDs$1H(~IY11FQ_mrNor z$3fN@9le&17Ds#Za7i@Tuf66pz!xf@k6vps!i`P<5ORzrib|u=I(29}RWeMnn30?Q z{I!k}M7?Sq(k9d^iVD+_zE&%cM@C0u4ueQX2b1{R&^CM!H^(wY42|NdMl)|rKDs() z^q4WD{g^)*J!W+A5*E+sG3n@G%36gWj6p6|Q3F(Cnxkt)t>6(~G{%pP=}*lYitZ5g zVh!VPW4Pooog&tQ&mYQ|7&jkNQ)&#UKQ5et-(Z4sPh&>>z9J#~a9C9CGTJhxP*@G( zAB*kl>6Rd6)m9g`jaR#Bj#?siXPg}+fMtHBr-gN4&#_)C$Gn}z94*i&^Enj4mvzpe zxylKNuCeKucz?+WoW2;uotpZmWGi_`eLkZ^q-_uxQ zOc+})sK&Sg$=P9CeDbmUj%J-DXv|n-LK4P~Dl_QN1CC2UP-QGLgA|ntrC1qRB9Rgm zV93go3mrQ!=8p>=`wqFqv`m~wpdT2Uh}0EFxtR@aQT15w*pV-V>P93=!+tZwXqqHq z?3ff?w!L+DWMyMxda|+gabw5og>_sTdoea1H+EbDj~V0O9M?TI5kT&vv4R~^>)1qX zeq0zE#{C9&94{z+^#KmEGGJojjK&PC+Q#Lg9LJ$q1yWGdgZW*-V>HD_Up0ksRikXe z3hz`xXywUzBW6w$$4oTXDw|>9$Pc{(2Gf? zZ6zE^t*y0+75I6y51!gg?lwat<$=xj zl$zXOENt?V1pc zZ%(KwH(`7afwx4^bT=VURvBj|7;iQq=IhIEnG{N5G%ZZ1n#{Z)9zQ;xFiI0j?ehGD zk&5)#r`XiCBhxW)!o-Oau-1e`XEvd(gBKwrWic2u@O^6En-h9Vq12fejW1$p?VC_5 z2=fWQDXB%LM|nRH#pZIsMT$XwBD+wD@M}d^J~0OGCcHY-SrU*MraqC0E>T{+$m47m zTX3HOaZ|_-6H`w4ZG4@wY(mD=0W1@VxR^L0omf>sK~d9$b=WYHjyc)H;TkCn<_xC! z6$SjAm<2mC(!pY1l(~9aOQ+4uLGTMeC;^ii6T_r*Vr0ghOzOv;V$7ZNkh6iM6IIcT z^Ek8m zh4+;Fq*?*gTm(;grGN-mG)I%NiM66jb@ZSzQMr^#y+{wjhB)Y(lcI^Te$0XEofIba zmATw<(ZrmbrxrM4=sXddq?YEF1=eO-PQj+-6EhRY4@}xpVNyJK(&ThfW%49HIZTQs zXJ!FkrXmw24^FD%O`0@$a)Y`rjRBJ#_GHpCMxC6LP&b+Yqgov#Bdw1QwaK)mlRFC+ zHaE#l=C?Ad8V;?Db(kp<0b3e?TOb`x9w8+n)5pV+$a9mbrZ1OLD{GUqC~}bi9z*jO zib2kNa;@NK6ErPRoEja9;-n#0$R^SQB--8vdN`z%zdp=cS$A9cMNf+=Bf=W+5u}oY;lb=PuUlhdkJ;H zv_+E}k}Dn2{zQ-%wxmyb59 zPMJD&%9MPnn^K=T1#jw9c&83bN#y$}!z^V5_(6rKl_^v6DKX&U+eOM1a3;{A5?5vD zXlldatjtDJGx9xH@07+=Zel8TWcZvYpK5C8ZV|buiL|{uxY4OKWu`LE3CfcK^pJ$1 zhAC4N)J?H;RE46Um=X*+LM%$_<%(>_yjV@t%w@Z&(X>a{S(qOido-ngs>kaoBl&3| zQm!mFe)Y4OsvT3OO`SSz+SF-OvG}DIriH0hqN&r;sllp_llwCh+D&!j!?ZTJFtt-W zMkXBVQjex_Pn=D@ZS0q4V`|+xrk4GcX;X8kThn4l@@XR^$_P2z<=h6mIhGMSESpvp z1Qj(MQ%TTG2$?i-)C!Kg)GhsC>WBheeDi6Edb4R2UBWA6snk~73bUrO_w?TKY?UX1 zr$57V_F)gvluv8&?Z;9k>9$&&4NeosH=34B57Sh_CV5pnq>C*-@OMsjfX%r}(-Z8YWLquv!q>5`O zi22)@-Z6c~bbHh3VMdr9&G4KptTDYd!wQY*F%I%(3}Ay;8|#}6<%~zZuaiV8BC6maU zTzeD?PmgB08P%CHcn~!ck(|l}EW+pCtmjNQD}scXT=0;~u$kG6gkAt@ie@%JG-t#! zXUu5L7{<4J+e*zGC_$_-vv-DrYG7uEM(feY7{`-#GplgUnDJufNR>(i_Xu}RUDmV{ zob{w8JumgKs`W@OoVJ=+gDLZf9$L-Kti3+-^_eqYADkJz-oUzN#w5`8dVgupOpw~O z`coSl&7eA?jb)fBEnQ0bdYGAE5d^_}H`Be&Mwov+pP9ctVDlL0DG$?Nrt!9wmk|GY zOrmJ1ylyb@`I#e2aM8jIm`Hvy1Gi^Zt?p+gI{naE>CCRz`Bkt1EXUfIW4QVPeukxH ziRSmcUgyx`U$1a2AS;E8QH222?DaI|!f>C~Lt}mh z$T)LVVVaHZ+1#cOvt~2O>iMjW*|S76Yj%59Wj5t1xIu zqU^Ql{7|!Nc;xt@1ks{E3Xlr**>h&k;iWVun;qjZgD*C|K%4G43F7m=kLh&H(b zSu0>n_p@IaYB9|u!khqjer{!s9VxD}0hPJ9nv>6o=guM7Id{$+d*=>X#?vWi#>sAT zxe2k&8CHM*!x-ka3=++4%t=%zW(uhk%s`?!y;%R;D*S31Bx=K(bGjmn7JknmmE6VL zVL&y59zVC!9L4IWi^uZA3xFa0oTl`N!_BFey>3pez&cZu&h_({G|yokA8qD0U*_ub z=FXctciud-&CAMci<1rJbz6Md)JJn(aHey)pLtbU<{8^>ba?jpcMl6{JeaAm{*xU z&vVp7tvMZhaf|G5%c?LBREJe4dclFrZ_KM2xHT`p5$3b1Nk!Fs#!wrO==t*zHJ{ry zu!@hcRDk(S8V6~7fo1s8&1=UXw46tviObpeEl1h`EN7~CwzD#SOFG_HS2sM zEz9a}&%elkMxj~j`T6-9G5qZ}BD_!8t@5ld@NzupV^XWB&UE-VdHz0%+fp7ks=37{1If}PDok;+$(Ok}(;f;D(%H_!? zUp3C6KCH+}xPLQ!BL*Vn9R>xS6ShT5GxbDH-%HlU8&BWlH^;iL0W8J(n9&K`UNRl# zLeP3MQ1)-e_&HNN0-a^}+ranaDiR`4qKW>EQG6v^kv#uqeZiYN3*K}KU|ZnctSNqT zL8gLv>6?B*)iD0es)0Qj)>=?`b3slI12_}G6{3GZ!%~;|B51)q@Eyj*CudG>?VTFS z`z8z`Uhrl{K3`C?Veo545b**Cf(07v!7G-jScXB<-%Jg_G*eG%nA(fSEf{VdAL>~l z*}qv4J-cK`h5s#vzNJ%^;v?j(7WM+apYs|c1{Var4;RF6Nz)7SOuJ@fNXy?EzTmC5 z%6EZ>rlW`u{8q3Tog@l?U*O(~aZ^tAdaJU)4!59gkOglw79@gl>2Cok+Hp}~I=R)i z{unZQjnjDfv=@vhXIM>(^7FZw6LHBv4py}MhPo;vCe{AQWs=~ z<<{XdZPGoGLV?xym4$D;wQ!-{xA?y07Q(kMf6Fgq$%SU@1Y!|zu!rFqF&qU4)V8KAfwzmR6D`zbGus7DWrwMKwAWi9g0^lgbxW zm4KMZ5PEWc(JMw=@(;l!DlGboVz9FM%Ai0RtAY3x7+G+Ig%vSy6STP^$SvTGNy};? z5UN-?Uz99fv}kd@$S;1jC|aB@3X3nI>-M6S>F%dP>i|=i))=yk7Qw5F7W4SU0sAf9 zqQygoYtJILI0Kk2suZ}exYKZ|`^EL50nZ`8OV47Cx_S+O>cy2sq=L-|i(*Ozj;6sy zBMk@C9&TfCO_YlnC_dSl#fehsVt!U^5NnoxUZN=)#%UoKk)y<-Mfu{Gqh()TV6-f| zFmTAL>rBwQH{EN(-W5#<=WEa@xHUh@2oScbJrzrpF3B$|~iK^e>z>JVDuki8^kW{H!? zYzcS1q;p6VGQ*Nep;k(`qa`CsowkPq@2#gpX>E`f4T*ejdqzv$lG@TGOP4HJ%J8K< zSiU4C;g<|k+MY7S9!tBiC)mIe!Mm^)(jFGu7;QuT_+Ee$25yy2vk zSGBz~k&^;45ld;VTFEb|8*VAxkuh`>bRzU69Vr_@D#8Lf^Oya~6pKiZFEu#vT2r*F zwKQ4=`!edwy0NVEA1_UoEnTWqxeGt~(k4+_T0dj~e-Lv^YsD_v(#n#hF^&1Mu(Yyl zsb5xKx=arg1GP|cNJGq8b*wB)J8)KX?JsSFZVzSLRRF3SisSZ*`Y zrFHFqbuWvSXUn3c_plsGnbowDUy;+BNedcbWC$5a5YjE{K)J1bTm%rUyUe`g8Ee~%8tWvn?@)Cirw>{Qh z)EXQL(f@WI_Q`TjTN`uM&JSrP*8?tln>F5!mN(u`G{ocntA;4x{_R&#!&82YGf^P4 zgdkFLJahfqF|jN334vn2TxbrlRc#~rR5ahAGhgA}j?8+>v%z@_`}ytM6h_PYIYBK~ zoMOIEO~dkm6~B6W#oNWZVg)Ckd<8dyIkQeBt>CDjV@17yt;pZ5tN;|=PFGakUg7CU z)UHfe(LzC35tHz5|F&RIQEz#I=N3%5&c@p@l?*SH_jYqdb>)f`D_5o~qLrvwiJFzq zux?b{UQsJ(GAIy5Y5;3!-rE^o8x5I7DG1e_X@PR($`!d0wv9O8hn2|+X8Dx?H{#4V z!-`=xUloQcAt7#MwamP#!tY-xty{cuWxk@a0utd9O&rv*0>E&hvIUU0rGAfFF}N~X zb)P{ERJ3XC=al8-q^@Q8B33S6$sAu?lx?MHNF2_WJ@r^`%<1UOR#sQ8TD5XjzB1

;e$*~$)81JVYJQOjtA0C#kd)#TC|TR%{{mXzhzN@!B}M-23M(*OGt zC979w+QEdR6tguQiZm(LLe}BQUjYS=%n4RaMvOE07d9@JL~iU#lkv-tZQ)6CSZ|{)}`-M*3n&g2M;1( zG#b@_5wjO<(Yhu!h~3oucly^w?=&&LE(Yt?byx=2TtydK^RdA<~t zt6HR0!YVQ~?cmdMVst|cRM2Aj`qNxatK^2`|iZoV#gcip;o(f97Ucb&fL{JWKP zUdl2)RV@>o>s97`LG+cYSLEQW)0W(7B!p&w8q1!|)=qR8Gu2 zmdL8*vh}YF!HoxsupyXOzkV1cd)K4dQPMhfQS;_R=;B0CWy5<qVO$ZRju0?7bMw08#tB zM5G?KX~_(a;W;B3@BLOx;w%|U*Berhj-mRH?(kl`5qTRCyYan^ynNF4qK)poKyIWG zO52f>tDC0|r_POSa>AyDSH@Yl7^02-J-0D?uks#Fv{CI}n;SbyL6C5t8;1>r8%fkaq03u^A8VslsHnnEz&I7MQX}h^JC6FrHbr}( zGEqKkOg3%YxQT8o+LUh$n*wKJV@>Ieo1i2aa2iqb>=-Iy1ub% z6PK|m0lhK9eX*&NRz;gO=EQzehXPrffe!0b%>a%G!5S=K%oR!Tn?@B~l4e*gz}TeO zZ~T)X3Y}sr4?DeSt!#RKa8vZY$K0mM`qz^ZWVcn0{}B(fjG?{^eT?^E)d!}~Qt-XY!6tbGb=Z;rNjOy?lhDr22Fb{>L; zgl~@C@5j$J*O4hgzquyCa*Dl%Tft_LOELarpvX3-TNtcoGuu#g&H&?c7_FF2Ow`fw}8x(Lyn8M*UrC`!N>E;-=6whj9bu;p! ztxvXut(7fXFQWD#)`#U=+?D`QjGES#5kqpNJhO6;0B7}VO9yGmrcDC>bHfhVVmC?VO8R7oNimp2|IqG92;(PTVon}%&Tm( zntCE|(YD;u#hDwhwRMC#%PHGh28v)2sBWdL+uB?Ew&@r{VX z2QdZzLD)8I2qaiUV^MB#%D5|QjXvljlDYqvy*Kf-Y}?Me=I+ipb*j1dJ~y(H2q6TD zf*=Bc5F|o?F(3pI5ebn<=oJx!K_EFoKrAJeacC0tIFWCY{4V~RHhEw0pNsBP1xA5BQ7 zBJsB($w*<}rk&&8?)-M=&Tqfn2{WXlsV^vcXG;q>?%bw{O!n>L3xL^l-M}ONc5CgR zF@D?F`R$BhhMgJXt8c@%qn+W~Wh5aH8SX5Jgn}Y=qHY48b}I8%%i<#JohIGQQ1s{#1pjm4hJpzq3%yqc3@*BbLKLLJzfgstzC{pMzEja@r)AOthm6?Tqrjk}sVcX6fFNQUG{ zvT*{7Wwv!;p4qOJ=*T$%Ggf(&)mrR2ilGe5X;)hqC`*q^q@0jOE~p1mYtr1kYj?4$ z+}+y6gwWl?U14{Bm((Lx(A~X;JleHPrX|Z3tO%tU?&=6~*UoZxllW{mG+;cZ2?JjqXc_6C*m0((VNg`4bm3EB_o3EMWR_tm?L5DOHyS_Ga zaZq|sFqup&=J|y!1$###piv2p$Ma159lT`&G zRPLE@5Tf%vEzOhi>>lnZnYE=LXJj?W%$B62Fca*koTKq0h9>O!3cY=el(|e))7`rT zpI}|?X^4F3Su96j-NZ5N>7$RkTMA;2NFjCD+u!q9Ahmaz^$aQ3kzoZS0xs*)STT3YO#*t2)-`=>drAfZG#dUAKue5B5u{6o{Zj(Vi z`oN;eDlwM(V#P}A1~vy|FQ$m}aS&yR98`uog?+=#xxk8j&HelKr+s1n!+n8O*t<^Z zc_N35SV`O1XNCo%4Ur5lkst~~>Fl+LEO2h@-xv3f?E`n8LudQS{n++X)&3^hxPQmK z{W4bH{bmj5p$r*OqBmUk=P(nyd|z95<`_+<_5OXb75gS-(~^%OR?H*pA26=%n+G;G zXga~zN7jwVicwP1whGBsJ(!99Yg`oJ=>x_|CKOW^T9*gyOtEdl%U&!$wF_V3StPn(H_Dytbnsw01i?dn zR5=2vL&d=sdWP~)TOKIKG?>mzgM-aO2M=wSZ+R#kT(b3@gN*|R2f+1FwQ)Fjus9SB zX2kbAS7ezEb+BMd=#{+V*y+#~OJRu$^o9UZJk&S{H{AHZTQTFBYV8oP!Hv=|m2#(> z7z+rt4;?;q=x{ug4wr|@!|71tFw^xzEot*Zox^4x9SVmfePn>VKXd`K{-M!fI$|<* z=rFE_4`qj28WPHMxJhsZuFqUY&xA>)fRtEmjUVKU!w+Ou`p@6P9oI#O$|>Ot!^5^L z4i%`jS3y;j;Kj5&9F7c-yc*--u_K2MA31#FNcV6{vz5c;k;dU8BOfx{)|n0uuTjCP z&GPCpOCTFZ4(CV0;iV%mK@u`4Ktnyuy2&gZY1=xPt+E~-9_dI6Z-Sc4lFdp+BU25s zM8GR&WeB)PN-`&^u_|z*y_HoUfiQWK=jf56M~)orA89ff9tlUgNDsLMKz4-H;XbmC zsF;Z0b$BG&z?Mgw#HXX}BS(QLj*?oMqv=Sj=SN0IJNRJE%{d;0$Xn72B z#~wmzgbb15C_V&bN5>QjqAdB*ajlfGFtchJK*pSprlZBN94U`x$HtBxJ9ZRFM_U^6 zqm5%n6PBMLv45nlKiEUb;mZ2 zmB)W{tR=K`EF2vn9?S$Ai?*?i)hMSS2pMBEXN{xdtz*ZJA1jVG8E`>%96xsan3N3q zBy=rJ;_;s{#TPcMX~6OE%7AlW5{~D`+7>U+;#lMOF&c2ZaqKv`Em2>f$Bqw)mTKM9 zrW)aW;?8kef{c!r$8yHPBpu5byGV56GDTeET7XNQs9J1M+ALwp<$cUNwNymM*c~sA zmnSBUpE%)PYCSP-)8ofa^f7Heeu7zLKYoJX6WQ^`3EWyz(>JcbouEioB_1ug%Mosv z+5&L(aZ^#riBT1Y@9`5Wgi&!~pbSPZkADO)Rm8D{-RR7E)LOT4J;<7`Jqyw3O*Y=fueqCr_S;CmSbD7AG1fPZTG!6K&I_lgahj ziLXs@@&wM+Hz@#^lhl5)EeJ-} z#z}^7DnD7C3MbR4*2z;RPYqefUYs01b@JpX$>?Mo!^u-*I7KEKVT|7A>0}c(t#T7q zr@G9hEVJ4Sd_)RMadN~oM=}yMPBCbz^HUQ}3I%>}DNl72 zdWup2OMoSdOPiiTOD89-2EVX@Hc_;S<$7AuICUDXr$?unr@_;5py}!CR2#)<41sxh zI-VLsD~;T#<@72-Zmet7>KRPv&*>Ikr`CZVoo*9z`c%QZINj0w^r^w=aZ>`8otC@# z0F~t7?$m7|O+4f2aplz~8WE+9Mm{-7j}$lhfLm=YWVUsFI-G&T8BosX|bzfMz-~#!A$ad8aciSraLu z@h0*tPG`@YJ#*%4HDhr$JJXV8fLSs;(?knTX5s8IvV^2Fi-y`GePPI?@v{1;`ez!7 zDbJQ?(%Bt=dJfg5j8M;OWj_3nsMY+}U&KEZ4Kexz5>htj?x$qq6~Jd9JiEoZDbL zb9NmHxzVWDi}LX7*PhO6vuuP`r8Ld~I{_y6T&R*s0=GQZL@{FKsp%-zPVGiq{7ff0 zH%AaFm#kvhpaPUF1s7+>$)g$5bPiLY3{(@&<#IV^(*aA_N9V%%(Ydkn=g#Syvsy(K zkp4NgA1RP^BtsH;!r6^;W7a28q>CnWPPzzel2Sd{cW zp_=nlhIL#@>AO;$4;Rw;=7sYY-ZAUKXb$NiU0er@>AZMKB9g-wLI4bzW#^mBq_1l! ztS(i2K3!;^zi{C^BgIxS&YE23FO0|*O`R@;^AU5nP>2Wf#`z1``L^6FR)!LiUs7q)4>sYu_I7se`EaiMK~(%I}g;_LZ^ z_#Hd+U3Q@*?|5NcgQU0+z8hWW7zT^d9o9EdpI>N#nqOEWei6}F7*@EDF~;wj5bB#o zvjTAC@_g>A%;KU^(ozZRtI>_$Q6L}xDy;afA#;TLR_Eom#&;K~?PB@e2+5hJi{ZO? z(bS3MmW$tgXWxq#VR&(f?|@Nr$%g5|#r!+Ea*;$P@}MTP;o{VH;kyFNRl^P64H=aq zuSO+F6-}uX`34NssgN} z+*Uiubcq%N6EC$dU*c0-YH_`sT?!_vj9_0T+hv$v&XING?WKogoJG>5bQu7oe|dt) zOG3Fcx?En0rf*y#7;Kbs8eMM5L71>NukupKsC7d=S`ws86&ZSad0bKYj@)ZfYd-oa zM&XvlsETfOsfj~&sk}nYE0-@{>0S<3a%6rOO>9 zx(tWTWx-s|uF#Jw6U=ORIlod~p0Mc^RO#}h4EDKlIbLboG?KA#g|J9Mcky7kNLOOZ z7)5M*1q|F}q`18I7eKgLTnSfKuasAZSGHZfa>c$^8LsB& zpTK$vuaYrd8Q846+`TeZkxiNza3ax~d8y9gYCy)XTs5RC>FR_KwYUp?RoK9#U>R-RQb4-exN>!brM%K4oU)nWzKMrQh9NGwW&rddo)GAGu4|*K<+c23 zxHe#XMBYU}mMniVCS%U-N)LS>&ERUsHOkgeORiR=!nJg@dF?9K@*0&~gV?o(mTi>R zOu_7`W~d1_uQm!fDU!M^njYBL!gj5=8n2CM0*D+G*tEIapoGV`jKEwQUTta2uZ~$J zhaBQFy4tvQ{n52>bsb*u+JwO=D56V<#-Z6XCxHC zeB~Ffsfw$ar@5A{18|+->({Pdzjm#--eio|zG8XJG(Mo(qM20J32Mo#*rtu6Yb{y9 z)&TwMP`^$No5yR>a`*G~YLsI1R zYs2duSBgNLBDqo}uvsRP##YJ1DVlR}efy2;H*Q?NUR`gb>*+>*y}VJH1m?kXqw6iX z5M`#u^&8psCYm1hd1CNqwr<|x#zPY3*Vk^eggx{j-3ZqUB>Hl|G~H-ha)mc;R930w zr7KdGp3i z=pkB#n`_7jfrtsDZq6fJWE}zFx?~yIK>9+s(Z5N%Kuur>rzEz#*}QS{M#Pe%$t-7S zUXw)JB(H{aqqy1eRl+$UjT;s%o&hNgwQ-X{ph~0!L&%7@h{}~@jN1*?kO3!i=hn?z zH*elbH^Z$QDQ+g_Unt>sE4$gk%k1$>n}VL)RBi7pZMd<<7)c**HbIR*#akUh$uYV$ zW|?lGYBEc=!p-5W(xKDMF=a3!nrU9(AcXRkI3#!U{DxiO%3Oj&LYyWPta$Ltn{7?7 zSM>}GM~-wHb7@41TjlM=Tj4f@Zm%O7$XjwVlD{P?@mAyJEo@9^Drs`Y90aYEXe*e? zYl9RePLKw)ar;)h9mzp+O~!BCzIE$1l5Urz0{gZ(mMqil#w}vX+Y>m+=eE&Gx5inT ziso5phEo%B{A|Kt-Vg(-ZP5_LCEU(Qu2HgT<2}gaNFUz~#t~zmQS*otx4#kteRYu} z)LoOWQTn&G7sh7n&h0yVZ^t|7c1M#tcjE2h4t(ykZI#__+_{~wPPivmnsldyks$dE zkS1~I_Rku?ZAY|dO>f^R4C8jdCES6}9m=?~bh|CvovhMR0{XXtx;=X*+|KTF93m$y zLlG-UjD2&75Hs5mh&Yin=@90|G zX=zAz;@!3>;+-)mYSZ1j19{xN+r1NTF7Ngjhj+H(QMuhQP}nlcB>)!gYAu-sINceL ze8jlHC`or)3QrZU{O%S*Gt2^ITQeio(7=*)!A#(a8ppip!+zip!BuQ|mzY8-e7BlY z>Z z9o%c(y?5{KkZE?W1hxrGVwG4;2ovjF3oh@rEk~w=LStX<{ao#VQ}wNa;=O1-;a&+# zUln%?qPAC{RX~E=;BL#)1ULr#8~5%H?uGmD-q`(n_wL`jf4_ULrP+!PBOfwco{I9l zH&Bj0CSu2?B7=M7{ctb44`U=DlR`Aud#op!)$3%oYISdTzauX>(HUmxUNo5G`IFPb zP-teZ@jl$?AfmMCe!l5Mhbt1LdC&~j;r{4e$3iJLyWf0p|H1tI@ZbT#D@a6gWQ6c? zX0ClCA)3oNL`DEL?xSwPBHeGR0^D(Y(7gZP0YyKUxDWD!`&>s4I-1|VA0M=B5+9WJ zJ2E}EpB{|MB3A`9?lX+Z8D)9^B5Rj;za>X`t>6E~Vk&$CcmUxC`Te%V)^QtF-r#=Y z!Tnbc!u@&j_C)Z0&T51dNZK4*Ldu;ai82hi@w03ND)~o?G2ggZExjju@t}N=9>Vuw zm(>jGL#zSE@UZ`2tDI4BRgk=8ltc%O4_dOVp@EBq zDHKi*SCQohL(=CDJ92vXAU-T1LBvCJ;X#3{J#5RyIA*DwSCW%c6Z_I!6%7T})Me$= z)d4SjWo0jMOF}i*COA17E7(Be!|*6Q-1_L@qlXV4NglFn+O^}#dKn(U@{#=G!*QA9 zO+OzM4@)zRs<`lI(VU)9&@##T4@vtlJ%Y}oCP~u6KJ($Djv+iO9+e7wm}8Jr!C0b` z6ptpwijTh0{E9~{Dbm9&GPs2f$$_1HRK=4BG$F{F%=G9{+X84n1wW=BixYw7qsNcq zqwu)@sC+zR%#h)u_TxuK}itjP6{8C$yrLMBy=u#v@xtrKo`DkC7}Ndm-iH zlC_8zHX3>80l+>OBTx#ZZ-4)oPw#Q~ejX{1yT&m*8ZZ_DZpk@)%2# z8Ckz?TTK4Al#Ti0?;}woL}N0)h+pw|QnCKE$eNMrO^@G^r7$UtkLLOJ6V8VkdN6h- zFngSd-{X;8bK@6aP}({ZCo(1H2HKdd>n?x^4GCLaajJ+}P2=A`d1Bx6edEdZ=?Ph% z&@UV5)RV#Y9qiwK|0I6jWCGDAJ#*PErNqCAS;r8+Z%LCeg(}PN#!zTeL$wI#n zjXCQHWw0y*vou*0Hj{6x{N&&G9&+hPOPR&BqFg?q4DomZp8V<@N-t*Y(UXo>T6{lg z$(*+r+<5Y|c#@u$Pnu7kJncRSPqQa&W>21i_Ox&7@U-`2?CBFJnT4lQPq==+P>E+% zW~0`4`Xql!=BF*ZpA0oTsWjyijD;Ke<})rIzUDB3M2R{wR)m;ad^Mz}BoPt1_cY=x zddT-A8zM`HF>3;+>?&a6saCzGV@d%+dO|2x zv`@i(mLp?NpFMrX7q-vJr}?u+Jxx9h&p^Xc`m*^97@R{D;N}c-Ahwcs8g;n)iGjoY`khVg}42vV>%n6wg{BTd>TZTXU~gg;|h=! z@aIr@P9k@D{(SHZ7wQ1FX<*@b@7b8SD_3|v`;4wA_48-l=d=z<&zqoSmO#evtUyLc z22XJ<%`2f7Z(7J0pN|=h=V+qU@@)8pTSNL%B+Of!?JK1hs0yA{$=lCgJb(ToJ@06E z{-Xapum~@P&&wC&f6;jU0!k+2c(IBK3NHrC=bwL1))mBwm(SCSt-^Tz!oDn}3eOA1 zmh|a`vb_MovPtoUwXnqLdH$l~7{!b2f-*QXVksu2jWod%0kX|q6lGpbCRF>PrL|ai z0aCfRgR+O0{TJaSvzNmc&6h7;-beQe>Ax5=&==2#tVS=IK#iEG78h;+TeIOW$`|7= zU%Vjv#Y>!C#uw#FQoRf>BBNlFuB=*eDPFYYiUU2yl#s71{>4iS{!K4hn#317Y%R5m zK@l0i*|KS40R_drAVyVn4Dn?~3NP^keCCliNKuJ64y$>5DQ$c?QNf6Bc#*$sf?2%m z2>B(;AGq0K3gjfBS zO?>8FmKGCUJ-7Aj%l@nIGTRi|{AwIzeNj)^6jYWYoYJc%ivsLK(r6mm#yp{Gykd}3 z13>yiy^e2Ky=lC*A-*1a^V&XLl<{@r z4fc{L(fEcp1@kr@a^H%hX68S9z1^0!k^@Ze?#SUa6L2jI(ySazfc@7^EFa&5*V(3& zuZO@V62~_?6mA)8M62{~UgzdrzAiw6WySwzEr;wLWLFjm?*g%CTSwOP+>n*4CDg{7 zw|FAu+i%{ywGWqSW~Nw~ml>g8x^+eg3DC6^kiVHD+xJL(qc)c~#1~O8LpE95uEo3JZQI6(13cfww=LP}9unSV zHj1S*r8z-7y=@3p9{Jm`DjVI!BfRTcRS>l3T&^=<50Et^!)fhZOH2~WA3w(?O*)Q|zi%>0)fJ_%Z3&xTjM~Pd zc&`X>i}yQhVgzlL-f#1`ib8r%%jGWrF}Yw!h8N$BnbSK~%nT#CvlgP3K39l?NEFh4 z$lkX_Zbxuku+VuKnTThYuguEjlm_AD?|_ zqRT$E2*rUy0q)4_0_%k$1=<$RlKktRnfx@}o*gUdjq68>V)p(H~j^ zJ_49NLD{7ExZ~4DeeA;IQ~KCsl^Es0oLTr(AT)$|OTOu2{1kmk=E~Q-#4>%%KDOoe z34T?aw301KqI4fW^=dHb7e9rMg-Q8wMCNto8Tuh}=~HFT7&ktRSCl_BKAA;)-J=w! zDuq#66vHusl54A6C=gc2@1j{ zPnreJvXj@)UD6NvTsR>h~O4ATz@yUkP^wiY! zH8_os9@0eyNP&!|yb_2-PY9cggoCLTGm_LahoZ8_jiY~`IzH8E2T))KG4{44XSJs8AYiP@m$O<&(sVhs zhAd2nsUDJ$Xu6j8#pyAlsaZnYK|ux5n4TI`Q>UcJV!CZ1X=*qPhNxf!*Z>t8r&}}A zGc%-`8B9+w<->Zwx+k9lbv%9(PyocUUzRkRSMr-w6f`UgV$ z{FRzq#SF!QKW_QBr0F=*Hpd)8lW3C?IX~?6T2>_P92q>BsC?z<`K0O1unV}4z zw4_j7u*GLY&R0l8hKSZ(n=1{(3Y^soJhr+x?r1sr)eACq5$W znc3Ny*?eXT*BQQi;!M+2VYWXLW=FQ#VAh{0XA_b$*O)O%a(T><5p9@#i@cv{%+93Q zCTQ7gS^{2H~Qoc%e`Fgh~Xw+e~`2_(%HGZChx!bp~*+g=4# zA@o$U%m-0(;$xLPs^$uOwmmyHJ3H5%4RhZa%`mgVxN7q?uJOl&dx&+8ERk15z-hKM zH#;|n;~a~*NdrWKF3nE*M620+ZUUW6XVY9^{t2Hjmmw4~*O*1!#3i!mYlb89*)fsi z+pm%g7|lMnVgAF}Y%a{kxzeO$UNA3A$4)Y)xuy|{rfUf;;iCM28!fFHqDfCM$2s#V z@JIx8+$mN#%8?@@g2cEmI58HBI$Jq6u6jkiF*i@L`Esr^KQ})&HxH3{0Olb#{{~q? zR*?0%RbUrAxe|+UA54u}(-Dvw^EQ-B3j=O}I#0y_x0uZj=Sq^5^U{;ohB)7m7n?Od zfeS47f@x%`xCkD_&BIsJBC%9Ml>3$DORLN&W3<9>z>%rSl9ihQd50A9P4X1XA~LGR zA)`D7;Ao6uIB(O;mdV0;n8!q!Pn?^mD696i6)>m^+aeElB-KKHzFcU|FU-e!XDyXIS9?KDuD~53e*M?wA0NnFAb21}oamT`<^7@A%Uu2sq z??P5S)rBdWv)I;>8T7KsaY8-@L1D&I&>|P@N@t*J1ukMXo@s$7`z%5QhJ_G|#cW|r z`1TD;#bQ_*B8QchEcxQVXtP%!$Hk_Rp-BqWVuU$I%EfZYB{7DjxY$}+Tw07va9T>H zXf9F4Qgd->DPvs_Kzl0ZF*);5?u4bS#nNaIJ+npN6yZ4X01I7-Zc=gnb$x}YN>&Wb zuoer;ri{K;=D0MbJbdz{3Gz8i!n0UvEE*97K$&apI$G*j2r3!H))XohXe-i!qtzN0 zzp@k+NeyX}v{oV->x2zuQvbLvXG>xE4sw}9s}+luGIUX_nPRv!?!1*fEq9id`7i-s znf@-r0ZjoIwVG|2Sz2x^Ekl2~j}(;2F^@spBsN=Nvyi+(?K2;(v_v(nG{GC$HMeU)cz@+*l-@xs zUo~}ixloJS6APHHz*$+!<+fR(5f;O8d7DRD^~*3Um3w(5tU_wFK-LhgH;@J7>B#mX()0g)h&>Dzcct#1s(Fpxqbo*6v*ta`?CjhK#b z#gmg*GnRXZW2x(8Ll;n5Y!0inM0`7Bhu#tNiybz(GjI&y1oG>Y%OJo zIKZ8}>rPTRAkTHe)H2W^a+d2IMXasoYte%7;m)$yi1p{qs>|lLUi__15&^4|>M`b( zUZe$9G7cHt2IY;kzGY*5-M$+e)UtuuBrmU^y(x-UtyflQlSiC1h^Y*3qA#D5JDZ*cldgePXj*_)dzYvbMco$Dg<}B23sGUT7K`K1YVh)2)3S~Um03~ckuCOG(iTjYDs?pX z%vL4-6NK2O(lo?0bu(kS4U>O`9eY1-3oEvYQmm#Jsi!~eh5jniMIuu4n*Cn?WKRsH zk!1uQyj@anyx;5DH}%JQ{c09nO=v&$#u(%i`)xU(Df=`X5q9deWY<#ZI}VrnEtF6w z`yC7FQxLvH^kT0e|0ep8LC~?!?y5lSM<`RTZE(4qJ%pN3{_o)s}0-@{c-c)lKKsANi}>`87xFW1N_&J zRg2?pVjLm`B7L;t)=k6xYGdM>A=bt|)6$mx&#K%v!#z}G=#35f{lTC=i2Vu8Y>u9F z8kGIES%>|W#^{5r!+tp+)j;zRbB&TUMes>|s0}{#o6K`&@|EPuqIAH~O_R1|WouEU zL6cP)a1WBb;nSRHY0^-XX(Jk3YXCwc9->_moLE~#e_WZAvWg=at6|^D##E@LfrTlF zIC)(TlZ?yA_;90EW8YGUsZ*1e0r%H6S_O3-qt6rvWn~=@pA9BN1z$CGb+E;VRlzMS z(tvVX!@*!kKZgB5b2u2z+bj$pGp-rRymf4q`MW_HmV*KbLzoWXHq00!!d@CmK4=Va zi?}6W4~Io%g_C&}mM3$+FlY?GaV#1Nwpb(}27?J^e83n~=;E0VnkeIty~aDU%=DFU z(tYL5su*?@Ib<4#E#buBxWSpO90CKO2uMY_1XC5NDzRY0hi!{cb#hPSn_$#e_O{K^ zkRq(w0o4jY>_*5sGRJy=6owvbTwuOd`K4hYY~p0oOp&6Mn?`6}2?m+7VHjZ^(ex3t zM#E9ED^)Td5j7f^g8twbFk=|n6e6S65Vu+M{oxy~Gi2#ob&b(5;#`i#<-x}i7I4e@He-8itt*jP6X)(I;1O(G8}&!+Y=oA!nKm*mAmjieX6+H7*x8kg z9x%qN;b1b2vO)j`pDeMQwu+O5F^N?M?jDbf*%sO4lM&K!*EE`Ron1wctwPGIg{I0* z<1%(h(aKC&7{X|1w3KiAP>bQ zydEL_JaUz6x;aRIGFC8&aVPbSsfHmnixdETVO8_Y7B^_UHi^}NIuijipxv$xRT z)&R=Z@{&g=$crHqLqxW2-p+x|V^QWEMG;brqmUMl0{xgA&_tq3)~RUZOf3oZ8di~i zV=)4d_!ZZbkDCEivZX2!2eP?SGEyr>h!V}IEJDr=%5`L6O3Lksr)nz3Hd9E+4QWP= zJL=5FK^2H~ZY3EHBd@x+eJ!%(r8QBh7DmSWV?i4tuF#FeHm({Y6&G<>1m=N%0fqRfXi53J zI0aBqY;hl{QqghuRFrXCaSBdcB_ZZTTRQv#Yx1BUb0^dF9a(0)OeLg-^C;nFnKQ!V z)5ErkXr3b)Q?acA1f6e=CdDRG#Rx)D#7W1rJkh8Wv4xkp%ZU)?1?TH;r z6NQ%I&pVppHFGhY;n50Nir5EYyUpz4sOtG@WD_dsvL;~`sYD)*W9FiA$?LXZYs+IZ zIFA#yR>HjUj*J69OREsq9k`fR#Vb|SuoR7oZY+L-pgyWz1+;4Qk5~;6Ij_Z5QiEbg z1K-rp(5$C4J+VP)0&$0pSjvY=_$O?c+7=ZZhA!~0?2;=v2q;-Oa9Tq#g`#Qx+#hL@ znc$`1u2)X3W#S$nWkCD2Icz$av+Pj>^4O3ec4|A09N?UGHh6%lwLk7jD6Ge$}NT{NUOu@lb^`spRrQ8!&B>O3HYmo%V)l} z{MGUt%3=Ad<&mGrPkQi^d*CPcz)$Xh{}0{+p%MOK_+#M*;pf7i2!A2`=i%4Gp74K! z-wNM`BVk|o+u?`d-wA&<{9^c{c>J^B-wl5`{7TpvelzUC=l77`48IZneE3JO{^Q}# zg#XTTe>?EXF;IR8+Mf>pMEJwl|E=)L;jf4P1^s?-cZdHo{FU%eg+CPj-tfeQkApUDa{6pav@cHlY`~#xI}{`K$=hrf?5{0dxtAEvwU{oU}NQt?m2^e?jF-BoB0 zhW`!3e+7)cKm2>)m*DYttk%CB{@3uA!1y`3@t3IMcktZ<&R+}v13mqt;g5%Z8?L`g z#@#UaUF!Lz@Q+dFFVO8@gW(@g&p!Nr6~8|fwjqC+&i^(T2dL<`;P_vLKN%+I*q*U_HW~ehZIZ zC+3fl{ZG)(-vQ%y$niTc*c<*Q`tqm4KN@Q;$|m&vPpfJJf4@Q8FTwZE zac68}FMcun8{t1@PyZ&iAKJaMC!8WiyY`##`m6Z=^X$T(WdGYg`TV2<|G(H$|CNZWiQN>5S^ zP5fadUG>mZrf0DDTq9YSzK4*GN2?lB(<@B$oRzuQV_H1yW5)6Nfh;XYo&$`TDuCz8 zK%id3>N6^{pd{j_ail72MpgJbuPw&L9uaeup73(wKGHsW@=LHv57Cju`lDb{meWn> z){loNR}Wonr`zP1R=ivaUlyCsqPeG@Ky%g!e2WmU9?>GBKc$vg&*~}$dSZ;HmEf+& z!W_Mh5fm*!U!@nmT>VKn^{UU|rfE|ym)#%k@al+8EaZ}cge5#`kPF2~A ztFad&i9c3n&jG4@2vwBTOc~3m&F$4gcuDn&Q}hm@D6QWfEv|Ynu8y5lcI8L(6rFFH zdc?267YCpe3b000TVPM$73AJh)o%~2}c*iS?6-;}slWrsC?4PuBMs`=mZcLFCnzY!!8V#Y2cZNm{8W z1awcT=97KW9J%1E-#I-hT)noj%Bq{Prs6*mwa=>`Qxspn#jU~Bts!n?!!8%` z<=z#Eu2nbOyy5%-S#PN3@=^8w&!>9>o$%X+&BBYT{k`amI`oESeRP!KIyNZIw3Tp5Z+_H6NU#t+Eq^bvj~dYad58ui>Uk3ieF&Iq(U z*gKeT1FlDl9#-%rD)Z%$=U;>S5mLnH7Ixc;thg4>lKjw3klLD1o&8 zII-yI$zum^8&pYz%_@?5?0BFjf+N**{5fDzRxEWR_E@tXA+DcH=5b+>B&l=L7Wt2 zPji2M)Z7ShcUQGq`EpyI{^pBdho&a=ga&&K`T5>x$GElKjsFT#k#EPyw~Bukh>-&H z{5gLQ{Q+^2vf|Zx6~DDgY6yg`cMW2x2Z z+`O~;p>})dT)P@o<&!WNz7`zVrQkPye*EQ>>i;g-#Zbu z$K%}~=1~v-6Co78-O}{H9_p`PWZ>h!3_V1z2jbOG-8d}t`2GwbDqTMz{>bC3yT~8j z*F*jOQ>=jP!6SZb&2Y+%CfsqwI(~G!N9GO((ZyUs#bIPQ?Yq- zlzv!&_$Z18_5o8qYh-m^ z^dU7e6%K$`7SWZPx|4^JFYrj;=@c!hdubw z40d3HVwe12hk>0v!LJmM`rHXmxJW8HIAWICNlBzmoDjZpa>Luf4B|+I%ymSC4vx^# z7X0~n5dF5Z%kYgD-+ zXdv<8!2t#)X_k{WpdfY=PKK*kD+`1;03!<6K8o?&`OFW{xZ1)jkz>XBs0*d!4g`Sz zyE%Y5xx?D5g$R0I0!K<@xHx4yvO^Vcvk=dJLA(a$inrrA9FDtD%@$P;Rg4b$s7}H_ zUmd<70vxPjwR#AR5iGw51`eIDm1a6Dq=pCAkVQA2;VcZZ37>x}SY>Fw$Q?f)9+G_O z%={!1YuqNbILfN~Nk@|8oAuV)%bzci)NZIe1KAAsvIU}>Mn1Y(1jip7udQmE_PZk- z2deH+{y{P86%nYQaRn(v2b)xzq{QBzs_(iltmpg@GDIRWp=+V!+XW&N8*J104-1Q# zZHODS;-5xoS5{d@x*_FEpdZ@8y3*Lba%KoA`H!J-t~)VaJNdaR>gZ58cX_D*`zdO}& z{gh<$viS#dbr-6o+JKp1Rhyh7{%cglUHh$ilk?dvM%pSFRzG4E6(`!Es+?+^ova!t zhx%8pUw6IcU>oq`>{lM<{cxkR|9MCA5E(4g2H|lOjP4K(s#)jZc#Zng;Jxq!+WV?K zn)*)maF@BLZwX-(vp?o(L2}9o;shEigOsD$t(L<0a2q@N5)SK#dMRi9d6?V$A^Yve z57EeS><&KleWZv{waFq8X5Jw3nL>tUS!AZ;cSf@+Sj7&i3f|aes#oC5{WjM1S@Fo7 z)-ux%{B_YGJ)FXVEL3y3lWcAtnMGC&;61aq)U-us*Vx%R7N`SwdWa4T5|HK!1fCOo zIL5_~1DeIyR+u>noju_Un=tp$=I%V)Jl7}VR2!W{q$7jsI6wPFM*}GlJ0d265@GRh z*f6&?t8(~Z*cn7BQO5&qR6tsfGzXr)OGb*?4Nbs){*Q9kM-SD94Jp!TmmqRX4U*4} z3qeQvBuLa}|M;0jx^`=1ohqb{x}rRE#>ONLg7CA7IB-a35KZ9e0g;HPlaP!wI#JL` zL{+rf$nifqBZ<8sNLbbj@lz(XY+#2HX{BDcR`mF}T7;76#3g6uy^K~H20t39rfaRk z(N8|g7?lVD8u$~U06zWt7$_>z5lD4-y?v!le{!-q6iHJ#@+V8-I^0N6wm%MC%zlGK zM*mufb2Lq9Co!qLDr5&vUwA^!PNmvB-O1SII^QXCUw1be{5h}gK5v%Y8__zbdq5Rz z^0MmqZ>_eix+m3#KV->kOfSv|qxXi@he~mP7j=Gllcza5TS`^?8Bg_DPuAlJt4hfJ zgRomcwD`jbkhfaDEdDJZA9bFiuJ{wCT~!`2sE(nUqgU4N!Zm875V)zCap6EG;okp*ro%N+T>L2U7>=C zxvwi|ffCW(%3SvlLa0@P_M#k!?l4(9qqDfbjIK%QD$e@-`xSQZYhbH|oZiN`=L zbAN}~BGQ{1a_w5!V`hcccG%cEMj+?ckb85VxIV?s-!Nvw>ew(H9@b@@&9&`-u1g#b zCVM`o$aO?xU&ofsnPJrrOH%}=cX6y2jO<`Bwpuoez=kCfbK7|gHt9{iExhR8%*{y0 zxvVOY?tV5bHsqp4MxAIwL9ozW-Ob{?J`i>FPawexcvSqB0Bz#1Wi@za$- zEbYKNVDk!ErKPz^Z$j1c!rQODI1ODgWZA znxqDBoF1TCYU4Z#HCtyER%Zo@pcCdlT4v;YJDOIVP3Q;zRn=4*C4^02OHL*o8>qX( z$8lW5$(E|XH*j8=wB&d{+nB1q^L7%UFm*EF5C^}(zN&5+B zcG=^-R%vxRSxG9Me+|*(TzBl3M>6_N!Eu4c+z)c}TT_2=lwP5Jg5nA@znkn{x7?p| z_Kbm@>PVDV=LadOLfsYo-2=fHb1tQA9~l%VqnuwOYR4y}KB%$q10K`76m`G)b!8cl zbVVEJ`#go$INJ+ZPnT-y}-HXNfb}S>wb+)3PugD(~J4~|j z@Pi~rD9d>chlGGG>@90Qqf){2%*e_wH+;caChZN?*PZmdVu?mja26jS@V6O_P?b%i zomy#XD~;nO^Z6|vCnnK~G*$p*I@!|38c=1I7GORLAPUvat=t^MLuN74Uh23@ou*lJ z-J4bFWK9FnDVksONC|YH=7OEFSz@%~G%HsKd#kJv)x@vFGAWxE#(%fTyG;?`c$Pw> zwa}-oMs2YjUog;uxN?4b6=CjP#K8N&k68sxItoC}MQ4KY<#Ip?IO9?5SB}u~SLo!Z-oO zT>I+&s2tM+I3Lt#h>q70=IyjqJHC`c_z`(p^@Kxnbt-DLPj&~3j~{pHby*FtQMUR= zqB_+ezZw0kR-F->t0oxwEeVY0P#(@K#pE1yMCu5L>Nbm2l+$%L-*Emt>zliPzhbNn zI)as>P=OSjv$f+`7xX7Z;5k}#Z&3BP=UY{%f8Ib<<6Eje`eCn1;m5kxb*$p0T8Cnx zt~qo5;ee~E+N8`aVA~0$4E@Mx6CejE2B6e8F+W-~9}q#jLpTH$-vP6?W*d5;izsw7 zt=u?M6&GibE!^PL)jMcc7T$7wy3ngmkqwJOJEb)&ZZHyOXU6u;3ew`b&7|)ykj@U6 zrJakfq+fVvC$H*!S&!}N99KKYwLZI6XVngLiYr>_e61`L$@#8!{3|~US*ufSm5kqq zj)CPCBz}E?KTp*;urktMJHD3lcF9~FAnODw2tqRpW!L`SkI4-jaqBgYHUsR0Tt7IM zd;9->U~axpox3Y+6~T@f9nD3JbBVnP>?y1{j+Wh{%_6(SEfmY*^C7%CO4rKu%I%zA z^|Vf*s@Dyqs#a}@IwSYTPs?pvmvq{$>9d8eO<@8}J^N9KTxcE~BB<&Zl1K)@J z5MTxBJmR=GSto%c&z9Q;X-DeFxbTgf?W2p$_<>unjwTinJ2_csepayx(@JjEawRr? z;-rnJ+cGjA-5%Oi{!)17v{XB+aTUCr>`oMh9Zp=aRis)V)_&_&r#SPUI>D(M;<>5y z+ZAx*YZlutJKdO_soFYW#d(3+^o513c9n)n1fBh~g&G}wchRWTcC@nYG16}Svhc~P zW0N`kcmYrxyf@pdSW^IQo8rkRsp_t6G)F+|)a6W@T@}ED|Cq@ePPw&$^Ob$JFkIYf zY-KevBC5TWLwz@3T+lJke!Mg15i`@>qFYgZ@>f<_d}p0Q9U%{)jw)`NX)mk#{TH(i zq>{*_al=axRlgGz5f*yY!P8wUB*MY(i_)xWmcuzCkJLsx$`HGLx8l8wZ~*keC1edL z7W-U1U)8<3sC5i#hZ_lA`t`+A=qh4%L^CNkxH&AreN%>Z4z;v8w|a$>ph4i&YWI{L z!dz*P#V#=}Ao3nAa!51@0B`FUXiFkT=@iQO+8i7$Fr^+YcI*UcGt0%@(q=ZDr>&E% zb)d9havd`52U-J8W6ZOsW4S%A05a(5SnfhcSnHVT8c&CLJB`8ORy)7ip@1E)mPV2v zmGCH22WE>XHxUk+^$glh+g_seB&!Q$Br2h;&-WJl0ivw^#czaZ39DS{Lv?Vsm60!U zPeA-c zA^t<6TxwXcc?T|Ls$Z3g{xhJvMR$dFTqn{;o%pT~-(*cv8_kh_ zuoy`tSCF6gP9krzWAt?Lx;4jW>W;CR#hibNSfFo9kF`#p7nnqQy-letwEk2k!mGXvh@>Vik%@msA?j7PGHRn$vD)IYVtf>;+d&O0mSh(%Ay_vo z5C4>6?L0UHo`{}xN{~v-ix9+CzKc_MO2a|*hN3-Fg?*>iulB^tQw#^QJC2v3y|q*F zx!Nrb3K^LT(e4tZ541oB-s=>6FLZ{Hv+J$A0izmFm%7eeWhu^Yp3nBoPPGSVS+aNO z%x2t*9aGOau(_K!H->_MAPQDaNC}f^mVpj-A%e~FB^WnkK z_@$1J*J1ujsw4L`4sHW-my#%1-RQ)QSj>1<&$*KH0=H4?4 zT1Wi1?O1!w>eKtTq0!OzM$?$^mtOFCCjjpQuz-ANvYP2od|F0Mov|+;@^XYcDz=rA z?v+ouf7U448TxWC7^yz9U{~-p+Cuaml3HGNJU>y~%;vxixXcfx;y zs46=4mCdx~qwg2*RbZ|cBWN39-PX+V=v4)lN6~5N2L|E@HBMZfv>bpMs_%ET&+1+E zx(1T)2g4HCuG%_UL-hiLXm3+s;fo5(@H+=x}qdL*E=fo zc86ZIcKT$JSudsd`ZJ1?B{W$`;gyOyuZ&pUeBH$|af0L>4NGfgEEzYuGQ{j}$6z-I z%dJFSM6o0p&;+k9!_OHz(|lQg8;EDrnrk6}(QubgRt!=HU^G(k?5< zZ&li~EFU4RERU;9HC-Xm`pl~(X7xgem5a>YFCSUf%QMK$D;@0B7XJPUy+ecdPuS}r zW-#il6g@;QumE}mJUsk86=4N}D~|x$qIX2t2Q=l7`|yjI07`qkg#f6?e0V8>yUJZ} zo8Wa8Hfrse^^OeBuC*8pmhJ5t=I1Zya38&1LnYBhViPRCc*_MLmQi`-paR^n?t#7K zqvNl|5R8|oS7HcOanbvv-sqhp%4cuFkZ0dsoUvR{;|GX8Uwo_ghv>~9hAxeQzi|&a z$+PZ$UcWI!FWS)VWW1WAF4J|^ChiI^(<_V1KkYbW4lB74lvbBgZw0F!!~+GbA@^g^_k(ex{1@_m${=NxT`w>(D0gM@m471!h`4_^<yk@1PDyZ7B-Kd(;J0M%Ey1=_) z_=gL^3saVdX3!pgwOJ1pYCbUb{t6uHj9xz@7^PD7K-<(Szc)qO_591lw^a(g948W} z0R2)J#w?RI=JN|}bnn!!rr||IxO*d308oz4nSITBW&oe4IIrNXSK=tYkd#gldOwf< z3gsw`?jO~y46l(l)!ZYEpk7u}x2Inhk`YG}1URVcus=btR<1wbDh6{ac->*Lu%cJt zOxb&B>_szVSOwbNM$^{|VQd9c-uV(%AM0&3yc7lu^Pu^>!^K`q!@Fy$x8Vd{Tr;7U z+L&wh`2{vBL_xWF(@mX2Z@metP&OOy2C}!zNaOG6VRI~>yu_}k0n1grif0Ao=a=Rf z1xgo2*PKfVu*xz+=BI40v;ju1+%XHi;UzfAs~I<-dkk3&zj#wmWsQs_?0Dad%B<=X zOLndDai+Xi$h)HV_i&74mBO9W2)*Ekzsv&h%zEQcxw_puS6>C=vHa4iBvxQq_gu+& zl}}vRs;0A3_K7RoZBgOK?z`umDE!SsWEQ9*y%?@~2asNNl>0l3^oF8U?ieHK+YtSY zN7|#$W$~sYgAg8X;t>l6S8I8vkiB+DuMYa`Xsp!)%z96eLbVw#{IPXT>T+Sd5wV{W zvKg#2-vU!bY809=pbV|xp*I+no871)Q`HT-Z|mB~r;onc!*aEw=v7_=#S5`aZx=Pl z-`f=BA@{=WMip7VN6Fv5q)J5Rk2rFL?(}`Zb(K3ly~@ejWZA`o|MqX@6rA7k zdJk3MFLUBmNh_-=v#vkd3!>Cip%q%;T_@^RboCY{AL)wUKr)IDv^GuNt;?Q^z8LfRmqO8v`VShZ1pN?{}+328eCbD-S=JWC;+wg zGSl1ikRwv+VPSuG*a}-!p$aGfg~Il*RH3>C9MW`HVf%x^l4+VIWlA!|ee(=A(Q?RN z{YB#sig1L#I6`t*5efyhktV6(GBcd%>F!#vyyf1!{{7F%`%pvETlkB`=y^Vic>D#xbV#g?}kTMt6^^dte z=4iO$WEui53YlH&{)Nfzh0~Jm3k6`wt{9=Bn5cc5L$Gufp~lnah1q1OcF`5sr1mNPgLY3&}BJ?#|_yP<$~(Grwe+!)Ju z&MNrU4Dbng^rUziH{lY%Z$CXT%(nAX0ixi=W>kpP_P}xwVicZUGo*%~iNovQ8+z4Z zU5rh!{T4ZC2g~vhB^9z+7J#u33!B z$Ax^QKT4Lhbez3wKRmn%VcWfc>G^qhX& zUX3#L(bi=UN`0p?X-~|xO`B3AC#$My-X7VWX4)vtgc~zZV5zBaLUm(lvXclDqODr8d)%*Wu^*3Pe>D2`r+J=4hZdZZZZCJVAB zvUj0*ZZuWZVrRMIC_(Lu=R7_pHH`=g+%8th@Ql>B*&QXLA|wdOU6ryT&;B>aS)z8b zQ{tJ`ojn}6{<>k&)8DbDW;idN{VO(?V{5+W|LEBtk@P1V&!1_-IheC0oF53zHljO@ z_Yh&TIor%mk51Uuje2s3kanzl%JBh*2w;AEQ}gHFvO9KTTw+6&?3puWyF3cgDr{dq<-8iK-}B~XeV4toeH;BVXIW71j07=b zuF?nsXviKW_Ti4!WgGW3*iFzk5p)1JjOXoE0~a75*f7sQD2EBl;rA%XDSEwiD-lQu zV*ZL!?Ju5m?HPhs+*7r0p^GMyVo$BG?)67kWBtXhQRU;;LAf!CansbZl;S9x?Ti=Q?KSwP{#pa9RQG0#~rcoep7lke( z&ZTIJkXxj-Xv}C#`SYv7>6xsgLAe|sG|9Q5y!30a07S*jK75I|Aj+cHcCjEP%~@UI z4wl81k8Yz@)xr`|w=xk)DJAu3het_6Su9!d*2A-x^J=$Dl%gk_womS0z@;Kz0*B&Do)hUb46H_)_X->1`CkVuB-KmPn{ zoK=B8rbtazjA7bNmY}iCF2BY3PdUE9@wMmL(()fYhc-Jf7CT;QGfdwB6aFtg;?RBE zAd^<9?IPpmn7%=#SY*#d5YCoa%wDi{W}C9spR*ICcE!XoYEw#O5=V5Ytu1w{{D{G> zb*~*c_3Y2vj`KxCAn0*7&PYica^~FjTbr=Q#$?Avt8q8)?+N zYGiYobW6xkV34Eal8I#e=y4=V8`4grg5fn)ZIzm9hf;?w_E3=Gy%ZO^iDD!hu82DX zZ#A@X#!4l#=Y6^^9-3v*zP>}hO*I3CT{}sQ+o2K=z^d+*5XWF@d11QGpBIuhwkpO( ztM(zEwoujHtts|`=(&6ThAN`VKl9BaRZqLP8hyLZtaQ;%lpY+0?BWGm!OBSWFecDT zb6Gpz1(uq#O)43ho3l#FzyeSYB#J*5rkfzv2ggAifcmbk84uZK5qU5m1BYl|C>sLfQ0O8Z{8!S=*Gb-@dO zxfY;EZ&r1#pPxiw>7h2GRatA{Qjrv;oocIg7w};dTsHpXIOaIv_$M#E@}kZ*u-eeJ z;Tz8)5ZfD9XXL2I8bJ%{gy4EJY zI2&PfK3~jH9KYADHDT$wJrZi;LhX1jLm<)Fq{3+o9Mh zr;UxhAa2dFH=xfh!3I-bQi{Q%{)XAAC9t?n@-{p*#9fjFt{|v788mHyY^Af~SH#{J z=^ROB0CL4kgi6<+a2Q%`4y|h1X41zm&P)P^si|%HBYR4hXJ>k|C{!sXwY{JtVc%@J zW(@P=4(AuNO|t`%HVk#tvdP@HfcA>1k-F));@H*LBq7dv@-k;ZXJ=-Fq8*=g9gvt1 zsm^L&5*Q%F-5MK)q3Xv6PFa-~7jekEE|!I2RkvD1O&Yr`Lqu4WQ~PNjb2tw+C+FHR zN^71wYi@mg3tyA!&7d=>p90ap>W2bdr{K) z1CG;Uee21$No50ROA)$o{55un{uf;RQy8-QI)~6&`#z4B0uL$Mb^5tBkv=(P8)?X~ zBX)A~&p2St_ScBumxEJYd#cc(Ccd-d4kK+fQLU=B=e73v_CH#HcFxwW)|kl&>d>y)WPgox!{qs5 zek)z<)14q#$-|`W{LaWAIl0|F!ZfG)t!w% zL#E-HlzLo~xz)>%D2s2?u3gR>CsAuo4Q93>Je6UGaR8`p4X#8++sdOHRb2&5?K~Fe z6Lw^GH8l!gdaC@Yf>)`z4L#W#zV*BB4j;75JN3|E8?{p~KdGrE5)GXkXH^p3HEw-J zdfQRnINL7rriT;p((duv(fwticnKYj9h++s__2`=C&-6`Q^3%?^t-X+mjIs)v5TBkj z;(fcw@*KdYB(`#=N{N&~_1iAxQbt-dM}A5J1Fjd=J;gH#2qMa6j8q+^IkgLVu0-W@ znTw$_fmRf?(oz@o%N!*ifV~olc#_jI9$hg3c-V*Fc$Lo)(g;pvB#0%}L?SU^fzZW* zldy8JMk1kNN^TPak=8>q74A|jqf^y|Vt(4|7j{o#xA76TAhA-&&PIa$0F8Be+M_~V z#N>jjbY3_~C0H`K%|LKqr!W;f!=oBC?9!ALPTz29BB(1r3KHQIDLKuWVB1Z8Qm1~9 zRr5hw6s((^`kV;gPQ`dD)1~5x@t10qOV4l8qh^^>YGjibGmeir9HEM#H|0^1c!{g-($j8(EAdD)nc1lX zb#@v~J3LJ_6dco6l~SipE>#9)5weDf>#LFOsh!2iwJHc+N3{ce3YgzI6<^gwn4TFW z11m-iBO{m+(iz{*%EA9$y#IR4u+&>dfKL3+39n8*ul-|spYKk0CXfJXD4>8vh~w; zWjUi3XI0}M$|t86R7~u=u(B5HzU?e@8&10|pP1-gw1Mu=1Q!88+8&66_+kWSr(H#{ z?2LvA9Z(qTPD67_F7_8SJdM*&84xAdUr|(m z3!;7dfIyhUOUwm3bs42zQ}!j6sW^+ek|Z?Mv&jiV<)M8Vr&o0LKRYY83CKy)Wf{Ak zW)UgHpUM!CZSAbPNVKG&`}icNRX8(;A;C1^i8Nd0TB(ND#*nIhMp`G7YvlZ)6k$Z2 zg~XGZvSks**K%j7m$LAsZ+*l~29R2XI%As4MmS7Vl46|y*4!z3|{;e|+0ojfy zZQbTj_A?IGiK_kv3OanUYLA`yLJo~WRVF_0G@86a^^!6gdM}Z|Ac|RHEa+if;#6x& zjXVu(CR96|K;30mkfL#@s9;K+5=2dO>j3SF?0BA5FB)4brUDsNR%QvNm$UsTOQvE5 zC)VAChZ1>;Q?Isiu5*@ov{8a=g(axG9_L0tR;C#fe?=ZP{j$Ql_@m_}>0)VESyYt7mN!|MQ4GdI)j*(o`zQBM#cNicHP zh~HS7rnretXr3Ei@%GB4E=I46YEV>6AcECjkX18;kNt6}I$`s<#Li^`5D78XfGhq^ z&k;-FZrbFK>O@dy)0@>oH4z~*in9~DQr(=JWF@JjRUo|JLRmkGiAp%OYtvHof8qK= zj*so=6fQoE>K}2hGW>7WYEq*_jgmDW)T*^_$0s!0+E=T;$M-W1YN(^yR;yNP4L>15 z%H$kgKJ&+QBlE}A3(D#r6jAHovRbPFrH0gMVyuE+<-mNE@0eUIWZ_ATO94Q}oCWJt z#B25t0a3I|x1w0Bwi~Ck+8H0IGNK?pUMXZrnkrgXZaxi}COJaQcw=Nd)T7MFK|q;# zN*2{J*1cvKF#)idFaR(1X|=~tSS_m^;^FjEHVB%a8l_gQ1TCvxj73QB?0sG?K6Xe^ zj!JQ`oaiQM)r>;MI|^Pj@jalnB1RNOf-VS>s0lcYBCtB6(+F0@pPE<=YN&NePJFT` zM9dTt#<88pRii1oy7MaOt|%62J(kO;RZ~MDB&e7UNtKaVaHkU_pqP;ABc2u5o zO-?$8qKM@qr^yq_^bJ-|Lm*DlsOl+BPBd0f481gcxs_?aMI2>G6m{hoI-b}gtDz|2 zBrUVqiddjSzJ=0hMyui8DrDMuMRhVxI!BUOwXVWY?)D@&HN_FsN|X^_s#6V@A|3{+ zsdZurdy0#y1o}fU=02H9)}$wJs4B8|lOp5mjcA_nP6)$fE|Tq690E z0|shEMM;(+)d+{@Qgd^Lj;$J*Hw>4mUg*}n0h#+8Y=opbQr#L<1COL19VT`&y&5!- zhS*3it{ZRBVqE7q<|tCrC~Ij?KaR8f6S+yanw>kc#hV|9| zl!H3gvH5zf4)wa8KIiz|T1&n5l^O)}4 z*3n+QQR`H3{**3O--1g{p>7};iU=n&P-we;YF8+UWQU3*>#fR8dFP%)>N+<_6+f?< z=Q!pbi-AHz@ahKs6@UmzMC8|^SM@3gzG@_>0wSVfTd-`_G$%_|ZxcB|qpcfBZk(f& z5!zao4iM)D$=I#;wJZoLv|Eu~buu@F!o zV54@6GjxKgghbb*uX`2CmEHB0)-LeW|16{Aobo_bQGJbYuS$xTPI>JjXWhqBR=ebP z%}g{C;pC}!tF$uMcPa_gYYms*IVC-WwS*OQUQ>N2C8-G$T_5i7Wg&{V>a1ExG|Jg& zTb}Hj-!(gKh zL6({Kki&^NqNWK6Z|>%q6_v|)l9`o3Fg0z90YOR>f{I4aeK#+@9M$cm7vz(?Hsf;+z5>(^d;2R?VSv#;C*4znsV#=`^h!smIuA^S>;xM7O zLb(%1t_i%gWQhSgkZi?8RG#xl=g7uQ#GwhDvuu#z zG#;X;d*!62eAnD6i|V=UioQ2|r|+q?Lb$d1pOWF2qftB((HDT%*{>N4aGlm=DPkmv zQ#I(Cp>lP`6NgMNYSL*m+s?nHM2+L0ih=6#6knA$MfMGnRF`KcG-*JnL4n5qSpQ1B zrQQI2gQ_>`jVf0<;6kRP@hA1R2A=L;*8k9w^%zCiQD-K>Gg2ptl1-$McH_Ba_PcXh zh_rD+s)#(VqX88WjX&U_G9v~%qc>3$$kzFr(Mh9N@R1RnHu|o#_V~uh^AnS$?}CoA80Hfmngk(_|(v ztvpuIZY!j(pd3b=FH&f9pwQta=gk4%55}wkczyK6w=127N^S`+YO$HYRi|gihSOaV%&%brwuA{h>(OULJpA}2YTo0KY^CT$05rl~r%t9+5tWjEYQmM#~v zAY%KZ5`}dRBqA4Cy`E-bop=o zqFmjT#afx@s?J)qXf*!05hX@<)X$7gl)bfbCuR(uTcR|=U%^p^{T!}BdCYOz_+R;! zct14poN)C`T{T{CCA=SSNYJ`>ft!RFRwXGE(l0kYB;{$-hluU71|`#vI4EVg8jaSp zVRt8uwv=}KZ$X-*%JyxJe{BUklL*6zOt}>Rdiu-@opOn$Na}TsK+${?1a z@s#o{4f5MpZoEYI%%CVY&CQ6Mk~6obD3L4YjlICca|>rM#P|@SUK0evfNkqavT*V( zm=@5;sC&Uj&%h#E3eTL}SB$Th_iyLmwZJAls{k|_-O8*#XhB; zv85n28K_Fmz>0WXaa%?{v*H2j_#tD`$Rs$7m!nA(n~r=gSuwAHzNJXjQU$0uKEh;J zJaRg!3cjw$&>3qaxHM%7m_{v=^C5?U2`Rlxgl6({8J!mtWl2@pE~=0pI?*;s6v8e& z)}sQX73o!?KKjC0+rzxk8=n|0ms`%Y%UPx+cFHc6E^w=NX0;=y3s$J}v=!3Ig=o3r zeF2lH3?T|Tq#cepG%gEA^AAEH?dH~SAf$NBgRIeKpe;A|O`0+sD2TC+YGg|WOwK+< zkw&We6uN|kl?mIl$H%&l zfb2}YJipyJEg6RLyew8T;{=t}VV0R5To-NzM2$R?RjH1yCus<|r3OjVf{dJqCu*oG z0-=E9mZy5453Wf9wfYH$l>eTm7&2AHbH*#XiC<0C7%xZH^HTnrVV8}FutZnXM$J)n z<7HGktHF7zg^bYI-$~kTB%&XKSk!^a=ZtY(A}QP?8Ltl^kV_aL#RS1|(Mfy+I~-LC zyBSy0O9nmig|o_u7lbmCW5dK|$n+dXq7)2Q6@;|I*OdxlT6!!_QkEHS0mZc@?RiUc z%qYbvx!@uZ0eT9N6Y>i3S=4FL_>dVGRUv5{OMc>Ir{DrJ)=G7*$CPijQ_Cl6ADhZ` zc0E~x@G3mBqB66jamsOG_X3b%nl8I&tEoz-&v~fos-S59PCS2@UJ*L|HP2PkzQH&q z+rQxm=^ya@4>^w0kNEx;$5+!2(_Rm0mlXN-zNm zUY>QRN*UEJWE|3}3x{MOmo(crS=D47s&0|wqG(7Yd}u6DHJ&cp5|36Bh4E50I@PRK z7ozFkR?hClGNf0PVE081V=9?ZAt}Akn*^R1e`UvSkwr%5)=q0o) zz3iM~bu7(W9cj8V!CT=51oEsaR*vLo4qgwpRs>_|D(ObzC5%`q!)+Rj^hR&)T*L}b zUrvkLC6+kqkckGE6x&uNJUO{3e?P08UpA-kP1Xghn$WmW6(;5jv=hN-H5(B^kxGkrnKbCV2 zIxF{wS-U7kyyB{7UK;)ZXkDC)?TO^fa8{aJJC`i+k1?tRCssvVIMd}Vqd@saOf!+{98rxtXC(J{F}=>bjNF*up~=9uWaVE zcgc&IigbD|zHvi^cyxo&kRb?Hmi0A>i632wXCT?_QKFzGg#i#{tB4WMmt!T@%C%<#RcTc+3ObF}CKkcCDVaZ$ zrD1bYkkv;?O7$xW;Mlo$<Rz06FN4jQOLYzFnhGez(exCgjhfV`MElf& z)J;xR!&Rg!;g2%N0pS^B%3MbK5GELrm_Oga+{<|bYf6`t5ETbWk;N3e0$dtSytoNPHOV3!QEzb6$ST8E7QU_GWIAVP zh8^j?Bq6yDQB&1mVmu>hS(3FZ`n$;4jhkClNq&+^2m_$v0umdKh#IIUUnTn?Xb`2v z7+VS7y_aJ*FUvD)2|B5+0utMuJfP}CunQzZXN`{=S(aN@alT|MR68+~eD$Cax^$;& zYnY^)vychw@i2eybi}X8mt=uX~rH!me>z;b$q9Arci^EV> z-F`?CWY0n?%xG>_7S_husvrVS$=yn#I3o=HdsxV^aAV?VE>PUzHsygK7|eR;@|3_& z>m?$w64letLil61CjkQRR0;iYR<5AOqN`^go8J-oPTlfXa7dd^YLU3a69pnQD5K7z zOl?!uKezhR!tANUg2i&}=!7i4YFt#v`SFbf`whkTNU}0c@x!9?Ha*nMxu``C3*?E_ z*4YV+v{QF-FJf)oHiUzA15C$W=T1-f;%QTP0a0doyK^KdnhQ>gJR$EC5W7NiTt#S% z%pg*gEt(*e!~r%I5a4^P-X;xj4F2N719Ws_Dhiv?UixJg-zF>P8UFRRHk#=f!m^`Qw-(+ftU# zlK>%yh%gA!Me=atywxsVa~yhNkM(7js!AG*@~qn*doH73VmDJ%nTVgu9^LwftEg5h zQD{n}9K58UyhSA%CY?0A9%&dRyB0xRxb(bDS*ncGA0k@k;JUchq!H0TK<4U36V1J0 zwkumBlNvsepen78t5A|w8*{+21Bp1gncPcSxtigV(4q#cl9pR;!v1thIJ}*!-mh9E zVq!B_Dk*vq&T8ZYu++zG$%gNsZEj=md>(VmV z6SsXS#A|N!%-k%``7I=4LyC?=nIuFBKxS^j;fWcvXuGS`mAn-BV#{rqPHOT>hEs4H z5w|Wo9+;b{oy*^|_9|nMU&Ul_=E7jd9dBAn%;Lm@!ix1sitKSl#!NZ%w85drQn=zl zDc}6Oa@7m@DvwzWXSb+p5r(pVnn@&r^;D&vX=x5iaf%cxuM3im4Wvdq!){!cyo+z{I~UK`H?= z$iih^MV#bSaXoQym^argo+0LwEL^raAFF80?B0Wsz2_#SN{+0luR=2-9owg}ba5-j zy3omPRVZGo&e1QLza_U)QqFbgOEiv%kp<6Bg@&|h)NCVqH8F9Yz=hWi!{NGMDYqhW zyj5bbMJ5W^>6_HV&dtt50;kNV2~O-Jxbgy?L)WK9*;^GIfaK!L3;>LZI_T{6E3C}H z$_U)1y)k&Rc0(!Blpg(-BlIGA(bzGcadyj6{i|*Uv9Bo#doy;6B9l6IRk_*!SZBZk z<&TCWW^Q?^Q-QLmhr}yXASP8;!Ye3GIsTaAUveB5V4`WdJVaTt`WB_kKb?5CZ$lJd}0ItuG#=2*Z(58h|euAsNL)wpV{fnghbn@%TmpQ&<-@l&xDpxWw`7NIOCg;CT+TSD1Kfi9}f1UDw zJNbo3LlpnEq5B2Ue2LsYL&;yG+%Iwc>satP6Hf=-mb44*H7=vR~9;Ofid`qlXC zH+Z6FzXqQ#@%d#t{|a^f1@iy0rTr4uzs23pQ=?xY=YPfhm*Mqg`~G<_{2XY0iL_th z`d6su&mak<|5EZ_^7+q@-j5=gpCjdOB!4sc&yycc{v*ymoct%$uY$vZKx4Hh2;kB$rv_YZzP zy`Fqe<9a^WK0GoyH67;i>0~M!Ps+gwl)|Ir=wkoyz%c3K6O#*zi}%u%ON%QjOMLVP zkd<_?V{T#Y=FCi(x?G-|EKiJ$jh9NJ_E#HiFPF-t(X&#^Xek{HrF`tw$?{YgEcXq| z%^6`C=nsSG_3Zkk_pV>n;qP0!8G-I$&V5lh=BRI*2X{R1PzBO~SUi5m;EizgBV zpT(8xV#~tKFq2KSO(KT0l#hqeHtJ9H+smWn(U;l3UY;yF`(24*X1qKy+&?@x*tjl1 zv<(f9PKCL)d6;M8IbzU}m>_!k$vA=_rf}r4>P>i}{>^2vhlFJ1EA- z>!n^3!f3gSEJj~Y|Id`hN@HW_!Vw%kED)fK!GY`V1q0D55J+JD#*OKTY&@7cvPbYA z7#WlzW){L?`^wVl>PlEmI9irgvZYqQq>J5i3k$O|)7V5N7^uD>(bq;>N+1ZM85(#= z1P`}X7iT8Qqr*c0Xk1UPcfB__G=wqCh51f2FikzOa<{}^e)Q<*=nZUP&@?b}a}hgO zU0+#UUFRbxof5~&(o(wEZuXE(bs+39X(U1QwNcq507lbN+b9Hs>|r9A4CPOoJ?w(! z&iusaD7J}4u3yI*%sNdT*?ck=ro(tP+J#Pq=270?he(Fdh@;6?lXV^S)pkRYE#?dP zY=U8Q3J8V?!|`@m2By(cMjmY#CwN-HQy+b+gyLdTxnFTO(}FXAbkghLdXMaL5IE&& z1k{RvWF#H3F{(pj>Fu|+;)t@9e7!@mSzoDvXmx4PM00ayb~a44(Nrd~vCh&spHUMJ zfU?m}S`J_^mK;^RHi5NHP2XDH*cF`R8Kg5ZFr?NJu3r$Eq2VEnC7W-VyCLc1X7Qy_ zfqAokV1S0(6c0d9m9(|K9#%h%{g{+i78mE#e5YpdBe0tcV|l4-LN*JMlv|_oGbpy7zU_PaPXmBuGZ+Xwu)@f>+UkLL7G0COm1}h)#8^DZ5CvKS5 zR!`US)efOrS`ACdO19WGhY4r2qi(c@R~s82Z%9K($6QmXvuq8k+yGP$8Y7#a+z-3? zR`>G4gj~uHLTW=m@5zGt9LoHH+SEiCZ-syXdXyhs9T*xIz=p;JN7lT)+5l1DkTvD# ztaom9R!(*bMo33Sd*pjhL2vEI41x`vt%Ou)f}*>nmCOtwyp10osEN@sZcbhH~9Fyb5E zrv^3kio}6tcDC*;OuC2d$7b^D2{`h>i;~Ce-2B4A{2Xmu+CiqHYEzen2L{04+QCE` z>&aSmy<-hC7L0tcT^?pOo4SB30SH}QZwaL4i9m-H)G%9 z{tl6}yf+wzTh;r__c$6{PI(;jM>qLEAKqrPWTt|*IbQExTVF4*Ad-bkI6K^_G*g}c zOIAP`Ix~Yy&`er-TU}t&>(Y`|++NkLKQD{D{$7SyI^0Y$*G)?2L;qeKahQ;U?+Ie!ajOe2r3@+7W~zOROd%V{P_>D2U*Pre={uv*x3Gwb()Az$*hM#YWDQ2_XJi(u>)F=vdh7D~awzmc3=qsP@V8)?I5S-kn# zPqxmmj6nM^lRyU9R4BJhmcvBH_ykT3>!jmRI8w8aBrAOuXmT)^!{YtQq0~V4U#77l zjL*~mncK*R`bOv;=kF{^6p8^lMn%s2D^O6x==kK!?Be3mY6g^!^{uV-bV*ElRW4YM5#%Bd2^UnFwRD z6r4xt7+~rl^RZT(nQ3Z~)_Yhn0SV5~P&SxjrUNoliw{uNojZ&3^BGRR+iXQ>uF@a6 zeCVEWWgw|oGz%#92y=rn`jxsqe)k%0)#urO08oP^vtig zvi8qKGtiG`Z5;TQQ8*pui4Z!9Ev_;#IZz4s9YXjaU2?>&zFmn&N`GjiIcmG9j#RkA6wWkjU9#I zj{eURI1DtdUscCAQl7<*1Wann#=Ax_YKiF*K};d0CB)R&N;bn*vJtjgHntk;y=$w> zs7y_J8ad^-+;(tHD3BRXOBdAph*SxYb(G4Ac0=jY;|L7nc7Yun9xApYv>F|dEe&8y z`SsV{<1|Ra!~I5)&EJ@sXkg+NUbW)>!)SLjCVJ_u-U_nXs+i0+8td0+_R*SXad^sm;?41)$&})amE)&|^ z!X4Q<;mt%kE(JUaNAJ>SL&%^>WLxVMU~O(~=!8NyQoxzm5O;xXs+>*AsK+L1X5d|l zDD+44RkB#r4W8}_O+J2nr~q)8)xsHo`b@2KiV*)d>MKgJYrRjJpA`3LXch6xJ zsDNb91aJL*w%)U5GMgi=z%$SQ({hI#!vwJM(Ov+#I+2wIO!;^|k(E1Kk>T*7MWvF} zF!9aj2`dOp&1YW`DulJTEZdjg&d_8@7WS4RbraVDerkQaV&Vc;Wn-ffHm|(bg8QZ855&J1cij~*9Wh+ zW0V5 z0@kOv44F;Q1FzC7lby3l*9N-W+*sep)<0!{@WyWVgo;QEVN7NdiHXcc7>G&U-oB9> z-Jt~~va@yE7{S5f%ndvSV_ZcC1B2P1#|9ex&&}Tn%dLnk+(;~J9GCTvT$JfrV6ciN zLDjxd+1%MoH}d=W+C_;8RA^G30x3*(F}@*Y8>8=$5@Qb?kds-~tM0$#RSzGo5+%jX zFbpQwFU!36^!E?rz6?*FtI!2Co`ENf_AyZ~Ge?+$Yp85hD{VWKoti~HZ!?J)H!5p9?MF@;{kc|9z@_9@K57jk< ziU^`GnZDTmiH+5tqM|GWr3>d~ETdEO!cbK#mv)I5;T?V2{j66oi#}L(`M75KGsTDD$yPcJt$|h|; ztcT@JYhtsrbu;LeG8U9GtOpPgOua;ZAl;><@4~oHZ4^;~WM*8->&JQ1;#&vbGY5Iq z3~Bk^GW`mkXcA8(2_++$VuPuhz}eagh^DQwD+%QQ3l%~bTK&cK<)vjcdUr({Mz@wH zi4VFo8zhHT)j*z4gR$ZpK$2^4-)O?I`5^2m^tTT74`NeTcRqAQQ&RJHmX|jmzA%G# z3==KmW>5L(1?Y2~N7|mV@C)O}EwT ziFga?$cV9=`e4!@hOwKed6SHg%t$nDH-R8$VsiH8;_BMgj#_(rWp{sfzpis-)9gll z>LPvW+urMArc%`8mGq#+UlTMj0qphn4 z>zy#uLBuq$y7giNY$f{H3Bo6WC<3?H#bp^0Dx*ggB6S=@k!^gTw0tNZCgPp~7fojQ zg4AZ+Jyz7GfdS4MovmWLm@{}9vZG42(YdxB#ng(JG%~ni9>`2uRs^JvO5Ytv0#RX` z`$tEQK*B@}k*$yrsnrbxQzb+k%MTue2m)K40K}!yA$&ev*TUlJeVlUGZQ0+=_PZYK z?e6VYDm3Odi9_0)dBNLjI|oN!c(l2) zI74(g+DQzH+4QG_ucIcltMRG%`K1Tz>p-~;lqvdVOec(9CeWLlnFr10_6}ew*oyXl?^% zbWC095Pz(W;C2QE!%&wAXK`sctoMLuW=@`&c@7ZerCuSr4Wf;m%5Gz?Lz!#&WFC0GHd~j>vd%R5OJU)iZqoO<~(wxjm=x zBL*$4^|uXTJaiUAVfa-hoSDg5x_^J|?%i8+TE`*wkbiznM(ywj#VUIbcONoGxfdSh zyIp&`yE~N!JKNzwKw`ktoGSwm}mHESucC zS2_H`lZX5Fmgc54xnvD)NF5n6e0ykMXrv^3g15GG2j{{lcVg1!a>B?vOukOsn7@4w z%aUo)-X0$CdBjy^XE$J7udlDN#&PHNEz>C7r;Uv!#~O6|U3kd}&0gS_h(^9wQv*P= z32IZUy!VrXtu+)oULG64%=_tNbA}a?N-~wTrrc-#p6b7Ac z8!|+GZ%S^g9ga`Ri{IZoJbd(UZ~f-n6yU;0JBu*={Z|JD2XLN4gF^!&qZ8B93wM{8 zc)Zgx$IM9Q_{4-dx-il=T4r602C%ke@LCS`!a*C-+slwz#(Kl$yLax~rb<4MPM_PD zVD4TzMTccg&y6$DQfe)aas4@Iny_xtk;&#B9aQe$ngtm?YXmoe*ali;bDw7Zeq@Xl znfbdkeAXlvZ_dq3Y4jGpkYIJMV0B=->7v^?*xfzY-^*lkSRW(H?H%T(?!UHj@9v#j zSl!IbGz)a&Hn)vUO|;QQ#~8n9Qo3|eSS3de0EWr8rp6_@dzIbC??0+6-<_ie$K;sb zC208^p|51e3d4vQ{^IKD+R8l#s7c;0eBtN|VI(hI8=nH-^6Cb{+uhyY-#s|k4F}n7 zM`d?=dutnfE8Vp9#alON6zNn46HPc$S)3LD7)X`yx?|sGK_>_WjZPBbsVlsaE++@xVYBdW-dl(%6mJg}ZlGR__U;g|;R=!X(T-;t`zoW8W*(WmI$+zFwR6}1`Ub?e*YwqUk4K3pUktUC?3u6uDw?IRyDA%-1 zAjwVAaHg1GzPI)03y%*fYjHd1>IJu+$jAe$&DrhK*BD3!PX((q;h|8K@AqOL$m$YI|0d%YcLFeuq=dk z?=hCRdux7X7I!r@{^SXv>2MhBq1h1=-g|&5;s@2aCQ4TOLyj{CdOC< zW968MmVEG?eip%)tr{FIO={it&b^g;_m*xlMLQ#x6`mwN_{K0H7_0Qt3%8e7);G6y zc7V2XaIm+B%S(4U!KNW8~Mejcl=+f-)WN?@8nCTj0il0W&B73{Qm=&;mm9z1; zQ9Z5V*2>oIlP3>%)@~z{F~g??h!#zqy)!gG1gn7O*5ciJE6Wm{JPL1FNOVjQmV2gW z=I`Fq_<46H?BxgfUdO@S!7fg3=k;x-Lmx21a8IJ6RUkS=b;PdYv?jGoI#fwdEuze| zgxDy3M)x!q!6Qyv+1`D8c(9{xwoEL-c#KFSx0w%xuWyVXAK_a@c|EO3*?O=gU%5;_dy_XO-g1bvRbte!GR7o` z0>l-eQgkq%VW=*(pxn*9$M5fNuR6LRSsof?Duh0^h4ty-PnXJM1K!Hg-8*;{l!Rp) zJeH)PtH^(Ojk)dZ%AUhRzqsaf`>jo8Z4KNa;+tcvDfwwkg>cOBh#|2&`mnObj~uPK zDt{K;OS=RCw^l0;A3xqF>Yl$rj4(QCk!8R73*M&5hu$0<8JlFm_s-oVK*x0xUv8%>8=@pL)!-3n1y>|xM!L+y6y-U?2i zb_=?R$@d=}{lL3SLqc7iWqIuZbGL{LrS7BMUBtIt3EO>J>kroN15d7UA<^{sE4qvXgDULgS^I z#`bQ`FUYazeVB|fLpI(im11*Q`GQOjfc!BUFZ0R)y$2(f0^dV?3+tG47~oUWK(%dj z8^i-|gOC{S#@wyjcbD(pQz&^uMl?PNz%S+_pB<&%Q#a;sEv;;9?rhVcAwn4+K{68D z+T0489UJ#oaGBv&D+Bs4-8YVdRqL>?`dCt`YgGfw`%C6qaM!X<1<07**2Ba1cQ@~8 z7=h&tGC~i7o&Dc8Km^4o;>yUFVPouu@Q6QW!Ze}J`}r3K8TFxDjq>lVJize4X5H;U zrE;*nUD?{+W=4e-jn#Y9ilX7hWoGDQ^c)&KjFmIyc_cQ1D!s;$&}(F4SRndG%=8(n z+o0QL7H3XV^9&}?>LAg;J31@MBhb7tcl!>aV~k_ru@7?ck!xearHQFo1b2UfQI5>6 z(%8@FWIK1ZG}p5d?!AsPx`iuOQ0)OIF({JBh*ZK@n~-TfwM`(?(mO;cS~HN`gzWMA zdmF1n0jPeI+1+fgODa|Tghv@2pP8k-E-~gI*qFJ2txlGY9)IzRS8ym)7@NCwSIG8u zQ@Yy5ersiChegWR&zA?qSFeAe$tnjW8;IC^~a#XhxG z0x{xtkcFLO?`*$oXMbl$R+epi_qvRXGP4w##)oJgVT|wzbDB`|RFnibdNOqRj!X@= zOvpTG61%-7iS6$!FU(I7&5U+Pg98JvS?|g0xGqWI*6AlYK8c#9cdwlf$U%YHG zW6V0Ycz5l=c4hZ$zkPduXLl#v${*zG?E*M;L{iT1%OtIT^a-*EG$rYF>{@ouciGeD%*0u4yirPfRBCb7W# zLcEqi1;W%7CRBDFVPwwEx%GEGyfBE`J? zDIz(|q0ufk9zA}%x3fe%f`muI2m{uE)`9Dq(Z~9)jE>FD-d1O|Y^y z*;i1jv=OTf_g8(sX!X_{9!7I}8s&ccV?0fc60!@k1~Ck;o5*fLs3i1%Q#D*5nr>kI&ow&)0>$SlMET@M7J|K_%=p1 z`%EKk?QUh8eNrTKLT0Q~VKo9r)BKK=hKYvFJ!*a}XCU?_?+u#kUfnokf|k%oux$DP zSegp$qgS7ryKR7O-3+s>Gg#z=M5ToWmM`>Di$ui&Lr%m|-+P527LG!Ob?=@=Fj`sv z^VS(AKK{<-1z|V@!>w5slUZJ1K9&L1OUnxq41imxwhv+%OV z0G{9sTgvys?kncw?`wU*k!W@JJJuI8>sXr5OrK=(F5ymGTUgyOJj4?&6FGHTTfn;W zp^L07$cUC7EaMF3!VGUT@KTCR==b>2!t(n1cBQe~N+-=6I!7lJSNkvbyjWY;~bU3$LB52Ky?^|I6hCtxf%(FE4Ct z{MqFN-v7Yi*z&?UFMq`4h4w?@P1dGzR$qDr<>l3dDPEefS3Vh_(#-!a78iK$12BL7 z;sOrv&Yk6r4aQEkRHnrRt=7Ia1{$rn@Xi3UOj?`*%3->X7m90lU0UkUT9B4qTBca+ z(AzTq4^|kCY~@bN_2(-Ly>W$s^|E=^fV#lLNRc@hTVcpcR}_M1h-!060Alr}_3+>z z-OqM=So+;y`a$9e^B3b1gDu|i_T&HE5`z}X5D@K{_jQ{~3|if^xj0*tx)(Nj05oGu zzs&^(mc|XwCVhNkzvU1xzEak~x;WYOK1?e&>-+x1+{SjVnKU|(Ob zwFS+pGH=ezF6EC{lqVFVJCI4C8q7k>vyvo5B%;=SF7mcsX7% zn%+=jat+C$$9}W@`DI?BT5dN#rSM2^rd{=yL0oJyufv1vaemNlsuVWNaxF(}#Y+Y( zgiiHnRew@rJM4%dFp{g4-qR8rqSJs%A%{2ua+!&M4=Lz0ek%TAUw_vay-`M!tUd0@wDDGY>|1f+M*w!*r0cu zH$zY(v%BS2B`Ib}ZAlc1*IPzR&5m|p@>o1;2a?s$8w@acoybe@N2m zk&)@`M=+tf!!}l)Oq`49T?e5 zW@c|7bS^Ha)4`1~L1i!5>m`J2;({8bh9r6k;T>7O22Ju}vnZ04C8wQt9wJ8 zcnB29Ozvw~m|o9fvI1;+kHuz83TR#YXu<@?I{$ux8g*O-+CDC0S8r^n0}9KD`TUM) zMyPsioVWjR8hS~Bk$AhgGrh3Px`EIs&Fp_(@Jwd}^79rQ0J|bLD-%Ph zk{!0jK%HOCXyRV)OWM$GdX`@*?n;1byyl{g8@p2reOL06X00V4K;CuPk?Hx1K)gf{ zb&I#1MS!>vHHL7QV0Ot9HHW0>LfX`6s?W@)TTOhuGI|Ys)g4(wwYNzD#*(f&0d)f% z4lW$^(I^PV@w;?Vye!o+OoQkXO1gn5dkrUSUD#M*s6;=0gI0P~Z=~rhoLejF8=Jh| zzkgVJ+=l3Iy@J)@-P5_`a(d3!&M`@H{4tR*j$_lpAEQn^(WJ6DHvLRY@rB+FVoGE* z8A*rpp>{zUN{3&GZwGB*b0#r5s2hdEF5!b_k(hdPW|OhEwkOtFQ*_#H{zKh?{2J4h zrqZl@(I%`E5TeuZ2~8xVrOz24X;MB-KSOdzi$F4G%jC~c7nY`efR%!LlsB<>6UQ{^ z9TmO7c_U>NVad8Fyju1+eS*n72?s5*HN%Ce5eU#md6kn^dJ!v^LzNPlvTMW*ONgmERLOh6^9ncwjsQ^+qGV=K z5YgD<3~W!Hq^#TKo4qswby1Yy*M8G&C@8jpd{RICBM9OhS0Vc=Y6^&uh?(|jdejef zA7lSS^#Ic=xHe7=!=J^2VE>xfLuL!eY_BkXbm@Ngvif#4QFMv*)1@P{{Bi!IZhl?lnjf#$IgGiEI3G08#u7q@G!HZV-mUOV zazm-IwR3#S%hIYx5R)EHCrhE^C_fQrT3WzzG}kL&P8x zeKI#3FOdgcMDJUE7xF8lM=Pkv{YrZF!d{8@X9oINnXrbSuNbIpFuAz3!Fs&CELYfE zAN@ihzC%o|`Xs?|=$$#q&4VI&4e1oG+iu|aokO_;9pcDR!rSj5>>xmLuhG+s++zPLYh{dc*g{48dZ;g!Py&py#C3wRf*U1laahX9s0Ba z$->;W_V69vMrUp)B)Z0G;iOQh5fE)Ze*EO|nSt^qU;`74+T=7+3nKMKkNWq^cr$w~ z1wnDveBWp6jY73e1w)e7AzDOQcsw-%oW<~WsbOMf8lYff^r2E>^k_3CtXEiiR}bnV z6dbKkozgJFZud(uhjbWdlnhQ}T^JWjb`zJ($*NyBbhOfZvPDVP&QVEF7IpCA7ogr1 z9L=$@7+{hrKp`o!d|8$>=n;o`GbS5>bu!UF-@FHTYkA!)en-K!CP~$c4-dTJ!G(!Ujq%T*nm1I~7r}}( zMuoOQ_2e<{EgaR&#@f!^L^7LM{F9rPm?Yr-6v|X%RD0BT(}V?B)+YGvh3uZ6MoN_$ z0?#8Zexk16r-N6CaQ)fv1>VA>H_H;?f5#ImcjVBtS z99Zb6jww#1&|{i5-(n3GJF~S{t&9=a3Y-l$k=l0wP+rdQ>4#c)*ENk&T%CB=Y^Y6P zSw?r>F>ZmG>r#P+>k>QDQXkI3&`E0HN$b%QlUlypq2EI&ZtN)fOiayMr@G5>eUcxF zsMqB6L@W*2WfO{bF-QFxYSw-ZrI1m>0lmLza|gq(08I_EaAF`^*~<3#`J2sQo7h6> z5*@jD3$%FvuIx#M)a3OqTN8+L2I|W*3w|^OrT5hp)3#!0VXO~_AyjCV6*>(O-Z0l{ zzz%V(_Rl7emmFCbZfB^jfdFqyGV4CAaB)jc-~AXrAHidUQZI|a1+IN{;|%rGG*i0q zKO2+DlU~iOMSpK)+J=vCDR8CneZ6)ldXv!nz$T@5T^w+MHM^i3j1%c+}bvRAH%@tia>|^ zK$E<&T!;+kkLed8qcbi3U86ZL4CO2O=_h%NR_ z2F-&-R+_dhxZI>uH?`S9r(nyTG@_|>@beOL7n-0^v()IE{@Z@6geT)&V4KmiKvB3X zt_8Aih3VH3nFhhuEcrQ0A+j*gp_wxumk<_6V)%<5{Dr#mC@~^+LnZHTZj9#oBzW75 zL(Jmm3yNYh4KM+xQE)3BOR-`rVrqJqEuE?qN-2`EWZ+ z=K}-u0N7bXCV_QojCph6C?Kys0w~v|w*lFif`7&R7ia{AzrvUM7OoY)Z~= z->gSsy31@hj|+)3-tIaEIRgmWAc~{|Np+5yCPZ+W2z8rFBt1 zawML%X`n;QtA3O}X**!t%jDE<>@1_@%ex{QbcBbUL|z~x#L#e@e=8s@O0)dbL8#^S z7Z6sQ%K(|&tNo^d>6U^1#z2pnq(nuKC?$I6D$}}RJ@^za(D8#9MoBWQI!#hOEZ^+$ z>3urM`PpR~xrRcg*bLB9S{wKe_TjM+uK zOrtTHpwbxJGu&R@+BH}nftj@rV(R#Xfsp_{Z-5r$6jpV!fTa-MVew)fu&Rhjc78Dq zy0tDqw3<#|a^0BnWIP!zVT`fu6}fh^C+Sc@w#7I4;SO=3gmsIRDlMba28X*9<|C_N z>l&$|P+?R#|Hyzbbb?oqslyAKvgt7EuqCYQpiARzt%&%{j%-SUG&Q|cPHN&hcBDQL z->HdL&{%jOk6

2CE7Kd~}6VWbl@{F5r8)T^>^`y~tGjfWb|f~HNXyG9f!)!kar z%q!~-nD|)~lDjAyGpZj2ImG(TtAH`jg7Qg|$m{xJ`wD@}0MCuWrfAD>go3 z>O?;VWfCm#2F*)aOZP6AFIbHBtI9A@Ake)Z&fn~YGX~{2}?v@epQ4sYS+~Y^@d`fLd3T4)x^kpXhe(Y=_UUe)xwH0O;DOuWu(?e2ll-5Sh#qsf&3|DDhnIwnAd9}+hW)Kbi|GiuKK-i|%*r~N>}4hLp0~o^ zW{Aam@mN)eU0+^l#me>T-g!JHos4xc*;Kb=X3`3i7tM*IL(?Nz-xYFSmyuQJ1r}E# z4qdAaBMMEgx~npWUM_IuTWt!MGX*f`T4XZrkf2l!K_iQvU5$6#bJ~A0z@LAwBq3FT z$qY*`9DxX#8A|VB8b=-2)|1E91oKU) zPfn`chWhFB_qtuV)eA)-E}6TK$*AxaF-o{~Ygu7}6sVXAVOa#Dxtq_RK)Fw0QvkEV zY?ApatlquDYskxbzct>JFoDVJ39M`=Mv$x@s2je{Mg7i?e`Pb>CVUNkiE6GXOulN` zEOcmq@n`8&r+Lz~op9I_u_=V%2L>Y<_8x|N^{=>KPXx2Fm7+vVj>tR69~&tBwK@9r$L;u=e*E0U#4i_D7%jar~fYD_HwG&Wm6cEkZCbw7V*fARpzeJVJw&*uh}mNamWRW^B-`2nr}H(FP`%+nAwYK%+@q z@9=C{4_!5;SupV0b4D}vKdjQpHzXSWElad~jStWoEd&n{=0`;)k47jB_AL&jp+X`Els zaKZlN2;&8L0uP`x$Hpo@+<{QnTl@0rcE=~sIsf=OI!R<%l!G&0m(p1~> zG6p@w#3t3bd27jkp}w0QwmfD@#U?vgRIKy?#=KGtpK>h~ion{DddF05mlI`itVjulGscx*$uwok+oRDg4>>|BwfL%`Yo!D=aq zlPz?KKe&&CNB2tILYJFCUm|Vd3n@f+WK6DjHg*FA>Xd(NADtNGV-E zO=xO8Fxe)hRFP6eBPmE1+5BueC+0yb|6T>8f>!q@w0AzT#1yP=G4_$glejLyxFc0Y zwyPh5;ARADpikliAfSb$#;96i|Vq3GK&&8X!l zreBMa1+nfECmQm*eO=9-nm#ed~e*OiC`1fY5eCSdU-G}xb!Y#RE|O{=z3!hj6|1^ z@>G{4hoos)EohTql!KhBssiRX<9D=DGi!> z;!($8wjT`Nogg=Kkvdl~N2L%4+8{am3FM?<5Qk|80}~T*Jk~7kljLZ<7WtqD$nuvT zj@<=R8H;X)Z{Ng&Ajzy7NGA&hGO5KXru$kO6~Z7BZ&k2rn8b{Hy=mg(;n!jv*LMg> zEGHw;nj}c$`o-0Xc`ax&G8R}y-|61?J@j2d#PUAKRKd1=jsBX=mVc{eR#KS8+{7ew zB6F4|EKQE+O!bp1Il>}^pz=vuIT*mWGG*;aGgTUP?6g%;srv_#RNOZjY1&k4+(0B5 zdQSttx9*OQi*McZm~ggig!t$Ol4>~;1iQdECq;0s6pgpIwx#+Upzv{Q91*78U?2&h zhDm?8dovnfbtUTqGMe=3*k=4hIvvXAqUzFiM=4ouqn%v8L|S3UJ*Q;qT-wCK75}n# zDd2!sk|86`_n=gsYq@yQmi={+cre!A>kpKX<@F|v8b+uGD#+i*t^)vJ5hLgm6->`w z5+5)*K4~O}F;-rEjSm(eK_RhBgK-x7M_1lspPSklM)2MAlTvFqImjdt6P5Ur_x$22~OL|P4Lv|_Z9{E-^KVBMXwML2(P zjX`BcCPpozk7Adv>|RFK3V75Rd5cVJxM`^{(Z>6;X%|Rd@3%lhQmn{AAyO; z9q`dLbib?12Mh_W`v*vL?Sm#Vy7=(PYuj~8N73yAR1axH8~zLuX*HplVpza10s~#J zLd??8O#=+le1#Nsc?l2t&i3h6I@zXNXcxXyL(IZb24PHq!Yb(IZ~aDx zsbCl1CJ&p8Y$=P0pL4=P|G^I#2cjjA|U0x)W4aq0>NEKd;11n4=5TaZ@8wXBk zuYp6@9Zz3R2evi>2TE|}UE5WNAxV;Rg*OwsQw}_e;^Bm6(SlX>2JXe5@`? zwd0=l%#)VZCJ36NmWm7KM5=b&NZ94&wjtAYHV$>dv~Rh(zR?(<%(I0Vs-OR&DbgbD zu& z8!?%10l{!wV9f|z$U_6-WtQ5x-f6$NClrW9JTQQjsn}mh1x~Rm%Er@KL?g;YJXnDp zdT}OyL-wn+L5iW~Y_9HhM5cxn&1pbNC%C z7EKO~kAF5_+1%3H;(UNLzcfnRr1M=R zsSX;{k(Vf5KEO1!5Ri{Yt8O$UoZyw^jio^OwCz(p2;h@?rI^B)wUK3mEF}QCGca(2 z4k4>im1gDRKvD^u;4%w_$z(%GakoV&j+aaf<7ZvD*GGV0BlFDoz^*|V)NGctq z;;ku*aoKc!`C}sXOCMhfKCZZg$U%1i`J_?w*qWPU>qsk~>&A*=0b$XK4Yc+ z;DRgU%_)_XknugQ?k_`Jp9&Ju+O3kC18n`9+>;Zs=>#b>qYFvx+D<2cN2Y^VYrEnU z|Kr%Dk6&LR?T7LlXpPO6SDCY8=iF7zaJ<)^Cbh!A?V+K5@{X`ERMJE+pl-=44dHxD zVr=%3=XwVGo5`Nx+Y=L#5YrK69D;T~oglG7=5;zwO0+N)wFgY)#+ea)b*aqySEOp< z*%qH9>0(^{B=1N-s<3M*zdcGNI=XxM!@-Ka9BDfU8!YTsP{&64`8(R^{Kg_-E14n{!;P@N zYOt?|d?;;l{gz&e2$crMnRN)*1WGy`<#pFXX8OtVNxILG5!GBmR;*7E>Gr7e)pZ5! zQ7Yf=vATtIEv!8Kxu9LVa`B_fA6?o;)oFA1={s#?v`VE&XirY4+XFXx$rzxZP$Oc| zrI#d7IZ~*uE0ZPFDM<@%-5MT7zFM?`8#1HEj8t^Kyq-vryoBZNR7fgomihRXlFWHu zyz~``>UmZQEA1|^-0t#4UwPn_JOvF5+xK_j49HhR)g=339Wp~sm&(YUK^BOM7xU-e zWf89+w5Etm$Z5cC)0;Q%+=*Js&ym=cF8kHipzW(pkE)Y2Mq6~rr$=;u>C#_atfN*{ zY4z%pJipckLU1O{#{JC8|d~>n!vbX>a5fVVkw1B{;m{%sz znB_cXa}SqXxKO6N2!gSD{v9O{l|>`Z8Y`Lz2ygWE-|}0k&@PRsvu~egk8}i`dBXY< zC9cz>Hli!urTj&v>n`roiU-Pqn7ko-4E9_MFMlBF<6GOWr!!f|&O<3ay^1NLayrSR zK6rh;k}udu!W?$V(~C)_`f`0Y)&6~8;+Zr?v+YRb*^U^IPG6lmeCNfT z^A&njiRvcB&iPW6&i|{6?=dy4KV(2ApWH-by3$TS5~`3YjkF`o2%Up^c98$(!Xc0# zrbvJ?vZZ=+y?sH;A?E+c7@?U*wxd9QQ39LMfhK8>iIVUrJrF`@c#>r1P|?*FlsSaF z4q7+Qr=1H45j?n9q9$uOxF#&FwYQ~su8T|#4GKk-3*RXjkHARbFl=CHZ_AReDm=Hp z#S&O()d1OL+Fqn~TS*Dcqgx;c<0O}YiwCG3V(i7f4x88MI%2 z>I_pD>{aRzED)XsO*rqJe_f=^1;+7F$kwpEjOJg*Yd8CCoX0oI4rz@#65#H2})1y+I`q$GbX zXxTk?7}R2qTsH>v8pgOMYKodGX&K2MEf+`Fw%h(bAfT6}G}ESVmilR?{tBYP6T=V^ zu;kAl6iw_;FYcVSy5$+Xi7v5jjsOw@YuN#ML_TX8P=+bcUrX4G+_WJ07f6vT`@*A? z7>gk+%^YlM#$qTN5F)i)H68_!q0m!hx!gSBQioXfbx=ye?`v)Z8RPr8_Lo57w5EzE4?a)lEL$ zW*RO;AAiDTkJfw}8^xd?>jN|yu1EThfbYlyf@!?589AS=mOm;%GF z)C>{;C{A#{+iW)*9%+&c$w!@?*RMxSrehLqL{X!%;ipLoVP;v&SK*jq*?pYXU;q+| zo%59njg@+$2ox_7pyK8tN2jqN3Ltm`93{d^2ziCnfSo}Ts$o0UFJJLLrVpny zY`Q?1W$;g*u#OPwU{x6?@v*DNRJSMDyj#mmv1g@YHXAahCD9`uS=~TLlET^L+N546Mie168RF<^S&rc zZP|sZ#4Y#FV;}(Kn_x+}N*pNv{9(*BQXsYY=n5W9j0&24@H968E22rlLw=vDW$@ri z2P1qzW0}y%TQEjM-X>{Sbah)C_iX(FCHOw9+uF@LQ3|aoNGo(@WO22L&jlT z{yYvD|44geo5|jSlfn|_Ax+R+4Qb>Q%tn7qaz^5l3{q%By_L-(i(VkQgn@Hm3waXtC*hOyVxGYQ*Q9nW%}Ay+ zSw|JMLIE+A;GfOBgrKr-DIdyEFi0;1m-0M5fQeYbI0mm0ieJqkVc5-qXe3>t)xbIq*#X82m&yd1VZdQI(g;QzIQgbBL28B);kj}I zgq|D(U6Q`fur#-XO^FsT1Wn{`YN`?zF-%xklJQaUay$MuI2$!aluc{G z3%eJY$wYT9my;IDOfR8DQkDX*5T~x7IU&jfPKC}L(J+qvfe@jv*B#Js4?@E;2Ri4-?A?=&SGRmkx`*A-ia@n|(9VPn!HCjdws0E}Gnir>aJkq#Tql&Ko&W7u4$ zH&H?A;a>S7k&$?wYZi=m1w(pWu)IihQ%h6RD+q$Ahcm2aCb_ok2f4!tiy%iSaw084 zIxoD26fddTKd)w=`=SVx9Z|lhX{~e zlR2>V@NDUsvyD_nyyaimzUXoAcp6e2pFf{Jw@W1EbHtik^39Nr3jG#@L6!O~aoQN3 zD<#BG6a9}-vjUytw9rXl)EG2rTEo@K;)IV9q;#X&vNLCCBhbV1d8MVlkiV$Dg(7D} z5Qw6AQ9ae$(uF!Cr{*}TyshiP&k3owZ zcF+Q0z(>taz%O2*$$rPkg-MzXlmxxSTn{mre-P*h?+~FIL-Bq8+k-@zj2a| zpo^!lv_|Nl(L0-O3yDlpa`d8flOv9o7r2Z95C6=bPL;bW{MP*^kY2aSOh6PqId0R{!&UV(hJG0ss$k~bu%4>V9zffQa6jL^=TG-HvR z^73I9((X3ylTK2dy`0HggDTE6QoYVlw%-_Qf*C)cN?9C>s?c>sV~8D+LiHSRN^n5J zGbIuM*=3EskfHYCrRa3YnbW8~1%)u9TqQ}MU@MVJh)6a;)CwoOvJt_V!-lB{PVZ-6 zv)A}qauPK9x`!%UUlvhR0nVhKQC0cV(HV)OF~&ciBoMoJF*;plFsMiOw*ZCTn+wJ! zpoFp}8r?``JI1}UNmYAx`;3{cBAL#f**Tk_=>W$o`R5rmz#ld>q32@xnZT+!efrGl z(}5VvmDVvrd%O$YsSs%4*%C;E&qGmKULcK5>4HZ2g*f#GXX4!dmuL7a2A(N30-UAg zW^T^WDQL9nVyDl9r^`=q@u^d%Pg8iPDka-eLE;qjG_V>=1q6v!9Q3*=*4X4j%m@uZ zOSmgKy=(8^o!$?TK+mBT^OKMDlGO;*;zpVoou-~s(dpn+?DQ$0(i5t3*P^2Hz6w(_ zklk;Zb`a|PnV+9doC4s_`N@MQ5>@Pbi;wA03xm^%)1ZH4Wl3f8GI}lNyp!Q6U9aM> z3^V|D=E1z6F?P1m2RY5ppWZoDq1LPYr@$4S_9;k&j-5K=pUy+T5Gy5RLkxA@m;456 zVU3T32ndadOmI2(0!)qAl><&OL=9*`>8}AJK--1)@KlMbSF~`9671c-ljTWa7e;r3U;A-%YU9)KW~i>JFh?LbZpd^HxUe6oZLATKY0p1>_Ayaf?P>rPYWjX2B&sUdZ&C{EV2}&{|w{^Kop#o)^4B0h)B)P z!si{T+T{lC)XS5JQzt>n$M9sCKJtGmPlcf|Bu*v%siaOf(7cB5WUS$2$j6F?lMS>I zR8|2{1T4u}euqv8+G8z?9M-c|skA1vig!+ysDy@wos(We!12w=T{RB^l&G?Xlcjp$ z-={Xa_7tcjK&PO612hUxR>3U*>i_K7S2U`Wk5ZCQ1m*4I`+}%{SJp`@kO?8rCxoPEvVQ@JYRC#NfUYJzd65Eu`Aasr56 zso1Yw>94r&tA>{+w;TSZVH+W$w3A<+GSM;@>pnPkJX_(aPvV zNyCYT6DJyi6W}`$Hte2^HvqaJ&UJwpA>kH|Kr$)GYj~k*q05PFE0HTt>{5`sKRWTP zwJ)MBjuYPTkRvz|Z#YirLg1aCeJ3C??JJz1I;aUIKuhTKE;bmwpvsBY4!1t~?xP{3 zwESMFsxQ{S@8xPDZ90A;$#I;@W7K^-p)a8>d9Bt_Hncb)m?m!sq2w}2Ejq3igbhj6$oqa3sLECCi4&E)>4W|qB|-oM4LbZ2k*gnZ z5c$ARC?w(+ca*6#{pC+Y$06NuP8Y}-9gkCXsMq6pwa-6pjRl16g(~(F5${_p4EA>m^KcV-)8thSY(oi8V4c~F>aO6+ys;=YI6BbH%MOh)oj@9mQ zflzGo`U?*K_zsA?hOark<(qfnzdru6X}F;TY$=<32}7 z4H4Ibd=9u(NRSJ@>AQXlITFV?4dL|R7{7+clKNn!>#o?b<9Q0%Jr>ht`MqD`+^4d* zgG1l)$4YqRKR8xqMNo{xA)LC>9m4Gn@A#_%J}cqaw_NeJ9RD51OOBs&fPvS4d+fVo z@%m%+lvf|vr(HgM!|~!+8Rw7jU;p!CCGNvtAB*gozdW{U@07q@UOf$|e_c3J&JDV; zo?oK+gg$NaAu5)kv#ykF?tFDDX&0*$-%8LYT@$ww5~?^jW^W;9_gmqHM&R=GI$5TV zDkh+0k5eJH1og3Fd@S4vD!W3bs`frpn3^m2;js#ppyE}b(Zrz_m~!20Kz$02j>YPA z#WCO2vCA2226##f0DaC;w=i+DE0{`xdhgh7u{eGW`K|&Xu>L|dd+!zDu20&{-mz^i z+~&ftzLG17|F1avEr%Lz_yw~5*f*To;go*fEgY@@74pJ<_3YRGsqp!~s{dI%G_R|# z8>;8sAX8=@3L+f-tZ+AnAx>!A55_R?Ubvy3O=jX8g zYkrFCLa$DjAqI8d)gPov`>U_h9efV!L(bd%s$+*k1q4>UYNthf3+-J9qWV}}{VP6D zvCzDrC7cQQK^FyF9B~v%Oj>m+Ri&%E?fP9Vb?4!Ql_79ZeU%{TUoSy@zRr77wC>fl z6kEqzsY73n=+#xYwx~I(8d!n*-A=e0lPa|UA)?%{u0(gaJ3@!Xnjp&V(+>thuVLNm z!tb27V)UyjaZN^(tm&#Ktc!DnzU!MWETOd{Uud$5(V8(|)pC99 ztGcL`-)d=0tj1+oxJ|H5uJq|6q3|Ot}p)NAV9QQopHbF#uuE43`VTZPzH4+y0wmb-Bn0eEx*}K z{1Uj!4Raps2p(r5t15g02(hCKwL|yAWV;Amw;OltoFhkAha7TMSeu|)F358rr(6h< zTK>bjeY~nY0;cZ;%#NmV$^yp#xX`W@PaNE^&^jwpbrr?HIN{nI2!G^ig$uOHQBzGs*{|h?{ z;jBWc1*;&L$kgfAu=Zc`s=NMoj{lkC+uEPizNqzT__c_XF^)qCsN!HfX*4P=pwzQ_! zzR{ibomJ=aW`S3Ab=*P+KOTe6lOH3%^D+l{#Da4@H`=X1jJDrwV_(h1^YHTof9~ zR0Yb$XMpNfLE5b?K+rN!WFBsRf`(q z+OAqvUZM!5aHXzS*1O8ecfsnBiqZ?{IqfP8IU z71tUjLt3TsbfNx&n*H{L&pM|Qz~SSrs;c$(z`X%ev!Cr$;C=~owjj6gRX-R|m0YYz zSGqPtwg1kFdC8eq90HrK`NqzD!}q`8_#f>3D_&K`b`94a<=Ufv&G9!i(b4}FDtkwN z!GT2b`l2Q{sxvykag=iGdj00tB#zb`J*tm@;dI1J`b^Q>kUUz$uU~T(AV;@rO7y+P zO44Pt%x-n>aempYDdkl+>Gz%D4Z1)jzNQq_1JkU;U(}RysV>J}6i}#`uM59NHL;`o z;K~oJ2;J_Gzj;S{3pdl68vCf)VA;{{YRUvif5B0Y>q=aOXpPnTRn0#AR=DIS=prr) zkH)!7)#?yh^vX*4#v15q39Kfrxkr2i72Wzp}&Q*(NUFclrNO- zU`Gu;D1>;c^Sry6eA@La9VS)*%l5g5z%;$6mPl zUb{E_=pS|UL{zJL`B$Yr9C1YbH@t6i1O;*l_ILK(!PEC$4#zOB=HDL$`wLF|j~su) z@ioU^9sSu+wfjqsZ$SOu*t>50+0lQ^=YPffkA8Xlk_Nw&fnUnNFJ<6ADg$23`;qtS z-hb*n_kPX$E$?@|f9m~#_n&+Jm`}gu{Wib-$omb>{W^cY&G~=C`)~5wKk zq4%Hh_fI(cW3Ku!_x#BFiT8(G_xqId6Mp&U-oNzzgx5dy{sqUs^!~{Eb6)?Lzdz#p zPdWaGU;i1ef5PXVaNqAy{-5yo2b}wzw@Un7&io$V|HS(XuJ{YC{xk0TGkgD6T>Ix% z!XJD81)qLOIjZ9it)xHo{!89<^`G+FpK++p-{be6^7n@ve{41X3Ge@$D|PNK?Dcne z{ZmlwN#GcGqcd zpEu-fQ1XwxoR{=YdY^LD3?==lH|uqIXT5T-fparl{hQuXZ`5n|>Nqz+y}!Y^U**g- z?;Y=qcgkC|w*58;=e%(*L&^KNQh!PQ_StK)@V$6e-*uJV-Eq)9xmVri{))fqo9;+@ zrF*}W7d}_onKw1M^4uMIb$9&VMRm|h(>aP6zsEY0WJ}Sp2hv4s`a=!`HzVKRA zYdh(k$rCWjLug-5mQGAgj!lkDgkzOF=ze5$gj_zi2EzWRH<=+BPuF+ps4L!?PJh#x z=hFw7Y_6}b|IYaQ%F4pr_y`#xNFQL?N7&qRfd$^m?87c^JxXvO$@9TUme>`#GCIQz z@7ca^r-H zjs5I3OLgd3H2p&(qvNkc1OCP)^E{0=#$)PlMg2UXt~Z;>W&&<|Mdj(Pbg}X%^L{qR zE_*6pSrZXR_)1<5_HimJ7CDYuX&_H{97qh38#K&TaBG(xMu7e7Po#FTt@QKA=CPg0 zXdWo( z%E@avFzBlHt?9wWVGz=6Wk(x=^OF-(QeOfrk>0jgehp@D@3_sJ$cy z3A(zzNyj>^_7C7hmOa(3>8o>7qcoi~3{)N}Gtehxq|jn>c#eEk2?$SqpP;K;MDNsi~Q%Sp!lk8cdSFaV%Njeksqs?#X1bU#BI10Tl2%6KTpq z5VJM8>>iH!sgawO4njQ84w_GtL|Akn=Sbg8VbKGz$v9C4`2=Mny0$OXZcMl}O#Xw( zV9J}(u{-qxgCR;l2MB@q^q3@MBthHhSXXD5P9Tb)iGyY*eY881EojB;(%LF$2K&09 zigqEA7Kq0QSh@&gBGU(9sv(RXvW`&bugfV#yL1AXfHLFZWZA5dWp;9BDmgJVF*Xs5 z?c-VKw~*$3;P8CZOtLG(-7kbENSAh|`RnT3O}`I^APp&w#^=`r=Kif-9-H2p(q2UN zCVWyMFe$bS=lTM}k|WE#1JjunmJg*m>~+ufJJL)|&Cc3CFX2=jVq+8{nd^wOv>)0^ zOLH0auBN+Rrc0nrXIDDxOr|@5w4MI23n|J0>CX6^K^h$*4-p!}o@LTpv9S$}HJ!=v zl zWptKy0R%{7cR-s;9g^8_t!#eg{t)S0Izot(AieF!MX{+weFlL7l3o(Ob@@WF5j{K9 znrg>*l06R`$S#D*1103}W`n5+Hh~1GA#0PQCKn-5tQ1aV2DNA;3iXV7P1&BENskXdwXGuB>iGNc`5 zYi@x%HwFfWhHfIhLAJ81Tk@NhE>*Wdl%l{O9tLMRmCh7yvO09N5N028%Vr8-EXM;-*&gp|bQX7h8EhGo`R zB}SFq9mdX(;VbMb%l2aK`2P|%Au}Wjdapo=HIYK~OK$)WT=S4tbUIZft1>h^I7H<* zn+W`+&d5EBQU}@kFN1FYAi@0n%elnt%|acsCZvOe+{*f`~9OIyNzdG(__y5CURs&&A<`Y0DjNP`Yx!1svH7 zgf^r25>W_D9NzE7?;02+b4}D3?(Y>l$U$crvy@Rx*|X&Qb2kQu$gMd0bEQUfS4{@4bmNRYofw5e-|EClm=Fb4TU|@*ynnB*>N_A5KJ5t$Xx9I%e|# z*#^i_Bx4*-NIOwZNRgEp%}GVfY`q4?4jjp+_Z3{O$>~bCQ9eIDa;q0bYL{pznOSu0 zU1d*iRqC8{ktU?=?S&`>zL1xsBTSb&!v#^od2a=xtmNnOb5)ablLe_5l$iF!`g+0~ zMla07l*`SN!T_X%JhNy_*muO}@nmBIBsa-qNA{0)OGY4f%ZD=Jz^)sFfutQAlK&>p zVA|UVpM8k=H0i*6LXElkxs~~q`Q>?DR(z;(cyfvmZEWn$U1Ls95Al7Fi!$+SSN7i# zieS{=bMiU8w7I!q?2xM`GYEP2uC@Na1QZdymb%^rAqWGVjAAwuqC|*}yl)WXVke3S zs2&*Md=e;gn31Y!qX(J5%yz`F;@A%KESvonQpkAu+4l>U1m^eiAcW^)he-D zDXtA8ZXzn{@j4yLbVH+pkZwNNSeSAFPzN!eQdN+{Qtp;Kj>I@ZbKg`3%?+>}M8417 zfh)>PEw3i7h#f1-`ITMN785opg^Az2gKU)b!4pMep~!*4NILNPCaN`5NQze?RQ$ktu;iG$NDv-w=;%n0u#43F=>+DtdZ4 zRjuB&1CkN_U6W@i0vJR-AO!%r0%OZQ$;ZgJ>PJwwR}u>=3k$(~^&FDw%*U`01bwld z-Y|#0Nk0CHt_;kT5q;NjVsm3#x9pEl#<(qv)z$>tL{Fhrg$Ma6BT zCPXej=Ak0wU!n_T?Jpa3jvm7$vlVshbM+66Oj7^C?uxgzvr@H;B+Q|xQq!=YAW=_3 z9Vk2i;ZB-vLIHsE!t4cpM_w5Y*^4C6mPvrAs5CUni2VBs{2!6Y zn)g@YYbz`CFjja&Ij~&s%3PRUm>3XO^4HfB_ORlvNAVD*oC+1 zAiI(}Dv|^swHp|y5!^2^aqP`!ogkE(AYiuUgOzA4T8XUzC0vOwuPg`i32>ObIE-4z zzY0fIohEo7e`4LPFVi1%OX+jgSsI&O-rRg5n)E9^3{x=y*>U9P9~=&(5LTEEgz64D z7hNU{BF2Ibh&Y7s*Gg9wR+iDtaE>0X1vyxVeBa@0POddW+E#P$3cbEcA4ftsOZ+Xl zT;6;t0K|V{3Wigf8E^dAc3K_sL(!~>E@9`Ix!`I>OHR@?!nac2qc$j272;AF$r zqQ)FDjk!NLE#@d3%@WZjWHopoBQz;MAp%_q);w_sD7-K4gDR7#jHn{l7WKq|5@0)o z1t{6>zqPRi`844ek?Ily7HJZuGzhfYdPFG;_sAg>gglZ|0jPp0^iHOx=NF{0$(6Ou zwas0HEYUqO{h!0 zUV#VVg+(Q<%@oiiu&-G5avYA}OfH3+2Z1w+b7MqE!=^(To*Be+r5F)>ZC ziP(fPKVAQPY8Zb{aH!xk)efJcR0SBih=A@-O@%y#svx&Tv8~MX^xwQQIyL*bI2GGm z3pUHvAFn;$TwPrYSEHq9zVfrV>4}Ml3}fF$VBSNEkPL(cZsBbanQkPJ(|;VUhKteX(Pz=r(T5sQy-g?k2F=egplM)Cd@^BIEKRVgl*m!`J$0;{ zMvY8^>4`{m^F}tjUW&mZ8y&We4D3ZCGdMOiISHgYK*AFEO!M4Dd)(Q5EG zzPY~cKMq#kTVDM9^UoNKnRqxlGO~vV7i88gQz{Z+^whuFNtc-U?GcUMheq>{!81R3 z=a!rzc^EAl9a+e+H$keDhnfuxk39@0D|xQej1+ZQF-K$H`|W= zWi*6;8{OmZ7*uF&`T8D&epVtpCqB&4x*6POU<8Y(y@%sAXja9}rR`^?7 z`25k#%+y0}B~>puT6@Euid=V3mLu0q50sG=^H6EJ!4cVmN!&|^rxvF6-oQys&2Kz; zviAApJ#|5$QAaB|1g|Ap@!KJyBsWDG>mfZ>>Y<(nwnwM;Q`fJPJ{ENMCTHh}7ap%~ ztZi&;ZiJ7cjSqkaw&nSS&p&_kXzC%45*s#x_4b6l<$#mhq!*Ye#rViyY1q_H$0f>O z3^R3TBG$iu=-$-Q<0o5d%M)X_Zsd4sghr^_+vU2z_YU~TAKH6!XbgA{AAnEejy=hY z26BSyH6~a0CTHfBmR43aHr6*D>u-xs>nrQwO0*Eoz4vI6J4f$n2C4ssXb;`8-E_?& zXoo~$oFJWz%Gw}X$V>{vGbi$BY2(S(>gSK(Y!32;?Fl?<8&6CmV|=QeQGXt@cn@Ub zV|Q=g#K%)OkryWXdKDvv1Gn!_0BvP8zu|3$8y6o7;W`n|!t%o0+@qO?7=?QTDK~`+ zZGmS!lCn&9Ceux{!uX*=FsO#Fl^Ms#XM1|Fn|D836xEidM?|&m>(~eKW?mzGYj~}$ zwVe^+&d$t@8$+WH9*%?U?yZ|QZpd58!yO(K+SI6=%e^t_|$tAb&{sFi&VrT_a{G_TUuUO zTZdj7j~{PJCDzx8OO~v!Jv)iHxOb1yC`iZcSkw&UlYVES?vk{KXR)h|k&Cw(f)v6R zk#1^e_q26O7ACy~NTUuHS=Z^snSIx6*2IV!7x?V=pau5%(!zFbC z&rK@^@&cM?Y=D;h)?@JQ+?!a~*xFiMm>kB|p{||eiY1bXGqOc=)&2q6+K)B4_W%!b zZ+LLP{7VkneL=8!y&AhaFf=j&?UvV;*CcKm4QrT{^)+lA2=N7EPqH$ZgrXnt{NbroVU;lxn`u(j32)rFlLh=pD9IM8AD(IE)vo5>60idB+H@C#9Vjo;mo1gJWmtXBS6f?VMUVI zxoe;Ltp@?u*MEED{@B=kveXlxYmPJXiX(> zxZ1q3w73YkM}UK=w});)a2zjog4n`*I1+?$yw(PVu5B1!rZ+Hg{XA-A?Ed)Z-67$EDOqs+O4xY- zSiL;Q@Zt3QBIH^Dn70wE#j$ST%KJ;iLkqK?efDT_9D)&q3;>Ip{hS6>4OZB#p(^<+ zj&4nsp~8krmIGI>5SFRl&UW$*x3)H*psk;3k{dP>;ok<1s3}?ErzPh#%F4wFqp$Bu19!)=dKqQOh9Uv5O-Zaa&P1H@)LAN7> zTBq?2P^()V^`5>Ptf-h|82s`2=MP72_2(4jBVcW9pT@4rTeV$dIHj{Y*WWK>$QNO< z0$NPc*4DFMsqPe)MX}L|N1rb&=2wG_vUNpAt8|5yjx5g4e)eb@=^_9Tr2)mPO{l=g zAc;nPAv6lQjw4>kp13$PI<>U=cx!cT;vVsAhEW~D4s2P}dYt6AJWj=W@Wl2b_eRGa zKragKmlNIEc=juoJFk=FUi7;6@X_qzBG!wr)|?b^{~9iSd1-NOVP^KT=?Q`(#U8i9 z8?2q^iC`psqYCa;$A}q}faz%o7{h6?1AR>_8Fkkq^aX-VF0OBFt-!`2DrJ(EKH>qe zwdf-cIlp;(MC%lYxrd;a%r~%}M;-6uRx`b~?%W-xSG%;dvBKZ#(C|>fM%!5%^EQrgA0wiqwEK=V_G;w&lYrZ59FE1H&17P zAhNCD+EwHqZ0+sWv0|kC$IcRUNyxC{+053~^XH#*cF;$W6~6ZXsx7SK>TxjSxc<&q(yul{<`SRln)p!_Vf4)7Dou9@AH0_-vVO zxyeP zR>O_h`bx0mErjz2ZAf60Cyz3<1)2M91WxYbUD@uJUCo$P3@h%4z5xeA0@wf;xetze_AoXH0{ovu5DySj@;|xl}N0u~U?xl-Nr_%K?ZITzExzD_R5Oo}Y_`)NTy12BqzO=ob zTv^xH(vmkHetvNJk$Um>0ECj@RQm!&-jJ$ikDq~PKY^qAp^idpyX)SDzkYOe zWo>a~kuLD(GmoYw?~mObA*3|FquGKeTZXucdEMKPCm`a_^EjgqO~#?o*wi8;#LLV_ z%U*$~9W&}NC;b6WT!BQ)Hww|+QM?XKwUUFL1b6_nuakn+N1B@coWP5y%iGAWM{Dn| zt}WuC32Hzj{aN%0w|(r!O>%#cI0r7ZDzkTJUX?o{#5Y{N@rn%ydYC- zZAWDcM4wFW&AUW_P#(u`y-9iu#erYh1CtIde>f9hIBqZ#_{*7q|6k4ouq5JpGXcz$>|>s_ zI9c=mU?$+%GtH3vpU(tLPlxxvHxp3ZiE`5&z!ovXxi=G#++ePRnIj^$d6w8QO`?e- z%^Q_qdhwfx8ZjGYy7WIX4ZxBJt$@TV{{3kHCPzj`?@v#U7v`}vvxiQzEcso*VP%Hk zFq@_sB(Oa3H<@-V%&CF^uA240EdxAW{+Y| zz~ZK~_A7pcIOZEzF5eUNRTGmHW~3Rq=;DEJZXD{Zi2%*oJY#{;%qZ+~Q^HzKyf+aL zr4x8c(Z(i)%^3;`3ux2TncSZAtidX#k)RF3ADcjmmaFDx8CZ1UbBAe1AeCojz!me` zQaU0b`IlY!QM~+djqk94#D=ja=QoT(EMP#4Iy+c-%^U>}^kaQbrOg4@f+L${D|b_o zMk4_`@-L^tH_!yD5MQkTUWxE$<~u6(2IY;6Tza{ zgRs(RA$Jl`G0>MgXv+-6P1YY|8MPqVwkL(M&@U#+F}$u|vR|`u$l8-tR**wFo6^-n zF0>KiRp?_{>$vXwOz0*xnaXIVl<|msI4yd`A)7*M9| zHSG;YAss_0jFoopq+?oT%W~;%n}Y89P=jN`lM8E4pKY>=NzY++GtI=g^-MO2ZsKkS zJ97p{r>7Z$Ffr3$qS*;)z@VUsXol?R)2;AnuoYps_7|jIs%Z=j`Vv~05avn*EW?O@ zlJz{A_u?Ur^nM}MJGQW^Kq~}aOGwx~k>;_dijvq80k!R-i~MgGS&DwEaLEl#HPP=wa|Ad|HBp zy(ME6vKCBB;d+ApQh?XDP{$8Iwz-9)#*mp4l5(2i zH?q;SHSyAdWhM;i;DN^GmKf)^5f#X4qJM|YEskuq*25VxW`ebJ(I$egy^HJ%+@uMa z7F22o78%1dW-8eCrPVJ8S-2VBdb$}rEr0Il#+<8j0R_65Ez@9PHO52hU|_74HNewK zBb-K7w94|7#;qB`(26A~=UuknJbU(Jb(*!n(gGMOjjR{(jICM$>z3%uOXxtTjzX`< zrzMuM9%B<&59tBJ|45woT$;f2X2E)t%MldF7ip$GSHWr!*?M053?pM$wvbUgO>`oU zw%{RY$iim_Pz9#yd+CL;0)wg67*7;U#hH!>Q>9wO#M+^7rULkoPNV(7vqM@40>^x0CILxk4?RV~}$kd?U>kE3ykU1%-@w8l|!{};nj}~zslUES70@1W* z32oS5S<@|B|JM;+6i@HuTE2kk( zZI~&_|I%h5xObt3t@8=njxh;=DrlP^6dQtKi$(bdmrO1ZT2|{75Pzc>4jqa`PowAW z%Cs?6sJUqwT?_GL**?JL%INaXsnr)(%yGFBctCC6mV$2baB^1ww{T_n~`{WSdql|;} zV4oI3$mW{i4ZEYvaRxt&gag|Wvuf5W0-J`h74%1KB_?MmX%XDa;^NHoqzuQN4zM&^ zD{&m*o;(SjZa??18LVqFiiMNWSW*KeAk&(87LW-QqgTwtW!QcbbvIgU%fp{-xKZP2 zMSjjo&VW@2)H=~k&E$(>vTU|`Y*6e3RZ#<;J^SGgSy7*<0v7XK;^*c@@O0;SwB;dY ze@7|hKBGR7>5TV%(2Oh(^2&0xr*D|XaA zXR&c+5p&@%4fN4xOCLr)cyPCt+0i|Ef(d*6^tA!9_#e?ym&E#O5et)&7X7#m(m@5X zX2uxU>(b&8=D)NZ715GHVjLlqmO~n$%vgk}GSDDdjM3sY-vbqXQ~bk`?;~T#_qEmOyF7Y1)W2u2nKO3&e^t`!%O- zOkCT5hp(Q;wvhIN>MMQEs0J(^Wz;K6A6J_+;&i)Rh;bgdLj9RiGC#x;jW=90^F>#8 z82>FUrdffJFHOcDK*vD8cf#!R?aj&K2Ni0zt~2+2FZtoKcXu?ZJn0t|C+UTDcI z7oJ<&Arbh5s$@4$)`r;$7tK@B7041 zuUd&A!3%Ql7Hlee^u)`BsWB!26k{h8@{}-Dg1ryhD%p6(#Gm>H)8Qf$MB@&b6MVGF zOoVmjSio@F}2TxuI4<;Se zIfM(h4sUG9A!$s-BAK~K3U0hVPZSge|17*{6W(d_^O?|Y)Q0kGhC0NFf3vV#h=mzRs36a10y zINDdv@-0?x5SFoj1fN7K3uj=fX5pl+5Y_yopxJPS0y1q{M-A9^K*+<~S1M|I7xi?p z;tXbg&V^)b(lJL_#p2jKC6EUXz6hnD;TAiriqRN-6Pp!4L!sAxx$uHPV@b_U_K;@n z#aM-7;v`hysU?dh6Mv7e4pBuXA$W`6NGMpkPqn2Nw z)*dFuMd!Wi%p6cDq=IJ7(n`J<&XDEzWkzz!24NCrxHOnS)Xba`Dj*|UF7GH?CX#&* znPTgqfghTWBq(sm)GHz2aRQc?;lQFXfhh??#9V%cy=bgdAqBoC$WegE#E1rxZx*9O zMALS_h-J=>l^SSK*x$zrsst9Ty;R*`EJxT@Azo%JxHhukE{Xh$WGjH1liiSz`CkOj z-`g_PL^ow@QB7=`42L$qGn)cG4~S_N{bO-a0M-n~y7Az3E<#ht_7>qBLjhMHTnP*X zTVT-WE6I}=ph*J?(4+vxJ}?WpeS=oA^_)OaJteKMoGjhzC&^~G0W%90MLQXcFw-L9 z*(|iq$qy7Yz(&lJ=0l?_sDNBlf<-)Y~4nx%kX0McxvAV*X zCzEwa`6tX;lrD8N!)jE{7_0)#qU^ptHv%eIlQ9dwpmT|OmRf-A2v>=;!P0_y+D_!2 z15_^hXp9U*gdLeu5stqg$MTgze9anvCa5uK)8j0%llwHXMXAF!(J6`3Aij&uu(ntZ z(}iat-g948T`rm@VM7xnY!?1+9k9^fL=9MoS{{Rz?;(bTF49EX4hJ(!L@#H_>a?U@ z=AQx`COUD(Nwc#l>;|mNJ8JbSRx~bJ=W@u2*nXBi6N0!=sV7L-?ibPXBofBZ6qbw- z=q=%wA&b=Og%(iB`f$*Rr6O>$L~Imm*$z>dIv+Gz*$|L$$;e`5Q?^%xXPH+P2}QUl zHo7R*Nf+@QwjZ}PuR#Jy*DhM=%xknM~8kTjo;`#G!1k2y5 z7W4MT%7*WR*s!SY9gTWAqmOcFgk5GLpE;{Hqnq@!0BU+cn~DK7#^N1~c(P~(^U7i} z)KSLYMBdgR2B>2BxLkNa6V;h`Uiszybvq*(2g0L=kZm zOH0t%46k|Mz?}CXqtxoA28q!^fs)Pl+8MF{5vZ8be;X7GH23XDrH!s%^-`Xs4WZq2FCFr#_o%G4vXg zgH^T`Rslr@J!BUU$e@|P8Vkd|!{k&!u!s_EE8lGaV`N)Aw6OtX%UmR8OJNw270r}L z5pQD`!pwd%3vNivT(_tdY*nk(|Y^xC^{Ucg}L?_@w#N0}= z{v$hX=ccqFMjc3oIU6(vYpXb&nR0_+tRPj-7C6Jkz05&037q2^eMMQGK7an&C7ITvX4x9TKSM`4RJl0`+&OBtvx&*0Iq6-Peu+*oBoUm9*O@ z)(NoI5n{>Vu%>&S#ib$^`X^s#R-Gtcdy=A7QuH8IS_pzr!MqY@tOEQXO?28Pkurz# z8s0gXvVB`c-J?h3_e;ouB}N@KSc?28!suk9PB}J#=a|kRc#udLsRYYNWhxk^jI|xe&~eB%YO} z8lDg~fhutpE6g278PotpHYnok3Okkr?hdPYTnODkdI41NfbvoZo>r>J^8}8a4&7l$ z$>3u#Sf$e;0fTDHJjj+VNyKo_=%TZw=A1z$(wWl1JN0&nY$R%+MEHdkY_!@$Y>%B< zo{8h>=upIZhyf=}ZXsxdHU((WOhTcw*eN+PV=A)2&(KT+VNJMkV670Rnkj{5c{T;I zxgBayv;6}>0tWr69ar_e5ZWJto3pqcBiM)u8S|JxdKWm%h{$qj5V|m`!#1+y%s8P< zK-@rAsK=t3X;7&v6q-MLXX`0jsT{p*M+Wq|Gq_t&N$dm`HO!TXmGBW%Rf@A5wU~+M zt0;QJ>7{U^T8so&A1fvmZ`mM9dp=d^NM&P9GFu7x>EMTK!gb;4__zj|)|df=i}^1; zM9!W+RfsCJEXEIRM8NN_a6(3G46qN3o8}n7=b(X(D3N^;HX?8v6I39XqAfI8)*fhK zstzZF4(#!9oFON(VnkaqV($xIkFnB5%|$io01=n#s%dw|(mp3>tdVz0kPyCnPYE1l za#*#)p*}6EFdL zGa6vLbiGGL1T5f+EiH$$6$Ni?7DMLM?`aanwAn=AAl$^BIaGqfN!Qz8V#^?jm5yG< zN!*MqpQKwBgVuf1rUXB*(^oC+(#8tru@0; z83}Xia?Pk7;3U79Yz^Ki0Ak2cq5Pg~ZCkpagJ8KiI?e!?ST{2{UO-dbV;hAr_P}8h zH)JHblmSDDl_n;O)}CQZ(?k3x^+73zDa-=I&wT)4ivJKy7hoI;G$JfA8ubH-85?9O zL9~S*LhjS0jP(;gK%;0T&cuSF(H<&wc@TJ?X)8@#1y2t-LKVywt2ysrw=@pT$hu9h z8L5yS5ysCQf zJHx~ehKxD2SAz8YQ0wm9kW5hd{=?A0C`A+jbwDIq#gVNbS1K|Q?T|*OKUpM{*#%Z7 z^k&F17&=iBk=Pa9w_j0Kk$d;=2R}R{8wQ<+h9}&~!aI=gPf&^nWP3v%1789fkP+4x>LU9rWtXU=p$MF!R+u2-`INT3mq8@KvLGvt z-UUBA$+kAO4UiIZY|4m)kZX<)o3ORTCPR!U)+%J1wUT#fCcy;DX9SbQph4e$oFbwG zH1LRA`$ReTCb*hw2>TD;#@E6=+077xZGO2bGp;E*nvoVJH&|kt>N8(3r!5UbdP-(MdtzCq{+`G|55S)yXn- zydvq{QtcX=mP<50?I<=bWSU@;$d8SahGT9%PtuDdONzAIw3KZZSgd&x7fzSEUXK~A zBOp_NBbteqrgvfPyheaoHX|cy;1VKe)8#80S3zLb)+6@(3F2|@Gc%WZ|4`Wd3xu63%}&oASJNMTc zBFNP$rcul^ zRJ)cvrDAPmiM%BXMlMntDdKXT+Mx>iN(4mf=inlrG$6^$t#G208l%?AtHIm!)0b8^ zWKk`A#uL)3rn3kqgVei56YY*9)6pAa0kPUTkg+b!x`Ru=!ui+=35F6ZtY)W0oVAYO zq&FUpd5|i?cI}52`j>Yh?k-F%Fu$O_P^Crt(n*WyK}Cm53=}E_4-A5JNguUdp@VUV zu%i-QWrS;7)&g=(LoQ&k4WkR4WZwh0=E&g27I19?UwH>=F}MZ6NWNGgnD`hGK%4CE z^pt8s4LvNHd65c*guQSu=szMB8nxya7&2UzugQd-v@T}C$S4J~i#99*RM=6?!hT^L zLFh%S{Cv3Jt?WXl*z_!kEkve~0EyZun0VDE^UgbPv@k}7L4h;1I2?*p35(0!ItPmiagpiO& zrG#!Owsv>?>}*d&?@sh=&vwUj&CIr`?s8daFw%SXp1Ys#x$gm4(Hq+l8yox2hIHR` z=brODKYz?USKS6X_o6TfBGD`NQVKMJLB*_$pi&vak z05K0lp`CzoKMZeWtcB@`wg)`$(XKj9t!;={yY#xRh1u-1%oM#*B4hCb8j%6(kOy?n znkz;c75Aw@HkwHqVx9i6^JzA`N)XAy8p9h0%L7>NKqqetr1A1tx=U2jLV$i;p!^?d zk<1MvtCQ)@Mfc1b%w2_8mUCL&6rSOz)80h!L_iF@7)NvLqun3Dxc4y$CIAF0?hz+v>AmkSr*KGH(s9PNy{c z|Au{ClON4p9VJXM43;T+1vs{S z&$5AfkL}gftJZH2qRrkGbZz@cUUaL!#ov_1+=F*DLJS%j?x;D-?rG^YQ3Xj3e#iL-7Pqk?OS=r zJP)znlE!*?yvhJ31Jisk1^u;#6)l-D2_g$iT%w-{QWl^a7p$F1LjReI0HL0dUBc~I#>K_R!de+x@ltdJ3Kz6Y zvEiF!!xMz^mSkAT{sEY`a;UTXr>yi#Om z-?4o?qJC}-oj@bB7p?)u4)dL~3gYqeonAViWQ#d@zXJtIkN8A%y%o}hyV+F*`g z84WVnZ(t&96M{dZV_A#fiw z7HC%?+Zbo>2hZ8~&30xBoa`feanQAtiqQSC)!R8HZ_8$ch-g!N###eh`v2mKF7f#& zNp?W0JazmhSyDY20K*);xkmCW0f&2GAO*j1l%VohDOK99xo%-%Uss*5u7*98!w15Qh%v7$NbZpO0W|+-fFtB-$A6{AQ2NHWkaUW z%hn3W5_m5?X%$Z0R1zvl6+)$9UWfH})8j&A5slg)F6yo1_uq@YAEG_KA(ZIsk1`-m zuX@m-u0X`bn4o);#!Rxr{Y~Z>1moh#Z@n!W5GRohs*GBS@26%0 zfa!TJyy3lfWACxFE?*dU*K7#WcrtG}>w;MpM5u2>wIbtdZ{FAV0?tY_Em;Jg2qZPj!cs&Z zSpd-n^RBbg~r#t1sqMl`U(ugys`^f(kw|}4T>Mp&{5zwlF<20d2y=H#I%lH z0vr(%k>)7{+3H%_yd@`R=ZCyBxn~b!Q~_O><+Nt4=rWqmO|VkayYGSJJ#T~mPNtT! zX2leVvDzXdysx8Wsa}2U?(1XdKGz$&QuEi|uzjuy{H?>-zzc5MKm2gVwhuPG$7(Qg z^%!Xu;8^kGOAk%-t8Zx8h4(+$n&WLv`rwn@`wxs+h^+9gGom6+nf0!8Y6F_J!F$JF zpStcX)>;A!wbn95uP~8=iRF5YnmH%Z^H*6=k^>xSio6E^6+FJcPy>fVbL-ag*5{UO zJ9rUc<9ob4zM3x@V1)daz6ZmyZy z@J?id#O9sw`gI!&yfSYRcCb>R<|1UjobA1wNj98miiw^4#b6cgK1n1aMq=0H z@%p~jApz5?_Xuuzj{!Km(7cKW`8^gQ+LoiW$@Cg0t23EwKigRmeUW~P7kyR|OMQ(+ z=vX!2$L{8&KirnPXOCn_oWmHdUboKO5P>%DJlNo`OJ*c)%{tz53?{dPd1>3Md>#U^ zlmw)fG|{BtRRP{%uxn?$N)!uU#J)FHn^mc6$d6SVH=C_vSh<1q3s{We)mO4#5h6NJ zeEKd;b~?@LRcqJ(kkyOK=H!h(`Y89KPaM?jF;MGA-ge#@emiOHTWgsWvwAd(*-(NV zMtu3JY`b_8&|V7D^WwfVT5D7UR-2Wr-gpiwu3E!LDiPXdmI46>Qq6)|FN-j?uhLo0 zDF4bQ^)CJ!Yu2xS_YYY#hK{(MIXia~d05dQ&{?x??OQHf^4?Bc|28l3vy#&~v({l1 z1OH8yx`Y?bEBCUU7w={}FFkR)-|ja94Hn6+lTc{{TH?YGx^ zZ-?JPbk?MsUgU-Ul`m#{E9s?LiN%WZY~^rvgq5@~LLs4gX3ct5 z@%dmgYqz|ob**qDtQ4?<=5(Aew8~iLoJE{of1PDAXy=&sl7F~i%a$EGwAdNl04w1h zs({YF#YYY9znunESU-W8?sx@F2ywGhUz9emqLKSzGI{aut;j%SS-}ESy23X}vcvQy zFmL=#v+8O34*u{*n?LyRkKfaRe{bpqViGya%yQoRV%Y%ux7@7sUmp9q#>h9Y5CtPk zAACUTnTdtzg8PP;4u2lJmAW2#%<30ww6YZou`#cQxii^cp%5c4(p>={VX#0fxNP%E zs=7&6uX}rg`O#=J3DsuZnOCy$Q?#0w`>ZjJ+sFc9v@K9;1}0dnep#4BCfsGuGUB^@xuCGl7ofF9@VX!Wcyo?fJeC!kgazXO z7C1EWmcRCSsG&8X?1CUjE^uCc8QswoNa10NNGh=z^yF*$Asq7qJX&_dPQBBLjqm>O zhgPczi8S@wS(X;8QoyLMmMt*LoP_dt^ zM)3M;*%lY`jFv8oGWlDdETZQf6~N}OHut*ZwW~M2|D!EtarzR?+D3320vo)TRyI{7*u@y z1s%f&nl)h-SK_Nm;Bwyb){NpsA-igVtPiU{g~3L*v}GZ-UQ35i z0%m0dF22bmKw=KMj}ZVOK`ri}HMEw*7LQr7m_Wp$r~C^n1Zu(Hr5vt<0@Wy@Bq z1g~I;gX`9gtPA5RH19l3%fS#U+ll599N0t`{&M7DdAihB8$;a^URJl5q6@lY$*D#l zJuk1|5?1l90BfyTxZ<9c($h9AD~FY*_sArP#vf&;+t z0Ol#=nl}u@Gp(3I)sRoto=oMtL9%biObUQB1t+?Uk4&-N8pxO>q__Qa=t8saNX$ed zQJ*C|Sn32n2!+IIK#eR;UbJ`#ywk@CmeaF{pz}c#%_+gDzdLTx;zf(G7J37TRyvDr zFidI{juqloh_v0%RzQ^Cx!1_(gl zSLg?;T)V=$x)b(gw2rh|M zuoaP|l9+w%7)^a&dYMin%0=~CM%eI{d%abHR%RQt*?~d}%6c_*|*@=X>tfkLe@+ripL^wf4glYk_C1x?;S^aFW z3q+nn{ycev+hWp|{8^gmp_|X(1p>pQmxzki@y#&X zo`%BNyzG)jR|S=!AAz8R-!~Xopa=BTbiGM|p8=4;CTL7HN$a94iy=<#(g+LWvD4S_ z^dDRLER$apqiJ@K%r1(z0zqW4Tu6gBFUmmX7X`);}q&33*Wlxb6RshE! z6F?9l;vvnxP%K)wXd%*T<(t>PZEPSBMuJ{iOL$@yjFE6-PM{DyldpKMj*7EMtctQe zp5B150fFKZ!W6vO@_S34vcv$1gh)SD!ri6cqI7u{+q$8t3t@>vEpb5MAk8c^!{#o= z6rl2IIRtPBj@FD_FrQE0$zBo}04O{9N;>nxwRjU0bP?kSZJ}&;Wrnqq3I?RbE@ZIl zC$JRdl2nXwT%JR^B}CSOtGxvv1r!01r1z-5r4LMd%94qi1h9}5(q?;WyaoP3i2xQC zrqIk_WyM#LfP|{QlJYW5Gy*0AyOIP4mW7rscX>BEx-@e!l(7V|kQTd3l5yi`taW_L zpQeh0n&>n1wU9^+q(w;!*?}mu5I&}p0nQq~rdQPwknGhzShIQzbXu@5&_I;P&=zCB zo`?i*3ow2R!3kZx*)(^gV=snr`7E)o(j_-&nK%~!6UodHJcdG}5UZ+_f^VbAXbK@} z_cE&oW5{IFMKtUZ_HyBvMM7##kQ|?puYU!6t5%O%uyDbA%SzGBUm43zvJL$ay%im& z76!%otMM|#0hR!hEII3QD^$bhDgLlA2wW!oR5a|pHpY4xLb|1k7cX42$Si`5`ZEjV zaFHNrhIH|A6t=gJw^N3M8f4RHt zE|fsahJi8+JqUuJ+Bd`tDI8RxA+Ghr;V2ju!nf!`O!C6fiSijLX2oN^D3;B7ldDE8 zm^Xj^f(6nx8CQI!+F+@)e{4$;Al4vaqQhvIw~S?)Rre?+(fTw535Ou>9uOzAI4}Xw z#D6gio9NJac{E*V)~^YX1ZdF+yL6~4FM+Z#M-t)q!JDgBjhP?EBP*_Of_B!*OspCn zh)ut05NR?N?XP9`DEI;K*VBQ@(?G^2;sUgT+DObYK4BLG8)%MY4@mGAKA)Rgw8&lf zyi}Wio=Kp=J0PqIU}6hWy-Q4-LDRG32MB(F-Jw?O>C8W8QO6_zB& zOxW(M7-0j|iWg%xAU2C5D%9?lEQ!JsA7@QP*|e8$CtyW&+*dOc3`s z>w61EEnEO86hObY5(#}ZRThOl!d2k~^A?!-P>revNHoznwjv3RXqE{9*|JpYi!miJ z$|oojT}U1SgJ&_=-~l%v%~^(gtUx0DFlboh4texr@J{(1cBdkhm{b{7>f4 zA3T^*)RHc@g%LQg$X$@Z!#tq2C-j#siV(5`V)R@X5GVgKZ@Hp3Tl{j{7WbE>OAxFQ zN)Q*Of`Wf4M+-m}Vo?~EBL4XH2w|~dZiebBMq~Prsbvt4dM@-ACM{Tq5_t2UgX;t; z*0`%hD!030CC2o1Z=OG&lqjB>AhKldG;~4)Q-hg4%atr-{Mx8_b76(ZpjMW%?6c*B z=?H_&jznLi|I*st6dm$6La0HQp#lKlA)BlKviwCadz8X!g}!(Rv%p<2jH3Aq#v}T& z2q+kT_*&k;ndjs8u@xw@yDS2kaS1f^2|XQz9%G0(fm;0OGr5b`8trCVzx#akMq zR9~%k8#%=IW(0U$Wp5TH%dahVz;s@xPZO1Im5C&aTL5sWv59UV}AgiCx z4=o@g3tol=QwJZ+qGy9JMh!6xfXFX9h{cV~PsPYc*FeE1Tg7C|ka~CM@>r3*(x2;d z$6t`7`dC|o{saxsG;|9E1BWMp;~T5cAvwtG?tB^2n1pJ+Xk;1XDax}U9-WXx$`X6A z&CECRy?M#PF`om68l)&pN5+HK(pIhv&z(2d%u7*55Y#OG5_4xuU5Ne?^utb{2cxJ* znh;RXVmiV#3N9^7k{BN zPJQvBdyCU;l*6+Ur8HtKXbJQY5P0*#91h#u%>0PV=UvDrd88$|EK?$=Vnuy`I`baP zb>xMo3(1JM?9+x#2l;p&Ai`l^f}B44<7MX@O22RG_r^ zv3a4n!aeUk*uA+)^X5W2VRay1Dx6Z)plZ7H=i)NL&UdbOY>q$Ior8YO$(So7dQjwc z6+zO*TIP{JdWm&_V(9>pCF3u)5U3#V;g6mY*z%c^HF_#dD zY>lvza?adga`CB{nUfL+bZ-ud&3$)nNV;VfBtb#Ry2#|sap%Nl^8m#wku*$FY=vaD z5u|xMBKv%QVRQj<4@u`icr!Pm>fWE@lPWTM&Yao5B!kdA1PHk$!Z!1<*Qz?V=FIkI zJ9EBZGt|#&@qE$Jqhx<>G8BSOW`Qb>)uL80TPqI=C5etuK>(GBv0G%$tl5+snmy<5rv8fhgET!O>h-_3Sr8OoERO0v97pEY~dtbj>oJ|T@HhytzB09TbKp_QO8xQFM2 zsa8;)Gb=`RiR~Umo7spc*}IZ8kR?+~@(<0LeRtMa$_IfeF2NG_sZ&J78)^*Ot(~Jh z@h(tNHxLxKI5In|%FS}(8@1MBv;5f^$~O2TE6{+#n`31Nqcq2z?afM`HFM^ynX~wx zX=X+EovBBi+0i+Oyf@Fxa%W3W1I~;{Tj#~*M&@xzobl$m6zb28u~8G32k*^FRffv- z!K~11khpWwVZ4|cz?>P;eRq}@9C)*mX3v^4I{+pHiOqtJoC4r0P)bOVI;txrF|&U? z%biK(*uvm;6Pc*?VQT3?YZpMFncNFgl9}mH6eOX@C^wzCF)H=<2*~|89*}kK-b`l( z+pOW4)I_;MLU(qQ9DWU195$QvoB%R)x@+YNaU`jkb8mJE1?k_NnLKOejF~fM43i_N zb@-))Yi1=U$n4CB&U`S_kR~)^=Ey8b-yAbDJVPu1wwawOVo4a>*~nmmhc2b5X1=OC zliY=w9L$UeMGF56il3oU$jEX*>0GXpDmEi^`i$u_X3U&E;{kxoOiu#Cy%=Y3fO4Qk zK*ZT!az7+EQ4-u`Gc)}eJ`h!`3w(-E)j%x@&q%jtLNOC!&2XlBGa{5W-Q^+G)(91hHp4LH+BX86;?|CHd21rA@ofp|*Q$pHCm=mu*^fdeSr%?oIcnCoA_E)BjqP zRQ`Sd%wGM^r2XsZzvlP;^w6~FQSuaNR1?RR197E=h zj~gyWD3=t&(|zs(BA(uzo~+~P(|*B<IL^b0N4k-J3=!)7*4lAb4-Kh@`$YLmpU>7H`_oHKt~dXNLz=rYNZbirohO$&1bJt#K* zoG!Tba?B>2$|EYp1cgHYJv}WtH9T!JR`Jr3aN8 zzs6=5wWX!SuTSM+Gxb>|w*L=zHV2z?lD%f@K~gxXgzmJMatrdb^$*GbHGGe6De-Im zR41PNzQw3Bq&2>&@-D|_YO*cKJ|4$M22uO4uUgyk^q@a&3?OW!fNd|kQ&ZX7Is_S~ zC^LI2q9ce-DYh=t?vbUk{mNz?p!p5QU$P0wXX2GE#DYwf57(y{HlCewm+k)4@RX@j zKIe$y*dkM=PMz`~*bQ@Kge~z5^q4YgD#=O0Kl%7mlI-CyNB-1ra!t4FO&!PobtyX4 zkQcd6A-i;Y%chI*9#EU16ijy zQ$tGgC=)YfoGrw{3o@MQfka7_&YLn?S;diaDO0Dx1yz*(dE9cidd3P;XHBIvqhqS>^)MMDXF$BespR{q}+mBmC90rUuSC6o<&s72!{ee zL5U=QxTnYBg@3{IyKG?9-E%~HQW6uf5X$>l%G#=CjSSvzu*W;Ooow@DRlDP zDUr!jrc9>9$uYLCrX)?C!rzx1f6f*SZr_~}CKb>oQ?1D(IwLtrr%Wc7`%^sf)4gO} znKD@g#Pp=@I(CDYlOM1torxC$M)KkrJ>|wP1`n77tN^LdhHY-bVY8lMp#+c&Pd^T5s?)f!SGUCU1BmyhgeKb>7*Yq<9b1~2lA>qHO~oYcsaiIJ_cjDN7TLe1Hausw)B=1dvp%wzisprV~?&&7vm{LWpDy~#C`e?IvalbuO_ z%l0d_2W+I}{LA=}&PFERv%k)y-?G0qIWlSTT<=MY$ipNolya?$u1e`32;oZC4}v-%@;Cpq5^-%=8;xU@{m6%$);9~Qvzs{zOdOS znX%ZyBsCOgE2zU!DwQ&V!iB?|9GV0q7)d%85b@gRQlgU4Ny} z{~f>oe$vk;eKpCMNScX%&UT+o=cJej;)&5op@}4+5)+ZPiJ!%9k;%jnu0e{4zvdXS zOf>O(UrwS5WMH@&o-~nc4A~@4oHS|TBrf|Ck)Mgmz@3y5T%<&QB8Y9N!}d;?v`~lN zFD5;u2kp~|y-t;>p71A*iQnh05*Uz1bS(TMoCf(o`-v2c3|XWmfhefjh(+bw5`!x~ z&+&wEOR}Y#iK>k^X|ydzWw8zGCWrpSbnSwFo6;669FyFM$wH`u2nTTx0>X7A5Gr?K zNYoJ-{rGhNJeZjBFi&SvY@!Pq6Nf572FFP@d+0yuD`B+xDbJv`KF{e{-Er+RpwQu? ztZfD)HRhYbmF9Y58>!WjC_Y}T8tI@ zf0!8O$Z&!{D$xXw3aM)Q_m7`ClfK~cZ|yB?H2a{67*vvyo1VJQ_9twgvHd;UZ!O;h z;7hhICiYEqCj8~ZpHK8AMkY+0IN{zze*!lr@TlE?7F^aT{89?t1=$2Jb16Jw;)DnB zD^TiDY9-T+=)};3iPS=m0&fCUX0OMh6a_kaH99egD-$Q03CZmE)8oOT?CirTQ&*J< z)F#aYG6+qaFv3$&o1<BkE2m{s6`X$@nvGGLKpRpkiST~P)Hw&rFDS&x`eH(A z96J|<%1?lv;AUmo^gI$|ZOMVOs_2L=#Yp{BkZC-HO-Xt$ixLyp9zs=B1f9}tCP_Ap znUKV_2@@VDf zaA9yEnJO7n)Mp=6=Gc^gm#UdEQdv><_MWJ$nnJS2o&@Z$Ds793Wu*p3SrbM`sbtZt zBwIr>;T~tPpqTr?PPM(S`#h|)qWnXa2KX$XXu!n;oq~*nka{cg`{WbL8WoVsUJ`h1 z_bsJII5Ju3N=kbE|2``y6ix<2Rf^Bqg!;<_4=s@_)GSCU@Pez1MX}%7iLb5t25!Rvu^VHpR#@)zxMO2Kjr)m=QZ)|Z#Y*jfBe`r-TOGE7c9gxxK9Ps^hgC`TKj+>TY(M2_n0+JrAl+y7j*jne^r!Lby4u6`yR83%Uz7E} z^7}`R-P5`9`7^Hlg8kL_y~oRbbgYs;ih}?EiKAno#~X&O6vAN>e)V^!j7hbniD@yTCqCJ6-!#wu^n&0+^cM{zE z=UkDvH^lEe%JC6`ghc7y*Xge-3At7-;-%y*$mMYv2(JBv`~MsFud@FI`*Z9+dzfCe z``z!!^dnhSZcU`U%>Ex9J`?2I!nI%j-nGBrTL0IseI1YJA)YEP;S#U@8^`~V{ZRax zuu8s8vk&U@cbr8nMNd7v7TilnUZRdlFHI8f2iX7bzn8v`Yk!&bUu9yyQC zU!sC4LmDOi|8w^LhJ6CB_WvW-{wK>)$(zYK!SDUY(sXnFSMl@Taoo&toIrodsrdTK ztiRILp{_^3q07JrJCTdudB@Z0%|Iax3^f4rQ;y-Zhr)(x} zPp@(OH;<)}QvQiOPk4?5edHCy*8i0CfZu<3jCMhZPROZp4myQSsdLn6aE>|0oo4p6 z?CZEv>r^^toYPJ{$LE|D=e%>4{Uv@+IVYTxP9rIflA@9GlN{HP+Zp~2IY;R`L#Tz4+>dx?E3S39`Z&Uu@2k?ZHk`y|H~IBOx_AjebWc-UzIM*}%r z;_5k@;uL4i{9PgS8J@gAnv2{!XHlHAxt*na-E9I(6Y0;fKTXE5z z%}Ju~_05Cpq7D7DM@Z=OflXe8PFx`GhNu>&M&_2NP ze~(IO^_M6ik?+^@PNWG^>i3_DYFs?`Aitm{8BVIb8sz#2bCCOJizc}D{{&TnHjk*1 zsB4BZ>K{QBAWdNUI;uys4KOCC6y%*KA-I=7{^%^ARlx1w_fhT%lnIU{?xev%9cO-x zQi;1k8KWL@JSgjHs7#)}Go3}Wiz{mz8_%41(3Enasp(A9nG5DjsPT-~=pRdNsI954 zu5?R7g++WEqrfQ~VX4f5f-m-Z1%Bc4MWv+`mDRO%r!IANcXzd&JziO~cUS(7yqp{s zXV~bxV>bGmQa9%0?8x6;P{v0F%A8`aC{|$h8f@H{yd699^LOnnDpm0(+@{PkO-&d0 z(?2MhJRpRR)z+HoNJV93g(*!dDlBBhZ~li1LVF9o;$ya~-C6onWkq#07&`j;f;QWfsCJt1Q660vJ) zVRh4mmX;>d;;@A-GrwQc+kOp#Ds4pINv?c)829%D0^8W2`+5h zw0Yx359#xBk}WZ6Ocft^EED(rwopf#pO=xpbJw1NqO#g!jmVwX;xucEwq#foB1U6l zLxWcvsRo5til7xGNeT*Gc*%F2sggwkYYR>3b8$WB=(k9!%7kR66v0CZM@a}J5pcy+ zQLQp@MFNpwrI3$yltGcRrYZHZCCBBak(Q(jEf>yQ@SsNevD${iwbcMY6I1viVi7=0 zpakCDWc$ft#L@?cbfLEH^rg-L;b^RdBDxg*J`oM=Fp|%L<8VVQMLQ$)_s{V+DK?9NL(@ta{23 zd@KB>>_oM-6RmMvl|{RE#ib^+8L`Po(5I@ls;b67pQy#;=V$QU!hl(Fz>==E_7tw_vP(%hraE#^9Z!jm{;7S5V|KOnPcctvNJS- zMWw8c9pKpaTgVZSh??s0fmt2sxp)?OSU=+BgrP@x3(4nxP2v00R`|LbSEDx8G}xT)uMoim|Nl z8zaXWBp0TV;=R%bmIt3D)HAN19WbG%?QA`jmnlU#Sj>@{KeG|TA>Amhf{c_-?H_R= z(>n5kLYeimsD{_-x0_a{eYiDrxz(T>zLm=)o~*7m6(O1RRY&V;(GofKWIjm=CYdq-?ZWyLRn{DC zJaeH1k?`A-Tie@PTfu~MK#|PzvSSSvlEMoYE0zQ#1v+BO7X_ihz;0ANY2grG42U*$ zm3X{e=xkEXCUhlp6KVo=ta&f2sx@^FuXXg5_YU2 zilD|Uhwcjs`6vi@7A;EfXt1aKY$HUGr^$13Brf9tg1qd=m%M-iikLFDCJ!H#F?UU7&G9ML{Sob2LA9&1ycG%?y1=b-$mT&2L zWnf3nxAqU-w$T7Sm|!%Bj6mgX8ZY0MUr>n92$EFDD@uh&7F4FC*^}wQ1N_G|2`iMQ&lbLN(>Z7cdHvArz;4dt3G`(5>?w-M0n@ z+s_`CQ{KH(dL2f9{7p}9W|sp{BE~qiYATCMV>lnNERHKMaS+S2kM4#_?E$qqW38E2 zTCc=~2lJ9J{n5CkMZH8UFNk50g2M0cImWNiYskW?DYXV~dk`&b3T?&{rS8bvRZv(_ zdsI?Qynw}1DBNZ`Ua)RCFuYK!wY{|)L;$lt?VX)&>zFGoS1w#Qf2Q%Yg+)AF;bHei ztR$x@SkS*GJ+o?$WIrXzZtcH)dr;wAnH+S!0EIT?JZB}_%C?oNIxF0YFkN|RAo=+( zz(5PB@xmiS-2oz?wRX6zNl@xMekly442HPc#TJDjhg5AefC3)EMzwJKBEQsBJRO(x zp&<*)(h1w>!oSU%WR?B=Oqu1Qb&ZmAS!NGwR47q5yPgX$$qu!)b_ZkvQfFtk>3p)a zv$LbMqqS9(3Pel%L&+-@t|-_q#8ah7tZaCtD9ug27M_cI@6svTpGEyizBCZ(6wf>b4-Gj*fLMc;9 zP*(kPz%>!5jQ~)FQ&R5bj37$M`Fjg0s*WO{kjGRyNKzOdf^_d1BkN@Sdkc0OEJCQ;Yr+GJo))4V3&X%CXVX{-5Pvv)wd8~* zLtYmBx5O#(Kr_~&A>cU+8h{`?k*@BpE)Stbq-BwiAB#s#7Y|N(rS}tDlIGKZLS$fJ zwO>2FF;M&NHXC?B5d>LSOwMR@-WtaMNos&Zp=eTJAT$|3A@&fL5aTbqQ@Xk_L!F%- zrcoeZQQ+oj)jAc!rNeR7;64B$+oOmi&X?|?+e7f>mK&X2l zhONnvow3?;3VIlN86uPfV?5bE?lMZ{Hpgc|b%D1o4=OD-f;Qsyd4$;E@NEOdAe9q)nF#mT>n#w>yx6 z3L!3?rqx_Yu_CKhznV`HmKg1AY%noLv=ECf`vN9H)NdsSlYmh}=(%^-cB~7n{&3D_ zY~53`b&}e~6ODKV>l$bP0cVWhh%(2{TtJr%B#Cqnh%!FFJh6BF zHexnz#y}0LZ-_raGtijoZzMdYXi`s4h&6R!$;&~F5MMuU9AFTf#>VDGjJj+cf?s3> z2RNH6(f9e(q1r4dsuqkS9`qjw+4s&}n zIOvfPQSxlCBkT4w5Q?kn8kU@$5jMo6H;vjTAbv{X25)5MI*Qnc7F zOp&>_vMTpX@Pd8)4n0%2!McX?t(~`jnh31migh|UR%av`g%x#3hUE)}9=jZfsmLM! zcL6}AJ2E(MbHEIu$2T3=V_?l_wD`&;Ne7UmIEsmhUqYoQPekphs15i6G=3$)L@i*h z^qbq`2&V{JBqHju&B@vBY>y!&scP;QgU2+}`4xz&Jek*#VJSq*|rXl^Plm$sGm7wm)*hhp?eW>Ad%hhXLU8X;D69nP@n>S;ifF42t zjMJbvY7Th^O+|8fMR{dKxg3vEK%9w?rb|en!?`P6=GN$&H!d_DswmyJM{aL>Xj@Jw zXFKL2Z~M;t-TR9xjvj3|d$y_J=plN!;EX`{`<^ZVMBV8NS3A0H^xYWfvws6(N}stw zM9}VEO$~@q4-9iKRB_Oh6Ihl!=Z|jeGq8pw(WV_w!2&X9FvzCP^aOzX&P03^a$ip&kk}sZqGiLR1Ta| z7p@Xw_w~8`;ene!ar>VYlD->6-C((Vxw-k&sT1|bfZ`s^s3@=Czr3WPytJg~H-&#t zQYtrnu)6vvjgqTfpZ@Wu18wK)Ybr_(AS?FEwOhTd8GH?dW@Y{-`${SfHJCG_8|&+j z)ErbFlYH_Md|m0lf%1bjLUO&cv$wau*Xws~nx91ad;9y{-tjj&ueVvMoIQK$#EBzE z4%L{0ez{NYc{yMz%AzG-6`G0du6D?u28?eETU{0RD+Sb|A)8E&}|IM3NxW4BG z`}%r%x!7_2`n5JRy7}zM<2-%@5e5xd%F8Osy^@H&b@wG-dHfELO2t0pxbfW8?!iC$ zqrT4brw)rgyZI22*~Vu{wtkn-lH}kMKl)_{G1*y;UjP0Pg+jjZVCA8q=$>ViL%%O~$sw&DBDu~4Q+6y65 zxI|x{gm?%2>Zf5^Q)~C9pWg1fe&NKC%3{7O`q76wylwtAZ|i8>^oJjPvZti7>c|;$ zYShWP!=h3JUx)NM#)@SY&)IXAuXXhFdVQh(K6em3H+|1`_jGr3cU-$BIOl(bon~8 zLYn*fZ}#`!9Jo1na{%EsJt+S*zb)hP#q-UO3u+&(ImD<#89lJ&NtI>r5irH#V{x=F z0>%=3_x`(O&@UR1>eUX?bxwxTdu$5+uOEm#Y*Sx_~?^@lB$FC zSlW{(jvlS8t|~95+UB|=>J{uSEUl`pJ9F+z+x6}q(<|!Tl*KEA!J?efKo z=bM^N9Iq4k4jp8)2z=$`mE~TU7ht1&sG zsI4mDQ+fG7G`UH++Ymgn?fLB=ezZ$LX?^|4Gsi8&D*F6^h@i>B)A~Gkxb8SD^Xs(q z0ELZDlj9la>w(cX==8lh_R__3%}u9|HylOmYO1RU!AHt6N~IM=s6=7WenMAbi;@?B zb?{(yZGB_22={4kJ5Hypc>kU~AMM2JIgS>c4ir@o-hi{(Yb9+PNcddv1=G`@#p? z)WiAF9s*iy?TO>W>4y(jA1qg-(B9tBk@?A*TXJ(Hclo=EiYsdBFeWF`>w`u} zc}Wqy8Qqz?_w3tWSW;D8f9m|jwvJ9rM{hFR?C&2m{a)X9db&Hiu3c*-o`I)ljyKlh z44{4`2;o3wv@8w631D&2$N|4-LUAF7QV5{c)*Wwd?H;&|&pcO;PuRZ?Gx8yyY03G1 zE;eLq&bDoNAMV_}uejn+UHyquxEhVlV9rZQM7(bUZJ&Bx>QA1%daZ;01=+d&zJdNe zQP1=~+ud=a>pI{VhdX!f%!%XmC2llk8(rN!y#{PQ8Ia5kn4aXWo*OsXubZpS zw%{C2pKPc{p9F$`P*hg?k1D-0o*OiH^{R7WyDhog&mbT#FsA zI_MHto04RixkAVnI#BE#NRjW~Ux*L;HkZrsAQoTq)tzg+j4h&__2JeEJ~wf2QN`UP*IFdbY<`UM9!<~(6N)}uC%swb}@!L&;w_0_T9u` z^!Igl-{|hVezi>vvZkh!L|TyV(4i_IihdR4Zb?KCP4O7`in<2zNpYc9{9TwIAUpxW zp-*r1q8l}pMf*M>JlU~*`&M-0gRNVjU~b-r`Fo&X?U7^0kDY*mSOih9ND%#9-`$Je z63m@wy3*Ql<3=ByECanaZ}#3K^1a#J+tt(Mb$s*cmCKjUH8s&hI(DSC_TV8%s7%UA z%POKJKI25z979QezhC$V`^9irEFRY!t~=4()-yPCtNU7WJ<7X}Z;a>Xne9&Q_qTu# z$C1aJiaq;F4<0&)-stb{@40ysGD1X} z2EDyK9bGgI+CX@&IcQ3%rIIcxRsgW1%qvMFxF^`enZfM+u-Mt}7JV~7SPewnM(@zj zr~PeB4Tq|V=}0s?Bipbo<8idPvdg)2%LB3Y*fG;MihjI9#KYw@Uc8Q{c6}nFTzTl& z@pD&O+i%?H@4}VQ4btcLrgYJU>S}K@m(#Gwv|Q>L#5feIq7_wEURq{~9U=gtrXr%c z{ree#EIt566qs26Wqy@k^Ngq`?fta3wW;B7nV=B_5UYo`ZTZ0Dep>=a^P#Mw?pS>z z9Zz^m!j#govZ4;4jQeEIz5~T26-<0;zJh-A(){%YBK^1wGZ60Qw1@7J>)&i|y>#hf zbMtB2n}7fkK+$rA2j#^~?O>=j14zKyU$kFAGM%VgHrF7Xhyjg! zT3Tk?_qXMKkoy5q-j4iTyZ4pR0Z`vik3*_O_{z&@-E>^*xRJ4I&z=K?rHqfC0G{de z`l9`*h+S`APiK#JJ>wd%TAI%i+t6C14IxKc#t*pY3xjxWQ5axm|CB;(-hussScF3> ztE{dGpmo!w)ZdP2rqg22?p+`51e%{qlOp$d+JJlZl~vT%*Pm!;s6UL^vJ5Q&*NyR_ z8^8`7J<)vmDni%SH`1R(JEynL>mJ*6;|5;#(#4juXV07jns;b4PV&tLw(K4hSSX3|QA4Q7~SG9RyRA9pfr1jup+`FEb0EfPXT& zXgWNup~Dbbf$P&=a8;Kdz{+AKXe>lv-j7Z0w``~XzVb@k=ly~F^3Sb6J~;58g9Kd}Fkk3Tk`8_D(ap2*+5ue9(N_ht(1m!2CvHw=NBW~+n==FQ<``es38=≥ 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 literal 0 HcmV?d00001 diff --git a/Resources/Imagenes/Watermark-Ficheros.png b/Resources/Imagenes/Watermark-Ficheros.png new file mode 100644 index 0000000000000000000000000000000000000000..99b4ed0bd1d46ea7a297f1a1f58adad1ac3c3a88 GIT binary patch literal 23588 zcmV(}K+wO5P)hb=u%lCt+?ITp_^7j8?oAX7w{`L9)F>CFu@Bc!F@GWWVLWJ=t zTkBh#^m&-iiHWU~l*+Ts_=K+W-RS%nJmWZg?mU9;#o76+$@h@2+3?I((&74rvi0Te z{UuuJT9)#by7kT8`s%S5=H}*or0Y33L^OKtcX+UDZOF;n`NG%vJbLgnwEtqE_WS++ zoxb+U%GmAm{*kx!qQUo=<^L8r;@aBXj=|8%DFrH^8Yvh|{)%Sejx*5&((vFdx%JfJ`)Zcr zDPQVUlJcLy_gstDP>=BwG2TCY@EJelXr}g|zVb(KvSSReH!3HQ@2_ z@hM^Lcc=3(W$aaz^3StleX#X$rSnvm^&e8{=kfj2)ZrOK=8}@3XrlE{lJtgXIZTW3 zR+;tB;rdvU@M)p*XJnU-v+|C$@^Pm1;OqM=V(ckp?xm%=M~3ldrsRR5)ODxz=kNV& zru98YiOkI6xzYDgmG!8|+LfWY&)@nUr~bCk`Am=W{rSYNr-mFq<6oEYQI+#-qx3Ls z?PvDS^b^)77hNsaYLi}h}$^i-1dz=#cVqw|Nj@Z#d@o4fXieTOGt=+ou<88_h` zM&~wg?G`@dON;Y0cJ2NB|NZ~}|NZ~h<^8wM`ThOHweoPm_M6x5pVj@R*X!5m z`{nKXz{KFA#p}c0@9pjGFmUn5&({c@|0Y!DZ=dkD&-Yngpf-6T8UO%Ts!2paRCwC# zyA6C*#kudlV-6A{Xt35&Q@Ao`2YptDxsy*#JJ)h5> zz4uzPW@gR$&hL4inc17*`@s`Gc;bmChJ7@1P3Gdoi&ur1m%JCRTD1ygi%wmy!j3(`lF9NT7%wKEkTM~wRp`(!-hS9hyK8uh%oHXOnJb}=#R8N zIh2=|NBFefKoSjHt5zAzReEV44I?0d`H^Bq5Buo6pwaS)#;9g~1jsmn%v^J5*b~D< z8Gpzpq7SWEgJ;ZK6Rjc)lOrI@35lDc4;>Q7RUwcuB*XxQtXdqh*lL-%m|dU`fn*QS z(H3ObN7`eTj2}^Z2XZkWhYjn%s1R$C*Q{yABMu!p6z$yaRT85hNr+?ag{us%#RQ~M za;S%7u+A$wx+{xE3p*HRu2INsRdFGJj23f0(b?Q#MySlpOh`HN5Hv8D zAC+(07U5GNqv5n7WL(^;I2>>ai6dp4=t_KegD9y6pBa4~#%Kr7NHOz}_~c?Lxn#+z z#mV$$k;bKb!c~%9DU{kpG_1YN_rwq24S(~FGv};gxF^Gbd@|bQ{3jz%;=73n6bHALPQUwOq3jo z*D3v!1f-Et(zb02pd=}y#V6^AzycuOA(+*ms0NW5Jkzze4z@F;Bd$#|9mpk16cUjW zZ6Tj{VlmGH=TaV0 z#x;vWM9C$=nOOI%Q~p4;RBJ~!BsXW;Nyw3MTf~uVR8nRjnmZ)K0_tgrYKkx?CGCB3 zjU(kucesB&eU!1rnmYoKvp9KXM|10BPM0HN^BV15F(b;49Pxu}w2=1A%Mh7~tdz-X z_?p=fa@cthXGV*V$&2AW5!<%4gk(C9j5GI&AHM~%tOw>v33TX2}&Yx2#F=fUA>(XeX=<-crjkEHy|?(Wxy&8qNGf{ z8aGBr@Cjp8Rn-#5FG-ms=9b_Q4Kuz$d`qj0WPywTWECJYthsH7%hEh7IwLtVcvVso z0z5exBb#}s0Zs`>t7Hay;by8z;54b466N$u?%6m;Bxj0OLP#VGcjkGb+MF{)N&4ir zBY5Eqd2TOQ2pUe<3XPWs^rXu+qlFT7RcQUqu?l9SWqJ0Y8Z40r?9o2oi8R&A@p z-eX%`dEK^c&hG>S$34s&D6R_w^KsGiuDkL6&dmA#Ej(hIADP3qk-~iN6(8MAjL8e3<{7@ zrC)rpKO!m)kesDYsFK6f?wqb0k{w8dj&|RWmhD2qC*z{3Xk(9*5vB0ZQc*H4ib~2P zb`p`3tOHd_VYK#kF65A5T=Hb*s>XbQtZPhaPM#^|K4C!liKb6N$#z0&d~5${VQJZf zY!D?I8>7lgJwh5zcxTDBx~ixuqa;irh|SjE66BDKT;$DYu&}&Hwvb7U2%ImzC(IIeX?#4!A?`A`}KRY|y*C3E5A#_Vr9UzYY4a?UN9+->RRswt1aTdbuA**D6 zpPboz(xat~9!6t>nqLtOB*YI+f|C2w_J@@Mp&3re_>QJK8abm0nQ0(Fsf=rqvn^zX zK*rV8m6S#(9o7cTghkLZ>#FkeqbQ{)$^9C>*MZXpkiywOH@s3t6#P~7fkY;N^C7}Tz)6&xR*I~&?7IQ}{;}eFm z!6=#EDDfG5GFS}WrjQxplOc_CNg>=Xl=$$B1TEnSQBhH%q=e2%%E>6VQ+fwT!>Eu* zge)VZC~16BO>Ho#WOH*;dsJgtV^X_W8VQL6pA^R-WJ!rahV6F}F~#I1`Kn}yxXa1l zlM>^U@?>Wz-DDxL2WzZ4LM5xC+7Wpf0vR1`Of7N4uLnsBl8Y!E*plom`(F&%+G+Y(-MRs;tX?{B% zPsoN74aO^nskLG5q=k+7WsOmyWN>mYwlbA@gk(>Mn?^vEmKqhq_UG(RGn8RUna|ka z&jeOV3GU{Tx{jYbkC%c3o{TP+Z*d(F;Ox&8FOWGWm}~} zLRd`oWp$-tp!*_ce@+^7{6cb~C1>?gtc_6?l3pDw5^4BkWOU)1ylB?Y4i+UN(kipl zs;k;zNkB$x>_jUel>}sPdlc*)rS_Js3>YgF@+3EEQKb>oF)b(U3ph^>55W8)kCRaZ z7&!}tG%6%#KB_1t$A^2jjOJuNZ&X{K6bA-mRDM_*Bd2U3BPT=R`-Ee3nf$3$R9RVF z6zr{D*?iJf5`DBYxFOvaz{|^{_hf@K?~6Qa0!2wIjS}Ai8BBYNnvT(v{WZ)`d8J)u zCU*{XN75=Q)2hq3@W7`?f-%SPDm^|1`@jrP{J6%3$}9VaxRNxvXh#V>Azy`#;Pzt=0%jXi;^-6(cld# zr`bUO&{YzUCo5wBiMnJ}l8}H(%gO$N1_vfS&{EBfsnS4-yD(szIbY)4toC-dn8|i0 zM~T@oGl@zPQrE?1v%w>#BPAiBWF4fmPKigfC5n=?iBS@9lbx5BmSz#taP>tV*GVvP z{Z>dZMJ7Rs3XjVqtb#QsoBd0(>@1qaYIwL&5DZ?V*lU2IrBpFjk5?Fetey3PRKA>KY}nE(Ry-j(%o?i67ZPs8&kZZl02vh~xu5?nBW0rroy^oWKsKwj*-5o1Npn~7RVntSmRNRR?lLMFXQWiW&a_6S?{%ca zb+$S6l# zkuh&SBB#0vQv=o9$HPlfJu9RU=5|m{srHs)NJdTG7q)a>VeJ|KD8YTCqB2)n> z-wqhx$=2SI#jvPkU7buqjm9g*C&eZb`lW8 zd4No9t&VCmn}-bgA-+l^H*g+gaDx$3P_;34yFexu75OB%u~CZ>pG?bcRYpt6&`A@> z>e4!$X6ck62GS_yZ+FX>DaFdz$mn(;%@=FgIEim2H`^s8sv1g4c(;oZV2t(Yh~*nj zSYB&dwn4O*sX7Z`8(b~-%GYlrr79_6I`582g$#i^MOC+YA?2HOGx)^plrvL)zsN6> zM7L5%NU4x!nq=IxIUbp+b0sj-@^Zq$1hOp7bxNCDi+2TSC>tBAs;OjUYh9Uayqlfh zC>nIi;;)Z7O;)S(tCWC@^y%{7C`!WI1~5_Hm7;4}T5Ap%c`-vNJ}+{_$1012G^Cb zI>IcBfNW0+admVfs3WHX+1?0=sw*AH5H+`dA|$O{SFMnw3`r_VEQ)j?VeZznY@=hM zYMF?AacXK>Yb)lU{ne!QvMBz7cpga3 zK-Fd=Bwkrmq>xF3!~piUYS?gh#6(QaNNK5g++*0t5qo2hj%x;cPBz$+f}L_Ur8|YC zvQt7fwmZv{v#aAQ39l^b){vqTw zzmveoUq-o8gMU@FVy~vZqcj^Wlg&~u;ma+rkx~q9%*_rl1EG_!)>N9i$O?&OnqO%WETq9<5#9np3PUmIvJ7t_=hRB2)!ha8JPcnkai^y_~%64%Ld>0L?EE34FGP_sw?nFh& zsFrFANhKHJDUqrq`&pO|NbD^@MG1>yisYo`=9Z&1FKoYrcUeBXC2FC1rjXJx`5Tc5 zr4TMgENK^9wpth^YlT22R`a{RyCbzS%0!3-zPdV0An8{gNc2u6F_(+Ai<~5$srFV# zMowK+Srpbr9j6!skr5(_hKL6$FKOG88XZO`*$T+W#MCf;t@e}B*@-xiX7!F*xUdn7 zghX#qP*Nc~GxCGL$!oPvDLSbrb^8CQyMYzNLd|LS6#=Se2tbQSg4eAPx>hFWUUraHEJki zR9ys=j6`_j>mrp5kzfc8UYulP6eY`)(L_!QY+%gYE`E(^61xkJkcwGkD6!~plL3S0 z^KN;rt0kF?>FKA!*x0VNM(1&a3~NPikwvMP&0Ekyc2Tl~Hrpkty&V$}lrT=&0?%I< zRTNoY?@Qt=#u=!(wY9P%q^ha2P-~uvZ~l``i|l^sHN;rhsA!(#y`b=zCIJ}g z^QjNxeBr_B8DVSww@UnfR`&%LgStQ7s~5qx_>|qwAmE6o&@ry(Pa)A?s=G zI=J*gnWsD(5rKq~VXgSqE1{#05Xg{)qGVM>SgTq)(xYUgHMmlm?~GM=sHI$JUS{T8 zxR6e&UdpTtB&x-MjEsbmoP!oZ$W;b!v03C7M&*|Xq*0QOSg1<2FI?CHWx^aKBl(V` zTSi)=!{qon#!W_8T?xK^w@}L{LqO9n6tabKXq1fP8>J20BcI!sM7WnM-U=yNwl8ki zZ%df37PjPL21*r3QIdWskd5sN;~-2)L|B?tGBVORIFO9*G_w=J{VipDa!ZRK;shj2 zorcn3q{1!Yk!5wI`%^KSP{}adi&~j0+mj3<=T$;N$W#+KWi6P6S|o7LDIu$|2Qn^c z==>=Y@zu7~`g9%42TrI-Ny*7oNU6}>LY^BJ(jVg}I%?|>5tT)*k{Cn#!uIx6?Ybpx zm$f;rrHsp7s33uPviBi)yGl;))-(sVkT!#_e~rAlgFrE-RVS|CY@DZPvliqY4n2qYP~QOmZ* z_9PKBRt%o1iw+=5`0HFgqdcE}!z5a^vWCM}tN(noq)Yqo?V4Ifw@@hb0<@PYv%RACQDy2fwE9)pC4)m(|wR*8;MIvB$59 zToD|^`fv+rrQ|jP-^Z#;N=k5lS-I+1CuWaQFG(y%#0x&$izCOI(tE4jOKSbbmbxf+1Z)VMW z%f@t^2OURwT~&!FSuaXruFh9`laqi16-bEHnwaQ>4tuXnQAj)|0+5Nawt_1ibSd@q z>FMG1=_Z62J6ONda&owSmzLC(*Oix}lPY#}oWhD{;@x831j#QuUMGo45;Da?=C?Rg z)hdyckjJ^p;eN3-tTmz<&>oN-b+cZPeD;+q*=fL2}=3rZ_IpTM5eT)3cgcL2lAxjWdNxY zQ=v>$0-409kb$dr7zq7sYzRm;yj* zi9Cv+ulX8|wJ|4;kP)I}2^B3VDThG?$2D~of+@coLc)S*R4P7SRC~%yl(;Eh=76|` ziV0dSD%BzN+$aZh^vNy{S(}0KRuB>o=#+-EZEb!5QY_mg+0n@-Gn)VI>jlp&D=4l5$cs z9N1ksgB>Cqr#qI&UlN8fFe71Zjhu**a(G$(Le5jlx$yWxiQiU*l%-L$D9kF%^1(o>niDW;b6%2-)-vh(y?BNAj(JuxL!tD5SYoaf8MQ>%#>Axa`JBWtq?8Q!g7 zM<}{L9@mu#r{iQ4vFaUr6S7bs*-=;?zq(^>1=VgO02c55O(B*14gFH5A=o=xcNx4N z`>6;`zikiEgKWvGV zVWkSm-Xd~xxN^hVr;3YD?Vgvl+q{1B8$?iwF5)r^wefF96p~91MdDE;rL@9Us*nsV z23Z(gGL1^^hP?@?l*e1jh0ZMW{*aV%KSB(Ug+3y}C9%EWYLilY>J)UGS2(Y5J7WtB)CtVg0TyC@1D1Qcj0=F((=WaF9lL4+uE`*pXcOAz@iTo z%0ug>Y6HlYIXQ$pm3y@C6qLj;Ig0XfgIA6htz91GK+-As9XhNKl)iGRz;70ufKDN# z3)gFcliyrg46j5q>FD!KmX`r7)$ME-0nN-CR>;!@QrQYB>;f@9?t5Hf=QEr$c3 zwE-zg9>r_d?)AIo8OW4yvw+hnvngc`WDMh!nWK>*jQdN}H6u(&g+&}ent`g z@MtcTguNpqbc~dWNt;s1dig3;BvOXu6y!RPIoSf4a%%lNk#X0q^)>T$?V4A(d){vD zHDngzR9QK&GCP}2i3cAETMz~Ubx!`B#t{?i5ysN$j$sS?Mn^(&9gJ34P(VR7wyI#qH$ zkEyI|%Y(u9=PlUJzpo6#A?FAY0Tbrupb->14AuK{^77iKWDU*DHE#i>w|veyLLfy+ zn5|8|pB5A-B>(eJWnyf7dhMyKdGl!MnxiXgYF5_FtEriX1cRqw`&%zQ8N<*?BN-pQ zfYT8;plME+ndD8Z%Rg5zu5vw%Dq%4X7Wo1)ZQ%+h=Q(jXT zFs+B?$SX`HQ86^hF_^rZ1!+xb*)c_tr!e|l?kKZ!#EI#<{322=v~)>A3S+(ae`;D@ zO+h>%kK~|>#KhRhl&q}vxw~qP?pnEWWeq>;*VjmhXYGD3T_$vB8B>{vRi`O0Z2|v+ zB*#f%3-~Yh3q(&iC+*Kd7N;#p%g&CeEJ~>bq$ru%1mB1t78#MjyIdTvjpjB^nVQ;` zng_jVd=Zo)TjC~VcNUP~jifZm%tOV++-8W9Gp#ZQ1mv-A8NI=cYs=aGT)A#&HESf({9nY)WlQtT$51`qo+#AK%l5=vYir7GYU1CBxjN<;|6FiH^SokZHW}Nvbk94wGX7|7WMqsu zMq4?v54e={C#BV^_1;|~5ELKSV z=3QhUn?%i~JkCe(QRsz3Qy$rP06nhoX;Mh+1k71F6CSQUnMftu7A1;R%e7bxq31q+(cF1$V~3;U2r z25DPme0(S&o5UDUvbb>l(UoFuKnf!AD}i~G+aVY{JTewe851Ln3JOa$wJoAe<&(WY za*$F*%!c6E(lilID6H8Kf0SRnV=5OBQpqAr3@xBfGJ@-&WNp2%+6GYiU~N25AQ3ma zYBqqeXHNs!6PPQH!ZCLj7H8=OJys|y6>$*|<*o4!9)wcUA_)2_Juy3*|1W6~AuD6x zP=zbwfdy0{2}yH1Qi_sIO|NFR4TLe$PhtN9W5<)QCzI$2%3U^g z!u5whIAvwbKr#xc9(V;H5CR=CBL6Bfkdms$4CM3y$PKcijA>(&1)`!OCm0u`ice;N zv9?x}OoU5@0usGS7sYf*M0QU%K~~O|NB8c+*Pi0y^hhy6OpHJd6gDEr0dLMUZLn^d zkY+EEdh!n(7&8#jU5F{8rhrpf8$*Yb0;(S>xk#1FB_%csnDD?zNc0~gkh$x3(Zqgf zgU*(F37Jx#4zDESKw%sRq=Djb5*t8V1p6*p1XJU%NRqfkj8SrZ{Dz+Kg(+A}VmOD1 zTQ0CNlCjA|H@4%Lg!t=iOsGIE5=cywg@pp?M~NtB+B+{-md11n85E_0i)d3o7UULWX?z#;>=`JLgP2%A76P&WzRLiBxv3=jD2j;;FP@jHLMq^35!0E}S7L(>pTw#Y ztMP3Nt}^Mzc)%icgMkAbLPA2x;@p)zLpQ`1r!e?rR%mie&djS+5)*b7Aqxw$_*-~v z=-?56Y|}2nPtD7%S?Seru=Pwr?%lPXi%vL_N*OCy$`NBx2dbYcVOxyW4>XYBwd>;v zi5+Dm8&gW8rdJodDvYo;eUgwh0$I9mV-AaBrx|9 zvKVs^rHnBVZme#FRdEfOT6v&W(Atr^3)meX!y{P(pCx6J+Pevpq)gbc;e~4MtdtZi z!|Qsk1EhL&c=+yuy&Kfr0;tKc_+C2Y?&9~Lq{O!{#=3~ctd`Ui#8~g8Cr73nW%u~% z9m&X{>#CRwAm*Y4uP%CZ;364KaV|Htn1mpC?7Gmw>wFwHdnhiRw^t^h!EQp{O1TSj zrFf;x=cH6nkC5g#(Ded$417ZP?!7Ao64PyLtWwh6AmjlaNyymPbOV`-Eo^w?y3lom z)GpF@@0H*l?4@Mdpp-Rx=jl|bPHAFXNC(Eo_yG^J0c{`$#wuh=O;0s#c_?p~8EOFtn>jtlLluSuiAv+M7`BFlMlaN3f${77vtvs$7JKZOKuhy zE*Z=sk_jJmG?4Wvg#{e5S2MQzg!nfAkct94w-s$1>gZIr^=hI<^V=jlsY;e$K zc^Gx0vCG7FIv{0AH#3oSP6yf04Yc%1iNO``f~9)ySvfDIKGxd1O@$<(16d2mp7A1O zc>0dPvu61;^1{=z){9#!;H<&s?ND+O+Kc#3DK_>tN$xJvoMDQMaWb)1Mm(WDeI9&% zaOj4bdBtY3wKEn$HQYFwbV4E(AimSnXARzAAj88kP40D#J?_gDk?q@X)iQyMi4FzwNfDC_hx0Ko5eNOo&N1~ zD$^uv7m8^=x3KotJ5XmHPEq6DIrf~<<|5BV`$F;T}xz>ALA}sX7R*aUJxIO zX#kW3Sy{i{2T17(8?{_28Op$3M@B*lC9r8D42_Tl^Weu3$OUF$Fh;R}rXChN`v?z$A7QVVm3GVO^k*j)%Af9>O#)9X_>On|`H*4*%g zU%Qlp`BQ=XJiQxIa*v*Z<)B^}!}YI-NJQh;3w6D~3x2r#qvh^`mDtg&8{Bi_j7Rx% zNUT{Cpr(8Sl^Hd%K0T{2caMR@EHrWAuP6HSuWV|w*3(;UZ0|5hDAx%ll#KE?{d2S-Trg0A%QlUQ6GZJpPgyGwR*xt4QbkNV;Tg zE|pvt8rpLYp7-mC6A3A^WL7Sw$-$NqctqSW>(_W0uf$v_kTV`FtgRKulyJBf4k_uP zrE1DQC#tWPS*qShEV9?)OTh*zx$&!B3B7vtes<1hlZhHxJJY9cA3u4{(!-DQFHCCj=vqp|cS=23 z_&tq(vcbPK;JZF0TndDdU!lkSl?$}{ZgxoZD`_jp8e>P`)Z*-sVRdE*oq$n%J zlPFhuiu_5D{Ba5YyeOU6Dd~{CHYE#>h~F>*UCr2hxL?2C2D4YMwa?CZ`_|7__nSL| zE?pm)l2VwvanGi~n+A^v4c)MDqd-DQNK%~3FYck7Cim&|BR;uq*7UjC`%S)a_0J|R zeNj72=ymw3#|w)gCQwso_<9<@*0Q=slo3!Mi?enY=5oQ=x9RcC3AfyG%Xj|Q&-<-a z%3f>Nu6=g$Up|=7efo54fojokPv{6x!m{x-s$@FdAS-txqZ>-DTeolBKG^x!aK-@> zZpR?sp7X33H3)n6>zA;(?NRnbP43Jj-qMdyaFh> z?)^=VC0ufgLy7dApTF~>ptzo0_ow z9xtTy`af=e@kKoAntH@dAtBePl6&?*$mKryn=1GL|GflL5OoCRtoQ$72DkRbcYgjI zx3^nvx#yC@FXR?Vs)e91f@)e@DA80a=vfw&b;bPYHaB-8XQ1~tJ(95f7M1clo?dUc z=bn4|t-VlCHf|JiuNyG}^EnuU1hQ6YHbBaC>txMYH*4RmV^r;EIyT?L)hh0jifV`mJvp>hE3O8=t({sd# zb({8W0%YjKOJ%%Z?c4pb9;IHGfi~?!+603yNAhW4=88`eQWD1TyE!jjaF45{+u=Qb z9Q4(r8~Kw`Zb6|H6Pet?Tn8}M;6lgTd1S<(pu&iCJH}$cVZVyW&JE)|_xy3~>g^a9 zmF!8#Pxm3dds;~PHH;zV#w5xy>|1yHjcaXZ-|>u@MG2VA3pCN@!cZugf?Sg^*!GQ< z{3l^3`P}21r(fVlX%H{CVENh)9xZ$n(E*Z8n?8O2{r5L*GD<#LTMLQl*4)H_QH0z# zso(0gfAnPHKWTq8Dt@zYIXthqUp2_)PVF1d-A`_`?S`@!1f=Na_5wQy8N%A{|J#pm{g+=N{eBRXG?Y$a$px3p>BoP;L2yIKG4Jnt z`u#EcHaU=RD$GD)?hzw44VHCr-MZD!Zg)E4c-#~mBvbBRgP0`*b>H3`K8 z-^jlI?Uy$Fe$Y?v6efrB0%g3j*W^oRh>fx;?%Ve?5<i2f94nsC$zVoMprfyWo_!{i+3!o@&k1tSBNf^J;((xF- zanJX^_g%&O7lCvzZMqY^_WIeQ1%|^^ z1|;8`e%9*`PG8n09P*ui81w>mQ}G1d2+Vl3eSzp2Z$5IA8vd@c@%!H+CDM;K54!ly zJN+>4yg;t!zBquMY?S=^wX2TNJva>1y)Fm0gNN|?He;@-+*T?x!4`+1vZ2J20ik4yq9Ya zd)9(Ira&*G6o*g;@+X5Hz5aT^bU-g=mw^0Cy@Ze>_N{oDTk^3_!`y)6+P2XO$th^W z2r>7%O(W*?>O5w4cm0e<9utl|hGq{z_UI*vZLz^eGLXLnM*FXB$Bj~E9qV=>O>^)v- zO_8k#^(Z;@t3iji|McSPFLprLGe}jPfmw_m_BIG3pGk4si#8}>Q|zGVj?%XfBTcEn+F{pKj9D8`==StPLJne z!#e;umXOZ@64w5mPv^Eh#@h7AO_-hbaTl_^_YBj`wy2o4KD2eF)?stFt+n@Yo>Yzcr-}&9eF5)kKk+769D#(Zt`^JuaE+_~}K8NU@ z?-Osebwe7wzy56UGy9>SK=@LJuEV4CNlbSEyIX?|%1t-}~)v|8?^t zg9aU5`oI4`JWUDjJic)c=O2QMVQ>dg%ZdGwd^V)4v7sVlB<80pmL~k-7uWy7;r!h@ zy$2ET@kf=!Vurd{p~k$X(54X{CBFyCpM3SmBg7p4*~1qrX^3$GHJ8&)?(CVY%{03)Qj_ zc=;&_$VW86>YrWx$6x&7KYsCOuin--Mu?KjKnciYGEdSIoB@oWl_%}nx8nUVE8agh zy?3u-rM&pz&uC|)ucq!9;bHJ65^D%l=mr^G?{jOL?JJ^WV`eFw}1KZziHMz$cYth zv+diRc~T*#4l?QR_})t)=g;m<7=PFcIcWu?G)iJw)R|4I;E?Zw^8HEJyHEOb(uhlX zKmH$g{?89+XHAa``fBr>zqskgzx?Ho|KgWE>$<{U$=@fK{(6reKl#>cCihMll+gQU zOQ)-Y)9EIycy8jd=Nw4GPe&LtW)pYq??cG zp#Bb|RKeQ7v+3BI(&eEl~-g?b7pZ}=Gs8K&6rFgU`DU?CWCN2-6lAPQ|DC3xY4&m4pb8r0oN4*a( z{owO!KDc#t@1;w1?1vM^_nKj%qUYeB_WbEjdxnO3;^e3Ll%FEWbO9g2=bWqLkAL5L z{L+Npl9o;$|283i^rK&${{MgVqtCAyKV2u8Nh>Ce9lMOy9xITcj>KaoAz8#@VEp`7 zzZ%s8w_bDWtxK1_(_2TsdFlAWGc<%Hj6>Z#yVr*}=^SN2av{Hec>MVB26FOe<5vUn z^Ur_ut5LrqTo^xidxp9QATgQaCFWl4vvvaH3K$!F#|U}J z+j1udNXXSoKl_=EUY_w)mptc7wD-BS`s2V){xyLEKS_p)WrjU6lIHvN!(g)lxh_POWA9s{HuAB9{!`JL78aP;G;WWvQBe*2mmm)>~eYNfmtPq{H+x?@!A%xQ3cCDFw(>bPtywnwO6mT)6xSt8Qdt5@GR z{)5#V{j=0z>SHPpk7PPG#$2D1vUBn>SAZOIjxy3xSVjgsJ{4Ln1?G!$dcS?+jYdnP zXA@?~sFiUU%?-0I4>C%k7ubSs@Eog`?$sqLO1}T3I$@>eS7>#=kRX>9cRY4a(Jjfd;p(o|CY7x|#xwk0CCe zW8827UmoP64(LE;CUI8QVX|K~J>gk1MCf?qjgw#Gzm$vzBX(=&48#~ELUL%%nNl9l z5qgp`Qc21av~1b*$6kP%y~fX({Pt&}<>Y7AZvN_VHHqqV3?yUG6!Q?3)PBWbmKpeE zTs4;k&E1?Z2SbF65c2J}u{6$kXMC^C*!1GTlhlU7bj}|a6|FP+h zW7&kD2?@Ot5)!_eI`y#`(>X95@FWpTO*&ST`l7LDYHKjITDYeReW+#E>V? zd9hc*)Tu8#HeDV$Mi1;06z6!59FJOv7fqyu^!a0AKI(An*tzMCKlZ{4|H}7QAXG=u z_oOjk87q1ry2U3|#}zWniPA}sNfUzx44CoQS5r4{?!^&r#(<&X^kc`4;dyu_M>fd- zpA%r_g?NlJjxo}15^s{JFNj*=>of}{!3C#}_;ds^j{i(jy^N0JSsv8KXJ&_EgcLg) zKyw^0cgEw7U<1ZMe+9y2vOhYuf-}D(kvX3;AHPE8c*C({3P~d^8;fh(hLTUxh!geM z+6cxZN}6#Rct=K)j?HBnaBlAObJH)GI~^}slK4zbe3EGEB{P@D+?;(vkbxYFk$T3V zq}DNXwFy%H1!EuIF&XJttFV`F;sEe=F|ggzA&-TU+zfNNkLgAlku5XY`i+pkb3 zIA(w*t`Fl{O;&N0=o6Cn}^w@fezsNIpkIUP3V zT*4VkI&@|AOWxA4W_r_p5jf}tX|AT}!l|QlV5A|MF7ML^kW$R&c4P#iB!fACh&Z6r zbH-oBE>i+_FxKJG4pnWbTXu|VhpWP}xdO-zyK5T2PTe6b3$l(;GXwr=g5`#%$o_s7Y*gjg5qEtgSL63U&q6uIPDDay6pLUNz`UAYyx7cp}Qlf=?6 zw+*@9Hs;!xxy;=*Y|M=L^e=pW|NeM>JwLo2kMn%JUMKgbL1||VNJes*gR6p9Y|)hV zuFg#JQ>Ke;?dBI+%+mX=HUBbT>=d`pK5k~s^%?udi+@U?YO(p3L*Cx@CWQIkxMN`c z3=MJ=yl~Oh73PxR|3f=TJG*i6>#iaQ`h{EK;z$oikaA31g!yXhWK82jzvo8APjRWZ zsuyG2fy6M@aI77`TN?IW-TR$w0^p0cGu2Ki@@}C-$NTDQbYY2z3#3@1L9xnMKE*r{ z=^R$J#x|v>jP0*N9bTCc=N8vo(9?i-0z2FRDdhbtNA}A1zkmDk z@J=z-9&X>Zc&-omBdbcIrvqHp+cW<2cj1= zBwj@me@SpVnn*9_C{XofgwBs3TuvNVb#q4ZIiD34`sEaC^dOF35_z|0z9aDhqFH1# z`>_Nxs;TmKr<)r)TOI1((ix#8glj0Ql)7>K-;&-}&pD-KoBa6;id4@_7E2KK-)CN49f%d} zWV`;W#cgh{6CD!&(*By5rLUDiYZa0KnKM5csvwdt9Nui=TjVr#Up`%<1~clzP4rLo zDDo~fuxXK}W=za#+5J<%_6xNUf05Erq7D7dqpM;JKSzR3VbO}t>;)&JWqPH~@-S9K zO@=!FDO*zgQfTpGB}nS%LC;?fKwDw`Xb~uxJ6CrCMO(Q7W5aiAPEl$6j~NyxPlOKN z=nH+Hey=IYXRS42fg>zGT%>C75^<4ZttSzm#Lhc-B5@`MRB_zE>wIP7?Ce;prA?W4 z-MO8jx0~LsN&(h)fbaKt2?WqjUOxkKnv)0x@IWuMNU!J7{97qE17IB{^sKDsUBwmt zhh~B%p~Ib+AjBgs{sZWH%ZI_bVzP05=!gV6%){*bmuk5BjP-svbj-J3)?5)*4zCqBdgb%=L&{C-s2 zKEEOC*Awk!XzM*|Um9=@o<6^KuAWy|Ltyb>_35$SP7&|W-0hdY$qSj>GX~`+g2RVM z+gF0D??kf?CmqARW*X-I^Ir28rT^3^Qe13s(K{A+@bUvsQxY35wjGCy=uQ!FYcV+S z#P|9)Q*mWe%s;cG7k~5Ka{Zm15^}Rd2l$1y;@mDu$*QsbIGQxMOj9{lk%YDirPEl) z0zkAjkKYXdw^jTBcgkEtlLx=^InR#2v5@i~NlAV*a{6wkS58R$zfXK(6)-?H-edpF z$#aJa{Tp*2=59%=1bs=AU!Oj~m4J__Owk z-i;zRIsdtgi8lZA|@tYU9oHo0Ha%AA^i zXp9$Wo|Zplp=AB!wHo|6DxoR;K#))MiIaZfF9ExeU}Bl`ndspCh@m2*h@011T*>o& zX9^XL-dBDR9~!PHIk_;*#SIW`h#a^`k7F+U&pa z{h3Icq&_#@g+U>q4l!~f-{RIhJW%<41JW8mY+B+F28g%tE(^<}(5ATg6U@9Vv~^8a zSmMIzw70c+O}?sLkv0|`UP58ZUCr>mpyQS`74EZy%RF1sY>s%X5Dw5$@Bil)s8orSiC@QV?@Ce88$zMre(wcHicdM(t_4}mqh zxuWRYrOxWP0pQ_RwK-g{{+GUHMe3_-91r1O2{X;ti9Yvl2a7c%;p~@U+1!GCg}>lqd!YMa} z-v1Q774bRt!+<<}_n`A>_V|9Pjys;|ReBl1f-!ejav~zwo<{2a!x!N92me$jA>iv@ z)_k>_P4oY(c(7A40Sk}rowHQQkDT_j3^UOEG#*NuBM!;Bro+`I5$4-ZEppGyo@+l| zmQRoddaWtlLY^bn+iYbjvxGDTUBx$%85z=~(F-+QlACAUMjyqIKHHQY+r;JRmzVc8 z1RTO|fT(RR%(zfC#cr+O&m-KH-R5XOD6=?b`#qLFL@7MhFIW+HNEqUB@8 z?iH?{l5u3kk)vOOIYl+e(C-^0V7+<1UL;@Y%KG!<&o(fj|`MYlTXQhuv#8ZVMc3_ zCd&Y==nr~2hx!rw*^?b=hi4OkI)gu+OlA4+7i-K&AlK$!4i)GI66Rixb~!aqGq#2R zS<4BK2k`+2Q57G>ux)+ijB{F^hV2OZ1`V3AKm59fck?~!iDi9)wljRU-2^YC>N0<1+Sy3N+!0-s8MS2&5&NI4Mf;*gO zLhN!bwe$APKwn(Bnw6y{NSU`xUzuEzZwaI|j%Vae)gls)GD72Xu+%KD3 zuFygb^h|Y@#5S|JE`2127OEM1`s9v z9f&f#0Ma7WcRpc`6JHV?QvRUEsgG7ZcLW>t(C?NHa8uMRGs{E11Gk=h@yk6!1AJNJ z!c+nFo$|T?A(XMOOFKIQORJ>8c!)gGXPN|Vy;iV307_c{Be!-0ph1zb$apFk29lo~ z6}z@bs=Es;=9bIkt7`3NZ2zR*mdyemm#nRWkI$EkEMd}baXO+0K;zq)K@oC~F z$7V3u3dTn~Ojz6Td3?heHB;3%gGTLAs>Izr$xGKtq|tl|(X`)c3jdJem%HK+V5in-B2B#?WDEAeWgF72$ zqw?wj?wdrtX1Mhn7VUYH$r0N7T=twSS{b)3P8@J^Iwf_xH6rwSszPDp;u6%SC{Znl zqQ%<5K%Js^J|gxx7F-0sCYXUjQU2FAo<(K5;0B(L=9jeJ<8_+2X|D&+;i0M(@l-#R zIK5j2&VMR6=KOP$WLi%nca{X=|u4#-yHHd9>~V)Ku>4Q*VSq-*~oL$knfcpoSnXXa7e3a!AcqFj;wV7xbna1l7sU zgn}Z2Q(E|_8CQ)IuL2#v&dFcYbP4{G)NIy~F{_BJvx>-ByL+%>okkZe8*+eVMd$jE zkS4)U_?Em6*@0abY-d=$N@;GXI`i#V$x~z}%Cz@5k0cVxFm9ouA(z5LWekEL2yss) zVb(erQeThq+SpUXg~J*0*Fy`Y<_#@Hhy>%S)V6%oY32x+l)a|ReLh(9RU_g1kA45gR5|w$()T6uJylH zJti0T>5Y?p;iSM|NRA_7T{E#$@J+n%P~cur`K9T&MKoq_MY(pDvRbW=$bc&Qinp&f zM@~AF1Jn{X4*jG0rsurF*8~Pev4jFwsE@LAaCq}}>xlhyJ$i#JBK3CD0}#o=S8kY9 z!y$fI7kA0&C`{`)(8e@FbJ`=Pf~pp`InbFp698RVZA4?>>91fjABXNTRdB8elYP5& zi=(n7mY2jJk_QKDHRHIJy+ZLFTSZ6NLXV}H9O=A9YlVZox~@F4K&NSw>BbV&#MmF} zNLJVYIbJr!sMG@`m#VpyRM#YYk54`Bo|NwgTar7Fje)B zoQQSN$T0@oiLpDdy9=j&uL9jB)&U%ok)l%Cy|h^GaLWnz1)H6@y5lWUczT@H?LKE9 z-QN9e%xiKijBRW81`!skbiZ6p#{ZNze(J48T7VH*XKG~r9x+zcA-t}(0dMa}cKy7G z=O(Os!1qW{O^~X#J!>v@mIYTaKjPgS+9Q*D#3o|VmGF!CmF8i?8oK*M#NAk1*M4Aa ziW!7^s4LcH`YX5jCD&UpE-TN2^pdLykx7lTd;V`@EerN=rZ%l{R{^Rhk|?GS4Lk6_ z#YTM(ku7M#Cl&WGaHdkVeeHEVaxM7j`$oDgPy zomG0~%3Sk8Sx!ONI&Z|8*aAPMU~&QON+gQpzVk^?dr1at_c!0vKcj#=y<}yhyNesQ z{PWoL+4d)tK@W+y2NGeU6&QbIVIL>d>r^cLZRI4>DQrEdy!1e(>Q!-V!@H%1VVFWq z)!tU7K!%&wV(Mr9vbOfUE7!DOieq1!kqt{nO+is_R(n4Zt)6JOqW zW?XxAqbfZg%bjZJyMG^{L%fc*EPZbTJk@TJJuB;yU|+oyRj*RQyk9w$quez;JMUhi zFpbXAW4yr@hVX4G7g_?Azde6);|}I`T$cS8+rrdt)CW1U_%jcTBRzfLGo2QcI^l}p z0-ZY@YS^Yp9kS!+?(*P9%QZz|w&h{ZaF<;DeCWZNZ>7zpQRLSHEi9|l^v6I%wEh7J zqQ)ZmG*CD8aZ2I?u#vWv3v*Zzxud9ZFns(@~ zd%(HCeHSQzf?6Gfl>QB6l-kszmY1qh*rdjuPb@Pfm~Lp2mxog#Wu`n=Z@P7MPG}IO z>o9SLDen(Fuz@f!{*~}boWMy+o4s@kwwuNtYdofvyB&hD_IqlC1Eds?5^cx|Sr#5G zj11ItSQgJ$-D6_4oMrPJ4=Gy;x6@iSa|KWuVp@yBcqOzO%wDytwuYxsCZ~`2OQt@d zQ0B2xmsrAtNBgINK~xl6#z9bLbZs+ut?zjh5U6vKDwEmx(XBE6ih)%rML3jG9}zdM ziL!cK#&od_$!#e!3Wd!3Nx_Dd7G%KLlDZ|g#cjz1wWUDTtq#VZAU8N^KGGp=d9xUK zh}BxGRT0AOyTHu+43~nuyQy+N!RB{rVZ$rLKO4&(9UJT%E6>=;Bh$@zv2?o%=dk5K z0cxOs&Le#vU&vqQzHsNGo2a)Xdh%#gaAm7$XG_~9sS2_{{7v_|O;>VB8ofV`bkI;k zv70zMbDv^EQe37yEo@no)*bdFHToz}qb2q5b0*5En%=Q_#2EPOUY_DKc?(xK6ptE# zu?VyyMl~1F>#l5sQLG5 zI;>?r&^@ZPk;eefiG{aP=fZeK~v>qEw+C#fN`0oyHF4j#S{Y?HE2u2@KF!6an~ zvyyUV@Xb}Rx+m(f^v2++jx28sYVV>hv0|onkGdF&WrkvxK8vk`kbViCo9p4fL>w)3 z{!~F)ax*;D{MAh9Z3oxuS|H3-xhV4^E2O;Xk%-ox`3K%qi+DIhf4mBkmE+dD_Q3MP zuTUfBq&ke8zxY~h;Fsn`QYmJ2e^2{B zB}Rb%8-kzh97L1uJ8JGINd9e^37Og6_x@D@2@gULw1f)AhP0XELH?)kLq2CQBV@E) zj{s_MFZG|kyQ$p+uQvT^8~-H-so+O{CI_(dj?HM^C)^th)6jir`_hqjAbfk^z~Hdq z#{9L`X8Y6;OuKLcvc^iwHoVRub?;KAn>YwBH5yUt?l!<*;pG+%_CfX8xpFJvr@KSH zk$c6cuazXIC7Z8v88wGjH0-5vA@VrW>{W+v4XalsX5%hfx#I0#@eGz}JH>g+|KgWk z(Od1C^&MRui4v+dF6i066>E;KawP?1jNbLm$Qlizzh;OBD_ihk=Z^Zd^uZ#zFuXnW z_7PM508~E0cBXut)dd}R*rlLXsRGP2c_-d=HmCxAY>@4w-%(MAB| z^R#67odT#8puB9Yy5nb)s7qRP-0BF=FC##x1wb3}V+rw5{-@nY$Hxa*d(I*bV;x=# z?we2ERIEfrj|MhOPcFhslfxn^10LB-UJAU4=(0W*zqGr>yQEy38NpA|H9eqmYJ4|J zdz2^EMZ1Bz>_RM1{=Ok@7};?>5L#AP%v9{>l@XJf-`)UEn;SGV>nq#Rr?(mKL;uLTqzC-5c&~E7@ zT2f5Li2qJuYe7Q(^ZV9~&RjzJ=v%!X%>Lplh+JyU1OMJdu57XJdd)H3>UBK~#UD8&~ zm9KK%u7sZQz#G8A?CCN&0I+Z*Db2yeF0@+=)8l#{S4CY!NBYm?(EI6w`W@W)^vFQxd?y)k|&)+RTbj1<~A|C_w*sx=beOnU4O#zv^Ud+Vz~X+j-ivqt1Di)k@&Et; literal 0 HcmV?d00001 diff --git a/Source/AdminPVGroup.bdsgroup b/Source/AdminPVGroup.bdsgroup new file mode 100644 index 0000000..3a0016c --- /dev/null +++ b/Source/AdminPVGroup.bdsgroup @@ -0,0 +1,32 @@ + + + + + + + + + + + Base\BaseD10.bdsproj + ControlesBase\ControlesBaseD10.bdsproj + Modulos\Parametros\Cliente\Parametros.bdsproj + Usuarios\Usuarios.bdsproj + Configuracion\Configuracion.bdsproj + Modulos\FicherosEDI\Cliente\FicherosEDI.bdsproj + Modulos\VentasTerminadas\Cliente\VentasTerminadas.bdsproj + Modulos\VentasProceso\Cliente\VentasProceso.bdsproj + Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.bdsproj + Modulos\Recepciones\Cliente\Recepciones.bdsproj + Modulos\Devoluciones\Cliente\Devoluciones.bdsproj + Modulos\Traspasos\Cliente\Traspasos.bdsproj + Modulos\Stock\Cliente\Stock.bdsproj + Cliente\AdminPV.bdsproj + Servidor\AdminPV_Server.bdsproj + CargaEDI\CargaEDI.bdsproj + BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe + + + + diff --git a/Source/AdminPVGroup.bdsgroup.local b/Source/AdminPVGroup.bdsgroup.local new file mode 100644 index 0000000..235eceb --- /dev/null +++ b/Source/AdminPVGroup.bdsgroup.local @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/AdminPVGroup.bpg b/Source/AdminPVGroup.bpg new file mode 100644 index 0000000..722af4b --- /dev/null +++ b/Source/AdminPVGroup.bpg @@ -0,0 +1,72 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = DataAbstract_D7.bpl BaseD7.bpl ControlesBaseD7.bpl Parametros.bpl \ + Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl \ + VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl \ + Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + + +AdminPV_Server.exe: Servidor\AdminPV_Server.dpr + $(DCC) + +BaseD7.bpl: Base\BaseD7.dpk + $(DCC) + +Usuarios.bpl: Usuarios\Usuarios.dpk + $(DCC) + +AdminPV.exe: Cliente\AdminPV.dpr + $(DCC) + +Configuracion.bpl: Configuracion\Configuracion.dpk + $(DCC) + +DataAbstract_D7.bpl: DataAbstract_D7\DataAbstract_D7.dpk + $(DCC) + +FicherosEDI.bpl: Modulos\FicherosEDI\Cliente\FicherosEDI.dpk + $(DCC) + +ControlesBaseD7.bpl: ControlesBase\ControlesBaseD7.dpk + $(DCC) + +VentasProceso.bpl: Modulos\VentasProceso\Cliente\VentasProceso.dpk + $(DCC) + +VentasTerminadas.bpl: Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk + $(DCC) + +CargaEDI.exe: CargaEDI\CargaEDI.dpr + $(DCC) + +ReferenciaGenerica.bpl: Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk + $(DCC) + +Recepciones.bpl: Modulos\Recepciones\Cliente\Recepciones.dpk + $(DCC) + +Devoluciones.bpl: Modulos\Devoluciones\Cliente\Devoluciones.dpk + $(DCC) + +Traspasos.bpl: Modulos\Traspasos\Cliente\Traspasos.dpk + $(DCC) + +Stock.bpl: Modulos\Stock\Cliente\Stock.dpk + $(DCC) + +Parametros.bpl: Modulos\Parametros\Cliente\Parametros.dpk + $(DCC) + + diff --git a/Source/Base/BaseD10.bdsproj b/Source/Base/BaseD10.bdsproj new file mode 100644 index 0000000..cf4977f --- /dev/null +++ b/Source/Base/BaseD10.bdsproj @@ -0,0 +1,673 @@ + + + + + + + + + + + + BaseD10.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + + + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 2.0.0.0 + + + + + + 1.0.0.0 + + + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + + + + diff --git a/Source/Base/BaseD10.dpk b/Source/Base/BaseD10.dpk new file mode 100644 index 0000000..a568907 --- /dev/null +++ b/Source/Base/BaseD10.dpk @@ -0,0 +1,112 @@ +package BaseD10; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + vcldb, + GUISDK_D10, + vcljpg, + dbrtl, + dsnap, + vcldb, + PNG_D10, + PngComponentsD10, + JvCoreD10R, + JvStdCtrlsD10R, + JvPageCompsD10R, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + tb2k_D10, + tbx_D10, + vclx, + vclactnband, + designide, + cxExportD10, + adortl, + JvSystemD10R, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + cxIntlPrintSys3D10, + dxBarD10, + dxBarExtItemsD10, + cxIntl5D10, + dxPsPrVwAdvD10, + ccpack10, + JvMMD10R, + JvCtrlsD10R, + tee, + frx10, + fs10, + frxe10, + dxLayoutControlD10, + dxComnD10, + Jcl, + JclVcl, + JvAppFrmD10R, + dxPSLnksD10, + vclshlctrls, + dclcxLibraryD10, + teeui, + fsTee10, + frxTee10, + RemObjects_Core_D10, + DataAbstract_Core_D10; + +contains + uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule}, + uEditorBase in 'uEditorBase.pas' {fEditorBase}, + uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase}, + uEditorItem in 'uEditorItem.pas' {fEditorItem}, + uDataTableUtils in 'uDataTableUtils.pas', + uEditorUtils in 'uEditorUtils.pas', + uEditorPreview in 'uEditorPreview.pas' {fEditorPreview}, + uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, + uViewBase in 'uViewBase.pas' {frViewBase: TCustomView}, + uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TCustomView}, + uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor}, + uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, + uExceptions in 'uExceptions.pas', + uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, + uDBSelectionList in 'uDBSelectionList.pas', + uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion}, + uBizInformesBase in 'uBizInformesBase.pas', + uSysFunc in 'uSysFunc.pas', + VARELA_Intf in '..\Servidor\VARELA_Intf.pas', + uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView}, + uIntegerList in 'uIntegerList.pas', + schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', + schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', + uGridUtils in 'uGridUtils.pas'; + +end. diff --git a/Source/Base/BaseD10.drc b/Source/Base/BaseD10.drc new file mode 100644 index 0000000..edfdcdc --- /dev/null +++ b/Source/Base/BaseD10.drc @@ -0,0 +1,29 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* uConfigurarConexion.dfm */ +/* uDataModuleBase.DFM */ +/* uViewBase.dfm */ +/* uEditorBase.dfm */ +/* uEditorItem.dfm */ +/* uEditorDBBase.dfm */ +/* uViewGridBase.dfm */ +/* uEditorGridBase.dfm */ +/* uViewPreview.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorPreview.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorDBItem.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewBarraSeleccion.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewGrid.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.drf */ diff --git a/Source/Base/BaseD10.identcache b/Source/Base/BaseD10.identcache new file mode 100644 index 0000000000000000000000000000000000000000..cb0bec11a290610b8aca1302a62aaa07fac4972d GIT binary patch literal 2882 zcmcguL2kk@5aby><^_E~Z-mea2_%GplcmbFH^E?Rw6-bjrC+a2svd$lF1aL8B28v? zW;Rcw(Wsle@W#n_1RH!Mtg0A*#z%qL@rCx4`g_HBz8W_b3sI#fOLTjX!Sk&^ zFoH7|Q39`p2Og(N2Zyr&$LEvq3F`mQ#F$N8LN#QlP0he09kjD^?Zc4njtqFK;d6;_ zPNyO0fef?}K`fk#2J)PTxYT|sVbXG4iw^^vpp74L{UOl!s%%Ob3r-&R3OXY^_i}f= zXMktG_n8gt@LTBIUF+|eZ55D4a-?d3D6Wx~Dbhow2_1fs zaLO%mh zTTm;9d^=uE=i_1>(iOzS*;aQE1*R*w6bfQbrgA^sI~$*NxY<&VOKi5&Jrh5C>rRYL JKgUIz{Q{K0;&1=} literal 0 HcmV?d00001 diff --git a/Source/Base/BaseD10.rc b/Source/Base/BaseD10.rc new file mode 100644 index 0000000..d9bfd1d --- /dev/null +++ b/Source/Base/BaseD10.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "2.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Base/BaseD10.res b/Source/Base/BaseD10.res new file mode 100644 index 0000000000000000000000000000000000000000..45dc55f7e508c2aadceb4f8bfc5080153c1b52cf GIT binary patch literal 4748 zcmbW5&1)oO5XLJepe&2#;C*uNAUVh=d+&(4um?YIom`vX7lLeHS8qb+Kbagvr2mJd z=PWtqD9j$byGIXV`~0fj>YkZQVq!y0y&v_~^Hja{zSFds*@2|*L)2V*e%;UcUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1kx1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8r6~2;>lIU&LZsTwze(H0n{VM+hwDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BZ13A6`$Y1AeJY*L>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDUkC$M)E2{eEPhtM$kcYR7x1HqZ0DKmWm>*(=^pU6tOR?fGo!x;ppY z$M%CgweReSeQOV;zqhaD`H6jFr<(uCZKjH9stBj{KpbE+wb$e??T@wQsXf!`Q?2BA z&)$(uifIk@pULXfzOoDW%RDv?HJW^XAbvoADzBGhMMej=|U KhkN(`*!vewsZSLE literal 0 HcmV?d00001 diff --git a/Source/Base/uBizInformesBase.pas b/Source/Base/uBizInformesBase.pas new file mode 100644 index 0000000..3a96c41 --- /dev/null +++ b/Source/Base/uBizInformesBase.pas @@ -0,0 +1,14 @@ +unit uBizInformesBase; + +interface + +type + IBizInformesAware = interface + ['{98AD6541-199F-4155-B394-ED0316298759}'] + procedure Preview; + procedure Print; + end; + +implementation + +end. diff --git a/Source/Base/uConfigurarConexion.dfm b/Source/Base/uConfigurarConexion.dfm new file mode 100644 index 0000000..5a266e8 --- /dev/null +++ b/Source/Base/uConfigurarConexion.dfm @@ -0,0 +1,113 @@ +object fConfigurarConexion: TfConfigurarConexion + Left = 663 + Top = 468 + ActiveControl = edtServer + AutoScroll = False + Caption = 'Configuraci'#243'n de la conexi'#243'n' + ClientHeight = 149 + ClientWidth = 392 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object bProbar: TButton + Left = 8 + Top = 113 + Width = 121 + Height = 25 + Caption = '&Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 97 + Caption = 'Servidor' + TabOrder = 0 + DesignSize = ( + 375 + 97) + object Label1: TLabel + Left = 18 + Top = 28 + Width = 97 + Height = 13 + Caption = 'Nombre del servidor:' + end + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object edtServer: TEdit + Left = 136 + Top = 24 + Width = 223 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPort: TEdit + Left = 136 + Top = 56 + Width = 108 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 1 + Text = '8099' + end + end + object bAceptar: TButton + Left = 219 + Top = 113 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 2 + end + object bCancelar: TButton + Left = 307 + Top = 113 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 3 + end + object HTTPChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'AdminPV' + TargetURL = 'http://localhost:8099/BIN' + Left = 120 + Top = 112 + end + object ROBinMessage: TROBinMessage + Left = 152 + Top = 112 + end + object CoService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage + Channel = HTTPChannel + Left = 184 + Top = 112 + end +end diff --git a/Source/Base/uConfigurarConexion.pas b/Source/Base/uConfigurarConexion.pas new file mode 100644 index 0000000..035d05a --- /dev/null +++ b/Source/Base/uConfigurarConexion.pas @@ -0,0 +1,74 @@ +unit uConfigurarConexion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, + uROServiceComponent, uRORemoteService, uROBinMessage; + +type + TfConfigurarConexion = class(TForm) + bProbar: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + edtServer: TEdit; + edtPort: TEdit; + bAceptar: TButton; + bCancelar: TButton; + HTTPChannel: TROWinInetHTTPChannel; + ROBinMessage: TROBinMessage; + CoService: TRORemoteService; + procedure bProbarClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + function GetTargetURL: String; + procedure SetTargetURL(const Value: String); + { Private declarations } + public + property TargetURL : String read GetTargetURL write SetTargetURL; + end; + +var + fConfigurarConexion: TfConfigurarConexion; + +implementation + +uses + StrUtils, JclStrings, uDataModuleBase, VARELA_Intf; + +{$R *.dfm} + +{ TfConfigurarConexion } + +function TfConfigurarConexion.GetTargetURL: String; +begin + Result := 'http://' + edtServer.Text + ':' + edtPort.Text + '/bin'; +end; + +procedure TfConfigurarConexion.SetTargetURL(const Value: String); +var + s : String; +begin + s := StrAfter('http://', Value); + s := StrBefore(':', s); + edtServer.Text := s; + + s := StrAfter(edtServer.Text + ':', Value); + s := StrBefore('/bin', s); + edtPort.Text := s; +end; + +procedure TfConfigurarConexion.bProbarClick(Sender: TObject); +begin + if dmBase.HayConexion(TargetURL) then + Application.MessageBox('Conexión válida con el servidor.', 'Información', MB_OK); +end; + +procedure TfConfigurarConexion.FormCreate(Sender: TObject); +begin + HTTPChannel.OnFailure := dmBase.ROChannelFailure; +end; + +end. diff --git a/Source/Base/uDBSelectionList.pas b/Source/Base/uDBSelectionList.pas new file mode 100644 index 0000000..b5b88b8 --- /dev/null +++ b/Source/Base/uDBSelectionList.pas @@ -0,0 +1,183 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDBSelectionList; + +interface + +uses + Classes, DB, cxGridTableView, uDADataTable, uIntegerList, cxGridCustomView; + +type + TRecID = Integer; + TSelectedRowList = class; + + ISelectedRowList = interface + ['{1886B04A-DB0D-40AE-BCAE-DA57CD4CD582}'] + function GetSelectedRows : TSelectedRowList; + property SelectedRows : TSelectedRowList read GetSelectedRows; + end; + + TSelectedRowList = class + private + FDataTable: TDADataTable; + FListRecID : TIntegerList; + function GetCount: Integer; + function GetCurrentRowSelected: Boolean; + function GetItem(Index: Integer): TRecID; + procedure SetCurrentRowSelected(Value: Boolean); + protected + function CurrentRow: TRecID; + function Compare(const Item1, Item2: TRecID): Boolean; + public + constructor Create(ADataTable : TDADataTable); + destructor Destroy; override; + procedure Clear; // free all bookmarks + function Find(const Item: TRecID; var Index: Integer): Boolean; + function IndexOf(const Item: TRecID): Integer; + property Count: Integer read GetCount; + property CurrentRowSelected: Boolean read GetCurrentRowSelected + write SetCurrentRowSelected; + property Items[Index: Integer]: TRecID read GetItem; default; + function LocateItem(const Index : Integer) : Boolean; + end; + + + procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; + var ASelectedRowList : ISelectedRowList); + + +implementation + +uses + DBConsts, cxGridCustomTableView, cxControls, Math, Variants, Dialogs; + +{ TSelectedRowList } + +constructor TSelectedRowList.Create(ADataTable : TDADataTable); +begin + inherited Create; + FListRecID := TIntegerList.Create; + + FDataTable := ADataTable; +end; + +destructor TSelectedRowList.Destroy; +begin + Clear; + FListRecID.Free; + FDataTable := NIL; + inherited Destroy; +end; + +procedure TSelectedRowList.Clear; +begin + if FListRecID.Count = 0 then + Exit; + FListRecID.Clear; +end; + +function TSelectedRowList.Compare(const Item1, Item2: TRecID): Boolean; +begin + Result := (Item1 = Item2); +end; + +function TSelectedRowList.CurrentRow: TRecID; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.RecIDValue; +end; + +function TSelectedRowList.GetCurrentRowSelected: Boolean; +var + Index: Integer; +begin + Result := Find(CurrentRow, Index); +end; + +function TSelectedRowList.Find(const Item: TRecID; var Index: Integer): Boolean; +begin + Result := FListRecID.Find(Item, Index) +end; + +function TSelectedRowList.GetCount: Integer; +begin + Result := FListRecID.Count; +end; + +function TSelectedRowList.GetItem(Index: Integer): TRecID; +begin + Result := FListRecID.Integers[Index]; +end; + +function TSelectedRowList.IndexOf(const Item: TRecID): Integer; +var + AIndex : Integer; +begin + Result := -1; + if FListRecID.Find(Item, AIndex) then + Result := AIndex +end; + +procedure TSelectedRowList.SetCurrentRowSelected(Value: Boolean); +var + Index: Integer; + Current: TRecID; +begin + Current := CurrentRow; + if (Find(Current, Index) = Value) then + Exit; + if Value then + FListRecID.Add(Current) + else + FListRecID.Delete(Index); +end; + + + +procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; + var ASelectedRowList : ISelectedRowList); +var + ADataTable : TDADataTable; + ABookmark : Pointer; + ARecord: TcxCustomGridRecord; + i : Integer; +begin + ADataTable := ASelectedRowList.SelectedRows.FDataTable; + AView.BeginUpdate; + ShowHourglassCursor; + ABookmark := ADataTable.GetBookMark; + try + ASelectedRowList.SelectedRows.Clear; + for i := 0 to TcxCustomGridTableController(AView.Controller).SelectedRecordCount-1 do + begin + ARecord := TcxCustomGridTableController(AView.Controller).SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + ASelectedRowList.SelectedRows.CurrentRowSelected := True; + end; + end; + ADataTable.GotoBookmark(ABookmark); + finally + AView.EndUpdate; + ADataTable.FreeBookmark(ABookmark); + HideHourglassCursor; + end; +end; + + +function TSelectedRowList.LocateItem(const Index: Integer) : Boolean; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.Locate('RecID', Items[Index], []); +end; + +end. diff --git a/Source/Base/uDataModuleBase.dfm b/Source/Base/uDataModuleBase.dfm new file mode 100644 index 0000000..5f633ba --- /dev/null +++ b/Source/Base/uDataModuleBase.dfm @@ -0,0 +1,1660 @@ +object dmBase: TdmBase + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 352 + Width = 518 + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011F4944415478DA + 63FCFFFF3F03258091620390394975ABC1A6BD79FB8561D3D4444642E220CB31 + 0C985113C8A0E6D6C4F0E040132321711403408A40367CFCF28DE1E1C3970C7A + DA8A60DB708963350064CBF6938F18966C3EC770FAD425B06DB8C409BA000440 + B68908F330A08B631800D23CB73184E1D9CB4F0C775EFD6598B2641FD8A68208 + 2F864BCF1E33A0CB71BF7AC2B0604101380619571EBDFB7FE7CE730CD9518E60 + D3F79CB8C770E6DA23B0013017609373501062983F3F9F111E4820F0F8C52730 + FDFEED5B30CDC2FC91C1CEDA860197FCFDFD8D8CF040DA77EE39C395DBAF182E + DF7DC370F0C051ACD188AE66901A70F2F27D94B8C666004C0DDC801F3F7F323C + 7DF191E1D78F9F0CCF5F7E40896B9801D8D4800DA0343702001BEF6EF0E3CC7C + BD0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002234944415478DA + A5934F4814511CC7BF6BBAB0AD97225B2A2B4B88ECB014861241ED2190FE9017 + 2D15843A74E8E0A14D3282608935920E092D7A10A44C25A843497FEDA0EB422D + 2DE6A2F647ADA5C542A6DD76DB6CC79979F3DE34F3CA99C4BAB40F1EEF0DEF7D + 3FDFEFFC783F9BA669C865D8EE0FBDCE89C001473D3BF8473631861FB36FF9BE + 7063199C45BBCC8B4C4FAAAA0C44A5E6ACAA3F67010CF19748000BDF0984440A + C2FC1CF61F0F605DE91EA894E17CAFB2C4B9246F18DD7D03BF0087F76E46FCB9 + 1FDF3EC640A97EAA5164321924A5146A5A22A6A391C0E971724097F7B1053858 + B90633835E40B461A5C38115A010B322C6E2D3A83E1BE6E24B7781D676070A1A + 9A40FAAFA3270A74569D5E04B8F039E4835D96757740210A24710173EA6A941F + BBC69D676E3BF169EB3892E37DC86B6EE3294C805103E1553FB21F9EE800BD58 + 84605E54C04AAA515A51CBC5EE230108D38F7073A402EB7D3EC83D7FFC820108 + C506111BEEC07666D713C81895800DBB1BB0E94D9D2936668DBF180F9E85118A + 4C5880E23205CD431791FA1AC749D70130C2702B1944A73DBA4CECA96BE5F12B + DD6B2D4098DEC1C3A91148ABD228CC1640AF223A94977F7526BFDFC2E8C43B0B + 7043F023369B002D92A0E48BF0CA67B09334C2B5EDD032E7C5B1244153B016E9 + B4601E5E75B7E344633DA2DDF95C3CF0F40577A54CE32BD3D7C9A9F716605FF9 + 16F4DE0B9A80B60BA7CC7DCBE5AE7FF68109F05D09FC7F33E5DACE3F0109DB53 + BED36F80890000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 24 + Top = 16 + Bitmap = {} + end + object TBXSwitcher: TTBXSwitcher + Theme = 'Default' + Left = 24 + Top = 80 + end + object StyleManager: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -13 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -13 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [fsBold] + Theme = nptCustom + Left = 104 + Top = 80 + end + object ROChannel: TROWinInetHTTPChannel + OnFailure = ROChannelFailure + OnException = ROChannelFailure + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Login.Username = 'zvg' + Login.Password = 'zeus' + KeepConnection = True + OnProgress = ROChannelProgress + ServerLocators = <> + DispatchOptions = [] + Left = 330 + Top = 24 + end + object cxIntl: TcxIntl + Connected = True + cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' + PageControl2.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' + PageControl2.NoBaseImages = 'BaseImages no est'#225' asignado' + PageControl2.NoRegisteredStyles = 'No hay estilos registrados' + PageControl2.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' + PageControl2.PainterClassError = 'La clase PCPainter es nula' + PageControl2.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' + PageControl2.StyleNameError = '%s es un nombre de estilo no registrado' + PageControl2.TabCountEqualsZero = 'Tabs.Count = 0' + PageControl2.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' + PageControl2.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' + PageControl2.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' + QuantumGrid5.GridRecursiveLevels = 'No se pueden crear niveles recursivos' + QuantumGrid5.GridDeletingConfirmationCaption = 'Confirmar' + QuantumGrid5.GridDeletingFocusedConfirmationText = #191'Borrar registro?' + QuantumGrid5.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' + QuantumGrid5.GridNoDataInfoText = '' + QuantumGrid5.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' + QuantumGrid5.GridFilterIsEmpty = '' + QuantumGrid5.GridCustomizationFormCaption = 'Personalizaci'#243'n' + QuantumGrid5.GridCustomizationFormColumnsPageCaption = 'Columnas' + QuantumGrid5.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' + QuantumGrid5.GridFilterCustomizeButtonCaption = 'Personalizar...' + QuantumGrid5.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' + QuantumGrid5.GridCustomizationFormBandsPageCaption = 'Bandas' + QuantumGrid5.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' + QuantumGrid5.GridCustomizationFormRowsPageCaption = 'Rows' + QuantumGrid5.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' + QuantumGrid5.GridConverterNotExistGrid = 'cxGrid no existe' + QuantumGrid5.GridConverterNotExistComponent = 'El componente no existe' + QuantumGrid5.ImportErrorCaption = 'Error al importar' + QuantumGrid5.NotExistGridView = 'No existe la vista del grid' + QuantumGrid5.NotExistGridLevel = 'No existe un nivel de grid activo' + QuantumGrid5.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' + QuantumGrid5.EditRepositoryExtLookupComboBoxItem = + 'ExtLookupComboBox|Representa un ultra avanzado control de busque' + + 'da (lookup) usando el QuantumGrid como su control de despliegue' + Navigator.NavigatorHint_First = 'Primer registro' + Navigator.NavigatorHint_Prior = 'Registro anterior' + Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior' + Navigator.NavigatorHint_Next = 'Siguiente registro' + Navigator.NavigatorHint_NextPage = 'Siguiente p'#225'gina' + Navigator.NavigatorHint_Last = #218'ltimo registro' + Navigator.NavigatorHint_Insert = 'Insertar registro' + Navigator.NavigatorHint_Delete = 'Borrar registro' + Navigator.NavigatorHint_Edit = 'Editar registro' + Navigator.NavigatorHint_Post = 'Grabar edici'#243'n' + Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n' + Navigator.NavigatorHint_Refresh = 'Actualizar datos' + Navigator.NavigatorHint_SaveBookmark = 'Guardar Marca' + Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca' + Navigator.NavigatorHint_Filter = 'Filtrar datos' + Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?' + Editors5.EditDateConvertError = 'El valor no se puede convertir a fecha' + Editors5.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' + Editors5.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' + Editors5.EditPopupCircularReferencingError = 'Referencia circular no permitida' + Editors5.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' + Editors5.EditTimeConvertError = 'No se puede convertir a valor de tiempo' + Editors5.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' + Editors5.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' + Editors5.EditCheckBoxChecked = 'True' + Editors5.EditCheckBoxUnchecked = 'False' + Editors5.TextTrue = 'True' + Editors5.TextFalse = 'False' + Editors5.BlobButtonOK = '&Aceptar' + Editors5.BlobButtonCancel = '&Cancelar' + Editors5.BlobButtonClose = '&Cerrar' + Editors5.BlobMemo = '(MEMO)' + Editors5.BlobMemoEmpty = '(memo)' + Editors5.BlobPicture = '(IM'#193'GEN)' + Editors5.BlobPictureEmpty = '(im'#225'gen)' + Editors5.MenuItemCaptionCut = 'Cor&tar' + Editors5.MenuItemCaptionCopy = '&Copiar' + Editors5.MenuItemCaptionPaste = '&Pegar' + Editors5.MenuItemCaptionDelete = '&Borrar' + Editors5.MenuItemCaptionLoad = '&Leer...' + Editors5.MenuItemCaptionSave = 'Guardar &Como...' + Editors5.DatePopupClear = 'Limpiar' + Editors5.DatePopupNow = 'Ahora' + Editors5.DatePopupOK = 'Aceptar' + Editors5.DatePopupToday = 'Hoy' + Editors5.DateError = 'Fecha inv'#225'lida' + Editors5.DateToday = 'hoy' + Editors5.DateYesterday = 'ayer' + Editors5.DateTomorrow = 'ma'#241'ana' + Editors5.DateSunday = 'Domingo' + Editors5.DateMonday = 'Lunes' + Editors5.DateTuesday = 'Martes' + Editors5.DateWednesday = 'Mi'#233'rcoles' + Editors5.DateThursday = 'Jueves' + Editors5.DateFriday = 'Viernes' + Editors5.DateSaturday = 'S'#225'bado' + Editors5.DateFirst = 'Primero' + Editors5.DateSecond = 'segundo' + Editors5.DateThird = 'tercero' + Editors5.DateFourth = 'Cuarto' + Editors5.DateFifth = 'Quinto' + Editors5.DateSixth = 'sexto' + Editors5.DateSeventh = 's'#233'ptimo' + Editors5.DateBOM = 'bom' + Editors5.DateEOM = 'eom' + Editors5.DateNow = 'ahora' + Editors5.CalcError = 'Error' + Editors5.HyperLinkPrefix = 'http://' + Editors5.HyperLinkDoubleSlash = '//' + Editors5.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' + Editors5.EditRepositoryButtonItem = + 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + + 'tados' + Editors5.EditRepositoryCalcItem = + 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + + 'culadora desplegable' + Editors5.EditRepositoryCheckBoxItem = + 'CheckBox|Representa un control de caja de marca que permite sele' + + 'ccionar una opci'#243'n' + Editors5.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' + Editors5.EditRepositoryCurrencyItem = + 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + + 'ores monetarios' + Editors5.EditRepositoryDateItem = + 'DateEdit|Representa un control de edici'#243'n con un calendario desp' + + 'legable' + Editors5.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' + Editors5.EditRepositoryImageComboBoxItem = + 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + + 'enes y texto en la ventana desplegable' + Editors5.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' + Editors5.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' + Editors5.EditRepositoryMemoItem = + 'Memo|Representa un control de edici'#243'n que permite editar datos m' + + 'emo' + Editors5.EditRepositoryMRUItem = + 'MRUEdit|Representa un editor de texto mostrando la lista de los ' + + 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + + 'ble' + Editors5.EditRepositoryPopupItem = + 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + + 'able' + Editors5.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' + Editors5.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' + Editors5.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' + Editors5.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' + Editors5.RegExprLine = 'L'#237'nea' + Editors5.RegExprChar = 'Char' + Editors5.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' + Editors5.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' + Editors5.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' + Editors5.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' + Editors5.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 + Editors5.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 + Editors5.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' + Editors5.RegExprIllegalIntegerValue = 'Valor entero no permitido' + Editors5.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' + Editors5.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' + Editors5.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' + Editors5.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' + Editors5.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 + Editors5.RegExprMissing = 'Falta '#39'%s'#39 + Editors5.RegExprUnnecessary = 'Innecesario '#39'%s'#39 + Editors5.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 + Editors5.RegExprNotCompiled = 'Expresi'#243'n regular no compila' + Editors5.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' + Editors5.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' + Editors5.MaskEditRegExprError = 'Errores en expresiones regulares:' + Editors5.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' + Editors5.MaskEditNoMask = 'Ninguno' + Editors5.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' + Editors5.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' + Editors5.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' + Editors5.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido' + Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos' + Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)' + Datacontroller.DataItemExistError = 'El elemento ya existe' + Datacontroller.DataRecordIndexError = #205'ndice de registro fuera de rango' + Datacontroller.DataItemIndexError = #205'ndice de elemento fuera de rango' + Datacontroller.DataProviderModeError = 'La operaci'#243'n no es soportada en modo de proveedor (provider)' + Datacontroller.DataInvalidStreamFormat = 'Origen de datos (Stream) inv'#225'lido' + Datacontroller.DataRowIndexError = #205'ndice del elemento de fila fuera de rango' + Datacontroller.DataCustomDataSourceInvalidCompare = 'Instrucci'#243'n GetInfoForCompare no implementada' + Datacontroller.DBDetailFilterControllerNotFound = 'DetailFilterController no encontrado' + Datacontroller.DBNotInGridMode = 'La controladora de datos no est'#225' en modo de Grid' + Datacontroller.DBKeyFieldNotFound = 'Campo llave no encontrado' + Filter.FilterOperatorEqual = 'igual' + Filter.FilterOperatorNotEqual = 'no es igual' + Filter.FilterOperatorLess = 'es menor que' + Filter.FilterOperatorLessEqual = 'es menor o igual que' + Filter.FilterOperatorGreater = 'es mayor que' + Filter.FilterOperatorGreaterEqual = 'es mayor o igual que' + Filter.FilterOperatorLike = 'como' + Filter.FilterOperatorNotLike = 'no es como' + Filter.FilterOperatorBetween = 'entre' + Filter.FilterOperatorNotBetween = 'no entre' + Filter.FilterOperatorInList = 'en' + Filter.FilterOperatorNotInList = 'no en' + Filter.FilterOperatorYesterday = 'es ayer' + Filter.FilterOperatorToday = 'es hoy' + Filter.FilterOperatorTomorrow = 'es ma'#241'ana' + Filter.FilterOperatorLastWeek = 'es '#250'ltima semana' + Filter.FilterOperatorLastMonth = 'es '#250'ltimo mes' + Filter.FilterOperatorLastYear = 'es a'#241'o pasado' + Filter.FilterOperatorThisWeek = 'es esta semana' + Filter.FilterOperatorThisMonth = 'es este mes' + Filter.FilterOperatorThisYear = 'es este a'#241'o' + Filter.FilterOperatorNextWeek = 'es semana siguiente' + Filter.FilterOperatorNextMonth = 'es mes siguiente' + Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo' + Filter.FilterAndCaption = 'y' + Filter.FilterOrCaption = 'o' + Filter.FilterNotCaption = 'no' + Filter.FilterBlankCaption = 'vac'#237'o' + Filter.FilterOperatorIsNull = 'es vac'#237'o' + Filter.FilterOperatorIsNotNull = 'no es vac'#237'o' + Filter.FilterOperatorBeginsWith = 'comienza con' + Filter.FilterOperatorDoesNotBeginWith = 'no comienza con' + Filter.FilterOperatorEndsWith = 'termina con' + Filter.FilterOperatorDoesNotEndWith = 'no termina con' + Filter.FilterOperatorContains = 'contiene' + Filter.FilterOperatorDoesNotContain = 'no contiene' + Filter.FilterBoxAllCaption = '(Todos)' + Filter.FilterBoxCustomCaption = '(Personalizado...)' + Filter.FilterBoxBlanksCaption = '(Vac'#237'os)' + Filter.FilterBoxNonBlanksCaption = '(No vac'#237'os)' + Filter.FilterBoolOperatorAnd = 'AND' + Filter.FilterBoolOperatorOr = 'OR' + Filter.FilterBoolOperatorNotAnd = 'NOT AND' + Filter.FilterBoolOperatorNotOr = 'NOT OR' + Filter.FilterRootButtonCaption = 'Filtro' + Filter.FilterAddCondition = 'Agregar &Condici'#243'n' + Filter.FilterAddGroup = 'Agregar &Grupo' + Filter.FilterRemoveRow = '&Remover Fila' + Filter.FilterClearAll = 'Limpiar &Todo' + Filter.FilterFooterAddCondition = 'Agregar una nueva condici'#243'n' + Filter.FilterGroupCaption = 'aplica a las siguientes condiciones' + Filter.FilterRootGroupCaption = '' + Filter.FilterControlNullString = '' + Filter.FilterErrorBuilding = 'No se puede construir filtro desde el or'#237'gen' + Filter.FilterDialogCaption = 'Filtro Personalizado' + Filter.FilterDialogInvalidValue = 'Valor inv'#225'lido' + Filter.FilterDialogUse = 'Usar' + Filter.FilterDialogSingleCharacter = 'para representar un caracter sencillo' + Filter.FilterDialogCharactersSeries = 'para representar cualquier serie de caracteres' + Filter.FilterDialogOperationAnd = 'Y' + Filter.FilterDialogOperationOr = 'O' + Filter.FilterDialogRows = 'Mostrar filas donde:' + Filter.FilterControlDialogCaption = 'Constructor de Filtro' + Filter.FilterControlDialogNewFile = 'sinnombre.flt' + Filter.FilterControlDialogOpenDialogCaption = 'Abrir un filtro existente' + Filter.FilterControlDialogSaveDialogCaption = 'Grabar el filtro activo a archivo' + Filter.FilterControlDialogActionSaveCaption = '&Guardar...' + Filter.FilterControlDialogActionOpenCaption = '&Abrir...' + Filter.FilterControlDialogActionApplyCaption = '&Aplicar' + Filter.FilterControlDialogActionOkCaption = 'Aceptar' + Filter.FilterControlDialogActionCancelCaption = 'Cancelar' + Filter.FilterControlDialogFileExt = 'flt' + Filter.FilterControlDialogFileFilter = 'Filtros (*.flt)|*.flt' + GridPopupMenu.GridNone = 'Ninguno' + GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente' + GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente' + GridPopupMenu.GridClearSorting = 'Clear Sorting' + GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo' + GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo' + GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"' + GridPopupMenu.GridAlignmentSubMenu = 'Alineaci'#243'n' + GridPopupMenu.GridAlignLeft = 'Alineaci'#243'n Izquierda' + GridPopupMenu.GridAlignRight = 'Alineaci'#243'n Derecha' + GridPopupMenu.GridAlignCenter = 'Alineaci'#243'n Centrada' + GridPopupMenu.GridRemoveColumn = 'Remover esta columna' + GridPopupMenu.GridFieldChooser = 'Selector de campos' + GridPopupMenu.GridBestFit = 'Mejor distribuci'#243'n' + GridPopupMenu.GridBestFitAllColumns = 'Mejor distribuci'#243'n (Todas las columnas)' + GridPopupMenu.GridShowFooter = 'Pie' + GridPopupMenu.GridShowGroupFooter = 'Pies de grupo' + GridPopupMenu.GridSumMenuItem = 'Sumar' + GridPopupMenu.GridMinMenuItem = 'M'#237'nimo' + GridPopupMenu.GridMaxMenuItem = 'M'#225'ximo' + GridPopupMenu.GridCountMenuItem = 'Contar' + GridPopupMenu.GridAvgMenuItem = 'Promedio' + GridPopupMenu.GridNoneMenuItem = 'Ninguno' + GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1' + GridExport.StyleManagerKill = + 'El administrador de estilo esta siendo utilizado y no puede ser ' + + 'liberado en este momento' + GridExport.StyleManagerCreate = 'No se puede crear administrador de estilo' + GridExport.ExportToHtml = 'Exportar a p'#225'gina Web (*.html)' + GridExport.ExportToXml = 'Exportar a documento XML (*.xml)' + GridExport.ExportToText = 'Exportar a formato de texto (*.txt)' + GridExport.EmptyExportCache = 'Cache de exportaci'#243'n vac'#237'o' + GridExport.IncorrectUnion = 'Uni'#243'n de celdas incorrecta' + GridExport.IllegalWidth = 'Ancho de columna ilegal' + GridExport.InvalidColumnRowCount = 'Conteo de columna o fila inv'#225'lido' + GridExport.IllegalHeight = 'Alto de fila ilegal' + GridExport.InvalidColumnIndex = 'El '#237'ndice de columna %d fuera de l'#237'mites' + GridExport.InvalidRowIndex = 'El '#237'ndice de fila %d est'#225' fuera de l'#237'mites' + GridExport.InvalidStyleIndex = #205'ndice de estilo %d inv'#225'lido' + GridExport.ExportToExcel = 'Exportar a MS Excel (*.xls)' + GridExport.WorkbookWrite = 'Error al escribir el archivo XLS' + GridExport.InvalidCellDimension = 'Dimensi'#243'n de celda inv'#225'lida' + GridExport.BoolTrue = 'True' + GridExport.BoolFalse = 'False' + Translate.cxLibrary = True + Translate.PageControl2 = False + Translate.QuantumGrid5 = True + Translate.Editors5 = True + Translate.Datacontroller = True + Translate.Filter = True + Translate.GridPopupMenu = True + Translate.GridExport = True + Translate.Navigator = True + Version = '5.0' + Left = 104 + Top = 16 + end + object cxIntlPrintSys3: TcxIntlPrintSys3 + Connected = True + Version = '3.0' + BtnOK = 'Aceptar' + BtnOKAccelerated = '&Aceptar' + BtnCancel = 'Cancelar' + BtnClose = 'Cerrar' + BtnApply = '&Aplicar' + BtnHelp = 'A&yuda' + BtnFix = '&Arreglar' + BtnNew = '&Nuevo...' + BtnIgnore = '&Ignorar' + BtnYes = '&S'#237 + BtnNo = '&No' + BtnEdit = '&Editar...' + BtnReset = '&Restaurar' + BtnAdd = '&A'#241'adir' + BtnAddComposition = 'A'#241'adir &Comparativa' + BtnDefault = '&Defecto...' + BtnDelete = '&Borrar...' + BtnDescription = '&Descripci'#243'n...' + BtnCopy = '&Copiar...' + BtnYesToAll = 'S'#237' a &Todos' + BtnRestoreDefaults = '&Rest.Defecto' + BtnRestoreOriginal = 'Restaurar &Original' + BtnTitleProperties = 'Prop. del T'#237'tulo...' + BtnProperties = 'P&ropiedades...' + BtnNetwork = 'R&ed...' + BtnBrowse = '&Hojear...' + BtnPageSetup = 'Config. P'#225'&gina...' + BtnPrintPreview = 'Vista Pre&via...' + BtnPreview = '&Ver...' + BtnPrint = 'Imprimir...' + BtnOptions = '&Opciones...' + BtnStyleOptions = 'Opciones de estilo...' + BtnDefinePrintStyles = '&Definir Estilos...' + BtnPrintStyles = 'Estilos de Imp.' + BtnBackground = 'Fondo' + BtnShowToolBar = 'Mostrar &Herramientas' + BtnDesign = 'D&ise'#241'o...' + BtnMoveUp = 'Mover &Arriba' + BtnMoveDown = 'Mover Aba&jo' + BtnMoreColors = '&M'#225's Colores...' + BtnFillEffects = 'Efectos de &Relleno...' + BtnNoFill = '&Sin Relleno' + BtnAutomatic = '&Autom'#225'tico' + BtnNone = '&Ninguno' + BtnOtherTexture = 'Otras Te&xturas...' + BtnInvertColors = 'I&nvertir Colores' + BtnSelectPicture = 'Se&leccionar Imagen...' + EditReports = 'Editar Informes' + Composition = 'Composici'#243'n' + ReportTitleDlgCaption = 'T'#237'tulo del Informe' + Mode = '&Modo:' + Text = '&Texto' + Properties = '&Propiedades' + AdjustOnScale = '&Ajustar Escala' + TitleModeNone = 'Ninguno' + TitleModeOnEveryTopPage = 'En Cada P'#225'gina' + TitleModeOnFirstPage = 'En Primera P'#225'gina' + EditDescription = 'Editar Descripci'#243'n' + Rename = 'Reno&mbrar' + SelectAll = 'Seleccionar Todo' + AddReport = 'A'#241'adir Informe' + AddAndDesignReport = 'A'#241'adir y D&ise'#241'ar Informe...' + NewCompositionCaption = 'Nueva Composici'#243'n' + Name0 = '&Nombre:' + Caption = '&T'#237'tulo:' + AvailableSources = '&Fuente(s) Disponible(s)' + OnlyComponentsInActiveForm = 'S'#243'lamente Componentes en Formulario &Activo' + OnlyComponentsWithoutLinks = 'S'#243'lamente Componentes &sin Enlaces Existentes' + ItemName = 'Nombre' + ItemDescription = 'Descripci'#243'n' + ConfirmDeleteItem = 'Quiere borrar los siguientes elementos: %s ?' + AddItemsToComposition = 'A'#241'adir Elementos a la Composici'#243'n' + HideAlreadyIncludedItems = 'Ocultar Elementos Ya &Incluidas' + AvailableItems = 'Elementos D&isponibles' + Items = '&Elementos' + Enable = '&Habilitar' + Options = 'Opciones' + Show = 'Mostrar' + PaintItemsGraphics = '&Pintar Elementos Gr'#225'ficos' + Description = 'Descripci'#243'n:' + NewReport = 'Nuevo Informe' + OnlySelected = 'S'#243'lo &Seleccionados' + ExtendedSelect = 'Selecci'#243'n &Extendida' + IncludeFixed = '&Incluir Fijos' + Fonts = 'Fuentes' + BtnFont = 'Fue&nte...' + BtnEvenFont = 'Fuente &Par...' + BtnOddFont = 'Fuente &Impar...' + BtnFixedFont = 'Fuente F&ijo...' + BtnGroupFont = 'Fuente de Gru&po...' + BtnChangeFont = 'Cambiar Fue&nte...' + Font = 'Fuente' + OddFont = 'Fuente Impar' + EvenFont = 'Fuente Par' + PreviewFont = 'Fuente Vista Prev.' + CaptionNodeFont = 'Fuente T'#237'tulo del Nivel' + GroupNodeFont = 'Fuente T'#237'tulos de Grupo' + GroupFooterFont = 'Fuente Pies de Grupo' + HeaderFont = 'Fuente Cabecera' + FooterFont = 'Fuente Pie' + BandFont = 'Fuente Groups' + Transparent = '&Transparente' + FixedTransparent = 'Transparente Fijo' + CaptionTransparent = 'T'#237'tulo Transparente' + GroupTransparent = 'Grupo Transparente' + GraphicAsTextValue = '(GRAPHIC)' + Colors = 'Colores' + Color = 'Co&lor:' + OddColor = 'Co&lor Impar:' + EvenColor = 'Color Par:' + PreviewColor = 'Color V.&Previa:' + BandColor = 'Color &Grupos:' + LevelCaptionColor = 'Color T'#237'tulo Ni&vel:' + HeaderColor = 'Color Cab&ecera:' + GroupNodeColor = 'Color &Nodo Grupo:' + GroupFooterColor = 'Color Pie &Grupo:' + FooterColor = 'Color P&ie:' + FixedColor = 'Color F&ijo:' + GroupColor = 'Color Gru&po:' + CaptionColor = 'Color T'#237'tulo:' + GridLinesColor = 'Color L'#237'nea &Rejilla:' + Bands = '&Grupos' + LevelCaptions = 'T'#237'tulo Niveles' + Headers = 'Cab&eceras' + Footers = 'P&ies&' + GroupFooters = 'Pies de &Grupos' + Preview = 'Vista Pre&via' + PreviewLineCount = 'N'#250'm.L'#237'neas V.Previa:' + AutoCalcPreviewLineCount = 'A&uto-Calcular L'#237'neas V.Previa' + Grid = 'Re&jilla&' + NodesGrid = '&Nodos de Rejilla' + GroupFooterGrid = 'Rejilla de Gru&pos Pie' + StateImages = 'Imagenes de E&stado' + Images = '&Imagenes' + TextAlign = '&Alineaci'#243'n Texto' + TextAlignHorz = 'Hori&zontal' + TextAlignVert = '&Vertical' + TextAlignLeft = 'Izquierda' + TextAlignCenter = 'Centrado' + TextAlignRight = 'Derecha' + TextAlignTop = 'Superior' + TextAlignVCenter = 'Centrado' + TextAlignBottom = 'Inferior' + BorderLines = 'L'#237'neas de &Borde' + HorzLines = 'L'#237'neas Hori&zontales' + VertLines = 'L'#237'neas &Verticales' + FixedHorzLines = 'L'#237'neas Horizontales Fi&jas' + FixedVertLines = 'L'#237'neas Verticales Fij&as' + FlatCheckMarks = 'Cajas de Verificaci'#243'n P&lanas' + CheckMarksAsText = '&Mostrar Cajas Verificaci'#243'n como Text' + RowAutoHeight = 'Altura &Fila Auto.' + EndEllipsis = '&Puntos Suspens.' + DrawBorder = '&Dibujar Borde' + FullExpand = '&Expandir Todo' + BorderColor = 'Color &Borde:' + AutoNodesExpand = 'Expandir N&odos' + ExpandLevel = 'Expandir &Niveles:' + FixedRowOnEveryPage = 'Filas Fijas en &Cada P'#225'gina' + DrawMode = '&Modo Dibujo:' + DrawModeStrict = 'Estricto' + DrawModeOddEven = 'Modo Filas Par/Impar' + DrawModeChess = 'Modo '#39'Ajedrez'#39 + DrawModeBorrow = 'Prestar de Fuente' + ThreeDEffects = 'Efectos 3D' + Use3DEffects = 'Usar Efectos &3D' + Soft3D = '3D "Suave"' + Behaviors = 'Comportamiento' + Miscellaneous = 'Miscelaneo' + OnEveryPage = 'En Cada P'#225'gina' + NodeExpanding = 'Expansi'#243'n de Nodos' + Selection = 'Selecci'#243'n' + NodeAutoHeight = 'Altura &Nodo Auto.' + TransparentGraphics = 'Gr'#225'ficos &Transparentes' + AutoWidth = 'An&chura Auto.' + DisplayGraphicsAsText = 'Mostrar Gr'#225'fico Como &Texto' + TransparentColumnGraphics = '&Gr'#225'ficos Transparentes' + BandsOnEveryPage = 'Grupos En C&ada P'#225'gina' + HeadersOnEveryPage = 'Cabeceras en Cada &P'#225'gina' + FootersOnEveryPage = 'Pies en Ca&da P'#225'gina' + Graphics = 'Gr'#225'ficos' + OutOfResources = 'Out of Resources' + FileAlreadyExists = 'Fichero "%s" Ya Existe.' + ConfirmOverWrite = 'Fichero "%s" ya existe. '#191'Sobreescribir?' + InvalidFileName = 'Nombre No V'#225'lido "%s"' + RequiredFileName = 'Entrar nombre de fichero.' + OutsideMarginsMessage = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + OutsideMarginsMessage2 = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + InvalidMarginsMessage = 'Uno o m'#225's margenes tiene valores no v'#225'lidos.' + InvalidMargins = 'Uno o m'#225's valores de los margenes no es v'#225'lido' + OutsideMargins = + 'Uno o m'#225's margenes se ha establecido fuera del area de impresi'#243'n' + + ' de la p'#225'gina' + ThereAreNowItemsForShow = 'No existen elementos en '#233'sta vista' + PageBackground = 'Fondo de P'#225'gina' + PenColor = 'Color del L'#225'piz' + FontColor = 'Color del Fuente' + BrushColor = 'Color de la Brocha' + HighLight = 'HighLight' + ColorBlack = 'Negro' + ColorDarkRed = 'Rojo Oscuro' + ColorRed = 'Rojo' + ColorPink = 'Rosa' + ColorRose = 'Rosado' + ColorBrown = 'Marr'#243'n' + ColorOrange = 'Naranja' + ColorLightOrange = 'Naranja Claro' + ColorGold = 'Oro' + ColorTan = 'Dorado' + ColorOliveGreen = 'Verde Oliva' + ColorDrakYellow = 'Amarillo Oscuro' + ColorLime = 'Lima' + ColorYellow = 'Amarillo' + ColorLightYellow = 'Amarillo Claro' + ColorDarkGreen = 'Verde Oscuro' + ColorGreen = 'Verde' + ColorSeaGreen = 'Verde Mar' + ColorBrighthGreen = 'Verde Florecente' + ColorLightGreen = 'Verde Claro' + ColorDarkTeal = 'VerdeAzul Oscuro' + ColorTeal = 'VerdeAzul' + ColorAqua = 'Aqua' + ColorTurquoise = 'Turquesa' + ColorLightTurquoise = 'Turquesa Claro' + ColorDarkBlue = 'Azul Oscuro' + ColorBlue = 'Azul' + ColorLightBlue = 'Azul Claro' + ColorSkyBlue = 'Azul Cielo' + ColorPaleBlue = 'Azul P'#225'lido' + ColorIndigo = 'Indigo' + ColorBlueGray = 'Azul Gris' + ColorViolet = 'Violeta' + ColorPlum = 'Granate' + ColorLavender = 'Lav'#225'nder' + ColorGray80 = 'Gris-80%' + ColorGray50 = 'Gris-50%' + ColorGray40 = 'Gris-40%' + ColorGray25 = 'Gris-25%' + ColorWhite = 'Blanco' + Texture = '&Textura' + Pattern = '&Dibujo' + Picture = '&Im'#225'gen' + Foreground = '&Primer Plano' + Background = '&Fondo' + Sample = 'Ejemplo:' + FEFCaption = 'Efectos de Relleno' + PaintMode = '&Modo Pintar' + PaintModeCenter = 'Centrar' + PaintModeStretch = 'Estirar' + PaintModeTile = 'Mosaico' + PaintModeProportional = 'Proporcional' + PatternGray5 = '5%' + PatternGray10 = '10%' + PatternGray20 = '20%' + PatternGray25 = '25%' + PatternGray30 = '30%' + PatternGray40 = '40%' + PatternGray50 = '50%' + PatternGray60 = '60%' + PatternGray70 = '70%' + PatternGray75 = '75%' + PatternGray80 = '80%' + PatternGray90 = '90%' + PatternLightDownwardDiagonal = 'Light downward diagonal' + PatternLightUpwardDiagonal = 'Light upward diagonal' + PatternDarkDownwardDiagonal = 'Dark downward diagonal' + PatternDarkUpwardDiagonal = 'Dark upward diagonal' + PatternWideDownwardDiagonal = 'Wide downward diagonal' + PatternWideUpwardDiagonal = 'Wide upward diagonal' + PatternLightVertical = 'Light vertical' + PatternLightHorizontal = 'Light horizontal' + PatternNarrowVertical = 'Narrow vertical' + PatternNarrowHorizontal = 'Narrow horizontal' + PatternDarkVertical = 'Dark vertical' + PatternDarkHorizontal = 'Dark horizontal' + PatternDashedDownward = 'Dashed downward' + PatternDashedUpward = 'Dashed upward' + PatternDashedVertical = 'Dashed vertical' + PatternDashedHorizontal = 'Dashed horizontal' + PatternSmallConfetti = 'Small confetti' + PatternLargeConfetti = 'Large confetti' + PatternZigZag = 'Zig zag' + PatternWave = 'Wave' + PatternDiagonalBrick = 'Diagonal brick' + PatternHorizantalBrick = 'Horizontal brick' + PatternWeave = 'Weave' + PatternPlaid = 'Plaid' + PatternDivot = 'Divot' + PatternDottedGrid = 'Dottedgrid' + PatternDottedDiamond = 'Dotted diamond' + PatternShingle = 'Shingle' + PatternTrellis = 'Trellis' + PatternSphere = 'Sphere' + PatternSmallGrid = 'Small grid' + PatternLargeGrid = 'Large grid' + PatternSmallCheckedBoard = 'Small checked board' + PatternLargeCheckedBoard = 'Large checked board' + PatternOutlinedDiamond = 'Outlined diamond' + PatternSolidDiamond = 'Solid diamond' + TextureNewSprint = 'Newsprint' + TextureGreenMarble = 'Green marble' + TextureBlueTissuePaper = 'Blue tissue paper' + TexturePapyrus = 'Papyrus' + TextureWaterDroplets = 'Water droplets' + TextureCork = 'Cork' + TextureRecycledPaper = 'Recycled paper' + TextureWhiteMarble = 'White marble' + TexturePinkMarble = 'Pink marble' + TextureCanvas = 'Canvas' + TexturePaperBag = 'Paper bag' + TextureWalnut = 'Walnut' + TextureParchment = 'Parchment' + TextureBrownMarble = 'Brown marble' + TexturePurpleMesh = 'Purple mesh' + TextureDenim = 'Denim' + TextureFishFossil = 'Fish fossil' + TextureOak = 'Oak' + TextureStationary = 'Stationary' + TextureGranite = 'Granite' + TextureBouquet = 'Bouquet' + TextureWonenMat = 'Woven mat' + TextureSand = 'Sand' + TextureMediumWood = 'Medium wood' + FSPCaption = 'Vista de Im'#225'gen' + Width = 'Altura' + Height = 'Altura' + BrushDlgCaption = 'Propiedades de la Brocha' + Style = 'E&stilo:' + ENFNCaption = 'Escoge Nombre de Fichero' + EnterNewFileName = 'Introduzca Nuevo Nombre de Fichero' + DefinePrintStylesCaption = 'Definir Estilos de Impresi'#243'n' + DefinePrintStylesTitle = 'E&stilos de Impresi'#243'n' + DefinePrintStylesWarningDelete = #191' Desea borrar "%s" ?' + DefinePrintStylesWarningClear = #191'Desea borrar todos los estilos existentes?' + Clear = 'E&liminar...' + CustomSize = 'Tama'#241'o Personalizado' + DefaultTray = 'Bandeja de Entrada' + InvalidPrintDevice = 'La impresora seleccionada no es v'#225'lida' + NotPrinting = 'La impresora no est'#225' imprimiendo' + Printing = 'Imprimiendo' + DeviceOnPort = '%s en %s' + PrinterIndexError = #205'ndice de Impresora fueera de rango' + NoDefaultPrintDevice = 'No hay ninguna impresora seleccionada' + AutoTextDialogCaption = 'Editar Entidades AutoTexto' + EnterAutoTextEntriesHere = 'Entrar Entidades A&utoTexto Aqu'#237':' + PrintDialogCaption = 'Imprimir' + PrintDialogPrinter = 'Impresora' + PrintDialogName = '&Nombre:' + PrintDialogStatus = 'Estado:' + PrintDialogType = 'Tipo:' + PrintDialogWhere = 'D'#243'nde:' + PrintDialogComment = 'Comentario:' + PrintDialogPrintToFile = 'A &Fichero' + PrintDialogPageRange = 'Rango de P'#225'g.' + PrintDialogAll = '&Todas' + PrintDialogCurrentPage = 'P'#225'g. A&ctual' + PrintDialogSelection = '&Selecci'#243'n' + PrintDialogPages = '&P'#225'ginas:' + PrintDialogRangeLegend = 'Entre el n'#250'mero de p'#225'gina o un rango de p'#225'ginas' + PrintDialogCopies = 'Copias' + PrintDialogNumberOfPages = 'N&'#250'mero de P'#225'g.:' + PrintDialogNumberOfCopies = 'N'#250'mero de &Copias:' + PrintDialogCollateCopies = 'In&tercalar Copias' + PrintDialogAllPages = 'Todas' + PrintDialogEvenPages = 'Pares' + PrintDialogOddPages = 'Impares' + PrintDialogPrintStyles = 'Est&ilos Impresi'#243'n' + PrintDialogOpenDlgTitle = 'Elije un Fichero' + PrintDialogOpenDlgAllFiles = 'Todos los Ficheros' + PrintDialogOpenDlgPrinterFiles = 'Ficheros de Impresora' + PrintDialogPageNumbersOutOfRange = 'N'#250'mero de p'#225'gina fuera de rango (%d - %d)' + PrintDialogInvalidPageRanges = 'Rango de p'#225'ginas no v'#225'lido' + PrintDialogRequiredPageNumbers = 'Introduzca n'#250'meros de p'#225'ginas' + PrintDialogNoPrinters = 'No printers are installed.' + PrintDialogInPrintingState = 'La impresora est'#225' ocupado.' + PrintDialogPSPaused = 'Pausado' + PrintDialogPSPendingDeletion = 'Pendiente Borrar' + PrintDialogPSBusy = 'Ocupado' + PrintDialogPSDoorOpen = 'Puerta Abierta' + PrintDialogPSError = 'Error' + PrintDialogPSInitializing = 'Inicializando' + PrintDialogPSIOActive = 'E/S Activo' + PrintDialogPSManualFeed = 'Alimentaci'#243'n Manual' + PrintDialogPSNoToner = 'Toner Terminado' + PrintDialogPSNotAvailable = 'No Disponible' + PrintDialogPSOFFLine = 'Fuera de L'#237'nea' + PrintDialogPSOutOfMemory = 'Memoria Agotada' + PrintDialogPSOutBinFull = 'Bandeja de Salida Llena' + PrintDialogPSPagePunt = 'Page Punt' + PrintDialogPSPaperJam = 'Papel Enganchado' + PrintDialogPSPaperOut = 'Sin Papel' + PrintDialogPSPaperProblem = 'Problema de Papel' + PrintDialogPSPrinting = 'Imprimiendo' + PrintDialogPSProcessing = 'Procesando' + PrintDialogPSTonerLow = 'Toner Bajo' + PrintDialogPSUserIntervention = 'Intervenci'#243'n del Usuario' + PrintDialogPSWaiting = 'Esperando' + PrintDialogPSWarningUp = 'Precalientamiento' + PrintDialogPSReady = 'Lista' + PrintDialogPSPrintingAndWaiting = 'Imprimiendo: %d documento(s) esperando' + LeftMargin = 'Margen Izquierdo' + TopMargin = 'Margin Superior' + RightMargin = 'Margin Derecho' + BottomMargin = 'Margin Inferior' + GutterMargin = 'Gutter' + HeaderMargin = 'Cabecera' + FooterMargin = 'Pie' + UnitsInches = '"' + UnitsCentimeters = 'cm' + UnitsMillimeters = 'mm' + UnitsPoints = 'pt' + UnitsPicas = 'pi' + UnitsDefaultName = 'Predeterminada' + UnitsInchesName = 'Pulgadas' + UnitsCentimetersName = 'Centimetros' + UnitsMillimetersName = 'Milimetros' + UnitsPointsName = 'Puntos' + UnitsPicasName = 'Picas' + PrintPreview = 'Vista Previa' + ReportDesignerCaption = 'Dise'#241'ador de Informes' + CompositionDesignerCaption = 'Dise'#241'ador de Composici'#243'n' + ComponentNotSupportedByLink = 'Component "%s" not supported by TdxComponentPrinter' + ComponentNotSupported = 'Component "%s" not supported by TdxComponentPrinter' + PrintDeviceNotReady = 'La impresora no est'#225' instalada o no est'#225' preparada' + UnableToGenerateReport = 'No se ha podido generar el informe' + PreviewNotRegistered = 'There is no registered preview form' + ComponentNotAssigned = '%s' + PrintDeviceIsBusy = 'Impresora ocupada' + PrintDeviceError = #161'La impresora ha encontrado un error!' + MissingComponent = 'Missing "Component" property' + DataProviderDontPresent = 'There are no Links with Assigned Component in Composition' + BuildingReport = 'Generando informe: Completado %d%%' + PrintingReport = + 'Imprimiendo Informe: Completado %d p'#225'gina(s). Pulse ESC to abort' + + 'ar...' + DefinePrintStylesMenuItem = 'Definir E&stilos de Impresi'#243'n...' + AbortPrinting = #191'Abortar impresi'#243'n?' + StandardStyle = 'Estilo Estandar' + FontStyleBold = 'Negrita' + FontStyleItalic = 'It'#225'lica' + FontStyleUnderline = 'Subrayado' + FontStyleStrikeOut = 'Tachado' + Pt = 'pt.' + NoPages = '[No p'#225'ginas]' + PageWidth = 'Anchura P'#225'g' + WholePage = 'Pag. Completa' + TwoPages = 'Dos P'#225'ginas' + FourPages = 'Cuatro P'#225'ginas' + WidenToSourceWidth = 'Ajustar a Anchura' + MenuBar = 'MenuBar' + StandardBar = 'Standard' + HeaderFooterBar = 'Header and Footer' + ShortcutMenusBar = 'Shortcut Menus' + AutoTextBar = 'AutoTexto' + MenuFile = '&Ficheros' + MenuFileDesign = '&Dise'#241'o...' + MenuFilePrint = '&Imprimir...' + MenuFilePageSetup = 'Con&fig. P'#225'gina...' + MenuPrintStyles = 'Estilos Impresi'#243'n' + MenuFileExit = '&Cerrar' + MenuEdit = '&Editar' + MenuEditCut = 'Cor&tar' + MenuEditCopy = '&Copiar' + MenuEditPaste = '&Pegar' + MenuEditDelete = '&Borrar' + MenuEditFind = '&Buscar...' + MenuEditFindNext = 'Buscar Si&guiente' + MenuEditReplace = '&Reemplazar...' + MenuLoad = '&Cargar...' + MenuPreview = 'V. Pre&via...' + MenuInsert = '&Insertar' + MenuInsertAutoText = '&AutoTexto' + MenuInsertEditAutoTextEntries = 'AutoTe&xto...' + MenuInsertAutoTextEntries = '&(Lista de Entradas AutoTexto)' + MenuInsertAutoTextEntriesSubItem = 'In&sertar AutoTexto' + MenuInsertPageNumber = 'N'#250'm &P'#225'g.' + MenuInsertTotalPages = '&N'#250'm. de P'#225'g.' + MenuInsertPageOfPages = 'N'#250'm de P'#225'&g. de P'#225'ginas' + MenuInsertDateTime = 'Fechay Hora' + MenuInsertDate = '&Fecha' + MenuInsertTime = '&Hora' + MenuInsertUserName = 'Nombre &Usuario' + MenuInsertMachineName = 'Nombre &Maquina' + MenuView = '&Vista' + MenuViewMargins = '&Margenes' + MenuViewFlatToolBarButtons = 'Botones &Planos' + MenuViewLargeToolBarButtons = 'Botones &Grandes' + MenuViewMarginsStatusBar = 'Barra de M&argenes' + MenuViewPagesStatusBar = 'Barra de E&stado' + MenuViewToolBars = '&Herramientas' + MenuViewPagesHeaders = '&Cabeceras de P'#225'gina' + MenuViewPagesFooters = '&Pies de P'#225'ginas' + MenuViewSwitchToLeftPart = 'Switch to Left Part' + MenuViewSwitchToRightPart = 'Switch to Right Part' + MenuViewSwitchToCenterPart = 'Switch to Center Part' + MenuViewHFSwitchHeaderFooter = 'Mo&strar Cabecera/Pie' + MenuViewHFClose = '&Cerrar' + MenuZoom = '&Aumentar' + MenuZoomPercent100 = 'Porcien &100' + MenuZoomPageWidth = '&Anchura P'#225'gina' + MenuZoomWholePage = 'P'#225'gina C&ompleta' + MenuZoomTwoPages = '&Dos P'#225'ginas' + MenuZoomFourPages = '&Cuatro P'#225'ginas' + MenuZoomMultiplyPages = 'P'#225'ginas &M'#250'ltiples' + MenuZoomWidenToSourceWidth = 'Aju&star a Anchura' + MenuZoomSetup = '&Config...' + MenuPages = '&P'#225'ginas' + MenuGotoPage = '&Saltar' + MenuGotoPageFirst = '&Primera P'#225'g.' + MenuGotoPagePrev = 'P'#225'g. &Anteror' + MenuGotoPageNext = 'Pr'#243'&xima P'#225'g.' + MenuGotoPageLast = #218'l&tima P'#225'g.' + MenuActivePage = 'P'#225'g. Acti&va:' + MenuFormat = 'F&ormato' + MenuFormatHeaderAndFooter = '&Cabeceras y Pies' + MenuFormatAutoTextEntries = 'Entradas &AutoTexto...' + MenuFormatDateTime = 'Fecha y &Hora...' + MenuFormatPageNumbering = '&Numeraci'#243'n P'#225'ginas...' + MenuFormatPageBackground = 'Fon&do...' + MenuFormatShrinkToPage = '&Reducir a P'#225'g.' + MenuShowEmptyPages = 'Mostrar P'#225'g. &Vacias' + MenuFormatHFBackground = 'Fondo de Cabecera/Pie...' + MenuFormatHFClear = 'Vaciar Texto' + MenuTools = '&Herramientas' + MenuToolsCustomize = '&Personalizar...' + MenuToolsOptions = '&Opciones...' + MenuHelp = 'A&yuda' + MenuHelpTopics = '&Temas de Ayuda...' + MenuHelpAbout = '&Acerca de...' + MenuShortcutPreview = 'V.Previa' + MenuShortcutAutoText = 'AutoTexto' + MenuBuiltInMenus = 'Men'#250's Incorporados' + MenuShortCutMenus = 'Men'#250's de Atajos' + MenuNewMenu = 'Men'#250' Nuevo' + HintFileDesign = 'Dise'#241'ar Informe' + HintFilePrint = 'Imprimir' + HintFilePrintDialog = 'Configuarar la Impresora' + HintFilePageSetup = 'Configurar la P'#225'gina' + HintFileExit = 'Cerrar Vista Previa' + HintEditFind = 'Buscar' + HintEditFindNext = 'Buscar Siguiente' + HintEditReplace = 'Reemplazar' + HintInsertEditAutoTextEntries = 'Editar Entradas AutoTexto' + HintInsertPageNumber = 'Insertar N'#250'mero P'#225'gina' + HintInsertTotalPages = 'Insertar N'#250'mero de P'#225'ginas' + HintInsertPageOfPages = 'Insertar P'#225'gina N'#250'mero de P'#225'ginas' + HintInsertDateTime = 'Insertar Fecha y Hora' + HintInsertDate = 'Insertar Fecha' + HintInsertTime = 'Insert Hora' + HintInsertUserName = 'Insertar Nombre Usuario' + HintInsertMachineName = 'Insertar Nombre Maquina' + HintViewMargins = 'Ver Margenes' + HintViewLargeButtons = 'Ver Botones Grandes' + HintViewMarginsStatusBar = 'Ver Barra de Esatdo de Margenes' + HintViewPagesStatusBar = 'Ver Barra de Estado de P'#225'gina' + HintViewPagesHeaders = 'Vee Cabecera de P'#225'gina' + HintViewPagesFooters = 'Ver Pie de P'#225'gina' + HintViewSwitchToLeftPart = 'Cambiar a Cabecera/Pie Izquierda' + HintViewSwitchToRightPart = 'Cambiar a Cabecera/Pie Derecha' + HintViewSwitchToCenterPart = 'Cambiar a Cabecera/Pie Centrada' + HintViewHFSwitchHeaderFooter = 'Cambiar a Cabecera y Pie' + HintViewHFClose = 'Cerrar' + HintViewZoom = 'Aumentar' + HintZoomPercent100 = 'Aumentar al 100%' + HintZoomPageWidth = 'Aumentar a Anchura de P'#225'gina' + HintZoomWholePage = 'P'#225'gina Completa' + HintZoomTwoPages = 'Dos P'#225'ginas' + HintZoomFourPages = 'Cuatro P'#225'ginas' + HintZoomMultiplyPages = 'P'#225'ginas M'#250'ltiples' + HintZoomWidenToSourceWidth = 'Ajustar a la Anchura' + HintZoomSetup = 'Introducir Factor de Aumento' + HintFormatDateTime = 'Formato de Fecha y Hora' + HintFormatPageNumbering = 'Formato de N'#250'mero de P'#225'gina' + HintFormatPageBackground = 'Fondo' + HintFormatShrinkToPage = 'Reducir a P'#225'gina' + HintFormatHFBackground = 'Fondo de Cabecera/Pie' + HintFormatHFClear = 'Vaciar Texto Cabecera/Pie' + HintGotoPageFirst = 'Primera P'#225'gina' + HintGotoPagePrev = 'P'#225'gina Anterior' + HintGotoPageNext = 'Pr'#243'xima P'#225'gina' + HintGotoPageLast = #218'ltima P'#225'gina' + HintActivePage = 'P'#225'gina Activa' + HintToolsCustomize = 'Personalizar Herramientas' + HintToolsOptions = 'Opciones' + HintHelpTopics = 'Temas de Ayuda' + HintHelpAbout = 'Acerca de' + PopupMenuLargeButtons = 'Botones &Grandes' + PopupMenuFlatButtons = 'Botones &Planos' + PaperSize = 'Tama'#241'o Papel' + Status = 'Estado' + StatusReady = 'Lista' + StatusPrinting = 'Imprimiendo. %d p'#225'gina(s) terminada(s)' + StatusGenerateReport = 'Generando Informe. %d%% completado.' + HintDoubleClickForChangePaperSize = 'Doble Clic para Cambiar el Tama'#241'o de P'#225'gina' + HintDoubleClickForChangeMargins = 'Doble Clic para Cambiar Margenes' + DTFormatsCaption = 'Fecha y Hora' + DTFormatsAvailableDateFormats = 'Formatos de &Fecha Disponibes:' + DTFormatsAvailableTimeFormats = 'Formatos de &Hora Disponibles:' + DTFormatsAutoUpdate = 'Act. &Autom'#225'tica' + DTFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de fecha y hora al "%s" -' + + ' "%s" ?' + PNFormatsCaption = 'Formato de N'#250'mero de P'#225'gina' + PageNumbering = 'Numeraci'#243'n de P'#225'ginas' + PNFormatsNumberFormat = '&Format N'#250'mero:' + PNFormatsContinueFromPrevious = '&Continuar desde '#218'ltima Secci'#243'n' + PNFormatsStartAt = 'Empezar &En:' + PNFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de numeraci'#243'n de p'#225'ginas a' + + 'l "%s" ?' + ZoomDlgCaption = 'Aumentar' + ZoomDlgZoomTo = 'Aumentar a' + ZoomDlgPageWidth = '&Ancho P'#225'g.' + ZoomDlgWholePage = 'P'#225'g.C&ompleta' + ZoomDlgTwoPages = '&Dos P'#225'ginas' + ZoomDlgFourPages = '&Cuatro P'#225'g.' + ZoomDlgManyPages = '&Varias P'#225'g.:' + ZoomDlgPercent = 'P&orcien:' + ZoomDlgPreview = 'Vista' + ZoomDlgFontPreview = '10pt Times New Romam' + ZoomDlgFontPreviewString = 'AaBbCcDdEeXxYyZz' + Pages = 'P'#225'ginas' + Cancel = 'Cancelar' + PreferenceDlgCaption = 'Opciones' + PreferenceDlgTab1 = '&General' + PreferenceDlgShow = '&Mostrar' + PreferenceDlgMargins = '&Margenes' + PreferenceDlgMarginsHints = 'A&yudas Margenes' + PreferenceDlgMargingWhileDragging = 'Ayudas Margins con A&rrastre' + PreferenceDlgLargeBtns = 'Botones &Grandes para Barras' + PreferenceDlgFlatBtns = 'Botones &Planos para Barras' + PreferenceDlgMarginsColor = '&Color Margenes:' + PreferenceDlgMeasurementUnits = '&Unidades de Medida:' + PreferenceDlgSaveForRunTimeToo = 'Gua&rdar en Ejecucci'#243'n tambien' + PreferenceDlgZoomScroll = 'Despla&zamiento con IntelliMouse' + PreferenceDlgZoomStep = 'Au&mento:' + CloneStyleCaptionPrefix = 'Copia (%d) de' + InvalideStyleCaption = 'Nombre de estilo "%s" existente. Por favor, introduzca otro.' + PageSetupCaption = 'Configuraci'#243'n de la P'#225'gina' + StyleName = '&Nombre Estilo:' + Page = '&P'#225'gina' + Margins = '&Margenes' + HeaderFooter = '&Cabecera\Pie' + Scaling = '&Escala' + Paper = 'Papel' + PaperType = 'T&ipo' + PaperDimension = 'Dimensi'#243'nes' + PaperWidth = '&Anchura:' + PaperHeight = 'A<ura:' + PaperSource = 'Bande&ja' + Orientation = 'Orientaci'#243'n' + Portrait = 'N&ormal' + Landscape = '&Apaisado' + PrintOrder = 'Orden de Impresi'#243'n' + DownThenOver = '&Abajo, derecha' + OverThenDown = '&Derecha, abajo' + Shading = 'Sombreado' + PrintUsingGrayShading = 'Imprimir usando sombreado &gris' + CenterOnPage = 'Centrar' + Horizontally = 'Hori&zontal' + Vertically = '&Vertical' + Header = 'Cabecera' + BtnHeaderFont = '&Fuente...' + BtnHeaderBackground = '&Fondo' + Footer = 'Pie' + BtnFooterFont = 'Fue&nte...' + BtnFooterBackground = 'F&ondo' + CaptionTop = '&Sup.:' + CaptionLeft = '&Izqu.:' + CaptionRight = '&Derecha:' + CaptionBottom = '&Inferior:' + Header2 = '&Cabec.:' + Footer2 = '&Pie:' + Alignment = 'Alineamiento' + VertAlignment = 'Alineamiento Vertical' + ReverseOnEvenPages = 'Al &rev'#233's en p'#225'ginas pares' + AdjustTo = '&Ajustar a:' + FitTo = 'P'#225'&ginas:' + PercentOfNormalSize = '% tama'#241'o normal' + PagesWideBy = 'p'#225'g(s) de &ancho' + Tall = 'de a<o' + XOfY = 'De' + LastPrinted = #218'ltima Impresi'#243'n' + FileName = 'Fichero' + FileNameAndPath = 'Fichero y camino' + PrintedBy = 'Impreso por' + PrintedOn = 'Impreso el' + CreatedBy = 'Creado por' + CreatedOn = 'Creado el' + Confidential = 'Confidencial' + HFFunctionNameUnknown = 'Desconocido' + HFFunctionNamePageNumber = 'N'#250'm. P'#225'gina' + HFFunctionNameTotalPages = 'P'#225'g. Totales' + HFFunctionNamePageOfPages = 'P'#225'g. # de P'#225'gs. #' + HFFunctionNameDateTime = 'Fecha y Hora' + HFFunctionNameDate = 'Fecha' + HFFunctionNameTime = 'Hora' + HFFunctionNameUserName = 'Nombre Usuario' + HFFunctionNameMachineName = 'Nombre Maquina' + HFFunctionHintPageNumber = 'Page Number' + HFFunctionHintTotalPages = 'Total Pages' + HFFunctionHintPageOfPages = 'Page # of Pages #' + HFFunctionHintDateTime = 'Date and Time Printed' + HFFunctionHintDate = 'Date Printed' + HFFunctionHintTime = 'Time Printed' + HFFunctionHintUserName = 'User Name' + HFFunctionHintMachineName = 'Machine Name' + HFFunctionTemplatePageNumber = 'Page #' + HFFunctionTemplateTotalPages = 'Total Pages' + HFFunctionTemplatePageOfPages = 'Page # of Pages #' + HFFunctionTemplateDateTime = 'Date & Time Printed' + HFFunctionTemplateDate = 'Date Printed' + HFFunctionTemplateTime = 'Time Printed' + HFFunctionTemplateUserName = 'User Name' + HFFunctionTemplateMachineName = 'Machine Name' + January = 'Enero' + February = 'Febrero' + March = 'Marzo' + April = 'Abril' + May = 'Mayo' + June = 'Junio' + July = 'Julio' + August = 'Agosto' + September = 'Septiembre' + October = 'Octubre' + November = 'Noviembre' + December = 'Diciembre' + East = 'Este' + West = 'Oeste' + South = 'Sur' + North = 'Norte' + Total = 'Total' + Plan = 'Plan' + SwimmingPool = 'Swimming-pool' + Administration = 'Administration' + Park = 'Park' + CarParking = 'Car-Parking' + CorporateHeadquarters = 'Corporate' + SalesAndMarketing = 'Sales and' + Engineering = 'Engineering' + FieldOfficeCanada = 'Field Office:' + OrderNoCaption = 'OrderNo' + NameCaption = 'Name' + CountCaption = 'Count' + CompanyCaption = 'Company' + AddressCaption = 'Address' + PriceCaption = 'Price' + CashCaption = 'Cash' + Name1 = 'Jennie Valentine' + Name2 = 'Sam Hill' + Company1 = 'Jennie Inc.' + Company2 = 'Daimler-Chrysler AG' + Address1 = '123 Home Lane' + Address2 = '9333 Holmes Dr.' + CountIs = 'Count is: %d' + Regular = 'Regular' + Irregular = 'Irregular' + TLBand = 'Item Data' + TLColumnName = 'Name' + TLColumnAxisymmetric = 'Axisymmetric' + TLColumnItemShape = 'Shape' + ItemShapeAsText = '(Graphic)' + Item1Name = 'Cone' + Item2Name = 'Cylinder' + Item3Name = 'Pyramid' + Item4Name = 'Box' + Item5Name = 'Free Surface' + Item2Description = 'Axisymmetric geometry figure' + Item3Description = 'Axisymmetric geometry figure' + Item4Description = 'Acute-angled geometry figure' + Item7Description = 'Simple extrusion surface' + PatternIsNotRegistered = 'Pattern "%s" is not registered' + SolidEdgePattern = 'Solid' + ThinSolidEdgePattern = 'Medium Solid' + MediumSolidEdgePattern = 'Medium Solid' + ThickSolidEdgePattern = 'Thick Solid' + DottedEdgePattern = 'Dotted' + DashedEdgePattern = 'Dashed' + DashDotDotEdgePattern = 'Dash Dot Dot' + DashDotEdgePattern = 'Dash Dot' + SlantedDashDotEdgePattern = 'Slanted Dash Dot' + MediumDashDotDotEdgePattern = 'Medium Dash Dot Dot' + HairEdgePattern = 'Hair' + MediumDashDotEdgePattern = 'Medium Dash Dot' + MediumDashedEdgePattern = 'Medium Dashed' + DoubleLineEdgePattern = 'Double Line' + SolidFillPattern = 'Solid' + Gray75FillPattern = '75% Gray' + Gray50FillPattern = '50% Gray' + Gray25FillPattern = '25% Gray' + Gray125FillPattern = '12.5% Gray' + Gray625FillPattern = '6.25% Gray' + HorizontalStripeFillPattern = 'Horizontal Stripe' + VerticalStripeFillPattern = 'Vertical Stripe' + ReverseDiagonalStripeFillPattern = 'Reverse Diagonal Stripe' + DiagonalStripeFillPattern = 'Diagonal Stripe' + DiagonalCrossHatchFillPattern = 'Diagonal Cross Hatch' + ThickCrossHatchFillPattern = 'Thick Cross Hatch' + ThinHorizontalStripeFillPattern = 'Thin Horizontal Stripe' + ThinVerticalStripeFillPattern = 'Thin Vertical Stripe' + ThinReverseDiagonalStripeFillPattern = 'Thin Reverse Diagonal Stripe' + ThinDiagonalStripeFillPattern = 'Thin Diagonal Stripe' + ThinHorizontalCrossHatchFillPattern = 'Thin Horizontal Cross Hatch' + ThinDiagonalCrossHatchFillPattern = 'Thin Diagonal Cross Hatch' + ShowRowAndColumnHeadings = '&Row and column headings' + ShowGridLines = 'GridLines' + SuppressSourceFormats = '&Suppress Source Formats' + RepeatHeaderRowAtTop = 'Repeat header row at top' + DataToPrintDoesnotExist = + 'Can not activate ReportLink because PrintingSystem did not find ' + + 'anything to print.' + JanuaryShort = 'Ene' + FebruaryShort = 'Feb' + MarchShort = 'Mar' + AprilShort = 'Abril' + MayShort = 'Mayo' + JuneShort = 'Jun' + JulyShort = 'Jul' + AugustShort = 'Ago' + SeptemberShort = 'Sept' + OctoberShort = 'Oct' + NovemberShort = 'Nov' + DecemberShort = 'Dic' + TechnicalDepartment = 'Technical Department' + SoftwareDepartment = 'Software Department' + SystemProgrammers = 'System Programmers' + EndUserProgrammers = 'EndUser Programmers' + BetaTesters = 'Beta Testers' + HumanResourceDepartment = 'Human Resource Department' + TreeLines = '&L'#237'neas'#193'rbol' + TreeLinesColor = 'Colore L'#237'neas '#193'rbol:' + ExpandButtons = 'Botones E&xpansi'#243'n' + CheckMarks = 'Cajas Verificaci'#243'n' + TreeEffects = 'Efectos '#193'rbol' + Appearance = 'Apariencia' + CarLevelCaption = 'Coches' + ManufacturerBandCaption = 'Manufacturer Data' + ModelBandCaption = 'Car Data' + ManufacturerNameColumnCaption = 'Name' + ManufacturerLogoColumnCaption = 'Logo' + ManufacturerCountryColumnCaption = 'Country' + CarModelColumnCaption = 'Model' + CarIsSUVColumnCaption = 'SUV' + CarPhotoColumnCaption = 'Photo' + CarManufacturerName1 = 'BMW' + CarManufacturerName2 = 'Ford' + CarManufacturerName3 = 'Audi' + CarManufacturerName4 = 'Land Rover' + CarManufacturerCountry1 = 'Germany' + CarManufacturerCountry2 = 'United States' + CarManufacturerCountry3 = 'Germany' + CarManufacturerCountry4 = 'United Kingdom' + CarModel1 = 'X5 4WD' + CarModel2 = 'Excursion' + CarModel3 = 'S8 Quattro' + CarModel4 = 'G4 Challenge' + True = 'True' + False = 'False' + Auto = 'Auto' + Custom = 'Personal.' + Env = 'Env' + LookAndFeelFlat = 'Plano' + LookAndFeelStandard = 'Estandar' + LookAndFeelUltraFlat = 'UltraPlano' + ViewTab = 'Vista' + BehaviorsTab = 'Comportamiento' + PreviewTab = 'Vista Previa' + CardsTab = 'Fichas' + Formatting = 'Formato' + LookAndFeel = 'Aspecto' + LevelCaption = '&T'#237'tulo' + FilterBar = 'Barra de &Filtro' + Refinements = 'Perfeccionamiento' + ProcessSelection = 'Procesar &Selecci'#243'n' + ProcessExactSelection = 'Procesar Selecci'#243'n E&xacta' + Expanding = 'Despliege' + Groups = '&Grupos' + Details = '&Detalles' + StartFromActiveDetails = 'Empieza desde Detalles Activas' + OnlyActiveDetails = 'S'#243'lo Detalles Activos' + Visible = '&Visible' + PreviewAutoHeight = 'Altura A&utom'#225'tica' + PreviewMaxLineCount = 'L'#237'neas &M'#225'ximas:' + Sizes = 'Tama'#241'os' + KeepSameWidth = 'Manten.Misma Anchura' + KeepSameHeight = 'Manten.Misma Altura' + Framing = 'Marco' + Spacing = 'Espacios' + Shadow = 'Sombra' + Depth = '&Profundidad:' + Position = '&Posici'#243'n' + Positioning = 'Posicionando' + Horizontal = 'H&orizontal:' + Vertical = 'V&ertical:' + SummaryFormat = 'Recuento = 0' + CannotUseOnEveryPageMode = 'Cannot Use OnEveryPage Mode' + IncorrectBandHeadersState = 'Cannot Use BandHeaders OnEveryPage Mode' + IncorrectHeadersState = 'Cannot Use Headers OnEveryPage Mode' + IncorrectFootersState = 'Cannot Use Footers OnEveryPage Mode' + TPicture = 'TPicture' + Copy = '&Copiar' + Save = '&Salvar...' + BaseStyle = 'Estilo Base' + Rectangle = 'Rectangle' + Square = 'Square' + Ellipse = 'Ellipse' + Circle = 'Circle' + RoundRect = 'RoundRect' + RoundSquare = 'RoundSquare' + HorizontalFillPattern = 'Horizontal' + VerticalFillPattern = 'Vertical' + FDiagonalFillPattern = 'FDiagonal' + BDiagonalFillPattern = 'BDiagonal' + CrossFillPattern = 'Cross' + DiagCrossFillPattern = 'DiagCros' + CyclicIDReferences = 'Cyclic ID references %s and %s' + LoadReportDataToFileTitle = 'Cargar Informe' + SaveReportDataToFileTitle = 'Salvar Informe Como' + InvalidExternalStorage = 'Almacenamiento Externo No V'#225'lido' + LinkIsNotIncludedInUsesClause = 'ReportFile contains ReportLink "%0:s"' + InvalidStorageVersion = 'Versi'#243'n de Almacenamiento no V'#225'lido: %d' + PSReportFiles = 'Ficheros de Informes' + ReportFileLoadError = 'No se pudo cargar el informe "%s".' + None = '(Ninguno)' + ReportDocumentIsCorrupted = '(El fichero no es un informe o esta corrupto)' + CloseExplorerHint = 'Cerrar Explorador' + ExplorerCaption = 'Explorador' + ExplorerRootFolderCaption = 'Ra'#237'z' + NewExplorerFolderItem = 'Nueva Carpeta' + CopyOfItem = 'Copia de' + ReportExplorer = 'Explorer de Informes' + DataLoadErrorText = 'No se pudo cargar los datos del informe' + DBBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + FileBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + DeleteNonEmptyFolderMessageText = 'La carpeta "%s" no est'#225' vacia. A'#250'n as'#237' '#191'desea eliminarlo?' + DeleteFolderMessageText = 'Borrar Carpeta "%s" ?' + DeleteItemMessageText = 'Borrar elemento "%s" ?' + CannotRenameFolderText = + 'Cannot rename folder "%s". A folder with name "%s" already exist' + + 's. Specify a different name.' + CannotRenameItemText = + 'Cannot rename item "%s". An item with name "%s" already exists. ' + + 'Specify a different name.' + OverwriteFolderMessageText = 'This folder "%s" already contains folder named "%s".' + OverwriteItemMessageText = 'This Folder "%s" already contains item named "%s".' + SelectNewRoot = 'Select new Root Directory where the Reports will be stored' + InvalidFolderName = 'Nombre de Carpeta no V'#225'lida "%s"' + InvalidReportName = 'Nombre de Informe no V'#225'lido "%s"' + ExplorerBar = 'Explorador' + MenuFileSave = '&Salvar' + MenuFileSaveAs = 'S&alvar Como...' + MenuFileLoad = '&Cargar' + MenuFileClose = '&Descargar' + HintFileSave = 'Salvar Informe' + HintFileSaveAs = 'Salvar Informe Como' + HintFileLoad = 'Cargar Informe' + HintFileClose = 'Descargar Informe' + MenuExplorer = 'E&xplorador' + MenuExplorerCreateFolder = 'Crear &Carpeta' + MenuExplorerDelete = '&Borrar...' + MenuExplorerRename = 'Reno&mbrar' + MenuExplorerProperties = '&Propiedades...' + MenuExplorerRefresh = 'Refrescar' + MenuExplorerChangeRootPath = 'Cambiar Ra'#237'z...' + MenuExplorerSetAsRoot = 'Establecer Como Ra'#237'z' + MenuExplorerGoToUpOneLevel = 'Subir Un Nivel' + HintExplorerCreateFolder = 'Crear Nueva Carpeta' + HintExplorerDelete = 'Borrar' + HintExplorerRename = 'Renombrar' + HintExplorerProperties = 'Propiedades' + HintExplorerRefresh = 'Refrescar' + HintExplorerChangeRootPath = 'Cambiar Ra'#237'z' + HintExplorerSetAsRoot = 'Establecder Carpeta Actual Como Ra'#237'z' + HintExplorerGoToUpOneLevel = 'Subir Un Nivel' + MenuViewExplorer = 'E&xplorador' + HintViewExplorer = 'Mostar Explorador' + Summary = 'Resumen' + Creator = 'Creado&r:' + CreationDate = 'Crea&do:' + MenuViewThumbnails = 'Miniat&uras' + HintViewThumbnails = 'Mostar Miniaturas' + MenuFormatTitle = 'T&'#237'tulo...' + HintFormatTitle = 'Formatear T'#237'tulo del Informe' + Half = 'Medio' + PredefinedFunctions = 'Funciones Predefinidos' + ZoomParameters = '&Par'#225'metros de Aumento' + WrapData = 'Doblar Datos' + MenuShortcutExplorer = 'Explorador' + ExplorerToolBar = 'Explorador' + MenuThumbnailsSmall = 'Miniaturas &Peque'#241'as' + MenuThumbnailsLarge = 'Miniaturas &Grandes' + MenuShortcutThumbnails = 'Miniaturas' + Buttons = 'Botones' + BtnHeadersFont = 'Fuente &Cabeceras...' + HeadersTransparent = 'Cabeceras Transparentes' + HintListViewDesignerMessage = 'Most Options Are Being Taken Into Account Only In Detailed View' + ColumnHeaders = 'Cabeceras de &Columnas' + ReportGroupNullLookAndFeel = 'Null' + ReportGroupStandardLookAndFeel = 'Standard' + ReportGroupOfficeLookAndFeel = 'Office' + ReportGroupWebLookAndFeel = 'Web' + LayoutGroupDefaultCaption = 'Layout Group' + LayoutItemDefaultCaption = 'Layout Item' + CarManufacturerName5 = 'Volkswagen' + CarManufacturerCountry5 = 'Germany' + CarModel5 = 'Golf GTI' + LuxurySedans = 'Luxury Sedans' + CarManufacturer = 'Manufacturer' + CarModel = 'Model' + CarEngine = 'Engine' + CarTransmission = 'Transmission' + CarTires = 'Tires' + Volvo760V12Manufacturer = 'BMW' + Volvo760V12Model = '760Li V12' + Volvo760V12Engine = + '6.0L DOHC V12 438 HP 48V DI Valvetronic 12-cylinder engine with ' + + '6.0-liter displacement, dual overhead cam valvetrain' + Volvo760V12Transmission = 'Elec 6-Speed Automatic w/Steptronic' + Volvo760V12Tires = + 'P245/45R19 Fr - P275/40R19 Rr Performance. Low Profile tires wit' + + 'h 245mm width, 19.0" rim' + BandHeaderStyle = 'CabeceraGrupo' + CaptionStyle = 'T'#237'tulo' + CardCaptionRowStyle = 'T'#237'tulo Fila Fichas' + CardRowCaptionStyle = 'T'#237'tulo Fila Fichas' + CategoryStyle = 'Categor'#237'a' + ContentStyle = 'Contenido' + ContentEvenStyle = 'Contenido Filas Pares' + ContentOddStyle = 'Contenido Filas Impares' + FilterBarStyle = 'Barra de Filto' + FooterStyle = 'Pie' + FooterRowStyle = 'Pie de Fila' + GroupStyle = 'Grupo' + HeaderStyle = 'Cabecera' + IndentStyle = 'Indentaci'#243'n' + PreviewStyle = 'Vista Previa' + SelectionStyle = 'Selecci'#243'n' + Styles = 'Estilos' + StyleSheets = 'Hojas de Estilos' + BtnTexture = '&Textura...' + BtnTextureClear = 'Elimin&ar' + BtnColor = 'Co&lor...' + BtnSaveAs = 'Salvar &Como...' + BtnRename = '&Renombrar...' + LoadBitmapDlgTitle = 'Cargar Imagen' + DeleteStyleSheet = 'Borrar Hoja de Estilos con Nombre "%s"?' + UnnamedStyleSheet = 'SinNombre' + CreateNewStyleQueryNamePrompt = 'Entre un Nombre de Hoja de Estilo:' + StyleSheetNameAlreadyExists = 'Hoja de Estilo "%s" Ya Existe' + CannotLoadImage = 'No se pudo cargar el imagen "%s"' + UseNativeStyles = '&Usar Estilo Nativo' + SuppressBackgroundBitmaps = '&Suprimir Texturas de Fondo' + ConsumeSelectionStyle = 'Consumir Estilos de Selecci'#243'n' + Size = 'Tama'#241'o' + Levels = 'Niveles' + Unwrap = '&Desdoblar' + UnwrapTopLevel = 'Desdoblar Nivel Superior' + RiseActiveToTop = 'Subir Nivel Activo al Princ'#237'pio' + CannotUseOnEveryPageModeInAggregatedState = 'No se puede usar modo "EnCadaP'#225'gina"' + Pagination = 'Paginaci'#243'n' + ByBands = 'Por Grupos' + ByColumns = 'Por Columnas' + ByRows = 'Por Filas' + ByTopLevelGroups = 'Por Grupos de Primer Nivel' + OneGroupPerPage = 'Un Grupo por P'#225'gina' + Borders = 'Margenes' + ExplicitlyExpandNodes = 'Expandir Expl'#237'citamente los Nodos' + Nodes = '&Nodos' + Separators = 'Separadores' + Thickness = 'Grueso' + TLIncorrectHeadersState = 'No se puede usar el modo EnCadaP'#225'gina' + Rows = '&Filas' + BestFit = 'Ajuste &'#211'ptimo' + KeepSameRecordWidths = '&Mantaner Anchuras Iguales' + WrapRecords = '&Doblar Registros' + ByWrapping = 'Doblando' + OneWrappingPerPage = 'Doblando Uno por P'#225'gina' + PaginateByControlDetails = 'Detalles de Controles' + PaginateByControls = 'Controles' + PaginateByGroups = 'Grupos' + PaginateByItems = 'Elementos' + ControlsPlace = 'Enplazamiento de Controles' + ExpandHeight = 'Expandir Altura' + ExpandWidth = 'Expandir Anchura' + ShrinkHeight = 'Contraer Altura' + ShrinkWidth = 'Contraer Anchura' + CheckAll = 'Check &All' + CheckAllChildren = 'Check All &Children' + ControlsTab = 'Controls' + ExpandAll = 'E&xpand All' + HiddenControlsTab = 'Hidden Controls' + ReportLinksTab = 'Aggregated Designers' + Transparents = 'Transparents' + UncheckAllChildren = 'Uncheck &All Children' + Root = '&Ra'#237'z' + RootBorders = 'Root &Borders' + Controls = '&Controls' + Containers = 'C&ontainers' + HideCustomContainers = '&Hide Custom Containers' + Bytes = 'Bytes' + KiloBytes = 'KB' + MegaBytes = 'MB' + GigaBytes = 'GB' + Left = 184 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 329 + Top = 88 + end + object DABINAdapter: TDABINAdapter + IsCompatibleV4 = False + Left = 424 + Top = 24 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 184 + Top = 80 + end + object RORemoteService: TRORemoteService + Message = ROMessage + Channel = ROChannel + ServiceName = 'srvLogin' + Left = 424 + Top = 92 + end +end diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas new file mode 100644 index 0000000..ee02d51 --- /dev/null +++ b/Source/Base/uDataModuleBase.pas @@ -0,0 +1,254 @@ +unit uDataModuleBase; + +interface + +uses + Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, + TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage, + uROServiceComponent, uRORemoteService, uROWinInetHttpChannel, + DataAbstract3_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3, + JvAppStorage, JvAppRegistryStorage, SysUtils, + JvComponentBase, uDADataStreamer; + +type + TdmBase = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + SmallImages: TPngImageList; + StyleManager: TJvNavPaneStyleManager; + TBXSwitcher: TTBXSwitcher; + cxIntl: TcxIntl; + cxIntlPrintSys3: TcxIntlPrintSys3; + ROMessage: TROBinMessage; + DABINAdapter: TDABINAdapter; + JvAppRegistryStorage: TJvAppRegistryStorage; + RORemoteService: TRORemoteService; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure ROChannelProgress(iSender: TObject; iType: TProgressType; + iDirection: TProgressDirection; iTransferred, iTotal: Integer); + private + FOnThemeChange: TNotifyEvent; + function GetAdapter: TDABINAdapter; + function GetChannel: TROWinInetHTTPChannel; + function GetCodigoEmpresa: Integer; + function GetMessage: TROBinMessage; + procedure InitStyleManager; + procedure OnTBXThemeChange(Sender: TObject); + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + public + function DarVersion : String; + procedure ConfigurarConexion; + function HayConexion(const ATargetURL : String = ''): Boolean; + property Adapter: TDABINAdapter read GetAdapter; + property Channel: TROWinInetHTTPChannel read GetChannel; + property CodigoEmpresa: Integer read GetCodigoEmpresa; + property Message: TROBinMessage read GetMessage; + property OnThemeChange: TNotifyEvent read FOnThemeChange write + FOnThemeChange; + end; + +var + dmBase: TdmBase; + +implementation + +{$R *.DFM} + +uses + Dialogs, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows, + JclFileUtils, VARELA_Intf, cxControls; + +const + SERVER_URL = 'http://localhost:8099/bin'; + IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)'; + +{ +*********************************** TdmBase ************************************ +} +procedure TdmBase.ConfigurarConexion; +begin + with TfConfigurarConexion.Create(NIL) do + try + TargetURL := ROChannel.TargetURL; + if ShowModal = mrOk then + begin + ROChannel.TargetURL := TargetURL; + ROChannel.Connected := False; + ROChannel.Connected := True; + SalvarConfiguracion; + end; + finally + Free; + end; +end; + +procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); +begin + TBXSwitcher.OnThemeChange := OnTBXThemeChange; + TBXSetTheme('Office2003'); + + LeerConfiguracion; +end; + +function TdmBase.GetAdapter: TDABINAdapter; +begin + Result := DABinAdapter; +end; + +function TdmBase.GetChannel: TROWinInetHTTPChannel; +begin + Result := ROChannel; +end; + +function TdmBase.GetCodigoEmpresa: Integer; +begin + Result := 1; +end; + +function TdmBase.GetMessage: TROBinMessage; +begin + Result := ROMessage; +end; + +procedure TdmBase.InitStyleManager; +begin + if not USE_THEMES then + begin + TBXSwitcher.EnableXPStyles := False; + StyleManager.Theme := nptStandard; + end + else begin + TBXSwitcher.EnableXPStyles := True; + with StyleManager do + begin + if CurrentTheme is TTBXOffice2003Theme then + begin + case GetOffice2003Scheme of + osBlue : Theme := nptXPBlue; + osMetallic : Theme := nptXPSilver; + osGreen : Theme := nptXPOlive; + else + Theme := nptStandard; + end; + end; + end; + end; +end; + + +procedure TdmBase.LeerConfiguracion; +begin + ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL); +end; + +procedure TdmBase.OnTBXThemeChange(Sender: TObject); +begin + InitStyleManager; + + if Assigned(FOnThemeChange) then + FOnThemeChange(Sender); +end; + +procedure TdmBase.SalvarConfiguracion; +begin + JvAppRegistryStorage.BeginUpdate; + try + JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL); + finally + JvAppRegistryStorage.EndUpdate; + end; +end; + +procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); +begin + if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then + begin + // Preguntar al usuario si se quiere conectar + if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then + Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación + else + Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo + end + else + Retry := True; +// raise Exception.Create(anException.Message); +end; + +procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType; + iDirection: TProgressDirection; iTransferred, iTotal: Integer); +begin +{ if iType = ptInProgress then + begin + if not Form1.Visible then + Form1.Show; + end + else + Form1.Hide;} +end; + +function TdmBase.DarVersion: String; +var + Obj : TJclFileVersionInfo; +begin + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := 'v' + Obj.FileVersion; + finally + FreeAndNil(Obj); + end; +end; + +function TdmBase.HayConexion(const ATargetURL: String): Boolean; +var + AHTTPChannel: TROWinInetHTTPChannel; + AROBinMessage: TROBinMessage; + ACoService: TRORemoteService; +begin + AHTTPChannel := TROWinInetHTTPChannel.Create(Self); + AROBinMessage := TROBinMessage.Create(Self); + ACoService := TRORemoteService.Create(Self); + + ShowHourglassCursor; + try + with AHTTPChannel do + begin + Name := 'HTTPChannel'; + UserAgent := 'AdminPV'; + if Length(ATargetURL) > 0 then + TargetURL := ATargetURL + else + TargetURL := ROChannel.TargetURL; + end; + + with ACoService do + begin + ServiceName := 'srvLogin'; + Message := AROBinMessage; + Channel := AHTTPChannel; + end; + + try + (ACoService as IsrvLogin).Ping; + Result := True; + except + Result := False; + end; + finally + AHTTPChannel.Connected := False; + FreeAndNil(AHTTPChannel); + FreeAndNil(ACoService); + FreeAndNil(AROBinMessage); + HideHourglassCursor; + end; +end; + +initialization + dmBase := TdmBase.Create(NIL); + +finalization + dmBase.Free; + +end. diff --git a/Source/Base/uDataTableUtils.pas b/Source/Base/uDataTableUtils.pas new file mode 100644 index 0000000..9bbb7b1 --- /dev/null +++ b/Source/Base/uDataTableUtils.pas @@ -0,0 +1,324 @@ +unit uDataTableUtils; + +interface + +uses + uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta; + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; + RemoteUpdate: Boolean = True); + +procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); +procedure DeleteAllTable(const ADataTable : TDADataTable); +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; + +implementation + +uses + uDAClasses, SysUtils, uDABINAdapter, uROTypes, uDBSelectionList, cxControls, + Dialogs, Variants, uDADataStreamer; + + +{procedure EliminarNoSeleccionados(const ASource : IDADataset; + var ATarget : TDADataTable); +var + AObj : ISelectedRowList; + i : Integer; +begin + if not Supports(ASource, ISelectedRowList, aObj) then + Exit; + +// ATarget.DisableControls; +// ATarget.DisableEventHandlers; + ShowHourglassCursor; + try + ATarget.Open; + ATarget.Last; + while ATarget.RecordCount > AObj.SelectedRows.Count do + begin + if AObj.SelectedRows.IndexOf(ATarget.RecIDValue) < 0 then + ATarget.Delete + else + ATarget.Prior; + end; + finally +// ATarget.EnableControls; +// ATarget.EnableControls; + HideHourglassCursor; + end; +end;} + + +procedure DeleteAllTable(const ADataTable : TDADataTable); +begin + ADataTable.ClearRows; +end; + + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; +var + i, x : integer; + OldNewAreDifferent: boolean; +begin + OldNewAreDifferent := FALSE; + for i := 0 to (aDelta.Count-1) do + begin + for x := 0 to (aDelta.LoggedFieldCount-1) do + begin + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + result := OldNewAreDifferent; +end; + + +procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); +var + DABin: Binary; + DAAdapter : TDABINAdapter; + AFilter : String; + AFiltered : Boolean; + AObj : ISelectedRowList; + i : Integer; +begin + DABin := Binary.Create; + DAAdapter := TDABINAdapter.Create(nil); + AFilter := ''; + + if OnlySelectedRows then + begin + if not Supports(ASource, ISelectedRowList, aObj) then + raise Exception.Create('El origen de datos no soporta la interfaz ISelectedRowList (CopyDataTable)'); + + if ASource.Dataset.Filtered then + begin + AFiltered := True; + AFilter := ASource.Dataset.Filter; + ASource.Dataset.Filtered := False; + end; + + ASource.Dataset.Filter := ''; + for i := 0 to AObj.SelectedRows.Count - 1 do + begin + if (i > 0) then + ASource.Dataset.Filter := ASource.Dataset.Filter + ' or '; + ASource.Dataset.Filter := ASource.Dataset.Filter + '(RecID = ' + IntToStr(AObj.SelectedRows.Items[i]) + ')'; + end; + + ASource.Dataset.Filtered := True; + end; + + try + ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName + + if not ASource.Active then + ASource.Open; + ASource.Dataset.First; + + DAAdapter.WriteDataset(DABin, ASource, [woRows, woSchema], -1); + DAAdapter.Initialize(DABin, aiReadFromBeginning); + DAAdapter.ReadDataset(ATarget.LogicalName, ATarget, True, True); + DAAdapter.Finalize; + + if OnlySelectedRows then + begin + ASource.Dataset.Filtered := False; + ASource.Dataset.Filter := AFilter; + if AFiltered then + ASource.Dataset.Filtered := True; + end; + + finally + FreeAndNil(DABin); + FreeAndNil(DAAdapter); + end; +end; + + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + RemoteDataAdapter := ASource.RemoteDataAdapter; + + BusinessRulesID := ASource.BusinessRulesID; + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + LogicalName := ASource.LogicalName; + + Params.AssignParamCollection(ASource.Params); + + if Assigned(ASource.LocalSchema) then + LocalSchema := ASource.LocalSchema + else + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + + +end. + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + // ****** Inicio migración DA 5 + + //RemoteService := ASource.GetRemoteService; + //Adapter := ASource.GetAdapter; + RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); + // ****** Fin migración DA 5 + + BusinessRulesID := ASource.BusinessRulesID; + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + LogicalName := ASource.LogicalName; + + Params.AssignParamCollection(ASource.Params); + + if Assigned(ASource.LocalSchema) then + LocalSchema := ASource.LocalSchema + else begin + // ****** Inicio migración DA 5 + { + with SchemaCall do + begin + MethodName := ASource.SchemaCall.MethodName; + for i := 0 to ASource.SchemaCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.SchemaCall.Params[i].Name; + ParamType := ASource.SchemaCall.Params[i].ParamType; + DataType := ASource.SchemaCall.Params[i].DataType; + Value := ASource.SchemaCall.Params[i].Value; + UserClassName := ASource.SchemaCall.Params[i].UserClassName; + end; + end; + end; + } + // ****** Fin migración DA 5 + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; + end; + + // ****** Inicio migración DA 5 + { + with DataUpdateCall do + begin + MethodName := ASource.DataUpdateCall.MethodName; + for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.DataUpdateCall.Params[i].Name; + ParamType := ASource.DataUpdateCall.Params[i].ParamType; + DataType := ASource.DataUpdateCall.Params[i].DataType; + Value := ASource.DataUpdateCall.Params[i].Value; + UserClassName := ASource.DataUpdateCall.Params[i].UserClassName; + end; + end; + end; + + with ScriptCall do + begin + MethodName := ASource.ScriptCall.MethodName; + for i := 0 to ASource.ScriptCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.ScriptCall.Params[i].Name; + ParamType := ASource.ScriptCall.Params[i].ParamType; + DataType := ASource.ScriptCall.Params[i].DataType; + Value := ASource.ScriptCall.Params[i].Value; + UserClassName := ASource.ScriptCall.Params[i].UserClassName; + end; + end; + end; + + with DataRequestCall do + begin + MethodName := ASource.DataRequestCall.MethodName; + for i := 0 to ASource.DataRequestCall.Params.Count - 1 do + begin + with Params.Add do begin + begin + Name := ASource.DataRequestCall.Params[i].Name; + ParamType := ASource.DataRequestCall.Params[i].ParamType; + DataType := ASource.DataRequestCall.Params[i].DataType; + Value := ASource.DataRequestCall.Params[i].Value; + UserClassName := ASource.DataRequestCall.Params[i].UserClassName; + end; + end; + end; + end; + } + // ****** Fin migración DA 5 + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + + + diff --git a/Source/Base/uEditorBase.dfm b/Source/Base/uEditorBase.dfm new file mode 100644 index 0000000..9848171 --- /dev/null +++ b/Source/Base/uEditorBase.dfm @@ -0,0 +1,1622 @@ +object fEditorBase: TfEditorBase + Left = 222 + Top = 127 + Width = 662 + Height = 496 + Caption = 'EditorBase' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + KeyPreview = True + OldCreateOrder = False + Position = poDefault + OnCloseQuery = FormCloseQuery + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object JvNavPanelHeader: TJvNavPanelHeader + Left = 0 + Top = 49 + Width = 654 + Align = alTop + Caption = 'Editor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + object Image1: TImage + Left = 627 + Top = 0 + Width = 27 + Height = 27 + Align = alRight + Center = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F + 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601 + 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF + 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301 + BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A + 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741 + EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD + 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D + 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C + D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361 + F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38 + 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3 + 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6 + C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1 + BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805 + 00F0E629EF34B079A30000000049454E44AE426082} + Transparent = True + end + end + object TBXDock: TTBXDock + Left = 0 + Top = 0 + Width = 654 + Height = 49 + AllowDrag = False + object tbxMain: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + DragHandleStyle = dhNone + Images = SmallImages + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actNuevo + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem29: TTBXItem + Action = actGuardarCerrar + DisplayMode = nbdmImageAndText + end + object TBXItem27: TTBXItem + Action = actGuardar + end + object TBXItem5: TTBXItem + Action = actModificar + DisplayMode = nbdmImageAndText + end + object TBXItem4: TTBXItem + Action = actEliminar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem23: TTBXItem + Action = actPrevisualizar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + object TBXItem24: TTBXItem + Action = actConfPagina + Visible = False + end + object TBXItem3: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem10: TTBXSeparatorItem + end + object TBXItem26: TTBXItem + Action = actAnterior + end + object TBXItem25: TTBXItem + Action = actSiguiente + end + object TBXItem6: TTBXItem + Action = actRefrescar + end + object TBXSeparatorItem11: TTBXSeparatorItem + end + object TBXItem28: TTBXItem + Action = actCerrar + end + end + object tbxMenu: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'Menu' + CloseButton = False + DragHandleStyle = dhNone + FullSize = True + Images = SmallImages + MenuBar = True + ProcessShortCuts = True + ShrinkMode = tbsmWrap + TabOrder = 1 + object TBXSubmenuItem4: TTBXSubmenuItem + Caption = '&Archivo' + object TBXItem8: TTBXItem + Action = actNuevo + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object TBXItem30: TTBXItem + Action = actGuardar + end + object TBXItem10: TTBXItem + Action = actModificar + end + object TBXSeparatorItem12: TTBXSeparatorItem + end + object TBXItem11: TTBXItem + Action = actEliminar + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXItem21: TTBXItem + Action = actConfPagina + end + object TBXItem22: TTBXItem + Action = actPrevisualizar + end + object TBXItem9: TTBXItem + Action = actImprimir + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object TBXItem1: TTBXItem + Action = actCerrar + end + end + object TBXSubmenuItem5: TTBXSubmenuItem + Caption = '&Edici'#243'n' + object TBXItem16: TTBXItem + Action = actDeshacer + end + object TBXSeparatorItem8: TTBXSeparatorItem + end + object TBXItem15: TTBXItem + Action = actCortar + end + object TBXItem14: TTBXItem + Action = actCopiar + end + object TBXItem13: TTBXItem + Action = actPegar + end + object TBXSeparatorItem7: TTBXSeparatorItem + end + object TBXItem12: TTBXItem + Action = actLimpiar + end + object TBXSeparatorItem9: TTBXSeparatorItem + end + object TBXItem17: TTBXItem + Action = actSeleccionarTodo + end + end + object TBXSubmenuItem1: TTBXSubmenuItem + Caption = '&Buscar' + object TBXItem32: TTBXItem + Action = actAnterior + end + object TBXItem31: TTBXItem + Action = actSiguiente + end + object TBXSeparatorItem13: TTBXSeparatorItem + end + object TBXItem20: TTBXItem + Action = actBuscar + end + end + object TBXSubmenuItem6: TTBXSubmenuItem + Caption = '&Ver' + object TBXItem18: TTBXItem + Action = actRefrescar + end + end + object TBXSubmenuItem7: TTBXSubmenuItem + Caption = 'Ay&uda' + object TBXItem19: TTBXItem + Action = actAcercaDe + end + end + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 443 + Width = 654 + Height = 19 + Panels = < + item + Width = 50 + end> + Visible = False + end + object EditorActionList: TActionList + Images = SmallImages + Left = 16 + Top = 144 + object actNuevo: TAction + Category = 'Archivo' + Caption = 'Nuevo' + ShortCut = 45 + end + object actModificar: TAction + Category = 'Archivo' + Caption = 'Modificar' + ImageIndex = 18 + end + object actGuardarCerrar: TAction + Category = 'Archivo' + Caption = 'G&uardar y cerrar' + ImageIndex = 17 + OnExecute = actGuardarCerrarExecute + end + object actGuardar: TAction + Category = 'Archivo' + Caption = '&Guardar' + ImageIndex = 17 + end + object actEliminar: TAction + Category = 'Archivo' + Caption = 'Eliminar' + ImageIndex = 4 + ShortCut = 16430 + end + object actConfPagina: TAction + Category = 'Archivo' + Caption = '&Configurar p'#225'gina' + ImageIndex = 8 + end + object actPrevisualizar: TAction + Category = 'Archivo' + Caption = '&Previsualizar' + ImageIndex = 6 + end + object actImprimir: TAction + Category = 'Archivo' + Caption = 'Imprimir' + ImageIndex = 7 + ShortCut = 16464 + end + object actDeshacer: TEditUndo + Category = 'Edici'#243'n' + Caption = 'Deshacer' + Hint = 'Undo|Reverts the last action' + ImageIndex = 12 + ShortCut = 16474 + end + object actCortar: TEditCut + Category = 'Edici'#243'n' + Caption = 'Cortar' + Hint = 'Cortar|Corta la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 3 + ShortCut = 16472 + end + object actCerrar: TAction + Category = 'Archivo' + Caption = 'Cerrar' + OnExecute = actCerrarExecute + end + object actCopiar: TEditCopy + Category = 'Edici'#243'n' + Caption = 'Copiar' + Hint = 'Copiar|Copia la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 2 + ShortCut = 16451 + end + object actPegar: TEditPaste + Category = 'Edici'#243'n' + Caption = 'Pegar' + Hint = 'Pegar|Inserta el contenido del portapapeles' + ImageIndex = 5 + ShortCut = 16470 + end + object actSeleccionarTodo: TEditSelectAll + Category = 'Edici'#243'n' + Caption = 'Seleccionar todo' + Hint = 'Seleccionar todo' + ImageIndex = 11 + ShortCut = 16449 + end + object actLimpiar: TEditDelete + Category = 'Edici'#243'n' + Caption = '&Limpiar' + Hint = 'Limpiar|Borra el texto seleccionado' + ImageIndex = 1 + ShortCut = 46 + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Refrescar' + ImageIndex = 9 + ShortCut = 116 + end + object actAcercaDe: TAction + Category = 'Ayuda' + Caption = 'Acerca de...' + ImageIndex = 0 + end + object actBuscar: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actAnterior: TAction + Category = 'Ver' + Caption = 'Anterior' + ImageIndex = 15 + end + object actSiguiente: TAction + Category = 'Ver' + Caption = 'Siguiente' + ImageIndex = 16 + end + object actCancelarCambios: TAction + Category = 'Archivo' + Caption = 'Cancelar cambios' + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 427 + Top = 80 + Bitmap = {} + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fEditorBase\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 392 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 424 + Top = 120 + end +end diff --git a/Source/Base/uEditorBase.pas b/Source/Base/uEditorBase.pas new file mode 100644 index 0000000..ef16e4f --- /dev/null +++ b/Source/Base/uEditorBase.pas @@ -0,0 +1,218 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls, + JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList, + PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, TB2Dock, TB2Toolbar; + +type + IEditorBase = interface(ICustomEditor) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + function ShowModal : Integer; + end; + + TfEditorBase = class(TCustomEditor, IEditorBase) + actAcercaDe: TAction; + actAnterior: TAction; + actBuscar: TAction; + actCancelarCambios: TAction; + actCerrar: TAction; + actConfPagina: TAction; + actCopiar: TEditCopy; + actCortar: TEditCut; + actDeshacer: TEditUndo; + actEliminar: TAction; + actGuardar: TAction; + actGuardarCerrar: TAction; + actImprimir: TAction; + actLimpiar: TEditDelete; + actModificar: TAction; + actNuevo: TAction; + actPegar: TEditPaste; + actPrevisualizar: TAction; + actRefrescar: TAction; + actSeleccionarTodo: TEditSelectAll; + actSiguiente: TAction; + EditorActionList: TActionList; + JvNavPanelHeader: TJvNavPanelHeader; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBXDock: TTBXDock; + TBXItem1: TTBXItem; + TBXItem10: TTBXItem; + TBXItem11: TTBXItem; + TBXItem12: TTBXItem; + TBXItem13: TTBXItem; + TBXItem14: TTBXItem; + TBXItem15: TTBXItem; + TBXItem16: TTBXItem; + TBXItem17: TTBXItem; + TBXItem18: TTBXItem; + TBXItem19: TTBXItem; + TBXItem2: TTBXItem; + TBXItem20: TTBXItem; + TBXItem21: TTBXItem; + TBXItem22: TTBXItem; + TBXItem23: TTBXItem; + TBXItem24: TTBXItem; + TBXItem25: TTBXItem; + TBXItem26: TTBXItem; + TBXItem27: TTBXItem; + TBXItem28: TTBXItem; + TBXItem29: TTBXItem; + TBXItem3: TTBXItem; + TBXItem30: TTBXItem; + TBXItem31: TTBXItem; + TBXItem32: TTBXItem; + TBXItem4: TTBXItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem8: TTBXItem; + TBXItem9: TTBXItem; + tbxMain: TTBXToolbar; + tbxMenu: TTBXToolbar; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem10: TTBXSeparatorItem; + TBXSeparatorItem11: TTBXSeparatorItem; + TBXSeparatorItem12: TTBXSeparatorItem; + TBXSeparatorItem13: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem4: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXSeparatorItem7: TTBXSeparatorItem; + TBXSeparatorItem8: TTBXSeparatorItem; + TBXSeparatorItem9: TTBXSeparatorItem; + TBXSubmenuItem1: TTBXSubmenuItem; + TBXSubmenuItem4: TTBXSubmenuItem; + TBXSubmenuItem5: TTBXSubmenuItem; + TBXSubmenuItem6: TTBXSubmenuItem; + TBXSubmenuItem7: TTBXSubmenuItem; + StatusBar: TStatusBar; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Image1: TImage; + procedure actCerrarExecute(Sender: TObject); + procedure actGuardarCerrarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + protected + function ModifiedQuery : Boolean; + procedure CreateParams(var Params: TCreateParams); override; + public + constructor Create(AOwner: TComponent); override; + published + procedure FormShow(Sender: TObject); virtual; + end; + + TfEditorBaseClass = class of TfEditorBase; + +implementation + +{$R *.dfm} + +uses + Menus, uDataModuleBase, cxControls; + +{ +********************************* TfEditorBase ********************************* +} +procedure TfEditorBase.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + if actGuardar.Execute then + actCerrar.Execute; + finally + HideHourglassCursor; + end; +end; + +constructor TfEditorBase.Create(AOwner: TComponent); +var + APath : String; +begin + inherited; + with JvFormStorage do + begin + if Pos('_', Self.Name) = 0 then + APath := Self.Name + else + APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); + AppStoragePath := APath; + end; + JvNavPanelHeader.StyleManager := dmBase.StyleManager; +end; + +procedure TfEditorBase.CreateParams(var Params: TCreateParams); +begin + inherited; +end; + +procedure TfEditorBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + if Valid then + CanClose := ModifiedQuery + else + CanClose := False; +end; + +procedure TfEditorBase.FormShow(Sender: TObject); +begin +{ if Assigned(Parent) then + begin + StatusBar.Visible := False; + actCerrar.ShortCut := 0 + end + else begin + StatusBar.Visible := True; + actCerrar.ShortCut := ShortCut(VK_ESCAPE, []); + end;} +end; + +function TfEditorBase.ModifiedQuery: Boolean; +var + Respuesta: Integer; +begin + Result := True; + if Modified then + begin + Respuesta := Application.MessageBox('Se han producido cambios.' + #10#13 + + '¿Desea guardarlos antes de salir?', 'Atención', MB_YESNOCANCEL); + case Respuesta of + IDYES : actGuardar.Execute; + IDNO : actCancelarCambios.Execute; + else + Result := False; + end; + end +{ else + actCancelarCambios.Execute;} +end; + +initialization + RegisterClass(TfEditorBase); + +finalization + UnRegisterClass(TfEditorBase); + +end. diff --git a/Source/Base/uEditorDBBase.ddp b/Source/Base/uEditorDBBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Base/uEditorDBBase.dfm b/Source/Base/uEditorDBBase.dfm new file mode 100644 index 0000000..317e217 --- /dev/null +++ b/Source/Base/uEditorDBBase.dfm @@ -0,0 +1,70 @@ +inherited fEditorDBBase: TfEditorDBBase + Left = 295 + Top = 247 + Caption = 'fEditorDBBase' + ClientHeight = 460 + ClientWidth = 652 + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 652 + ExplicitWidth = 652 + inherited Image1: TImage + Left = 625 + Picture.Data = {00} + ExplicitLeft = 625 + end + end + inherited TBXDock: TTBXDock + Width = 652 + ExplicitWidth = 652 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 652 + end + end + inherited StatusBar: TStatusBar + Top = 441 + Width = 652 + ExplicitTop = 441 + ExplicitWidth = 652 + end + inherited EditorActionList: TActionList + inherited actModificar: TAction + OnUpdate = actModificarUpdate + end + inherited actGuardar: TAction + OnExecute = actGuardarExecute + end + inherited actEliminar: TAction + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + inherited actPrevisualizar: TAction + OnUpdate = actPrevisualizarUpdate + end + inherited actImprimir: TAction + OnUpdate = actImprimirUpdate + end + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + OnUpdate = actRefrescarUpdate + end + inherited actAnterior: TAction + OnExecute = actAnteriorExecute + OnUpdate = actAnteriorUpdate + end + inherited actSiguiente: TAction + OnExecute = actSiguienteExecute + OnUpdate = actSiguienteUpdate + end + inherited actCancelarCambios: TAction + OnExecute = actCancelarCambiosExecute + end + end + object dsDataTable: TDADataSource + Left = 40 + Top = 88 + end +end diff --git a/Source/Base/uEditorDBBase.pas b/Source/Base/uEditorDBBase.pas new file mode 100644 index 0000000..667d42c --- /dev/null +++ b/Source/Base/uEditorDBBase.pas @@ -0,0 +1,305 @@ +unit uEditorDBBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, uDAInterfaces; + +type + IEditorDBBase = interface(IEditorBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBBase = class(TfEditorBase, IEditorDBBase) + dsDataTable: TDADataSource; + procedure actRefrescarExecute(Sender: TObject); + procedure actAnteriorExecute(Sender: TObject); + procedure actSiguienteExecute(Sender: TObject); + procedure actAnteriorUpdate(Sender: TObject); + procedure actSiguienteUpdate(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure actCancelarCambiosExecute(Sender: TObject); + procedure actGuardarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual; + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + private + { Private declarations } + protected + function GetModified: Boolean; override; + published + end; + +var + fEditorDBBase: TfEditorDBBase; + +implementation + +uses + uExceptions, uDataTableUtils, uBizInformesBase, + cxControls, uDADelta; + +{$R *.dfm} + +procedure TfEditorDBBase.actRefrescarExecute(Sender: TObject); +var + ABookmark : TBookmark; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then + Exit; // No continuar con el refresco + + ABookmark := dsDataTable.DataTable.GetBookMark; +// dsDataTable.DataTable.DisableControls; <- No descomentar + + ShowHourglassCursor; + try + dsDataTable.DataTable.Refresh; + + if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + finally + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableControls; <- No descomentar + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Prior; + end; +end; + +procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Next; + end; +end; + +procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.BOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.EOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.Fetching + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actCancelarCambiosExecute(Sender: TObject); +var + dtDetails : TList; + i : integer; + ABookmark : TBookmark; +begin + inherited; + + if Assigned(dsDataTable.DataTable) then + begin + ABookmark := dsDataTable.DataTable.GetBookMark; + dsDataTable.DataTable.DisableControls; +// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar + + ShowHourglassCursor; + { No lo pongo en try..finally para ver posibles errores } + //try + dsDataTable.DataTable.Cancel; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + (TDADataTable(dtDetails.Items[i])).Cancel; + end; + + dsDataTable.DataTable.CancelUpdates; + + { Comprobar si el bookmark no es válido cuando estamos cancelando la + inserción de una fila nueva. + CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!} + try + if (Assigned(ABookmark)) and + (dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + except + end; + + //finally + dsDataTable.DataTable.EnableControls; + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar + HideHourglassCursor + //end; + end; +end; + +procedure TfEditorDBBase.actGuardarExecute(Sender: TObject); +var + dtDetails : TList; + i : integer; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if dsDataTable.DataTable.Editing then + dsDataTable.DataTable.Post; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + if (TDADataTable(dtDetails.Items[i])).Editing then + (TDADataTable(dtDetails.Items[i])).Post; + + dsDataTable.DataTable.ApplyUpdates; + Modified := False; + end; +end; + +function TfEditorDBBase.GetModified: Boolean; +var + dtDetails : TList; + i : integer; + bCambiado : Boolean; +begin + bCambiado := False; + if Assigned(dsDataTable.DataTable) then + begin + bCambiado := (dsDataTable.DataTable.State = dsEdit) or + DeltaValuesAreDifferent(dsDataTable.DataTable.Delta); + + if (not bCambiado) then + begin + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + bCambiado := bCambiado or + ((TDADataTable(dtDetails.Items[i])).State = dsEdit) or + DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta); + if bCambiado then + Break; + end; + end; + end; + + if (not bCambiado) then + bCambiado := inherited GetModified; + + Result := bCambiado; +end; + +procedure TfEditorDBBase.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + { Para resetear el estado de la tabla en el caso de hacer un insert + sin meter ningún dato. } + if Assigned(dsDataTable.DataTable) and (not Modified) then + dsDataTable.DataTable.Cancel; + inherited; +end; + +procedure TfEditorDBBase.actEliminarExecute(Sender: TObject); +var + aObj : IApplyUpdateFailedException; +begin + inherited; + ShowHourglassCursor; + try + if dsDataTable.DataTable.State in dsEditModes then + dsDataTable.DataTable.Cancel; + dsDataTable.DataTable.Delete; + try + dsDataTable.DataTable.ApplyUpdates; + Modified := False; + except + on E: EDAApplyUpdateFailed do + begin + dsDataTable.DataTable.CancelUpdates; + actRefrescar.Execute; + if Supports(dsDataTable.DataTable, IApplyUpdateFailedException, aObj) then + aObj.ShowApplyUpdateFailed(E); + end + else + raise; // Generic exception + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +end. diff --git a/Source/Base/uEditorDBItem.ddp b/Source/Base/uEditorDBItem.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Base/uEditorDBItem.dfm b/Source/Base/uEditorDBItem.dfm new file mode 100644 index 0000000..fe0bcb2 --- /dev/null +++ b/Source/Base/uEditorDBItem.dfm @@ -0,0 +1,60 @@ +inherited fEditorDBItem: TfEditorDBItem + Left = 450 + Top = 321 + Caption = 'fEditorDBItem' + ClientHeight = 465 + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 499 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Width = 656 + ExplicitWidth = 656 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 548 + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + end + end + inherited StatusBar: TStatusBar + Top = 446 + Width = 656 + ExplicitTop = 446 + ExplicitWidth = 656 + end + inherited EditorActionList: TActionList + Top = 112 + inherited actEliminar: TAction + ShortCut = 0 + end + inherited actPrevisualizar: TAction + OnExecute = actPrevisualizarExecute + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + end + inherited dsDataTable: TDADataSource + Left = 48 + Top = 112 + end +end diff --git a/Source/Base/uEditorDBItem.pas b/Source/Base/uEditorDBItem.pas new file mode 100644 index 0000000..d902c74 --- /dev/null +++ b/Source/Base/uEditorDBItem.pas @@ -0,0 +1,89 @@ +unit uEditorDBItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, + uViewBase, JvAppStorage, JvAppRegistryStorage, + JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, uDAInterfaces; + +type + IEditorDBItem = interface(IEditorDBBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) + procedure actEliminarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fEditorDBItem: TfEditorDBItem; + +implementation + +uses + uBizInformesBase; + +{$R *.dfm} + +procedure TfEditorDBItem.actEliminarExecute(Sender: TObject); +begin + inherited; + actCerrar.Execute; +end; + +procedure TfEditorDBItem.actPrevisualizarExecute(Sender: TObject); +var + Respuesta: Integer; + aInf : IBizInformesAware; +begin + inherited; +{ if Modified then + begin + if (Application.MessageBox('Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + + '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then + actGuardar.Execute + else begin + Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); + Exit; + end; + end;} + + if Assigned(dsDataTable.DataTable) and + Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then + aInf.Preview; +end; + +procedure TfEditorDBItem.actImprimirExecute(Sender: TObject); +var + Respuesta: Integer; + aInf : IBizInformesAware; +begin + inherited; +{ if Modified then + begin + if (Application.MessageBox('Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 + + '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then + actGuardar.Execute + else begin + Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); + Exit; + end; + end;} + + if Assigned(dsDataTable.DataTable) and + Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then + aInf.Print; +end; + +end. diff --git a/Source/Base/uEditorGridBase.dfm b/Source/Base/uEditorGridBase.dfm new file mode 100644 index 0000000..2329822 --- /dev/null +++ b/Source/Base/uEditorGridBase.dfm @@ -0,0 +1,1433 @@ +inherited fEditorGridBase: TfEditorGridBase + Left = 441 + Top = 354 + Caption = 'fEditorGridBase' + ClientHeight = 446 + ClientWidth = 703 + ExplicitWidth = 711 + ExplicitHeight = 480 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + Width = 703 + ExplicitTop = 0 + ExplicitWidth = 703 + inherited Image1: TImage + Left = 676 + ExplicitLeft = 676 + end + end + inherited TBXDock: TTBXDock + Top = 27 + Width = 703 + ExplicitTop = 27 + ExplicitWidth = 703 + inherited tbxMain: TTBXToolbar + DefaultDock = TBXDock + ExplicitWidth = 442 + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem33: TTBXItem [7] + Action = actDuplicar + DisplayMode = nbdmImageAndText + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + ExplicitWidth = 703 + inherited TBXSubmenuItem4: TTBXSubmenuItem + object TBXItem34: TTBXItem [7] + Action = actDuplicar + end + object TBXSeparatorItem15: TTBXSeparatorItem [8] + end + end + end + object tbxFiltro: TTBXToolbar + Left = 442 + Top = 23 + Align = alRight + CloseButton = False + DefaultDock = TBXDock + DockMode = dmCannotFloatOrChangeDocks + DockPos = 392 + DockRow = 1 + DragHandleStyle = dhNone + Images = SmallImages + ParentShowHint = False + Resizable = False + ShowHint = True + ShrinkMode = tbsmNone + TabOrder = 2 + object TBXLabelItem1: TTBXLabelItem + Caption = 'Filtrar:' + end + object tbxEditFiltro: TTBXEditItem + EditWidth = 150 + ImageIndex = 10 + EditorFontSettings.Italic = tsTrue + ExtendedAccept = True + Images = SmallImages + ShowImage = True + OnChange = tbxEditFiltroChange + end + object TBXItem7: TTBXItem + Action = actQuitarFiltro + Images = SmallImages + end + end + end + inherited StatusBar: TStatusBar + Top = 427 + Width = 703 + ExplicitTop = 427 + ExplicitWidth = 703 + end + inherited EditorActionList: TActionList + Left = 72 + Top = 120 + inherited actGuardarCerrar: TAction + Enabled = False + end + inherited actGuardar: TAction + Enabled = False + end + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + inherited actPrevisualizar: TAction + OnExecute = actPrevisualizarExecute + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + inherited actCerrar: TAction + Enabled = False + end + inherited actAnterior: TAction + Enabled = False + end + inherited actSiguiente: TAction + Enabled = False + end + inherited actCancelarCambios: TAction + Enabled = False + end + object actQuitarFiltro: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltroExecute + end + object actDuplicar: TAction + Category = 'Archivo' + Caption = 'Duplicar' + ImageIndex = 20 + OnUpdate = actDuplicarUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + object GridPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Duplicar1: TMenuItem + Action = actDuplicar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Previsualizar1: TMenuItem + Action = actPrevisualizar + end + object Imprimir1: TMenuItem + Action = actImprimir + end + end +end diff --git a/Source/Base/uEditorGridBase.pas b/Source/Base/uEditorGridBase.pas new file mode 100644 index 0000000..673bc61 --- /dev/null +++ b/Source/Base/uEditorGridBase.pas @@ -0,0 +1,194 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase, + uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, uDAInterfaces; + +type + IEditorGridBase = interface(IEditorDBBase) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + end; + + TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase) + tbxEditFiltro: TTBXEditItem; + tbxFiltro: TTBXToolbar; + TBXItem7: TTBXItem; + GridPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + TBXLabelItem1: TTBXLabelItem; + actQuitarFiltro: TAction; + N2: TMenuItem; + Previsualizar1: TMenuItem; + Imprimir1: TMenuItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem33: TTBXItem; + actDuplicar: TAction; + TBXSeparatorItem15: TTBXSeparatorItem; + TBXItem34: TTBXItem; + Duplicar1: TMenuItem; + procedure tbxEditFiltroChange(Sender: TObject; const Text: String); + procedure FormShow(Sender: TObject); override; + procedure actPrevisualizarExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actQuitarFiltroExecute(Sender: TObject); + procedure actDuplicarUpdate(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + private + FViewGrid : IViewGridBase; + protected + procedure SetViewGrid(const Value : IViewGridBase); virtual; + function GetViewGrid: IViewGridBase; + public + property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; + constructor Create(AOwner : TComponent); override; + + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleBase, uCustomEditor, cxGridTableView; + +{$R *.dfm} + +{ +********************************* TfEditorGridBase ***************************** +} +destructor TfEditorGridBase.Destroy; +begin + FViewGrid := NIL; + inherited; +end; + +function TfEditorGridBase.GetViewGrid: IViewGridBase; +begin + Result := FViewGrid; +end; + +procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); +begin + FViewGrid := Value; + if Assigned(FViewGrid) then + begin + FViewGrid.PopupMenu := GridPopupMenu; + FViewGrid.OnDblClick := actModificar.OnExecute; + end; +end; + +procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String); +begin + if Assigned(ViewGrid) then + ViewGrid.Filter := Text; +end; + +procedure TfEditorGridBase.FormShow(Sender: TObject); +begin + inherited; + ViewGrid.ShowEmbedded(Self); +end; + +procedure TfEditorGridBase.actPrevisualizarExecute(Sender: TObject); +begin + inherited; + ViewGrid.Preview; +end; + +procedure TfEditorGridBase.actConfPaginaExecute(Sender: TObject); +begin + inherited; + ViewGrid.PrintSetup; +end; + +procedure TfEditorGridBase.actImprimirExecute(Sender: TObject); +begin + inherited; + ViewGrid.Print; +end; + +procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + begin + tbxEditFiltro.Text := ''; + ViewGrid.Filter := ''; + end; +end; + +constructor TfEditorGridBase.Create(AOwner: TComponent); +begin + inherited; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject); +begin + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and not (dsDataTable.DataTable.State = dsInsert) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + begin + ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root); + end; +end; + +procedure TfEditorGridBase.actRefrescarExecute(Sender: TObject); +var + FocusedRow, TopRow : Integer; +begin + TopRow := ViewGrid._FocusedView.Controller.TopRowIndex; + FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex; + ViewGrid._FocusedView.BeginUpdate; + try + inherited; + finally + ViewGrid._FocusedView.EndUpdate; + ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow; + ViewGrid._FocusedView.Controller.TopRowIndex := TopRow; + end; +end; + +initialization + RegisterClass(TfEditorGridBase); + +finalization + UnRegisterClass(TfEditorGridBase); + +end. + diff --git a/Source/Base/uEditorItem.dfm b/Source/Base/uEditorItem.dfm new file mode 100644 index 0000000..106f387 --- /dev/null +++ b/Source/Base/uEditorItem.dfm @@ -0,0 +1,53 @@ +inherited fEditorItem: TfEditorItem + Left = 423 + Top = 273 + Width = 686 + Height = 535 + Caption = 'fEditorItem' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 678 + Visible = False + inherited Image1: TImage + Left = 651 + end + end + object pgPaginas: TPageControl [1] + Left = 0 + Top = 76 + Width = 678 + Height = 406 + ActivePage = pagGeneral + Align = alClient + TabOrder = 1 + object pagGeneral: TTabSheet + Caption = 'General' + end + end + inherited TBXDock: TTBXDock + Width = 678 + inherited tbxMain: TTBXToolbar + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + end + end + end + inherited StatusBar: TStatusBar + Top = 482 + Width = 678 + end + inherited EditorActionList: TActionList + Top = 104 + inherited actEliminar: TAction + ShortCut = 0 + end + end +end diff --git a/Source/Base/uEditorItem.pas b/Source/Base/uEditorItem.pas new file mode 100644 index 0000000..50461c5 --- /dev/null +++ b/Source/Base/uEditorItem.pas @@ -0,0 +1,41 @@ + +unit uEditorItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ActnList, JvExControls, JvComponent, + JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, JvFormAutoSize, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase; + +type + IEditorItem = interface(IEditorBase) + ['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}'] + end; + + TfEditorItem = class(TfEditorBase, IEditorItem) + pagGeneral: TTabSheet; + pgPaginas: TPageControl; + end; + +var + fEditorItem: TfEditorItem; + +implementation + +uses uDataModuleBase; + +{$R *.dfm} + +initialization + RegisterClass(TfEditorItem); + +finalization + + UnRegisterClass(TfEditorItem); + + +end. diff --git a/Source/Base/uEditorPSPreview.dfm b/Source/Base/uEditorPSPreview.dfm new file mode 100644 index 0000000..a3f98e6 --- /dev/null +++ b/Source/Base/uEditorPSPreview.dfm @@ -0,0 +1,15 @@ +object Form1: TForm1 + Left = 580 + Top = 506 + Width = 320 + Height = 240 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/Base/uEditorPSPreview.pas b/Source/Base/uEditorPSPreview.pas new file mode 100644 index 0000000..683b402 --- /dev/null +++ b/Source/Base/uEditorPSPreview.pas @@ -0,0 +1,24 @@ +unit uEditorPSPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxPSPrVw; + +type + TForm1 = class(TCustomdxPSPreviewWindow) + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Base/uEditorPreview.dfm b/Source/Base/uEditorPreview.dfm new file mode 100644 index 0000000..af16215 --- /dev/null +++ b/Source/Base/uEditorPreview.dfm @@ -0,0 +1,937 @@ +inherited fEditorPreview: TfEditorPreview + Left = 521 + Top = 340 + Caption = 'Previsualizar' + WindowState = wsMaximized + OnDestroy = FormDestroy + OnResize = FormResize + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 75 + Visible = False + ExplicitTop = 75 + end + inherited TBXDock: TTBXDock + Height = 75 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + Top = 49 + DefaultDock = TBXDock + Visible = False + ExplicitTop = 49 + ExplicitWidth = 191 + end + inherited tbxMenu: TTBXToolbar + DockPos = -24 + inherited TBXSubmenuItem5: TTBXSubmenuItem + Visible = False + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXSubmenuItem2: TTBXSubmenuItem [3] + Caption = '&Ir' + object TBXItem47: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem43: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem44: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem45: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + Caption = '&Zoom' + inherited TBXItem18: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXItem38: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object TBXSeparatorItem19: TTBXSeparatorItem + end + object TBXItem48: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXItem46: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + end + object TBXSubmenuItem3: TTBXSubmenuItem [5] + Caption = '&Herramientas' + object TBXItem49: TTBXItem + Action = actToolHand + Checked = True + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXItem50: TTBXItem + Action = actToolZoom + GroupIndex = 1 + Images = PreviewSmallImageList + end + end + end + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'TBXToolbar1' + DefaultDock = TBXDock + DragHandleStyle = dhNone + ParentShowHint = False + ShowHint = True + TabOrder = 2 + object TBXItem39: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + Images = SmallImages + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object tbxMano: TTBXItem + Action = actToolHand + Checked = True + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXSeparatorItem14: TTBXSeparatorItem + end + object tbxZoom: TTBXItem + Action = actToolZoom + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXItem42: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + object TBXItem41: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXItem40: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object cbZoom: TTBXComboBoxItem + Caption = 'Zoom' + ReadOnly = True + OnItemClick = cbZoomItemClick + end + object TBXItem37: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + object TBXSeparatorItem16: TTBXSeparatorItem + end + object TBXItem35: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem34: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem33: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem36: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + object TBXSeparatorItem15: TTBXSeparatorItem + end + object TBXItem7: TTBXItem + Action = actCerrar + Images = SmallImages + end + end + end + inherited StatusBar: TStatusBar + Panels = < + item + Width = 150 + end + item + Width = 50 + end> + Visible = True + end + inherited EditorActionList: TActionList + Top = 104 + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actGuardarCerrar: TAction + Enabled = False + Visible = False + end + inherited actGuardar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actConfPagina: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + inherited actDeshacer: TEditUndo + Enabled = False + Visible = False + end + inherited actCortar: TEditCut + Enabled = False + Visible = False + end + inherited actCopiar: TEditCopy + Enabled = False + Visible = False + end + inherited actPegar: TEditPaste + Enabled = False + Visible = False + end + inherited actSeleccionarTodo: TEditSelectAll + Enabled = False + Visible = False + end + inherited actLimpiar: TEditDelete + Enabled = False + Visible = False + end + inherited actBuscar: TAction + Enabled = False + Visible = False + end + inherited actCancelarCambios: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList + Left = 43 + Top = 104 + end + inherited LargeImages: TPngImageList + Left = 75 + Top = 104 + end + inherited JvFormStorage: TJvFormStorage + Left = 376 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 408 + Top = 136 + end + object PreviewActionList: TActionList + Images = PreviewSmallImageList + Left = 344 + Top = 104 + object actPrimeraPagina: TAction + Category = 'Ver' + Caption = 'Primera p'#225'gina' + ImageIndex = 0 + OnExecute = actPrimeraPaginaExecute + end + object actUltimaPagina: TAction + Category = 'Ver' + Caption = #218'ltima p'#225'gina' + ImageIndex = 3 + OnExecute = actUltimaPaginaExecute + end + object actPaginaAnterior: TAction + Category = 'Ver' + Caption = 'P'#225'gina anterior' + ImageIndex = 1 + OnExecute = actPaginaAnteriorExecute + end + object actPaginaSiguiente: TAction + Category = 'Ver' + Caption = 'P'#225'gina siguiente' + ImageIndex = 2 + OnExecute = actPaginaSiguienteExecute + end + object actZoomIn: TAction + Category = 'Ver' + Caption = 'M'#225's zoom' + ImageIndex = 8 + OnExecute = actZoomInExecute + end + object actZoomOut: TAction + Category = 'Ver' + Caption = 'Menos zoom' + ImageIndex = 9 + OnExecute = actZoomOutExecute + end + object actTodaPagina: TAction + Category = 'Ver' + Caption = 'Toda la p'#225'gina' + GroupIndex = 1 + ImageIndex = 4 + OnExecute = actTodaPaginaExecute + end + object actAnchoPagina: TAction + Category = 'Ver' + Caption = 'Ancho de p'#225'gina' + GroupIndex = 1 + ImageIndex = 5 + OnExecute = actAnchoPaginaExecute + end + object actToolHand: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Mano' + GroupIndex = 1 + ImageIndex = 10 + OnExecute = actToolHandExecute + end + object actToolZoom: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Zoom' + GroupIndex = 1 + ImageIndex = 6 + OnExecute = actToolZoomExecute + end + end + object PreviewSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0 + 1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770 + CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405 + C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC + D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01 + 3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D + 657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617 + 93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A34944415478DA + 63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38 + C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6 + 071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5 + 8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100 + CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A + E13771044B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A44944415478DA + 63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC + 240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F + E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A + 7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207 + B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22 + A8E18A4EF6A30000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000EC4944415478DA + C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850 + 2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49 + 127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085 + 84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124 + F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440 + 42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2 + EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42 + E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000017E4944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E + AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092 + 144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0 + 062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363 + B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C + 7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07 + 080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0 + AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC + 6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB + E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C + 0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7 + 0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001714944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19 + 64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF + A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76 + 631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58 + 0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006 + 0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60 + B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1 + BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE + FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6 + 11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277 + 35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37 + 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4 + 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF + 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C + 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187 + 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF + 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0 + 0AF3B40000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000714944415478DA + 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7 + 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF + 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974 + DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C74944415478DA + A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456 + 5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8 + E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D + 5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456 + B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155 + 0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C + A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F + 232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184 + F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA + CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D + A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E + 3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C + 0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266 + C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A + 04D7A238F0C903C3480000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 371 + Top = 104 + Bitmap = {} + end + object PreviewLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001894944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB + 1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683 + D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF + 3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E + B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693 + 8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348 + B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0 + 1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B + BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3 + 5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE + FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92 + 77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580 + 200000A0D9B0E00198A13A0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000FA4944415478DA + 63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F + 5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752 + D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33 + 6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5 + 3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B + 1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F + 6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4 + D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000012E4944415478DA + 63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF + F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F + 10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D + 688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1 + F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1 + C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC + 4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B + 1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74 + FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5 + 0135C0A80504010058FB49E08BBA20470000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001C24944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB + 7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C + E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960 + 5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1 + DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07 + E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778 + AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD + FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832 + 93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459 + 60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E + 06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0 + EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F + 48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370 + 8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0 + E6ADB53E0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002344944415478DA + 63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372 + C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105 + 7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173 + 397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7 + 0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932 + 2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06 + 5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6 + C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418 + 761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE + 868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4 + 43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124 + 8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2 + 30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544 + 7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12 + A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633 + 18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314 + 1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A + DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42 + 6082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003154944415478DA + B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2 + 0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8 + 544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39 + CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62 + 4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA + 0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96 + 425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428 + 914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51 + 5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401 + 8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73 + 80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748 + BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580 + 5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499 + 20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E + 02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058 + D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6 + D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A + 530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE + 646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6 + 1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8 + 04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068 + E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B + A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890 + 30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA + 8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE + 426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001324944415478DA + 63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D + C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E + 15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E + 1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384 + 8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172 + 28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0 + 6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8 + A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB + 0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7 + 002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000007C4944415478DA + 63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20 + 751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21 + F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A + B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000 + 000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002E84944415478DA + A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022 + 4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B + C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3 + CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0 + 373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707 + 057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071 + 2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658 + B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC + 4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07 + DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB + 516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A + D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092 + AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B + 1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF + BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8 + F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2 + 328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686 + 84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187 + E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E + 5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC + 59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240 + 09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492 + 085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05 + FC0592430CFE3F77C7A70000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 403 + Top = 104 + Bitmap = {} + end + object frxReport1: TfrxReport + Version = '3.23.7' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + ReportOptions.CreateDate = 38658.858023541660000000 + ReportOptions.LastChange = 38658.858023541660000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 16 + Top = 200 + Datasets = <> + Variables = <> + Style = <> + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 16 + Top = 240 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 240 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 272 + end + object frxCrossObject1: TfrxCrossObject + Left = 80 + Top = 240 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 80 + Top = 272 + end + object frxGradientObject1: TfrxGradientObject + Left = 16 + Top = 304 + end + object frxDotMatrixExport1: TfrxDotMatrixExport + UseFileCache = True + ShowProgress = True + EscModel = 0 + GraphicFrames = False + SaveToFile = False + UseIniSettings = True + Left = 48 + Top = 304 + end + object frxDialogControls1: TfrxDialogControls + Left = 80 + Top = 304 + end + object frxTIFFExport1: TfrxTIFFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 240 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + PrintOptimized = False + Outline = False + Author = 'FastReport'#174 + Subject = 'FastReport'#174' PDF export' + Background = False + Creator = 'FastReport'#174' (http://www.fast-report.com)' + HTMLTags = False + Left = 144 + Top = 280 + end + object frxBMPExport1: TfrxBMPExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 320 + end +end diff --git a/Source/Base/uEditorPreview.pas b/Source/Base/uEditorPreview.pas new file mode 100644 index 0000000..0197134 --- /dev/null +++ b/Source/Base/uEditorPreview.pas @@ -0,0 +1,311 @@ +unit uEditorPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview, + JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, + frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + ExtCtrls, JvComponentBase; + +type + IEditorPreview = interface(IEditorBase) + ['{7E79BEFC-C817-43D9-A60F-9573D1777068}'] + function GetReport: TfrxReport; + property Report: TfrxReport read GetReport; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + + TfEditorPreview = class(TfEditorBase, IEditorPreview) + TBXToolbar1: TTBXToolbar; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXItem34: TTBXItem; + TBXItem39: TTBXItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXSeparatorItem15: TTBXSeparatorItem; + TBXSeparatorItem16: TTBXSeparatorItem; + cbZoom: TTBXComboBoxItem; + PreviewActionList: TActionList; + PreviewSmallImageList: TPngImageList; + PreviewLargeImageList: TPngImageList; + actPrimeraPagina: TAction; + actUltimaPagina: TAction; + actPaginaAnterior: TAction; + actPaginaSiguiente: TAction; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + actZoomIn: TAction; + actZoomOut: TAction; + actTodaPagina: TAction; + actAnchoPagina: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem37: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + frxReport1: TfrxReport; + actToolHand: TAction; + actToolZoom: TAction; + tbxZoom: TTBXItem; + tbxMano: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxDotMatrixExport1: TfrxDotMatrixExport; + frxDialogControls1: TfrxDialogControls; + frxTIFFExport1: TfrxTIFFExport; + frxPDFExport1: TfrxPDFExport; + frxBMPExport1: TfrxBMPExport; + TBXItem38: TTBXItem; + TBXSeparatorItem19: TTBXSeparatorItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXItem45: TTBXItem; + TBXItem46: TTBXItem; + TBXItem47: TTBXItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem48: TTBXItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem49: TTBXItem; + TBXItem50: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actPrimeraPaginaExecute(Sender: TObject); + procedure actUltimaPaginaExecute(Sender: TObject); + procedure actPaginaAnteriorExecute(Sender: TObject); + procedure actPaginaSiguienteExecute(Sender: TObject); + procedure actZoomInExecute(Sender: TObject); + procedure actTodaPaginaExecute(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actAnchoPaginaExecute(Sender: TObject); + procedure actZoomOutExecute(Sender: TObject); + procedure cbZoomItemClick(Sender: TObject); + procedure actToolHandExecute(Sender: TObject); + procedure actToolZoomExecute(Sender: TObject); + private + FPreview : TfrViewPreview; + function GetReport: TfrxReport; + procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); + procedure UpdateZoom; + public + constructor Create(AOwner: TComponent); override; + property Report: TfrxReport read GetReport; + procedure Print; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + +var + fEditorPreview: TfEditorPreview; + +implementation + +uses + frxRes, frxUtils, frxPrinter, uCustomEditor, uSysFunc, frxFormUtils; + +{$R *.dfm} + +{ TfEditorBase1 } + +function TfEditorPreview.GetReport: TfrxReport; +begin + Result := frxReport1; +end; + + +procedure TfEditorPreview.FormShow(Sender: TObject); +begin + inherited; + UpdateZoom; + actPrimeraPagina.Execute; + FPreview.ShowEmbedded(Self); + Report.ShowPreparedReport; + actAnchoPagina.Execute; +end; + +procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.First; +end; + +procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Last; +end; + +procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Prior; +end; + +procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Next; +end; + +procedure TfEditorPreview.actZoomInExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.UpdateZoom; +begin + cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%'; +end; + +procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmWholePage; + UpdateZoom; +end; + +procedure TfEditorPreview.FormDestroy(Sender: TObject); +begin + inherited; + FPreview.Free; +end; + +procedure TfEditorPreview.FormResize(Sender: TObject); +begin + inherited; + UpdateZoom; +end; + +procedure TfEditorPreview.actImprimirExecute(Sender: TObject); +begin + inherited; + if not frxPrinters.HasPhysicalPrinters then + frxErrorMsg(frxResources.Get('clNoPrinters')) + else + FPreview.Preview.Print; + Enabled := True; +end; + +procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmPageWidth; + UpdateZoom; +end; + +procedure TfEditorPreview.actZoomOutExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.cbZoomItemClick(Sender: TObject); +var + s: String; +begin + FPreview.Preview.SetFocus; + + if cbZoom.ItemIndex = 6 then + actAnchoPagina.Execute + else if cbZoom.ItemIndex = 7 then + actTodaPagina.Execute + else + begin + s := cbZoom.Text; + + if Pos('%', s) <> 0 then + s[Pos('%', s)] := ' '; + while Pos(' ', s) <> 0 do + Delete(s, Pos(' ', s), 1); + + if s <> '' then + FPreview.Preview.Zoom := frxStrToFloat(s) / 100; + end; + + UpdateZoom; +end; + +procedure TfEditorPreview.actToolHandExecute(Sender: TObject); +begin + if tbxMano.Checked then + FPreview.Preview.Tool := ptHand +end; + +procedure TfEditorPreview.actToolZoomExecute(Sender: TObject); +begin + if tbxZoom.Checked then + FPreview.Preview.Tool := ptZoom; +end; + +procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview; + PageNo: Integer); +begin + StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'), + [PageNo, Sender.PageCount]); +end; + +constructor TfEditorPreview.Create(AOwner: TComponent); +begin + inherited; + + with cbZoom.Strings do + begin + Clear; + Add('25%'); + Add('50%'); + Add('75%'); + Add('100%'); + Add('150%'); + Add('200%'); + Add(frxResources.Get('zmPageWidth')); + Add(frxResources.Get('zmWholePage')); + end; + + FPreview := TfrViewPreview.Create(Self); + Report.Preview := FPreview.Preview; + FPreview.Preview.OnPageChanged := OnPageChanged; +end; + +procedure TfEditorPreview.Print; +begin + actImprimir.Execute; +end; + +function TfEditorPreview.ExportToFile: String; +var + AFile : String; +begin + Result := ''; + AFile := DarFicheroTIFFTemporal; + frxTIFFExport1.SeparateFiles := False; + frxTIFFExport1.DefaultPath := ExtractFilePath(AFile); + frxTIFFExport1.FileName := ExtractFileName(AFile); + try + if Report.Export(frxTIFFExport1) then + Result := AFile; + finally + frxTIFFExport1.DefaultPath := ''; + frxTIFFExport1.FileName := ''; + end; +end; + +procedure TfEditorPreview.LoadFromStream(AStream: TStream); +begin + Report.PreviewPages.LoadFromStream(AStream); +end; + +end. diff --git a/Source/Base/uEditorUtils.pas b/Source/Base/uEditorUtils.pas new file mode 100644 index 0000000..68b4b86 --- /dev/null +++ b/Source/Base/uEditorUtils.pas @@ -0,0 +1,108 @@ +unit uEditorUtils; + +interface + +uses + uEditorItem, uDADataTable, Controls; + +type + TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult; + TProcItemEditor = procedure(ABizObject : TDADataTableRules); + TFuncGetEditor = function : IEditorItem; + + TEditorType = (etItem, etItems, etSelectItems); + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; + + +implementation + +uses + Dialogs, Classes, ComObj, SysUtils; + +var + FBizEditorsList : TList; + +type + PBizEditorsRec = ^TBizEditorsRec; + TBizEditorsRec = record + IID : String; + ItemEditor : TFuncItemEditor; + ItemsEditor : TFuncItemEditor; + SelectItemsEditor : TFuncItemEditor; + end; + + +function FindBizEditors(const IID : TGUID) : PBizEditorsRec; +var + P: PBizEditorsRec; + I: Integer; + AIID : String; +begin + Result := NIL; + AIID := GUIDToString(IID); + if FBizEditorsList <> nil then + for I := 0 to FBizEditorsList.Count-1 do + begin + P := FBizEditorsList[I]; + if (AIID = P^.IID) then + begin + Result := P; + Break; + end; + end; +end; + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); +var + P: PBizEditorsRec; +begin + P := NIL; + if FBizEditorsList = nil then + FBizEditorsList := TList.Create; + + P := FindBizEditors(IID); + if not Assigned(P) then + New(P); + try + P^.IID := GUIDToString(IID); + case AType of + etItem : P^.ItemEditor := AFuncItemEditor; + etItems : P^.ItemsEditor := AFuncItemEditor; + etSelectItems : P^.SelectItemsEditor := AFuncItemEditor; + end; + FBizEditorsList.Insert(0, P); + except + on E: EConvertError do + ShowMessage(E.Message); + end; +end; + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; +var + P: PBizEditorsRec; +begin + P := FindBizEditors(IID); + + if Assigned(P) then + case AType of + etItem : Result := P.ItemEditor(ABizObject); + etItems : Result := P.ItemsEditor(ABizObject); + etSelectItems : Result := P.SelectItemsEditor(ABizObject); + end; +end; + + +initialization + FBizEditorsList := TList.Create; + +finalization + FBizEditorsList.Free; + +end. diff --git a/Source/Base/uExceptions.pas b/Source/Base/uExceptions.pas new file mode 100644 index 0000000..a8f8b26 --- /dev/null +++ b/Source/Base/uExceptions.pas @@ -0,0 +1,21 @@ +unit uExceptions; + +interface + +uses + uDADelta; + +const + AUF_FKVIOLATION = 'violation of FOREIGN KEY'; + AUF_HAVEVALUE = 'must have a value'; + +type + IApplyUpdateFailedException = interface + ['{B090A762-3D65-405E-A810-14DB4F6E8F82}'] + procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); + end; + +implementation + +end. + diff --git a/Source/Base/uGridUtils.pas b/Source/Base/uGridUtils.pas new file mode 100644 index 0000000..40b8e6d --- /dev/null +++ b/Source/Base/uGridUtils.pas @@ -0,0 +1,261 @@ +unit uGridUtils; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid; + +type + TRecordInfo = class + KeyValues: Variant; + ALevel: Integer; + end; + + TRecordInfos = class(TList) + private + function GetItem(Index: Integer): TRecordInfo; + protected + procedure Notify(Ptr: Pointer; Action: TListNotification); override; + public + property Items[Index: Integer]: TRecordInfo read GetItem; Default; + end; + + TcxGridStatus = class + protected + GroupRecords: TRecordInfos; + SelectedRecords: TRecordInfos; + SelStartItem: Integer; + SelEndItem: Integer; + AFocusedRow: TRecordInfo; + TopRow: TRecordInfo; + + function SaveRecord(AView: TcxGridDBTableView; GridRecord: + TcxCustomGridRecord): TRecordInfo; + function FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; + + procedure SaveGridViewSelection(AView: TcxGridDBTableView); + procedure LoadGridViewSelection(AView: TcxGridDBTableView); + procedure SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure SaveGridViewExpanded(AView: TcxGridDBTableView); + procedure LoadGridViewExpanded(AView: TcxGridDBTableView); + public + constructor Create(AGridView: TcxGridDBTableView); + destructor Destroy; override; + procedure Restore(AGridView: TcxGridDBTableView); + end; + +implementation + + +uses + cxVariants; + + +procedure TRecordInfos.Notify(Ptr: Pointer; Action: TListNotification); +begin + if Action in [lnExtracted, lnDeleted] then + FreeAndNil(TRecordInfo(Ptr)); +end; + +function TRecordInfos.GetItem(Index: Integer): TRecordInfo; +begin + Result := TRecordInfo(inherited Items[Index]); +end; + +function TcxGridStatus.SaveRecord(AView: TcxGridDBTableView; + GridRecord: TcxCustomGridRecord): TRecordInfo; +begin + Result := TRecordInfo.Create; + Result.KeyValues := + AView.DataController.GetRecordId(GridRecord.RecordIndex); + Result.ALevel := GridRecord.Level; +end; + +function TcxGridStatus.FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; +var + I, ARecordIndex: Integer; + AList: TList; + AKeyValue: Variant; +begin + I := 0; + ARecordIndex := AView.DataController.FindRecordIndexByKey(RecordInfo.KeyValues); + Result := nil; + AList := TList.Create; + try + while I < AView.ViewData.RowCount do + begin + if AView.ViewData.Rows[I] is TcxGridGroupRow then + begin + AList.Clear; + AView.DataController.Groups.LoadRecordIndexesByRowIndex(AList, I); + if AList.IndexOf(Pointer(ARecordIndex)) <> -1 then + begin + if AView.ViewData.Rows[I].Level < RecordInfo.ALevel then + AView.ViewData.Rows[I].Expand(False) + else + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + end + else + begin + AKeyValue := AView.DataController.GetRecordId(AView.ViewData.Rows[I].RecordIndex); + if VarEquals(AKeyValue, RecordInfo.KeyValues) then + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + Inc(I); + end; + finally + FreeAndNil(AList); + end; +end; + +procedure TcxGridStatus.SaveGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + SelectRecordInfo: TRecordInfo; +begin + with AView.DataController, AView.Controller do + begin + for i := 0 To SelectedRecordCount - 1 do + begin + SelectRecordInfo := SaveRecord(AView, SelectedRecords[i]); + Self.SelectedRecords.Add(SelectRecordInfo); + end; + if SelectedColumnCount = 0 then + begin + SelStartItem := -1; + SelEndItem := -1; + end + else + begin + SelStartItem := SelectedColumns[0].Index; + SelEndItem := SelectedColumns[SelectedColumnCount - 1].Index; + end; + end; +end; + +procedure TcxGridStatus.LoadGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + AView.Controller.ClearSelection; + + for i := 0 To SelectedRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, SelectedRecords[i]); + if Assigned(ARecord) then + ARecord.Selected := True; + end; + + if SelStartItem <> -1 then + AView.Controller.SelectColumns(AView.Columns[SelStartItem], + AView.Columns[SelEndItem]); +end; + +procedure TcxGridStatus.SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); +begin + if AView.Controller.FocusedRow = nil then + AFocusedRow := nil + else + AFocusedRow := SaveRecord(AView, AView.Controller.FocusedRow); + TopRow := nil; + if (AView.Controller.TopRowIndex <> -1) and + (AView.Controller.TopRowIndex < AView.ViewData.RecordCount) then + TopRow := SaveRecord(AView, AView.ViewData.Records[AView.Controller.TopRowIndex]); +end; + +procedure TcxGridStatus.LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); +var + ARecord: TcxCustomGridRecord; +begin + ARecord := FindRecordEx(AView, AFocusedRow); + if Assigned(ARecord) then + ARecord.Focused := True; + ARecord := FindRecordEx(AView, TopRow); + if Assigned(ARecord) then + AView.Controller.TopRowIndex := ARecord.Index; +end; + +type + TcxDataControllerGroupsAccess = class(TcxDataControllerGroups); + TcxDataGroupsAccess = class(TcxDataGroups); + +procedure TcxGridStatus.SaveGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + GroupRecordInfo: TRecordInfo; +begin + for i := 0 To AView.DataController.RowCount - 1 do + with AView.ViewData.Records[i] do + if Expanded then + begin + GroupRecordInfo := SaveRecord(AView, AView.ViewData.Records[i]); + GroupRecords.Add(GroupRecordInfo); + end; +end; + +procedure TcxGridStatus.LoadGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + for i := 0 to GroupRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, GroupRecords[i]); + if Assigned(ARecord) then + ARecord.Expand(False); + end; +end; + +constructor TcxGridStatus.Create(AGridView: TcxGridDBTableView); +begin + inherited Create; + GroupRecords := TRecordInfos.Create; + SelectedRecords := TRecordInfos.Create; + SaveGridViewSelection(AGridView); + SaveGridViewExpanded(AGridView); + SaveGridViewTopFocusedRecords(AGridView); +end; + +destructor TcxGridStatus.Destroy; +begin + FreeAndNil(GroupRecords); + FreeAndNil(SelectedRecords); + inherited; +end; + +procedure TcxGridStatus.Restore(AGridView: TcxGridDBTableView); +begin + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 0, 0); + try + AGridView.ViewData.Collapse(True); + LoadGridViewExpanded(AGridView); + LoadGridViewSelection(AGridView); + LoadGridViewTopFocusedRecords(AGridView); + finally + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 1, 0); + RedrawWindow(AGridView.Site.Handle, Nil, 0, RDW_FRAME Or RDW_NOFRAME Or + RDW_ALLCHILDREN Or RDW_INVALIDATE); + end; +end; + + +end. diff --git a/Source/Base/uIntegerList.pas b/Source/Base/uIntegerList.pas new file mode 100644 index 0000000..93d40db --- /dev/null +++ b/Source/Base/uIntegerList.pas @@ -0,0 +1,61 @@ +unit uIntegerList; + +interface + +uses + Classes; + +type + TIntegerList = class(TList) + private + function GetInteger(Index: integer): integer; + procedure SetInteger(Index: integer; Value: integer); + public + procedure Add(Value: integer); reintroduce; + function Find(Value: integer; var Index: Integer): Boolean; + property Integers[index: integer]: integer read GetInteger write SetInteger; default; + end; + +implementation + +function TIntegerList.GetInteger(Index: integer): integer; +begin + result := Integer(Items[index]); +end; + +procedure TIntegerList.SetInteger(Index: integer; Value: integer); +begin + Items[index] := Pointer(Value); +end; + +procedure TIntegerList.Add(Value: integer); +var + Index: integer; +begin + if not Find(Value, Index) then + Insert(Index, Pointer(Value)); +end; + +function TIntegerList.Find(Value: integer; var Index: Integer): Boolean; +var + L, H, I, C: Integer; +begin + Result := False; + L := 0; + H := Count - 1; + while L <= H do + begin + I := (L + H) shr 1; + C := Integers[I] - Value; + if C < 0 then + L := I + 1 + else begin + H := I - 1; + if C = 0 then + Result := True; + end; + end; + Index := L; +end; + +end. diff --git a/Source/Base/uSysFunc.pas b/Source/Base/uSysFunc.pas new file mode 100644 index 0000000..f4c26f4 --- /dev/null +++ b/Source/Base/uSysFunc.pas @@ -0,0 +1,249 @@ +{ +=============================================================================== + Copyright (©) 2002. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 01-11-2002 + Versión actual: 1.0.0 + Fecha versión actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uSysFunc; + +interface + +{ Funciones del sistema } +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; +function DarRutaTemporal : String; +function DarFicheroTemporal : String; +function DarFicheroBMPTemporal : String; +function DarFicheroTIFFTemporal : String; +function DarFicheroExportar (var Fichero : String) : Boolean; +function DarVersionFichero (Executable : String) : String; +function DarFechaFichero (Executable : String) : String; +procedure CopiarFichero(const Origen, Destino: string); +procedure DoDelTree( TheDir : String); +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); + + +implementation + +uses + SysUtils, Windows, Dialogs, + + Messages, Classes, Graphics, Controls, Forms, + StdCtrls; + +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean; +var + StartupInfo : TStartupInfo; + ProcessInfo : TProcessInformation; +begin + {setup the startup information for the application } + FillChar(StartupInfo, SizeOf(TStartupInfo), 0); + with StartupInfo do + begin + cb := SizeOf(TStartupInfo); + dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; + if Oculto then + wShowWindow:= SW_HIDE + else + wShowWindow:= SW_SHOWNORMAL; + end; + + Result := CreateProcess(nil,PChar(LineaComando), nil, nil, False, + NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo); + if Esperar then + if Result then + begin + WaitForInputIdle(ProcessInfo.hProcess, INFINITE); + WaitForSingleObject(ProcessInfo.hProcess, INFINITE); + end; +end; + +function DarRutaTemporal: String; +var + nBufferLength : DWORD; // size, in characters, of the buffer + lpBuffer : PChar; // address of buffer for temp. path +begin + nBufferLength := MAX_PATH + 1; // initialize + GetMem( lpBuffer, nBufferLength ); + try + if GetTempPath( nBufferLength, lpBuffer ) <> 0 then + Result := StrPas( lpBuffer ) + else + Result := ''; + finally + FreeMem( lpBuffer ); + end; +end; + +function DarFicheroTemporal : String; +var + Buf: array [0..MAX_PATH] of Char; + RutaTmp : string; +begin + RutaTmp := DarRutaTemporal; + if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then + SetString(Result, Buf, StrLen(Buf)) + else + Result := ''; +end; + +function DarFicheroTIFFTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif'; +end; + +function DarFicheroBMPTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; +end; + +function DarFicheroExportar (var Fichero : String) : Boolean; +var + DialogoSalvar : TSaveDialog; +begin + Result := False; + DialogoSalvar := TSaveDialog.Create(NIL); + try + with DialogoSalvar do + begin + DefaultExt := 'doc'; + Filter := 'Documento de Word (*.doc)|*.doc'; + 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; +var + Size, Size2: DWord; + Pt, Pt2: Pointer; +begin + Size := GetFileVersionInfoSize(PChar (Executable), Size2); + if Size > 0 then + begin + GetMem (Pt, Size); + try + GetFileVersionInfo (PChar (Executable), 0, Size, Pt); + VerQueryValue (Pt, '\', Pt2, Size2); + with TVSFixedFileInfo (Pt2^) do + begin + Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' + + IntToStr (LoWord (dwFileVersionMS)) + '.' + + IntToStr (HiWord (dwFileVersionLS)) + '.' + + IntToStr (LoWord (dwFileVersionLS)); + end; + finally + FreeMem (Pt); + end; + end; +end; + +function DarFechaFichero (Executable : String) : String; +var + FileTime, LocalFileTime : TFileTime; + SystemTime : TSystemTime; + hFile : Integer; +begin + hFile := FileOpen(Executable, fmShareDenyNone); + try + if hFile <> -1 then + begin + Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime + // Change the file time to local time + FileTimeToLocalFileTime( FileTime, LocalFileTime ); + if FileTimeToSystemTime(LocalFileTime, SystemTime) then + Result := DateTimeToStr(SystemTimeToDateTime(SystemTime)); + end; // if hFile <> 0 + finally + FileClose( hFile ); + end; // try +end; + + +procedure CopiarFichero(const Origen, Destino: string); +var + lpMsgBuf : pchar; +begin + CopyFile(PChar(Origen), PChar(Destino), FALSE); +end; + +procedure DoDelTree(TheDir : String); + Var + Search : TSearchRec; + rec : word; +Begin + If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\'; + rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search); + While rec = 0 Do + Begin + If Search.Name[1] <> '.' Then + Begin +// Is this a directory? + If (Search.Attr And faDirectory) = faDirectory Then + Begin +// If so, lets call DelTree again using this new +// directory as the TheDir parameter. + DoDelTree(TheDir + Search.Name); +// Not that all of the files are gone from this directoy, +// we can remove the directory. + RmDir(TheDir + Search.Name); + End + Else + Begin +// We found a file. +// Now lets reset its attributes so we don't have any problems +// deleting them. + SysUtils.FileSetAttr(TheDir + Search.Name, 0); + SysUtils.DeleteFile(TheDir + Search.Name); + Application.ProcessMessages; + End; + End; + rec := SysUtils.FindNext(Search); + End; + SysUtils.FindClose(Search); +End; + +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); +begin +{$I-} + DoDelTree(DirToKill); +// If we want to delete the choosen directory. + If KillChoosenDir Then + RmDir(DirToKill); + //modified + if IOResult <> 0 then + ShowMessage('Could not delete ' + DirToKill); +//{$I} +end; + + +end. + \ No newline at end of file diff --git a/Source/Base/uViewBarraSeleccion.dfm b/Source/Base/uViewBarraSeleccion.dfm new file mode 100644 index 0000000..cf83624 --- /dev/null +++ b/Source/Base/uViewBarraSeleccion.dfm @@ -0,0 +1,53 @@ +inherited frViewBarraSeleccion: TfrViewBarraSeleccion + Width = 439 + Height = 19 + Align = alBottom + AutoScroll = False + Visible = False + object pnlSeleccion: TPanel + Left = 0 + Top = -18 + Width = 439 + Height = 37 + Align = alBottom + BevelOuter = bvNone + ParentBackground = True + TabOrder = 0 + DesignSize = ( + 439 + 37) + object bSeleccionar: TButton + Left = 264 + Top = 7 + Width = 74 + Height = 23 + Action = actSeleccionar + Anchors = [akRight] + Default = True + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 343 + Top = 7 + Width = 74 + Height = 23 + Action = actCancelar + Anchors = [akRight] + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + end + object ActionListSeleccion: TActionList + Left = 8 + Top = 5 + object actSeleccionar: TAction + Caption = '&Seleccionar' + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end +end diff --git a/Source/Base/uViewBarraSeleccion.pas b/Source/Base/uViewBarraSeleccion.pas new file mode 100644 index 0000000..b09d87f --- /dev/null +++ b/Source/Base/uViewBarraSeleccion.pas @@ -0,0 +1,37 @@ +unit uViewBarraSeleccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls; + +type + TfrViewBarraSeleccion = class(TfrViewBase) + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + ActionListSeleccion: TActionList; + actSeleccionar: TAction; + actCancelar: TAction; + procedure actCancelarExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frViewBarraSeleccion: TfrViewBarraSeleccion; + +implementation + +{$R *.dfm} + +procedure TfrViewBarraSeleccion.actCancelarExecute(Sender: TObject); +begin + inherited; + // +end; + +end. diff --git a/Source/Base/uViewBase.dfm b/Source/Base/uViewBase.dfm new file mode 100644 index 0000000..6b80b72 --- /dev/null +++ b/Source/Base/uViewBase.dfm @@ -0,0 +1,14 @@ +object frViewBase: TfrViewBase + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False +end diff --git a/Source/Base/uViewBase.pas b/Source/Base/uViewBase.pas new file mode 100644 index 0000000..16962ed --- /dev/null +++ b/Source/Base/uViewBase.pas @@ -0,0 +1,32 @@ +unit uViewBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize; + +type + IViewBase = interface(ICustomView) + ['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}'] + procedure Refresh; + end; + + TfrViewBase = class(TCustomView, IViewBase) + public + procedure Refresh; virtual; + end; + +implementation + +{$R *.dfm} + + +{ TfrViewBase } + +procedure TfrViewBase.Refresh; +begin + // +end; + +end. diff --git a/Source/Base/uViewGrid.dfm b/Source/Base/uViewGrid.dfm new file mode 100644 index 0000000..211269d --- /dev/null +++ b/Source/Base/uViewGrid.dfm @@ -0,0 +1,79 @@ +inherited frViewGrid: TfrViewGrid + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 441 + Height = 268 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = dsDataSource + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object dxComponentPrinter: TdxComponentPrinter + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint] + PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins] + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 368 + Top = 128 + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 336 + Top = 128 + end + object cxStyleRepository1: TcxStyleRepository + Left = 296 + Top = 128 + object cxStyleEven: TcxStyle + end + object cxStyleOdd: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaptionText + end + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyleSinOrden: TcxStyle + end + object cxStyleConOrden: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + end +end diff --git a/Source/Base/uViewGrid.pas b/Source/Base/uViewGrid.pas new file mode 100644 index 0000000..c644770 --- /dev/null +++ b/Source/Base/uViewGrid.pas @@ -0,0 +1,86 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, uDAInterfaces; + +type + IViewGrid = interface(IViewGridBase) + ['{7EA40980-AD73-4590-A53A-932316C7B121}'] + end; + + TfrViewGrid = class(TfrViewGridBase, IViewGrid) + cxGrid: TcxGrid; + cxGridLevel: TcxGridLevel; + cxGridView: TcxGridDBTableView; + dxComponentPrinter: TdxComponentPrinter; + dxPSEngineController1: TdxPSEngineController; + cxStyleRepository1: TcxStyleRepository; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + cxStyleSinOrden: TcxStyle; + cxStyleConOrden: TcxStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + end; + +implementation + +uses + uDataModuleBase, uDBSelectionList; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +function TfrViewGrid.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewGrid.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +procedure TfrViewGrid.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(AItem) then + begin + if AItem.SortOrder = soNone then + AStyle := cxStyleSinOrden + else + AStyle := cxStyleConOrden; + end; +end; + +end. + diff --git a/Source/Base/uViewGridBase.ddp b/Source/Base/uViewGridBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Base/uViewGridBase.dfm b/Source/Base/uViewGridBase.dfm new file mode 100644 index 0000000..5695879 --- /dev/null +++ b/Source/Base/uViewGridBase.dfm @@ -0,0 +1,10 @@ +inherited frViewGridBase: TfrViewGridBase + Width = 441 + Height = 268 + ExplicitWidth = 441 + ExplicitHeight = 268 + object dsDataSource: TDADataSource + Left = 8 + Top = 16 + end +end diff --git a/Source/Base/uViewGridBase.pas b/Source/Base/uViewGridBase.pas new file mode 100644 index 0000000..d1c5818 --- /dev/null +++ b/Source/Base/uViewGridBase.pas @@ -0,0 +1,335 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uDAInterfaces; + +type + IViewGridBase = interface(IViewBase) + ['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure Preview; + procedure Print; + procedure PrintSetup; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure GotoFirst; + procedure GotoLast; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + procedure SetDblClick(const Value: TNotifyEvent); + function GetDblClick: TNotifyEvent; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + + procedure SetPopupMenu(const Value: TPopupMenu); + function GetPopupMenu: TPopupMenu; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + + function GetMultiSelect: Boolean; + procedure SetMultiSelect(const Value: Boolean); + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetFilter(const Value: string); + function GetFilter: string; + property Filter: string read GetFilter write SetFilter; + + function GetFilterAsSQL: string; + end; + + + TfrViewGridBase = class(TfrViewBase, IViewGridBase) + dsDataSource: TDADataSource; + private + FFilter: string; + FOnFilterChanged : TNotifyEvent; + FPopupMenu: TPopupMenu; + procedure FiltrarGrid(TextoFiltro : String); + protected + FGridStatus : TcxGridStatus; + FOnDblClick: TNotifyEvent; + function GetMultiSelect: Boolean; virtual; + procedure SetMultiSelect(const Value: Boolean); virtual; + procedure SetPopupMenu(const Value: TPopupMenu); virtual; + function GetPopupMenu: TPopupMenu; virtual; + procedure SetDblClick(const Value: TNotifyEvent); virtual; + function GetDblClick: TNotifyEvent; virtual; + function GetGrid : TcxGrid; virtual; abstract; + function GetFocusedView : TcxGridDBTableView; virtual; abstract; + procedure SetFilter(const Value: string); virtual; + function GetFilter: string; virtual; + procedure FilterChanged(Sender : TObject); virtual; + public + constructor Create(AOwner: TComponent); override; + + procedure ShowEmbedded(const AParent : TWinControl); override; + + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + + procedure GotoFirst; + procedure GotoLast; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + function GetFilterAsSQL: string; + + property Filter: string read GetFilter write SetFilter; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + property _Grid : TcxGrid read GetGrid; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + destructor Destroy; override; + end; + +procedure Register; + +implementation + +uses + CCReg, uDataModuleBase, uDBSelectionList; + +{$R *.dfm} + +procedure Register; +begin + RegisterCustomContainer(TfrViewGridBase); +end; + +{ TfrViewGrid } + +procedure TfrViewGridBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewGridBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewGridBase.Create(AOwner: TComponent); +begin + inherited; + FGridStatus := nil; + FFilter := ''; + FOnFilterChanged := FilterChanged; + FPopupMenu := nil; + FOnDblClick := nil; +end; + +procedure TfrViewGridBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +end; + +function TfrViewGridBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewGridBase.GetFilter: string; +begin + Result := FFilter; +end; + +function TfrViewGridBase.GetMultiSelect: Boolean; +begin + Result := _FocusedView.OptionsSelection.MultiSelect; +end; + +function TfrViewGridBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +procedure TfrViewGridBase.GotoFirst; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewGridBase.GotoLast; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoLast; +end; + +procedure TfrViewGridBase.Preview; +begin + +end; + +procedure TfrViewGridBase.Print; +begin + +end; + +procedure TfrViewGridBase.PrintSetup; +begin + +end; + +procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewGridBase.SetFilter(const Value: string); +begin + if FFilter <> Value then + begin + FFilter := Value; + FiltrarGrid(FFilter); + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); + end; +end; + +procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean); +begin + _FocusedView.OptionsSelection.MultiSelect := True; +// _FocusedView..OnSelectionChanged := SelectionChanged; +end; + +procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; + _FocusedView.PopupMenu := FPopupMenu; +end; + +procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl); +begin + inherited; + + // No activar la tabla ya por si acaso tuviera parámetros +{ if not DADataSource.DataTable.Active then + DADataSource.DataTable.Active := True;} + GotoFirst; + _FocusedView.Focused := True; + if _FocusedView.ViewData.RecordCount > 0 then + begin + _FocusedView.ViewData.Records[0].Selected := True; + _FocusedView.ViewData.Records[0].Focused := True; + end; +end; + +procedure TfrViewGridBase.StoreToRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); +end; + +procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String); +var + Columna: TcxGridDBColumn; + i: Integer; + AItemList: TcxFilterCriteriaItemList; +begin + with _FocusedView.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if Length(TextoFiltro) > 0 then + begin + AItemList := Root.AddItemList(fboAnd); + AItemList.BoolOperatorKind := fboOr; + for i:=0 to (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (_FocusedView as TcxGridDBTableView).Columns[i]; + if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then + AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); + end; + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + + +procedure TfrViewGridBase.FilterChanged(Sender: TObject); +begin + +end; + +destructor TfrViewGridBase.Destroy; +begin + FOnFilterChanged := Nil; + FreeAndNIL(FGridStatus); + inherited; +end; + +procedure TfrViewGridBase.RestoreGridStatus; +begin + if Assigned(FGridStatus) then + FGridStatus.Restore(_FocusedView); +end; + +procedure TfrViewGridBase.SaveGridStatus; +begin + FreeAndNIL(FGridStatus); + FGridStatus := TcxGridStatus.Create(_FocusedView); +end; + +function TfrViewGridBase.GetFilterAsSQL: string; +begin + with _FocusedView.DataController.Filter do + Result := FilterText; +end; + +end. + diff --git a/Source/Base/uViewPreview.dfm b/Source/Base/uViewPreview.dfm new file mode 100644 index 0000000..52e3be3 --- /dev/null +++ b/Source/Base/uViewPreview.dfm @@ -0,0 +1,10 @@ +inherited frViewPreview: TfrViewPreview + object frxPreview: TfrxPreview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + OutlineVisible = False + end +end diff --git a/Source/Base/uViewPreview.pas b/Source/Base/uViewPreview.pas new file mode 100644 index 0000000..c16f376 --- /dev/null +++ b/Source/Base/uViewPreview.pas @@ -0,0 +1,43 @@ +unit uViewPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, frxClass, frxPreview, JvComponent, JvFormAutoSize; + +type + IViewPreview = interface(IViewBase) + ['{F9A96948-4005-4E9B-8045-7B4874A05D19}'] + function GetPreview: TfrxPreview; + property Preview : TfrxPreview read GetPreview; + end; + + TfrViewPreview = class(TfrViewBase, IViewPreview) + frxPreview: TfrxPreview; + private + function GetPreview: TfrxPreview; + public + property Preview : TfrxPreview read GetPreview; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPreview } + +function TfrViewPreview.GetPreview: TfrxPreview; +begin + Result := frxPreview; +end; + +initialization + RegisterClass(TfrViewPreview); + +finalization + UnRegisterClass(TfrViewPreview); + +end. + + diff --git a/Source/CargaEDI/CargaEDI.bdsproj b/Source/CargaEDI/CargaEDI.bdsproj new file mode 100644 index 0000000..3437b92 --- /dev/null +++ b/Source/CargaEDI/CargaEDI.bdsproj @@ -0,0 +1,679 @@ + + + + + + + + + + + + CargaEDI.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + BaseD10;Configuracion;FicherosEDI;rtl;dbrtl;vcldb;DataAbstract_Core_D10;DataAbstract_IDE_D10 + + + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 2.0.0.0 + + + + + + 1.0.0.0 + + + Internet Direct Version 9 (Indy) Property and Component Editors + + + + diff --git a/Source/CargaEDI/CargaEDI.cfg b/Source/CargaEDI/CargaEDI.cfg new file mode 100644 index 0000000..d4335d6 --- /dev/null +++ b/Source/CargaEDI/CargaEDI.cfg @@ -0,0 +1,46 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Cliente" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-LUBaseD7;Configuracion;FicherosEDI +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/CargaEDI/CargaEDI.dof b/Source/CargaEDI/CargaEDI.dof new file mode 100644 index 0000000..75a90da --- /dev/null +++ b/Source/CargaEDI/CargaEDI.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Cliente +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=BaseD7;Configuracion;FicherosEDI +Conditionals= +DebugSourceDirs= +UsePackages=1 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=1 +Release=1 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.1.1.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/CargaEDI/CargaEDI.dpr b/Source/CargaEDI/CargaEDI.dpr new file mode 100644 index 0000000..44e0fec --- /dev/null +++ b/Source/CargaEDI/CargaEDI.dpr @@ -0,0 +1,14 @@ +program CargaEDI; + +uses + Forms, + uCargaEDI in 'uCargaEDI.pas' {fCargaEDI}; + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'Carga automática EDI'; + Application.CreateForm(TfCargaEDI, fCargaEDI); + Application.Run; +end. diff --git a/Source/CargaEDI/CargaEDI.drc b/Source/CargaEDI/CargaEDI.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/CargaEDI/CargaEDI.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/CargaEDI/CargaEDI.identcache b/Source/CargaEDI/CargaEDI.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2895ca953b309136dd0fab9d7ba78e0e49cf873c GIT binary patch literal 239 zcmcJ|JqiLb5C!1iNpgZcfSqi%un@$c)igsA)`(`7`MJL-G&k5+J$MhkgLCdVA0be( zPiZP1TlTT2*0u`V#gHq(rHaqL3klp#!AG^+mn+k&Bo%ldmp4Kr<5XZqUU3QMQKr0c Qw?^uosQvkALm6Z*Uwzw8I{*Lx literal 0 HcmV?d00001 diff --git a/Source/CargaEDI/CargaEDI.rc b/Source/CargaEDI/CargaEDI.rc new file mode 100644 index 0000000..ab63d7e --- /dev/null +++ b/Source/CargaEDI/CargaEDI.rc @@ -0,0 +1,23 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\CargaEDI.ico" +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "2.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/CargaEDI/CargaEDI.res b/Source/CargaEDI/CargaEDI.res new file mode 100644 index 0000000000000000000000000000000000000000..5c6d4bd5049f3e4d0f72eec13a7aa979b5041874 GIT binary patch literal 15548 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 literal 0 HcmV?d00001 diff --git a/Source/CargaEDI/uCargaEDI.ddp b/Source/CargaEDI/uCargaEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/CargaEDI/uCargaEDI.dfm b/Source/CargaEDI/uCargaEDI.dfm new file mode 100644 index 0000000..1a08cf1 --- /dev/null +++ b/Source/CargaEDI/uCargaEDI.dfm @@ -0,0 +1,843 @@ +object fCargaEDI: TfCargaEDI + Left = 470 + Top = 409 + BorderIcons = [] + BorderStyle = bsDialog + Caption = 'Monitor de carga autom'#225'tica' + ClientHeight = 324 + ClientWidth = 367 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label13: TLabel + Left = 40 + Top = 118 + Width = 204 + Height = 14 + Caption = 'Carga autom'#225'tica de ficheros EDI' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Image1: TImage + Left = 0 + Top = 0 + Width = 367 + Height = 100 + Align = alTop + AutoSize = True + Picture.Data = { + 0A544A504547496D616765194A0000FFD8FFE000104A46494600010201004800 + 480000FFE106744578696600004D4D002A000000080007011200030000000100 + 010000011A00050000000100000062011B0005000000010000006A0128000300 + 00000100020000013100020000001B0000007201320002000000140000008D87 + 69000400000001000000A4000000D00000004800000001000000480000000141 + 646F62652050686F746F73686F702043532057696E646F777300323030363A30 + 373A30372031323A35323A3237000000000003A00100030000000100010000A0 + 0200040000000100000177A00300040000000100000064000000000000000601 + 0300030000000100060000011A0005000000010000011E011B00050000000100 + 00012601280003000000010002000002010004000000010000012E0202000400 + 0000010000053E0000000000000048000000010000004800000001FFD8FFE000 + 104A46494600010201004800480000FFED000C41646F62655F434D0001FFEE00 + 0E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B + 11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E + 0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200 + 021101031101FFDD0004000AFFC4013F00000105010101010101000000000000 + 00030001020405060708090A0B01000105010101010101000000000000000100 + 02030405060708090A0B1000010401030204020507060805030C330100021103 + 04211231054151611322718132061491A1B14223241552C16233347282D14307 + 259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3 + D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6 + 37475767778797A7B7C7D7E7F711000202010204040304050607070605350100 + 021103213112044151617122130532819114A1B14223C152D1F0332462E17282 + 92435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2 + B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6 + E6F62737475767778797A7B7C7FFDA000C03010002110311003F00ED3D34BD35 + 6762AF9E0B711EF05CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F6636065 + 6DDD6B9B5B7F79C4347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC3 + 1EB3673EA3C6F7FF00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C78 + 80B90AD698F1E58642447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D + 8971AB85AFE9A5E9AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB + 1B12D89712B85AFE9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C82 + 8BA5B58B4B46C2247BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E + 9A2D2EAEFA9B7547731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F4 + 4D8839741BB1ADC76C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C122410 + 5A4B5C08E1CC7B7DCC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA + 07B59DBE97E916DF4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB + 7DFF00F411EFE8E6E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A + 194E3B0574D6218C1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C7885 + 63888FE7F597CCD235F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CE + F4FAB78E27DD6FF7A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBA + DFEF4FE9F55FDEC4FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE + 9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75B + FDEB47625B12BF12AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325 + A3B12D897D4FDAAA732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C0 + 7716309E3FD2B7D8B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB4235 + 5F8E5C3D1A1D09B3D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6 + EF8408FD8B25A927B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB4 + 47B0F8A5B0F8FE0A69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA + 91EC3E296C3E2A6925AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325 + AA986C3E3F82635CA2A64B55300C8007825B54D3A5AA9FFFD9FFED0B4A50686F + 746F73686F7020332E30003842494D0425000000000010000000000000000000 + 000000000000003842494D03ED00000000001000480000000100020048000000 + 0100023842494D042600000000000E000000000000000000003F800000384249 + 4D040D000000000004000000783842494D04190000000000040000001E384249 + 4D03F3000000000009000000000000000001003842494D040A00000000000100 + 003842494D271000000000000A000100000000000000023842494D03F5000000 + 000048002F66660001006C66660006000000000001002F6666000100A1999A00 + 06000000000001003200000001005A0000000600000000000100350000000100 + 2D000000060000000000013842494D03F80000000000700000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF03E800003842494D040000000000000200023842494D04020000000000 + 0A000000010001000100013842494D0408000000000029000000010000024000 + 000240000000050000072001000006500000002B60000000072001000008E001 + 003842494D041E000000000004000000003842494D041A000000000345000000 + 0600000000000000000000006400000177000000080043006100620065006300 + 6500720061000000010000000000000000000000000000000000000001000000 + 0000000000000001770000006400000000000000000000000000000000010000 + 000000000000000000000000000000000010000000010000000000006E756C6C + 0000000200000006626F756E64734F626A630000000100000000000052637431 + 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 + 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 + 0000017700000006736C69636573566C4C73000000014F626A63000000010000 + 00000005736C6963650000001200000007736C69636549446C6F6E6700000000 + 0000000767726F757049446C6F6E6700000000000000066F726967696E656E75 + 6D0000000C45536C6963654F726967696E0000000D6175746F47656E65726174 + 65640000000054797065656E756D0000000A45536C6963655479706500000000 + 496D672000000006626F756E64734F626A630000000100000000000052637431 + 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 + 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 + 000001770000000375726C54455854000000010000000000006E756C6C544558 + 54000000010000000000004D7367655445585400000001000000000006616C74 + 546167544558540000000100000000000E63656C6C54657874497348544D4C62 + 6F6F6C010000000863656C6C546578745445585400000001000000000009686F + 727A416C69676E656E756D0000000F45536C696365486F727A416C69676E0000 + 000764656661756C740000000976657274416C69676E656E756D0000000F4553 + 6C69636556657274416C69676E0000000764656661756C740000000B6267436F + 6C6F7254797065656E756D0000001145536C6963654247436F6C6F7254797065 + 000000004E6F6E6500000009746F704F75747365746C6F6E6700000000000000 + 0A6C6566744F75747365746C6F6E67000000000000000C626F74746F6D4F7574 + 7365746C6F6E67000000000000000B72696768744F75747365746C6F6E670000 + 0000003842494D042800000000000C000000013FF00000000000003842494D04 + 140000000000040000000D3842494D040C00000000055A00000001000000A000 + 00002B000001E0000050A00000053E00180001FFD8FFE000104A464946000102 + 01004800480000FFED000C41646F62655F434D0001FFEE000E41646F62650064 + 8000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518 + 131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14 + 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200021101031101FFDD + 0004000AFFC4013F000001050101010101010000000000000003000102040506 + 0708090A0B010001050101010101010000000000000001000203040506070809 + 0A0B1000010401030204020507060805030C3301000211030421123105415161 + 1322718132061491A1B14223241552C16233347282D14307259253F0E1F16373 + 3516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A4 + 85B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7 + B7C7D7E7F7110002020102040403040506070706053501000211032131120441 + 51617122130532819114A1B14223C152D1F0332462E1728292435315637334F1 + 250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F346 + 94A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747576777 + 8797A7B7C7FFDA000C03010002110311003F00ED3D34BD356762AF9E0B711EF0 + 5CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F66360656DDD6B9B5B7F79C4 + 347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC31EB3673EA3C6F7FF + 00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C7880B90AD698F1E586 + 42447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D8971AB85AFE9A5E9 + AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB1B12D89712B85AFE + 9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C828BA5B58B4B46C224 + 7BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E9A2D2EAEFA9B7547 + 731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F44D8839741BB1ADC7 + 6C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C1224105A4B5C08E1CC7B7D + CC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA07B59DBE97E916DF + 4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB7DFF00F411EFE8E6 + E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A194E3B0574D6218C + 1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C788563888FE7F597CCD2 + 35F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CEF4FAB78E27DD6FF7 + A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBADFEF4FE9F55FDEC4 + FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE9F56F1C4FBADFEF5 + A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75BFDEB47625B12BF12 + AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325A3B12D897D4FDAAA + 732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C07716309E3FD2B7D8 + B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB42355F8E5C3D1A1D09B3 + D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6EF8408FD8B25A927 + B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB447B0F8A5B0F8FE0A + 69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA91EC3E296C3E2A69 + 25AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325AA986C3E3F82635C + A2A64B55300C8007825B54D3A5AA9FFFD93842494D0421000000000053000000 + 01010000000F00410064006F00620065002000500068006F0074006F00730068 + 006F00700000001200410064006F00620065002000500068006F0074006F0073 + 0068006F007000200043005300000001003842494D0406000000000007000500 + 0100010100FFE11934687474703A2F2F6E732E61646F62652E636F6D2F786170 + 2F312E302F003C3F787061636B657420626567696E3D27EFBBBF272069643D27 + 57354D304D7043656869487A7265537A4E54637A6B633964273F3E0A3C783A78 + 6D706D65746120786D6C6E733A783D2761646F62653A6E733A6D6574612F2720 + 783A786D70746B3D27584D5020746F6F6C6B697420332E302D32382C20667261 + 6D65776F726B20312E36273E0A3C7264663A52444620786D6C6E733A7264663D + 27687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264 + 662D73796E7461782D6E73232720786D6C6E733A69583D27687474703A2F2F6E + 732E61646F62652E636F6D2F69582F312E302F273E0A0A203C7264663A446573 + 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 + 382D306461362D313164622D393366622D616463643939616537623064270A20 + 20786D6C6E733A657869663D27687474703A2F2F6E732E61646F62652E636F6D + 2F657869662F312E302F273E0A20203C657869663A436F6C6F7253706163653E + 313C2F657869663A436F6C6F7253706163653E0A20203C657869663A50697865 + 6C5844696D656E73696F6E3E3337353C2F657869663A506978656C5844696D65 + 6E73696F6E3E0A20203C657869663A506978656C5944696D656E73696F6E3E31 + 30303C2F657869663A506978656C5944696D656E73696F6E3E0A203C2F726466 + 3A4465736372697074696F6E3E0A0A203C7264663A4465736372697074696F6E + 207264663A61626F75743D27757569643A38643632323166382D306461362D31 + 3164622D393366622D616463643939616537623064270A2020786D6C6E733A70 + 64663D27687474703A2F2F6E732E61646F62652E636F6D2F7064662F312E332F + 273E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A4465 + 736372697074696F6E207264663A61626F75743D27757569643A386436323231 + 66382D306461362D313164622D393366622D616463643939616537623064270A + 2020786D6C6E733A70686F746F73686F703D27687474703A2F2F6E732E61646F + 62652E636F6D2F70686F746F73686F702F312E302F273E0A20203C70686F746F + 73686F703A486973746F72793E3C2F70686F746F73686F703A486973746F7279 + 3E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A446573 + 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 + 382D306461362D313164622D393366622D616463643939616537623064270A20 + 20786D6C6E733A746966663D27687474703A2F2F6E732E61646F62652E636F6D + 2F746966662F312E302F273E0A20203C746966663A4F7269656E746174696F6E + 3E313C2F746966663A4F7269656E746174696F6E3E0A20203C746966663A5852 + 65736F6C7574696F6E3E37322F313C2F746966663A585265736F6C7574696F6E + 3E0A20203C746966663A595265736F6C7574696F6E3E37322F313C2F74696666 + 3A595265736F6C7574696F6E3E0A20203C746966663A5265736F6C7574696F6E + 556E69743E323C2F746966663A5265736F6C7574696F6E556E69743E0A203C2F + 7264663A4465736372697074696F6E3E0A0A203C7264663A4465736372697074 + 696F6E207264663A61626F75743D27757569643A38643632323166382D306461 + 362D313164622D393366622D616463643939616537623064270A2020786D6C6E + 733A7861703D27687474703A2F2F6E732E61646F62652E636F6D2F7861702F31 + 2E302F273E0A20203C7861703A437265617465446174653E323030362D30372D + 30375431323A35323A32372B30313A30303C2F7861703A437265617465446174 + 653E0A20203C7861703A4D6F64696679446174653E323030362D30372D303754 + 31323A35323A32372B30313A30303C2F7861703A4D6F64696679446174653E0A + 20203C7861703A4D65746164617461446174653E323030362D30372D30375431 + 323A35323A32372B30313A30303C2F7861703A4D65746164617461446174653E + 0A20203C7861703A43726561746F72546F6F6C3E41646F62652050686F746F73 + 686F702043532057696E646F77733C2F7861703A43726561746F72546F6F6C3E + 0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A44657363 + 72697074696F6E207264663A61626F75743D27757569643A3864363232316638 + 2D306461362D313164622D393366622D616463643939616537623064270A2020 + 786D6C6E733A73745265663D27687474703A2F2F6E732E61646F62652E636F6D + 2F7861702F312E302F73547970652F5265736F7572636552656623270A202078 + 6D6C6E733A7861704D4D3D27687474703A2F2F6E732E61646F62652E636F6D2F + 7861702F312E302F6D6D2F273E0A20203C7861704D4D3A446572697665644672 + 6F6D207264663A7061727365547970653D275265736F75726365273E0A202020 + 3C73745265663A696E7374616E636549443E757569643A38643632323166342D + 306461362D313164622D393366622D6164636439396165376230643C2F737452 + 65663A696E7374616E636549443E0A2020203C73745265663A646F63756D656E + 7449443E61646F62653A646F6369643A70686F746F73686F703A633838336237 + 36382D306461322D313164622D393366622D6164636439396165376230643C2F + 73745265663A646F63756D656E7449443E0A20203C2F7861704D4D3A44657269 + 76656446726F6D3E0A20203C7861704D4D3A446F63756D656E7449443E61646F + 62653A646F6369643A70686F746F73686F703A38643632323166372D30646136 + 2D313164622D393366622D6164636439396165376230643C2F7861704D4D3A44 + 6F63756D656E7449443E0A203C2F7264663A4465736372697074696F6E3E0A0A + 203C7264663A4465736372697074696F6E207264663A61626F75743D27757569 + 643A38643632323166382D306461362D313164622D393366622D616463643939 + 616537623064270A2020786D6C6E733A64633D27687474703A2F2F7075726C2E + 6F72672F64632F656C656D656E74732F312E312F273E0A20203C64633A666F72 + 6D61743E696D6167652F6A7065673C2F64633A666F726D61743E0A203C2F7264 + 663A4465736372697074696F6E3E0A0A3C2F7264663A5244463E0A3C2F783A78 + 6D706D6574613E0A202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020200A20202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020200A2020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020200A202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020200A20202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 0A20202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020200A2020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020200A202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020200A20202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020200A2020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020200A202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020200A20 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020200A20202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020200A2020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020200A202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020200A20202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020200A2020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020202020200A202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 200A202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020200A20202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020200A2020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020200A202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020200A20202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020202020200A2020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020202020202020200A + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020200A202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020200A20202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020200A2020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020200A202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020200A20202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020202020202020200A2020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20200A2020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020200A202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020200A20202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020200A2020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020200A202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020200A20202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 0A20202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020200A2020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020200A202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020200A20202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020200A3C3F787061636B657420656E643D2777273F3EFFE20C5849 + 43435F50524F46494C4500010100000C484C696E6F021000006D6E7472524742 + 2058595A2007CE00020009000600310000616373704D53465400000000494543 + 20735247420000000000000000000000000000F6D6000100000000D32D485020 + 2000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000011637072740000015000000033646573 + 63000001840000006C77747074000001F000000014626B707400000204000000 + 147258595A00000218000000146758595A0000022C000000146258595A000002 + 4000000014646D6E640000025400000070646D6464000002C400000088767565 + 640000034C0000008676696577000003D4000000246C756D69000003F8000000 + 146D6561730000040C0000002474656368000004300000000C72545243000004 + 3C0000080C675452430000043C0000080C625452430000043C0000080C746578 + 7400000000436F70797269676874202863292031393938204865776C6574742D + 5061636B61726420436F6D70616E790000646573630000000000000012735247 + 422049454336313936362D322E31000000000000000000000012735247422049 + 454336313936362D322E31000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000058595A + 20000000000000F35100010000000116CC58595A200000000000000000000000 + 000000000058595A200000000000006FA2000038F50000039058595A20000000 + 00000062990000B785000018DA58595A2000000000000024A000000F840000B6 + CF64657363000000000000001649454320687474703A2F2F7777772E6965632E + 636800000000000000000000001649454320687474703A2F2F7777772E696563 + 2E63680000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000064657363000000000000002E494543 + 2036313936362D322E312044656661756C742052474220636F6C6F7572207370 + 616365202D207352474200000000000000000000002E4945432036313936362D + 322E312044656661756C742052474220636F6C6F7572207370616365202D2073 + 5247420000000000000000000000000000000000000000000064657363000000 + 000000002C5265666572656E63652056696577696E6720436F6E646974696F6E + 20696E2049454336313936362D322E3100000000000000000000002C52656665 + 72656E63652056696577696E6720436F6E646974696F6E20696E204945433631 + 3936362D322E3100000000000000000000000000000000000000000000000000 + 0076696577000000000013A4FE00145F2E0010CF140003EDCC0004130B00035C + 9E0000000158595A2000000000004C09560050000000571FE76D656173000000 + 0000000001000000000000000000000000000000000000028F00000002736967 + 20000000004352542063757276000000000000040000000005000A000F001400 + 19001E00230028002D00320037003B00400045004A004F00540059005E006300 + 68006D00720077007C00810086008B00900095009A009F00A400A900AE00B200 + B700BC00C100C600CB00D000D500DB00E000E500EB00F000F600FB0101010701 + 0D01130119011F0125012B01320138013E0145014C0152015901600167016E01 + 75017C0183018B0192019A01A101A901B101B901C101C901D101D901E101E901 + F201FA0203020C0214021D0226022F02380241024B0254025D02670271027A02 + 84028E029802A202AC02B602C102CB02D502E002EB02F50300030B0316032103 + 2D03380343034F035A03660372037E038A039603A203AE03BA03C703D303E003 + EC03F9040604130420042D043B0448045504630471047E048C049A04A804B604 + C404D304E104F004FE050D051C052B053A05490558056705770586059605A605 + B505C505D505E505F6060606160627063706480659066A067B068C069D06AF06 + C006D106E306F507070719072B073D074F076107740786079907AC07BF07D207 + E507F8080B081F08320846085A086E0882089608AA08BE08D208E708FB091009 + 25093A094F09640979098F09A409BA09CF09E509FB0A110A270A3D0A540A6A0A + 810A980AAE0AC50ADC0AF30B0B0B220B390B510B690B800B980BB00BC80BE10B + F90C120C2A0C430C5C0C750C8E0CA70CC00CD90CF30D0D0D260D400D5A0D740D + 8E0DA90DC30DDE0DF80E130E2E0E490E640E7F0E9B0EB60ED20EEE0F090F250F + 410F5E0F7A0F960FB30FCF0FEC1009102610431061107E109B10B910D710F511 + 131131114F116D118C11AA11C911E81207122612451264128412A312C312E313 + 03132313431363138313A413C513E5140614271449146A148B14AD14CE14F015 + 12153415561578159B15BD15E0160316261649166C168F16B216D616FA171D17 + 411765178917AE17D217F7181B18401865188A18AF18D518FA19201945196B19 + 9119B719DD1A041A2A1A511A771A9E1AC51AEC1B141B3B1B631B8A1BB21BDA1C + 021C2A1C521C7B1CA31CCC1CF51D1E1D471D701D991DC31DEC1E161E401E6A1E + 941EBE1EE91F131F3E1F691F941FBF1FEA20152041206C209820C420F0211C21 + 48217521A121CE21FB22272255228222AF22DD230A23382366239423C223F024 + 1F244D247C24AB24DA250925382568259725C725F726272657268726B726E827 + 182749277A27AB27DC280D283F287128A228D429062938296B299D29D02A022A + 352A682A9B2ACF2B022B362B692B9D2BD12C052C392C6E2CA22CD72D0C2D412D + 762DAB2DE12E162E4C2E822EB72EEE2F242F5A2F912FC72FFE3035306C30A430 + DB3112314A318231BA31F2322A3263329B32D4330D3346337F33B833F1342B34 + 65349E34D83513354D358735C235FD3637367236AE36E937243760379C37D738 + 143850388C38C839053942397F39BC39F93A363A743AB23AEF3B2D3B6B3BAA3B + E83C273C653CA43CE33D223D613DA13DE03E203E603EA03EE03F213F613FA23F + E24023406440A640E74129416A41AC41EE4230427242B542F7433A437D43C044 + 034447448A44CE45124555459A45DE4622466746AB46F04735477B47C0480548 + 4B489148D7491D496349A949F04A374A7D4AC44B0C4B534B9A4BE24C2A4C724C + BA4D024D4A4D934DDC4E254E6E4EB74F004F494F934FDD5027507150BB510651 + 50519B51E65231527C52C75313535F53AA53F65442548F54DB5528557555C256 + 0F565C56A956F75744579257E0582F587D58CB591A596959B85A075A565AA65A + F55B455B955BE55C355C865CD65D275D785DC95E1A5E6C5EBD5F0F5F615FB360 + 05605760AA60FC614F61A261F56249629C62F06343639763EB6440649464E965 + 3D659265E7663D669266E8673D679367E9683F689668EC6943699A69F16A486A + 9F6AF76B4F6BA76BFF6C576CAF6D086D606DB96E126E6B6EC46F1E6F786FD170 + 2B708670E0713A719571F0724B72A67301735D73B87414747074CC7528758575 + E1763E769B76F8775677B37811786E78CC792A798979E77A467AA57B047B637B + C27C217C817CE17D417DA17E017E627EC27F237F847FE5804780A8810A816B81 + CD8230829282F4835783BA841D848084E3854785AB860E867286D7873B879F88 + 04886988CE8933899989FE8A648ACA8B308B968BFC8C638CCA8D318D988DFF8E + 668ECE8F368F9E9006906E90D6913F91A89211927A92E3934D93B69420948A94 + F4955F95C99634969F970A977597E0984C98B89924999099FC9A689AD59B429B + AF9C1C9C899CF79D649DD29E409EAE9F1D9F8B9FFAA069A0D8A147A1B6A226A2 + 96A306A376A3E6A456A4C7A538A5A9A61AA68BA6FDA76EA7E0A852A8C4A937A9 + A9AA1CAA8FAB02AB75ABE9AC5CACD0AD44ADB8AE2DAEA1AF16AF8BB000B075B0 + EAB160B1D6B24BB2C2B338B3AEB425B49CB513B58AB601B679B6F0B768B7E0B8 + 59B8D1B94AB9C2BA3BBAB5BB2EBBA7BC21BC9BBD15BD8FBE0ABE84BEFFBF7ABF + F5C070C0ECC167C1E3C25FC2DBC358C3D4C451C4CEC54BC5C8C646C6C3C741C7 + BFC83DC8BCC93AC9B9CA38CAB7CB36CBB6CC35CCB5CD35CDB5CE36CEB6CF37CF + B8D039D0BAD13CD1BED23FD2C1D344D3C6D449D4CBD54ED5D1D655D6D8D75CD7 + E0D864D8E8D96CD9F1DA76DAFBDB80DC05DC8ADD10DD96DE1CDEA2DF29DFAFE0 + 36E0BDE144E1CCE253E2DBE363E3EBE473E4FCE584E60DE696E71FE7A9E832E8 + BCE946E9D0EA5BEAE5EB70EBFBEC86ED11ED9CEE28EEB4EF40EFCCF058F0E5F1 + 72F1FFF28CF319F3A7F434F4C2F550F5DEF66DF6FBF78AF819F8A8F938F9C7FA + 57FAE7FB77FC07FC98FD29FDBAFE4BFEDCFF6DFFFFFFEE000E41646F62650064 + 4000000001FFDB00840004030303030304030304060403040607050404050708 + 0606070606080A0809090909080A0A0C0C0C0C0C0A0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C010405050807080F0A0A0F140E0E0E14140E0E0E0E14 + 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0CFFC00011080064017703011100021101031101FFDD + 0004002FFFC400B2000101000105010000000000000000000000010203040607 + 0805010101000203010000000000000000000000010405020306071000010205 + 020109050505040B01000000010002120313040511215131416191D114D40607 + 812255951771A1B13252F13324154542722325C16282A2B273A3549465851611 + 010100020004030407050607000000000011010212031304216105314151A171 + 81C12232B20691D172A2D2F0B142529214C2E2F22333B334FFDA000C03010002 + 110311003F00F4B525ECEBCFC292948535690A4A5214D291292BC442994A4292 + 711169A94894D5A429A5214D290A694819494853D1290A4948534A429A5214D2 + 90A69429EE948534A42994A429A52148FB5290A7D6948534A42994A429A52149 + 290A65290A65290A6948534A42927110A453888534A42994A42994A404B29485 + 34A429A522534A45A69C44291294852E64A429A523FFD0F50535EB6B45169A52 + 14D2AC4A4948196948534A90A7EC1D2956235AD700E690E69E42370948B48254 + 8534AB0A695214D5AB0A6A548534AB0A7FB1290A695214D28532948534A429A5 + 214D28534A429A5214928534AB0A695214FA128534A429A5214D5A2534A45A69 + 5614F82548535290A6AD214D290A6948534A429A944A6AD22996944A6948534A + 2D3D5290A694894D290A6948FFD1F55D25EA389A68524A429A506CADC0E3CFB9 + FC352B8EDBCC672B8D6E6387CFF3D58CE7D2C4D9DE5F4C047BB2A506EBA6FB3B + FC43BF26F2D62E3B8DB6FC3877E797A69F8F6C6194A67A8B990458E2A5D95BB8 + ED3AF2706BDBEC6161FF00A653A9B63DB97567B8EDF1ECCD695DF907CD53C479 + AF30B1846F059B093F646699EB056472A6CC2E77AA6BA7E1D7EC6DBD3833A45C + 79870B3A7BE78C7DEEB2CCC3A9826C401E888CB2E3D2564F331C3965E37EA69A + EFFE6C39E53DD75548534A44A6948534A45A6948534A90A695529A711169A521 + 4F44A910CB4AAA25A522532948534A4532D2A2534A2D3D12AC29F3A5214C2711 + 129A5429EC948534AB169A522524A8534AA534E20A652A429A55853EA5690A6A + 5214D290A695214D28534A429A5214D2AC2925214CA5214D2A3FFFD2F5AD35E8 + EB530A7D0945A69462E0F960CC943598C11307170DC299F1C45C7878B82E1AE5 + B6136E2C4681B69713A4B34D8402612C3ED690B6BDAE9C7C8C793C6FAAFF00DB + EEF6F39B7C9CC2DB350B0089746FDB5CBA74EE3C1B4C865C3DA7572EEE576F1D + 5CDE7D70AF244D6B7CFDE65B7076BBB7B6B860E34B50E3D7314EF74E18F5BE9B + CCE3ED75CFC2E3E6ECBA656B6B3CA6948534A42994A14CA50A69404B4A14D285 + 34A429A5214FA129129A522D34A429A5214D290A65290A69429F4250A69429A5 + 214D289014A45A7FB128534A429A5214FA12894D29169A5129F42522D34A2534 + A1068354A46CE5E46D2792DB3AB7B09D1C6CA44EBB6B4F268E3218F03DAB036F + 50E463338AFF000E33BFE4C6CC8C76DCCCFBA7D3F77FBD8CDC9DB48DEE245E49 + 6F3BA6D8DDCB68FB4BA5003DABA33EAFDAE3DBB671F4EBBEBF9B573FF65CDF85 + FAF1FBDAF6B73677F2ABD94F9771275D2394F0F6EA3947BA7956C795CFE5F375 + E2D36C6D8F8EB9AC6DF97B6999B6265AF4CAEEAE2535290A6528534A47FFD3F5 + FC0B7D5AC29A52065A50A694751F99677F29F355FC91A319384A9ED68E4DD907 + 37F702F4BE91AF1E9B6BF0CBC67EA5C70EDCBE67C719D7FD3FF524BCE68DFCCB + 6B9ED9E571DC346E737AB4FBCB9E9DB386FDC365E49C837EA75B02ED3BF63E7D + B81C5CC2277E12D6ABD63978D74C671EECBDE7E9CDF6DBB6DAE33F8BC3E89877 + 8535E62BD214D284094204A429A950A695481290A69429AB48532A5214FA15A2 + 534A2D3528197A250A6AD214FA14A14D290A6AD214D28533C1290814A40CB4A4 + 29A52025AB48534A841D095614D4A253569081291604A44A6948F91E6564C18B + 6B658639D32EEC65964E05D29EC9979258E63DA08D5AE692D70FD2569BD67999 + D3B5DB38F8EBF9F5B8FAF1E0CDECB5C679D8BE7F972E59333D91B6B16C5849D2 + 98C01B1DA3E44D9000D80602F973341FF282D0EDDD733A775D33F549F667F95B + 2C72F5E2F1D9C03CC3E709AC8F4B3BA277D440D67FC6E6AF1BDF73B9FB7BB2DC + F235D31EF713F23E76E32DE7E9D20C912249C65C4C9835D5EF74BB8B66B0BF4D + BDD0F769F9B488EEB61FA3BA9AF77CCC6D9F6E9ECF77E2D589EB3C39E4EB9C63 + FC5F665DAD0742FACD7928409420E84A14D2A3FFD4F64C0B755AF20294203A72 + 252102523A5FD58B3C83BCCB622CADCCE9D712A1952E434BA6386849886FF960 + 7127920FB1CBD47A0F3B4D37DB8F38C627BDE67F5276BBF3FB5C74F5CEDB6BB6 + 3C35F1CF8FDD70D9AE18FB775C5FDC4665EB1DBD80EF6F04687474C61A4DE5DF + FC4739BCEC5E8399EA1CBCEDC3CBC5CFC76FB9AFCFEF7F2FD6F33D97E98EE799 + 8BCECE3978F87E2DFF00A7F9BEA70BCBF9D728F8998CB3EE968D04BE7CC35EE3 + 400F26DA6BC21682B1BB8DB99D3DB6CE7C718F663C35FEAF9BD9767E89DA7233 + 8FBBC59FF36FF7BFE5F93B7BCA779E43F2CCC9796B6C4E6EFB2E587FCCEEF179 + 89D3747B74743FC0C2D041FEC8E45E079BDE6FCCFC55BFCE3DCE6D6FEA7E0A6C + D6B2E24DDE3E41D4BAEB216391B290DD012019971692DBA93B0116AB51DF7A86 + 7B6E5F1E34DB7F1935C6D9FCBAED9F93B791DBE399B4B8C7ECFDEDBC9F5630B3 + E54B9B2F1D947B6600E6BA5E2B2D35875FD2F65916B87483A2CCE5F719DB5C6D + 9D738B8F63AB6E5CCE71599F5530EDD4BB1B9601A3524E1F31A01FF82BB3ABE5 + 971E0691F577CBE06BDCF27F29CBF8157ABE49C0C59EB0601E746E3F2A4F461B + 33E014EAF92F03703D52C4BB718CCB1FFE3E63C0A75BCB2701F54B123FA5E5BE + 4F98F029D5F2C9C09F54F103FA665BE4F98F02A75BCB27007D55C3FC372DF27C + C7814EB7964E04FAAB87F86E5BE4F98F02AF5BCB2702FD55C39E4C6E5BE4F98F + 02A75BCB2701F55311F0CCB7C9F31E053ADE59380FAA788F8665BE4F98F02AF5 + BCB2702FD52C4FC332DF27CC7814EB7964E03EA9627E1996F93E63C0A75BCB27 + 02FD51C4FC332DF27CC7814EAF964E04FAA589F8665BE4F97F029D5F2C9C01F5 + 4B13F0CCB7C9F31E053ADE593813EA9E23E1996F93E63C0A75BCB2701F55311F + 0CCB7C9F31E053ADE593813EAAE1FE1B96F93E63C0A75BCB2701F5570FF0CCB7 + C9F31E053ADE59383CCFAAB87F86E5BE4F98F029D5F2C9C0A3D54C41FE9996F9 + 3E63C0A757CB2702FD52C49FE9996F93E63C0A75BCB270317FAAB88672E2F2FE + CC3664FE16054EB7964E062CF5630EF3A0C5E5FDB85CD0FC6C0275BCB27079B3 + FAA988E7C665BE4F98F02AF5BCB270327FAA7E5F956D367CF97736F318E96D95 + 6973677F6F733AA3A1264C99B6AD99321E781AE5ACE7FA96DCAE7E9CAC72F6CE + 37FF0014DB875FA73C3C3FEADB564F2FB6C6DA676E2C627BBC3F7B1FAA788E4F + E5996D47FE9F31E056CFADE596374D0FAA988D5A3F9665BDE3A0FF0027CC7302 + 7FEC7A13ADE59381B7BDF3CD879865DBE2AD2D725693E75ED843713F1B90B663 + 0B2F64BB5A975692E583B6D13B7E95A5F5AE671769B62671E3A7FECD59BD96B3 + 9D8FAFF2E5D9F33F9DCAC569FC2DD0E671A96C7939C01381FB96AF97D4C727DD + 9F97F53336E1E3753F9ADD927548D922572EED7BE6FDC5AC5E6BBDE2F26CF931 + C6FD2C64CFA8B3EA3E371C4DDF2085A3F89B4E41B9FBD647E94FFECDFF00833F + 9B574FAB7FE1D7F8BECCBBD202BEA35E5A10742521074252102548FFD5F6940B + 6B58508129081291B0CCDD4CC7E32E6EE5E8264B6FBAE2356B4B886C6E1B6CDD + 623D0172C2E31E293FCA7E51CC48B67E62C197B36D5C664A7CE2E313DC002660 + 0407EBA0FCE1C16169DD7374BC399595C3871BF38E32C26583254892C9522D1E + D7325CB686B1B2F585E001A0003493EC5D9DAF376C732DF69B63C1D239AF269C + 7B321A334EECD9A5A74E660241FB97A9C77FC7ACF8BA381DA9E9D7996E266627 + F94EE1C66C9976C6EECDC773298C7B65BA5EBFA7DE05A3FB3F668B53CFD71899 + 4DB5F7BB3605875C2102B48B029484094840948900E0AD22C0A52241CC948B07 + 32521025224015A4204A4204A45814A44815A42052908355691605291201AA52 + 100E0948B025210251205690A7D094806252102952102B561025210746C94840 + 14A4205691F07CE32E51C13DD7061B665D58CC9F3222C8254BBD92E7BCB8105A + 1AD05C5DAFBA044B4DEB3AE76ED36C63E3AFCB7D73966765E1CDC7D7FDD97DC7 + 59DF33121D6B9274C9446AD1712D93806E9B68E65327ED7172D472F4DBA3E1B7 + EDFED866ED9C71F8E1D51E6B917C6A55BB1CFF00BA94187FDE73D79AEF71B7BF + 2D9F27387C0F496DDDF512EE634BE6365E2AE1B3661DC35D32E6D4B01D3605C1 + 8ED38C2EE0B23F4AEB9FF77BE7DDC1FF0016AE9F55CE3A5AE3CFECCBBE20E85F + 4DAF310812AC204A9081291FFFD6F6DD35B1AC48401290A695634E7DAC9B9913 + 2DAE25B66C89CD74B9B2DE226B98E1A39A41E50414C6C91C3AEB1BE6EC007330 + EC6E7712DFDD5BCD9D42FE53799A263F564E0398BCCB7FEA73CEEB8EDCBD36F1 + F667E4EED77714CBF9A32643ED2F3CA5E6089ED2D98D958F7DCB3476C454B774 + C69EB5D9A7271AF8F161CAD7C09B8FF50BCE0F2DB5C05DC8913340E9D9B12EC2 + 580069ACC92C151FC9B83EE9FD2B275CF2F4F1F7B8E5D91E40F4EE5F93DB717F + 7D75FCC3CC57E00BCBCD2163583712E53799A0F5AEAE67373BE5D79CD7378174 + D71840948534A429A50A652908129129A522D34A40CB4A429A5214D29081290A + 694894D290A69429A5214D290A6948534A4583A129129A522C0944A612908128 + 40948B4D2894D290A69429A5210250A6944328105A46A0EC41E4D1291F23FF00 + C9E198C74AB69536CA4BB7749B0B9B8B1944F12CB6992DBAF4E8B0F6ED3939F7 + 4FE1CE75FCB1DF8E76F8F7FDAD9DC7A7FE5ABB24DCC9BA9BA8D087E42F9C08FB + 0CFD163E7D2FB6DBDBADFAF6FDEECC775CDC7B33F2C3EBE33098BC35BF74C4D9 + 49B2B7D7532E431B2C177244ED00D4F49DD67F2B95A72B5E1D318D71E4C7DF7D + B7CDDB35BDA6BB6B8429EE94204A429A523FFFD7F71C0B36B1C8129080AB442D + 00124E806E4A946DDDDE267EECD3673123571F67204B82341F6AFF00CCE9F375 + E87C3F868AD1A70DDC83EECD711C2668FF00BC6EB9782C6F2DA75605AE6C335B + F99BFE90B8E52371074294204A1074250812840950812A9014A44815A2C0A508 + 3A12840AD080A50814A102510315A2C0A51204A102A101E0A50812A420554814 + A2C0952240AD520528B004A24094205684078252018A521014A2C1EC4A8D38D9 + CA0977F74177E014E2C3946266CA1CBA8FF65DD8A71E0E16A36078D58438710B + 95C245815A10250812A10A557FFFD0F7542B2ABA610A5210A08F971348E29443 + 03408B6D5069CC68D3A0A61636CE6C5AEDCBAAE68D7916F0BCCD239B40B8E723 + 71070528B0A108529121E84A10A508529085290852841D094842128409421421 + 0F425085284294843A25210A50850214210A50850214A4204A108E094204A421 + 4210A5210A5210A508529087A128C26B019641E4D46BF66A171DB3E0B8584C3A + 06EDD4A0DBCC964F285D7972636D2A19C4FF00AA75EB0AE9ED36F63790AEE708 + 4294842128429523FFD1F7940BBABAE1004A4481291604A4694C95AB874705CB + 194CB132470EAD95A98AC0DB704E25C3544961DB520F0D4F6AE1557BBB7A4F41 + 24A672A7766E9CA7ACA5487771C4F59ED4A44EECDE9EB3DAAD0EECDE627ACF6A + 945EEE389EB3DAAD2140713D67B5290EEEDE27ACF6A521DDDBD3D654A43BBB78 + 9EB3DA94877768E73D65287771C4F59ED4A1DDC713D65287776F17759ED4A43B + B8E27ACAB487776F13D67B54A1DDDBC4F594A1DDDBC4F59ED4A43BBB78BBACF6 + AB489DDDBC5DD67B5287771C4F59ED4A45EEEDE27ACF6A521DDC7313D67B5289 + DDDBC4F59ED4A1DDDBCFAF59ED4A43BB8E27ACF6A521DDC713D67B528BDDDBC5 + DD67B54A1DDDBCFBFDA4EA81DDDBC4F59ED4A27771C49F69ED4A42801B8D79B9 + CA672ACCB0E9B689460E9479C6AB8892E510FD74E64C196AC0B9D420E8D52841 + C12840947FFFD2F7C68B9B890A042810A5210A5080252100E094842129085021 + 4A10A5085284294842810A5210A50850842810A50852842810A042810A50D102 + 14A10A508502140852868810A042810A042942140852885A94585289084A2C28 + 2421003420B0A042942141214A3FFFD3F7E6CAA2EC81B7B504D9053A22A2228D + 1036413640D903DD40D914F7510D914DB5441036D514DB9D10DBF6A29B7372A2 + 1B7ED4536F6221B73206DED45364436453644364536E640D910D91536D505DB4 + ED40D910DB440D90364542886DCCAAAEDCEA06C8E27BBCE8A185041A2AA6CA0B + B73A227BA83FFFD9} + end + object Bevel1: TBevel + Left = 0 + Top = 100 + Width = 367 + Height = 6 + Align = alTop + Shape = bsTopLine + end + object JvAnimate1: TJvAnimate + Left = 16 + Top = 118 + Width = 16 + Height = 16 + CommonAVI = aviFindComputer + StopFrame = 8 + end + object Button1: TButton + Left = 276 + Top = 287 + Width = 75 + Height = 25 + Caption = 'Cerrar' + Enabled = False + TabOrder = 1 + OnClick = Button1Click + end + object ListView1: TListView + Left = 16 + Top = 144 + Width = 335 + Height = 129 + Columns = < + item + Caption = 'Hora' + Width = 75 + end + item + Caption = 'Mensaje' + Width = 255 + end> + ReadOnly = True + RowSelect = True + SmallImages = ImageList1 + TabOrder = 2 + ViewStyle = vsReport + end + object TimerCuentaAtrasCerrar: TTimer + Enabled = False + OnTimer = TimerCuentaAtrasCerrarTimer + Left = 16 + Top = 288 + end + object TimerCuentaAtrasCargar: TTimer + Enabled = False + Interval = 10 + OnTimer = TimerCuentaAtrasCargarTimer + Left = 56 + Top = 288 + end + object XPManifest1: TXPManifest + Left = 96 + Top = 288 + end + object ImageList1: TImageList + Left = 144 + Top = 288 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008599CD00102890008B99CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007088E0001048FF0010289000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000E1E7E0009EC39500B0DCAD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ADB9DD007088E000ABB5D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000709F5E003F81200065B25900CEE4CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000092A0CA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000D8E0D4005999 + 3B0065CD50005CC7400042AA300083C87A00E0E6DF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004050B00000000000000000000000 + 00000000000000000000000000000000000000000000D8E0D4005094300065CD + 500079EA600082E077006AD0600057B24700A2C7990000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000929CC3000038F000848EAE00000000000000 + 000000000000000000000000000000000000000000004F9D3B006AD9500079EA + 6000A3ED9600D9E7D8009DED8E006AD060004CAE3B00D5DED200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002040C0000038F0000E339500000000000000 + 00000000000000000000000000000000000000000000AAEB9B00A7EC900090ED + 87000000000000000000E3E9E10097E28E006AD0600059A24700D1EAC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A7B1D8005070E0000040FF000030D000BFC3CE000000 + 00000000000000000000000000000000000000000000E1EDDD00CAEBC3000000 + 0000000000000000000000000000E3E9E10082E0770065CD50005EB35900D5EA + CD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007688CB005078E0001048FF000040F0007581A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000E3E9E10082E077004CBE400085C1 + 7700D5EACD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005068D0007090FF001050FF001040F0000E33A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000E3EAE10089E07F004CBE + 400094D08600D8E5D30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000006078D0008098FF003060FF001050FF001D43C3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000E3EAE100B0ED + A10064BE5000C7DFC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007088E00090A8F00080A0FF006080F0003955A9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000E4EB + E200CBEAC10096CF8A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D4D8E3007088E0006078D0005068D000D6DBE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 + FE3FFFFF00000000FE3FF1FF00000000FE3FF0FF00000000FF7FC07F00000000 + FF7F807F00000000FE3F803F00000000FE3F8C1F00000000FC1F9E0F00000000 + FC1FFF0700000000FC1FFF8300000000FC1FFFC300000000FC1FFFE300000000 + FC1FFFFF00000000FFFFFFFF00000000} + end +end diff --git a/Source/CargaEDI/uCargaEDI.pas b/Source/CargaEDI/uCargaEDI.pas new file mode 100644 index 0000000..748bddb --- /dev/null +++ b/Source/CargaEDI/uCargaEDI.pas @@ -0,0 +1,163 @@ +unit uCargaEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, jpeg, ComCtrls, StdCtrls, JvExComCtrls, JvAnimate, + pngimage, XPMan, ImgList; + +type + TIconoEstado = (ieOK, ieMAL, ieNada); + + TfCargaEDI = class(TForm) + Label13: TLabel; + JvAnimate1: TJvAnimate; + Button1: TButton; + TimerCuentaAtrasCerrar: TTimer; + ListView1: TListView; + Image1: TImage; + Bevel1: TBevel; + TimerCuentaAtrasCargar: TTimer; + XPManifest1: TXPManifest; + ImageList1: TImageList; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure TimerCuentaAtrasCerrarTimer(Sender: TObject); + procedure TimerCuentaAtrasCargarTimer(Sender: TObject); + private + FNumCargasError : Integer; + FNumCargasOK : Integer; + FCuentaAtras : Integer; + procedure OnLoadSuccess(Sender: TObject); + procedure OnLoadError(Sender : TObject); + procedure AnadirMensaje(const aMensaje : String; Icono : TIconoEstado = ieNada); + procedure LanzarCargas; + public + { Public declarations } + end; + +var + fCargaEDI: TfCargaEDI; + +implementation + +{$R *.dfm} + +uses + uCargarFicheros, uDataModuleBase; + +procedure TfCargaEDI.FormShow(Sender: TObject); +begin + FNumCargasOK := 0; + FNumCargasError := 0; + TimerCuentaAtrasCargar.Enabled := True; +end; + +procedure TfCargaEDI.OnLoadError(Sender: TObject); +begin + Beep; + AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': ' + (Sender as TCargarFicherosThread).ErrorText, ieMAL); + + FNumCargasError := FNumCargasError + 1; + if (FNumCargasError = 2) or + ((FNumCargasError = 1) and (FNumCargasOK = 1)) then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + TimerCuentaAtrasCerrar.Enabled := True; + end; +end; + +procedure TfCargaEDI.OnLoadSuccess(Sender: TObject); +begin + Beep; + AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': Ficheros cargados', ieOK); + + FNumCargasOK := FNumCargasOK + 1; + if (FNumCargasOK = 2) or + ((FNumCargasError = 1) and (FNumCargasOK = 1)) then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + TimerCuentaAtrasCerrar.Enabled := True; + end; +end; + +procedure TfCargaEDI.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfCargaEDI.FormCreate(Sender: TObject); +begin + FCuentaAtras := 5; + FNumCargasError := 0; + FNumCargasOK := 0; +end; + +procedure TfCargaEDI.Button1Click(Sender: TObject); +begin + Close; +end; + +procedure TfCargaEDI.AnadirMensaje(const aMensaje: String; + Icono : TIconoEstado = ieNada); +var + AItem : TListItem; +begin + AItem := ListView1.Items.Add; + case Icono of + ieOK : AItem.ImageIndex := 1; + ieMAL : AItem.ImageIndex := 0; + else + AItem.ImageIndex := -1; + end; + AItem.Caption := TimeToStr(Now); + AItem.SubItems.Add(aMensaje); +end; + +procedure TfCargaEDI.LanzarCargas; +begin + if not dmBase.HayConexion then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + AnadirMensaje('No se encuentra el servidor', ieMAL); + TimerCuentaAtrasCerrar.Enabled := True; + end + else begin + JvAnimate1.Active := True; + AnadirMensaje('Cargando ficheros de ventas'); + TCargarVentasThread.Create('CABVEN.TXT', 'LUGVEN.TXT', + 'ARTVEN.TXT', OnLoadSuccess, OnLoadError); + + AnadirMensaje('Cargando ficheros de inventario'); + TCargarInventarioThread.Create('CABINV.TXT', 'LININV.TXT', + 'CANTINV.TXT', OnLoadSuccess, OnLoadError); + end; +end; + +procedure TfCargaEDI.TimerCuentaAtrasCerrarTimer(Sender: TObject); +begin + Button1.Enabled := True; + TimerCuentaAtrasCerrar.Enabled := False; + if FCuentaAtras = 0 then + Close; + Button1.Caption := 'Cerrar (' + IntToStr(FCuentaAtras) + ')'; + Update; + Application.ProcessMessages; + FCuentaAtras := FCuentaAtras - 1; + TimerCuentaAtrasCerrar.Enabled := True; +end; + +procedure TfCargaEDI.TimerCuentaAtrasCargarTimer(Sender: TObject); +begin + TimerCuentaAtrasCargar.Enabled := False; + Update; + LanzarCargas; +end; + +end. diff --git a/Source/ClearFiles.msbuild b/Source/ClearFiles.msbuild new file mode 100644 index 0000000..30f4b9d --- /dev/null +++ b/Source/ClearFiles.msbuild @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Cliente/AdminPV.bdsproj b/Source/Cliente/AdminPV.bdsproj new file mode 100644 index 0000000..e3cd3af --- /dev/null +++ b/Source/Cliente/AdminPV.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + AdminPV.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica + EUREKALOG;EUREKALOG_VER6 + + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 2.0.0.0 + Administración de puntos de venta + + + + Administración de puntos de venta + 1.0.0.0 + + + + + diff --git a/Source/Cliente/AdminPV.cfg b/Source/Cliente/AdminPV.cfg new file mode 100644 index 0000000..e4b793b --- /dev/null +++ b/Source/Cliente/AdminPV.cfg @@ -0,0 +1,46 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Cliente" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-LUBaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Cliente/AdminPV.dof b/Source/Cliente/AdminPV.dof new file mode 100644 index 0000000..105bdb6 --- /dev/null +++ b/Source/Cliente/AdminPV.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Cliente +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=BaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica +Conditionals= +DebugSourceDirs= +UsePackages=1 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=1 +Release=1 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName=Rodax Software S.L. +FileDescription= +FileVersion=1.1.1.0 +InternalName=Administración de puntos de venta +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName=Administración de puntos de venta +ProductVersion=1.0.6 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Cliente/AdminPV.dpr b/Source/Cliente/AdminPV.dpr new file mode 100644 index 0000000..9946450 --- /dev/null +++ b/Source/Cliente/AdminPV.dpr @@ -0,0 +1,25 @@ +program AdminPV; + +uses + ExceptionLog, + Forms, + uLoginForm, + uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, + uMenuUtils in 'uMenuUtils.pas', + uSplash in 'uSplash.pas' {SplashScreen}, + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + uIntegerList in '..\Base\uIntegerList.pas', + schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas'; + +{$R *.res} + +begin + Application.Initialize; + + Application.Title := 'Administración de puntos de venta'; + Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); + Application.Run; + Application.Terminate; +end. + diff --git a/Source/Cliente/AdminPV.drc b/Source/Cliente/AdminPV.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Cliente/AdminPV.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Cliente/AdminPV.identcache b/Source/Cliente/AdminPV.identcache new file mode 100644 index 0000000000000000000000000000000000000000..576f2d8b4225c10a95d7a124e4bb9d9c8f65b60c GIT binary patch literal 1038 zcmd6mL2AS>3`NsjkC7A10lG^kn?eJj?qp>s!qy}z9y^un-lX@fpd|~_t)X5SWc>A? zzV5rOyPhBHm|VGG%+f>jy}_I*u3|4zfGOFDr1!s1lGvAF>`g9SD>J8ebXn{Ii~+1k zg&o>+ApH$(F?#^nPCJMy9fw*#l+9lza)wWKq8$ugEuw;6Wkbs@AQz ztuFn*d3%caTDSPopu=MpGiZw;z|0gK?GS49{{qM$ea9nIzX- dT5ibTH8AsX@;e{vp_djuk01;V*};gl&u>E~Y25$- literal 0 HcmV?d00001 diff --git a/Source/Cliente/AdminPV.rc b/Source/Cliente/AdminPV.rc new file mode 100644 index 0000000..3c6d592 --- /dev/null +++ b/Source/Cliente/AdminPV.rc @@ -0,0 +1,26 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Cliente.ico" +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "2.0.0.0\0" + VALUE "InternalName", "Administración de puntos de venta\0" + VALUE "ProductName", "Administración de puntos de venta\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Cliente/AdminPV.res b/Source/Cliente/AdminPV.res new file mode 100644 index 0000000000000000000000000000000000000000..2d5243fce9ca0ce2c3af7a0a118215f8640cbd1b GIT binary patch literal 18368 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 literal 0 HcmV?d00001 diff --git a/Source/Cliente/uAcercaDe.dfm b/Source/Cliente/uAcercaDe.dfm new file mode 100644 index 0000000..f4ef396 --- /dev/null +++ b/Source/Cliente/uAcercaDe.dfm @@ -0,0 +1,959 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Source/Cliente/uAcercaDe.pas b/Source/Cliente/uAcercaDe.pas new file mode 100644 index 0000000..693ee22 --- /dev/null +++ b/Source/Cliente/uAcercaDe.pas @@ -0,0 +1,66 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls, + uHostManager; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Image1: TImage; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + procedure FormShow(Sender: TObject); + private + FHostManager: THostManager; + public + property HostManager : THostManager read FHostManager write FHostManager; + end; + +var + fAcercaDe: TfAcercaDe; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + i : integer; + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); + end; + finally + FreeAndNil(Obj); + end; + + if Assigned(FHostManager) then + begin + memModulos.Lines.Add(''); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Módulos disponibles:'); + for i := 0 to (HostManager.ModulesCount - 1) do + memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName + + ' - v. ' + FHostManager.Modules[i].Module.Version); + end; +end; + +end. diff --git a/Source/Cliente/uMenuUtils.pas b/Source/Cliente/uMenuUtils.pas new file mode 100644 index 0000000..8333cce --- /dev/null +++ b/Source/Cliente/uMenuUtils.pas @@ -0,0 +1,263 @@ +unit uMenuUtils; + +interface + +uses + Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus, + Controls; + + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +procedure SortMenuByTag(Menu : TMainMenu); + +function CreatePageNavPane(const APageList : TJvCustomPageList; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; + +procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); overload; + +function getSubMenu(Const pMenu: TMainMenu; Const pCaption: String): TMenuItem; +procedure copiarItemsMenu(MenuDestino: TMenuItem; pMenu: TMenuItem); + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); overload; + + + + + +implementation + +uses + ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils, + ExtCtrls, Graphics; + +type + TAssignCallback = procedure(Source, Dest: TMenuItem); + + +procedure AssignMenus(Source, Dest: TMenuItem; AImageIndex : Integer; + AssignProc: TAssignCallback); +var + I: Integer; + Item: TMenuItem; +begin + for I := 0 to Source.Count - 1 do + begin + Item := Dest.Find(Source.Items[I].Caption); + if Item = NIL then + begin + Item := TMenuItem.Create(Dest); + Dest.Add(Item); + if Assigned(AssignProc) then + begin + AssignProc(Source.Items[I], Item); + if (Source.Items[I].ImageIndex >= 0) then + Item.ImageIndex := Source.Items[I].ImageIndex + AImageIndex; + end; + end; + AssignMenus(Source.Items[I], Item, AImageIndex, AssignProc); + end; +end; + +procedure AssignMenuItem(Source, Dest: TMenuItem); +begin + Dest.Caption := Source.Caption; + Dest.Hint := Source.Hint; + Dest.Checked := Source.Checked; + Dest.GroupIndex := Source.GroupIndex; + Dest.Tag := Source.Tag; + Dest.Action := Source.Action; + Dest.ImageIndex := Source.ImageIndex; + Dest.ShortCut := Source.ShortCut; + Dest.RadioItem := Source.RadioItem; + Dest.AutoCheck := Source.AutoCheck; + Dest.AutoHotkeys := Source.AutoHotkeys; + Dest.AutoLineReduction := Source.AutoLineReduction; + Dest.Break := Source.Break; + Dest.Default := Source.Default; + Dest.Enabled := Source.Enabled; + Dest.HelpContext := Source.HelpContext; + Dest.Visible := Source.Visible; +end; + +procedure SortMenuItems(MenuItems : TMenuItem); + + function CompareTags(Item1, Item2: Pointer): Integer; + begin + Result := CompareValue(TMenuItem(Item1).Tag, TMenuItem(Item2).Tag); + end; + +var + I: Integer; + AList : TList; +begin + AList := TList.Create; + + try + for I := 0 to MenuItems.Count - 1 do + begin + SortMenuItems(MenuItems.Items[i]); + AList.Add(Pointer(MenuItems.Items[i])); + end; + + AList.Sort(@CompareTags); + + for i := 0 to AList.Count - 1 do + TMenuItem(AList.Items[i]).MenuIndex := i; + + finally + AList.Free; + end; +end; + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +begin + AssignMenus(Source.Items, Dest.Items, ImageIndex, AssignMenuItem); +end; + +procedure SortMenuByTag(Menu : TMainMenu); +begin + SortMenuItems(Menu.Items); +end; + +function CreatePageNavPane(const APageList : TJvCustomPageList; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; +var + APanePage: TJvNavPanelPage; +begin + Result := 0; + APanePage := TJvNavPanelPage.Create(Application); + with APanePage do + begin + Caption := StringReplace(ACaption, '&', '', []); + Action := AAction; + PageList := APageList; + Iconic := False; + ImageIndex := AImageIndex; + Result := PageIndex; + end; +end; + +procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); +var + APanel : TScrollBox; + ItemIndex : Integer; +begin + with TJvNavPanelDivider.Create(APanePage) do + begin + Caption := AMenuItem.Caption; + Parent := APanePage; + Top := 100; + Align := alTop; + Enabled := false; + Cursor := crDefault; + end; + + APanel := TScrollBox.Create(APanePage); + with APanel do + begin + Top := 200; + Align := alTop; + Font.Style := []; + BorderStyle := bsNone; + Parent := APanePage; + BevelEdges := []; + BorderStyle := bsNone; + //ParentColor := True; + ParentFont := True; + Color := clRed; + end; + + for ItemIndex := 0 to (AMenuItem.Count - 1) do + begin + if AMenuItem[ItemIndex].Caption <> '-' then + with TTBXLink.Create(Application) do + begin + Parent := APanePage; + Align := alTop; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + {if ItemIndex = 0 then + Margins.Top := 20 + else + Margins.Top := 14; + Margins.Bottom := 14; + Margins.Left := 10; + Margins.Right := 10;} + //Invalidate; + end; + end; +end; + +function getSubMenu(const pMenu: TMainMenu; const pCaption: String): TMenuItem; +var + i: Integer; +begin + i:=0; + while ((i < pMenu.Items.Count) and (StringReplace(pMenu.Items[i].Caption,'&','',[]) <> pCaption)) do + inc(i); + Result := pMenu.Items[i]; +end; + +procedure copiarItemsMenu(MenuDestino, pMenu: TMenuItem); +var + i: Integer; + Item: TMenuItem; +begin + for i := 0 to (pMenu.Count - 1) do + begin + Item := TMenuItem.Create(MenuDestino); + Item.Caption := pMenu.Items[i].Caption; + Item.Action := pMenu.Items[i].Action; + MenuDestino.Add(Item); + end; +end; + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); +var + ItemIndex : Integer; + AHeight : Integer; +begin + AHeight := 0; + for ItemIndex := 0 to (AMenuItem.Count - 1) do + begin + if AMenuItem[ItemIndex].Caption <> '-' then + with TTBXLink.Create(Application) do + begin + Parent := AParentControl;//APanel; + Align := alTop; + ParentFont := True; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + if ItemIndex = 0 then + Margins.Top := 15 + else + Margins.Top := 8; + Margins.Bottom := 8; + Margins.Left := 10; + Margins.Right := 10; + Height := 18; + Invalidate; + AHeight := AHeight + Margins.Top + Margins.Bottom + Height; + end; + end; + AParentControl.Height := AHeight; + AParentControl.Invalidate; +end; + + +end. + diff --git a/Source/Cliente/uPantallaPrincipal.ddp b/Source/Cliente/uPantallaPrincipal.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm new file mode 100644 index 0000000..7f7fe90 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -0,0 +1,441 @@ +object fPantallaPrincipal: TfPantallaPrincipal + Left = 358 + Top = 250 + Caption = 'Pantalla principal' + ClientHeight = 599 + ClientWidth = 771 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Menu = HostMenu + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 13 + object pnlContenido: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 771 + Height = 580 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Margins.Bottom = 5 + ParentColor = True + Align = alClient + TabOrder = 0 + object JvSyncSplitter1: TJvSyncSplitter + Left = 210 + Top = 5 + Width = 5 + Height = 570 + ResizeStyle = rsPattern + end + object JvNavigationPane: TJvNavigationPane + Left = 5 + Top = 5 + Width = 205 + Height = 570 + ActivePage = pagInicio + Align = alLeft + AutoHeaders = True + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + ButtonHeight = 32 + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + LargeImages = ModulesLargeImageList + MaximizedCount = 0 + NavPanelFont.Charset = DEFAULT_CHARSET + NavPanelFont.Color = clWindowText + NavPanelFont.Height = -13 + NavPanelFont.Name = 'Tahoma' + NavPanelFont.Style = [] + NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + NavPanelHotTrackFont.Color = clWindow + NavPanelHotTrackFont.Height = -13 + NavPanelHotTrackFont.Name = 'Tahoma' + NavPanelHotTrackFont.Style = [] + SmallImages = ModulesSmallImageList + object pagInicio: TJvNavPanelPage + Left = 0 + Top = 0 + Width = 203 + Height = 497 + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + Caption = 'Men'#250' principal' + Iconic = True + ImageIndex = 0 + end + end + object pnlBorde: TJvXPContainer + Left = 215 + Top = 5 + Width = 551 + Height = 570 + BoundColor = clActiveCaption + BoundLines = [blLeft, blTop, blRight, blBottom] + Caption = 'pnlBorde' + Align = alClient + object pnlMain: TTBXAlignmentPanel + Left = 1 + Top = 1 + Width = 549 + Height = 568 + Align = alClient + Color = clWindow + TabOrder = 0 + object lblBienvenido: TLabel + Left = 8 + Top = 8 + Width = 210 + Height = 54 + Caption = 'Bienvenido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -43 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + object Label22: TLabel + Left = 116 + Top = 52 + Width = 247 + Height = 22 + Caption = 'Administraci'#243'n de puntos de venta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clGray + Font.Height = -16 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + end + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 580 + Width = 771 + Height = 19 + Panels = <> + end + object XPManifest1: TXPManifest + Left = 248 + Top = 48 + end + object GeneralActionList: TActionList + Left = 248 + Top = 149 + object actSalir: TAction + Category = 'Archivo' + Caption = '&Salir' + OnExecute = actSalirExecute + end + object actLogin: TAction + Category = 'Archivo' + Caption = 'Login' + OnExecute = actLoginExecute + end + object actAdministracion: TAction + Category = 'Archivo' + Caption = 'Panel de administraci'#243'n' + end + object actCambiarPass: TAction + Category = 'Archivo' + Caption = 'Cambiar mi contrase'#241'a' + Enabled = False + OnExecute = actCambiarPassExecute + end + object actConexion: TAction + Category = 'Archivo' + Caption = 'Configurar conexi'#243'n' + OnExecute = actConexionExecute + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object ModulesSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000001504944415478DA + 63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24 + 7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0 + E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B + 28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1 + 1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF + 314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533 + 5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8 + 0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022 + DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3 + 9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3 + 0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001DD4944415478DA + 63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7 + EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B + F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6 + 032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0 + E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377 + DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3 + CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62 + 3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6 + A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057 + FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD + 6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218 + 2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9 + 3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069 + 7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3 + 82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000 + 00000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 43 + Top = 493 + Bitmap = {} + end + object ModulesActionList: TActionList + Left = 11 + Top = 492 + end + object ModulesLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA + B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0 + 87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5 + 6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF + F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B + 3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168 + CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B + D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF + 17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890 + E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC + C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7 + 5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748 + 6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889 + 4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021 + 2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410 + D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684 + CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C + 10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A + D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C + DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76 + 199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D + 9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75 + 3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE + FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003E74944415478DA + D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB + 065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4 + A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78 + E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580 + 8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B + 774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF + 220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9 + 89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726 + F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464 + 80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01 + 2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50 + CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D + 9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF + 7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC + F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE + B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914 + 91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA + 9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8 + B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753 + 2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F + 35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2 + 4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF + 4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C + 15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96 + 73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F + 83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0 + 6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593 + 03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC + 363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D + 0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368 + E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8 + 1B2694FBE012B66F2C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 75 + Top = 493 + Bitmap = {} + end + object HostManager: THostManager + OnAfterLoad = HostManagerAfterLoad + Left = 276 + Top = 47 + end + object StyleManagerButtons: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWindow + Colors.ButtonColorTo = clWindow + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.ButtonSeparatorColor = clWindow + Colors.SplitterColorFrom = clWindow + Colors.SplitterColorTo = clWindow + Colors.DividerColorFrom = clWindow + Colors.DividerColorTo = clWindow + Colors.HeaderColorFrom = clWindow + Colors.HeaderColorTo = clWindow + Colors.FrameColor = clWindow + Colors.ToolPanelHeaderColorFrom = clWindow + Colors.ToolPanelHeaderColorTo = clWindow + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -11 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -11 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [] + Theme = nptCustom + Left = 176 + Top = 504 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fPantallaPrincipal\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 472 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 504 + Top = 128 + end + object ApplicationEvents: TApplicationEvents + OnActionExecute = ApplicationEventsActionExecute + Left = 248 + Top = 190 + end + object HostMenu: TJvMainMenu + Images = ModulesSmallImageList + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + ItemPainter = JvXPMenuItemPainter1 + Left = 384 + Top = 256 + object Archivo2: TMenuItem + Tag = -9000 + Caption = 'Archivo' + object Cambiarmicontrasea2: TMenuItem + Tag = 1 + Action = actCambiarPass + end + object N3: TMenuItem + Tag = 2 + Caption = '-' + end + object Configurarconexin2: TMenuItem + Tag = 3 + Action = actConexion + end + object Paneldeadministracin2: TMenuItem + Tag = 4 + Action = actAdministracion + Visible = False + end + object N4: TMenuItem + Tag = 5 + Caption = '-' + end + object Salir2: TMenuItem + Tag = 6 + Action = actSalir + end + end + object Ayuda2: TMenuItem + Tag = 10000 + Caption = 'Ayuda' + object Acercade2: TMenuItem + Action = actAcerca + end + end + end + object JvXPMenuItemPainter1: TJvXPMenuItemPainter + SelectionFrameBrush.Color = 13811126 + SelectionFramePen.Color = 6956042 + Left = 424 + Top = 256 + end +end diff --git a/Source/Cliente/uPantallaPrincipal.pas b/Source/Cliente/uPantallaPrincipal.pas new file mode 100644 index 0000000..4408715 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.pas @@ -0,0 +1,569 @@ + +unit uPantallaPrincipal; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, XPMan, uGUIBase, uCustomEditor, + JvNavigationPane, JvExExtCtrls, JvComponent, Menus, ImgList, + PngImageList, ActnList, uHostManager, JvExControls, JvPageList, JvPanel, + TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, TBXToolPals, TBXLists, + TBXExtItems, TB2ExtItems, TBXMDI, TBXDkPanels, JvSplitter, JvSyncSplitter, + JvXPBar, JvXPCore, JvXPContainer, JvLookOut, JvOutlookBar, Buttons, + JvExButtons, JvBitBtn, JvSpeedButton, JvExStdCtrls, JvButton, JvCtrls, + JvStartMenuButton, JvTransparentButton, JvExComCtrls, JvListView, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvBaseDlg, + JvJVCLAboutForm, AppEvnts, JvWaitingGradient, JvGradient, + cxControls, JvComponentBase, JvMenus; + +type + TfPantallaPrincipal = class(TForm, IHostForm) + GeneralActionList: TActionList; + ModulesSmallImageList: TPngImageList; + XPManifest1: TXPManifest; + actSalir: TAction; + ModulesActionList: TActionList; + ModulesLargeImageList: TPngImageList; + pnlContenido: TTBXAlignmentPanel; + JvNavigationPane: TJvNavigationPane; + pnlMain: TTBXAlignmentPanel; + JvSyncSplitter1: TJvSyncSplitter; + StatusBar: TStatusBar; + HostManager: THostManager; + actLogin: TAction; + pagInicio: TJvNavPanelPage; + StyleManagerButtons: TJvNavPaneStyleManager; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + actAdministracion: TAction; + ApplicationEvents: TApplicationEvents; + actCambiarPass: TAction; + actConexion: TAction; + actAcerca: TAction; + pnlBorde: TJvXPContainer; + HostMenu: TJvMainMenu; + JvXPMenuItemPainter1: TJvXPMenuItemPainter; + Archivo2: TMenuItem; + Ayuda2: TMenuItem; + Cambiarmicontrasea2: TMenuItem; + N3: TMenuItem; + Configurarconexin2: TMenuItem; + Paneldeadministracin2: TMenuItem; + N4: TMenuItem; + Salir2: TMenuItem; + Acercade2: TMenuItem; + lblBienvenido: TLabel; + Label22: TLabel; + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure HostManagerAfterLoad(Sender: TObject; AModuleInfo: TModuleInfo); + procedure Salir1Click(Sender: TObject); + procedure actSalirExecute(Sender: TObject); + procedure actLoginExecute(Sender: TObject); + procedure ApplicationEventsActionExecute(Action: TBasicAction; + var Handled: Boolean); + procedure actCambiarPassExecute(Sender: TObject); + procedure actAcercaExecute(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure actConexionExecute(Sender: TObject); + private + FContenido : TCustomEditor; + FStartDefaultAction : TBasicAction; + + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure AplicarPerfil; + function FindNavPanePage(ACaption : String) : Integer; + procedure InitializeUI; + procedure OnThemeChange(Sender: TObject); + procedure CopyImages(const SrcList: TPngImageList; var DstList: TPngImageList; + out Index, Count: Integer); + procedure RegisterModule(AModuleInfo : TModuleInfo); + procedure ExecuteActionMenu(Sender : TObject); + protected + function GetWorkPanel : TWinControl; + public + function IsShortcut(var Message: TWMKey): Boolean; override; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + property WorkPanel : TWinControl read GetWorkPanel; + constructor Create(AOwner: TComponent); override; + end; + +var + fPantallaPrincipal: TfPantallaPrincipal; + +implementation + +uses + PNGImage, uModuleController, uDataModuleBase, Math, uMenuUtils, + uPanelControl, uDataModuleUsuarios, uSplash, uAcercaDe, + uViewBase,UxTheme, Themes; + + +{$R *.dfm} + +function OpenThemeData(hwnd: HWND; pszClassList: LPCWSTR): THandle; stdcall; + external 'uxtheme.dll'; + +function CloseThemeData(hTheme: THandle): HRESULT; stdcall; + external 'uxtheme.dll'; + +function DrawThemeBackground(hTheme: THandle; hdc: HDC; iPartId, iStateId: +Integer; const pRect: TRect; + pClipRect: PRECT): HRESULT; stdcall; + external 'uxtheme.dll'; + +{ +***************************** TfPantallaPrincipal ****************************** +} + +procedure TfPantallaPrincipal.CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); +begin + Index := -1; + Count := 0; + + if not Assigned(SrcList) or not Assigned(DstList) then + Exit; + + DstList.BeginUpdate; + try + Index := DstList.Count; + DstList.AddImages(SrcList); + Count := SrcList.Count; + finally + DstList.EndUpdate; + end; +end; + +procedure TfPantallaPrincipal.FormCreate(Sender: TObject); +begin + Caption := Application.Title + ' - ' + dmBase.DarVersion; + SplashScreen := TSplashScreen.Create(Application) ; + SplashScreen.Show; + + JvNavigationPane.StyleManager := dmBase.StyleManager; + dmBase.OnThemeChange := Self.OnThemeChange; + Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo + + with HostManager do + begin + BPLPath := ExtractFilePath(Application.ExeName) + '\'; + MainForm := Self; + end; + + actLogin.Execute; +end; + +procedure TfPantallaPrincipal.FormDestroy(Sender: TObject); +begin + HostManager.UnloadModules; +end; + +procedure TfPantallaPrincipal.HostManagerAfterLoad(Sender: TObject; + AModuleInfo: TModuleInfo); +begin + RegisterModule(AModuleInfo); +end; + +procedure TfPantallaPrincipal.RegisterModule(AModuleInfo : TModuleInfo); +var + AModule: TModuleController; + AModuleMenu : TMainMenu; + AIndex: Integer; + ACount: Integer; +begin + AModule := AModuleInfo.Module; + SplashScreen.Texto := 'Cargando ''' + AModule.ModuleName + '''...'; + + CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(ModulesSmallImageList), AIndex, ACount); + CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(ModulesLargeImageList), AIndex, ACount); + + if Assigned(AModule.ModuleMenu) then + begin + AModuleMenu := AModule.ModuleMenu; + MergeMenus(AModuleMenu, Self.Menu, AIndex); + end; +end; + +procedure TfPantallaPrincipal.Salir1Click(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.actSalirExecute(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject); +begin + LockWindowUpdate(Handle); + try + Color := dmBase.StyleManager.Colors.DividerColorTo; + //pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor; + pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor; + with StyleManagerButtons do + begin + Colors.ButtonColorFrom := clWindow; + Colors.ButtonColorTo := clWindow; + Colors.ButtonSeparatorColor := clWindow; + Colors.SplitterColorFrom := clWindow; + Colors.SplitterColorTo := clWindow; + Colors.DividerColorFrom := clWindow; + Colors.DividerColorTo := clWindow; + Colors.HeaderColorFrom := clWindow; + Colors.HeaderColorTo := clWindow; + Colors.FrameColor := clWindow; + Colors.ToolPanelHeaderColorFrom := clWindow; + Colors.ToolPanelHeaderColorTo := clWindow; + + Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom; + Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo; + + Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom; + Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo; + end; + lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo; +{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom; + JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;} + finally + LockWindowUpdate(0); + Refresh; + end; +end; + +function TfPantallaPrincipal.GetWorkPanel: TWinControl; +begin + Result := pnlMain; +end; + +procedure TfPantallaPrincipal.InitializeUI; + + function EsUnModulo(AMenuItem : TMenuItem) : Boolean; + begin + Result := (AMenuItem.Tag >= 0) and (AMenuItem.Tag < 9000) + end; + +var + i : Integer; + AMenuItem : TMenuItem; + APageIndex : Integer; + AStringList : TStringList; + APanel : TScrollBox; +begin + SortMenuByTag(Menu); + + AStringList := TStringList.Create; + AStringList.Duplicates := dupIgnore; + try + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + AStringList.Add(StringReplace(AMenuItem.Caption, '&', '', [])) + end; + + for i := 0 to AStringList.Count - 1 do + begin + with TJvNavPanelDivider.Create(Self) do + begin + Parent := pagInicio; + Top := 100 * i; + Align := alTop; + Caption := AStringList[i]; + ParentFont := True; + if i = 0 then + begin + Enabled := false; + Cursor := crDefault; + end + else + Cursor := crSizeNS; + end; + + APanel := TScrollBox.Create(Self); + with APanel do + begin + Parent := pagInicio; + Top := 101 * i; + if i = AStringList.Count - 1 then + Align := alClient + else + Align := alTop; + BorderStyle := bsNone; + end; + AStringList.Objects[i] := APanel; + end; + + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + if not Assigned(FStartDefaultAction) then + FStartDefaultAction := AMenuItem[0].Action; + + APageIndex := AStringList.IndexOf(StringReplace(AMenuItem.Caption, '&', '', [])); + PopulateNavPagePane(TScrollBox(AStringList.Objects[APageIndex]), AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + // Elimino la imagen que tiene el menú porque queda feo. + AMenuItem.ImageIndex := -1; + end; + finally + AStringList.Free; + end; + + ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; +end; + + +{ var + i : Integer; + AMenuItem : TMenuItem; + APageIndex : Integer; +begin + SortMenuByTag(Menu); + + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + if Pos('Ficheros', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlEDI, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Inventario', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlInventario, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Ventas', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlVentas, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Stock', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlStock, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + // Elimino la imagen que tiene el menú porque queda feo. + AMenuItem.ImageIndex := -1; + end; + JvNavigationPane.ActivePage := pagInicio; + ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; +end;} + + +procedure TfPantallaPrincipal.actLoginExecute(Sender: TObject); +begin + HostManager.UnloadModules; + + if dmUsuarios.Login then + begin + ShowHourglassCursor; + SplashScreen.Update; + Application.ProcessMessages; + try + HostManager.LoadModule('FicherosEDI.bpl'); + HostManager.LoadModule('VentasTerminadas.bpl'); + HostManager.LoadModule('VentasProceso.bpl'); + HostManager.LoadModule('ReferenciaGenerica.bpl'); + HostManager.LoadModule('Recepciones.bpl'); + HostManager.LoadModule('Devoluciones.bpl'); + HostManager.LoadModule('Traspasos.bpl'); + HostManager.LoadModule('Stock.bpl'); + + InitializeUI; + Application.ProcessMessages; + Visible := True; + AplicarPerfil; + finally + SplashScreen.Update; + SplashScreen.Hide; + SplashScreen.Free; + HideHourglassCursor; + end; + end + else + Application.Terminate; +end; + +function TfPantallaPrincipal.FindNavPanePage(ACaption: String): Integer; +var + i : integer; +begin + Result := -1; + for i := 0 to JvNavigationPane.PageCount - 1 do + if JvNavigationPane.NavPages[i].Caption = ACaption then + begin + Result := i; + break; + end; +end; + +procedure TfPantallaPrincipal.ExecuteActionMenu(Sender: TObject); +var + i : integer; +begin + for i := 0 to JvNavigationPane.PageCount - 1 do + begin + if JvNavigationPane.NavPages[i].Caption = (Sender as TAction).Caption then + begin + JvNavigationPane.ActivePageIndex := i; + Break; + end; + end; +end; + +procedure TfPantallaPrincipal.AplicarPerfil; +begin + actAdministracion.Visible := dmUsuarios.EsAdmin; +end; + +procedure TfPantallaPrincipal.ApplicationEventsActionExecute( + Action: TBasicAction; var Handled: Boolean); +var + APageIndex : Integer; +begin + if (Action is TAction) then + begin + APageIndex := FindNavPanePage((Action as TAction).Category); + if APageIndex > 0 then + JvNavigationPane.ActivePageIndex := APageIndex; + end; +end; + +procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor); +begin + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + if Assigned(FContenido) then + FContenido.Release; + + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +constructor TfPantallaPrincipal.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); +begin + dmUsuarios.CambiarPassword; +end; + +procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + HostManager := Self.HostManager; + ShowModal; + finally + Free; + end; +end; + +function TfPantallaPrincipal.IsShortcut(var Message: TWMKey): Boolean; +Var + ctrl: TWinControl; + comp: TComponent; + i: Integer; + Begin + ctrl := ActiveControl; + If ctrl <> Nil Then Begin + Repeat + ctrl := ctrl.Parent + Until (ctrl = nil) or (ctrl Is TCustomForm); + // Note: replace TCustomFrame with TForm, check if the found form is + // self, if not, execute the following block of code. + If ctrl <> nil Then Begin + For i:= 0 To ctrl.componentcount-1 Do Begin + comp:= ctrl.Components[i]; + If comp Is TCustomActionList Then Begin + result := TCustomActionList(comp).IsShortcut( message ); + If result Then + Exit; + End; + End; + End; + End; + //Result := inherited IsShortCut(Message); +end; + + +procedure TfPantallaPrincipal.Button1Click(Sender: TObject); +var + i : integer; + AModule : TModuleInfo; +{ lCLG: TdxLayoutGroup; + lLI: TdxLayoutItem;} +begin + { + for i := 0 to HostManager.ModulesCount -1 do + begin + AModule := HostManager.Modules[i]; + if Supports(AModule.Module, IViewInicio, AVista) then + begin + Exit; + lLI := dxLayoutControl1.CreateItemForControl(Button2); + lLI.Caption := 'Hello World'; + lCLG := dxLayoutControl1.CreateGroup; + lCLG.Caption := 'Test this'; + lCLG.Parent := dxLayoutControl1.Items; + lLI.Parent := lCLG; + dxLayoutControl1.Customization := True; + end; + end; + } +end; + +{procedure TfPantallaPrincipal.JvPanel1Paint(Sender: TObject); +var + PS: PAINTSTRUCT; +begin + BeginPaint(JvPanel1.Canvas.Handle, PS); + ThemeServices.DrawElement(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel1.BoundsRect); +// ThemeServices.DrawText(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tspUserPane), 'Hola', JvPanel1.Canvas.ClipRect, 0, 0); + EndPaint(JvPanel1.Canvas.Handle, PS); + +end; + +procedure TfPantallaPrincipal.JvPanel2Paint(Sender: TObject); +var + PS: PAINTSTRUCT; +begin + BeginPaint(JvPanel2.Canvas.Handle, PS); + ThemeServices.DrawElement(JvPanel2.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel2.BoundsRect); + EndPaint(JvPanel2.Canvas.Handle, PS); +end;} + +procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject); +begin + dmBase.ConfigurarConexion; +end; + +end. diff --git a/Source/Cliente/uSplash.ddp b/Source/Cliente/uSplash.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Cliente/uSplash.dfm b/Source/Cliente/uSplash.dfm new file mode 100644 index 0000000..664f75c --- /dev/null +++ b/Source/Cliente/uSplash.dfm @@ -0,0 +1,935 @@ +object SplashScreen: TSplashScreen + Left = 507 + Top = 382 + BorderStyle = bsNone + Caption = 'SplashScreen' + ClientHeight = 275 + ClientWidth = 452 + Color = clBlack + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + PixelsPerInch = 96 + TextHeight = 13 + object lblTexto: TLabel + Left = 11 + Top = 256 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 452 + Height = 252 + AutoSize = True + BevelOuter = bvNone + BorderWidth = 1 + Color = clBlack + TabOrder = 0 + object Image1: TImage + Left = 1 + Top = 1 + Width = 450 + Height = 250 + AutoSize = True + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end +end diff --git a/Source/Cliente/uSplash.pas b/Source/Cliente/uSplash.pas new file mode 100644 index 0000000..7f951a8 --- /dev/null +++ b/Source/Cliente/uSplash.pas @@ -0,0 +1,56 @@ +unit uSplash; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, JvGIF, StdCtrls; + +type + TSplashScreen = class(TForm) + Image1: TImage; + Panel1: TPanel; + lblTexto: TLabel; + procedure Image1Click(Sender: TObject); + private + function GetTexto: String; + procedure SetTexto(const Value: String); + { Private declarations } + public + property Texto : String read GetTexto write SetTexto; + procedure ShowAsAbout; + end; + +var + SplashScreen: TSplashScreen; + +implementation + +{$R *.dfm} + +{ TSplashScreen } + +procedure TSplashScreen.ShowAsAbout; +begin + Image1.OnClick := Image1Click; + ShowModal; +end; + +procedure TSplashScreen.Image1Click(Sender: TObject); +begin + Close; +end; + +function TSplashScreen.GetTexto: String; +begin + Result := lblTexto.Caption; + +end; + +procedure TSplashScreen.SetTexto(const Value: String); +begin + lblTexto.Caption := Value; + Self.Update; +end; + +end. diff --git a/Source/Configuracion/Configuracion.bdsproj b/Source/Configuracion/Configuracion.bdsproj new file mode 100644 index 0000000..3e6bdf5 --- /dev/null +++ b/Source/Configuracion/Configuracion.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Configuracion.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Configuracion/Configuracion.cfg b/Source/Configuracion/Configuracion.cfg new file mode 100644 index 0000000..96c8d0b --- /dev/null +++ b/Source/Configuracion/Configuracion.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\Output\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Configuracion/Configuracion.dof b/Source/Configuracion/Configuracion.dof new file mode 100644 index 0000000..38d0745 --- /dev/null +++ b/Source/Configuracion/Configuracion.dof @@ -0,0 +1,471 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\Output\Cliente +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=1 +Item0=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=1 +Item0=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=1 +Item0=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Configuracion/Configuracion.dpk b/Source/Configuracion/Configuracion.dpk new file mode 100644 index 0000000..e59d02e --- /dev/null +++ b/Source/Configuracion/Configuracion.dpk @@ -0,0 +1,35 @@ +package Configuracion; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + JvGlobusD10R, + BaseD10, + Usuarios; + +contains + uPanelControl in 'uPanelControl.pas' {fPanelControl}; + +end. diff --git a/Source/Configuracion/Configuracion.drc b/Source/Configuracion/Configuracion.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Configuracion/Configuracion.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Configuracion/Configuracion.rc b/Source/Configuracion/Configuracion.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Configuracion/Configuracion.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Configuracion/Configuracion.res b/Source/Configuracion/Configuracion.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uDataModuleControles.dfm b/Source/ControlesBase/Cliente/uDataModuleControles.dfm new file mode 100644 index 0000000..f615384 --- /dev/null +++ b/Source/ControlesBase/Cliente/uDataModuleControles.dfm @@ -0,0 +1,172 @@ +object dmControles: TdmControles + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 300 + Width = 300 + object RemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvControles' + Left = 56 + Top = 16 + end + object ds_Controles: TDADataSource + DataSet = tbl_Controles.Dataset + DataTable = tbl_Controles + Left = 176 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'ListaControlesPorCategoria' + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = True + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer1 + Left = 56 + Top = 80 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 56 + Top = 152 + end + object tbl_Controles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + DefaultValue = 'S' + end + item + Name = 'ICONO' + DataType = datSmallInt + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'ORDEN' + DataType = datSmallInt + end + item + Name = 'VISTA' + DataType = datMemo + end> + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Value = 'vebyas' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaControlesPorCategoria' + IndexDefs = <> + Left = 176 + Top = 16 + end +end diff --git a/Source/ControlesBase/Cliente/uDataModuleControles.pas b/Source/ControlesBase/Cliente/uDataModuleControles.pas new file mode 100644 index 0000000..9fbe2d4 --- /dev/null +++ b/Source/ControlesBase/Cliente/uDataModuleControles.pas @@ -0,0 +1,76 @@ +unit uDataModuleControles; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uROClient, uROServiceComponent, uRORemoteService, + uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer, uDABinAdapter, + uDAMemDataTable; + +type + TdmControles = class(TDAClientDataModule) + RemoteService: TRORemoteService; + ds_Controles: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + tbl_Controles: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems (const ACategoria : String): TDACDSDataTable; + end; + +var + dmControles: TdmControles; + +implementation + +{$R *.DFM} + +uses + Forms, Controls, + schControlesClient_Intf, + uDataModuleBase, uDataTableUtils, DataAbstract3_Intf, cxControls; + +procedure TdmControles.DAClientDataModuleCreate(Sender: TObject); +begin + RemoteService.Channel := dmBase.Channel; + RemoteService.Message := dmBase.Message; +end; + +function TdmControles.GetItems (const ACategoria : String): TDACDSDataTable; +var + dtControles: TDACDSDataTable; + //AParams : TDADatasetParamArray; +begin + ShowHourglassCursor; + try + dtControles := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Controles, dtControles); + + // Begin adaptación DA5 + {AParams := TDADatasetParamArray.Create; + with AParams.Add do begin + Name := fld_ListaControlesPorCategoriaCATEGORIA; + Value := ACategoria; + end;} + //dtControles.DataRequestCall.ParamByName(par_Params).AsComplexType := AParams; + + dtControles.ParamByName(fld_ListaControlesPorCategoriaCATEGORIA).AsString := ACategoria; // adaptación + // End adaptación DA5 + Result := dtControles; + finally + HideHourglassCursor; + end; +end; + +initialization + dmControles := TdmControles.Create(nil); + +finalization + FreeAndNil(dmControles); + +end. + diff --git a/Source/ControlesBase/Cliente/uDateUtils.pas b/Source/ControlesBase/Cliente/uDateUtils.pas new file mode 100644 index 0000000..d46a72b --- /dev/null +++ b/Source/ControlesBase/Cliente/uDateUtils.pas @@ -0,0 +1,68 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDateUtils; + +interface + +function NumberDayOfTheWeek(const ADay : String) : Word; +function NumberMonthOfTheYear(const AMonth : String) : Word; + +implementation + +uses + DateUtils; + +function NumberDayOfTheWeek(const ADay : String) : Word; +begin + if (ADay = 'Monday') or (ADay = 'Lunes') then + Result := DayMonday; + if (ADay = 'Tuesday') or (ADay = 'Martes') then + Result := DayTuesday; + if (ADay = 'Wednesday') or (ADay = 'Miercoles') or (ADay = 'Miércoles') then + Result := DayWednesday; + if (ADay = 'Thursday') or (ADay = 'Jueves') then + Result := DayThursday; + if (ADay = 'Friday') or (ADay = 'Viernes') then + Result := DayFriday; + if (ADay = 'Saturday') or (ADay = 'Sabado') or (ADay = 'Sábado') then + Result := DaySaturday; + if (ADay = 'Sunday') or (ADay = 'Domingo') then + Result := DaySunday; +end; + +function NumberMonthOfTheYear(const AMonth : String) : Word; +begin + if (AMonth = 'January') or (AMonth = 'Enero') then + Result := 1; + if (AMonth = 'February') or (AMonth = 'Febrero') then + Result := 2; + if (AMonth = 'March') or (AMonth = 'Marzo') then + Result := 3; + if (AMonth = 'April') or (AMonth = 'Abril') then + Result := 4; + if (AMonth = 'May') or (AMonth = 'Mayo') then + Result := 5; + if (AMonth = 'June') or (AMonth = 'Junio') then + Result := 6; + if (AMonth = 'July') or (AMonth = 'Julio') then + Result := 7; + if (AMonth = 'August') or (AMonth = 'Agosto') then + Result := 8; + if (AMonth = 'September') or (AMonth = 'Septiembre') or (AMonth = 'Setiembre') then + Result := 9; + if (AMonth = 'October') or (AMonth = 'Octubre') then + Result := 10; + if (AMonth = 'November') or (AMonth = 'Noviembre') then + Result := 11; + if (AMonth = 'December') or (AMonth = 'Diciembre') then + Result := 12; +end; + +end. + \ No newline at end of file diff --git a/Source/ControlesBase/Cliente/uEditorControlBase.ddp b/Source/ControlesBase/Cliente/uEditorControlBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uEditorControlBase.dfm b/Source/ControlesBase/Cliente/uEditorControlBase.dfm new file mode 100644 index 0000000..0aa84fd --- /dev/null +++ b/Source/ControlesBase/Cliente/uEditorControlBase.dfm @@ -0,0 +1,1324 @@ +inherited fEditorControlBase: TfEditorControlBase + Left = 499 + Top = 302 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 523 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object tbxiPropiedades: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem14: TTBXSeparatorItem [8] + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + object TBXSeparatorItem15: TTBXSeparatorItem [6] + end + object tbxiPropiedades2: TTBXItem [7] + Action = actPropiedades + end + end + end + end + inherited EditorActionList: TActionList + inherited actGuardarCerrar: TAction + OnUpdate = actGuardarCerrarUpdate + end + inherited actGuardar: TAction + OnUpdate = actGuardarUpdate + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Source/ControlesBase/Cliente/uEditorControlBase.pas b/Source/ControlesBase/Cliente/uEditorControlBase.pas new file mode 100644 index 0000000..ee7b12f --- /dev/null +++ b/Source/ControlesBase/Cliente/uEditorControlBase.pas @@ -0,0 +1,133 @@ +unit uEditorControlBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uBizControlesBase, schControlesClient_Intf, uViewControlBase, uDAInterfaces; + +type + IEditorControlBase = interface(IEditorDBItem) + ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + end; + + + TfEditorControlBase = class(TfEditorDBItem, IEditorControlBase) + actPropiedades: TAction; + TBXSeparatorItem14: TTBXSeparatorItem; + tbxiPropiedades: TTBXItem; + TBXSeparatorItem15: TTBXSeparatorItem; + tbxiPropiedades2: TTBXItem; + procedure actPropiedadesExecute(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FControl : IBizControlBase; + FViewControl : IViewControlBase; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + procedure RefrescarTituloEditor; virtual; + function GetModified: Boolean; override; + procedure RellenarCabeceraInforme; virtual; + public + property Control: IBizControlBase read GetControl write SetControl; + end; + +implementation + +uses uEditorDBBase, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlBase } + +function TfEditorControlBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfEditorControlBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := FControl.DataTable; + if Assigned(FViewControl) then + FViewControl.Control := FControl; +end; + +procedure TfEditorControlBase.actPropiedadesExecute(Sender: TObject); +begin + inherited; + try + FControl.VerPropiedades; + finally + RefrescarTituloEditor; + FViewControl.Modificable := FControl.EsModificable; + inherited actGuardarExecute(Sender); + end; +end; + +procedure TfEditorControlBase.RefrescarTituloEditor; +begin + if Assigned(FControl) and (Length(FControl.NOMBRE) > 0) then + begin + Caption := FControl.NOMBRE; + JvNavPanelHeader.Caption := FControl.NOMBRE; + end; +end; + +function TfEditorControlBase.GetModified: Boolean; +begin + Result := inherited GetModified and + (Assigned(FControl) and FControl.EsModificable); +end; + +procedure TfEditorControlBase.actGuardarCerrarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); +end; + +procedure TfEditorControlBase.actGuardarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); +end; + +procedure TfEditorControlBase.actPrevisualizarExecute(Sender: TObject); +begin + RellenarCabeceraInforme; + inherited; +end; + +procedure TfEditorControlBase.RellenarCabeceraInforme; +begin + inherited; + // +end; + +procedure TfEditorControlBase.actImprimirExecute(Sender: TObject); +begin + RellenarCabeceraInforme; + inherited; +end; + + +procedure TfEditorControlBase.actEliminarExecute(Sender: TObject); +begin + if not FControl.EsModificable then + ShowMessage('Este control no se puede eliminar') + else + inherited +end; + +end. diff --git a/Source/ControlesBase/Cliente/uEditorControlesBase.dfm b/Source/ControlesBase/Cliente/uEditorControlesBase.dfm new file mode 100644 index 0000000..941ccbd --- /dev/null +++ b/Source/ControlesBase/Cliente/uEditorControlesBase.dfm @@ -0,0 +1,1394 @@ +inherited fEditorControlesBase: TfEditorControlesBase + Left = 385 + Top = 375 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + ExplicitTop = 0 + end + inherited TBXDock: TTBXDock + Top = 27 + ExplicitTop = 27 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 386 + inherited TBXItem2: TTBXItem + ImageIndex = 0 + Images = pngImageNuevo + end + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + end + end + inherited EditorActionList: TActionList + Left = 72 + Top = 128 + inherited actNuevo: TAction + Caption = 'Nuevo control...' + OnExecute = actNuevoExecute + end + inherited actModificar: TAction + Caption = 'Abrir control' + OnExecute = actModificarExecute + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + OnUpdate = actPropiedadesUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + object ViewPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Propiedades1: TMenuItem + Action = actPropiedades + end + end + object pngImageNuevo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 224 + Bitmap = {} + end +end diff --git a/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk b/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk new file mode 100644 index 0000000..941ccbd --- /dev/null +++ b/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk @@ -0,0 +1,1394 @@ +inherited fEditorControlesBase: TfEditorControlesBase + Left = 385 + Top = 375 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + ExplicitTop = 0 + end + inherited TBXDock: TTBXDock + Top = 27 + ExplicitTop = 27 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 386 + inherited TBXItem2: TTBXItem + ImageIndex = 0 + Images = pngImageNuevo + end + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + end + end + inherited EditorActionList: TActionList + Left = 72 + Top = 128 + inherited actNuevo: TAction + Caption = 'Nuevo control...' + OnExecute = actNuevoExecute + end + inherited actModificar: TAction + Caption = 'Abrir control' + OnExecute = actModificarExecute + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + OnUpdate = actPropiedadesUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + object ViewPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Propiedades1: TMenuItem + Action = actPropiedades + end + end + object pngImageNuevo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 224 + Bitmap = {} + end +end diff --git a/Source/ControlesBase/Cliente/uEditorControlesBase.pas b/Source/ControlesBase/Cliente/uEditorControlesBase.pas new file mode 100644 index 0000000..3817fac --- /dev/null +++ b/Source/ControlesBase/Cliente/uEditorControlesBase.pas @@ -0,0 +1,167 @@ +unit uEditorControlesBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, pngimage, uBizControlesBase, uEditorBase, + uViewControlesBase, uDAInterfaces; + +type + IEditorControlesBase = interface(IEditorDBBase) + ['{9B15BCEA-4C31-442A-89EC-773B66460A3B}'] + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + end; + + TfEditorControlesBase = class(TfEditorDBBase, IEditorControlesBase) + ViewPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + pngImageNuevo: TPngImageList; + actPropiedades: TAction; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem7: TTBXItem; + N2: TMenuItem; + Propiedades1: TMenuItem; + procedure actNuevoExecute(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPropiedadesExecute(Sender: TObject); + procedure actPropiedadesUpdate(Sender: TObject); + protected + FControl : IBizControlBase; + FViewControl : IViewControlesBase; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + public + destructor Destroy; override; + property Control: IBizControlBase read GetControl write SetControl; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +{ TfEditorControlesBase } + +function TfEditorControlesBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfEditorControlesBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := FControl.DataTable; + if Assigned(FViewControl) then + begin + FViewControl.Control := FControl; + end; +end; + +procedure TfEditorControlesBase.actNuevoExecute(Sender: TObject); +begin + inherited; + try + FControl.Insert; + FControl.Show; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actModificarExecute(Sender: TObject); +begin + inherited; + try + FControl.Show; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewControl) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Control) then + raise Exception.Create('No hay ningún control asignado'); + + FViewControl.OnDblClick := actModificar.OnExecute; + FViewControl.PopupMenu := ViewPopupMenu; + + Control.DataTable.Active := True; + + FViewControl.Refresh; +end; + +destructor TfEditorControlesBase.Destroy; +begin + FViewControl := NIL; + FControl := NIL; + inherited; +end; + +procedure TfEditorControlesBase.actEliminarExecute(Sender: TObject); +begin + try + if not FControl.EsModificable then + ShowMessage('Este control no se puede borrar') + else + if (Application.MessageBox('¿Desea borrar este control?', 'Atención', MB_YESNO) = IDYES) then + inherited; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actRefrescarExecute(Sender: TObject); +begin + inherited; + if Assigned(FViewControl) then + FViewControl.Refresh; +end; + +procedure TfEditorControlesBase.actPropiedadesExecute(Sender: TObject); +begin + inherited; + if Assigned(FControl) then + try + FControl.VerPropiedades; + actGuardar.Execute; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actPropiedadesUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and not (dsDataTable.DataTable.State = dsInsert) + else + (Sender as TAction).Enabled := False; +end; + +constructor TfEditorControlesBase.Create(AOwner: TComponent); +begin + inherited; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +end. diff --git a/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm b/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm new file mode 100644 index 0000000..9180b16 --- /dev/null +++ b/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm @@ -0,0 +1,384 @@ +object frPropiedadesControl: TfrPropiedadesControl + Left = 569 + Top = 354 + ActiveControl = edtNombre + BorderStyle = bsDialog + Caption = 'Propiedades del informe' + ClientHeight = 418 + ClientWidth = 378 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnCloseQuery = FormCloseQuery + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 15 + Top = 84 + Width = 92 + Height = 13 + Caption = '&Nombre del control:' + FocusControl = edtNombre + end + object Label2: TLabel + Left = 48 + Top = 112 + Width = 59 + Height = 13 + Caption = '&Descripci'#243'n:' + FocusControl = memDescripcion + end + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 378 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Propiedades del control') + Comments.Strings = ( + 'Introduca los datos del control') + Gradient.FromColor = clGradientActiveCaption + Gradient.ToColor = clGradientInactiveCaption + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Label3: TLabel + Left = 77 + Top = 272 + Width = 30 + Height = 13 + Caption = '&Icono:' + end + object Bevel1: TBevel + Left = 8 + Top = 360 + Width = 361 + Height = 10 + Shape = bsBottomLine + end + object memDescripcion: TcxMemo + Left = 120 + Top = 112 + Lines.Strings = ( + '') + Properties.ScrollBars = ssVertical + Properties.WantReturns = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 105 + Width = 241 + end + object edtNombre: TcxTextEdit + Left = 120 + Top = 80 + Style.Color = 14745599 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 241 + end + object bAceptar: TButton + Left = 296 + Top = 384 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 2 + end + object cbModificable: TCheckBox + Left = 120 + Top = 232 + Width = 234 + Height = 17 + Caption = 'No &permitir realizar cambios en este control' + TabOrder = 3 + end + object btnIcono: TJvImgBtn + Left = 120 + Top = 272 + Width = 60 + Height = 60 + TabOrder = 4 + DropDownMenu = JvPopupMenu1 + DropArrow = True + Flat = True + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'MS Sans Serif' + HotTrackFont.Style = [] + Images = ReportImages + ImageIndex = 1 + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 27 + Top = 216 + Bitmap = {} + end + object JvPopupMenu1: TJvPopupMenu + Images = ReportImages + OnPopup = JvPopupMenu1Popup + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + Left = 192 + Top = 288 + object N11: TMenuItem + Caption = '1' + end + end +end diff --git a/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas b/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas new file mode 100644 index 0000000..22d8afa --- /dev/null +++ b/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas @@ -0,0 +1,117 @@ +unit uFormPropiedadesControl; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, StdCtrls, + JvExControls, JvComponent, JvgWizardHeader, ExtCtrls, ImgList, + PngImageList, JvExStdCtrls, JvButton, JvCtrls, Menus, JvMenus, ActnList; + +type + TfrPropiedadesControl = class(TForm) + edtNombre: TcxTextEdit; + Label1: TLabel; + Label2: TLabel; + bAceptar: TButton; + memDescripcion: TcxMemo; + JvgWizardHeader1: TJvgWizardHeader; + cbModificable: TCheckBox; + Label3: TLabel; + Bevel1: TBevel; + btnIcono: TJvImgBtn; + ReportImages: TPngImageList; + JvPopupMenu1: TJvPopupMenu; + N11: TMenuItem; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure JvPopupMenu1Popup(Sender: TObject); + private + procedure SetDescripcion(const Value: String); + procedure SetNombre(const Value: String); + function GetDescripcion: String; + function GetNombre: String; + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + function GetIcono: Integer; + procedure SetIcono(const Value: Integer); + procedure OnMenuItemClick(Sender: TObject); + public + property Nombre : String read GetNombre write SetNombre; + property Descripcion : String read GetDescripcion write SetDescripcion; + property Modificable : Boolean read GetModificable write SetModificable; + property Icono : Integer read GetIcono write SetIcono; + end; + + +implementation + +{$R *.dfm} + +procedure TfrPropiedadesControl.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := Length(edtNombre.Text) > 0; + if not CanClose then + ShowMessage('Debe indicar al menos el nombre de este control.'); +end; + +function TfrPropiedadesControl.GetDescripcion: String; +begin + Result := memDescripcion.Lines.Text; +end; + +function TfrPropiedadesControl.GetIcono: Integer; +begin + Result := btnIcono.ImageIndex; +end; + +function TfrPropiedadesControl.GetModificable: Boolean; +begin + Result := not cbModificable.Checked; +end; + +function TfrPropiedadesControl.GetNombre: String; +begin + Result := edtNombre.Text; +end; + +procedure TfrPropiedadesControl.SetDescripcion(const Value: String); +begin + memDescripcion.Lines.Text := Value; +end; + +procedure TfrPropiedadesControl.SetIcono(const Value: Integer); +begin + btnIcono.ImageIndex := Value; +end; + +procedure TfrPropiedadesControl.SetModificable(const Value: Boolean); +begin + cbModificable.Checked := not Value; +end; + +procedure TfrPropiedadesControl.SetNombre(const Value: String); +begin + edtNombre.Text := Value; +end; + +procedure TfrPropiedadesControl.JvPopupMenu1Popup(Sender: TObject); +var + AItem : TMenuItem; + i : integer; +begin + JvPopupMenu1.Items.Clear; + for i := 0 to ReportImages.Count - 1 do + begin + AItem := TMenuItem.Create(JvPopupMenu1); + AItem.OnClick := OnMenuItemClick; + AItem.ImageIndex := i; + JvPopupMenu1.Items.Add(AItem); + end; +end; + +procedure TfrPropiedadesControl.OnMenuItemClick(Sender: TObject); +begin + btnIcono.ImageIndex := (Sender as TMenuItem).ImageIndex; +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp b/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm b/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm new file mode 100644 index 0000000..20e4854 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm @@ -0,0 +1,135 @@ +inherited frViewAgrupaciones: TfrViewAgrupaciones + Width = 228 + Height = 396 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 228 + Height = 29 + Align = alTop + Caption = 'Agrupaciones' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 0 + Top = 29 + Width = 228 + Height = 77 + Align = alTop + AutoSize = True + TabOrder = 1 + DesignSize = ( + 228 + 77) + object Label3: TLabel + Left = 7 + Top = 60 + Width = 74 + Height = 13 + Caption = 'y por '#250'ltimo por:' + Transparent = True + end + object Label2: TLabel + Left = 7 + Top = 32 + Width = 61 + Height = 13 + Caption = 'despu'#233's por:' + Transparent = True + end + object Label1: TLabel + Left = 7 + Top = 4 + Width = 95 + Height = 13 + Caption = 'Agrupar primero por:' + Transparent = True + end + object TBXButton1: TTBXButton + Tag = 1 + Left = 111 + Top = 0 + Width = 111 + Height = 21 + Action = actBoton1 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu1 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ImageIndex = 0 + ParentFont = False + TabOrder = 0 + Wrapping = twEndEllipsis + end + object TBXButton3: TTBXButton + Tag = 3 + Left = 111 + Top = 56 + Width = 111 + Height = 21 + Action = actBoton3 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu3 + ImageIndex = 0 + TabOrder = 1 + Wrapping = twEndEllipsis + end + object TBXButton2: TTBXButton + Tag = 2 + Left = 111 + Top = 28 + Width = 111 + Height = 21 + Action = actBoton2 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu2 + ImageIndex = 0 + TabOrder = 2 + Wrapping = twEndEllipsis + end + end + object PopupMenu1: TPopupMenu + Left = 32 + Top = 136 + end + object PopupMenu2: TPopupMenu + Left = 64 + Top = 136 + end + object PopupMenu3: TPopupMenu + Left = 96 + Top = 136 + end + object ActionList1: TActionList + Left = 32 + Top = 168 + object actBoton2: TAction + OnExecute = actBoton2Execute + OnUpdate = actBoton2Update + end + object actBoton3: TAction + OnExecute = actBoton3Execute + OnUpdate = actBoton3Update + end + object actBoton1: TAction + OnExecute = actBoton1Execute + end + object actMenuClick: TAction + end + end +end diff --git a/Source/ControlesBase/Cliente/uViewAgrupaciones.pas b/Source/ControlesBase/Cliente/uViewAgrupaciones.pas new file mode 100644 index 0000000..ff987e2 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewAgrupaciones.pas @@ -0,0 +1,339 @@ +unit uViewAgrupaciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ActnList, Menus, dxLayoutLookAndFeels, dxLayoutControl, uViewBase, + TBXDkPanels, cxControls, StdCtrls, ImgList, uViewControlGrid, + PngImageList, uViewParametrosControlGrid, JvExControls, JvComponent, + JvArrowButton, cxLookAndFeelPainters, cxButtons; + +type + IViewAgrupaciones = interface(IViewParametrosControlGrid) + ['{42030B8F-B12D-43D2-AEB2-F642F11D78DA}'] + function GetAgrupaciones: TStringList; + end; + + TfrViewAgrupaciones = class(TfrViewParametrosControlGrid, IViewAgrupaciones) + TBXButton1: TTBXButton; + TBXButton2: TTBXButton; + TBXButton3: TTBXButton; + PopupMenu1: TPopupMenu; + PopupMenu2: TPopupMenu; + PopupMenu3: TPopupMenu; + ActionList1: TActionList; + actBoton2: TAction; + actBoton3: TAction; + actBoton1: TAction; + actMenuClick: TAction; + TBXLabel1: TTBXLabel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + procedure actBoton2Update(Sender: TObject); + procedure actBoton3Update(Sender: TObject); + procedure actBoton2Execute(Sender: TObject); + procedure actBoton3Execute(Sender: TObject); + procedure actBoton1Execute(Sender: TObject); + procedure AMenuItemClick(Sender: TObject); + protected + FColumns : TStringList; + + FBotonPulsado : TTBXButton; + procedure MarcarItem(AMenuItem : TMenuItem); overload; + procedure MarcarItem(AMenu : TPopupMenu; const ACaption : String); overload; + procedure DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); + procedure DesmarcarItems(AMenu : TPopupMenu); + + procedure OnButtonPopup(Sender: TTBXCustomButton; var AllowDropDown: Boolean); + procedure RellenarListaColumnas; + procedure RellenarAgrupaciones; + procedure SetModificable(const Value: Boolean); override; + public + function GetAgrupaciones: TStringList; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Refresh; override; + procedure Execute; override; + end; + +implementation + +uses + cxGridDBTableView, JclStrings; + +{$R *.dfm} + +const + SIN_AGRUPACION = '(Quitar agrupación)'; + +{ TfrAgrupaciones } + +procedure TfrViewAgrupaciones.MarcarItem(AMenuItem : TMenuItem); +var + AItem : TMenuItem; +begin + AMenuItem.Checked := True; + + AItem := PopupMenu1.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; + + AItem := PopupMenu2.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; + + AItem := PopupMenu3.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; +end; + +procedure TfrViewAgrupaciones.MarcarItem(AMenu : TPopupMenu; const ACaption : String); +var + AItem : TMenuItem; +begin + AItem := AMenu.Items.Find(ACaption); + if Assigned(AItem) then + MarcarItem(AItem); +end; + +procedure TfrViewAgrupaciones.DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); +var + AItem : TMenuItem; +begin + AItem := AMenu.Items.Find(ACaption); + if Assigned(AItem) then + begin + AItem.Enabled := True; + AItem.Checked := False; + end; +end; + +procedure TfrViewAgrupaciones.DesmarcarItems(AMenu : TPopupMenu); +var + i : integer; +begin + for i := 0 to AMenu.Items.Count - 1 do + begin + AMenu.Items[i].Enabled := True; + AMenu.Items[i].Checked := False; + end; +end; + + +function TfrViewAgrupaciones.GetAgrupaciones: TStringList; +var + aux : String; + AIndex : Integer; +begin + Result := TStringList.Create; + if actBoton1.Enabled then + begin + aux := TBXButton1.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + + if actBoton2.Enabled then + begin + aux := TBXButton2.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + + if actBoton3.Enabled then + begin + aux := TBXButton3.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + end; + end; + end; +end; + +procedure TfrViewAgrupaciones.actBoton2Update(Sender: TObject); +begin + (Sender as TAction).Enabled := Length(TBXButton1.Caption) > 0; +end; + +procedure TfrViewAgrupaciones.actBoton3Update(Sender: TObject); +begin + (Sender as TAction).Enabled := Length(TBXButton2.Caption) > 0; +end; + +procedure TfrViewAgrupaciones.actBoton2Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.actBoton3Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.actBoton1Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.AMenuItemClick(Sender: TObject); +var + i : integer; +begin + if (Sender as TMenuItem).MenuIndex > 0 then // El 0 es 'Sin agrupacion' + begin + DesmarcarItem(PopupMenu1, FBotonPulsado.Caption); + DesmarcarItem(PopupMenu2, FBotonPulsado.Caption); + DesmarcarItem(PopupMenu3, FBotonPulsado.Caption); + FBotonPulsado.Caption := (Sender as TMenuItem).Caption; + MarcarItem(Sender as TMenuItem); + end + else begin + DesmarcarItems(PopupMenu1); + DesmarcarItems(PopupMenu2); + DesmarcarItems(PopupMenu3); + // Anular los botones que estén por debajo del actual + for i := 3 downto FBotonPulsado.Tag do + TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; + end; +end; + +constructor TfrViewAgrupaciones.Create(AOwner: TComponent); +begin + inherited; + FColumns := TStringList.Create; + + TBXButton1.OnDropDown := OnButtonPopup; + TBXButton2.OnDropDown := OnButtonPopup; + TBXButton3.OnDropDown := OnButtonPopup; +end; + +procedure TfrViewAgrupaciones.OnButtonPopup(Sender: TTBXCustomButton; + var AllowDropDown: Boolean); +begin + FBotonPulsado := (Sender as TTBXButton); +end; + +procedure TfrViewAgrupaciones.Execute; +var + AgrBotones : TStringList; + i : Integer; +begin + AgrBotones := GetAgrupaciones; + for i := 0 to FColumns.Count - 1 do + (FColumns.Objects[i] as TcxGridDBColumn).GroupIndex := AgrBotones.IndexOf(FColumns.Strings[i]); +end; + +procedure TfrViewAgrupaciones.Refresh; +begin + RellenarListaColumnas; + RellenarAgrupaciones; +end; + +procedure TfrViewAgrupaciones.RellenarListaColumnas; +var + i : integer; + + function DarItem (const ACaption : string):TMenuItem; + begin + Result := NewItem(ACaption, 0, false, true, AMenuItemClick, 0, ''); + end; + +begin + PopupMenu1.Items.Clear; + PopupMenu2.Items.Clear; + PopupMenu3.Items.Clear; + + PopupMenu1.Items.Add(DarItem(SIN_AGRUPACION)); + PopupMenu2.Items.Add(DarItem(SIN_AGRUPACION)); + PopupMenu3.Items.Add(DarItem(SIN_AGRUPACION)); + + for i := 0 to ViewControlGrid.ColumnCount - 1 do + begin + FColumns.AddObject(ViewControlGrid.Columns[i].Caption, ViewControlGrid.Columns[i]); + PopupMenu1.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + PopupMenu2.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + PopupMenu3.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + end; +end; + +destructor TfrViewAgrupaciones.Destroy; +begin + FreeAndNIL(FColumns); + inherited; +end; + +procedure TfrViewAgrupaciones.RellenarAgrupaciones; +var + i : integer; + AList : TStringList; +begin + AList := TStringList.Create; + + try + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + AList.Add(ViewControlGrid.GroupedColumns[i].Caption); + end; + + if AList.Count > 0 then + begin + DesmarcarItems(PopupMenu1); + DesmarcarItems(PopupMenu2); + DesmarcarItems(PopupMenu3); + + // Anular los botones que estén por debajo del actual + for i := 1 to 3 do + TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; + + TBXButton1.Caption := AList.Strings[0]; + MarcarItem(TBXButton1.DropDownMenu, AList.Strings[0]); + + if AList.Count > 1 then + begin + TBXButton2.Caption := AList.Strings[1]; + MarcarItem(TBXButton2.DropDownMenu, AList.Strings[1]); + + if AList.Count > 2 then + begin + TBXButton3.Caption := AList.Strings[2]; + MarcarItem(TBXButton3.DropDownMenu, AList.Strings[2]); + end; + end; + end; + finally + FreeAndNil(AList); + end; +end; + +procedure TfrViewAgrupaciones.SetModificable(const Value: Boolean); +begin + inherited; + pnlAgrupaciones.Enabled := Value; + + if pnlAgrupaciones.Enabled then + begin + Label1.Font.Color := clWindowText; + Label2.Font.Color := clWindowText; + Label3.Font.Color := clWindowText; + TBXButton1.Font.Color := clWindowText; + TBXButton2.Font.Color := clWindowText; + TBXButton3.Font.Color := clWindowText; + end + else begin + Label1.Font.Color := clBtnShadow; + Label2.Font.Color := clBtnShadow; + Label3.Font.Color := clBtnShadow; + TBXButton1.Font.Color := clBtnShadow; + TBXButton2.Font.Color := clBtnShadow; + TBXButton3.Font.Color := clBtnShadow; + end +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewColumnas.ddp b/Source/ControlesBase/Cliente/uViewColumnas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewColumnas.dfm b/Source/ControlesBase/Cliente/uViewColumnas.dfm new file mode 100644 index 0000000..ecbb78b --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewColumnas.dfm @@ -0,0 +1,42 @@ +inherited frViewColumnas: TfrViewColumnas + Width = 316 + Height = 350 + object lbColumnas: TcxCheckListBox + Left = 0 + Top = 29 + Width = 316 + Height = 321 + Align = alClient + Items = <> + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clWindow + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + OnClickCheck = lbColumnasClickCheck + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 316 + Height = 29 + Align = alTop + Caption = 'Columnas' + FocusControl = lbColumnas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end +end diff --git a/Source/ControlesBase/Cliente/uViewColumnas.pas b/Source/ControlesBase/Cliente/uViewColumnas.pas new file mode 100644 index 0000000..ccba0d7 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewColumnas.pas @@ -0,0 +1,113 @@ +unit uViewColumnas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, + TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, + JvExControls, JvComponent, JvxCheckListBox, uViewControlGrid, + cxCheckListBox, cxCheckBox, uViewParametrosControlGrid; + +type + IViewColumnas = interface(IViewParametrosControlGrid) + ['{FD33275B-6875-421A-ABAC-595982ACDDDB}'] + function GetCheckedColumns : TStringList; + end; + + TfrViewColumnas = class(TfrViewParametrosControlGrid, IViewColumnas) + lbColumnas: TcxCheckListBox; + TBXLabel1: TTBXLabel; + procedure lbColumnasClickCheck(Sender: TObject; AIndex: Integer; + APrevState, ANewState: TcxCheckBoxState); + protected + procedure RellenarListaColumnas; + procedure SetModificable(const Value : Boolean); override; + public + procedure Refresh; override; + procedure Execute; override; + function GetCheckedColumns : TStringList; + end; + +implementation + +{$R *.dfm} + +{ TfrViewColumnas } + +procedure TfrViewColumnas.Refresh; +begin + inherited; + RellenarListaColumnas; +end; + +procedure TfrViewColumnas.RellenarListaColumnas; +var + i : integer; + AIndex : Integer; +begin + with lbColumnas do + begin + Items.BeginUpdate; + Items.Clear; + try + for i := 0 to ViewControlGrid.ColumnCount - 1 do + begin + AddItem(ViewControlGrid.Columns[i].Caption); + AIndex := Items.Count - 1; + Items[AIndex].Checked := ViewControlGrid.Columns[i].Visible; + Items[AIndex].ItemObject := ViewControlGrid.Columns[i]; + end; + finally + Items.EndUpdate; + end; + end; +end; + +procedure TfrViewColumnas.lbColumnasClickCheck(Sender: TObject; + AIndex: Integer; APrevState, ANewState: TcxCheckBoxState); +var + i : integer; +begin + inherited; + { No hacer nada por que el cambio en las columnas se debe ver cuando + el usuario pulse sobre el botón 'Refrescar'. } +{ with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + (ItemObject as TcxGridDBColumn).Visible := (ANewState = cbsChecked);} +end; + +procedure TfrViewColumnas.Execute; +var + AIndex : integer; +begin + inherited; + for AIndex := 0 to lbColumnas.Items.Count - 1 do + with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + (ItemObject as TcxGridDBColumn).Visible := (State = cbsChecked); +end; + +function TfrViewColumnas.GetCheckedColumns: TStringList; +var + AIndex : integer; +begin + result := TStringList.Create; + for AIndex := 0 to lbColumnas.Items.Count - 1 do + if (lbColumnas.Items[AIndex].State = cbsChecked) then + with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + Result.Add((ItemObject as TcxGridDBColumn).DataBinding.FieldName); +end; + +procedure TfrViewColumnas.SetModificable(const Value: Boolean); +begin + inherited; + lbColumnas.ReadOnly := not Value; + if lbColumnas.ReadOnly then + lbColumnas.Style.TextColor := clBtnShadow + else + lbColumnas.Style.TextColor := clWindowText; +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewControlBase.ddp b/Source/ControlesBase/Cliente/uViewControlBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewControlBase.dfm b/Source/ControlesBase/Cliente/uViewControlBase.dfm new file mode 100644 index 0000000..916411a --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlBase.dfm @@ -0,0 +1,616 @@ +inherited frViewControlBase: TfrViewControlBase + Width = 699 + Height = 607 + ExplicitWidth = 699 + ExplicitHeight = 607 + object TBXMultiDock1: TTBXMultiDock + Left = 0 + Top = 0 + Width = 222 + Height = 607 + Position = dpLeft + object pnlParametros: TTBXDockablePanel + Left = 0 + Top = 0 + Caption = 'Par'#225'metros del informe' + CloseButton = False + CloseButtonWhenDocked = False + DockedWidth = 218 + DockedHeight = 185 + DockMode = dmCannotFloat + DockPos = 0 + ParentShowHint = False + ShowHint = False + SplitHeight = 261 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object TBXAlignmentPanel2: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 218 + Height = 67 + Margins.Left = 4 + Margins.Top = 4 + Margins.Right = 4 + Margins.Bottom = 4 + Align = alTop + AutoSize = True + TabOrder = 0 + object TBXLink1: TTBXLink + Left = 4 + Top = 4 + Width = 210 + Height = 19 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 29 + ParentColor = True + ParentFont = False + TabOrder = 0 + Wrapping = twPathEllipsis + end + object TBXLink5: TTBXLink + Left = 4 + Top = 23 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actColumnas + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 3 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 1 + Wrapping = twPathEllipsis + end + object TBXLink2: TTBXLink + Left = 4 + Top = 43 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actAgrupaciones + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 0 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 2 + Wrapping = twPathEllipsis + end + end + object pcParametros: TPageControl + Left = 0 + Top = 67 + Width = 218 + Height = 169 + ActivePage = tsAgrupacion + Align = alClient + Style = tsFlatButtons + TabOrder = 1 + object TabSheet5: TTabSheet + Caption = 'TabSheet5' + TabVisible = False + end + object tsColumnas: TTabSheet + Caption = 'tsColumnas' + ImageIndex = 1 + TabVisible = False + inline frViewColumnas1: TfrViewColumnas + Left = 0 + Top = 0 + Width = 210 + Height = 159 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 159 + inherited lbColumnas: TcxCheckListBox + Width = 210 + Height = 130 + ExplicitWidth = 210 + ExplicitHeight = 130 + end + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + end + end + object tsAgrupacion: TTabSheet + Caption = 'tsAgrupacion' + ImageIndex = 2 + TabVisible = False + inline frViewAgrupaciones1: TfrViewAgrupaciones + Left = 0 + Top = 0 + Width = 210 + Height = 159 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 159 + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 210 + ExplicitWidth = 210 + DesignSize = ( + 210 + 77) + inherited Label3: TLabel + Width = 74 + ExplicitWidth = 74 + end + inherited Label2: TLabel + Width = 61 + ExplicitWidth = 61 + end + inherited Label1: TLabel + Width = 95 + ExplicitWidth = 95 + end + inherited TBXButton1: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + inherited TBXButton3: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + inherited TBXButton2: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + end + inherited PopupMenu1: TPopupMenu + Left = 24 + Top = 120 + end + inherited PopupMenu2: TPopupMenu + Left = 56 + Top = 120 + end + inherited PopupMenu3: TPopupMenu + Left = 88 + Top = 120 + end + end + end + end + object TBXAlignmentPanel3: TTBXAlignmentPanel + Left = 0 + Top = 236 + Width = 218 + Height = 30 + Align = alBottom + TabOrder = 2 + object bRefrescar: TButton + Left = 2 + Top = 4 + Width = 100 + Height = 21 + Action = actRefrescar + TabOrder = 0 + end + end + end + object pnlTareas: TTBXDockablePanel + Left = 0 + Top = 288 + Caption = 'Modificar el informe' + CloseButton = False + CloseButtonWhenDocked = False + DockedWidth = 218 + DockMode = dmCannotFloat + DockPos = 288 + FloatingWidth = 128 + FloatingHeight = 128 + SplitHeight = 276 + SplitWidth = 3 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 1 + object TBXPageScroller1: TTBXPageScroller + Left = 0 + Top = 0 + Width = 218 + Height = 281 + Align = alClient + DoubleBuffered = False + Range = 0 + TabOrder = 0 + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 218 + Height = 48 + Margins.Left = 4 + Margins.Top = 4 + Margins.Right = 4 + Margins.Bottom = 4 + Align = alTop + AutoSize = True + TabOrder = 0 + object bFiltros: TTBXLink + Left = 4 + Top = 24 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actFiltros + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 1 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 0 + end + object bSumarios: TTBXLink + Left = 4 + Top = 4 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actSumarios + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 2 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 1 + end + end + object pcTareas: TPageControl + Left = 0 + Top = 48 + Width = 218 + Height = 233 + ActivePage = tsFiltros + Align = alClient + Style = tsButtons + TabOrder = 1 + object tsSumarios: TTabSheet + Caption = 'tsSumarios' + ImageIndex = 2 + TabVisible = False + inline frViewSumarios1: TfrViewSumarios + Left = 0 + Top = 0 + Width = 210 + Height = 223 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 223 + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited vgSumarios: TcxVerticalGrid + Width = 210 + Height = 194 + ExplicitWidth = 210 + ExplicitHeight = 194 + end + end + end + object tsFiltros: TTabSheet + Caption = 'tsFiltros' + ImageIndex = 1 + TabVisible = False + inline frViewFiltros1: TfrViewFiltros + Left = 0 + Top = 0 + Width = 210 + Height = 223 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 223 + inherited vgFiltros: TcxVerticalGrid + Width = 196 + Height = 0 + ExplicitWidth = 196 + ExplicitHeight = 0 + inherited vgFiltrosEditorRow1: TcxEditorRow + Properties.EditProperties.OnEditValueChanged = nil + end + end + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited cxFilterControl1: TcxFilterControl + Width = 210 + Height = 164 + ExplicitWidth = 210 + ExplicitHeight = 164 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 193 + Width = 210 + ExplicitTop = 193 + ExplicitWidth = 210 + end + end + end + end + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000794944415478DA + 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 + E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 + E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 + E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 + 454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001574944415478DA + 63FCFFFF3F0308303232826943C3648800109C3F3F9791010780EB433600A4D9 + B1A892E1129300C399C38719144F6E61483F3F17AE2903A88CA001E7053C1918 + B8B9197C448E33F82C68620868296078346B2503EBA3E70C27910CC169809AC5 + 578685FA3718FEE99A332CB29EC9602427C9C00FD4CC0A54B38B9001B53D0BFE + 57F34C60600E2E6160E27AC6F07BF1328605191718D480F27C407C069F0175BD + 0BFF4BE87832243F7067604F2F61F839B38781D53E8AE1D9C5DD0C5B237683D5 + 6C4D6A03D34FCEDF6538776E0E238A017EC9EDFF37CDAD64F8F4FD2F43CFB425 + 60B10BD79EA1847C4A4626C39377BF18E65456611A00F2826F521BDC90379FFE + 30BCFDFC07AEF9F9FBDF70CDA0E8C51A062080CD1074CD38031106900D3970E5 + 3386668206201B326DE72B0CCD2419606494823549D3C780096D450C219ED9E4 + 1B004A30B8722451066C9E5745303B030083AA15F0BB1362F30000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA + 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 + BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 + 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 + 82} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001534944415478DA + 63542C3BFB9F8102C00832A0CE570F43E2E76F06864F5FFF337CFCF20F4C7FFA + FE9FE11750ECF3B7FF0C5FBE41E87FD74BB11B804D334C13CC001060B9033580 + 5CE70B5C9CC3C0B866CDEAFFC1C1217815FEFDF79FE1F79FBF402FFC61F8FDFB + 2F98BD66FB3186794B37611AC0987812CE6E50D881D5C0C4B43C864D7B4EE236 + E044860183C58C0B0C5247F318562FD8CF109AE008A6ADACB8181A1B1B196292 + 7218B61F388D6A0048026CEB030FB861475375C19A4100640008ECDEDDCD101E + 97C9B0E7C8394C03EAEBEB198E1DFB06B60944C334C30C80B9C03F3C85E1C8E9 + CB9806B8BA96E20CC8CBD6DC70B6E1A5870CA72E5C23EC02647A26232343FAD9 + B30C338D8D1974CEDE63387FF526F630C005241A1AE06CF593B719AEDCBC8330 + C0D73F101EBFBF40348CFDE72F5671104031C0C3CB8F61FE9A7D24A744B801AD + B349D70C4F37FFFF53949B1900BA770EC0E001FEA50000000049454E44AE4260 + 82} + Name = 'PngImage29' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 368 + Top = 32 + Bitmap = {} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000CA4944415478DA + 63FCFFFF3F032D01E3D0B7A0A0730DD56C98501EC288D5020375151441908D7F + FFFE63F8FBEF1FC33F10FDF72F980D11FB0F66FF0189FD05D110F68EED9B19CE + EF9C4ED802720C07B177EFDA4AD802720D07D1FBF7EEC06F012586FF03CA1FDC + BF13B705FA400BEE3D7E497464A21B0E02782D38B86F2F555211560B88D50C73 + 083643F00192149363094916906309C916906A095916906209232ECDE45A4CB4 + 05D42A9F88B28092F289A00594964F782DA046F984D3026A954F382DA056F934 + F42B7D00F75AE9FD6BE4FF8E0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022F4944415478DA + 63FCFFFF3F030C303232C2D98686C9FA406A0A101B00F174205E7AFEFCDC8B0C + 44001433B1590034FC30C8E0ECB9737840FCA9C92920AA1F8817822CD902B40C + C85EE6C3C0B095640B8086AF033203818633ACBBCFC0B0EDFA7584AFD6F63234 + 9F9F8B6C16C89268522DF82F593387615B0BD4202323087DEE1CC396F3290CB6 + F3BA19FEBC7DC670BCB49F410B28BC0F8881FE6324C982F346D908D54083FFF7 + A4306C7566C0301C06D02D21CA82648E7360B11EAB140681A8974053C4C19680 + 00B2E120F00A88AF205982D782C6A605FF1FBDFCC3602A3187215CE904C47086 + CD60F90FCB52186E46430C7342337C63521BC3E67955F82D686A5EF85F4C531D + CCCE10B2049A826AB880E51C86F3FB52187EA5400CD5811AFE7BF571B09A6DDB + F783E94D732B19715AF0878B81E1C2B567508562D040069AA83807AE0E64C9B9 + 14081B6438C860032D2906091D4F861DABE6E2B7A0AC2296E1D79FFF0CBF8178 + E2ACA508CB6AC4E086D71F6B83EB01196C62E70F663F79F70BBF05A038A8ED59 + F0BF2A2F96E1EB8F7F0CBFFFFE67F803C4207AFEE21560CB4006FA0784A0C87D + FEFE0F6E38281E08E66498251FBEFE851B8242FF41B0DF7DF98B6238C1540403 + A0D4040AAE379FFEE0B4E0D5C73F1886136D01B225CFDFFFC6B0E0E9BBDF580D + 27C902644B1EBFF905B7E0C1AB5F380D27D902644BEEBDFC09B6E0C88D2F380D + 27CB02644BE6ED7B83D7F0510B86B80522669E040DA7C882330F9E11349C220B + EAEB12081A8E6E01002A731EEF226ACE030000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000000DB4944415478DA + 63FCFFFF3F032D01E3A805245BC0C8C848B68D40B31889B16002908A066211A8 + 9003101FC463AE3D10EB03F144622D0051CD405C0315DA09C4ED4458D20034CB + 91580B40603E102740D97B80B88580250CD8E2139F0520D007C48550F62520CE + 43B304A49805887F936B01084C841A0C02A780B80C974FC8B500045600713894 + BD05887BB0F8E43F29168035A0A96D00E27A28FB3210E7A2FB84121FB001F12F + 205E0EC41150B11D40DC01C42780F827A916D0DD07548F036440D35444937CC0 + 0AD540D39C4CD3B288E6A5296DEB036A83A16F01003B61B4D1E99D5171000000 + 0049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001AD4944415478DA + 63FCFFFF3F032D0123C882A55B4ED2C496681F7346B805400E5986FC03EAFFF7 + EF3FC3DFBFFF20F81F88FECFE01456CC706EC734540BE44BCFA168BEA5928C61 + A0DA9DB9782D3C5FA3C1B06CD32186794B3761B7E07E97215CF1EF59460C0C1E + 6F802C1606862FEC0C0B7A6E32A4CEFB0797572C3B8FA21EC43F53A5C6B072CB + 11522CF800369CE1051BC3822597095A70B25C9561CDF6A3245860F31D6C38C3 + 1D668605272E10B4E058A932C3FA9DC7715B8011070F24E0FC052F7630B4899C + C51B07878B141936ED3949BB383858A0C0B065DF29DAC5C1DE5C39861D07CFD0 + 2E0E7666C930EC39728E7671B02D5D8A61FFF10BB48B83CDA9120C874E5EA25D + 1C6C481263387AE60AEDE2606DBC28C389F357312D88F436032BA0340E56440B + 319CBD7C03D382704F5306E58A0B14C7C1D24801860B576F615A10E46AC4A051 + 7399E2385814C6C770F9C61D4C0BFC9D0C18B4EBAF521C070B43F918AEDCC462 + 818F833E835EE3358C3800198A0C08C5014E0B3C6D75E1B51184FE07A9A9D0C4 + 20B5D67F863F2835D83F06E4AA1DAB056ED6DAE08A825A00C382DE290BA96638 + 0CC02DA02500004F8255EF277FDA8C0000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022E4944415478DA + 63FCFFFF3F032D0123DD2C60646404D351F98B2700A97C209EB86C626C013186 + E0D203321B9B05FF974E886130F2C86238BF733A23911660D583628152F93930 + C3F2E735063B4D558699EB17327CD04F212A1870E9B9D769C48862419DAF1EC3 + EE352BC0FCEB378E31E4D54C4231E8DB8FFF0C5F81184243F8DF80F4CF3B6BE0 + 7AB8F47BC0E21F386E62B7E0E6C5730C3B372F6070F74D6050D7372268F8F79F + 0C0C7FDF5C60B8737E11838C761CC3933FBA0C7FFE32307CE1C661013680CF70 + 30FBE77F381B64380860B580DCA4880BA058B076F7C5FFC1AEFA446BFEF70FE4 + DA7F0C7F804E86D040FC17C25EB7F338C3BCA59B18CEED9886DF02C6C49328FC + C94EEF095AECE76CCEB069EF49122CB87082E1C48C0C068B191718A48EE6313C + BD7592E1D8B16F0C56565C6035C8EC298B7730783998326C3B709A780B4E6418 + 80D9200B1678BC60A8AA6D6358BD603FD850693573381B66819BAD31C3AEC367 + 715B00520403B9FB04512C3C9AAACB70FBF16EB0253000B20006CEDD3DC4E064 + 69C0B0EFF805FC16E4C47A60781F990D7239B205C83EB033D3633874EA12F916 + 201B8ECD020B432D8613E7AFE1B7C048D98EE8E47AD99A1B85AF7FFE3EC399CB + 37280B2264F64C60297C0648CF3E7B9661A6B13183F699BB0C17AEDDA2AE05E9 + 40C3C16CA005EA276F335CB97987B854440C608DF344E1E3B5C0DF511792DDC1 + D9FE1F1A1BA938C0210F03382DF0B6D36298B36A2F493EC005B05AD0DA3B932A + 86C3008A05B40200F47739EF77A04B0C0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 328 + Top = 32 + Bitmap = {} + end + object EditorActionList: TActionList + Images = SmallImages + Left = 288 + Top = 32 + object actAgrupaciones: TAction + Category = 'Tareas' + Caption = 'Agrupaciones' + ImageIndex = 0 + OnExecute = actAgrupacionesExecute + end + object actColumnas: TAction + Category = 'Tareas' + Caption = 'Columnas' + ImageIndex = 3 + OnExecute = actColumnasExecute + end + object actSumarios: TAction + Category = 'Tareas' + Caption = 'Res'#250'menes' + ImageIndex = 2 + OnExecute = actSumariosExecute + end + object actFiltros: TAction + Category = 'Tareas' + Caption = 'Filtros' + ImageIndex = 1 + OnExecute = actFiltrosExecute + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Refrescar' + end + end +end diff --git a/Source/ControlesBase/Cliente/uViewControlBase.pas b/Source/ControlesBase/Cliente/uViewControlBase.pas new file mode 100644 index 0000000..6104911 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlBase.pas @@ -0,0 +1,179 @@ +unit uViewControlBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, TBXDkPanels, StdCtrls, ComCtrls, TB2Dock, + uViewAgrupaciones, uCustomView, uViewColumnas, ImgList, PngImageList, + ActnList, uViewControlGrid, uBizControlesBase, uViewSumarios, + uViewParametrosControlGrid, uViewFiltros, cxStyles; + +type + IViewControlBase = interface(IViewBase) + ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + property Modificable : Boolean read GetModificable write SetModificable; + + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + + function GetOnViewChanged : TNotifyEvent; + procedure SetOnViewChanged(const Value : TNotifyEvent); + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + end; + + TfrViewControlBase = class(TfrViewBase, IViewControlBase) + TBXMultiDock1: TTBXMultiDock; + pnlParametros: TTBXDockablePanel; + TBXAlignmentPanel2: TTBXAlignmentPanel; + TBXLink1: TTBXLink; + TBXLink5: TTBXLink; + TBXLink2: TTBXLink; + pcParametros: TPageControl; + TabSheet5: TTabSheet; + tsColumnas: TTabSheet; + tsAgrupacion: TTabSheet; + TBXAlignmentPanel3: TTBXAlignmentPanel; + bRefrescar: TButton; + pnlTareas: TTBXDockablePanel; + TBXPageScroller1: TTBXPageScroller; + TBXAlignmentPanel1: TTBXAlignmentPanel; + bFiltros: TTBXLink; + bSumarios: TTBXLink; + pcTareas: TPageControl; + tsSumarios: TTabSheet; + tsFiltros: TTabSheet; + frViewColumnas1: TfrViewColumnas; + frViewAgrupaciones1: TfrViewAgrupaciones; + SmallImages: TPngImageList; + LargeImages: TPngImageList; + EditorActionList: TActionList; + actAgrupaciones: TAction; + actColumnas: TAction; + actSumarios: TAction; + actFiltros: TAction; + frViewSumarios1: TfrViewSumarios; + actRefrescar: TAction; + frViewFiltros1: TfrViewFiltros; + procedure actColumnasExecute(Sender: TObject); + procedure actSumariosExecute(Sender: TObject); + procedure actFiltrosExecute(Sender: TObject); + procedure actAgrupacionesExecute(Sender: TObject); + protected + FControl : IBizControlBase; + FOnViewChanged : TNotifyEvent; + FModificable : Boolean; + procedure ActivarTarea (const ATarea : Integer); virtual; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + function GetOnViewChanged : TNotifyEvent; virtual; + procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; + function GetModificable: Boolean; virtual; + procedure SetModificable(const Value: Boolean); virtual; + public + property Modificable : Boolean read GetModificable write SetModificable; + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + property Control: IBizControlBase read GetControl write SetControl; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +const + COLUMNAS = 1; + AGRUPACIONES = 2; + SUMARIOS = 3; + FILTROS = 4; + + +procedure TfrViewControlBase.actColumnasExecute(Sender: TObject); +begin + inherited; + ActivarTarea(COLUMNAS); + frViewColumnas1.Refresh; +end; + +procedure TfrViewControlBase.ActivarTarea(const ATarea: Integer); +begin + case ATarea of + COLUMNAS : pcParametros.ActivePage := tsColumnas; + AGRUPACIONES : pcParametros.ActivePage := tsAgrupacion; + SUMARIOS : pcTareas.ActivePage := tsSumarios; + FILTROS : pcTareas.ActivePage := tsFiltros; + end; +end; + +function TfrViewControlBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfrViewControlBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + frViewColumnas1.Refresh; + frViewAgrupaciones1.Refresh; + + // ¿Es modificable el control? + Self.Modificable := FControl.EsModificable; +end; + +procedure TfrViewControlBase.actSumariosExecute(Sender: TObject); +begin + inherited; + ActivarTarea(SUMARIOS); + frViewSumarios1.Refresh; +end; + +procedure TfrViewControlBase.actFiltrosExecute(Sender: TObject); +begin + inherited; + ActivarTarea(FILTROS); + frViewFiltros1.Refresh; + end; + +procedure TfrViewControlBase.actAgrupacionesExecute(Sender: TObject); +begin + inherited; + ActivarTarea(AGRUPACIONES); + frViewAgrupaciones1.Refresh; +end; + +function TfrViewControlBase.GetOnViewChanged: TNotifyEvent; +begin + Result := FOnViewChanged; +end; + +procedure TfrViewControlBase.SetOnViewChanged(const Value: TNotifyEvent); +begin + FOnViewChanged := Value; +end; + +constructor TfrViewControlBase.Create(AOwner: TComponent); +begin + inherited; + FModificable := False; + pcParametros.ActivePage := tsColumnas; + pcTareas.ActivePage := tsSumarios; + FOnViewChanged := nil; +end; + +function TfrViewControlBase.GetModificable: Boolean; +begin + Result := FModificable; +end; + +procedure TfrViewControlBase.SetModificable(const Value: Boolean); +begin + FModificable := Value; + + frViewColumnas1.Modificable := FModificable; + frViewAgrupaciones1.Modificable := FModificable; +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewControlGrid.ddp b/Source/ControlesBase/Cliente/uViewControlGrid.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewControlGrid.dfm b/Source/ControlesBase/Cliente/uViewControlGrid.dfm new file mode 100644 index 0000000..60e526d --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlGrid.dfm @@ -0,0 +1,149 @@ +inherited frViewControlGrid: TfrViewControlGrid + object dxPrintStyleManager1: TdxPrintStyleManager + CurrentStyle = dxPrintStyleManager1Style1 + PageSetupDialog = dxPageSetupDialog1 + Version = 0 + Left = 16 + Top = 16 + object dxPrintStyleManager1Style1: TdxPSPrintStyle + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 20000 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 20000 + PrinterPage.PageFooter.CenterTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + '') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + BuiltInStyle = True + end + end + object dxPageSetupDialog1: TdxPageSetupDialog + ButtonsVisible = [psbStyleOptions] + Left = 48 + Top = 16 + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 80 + Top = 16 + end + object dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxPrinterLinkcxGrid + PreviewOptions.ShowExplorer = True + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 112 + Top = 16 + object dxPrinterLinkcxGrid: TdxGridReportLink + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.GrayShading = True + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + StyleManager = dxPrintStyleManager1 + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/ControlesBase/Cliente/uViewControlGrid.pas b/Source/ControlesBase/Cliente/uViewControlGrid.pas new file mode 100644 index 0000000..4303660 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlGrid.pas @@ -0,0 +1,284 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewControlGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, dxPScxCommon, dxPScxGridLnk, + dxPgsDlg; + +type + IViewControlGrid = interface(IViewBase) + ['{566F315A-70A6-4BCE-8A02-0C7E10FF311A}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + procedure Preview; + procedure Print; + procedure PrintSetup; + procedure GotoFirst; + procedure GotoLast; + + function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; + + function GetFocusedView : TcxGridDBTableView; + property FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetColumnCount: Integer; + function GetColumns(Index: Integer): TcxGridDBColumn; + property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; + property ColumnCount : Integer read GetColumnCount; + + function GetGroupedColumnCount: Integer; + function GetGroupedColumns(index: Integer): TcxGridColumn; + property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; + property GroupedColumnCount : Integer read GetGroupedColumnCount; + + function GetOnViewChanged : TNotifyEvent; + procedure SetOnViewChanged(const Value : TNotifyEvent); + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + + function GetViewProperties: String; + procedure SetViewProperties(const Value: String); + property ViewProperties: String read GetViewProperties write SetViewProperties; + + function GetFilterValueList(index: Integer) : TStringList; + property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; + + function GetOnFilterChanged: TNotifyEvent; + procedure SetOnFilterChanged(const Value: TNotifyEvent); + property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; + end; + + TfrViewControlGrid = class(TfrViewBase, IViewControlGrid) + dxPrintStyleManager1: TdxPrintStyleManager; + dxPrintStyleManager1Style1: TdxPSPrintStyle; + dxPageSetupDialog1: TdxPageSetupDialog; + dxPSEngineController1: TdxPSEngineController; + dxComponentPrinter: TdxComponentPrinter; + dxPrinterLinkcxGrid: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + private + protected + FOnViewChanged : TNotifyEvent; + FOnFilterChanged : TNotifyEvent; + function GetColumnCount: Integer; + function GetColumns(Index: Integer): TcxGridDBColumn; + function GetGroupedColumnCount: Integer; + function GetGroupedColumns(Index: Integer): TcxGridColumn; + function GetFocusedView : TcxGridDBTableView; virtual; abstract; + function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; + function GetOnViewChanged : TNotifyEvent; virtual; + procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; + function GetOnFilterChanged: TNotifyEvent; virtual; + procedure SetOnFilterChanged(const Value: TNotifyEvent); virtual; + function GetViewProperties: String; virtual; + procedure SetViewProperties(const Value: String); virtual; + function GetFilterValueList(index: Integer) : TStringList; virtual; + procedure ActivarEventos; virtual; + procedure DesactivarEventos; virtual; + public + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + procedure GotoFirst; virtual; + procedure GotoLast; virtual; + procedure ExpandirTodo; virtual; + procedure ContraerTodo; virtual; + procedure AjustarAncho; virtual; + property FocusedView : TcxGridDBTableView read GetFocusedView; + property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; + property ColumnCount : Integer read GetColumnCount; + property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; + property GroupedColumnCount : Integer read GetGroupedColumnCount; + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; + property ViewProperties: String read GetViewProperties write SetViewProperties; + property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +{ TfrViewControlGrid } + +procedure TfrViewControlGrid.ActivarEventos; +begin + // +end; + +procedure TfrViewControlGrid.AjustarAncho; +begin + FocusedView.ApplyBestFit; +end; + +procedure TfrViewControlGrid.ContraerTodo; +begin + FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewControlGrid.Create(AOwner: TComponent); +begin + inherited; + FOnViewChanged := nil; +end; + +procedure TfrViewControlGrid.DesactivarEventos; +begin + // +end; + +procedure TfrViewControlGrid.ExpandirTodo; +begin + FocusedView.ViewData.Expand(True); +end; + +function TfrViewControlGrid.GetColumnByCaption( + const ACaption: String): TcxGridDBColumn; +var + i : integer; +begin + Result := NIL; + for i := 0 to FocusedView.ColumnCount - 1 do + if FocusedView.Columns[i].Caption = ACaption then + begin + Result := FocusedView.Columns[i]; + Break; + end; +end; + +function TfrViewControlGrid.GetColumnCount: Integer; +begin + Result := FocusedView.ColumnCount; +end; + +function TfrViewControlGrid.GetColumns(Index: Integer): TcxGridDBColumn; +begin + Result := FocusedView.Columns[Index]; +end; + +function TfrViewControlGrid.GetFilterValueList( + index: Integer): TStringList; +var + AValueList : TcxDataFilterValueList; + i : Integer; +begin + Result := TStringList.Create; + AValueList := TcxDataFilterValueList.Create(FocusedView.DataController.Filter); + try + AValueList.Load(Columns[Index].Index); + for i := 0 to AValueList.Count - 1 do + Result.Add(AValueList[i].DisplayText); + finally + FreeAndNil(AValueList); + end; +end; + +function TfrViewControlGrid.GetGroupedColumnCount: Integer; +begin + Result := FocusedView.GroupedColumnCount; +end; + +function TfrViewControlGrid.GetGroupedColumns( + Index: Integer): TcxGridColumn; +begin + Result := FocusedView.GroupedColumns[Index]; +end; + +function TfrViewControlGrid.GetOnFilterChanged: TNotifyEvent; +begin + Result := FOnFilterChanged; +end; + +function TfrViewControlGrid.GetOnViewChanged: TNotifyEvent; +begin + Result := FOnViewChanged; +end; + +function TfrViewControlGrid.GetViewProperties: String; +var + AStream : TStringStream; +begin + DesactivarEventos; + AStream := TStringStream.Create(''); + try + FocusedView.StoreToStream(AStream, [gsoUseFilter,gsoUseSummary], FocusedView.Name); + Result := AStream.DataString; + finally + AStream.Free; + ActivarEventos; + end; +end; + +procedure TfrViewControlGrid.GotoFirst; +begin + FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewControlGrid.GotoLast; +begin + FocusedView.DataController.GotoLast; +end; + +procedure TfrViewControlGrid.Preview; +begin + dxPrinterLinkcxGrid.Preview; +end; + +procedure TfrViewControlGrid.Print; +begin + dxPrinterLinkcxGrid.Print(True, nil); +end; + +procedure TfrViewControlGrid.PrintSetup; +begin + dxPrinterLinkcxGrid.PageSetup; +end; + +procedure TfrViewControlGrid.SetOnFilterChanged(const Value: TNotifyEvent); +begin + FOnFilterChanged := Value; +end; + +procedure TfrViewControlGrid.SetOnViewChanged(const Value: TNotifyEvent); +begin + FOnViewChanged := Value; +end; + +procedure TfrViewControlGrid.SetViewProperties(const Value: String); +var + AStream : TStringStream; +begin + DesactivarEventos; + AStream := TStringStream.Create(Value); + try + AStream.Position := 0; + FocusedView.RestoreFromStream(AStream, True, True, [gsoUseFilter,gsoUseSummary], + FocusedView.Name); + finally + AStream.Free; + ActivarEventos; + end; +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewControlesBase.dfm b/Source/ControlesBase/Cliente/uViewControlesBase.dfm new file mode 100644 index 0000000..0afad52 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlesBase.dfm @@ -0,0 +1,269 @@ +inherited frViewControlesBase: TfrViewControlesBase + object EasyListview: TEasyListview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + BevelKind = bkTile + CacheDoubleBufferBits = False + CellSizes.List.AutoSize = True + EditManager.Font.Charset = DEFAULT_CHARSET + EditManager.Font.Color = clWindowText + EditManager.Font.Height = -11 + EditManager.Font.Name = 'Tahoma' + EditManager.Font.Style = [] + UseDockManager = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + GroupFont.Charset = DEFAULT_CHARSET + GroupFont.Color = clWindowText + GroupFont.Height = -11 + GroupFont.Name = 'Tahoma' + GroupFont.Style = [] + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + ImagesLarge = ReportImages + PaintInfoGroup.BandColor = clGradientActiveCaption + PaintInfoGroup.BandThickness = 2 + PaintInfoGroup.CaptionIndent = 5 + PaintInfoGroup.Expandable = False + PaintInfoGroup.MarginBottom.CaptionIndent = 4 + ParentFont = False + Selection.AlphaBlend = True + TabOrder = 0 + View = elsTile + OnItemContextMenu = EasyListviewItemContextMenu + OnItemDblClick = EasyListviewItemDblClick + OnItemSelectionChanged = EasyListviewItemSelectionChanged + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 115 + Top = 96 + Bitmap = {} + end + object dsDataTable: TDADataSource + Left = 40 + Top = 96 + end +end diff --git a/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk b/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk new file mode 100644 index 0000000..0afad52 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk @@ -0,0 +1,269 @@ +inherited frViewControlesBase: TfrViewControlesBase + object EasyListview: TEasyListview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + BevelKind = bkTile + CacheDoubleBufferBits = False + CellSizes.List.AutoSize = True + EditManager.Font.Charset = DEFAULT_CHARSET + EditManager.Font.Color = clWindowText + EditManager.Font.Height = -11 + EditManager.Font.Name = 'Tahoma' + EditManager.Font.Style = [] + UseDockManager = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + GroupFont.Charset = DEFAULT_CHARSET + GroupFont.Color = clWindowText + GroupFont.Height = -11 + GroupFont.Name = 'Tahoma' + GroupFont.Style = [] + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + ImagesLarge = ReportImages + PaintInfoGroup.BandColor = clGradientActiveCaption + PaintInfoGroup.BandThickness = 2 + PaintInfoGroup.CaptionIndent = 5 + PaintInfoGroup.Expandable = False + PaintInfoGroup.MarginBottom.CaptionIndent = 4 + ParentFont = False + Selection.AlphaBlend = True + TabOrder = 0 + View = elsTile + OnItemContextMenu = EasyListviewItemContextMenu + OnItemDblClick = EasyListviewItemDblClick + OnItemSelectionChanged = EasyListviewItemSelectionChanged + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 115 + Top = 96 + Bitmap = {} + end + object dsDataTable: TDADataSource + Left = 40 + Top = 96 + end +end diff --git a/Source/ControlesBase/Cliente/uViewControlesBase.pas b/Source/ControlesBase/Cliente/uViewControlesBase.pas new file mode 100644 index 0000000..4c6cddb --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewControlesBase.pas @@ -0,0 +1,210 @@ +unit uViewControlesBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, cxInplaceContainer, cxDBTL, + cxControls, cxTLData, Menus, uBizControlesBase, DB, uDADataTable, + ImgList, PngImageList, uDAInterfaces, MPCommonObjects, MPCommonUtilities, + EasyListview; + +type + IViewControlesBase = interface(IViewBase) + ['{D991FCEC-08DB-4F77-BD57-FA04B3C88788}'] + function GetDblClick: TNotifyEvent; + procedure SetDblClick(const Value: TNotifyEvent); + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + + function GetPopupMenu: TPopupMenu; + procedure SetPopupMenu(const Value: TPopupMenu); + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + + procedure Refresh; + end; + + TfrViewControlesBase = class(TfrViewBase, IViewControlesBase) + ReportImages: TPngImageList; + dsDataTable: TDADataSource; + EasyListview: TEasyListview; +{ procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; + Button: TEasyMouseButton; MousePos: TPoint; + HitInfo: TEasyHitInfoItem);} + + procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; + Button: TCommonMouseButton; MousePos: TPoint; HitInfo: TEasyHitInfoItem); + + procedure EasyListviewItemContextMenu(Sender: TCustomEasyListview; + HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu; + var Handled: Boolean); + + procedure EasyListviewItemSelectionChanged(Sender: TCustomEasyListview; + Item: TEasyItem); + protected + FControl : IBizControlBase; + FOnDblClick: TNotifyEvent; + FPopupMenu: TPopupMenu; + + function GetDblClick: TNotifyEvent; virtual; + procedure SetDblClick(const Value: TNotifyEvent); virtual; + + function GetPopupMenu: TPopupMenu; virtual; + procedure SetPopupMenu(const Value: TPopupMenu); virtual; + + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + public + procedure Refresh; override; + property Control: IBizControlBase read GetControl write SetControl; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + end; + +implementation + +{$R *.dfm} + +{ TfrViewControlesBase } + +function TfrViewControlesBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +function TfrViewControlesBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewControlesBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +procedure TfrViewControlesBase.Refresh; +var + GroupNoModificable: TEasyGroup; + GroupModificable: TEasyGroup; + AItem : TEasyItem; + i: Integer; + IDSelected : string; +begin + inherited; + + if not Assigned(FControl) then + Exit; + + EasyListview.BeginUpdate; + try + IDSelected := ''; + if EasyListview.Groups.Count > 0 then + begin + for i := 0 to EasyListview.Items.Count - 1 do + if EasyListview.Items[i].Selected then + IDSelected := EasyListview.Items[i].Captions[3]; // Columna ID + EasyListview.Groups.Clear; + end; + + GroupNoModificable := EasyListview.Groups.Add; + GroupNoModificable.Caption := 'Controles generales'; + GroupNoModificable.Bold := True; + + GroupModificable := EasyListview.Groups.Add; + GroupModificable.Caption := 'Controles personalizados'; + GroupModificable.Bold := True; + + with FControl do + begin + FControl.First; + for i := 0 to (FControl.RecordCount - 1) do + begin + if EsModificable then + AItem := GroupModificable.Items.Add(NIL) + else + AItem := GroupNoModificable.Items.Add(NIL); + + AItem.ImageIndex := ICONO; + AItem.Captions[0] := NOMBRE; + AItem.Captions[1] := DESCRIPCION; + AItem.Captions[3] := IntToStr(ID); + AItem.Captions[4] := MODIFICABLE; + AItem.DetailCount := 2; + AItem.Details[0] := 0; // Columna NOMBRE; + AItem.Details[1] := 1; // Columna DESCRIPCION; + + AItem.Selected := (IDSelected = AItem.Captions[3]); + FControl.Next; + end; + end; + finally + EasyListview.Sort.SortAll; + EasyListview.EndUpdate; + + if (Length(IDSelected) = 0) and (EasyListview.Items.Count > 0) then + EasyListview.Items[0].Selected := True; + + for i := 0 to EasyListview.Items.Count - 1 do + if EasyListview.Items[i].Selected then + begin + FControl.First; + FControl.Locate('ID', StrToInt(EasyListview.Items[i].Captions[3]), []); + Break; + end; + + EasyListview.ShowGroupMargins := True; + end +end; + +procedure TfrViewControlesBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := Value.DataTable; +end; + +procedure TfrViewControlesBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewControlesBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; +end; + +procedure TfrViewControlesBase.EasyListviewItemContextMenu( + Sender: TCustomEasyListview; HitInfo: TEasyHitInfoItem; + WindowPoint: TPoint; var Menu: TPopupMenu; var Handled: Boolean); +begin + inherited; + if Assigned(FPopupMenu) then + Menu := FPopupMenu; +end; + +procedure TfrViewControlesBase.EasyListviewItemDblClick( + Sender: TCustomEasyListview; Button: TCommonMouseButton; MousePos: TPoint; + HitInfo: TEasyHitInfoItem); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Self); +end; + +procedure TfrViewControlesBase.EasyListviewItemSelectionChanged( + Sender: TCustomEasyListview; Item: TEasyItem); +begin + inherited; + if not Item.Destroying then + begin + FControl.First; + FControl.Locate('ID', StrToInt(Item.Captions[3]), []); + end; +end; + +end. + + diff --git a/Source/ControlesBase/Cliente/uViewFiltros.ddp b/Source/ControlesBase/Cliente/uViewFiltros.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewFiltros.dfm b/Source/ControlesBase/Cliente/uViewFiltros.dfm new file mode 100644 index 0000000..2599dfe --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewFiltros.dfm @@ -0,0 +1,115 @@ +inherited frViewFiltros: TfrViewFiltros + Width = 209 + Height = 462 + object vgFiltros: TcxVerticalGrid + Left = 0 + Top = 229 + Width = 216 + Height = 233 + Enabled = False + Images = PngImageList1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + OptionsView.CellAutoHeight = True + OptionsView.CellEndEllipsis = True + OptionsView.ScrollBars = ssVertical + OptionsView.RowHeaderWidth = 97 + OptionsView.GridLines = vglVertical + OptionsView.ValueMinWidth = 75 + TabOrder = 0 + Visible = False + object vgFiltrosEditorRow1: TcxEditorRow + Properties.EditPropertiesClassName = 'TcxComboBoxProperties' + Properties.EditProperties.OnEditValueChanged = vgFiltrosEditorRow1EditPropertiesEditValueChanged + Properties.DataBinding.ValueType = 'String' + Properties.Value = Null + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 209 + Height = 29 + Align = alTop + Caption = 'Filtros' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object cxFilterControl1: TcxFilterControl + Left = 0 + Top = 29 + Width = 209 + Height = 403 + Align = alClient + Color = clWindow + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + TabOrder = 2 + TabStop = True + end + object TBXAlignmentPanel3: TTBXAlignmentPanel + Left = 0 + Top = 432 + Width = 209 + Height = 30 + Align = alBottom + Margins.Left = 3 + Margins.Top = 3 + Margins.Right = 3 + Margins.Bottom = 3 + TabOrder = 3 + object bRefrescar: TButton + Left = 4 + Top = 5 + Width = 100 + Height = 21 + Caption = 'Aplicar filtro' + TabOrder = 0 + OnClick = bRefrescarClick + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 216 + Top = 104 + object cxStyleNombreColumna: TcxStyle + AssignedValues = [svTextColor] + TextColor = clActiveCaption + end + object cxStyleCategoria: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clHighlight + end + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 88 + Top = 104 + Bitmap = {} + end +end diff --git a/Source/ControlesBase/Cliente/uViewFiltros.pas b/Source/ControlesBase/Cliente/uViewFiltros.pas new file mode 100644 index 0000000..88da478 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewFiltros.pas @@ -0,0 +1,197 @@ +unit uViewFiltros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewParametrosControlGrid, cxStyles, cxGraphics, cxEdit, + TBXDkPanels, cxControls, cxInplaceContainer, cxVGrid, cxDropDownEdit, + ImgList, PngImageList, cxFilterControl, uViewControlGrid, + cxDBFilterControl, StdCtrls; + +type + IViewFiltros = interface(IViewParametrosControlGrid) + ['{92FA8AF8-D0D8-4BC6-9611-CF3094CD4385}'] + end; + + TfrViewFiltros = class(TfrViewParametrosControlGrid, IViewFiltros) + vgFiltros: TcxVerticalGrid; + TBXLabel1: TTBXLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyleNombreColumna: TcxStyle; + cxStyleCategoria: TcxStyle; + PngImageList1: TPngImageList; + vgFiltrosEditorRow1: TcxEditorRow; + cxFilterControl1: TcxFilterControl; + TBXAlignmentPanel3: TTBXAlignmentPanel; + bRefrescar: TButton; + procedure vgFiltrosEditorRow1EditPropertiesEditValueChanged( + Sender: TObject); + procedure bRefrescarClick(Sender: TObject); + protected + procedure RellenarFiltros; + procedure SetViewControlGrid(const Value: IViewControlGrid); override; + procedure SetModificable(const Value: Boolean); override; + public + procedure Execute; override; + procedure Refresh; override; + end; + +implementation + +{$R *.dfm} + +uses + cxCustomData, cxFilter, cxGridDBDataDefinitions, + cxGridDBTableView, cxGridCustomTableView, cxFilterConsts, cxClasses, + cxDBData; + +{ TfrViewFiltros } + +procedure TfrViewFiltros.Execute; +begin + inherited; + cxFilterControl1.ApplyFilter; + FViewControlGrid.FocusedView.DataController.Filter.Active := True; +end; + +procedure TfrViewFiltros.Refresh; +begin + inherited; + cxFilterControl1.UpdateFilter; + SetModificable(Modificable); + //RellenarFiltros; +end; + +procedure TfrViewFiltros.RellenarFiltros; +var + i : Integer; + ACaption : String; + ARow : TcxEditorRow; + AColumn : TcxGridDBColumn; + AValueList : TcxDataFilterValueList; + + procedure GetFilterStrings(AStrings: TStrings; + AValueList: TcxDataFilterValueList); + var + I: Integer; + S: string; + begin + AStrings.BeginUpdate; + try + AStrings.Clear; + for I := 0 to AValueList.Count - 1 do + begin + S := AValueList[I].DisplayText; + AStrings.AddObject(S, TObject(AValueList[I])); + end; + finally + AStrings.EndUpdate; + end; + end; + + procedure AddRow; + begin + ARow := vgFiltros.Add(TcxEditorRow) as TcxEditorRow; + ARow.Parent := NIL; + ARow.Properties.Caption := AColumn.Caption; + ARow.Properties.EditPropertiesClassName := 'TcxComboBoxProperties'; + with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do + begin + ARow.Properties.ImageIndex := 0; + ImmediateDropDown := True; + ImmediatePost := True; + ImmediateUpdateText := True; + PostPopupValueOnTab := True; + OnEditValueChanged := vgFiltrosEditorRow1EditPropertiesEditValueChanged; + GetFilterStrings(Items, AValueList); + end; + end; + +begin +{ vgFiltros.BeginUpdate; + try + vgFiltros.ClearRows; + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[i]); + AValueList := ViewControlGrid.FilterValueList[AColumn.Index]; + AddRow; + end; + finally + vgFiltros.EndUpdate; + end;} +end; + +procedure TfrViewFiltros.SetViewControlGrid(const Value: IViewControlGrid); +begin + inherited; + cxFilterControl1.LinkComponent := FViewControlGrid.FocusedView; +end; + +procedure TfrViewFiltros.vgFiltrosEditorRow1EditPropertiesEditValueChanged( + Sender: TObject); +var + ARow : TcxEditorRow; + AColumn : TcxGridDBColumn; + AItemIndex : Integer; +begin +{ ARow := TcxEditorRow(vgFiltros.FocusedRow); + + if not Assigned(ARow) then + Exit; + + with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do + AItemIndex := Items.IndexOf(ARow.Properties.Value); + + AColumn := ViewControlGrid.GetColumnByCaption(ARow.Properties.Caption); + + if Assigned(AColumn) and (AItemIndex <> -1) then + begin + AColumn.DataBinding.Filter.BeginUpdate; + try + with ViewControlGrid.FilterValueList[AColumn.Index][AItemIndex]^ do + begin + if not (Kind in [fviAll, fviCustom]) then + AColumn.DataBinding.Filter.Active := True; + case Kind of + fviAll: + begin + AColumn.Filtered := False; + ARow.Properties.Value := ''; + end; + fviCustom: + ViewControlGrid.FocusedView.Filtering.RunCustomizeDialog(AColumn); + fviBlanks: + AColumn.DataBinding.AddToFilter(nil, foEqual, Value, + cxGetResourceStringNet(cxSFilterBlankCaption)); + fviNonBlanks: + AColumn.DataBinding.AddToFilter(nil, foNotEqual, Value, + cxGetResourceStringNet(cxSFilterBlankCaption)); + fviValue, fviMRU: + begin + AColumn.DataBinding.AddToFilter(nil, foEqual, Value, DisplayText); + AColumn.DataBinding.FilterMRUValueItems.Add(Value, DisplayText); + end; + end; + end; + finally + AColumn.DataBinding.Filter.EndUpdate; + end; + end;} +end; + +procedure TfrViewFiltros.bRefrescarClick(Sender: TObject); +begin + inherited; + Execute; +end; + +procedure TfrViewFiltros.SetModificable(const Value: Boolean); +begin + inherited; + vgFiltros.Enabled := Value; +end; + +end. + diff --git a/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp b/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm b/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm new file mode 100644 index 0000000..e4accb4 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm @@ -0,0 +1,3 @@ +inherited frViewParametrosControlGrid: TfrViewParametrosControlGrid + ParentFont = True +end diff --git a/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas b/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas new file mode 100644 index 0000000..94dc1b7 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas @@ -0,0 +1,82 @@ +unit uViewParametrosControlGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uViewControlGrid; + +type + IViewParametrosControlGrid = interface(IViewBase) + ['{A060605B-AFB1-4F6F-8273-7739C4C4905B}'] + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + property Modificable : Boolean read GetModificable write SetModificable; + + procedure SetViewControlGrid (const Value : IViewControlGrid); + function GetViewControlGrid : IViewControlGrid; + property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; + + procedure Execute; + procedure Refresh; + end; + + TfrViewParametrosControlGrid = class(TfrViewBase, IViewParametrosControlGrid) + protected + FViewControlGrid : IViewControlGrid; + FModificable : Boolean; + function GetModificable: Boolean; virtual; + procedure SetModificable(const Value: Boolean); virtual; + procedure SetViewControlGrid (const Value : IViewControlGrid); virtual; + function GetViewControlGrid : IViewControlGrid; virtual; + public + property Modificable : Boolean read GetModificable write SetModificable; + property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; + procedure Execute; virtual; + procedure Refresh; override; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewParametrosControlGrid } + + +procedure TfrViewParametrosControlGrid.Execute; +begin + if not Assigned(ViewControlGrid) then + raise Exception.Create('Vista para el control no asignada (Execute)'); +end; + +function TfrViewParametrosControlGrid.GetModificable: Boolean; +begin + Result := FModificable; +end; + +function TfrViewParametrosControlGrid.GetViewControlGrid: IViewControlGrid; +begin + Result := FViewControlGrid; +end; + +procedure TfrViewParametrosControlGrid.Refresh; +begin + inherited; + if not Assigned(ViewControlGrid) then + raise Exception.Create('Vista para el control no asignada (Refresh)'); +end; + +procedure TfrViewParametrosControlGrid.SetModificable( + const Value: Boolean); +begin + FModificable := Value; +end; + +procedure TfrViewParametrosControlGrid.SetViewControlGrid( + const Value: IViewControlGrid); +begin + FViewControlGrid := Value; +end; + +end. diff --git a/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp b/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm b/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm new file mode 100644 index 0000000..03232be --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm @@ -0,0 +1,174 @@ +inherited frViewPeriodoFechas: TfrViewPeriodoFechas + Width = 253 + Height = 351 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 50 + Width = 253 + Height = 29 + Align = alTop + Caption = 'Rango de fechas' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 253 + Height = 29 + Align = alTop + Caption = 'Periodo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 29 + Width = 253 + Height = 21 + Align = alTop + AutoSize = True + Margins.Left = 5 + Margins.Right = 5 + TabOrder = 2 + DesignSize = ( + 253 + 21) + object cbPeriodo: TcxComboBox + Left = 8 + Top = 0 + RepositoryItem = cxRepositoryPeriodos + Anchors = [akLeft, akTop, akRight] + Properties.OnChange = cbPeriodoPropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Text = 'Este mes' + Width = 209 + end + end + object TBXAlignmentPanel2: TTBXAlignmentPanel + Left = 0 + Top = 79 + Width = 253 + Height = 48 + Align = alTop + AutoSize = True + Margins.Left = 5 + Margins.Right = 5 + TabOrder = 3 + object Label1: TLabel + Left = 9 + Top = 4 + Width = 34 + Height = 13 + Caption = 'Desde:' + Transparent = True + end + object Label2: TLabel + Left = 14 + Top = 31 + Width = 29 + Height = 13 + Caption = 'hasta:' + Transparent = True + end + object edtFechaIni: TcxDateEdit + Left = 48 + Top = 0 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaIni2PropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsDefault + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 170 + end + object edtFechaFin: TcxDateEdit + Left = 48 + Top = 27 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaFinPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + end + object cxRepository: TcxEditRepository + Left = 184 + Top = 32 + object cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem + Properties.BeepOnError = True + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 10 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.Items.Strings = ( + 'Hoy' + 'Ayer' + 'Esta semana' + 'Este mes' + 'Este a'#241'o' + #218'ltimos 7 d'#237'as' + #218'ltimos 30 d'#237'as' + #218'ltimos 3 meses' + 'Mes anterior' + 'A'#241'o anterior' + 'Personalizado') + Properties.PostPopupValueOnTab = True + Properties.ReadOnly = False + end + end +end diff --git a/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas b/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas new file mode 100644 index 0000000..a3dc473 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas @@ -0,0 +1,203 @@ +unit uViewPeriodoFechas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, + cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, + cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, + Mask, JvExMask, JvToolEdit, uViewParametrosControlGrid; + +type + IViewPeriodoFechas = interface(IViewParametrosControlGrid) + ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] + end; + + TfrViewPeriodoFechas = class(TfrViewParametrosControlGrid, IViewPeriodoFechas) + cbPeriodo: TcxComboBox; + edtFechaIni: TcxDateEdit; + edtFechaFin: TcxDateEdit; + cxRepository: TcxEditRepository; + cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; + TBXLabel1: TTBXLabel; + TBXLabel2: TTBXLabel; + TBXAlignmentPanel1: TTBXAlignmentPanel; + TBXAlignmentPanel2: TTBXAlignmentPanel; + Label1: TLabel; + Label2: TLabel; + procedure cbPeriodoPropertiesChange(Sender: TObject); + procedure edtFechaIni2PropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure edtFechaFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + private + function GetFechaFinal: TDateTime; + function GetFechaInicial: TDateTime; + procedure SetFechaFinal(const Value: TDateTime); + procedure SetFechaInicial(const Value: TDateTime); + public + procedure Hoy; + procedure Ayer; + procedure EstaSemana; + procedure EsteMes; + procedure EsteAno; + procedure Ultimos7dias; + procedure Ultimos30dias; + procedure Ultimos3meses; + procedure MesAnterior; + procedure AnoAnterior; + procedure Personalizado; + property FechaInicial : TDateTime read GetFechaInicial write SetFechaInicial; + property FechaFinal : TDateTime read GetFechaFinal write SetFechaFinal; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses DateUtils; + +{$R *.dfm} + +procedure TfrViewPeriodoFechas.AnoAnterior; +begin + edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Ayer; +begin + edtFechaIni.Date := Yesterday; + edtFechaFin.Date := Yesterday; +end; + +procedure TfrViewPeriodoFechas.EstaSemana; +begin + edtFechaIni.Date := StartOfTheWeek(Today); + edtFechaFin.Date := EndOfTheWeek(Today); +end; + +procedure TfrViewPeriodoFechas.EsteAno; +begin + edtFechaIni.Date := StartOfTheYear(Today); + edtFechaFin.Date := EndOfTheYear(Today); +end; + +procedure TfrViewPeriodoFechas.EsteMes; +begin + edtFechaIni.Date := StartOfTheMonth(Today); + edtFechaFin.Date := EndOfTheMonth(Today); +end; + +function TfrViewPeriodoFechas.GetFechaFinal: TDateTime; +begin + Result := DateOf(edtFechaFin.Date); +end; + +function TfrViewPeriodoFechas.GetFechaInicial: TDateTime; +begin + Result := DateOf(edtFechaIni.Date); +end; + +procedure TfrViewPeriodoFechas.Hoy; +begin + edtFechaIni.Date := Today; + edtFechaFin.Date := Today; +end; + +procedure TfrViewPeriodoFechas.MesAnterior; +begin + edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Personalizado; +begin + edtFechaIni.SetFocus; +end; + +procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: TDateTime); +begin + edtFechaFin.Date := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: TDateTime); +begin + edtFechaIni.Date := Value; +end; + +procedure TfrViewPeriodoFechas.Ultimos30dias; +begin + edtFechaIni.Date := IncDay(Today, -30); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos3meses; +begin + edtFechaIni.Date := IncMonth(Today, -3); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos7dias; +begin + edtFechaIni.Date := IncDay(Today, -7); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : Hoy; + 1 : Ayer; + 2 : EstaSemana; + 3 : EsteMes; + 4 : EsteAno; + 5 : Ultimos7dias; + 6 : Ultimos30dias; + 7 : Ultimos3meses; + 8 : MesAnterior; + 9 : AnoAnterior; + else + Personalizado; + end; +end; + +constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); +begin + inherited; + cbPeriodo.ItemIndex := 3; + EsteMes; +end; + +procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaIni.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue > edtFechaFin.Date then + begin + edtFechaFin.EditText := DisplayValue; + edtFechaFin.ValidateEdit(True); + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaFin.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue < edtFechaIni.Date then + begin + edtFechaIni.EditText := DisplayValue; + edtFechaIni.ValidateEdit(True); + end; +end; + +end. + diff --git a/Source/ControlesBase/Cliente/uViewSumarios.ddp b/Source/ControlesBase/Cliente/uViewSumarios.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Cliente/uViewSumarios.dfm b/Source/ControlesBase/Cliente/uViewSumarios.dfm new file mode 100644 index 0000000..d5abe2c --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewSumarios.dfm @@ -0,0 +1,115 @@ +inherited frViewSumarios: TfrViewSumarios + Width = 344 + Height = 472 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 344 + Height = 29 + Align = alTop + Caption = 'Res'#250'menes' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object vgSumarios: TcxVerticalGrid + Left = 0 + Top = 29 + Width = 344 + Height = 443 + Styles.Category = cxStyleCategoria + Align = alClient + Images = PngImageList1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + OptionsView.CellAutoHeight = True + OptionsView.CellEndEllipsis = True + OptionsView.ScrollBars = ssVertical + OptionsView.RowHeaderWidth = 133 + OptionsView.GridLines = vglVertical + OptionsView.ValueMinWidth = 75 + TabOrder = 1 + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA + 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 + BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 + 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000794944415478DA + 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 + E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 + E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 + E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 + 454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 88 + Top = 104 + Bitmap = {} + end + object cxStyleRepository1: TcxStyleRepository + Left = 216 + Top = 104 + object cxStyleNombreColumna: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = clActiveCaption + end + object cxStyleCategoria: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clHighlight + end + object cxStyleNombreColumnaInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = cl3DDkShadow + end + object cxStyleCategoriaInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clBtnShadow + end + object cxStyleContentInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = clBtnShadow + end + end +end diff --git a/Source/ControlesBase/Cliente/uViewSumarios.pas b/Source/ControlesBase/Cliente/uViewSumarios.pas new file mode 100644 index 0000000..85f31f9 --- /dev/null +++ b/Source/ControlesBase/Cliente/uViewSumarios.pas @@ -0,0 +1,325 @@ +unit uViewSumarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, + TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, + cxGraphics, cxStyles, cxTL, cxTextEdit, cxDropDownEdit, ImgList, + PngImageList, ComCtrls, JvExComCtrls, JvComCtrls, cxInplaceContainer, + ExtCtrls, cxEdit, cxVGrid, TBXToolPals, uViewControlGrid, + uViewParametrosControlGrid; + +type + IViewSumarios = interface(IViewParametrosControlGrid) + ['{4AEE3447-C6A4-491F-87E7-02CD255A7695}'] + end; + + TfrViewSumarios = class(TfrViewParametrosControlGrid, IViewSumarios) + PngImageList1: TPngImageList; + vgSumarios: TcxVerticalGrid; + TBXLabel1: TTBXLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyleNombreColumna: TcxStyle; + cxStyleCategoria: TcxStyle; + cxStyleNombreColumnaInactivo: TcxStyle; + cxStyleCategoriaInactivo: TcxStyle; + cxStyleContentInactivo: TcxStyle; + procedure vgSumariosEditorRowInitPopup(Sender: TObject); + procedure vgSumariosEditorRowEditValueChanged( + Sender: TObject); + protected + procedure RellenarArbolTotales; + + function AnadirSumario(const ACaption : String; + const AKind : TcxSummaryKind) : TcxEditorRow; + + procedure RellenarTotalesPie; + procedure RellenarTotalesGrupo(const AGroupName : String); + procedure RellenarCategorias; + procedure RellenarCategoria(const APosition : TcxSummaryPosition; + const AGroupName : String = ''); + + procedure AplicarSumarioVista(const APosition : TcxSummaryPosition; + const AColumnCaption : String; const AKind : TcxSummaryKind); + procedure SetModificable(const Value: Boolean); override; + public + procedure Execute; override; + procedure Refresh; override; + end; + +implementation + +{$R *.dfm} + +uses + DB, cxGridPopupMenuConsts; + +var + SumaryKindStrArray : array[skNone..skAverage] of String + = ('', 'Sumar', 'Mínimo', 'Máximo', 'Contar', 'Promedio'); + +procedure TfrViewSumarios.Refresh; +begin + RellenarCategorias; +end; + +procedure TfrViewSumarios.RellenarArbolTotales; +var + i : Integer; +begin + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); + end; +end; + +function TfrViewSumarios.AnadirSumario(const ACaption : String; + const AKind : TcxSummaryKind) : TcxEditorRow; +begin + Result := vgSumarios.Add(TcxEditorRow) as TcxEditorRow; + with Result do + begin + Properties.Caption := ACaption; + Properties.Value := SumaryKindStrArray[AKind]; + Properties.ImageIndex := 2; + Properties.EditPropertiesClass := TcxComboBoxProperties; + with TcxComboBoxProperties(Properties.EditProperties) do + begin + ImmediateDropDown := True; + DropDownListStyle := lsFixedList; + ImmediatePost := True; + ImmediateUpdateText := True; + PostPopupValueOnTab := True; + OnInitPopup := vgSumariosEditorRowInitPopup; + OnEditValueChanged := vgSumariosEditorRowEditValueChanged; + end; + end; +end; + +procedure TfrViewSumarios.AplicarSumarioVista ( + const APosition: TcxSummaryPosition; const AColumnCaption: String; + const AKind: TcxSummaryKind); +const + MASK_MONEDA = ',0.## €;-,0.## €'; + MASK_NUMERO = '#,##0'; +var + AColumn : TcxGridDBColumn; +begin + AColumn := ViewControlGrid.GetColumnByCaption(AColumnCaption); + if APosition = spFooter then + begin + AColumn.Summary.FooterKind := AKind; + if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then + AColumn.Summary.FooterFormat := MASK_MONEDA + else + AColumn.Summary.FooterFormat := MASK_NUMERO; + end + else begin + AColumn.Summary.GroupFooterKind := AKind; + if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then + AColumn.Summary.GroupFooterFormat := MASK_MONEDA + else + AColumn.Summary.GroupFooterFormat := MASK_NUMERO; + end; +end; + +procedure TfrViewSumarios.RellenarTotalesPie; +var + i, j: Integer; + ASummary: TcxDataFooterSummaryItems; + AClase : TcxSummaryKind; + ACaption : String; + ACategory : TcxCategoryRow; + ARow : TcxEditorRow; +begin + vgSumarios.BeginUpdate; + try + ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); + with ACategory.Properties do + begin + ASummary := ViewControlGrid.FocusedView.DataController.Summary.FooterSummaryItems; + ImageIndex := 0; + Caption := 'Resúmenes totales' + end; + + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; + AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.FooterKind; + ARow := AnadirSumario(ACaption, AClase); + ARow.Parent := ACategory; + end; + finally + vgSumarios.EndUpdate; + end; +end; + + +procedure TfrViewSumarios.RellenarCategoria( + const APosition: TcxSummaryPosition; const AGroupName: String); +begin + if APosition = spFooter then + RellenarTotalesPie + else + RellenarTotalesGrupo(AGroupName); +end; + +procedure TfrViewSumarios.RellenarCategorias; +var + i : Integer; +begin + vgSumarios.ClearRows; + RellenarCategoria(spFooter); + + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); + end; +end; + +procedure TfrViewSumarios.vgSumariosEditorRowInitPopup(Sender: TObject); +var + AColumn: TcxGridDBColumn; + ARow : TcxEditorRow; +const + NumberFieldTypes = + [ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, + ftDateTime, ftAutoInc]; + TimeFieldTypes = [ftDate, ftTime, ftDateTime]; + +begin + inherited; + + ARow := TcxEditorRow(vgSumarios.FocusedRow); + AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[ARow.Index]); + + if Assigned(AColumn.DataBinding.Field) then + with TcxComboBoxProperties(TcxPopupEdit(Sender).Properties) do + begin + Items.Clear; + BeginUpdate; + try + Items.Add(SumaryKindStrArray[skNone]); + Items.Add(SumaryKindStrArray[skCount]); + + if AColumn.DataBinding.Field.DataType in NumberFieldTypes then + begin + Items.Add(SumaryKindStrArray[skMax]); + Items.Add(SumaryKindStrArray[skMin]); + if not (AColumn.DataBinding.Field.DataType in TimeFieldTypes) then + begin + Items.Add(SumaryKindStrArray[skSum]); + Items.Add(SumaryKindStrArray[skAverage]); + end; + end; + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewSumarios.vgSumariosEditorRowEditValueChanged( + Sender: TObject); +var + AColumn : String; + ARow : TcxEditorRow; + AKind : TcxSummaryKind; + + function DarSummaryKind(AKind : String) : TcxSummaryKind; + var + i : TcxSummaryKind; + begin + if Length(AKind) = 0 then + Result := skNone + else + for i := skSum to skAverage do + if SumaryKindStrArray[i] = AKind then + begin + Result := i; + Break; + end; + end; + +begin + inherited; + + ARow := TcxEditorRow(vgSumarios.FocusedRow); + AColumn := ARow.Properties.Caption; + AKind := DarSummaryKind(VarToStr(ARow.Properties.Value)); + + if Assigned(ARow.Parent) then + begin + if(ARow.Parent.Index = 0) then + AplicarSumarioVista(spFooter, AColumn, AKind) + else + AplicarSumarioVista(spGroup, AColumn, AKind) + end; +end; + +procedure TfrViewSumarios.RellenarTotalesGrupo(const AGroupName: String); +var + i, j: Integer; + ASummary: TcxDataSummaryGroup; + AClase : TcxSummaryKind; + ACaption : String; + ACategory : TcxCategoryRow; + ARow : TcxEditorRow; + +begin + ASummary := ViewControlGrid.FocusedView.DataController.Summary.SummaryGroups.FindByItemLink(ViewControlGrid.GetColumnByCaption(AGroupName)); + + vgSumarios.BeginUpdate; + try + ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); + with ACategory.Properties do + begin + ImageIndex := 1; + Caption := 'Totales de ' + AGroupName; + end; + + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; + AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.GroupFooterKind; + ARow := AnadirSumario(ACaption, AClase); + ARow.Parent := ACategory; + end; + finally + vgSumarios.EndUpdate; + end; +end; + +procedure TfrViewSumarios.Execute; +begin + inherited; + // +end; + +procedure TfrViewSumarios.SetModificable(const Value: Boolean); +begin + inherited; + vgSumarios.Enabled := Value; + if Value then + begin + vgSumarios.Styles.Category := cxStyleCategoria; + vgSumarios.Styles.Header := cxStyleNombreColumna; + vgSumarios.Styles.Content := nil; + end + else begin + vgSumarios.Styles.Category := cxStyleCategoriaInactivo; + vgSumarios.Styles.Header := cxStyleNombreColumnaInactivo; + vgSumarios.Styles.Content := cxStyleContentInactivo; + end; +end; + +end. + + diff --git a/Source/ControlesBase/ControlesBaseD10.bdsproj b/Source/ControlesBase/ControlesBaseD10.bdsproj new file mode 100644 index 0000000..be74bb3 --- /dev/null +++ b/Source/ControlesBase/ControlesBaseD10.bdsproj @@ -0,0 +1,658 @@ + + + + + + + + + + + + ControlesBaseD10.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/ControlesBase/ControlesBaseD10.dpk b/Source/ControlesBase/ControlesBaseD10.dpk new file mode 100644 index 0000000..be08d8a --- /dev/null +++ b/Source/ControlesBase/ControlesBaseD10.dpk @@ -0,0 +1,85 @@ +package ControlesBaseD10; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + PngComponentsD10, + PNG_D10, + BaseD10, + dbrtl, + dsnap, + adortl, + JvGlobusD10R, + cxTreeListD10, + vclactnband, + vclx, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + dxLayoutControlD10, + dxComnD10, + cxVerticalGridD10, + dxPSCoreD10, + VclSmp, + bdertl, + EasyListviewD10; + +contains + uEditorControlesBase in 'Cliente\uEditorControlesBase.pas' {fEditorControlesBase: TCustomEditor}, + schControlesClient_Intf in 'Reglas\schControlesClient_Intf.pas', + uBizControlesBase in 'Reglas\uBizControlesBase.pas', + uDataModuleControles in 'Cliente\uDataModuleControles.pas' {dmControles: TDAClientDataModule}, + uEditorControlBase in 'Cliente\uEditorControlBase.pas' {fEditorControlBase: TCustomEditor}, + uViewAgrupaciones in 'Cliente\uViewAgrupaciones.pas' {frViewAgrupaciones: TCustomView}, + uViewColumnas in 'Cliente\uViewColumnas.pas' {frViewColumnas: TCustomView}, + uViewSumarios in 'Cliente\uViewSumarios.pas' {frViewSumarios: TCustomView}, + uViewControlGrid in 'Cliente\uViewControlGrid.pas' {frViewControlGrid: TCustomView}, + uViewControlBase in 'Cliente\uViewControlBase.pas' {frViewControlBase: TCustomView}, + uViewParametrosControlGrid in 'Cliente\uViewParametrosControlGrid.pas' {frViewParametrosControlGrid: TCustomView}, + uFormPropiedadesControl in 'Cliente\uFormPropiedadesControl.pas' {frPropiedadesControl}, + uViewFiltros in 'Cliente\uViewFiltros.pas' {frViewFiltros: TCustomView}, + uViewPeriodoFechas in 'Cliente\uViewPeriodoFechas.pas' {frViewPeriodoFechas: TCustomView}, + uViewControlesBase in 'Cliente\uViewControlesBase.pas' {frViewControlesBase: TCustomView}, + uDateUtils in 'Cliente\uDateUtils.pas'; + +end. diff --git a/Source/ControlesBase/ControlesBaseD10.drc b/Source/ControlesBase/ControlesBaseD10.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/ControlesBase/ControlesBaseD10.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/ControlesBase/ControlesBaseD10.identcache b/Source/ControlesBase/ControlesBaseD10.identcache new file mode 100644 index 0000000000000000000000000000000000000000..e66917df4222bf5ff05cc111810e1d061fdbc29e GIT binary patch literal 2239 zcmc(h-AcnS6vyiu_y~OhAHch9wc^E~tZY{SIV8s}k|rf5VK`6`1z+2g)#9?@-O}Eb zg!1G6aZazZEPGwtvchoRqIQ&n7I}@%N!<`zlLspeTT05saK#W?&5FEsUWAj%nrGyW z*aj>rV72j2ltWijFpzx+-_%<@Xk+>U<`h%MeC;*JlG$i*{ikRdrttPX^`VP1> z8YxEkxJt)zC!{m>$h;V5pN{5`7Uf$FC#rlWRHf&rz(R{5(=@1aE;TP{wJD|QfntZ= z(^6CzCWJ60^6jZjmv8h68wJGtT<-tPZOR%I;9zNlS2!ZYCMB*>?c08kPnngY*>Z0B ze1!-S0_<`z~4^CChgKSDMSX>PO2##`m>!6i#yii^YRW2btb+Yt8@5!czn?A HDF*rh2i6y6 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/ControlesBaseD10.rc b/Source/ControlesBase/ControlesBaseD10.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/ControlesBase/ControlesBaseD10.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/ControlesBase/ControlesBaseD10.res b/Source/ControlesBase/ControlesBaseD10.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/ControlesBase/Servidor/srvControles_Impl.dfm b/Source/ControlesBase/Servidor/srvControles_Impl.dfm new file mode 100644 index 0000000..b5cd583 --- /dev/null +++ b/Source/ControlesBase/Servidor/srvControles_Impl.dfm @@ -0,0 +1,264 @@ +object srvControles: TsrvControles + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schControles + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schControles: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Value = 'vebyas' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + + 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES'#10' WHERE CATEGORIA = :CA' + + 'TEGORIA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'ICONO' + TableField = 'ICONO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ORDEN' + TableField = 'ORDEN' + end + item + DatasetField = 'VISTA' + TableField = 'VISTA' + end + item + DatasetField = 'MODIFICABLE' + TableField = 'MODIFICABLE' + end> + end> + Name = 'ListaControlesPorCategoria' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + DefaultValue = 'S' + end + item + Name = 'ICONO' + DataType = datSmallInt + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'ORDEN' + DataType = datSmallInt + end + item + Name = 'VISTA' + DataType = datMemo + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + + 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + + 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ControlesPorCategoria' + end + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + + 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + + 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + + 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ControlesPorCategoria' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object bpControles: TDABusinessProcessor + Schema = schControles + InsertCommandName = 'Insert_ControlesPorCategoria' + UpdateCommandName = 'Update_ControlesPorCategoria' + ReferencedDataset = 'ListaControlesPorCategoria' + ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 144 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 96 + end +end diff --git a/Source/ControlesBase/Servidor/srvControles_Impl.pas b/Source/ControlesBase/Servidor/srvControles_Impl.pas new file mode 100644 index 0000000..c4dbf0b --- /dev/null +++ b/Source/ControlesBase/Servidor/srvControles_Impl.pas @@ -0,0 +1,48 @@ +unit srvControles_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvControles } + TsrvControles = class(TDARemoteService, IsrvControles) + bpControles: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schControles: TDASchema; + private + protected + { IsrvControles methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvControles(out anInstance : IUnknown); +begin + anInstance := TsrvControles.Create(NIL); +end; + +{ srvControles } +initialization + TROClassFactory.Create('srvControles', Create_srvControles, TsrvControles_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj b/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj new file mode 100644 index 0000000..099c4ad --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Devoluciones.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg b/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof new file mode 100644 index 0000000..e3c2ef2 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk new file mode 100644 index 0000000..21fec2e --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk @@ -0,0 +1,77 @@ +package Devoluciones; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxLayoutControlD10, + Parametros; + +contains + uPluginControllerDevoluciones in 'uPluginControllerDevoluciones.pas' {ModuleDevoluciones: TModuleController}, + uBizDevoluciones in '..\Reglas\uBizDevoluciones.pas', + uDataModuleDevoluciones in 'uDataModuleDevoluciones.pas' {dmDevoluciones: TDAClientDataModule}, + uViewListaDevoluciones in 'uViewListaDevoluciones.pas' {frViewListaDevoluciones: TCustomView}, + uEditorListaDevoluciones in 'uEditorListaDevoluciones.pas' {fEditorListaDevoluciones: TCustomEditor}, + uEditorAjustarDevoluciones in 'uEditorAjustarDevoluciones.pas' {fEditorAjustarRecepciones}; + +end. diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache b/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache new file mode 100644 index 0000000000000000000000000000000000000000..9ba82d175d5a5848a111324125584d3fad5111d2 GIT binary patch literal 947 zcmc)JJ!->H3m2_&E)+MaS#-X$<#%SKNwvL4%m{+ZgI{SJdqsepc>z7sEx2PV^h}j#J10 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc b/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.res b/Source/Modulos/Devoluciones/Cliente/Devoluciones.res new file mode 100644 index 0000000000000000000000000000000000000000..1641339fcc482e7e3492d1b45813a86619622c33 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc b/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc b/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp b/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm b/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm new file mode 100644 index 0000000..72e2fe3 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm @@ -0,0 +1,1639 @@ +object dmDevoluciones: TdmDevoluciones + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvDevoluciones' + Left = 40 + Top = 32 + end + object tbl_Devoluciones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Devoluciones' + IndexDefs = <> + Left = 160 + Top = 96 + end + object ds_Devoluciones: TDADataSource + DataSet = tbl_Devoluciones.Dataset + DataTable = tbl_Devoluciones + Left = 160 + Top = 32 + end + object tbl_DevolucionesAprobadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DevolucionesAprobadas' + IndexDefs = <> + Left = 320 + Top = 96 + end + object ds_DevolucionesAprobadas: TDADataSource + DataSet = tbl_DevolucionesAprobadas.Dataset + DataTable = tbl_DevolucionesAprobadas + Left = 320 + Top = 32 + end + object tbl_DevolucionesPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DevolucionesPendientes' + IndexDefs = <> + Left = 480 + Top = 96 + end + object ds_DevolucionesPendientes: TDADataSource + DataSet = tbl_DevolucionesPendientes.Dataset + DataTable = tbl_DevolucionesPendientes + Left = 480 + Top = 32 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas b/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas new file mode 100644 index 0000000..7809dc3 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas @@ -0,0 +1,87 @@ +unit uDataModuleDevoluciones; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizDevoluciones, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmDevoluciones = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Devoluciones: TDACDSDataTable; + ds_Devoluciones: TDADataSource; + tbl_DevolucionesAprobadas: TDACDSDataTable; + ds_DevolucionesAprobadas: TDADataSource; + tbl_DevolucionesPendientes: TDACDSDataTable; + ds_DevolucionesPendientes: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems : IBizDevoluciones; overload; + function GetItems(const AEstado : TInvDevolucionEstado) : IBizDevoluciones; overload; + end; + +var + dmDevoluciones: TdmDevoluciones; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmDevoluciones.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmDevoluciones.GetItems: IBizDevoluciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Devoluciones, dtLista); + dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; + Result := (dtLista as IBizDevoluciones); + finally + HideHourglassCursor; + end; +end; + +function TdmDevoluciones.GetItems( + const AEstado: TInvDevolucionEstado): IBizDevoluciones; +var + dtLista: TDACDSDataTable; + AStr : String; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + tidPendiente : CloneDataTable(tbl_DevolucionesPendientes, dtLista); + tidAprobado : CloneDataTable(tbl_DevolucionesAprobadas, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; + Result := (dtLista as IBizDevoluciones); + finally + HideHourglassCursor; + end; +end; + +initialization + dmDevoluciones := TdmDevoluciones.Create(nil); + +finalization + FreeAndNil(dmDevoluciones); + +end. diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp b/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm b/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm new file mode 100644 index 0000000..1ef1479 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm @@ -0,0 +1,944 @@ +object fEditorAjustarDevoluciones: TfEditorAjustarDevoluciones + Left = 445 + Top = 219 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de devoluciones de productos' + ClientHeight = 536 + ClientWidth = 753 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 753 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de devoluciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 222 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label1: TLabel + Left = 22 + Top = 258 + Width = 92 + Height = 13 + Caption = 'Cantidad solicitada:' + end + object Label2: TLabel + Left = 22 + Top = 333 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 362 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object edtEnv40: TcxDBMaskEdit + Left = 223 + Top = 256 + DataBinding.DataField = 'S40' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 25 + end + object edtEnv38: TcxDBMaskEdit + Left = 120 + Top = 256 + DataBinding.DataField = 'S38' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 25 + end + object edtEnv42: TcxDBMaskEdit + Left = 326 + Top = 256 + DataBinding.DataField = 'S42' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 25 + end + object edtEnv44: TcxDBMaskEdit + Left = 429 + Top = 256 + DataBinding.DataField = 'S44' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 25 + end + object edtEnv46: TcxDBMaskEdit + Left = 532 + Top = 256 + DataBinding.DataField = 'S46' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 25 + end + object edtEnv48: TcxDBMaskEdit + Left = 635 + Top = 256 + DataBinding.DataField = 'S48' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 25 + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 331 + DataBinding.DataField = 'E38' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 331 + DataBinding.DataField = 'E40' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 331 + DataBinding.DataField = 'E42' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 331 + DataBinding.DataField = 'E44' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 20 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 331 + DataBinding.DataField = 'E46' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 331 + DataBinding.DataField = 'E48' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 24 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 25 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 23 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 19 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 144 + Top = 28 + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 108 + end + object edtCentro: TcxDBLabel + Left = 344 + Top = 28 + DataBinding.DataField = 'FILIAL' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 481 + end + object edtProducto: TcxDBLabel + Left = 144 + Top = 51 + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 420 + end + object edtColor: TcxDBLabel + Left = 613 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 118 + end + object edtHoja: TcxDBLabel + Left = 144 + Top = 104 + DataBinding.DataField = 'NUMHOJA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 140 + end + object cbEstadoHoja: TcxComboBox + Left = 144 + Top = 127 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otras incidencias') + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + 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 = 5 + Text = 'cbEstadoHoja' + Width = 166 + end + object memEstadoHoja: TcxMemo + Left = 22 + Top = 172 + Lines.Strings = ( + 'memEstadoHoja') + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + 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 = 7 + Height = 44 + Width = 709 + end + object cbContabilizarHoja: TcxCheckBox + Left = 231 + Top = 127 + Caption = 'Contabilizar esta hoja de movimiento' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + 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 = 6 + Width = 708 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales' + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro de origen:' + Control = edtCentro + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + Caption = 'Datos de la hoja de movimientos' + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'N'#250'mero de hoja:' + Control = edtHoja + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado de la devoluci'#243'n:' + Control = cbEstadoHoja + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizarHoja + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Observaciones sobre la hoja:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memEstadoHoja + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv48 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de recepci'#243'n del env'#237'o' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + DataTable = dmDevoluciones.tbl_Devoluciones + Left = 200 + Top = 496 + end +end diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas b/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas new file mode 100644 index 0000000..f117ee0 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas @@ -0,0 +1,351 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizDevoluciones, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarDevoluciones = interface + ['{F75441C6-D0D4-42AF-ABB7-FC531222F0DD}'] + function GetItems : IBizDevoluciones; + procedure SetItems (const AValue : IBizDevoluciones); + property Items : IBizDevoluciones read GetItems write SetItems; + end; + + TfEditorAjustarDevoluciones = class(TForm, IEditorAjustarDevoluciones) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + edtEnv40: TcxDBMaskEdit; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item11: TdxLayoutItem; + edtEnv38: TcxDBMaskEdit; + dxLayoutControl1Item12: TdxLayoutItem; + edtEnv42: TcxDBMaskEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtEnv44: TcxDBMaskEdit; + dxLayoutControl1Item14: TdxLayoutItem; + edtEnv46: TcxDBMaskEdit; + dxLayoutControl1Item15: TdxLayoutItem; + edtEnv48: TcxDBMaskEdit; + dxLayoutControl1Item16: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtCentro: TcxDBLabel; + dxLayoutControl1Item17: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + edtHoja: TcxDBLabel; + dxLayoutControl1Item1: TdxLayoutItem; + cbEstadoHoja: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memEstadoHoja: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizarHoja: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizDevoluciones; + FHayErrores : Boolean; + FAlbaranModificado : Boolean; + procedure CargarValores; + procedure SalvarValores; + procedure ModificarAlbaran; + protected + function GetItems : IBizDevoluciones; + procedure SetItems (const AValue : IBizDevoluciones); + public + property Items : IBizDevoluciones read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleDevoluciones, + uDAInterfaces; + +{$R *.dfm} + +function ShowEditorAjustarDevoluciones (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarDevoluciones; +begin + AEditor := TfEditorAjustarDevoluciones.Create(Application); + try + AEditor.Items := (ABizObject as IBizDevoluciones); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarDevoluciones.FormShow(Sender: TObject); +begin + FHayErrores := False; + FItems.DataTable.Open; + + cbEstadoHoja.Enabled := Length(FItems.DataTable.FieldByName('NUMHOJA').AsString) > 0; + cbContabilizarHoja.Enabled := cbEstadoHoja.Enabled; + memEstadoHoja.Enabled := cbEstadoHoja.Enabled; + + CargarValores;; +end; + +function TfEditorAjustarDevoluciones.GetItems: IBizDevoluciones; +begin + Result := FItems; +end; + +procedure TfEditorAjustarDevoluciones.SetItems( + const AValue: IBizDevoluciones); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarDevoluciones.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarDevoluciones.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + ModificarAlbaran; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarDevoluciones.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('E38').AsInteger <> FieldByName('ER38').AsInteger then + edtRecR38.Value := FieldByName('ER38').AsInteger + else + edtRecR38.Value := FieldByName('E38').AsInteger; + + if FieldByName('E40').AsInteger <> FieldByName('ER40').AsInteger then + edtRecR40.Value := FieldByName('ER40').AsInteger + else + edtRecR40.Value := FieldByName('E40').AsInteger; + + if FieldByName('E42').AsInteger <> FieldByName('ER42').AsInteger then + edtRecR42.Value := FieldByName('ER42').AsInteger + else + edtRecR42.Value := FieldByName('E42').AsInteger; + + if FieldByName('E44').AsInteger <> FieldByName('ER44').AsInteger then + edtRecR44.Value := FieldByName('ER44').AsInteger + else + edtRecR44.Value := FieldByName('E44').AsInteger; + + if FieldByName('E46').AsInteger <> FieldByName('ER46').AsInteger then + edtRecR46.Value := FieldByName('ER46').AsInteger + else + edtRecR46.Value := FieldByName('E46').AsInteger; + + if FieldByName('E48').AsInteger <> FieldByName('ER48').AsInteger then + edtRecR48.Value := FieldByName('ER48').AsInteger + else + edtRecR48.Value := FieldByName('E48').AsInteger; + + if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then + cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0]; + + if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then + cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0] + else + cbEstadoHoja.Text := FieldByName('ESTADO_HOJA').AsString; + + cbContabilizarHoja.Checked := (FieldByName('CONTABILIZAR_HOJA').AsString = 'S'); + memEstadoHoja.Lines.Clear; + if Length(FieldByName('OBSERVACIONES_HOJA').AsString) > 0 then + memEstadoHoja.Lines.Add(FieldByName('OBSERVACIONES_HOJA').AsString) + end; +end; + +procedure TfEditorAjustarDevoluciones.SalvarValores; +var + aux : String; +begin + FAlbaranModificado := False; + with FItems.DataTable do + begin + Edit; + FieldByName('ER38').AsFloat := edtRecR38.Value; + FieldByName('ER40').AsFloat := edtRecR40.Value; + FieldByName('ER42').AsFloat := edtRecR42.Value; + FieldByName('ER44').AsFloat := edtRecR44.Value; + FieldByName('ER46').AsFloat := edtRecR46.Value; + FieldByName('ER48').AsFloat := edtRecR48.Value; + + if cbEstadoHoja.Text = cbEstadoHoja.Properties.Items[0] then + aux := '' + else + aux := cbEstadoHoja.Text; + + if FieldByName('ESTADO_HOJA').AsString <> aux then + FieldByName('ESTADO_HOJA').AsString := aux; + + if cbContabilizarHoja.Checked then + aux := 'S' + else + aux := 'N'; + + if FieldByName('CONTABILIZAR_HOJA').AsString <> aux then + FieldByName('CONTABILIZAR_HOJA').AsString := aux; + + FieldByName('OBSERVACIONES_HOJA').AsString := memEstadoHoja.Lines.Text; + Post; + end; +end; + +procedure TfEditorAjustarDevoluciones.ModificarAlbaran; +var + bm : TBookMark ; + AHoja : String; + AEstado : String; + AContabilizar : String; +begin + { Si se ha cambiado el albarán, hay + que cambiarlo en el resto de filas en las que aparezca } + + AHoja := FItems.DataTable.FieldByName('NUMHOJA').AsString; + AEstado := FItems.DataTable.FieldByName('ESTADO_HOJA').AsString; + AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString; + + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + FItems.DataTable.DisableEventHandlers; + FItems.DataTable.LogChanges := False; + try + FItems.DataTable.Filter := 'NUMHOJA = ''' + AHoja + ''''; + FItems.DataTable.Filtered := True; + FItems.DataTable.First; + + repeat + FItems.Edit; + FItems.DataTable.FieldByName('ESTADO_HOJA').AsString := AEstado; + FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString := AContabilizar; + FItems.Post; + FItems.DataTable.Next + until FItems.DataTable.EOF; + + try + FItems.DataTable.GotoBookMark(bm); + except + // No hacer nada + end; + finally + FItems.DataTable.Filter := ''; + FItems.DataTable.Filtered := False; + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.LogChanges := True; + FItems.DataTable.EnableEventHandlers; + FItems.DataTable.EnableControls; + end; +end; + +initialization + RegisterEditor(IBizDevoluciones, ShowEditorAjustarDevoluciones, etItem); + +finalization + +end. + diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp b/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm b/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm new file mode 100644 index 0000000..c37762d --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm @@ -0,0 +1,1708 @@ +inherited fEditorListaDevoluciones: TfEditorListaDevoluciones + Left = 403 + Top = 247 + Caption = 'Control de devoluciones' + ClientHeight = 637 + ClientWidth = 901 + ExplicitWidth = 909 + ExplicitHeight = 671 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de devoluciones' + ExplicitWidth = 901 + inherited Image1: TImage + Left = 874 + ExplicitLeft = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + ExplicitWidth = 901 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 583 + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 901 + end + inherited tbxFiltro: TTBXToolbar + Left = 583 + ExplicitLeft = 583 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 901 + ExplicitTop = 618 + ExplicitWidth = 901 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 204 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaDevoluciones1: TfrViewListaDevoluciones [4] + Left = 0 + Top = 233 + Width = 901 + Height = 385 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 233 + ExplicitWidth = 901 + ExplicitHeight = 385 + inherited cxGrid: TcxGrid + Width = 901 + Height = 385 + ExplicitWidth = 901 + ExplicitHeight = 385 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA + end> + inherited cxGridViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + object TBXDockablePanel1: TTBXDockablePanel [5] + Left = 0 + Top = 76 + MaxClientHeight = 61 + Align = alTop + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + inline frViewParametrosCentro1: TfrViewParametrosCentro + Left = 0 + Top = 19 + Width = 425 + Height = 109 + Align = alLeft + TabOrder = 0 + ReadOnly = False + ExplicitTop = 19 + ExplicitWidth = 425 + ExplicitHeight = 109 + inherited dxLayoutControl1: TdxLayoutControl + Width = 425 + ExplicitWidth = 425 + inherited ccbCentro: TJvCheckedComboBox + Width = 392 + ExplicitWidth = 392 + end + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 901 + Height = 19 + Margins.Left = 5 + Margins.Top = 5 + Align = alTop + Caption = 'Par'#225'metros de consulta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 425 + Top = 19 + Width = 476 + Height = 109 + Align = alClient + AutoSize = True + TabOrder = 2 + object TBXButton3: TTBXButton + Tag = 3 + Left = 8 + Top = 10 + Width = 90 + Height = 21 + Action = actRefrescar + AutoSize = False + Caption = 'Consultar' + ImageIndex = 0 + TabOrder = 0 + Wrapping = twEndEllipsis + end + end + end + inherited EditorActionList: TActionList [6] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar devoluci'#243'n' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas b/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas new file mode 100644 index 0000000..2b65b96 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas @@ -0,0 +1,356 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizDevoluciones, uViewListaDevoluciones, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, TBXDkPanels, + uViewParametrosControlGrid, uViewParametrosCentro, uDAInterfaces; + + +type + IEditorListaDevoluciones = interface(IEditorGridBase) + ['{F7023263-A26E-4C09-87AF-02275AD594C4}'] + function GetItems: IBizDevoluciones; + procedure SetItems(const Value: IBizDevoluciones); + property Items: IBizDevoluciones read GetItems + write SetItems; + end; + + TfEditorListaDevoluciones = class(TfEditorGridBase, IEditorListaDevoluciones) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaDevoluciones1: TfrViewListaDevoluciones; + TBXDockablePanel1: TTBXDockablePanel; + frViewParametrosCentro1: TfrViewParametrosCentro; + TBXLabel1: TTBXLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + TBXButton3: TTBXButton; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizDevoluciones; + function GetItems: IBizDevoluciones; + procedure SetItems(const Value: IBizDevoluciones); + procedure CambiarEstado(const NuevoEstado: TInvDevolucionestado); + function GetModified: Boolean; override; + public + property Items: IBizDevoluciones read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, + cxGridDBDataDefinitions, uDataModuleDevoluciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaDevoluciones.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaDevoluciones1; +end; + +function TfEditorListaDevoluciones.GetItems: IBizDevoluciones; +begin + Result := FItems; +end; + +procedure TfEditorListaDevoluciones.SetItems( + const Value: IBizDevoluciones); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaDevoluciones1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaDevoluciones.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + frViewParametrosCentro1.Refresh; + + with (ViewGrid as IViewListaDevoluciones) do + VerPendientes; +end; + +procedure TfEditorListaDevoluciones.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + + Items.DataTable.Active := False; + + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmDevoluciones.GetItems(tidPendiente); + (ViewGrid as IViewListaDevoluciones).VerPendientes; + end; + + 1 : begin + Items := dmDevoluciones.GetItems(tidAprobado); + (ViewGrid as IViewListaDevoluciones).VerAprobados; + end; + + 2 : begin + Items := dmDevoluciones.GetItems; + (ViewGrid as IViewListaDevoluciones).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaDevoluciones.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaDevoluciones.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaDevoluciones.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaDevoluciones.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaDevoluciones.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaDevoluciones.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaDevoluciones.actRefrescarExecute( + Sender: TObject); +var + ACentrosList : TStringList; + AWhere : String; + i : integer; +begin + // BEGIN Adaptación a DA5 + {case (ViewGrid as IViewListaDevoluciones).VistaActiva of + tdvaPendiente, + tdvaAprobado : AWhere := ' and' + else + AWhere := ''; + end;} + AWhere := ''; + // END Adaptación a DA5 + + AWhere := AWhere + ' CENTRO in ('; + + Items.DataTable.Active := False; + ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; + + ShowHourglassCursor; + try + if ACentrosList.Count = 0 then + ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') + else begin + with Items.DataTable.Where do + begin + Clear; + for i := 0 to ACentrosList.Count - 1 do + begin + if i > 0 then + AWhere := AWhere + ', '; + AWhere := AWhere + '''' + ACentrosList[i] + ''''; + end; + AWhere := AWhere + ')'; + + AddText(AWhere); + end; + Items.DataTable.Active := True; + end; + finally + HideHourglassCursor; + FreeAndNIL(ACentrosList); + end; + + inherited; + + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaDevoluciones.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(tidPendiente); +end; + +procedure TfEditorListaDevoluciones.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tidPendiente); +end; + +procedure TfEditorListaDevoluciones.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(tidAprobado); +end; + +procedure TfEditorListaDevoluciones.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tidAprobado); +end; + +procedure TfEditorListaDevoluciones.CambiarEstado( + const NuevoEstado: TInvDevolucionestado); +var + ARecord: TcxCustomGridRecord; + i : Integer; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + //ViewGrid._FocusedView.BeginUpdate; + FItems.DataTable.DisableControls; + + Application.ProcessMessages; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + Application.ProcessMessages; + end; + FItems.DataTable.ApplyUpdates; + finally + //ViewGrid._FocusedView.EndUpdate; + FItems.DataTable.EnableControls; + ViewGrid._FocusedView.Controller.ClearSelection; + HideHourglassCursor; + Application.ProcessMessages; + end; + end; +end; + +procedure TfEditorListaDevoluciones.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaDevoluciones.GetModified: Boolean; +begin + Result := False; +end; + +end. diff --git a/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp b/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm b/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm new file mode 100644 index 0000000..aac76d2 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm @@ -0,0 +1,125 @@ +object ModuleDevoluciones: TModuleDevoluciones + OldCreateOrder = True + DefaultAction = actDevolucion + Description = 'Control de devoluci'#243'n de prendas' + ModuleMenu = MainMenu + ModuleName = 'Control de devoluci'#243'n de prendas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.1' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000019B4944415478DA + 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B + 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 + 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 + 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F + 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF + 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 + 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 + 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 + 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 + 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC + 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 + 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 + 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 + 0049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actDevolucion: TAction + Category = 'Inventario' + Caption = 'Control de devoluci'#243'n' + ImageIndex = 0 + OnExecute = actDevolucionExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 210 + Action = actDevolucion + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F64944415478DA + 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A + 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 + 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 + F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 + DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 + B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E + BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E + C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001F14944415478DA + BDD64D4B02511406E03328F8270A83DA549BA09508B55082D6AD5A8414942615 + ADC2A0458BC016D1A68D21951014F8075AF4014A1FB4B05A5442216119481018 + EA980331796F3A36E39DB9F74EE60151F1CC79668EBE83822CCBD0CA121078BF + D8EEAABC3EA2F4BA597A7A5733C77A1F22AB06CA9DCB4B60B379898DE5F2266C + 8FAFC0C40EBDC7BF9F1198C09EE00B3E4855853C7E84E30EB01C4CC2F41EBDC7 + 3C581D84875D0D9141428F39F0D7203CEC61A411D4E9E1073583A05880F0AB47 + 0D1AF4F081EF6B0D83A0588470CE5F07293D7CE063004092548340AC9CBDB450 + 07293DCC208A45386AD7EBC5C3502C683DACA02B96360EF5A01DDC2C3D4D0DBE + D1D9B31477F01178176863BA0D92AE943BF85590BA8D90CF07F31110D8418350 + 2390B68DAF93610E90126A22A8D9063BC810EA0690B08DD9F534C08D8F016408 + B50AD4D946E4AC031297B106943BF82AB0BA0D677094D83F37D6059E992D15CA + 1D7CF45357C0EA369C1B537838A942D173B8882715540105813DCFB558D4B681 + D687C0442A8BDF974A127ECEE74B60B55A20F5F4A6A06641D76136A36C63D796 + 54402D56FA94401425C87D881895AFBD0237A8AD7E6F5246E0E9EDB32166FA0A + 8D4084A1122B575A14CB18FCF3774802710434E518E856614D0389D517FAF977 + AD97C37F018DEE34ADAC6FE2EA02F65CB3A8E60000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas b/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas new file mode 100644 index 0000000..29ba2d3 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas @@ -0,0 +1,73 @@ +unit uPluginControllerDevoluciones; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCDevoluciones = interface(IInterface) + ['{46008D56-3823-4F95-8D22-89130764307B}'] + end; + + TModuleDevoluciones = class(TModuleController, IMCDevoluciones) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actDevolucion: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actDevolucionExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uBizDevoluciones, + uDataModuleDevoluciones, uEditorListaDevoluciones; + + +function GetModule : TModuleController; +begin + Result := TModuleDevoluciones.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleDevoluciones.actDevolucionExecute(Sender: TObject); +var + aControl: IBizDevoluciones; + aObj: IEditorListaDevoluciones; +begin + aControl := dmDevoluciones.GetItems(tidPendiente); + aObj := TfEditorListaDevoluciones.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleDevoluciones); + +finalization + UnRegisterModuleClass(TModuleDevoluciones); + +end. diff --git a/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp b/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm b/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm new file mode 100644 index 0000000..b599fa6 --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm @@ -0,0 +1,476 @@ +inherited frViewListaDevoluciones: TfrViewListaDevoluciones + Width = 466 + Height = 477 + inherited cxGrid: TcxGrid + Width = 466 + Height = 477 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'Centro;Codigo;Color;Fecha' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = cxGridViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = cxGridViewDIFERENCIA + end> + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewOBSERVACIONES_HOJA + Preview.Visible = True + Styles.Footer = cxStyleFooter + OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell + object cxGridViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 15 + IsCaptionAssigned = True + end + object cxGridViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + end + object cxGridViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Visible = False + GroupIndex = 0 + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridViewCODIGOGetDataText + OnGetDisplayText = cxGridViewCODIGOGetDisplayText + GroupIndex = 1 + SortIndex = 1 + SortOrder = soAscending + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + SortIndex = 2 + SortOrder = soAscending + end + object cxGridViewESTADO_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_HOJA' + Visible = False + end + object cxGridViewNUMHOJA: TcxGridDBColumn + Caption = 'Hoja' + DataBinding.FieldName = 'NUMHOJA' + OnGetDisplayText = cxGridViewNUMHOJAGetDisplayText + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + end + object cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR_HOJA' + Visible = False + end + object cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES_HOJA' + PropertiesClassName = 'TcxMemoProperties' + end + object cxGridViewS38: TcxGridDBColumn + DataBinding.FieldName = 'S38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS40: TcxGridDBColumn + DataBinding.FieldName = 'S40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS42: TcxGridDBColumn + DataBinding.FieldName = 'S42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS44: TcxGridDBColumn + DataBinding.FieldName = 'S44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS46: TcxGridDBColumn + DataBinding.FieldName = 'S46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS48: TcxGridDBColumn + DataBinding.FieldName = 'S48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewSOLICITADO: TcxGridDBColumn + Caption = 'Solicitado' + DataBinding.FieldName = 'SOLICITADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 43 + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewENVIADO: TcxGridDBColumn + DataBinding.FieldName = 'ENVIADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewER38: TcxGridDBColumn + Caption = 'E38' + DataBinding.FieldName = 'ER38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR38GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle + Width = 41 + end + object cxGridViewER40: TcxGridDBColumn + Caption = 'E40' + DataBinding.FieldName = 'ER40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR40GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle + Width = 41 + end + object cxGridViewER42: TcxGridDBColumn + Caption = 'E42' + DataBinding.FieldName = 'ER42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR42GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle + Width = 41 + end + object cxGridViewER44: TcxGridDBColumn + Caption = 'E44' + DataBinding.FieldName = 'ER44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR44GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle + Width = 41 + end + object cxGridViewER46: TcxGridDBColumn + Caption = 'E46' + DataBinding.FieldName = 'ER46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR46GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle + Width = 41 + end + object cxGridViewER48: TcxGridDBColumn + Caption = 'E48' + DataBinding.FieldName = 'ER48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR48GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle + Width = 41 + end + object cxGridViewENVIADO_RECT: TcxGridDBColumn + Caption = 'Enviado' + DataBinding.FieldName = 'ENVIADO_RECT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDataText = cxGridViewENVIADO_RECTGetDataText + Styles.Content = cxStyleSubtotal + Width = 42 + end + object cxGridViewDIFERENCIA: TcxGridDBColumn + Caption = 'Diferencia' + DataBinding.FieldName = 'DIFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDataText = cxGridViewDIFERENCIAGetDataText + HeaderAlignmentHorz = taRightJustify + Width = 42 + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE DEVOLUCI'#211'N') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas b/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas new file mode 100644 index 0000000..09bf22b --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas @@ -0,0 +1,608 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizDevoluciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + TvDevolucionesVistaActiva = (tdvaPendiente, tdvaAprobado, tdvaTodos); + + IViewListaDevoluciones = interface(IViewGrid) + ['{2179BA33-B039-4CC9-A423-F50FD2C7B880}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + + function GetVistaActiva : TvDevolucionesVistaActiva; + property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; + end; + + TfrViewListaDevoluciones = class(TfrViewGrid, IViewListaDevoluciones) + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxGridViewAPROBADO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewNUMHOJA: TcxGridDBColumn; + cxGridViewESTADO_HOJA: TcxGridDBColumn; + cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn; + cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn; + cxGridViewS38: TcxGridDBColumn; + cxGridViewS40: TcxGridDBColumn; + cxGridViewS42: TcxGridDBColumn; + cxGridViewS44: TcxGridDBColumn; + cxGridViewS46: TcxGridDBColumn; + cxGridViewS48: TcxGridDBColumn; + cxGridViewSOLICITADO: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + cxGridViewENVIADO: TcxGridDBColumn; + cxGridViewER38: TcxGridDBColumn; + cxGridViewER40: TcxGridDBColumn; + cxGridViewER42: TcxGridDBColumn; + cxGridViewER44: TcxGridDBColumn; + cxGridViewER46: TcxGridDBColumn; + cxGridViewER48: TcxGridDBColumn; + cxGridViewENVIADO_RECT: TcxGridDBColumn; + cxGridViewDIFERENCIA: TcxGridDBColumn; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewNUMHOJAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewNUMHOJAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewENVIADO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetVistaActiva : TvDevolucionesVistaActiva; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; + end; + + +implementation + +uses + uDataModuleDevoluciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaDevoluciones.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaDevoluciones.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaDevoluciones.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaDevoluciones.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridViewCustomDrawGroupCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridViewFILIAL then + begin + ARecIndex := AViewInfo.GridRecord.RecordIndex; + Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridViewFILIAL.Index]; + AViewInfo.Text := 'Centro: ' + Val1; + end; +end; + + +procedure TfrViewListaDevoluciones.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1: string; +begin + inherited; + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := AText + '-' + Val1; + +end; + +procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + if Length(VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index])) > 0 then + AText := AText + ' (' + VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index]) + ')'; +end; + +procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + + if VarToStr(ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]) = 'N' then + AStyle := cxStyle1; +end; + +procedure TfrViewListaDevoluciones.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaDevoluciones.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaDevoluciones.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup +end; + +procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaDevoluciones.cxGridViewENVIADO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaDevoluciones.cxGridViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + with Sender.GridView.DataController do + begin + Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewENVIADO_RECT.Index], 0); + Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewSOLICITADO.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaDevoluciones.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyle1.Font.Style; + AnItem.Font.Color := cxStyle1.Font.Color; + end; + end; +end; + +procedure TfrViewListaDevoluciones.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +function TfrViewListaDevoluciones.GetVistaActiva: TvDevolucionesVistaActiva; +begin + if FTipo = 'N' then + Result := tdvaPendiente + else if FTipo = 'S' then + Result := tdvaAprobado + else + Result := tdvaTodos; +end; + +end. diff --git a/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas b/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas new file mode 100644 index 0000000..ba34a6a --- /dev/null +++ b/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas @@ -0,0 +1,77 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizDevoluciones; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_DEVOLUCIONES = 'Client.Devoluciones'; + +type + TInvDevolucionEstado = (tidPendiente, tidAprobado); + + IBizDevoluciones = interface(IDAStronglyTypedDataTable) //IRecepciones) + ['{E7196FF3-EFC9-45FC-AA50-C0C79F567ECA}'] + procedure Show; + procedure SetEstado(const AValue : TInvDevolucionEstado); + function GetEstado : TInvDevolucionEstado ; + property Estado : TInvDevolucionEstado read GetEstado write SetEstado; + end; + + + TBizDevolucionesDataTableRules = class(TDADataTableRules, IBizDevoluciones) + protected + procedure SetEstado(const AValue : TInvDevolucionEstado); + function GetEstado : TInvDevolucionEstado ; + public + procedure Show; + property Estado : TInvDevolucionEstado read GetEstado write SetEstado; + end; + + +implementation + +uses + uEditorUtils, uDataModuleDevoluciones; + +{ TBizDevolucionesDataTableRules } + +function TBizDevolucionesDataTableRules.GetEstado: TInvDevolucionEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := tidAprobado + else + Result := tidPendiente +end; + +procedure TBizDevolucionesDataTableRules.SetEstado( + const AValue: TInvDevolucionEstado); +begin + case AValue of + tidPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + tidAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizDevolucionesDataTableRules.Show; +begin + ShowEditor(IBizDevoluciones, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_DEVOLUCIONES, TBizDevolucionesDataTableRules); + +end. + diff --git a/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp b/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm b/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm new file mode 100644 index 0000000..647da8b --- /dev/null +++ b/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm @@ -0,0 +1,1505 @@ +object srvDevoluciones: TsrvDevoluciones + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schDevoluciones + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schDevoluciones: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'Devoluciones' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' *'#10'FROM RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROBADO' + + ' = '#39'N'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'DevolucionesPendientes' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROB' + + 'ADO = '#39'S'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'DevolucionesAprobadas' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' ENVIADO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL' + + '_DEVOLUCIONES'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = ' + + ':CENTRO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'RefreshDevoluciones' + Fields = < + item + Name = 'ENVIADO_RECT' + DataType = datFloat + end + item + Name = 'DIFERENCIA' + DataType = datFloat + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ER38' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER40' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER42' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER44' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER46' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER48' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'begin'#10#9'declare @rowcount_var int'#10#10' declare @NUMHOJA char(8)'#10' ' + + ' declare @ESTADO_HOJA varchar(20)'#10' declare @OBSERVACIONES_H' + + 'OJA varchar(255)'#10' declare @CONTABILIZAR_HOJA char(1)'#10#10' dec' + + 'lare @ER38 numeric(15,0)'#10' declare @ER40 numeric(15,0)'#10' dec' + + 'lare @ER42 numeric(15,0)'#10' declare @ER44 numeric(15,0)'#10' dec' + + 'lare @ER46 numeric(15,0)'#10' declare @ER48 numeric(15,0)'#10#10' de' + + 'clare @APROBADO char(1)'#10' declare @FECHA datetime'#10' declare ' + + '@CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' declare ' + + '@COLOR varchar(10)'#10#10' set @NUMHOJA = :NUMHOJA'#10' set @ESTADO_' + + 'HOJA = :ESTADO_HOJA'#10' set @OBSERVACIONES_HOJA = :OBSERVACIONES' + + '_HOJA'#10' set @CONTABILIZAR_HOJA = :CONTABILIZAR_HOJA'#10#10' set @' + + 'ER38 = :ER38'#10' set @ER40 = :ER40'#10' set @ER42 = :ER42'#10' set' + + ' @ER44 = :ER44'#10' set @ER46 = :ER46'#10' set @ER48 = :ER48'#10#10' ' + + 'set @APROBADO = :APROBADO'#10' set @FECHA = :FECHA'#10' set @CENTR' + + 'O = :CENTRO'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10#10' ' + + ' /* *********************************** */'#10' if @NUMHOJA <> ' + + #39#39#10' begin'#10#9' update RDX_AJUSTES_HOJA_DEVOLUCIONES set'#10#9' ' + + ' ESTADO = @ESTADO_HOJA,'#10#9#9' OBSERVACIONES = @OBSERVA' + + 'CIONES_HOJA,'#10#9#9' CONTABILIZAR = @CONTABILIZAR_HOJA'#10#9' wh' + + 'ere RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = @NUMHOJA'#10#10#9#9' select ' + + '@ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9' if @ROWCOUNT_VAR = 0'#10#9#9' begin'#10 + + #9' insert into RDX_AJUSTES_HOJA_DEVOLUCIONES'#10#9' ' + + ' (NUMHOJA, ESTADO, OBSERVACIONES, CONTABILIZAR)'#10#9#9' va' + + 'lues (@NUMHOJA, @ESTADO_HOJA,'#10#9' @OBSERVACIONES_' + + 'HOJA, @CONTABILIZAR_HOJA)'#10#9' end'#10' end'#10#10#10' /* ***********' + + '************************ */'#10#9'update RDX_DEVOLUCION_AJUSTES set'#10#9 + + ' CANT38 = @ER38,'#10#9' CANT40 = @ER40,'#10#9' ' + + ' CANT42 = @ER42,'#10#9' CANT44 = @ER44,'#10#9' CANT4' + + '6 = @ER46,'#10#9' CANT48 = @ER48,'#10' APROBADO =' + + ' @APROBADO,'#10' FECHACAMBIO = CURRENT_TIMESTAMP'#10#9'wher' + + 'e'#10' (RDX_DEVOLUCION_AJUSTES.CENTRO = @CENTRO and'#10#9' ' + + ' RDX_DEVOLUCION_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_DEVOLU' + + 'CION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_DEVOLUCION_AJUSTES.FE' + + 'CHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT' + + '_VAR = 0'#10' begin'#10' insert into RDX_DEVOLUCION_AJUSTES'#10' ' + + ' (FECHA, CENTRO, CODIGO, COLOR,'#10' A' + + 'PROBADO, FECHACAMBIO,'#10' CANT38, CANT40, CANT42,'#10' ' + + ' CANT44, CANT46, CANT48)'#10' values ('#10' ' + + ' @FECHA, @CENTRO, @CODIGO,'#10' @COLOR, @A' + + 'PROBADO, CURRENT_TIMESTAMP,'#10' @ER38, @ER40, @ER42' + + ','#10' @ER44, @ER46, @ER48)'#10' end'#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Devoluciones' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object bpDevoluciones: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'Devoluciones' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpDevolucionesAprobadas: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'DevolucionesAprobadas' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpDevolucionesPendientes: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'DevolucionesPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Devoluciones_APROBADO' + DataType = datString + Size = 1 + DisplayLabel = 'APROBADO' + end + item + Name = 'Devoluciones_FECHACAMBIO' + DataType = datDateTime + DisplayLabel = 'FECHACAMBIO' + end + item + Name = 'Devoluciones_CENTRO' + DataType = datString + Size = 17 + DisplayLabel = 'CENTRO' + ReadOnly = True + end + item + Name = 'Devoluciones_FILIAL' + DataType = datString + Size = 25 + DisplayLabel = 'FILIAL' + ReadOnly = True + end + item + Name = 'Devoluciones_CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'CODIGO' + ReadOnly = True + end + item + Name = 'Devoluciones_PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'PRODUCTO' + ReadOnly = True + end + item + Name = 'Devoluciones_COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'COLOR' + ReadOnly = True + end + item + Name = 'Devoluciones_FECHA' + DataType = datDateTime + DisplayLabel = 'FECHA' + ReadOnly = True + end + item + Name = 'Devoluciones_NUMHOJA' + DataType = datString + Size = 8 + DisplayLabel = 'NUMHOJA' + end + item + Name = 'Devoluciones_ESTADO_HOJA' + DataType = datString + Size = 20 + DisplayLabel = 'ESTADO_HOJA' + end + item + Name = 'Devoluciones_OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DisplayLabel = 'OBSERVACIONES_HOJA' + end + item + Name = 'Devoluciones_CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DisplayLabel = 'CONTABILIZAR_HOJA' + end + item + Name = 'Devoluciones_S38' + DataType = datInteger + DisplayLabel = 'S38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S40' + DataType = datInteger + DisplayLabel = 'S40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S42' + DataType = datInteger + DisplayLabel = 'S42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S44' + DataType = datInteger + DisplayLabel = 'S44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S46' + DataType = datInteger + DisplayLabel = 'S46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S48' + DataType = datInteger + DisplayLabel = 'S48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_SOLICITADO' + DataType = datInteger + DisplayLabel = 'SOLICITADO' + ReadOnly = True + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_E38' + DataType = datFloat + DisplayLabel = 'E38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E40' + DataType = datFloat + DisplayLabel = 'E40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E42' + DataType = datFloat + DisplayLabel = 'E42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E44' + DataType = datFloat + DisplayLabel = 'E44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E46' + DataType = datFloat + DisplayLabel = 'E46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E48' + DataType = datFloat + DisplayLabel = 'E48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ENVIADO' + DataType = datFloat + DisplayLabel = 'ENVIADO' + ReadOnly = True + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_ER38' + DataType = datFloat + DisplayLabel = 'ER38' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER40' + DataType = datFloat + DisplayLabel = 'ER40' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER42' + DataType = datFloat + DisplayLabel = 'ER42' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER44' + DataType = datFloat + DisplayLabel = 'ER44' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER46' + DataType = datFloat + DisplayLabel = 'ER46' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER48' + DataType = datFloat + DisplayLabel = 'ER48' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ENVIADO_RECT' + DataType = datFloat + DisplayLabel = 'ENVIADO_RECT' + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_DIFERENCIA' + DataType = datFloat + DisplayLabel = 'DIFERENCIA' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 48 + Top = 120 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 184 + end +end diff --git a/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas b/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas new file mode 100644 index 0000000..e52bb6e --- /dev/null +++ b/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas @@ -0,0 +1,51 @@ +unit srvDevoluciones_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvDevoluciones } + TsrvDevoluciones = class(TDARemoteService, IsrvDevoluciones) + bpDevoluciones: TDABusinessProcessor; + bpDevolucionesAprobadas: TDABusinessProcessor; + bpDevolucionesPendientes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schDevoluciones: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvDevoluciones methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvDevoluciones(out anInstance : IUnknown); +begin + anInstance := TsrvDevoluciones.Create(NIL); +end; + +{ srvDevoluciones } +initialization + TROClassFactory.Create('srvDevoluciones', Create_srvDevoluciones, TsrvDevoluciones_Invoker); + +finalization + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj new file mode 100644 index 0000000..3469638 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + FicherosEDI.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg new file mode 100644 index 0000000..396e927 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof new file mode 100644 index 0000000..c912ddd --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof @@ -0,0 +1,474 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=2 +Item0=..\..\..\..\Output\Cliente +Item1=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk new file mode 100644 index 0000000..7b45b1e --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk @@ -0,0 +1,74 @@ +package FicherosEDI; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + vcl, + rtl, + PluginSDK_D10R, + GUISDK_D10, + PNG_D10, + PngComponentsD10, + BaseD10, + JvWizardD10R, + dbrtl, + vclx, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + vclactnband, + tb2k_D10, + tbx_D10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R; + +contains + uPluginControllerFicherosEDI in 'uPluginControllerFicherosEDI.pas' {ModuleFicherosEDI: TModuleController}, + uAsistenteCargaFicheros in 'uAsistenteCargaFicheros.pas' {fAsistenteCargaFicheros}, + uSubirFicheros in 'uSubirFicheros.pas', + uCargarFicheros in 'uCargarFicheros.pas', + uEditorHistorialCargasEDI in 'uEditorHistorialCargasEDI.pas' {fEditorHistorialCargasEDI: TCustomEditor}, + uViewHistorialCargasEDI in 'uViewHistorialCargasEDI.pas' {frViewHistorialCargasEDI: TCustomView}, + uDataModuleFicherosEDI in 'uDataModuleFicherosEDI.pas' {dmFicherosEDI: TDAClientDataModule}, + schEDILogClient_Intf in '..\Reglas\schEDILogClient_Intf.pas', + uBizEDILog in '..\Reglas\uBizEDILog.pas', + schEDILogServer_Intf in '..\Reglas\schEDILogServer_Intf.pas'; + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache new file mode 100644 index 0000000000000000000000000000000000000000..41c8bfd3281985188a26730d4a3619ceb8bd58eb GIT binary patch literal 1531 zcmd7S!AiqG5C-6Q^(pcMK7coyR4iC1hW4}|V=|^A>rR>3Rq*6R4}v22!fsQOLn!pt zbq{+Q*pGkM|1`_8?~~%(lw5~LbY63CO-+K^|tB8@kJEkIh>PMmE(BWgJB zNpu}YdidD%lf<;Jp(R(a^TO8RpxYDLXA)ou9=e@lAKV_=TM}9o?q~>Xyw2BSl5ViI zpe9V{C8l%D?O5}XK%@0~huMA4+nMwCW7pR)T|-T*2%is^MAFPElqZybl-Y&GR^7I2 L*JAx&9PjfN!Xp}# literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm b/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm new file mode 100644 index 0000000..f8be239 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm @@ -0,0 +1,2769 @@ +object fAsistenteCargaFicheros: TfAsistenteCargaFicheros + Left = 494 + Top = 309 + ActiveControl = JvWizardWelcomePage1 + BorderStyle = bsDialog + Caption = 'Asistente para la carga de ficheros EDI' + ClientHeight = 399 + ClientWidth = 608 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object JvWizard1: TJvWizard + Left = 0 + Top = 0 + Width = 608 + Height = 399 + ActivePage = JvWizardWelcomePage1 + ButtonBarHeight = 42 + ButtonStart.Caption = 'To &Start Page' + ButtonStart.NumGlyphs = 1 + ButtonStart.Width = 85 + ButtonLast.Caption = 'To &Last Page' + ButtonLast.NumGlyphs = 1 + ButtonLast.Width = 85 + ButtonBack.Caption = '< &Atr'#225's' + ButtonBack.NumGlyphs = 1 + ButtonBack.Width = 75 + ButtonNext.Caption = '&Siguiente >' + ButtonNext.NumGlyphs = 1 + ButtonNext.Width = 75 + ButtonFinish.Caption = '&Finalizar' + ButtonFinish.NumGlyphs = 1 + ButtonFinish.Width = 75 + ButtonCancel.Caption = 'Cancelar' + ButtonCancel.NumGlyphs = 1 + ButtonCancel.ModalResult = 2 + ButtonCancel.Width = 75 + ButtonHelp.Caption = '&Ayuda' + ButtonHelp.NumGlyphs = 1 + ButtonHelp.Width = 75 + ShowRouteMap = False + OnFinishButtonClick = JvWizard1FinishButtonClick + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + DesignSize = ( + 608 + 399) + object JvWizardWelcomePage1: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Carga de datos de ficheros EDI' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = 'Bienvenido al asistente de carga de ficheros de datos EDI.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + WaterMark.Image.Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 + 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 + 74455874536F6674776172650041646F626520496D616765526561647971C965 + 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 + ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 + 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF + C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE + FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 + B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD + 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 + FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 + B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 + 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 + FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 + BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 + 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 + D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 + A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 + 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 + EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 + 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 + 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 + F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB + B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB + 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD + FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 + D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 + 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF + B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C + 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF + 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E + 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 + 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F + 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 + DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 + A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 + D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 + F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 + CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 + E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 + 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F + EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 + F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 + B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 + 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 + 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B + 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 + 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 + 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B + 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 + 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 + 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 + 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 + 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB + 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 + 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C + B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F + C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 + 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E + B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 + 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 + 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A + E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA + DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B + 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 + 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD + A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 + CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B + FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A + EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 + 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C + 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 + EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F + B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 + 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB + E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 + C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D + 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 + 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 + E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED + 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 + 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A + 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 + 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 + B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 + 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC + 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 + 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 + 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 + 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF + C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A + A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 + 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E + 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD + 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C + 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 + 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 + 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA + C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 + 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 + BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A + E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 + F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED + 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE + 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 + 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F + 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC + 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 + 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 + E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A + 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 + 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 + 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C + 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 + 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF + D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 + 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 + 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 + AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE + 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 + 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 + 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 + 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB + 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 + 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F + CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E + 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 + 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA + A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 + 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A + 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 + DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 + 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 + 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 + D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F + D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 + 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 + BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 + F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 + EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 + 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 + 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED + 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 + 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A + 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 + FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 + 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 + E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 + 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 + 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F + 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 + B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B + D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B + B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 + 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB + 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA + 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 + FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F + 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 + 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 + A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC + 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD + 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 + E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 + D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 + A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 + DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED + 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 + 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 + 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF + F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B + 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 + 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B + BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 + 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B + 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 + 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 + 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 + AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 + 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 + E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 + 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC + D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B + 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 + 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C + E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 + DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F + DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF + 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 + D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 + 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF + 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 + 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 + 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 + D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 + 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA + 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 + 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 + E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D + DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 + ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A + 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 + 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C + C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 + 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E + 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 + F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C + F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 + 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C + AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB + E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 + 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 + 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA + E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E + 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 + BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 + 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D + 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 + 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F + 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC + 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 + F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 + 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 + 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C + 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 + BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F + 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 + B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD + 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF + FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 + 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 + C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A + 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 + 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 + 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 + 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 + 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 + 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 + 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C + 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE + 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC + 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC + E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 + 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 + 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 + 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F + 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C + 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 + 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 + 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 + 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 + 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E + 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A + 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE + DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 + 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 + 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 + 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E + 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 + 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 + DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 + 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 + 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC + D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 + 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 + BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C + F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 + E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 + 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 + 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 + DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 + C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 + 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 + 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 + E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 + A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 + CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD + 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C + 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 + 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 + D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB + 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 + 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 + 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 + A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 + 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 + C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 + A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 + E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E + 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 + 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 + 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 + 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 + C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 + 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 + 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E + 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 + 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 + E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 + C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 + 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E + D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 + 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D + 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C + BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 + F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 + 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 + E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 + 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 + 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C + 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 + 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 + CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 + 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E + 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 + D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD + 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 + B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A + 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C + C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 + ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F + 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C + E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 + 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD + 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 + 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 + 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C + A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 + A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB + DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 + 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 + D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 + 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 + 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F + E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 + 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF + 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E + 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 + 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 + 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 + A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A + B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F + 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 + BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 + F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 + E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 + 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC + DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 + F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 + 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 + A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D + 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 + 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D + 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 + EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 + EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 + 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D + A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 + D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 + C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 + C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 + A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 + 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 + 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C + A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 + 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 + 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB + CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D + 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 + B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E + 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 + 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 + 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B + A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 + C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 + 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 + A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 + 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 + 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A + 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 + 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 + F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 + BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B + F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD + 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 + 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 + CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 + 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC + BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE + AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 + 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF + 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 + 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 + 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 + 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 + A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 + 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 + A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 + DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 + 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D + 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 + 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 + D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 + 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 + 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 + BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 + 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 + 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A + 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF + 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 + 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 + B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D + 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 + ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 + 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F + 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 + 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C + 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 + 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 + ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 + 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F + 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD + 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 + 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 + 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 + 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 + 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 + 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D + D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 + D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 + 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB + 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 + B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 + 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 + 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F + 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 + B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB + 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 + C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 + 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 + F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 + 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 + 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 + 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 + 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF + 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 + 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A + 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 + 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 + 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 + 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE + BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF + 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 + A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB + 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 + F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 + 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C + 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 + F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A + 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 + 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 + 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 + 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 + 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 + 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 + BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 + EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 + C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC + 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 + C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 + 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B + 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 + BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 + 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 + 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 + CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 + A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D + F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 + 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD + 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 + 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E + 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 + 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC + AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB + 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 + 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D + 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D + 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 + 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C + FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 + 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 + BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 + B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF + 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 + 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 + 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 + B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 + FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A + 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 + FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 + 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC + 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A + B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 + 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 + 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F + DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED + 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 + 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B + 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 + 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA + 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 + 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 + 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 + 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 + 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 + A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 + FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 + E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 + 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 + 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC + DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C + 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D + 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 + DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 + F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 + B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 + 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 + 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F + 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 + 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A + CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B + 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF + 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB + 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D + F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 + 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 + 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 + AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 + 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF + 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 + A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 + B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B + 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 + 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 + 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA + 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 + 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 + 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C + BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 + BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC + E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD + 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 + 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC + 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 + 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 + 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 + 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 + 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C + 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 + C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F + 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 + 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB + FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F + 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 + 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 + FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 + 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 + 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 + F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C + DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 + E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 + 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC + 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF + 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 + 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 + 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 + 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 + 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 + F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 + 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E + 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 + B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C + 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 + 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 + F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 + A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 + A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 + 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA + EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 + 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F + A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 + 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 + C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 + 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB + 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 + 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF + FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC + 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A + 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 + DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 + 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD + 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 + 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 + A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 + 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 + F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B + 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF + CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 + 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA + DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 + 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A + 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC + 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 + 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 + 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 + 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A + C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 + 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F + 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 + 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A + 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB + BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 + B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB + 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC + 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 + 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 + 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 + 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 + EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF + 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 + B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 + 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 + A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 + 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F + D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C + 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 + 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B + 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 + A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 + 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 + 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF + 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 + 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 + C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B + 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 + A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 + 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 + AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 + 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB + 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 + ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 + 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 + D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 + 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C + A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB + C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 + 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 + 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 + E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 + 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F + FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 + A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 + 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C + 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE + F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F + 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A + F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 + 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB + EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 + A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 + 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 + 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 + 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A + 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F + 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 + AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 + 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 + 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 + 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 + D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 + BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 + 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF + A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 + 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A + 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA + E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 + 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 + 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 + 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 + D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B + 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD + B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 + E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 + F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 + D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 + 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 + 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F + 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F + 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 + 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F + E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 + FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C + 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 + 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 + 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE + B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 + 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 + ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 + A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF + 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B + 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 + 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 + 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 + 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 + AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C + 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC + 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB + 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A + 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 + F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 + 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B + A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 + 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB + A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 + 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 + 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 + 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 + A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 + E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF + FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 + 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 + 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C + C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 + 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 + 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD + 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D + 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C + B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 + 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC + 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E + 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 + 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 + 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 + E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 + D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 + AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF + D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 + E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 + EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 + 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 + 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 + 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 + 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 + CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 + 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA + 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 + 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E + C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E + E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 + 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 + 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 + 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 + D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C + D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D + 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC + 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 + E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 + D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 + C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 + 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C + 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 + 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E + 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 + BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 + A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B + 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A + 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 + 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C + EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E + BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 + E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 + D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 + 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 + CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 + 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE + 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A + 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 + 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 + 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E + 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 + D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 + DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 + B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 + D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D + 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 + FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D + 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 + 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B + 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 + E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 + B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 + 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 + E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F + DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 + E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 + 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 + BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F + 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE + 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 + 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E + 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 + 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 + 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B + 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 + 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 + F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 + 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 + 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 + 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A + 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B + D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 + 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA + 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 + A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 + D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A + 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 + 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 + B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 + 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 + A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 + AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D + 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC + 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F + EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE + 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA + 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 + ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A + BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 + 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 + 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE + DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 + 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 + 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B + 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 + 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD + 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E + 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 + 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 + 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F + 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 + 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 + D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 + 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 + 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC + EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 + 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 + DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 + 056401991B159005646E54401690B951015940E646056401991B159005646E54 + 401690B951015940E646056401991B159005646E54401690B951015940E64605 + 6401991B159005646E54401690B951015940E646056401991B159005646E5440 + 1690B951015940E646056401991B159005646E54401690B951015940E6460564 + 01991B159005646E54401690B951015940E646056401991B159005646E544016 + 90B951015940E646056401991B159005646E54401690B951015940E646056401 + 991B159005646E54401690B951015940E646056401991B159005646E54401690 + B951015940E646056401991B159005646E54401690B951015940E64605640199 + 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 + 51015940E646056401991B159005646E54401690B951015940E646056401991B + 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 + AE426082} + WaterMark.Image.Layout = ilTile + object Label1: TLabel + Left = 168 + Top = 344 + Width = 186 + Height = 13 + Caption = 'Haga click en Siguiente para continuar.' + end + object Label3: TLabel + Left = 168 + Top = 72 + Width = 364 + Height = 32 + Caption = + 'Este asistente le ayudar'#225' a cargar datos de ventas e inventario ' + + #13#10'desde ficheros EDI.' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + end + object pageRutas: TJvWizardInteriorPage + Header.Title.Color = clNone + Header.Title.Text = 'Opciones de carga' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -16 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'Indique cu'#225'les son los datos que desea cargar y el nombre y la r' + + 'uta de los ficheros EDI.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.AnchorPlacement = 8 + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -11 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + EnabledButtons = [bkStart, bkLast, bkBack, bkFinish, bkCancel, bkHelp] + object cxGroupBox1: TcxGroupBox + Left = 15 + Top = 84 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 121 + Width = 585 + object Label5: TLabel + Left = 28 + Top = 84 + Width = 103 + Height = 13 + Caption = 'Fichero ARTVEN.TXT:' + end + object Label4: TLabel + Left = 29 + Top = 57 + Width = 102 + Height = 13 + Caption = 'Fichero LUGVEN.TXT:' + end + object Label2: TLabel + Left = 28 + Top = 31 + Width = 103 + Height = 13 + Caption = 'Fichero CABVEN.TXT:' + end + object edtARTVEN: TJvFilenameEdit + Left = 140 + Top = 80 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 2 + OnChange = edtARTVENChange + end + object edtLUGVEN: TJvFilenameEdit + Left = 140 + Top = 53 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 1 + OnChange = edtLUGVENChange + end + object edtCABVEN: TJvFilenameEdit + Left = 140 + Top = 27 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 0 + OnChange = edtCABVENChange + end + end + object cbVentas: TCheckBox + Left = 28 + Top = 82 + Width = 229 + Height = 17 + Caption = 'Cargar ficheros de datos relativos a ventas' + Checked = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + State = cbChecked + TabOrder = 0 + OnClick = cbVentasClick + end + object cxGroupBox2: TcxGroupBox + Left = 15 + Top = 219 + 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 + Height = 121 + Width = 585 + object Label8: TLabel + Left = 28 + Top = 84 + Width = 103 + Height = 13 + Caption = 'Fichero ARTVEN.TXT:' + Visible = False + end + object Label9: TLabel + Left = 29 + Top = 57 + Width = 102 + Height = 13 + Caption = 'Fichero LUGVEN.TXT:' + Visible = False + end + object Label10: TLabel + Left = 28 + Top = 31 + Width = 103 + Height = 13 + Caption = 'Fichero CABVEN.TXT:' + Visible = False + end + object JvFilenameEdit1: TJvFilenameEdit + Left = 140 + Top = 80 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 2 + Visible = False + end + object JvFilenameEdit2: TJvFilenameEdit + Left = 140 + Top = 53 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 1 + Visible = False + end + object JvFilenameEdit3: TJvFilenameEdit + Left = 140 + Top = 27 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 0 + Visible = False + end + end + object cbInventario: TCheckBox + Left = 28 + Top = 218 + Width = 243 + Height = 17 + Caption = 'Cargar ficheros de datos relativos a inventario' + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + end + end + object pagFinal: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Fin del asistente de carga de ficheros' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'A continuaci'#243'n, el asistente copiar'#225' los ficheros en el servidor' + + ' y realizar'#225' la carga de los datos.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + EnabledButtons = [bkStart, bkLast, bkBack, bkNext, bkCancel, bkHelp] + VisibleButtons = [bkBack, bkFinish, bkCancel] + OnEnterPage = pagFinalEnterPage + OnPage = pagFinalPage + WaterMark.Image.Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 + 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 + 74455874536F6674776172650041646F626520496D616765526561647971C965 + 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 + ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 + 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF + C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE + FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 + B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD + 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 + FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 + B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 + 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 + FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 + BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 + 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 + D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 + A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 + 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 + EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 + 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 + 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 + F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB + B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB + 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD + FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 + D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 + 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF + B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C + 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF + 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E + 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 + 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F + 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 + DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 + A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 + D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 + F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 + CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 + E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 + 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F + EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 + F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 + B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 + 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 + 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B + 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 + 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 + 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B + 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 + 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 + 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 + 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 + 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB + 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 + 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C + B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F + C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 + 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E + B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 + 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 + 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A + E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA + DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B + 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 + 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD + A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 + CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B + FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A + EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 + 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C + 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 + EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F + B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 + 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB + E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 + C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D + 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 + 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 + E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED + 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 + 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A + 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 + 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 + B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 + 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC + 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 + 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 + 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 + 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF + C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A + A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 + 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E + 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD + 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C + 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 + 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 + 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA + C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 + 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 + BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A + E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 + F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED + 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE + 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 + 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F + 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC + 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 + 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 + E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A + 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 + 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 + 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C + 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 + 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF + D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 + 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 + 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 + AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE + 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 + 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 + 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 + 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB + 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 + 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F + CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E + 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 + 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA + A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 + 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A + 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 + DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 + 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 + 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 + D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F + D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 + 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 + BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 + F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 + EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 + 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 + 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED + 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 + 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A + 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 + FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 + 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 + E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 + 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 + 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F + 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 + B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B + D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B + B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 + 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB + 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA + 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 + FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F + 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 + 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 + A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC + 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD + 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 + E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 + D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 + A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 + DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED + 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 + 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 + 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF + F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B + 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 + 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B + BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 + 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B + 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 + 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 + 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 + AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 + 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 + E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 + 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC + D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B + 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 + 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C + E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 + DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F + DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF + 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 + D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 + 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF + 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 + 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 + 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 + D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 + 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA + 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 + 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 + E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D + DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 + ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A + 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 + 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C + C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 + 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E + 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 + F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C + F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 + 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C + AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB + E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 + 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 + 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA + E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E + 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 + BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 + 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D + 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 + 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F + 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC + 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 + F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 + 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 + 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C + 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 + BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F + 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 + B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD + 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF + FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 + 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 + C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A + 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 + 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 + 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 + 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 + 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 + 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 + 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C + 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE + 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC + 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC + E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 + 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 + 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 + 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F + 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C + 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 + 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 + 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 + 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 + 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E + 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A + 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE + DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 + 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 + 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 + 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E + 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 + 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 + DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 + 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 + 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC + D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 + 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 + BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C + F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 + E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 + 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 + 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 + DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 + C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 + 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 + 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 + E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 + A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 + CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD + 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C + 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 + 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 + D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB + 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 + 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 + 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 + A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 + 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 + C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 + A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 + E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E + 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 + 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 + 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 + 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 + C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 + 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 + 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E + 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 + 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 + E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 + C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 + 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E + D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 + 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D + 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C + BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 + F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 + 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 + E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 + 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 + 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C + 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 + 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 + CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 + 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E + 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 + D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD + 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 + B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A + 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C + C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 + ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F + 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C + E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 + 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD + 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 + 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 + 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C + A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 + A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB + DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 + 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 + D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 + 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 + 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F + E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 + 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF + 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E + 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 + 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 + 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 + A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A + B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F + 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 + BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 + F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 + E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 + 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC + DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 + F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 + 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 + A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D + 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 + 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D + 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 + EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 + EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 + 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D + A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 + D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 + C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 + C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 + A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 + 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 + 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C + A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 + 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 + 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB + CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D + 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 + B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E + 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 + 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 + 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B + A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 + C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 + 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 + A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 + 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 + 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A + 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 + 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 + F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 + BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B + F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD + 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 + 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 + CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 + 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC + BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE + AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 + 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF + 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 + 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 + 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 + 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 + A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 + 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 + A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 + DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 + 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D + 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 + 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 + D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 + 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 + 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 + BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 + 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 + 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A + 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF + 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 + 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 + B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D + 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 + ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 + 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F + 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 + 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C + 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 + 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 + ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 + 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F + 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD + 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 + 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 + 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 + 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 + 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 + 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D + D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 + D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 + 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB + 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 + B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 + 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 + 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F + 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 + B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB + 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 + C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 + 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 + F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 + 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 + 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 + 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 + 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF + 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 + 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A + 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 + 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 + 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 + 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE + BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF + 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 + A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB + 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 + F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 + 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C + 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 + F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A + 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 + 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 + 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 + 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 + 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 + 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 + BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 + EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 + C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC + 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 + C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 + 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B + 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 + BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 + 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 + 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 + CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 + A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D + F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 + 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD + 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 + 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E + 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 + 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC + AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB + 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 + 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D + 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D + 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 + 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C + FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 + 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 + BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 + B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF + 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 + 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 + 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 + B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 + FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A + 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 + FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 + 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC + 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A + B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 + 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 + 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F + DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED + 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 + 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B + 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 + 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA + 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 + 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 + 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 + 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 + 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 + A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 + FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 + E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 + 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 + 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC + DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C + 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D + 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 + DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 + F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 + B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 + 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 + 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F + 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 + 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A + CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B + 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF + 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB + 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D + F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 + 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 + 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 + AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 + 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF + 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 + A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 + B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B + 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 + 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 + 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA + 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 + 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 + 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C + BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 + BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC + E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD + 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 + 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC + 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 + 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 + 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 + 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 + 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C + 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 + C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F + 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 + 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB + FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F + 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 + 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 + FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 + 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 + 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 + F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C + DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 + E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 + 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC + 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF + 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 + 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 + 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 + 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 + 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 + F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 + 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E + 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 + B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C + 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 + 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 + F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 + A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 + A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 + 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA + EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 + 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F + A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 + 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 + C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 + 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB + 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 + 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF + FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC + 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A + 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 + DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 + 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD + 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 + 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 + A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 + 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 + F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B + 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF + CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 + 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA + DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 + 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A + 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC + 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 + 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 + 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 + 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A + C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 + 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F + 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 + 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A + 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB + BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 + B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB + 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC + 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 + 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 + 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 + 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 + EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF + 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 + B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 + 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 + A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 + 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F + D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C + 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 + 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B + 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 + A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 + 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 + 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF + 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 + 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 + C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B + 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 + A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 + 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 + AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 + 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB + 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 + ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 + 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 + D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 + 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C + A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB + C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 + 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 + 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 + E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 + 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F + FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 + A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 + 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C + 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE + F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F + 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A + F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 + 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB + EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 + A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 + 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 + 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 + 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A + 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F + 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 + AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 + 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 + 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 + 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 + D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 + BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 + 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF + A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 + 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A + 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA + E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 + 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 + 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 + 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 + D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B + 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD + B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 + E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 + F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 + D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 + 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 + 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F + 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F + 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 + 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F + E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 + FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C + 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 + 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 + 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE + B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 + 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 + ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 + A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF + 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B + 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 + 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 + 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 + 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 + AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C + 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC + 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB + 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A + 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 + F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 + 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B + A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 + 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB + A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 + 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 + 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 + 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 + A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 + E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF + FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 + 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 + 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C + C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 + 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 + 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD + 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D + 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C + B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 + 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC + 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E + 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 + 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 + 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 + E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 + D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 + AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF + D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 + E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 + EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 + 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 + 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 + 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 + 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 + CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 + 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA + 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 + 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E + C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E + E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 + 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 + 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 + 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 + D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C + D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D + 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC + 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 + E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 + D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 + C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 + 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C + 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 + 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E + 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 + BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 + A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B + 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A + 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 + 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C + EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E + BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 + E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 + D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 + 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 + CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 + 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE + 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A + 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 + 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 + 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E + 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 + D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 + DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 + B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 + D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D + 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 + FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D + 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 + 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B + 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 + E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 + B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 + 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 + E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F + DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 + E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 + 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 + BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F + 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE + 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 + 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E + 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 + 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 + 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B + 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 + 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 + F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 + 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 + 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 + 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A + 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B + D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 + 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA + 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 + A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 + D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A + 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 + 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 + B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 + 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 + A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 + AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D + 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC + 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F + EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE + 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA + 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 + ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A + BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 + 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 + 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE + DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 + 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 + 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B + 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 + 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD + 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E + 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 + 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 + 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F + 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 + 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 + D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 + 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 + 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC + EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 + 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 + DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 + 056401991B159005646E54401690B951015940E646056401991B159005646E54 + 401690B951015940E646056401991B159005646E54401690B951015940E64605 + 6401991B159005646E54401690B951015940E646056401991B159005646E5440 + 1690B951015940E646056401991B159005646E54401690B951015940E6460564 + 01991B159005646E54401690B951015940E646056401991B159005646E544016 + 90B951015940E646056401991B159005646E54401690B951015940E646056401 + 991B159005646E54401690B951015940E646056401991B159005646E54401690 + B951015940E646056401991B159005646E54401690B951015940E64605640199 + 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 + 51015940E646056401991B159005646E54401690B951015940E646056401991B + 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 + AE426082} + WaterMark.Image.Layout = ilTile + object lblFinalizar: TLabel + Left = 168 + Top = 344 + Width = 219 + Height = 13 + Caption = 'Haga click en Finalizar para salir del asistente.' + Visible = False + end + object Label7: TLabel + Left = 224 + Top = 86 + Width = 254 + Height = 14 + Caption = 'Copiando fichero CABVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 224 + Top = 136 + Width = 252 + Height = 14 + Caption = 'Copiando fichero LUGVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 224 + Top = 185 + Width = 254 + Height = 14 + Caption = 'Copiando fichero ARTVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 224 + Top = 296 + Width = 223 + Height = 14 + Caption = 'Cargando datos desde los ficheros...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object imgOK1: TImage + Left = 200 + Top = 87 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgOK2: TImage + Left = 200 + Top = 137 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgOK3: TImage + Left = 200 + Top = 186 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object Bevel1: TBevel + Left = 200 + Top = 236 + Width = 404 + Height = 10 + Shape = bsBottomLine + end + object imgBAD1: TImage + Left = 198 + Top = 87 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgBAD2: TImage + Left = 198 + Top = 137 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgBAD3: TImage + Left = 198 + Top = 186 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgOK4: TImage + Left = 200 + Top = 296 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgBAD4: TImage + Left = 198 + Top = 296 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object lblError: TLabel + Left = 225 + Top = 316 + Width = 127 + Height = 13 + Caption = 'Mensaje de error al cargar' + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Transparent = True + Visible = False + end + object pbarCABVEN: TProgressBar + Left = 224 + Top = 104 + Width = 344 + Height = 17 + TabOrder = 0 + end + object pbarLUGVEN: TProgressBar + Left = 224 + Top = 154 + Width = 344 + Height = 17 + TabOrder = 1 + end + object pbarARTVEN: TProgressBar + Left = 224 + Top = 203 + Width = 344 + Height = 17 + TabOrder = 2 + end + object JvAnimate1: TJvAnimate + Left = 200 + Top = 296 + Width = 16 + Height = 16 + CommonAVI = aviFindComputer + StopFrame = 8 + Visible = False + end + object bCargar: TButton + Left = 200 + Top = 253 + Width = 97 + Height = 25 + Caption = '&Cargar ficheros' + Enabled = False + TabOrder = 4 + OnClick = bCargarClick + end + end + end + object RORemoteService: TRORemoteService + ServiceName = 'srvTransfereciaFicheros' + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + Left = 80 + Top = 256 + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas b/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas new file mode 100644 index 0000000..c2d2d34 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas @@ -0,0 +1,344 @@ +unit uAsistenteCargaFicheros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + cxGraphics, cxDropDownEdit, Mask, JvExMask, JvToolEdit, cxGroupBox, + ComCtrls, uROClient, SyncObjs, VARELA_Intf, + uROServiceComponent, uRORemoteService, uDataModuleBase, pngimage, + ExtCtrls, JvExComCtrls, JvAnimate; + +type + TfAsistenteCargaFicheros = class(TForm) + JvWizard1: TJvWizard; + JvWizardWelcomePage1: TJvWizardWelcomePage; + Label1: TLabel; + pageRutas: TJvWizardInteriorPage; + Label3: TLabel; + pagFinal: TJvWizardWelcomePage; + lblFinalizar: TLabel; + cbVentas: TCheckBox; + cbInventario: TCheckBox; + Label2: TLabel; + Label4: TLabel; + Label5: TLabel; + edtCABVEN: TJvFilenameEdit; + edtLUGVEN: TJvFilenameEdit; + edtARTVEN: TJvFilenameEdit; + cxGroupBox1: TcxGroupBox; + cxGroupBox2: TcxGroupBox; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + JvFilenameEdit1: TJvFilenameEdit; + JvFilenameEdit2: TJvFilenameEdit; + JvFilenameEdit3: TJvFilenameEdit; + Label7: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + pbarCABVEN: TProgressBar; + pbarLUGVEN: TProgressBar; + pbarARTVEN: TProgressBar; + RORemoteService: TRORemoteService; + imgOK1: TImage; + imgOK2: TImage; + imgOK3: TImage; + Bevel1: TBevel; + imgBAD1: TImage; + imgBAD2: TImage; + imgBAD3: TImage; + imgOK4: TImage; + imgBAD4: TImage; + lblError: TLabel; + JvAnimate1: TJvAnimate; + bCargar: TButton; + procedure JvWizard1FinishButtonClick(Sender: TObject); + procedure cbVentasClick(Sender: TObject); + procedure edtCABVENChange(Sender: TObject); + procedure edtLUGVENChange(Sender: TObject); + procedure edtARTVENChange(Sender: TObject); + procedure pagFinalEnterPage(Sender: TObject; + const FromPage: TJvWizardCustomPage); + procedure bCargarClick(Sender: TObject); + procedure pagFinalPage(Sender: TObject); + private + { Private declarations } + FCritical: TCriticalSection; + FFileService: IsrvTransfereciaFicheros; + procedure ActualizarBotonesNav; + procedure OnUploadAborted(Sender: TObject); + procedure OnUploadError(Sender: TObject); + procedure OnUploadFinished(Sender: TObject); + procedure OnUploadProgress(Sender: TObject); + procedure OnUploadStarted(Sender: TObject); + procedure OnLoadSuccess(Sender: TObject); + procedure OnLoadError(Sender : TObject); + procedure CargarFicherosEDI; + procedure SubirFicheros; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + procedure VerAsistenteEtiquetasMontajes; + +implementation + +uses + uSubirFicheros, uCargarFicheros; + +{$R *.dfm} + +procedure VerAsistenteEtiquetasMontajes; +var + fAsistenteCargaFicheros: TfAsistenteCargaFicheros; +begin + with TfAsistenteCargaFicheros.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + + +procedure TfAsistenteCargaFicheros.JvWizard1FinishButtonClick( + Sender: TObject); +begin + Close; +end; + +procedure TfAsistenteCargaFicheros.cbVentasClick(Sender: TObject); +begin + edtCABVEN.Enabled := (Sender as TCheckBox).Checked; + edtLUGVEN.Enabled := (Sender as TCheckBox).Checked; + edtARTVEN.Enabled := (Sender as TCheckBox).Checked; + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.ActualizarBotonesNav; +var + bActivarNext : Boolean; +begin + bActivarNext := True; + if JvWizard1.ActivePageIndex = 1 then // Rutas de ficheros + begin + bActivarNext := bActivarNext and (cbVentas.Checked or cbInventario.Checked); + + bActivarNext := bActivarNext and + ((Length(edtCABVEN.Text) > 0) and + (Length(edtLUGVEN.Text) > 0) and + (Length(edtARTVEN.Text) > 0)); + pageRutas.EnableButton(bkNext, bActivarNext); + end; +end; + +procedure TfAsistenteCargaFicheros.edtCABVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.edtLUGVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.edtARTVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.OnUploadAborted(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + imgBAD1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgBAD2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgBAD3.Visible := True; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadError(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + imgBAD1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgBAD2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgBAD3.Visible := True; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadFinished(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if UploadOK then + begin + if Pos(FileName, edtCABVEN.Text) > 0 then + imgOK1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgOK2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgOK3.Visible := True; + end; + finally + fCritical.Leave; + end; + if imgOK1.Visible and imgOK2.Visible and imgOK3.Visible then + bCargar.Enabled := True; +end; + +procedure TfAsistenteCargaFicheros.OnUploadProgress(Sender: TObject); +begin + FCritical.Enter; + try + with Sender as TSubirFicheroThread do + begin + if Pos(FileName, edtCABVEN.Text) > 0 then + pbarCABVEN.Position := CurrentBytePos; + if Pos(FileName, edtLUGVEN.Text) > 0 then + pbarLUGVEN.Position := CurrentBytePos; + if Pos(FileName, edtARTVEN.Text) > 0 then + pbarARTVEN.Position := CurrentBytePos; + end; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadStarted(Sender: TObject); +begin + FCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + pbarCABVEN.Max := FileSize; + if Pos(FileName, edtLUGVEN.Text) > 0 then + pbarLUGVEN.Max := FileSize; + if Pos(FileName, edtARTVEN.Text) > 0 then + pbarARTVEN.Max := FileSize; + finally + FCritical.Leave; + end; +end; + +constructor TfAsistenteCargaFicheros.Create(AOwner: TComponent); +begin + inherited; + FCritical := TCriticalSection.create; + FFileService := RORemoteService as IsrvTransfereciaFicheros; +end; + +destructor TfAsistenteCargaFicheros.Destroy; +begin + FFileService := nil; + FCritical.Free; + inherited; +end; + +procedure TfAsistenteCargaFicheros.pagFinalEnterPage( + Sender: TObject; const FromPage: TJvWizardCustomPage); +begin + SubirFicheros; +end; + +procedure TfAsistenteCargaFicheros.CargarFicherosEDI; +begin + JvAnimate1.Visible := True; + JvAnimate1.Active := True; + Label13.Visible := True; + pagFinal.EnableButton(bkBack, False); + pagFinal.EnableButton(bkCancel, False); + imgBAD4.Visible := False; + imgOK4.Visible := False; + lblError.Visible := False; + + TCargarVentasThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), + ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError); + +{ TCargarInventarioThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), + ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError);} +end; + +procedure TfAsistenteCargaFicheros.SubirFicheros; +begin + TSubirFicheroThread.Create(edtCABVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); + + TSubirFicheroThread.Create(edtLUGVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); + + TSubirFicheroThread.Create(edtARTVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); +end; + +procedure TfAsistenteCargaFicheros.OnLoadError(Sender: TObject); +begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + imgBAD4.Visible := True; + lblError.Caption := (Sender as TCargarFicherosThread).ErrorText; + lblError.Visible := True; + pagFinal.EnableButton(bkBack, True); + pagFinal.EnableButton(bkCancel, True); +end; + +procedure TfAsistenteCargaFicheros.OnLoadSuccess(Sender: TObject); +begin + Beep; + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + imgOK4.Visible := True; + Label13.Caption := 'Ficheros cargados correctamente'; + lblFinalizar.Visible := True; + pagFinal.EnableButton(bkFinish, True); +end; + +procedure TfAsistenteCargaFicheros.bCargarClick(Sender: TObject); +begin + bCargar.Enabled := False; + CargarFicherosEDI; +end; + +procedure TfAsistenteCargaFicheros.pagFinalPage(Sender: TObject); +begin + bCargar.Enabled := False; + imgOK1.Visible := False; + imgOK2.Visible := False; + imgOK3.Visible := False; + imgOK4.Visible := False; + imgBAD1.Visible := False; + imgBAD2.Visible := False; + imgBAD3.Visible := False; + imgBAD4.Visible := False; + pbarCABVEN.Position := 0; + pbarLUGVEN.Position := 0; + pbarARTVEN.Position := 0; + JvAnimate1.Visible := False; + lblFinalizar.Visible := False; + lblError.Visible := False; + Label13.Visible := False; + Label13.Caption := 'Cargando datos desde los ficheros...'; + pagFinal.EnableButton(bkBack, True); + pagFinal.EnableButton(bkCancel, True); + pagFinal.EnableButton(bkFinish, False); +end; + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm b/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm new file mode 100644 index 0000000..cd43bed --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm @@ -0,0 +1,6759 @@ +object fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes + Left = 159 + Top = 496 + ActiveControl = bImprimir + BorderStyle = bsDialog + Caption = 'Asistente para la impresi'#243'n de etiquetas' + ClientHeight = 376 + ClientWidth = 520 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object JvWizard1: TJvWizard + Left = 0 + Top = 0 + Width = 520 + Height = 376 + ActivePage = JvWizardWelcomePage2 + ButtonBarHeight = 42 + ButtonStart.Caption = 'To &Start Page' + ButtonStart.NumGlyphs = 1 + ButtonStart.Width = 85 + ButtonLast.Caption = 'To &Last Page' + ButtonLast.NumGlyphs = 1 + ButtonLast.Width = 85 + ButtonBack.Caption = '< &Atr'#225's' + ButtonBack.NumGlyphs = 1 + ButtonBack.Width = 75 + ButtonNext.Caption = '&Siguiente >' + ButtonNext.NumGlyphs = 1 + ButtonNext.Width = 75 + ButtonFinish.Caption = '&Finalizar' + ButtonFinish.NumGlyphs = 1 + ButtonFinish.Width = 75 + ButtonCancel.Caption = 'Cancelar' + ButtonCancel.NumGlyphs = 1 + ButtonCancel.ModalResult = 2 + ButtonCancel.Width = 75 + ButtonHelp.Caption = '&Ayuda' + ButtonHelp.NumGlyphs = 1 + ButtonHelp.Width = 75 + ShowRouteMap = False + OnFinishButtonClick = JvWizard1FinishButtonClick + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + DesignSize = ( + 520 + 376) + object JvWizardWelcomePage1: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Impresi'#243'n de etiquetas' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = 'Bienvenido al asistente de impresi'#243'n de etiquetas para montajes.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + WaterMark.Image.Picture.Data = { + 07544269746D617082960100424D82960100000000003204000028000000A400 + 000074020000010008000000000050920100120B0000120B0000FF000000FF00 + 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 + 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 + 07005B2509005923090057230900552309005D270B005B250B0059250B005222 + 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C + 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 + 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 + 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 + 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 + 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 + 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A + 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 + 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 + 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F + 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F + 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C + 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D + 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 + 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 + 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E + 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F + 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 + 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F + 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F + 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A + 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 + 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 + C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED + DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC + FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF + DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 + F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 + B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020203110311110303030303030303030303030303030303030303 + 0303030303030303030303030303030303111103111111111111111111321132 + 3232321132111111111111111111111111111111111111111111111111111111 + 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E + 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031111111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111031111111111111111321616161616321111111103030303030E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1111111103031111111111111111111111321616161632111111110303030303 + 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111110111111111111 + 1111111111111111030311111103111111111111113216161616321111110303 + 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111111111111111111111111111110303111111111111111132161616163211 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311030311111111111111323216 + 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311110303031111111111111111 + 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111111111111111111111111111111103110303030303031111 + 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111111111111111111111111111110303030303 + 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111103 + 0303030303030311111111111111113232111111111103030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111030303030303030311111111111111113232111111111103030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311111111111111111111111111111111111111111111111111111111 + 1111111111031103030303030303111111111111111111323211111111110303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303031111111111111111111111111111111111111111111111111111 + 1111111111111111110303030303030303030303111111111111111111111111 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303111111111111111111111111111111111111111111 + 1111111111111111111111111103030303030303030303031111111111111111 + 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031103111111111111111111111111111111 + 1111111111111111111111111111031111030303030303030303030311111111 + 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111103030303030303030303030303 + 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111111111111111111031103030303030303 + 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111103031103030303 + 0303030303030303031111111111111111111111110303030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111111111111110303 + 030303030303030303030303031111111111111111111111110303030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111030303030303030303030303030303031111111111111111111111030303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111103030303030303030303030303030303030311111111111111111111 + 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303111111111111111111111111111111111111 + 1111111111111111030303030303030303030303030303030303111111111111 + 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111110311030303030303030303030303030303030303031111 + 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111030303030303030303030303030303030303 + 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111110303030303030303030303030303 + 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111103030303030303030303 + 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303111111111111111111111111111111111111111111110303030303030303 + 0303030303030303030303030303031111111111111111110303030303030E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111110311030303 + 0303030303030303030303030303030303030311111111111111110303030303 + 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030311110303111111111111111111111111111111111103 + 0303030303030303030303030303030303030303030303031111111111110303 + 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 0311110303030303030303030303030303030303030303030303030303111111 + 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111111111111111111 + 1111111111111103030303030303030303030303030303030303030303030303 + 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031103111111111111 + 1111111111111111111111030303030303030303030303030303030303030303 + 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030311031111 + 0311111111111111031103110303030303030303030303030303030303030303 + 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303110303030303 + 0303111111111111111111111111111103030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303110311110311110311111111111103110303030303030303030303 + 03030303030303030303030303030303030303030303030303030303030E0E0E + 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111030303030303030303 + 0303030303030303030303030303030303030303030311110303030303030303 + 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111110311111103110303030303 + 0303030303030303030303030303030303030303030303030311111111110303 + 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111103111103 + 0303030303030303030303030303030303030303030303030303030303031111 + 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303110303031111111111 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 1111031103030303030303030303030303030303030303030303030303030303 + 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311030303030303030303030303030303030303030303030303030303 + 03030303030303030303111103030303030303030303030E0E03030E030E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303110311030303030303030303030303 + 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111111111110303030303030303 + 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311030311110303030303030303 + 0303030303030303030303030303030303030303031111111111111103030303 + 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303110303031103110303030303 + 0303030303030303030303030303030303030303030303030311111111111103 + 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111031103030303111111111111 + 0303030303030303030303030303030303030303030303030303030303031111 + 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111111110311 + 1111031103030303030303030303030303030303030303030303030303030311 + 111111111111111103030303030303030303030303030303030303030303030E + 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031103030303030303030311110311 + 1103111111030303030303030303030303030303030303030303030303030303 + 0303031111111111111111110303030303030303030303030303030303030303 + 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 + 03036A6AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311110311110311031103031103111111030303030303030303030303030303 + 0311030303111111111111111111111111110303030303030303030303030303 + 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E + 0303030303036A6AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303110303030303111103110303031111111103030303030303030303030303 + 0303030303030303030311111111111111111111111103030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036A6AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030311110303111111111103030303030303030303 + 0303030303030303030303030303111111111111111111111103030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303036A6AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031111111111111111110303110311111111 + 0303111111030303030303030303030303110311111111111111111111110303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303036AA2B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111030311030303030303030303111111111111111111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303030303030303036A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111110303031103030303030303031111111111111111 + 1111111111030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303036A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311031111111111111111111111111111 + 1111111111111111111111111111111111111103031103030311031103111111 + 1111113211111111111111030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303036A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111111111103111103031103031111 + 1111111111111132111111111111110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03036AA2B4C40203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1103111111111111111111113211111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303036AA2B4C402030303030303030303030303030303030303030303 + 0303030303030303110303030303030303030303030303030303030303111111 + 1111111111111111111110113232111110111132111111111010111111111111 + 1111111111111111111111113232113210321011111111111111030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036AA2B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303031103111111 + 1111111111111110111111101010103210101111111010111010101032111111 + 1111111111111111111111111111111111323210101010321111111103030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303A2A2B4C40203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111110101010101010321010101010101010101010101010 + 1010101010111111111111111111111111111111113210321010101111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303031230A2A2B4C402030303030303030303 + 0303030303030303030303030303030303030303030303030303030303031111 + 1111111111111111101111111010101010101010101010101010101010101010 + 10101010101010111010101011111111111110111110113211110D1111113232 + 1011111111110311111111111103110303030303030303030303030303030303 + 03030303030303030303030303030303030303030303A2A2B4C4020303030303 + 0303030303030303030303030303030303030303030303030303111111111111 + 1111111111111111111111111010111010101010101010101010101010101010 + 1032321111113232101010101010101010101010113210323211111112121313 + 0D340D1111111111111111111111111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030311110311A2A2B4C40203 + 0303030303030303030303030303030303030303030303030303031111111111 + 1111111111111111111111111111111011111010101010101010101010101010 + 10101032101112120D0D11111111321010101010101010321010103211111213 + 0F0F0F171713130D121111111111111111111111111111111111110303030303 + 030303030303030303030303030303030303030303030303030311111111A2A2 + B4C4020303030303030303030303030303030303030303110311111111111111 + 1111111111111111111111111111111110101010101010101010101010101010 + 10101010101010160D121213130E13130D0D1111323210101010101010321111 + 12130F0F17021917191717171313121212111111111111111111111111111111 + 1103030303030303030303030303030303030303030303031103030311111111 + 1111A2B4B4C40203030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111010101010101010101010101010101010 + 1010101010101010101616121317170F1719170F0F1312121111113232101032 + 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 + 1111111111110311111103030303110311110303030303030311030311111111 + 111111111111A2A2B4C402030303030303030303030303030303111111111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 + 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 + 1011101011111111111111111111110303111111111111031111111111110311 + 11111111111111111132A2A2C3C4020303030303030303031103030303111111 + 1111111111111111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010160D12131719192A62626262622A1D191919 + 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 + 1212111132101010111011111111111111111111111111111111111111111111 + 1111111111111111111111113232A2A2C3C40203030303030303030311111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 10101010101010101010101010101010161612131717191D6262622D66626262 + 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D + 190219020F0F1312111132101010103232323211111111111111111111111111 + 111111111111111111111111111132323216A2A2C3C402030303030303030311 + 1111111111111111111111111132111010101010101010101010101010101010 + 101010101010101010101010101010101010101012121317191D6262622D67D2 + 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 + 6441622A2A2A191902020F131312111132101010103211111111111111111111 + 11111111111111111111111111111111323232161616A2A2C3C4020303030303 + 0303031111111111111111321132321032101010101010101010101010101010 + 1010101010101010101010101010101014141414101532121317171962626263 + 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 + B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 + 1111111111111111111111111111111111113232323216101010A2B4B4C40203 + 0303030303031111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010101010101414141010101634131717192A62 + 626265D2686868686766666666666666652D63626262622A622A6465669F6566 + 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 + 101032323232323232323232321132113211323232321010101010101010A2A2 + C3C4020303030303031111111111111132101010101010101010101010101010 + 101010101010101010101010101410101010141414141414101515160D131719 + 1D62636264D268686868D26867666666666666666666666563622A622D656566 + 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D + 1611113210101010101010101010103232323211321616101010101010101010 + 1010A2A2C3C40203030303031111111111113232321010101010101010101010 + 1010101010101010101010101410101010141414141414141414141515160D13 + 17171D6262632D676868686868686868676766666666666666666666662D2D65 + 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 + 1919171713120D0D0D1610101010101010101010323216103210101010101010 + 101010101010A2B4C3C402030303031103111111113210321010101010101010 + 1010101010101010101010101014141414141414141414141414141414141516 + 0D0D17171D6262622D6668686868686868686868676666666666666666666666 + 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 + 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 + 10101010101010101010A2B4B5C4020303031111111111321110101010101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 151016341317172A6262636668686868686868686868D2686766666666666666 + 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 + B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 + 1010101010101010101010101515A2B4C3C40203030311111111113210101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 1414141516161317172A62626265686868686868686868686868686867676666 + 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 + 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 + 101010101010101010101010151015153515B4A2C3C402030311111111321010 + 1010101010101010101010101414141414141414141414141414141414141414 + 14141414141515163417173F626263646868B368686868686868686868686868 + 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 + 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 + 10101010101010101010101010101010351414141414B4B4C3C4020311111111 + 1110101010101010101010101014141414141414141414141414141414141414 + 1414141414141414151634180F1C6262622D6768686868686868686868686868 + 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D + 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 + 1717121616101010101010101010101010101014351414141414A2B4B5C50203 + 0311111011101010101010101010101014141414141414141414141414141414 + 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 + 6868686868686868676666666666666666666666652D6363636363632D632D63 + 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 + 6262622A1D17171216101010101010101010151510101414141414141414B4B4 + C3C4020311111111101010101010101010101014141414141414141414141414 + 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 + 686868686868686868686868676666666666666666666666652D2D6363636363 + 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 + B3B3B3B36865622A622A17123410101510101510151415141514141414141414 + 1414B4B4C3C50211111110101010101010101010101414141414141414141414 + 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 + 68686868686868686868686868686868676666666666666666666666652D2D62 + 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 + 666666676868686868B36866636263130D151415151515101514151414141414 + 141414141414B4B4B5C502111111101010101010101010141414141414141414 + 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 + 68686868686868686868686868686868686867D2666666656666666666666666 + 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 + 66666666666666676667D268B368B368682A62130D1015101514101515141414 + 14141414141414141414B4B4B5C5021111101010101010101010141414141414 + 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 + 686868686868686868686868686868686868686867D267676565646565656566 + 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 + 6565656566656666666666666766676767686868682A2A130D10101414101414 + 141414141414141414141414141AB4B4B5C50211111010101010101010141414 + 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 + B368B368B36868686868686868686868686868686868D2D26767666664646464 + 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E + 64646464656565656566656666666666666766666766676868622A1316151414 + 141414141414141414141414141414141414B4B4B5C502111010101010101010 + 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 + 636568686868686868686868686868686868686868686868D267676666656464 + 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C + 2F2F632D2D646464656565656566666666666667666667676767676665622A34 + 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 + 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F + 6362626468686868686868686868686868686868686868686868686767676665 + 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C + 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 + 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 + 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 + 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 + 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 + 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D + 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 + B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 + 383838381A143C632D6868686868686868686868686868686868686868686867 + D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C + 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 + 2D622A626262621C131615141414141414141414141414141414141414141A1A + 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 + 3838383838383838381A3C622D68686868686868686868686868686868686868 + 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C + 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 + 656464622A622D656763621C3416351414141414141414141414141414141A14 + 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 + 383838383838383836363838381A3C632D686868686868686868686868686868 + 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 + 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C + 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 + 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 + 38383838383838383838363836363638381A3C632D6868686868686868686868 + 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 + E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 + 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 + 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A + 1A38383838383838383836383939393639393938381A3C638568686868686868 + 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 + F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 + 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 + 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 + 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 + 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 + EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 + 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 + 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 + 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 + 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C + 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 + 101414141414141A1A1A33383838383836393939393939393939393939393939 + 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 + F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 + 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E + 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 + C7C602101010141414141A1A1A1A383838383838363939393939393939393939 + 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF + F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 + 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 + 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A + 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 + 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE + EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 + DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 + 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A + 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 + 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE + FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 + E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 + E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A + 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 + 3939393939393939393B393939393939393841872D6868676767666564642E2F + 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 + F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 + F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 + 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 + 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 + 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 + F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD + FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 + 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 + 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 + 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC + DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 + 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 + 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 + 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 + 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 + F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 + 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 + 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 + E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB + 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE + EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 + C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B + 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF + F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD + DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 + E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 + 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B + 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 + F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 + E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 + E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 + 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B + 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 + F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB + FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A + 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B + 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC + F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 + F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 + F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A + 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 + 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF + DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 + F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 + 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A + 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 + 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 + 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 + FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE + EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 + 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 + 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE + 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 + E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 + E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C + 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 + 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 + 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 + F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 + E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA + E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 + B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D + 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF + EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 + E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA + EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 + 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D + 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 + F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 + E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 + DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 + 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D + 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE + FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 + E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 + 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B + 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC + F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 + F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 + E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 + 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B + 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF + DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 + F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED + EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 + 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 + 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 + 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 + E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE + EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 + 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 + 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE + 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 + E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC + F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C + 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 + 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D + 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 + EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA + E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 + C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 + 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB + FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA + EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 + 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 + 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 + E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC + FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 + E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D + 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 + 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 + E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 + FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 + E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B + 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 + 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB + E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB + E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE + FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B + 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D + 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 + F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 + F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 + 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B + 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB + FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB + EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 + F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B + 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 + 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE + FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB + EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA + FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B + 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 + 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 + 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB + E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 + FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE + E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 + C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 + 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF + F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 + DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E + 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F + 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED + EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 + E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 + 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 + 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 + F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 + F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 + 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 + 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC + DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 + E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D + 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E + 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF + DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 + E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B + 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 + 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 + FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF + EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D + 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B + 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE + 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 + F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 + FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B + 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B + 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 + 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA + E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 + F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 + E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 + B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C + 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 + E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 + F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 + E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E + 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 + 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 + E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 + F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 + EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A + 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C + 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 + E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 + F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 + E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 + 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 + 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 + E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC + DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 + F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 + 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 + 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA + E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 + DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF + EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D + 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E + 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F + F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 + DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF + EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 + 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 + 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D + 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC + F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 + EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B + 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D + 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 + 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB + ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 + F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE + 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 + 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 + 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A + 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 + F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 + DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 + 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 + 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 + 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 + F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE + F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D + 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 + 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 + E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC + ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 + F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 + 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 + 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 + 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE + EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 + F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 + 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C + 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B + 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 + E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF + F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 + 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 + 454556747D818A8A83838390899089898989898989897C907C83838379585858 + 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 + E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE + EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 + 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E + 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 + 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC + DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 + ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 + 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 + 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 + 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE + FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 + EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 + 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A + CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 + 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC + DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA + EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 + 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 + 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 + 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC + B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 + E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 + 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E + 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 + 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC + ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC + ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 + D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 + 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 + 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 + 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD + DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E + 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 + 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D + 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E + 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 + D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F + 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 + 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 + 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 + 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC + EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 + 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E + 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C + 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F + 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 + 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 + 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 + 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 + DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E + 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA + C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C + 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 + 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 + 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C + 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 + CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B + 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 + 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C + 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 + 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 + 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E + 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 + 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 + 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF + D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B + A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 + 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D + 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E + 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C + 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A + 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 + 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 + 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 + 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 + 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E + 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C + 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 + 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 + 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 + 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C + 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF + D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF + D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 + 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 + C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C + 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 + CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 + CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 + 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C + 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C + 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 + D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D + 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D + 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C + 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 + D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C + 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 + 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 + 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 + 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 + ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C + 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D + 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C + 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 + D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F + 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 + 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 + 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C + 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C + 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E + 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E + 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 + 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 + 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E + 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 + 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C + 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 + 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 + 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB + CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB + A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA + D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA + D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 + 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D + 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB + A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA + DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 + 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E + 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C + ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 + D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B + 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C + 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 + 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 + 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA + DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE + 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A + 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D + 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 + 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 + 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B + 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 + 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B + A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 + 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E + 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E + 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B + 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C + 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E + 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 + 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA + A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B + 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E + 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC + CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA + AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 + D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 + 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D + 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF + DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD + DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A + 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 + B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 + 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF + DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF + DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 + 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D + 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB + 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 + DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF + DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF + 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 + 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 + 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 + B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 + 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 + A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D + 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 + 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 + 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 + DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 + 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E + 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B + 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 + A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 + D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C + 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E + 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E + 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 + B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 + D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 + 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E + 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC + CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE + AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 + 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 + 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 + 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 + 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE + AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D + 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F + 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D + 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 + 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 + AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 + 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A + 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB + 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E + B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 + BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F + 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 + 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF + 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 + 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 + A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 + A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 + 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 + AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D + 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 + 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 + A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 + 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 + 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E + 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 + 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD + ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D + 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C + 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A + 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 + 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD + BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C + 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E + 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E + 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD + CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF + B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F + 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 + 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B + 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A + 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF + BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F + 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 + 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D + 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 + 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B + B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 + 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 + 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C + 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 + B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF + BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F + 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 + 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF + 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 + 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA + BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 + A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 + 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF + 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D + 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C + 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD + ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 + 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 + 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A + 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B + 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC + B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F + 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C + 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A + 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 + 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 + C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C + 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 + 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A + 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD + CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 + C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C + 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 + 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 + 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 + 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 + C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F + 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 + 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F + 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E + 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 + C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 + 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 + 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C + 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 + B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B + BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F + 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 + 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF + 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 + 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 + B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 + A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 + 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD + B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 + 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 + 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD + ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 + 545554545555505055595555505550505559555554205420206D4C4C716F7375 + 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A + 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C + 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC + BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 + 202054545454556E6E555055505550505055555055505555555554204F4F4F4C + 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 + 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 + 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 + C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 + 6D4F6D20205454555454545555555550505550505055505055506E5555545420 + 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 + 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC + CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 + C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C + 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 + 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E + 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 + 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 + C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F + 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 + 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 + 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D + 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 + C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 + 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 + 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 + 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 + B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD + BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 + 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 + 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE + 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A + 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 + B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 + A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 + 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B + B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 + 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 + 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD + ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 + 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 + 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A + 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 + 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC + BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 + 4F5520555555555550505050505059505050505950555055555554546E6D4F4C + 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 + 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 + 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 + BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D + 4F2020546E5555555455505555505950505050505050505050505550556E5554 + 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A + 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC + CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 + C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D + 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 + 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E + 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 + 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 + C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F + 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 + 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 + 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 + AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 + C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 + 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 + 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 + 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 + B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD + BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F + 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 + 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE + 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C + 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC + B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 + A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 + 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 + B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F + 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 + 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD + ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 + 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 + 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A + 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 + 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC + BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 + 54205455555555595059595050502450525050505050505555556E54204F6D4C + 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 + 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 + 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 + C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 + 2054545455555554555050595950505052507452742448505959505055556E54 + 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 + 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC + CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 + C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C + 4C2020205555545454546E555555555059505050247450272424245024595050 + 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A + 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 + 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 + C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F + 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 + 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B + 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB + 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 + C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 + 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 + 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 + 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E + 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD + B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F + 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 + 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 + AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D + 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC + B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 + A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 + 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 + B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F + 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 + 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD + ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 + 505050505959502474242424247452242424505059555454204F4C4C716F7375 + A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A + 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 + 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC + BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 + 55505555505050505050245924525224242424745250505050555554204F4C4C + 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 + 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 + 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 + BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 + 20205554556E5555595959502450505924245224502452522448245050505555 + 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 + 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC + CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 + C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F + 6D6D205420205420555455555050505024747424242424525252522424505050 + 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A + 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A + 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 + C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 + 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 + 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 + 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 + 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 + C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 + 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 + 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 + 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D + 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE + BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 + 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 + 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 + AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E + C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC + B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 + A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 + 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 + B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 + 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F + 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD + A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 + 505059505052522448521E214821522724242450505555544F204C4C6F6F737B + 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A + 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 + 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD + BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 + 55555055505050245024244848521E52481E48524852505050505555204F6D4C + 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 + 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A + 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC + BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E + 6E556E555050505050505059272424522748212752481E521E74245050555555 + 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 + 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC + CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 + C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F + 202054546E555555555555505050507424242427522152525221525248525C59 + 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 + 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 + 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 + BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C + 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 + 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 + 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 + 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF + BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F + 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 + 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 + 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C + 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE + BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 + 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 + 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 + 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D + CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA + BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 + A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 + 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 + B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 + 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 + 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 + A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 + 505024745252212174481E5622527452525274242450555555544F4C716F737B + 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A + 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 + 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD + ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 + 555050505274242424522121564B524852522224212124245950555554204F4C + 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 + 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 + 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD + BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 + 205555555950502424242452245252272752487474272152521E522424505555 + 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 + 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC + CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC + BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F + 545555545555555050505024502424521E5274564848562752212152521E5224 + 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 + 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F + 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF + BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C + 6D4F20206E545455555550505024245050747452747448564B744856524B5622 + 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A + 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A + 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF + BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F + 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 + 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C + 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 + 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE + BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B + 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 + 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC + AB89815957535E492877777760888888515188886060827A5E919495989C9D9D + 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA + 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 + A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 + 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 + B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 + 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D + 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 + A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 + 27484821484856527452222174484B524852487424505055556D4F4C716F757B + A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A + 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 + 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD + ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 + 50502424245227525652525248484B22224B5674522148742424505555544F4C + 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 + 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 + 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD + BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 + 5559505024747424525221485221214B22214A22224822275648525252505555 + 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 + 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC + CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD + BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 + 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 + 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 + 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 + 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD + BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F + 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 + 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A + 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D + 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE + BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F + 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 + 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C + 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 + 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF + BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 + 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E + 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 + 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C + 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 + AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 + A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E + 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 + B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 + 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C + 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 + A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 + 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 + A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A + 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 + 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF + ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 + 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F + 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 + 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 + 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD + AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 + 5024507424525252522127524B222223224B4B22234D222222484B4852505050 + 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 + 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC + CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE + BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 + 5555505559505050244852485622272122221E4A575722222257222256224B1E + 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 + 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C + 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE + BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E + 545454555555555050502424745252524822221E22224A22224A234A4B232222 + 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 + 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C + 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE + BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 + 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 + 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 + 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A + 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE + AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 + 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A + 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B + 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 + 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 + AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 + 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 + 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 + 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 + 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 + 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 + A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 + 224A4A22225622222323226C7023232223564A48482450505555204F716F757F + A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E + 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A + 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 + B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 + 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F + 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 + 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 + 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 + A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 + 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 + 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 + 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC + CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE + AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 + 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 + 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 + 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 + 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE + AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E + 545555555550505024244821221E52564A2256232222232323235723564B5723 + 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 + 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C + 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE + AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F + 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 + 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 + 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E + 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB + B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 + 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 + 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C + 835F27267E7A777788888585858686868685868588827A7E9194959898989896 + 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 + A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 + 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D + 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 + BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 + 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 + 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 + A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 + 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F + A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E + 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 + 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB + A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 + 564A56232356564D232329232323575D572257222223221E74524850556E544F + 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 + 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 + 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 + B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 + 52565648224A22232322222323572323232323572323292223224A224B482450 + 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 + 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB + CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 + B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 + 505252522722272221224D57574A2323235723292323235B5B29232357572222 + 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 + 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 + 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 + B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 + 5050595950247474222152224B4A225622232223232325235323252323232329 + 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 + 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 + 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 + B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F + 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 + 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E + 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C + 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC + BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F + 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 + 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 + 815C535E7A82608885858686868787868686868888827A918494959696959090 + 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 + ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B + 758C736F7171584F545550555050597452527474524B2222704D22222357235B + 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B + AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 + 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 + 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA + 7F808BA5A573897C71784F545455555550592474745252522222222222222323 + 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 + A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E + 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 + 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC + A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 + 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F + 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 + 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 + 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B + 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 + 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 + 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB + CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB + ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 + 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 + 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 + 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 + 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB + ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 + 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 + 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 + 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 + 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC + BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E + 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B + 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 + 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 + 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA + BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 + 714F796E6E505059747452212756224A22222223232229252353235B5B53535B + 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A + 5F575E7A286088858686878787878787878686858860825E6193939595938A8D + 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 + B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 + 6F7C6F717879546E5550505074525656225622225623235723232323535B535B + 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE + 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 + 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E + 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 + 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 + 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 + A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 + 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 + 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 + A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 + 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 + 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 + 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 + 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA + AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 + 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 + 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 + 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB + CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA + BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 + 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 + 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 + 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B + 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA + BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 + 5674222223224B572357235B5B295B53535B2626262626252626262626262626 + 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 + 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 + 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA + BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D + 50747452525222224A4B232323232323535B5B5B262626262626262626262626 + 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 + 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 + 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 + A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 + 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 + 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E + 765E7A827788858687878787878787878787868588827E918F949393938F8F5C + 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A + 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C + 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 + 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE + AC8B897D765E7E827788858687878787878787878787868560827E916194938D + 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A + 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 + B88C7C897C787879545450507448485648222323235753535B5B23255B262626 + 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 + A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 + 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 + 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB + A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 + 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 + 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 + 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 + 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB + A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 + 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 + 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 + 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB + CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 + A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 + 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 + 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 + 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 + 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 + 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 + 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 + 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 + 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B + 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 + 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 + 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 + 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 + 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B + 5B5B5B5B2626265B2626C2CBCBCB} + WaterMark.Image.Layout = ilTile + object Label1: TLabel + Left = 176 + Top = 312 + Width = 186 + Height = 13 + Caption = 'Haga click en Siguiente para continuar.' + end + object Label3: TLabel + Left = 168 + Top = 72 + Width = 346 + Height = 32 + Caption = + 'Este asistente le ayudar'#225' a imprimir el n'#250'mero de etiquetas '#13#10'qu' + + 'e desee para el montaje de:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblNombreCliente: TLabel + Left = 169 + Top = 112 + Width = 353 + Height = 49 + Alignment = taCenter + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + Layout = tlCenter + end + end + object JvWizardInteriorPage1: TJvWizardInteriorPage + Header.Title.Color = clNone + Header.Title.Text = 'Opciones de impresi'#243'n' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -16 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'Indique el n'#250'mero de etiquetas a imprimir y la impresora a utili' + + 'zar.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.AnchorPlacement = 8 + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -11 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + object Label2: TLabel + Left = 24 + Top = 96 + Width = 152 + Height = 13 + Caption = 'N'#250'mero de etiquetas a imprimir:' + end + object Label4: TLabel + Left = 24 + Top = 144 + Width = 146 + Height = 13 + Caption = #191'Qu'#233' impresora desea utilizar?' + end + object Label5: TLabel + Left = 248 + Top = 96 + Width = 259 + Height = 13 + Caption = '(En cada hoja se imprimir'#225'n como m'#225'ximo 4 etiquetas)' + end + object edtLabelCount: TcxSpinEdit + Left = 182 + Top = 92 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Value = 4 + Width = 57 + end + object cbImpresoras: TcxComboBox + Left = 24 + Top = 161 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = 'cbImpresoras' + Width = 273 + end + end + object JvWizardWelcomePage2: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Fin del asistente de impresi'#243'n' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = ' ' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + VisibleButtons = [bkBack, bkFinish] + WaterMark.Image.Picture.Data = { + 07544269746D617082960100424D82960100000000003204000028000000A400 + 000074020000010008000000000050920100120B0000120B0000FF000000FF00 + 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 + 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 + 07005B2509005923090057230900552309005D270B005B250B0059250B005222 + 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C + 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 + 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 + 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 + 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 + 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 + 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A + 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 + 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 + 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F + 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F + 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C + 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D + 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 + 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 + 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E + 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F + 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 + 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F + 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F + 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A + 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 + 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 + C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED + DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC + FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF + DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 + F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 + B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020203110311110303030303030303030303030303030303030303 + 0303030303030303030303030303030303111103111111111111111111321132 + 3232321132111111111111111111111111111111111111111111111111111111 + 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E + 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031111111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111031111111111111111321616161616321111111103030303030E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1111111103031111111111111111111111321616161632111111110303030303 + 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111110111111111111 + 1111111111111111030311111103111111111111113216161616321111110303 + 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111111111111111111111111111110303111111111111111132161616163211 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311030311111111111111323216 + 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311110303031111111111111111 + 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111111111111111111111111111111103110303030303031111 + 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111111111111111111111111111110303030303 + 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111103 + 0303030303030311111111111111113232111111111103030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111030303030303030311111111111111113232111111111103030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311111111111111111111111111111111111111111111111111111111 + 1111111111031103030303030303111111111111111111323211111111110303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303031111111111111111111111111111111111111111111111111111 + 1111111111111111110303030303030303030303111111111111111111111111 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303111111111111111111111111111111111111111111 + 1111111111111111111111111103030303030303030303031111111111111111 + 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031103111111111111111111111111111111 + 1111111111111111111111111111031111030303030303030303030311111111 + 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111103030303030303030303030303 + 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111111111111111111031103030303030303 + 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111103031103030303 + 0303030303030303031111111111111111111111110303030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111111111111110303 + 030303030303030303030303031111111111111111111111110303030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111030303030303030303030303030303031111111111111111111111030303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111103030303030303030303030303030303030311111111111111111111 + 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303111111111111111111111111111111111111 + 1111111111111111030303030303030303030303030303030303111111111111 + 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111110311030303030303030303030303030303030303031111 + 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111030303030303030303030303030303030303 + 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111110303030303030303030303030303 + 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111103030303030303030303 + 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303111111111111111111111111111111111111111111110303030303030303 + 0303030303030303030303030303031111111111111111110303030303030E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111110311030303 + 0303030303030303030303030303030303030311111111111111110303030303 + 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030311110303111111111111111111111111111111111103 + 0303030303030303030303030303030303030303030303031111111111110303 + 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 0311110303030303030303030303030303030303030303030303030303111111 + 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111111111111111111 + 1111111111111103030303030303030303030303030303030303030303030303 + 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031103111111111111 + 1111111111111111111111030303030303030303030303030303030303030303 + 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030311031111 + 0311111111111111031103110303030303030303030303030303030303030303 + 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303110303030303 + 0303111111111111111111111111111103030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303110311110311110311111111111103110303030303030303030303 + 03030303030303030303030303030303030303030303030303030303030E0E0E + 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111030303030303030303 + 0303030303030303030303030303030303030303030311110303030303030303 + 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111110311111103110303030303 + 0303030303030303030303030303030303030303030303030311111111110303 + 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111103111103 + 0303030303030303030303030303030303030303030303030303030303031111 + 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303110303031111111111 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 1111031103030303030303030303030303030303030303030303030303030303 + 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311030303030303030303030303030303030303030303030303030303 + 03030303030303030303111103030303030303030303030E0E03030E030E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303110311030303030303030303030303 + 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111111111110303030303030303 + 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311030311110303030303030303 + 0303030303030303030303030303030303030303031111111111111103030303 + 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303110303031103110303030303 + 0303030303030303030303030303030303030303030303030311111111111103 + 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111031103030303111111111111 + 0303030303030303030303030303030303030303030303030303030303031111 + 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111111110311 + 1111031103030303030303030303030303030303030303030303030303030311 + 111111111111111103030303030303030303030303030303030303030303030E + 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031103030303030303030311110311 + 1103111111030303030303030303030303030303030303030303030303030303 + 0303031111111111111111110303030303030303030303030303030303030303 + 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 + 03036A6AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311110311110311031103031103111111030303030303030303030303030303 + 0311030303111111111111111111111111110303030303030303030303030303 + 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E + 0303030303036A6AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303110303030303111103110303031111111103030303030303030303030303 + 0303030303030303030311111111111111111111111103030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036A6AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030311110303111111111103030303030303030303 + 0303030303030303030303030303111111111111111111111103030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303036A6AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031111111111111111110303110311111111 + 0303111111030303030303030303030303110311111111111111111111110303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303036AA2B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111030311030303030303030303111111111111111111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303030303030303036A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111110303031103030303030303031111111111111111 + 1111111111030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303036A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311031111111111111111111111111111 + 1111111111111111111111111111111111111103031103030311031103111111 + 1111113211111111111111030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303036A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111111111103111103031103031111 + 1111111111111132111111111111110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03036AA2B4C40203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1103111111111111111111113211111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303036AA2B4C402030303030303030303030303030303030303030303 + 0303030303030303110303030303030303030303030303030303030303111111 + 1111111111111111111110113232111110111132111111111010111111111111 + 1111111111111111111111113232113210321011111111111111030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036AA2B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303031103111111 + 1111111111111110111111101010103210101111111010111010101032111111 + 1111111111111111111111111111111111323210101010321111111103030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303A2A2B4C40203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111110101010101010321010101010101010101010101010 + 1010101010111111111111111111111111111111113210321010101111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303031230A2A2B4C402030303030303030303 + 0303030303030303030303030303030303030303030303030303030303031111 + 1111111111111111101111111010101010101010101010101010101010101010 + 10101010101010111010101011111111111110111110113211110D1111113232 + 1011111111110311111111111103110303030303030303030303030303030303 + 03030303030303030303030303030303030303030303A2A2B4C4020303030303 + 0303030303030303030303030303030303030303030303030303111111111111 + 1111111111111111111111111010111010101010101010101010101010101010 + 1032321111113232101010101010101010101010113210323211111112121313 + 0D340D1111111111111111111111111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030311110311A2A2B4C40203 + 0303030303030303030303030303030303030303030303030303031111111111 + 1111111111111111111111111111111011111010101010101010101010101010 + 10101032101112120D0D11111111321010101010101010321010103211111213 + 0F0F0F171713130D121111111111111111111111111111111111110303030303 + 030303030303030303030303030303030303030303030303030311111111A2A2 + B4C4020303030303030303030303030303030303030303110311111111111111 + 1111111111111111111111111111111110101010101010101010101010101010 + 10101010101010160D121213130E13130D0D1111323210101010101010321111 + 12130F0F17021917191717171313121212111111111111111111111111111111 + 1103030303030303030303030303030303030303030303031103030311111111 + 1111A2B4B4C40203030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111010101010101010101010101010101010 + 1010101010101010101616121317170F1719170F0F1312121111113232101032 + 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 + 1111111111110311111103030303110311110303030303030311030311111111 + 111111111111A2A2B4C402030303030303030303030303030303111111111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 + 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 + 1011101011111111111111111111110303111111111111031111111111110311 + 11111111111111111132A2A2C3C4020303030303030303031103030303111111 + 1111111111111111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010160D12131719192A62626262622A1D191919 + 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 + 1212111132101010111011111111111111111111111111111111111111111111 + 1111111111111111111111113232A2A2C3C40203030303030303030311111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 10101010101010101010101010101010161612131717191D6262622D66626262 + 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D + 190219020F0F1312111132101010103232323211111111111111111111111111 + 111111111111111111111111111132323216A2A2C3C402030303030303030311 + 1111111111111111111111111132111010101010101010101010101010101010 + 101010101010101010101010101010101010101012121317191D6262622D67D2 + 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 + 6441622A2A2A191902020F131312111132101010103211111111111111111111 + 11111111111111111111111111111111323232161616A2A2C3C4020303030303 + 0303031111111111111111321132321032101010101010101010101010101010 + 1010101010101010101010101010101014141414101532121317171962626263 + 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 + B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 + 1111111111111111111111111111111111113232323216101010A2B4B4C40203 + 0303030303031111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010101010101414141010101634131717192A62 + 626265D2686868686766666666666666652D63626262622A622A6465669F6566 + 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 + 101032323232323232323232321132113211323232321010101010101010A2A2 + C3C4020303030303031111111111111132101010101010101010101010101010 + 101010101010101010101010101410101010141414141414101515160D131719 + 1D62636264D268686868D26867666666666666666666666563622A622D656566 + 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D + 1611113210101010101010101010103232323211321616101010101010101010 + 1010A2A2C3C40203030303031111111111113232321010101010101010101010 + 1010101010101010101010101410101010141414141414141414141515160D13 + 17171D6262632D676868686868686868676766666666666666666666662D2D65 + 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 + 1919171713120D0D0D1610101010101010101010323216103210101010101010 + 101010101010A2B4C3C402030303031103111111113210321010101010101010 + 1010101010101010101010101014141414141414141414141414141414141516 + 0D0D17171D6262622D6668686868686868686868676666666666666666666666 + 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 + 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 + 10101010101010101010A2B4B5C4020303031111111111321110101010101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 151016341317172A6262636668686868686868686868D2686766666666666666 + 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 + B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 + 1010101010101010101010101515A2B4C3C40203030311111111113210101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 1414141516161317172A62626265686868686868686868686868686867676666 + 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 + 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 + 101010101010101010101010151015153515B4A2C3C402030311111111321010 + 1010101010101010101010101414141414141414141414141414141414141414 + 14141414141515163417173F626263646868B368686868686868686868686868 + 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 + 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 + 10101010101010101010101010101010351414141414B4B4C3C4020311111111 + 1110101010101010101010101014141414141414141414141414141414141414 + 1414141414141414151634180F1C6262622D6768686868686868686868686868 + 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D + 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 + 1717121616101010101010101010101010101014351414141414A2B4B5C50203 + 0311111011101010101010101010101014141414141414141414141414141414 + 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 + 6868686868686868676666666666666666666666652D6363636363632D632D63 + 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 + 6262622A1D17171216101010101010101010151510101414141414141414B4B4 + C3C4020311111111101010101010101010101014141414141414141414141414 + 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 + 686868686868686868686868676666666666666666666666652D2D6363636363 + 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 + B3B3B3B36865622A622A17123410101510101510151415141514141414141414 + 1414B4B4C3C50211111110101010101010101010101414141414141414141414 + 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 + 68686868686868686868686868686868676666666666666666666666652D2D62 + 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 + 666666676868686868B36866636263130D151415151515101514151414141414 + 141414141414B4B4B5C502111111101010101010101010141414141414141414 + 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 + 68686868686868686868686868686868686867D2666666656666666666666666 + 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 + 66666666666666676667D268B368B368682A62130D1015101514101515141414 + 14141414141414141414B4B4B5C5021111101010101010101010141414141414 + 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 + 686868686868686868686868686868686868686867D267676565646565656566 + 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 + 6565656566656666666666666766676767686868682A2A130D10101414101414 + 141414141414141414141414141AB4B4B5C50211111010101010101010141414 + 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 + B368B368B36868686868686868686868686868686868D2D26767666664646464 + 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E + 64646464656565656566656666666666666766666766676868622A1316151414 + 141414141414141414141414141414141414B4B4B5C502111010101010101010 + 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 + 636568686868686868686868686868686868686868686868D267676666656464 + 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C + 2F2F632D2D646464656565656566666666666667666667676767676665622A34 + 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 + 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F + 6362626468686868686868686868686868686868686868686868686767676665 + 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C + 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 + 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 + 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 + 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 + 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 + 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D + 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 + B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 + 383838381A143C632D6868686868686868686868686868686868686868686867 + D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C + 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 + 2D622A626262621C131615141414141414141414141414141414141414141A1A + 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 + 3838383838383838381A3C622D68686868686868686868686868686868686868 + 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C + 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 + 656464622A622D656763621C3416351414141414141414141414141414141A14 + 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 + 383838383838383836363838381A3C632D686868686868686868686868686868 + 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 + 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C + 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 + 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 + 38383838383838383838363836363638381A3C632D6868686868686868686868 + 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 + E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 + 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 + 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A + 1A38383838383838383836383939393639393938381A3C638568686868686868 + 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 + F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 + 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 + 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 + 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 + 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 + EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 + 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 + 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 + 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 + 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C + 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 + 101414141414141A1A1A33383838383836393939393939393939393939393939 + 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 + F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 + 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E + 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 + C7C602101010141414141A1A1A1A383838383838363939393939393939393939 + 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF + F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 + 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 + 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A + 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 + 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE + EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 + DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 + 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A + 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 + 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE + FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 + E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 + E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A + 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 + 3939393939393939393B393939393939393841872D6868676767666564642E2F + 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 + F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 + F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 + 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 + 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 + 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 + F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD + FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 + 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 + 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 + 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC + DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 + 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 + 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 + 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 + 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 + F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 + 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 + 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 + E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB + 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE + EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 + C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B + 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF + F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD + DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 + E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 + 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B + 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 + F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 + E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 + E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 + 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B + 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 + F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB + FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A + 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B + 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC + F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 + F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 + F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A + 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 + 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF + DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 + F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 + 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A + 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 + 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 + 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 + FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE + EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 + 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 + 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE + 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 + E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 + E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C + 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 + 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 + 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 + F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 + E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA + E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 + B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D + 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF + EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 + E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA + EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 + 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D + 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 + F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 + E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 + DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 + 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D + 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE + FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 + E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 + 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B + 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC + F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 + F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 + E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 + 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B + 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF + DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 + F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED + EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 + 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 + 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 + 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 + E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE + EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 + 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 + 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE + 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 + E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC + F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C + 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 + 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D + 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 + EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA + E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 + C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 + 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB + FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA + EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 + 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 + 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 + E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC + FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 + E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D + 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 + 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 + E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 + FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 + E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B + 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 + 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB + E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB + E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE + FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B + 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D + 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 + F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 + F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 + 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B + 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB + FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB + EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 + F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B + 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 + 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE + FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB + EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA + FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B + 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 + 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 + 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB + E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 + FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE + E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 + C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 + 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF + F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 + DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E + 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F + 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED + EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 + E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 + 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 + 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 + F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 + F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 + 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 + 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC + DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 + E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D + 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E + 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF + DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 + E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B + 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 + 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 + FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF + EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D + 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B + 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE + 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 + F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 + FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B + 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B + 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 + 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA + E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 + F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 + E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 + B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C + 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 + E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 + F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 + E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E + 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 + 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 + E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 + F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 + EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A + 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C + 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 + E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 + F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 + E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 + 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 + 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 + E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC + DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 + F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 + 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 + 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA + E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 + DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF + EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D + 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E + 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F + F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 + DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF + EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 + 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 + 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D + 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC + F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 + EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B + 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D + 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 + 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB + ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 + F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE + 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 + 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 + 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A + 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 + F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 + DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 + 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 + 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 + 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 + F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE + F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D + 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 + 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 + E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC + ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 + F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 + 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 + 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 + 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE + EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 + F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 + 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C + 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B + 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 + E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF + F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 + 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 + 454556747D818A8A83838390899089898989898989897C907C83838379585858 + 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 + E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE + EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 + 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E + 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 + 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC + DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 + ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 + 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 + 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 + 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE + FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 + EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 + 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A + CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 + 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC + DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA + EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 + 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 + 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 + 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC + B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 + E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 + 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E + 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 + 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC + ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC + ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 + D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 + 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 + 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 + 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD + DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E + 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 + 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D + 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E + 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 + D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F + 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 + 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 + 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 + 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC + EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 + 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E + 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C + 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F + 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 + 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 + 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 + 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 + DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E + 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA + C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C + 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 + 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 + 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C + 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 + CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B + 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 + 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C + 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 + 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 + 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E + 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 + 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 + 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF + D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B + A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 + 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D + 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E + 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C + 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A + 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 + 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 + 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 + 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 + 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E + 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C + 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 + 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 + 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 + 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C + 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF + D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF + D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 + 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 + C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C + 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 + CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 + CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 + 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C + 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C + 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 + D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D + 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D + 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C + 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 + D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C + 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 + 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 + 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 + 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 + ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C + 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D + 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C + 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 + D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F + 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 + 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 + 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C + 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C + 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E + 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E + 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 + 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 + 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E + 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 + 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C + 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 + 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 + 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB + CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB + A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA + D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA + D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 + 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D + 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB + A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA + DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 + 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E + 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C + ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 + D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B + 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C + 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 + 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 + 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA + DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE + 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A + 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D + 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 + 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 + 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B + 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 + 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B + A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 + 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E + 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E + 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B + 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C + 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E + 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 + 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA + A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B + 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E + 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC + CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA + AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 + D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 + 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D + 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF + DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD + DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A + 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 + B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 + 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF + DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF + DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 + 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D + 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB + 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 + DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF + DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF + 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 + 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 + 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 + B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 + 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 + A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D + 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 + 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 + 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 + DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 + 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E + 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B + 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 + A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 + D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C + 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E + 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E + 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 + B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 + D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 + 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E + 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC + CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE + AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 + 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 + 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 + 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 + 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE + AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D + 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F + 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D + 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 + 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 + AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 + 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A + 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB + 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E + B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 + BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F + 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 + 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF + 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 + 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 + A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 + A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 + 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 + AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D + 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 + 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 + A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 + 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 + 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E + 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 + 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD + ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D + 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C + 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A + 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 + 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD + BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C + 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E + 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E + 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD + CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF + B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F + 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 + 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B + 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A + 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF + BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F + 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 + 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D + 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 + 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B + B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 + 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 + 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C + 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 + B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF + BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F + 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 + 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF + 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 + 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA + BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 + A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 + 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF + 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D + 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C + 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD + ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 + 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 + 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A + 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B + 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC + B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F + 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C + 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A + 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 + 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 + C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C + 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 + 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A + 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD + CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 + C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C + 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 + 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 + 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 + 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 + C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F + 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 + 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F + 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E + 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 + C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 + 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 + 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C + 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 + B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B + BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F + 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 + 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF + 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 + 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 + B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 + A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 + 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD + B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 + 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 + 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD + ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 + 545554545555505055595555505550505559555554205420206D4C4C716F7375 + 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A + 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C + 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC + BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 + 202054545454556E6E555055505550505055555055505555555554204F4F4F4C + 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 + 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 + 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 + C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 + 6D4F6D20205454555454545555555550505550505055505055506E5555545420 + 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 + 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC + CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 + C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C + 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 + 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E + 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 + 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 + C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F + 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 + 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 + 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D + 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 + C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 + 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 + 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 + 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 + B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD + BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 + 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 + 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE + 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A + 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 + B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 + A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 + 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B + B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 + 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 + 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD + ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 + 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 + 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A + 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 + 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC + BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 + 4F5520555555555550505050505059505050505950555055555554546E6D4F4C + 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 + 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 + 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 + BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D + 4F2020546E5555555455505555505950505050505050505050505550556E5554 + 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A + 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC + CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 + C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D + 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 + 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E + 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 + 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 + C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F + 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 + 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 + 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 + AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 + C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 + 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 + 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 + 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 + B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD + BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F + 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 + 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE + 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C + 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC + B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 + A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 + 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 + B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F + 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 + 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD + ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 + 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 + 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A + 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 + 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC + BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 + 54205455555555595059595050502450525050505050505555556E54204F6D4C + 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 + 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 + 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 + C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 + 2054545455555554555050595950505052507452742448505959505055556E54 + 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 + 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC + CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 + C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C + 4C2020205555545454546E555555555059505050247450272424245024595050 + 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A + 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 + 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 + C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F + 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 + 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B + 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB + 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 + C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 + 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 + 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 + 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E + 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD + B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F + 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 + 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 + AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D + 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC + B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 + A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 + 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 + B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F + 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 + 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD + ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 + 505050505959502474242424247452242424505059555454204F4C4C716F7375 + A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A + 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 + 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC + BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 + 55505555505050505050245924525224242424745250505050555554204F4C4C + 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 + 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 + 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 + BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 + 20205554556E5555595959502450505924245224502452522448245050505555 + 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 + 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC + CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 + C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F + 6D6D205420205420555455555050505024747424242424525252522424505050 + 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A + 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A + 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 + C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 + 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 + 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 + 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 + 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 + C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 + 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 + 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 + 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D + 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE + BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 + 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 + 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 + AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E + C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC + B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 + A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 + 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 + B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 + 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F + 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD + A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 + 505059505052522448521E214821522724242450505555544F204C4C6F6F737B + 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A + 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 + 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD + BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 + 55555055505050245024244848521E52481E48524852505050505555204F6D4C + 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 + 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A + 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC + BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E + 6E556E555050505050505059272424522748212752481E521E74245050555555 + 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 + 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC + CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 + C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F + 202054546E555555555555505050507424242427522152525221525248525C59 + 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 + 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 + 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 + BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C + 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 + 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 + 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 + 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF + BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F + 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 + 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 + 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C + 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE + BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 + 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 + 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 + 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D + CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA + BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 + A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 + 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 + B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 + 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 + 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 + A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 + 505024745252212174481E5622527452525274242450555555544F4C716F737B + 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A + 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 + 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD + ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 + 555050505274242424522121564B524852522224212124245950555554204F4C + 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 + 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 + 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD + BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 + 205555555950502424242452245252272752487474272152521E522424505555 + 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 + 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC + CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC + BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F + 545555545555555050505024502424521E5274564848562752212152521E5224 + 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 + 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F + 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF + BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C + 6D4F20206E545455555550505024245050747452747448564B744856524B5622 + 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A + 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A + 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF + BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F + 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 + 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C + 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 + 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE + BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B + 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 + 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC + AB89815957535E492877777760888888515188886060827A5E919495989C9D9D + 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA + 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 + A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 + 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 + B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 + 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D + 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 + A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 + 27484821484856527452222174484B524852487424505055556D4F4C716F757B + A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A + 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 + 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD + ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 + 50502424245227525652525248484B22224B5674522148742424505555544F4C + 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 + 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 + 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD + BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 + 5559505024747424525221485221214B22214A22224822275648525252505555 + 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 + 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC + CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD + BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 + 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 + 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 + 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 + 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD + BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F + 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 + 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A + 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D + 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE + BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F + 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 + 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C + 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 + 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF + BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 + 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E + 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 + 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C + 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 + AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 + A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E + 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 + B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 + 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C + 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 + A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 + 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 + A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A + 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 + 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF + ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 + 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F + 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 + 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 + 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD + AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 + 5024507424525252522127524B222223224B4B22234D222222484B4852505050 + 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 + 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC + CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE + BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 + 5555505559505050244852485622272122221E4A575722222257222256224B1E + 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 + 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C + 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE + BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E + 545454555555555050502424745252524822221E22224A22224A234A4B232222 + 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 + 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C + 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE + BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 + 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 + 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 + 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A + 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE + AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 + 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A + 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B + 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 + 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 + AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 + 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 + 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 + 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 + 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 + 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 + A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 + 224A4A22225622222323226C7023232223564A48482450505555204F716F757F + A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E + 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A + 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 + B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 + 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F + 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 + 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 + 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 + A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 + 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 + 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 + 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC + CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE + AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 + 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 + 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 + 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 + 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE + AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E + 545555555550505024244821221E52564A2256232222232323235723564B5723 + 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 + 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C + 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE + AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F + 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 + 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 + 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E + 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB + B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 + 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 + 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C + 835F27267E7A777788888585858686868685868588827A7E9194959898989896 + 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 + A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 + 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D + 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 + BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 + 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 + 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 + A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 + 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F + A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E + 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 + 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB + A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 + 564A56232356564D232329232323575D572257222223221E74524850556E544F + 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 + 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 + 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 + B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 + 52565648224A22232322222323572323232323572323292223224A224B482450 + 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 + 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB + CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 + B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 + 505252522722272221224D57574A2323235723292323235B5B29232357572222 + 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 + 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 + 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 + B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 + 5050595950247474222152224B4A225622232223232325235323252323232329 + 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 + 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 + 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 + B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F + 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 + 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E + 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C + 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC + BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F + 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 + 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 + 815C535E7A82608885858686868787868686868888827A918494959696959090 + 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 + ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B + 758C736F7171584F545550555050597452527474524B2222704D22222357235B + 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B + AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 + 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 + 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA + 7F808BA5A573897C71784F545455555550592474745252522222222222222323 + 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 + A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E + 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 + 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC + A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 + 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F + 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 + 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 + 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B + 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 + 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 + 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB + CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB + ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 + 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 + 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 + 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 + 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB + ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 + 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 + 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 + 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 + 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC + BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E + 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B + 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 + 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 + 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA + BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 + 714F796E6E505059747452212756224A22222223232229252353235B5B53535B + 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A + 5F575E7A286088858686878787878787878686858860825E6193939595938A8D + 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 + B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 + 6F7C6F717879546E5550505074525656225622225623235723232323535B535B + 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE + 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 + 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E + 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 + 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 + 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 + A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 + 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 + 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 + A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 + 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 + 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 + 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 + 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA + AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 + 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 + 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 + 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB + CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA + BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 + 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 + 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 + 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B + 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA + BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 + 5674222223224B572357235B5B295B53535B2626262626252626262626262626 + 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 + 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 + 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA + BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D + 50747452525222224A4B232323232323535B5B5B262626262626262626262626 + 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 + 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 + 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 + A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 + 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 + 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E + 765E7A827788858687878787878787878787868588827E918F949393938F8F5C + 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A + 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C + 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 + 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE + AC8B897D765E7E827788858687878787878787878787868560827E916194938D + 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A + 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 + B88C7C897C787879545450507448485648222323235753535B5B23255B262626 + 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 + A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 + 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 + 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB + A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 + 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 + 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 + 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 + 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB + A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 + 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 + 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 + 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB + CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 + A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 + 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 + 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 + 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 + 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 + 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 + 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 + 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 + 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B + 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 + 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 + 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 + 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 + 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B + 5B5B5B5B2626265B2626C2CBCBCB} + WaterMark.Image.Layout = ilTile + object Label6: TLabel + Left = 176 + Top = 312 + Width = 219 + Height = 13 + Caption = 'Haga click en Finalizar para salir del asistente.' + end + object Label7: TLabel + Left = 168 + Top = 88 + Width = 155 + Height = 16 + Caption = 'Por favor, elija una opci'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object bImprimir: TButton + Left = 352 + Top = 112 + Width = 150 + Height = 25 + Caption = '&Imprimir las etiquetas' + TabOrder = 0 + OnClick = bImprimirClick + end + object Button2: TButton + Left = 184 + Top = 112 + Width = 150 + Height = 25 + Caption = '&Vista previa de las etiquetas' + TabOrder = 1 + OnClick = Button2Click + end + end + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas b/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas new file mode 100644 index 0000000..cdd1671 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas @@ -0,0 +1,99 @@ +unit uAsistenteEtiquetasMontajes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + uBizMontajes, cxGraphics, cxDropDownEdit, uCustomView, uViewBase, + uViewPreview; + +type + TfAsistenteEtiquetasMontajes = class(TForm) + JvWizard1: TJvWizard; + JvWizardWelcomePage1: TJvWizardWelcomePage; + Label1: TLabel; + JvWizardInteriorPage1: TJvWizardInteriorPage; + edtLabelCount: TcxSpinEdit; + Label2: TLabel; + Label3: TLabel; + lblNombreCliente: TLabel; + Label4: TLabel; + cbImpresoras: TcxComboBox; + Label5: TLabel; + JvWizardWelcomePage2: TJvWizardWelcomePage; + Label6: TLabel; + Label7: TLabel; + bImprimir: TButton; + Button2: TButton; + procedure FormCreate(Sender: TObject); + procedure bImprimirClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure JvWizard1FinishButtonClick(Sender: TObject); + private + FMontaje : IBizMontaje; + procedure SetMontaje(const Value: IBizMontaje); + public + property Montaje : IBizMontaje read FMontaje write SetMontaje; + end; + + procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); + +implementation + +uses Printers; + +{$R *.dfm} + +procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); +var + fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes; +begin + if not Assigned(AMontaje) then + raise Exception.Create('Montaje no asignado (VerAsistenteEtiquetasMontajes)'); + + with TfAsistenteEtiquetasMontajes.Create(NIL) do + try + Montaje := AMontaje; + ShowModal; + finally + Free; + end; +end; + + +procedure TfAsistenteEtiquetasMontajes.FormCreate(Sender: TObject); +begin + cbImpresoras.Properties.Items := Printer.Printers; + Printer.PrinterIndex := -1; + cbImpresoras.Text := Printer.Printers.Strings[Printer.PrinterIndex]; +end; + +procedure TfAsistenteEtiquetasMontajes.bImprimirClick(Sender: TObject); +begin + FMontaje.LabelCount := edtLabelCount.Value; + FMontaje.PrintLabels; +end; + +procedure TfAsistenteEtiquetasMontajes.SetMontaje( + const Value: IBizMontaje); +begin + FMontaje := Value; + if Assigned(FMontaje) then + lblNombreCliente.Caption := FMontaje.Cliente.NOMBRE; +end; + +procedure TfAsistenteEtiquetasMontajes.Button2Click(Sender: TObject); +begin + FMontaje.LabelCount := edtLabelCount.Value; + FMontaje.PreviewLabels; +end; + +procedure TfAsistenteEtiquetasMontajes.JvWizard1FinishButtonClick( + Sender: TObject); +begin + Close; +end; + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas b/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas new file mode 100644 index 0000000..5fd37ac --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas @@ -0,0 +1,258 @@ +unit uCargarFicheros; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, + uROClient, uROClientIntf, uRORemoteService, uROBinMessage, + uROServiceComponent, uROWinInetHttpChannel, Forms, + VARELA_Intf, uROTypes, uROEventRepository; + +type + TCargarFicherosThread = class(TThread) + private + FROMessage: TROBinMessage; + fROChannel: TROWinInetHTTPChannel; + fRORemoteService: TRORemoteService; + FEventReceiver : TROEventReceiver; + + fOnSuccess: TNotifyEvent; + fOnError: TNotifyEvent; + + fLoadOK: Boolean; + fTimeStarted: TDateTime; + fErrorText: string; + fInfoStr: string; + + FMaxConnectionErrors : Integer; + FChannelErrorscount: Integer; + + procedure Run; + protected + FNombre : String; + procedure CargarFicheros; virtual; abstract; + procedure OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure OnLoadSuccess; virtual; + procedure OnLoadError(const ErrorMsg: String); virtual; + public + property Nombre : string read FNombre; + property LoadOK: Boolean read floadOK; + property TimeStarted: TDateTime read fTimeStarted; + property ErrorText: string read fErrortext; + property InfoStr: string read fInfoStr; + destructor Destroy; override; + procedure Execute; override; + constructor Create; + end; + + + { TCargarVentasThread } + TCargarVentasThread = class(TCargarFicherosThread) + private + fEDISalesService: IEDI_Sales; + + FFicheroCAB : String; + FFicheroLUG : String; + FFicheroART : String; + protected + procedure CargarFicheros; override; + public + destructor Destroy; override; + constructor Create(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); + end; + + + { TCargarInventarioThread } + TCargarInventarioThread = class(TCargarFicherosThread) + private + fEDIInventaryService: IEDI_Inventary; + + FFicheroCAB : String; + FFicheroLIN : String; + FFicheroCANT : String; + + protected + procedure CargarFicheros; override; + public + destructor Destroy; override; + constructor Create(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); + end; + + +implementation + +uses + uDataModuleBase, cxControls; + +{ TROThread } + + +destructor TCargarFicherosThread.Destroy; +begin + fROChannel.OnFailure := NIL; + + FreeAndNil(fRORemoteService); + FreeAndNil(fROChannel); + FreeAndNil(fROMessage); + inherited; +end; + +procedure TCargarFicherosThread.Run; +begin + ShowHourglassCursor; + try + CargarFicheros; + finally + HideHourglassCursor; + end; +end; + +procedure TCargarFicherosThread.Execute; +begin + try + Run; + finally + Self.Destroy; + end; +end; + +procedure TCargarFicherosThread.OnLoadError(const ErrorMsg: String); +begin + FErrorText := ErrorMsg; + if assigned(FOnError) then + FOnError(Self); +end; + +procedure TCargarFicherosThread.OnLoadSuccess; +begin + fLoadOK := True; + if assigned(FOnSuccess) then + FOnSuccess(Self); +end; + +procedure TCargarFicherosThread.OnChannelFailure( + Sender: TROTransportChannel; anException: Exception; var Retry: Boolean); +begin + if FChannelErrorsCount > FMaxConnectionErrors then + begin + FErrorText := anException.Message; + Self.Terminate; + end + else + begin + Inc(FChannelErrorsCount); + Sleep(1000); + Retry := true; + end; +end; + +constructor TCargarFicherosThread.Create; +begin + inherited Create(True); + FMaxConnectionErrors := 5; //try 5 times on channel-error + fLoadOK := False; + + fROMessage := TROBinMessage.Create(nil); + fROChannel := TROWinInetHTTPChannel.Create(NIL); + fROChannel.OnFailure := OnChannelFailure; + fROChannel.TargetURL := dmBase.Channel.TargetURL; +end; + +{ TCargarVentasThread } + +procedure TCargarVentasThread.CargarFicheros; +var + MsgError : String; +begin + try + if not fEDISalesService.CargarFicheroEDI(FFicheroCAB, FFicheroLUG, + FFicheroART, MsgError) then + OnLoadError(MsgError) + else + OnLoadSuccess; + except + on e: Exception do + OnLoadError(e.Message); + end; +end; + +constructor TCargarVentasThread.Create(const FicheroCAB, FicheroLUG, + FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); +begin + inherited Create; + FNombre := 'SLSRPT'; + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'EDI_Sales'; + fEDISalesService := fRORemoteService as IEDI_Sales; + + FFicheroCAB := FicheroCAB; + FFicheroLUG := FicheroLUG; + FFicheroART := FicheroART; + + if assigned(aOnLoadSuccess) then + fOnSuccess := aOnLoadSuccess; + if assigned(aOnLoadError) then + fOnError := aOnLoadError; + Resume; +end; + +destructor TCargarVentasThread.Destroy; +begin + FEDISalesService := NIL; + inherited; +end; + +{ TCargarInventarioThread } + +procedure TCargarInventarioThread.CargarFicheros; +var + MsgError : String; +begin + inherited; + try + if not fEDIInventaryService.CargarFicheroEDI(FFicheroCAB, FFicheroLIN, + FFicheroCANT, MsgError) then + OnLoadError(MsgError) + else + OnLoadSuccess; + except + on e: Exception do + OnLoadError(e.Message); + end; +end; + +constructor TCargarInventarioThread.Create(const FicheroCAB, FicheroLIN, + FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); +begin + inherited Create; + FNombre := 'INVRPT'; + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'EDI_Inventary'; + fEDIInventaryService := fRORemoteService as IEDI_Inventary; + + FFicheroCAB := FicheroCAB; + FFicheroLIN := FicheroLIN; + FFicheroCANT := FicheroCANT; + + if assigned(aOnLoadSuccess) then + fOnSuccess := aOnLoadSuccess; + if assigned(aOnLoadError) then + fOnError := aOnLoadError; + Resume; +end; + +destructor TCargarInventarioThread.Destroy; +begin + fEDIInventaryService := nil; + inherited; +end; + +end. + diff --git a/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm new file mode 100644 index 0000000..ad25fb4 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm @@ -0,0 +1,192 @@ +object dmFicherosEDI: TdmFicherosEDI + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 186 + Width = 300 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'EDI_Log' + Left = 40 + Top = 16 + end + object tbl_EDILog: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'EDILog' + IndexDefs = <> + Left = 152 + Top = 24 + end + object ds_EDILog: TDADataSource + DataSet = tbl_EDILog.Dataset + DataTable = tbl_EDILog + Left = 152 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 80 + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk new file mode 100644 index 0000000..d10077e --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk @@ -0,0 +1,193 @@ +object dmFicherosEDI: TdmFicherosEDI + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 186 + Width = 300 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'EDI_Log' + Left = 40 + Top = 16 + end + object tbl_EDILog: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'EDILog' + IndexDefs = <> + Left = 152 + Top = 24 + end + object ds_EDILog: TDADataSource + DataSet = tbl_EDILog.Dataset + DataTable = tbl_EDILog + Left = 152 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 80 + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas new file mode 100644 index 0000000..c21f9ad --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas @@ -0,0 +1,61 @@ +unit uDataModuleFicherosEDI; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, + schEDILogClient_Intf, uBizEDILog, uDARemoteDataAdapter, uDAInterfaces; + +type + TdmFicherosEDI = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_EDILog: TDACDSDataTable; + ds_EDILog: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems : IBizEDILog; + end; + +var + dmFicherosEDI: TdmFicherosEDI; + +implementation + +{$R *.DFM} + +uses + uDataTableUtils, Forms, Controls, cxControls; + +procedure TdmFicherosEDI.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmFicherosEDI.GetItems: IBizEDILog; +var + dtLog: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLog := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_EDILog, dtLog); + dtLog.BusinessRulesID := BIZ_EDILOG; + Result := (dtLog as IBizEDILog); + finally + HideHourglassCursor; + end; +end; + +initialization + dmFicherosEDI := TdmFicherosEDI.Create(nil); + +finalization + FreeAndNil(dmFicherosEDI); + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp b/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm b/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm new file mode 100644 index 0000000..5f3fd16 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm @@ -0,0 +1,147 @@ +inherited fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI + Left = 525 + Top = 313 + Caption = 'fEditorHistorialCargasEDI' + ClientHeight = 451 + ClientWidth = 660 + OnCreate = CustomEditorCreate + ExplicitWidth = 668 + ExplicitHeight = 485 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 660 + Caption = 'Historial de cargas de ficheros EDI' + ExplicitWidth = 660 + inherited Image1: TImage + Left = 633 + ExplicitLeft = 633 + end + end + inherited TBXDock: TTBXDock + Width = 660 + Visible = False + ExplicitWidth = 660 + inherited tbxMain: TTBXToolbar + Visible = False + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 660 + end + inherited tbxFiltro: TTBXToolbar + Visible = False + end + end + inherited StatusBar: TStatusBar + Top = 432 + Width = 660 + ExplicitTop = 432 + ExplicitWidth = 660 + end + inline frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI [3] + Left = 0 + Top = 76 + Width = 660 + Height = 356 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 660 + ExplicitHeight = 356 + inherited cxGrid: TcxGrid + Width = 660 + Height = 356 + ExplicitWidth = 660 + ExplicitHeight = 356 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewOK: TcxGridDBColumn + IsCaptionAssigned = True + end + inherited cxGridViewFECHA: TcxGridDBColumn + Width = 92 + end + inherited cxGridViewREPORT: TcxGridDBColumn + Width = 54 + end + inherited cxGridViewERROR_MSG: TcxGridDBColumn + Width = 492 + end + end + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + Enabled = False + end + inherited actModificar: TAction + Enabled = False + end + inherited actEliminar: TAction + Enabled = False + end + inherited actDeshacer: TEditUndo + Enabled = False + end + inherited actCortar: TEditCut + Enabled = False + end + inherited actCopiar: TEditCopy + Enabled = False + end + inherited actPegar: TEditPaste + Enabled = False + end + inherited actSeleccionarTodo: TEditSelectAll + Enabled = False + end + inherited actLimpiar: TEditDelete + Enabled = False + end + inherited actDuplicar: TAction + Enabled = False + end + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited GridPopupMenu: TPopupMenu + inherited Modificar1: TMenuItem + Visible = False + end + inherited Duplicar1: TMenuItem + Visible = False + end + inherited Eliminar1: TMenuItem + Visible = False + end + inherited N1: TMenuItem + Visible = False + end + inherited Nuevo1: TMenuItem + Visible = False + end + inherited N2: TMenuItem + Visible = False + end + inherited Previsualizar1: TMenuItem + Visible = False + end + inherited Imprimir1: TMenuItem + Visible = False + end + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas b/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas new file mode 100644 index 0000000..1daa18b --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas @@ -0,0 +1,76 @@ +unit uEditorHistorialCargasEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uBizEDILog, uCustomView, uViewBase, + uViewHistorialCargasEDI, uViewGrid, uViewGridBase, StdCtrls, uDAInterfaces; + +type + IEditorHistorialCargasEDI = interface(IEditorGridBase) + ['{6C84E101-C4FB-48F9-A9A9-93F8606DF4FF}'] + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + TfEditorHistorialCargasEDI = class(TfEditorGridBase, IEditorHistorialCargasEDI) + frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI; + procedure CustomEditorCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + protected + FEDILog : IBizEDILog; + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + public + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + +var + fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI; + +implementation + +{$R *.dfm} + +{ TfEditorHistorialCargasEDI } + +function TfEditorHistorialCargasEDI.GetEDILog: IBizEDILog; +begin + Result := FEDILog; +end; + +procedure TfEditorHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); +begin + FEDILog := Value; + dsDataTable.DataTable := FEDILog.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewHistorialCargasEDI).EDILog := FEDILog; +end; + +procedure TfEditorHistorialCargasEDI.CustomEditorCreate(Sender: TObject); +begin + inherited; + ViewGrid := frViewHistorialCargasEDI1; +end; + +procedure TfEditorHistorialCargasEDI.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(FEDILog) then + raise Exception.Create('No hay ningún control asignado'); + + FEDILog.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp b/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm b/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm new file mode 100644 index 0000000..b83f315 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm @@ -0,0 +1,601 @@ +object ModuleFicherosEDI: TModuleFicherosEDI + OldCreateOrder = True + Description = 'Gesti'#243'n de ficheros EDI' + ModuleMenu = MainMenu + ModuleName = 'Ficheros EDI' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.4' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003954944415478DA95967B48145114 + C6BF6D6975FB472AA2C28AA03F2203234B24437C656A98665A6996424F94A428 + 0B212289DE490F2ACB34D135B32CCB16297B10F6C4324CEDA9926CF6B0D53202 + AD7DCE76EF9DE6EE8E6EBBEB81D93B7367F6FB9DEF9CBB7747715273CB060F22 + 3B3D5641C75DF9A51E3D4F63CFB60C85820236AD8E71F9E0A9F23A9454681117 + 1544BFC4E77F1B050C18AD1830D05160D7D2DCEBE606F4FFD48303A888ABE8E9 + D17371B3D5260A19AC30596C4EC5552A2F682E5C91039C3911041BF28E699C8A + 0FB091089B44719345E0E2DEDE6A9C2BD6B80648E273E7047A54F3F79D5D5C9C + 864B80243E9C686C6A4142E2727EED14105ED8C61F08E96F9035D55504C46461 + FC586FF7009AB9C52AC04A8E03A72F3280B6FEED7F85E3C3FCD8FDBC83A71820 + 2E2109B537AA196808202B2D1A9145ED431C50012A4463E08F09BD7DFDD07DE9 + C3A11305A829CDC7ED27EF39800685284728ED808DA95128ACBC8B0D29512C73 + C9C1D1A22A0E385354ECD44145E1613C7ED1CE01E1910B59A347AA54385F5221 + 02D62447A0E4EA7DAC5D168945659D6E7B60254BD548D6BFC12CC068B6A1B1A5 + 8303E68784E1C9A37A44C72EB6FF0E562F094579CD03642C0D777060C5E9B2EB + 6E7BE0EF370DAD6F3FC84A44212AE2E052955604A4C485E052ED23AC4A084562 + 65D7B07A70FCF07EB4757472C0ACD97399383DAED5D48980A4986054D73D0505 + D1CC2DA404564140F145ADDB1E1CDAB7173A9D8E0366CCF4C7BB37AD080C0A46 + EDCDFB22207E4110B4F79E61596C3052AABB8738185C73A3E348E6BB3F7F9495 + 8842A8833BF71E8B00BA53AE498B47E2C2792C73D607B2AF9457DFC4EE2DE92E + C5E9FC4FFD270EF0F59D029517D92ED46AD43F7C0E8594ADE44412A78DAE2435 + CCC95C8515EBB773578101B3B0243199895390816C74A65F5F3860DCB8F16C99 + 524843E32B0990673BA909627BBE63D0FD3F7BDD4A51C822CF5C12A70E46FCEE + E6001F9FD1FF9AEC85A6D6763B801C8AC10DA4FF5E1B3252B17E73AECC4144CC + 522E4E416AF3370E50AB47890E0864EAE4098E00E493D15E0B32B72B7F2AD2D3 + 5638CDFCB2290CA5CDCD289DDE8BD1E8E100A552C900BACF7D68AA2B50488023 + E423470E6150BCEEDA819CDC9D320701216441BC1C03E880B3117A4C1CF95DB6 + 8AF43F0C4C9C9E3B94854378F86C4DC6AFA357F1B46D9BACE6ECDC2C9E93B580 + 495E7680A3F820C0E0101D50F1DEAF5D70171440C351DC03409E627674A647AF + 29FFDE3886E8FD050279B575ACF985ED0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000006BD4944415478DA + 8D566B5054E7197ECEEED91BBBB2ECCAB20A2C4210B0108C012A511062443183 + 522BE3C4D814C6361D4D26924B53E35012A74D676A5A6352C7A989D30495C48C + 284AA8C6A891315A85AE82B05111D95D592EBBEB72D95DF6BE67CF39FD58B4A6 + 4D4D7366BE3FDFE5799EEF7DDFE7FD0E85FFF7157FAA42249C2DA0058F49C5F4 + 0CF01C1561797F98633B11085F47E726F7F71DA71E3A5FB83F2F7161F38EC7D3 + B9B2FB939C5C11495116B27324CF72E661976BC032366CB8693BE9980C34E142 + 4DEF0F235874302136F9FA6FE4190DAF6BD385884879D82D5E78DD2168A9240C + 3A075153B6070B9237231C6278CBD078E4F2E5BEE1DBB7EDEFF95C9E83FF7DA3 + FF2428F858975274EA8850FB5561D1121D7AFBC7C058E2B1B56C2BCEE969F87B + CC5015AC4480A3A1D5C661D66C35385A8C7142DED5690A765FBBD37877C25F87 + AF7F36F65D02A23C297DF8AF91B43F56AD5A3D0FA15008174FBAB17EDE1E94E5 + 162056C663D3863AB45CFC103D662F2E748D61F8AE07293A3512E7CC86D5C5C2 + 60B0B05DFABEFDA356DF6BD0FF7CF2DB04145D72706BF9DAC33B325706A3E07D + BD362CD76CC16B4B6BC15314BC81108E1E69C3BAEAA7E10D030344A32FC0A0ED + D200B941000B0A32D06B0DA1FBAA8919E81F7EDDD6BC66F70382C2FDF9E54B52 + 1A0CF29FE656D72C46381C86BEC38C3D15A790199F15DDC4DE1B11321C7EC01F + 0204645FDBE953B007D470314A2466A4E2B63580AE8E5B76DE1F5CD9FFC9CA1E + 2A7D8736673632AE4FF1D8D08F0DCF3D112530F65971F5BC0B6A311FD5F0B72D + 67A09B990517516FF702816008FF683E80F61387F1AB37DF43BB5104914C0607 + AF80C9E4E087FA47F6591A576CA690FF617CEEAA3DA36B7E9909590C0D966511 + 669828C9D438D16A80C22343E31B1604887C3F030409785BD37EE84F1FC7BA97 + EAB0A274098CA361341C3140959602A33D08E33766BB36217E014592FBD44BD5 + 05FB9A0797A63FFF4231143324D3E084E444EBB5A96BE1E0560B9C24242C87E8 + 5A14FCCB63A8D8B40D190525982513402906FEF2D937E065E4061E1AC61B038C + 5C26FA0525283AF0EB9D75E56F597D54EC17C61C543D571A25B9D66546DF792B + 0E11E5E341A29A8960B0EF263ACFB6A2FBE259AC7DE56DCCCD2F06C70B409324 + FD58037CF6F530F4BD4E38C52A988D36DEE570FE89923ED9F8DBF77F5F59DF69 + 189446FA2EE15C423D2A2AF2D071FC163EAFB7C0E2218925CACD377A70E8775B + B0666D153A6F1A9192574AB22C8462E62CCCC95D84BE638731429498D86488D2 + 32601A98807BD87E86129736BEF9EEF6D575DD3786A4DEDE763C313F01BB076B + 71E50F160C1170D7BDD05C39FB77B4ECAA437945252EB7778092C781A204D065 + E7E3A98DDB603C7E186E5F1897C635A05333611D71223836A127F5DFF872FDCB + CBDEB1793809825EBCF26C1614B269E0B100514F6A9323041EB713AD1FBC03C7 + A00925CF6C46EA638B4978C81A25044DDCBC5C079C338C626FAB194EA99AEC73 + 20C2445A28143714D5AC2B3C96949698D0D569446DF5E388570AE063A7433305 + CEF2538327BD271CAD209154118D7D749EACC791042F4902761DBB8DAF6EFAE0 + E064181FB0F2B442B173AA4C95254F669F5B5E9E9777FE422F55B9EC112CCE56 + 212C40D4B1D3E0D340DF1EF789A7125CA005A4420EAFEEBE8A5E7F0CDC010EEE + 117B3846ABD9187572C2AAA6ED3FA95A544FC241BBC69CD8FC4C0E92E304B091 + 1005D887834F1DCE8C03B2D4408BDE8EF79B4978C471981C73211408DDE555CA + BCE9565172E047F3B3755F2C5DBE20B5A7FB0EE667C56343990E9A180A03DE07 + 89E6EE93DC539E4380E72801E35810B53BF5B0D22AF8822C3C23760894CABDFE + 8F17BFF8EF6E2A5F76A8B6B068DE9F331F4D155F69EF43FEA30958B72C05696A + 1A0C01B5139696A36DA85CFF74D45489724042F3B8629EC4DB1F1930C4CD4080 + 17C23B6C43442436314AF90AEC5D687ED0AEF39B941A1DFD6E6EFEDC8D49295A + C1AD1B83901280D282242CCA51414D87F042D5ABF8B2BD81988E43EFE0244EEB + 6D38F9CFBBF04A9488104FF8EC0E300CEB42AC6A13D350D8F4DD07A7F8238D66 + A67A876E6E6275D223B3E949B71F0EDB04782604955C0057C7296455AE87CDE1 + 81C3CD202094123FC849FB8810F0D1A9D0B978A5EAAD082DFC00FB0A98FFFD64 + 2E6C8C9D95AC7C9E9689DFD0246B340AB5920A937A0D04C3C413A4541996B46D + 0A1C511C0E45E077BA117079480F8A3151B2986D6111FDF97DF0EF7BF4915E73 + 3A9F84E2458A16AD164A242A21F9A5A0C42212020E417F908C0031121BE184A2 + 09C8E54783427A170136FDD0BF8A07A9D97E3D65D2E52B778E7B728935B288E1 + 24BC90F6B112E91D4864D742ACF04C706FEED0C3CEFF0B07FB54E0B6F6EF4600 + 00000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actCargarFicheros: TAction + Category = 'Ficheros' + Caption = 'Cargar ficheros...' + ImageIndex = 0 + OnExecute = actCargarFicherosExecute + end + object actHistorial: TAction + Category = 'Ficheros' + Caption = 'Historial de cargas' + ImageIndex = 1 + OnExecute = actHistorialExecute + end + end + object MainMenu: TMainMenu + Tag = 100 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 10 + Caption = '&Ficheros' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actCargarFicherosExecute + object Ficheros1: TMenuItem + Tag = 100 + Action = actCargarFicheros + end + object Historialdecargas1: TMenuItem + Tag = 200 + Action = actHistorial + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002284944415478DA635CB2F9C47F06 + 2C20C6D7821144D7F62CC02A0F038C2003A27DCCE1024BB79C6470B2D066D877 + E22AC3CD9B37189A8AE3E1726F3EFD6178F5F13790FECBB067C75A862DBB4F22 + 0C0069440684344BC9AB33CC9AB308D500984BEA7A173298189B6275F299B3A7 + C19A41006E40889B31C39A5D67C1068034E3027FFEFC659053D682F3E106F83A + E8336C3E70116E00B2D39181914716434C5430C3EE9D5B19FC03C31006B85969 + 33EC3A769501E492D6C94BC1067CFDFE8BE1F5BB2F0C0F9EBE63D877F8284369 + 560C837D602E83B8300783ABBB3703171737C2007B13758683676E32805CD233 + 7325D80074AF64244632F844153078B8DA329C3F771A6CC892656B2106CC59BA + 832125DA8301E492C9F3D7A278E1F3F7BF60FC0988A3928BC12E30343205BB60 + DDC61D0C8C30853097CC5ABA11AB177CFD4318D2734A194C8D34191E3DBC0F36 + 64C7EEC3A806805C626BA2C050931FCBD03271318A179C3C82188A8ACBC12E90 + 935764E0E4E4623874F42C03A38147C2FF0B3B16C00D0225DDFCB468864FDF20 + CEFEF5E73FC3D79FFF18BEFCF8CB50575DC5A0A220C6C001D4CCC9C9C970FADC + 75EC0624C64430CC5FB202CCB77109041A0232E01F4357730D83B4380FD8F63B + 0F5E319CDB318D1164C077A0BA5B4043F44186F9BA3830040787426D85D81C7C + 418861B6CA2B8669DDF5602FBC7CFB03AC199C994004D4100E982BA64E980CD7 + 0CC1FFC0E273FA1BC0344C33DC001880B90094CB700164CD2000002110375C5F + 4EB13C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000003824944415478DA + 5D530D4C94751C7EFEF70177AF1EBC753B4EA0B8148EEB0E439423CE4411B58D + 0C0DC92648AECC465B6DCD4D572BC714AA4DDB4CD7206DB38F65E55C6B358A8C + 8D558640C725C981E7D9911D1F1EDC07C7DD61F7F5BEF7FE7BA11CCCDFF66CFF + FDF67B9EFD7FBF3D0FC1BD653A9A06812D351566ADD7E76B8A922948DC13332E + F7B8BF3B7675661068E1978E93C52725283AF598A52A713AB0A2DDCCC725A09C + D8CA7E969AF20ED2E04C3CD67FD96E730DFFF53A3FF4AA6D9EB0448012B6ECEC + DE271B979D0869DB730DEB54B874D10DCD7533D4F90F034229F28ACD80428581 + 3E4768B8D7DE74A7FFC5AF16058CEF6F6C38A0BE10D0B5E63E52FCE002F99D92 + D3B08F4CA0EEB95A38A72518724531EE892023EF21F4FC3C1271D95D8FC77A9E + 1F20F33B576D2AFF9ED77FB9ADAC669ACC93DF341E87656305EED36A11E680BF + 83220607D0DF3F84045B8E884283AB97AF0D78BCCA0DC4D85A40EF5E61F77E13 + 7CBE107EEDF4201A4B8051A6E3585D1FC64647F1C3B99338FCD649F43A388CCE + 4A607706F9E098670759BDFDBD1329CB07AF556D2F40AE2E03F1781CDD5D3710 + F250EC54BD01814861EBFE0EB587DF854EB70A2C8DE3F8A776DC4E2EC7A4DD79 + 966C7BF9D2F9070A358DD6483DA9ACCE4728740743BF79B14324DFB2DB10F0FB + 51B4E909A8F30CD0EAD7823AACB8D81B46586D847BF086955434757E5EB0D6B0 + 573A7E85F429DF5E58E5A9CC2322A110DFB6B520430EC464AA857EF5A136B01E + 073EFB6516538C1E813F6F39897EE785239B9FDED2CA858392BAAD6A8CFC6183 + 82CD42B6B114419F17A19900D43A13784102B904A8CCE1D1D0DC8389F8324426 + A7BA88ACB8AD7CCF4B353F4D8EFB98832FAC8372B914B371801344889EE352FF + 4110B13E0770386FA3F9BC1BC1609426F954ABE883A3B2C2FAB26E83D9589921 + 4BE2953D060445077AFF59245351AC4403642979EC3B760537430A443D9E2861 + B31E5D30D2FC2F4AB698BBE40C9399CB02FB7719B08295E3E30FBF46E381DDD0 + 3014635311349FB986EBC13444A7BD3425959FA23FD61CBA9B05A2B07CF4CCAA + 35FA730A9655CDF9035899CDC06BEDC4E6FA06D86F06303C16434CCA20E1F7D3 + 14641D94B97F1F3A2AE6C8D26429377C6261D8CC76558E760D49534893BC8064 + 92176F419188CC21110E47693A7386A6F32DE8A89DBB278DFF57D3EF72B5D753 + CD71A95D0291AC1604CA709CE043BAD2CAA529BEC03755234BC7FF05ED0D8747 + EEB393300000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003AF4944415478DABDD75B48145118 + 07F0FF28AC094550425174A1B21B1474A33B5694EC8369B1565A59D44B11F550 + BDD44377ACEC4A37CB5CCBB4B5581575B5DA4A532B53D36C230ABA41D7070D83 + C03477D6DDCE37DB9C9D19B77136A20F86B33AEEF9EDFF3B676656C1E7F3E17F + 967026E7962171738A59F867209B4CF78FCEE63A71C9E64093335D85EE3E7E25 + A4F6ECDFBE56E0204D1A4A52C2D804AA73ED6E2F3A3ABD68A7C3ED1F3B7E8FED + DF3E63EFE1B350814693C62D9A8E50B1C6270D28BB5BDF1D9C9FF1AA1B54B961 + 0CBC5E2FD26D77D0D2D2FC57D8A0616370D19A632C216161616182B68D62978F + 4F2C7A7CBA1895219030D1E345EA191BA64E9916CA1E51617F0483B5746E5B5D + 48905C0D4DCF90B074B93EA84D268A5D3872E17AB775D32B377BDF8CB8CD18D0 + BF97049614D9A591831B921721E3DA5D0E2A31D1D38593D67C097454BDEC1133 + CF198B2C7B3932738A25904A4EC9C1F5890B70A9E09E6E4B65307EDE78FEFB1F + 1D6E7CFDD6861676B4B3D769A7D261B71EC5D5A20A0E066D69CA9218E4165783 + 92CAA9A4841EFF6B6B9E8383E733ADBA09732FA421BFB4928371F11694390AD5 + 2D4D8A9B8BEB650F4049B598871DD9F61BBA6B486BD629FAD0C946371B4B9C55 + AA96121A1E1E1E002DE65928743E02255D92F751B7A53DD5847123E1ACA8E660 + CCFC58444444C0643221EBB2CD0FC62F9C0E47793D28A93299BC71ECA5770CAF + E1B143A9B8FFF0010767CE8E416D4D3562CD8B916BCBF783747F5CBF2A1E9454 + 8BD1CF45B72A0CAF61EA8103A8AFAB51B59450932902F6020704F901CCAE439E + 545BCAFB6797D7C7D68CAD971858371ADDF21AB2734F1B1F7170C2C449126662 + 6D2D76DC5683943458C94F0723181D2F5CB51C1C153D16919191127AF3765500 + D42BBA69EFD9BAC61046E7DFBEA8E7E0D06123A40D43687965AD7170E79614EC + 389881D76FDEA8CE8D8E8E46F2CA94C08761E3A7578F393870E060A99D84D6D4 + B9FCA020EC63C31E410FDCB671D51F93D1A348BE06096C7DDFC8C17EFDA2F81A + 3634BD340E6E5C978CB4D35941139A1392394629DBBE3471B077EF3E7E901D43 + 06450540F6DE448616CA13293F0481EB562705D249EBA5BEBB14FB1620DBE542 + E6A81688CD4F3948AD24ECDD87AFD2973019B4B0790B94E8EF0F0142095C99B4 + 9C5D83D94113CE8E5D8115CFFB03EF8173F39A21B4BA54D76173EB4FFE8D8F6F + 1A05CAABEFB6447C3F51805DC786C36259163459A762B3D079692E05A8C454A0 + B6B409172724A2F1714D8F3B5A2E02A9B4DF657541E5469A6CDE14F2FF045A8C + EA17B3DA9C7AF449C9A20000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 94000000097048597300000E9C00000E9C01079453DD0000091A4944415478DA + 9596097054F51DC7BFEFDA3B7B41D8DD64D71C24241009844024014492101014 + D4160A28D8B18E38C5BBD45A5B6B6BE980B6D57A0D18A8022A6D119C16396A51 + 4A0847249098262CB903B93661B3F7BEDD7DBB6FDFEB3F412A9DE2D137F36667 + 67DFFE3FEFFBFB7D7F07856F7315BFC581D158C024B3398ECA6159460159A244 + 8916E564B25D8C0B5D386B74012B93DF7414F5B5BFCED866802239CDA455DF75 + 537A8A3D3FC33C715ADE84346D8A9A91641A570271AEA7D7E7E9EE0FB5F7BA82 + 8D1E3FBF2FC1C7DA707E7DE4FF0312459C4E33236B3CFBD2F442ED6C45865321 + 1B6A21533CC4483E287E06D2B58530181DD0684DA0295A760D78C4DA339D818E + CEA18F433E614BE24C9713F895F4CDC0C2DD5A8551FEE1EC69B6B565B7C993C3 + E6AD6CFAE423308E4F201167202758F8878D387B220DDEE1A55898BB06068B1D + B4420D7F302A77760C49276B5B5B3DBED06BE17E66279C2BE35F0D243068A5C7 + EE2AB7AFBCA554C80D99DFD65A0A8F43A3F4C2EF55A2E3733BFAEAACE8DA1FC1 + D4F23B31C2EB2151139039291F45337241A934084424B886FCF267A7DB026DAD + FDCF4487B877AE8752D78751A1D33C71E7ADD9F796CE31E57746B729ED257FC2 + 04EB08DCC34AF4D69540DF3B0FE11E011F7FD488F70EBC0699D3A0F30A83F6BE + 182E76F990E130213B270D03210A235E5E3E55D3121E1A18D9E83BB4623B41C9 + FF0D9CB5AB744AAEFEE5271F2A2B68F57D96E2B5BE88ECC99F816124B83B7290 + A8A9842D3E11F69B1CE0230CEE5EB30432C3A1D74B8117806058C0917F762221 + 4AB8A52C0F1707E3E81FF4A3FEE4857642B9BBF7FD25CE2F8125EFEA53F474F5 + 0B8FCFAF12947193D3B30396791F40ABEF06CFABD15B9B0D7B77154AF3E723AF + B000A9361B18A512BC48E14A185093537CBE104E1E3B0A97604338A1417E6116 + 9C2E11BD9786E5F67F751F94786995EBE0B2C855E0BCDD6577CFCFDC5D75FBCC + 9BDABA9AB87EE64DA4CF390656338250400FD7F11C4C13EEC092797722232B1B + 0A8D0602290B170F8488BA783888E37BB6A1BEE61F58FDD4669C6AE7909AAA47 + 5869C2803B820B0D1D7105850A67F5829314A6EC558CCF4CFEFA178F2D581B94 + 54D6E68BB5943CED1528D3CE13153262211DC2A7F351422F45E582E59890E640 + 9C56C01F030411E043211CFCE31F70EE9303D8F0EC26DC726B259C8351ECDAD7 + 8CE925B96819242A7B8689B33DFBBBECF42A0A25BBB30AF2F4AF3FFD4845D5E7 + AD03DC69E7DB485D7C189C79001258C4790DF83A07D6A43E0CEBCD25D09AAD90 + 69962483418C8FE0F0CED7D17CEA532C7EE049CC2C5F821C2387404CC69E436D + 0812F5018511C39E08717847B7232BFD1E0AA55B17D92AB6FCFDFAEAC89E2342 + 65023100B963444D970AFEBE2F9B87ABFF325E5D558BD61335A83FFA572CDFF0 + 7314DE7607690C0C8C0A20470F1C6FF162CFC15618B333D1EF13D1D5D4195769 + 94EB28BAB4FAD1DB2B06B71CEAFFA526A7C24C14A8C0722C24994152A2904CD2 + 044C214678814B3C02ED839895A884CECB2274E50AEE796A1326975582A239F2 + 3CC01057CCB6006DC3023657D7C3929B81F69124FA5A7BE5444CF80DA59CBFEB + 918DEB6EDED4D45F6338D8F314B2AAD2C1EA75489252250EBF0A26D0982B025F + 53370ABD73801E2F56AC5885CEEE6E98F34BA050EBC873407ADE74D8720B51B7 + BD1AD1848C86010653AA2AD07245C6F0A5214851FE6FA3C0479F595FF64284A6 + 8C1FEEF829BAEC1FC0343B1394210549F1AA4271248C584B272A35EB90B8EC07 + 3FD08D6577DD83C686F37007A3A059EE6A752D5B87A2C56B70764735F926A3AE + 9785A9B80C83310EEECB2EB049F104C5CE7B77FD86B5337F373ED3AE3BB0FF28 + A6E5766347CB46B0459320A718207B43905A5A51A92587E55782A568D4FCA51A + 8948101367CE47C5FD3F22E164C714729A9431B5E576529791047EF25A3D026A + 33DC02992C9DFD6015CC3E8A9DBB6BFEF285793BE72C9C9579F8F0394CCD240E + 144FE295BAC781295980B307159AB5282E58848905C5305BED10222497DE1198 + D33249E9682191D027097034871AF2F70A07D0D817C6CFDE38871871F5A85BDD + ED97C11AF52F92B2A8B617163876DEF7FDF2F2E60B0354C8E7C3AA4A2B6A1B77 + E1CDBA675161BA17B3729622ABA008E36C0EF2966AE2467AEC70E90BC835E068 + 17C9310093CC32FE5C33806D1FF5206E4C4598F4BE409F4B54DB2C0F9267F632 + D665F40BDF5B39FB69558A8E3D76AC050FAF9E8A346D14EEA14B70F9C2449503 + 464B3A38029308EC1A40BA0E36FA69D59019401CEA8F8978EEAD46B48595F090 + 71161A1E21A32DD9AF48B57C77ACB571B7EE292A2C4C3B5A5955646E6EE9A38C + 5A062B1665C2AE4B22144F22282B49B17363CAA41B2893C96D20F537CB0A2849 + 48777FDA8B3D9FF462446146241A47A8CF0566FCB8036130ABA92F4693C66431 + 6DAF5C347D55BA23953E79C289B9250EAC586087554BC14F4AA49FF4CD44F2C6 + 301B5156301ED012B3360F46F0E357EBE166F4E0650EBCDB8B7854006D1AF79D + 6875F187FF194F5CE9EE9BAD0ED3DECA25C59325D068A8EFC0DC59762C2E4D43 + BE45018626A122C9BF44464E43BD13F316968D19640281D9B4408CD03F6D1AC1 + 1B7B2FC2051DA29402D14008D1E11189B658F60B81E4FDF8A02C7ADDC47F9ED6 + 2DCA7B2823D3F66271E9E494585CA49C4D3DB05B75A89A9B81E26C1DD28D0C2E + 3638F1DC93BFC7D1BA77C86BC9A4C0250C90101C3A3388FDC7FBE0A3344892C9 + 2FF0514406864869E93A6030AC4E6C2D3EFFBF2B06991C6AABF88023DBF2DBBC + A9593AA5568DCB5D2E621E1F8C7A25F2B38CD027DC38FBFE2E3CF8F216787C11 + 34B57BD0D8EE434064A11C6786C43088FA8288BA3D802EC525E9B43F486E2F39 + F2D54B14819AB2A907546AF5467B4E5AB631D5488DE62AE0E3E1F70448CB2371 + 8D8548C2CC24A724914A15D96554C4540C849880A8C70F21C84B943EA553D268 + 1F4F76463E41CD02F11BF65299CA5A77646A884FBCA45028CB8D5633674825E3 + 8365094486484071D2684781A32B85404C11F10610F387C89E437664837E1F99 + 009B13D5331BBEDD5EFAC565B9EF63AD51A32C8925A42762426206C530369A63 + 198AE32012503C1627E34BC058A5A8D46EA854E7928CE2EDB856388257CAA237 + 3AF3EB37EF6B517EBE45C10A6251C01B9C128B8A532996CE92245921D1743C41 + B37D32C7B549B4B2391C94CFE3BDE9FCD79DF56F9BAC2EA7B114766B00000000 + 49454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas b/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas new file mode 100644 index 0000000..5aa8a3d --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas @@ -0,0 +1,76 @@ +unit uPluginControllerFicherosEDI; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFicherosEDI = interface(IInterface) + ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] + end; + + TModuleFicherosEDI = class(TModuleController, IMCFicherosEDI) + actCargarFicheros: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Ficheros1: TMenuItem; + SmallImages: TPngImageList; + actHistorial: TAction; + Historialdecargas1: TMenuItem; + procedure actCargarFicherosExecute(Sender: TObject); + procedure actHistorialExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uAsistenteCargaFicheros, + uEditorHistorialCargasEDI, uBizEDILog, uDataModuleFicherosEDI; + +function GetModule : TModuleController; +begin + Result := TModuleFicherosEDI.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TModuleFicherosEDI.actCargarFicherosExecute(Sender: TObject); +begin + VerAsistenteEtiquetasMontajes; +end; + +procedure TModuleFicherosEDI.actHistorialExecute(Sender: TObject); +var + aControl: IBizEDILog; + aObj: IEditorHistorialCargasEDI; +begin + aControl := dmFicherosEDI.GetItems; + aObj := TfEditorHistorialCargasEDI.Create(Application); + try + with aObj do + begin + EDILog := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleFicherosEDI); + +finalization + UnRegisterModuleClass(TModuleFicherosEDI); + +end. diff --git a/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas b/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas new file mode 100644 index 0000000..ad5180a --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas @@ -0,0 +1,233 @@ +unit uSubirFicheros; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, + uROClient, uROClientIntf, uRORemoteService, uROBinMessage, + uROServiceComponent, uROWinInetHttpChannel, + VARELA_Intf, uROTypes; + +type + + { TROThread } + TSubirFicheroThread = class(TThread) + private + fROMessage: TROBinMessage; + fROChannel: TROWinInetHTTPChannel; + fRORemoteService: TRORemoteService; + fOnAbort: TNotifyEvent; + fOnFinished: TNotifyEvent; + fOnProgress: TNotifyEvent; + fOnStartUpload: TNotifyEvent; + fOnError: TNotifyEvent; + fFileName: string; + fUploadOK: Boolean; + fFileSize: Int64; + fCurrentBytePos: Int64; + fTimeStarted: TDateTime; + fFileService: IsrvTransfereciaFicheros; + fErrorText: string; + fInfoStr: string; + fMaxConnectionErrors, fChannelErrorscount: Integer; + procedure RunUpload; + function GetUploadChunk(FileMemStream: TMemoryStream; aSize: Int64; + const Sequence: Integer): Binary; + procedure OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure Run; + protected + public + property UploadOK: Boolean read fUploadOK; + property FileSize: Int64 read fFileSize; + property CurrentBytePos: Int64 read fCurrentBytePos; + property TimeStarted: TDateTime read fTimeStarted; + property ErrorText: string read fErrortext; + property Filename: string read fFilename; + property InfoStr: string read fInfoStr; + constructor Create(aFileName: string; aOnStartUpload, aOnProgress, + aOnFinished, aOnAbort, aOnError: TNotifyEvent); + destructor Destroy; override; + + procedure Execute; override; + end; + +implementation + +uses + uDataModuleBase; + +{ TROThread } + +constructor TSubirFicheroThread.Create(aFileName: string; aOnStartUpload, aOnProgress, + aOnFinished, aOnAbort, aOnError: TNotifyEvent); +begin + inherited Create(TRUE); + fFilename := aFilename; + fmaxconnectionerrors := 5; //try 5 times on channel-error + + fROMessage := TROBinMessage.Create(nil); + fROChannel := TROWinInetHTTPChannel.Create(NIL); + fROChannel.OnFailure := OnChannelFailure; + fROChannel.TargetURL := dmBase.Channel.TargetURL; + + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'srvTransfereciaFicheros'; + fFileService := fRORemoteService as IsrvTransfereciaFicheros; + + if assigned(aOnAbort) then + fOnAbort := aOnAbort; + if assigned(aOnFinished) then + fOnFinished := aOnFinished; + if assigned(aOnProgress) then + fOnProgress := aOnProgress; + if assigned(aOnStartUpload) then + fOnStartUpload := aOnStartUpload; + if assigned(aOnError) then + fOnError := aOnError; + Resume; +end; + +destructor TSubirFicheroThread.Destroy; +begin + fFileService := nil; + fROChannel.OnFailure := NIL; + + FreeAndNil(fRORemoteService); + FreeAndNil(fROChannel); + FreeAndNil(fROMessage); + inherited; +end; + +procedure TSubirFicheroThread.Run; +begin + try + RunUpload; + finally + if assigned(fOnFinished) then + fOnFinished(Self); + end; +end; + +procedure TSubirFicheroThread.Execute; +begin + try + Run; + finally + Self.Destroy; + end; +end; + +function TSubirFicheroThread.GetUploadChunk(FileMemStream: TMemoryStream; aSize: + Int64; const Sequence: Integer): Binary; +const + Block: Integer = 65536; +var + Position: Int64; +begin + Result := Binary.Create; + Position := Block * (Sequence - 1); + if Position <= aSize then + begin + FileMemStream.Position := Position; + if Position + Block > aSize then + Result.CopyFrom(FileMemStream, aSize - Position) + else + Result.CopyFrom(FileMemStream, Block); + end; +end; + +procedure TSubirFicheroThread.RunUpload; +var + FileMemStream: TMemoryStream; + Chunk: Binary; + Sequence: Int64; + isfirst: Boolean; +begin + fErrorText := ''; + fUploadOK := false; + fChannelErrorscount := 0; + fCurrentBytePos := 0; + Sequence := 1; + fTimeStarted := Now; + FileMemStream := nil; + isfirst := true; + try + if FileExists(fFilename) then + begin + try + FileMemStream := TMemoryStream.Create; + FileMemStream.LoadFromFile(fFileName); + fFileName := ExtractFileName(fFileName); + fFileSize := FileMemStream.Size; + + fInfoStr := DateTimetoStr(fTimeStarted) + ' ' + + fFileName + ' ' + + FloatToStrF(Filesize / 1024, fffixed, 15, 1) + ' KB'; + + if assigned(fOnStartUpload) then + fOnStartUpload(Self); + Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); + try + while Chunk.Size > 0 do + begin + if Terminated then + begin + if assigned(fOnAbort) then + fOnAbort(Self); + exit; + end; + fFileService.uploadChunk(isfirst, fFileName, Chunk); + isfirst := false; + + Inc(fCurrentBytePos, Chunk.Size); + FreeAndNil(Chunk); + + Inc(Sequence); + if assigned(fOnProgress) then + fOnProgress(Self); + Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); + end; + fUploadOK := (FileSize > 0) and (FileSize = CurrentBytePos); + finally + FreeAndNil(Chunk); + end; + finally + FileMemStream.Free; + end; + end + else begin + fErrorText := 'No existe el fichero ' + fFileName; + if assigned(fOnError) then + fOnError(Self); + end; + except + on e: Exception do + begin + fErrorText := e.Message; + if assigned(fOnError) then + fOnError(Self); + end; + end; +end; + +procedure TSubirFicheroThread.OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); +begin + if FChannelErrorsCount > FMaxConnectionErrors then + begin + FErrorText := anException.Message; + Self.Terminate; + end + else + begin + Inc(FChannelErrorsCount); + Sleep(1000); + Retry := true; + end; +end; + +end. + diff --git a/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm new file mode 100644 index 0000000..0432b04 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm @@ -0,0 +1,123 @@ +inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGrid: TcxGrid + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnGrouping = True + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewOK: TcxGridDBColumn + DataBinding.FieldName = 'OK' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Glyph.Data = { + 36090000424D3609000000000000360000002800000030000000100000000100 + 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 + 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE + E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 + B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 + 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B + 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 + E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 + 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD + CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 + 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 + 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 + A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA + C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} + Properties.GlyphCount = 3 + Width = 20 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.Alignment.Vert = taVCenter + OnGetDisplayText = cxGridViewFECHAGetDisplayText + SortIndex = 0 + SortOrder = soDescending + Width = 61 + end + object cxGridViewREPORT: TcxGridDBColumn + Caption = 'Report' + DataBinding.FieldName = 'REPORT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 35 + end + object cxGridViewERROR_MSG: TcxGridDBColumn + Caption = 'Error' + DataBinding.FieldName = 'ERROR_MSG' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 323 + end + end + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk new file mode 100644 index 0000000..0432b04 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk @@ -0,0 +1,123 @@ +inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGrid: TcxGrid + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnGrouping = True + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewOK: TcxGridDBColumn + DataBinding.FieldName = 'OK' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Glyph.Data = { + 36090000424D3609000000000000360000002800000030000000100000000100 + 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 + 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE + E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 + B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 + 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B + 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 + E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 + 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD + CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 + 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 + 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 + A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA + C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} + Properties.GlyphCount = 3 + Width = 20 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.Alignment.Vert = taVCenter + OnGetDisplayText = cxGridViewFECHAGetDisplayText + SortIndex = 0 + SortOrder = soDescending + Width = 61 + end + object cxGridViewREPORT: TcxGridDBColumn + Caption = 'Report' + DataBinding.FieldName = 'REPORT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 35 + end + object cxGridViewERROR_MSG: TcxGridDBColumn + Caption = 'Error' + DataBinding.FieldName = 'ERROR_MSG' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 323 + end + end + end +end diff --git a/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas new file mode 100644 index 0000000..1324623 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas @@ -0,0 +1,72 @@ +unit uViewHistorialCargasEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGridBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizEDILog, cxCheckBox, + uViewGrid, cxCalendar, cxTextEdit, uDataModuleFicherosEDI, uDAInterfaces; + +type + IViewHistorialCargasEDI = interface(IViewGrid) + ['{556EBF85-7F86-49CB-A8BF-EBF299AAF9E5}'] + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + TfrViewHistorialCargasEDI = class(TfrViewGrid, IViewHistorialCargasEDI) + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewOK: TcxGridDBColumn; + cxGridViewERROR_MSG: TcxGridDBColumn; + cxGridViewREPORT: TcxGridDBColumn; + procedure cxGridViewFECHAGetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + protected + FEDILog : IBizEDILog; + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + public + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + +implementation + +uses DateUtils; + + + +{$R *.dfm} + +{ TfrViewHistorialCargasEDI } + +function TfrViewHistorialCargasEDI.GetEDILog: IBizEDILog; +begin + Result := FEDILog; +end; + +procedure TfrViewHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); +begin + FEDILog := Value; + dsDataSource.DataTable := FEDILog.DataTable; +end; + +procedure TfrViewHistorialCargasEDI.cxGridViewFECHAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + ADate : TDateTime; +begin + inherited; +{ ADate := ARecord.Values[Sender.Index]; + if DaysBetween(ADate, Now) = 0 then + AText := FormatDateTime('hh:mm', ADate)} +end; + +end. diff --git a/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas b/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas new file mode 100644 index 0000000..80f2f87 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas @@ -0,0 +1,154 @@ +unit schEDILogClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EDILog = '{301F7728-2A2A-465E-89CD-4D36F00E1B31}'; + + { Data table names } + nme_EDILog = 'EDILog'; + + { EDILog fields } + fld_EDILogID = 'ID'; + fld_EDILogREPORT = 'REPORT'; + fld_EDILogFECHA = 'FECHA'; + fld_EDILogOK = 'OK'; + fld_EDILogERROR_MSG = 'ERROR_MSG'; + + { EDILog field indexes } + idx_EDILogID = 0; + idx_EDILogREPORT = 1; + idx_EDILogFECHA = 2; + idx_EDILogOK = 3; + idx_EDILogERROR_MSG = 4; + +type + { IEDILog } + IEDILog = interface(IDAStronglyTypedDataTable) + ['{7B8F10CA-504A-4F10-ADA7-4B805DB211FE}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREPORTValue: String; + procedure SetREPORTValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetOKValue: Boolean; + procedure SetOKValue(const aValue: Boolean); + function GetERROR_MSGValue: String; + procedure SetERROR_MSGValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REPORT: String read GetREPORTValue write SetREPORTValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property OK: Boolean read GetOKValue write SetOKValue; + property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; + end; + + { TEDILogDataTableRules } + TEDILogDataTableRules = class(TDADataTableRules, IEDILog) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREPORTValue: String; virtual; + procedure SetREPORTValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetOKValue: Boolean; virtual; + procedure SetOKValue(const aValue: Boolean); virtual; + function GetERROR_MSGValue: String; virtual; + procedure SetERROR_MSGValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REPORT: String read GetREPORTValue write SetREPORTValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property OK: Boolean read GetOKValue write SetOKValue; + property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TEDILogDataTableRules } +constructor TEDILogDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEDILogDataTableRules.Destroy; +begin + inherited; +end; + +function TEDILogDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EDILogID].AsInteger; +end; + +procedure TEDILogDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EDILogID].AsInteger := aValue; +end; + +function TEDILogDataTableRules.GetREPORTValue: String; +begin + result := DataTable.Fields[idx_EDILogREPORT].AsString; +end; + +procedure TEDILogDataTableRules.SetREPORTValue(const aValue: String); +begin + DataTable.Fields[idx_EDILogREPORT].AsString := aValue; +end; + +function TEDILogDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_EDILogFECHA].AsDateTime; +end; + +procedure TEDILogDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EDILogFECHA].AsDateTime := aValue; +end; + +function TEDILogDataTableRules.GetOKValue: Boolean; +begin + result := DataTable.Fields[idx_EDILogOK].AsBoolean; +end; + +procedure TEDILogDataTableRules.SetOKValue(const aValue: Boolean); +begin + DataTable.Fields[idx_EDILogOK].AsBoolean := aValue; +end; + +function TEDILogDataTableRules.GetERROR_MSGValue: String; +begin + result := DataTable.Fields[idx_EDILogERROR_MSG].AsString; +end; + +procedure TEDILogDataTableRules.SetERROR_MSGValue(const aValue: String); +begin + DataTable.Fields[idx_EDILogERROR_MSG].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_EDILog, TEDILogDataTableRules); + +end. diff --git a/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas b/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas new file mode 100644 index 0000000..e0b923b --- /dev/null +++ b/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas @@ -0,0 +1,167 @@ +unit schEDILogServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDILogClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EDILogDelta = '{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'; + +type + { IEDILogDelta } + IEDILogDelta = interface(IEDILog) + ['{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREPORTValue : String; + function GetOldFECHAValue : DateTime; + function GetOldOKValue : Boolean; + function GetOldERROR_MSGValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldREPORT : String read GetOldREPORTValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldOK : Boolean read GetOldOKValue; + property OldERROR_MSG : String read GetOldERROR_MSGValue; + end; + + { TEDILogBusinessProcessorRules } + TEDILogBusinessProcessorRules = class(TDABusinessProcessorRules, IEDILog, IEDILogDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREPORTValue: String; virtual; + function GetOldREPORTValue: String; virtual; + procedure SetREPORTValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetOKValue: Boolean; virtual; + function GetOldOKValue: Boolean; virtual; + procedure SetOKValue(const aValue: Boolean); virtual; + function GetERROR_MSGValue: String; virtual; + function GetOldERROR_MSGValue: String; virtual; + procedure SetERROR_MSGValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REPORT : String read GetREPORTValue write SetREPORTValue; + property OldREPORT : String read GetOldREPORTValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OK : Boolean read GetOKValue write SetOKValue; + property OldOK : Boolean read GetOldOKValue; + property ERROR_MSG : String read GetERROR_MSGValue write SetERROR_MSGValue; + property OldERROR_MSG : String read GetOldERROR_MSGValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TEDILogBusinessProcessorRules } +constructor TEDILogBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEDILogBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEDILogBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID]; +end; + +function TEDILogBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogID]; +end; + +procedure TEDILogBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetREPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT]; +end; + +function TEDILogBusinessProcessorRules.GetOldREPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogREPORT]; +end; + +procedure TEDILogBusinessProcessorRules.SetREPORTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA]; +end; + +function TEDILogBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogFECHA]; +end; + +procedure TEDILogBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetOKValue: Boolean; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK]; +end; + +function TEDILogBusinessProcessorRules.GetOldOKValue: Boolean; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogOK]; +end; + +procedure TEDILogBusinessProcessorRules.SetOKValue(const aValue: Boolean); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetERROR_MSGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG]; +end; + +function TEDILogBusinessProcessorRules.GetOldERROR_MSGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogERROR_MSG]; +end; + +procedure TEDILogBusinessProcessorRules.SetERROR_MSGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_EDILogDelta, TEDILogBusinessProcessorRules); + +end. diff --git a/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas b/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas new file mode 100644 index 0000000..3c79abf --- /dev/null +++ b/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas @@ -0,0 +1,30 @@ +unit uBizEDILog; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schEDILogClient_Intf; + +const + BIZ_EDILOG = 'Client.EDILog'; + + +type + IBizEDILog = interface(IEDILog) + ['{EED6A5BD-DC2A-4233-8097-5D212264CA22}'] + end; + + TBizEDILogDataTableRules = class(TEDILogDataTableRules, IBizEDILog) + end; + + +implementation + +initialization + RegisterDataTableRules(BIZ_EDILOG, TBizEDILogDataTableRules); + +finalization + +end. + diff --git a/Source/Modulos/Parametros/Cliente/Parametros.bdsproj b/Source/Modulos/Parametros/Cliente/Parametros.bdsproj new file mode 100644 index 0000000..954f701 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Parametros.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Parametros/Cliente/Parametros.cfg b/Source/Modulos/Parametros/Cliente/Parametros.cfg new file mode 100644 index 0000000..53e7995 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/Parametros/Cliente/Parametros.dof b/Source/Modulos/Parametros/Cliente/Parametros.dof new file mode 100644 index 0000000..454c088 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/Parametros/Cliente/Parametros.dpk b/Source/Modulos/Parametros/Cliente/Parametros.dpk new file mode 100644 index 0000000..5242dc8 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.dpk @@ -0,0 +1,57 @@ +package Parametros; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + dbrtl, + dsnap, + cxLibraryD10, + dxThemeD10, + adortl, + BaseD10, + ControlesBaseD10, + dxLayoutControlD10, + dxComnD10, + JvCoreD10R, + vcldb, + vcljpg, + vclx, + Jcl, + JclVcl, + JvStdCtrlsD10R, + JvSystemD10R, + tbx_D10, + tb2k_D10; + +contains + uDataModuleParametros in 'uDataModuleParametros.pas' {dmParametros: TDAClientDataModule}, + schParametrosClient_Intf in '..\Reglas\schParametrosClient_Intf.pas', + uBizParametros in '..\Reglas\uBizParametros.pas', + uViewParametrosCentro in 'uViewParametrosCentro.pas' {frViewParametrosCentro: TCustomView}, + uViewParametrosColeccion in 'uViewParametrosColeccion.pas' {frViewParametrosColeccion: TCustomView}; + +end. diff --git a/Source/Modulos/Parametros/Cliente/Parametros.drc b/Source/Modulos/Parametros/Cliente/Parametros.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/Parametros/Cliente/Parametros.identcache b/Source/Modulos/Parametros/Cliente/Parametros.identcache new file mode 100644 index 0000000000000000000000000000000000000000..cb628def9d1344ab9cc475e22333f2707cdefcda GIT binary patch literal 766 zcmc)Iu?oU45C-5n_#S-%AHdOeaVQjvoetzk&l*W{l1mU=9YvqnP>Yp+WioDmh71&BZrx^+@X){DvV8zb#IUgF$Y3cY#$_v!!$RJc4 zoFXW=2_~jXbl8!1@w%bbpn#~u_?Q_TKi;ja-!D!mQS?5KAJSe7f>3KZf9TkdQkw15 lcKe4dM~{82GzzD%>knbWJi|&~zJvbK)MScr!yHeWdICAN5dr`J literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Cliente/Parametros.rc b/Source/Modulos/Parametros/Cliente/Parametros.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/Parametros.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Parametros/Cliente/Parametros.res b/Source/Modulos/Parametros/Cliente/Parametros.res new file mode 100644 index 0000000000000000000000000000000000000000..ea6f55be3be373bb77635abcf5cb62b4a1d7e3e8 GIT binary patch literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!`F$75hlhW6Znuj?mK*AD#yu zyD#i}D-7Op{Esw$$7f;tP&`q4$G+Cec!K8`_qihW>`Se?FaOBC5tDo(_GZaJ)xb^O z^u`KAjXqWE17-V8+7DJ3nreye<(O6VtJ+_8T~T|`s6jHk=0ta$cd{CH)9g(@388Rb PtL`asx)+zP{Bh}DvbcG> literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp b/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm b/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm new file mode 100644 index 0000000..4d5c1f1 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm @@ -0,0 +1,214 @@ +object dmParametros: TdmParametros + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvParametros' + Left = 40 + Top = 32 + end + object tbl_ListaCentros: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CODFILIAL' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODBARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaCentros' + IndexDefs = <> + Left = 160 + Top = 96 + end + object ds_ListaCentros: TDADataSource + DataSet = tbl_ListaCentros.Dataset + DataTable = tbl_ListaCentros + Left = 160 + Top = 32 + end + object tbl_ListaColecciones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'COLECAO' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_COLECAO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaColecciones' + IndexDefs = <> + Left = 296 + Top = 96 + end + object dsListaColecciones: TDADataSource + DataSet = tbl_ListaColecciones.Dataset + DataTable = tbl_ListaColecciones + Left = 296 + Top = 32 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas b/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas new file mode 100644 index 0000000..c2f730f --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas @@ -0,0 +1,78 @@ +unit uDataModuleParametros; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizParametros, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmParametros = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_ListaCentros: TDACDSDataTable; + ds_ListaCentros: TDADataSource; + tbl_ListaColecciones: TDACDSDataTable; + dsListaColecciones: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetCentros : IBizCentros; + function GetColecciones : IBizColecciones; + end; + +var + dmParametros: TdmParametros; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmParametros.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmParametros.GetCentros: IBizCentros; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ListaCentros, dtLista); + dtLista.BusinessRulesID := BIZ_CENTROS; + Result := (dtLista as IBizCentros); + finally + HideHourglassCursor; + end; +end; + +function TdmParametros.GetColecciones: IBizColecciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ListaColecciones, dtLista); + dtLista.BusinessRulesID := BIZ_COLECCIONES; + Result := (dtLista as IBizColecciones); + finally + HideHourglassCursor; + end; +end; + +initialization + dmParametros := TdmParametros.Create(nil); + +finalization + FreeAndNil(dmParametros); + +end. diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp b/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm b/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm new file mode 100644 index 0000000..5c280e3 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm @@ -0,0 +1,36 @@ +inherited frViewParametrosCentro: TfrViewParametrosCentro + Width = 587 + Height = 42 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 587 + Height = 42 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object ccbCentro: TJvCheckedComboBox + Left = 49 + Top = 10 + Width = 392 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 0 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Centro:' + Control = ccbCentro + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas b/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas new file mode 100644 index 0000000..55d2ffe --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas @@ -0,0 +1,91 @@ +unit uViewParametrosCentro; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, + JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, + uBizParametros; + +type + IViewParametrosCentro = interface(IViewParametrosControlGrid) + ['{AE4FC794-6D44-40A0-A138-09286870CBB0}'] + + function GetCentrosSeleccionados: TStringList; + property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; + end; + + TfrViewParametrosCentro = class(TfrViewParametrosControlGrid, IViewParametrosCentro) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + ccbCentro: TJvCheckedComboBox; + private + FCentros : IBizCentros; + procedure RellenarListaCentros; + function GetCentrosSeleccionados: TStringList; + public + procedure Execute; override; + procedure Refresh; override; + property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; + end; + +implementation + +uses + uDataModuleParametros, uDADataTable; + +{$R *.dfm} + +{ TfrViewParametrosCentro } + +procedure TfrViewParametrosCentro.Execute; +begin + // inherited; <- no descomentar +end; + +function TfrViewParametrosCentro.GetCentrosSeleccionados: TStringList; +var + i : integer; +begin + Result := TStringList.Create; + + FCentros.DataTable.First; + for i := 0 to ccbCentro.Items.Count - 1 do + begin + if ccbCentro.Checked[i] then + Result.Add(FCentros.CODBARRA); + FCentros.DataTable.Next; + end; +end; + +procedure TfrViewParametrosCentro.Refresh; +begin + // inherited; <- no descomentar + RellenarListaCentros; +end; + +procedure TfrViewParametrosCentro.RellenarListaCentros; +var + i : Integer; +begin + FCentros := dmParametros.GetCentros; + ccbCentro.Items.BeginUpdate; + + ShowHourglassCursor; + try + ccbCentro.Items.Clear; + FCentros.DataTable.Active := True; + for i := 0 to FCentros.DataTable.RecordCount - 1 do + begin + ccbCentro.Items.Add(FCentros.FILIAL); + FCentros.DataTable.Next; + end; + finally + ccbCentro.Items.EndUpdate; + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp b/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm b/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm new file mode 100644 index 0000000..d268eee --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm @@ -0,0 +1,36 @@ +inherited frViewParametrosColeccion: TfrViewParametrosColeccion + Width = 587 + Height = 42 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 587 + Height = 42 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object ccbColeccion: TJvCheckedComboBox + Left = 65 + Top = 10 + Width = 512 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 0 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Colecci'#243'n:' + Control = ccbColeccion + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas b/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas new file mode 100644 index 0000000..f8ee182 --- /dev/null +++ b/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas @@ -0,0 +1,91 @@ +unit uViewParametrosColeccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, + JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, + uBizParametros; + +type + IViewParametrosColeccion = interface(IViewParametrosControlGrid) + ['{5523284E-4445-4026-AFAC-B243C19F0DA7}'] + + function GetColeccionesSeleccionadas: TStringList; + property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; + end; + + TfrViewParametrosColeccion = class(TfrViewParametrosControlGrid, IViewParametrosColeccion) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + ccbColeccion: TJvCheckedComboBox; + dxLayoutControl1Item1: TdxLayoutItem; + private + FColecciones : IBizColecciones; + procedure RellenarListaColecciones; + function GetColeccionesSeleccionadas: TStringList; + public + procedure Execute; override; + procedure Refresh; override; + property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; + end; + +implementation + +uses + uDataModuleParametros, uDADataTable; + +{$R *.dfm} + +{ TfrViewParametrosColeccion } + +procedure TfrViewParametrosColeccion.Execute; +begin + // inherited; <- no descomentar +end; + +function TfrViewParametrosColeccion.GetColeccionesSeleccionadas: TStringList; +var + i : integer; +begin + Result := TStringList.Create; + + FColecciones.DataTable.First; + for i := 0 to ccbColeccion.Items.Count - 1 do + begin + if ccbColeccion.Checked[i] then + Result.Add(FColecciones.COLECAO); + FColecciones.DataTable.Next; + end; +end; + +procedure TfrViewParametrosColeccion.Refresh; +begin + // inherited; <- no descomentar + RellenarListaColecciones; +end; + +procedure TfrViewParametrosColeccion.RellenarListaColecciones; +var + i : Integer; +begin + FColecciones := dmParametros.GetColecciones; + ccbColeccion.Items.BeginUpdate; + + ShowHourglassCursor; + try + ccbColeccion.Items.Clear; + FColecciones.DataTable.Active := True; + for i := 0 to FColecciones.DataTable.RecordCount - 1 do + begin + ccbColeccion.Items.Add(FColecciones.DESC_COLECAO); + FColecciones.DataTable.Next; + end; + finally + ccbColeccion.Items.EndUpdate; + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas b/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas new file mode 100644 index 0000000..fb835f0 --- /dev/null +++ b/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas @@ -0,0 +1,196 @@ +unit schParametrosClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaCentros = '{CE7EAA4D-6A5B-418E-931E-61BC59E87921}'; + RID_ListaColecciones = '{30AF285C-6577-445D-A759-78E8EC8275BF}'; + + { Data table names } + nme_ListaCentros = 'ListaCentros'; + nme_ListaColecciones = 'ListaColecciones'; + + { ListaCentros fields } + fld_ListaCentrosCODFILIAL = 'CODFILIAL'; + fld_ListaCentrosCODBARRA = 'CODBARRA'; + fld_ListaCentrosFILIAL = 'FILIAL'; + + { ListaCentros field indexes } + idx_ListaCentrosCODFILIAL = 0; + idx_ListaCentrosCODBARRA = 1; + idx_ListaCentrosFILIAL = 2; + + { ListaColecciones fields } + fld_ListaColeccionesCOLECAO = 'COLECAO'; + fld_ListaColeccionesDESC_COLECAO = 'DESC_COLECAO'; + + { ListaColecciones field indexes } + idx_ListaColeccionesCOLECAO = 0; + idx_ListaColeccionesDESC_COLECAO = 1; + +type + { IListaCentros } + IListaCentros = interface(IDAStronglyTypedDataTable) + ['{FF4F6460-CEBC-40C5-A2B9-7ED81AE90A7A}'] + { Property getters and setters } + function GetCODFILIALValue: String; + procedure SetCODFILIALValue(const aValue: String); + function GetCODBARRAValue: String; + procedure SetCODBARRAValue(const aValue: String); + function GetFILIALValue: String; + procedure SetFILIALValue(const aValue: String); + + + { Properties } + property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; + property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; + property FILIAL: String read GetFILIALValue write SetFILIALValue; + end; + + { TListaCentrosDataTableRules } + TListaCentrosDataTableRules = class(TDADataTableRules, IListaCentros) + private + protected + { Property getters and setters } + function GetCODFILIALValue: String; virtual; + procedure SetCODFILIALValue(const aValue: String); virtual; + function GetCODBARRAValue: String; virtual; + procedure SetCODBARRAValue(const aValue: String); virtual; + function GetFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + + { Properties } + property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; + property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; + property FILIAL: String read GetFILIALValue write SetFILIALValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IListaColecciones } + IListaColecciones = interface(IDAStronglyTypedDataTable) + ['{6EACE103-97D5-4D08-9BA5-DC24826BD4C8}'] + { Property getters and setters } + function GetCOLECAOValue: String; + procedure SetCOLECAOValue(const aValue: String); + function GetDESC_COLECAOValue: String; + procedure SetDESC_COLECAOValue(const aValue: String); + + + { Properties } + property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; + property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + end; + + { TListaColeccionesDataTableRules } + TListaColeccionesDataTableRules = class(TDADataTableRules, IListaColecciones) + private + protected + { Property getters and setters } + function GetCOLECAOValue: String; virtual; + procedure SetCOLECAOValue(const aValue: String); virtual; + function GetDESC_COLECAOValue: String; virtual; + procedure SetDESC_COLECAOValue(const aValue: String); virtual; + + { Properties } + property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; + property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TListaCentrosDataTableRules } +constructor TListaCentrosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaCentrosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaCentrosDataTableRules.GetCODFILIALValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString; +end; + +procedure TListaCentrosDataTableRules.SetCODFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString := aValue; +end; + +function TListaCentrosDataTableRules.GetCODBARRAValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosCODBARRA].AsString; +end; + +procedure TListaCentrosDataTableRules.SetCODBARRAValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosCODBARRA].AsString := aValue; +end; + +function TListaCentrosDataTableRules.GetFILIALValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosFILIAL].AsString; +end; + +procedure TListaCentrosDataTableRules.SetFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosFILIAL].AsString := aValue; +end; + + +{ TListaColeccionesDataTableRules } +constructor TListaColeccionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaColeccionesDataTableRules.Destroy; +begin + inherited; +end; + +function TListaColeccionesDataTableRules.GetCOLECAOValue: String; +begin + result := DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString; +end; + +procedure TListaColeccionesDataTableRules.SetCOLECAOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString := aValue; +end; + +function TListaColeccionesDataTableRules.GetDESC_COLECAOValue: String; +begin + result := DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString; +end; + +procedure TListaColeccionesDataTableRules.SetDESC_COLECAOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_ListaCentros, TListaCentrosDataTableRules); + RegisterDataTableRules(RID_ListaColecciones, TListaColeccionesDataTableRules); + +end. diff --git a/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas b/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas new file mode 100644 index 0000000..9bd380b --- /dev/null +++ b/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas @@ -0,0 +1,203 @@ +unit schParametrosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schParametrosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaCentrosDelta = '{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'; + RID_ListaColeccionesDelta = '{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'; + +type + { IListaCentrosDelta } + IListaCentrosDelta = interface(IListaCentros) + ['{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'] + { Property getters and setters } + function GetOldCODFILIALValue : String; + function GetOldCODBARRAValue : String; + function GetOldFILIALValue : String; + + { Properties } + property OldCODFILIAL : String read GetOldCODFILIALValue; + property OldCODBARRA : String read GetOldCODBARRAValue; + property OldFILIAL : String read GetOldFILIALValue; + end; + + { TListaCentrosBusinessProcessorRules } + TListaCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaCentros, IListaCentrosDelta) + private + protected + { Property getters and setters } + function GetCODFILIALValue: String; virtual; + function GetOldCODFILIALValue: String; virtual; + procedure SetCODFILIALValue(const aValue: String); virtual; + function GetCODBARRAValue: String; virtual; + function GetOldCODBARRAValue: String; virtual; + procedure SetCODBARRAValue(const aValue: String); virtual; + function GetFILIALValue: String; virtual; + function GetOldFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + + { Properties } + property CODFILIAL : String read GetCODFILIALValue write SetCODFILIALValue; + property OldCODFILIAL : String read GetOldCODFILIALValue; + property CODBARRA : String read GetCODBARRAValue write SetCODBARRAValue; + property OldCODBARRA : String read GetOldCODBARRAValue; + property FILIAL : String read GetFILIALValue write SetFILIALValue; + property OldFILIAL : String read GetOldFILIALValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IListaColeccionesDelta } + IListaColeccionesDelta = interface(IListaColecciones) + ['{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'] + { Property getters and setters } + function GetOldCOLECAOValue : String; + function GetOldDESC_COLECAOValue : String; + + { Properties } + property OldCOLECAO : String read GetOldCOLECAOValue; + property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; + end; + + { TListaColeccionesBusinessProcessorRules } + TListaColeccionesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaColecciones, IListaColeccionesDelta) + private + protected + { Property getters and setters } + function GetCOLECAOValue: String; virtual; + function GetOldCOLECAOValue: String; virtual; + procedure SetCOLECAOValue(const aValue: String); virtual; + function GetDESC_COLECAOValue: String; virtual; + function GetOldDESC_COLECAOValue: String; virtual; + procedure SetDESC_COLECAOValue(const aValue: String); virtual; + + { Properties } + property COLECAO : String read GetCOLECAOValue write SetCOLECAOValue; + property OldCOLECAO : String read GetOldCOLECAOValue; + property DESC_COLECAO : String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TListaCentrosBusinessProcessorRules } +constructor TListaCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaCentrosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaCentrosBusinessProcessorRules.GetCODFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldCODFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODFILIAL]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetCODFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL] := aValue; +end; + +function TListaCentrosBusinessProcessorRules.GetCODBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldCODBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODBARRA]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetCODBARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA] := aValue; +end; + +function TListaCentrosBusinessProcessorRules.GetFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosFILIAL]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL] := aValue; +end; + + +{ TListaColeccionesBusinessProcessorRules } +constructor TListaColeccionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaColeccionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaColeccionesBusinessProcessorRules.GetCOLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO]; +end; + +function TListaColeccionesBusinessProcessorRules.GetOldCOLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesCOLECAO]; +end; + +procedure TListaColeccionesBusinessProcessorRules.SetCOLECAOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO] := aValue; +end; + +function TListaColeccionesBusinessProcessorRules.GetDESC_COLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO]; +end; + +function TListaColeccionesBusinessProcessorRules.GetOldDESC_COLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesDESC_COLECAO]; +end; + +procedure TListaColeccionesBusinessProcessorRules.SetDESC_COLECAOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaCentrosDelta, TListaCentrosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ListaColeccionesDelta, TListaColeccionesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Parametros/Reglas/uBizParametros.pas b/Source/Modulos/Parametros/Reglas/uBizParametros.pas new file mode 100644 index 0000000..b7ec883 --- /dev/null +++ b/Source/Modulos/Parametros/Reglas/uBizParametros.pas @@ -0,0 +1,49 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2007 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizParametros; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, + schParametrosClient_Intf; + + +const + BIZ_CENTROS = 'Client.Centros'; + BIZ_COLECCIONES = 'Client.Colecciones'; + +type + IBizCentros = interface(IListaCentros) + ['{1B5A35E8-1243-4222-BB86-558574C0F2AE}'] + end; + + IBizColecciones = interface(IListaColecciones) + ['{BF62BD66-69B4-4134-954E-724C7C65CB5C}'] + end; + + TBizCentrosDataTableRules = class(TListaCentrosDataTableRules, IBizCentros) + end; + + TBizColeccionesDataTableRules = class(TListaColeccionesDataTableRules, IBizColecciones) + end; + +implementation + +uses + uDataModuleParametros; + +{ TBizCentrosDataTableRules } + +initialization + RegisterDataTableRules(BIZ_CENTROS, TBizCentrosDataTableRules); + RegisterDataTableRules(BIZ_COLECCIONES, TBizColeccionesDataTableRules); + +end. + diff --git a/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp b/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm b/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm new file mode 100644 index 0000000..fb27827 --- /dev/null +++ b/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm @@ -0,0 +1,155 @@ +object srvParametros: TsrvParametros + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schParametros + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schParametros: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT'#10' RDX_FILIALES.CODFILIAL, RDX_FILIALES.CODBARRA, FILI' + + 'AIS.FILIAL'#10'FROM'#10' RDX_FILIALES INNER JOIN FILIAIS ON (RDX_FILI' + + 'ALES.CODFILIAL = FILIAIS.COD_FILIAL)'#10'WHERE'#10' RDX_FILIALES.COD' + + 'FILIAL <> '#39'000001'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODFILIAL' + TableField = 'CODFILIAL' + end + item + DatasetField = 'CODBARRA' + TableField = 'CODBARRA' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end> + end> + Name = 'ListaCentros' + Fields = < + item + Name = 'CODFILIAL' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODBARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT'#10' COLECOES.COLECAO, COLECOES.DESC_COLECAO'#10'FROM'#10' CO' + + 'LECOES'#10'WHERE'#10' COLECOES.COLECAO NOT IN ('#39'IND'#39', '#39'PRI'#39', '#39'009'#39')'#10 + + 'ORDER BY COLECOES.COLECAO DESC' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'COLECAO' + TableField = 'COLECAO' + end + item + DatasetField = 'DESC_COLECAO' + TableField = 'DESC_COLECAO' + end> + end> + Name = 'ListaColecciones' + Fields = < + item + Name = 'COLECAO' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_COLECAO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 40 + Top = 96 + end +end diff --git a/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas b/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas new file mode 100644 index 0000000..3cc706d --- /dev/null +++ b/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas @@ -0,0 +1,48 @@ +unit srvParametros_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + + +type + { TsrvParametros } + TsrvParametros = class(TDARemoteService, IsrvParametros) + DABINAdapter: TDABINAdapter; + schParametros: TDASchema; + private + protected + { IsrvParametros methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvParametros(out anInstance : IUnknown); +begin + anInstance := TsrvParametros.Create(NIL); +end; + +{ srvParametros } +initialization + TROClassFactory.Create('srvParametros', Create_srvParametros, TsrvParametros_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj b/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj new file mode 100644 index 0000000..6072fed --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj @@ -0,0 +1,679 @@ + + + + + + + + + + + + Recepciones.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + Intraweb 8.0 Design Package for Borland Development Studio 2006 + + + + diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.cfg b/Source/Modulos/Recepciones/Cliente/Recepciones.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.dof b/Source/Modulos/Recepciones/Cliente/Recepciones.dof new file mode 100644 index 0000000..a44450d --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.dpk b/Source/Modulos/Recepciones/Cliente/Recepciones.dpk new file mode 100644 index 0000000..76a3206 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.dpk @@ -0,0 +1,84 @@ +package Recepciones; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + Parametros, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxPScxGridLnkD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dclcxLibraryD10; + +contains + uPluginControllerRecepciones in 'uPluginControllerRecepciones.pas' {ModuleRecepciones: TModuleController}, + uDataModuleRecepciones in 'uDataModuleRecepciones.pas' {dmRecepciones: TDAClientDataModule}, + uBizRecepciones in '..\Reglas\uBizRecepciones.pas', + uViewListaRecepciones in 'uViewListaRecepciones.pas' {frViewListaRecepciones: TCustomView}, + uEditorListaRecepciones in 'uEditorListaRecepciones.pas' {fEditorListaRecepciones: TCustomEditor}, + uEditorAjustarRecepciones in 'uEditorAjustarRecepciones.pas' {fEditorAjustarRecepciones}, + uViewListaRecepcionesAlbaran in 'uViewListaRecepcionesAlbaran.pas' {frViewListaRecepcionesAlbaran: TCustomView}, + uEditorListaRecepcionesAlbaran in 'uEditorListaRecepcionesAlbaran.pas' {fEditorListaRecepcionesAlbaran: TCustomEditor}; + +end. diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.drc b/Source/Modulos/Recepciones/Cliente/Recepciones.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.identcache b/Source/Modulos/Recepciones/Cliente/Recepciones.identcache new file mode 100644 index 0000000000000000000000000000000000000000..ce259cdd7a176e6b3112cfa48d7eed0ccdb01a48 GIT binary patch literal 1259 zcmc(eK}rKb5JktG$Cwj%0C&m6oq>>GR<$X+i=jf>6{@-r+`CIe5bx^{B*+kFneO$6 ze!O4*wrQHLo9-SK68wd7u@-Y|H&hDe-r&g`l?9e;ZTyXh!CW+*a>XM{yHeRvC*S2MP9alL^�Kk*LJ+7v-2DlSn#wLnsE1B S1?}<>{;_wcf_SOkaj!oRx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Recepciones' + IndexDefs = <> + Left = 208 + Top = 32 + end + object ds_Recepciones: TDADataSource + DataSet = tbl_Recepciones.Dataset + DataTable = tbl_Recepciones + Left = 208 + Top = 88 + end + object tbl_RecepcionesAprobadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesAprobadas' + IndexDefs = <> + Left = 352 + Top = 32 + end + object ds_RecepcionesAprobadas: TDADataSource + DataSet = tbl_RecepcionesAprobadas.Dataset + DataTable = tbl_RecepcionesAprobadas + Left = 352 + Top = 88 + end + object tbl_RecepcionesPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesPendientes' + IndexDefs = <> + Left = 488 + Top = 32 + end + object ds_RecepcionesPendientes: TDADataSource + DataSet = tbl_RecepcionesPendientes.Dataset + DataTable = tbl_RecepcionesPendientes + Left = 488 + Top = 88 + end + object tbl_RecepcionesAlbaran: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOPRODUCTO' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesAlbaran' + IndexDefs = <> + Left = 208 + Top = 192 + end + object ds_RecepcionesAlbaran: TDADataSource + DataSet = tbl_RecepcionesAlbaran.Dataset + DataTable = tbl_RecepcionesAlbaran + Left = 208 + Top = 248 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 64 + Top = 96 + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas b/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas new file mode 100644 index 0000000..1216728 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas @@ -0,0 +1,131 @@ +unit uDataModuleRecepciones; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizRecepciones, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmRecepciones = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Recepciones: TDACDSDataTable; + ds_Recepciones: TDADataSource; + tbl_RecepcionesAprobadas: TDACDSDataTable; + ds_RecepcionesAprobadas: TDADataSource; + tbl_RecepcionesPendientes: TDACDSDataTable; + ds_RecepcionesPendientes: TDADataSource; + tbl_RecepcionesAlbaran: TDACDSDataTable; + ds_RecepcionesAlbaran: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems : IBizRecepciones; overload; + function GetItems(const AEstado : TInvRecepcionEstado) : IBizRecepciones; overload; + function GetItemsAlbaran : IBizRecepcionesAlbaran; overload; + function GetItemsAlbaran(const AEstado : TInvRecepcionAlbaranEstado) : IBizRecepcionesAlbaran; overload; + end; + +var + dmRecepciones: TdmRecepciones; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + + +procedure TdmRecepciones.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmRecepciones.GetItems: IBizRecepciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Recepciones, dtLista); + dtLista.BusinessRulesID := BIZ_RECEPCIONES; + Result := (dtLista as IBizRecepciones); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItems( + const AEstado: TInvRecepcionEstado): IBizRecepciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + tirPendiente : CloneDataTable(tbl_RecepcionesPendientes, dtLista); + tirAprobado : CloneDataTable(tbl_RecepcionesAprobadas, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_RECEPCIONES; + Result := (dtLista as IBizRecepciones); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItemsAlbaran: IBizRecepcionesAlbaran; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_RecepcionesAlbaran, dtLista); + dtLista.BusinessRulesID := BIZ_RECEPCIONESALBARAN; + Result := (dtLista as IBizRecepcionesAlbaran); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItemsAlbaran(const AEstado: TInvRecepcionAlbaranEstado): IBizRecepcionesAlbaran; +var + dtLista: IBizRecepcionesAlbaran; +begin + ShowHourglassCursor; + try + dtLista := GetItemsAlbaran; + + with dtLista.DataTable.Where do + begin + Clear; + case AEstado of + tiraPendiente : AddCondition('ESTADOALBARAN', cEqual, 'P'); + tiraRecibido : AddCondition('ESTADOALBARAN', cEqual, 'R'); + end; + end; + + Result := dtLista; + finally + HideHourglassCursor; + end; +end; + +initialization + dmRecepciones := TdmRecepciones.Create(nil); + +finalization + FreeAndNil(dmRecepciones); + +end. diff --git a/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp b/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm b/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm new file mode 100644 index 0000000..1bfb8a8 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm @@ -0,0 +1,907 @@ +object fEditorAjustarRecepciones: TfEditorAjustarRecepciones + Left = 490 + Top = 337 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de recepciones de productos' + ClientHeight = 536 + ClientWidth = 753 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 753 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de recepciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 224 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label1: TLabel + Left = 22 + Top = 260 + Width = 86 + Height = 13 + Caption = 'Cantidad enviada:' + end + object Label2: TLabel + Left = 22 + Top = 335 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 364 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object edtEnv40: TcxDBMaskEdit + Left = 218 + Top = 258 + DataBinding.DataField = 'E40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 25 + end + object edtEnv38: TcxDBMaskEdit + Left = 114 + Top = 258 + DataBinding.DataField = 'E38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 25 + end + object edtEnv42: TcxDBMaskEdit + Left = 322 + Top = 258 + DataBinding.DataField = 'E42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 25 + end + object edtEnv44: TcxDBMaskEdit + Left = 426 + Top = 258 + DataBinding.DataField = 'E44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 25 + end + object edtEnv46: TcxDBMaskEdit + Left = 530 + Top = 258 + DataBinding.DataField = 'E46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 25 + end + object edtEnv48: TcxDBMaskEdit + Left = 634 + Top = 258 + DataBinding.DataField = 'E48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 25 + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 333 + DataBinding.DataField = 'R38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 333 + DataBinding.DataField = 'R40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 333 + DataBinding.DataField = 'R42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 333 + DataBinding.DataField = 'R44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 20 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 333 + DataBinding.DataField = 'R46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 333 + DataBinding.DataField = 'R48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 24 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 25 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 23 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 19 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 133 + Top = 28 + AutoSize = True + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtCentro: TcxDBLabel + Left = 185 + Top = 28 + AutoSize = True + DataBinding.DataField = 'FILIAL' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtProducto: TcxDBLabel + Left = 133 + Top = 51 + AutoSize = True + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtColor: TcxDBLabel + Left = 613 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 118 + end + object edtAlbaran: TcxDBLabel + Left = 133 + Top = 104 + AutoSize = True + DataBinding.DataField = 'ALBARAN' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object cbEstadoAlbaran: TcxComboBox + Left = 133 + Top = 127 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otros') + 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 = 5 + Text = 'cbEstadoAlbaran' + Width = 156 + end + object memEstadoAlbaran: TcxMemo + Left = 22 + Top = 172 + Lines.Strings = ( + 'memEstadoAlbaran') + 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 = 7 + Height = 46 + Width = 708 + end + object cbContabilizarAlbaran: TcxCheckBox + Left = 348 + Top = 127 + Caption = 'Contabilizar este albar'#225'n' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + 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 = 6 + Width = 319 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales' + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro:' + Control = edtCentro + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + Caption = 'Datos del albar'#225'n de env'#237'o' + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Albar'#225'n de env'#237'o:' + Control = edtAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado del env'#237'o' + Control = cbEstadoAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizarAlbaran + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Observaciones sobre el albar'#225'n:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memEstadoAlbaran + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv48 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de recepci'#243'n del env'#237'o' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + Left = 200 + Top = 496 + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas b/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas new file mode 100644 index 0000000..633791b --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas @@ -0,0 +1,352 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizRecepciones, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarRecepciones = interface + ['{549191AB-7CF0-464A-872B-ECBCD0088A25}'] + function GetItems : IBizRecepciones; + procedure SetItems (const AValue : IBizRecepciones); + property Items : IBizRecepciones read GetItems write SetItems; + end; + + TfEditorAjustarRecepciones = class(TForm, IEditorAjustarRecepciones) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + edtEnv40: TcxDBMaskEdit; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item11: TdxLayoutItem; + edtEnv38: TcxDBMaskEdit; + dxLayoutControl1Item12: TdxLayoutItem; + edtEnv42: TcxDBMaskEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtEnv44: TcxDBMaskEdit; + dxLayoutControl1Item14: TdxLayoutItem; + edtEnv46: TcxDBMaskEdit; + dxLayoutControl1Item15: TdxLayoutItem; + edtEnv48: TcxDBMaskEdit; + dxLayoutControl1Item16: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtCentro: TcxDBLabel; + dxLayoutControl1Item17: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + edtAlbaran: TcxDBLabel; + dxLayoutControl1Item1: TdxLayoutItem; + cbEstadoAlbaran: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memEstadoAlbaran: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizarAlbaran: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizRecepciones; + FHayErrores : Boolean; + FAlbaranModificado : Boolean; + procedure CargarValores; + procedure SalvarValores; + procedure ModificarAlbaran; + protected + function GetItems : IBizRecepciones; + procedure SetItems (const AValue : IBizRecepciones); + public + property Items : IBizRecepciones read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleRecepciones; + +{$R *.dfm} + +function ShowEditorAjustarRecepciones (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarRecepciones; +begin + AEditor := TfEditorAjustarRecepciones.Create(Application); + try + AEditor.Items := (ABizObject as IBizRecepciones); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarRecepciones.FormShow(Sender: TObject); +begin + FHayErrores := False; + FAlbaranModificado := False; + FItems.DataTable.Open; + + cbEstadoAlbaran.Enabled := Length(FItems.DataTable.FieldByName('ALBARAN').AsString) > 0; + cbContabilizarAlbaran.Enabled := cbEstadoAlbaran.Enabled; + memEstadoAlbaran.Enabled := cbEstadoAlbaran.Enabled; + + CargarValores; +end; + +function TfEditorAjustarRecepciones.GetItems: IBizRecepciones; +begin + Result := FItems; +end; + +procedure TfEditorAjustarRecepciones.SetItems( + const AValue: IBizRecepciones); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarRecepciones.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarRecepciones.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + if FAlbaranModificado then + ModificarAlbaran; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarRecepciones.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('R38').AsInteger <> FieldByName('RR38').AsInteger then + edtRecR38.Value := FieldByName('RR38').AsInteger + else + edtRecR38.Value := FieldByName('R38').AsInteger; + + if FieldByName('R40').AsInteger <> FieldByName('RR40').AsInteger then + edtRecR40.Value := FieldByName('RR40').AsInteger + else + edtRecR40.Value := FieldByName('R40').AsInteger; + + if FieldByName('R42').AsInteger <> FieldByName('RR42').AsInteger then + edtRecR42.Value := FieldByName('RR42').AsInteger + else + edtRecR42.Value := FieldByName('R42').AsInteger; + + if FieldByName('R44').AsInteger <> FieldByName('RR44').AsInteger then + edtRecR44.Value := FieldByName('RR44').AsInteger + else + edtRecR44.Value := FieldByName('R44').AsInteger; + + if FieldByName('R46').AsInteger <> FieldByName('RR46').AsInteger then + edtRecR46.Value := FieldByName('RR46').AsInteger + else + edtRecR46.Value := FieldByName('R46').AsInteger; + + if FieldByName('R48').AsInteger <> FieldByName('RR48').AsInteger then + edtRecR48.Value := FieldByName('RR48').AsInteger + else + edtRecR48.Value := FieldByName('R48').AsInteger; + + if Length(FieldByName('ESTADO_ALBARAN').AsString) = 0 then + cbEstadoAlbaran.Text := cbEstadoAlbaran.Properties.Items[0] + else + cbEstadoAlbaran.Text := FieldByName('ESTADO_ALBARAN').AsString; + + cbContabilizarAlbaran.Checked := (FieldByName('CONTABILIZAR_ALBARAN').AsString = 'S'); + memEstadoAlbaran.Lines.Clear; + if Length(FieldByName('OBSERVACIONES_ALBARAN').AsString) > 0 then + memEstadoAlbaran.Lines.Add(FieldByName('OBSERVACIONES_ALBARAN').AsString) + end; +end; + +procedure TfEditorAjustarRecepciones.SalvarValores; +var + aux : String; +begin + FAlbaranModificado := False; + with FItems.DataTable do + begin + Edit; + FieldByName('RR38').AsVariant := edtRecR38.Value; + FieldByName('RR40').AsVariant := edtRecR40.Value; + FieldByName('RR42').AsVariant := edtRecR42.Value; + FieldByName('RR44').AsVariant := edtRecR44.Value; + FieldByName('RR46').AsVariant := edtRecR46.Value; + FieldByName('RR48').AsVariant := edtRecR48.Value; + + if cbEstadoAlbaran.Text = cbEstadoAlbaran.Properties.Items[0] then + aux := '' + else + aux := cbEstadoAlbaran.Text; + + if FieldByName('ESTADO_ALBARAN').AsString <> aux then + begin + FAlbaranModificado := True; + FieldByName('ESTADO_ALBARAN').AsString := aux; + end; + + if cbContabilizarAlbaran.Checked then + aux := 'S' + else + aux := 'N'; + + if FieldByName('CONTABILIZAR_ALBARAN').AsString <> aux then + begin + FAlbaranModificado := True; + FieldByName('CONTABILIZAR_ALBARAN').AsString := aux; + end; + + FieldByName('OBSERVACIONES_ALBARAN').AsString := memEstadoAlbaran.Lines.Text; + + Post; + end; +end; + +procedure TfEditorAjustarRecepciones.ModificarAlbaran; +var + bm : TBookMark ; + AAlbaran : String; + AEstado : String; + AContabilizar : String; +begin + { Si se ha cambiado el albarán, hay + que cambiarlo en el resto de filas en las que aparezca } + + AAlbaran := FItems.DataTable.FieldByName('ALBARAN').AsString; + AEstado := FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString; + AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString; + + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + FItems.DataTable.DisableEventHandlers; + FItems.DataTable.LogChanges := False; + try + FItems.DataTable.Filter := 'ALBARAN = ''' + AAlbaran + ''''; + FItems.DataTable.Filtered := True; + FItems.DataTable.First; + + repeat + FItems.Edit; + FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString := AEstado; + FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString := AContabilizar; + FItems.Post; + FItems.DataTable.Next + until FItems.DataTable.EOF; + + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.Filter := ''; + FItems.DataTable.Filtered := False; + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.LogChanges := True; + FItems.DataTable.EnableEventHandlers; + FItems.DataTable.EnableControls; + end; +end; + +initialization + RegisterEditor(IBizRecepciones, ShowEditorAjustarRecepciones, etItem); + +finalization + +end. + diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm new file mode 100644 index 0000000..f42f185 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm @@ -0,0 +1,1715 @@ +inherited fEditorListaRecepciones: TfEditorListaRecepciones + Left = 448 + Top = 221 + Caption = 'Control de recepciones' + ClientHeight = 664 + ClientWidth = 816 + ExplicitWidth = 824 + ExplicitHeight = 698 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 816 + Caption = 'Control de recepciones' + ExplicitWidth = 816 + inherited Image1: TImage + Left = 789 + ExplicitLeft = 789 + end + end + inherited TBXDock: TTBXDock + Width = 816 + ExplicitWidth = 816 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 578 + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 816 + end + inherited tbxFiltro: TTBXToolbar + Left = 578 + ExplicitLeft = 578 + end + end + inherited StatusBar: TStatusBar + Top = 645 + Width = 816 + ExplicitTop = 645 + ExplicitWidth = 816 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 204 + Width = 816 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaRecepciones1: TfrViewListaRecepciones [4] + Left = 0 + Top = 233 + Width = 816 + Height = 412 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 233 + ExplicitWidth = 816 + ExplicitHeight = 412 + inherited cxGrid: TcxGrid + Width = 816 + Height = 412 + ExplicitWidth = 816 + ExplicitHeight = 412 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA + end> + inherited cxGridBandedViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + object TBXDockablePanel1: TTBXDockablePanel [5] + Left = 0 + Top = 76 + MaxClientHeight = 61 + Align = alTop + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + inline frViewParametrosCentro1: TfrViewParametrosCentro + Left = 0 + Top = 19 + Width = 425 + Height = 109 + Align = alLeft + TabOrder = 0 + ReadOnly = False + ExplicitTop = 19 + ExplicitWidth = 425 + ExplicitHeight = 109 + inherited dxLayoutControl1: TdxLayoutControl + Width = 425 + ExplicitWidth = 425 + inherited ccbCentro: TJvCheckedComboBox + Width = 392 + ExplicitWidth = 392 + end + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 816 + Height = 19 + Margins.Left = 5 + Margins.Top = 5 + Align = alTop + Caption = 'Par'#225'metros de consulta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 425 + Top = 19 + Width = 391 + Height = 109 + Align = alClient + AutoSize = True + TabOrder = 2 + object TBXButton3: TTBXButton + Tag = 3 + Left = 8 + Top = 10 + Width = 90 + Height = 21 + Action = actRefrescar + AutoSize = False + Caption = 'Consultar' + ImageIndex = 0 + TabOrder = 0 + Wrapping = twEndEllipsis + end + end + end + inherited EditorActionList: TActionList [6] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar recepci'#243'n' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Left = 331 + Bitmap = {} + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 251 + Top = 88 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + Left = 416 + Top = 224 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + Left = 368 + Top = 168 + end + inherited dsDataTable: TDADataSource [11] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas new file mode 100644 index 0000000..008f4a6 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas @@ -0,0 +1,370 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizRecepciones, uViewListaRecepciones, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, StdCtrls, TBXDkPanels, + uViewParametrosCentro, uViewParametrosControlGrid, uDAInterfaces; + +const + CM_SETFOCUSEDRECORD = WM_USER + 1002; + +type + IEditorListaRecepciones = interface(IEditorGridBase) + ['{5CF9C341-A9BB-4A42-A132-0145827FBD9C}'] + function GetItems: IBizRecepciones; + procedure SetItems(const Value: IBizRecepciones); + property Items: IBizRecepciones read GetItems + write SetItems; + end; + + TfEditorListaRecepciones = class(TfEditorGridBase, IEditorListaRecepciones) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaRecepciones1: TfrViewListaRecepciones; + TBXDockablePanel1: TTBXDockablePanel; + frViewParametrosCentro1: TfrViewParametrosCentro; + TBXLabel1: TTBXLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + TBXButton3: TTBXButton; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizRecepciones; + function GetItems: IBizRecepciones; + procedure SetItems(const Value: IBizRecepciones); + procedure CambiarEstado(const NuevoEstado: TInvRecepcionEstado); + function GetModified: Boolean; override; + procedure CMSetFocusedRecord(var Msg: TMessage); message CM_SETFOCUSEDRECORD; + public + property Items: IBizRecepciones read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleRecepciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaRecepciones.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaRecepciones1; +end; + +function TfEditorListaRecepciones.GetItems: IBizRecepciones; +begin + Result := FItems; +end; + +procedure TfEditorListaRecepciones.SetItems( + const Value: IBizRecepciones); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaRecepciones1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaRecepciones.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + //FItems.DataTable.Active := True; + + frViewParametrosCentro1.Refresh; + with (ViewGrid as IViewListaRecepciones) do + VerPendientes; +end; + +procedure TfEditorListaRecepciones.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + + Items.DataTable.Active := False; + + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmRecepciones.GetItems(tirPendiente); + (ViewGrid as IViewListaRecepciones).VerPendientes; + end; + + 1 : begin + Items := dmRecepciones.GetItems(tirAprobado); + (ViewGrid as IViewListaRecepciones).VerAprobados; + end; + + 2 : begin + Items := dmRecepciones.GetItems; + (ViewGrid as IViewListaRecepciones).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaRecepciones.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepciones.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaRecepciones.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaRecepciones.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaRecepciones.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaRecepciones.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaRecepciones.actRefrescarExecute( + Sender: TObject); +var + ACentrosList : TStringList; + AWhere : String; + i : integer; +begin + AWhere := ''; + + {case (ViewGrid as IViewListaRecepciones).VistaActiva of + trvaPendiente, + trvaAprobado : AWhere := ' and' + else + AWhere := ''; + end;} + + AWhere := AWhere + ' CENTRO in ('; + + Items.DataTable.Active := False; + ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; + + ShowHourglassCursor; + try + if ACentrosList.Count = 0 then + ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') + else begin + with Items.DataTable.Where do + begin + Clear; + for i := 0 to ACentrosList.Count - 1 do + begin + if i > 0 then + AWhere := AWhere + ', '; + AWhere := AWhere + '''' + ACentrosList[i] + ''''; + end; + AWhere := AWhere + ')'; + AddText(AWhere, False); + end; + Items.DataTable.Active := True; + end; + finally + HideHourglassCursor; + FreeAndNIL(ACentrosList); + end; + + inherited; + + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaRecepciones.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(tirPendiente); +end; + +procedure TfEditorListaRecepciones.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tirPendiente); +end; + +procedure TfEditorListaRecepciones.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(tirAprobado); +end; + +procedure TfEditorListaRecepciones.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tirAprobado); +end; + +procedure TfEditorListaRecepciones.CambiarEstado( + const NuevoEstado: TInvRecepcionEstado); +var + ARecord: TcxCustomGridRecord; + i : Integer; + bm : TBookMark ; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + bm := FItems.DataTable.GetBookMark; + //FItems.DataTable.DisableControls; <- No descomentar + ViewGrid._FocusedView.BeginUpdate; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + if (ARecord as TcxGridDataRow).CanFocus then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + end; + FItems.DataTable.ApplyUpdates; + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.FreeBookMark(BM); + //FItems.DataTable.EnableControls; <- No descomentar + ViewGrid._FocusedView.EndUpdate; + ViewGrid._FocusedView.Controller.ClearSelection; + PostMessage(Handle, CM_SETFOCUSEDRECORD, Integer(ViewGrid._FocusedView), + MakeLParam(ViewGrid._FocusedView.Controller.FocusedRowIndex, + ViewGrid._FocusedView.Controller.TopRowIndex)); + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepciones.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaRecepciones.GetModified: Boolean; +begin + Result := False; +end; + +procedure TfEditorListaRecepciones.CMSetFocusedRecord(var Msg: TMessage); +begin + TcxGridDBTableView(msg.WParam).Controller.FocusedRowIndex := Msg.LParamLo; + TcxGridDBTableView(msg.WParam).Controller.TopRowIndex := Msg.LParamHi; +end; + +end. diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm new file mode 100644 index 0000000..04d1789 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm @@ -0,0 +1,1576 @@ +inherited fEditorListaRecepcionesAlbaran: TfEditorListaRecepcionesAlbaran + Left = 286 + Top = 168 + Width = 850 + Height = 671 + Caption = 'Control de '#225'lbaranes' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 842 + Caption = 'Control de albaranes' + inherited Image1: TImage + Left = 815 + end + end + inherited TBXDock: TTBXDock + Width = 842 + inherited tbxMain: TTBXToolbar + object TBXSeparatorItem16: TTBXSeparatorItem [7] + end + object tbxiExpandir: TTBXItem [15] + Action = actExpandir + end + object tbxiContraer: TTBXItem [16] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [17] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + Left = 344 + DockPos = 344 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 842 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 76 + Width = 842 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran [4] + Left = 0 + Top = 105 + Width = 842 + Height = 513 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 842 + Height = 513 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewESTADOPRODUCTO: TcxGridDBColumn + Caption = 'Situaci'#243'n' + end + inherited cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + end + inherited cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + end + inherited cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar recepci'#243'n' + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas new file mode 100644 index 0000000..b6218d1 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas @@ -0,0 +1,184 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaRecepcionesAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizRecepciones, uEditorGridBase, JvTabBar, uCustomView, uViewBase, + uViewGridBase, uViewGrid, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, StdCtrls, + uViewListaRecepcionesAlbaran; + + +type + IEditorListaRecepcionesAlbaran = interface(IEditorGridBase) + ['{143EEF14-E999-4570-85A6-3F06F0F22044}'] + function GetItems: IBizRecepcionesAlbaran; + procedure SetItems(const Value: IBizRecepcionesAlbaran); + property Items: IBizRecepcionesAlbaran read GetItems write SetItems; + end; + + TfEditorListaRecepcionesAlbaran = class(TfEditorGridBase, IEditorListaRecepcionesAlbaran) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + TBXSeparatorItem16: TTBXSeparatorItem; + frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + protected + FItems : IBizRecepcionesAlbaran; + function GetItems: IBizRecepcionesAlbaran; + procedure SetItems(const Value: IBizRecepcionesAlbaran); + public + property Items: IBizRecepcionesAlbaran read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleRecepciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaRecepcionesAlbaran.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaRecepcionesAlbaran1; +end; + +function TfEditorListaRecepcionesAlbaran.GetItems: IBizRecepcionesAlbaran; +begin + Result := FItems; +end; + +procedure TfEditorListaRecepcionesAlbaran.SetItems(const Value: IBizRecepcionesAlbaran); +begin + FItems := Value; + if Assigned(FItems) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FItems.DataTable; + frViewListaRecepcionesAlbaran1.dsDataSource.DataTable := FItems.DataTable; + + if not FItems.DataTable.Active then + FItems.DataTable.Active := True; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + with (ViewGrid as IViewListaRecepcionesAlbaran) do + begin + AjustarAncho; + ContraerTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + Items.DataTable.Active := False; + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmRecepciones.GetItemsAlbaran(tiraPendiente); + end; + + 1 : begin + Items := dmRecepciones.GetItemsAlbaran(tiraRecibido); + end; + + 2 : begin + Items := dmRecepciones.GetItemsAlbaran; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + with (ViewGrid as IViewListaRecepcionesAlbaran) do + begin + ExpandirTodo; + AjustarAncho; + ContraerTodo; + _FocusedView.EndUpdate; + GotoFirst; + end; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaRecepcionesAlbaran.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaRecepcionesAlbaran.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; + ViewGrid.GotoFirst; +end; + +end. diff --git a/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp b/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm b/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm new file mode 100644 index 0000000..f7f43f4 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm @@ -0,0 +1,756 @@ +object ModuleRecepciones: TModuleRecepciones + OldCreateOrder = True + DefaultAction = actRecepcion + Description = 'Control de recepci'#243'n de prendas' + ModuleMenu = MainMenu + ModuleName = 'Control de recepci'#243'n de prendas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001CC4944415478DA63FCFFFF3F032D + 0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B66C17FE5861A06 + 76F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD06A7F0C560C073F + 7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE410C38E584690116 + 79E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F3E405CF82A0561 + 011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF92C79A06410680 + 52113E794216381F7C883B9DDBCB33B81092A7381F6073212140523E0059805C + AC1093FB8166EE253A1FA05B303D4AF63FBEDC7DB7A18501682623D1F9009B05 + 59D76B187EEC78CFC0C0C109C41C703990A54033B15840209D235BC06838F3BF + B1B93DC3D1C279100B0484E096E0B680403A87590032BCBC328061CFBEF72841 + 73B47327D812AC1610CA07300B40865BDA6932648459A1A899B4F80EC3D1CAE5 + 609FB0F3E7635840301F80D3B9C10CB0E1C24A926071111E5606715E4E062D69 + 61880599532116C837A25AC0C8485C1247F601B2258E1A32600B12AC1F80C552 + C31EA2A622522C80C501C892E387AEC3E540119EFCC915C5D7F07C40AC052800 + 185C60FA4206238AE54866C173325916C02C41B200DD1CB805B40434B7000019 + B523EF6A240B860000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000004FB4944415478DA9D957B50547514 + C7BFF7B54F6079DC85856569C1911115F101E1F8C8473435E334D51F65FED38C + 4EE6A4A533CDD41F0565A6D230E39868F218922173CAD2EC9D35D604BE928780 + 4248C28ABB8AC0E2021BCBB2F7D9EFAE3BC60CF888737FBFFB9BFD3DCEE777CE + D97B0EA5AA2A2EECA30015064541148850E467681CB872955D6C309BAA199A02 + CDD0100591ACA9E8EB0FFCA93361FDAA3C20184258281A32280CE56F533151A8 + 08C048069B2C228380C2807102E8E98DCA4B74A617732C039D9E41E09F20B988 + 80AEBFBA3A141AAFAF5A44F60911450C42A43711407012A0BE942B63B8D825D1 + C973E6317A725B42181B95D0D6E4C2DA9D1FC2D5D886AEBF6F63E59AA5A083D7 + F0C5EE1DF0B34EAC7D310BBE811168E60B237E84463BCB176E165F9D04683C18 + 25C424E7729905AF01EC28409B517BB80A09BC01B37373B0BFF8083CAD2EBCB9 + 6F0B0C7A16DD4DB53877DE8B27376EC6CC2C2BA4E101B4FF7214AE8E0EF1B912 + 513709D05C69F65AD317F0E319DBD1E93142A9DF86B414E091393990C5107A3D + 5E58628DB024392004FCE038153DCD75A8FDC30BE7332588776441AE7D1C9DED + 18DC54A35A27015A2A4D04309FEF892B069FB4180D75C7106CD80A451234EBC1 + 720C28D6005992C85C8804940123CBE406EB70D29D8D817E0FB6E77E048F4B1C + 7CA9E23E80EBF1BB90E6588C14AB11474EFC0685FCADEE6EA4EEC4868AF490A8 + 6059DE5C74B86EA2A4F413BC9F5F819B3DF28301A9F67CA4D94CB89FC83209AA + 2811E3289CAC6B4169C5A728CA3D387DC048F7598C36550192198A4A6BC7A02A + 01283A1DDC010BDEFD690C458B3E9E3EA0EDE712E8E93ED81CCB8962ED90161A + 15FE2BDFC0773B80ADA752A70FD0D67F3DB411E3FC7CAC591D073ADA00853C2C + 66C377F60C86AF3660C30FE6E901C8122449C67B7B8E2323DE8B975734039638 + 4831D1A04DCB31547B053ED765BCF22387C2E900044146E9E71DA8AE65F0EC5C + 370A52CE21A48B8573C63866E5CCC7EDBAEBF0756B00F67F00520920C91476CD + DE9A669CEE12B172590E3ADD21083207DF0885998693D8B98DC6687D3F863B1B + B1E17B230A173E0C206117EC291AC0881DE54D38D13484ECEC34F0B106449938 + E8F51C4CC482D6DFBFC3BA471BE110AF41F04B78E394FD01808A0880DF85A4C4 + 5C3888055B8A4FE352BF8A34270F867CB92623516E36C2694B45DFD92A2CCBE8 + 039F988E5E3F8BF2E3E7F1CEC203F706345718BD7C5A36EFE17723C19A17FE92 + 87FD41EC3ED4827AB704DE1A0D2924C36864614B4A874DB88835AB66123752E8 + 76DF44F5675F3D1890E0981D06C426E4C36ED5933C2F223826E18343AD3876CA + 8DA7972491E09B21CA34B266A5223399D4179AC635CFC300CA0D0490C5BB490C + AC29CB11635010088A90640523A321ECA969C3534B529035C342E66492A3D470 + 67190637FA07505573146F2FD87F3F80DE1B6FCFE46FD8F6A2BBCF8EE6D6168C + 9152459152A93D5AD35E5464BCD3282DD18263599C397F01254B4B09409A1A70 + B1CCE0B52467F2BA394538FC6D3B7C837DE4204DD2824CFC2CDF19235DCB15AA + ACCD2BE14AA689D9C0A280FF1AAE2E69707DE51480C6B298718B7D9E3E2ED10E + 65A81D2C4B45942BFF298F80886F48D34679422A27F5DB3D844B9795D0A66AD5 + 301970802BD499A256F4DE100A6EB9C74881892CDE7D4D3C31750A67751013E2 + B1E3892275E72440C37EFA059663575EEF919FBFD5AB10F7DC5BD154202D67E9 + F518723A51F8D85BEA9713B7FD0B5B96F1EFAB7DEF880000000049454E44AE42 + 6082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRecepcion: TAction + Category = 'Inventario' + Caption = 'Control de recepci'#243'n' + ImageIndex = 0 + OnExecute = actRecepcionExecute + end + object actRecepcionAlbaranes: TAction + Category = 'Inventario' + Caption = 'Control de albaranes' + ImageIndex = 1 + OnExecute = actRecepcionAlbaranesExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 110 + Action = actRecepcion + end + object Controldealbaranes1: TMenuItem + Tag = 600 + Action = actRecepcionAlbaranes + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000013A4944415478DA63BC5A21F39F81 + 48A0DDF1841199FFFFFF7F06469001CA0D3510911F3F18181EDC6198D7B98121 + 693EA658D6727C064015CEBEE4CDC0BC3D1562009A186E032A4AC00A196E5C65 + 98FDAB0C62C0744C31DC064404806D8101B001E59862380D38F890B840C41F06 + 04020C1BC01B882003400A40E05AA52CD6A8D66A7FCC883310910D981E25FB1F + 14260C0A2A0C0C1C1C60B1BB0D2D480644600F3098018C8633FF4F2E926748D5 + DB0A3704C5006C81083300A4D9D8DC9E21C1FA01432A5B1703838636D890BB1D + 3D1003F08692C18CFFFDAD910C42FC5C0C9316DF810B1FCD9CCA7077C5060206 + 00354747D980352BC908836910001994FCC995C15E9E81381778F9183128CB8A + 304C9EBE0B2C04F2CE99191A707D04E31A640898BE90C1088B7BB046A0DDE030 + 226800CC10240318A10E07B101D716EAE1AF47BD0C0000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000030F4944415478DA85D35F6C53551C + C0F1EFBDB7F7AEAEAD5BB775CA836E14D6CE2CCCCA26B39B1A9CBEB820E3C168 + 4C7C20C1277DF0C527252EFA26181CC14C08983461C4E1BF88C1180631FC892B + 0ECB4A906D256066270E57D6F5CFD6BBDDF6DEE35D595089915F72929393733E + F99DFC7E3FE97C3F080BA554C4AB4858A939C9359B711FAAAE713F61168DE54C + 66512FE84BAF758618312D5CB24A4192D13BDE14267648E7FB95EDB2A37293A7 + AE31A4B99CD6AF13B30E5FCB932D8B8B92BBBAA686627A8273277EBCD2D3BB21 + 5DD273CE4266EE8659CC9D6C7B431F2803B10157DCED0B3E5AFFD44EF2A94932 + 89B3F85B9BF9EEB333843A36D0B0D6CDE96F86A96D798EE0C676E247DFE3CFE4 + F4A517F7885019B8F269C588B32E10CE068698BE7C81A5F1F7512B34244942D1 + EEC3B2FF26F479AEEACF30AD3D4E77F12D8C8C117D794074DE01546F53B8D07C + 187F63888B1747595A365014194950866487466DFD43ECFE783FCF3BFAA81444 + 7BF7DC052C06223437B5E1D428C7ADB12F2195C0141E8459A0602C707C3449BD + 3188B324A2DBFAEF01C43E7F9D86D62EDC2E3796A930FFD35724A6F3CCDEFCFA + DE80690A3ED8DDCF8E2D0B3C10B0ABA585499D1CE7DAB5297EBBBEEF7F80800D + A8B02B32C985A493CD6BE2B8DC697A7BAA90E34926C6934C5DDFFBDFC04230C2 + 23EBDBF8301223362308B5FA592879C8DE9CA7DB374858BB4462CA20FDC7D1BB + 80432BC0FA70DECEC0DFB891BE4FA28C671CF8EA3C786BAAA82C59B4F3050F3E + 1CE4D8F0393AD84545F11FC0E583DA885ABD369C6F8AB0CEBF895251A7EFC018 + 3F8CA5E80856D9908FAD9D6EBB9432834347D86CEEFC7706BF1C54CAC09CFF08 + 866820974B93CA189C199DA1EB311FAAA6A0C81292E2E0C4F071B6686FDB8015 + DDF6D12A103FA0FEECF135B5A5D6BCCBB1530996F51CF67D8428816595274D58 + A6DD503624F27469432C658DD84BFB44FBED59D85FF56DC5FDF5DD8A5AED2AA4 + 7F2F77E0CA83DBAB74676F8BA8AACC8D9902D9ACF5FD2B7B45CFEA30C92F80FC + F4D549F3D5F95B4272A80824FE0E6975514EC8595BCB88D7CBD0B3EF88C32B67 + 7F01C53983F0FCEC7FE90000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002334944415478DABDD4CD4B14611C + 07F0EF20CCBAA38B422042E5128BA2D641F3105628A4F50F04DEC4378636A14B + 88B8D0C18390872EBD1CD6160A111204CF42E42141BC847852B084243D0641AE + B08B31CDEF7166765E9E99791E151F186661BEF3FB3C0CFB7D14C33070994B21 + 703B77BDCFFCFD2526DB2F92B9397BB01AF6902C1B3432D32F90483CE1064BA5 + 397C1899C1E8C7F8CCF8E2812204B6BFFCC55EF2ACA3BFEC2AAC75A36A45C7D3 + 4FF199B383D620366CF3111FE464CE06BA06B161BB8F836048461EF40D42F108 + 85C3212F189191037FBF0A0C42B188C29FF10A18939103BF4F01E5B267108ECD + DD97272B604C4618A45A1496D26159368C6A11971105FBBEEE4797BA378D7E91 + CC85163F6AF7224BBAF804F2CE5ED1A3D13456A58A1F06BE1E518C6C3E1FF985 + F6A667601A8A54F1A3C0AA072BD07B3680DAD4E9E55AB411D30801634A1D09DE + FE5C015D683828506A1EA874CE196F9FA7A1B72C7B410B0D07054AED0709EBBA + D38BE17B3FA15F9D076A6A0328171429BE1F246CFEDD18DE2CFCE0BEB39E5B3C + 05AF4C0440A1E253A96D90B0EE9E366407EE72F3B489F567EF015545A279D60B + 2A8A789F59DEC232371A7072F20FA954923D4B265576EFCA3432903E332D7D60 + DF5B0B19101D7986D5D769D03415C96A3580DAE060A9CD79ED61E3B54AF1A540 + 01F4FEAD26067ECBB73A83C9708E3669D0851258A325A0599F93503F68CF3F1F + E84237D676028FA82A04BA679F1FB45076DFCA3A439C7FB26FEEC58036EA0379 + 331DF032D77F05B2A7E7C969F3360000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003C64944415478DABD967B4C53571C + C7BFF7D25ADAF14644C40EB48A0614182A746ADC5466073EC77CA3A6262693A8 + 2B3A3715A73173260CFD07B486A9F3B5B06C3EA395971A256AA2F808C5075A10 + 6696A8640E1519D0C77D78EFA1B71115466BE73739F99D73EEEF9ECFF99D9CDF + 2F87E2791EEF539404A428AA4BA7423DBADCD5D2FDE8F2C7B705E30256E6533A + C19439A75D0E66330F7DAEF1AD0B56FFBE0245260E9953E93761E03E4F31F0E5 + DD01F9E8919B103428AC93C3FEB5CB3033FB6BD2FFE19B0262F38A8CF8B7D182 + FA8A1D04987B301F3CEB00C732E039079EDDAD45E3FD22241B58AA5B60E25C63 + 9730092846A3F974B96B4E826ED9934B609C00B694FC882A3387AFF6F1FF0D3C + 76631419BF389C8CC90BA7BD7154CAD06862DB9B1EB8E61EDD3A45A0DA5557C9 + 5853A7750F382F7D1476FC5A06F65C1A7A2ABFF4F330FE7288F40BD37E761F28 + 4A847672166EB2D868C9D294738EC6AC342D0E1EAFC0DEA2939E03BB13C7F160 + 580E0CC33A2D87DF4C17FE1FE0AB30BBD50EBB737CACFCB21781825F63453E98 + BA6238986011DB314D3E35818E4E43F1D378EF01198715BB7334F862DD11F40D + 11735549703C58A14C38505FB008A5C11BBD07B459DB51F85D1234BA0D989270 + 0556FF7E80AF52C8BD5628957A34EC5C8912FFC5DE018A17A2B9A50D9F2DDE0B + 63961C1F4709F9E61F013E301436B90CBE8A2FD160CC4649C09277078AB0C74F + 5A31677D25DA646A18922F604448356CAA300485FBE1438D1D8A804502D0E01D + E08387CD98BBE61C3217A4C2F2A71DCF5A85B2CCF9A0A51D50D86A71D4B00708 + FF1EF53BD7A0D45FEF39508CACA9D98A8CD567E11BDE071FC546A277B08A24BB + 0F4D23C82F00C565379135D68C786D0CEC7FE4E0C4076B3D03CE9A3442C82B16 + 63F42628FA8441DD3FD8556554AA5EF091C91017ADC619D369A4B2ABA10CB022 + 297E212A19AD7BC084D9DB71BC2A05D3C72790E4BE76E76F2CCDBB0AF5E04804 + 06AAE0A752402EF7412F851C4943A270B1FC1296658493D3E02839CC35B5EE01 + 87676CC3895BE33079DC70B28818E58D9A2758995F85BE0322D0D2DC468E5326 + A331B05F081E3F0FC596F98E8EAA23B4DB96FBEE01E3A6E7C2543301BAD17104 + 26D5C8AA7BFF202BEF3A6C2FDA60C88C15A2E7C00A2D521D81615134F113E536 + 3076EA669CBAA7C3C494A12E98B4FB6A4B137E3A701BBBD66B5D9B916AAA24B7 + 8143D337A2A46E0A3E1919430AB127720B38449783D28619D85AB0CF2398A41E + 036352BF256F129E633AEC6BFD0EFBCA37675F70EAB4E8D3BFAEF70C38687C36 + EACF17BC5374927A0224EF52B3D92B3C2426A2FB77E9FBD24BF00815F6456737 + F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas b/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas new file mode 100644 index 0000000..808042e --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas @@ -0,0 +1,94 @@ +unit uPluginControllerRecepciones; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uBizRecepciones; + +type + IMCRecepciones = interface(IInterface) + ['{3BA48DD2-A9D3-4168-9507-84065E8F839B}'] + end; + + TModuleRecepciones = class(TModuleController, IMCRecepciones) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actRecepcion: TAction; + Controldeventasenproceso1: TMenuItem; + actRecepcionAlbaranes: TAction; + Controldealbaranes1: TMenuItem; + procedure actRecepcionExecute(Sender: TObject); + procedure actRecepcionAlbaranesExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleRecepciones, + uEditorListaRecepciones, uEditorListaRecepcionesAlbaran; + +function GetModule : TModuleController; +begin + Result := TModuleRecepciones.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleRecepciones.actRecepcionExecute(Sender: TObject); +var + aControl: IBizRecepciones; + aObj: IEditorListaRecepciones; +begin + aControl := dmRecepciones.GetItems(tirPendiente); + aObj := TfEditorListaRecepciones.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleRecepciones.actRecepcionAlbaranesExecute(Sender: TObject); +var + aControl: IBizRecepcionesAlbaran; + aObj: IEditorListaRecepcionesAlbaran; +begin + aControl := dmRecepciones.GetItemsAlbaran(tiraPendiente); + aObj := TfEditorListaRecepcionesAlbaran.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleRecepciones); + +finalization + UnRegisterModuleClass(TModuleRecepciones); + +end. diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp b/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm b/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm new file mode 100644 index 0000000..cfce401 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm @@ -0,0 +1,513 @@ +inherited frViewListaRecepciones: TfrViewListaRecepciones + Width = 695 + Height = 477 + ExplicitWidth = 695 + ExplicitHeight = 477 + inherited cxGrid: TcxGrid + Width = 695 + Height = 477 + ExplicitWidth = 695 + ExplicitHeight = 477 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = cxGridBandedViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = cxGridBandedViewDIFERENCIA + end> + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewColumnOBSERVACIONES + Preview.Visible = True + Styles.Footer = cxStyleFooter + OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell + object cxGridBandedViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 15 + IsCaptionAssigned = True + end + object cxGridBandedViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + Width = 44 + end + object cxGridBandedViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Visible = False + GroupIndex = 0 + SortIndex = 0 + SortOrder = soAscending + Width = 64 + end + object cxGridBandedViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridBandedViewCODIGOGetDataText + OnGetDisplayText = cxGridBandedViewCODIGOGetDisplayText + GroupIndex = 1 + SortIndex = 1 + SortOrder = soAscending + Width = 32 + end + object cxGridBandedViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + Width = 76 + end + object cxGridBandedViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + Width = 49 + end + object cxGridBandedViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + SortIndex = 2 + SortOrder = soAscending + Width = 49 + end + object cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_ALBARAN' + Visible = False + Width = 94 + end + object cxGridBandedViewALBARAN: TcxGridDBColumn + Caption = 'Albar'#225'n' + DataBinding.FieldName = 'ALBARAN' + OnGetDisplayText = cxGridBandedViewALBARANGetDisplayText + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 71 + end + object cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR_ALBARAN' + Visible = False + Width = 20 + end + object cxGridBandedViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 36 + end + object cxGridBandedViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 34 + end + object cxGridBandedViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 36 + end + object cxGridBandedViewENVIADO: TcxGridDBColumn + Caption = 'Enviado' + DataBinding.FieldName = 'ENVIADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 36 + end + object cxGridBandedViewR38: TcxGridDBColumn + DataBinding.FieldName = 'R38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR40: TcxGridDBColumn + DataBinding.FieldName = 'R40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR42: TcxGridDBColumn + DataBinding.FieldName = 'R42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR44: TcxGridDBColumn + DataBinding.FieldName = 'R44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR46: TcxGridDBColumn + DataBinding.FieldName = 'R46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR48: TcxGridDBColumn + DataBinding.FieldName = 'R48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewRECIBIDO: TcxGridDBColumn + DataBinding.FieldName = 'RECIBIDO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewRR38: TcxGridDBColumn + Caption = 'R38' + DataBinding.FieldName = 'RR38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR38GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle + Width = 34 + end + object cxGridBandedViewRR40: TcxGridDBColumn + Caption = 'R40' + DataBinding.FieldName = 'RR40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR40GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR42: TcxGridDBColumn + Caption = 'R42' + DataBinding.FieldName = 'RR42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR42GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR44: TcxGridDBColumn + Caption = 'R44' + DataBinding.FieldName = 'RR44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR44GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR46: TcxGridDBColumn + Caption = 'R46' + DataBinding.FieldName = 'RR46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR46GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR48: TcxGridDBColumn + Caption = 'R48' + DataBinding.FieldName = 'RR48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR48GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn + Caption = 'Recibido' + DataBinding.FieldName = 'RECIBIDO_RECT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridBandedViewRECIBIDO_RECTGetDataText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 20 + end + object cxGridBandedViewDIFERENCIA: TcxGridDBColumn + Caption = 'Diferencia' + DataBinding.FieldName = 'DIFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridBandedViewDIFERENCIAGetDataText + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Width = 50 + end + object cxGridViewColumnOBSERVACIONES: TcxGridDBColumn + Caption = 'OBSERVACIONES' + DataBinding.FieldName = 'OBSERVACIONES_ALBARAN' + PropertiesClassName = 'TcxMemoProperties' + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE RECEPCI'#211'N') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas b/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas new file mode 100644 index 0000000..080d655 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas @@ -0,0 +1,595 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo, uDAInterfaces; + +type + TvRecepcionVistaActiva = (trvaPendiente, trvaAprobado, trvaTodos); + + IViewListaRecepciones = interface(IViewGrid) + ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + + function GetVistaActiva : TvRecepcionVistaActiva; + property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; + end; + + TfrViewListaRecepciones = class(TfrViewGrid, IViewListaRecepciones) + cxGridBandedViewCENTRO: TcxGridDBColumn; + cxGridBandedViewFILIAL: TcxGridDBColumn; + cxGridBandedViewCODIGO: TcxGridDBColumn; + cxGridBandedViewPRODUCTO: TcxGridDBColumn; + cxGridBandedViewCOLOR: TcxGridDBColumn; + cxGridBandedViewFECHA: TcxGridDBColumn; + cxGridBandedViewALBARAN: TcxGridDBColumn; + cxGridBandedViewE38: TcxGridDBColumn; + cxGridBandedViewE40: TcxGridDBColumn; + cxGridBandedViewE42: TcxGridDBColumn; + cxGridBandedViewE44: TcxGridDBColumn; + cxGridBandedViewE46: TcxGridDBColumn; + cxGridBandedViewE48: TcxGridDBColumn; + cxGridBandedViewENVIADO: TcxGridDBColumn; + cxGridBandedViewR38: TcxGridDBColumn; + cxGridBandedViewR40: TcxGridDBColumn; + cxGridBandedViewR42: TcxGridDBColumn; + cxGridBandedViewR44: TcxGridDBColumn; + cxGridBandedViewR46: TcxGridDBColumn; + cxGridBandedViewR48: TcxGridDBColumn; + cxGridBandedViewRECIBIDO: TcxGridDBColumn; + cxGridBandedViewDIFERENCIA: TcxGridDBColumn; + cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn; + cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn; + cxGridBandedViewRR38: TcxGridDBColumn; + cxGridBandedViewRR40: TcxGridDBColumn; + cxGridBandedViewRR42: TcxGridDBColumn; + cxGridBandedViewRR44: TcxGridDBColumn; + cxGridBandedViewRR46: TcxGridDBColumn; + cxGridBandedViewRR48: TcxGridDBColumn; + cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn; + cxGridBandedViewAPROBADO: TcxGridDBColumn; + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewColumnOBSERVACIONES: TcxGridDBColumn; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewALBARANGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewALBARANStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRECIBIDO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridBandedViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetVistaActiva : TvRecepcionVistaActiva; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; + end; + + +implementation + +uses + uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaRecepciones.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaRecepciones.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaRecepciones.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaRecepciones.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridBandedViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewALBARANGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + if Length(VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index])) > 0 then + AText := AText + ' (' + VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index]) + ')'; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewALBARANStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + + if VarToStr(ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]) = 'N' then + AStyle := cxStyle1; +end; + +procedure TfrViewListaRecepciones.cxGridViewCustomDrawGroupCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridBandedViewFILIAL then + begin + ARecIndex := AViewInfo.GridRecord.RecordIndex; + Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridBandedViewFILIAL.Index]; + AViewInfo.Text := 'Centro: ' + Val1; + end; +end; + + +procedure TfrViewListaRecepciones.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := AText + ' ' + Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaRecepciones.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaRecepciones.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaRecepciones.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRECIBIDO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + with Sender.GridView.DataController do + begin + Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRECIBIDO_RECT.Index], 0); + Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewENVIADO.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaRecepciones.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyle1.Font.Style; + AnItem.Font.Color := cxStyle1.Font.Color; + end; + end; +end; + +procedure TfrViewListaRecepciones.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridBandedViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +function TfrViewListaRecepciones.GetVistaActiva: TvRecepcionVistaActiva; +begin + if FTipo = 'N' then + Result := trvaPendiente + else if FTipo = 'S' then + Result := trvaAprobado + else + Result := trvaTodos; +end; + +end. diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp b/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm b/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm new file mode 100644 index 0000000..8d07c37 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm @@ -0,0 +1,262 @@ +inherited frViewListaRecepcionesAlbaran: TfrViewListaRecepcionesAlbaran + Width = 695 + Height = 477 + inherited cxGrid: TcxGrid + Width = 695 + Height = 477 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.KeyFieldNames = 'Albaran;Codigo;Color' + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + Preview.Visible = True + Styles.Footer = cxStyleFooter + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ALBARAN' + Visible = False + OnGetDataText = cxGridViewALBARANGetDataText + GroupIndex = 0 + Width = 63 + end + object cxGridViewESTADOALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ESTADOALBARAN' + Visible = False + Width = 21 + end + object cxGridViewFILIAL: TcxGridDBColumn + DataBinding.FieldName = 'FILIAL' + Visible = False + Width = 111 + end + object cxGridViewESTADOPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'ESTADOPRODUCTO' + Width = 35 + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Width = 43 + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Width = 143 + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Width = 35 + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + Width = 38 + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + Width = 38 + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + Width = 36 + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + Width = 39 + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + Width = 37 + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + Width = 37 + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE ALBARANES') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Informe nuevo' + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas b/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas new file mode 100644 index 0000000..0ef731b --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas @@ -0,0 +1,111 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaRecepcionesAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + IViewListaRecepcionesAlbaran = interface(IViewGrid) + ['{F0B4B97B-158B-4FD8-B3F1-8ECAC7AE40D5}'] + end; + + TfrViewListaRecepcionesAlbaran = class(TfrViewGrid, IViewListaRecepcionesAlbaran) + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewALBARAN: TcxGridDBColumn; + cxGridViewESTADOALBARAN: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewESTADOPRODUCTO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + procedure cxGridViewALBARANGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + end; + + +implementation + +uses + uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} +procedure TfrViewListaRecepcionesAlbaran.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaRecepcionesAlbaran.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaRecepcionesAlbaran.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaRecepcionesAlbaran.cxGridViewALBARANGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if Assigned(Sender) then + begin + Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewALBARAN.Index]; + AText := Val1; + Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewFILIAL.Index]; + AText := AText + ' - Destino: ' + Val1; + end; +end; + +end. diff --git a/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup b/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup new file mode 100644 index 0000000..bb8123f --- /dev/null +++ b/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\BaseD10.bdsproj + ..\..\ControlesBase\ControlesBaseD10.bdsproj + ..\Parametros\Cliente\Parametros.bdsproj + ..\..\Usuarios\Usuarios.bdsproj + ..\..\Configuracion\Configuracion.bdsproj + Cliente\Recepciones.bdsproj + ..\..\Cliente\AdminPV.bdsproj + ..\..\Servidor\AdminPV_Server.bdsproj + BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl Recepciones.bpl AdminPV.exe AdminPV_Server.exe + + + + diff --git a/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local b/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local new file mode 100644 index 0000000..b451b7b --- /dev/null +++ b/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas b/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas new file mode 100644 index 0000000..b9531a4 --- /dev/null +++ b/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas @@ -0,0 +1,85 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizRecepciones; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_RECEPCIONES = 'Client.Recepciones'; + BIZ_RECEPCIONESALBARAN = 'Client.RecepcionesAlbaran'; + +type + TInvRecepcionEstado = (tirPendiente, tirAprobado); + TInvRecepcionAlbaranEstado = (tiraPendiente, tiraRecibido); + + IBizRecepciones = interface(IDAStronglyTypedDataTable) //IRecepciones) + ['{51AA574C-78B9-43B7-B278-CDD95B729F60}'] + procedure Show; + procedure SetEstado(const AValue : TInvRecepcionEstado); + function GetEstado : TInvRecepcionEstado ; + property Estado : TInvRecepcionEstado read GetEstado write SetEstado; + end; + + IBizRecepcionesAlbaran = interface(IDAStronglyTypedDataTable) //IRecepcionesAlbaran) + ['{167478EB-ECE5-48D6-A0F2-66F07B62CA3F}'] + end; + + TBizRecepcionesDataTableRules = class(TDADataTableRules, IBizRecepciones) //TRecepcionesDataTableRules, IBizRecepciones, + protected + procedure SetEstado(const AValue : TInvRecepcionEstado); + function GetEstado : TInvRecepcionEstado ; + public + procedure Show; + property Estado : TInvRecepcionEstado read GetEstado write SetEstado; + end; + + TBizRecepcionesAlbaranDataTableRules = class(TDADataTableRules, IBizRecepcionesAlbaran) //TRecepcionesAlbaranDataTableRules, IBizRecepcionesAlbaran, + end; + +implementation + +uses + uEditorUtils, uDataModuleRecepciones; + +{ TBizRecepcionDataTableRules } + +function TBizRecepcionesDataTableRules.GetEstado: TInvRecepcionEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := tirAprobado + else + Result := tirPendiente +end; + +procedure TBizRecepcionesDataTableRules.SetEstado( + const AValue: TInvRecepcionEstado); +begin + case AValue of + tirPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + tirAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizRecepcionesDataTableRules.Show; +begin + ShowEditor(IBizRecepciones, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_RECEPCIONES, TBizRecepcionesDataTableRules); + RegisterDataTableRules(BIZ_RECEPCIONESALBARAN, TBizRecepcionesAlbaranDataTableRules); + +end. + diff --git a/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm b/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm new file mode 100644 index 0000000..538d1bc --- /dev/null +++ b/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm @@ -0,0 +1,2482 @@ +object srvRecepciones: TsrvRecepciones + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schRecepciones + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schRecepciones: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION_ALBARANES' + SQL = + 'SELECT ALBARAN, ESTADOALBARAN, FILIAL, ESTADOPRODUCTO, CODIGO, P' + + 'RODUCTO, COLOR, E38,'#10'E40, E42, E44, E46, E48'#10'FROM RDX_V_CONTROL_' + + 'RECEPCION_ALBARANES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'ESTADOALBARAN' + TableField = 'ESTADOALBARAN' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'ESTADOPRODUCTO' + TableField = 'ESTADOPRODUCTO' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end> + end> + Name = 'RecepcionesAlbaran' + Fields = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOPRODUCTO' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'Recepciones' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT'#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO ' + + '= '#39'N'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'RecepcionesPendientes' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO' + + ' = '#39'S'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end> + end> + Name = 'RecepcionesAprobadas' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT '#10' RECIBIDO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL_R' + + 'ECEPCION'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = :CENT' + + 'RO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end> + end> + Name = 'RefreshRecepciones' + Fields = < + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'begin'#10' declare @rowcount_var int'#10' declare @ALBARAN char(7)' + + #10' declare @ESTADO_ALBARAN varchar(20)'#10' declare @OBSERVACIO' + + 'NES_ALBARAN varchar(255)'#10' declare @CONTABILIZAR_ALBARAN char(' + + '1)'#10#10' declare @RR38 numeric(15,0)'#10' declare @RR40 numeric(15' + + ',0)'#10' declare @RR42 numeric(15,0)'#10' declare @RR44 numeric(15' + + ',0)'#10' declare @RR46 numeric(15,0)'#10' declare @RR48 numeric(15' + + ',0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA datetime'#10' ' + + ' declare @CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' ' + + ' declare @COLOR varchar(10)'#10#10' set @ALBARAN = :ALBARAN'#10' s' + + 'et @ESTADO_ALBARAN = :ESTADO_ALBARAN'#10' set @OBSERVACIONES_ALBA' + + 'RAN = :OBSERVACIONES_ALBARAN'#10' set @CONTABILIZAR_ALBARAN = :CO' + + 'NTABILIZAR_ALBARAN'#10#10' set @RR38 = :RR38'#10' set @RR40 = :RR40'#10 + + ' set @RR42 = :RR42'#10' set @RR44 = :RR44'#10' set @RR46 = :RR4' + + '6'#10' set @RR48 = :RR48'#10#10' set @APROBADO = :APROBADO'#10' set @' + + 'FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CODIGO = :CODI' + + 'GO'#10' set @COLOR = :COLOR'#10#10#10' /* ****************************' + + '******* */'#10' if @ALBARAN <> '#39#39#10' begin'#10' update RDX_A' + + 'JUSTES_ALBARAN set'#10#9' ESTADO = @ESTADO_ALBARAN,'#10#9' OBS' + + 'ERVACIONES = @OBSERVACIONES_ALBARAN,'#10#9' CONTABILIZAR = @CON' + + 'TABILIZAR_ALBARAN'#10' where RDX_AJUSTES_ALBARAN.ALBARAN = @' + + 'ALBARAN'#10#10#9' select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10' if @ROWCO' + + 'UNT_VAR = 0'#10#9' begin'#10' insert into RDX_AJUSTES_ALBARAN' + + #10' (ALBARAN, ESTADO, OBSERVACIONES, CONTABILIZ' + + 'AR)'#10' values (@ALBARAN, @ESTADO_ALBARAN,'#10' ' + + ' @OBSERVACIONES_ALBARAN, @CONTABILIZAR_ALBARAN)'#10#10' ' + + ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10' end'#10#10' ' + + ' /* *********************************** */'#10#9'update RDX_RECEPCI' + + 'ON_AJUSTES set'#10#9' CANT38 = @RR38,'#10#9' CANT40 = ' + + '@RR40,'#10#9' CANT42 = @RR42,'#10#9' CANT44 = @RR44,'#10#9 + + ' CANT46 = @RR46,'#10#9' CANT48 = @RR48,'#10' ' + + ' APROBADO = @APROBADO,'#10' FECHACAMBIO = CURRENT' + + '_TIMESTAMP'#10#9'where'#10' (RDX_RECEPCION_AJUSTES.CENTRO = @' + + 'CENTRO and'#10#9' RDX_RECEPCION_AJUSTES.CODIGO = @CODIGO and'#10#9' ' + + ' RDX_RECEPCION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_RECEPCIO' + + 'N_AJUSTES.FECHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9 + + 'if @ROWCOUNT_VAR = 0'#10' begin'#10' insert into RDX_RECE' + + 'PCION_AJUSTES'#10' (FECHA, CENTRO, CODIGO, COLOR,'#10' ' + + ' APROBADO, FECHACAMBIO,'#10' CANT38, CA' + + 'NT40, CANT42,'#10' CANT44, CANT46, CANT48)'#10' ' + + 'values ('#10' @FECHA, @CENTRO, @CODIGO,'#10' ' + + ' @COLOR, @APROBADO, CURRENT_TIMESTAMP,'#10' @RR3' + + '8, @RR40, @RR42,'#10' @RR44, @RR46, @RR48)'#10#10' ' + + ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10'end'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Recepciones' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object bpRecepciones: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'Recepciones' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpRecepcionesAprobadas: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'RecepcionesAprobadas' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpRecepcionesPendientes: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'RecepcionesPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Recepciones_APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'APROBADO' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHACAMBIO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CENTRO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'FILIAL' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CODIGO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'PRODUCTO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'COLOR' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'ALBARAN' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ESTADO_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'OBSERVACIONES_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONTABILIZAR_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'ENVIADO' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'RECIBIDO' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR38' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR40' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR42' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR44' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR46' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR48' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'RECIBIDO_RECT' + Alignment = taRightJustify + end + item + Name = 'Recepciones_DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'DIFERENCIA' + Alignment = taRightJustify + end> + Left = 48 + Top = 104 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 48 + Top = 168 + end +end diff --git a/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas b/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas new file mode 100644 index 0000000..0e9d902 --- /dev/null +++ b/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas @@ -0,0 +1,52 @@ +unit srvRecepciones_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + uDAScriptingProvider, uDABusinessProcessor, + {Generated:} VARELA_Intf, uDAClasses, + uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvRecepciones } + TsrvRecepciones = class(TDARemoteService, IsrvRecepciones) + bpRecepciones: TDABusinessProcessor; + bpRecepcionesAprobadas: TDABusinessProcessor; + bpRecepcionesPendientes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schRecepciones: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvRecepciones methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, Variants; + +procedure Create_srvRecepciones(out anInstance : IUnknown); +begin + anInstance := TsrvRecepciones.Create(NIL); +end; + +{ srvRecepciones } +initialization + TROClassFactory.Create('srvRecepciones', Create_srvRecepciones, TsrvRecepciones_Invoker); + +finalization + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj new file mode 100644 index 0000000..d5c0d3d --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + ReferenciaGenerica.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk new file mode 100644 index 0000000..041fc26 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk @@ -0,0 +1,75 @@ +package ReferenciaGenerica; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R; + +contains + uPluginControllerReferenciaGenerica in 'uPluginControllerReferenciaGenerica.pas' {ModuleReferenciaGenerica: TModuleController}, + uDataModuleReferenciaGenerica in 'uDataModuleReferenciaGenerica.pas' {dmReferenciaGenerica: TDAClientDataModule}, + uBizReferenciaGenerica in '..\Reglas\uBizReferenciaGenerica.pas', + schReferenciaGenericaClient_Intf in '..\Reglas\schReferenciaGenericaClient_Intf.pas', + uEditorListaReferenciaGenerica in 'uEditorListaReferenciaGenerica.pas' {fEditorListaReferenciaGenerica: TCustomEditor}, + uViewListaReferenciaGenerica in 'uViewListaReferenciaGenerica.pas' {frViewListaReferenciaGenerica: TCustomView}, + uEditorCambioReferenciaGenerica in 'uEditorCambioReferenciaGenerica.pas' {fEditorCambioReferenciaGenerica}, + schReferenciaGenericaServer_Intf in '..\Reglas\schReferenciaGenericaServer_Intf.pas'; + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache new file mode 100644 index 0000000000000000000000000000000000000000..5cbf90e3bbf830a342122ca0bd172835e3c64e30 GIT binary patch literal 1360 zcmd6lJx&8b4274DW9$hy0A)4^ArUEJMJh|k%s7kDWQ=SNNL+)CpMsmR3Wy>>TDpl# z`xT$xd&f=Fd>nPBFqcp^l-*j)vF*v7^I&jo1(gLBY;F9Jh`~%WZFOEEOS@FLr{D%F zR7wcF6b%Fmi6xEdD_WCM4vgoNNjc!S8WI{rRG7unY*4`?Id@4VDQEi-=J zXWa#SuK?I39)lw&XOUg>lFf0N^w3iO{^HNn-)fpVN5^fE=`cOrNx#F*Ez30OYfVpA YOi%x;>1R#OWhw*bPO__{L^^Hj7v@RmPyhe` literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm b/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm new file mode 100644 index 0000000..fa19a3d --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm @@ -0,0 +1,227 @@ +object dmReferenciaGenerica: TdmReferenciaGenerica + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 298 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvReferenciaGenerica' + Left = 40 + Top = 32 + end + object ds_ReferenciaGenerica: TDADataSource + Left = 192 + Top = 96 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'ReferenciaGenerica' + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = False + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 40 + Top = 96 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 40 + Top = 160 + end + object tbl_ReferenciaGenerica: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'NUMCON' + DataType = datInteger + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + end + item + Name = 'CENTRO' + DataType = datString + Size = 45 + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 86 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'VTAPROCESO' + DataType = datFloat + end + item + Name = 'VTAFINAL' + DataType = datFloat + end + item + Name = 'VTATERM' + DataType = datFloat + end + item + Name = 'VALTOT' + DataType = datFloat + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ReferenciaGenerica' + IndexDefs = <> + Left = 192 + Top = 40 + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas new file mode 100644 index 0000000..2615ede --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas @@ -0,0 +1,139 @@ +unit uDataModuleReferenciaGenerica; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, + uBizReferenciaGenerica, uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer; + +type + TdmReferenciaGenerica = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + ds_ReferenciaGenerica: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + tbl_ReferenciaGenerica: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + procedure Print(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); + procedure Preview(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); + function GetItems : IBizReferenciaGenerica; + function GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GetSelectedItems(const AItems : IBizReferenciaGenerica): IBizReferenciaGenerica; + end; + +var + dmReferenciaGenerica: TdmReferenciaGenerica; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmReferenciaGenerica.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmReferenciaGenerica.GetItems: IBizReferenciaGenerica; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ReferenciaGenerica, dtLista); + dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; + Result := (dtLista as IBizReferenciaGenerica); + finally + HideHourglassCursor; + end; +end; + +function TdmReferenciaGenerica.GetProducto(const Codigo, Talla, + Color: String; out CodigoBarras, Descripcion: String): Boolean; +begin + Result := (RORemoteService as IsrvReferenciaGenerica).GetProducto(Codigo, + Talla, Color, CodigoBarras, Descripcion); +end; + +function TdmReferenciaGenerica.GetSelectedItems( + const AItems: IBizReferenciaGenerica): IBizReferenciaGenerica; +var + dtLista : TDACDSDataTable; + ATarget : TDADataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ReferenciaGenerica, dtLista, False); + CopyDataTable(AItems.DataTable, dtLista, True); + dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; + dtLista.LogChanges := True; // Para guardar los cambios + dtLista.RemoteFetchEnabled := True; // Para guardar los cambios + Result := (dtLista as IBizReferenciaGenerica); + finally + HideHourglassCursor; + end; +end; + +procedure TdmReferenciaGenerica.Preview(const Centro, Vendedor: String; const Estado : String; + const AFiltro : String); +var + AStream: TROBinaryMemoryStream; + AEditorPreview : TfEditorPreview; +begin + AEditorPreview := TfEditorPreview.Create(Application); + try + ShowHourglassCursor; + try + AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); + AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); + finally + HideHourglassCursor; + end; + AEditorPreview.ShowModal; + finally + AEditorPreview.Release; + AStream.Free; + end; +end; + +procedure TdmReferenciaGenerica.Print(const Centro, Vendedor: String; const Estado : String; + const AFiltro : String); +var + AStream: TROBinaryMemoryStream; + AEditorPreview : TfEditorPreview; +begin + AEditorPreview := TfEditorPreview.Create(Application); + try + ShowHourglassCursor; + try + AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); + AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); + finally + HideHourglassCursor; + end; + AEditorPreview.Print; + finally + AEditorPreview.Release; + AStream.Free; + end; +end; + +initialization + dmReferenciaGenerica := TdmReferenciaGenerica.Create(nil); + +finalization + FreeAndNil(dmReferenciaGenerica); + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm new file mode 100644 index 0000000..9562cb5 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm @@ -0,0 +1,574 @@ +object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica + Left = 418 + Top = 278 + BorderIcons = [biSystemMenu, biMaximize] + Caption = 'Rectificar referencia gen'#233'rica de producto' + ClientHeight = 535 + ClientWidth = 759 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + DesignSize = ( + 759 + 535) + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 759 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Rectificar referencia gen'#233'rica de producto') + Comments.Strings = ( + + 'Indique el c'#243'digo de producto, el color y la talla que correspon' + + 'de a la referencia gen'#233'rica.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 16 + Top = 483 + Width = 730 + Height = 4 + Anchors = [akLeft, akRight, akBottom] + Shape = bsBottomLine + end + object lblImporteTotal: TLabel + Left = 85 + Top = 460 + Width = 5 + Height = 13 + Anchors = [akLeft, akBottom] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object bAceptar: TButton + Left = 577 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 671 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object bComprobar: TButton + Left = 17 + Top = 496 + Width = 152 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Comprobar todos los c'#243'digos' + TabOrder = 2 + OnClick = bComprobarClick + end + object cxGrid: TcxGrid + Left = 16 + Top = 88 + Width = 729 + Height = 385 + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 3 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.DataSource = dsDataSource + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0.##' + Kind = skSum + Column = cxGridViewVALTOT + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.AlwaysShowEditor = True + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsData.Deleting = False + OptionsData.Inserting = False + OptionsSelection.InvertSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.Navigator = True + OptionsView.ScrollBars = ssVertical + OptionsView.ShowEditButtons = gsebAlways + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLines = glNone + OptionsView.GroupByBox = False + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + OptionsView.BandHeaders = False + Bands = < + item + Width = 667 + end> + object cxGridViewRecID: TcxGridDBBandedColumn + DataBinding.FieldName = 'RecID' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewOperacion: TcxGridDBBandedColumn + OnGetProperties = cxGridViewOperacionGetProperties + Options.ShowEditButtons = isebAlways + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 26 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridViewNUMINF: TcxGridDBBandedColumn + DataBinding.FieldName = 'NUMINF' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 1 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE1: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE1' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 2 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE2: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE2' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 3 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE3: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE3' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 4 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewNUMCON: TcxGridDBBandedColumn + DataBinding.FieldName = 'NUMCON' + Visible = False + SortIndex = 5 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewFECHA: TcxGridDBBandedColumn + Caption = 'Fecha venta' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxTextEditProperties' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 0 + SortOrder = soAscending + Styles.Content = cxStyleNoEditable + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridViewCODCENTRO: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODCENTRO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCENTRO: TcxGridDBBandedColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 304 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridViewCODVENDEDOR: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODVENDEDOR' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Width = 348 + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewVENDEDOR: TcxGridDBBandedColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 173 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridViewNUMTALON: TcxGridDBBandedColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 87 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 1 + end + object cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODIGO_BARRA' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCODIGO: TcxGridDBBandedColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + Styles.Content = cxStyleEditable + Width = 114 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 1 + end + object cxGridViewPRODUCTO: TcxGridDBBandedColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleProductor + Styles.OnGetContentStyle = cxGridViewPRODUCTOStylesGetContentStyle + Width = 300 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 1 + end + object cxGridViewCOLOR: TcxGridDBBandedColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + Styles.Content = cxStyleEditable + Width = 60 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 1 + end + object cxGridViewTALLA: TcxGridDBBandedColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + Styles.Content = cxStyleEditable + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 1 + end + object cxGridViewVTAPROCESO: TcxGridDBBandedColumn + Caption = 'Proceso' + DataBinding.FieldName = 'VTAPROCESO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 49 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridViewVTAFINAL: TcxGridDBBandedColumn + Caption = 'Final/Resc.' + DataBinding.FieldName = 'VTAFINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object cxGridViewVTATERM: TcxGridDBBandedColumn + Caption = 'Term./Dev.' + DataBinding.FieldName = 'VTATERM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object cxGridViewVALTOT: TcxGridDBBandedColumn + Caption = 'Importe' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Options.Moving = False + Styles.Content = cxStyleEditable + Width = 90 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 1 + end + object cxGridViewESTADO: TcxGridDBBandedColumn + DataBinding.FieldName = 'ESTADO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Width = 144 + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewFECHACAMBIO: TcxGridDBBandedColumn + DataBinding.FieldName = 'FECHACAMBIO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object dsDataSource: TDADataSource + Left = 200 + Top = 496 + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + Top = 272 + object cxStyleEditable: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleNoEditable: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6250335 + end + object cxStyleProductor: TcxStyle + AssignedValues = [svTextColor] + TextColor = 14898176 + end + object cxStyleNoEncontrado: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end + object cxEditRepository1: TcxEditRepository + Left = 240 + Top = 272 + object cxEditButtonDesglosar: TcxEditRepositoryButtonItem + Properties.Buttons = < + item + Caption = '+' + Default = True + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000AF4F1F00A9471700A33F0F000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000B5572600FDA66A00A94717000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000BA5F2D00FCB07600AF4F1F000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00CE794700C9724000C46C3A00BF653300FBB98200B5572600AF4F + 1F00A9471700A33F0F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D3804E00F8DAA900F9D29F00F9C99500FAC18B00FBB98200FCB0 + 7600FDA66A00A9471700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400D3804E00CE794700C9724000F9C99500BF653300BA5F + 2D00B5572600AF4F1F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000CE794700F9D29F00C46C3A000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000D3804E00F8DAA900C97240000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000D8865400D3804E00CE7947000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} + Kind = bkText + Stretchable = False + end> + Properties.ViewStyle = vsButtonsOnly + Properties.OnButtonClick = cxEditButtonDesglosarPropertiesButtonClick + end + object cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem + Properties.Buttons = < + item + Caption = '-' + Default = True + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D7855300CF7A4800C7703E00BF653300B85B2A00AE4E1D00A441 + 10009B34040098300000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400F8E0B000F8E0B000F8E0B000F9D3A100FAC18B00FCAE + 7300FE9859009B340400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400D8865400D7855300CF7A4800C7703E00BF653300B85B + 2A00AE4E1D00A4411000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} + Kind = bkText + Stretchable = False + end> + Properties.ViewStyle = vsButtonsOnly + Properties.OnButtonClick = cxEditButtonEliminarDesglosePropertiesButtonClick + end + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ new file mode 100644 index 0000000..d9923d1 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ @@ -0,0 +1,144 @@ +object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica + Left = 421 + Top = 281 + Width = 767 + Height = 569 + BorderIcons = [biSystemMenu, biMaximize] + Caption = 'Rectificar referencia gen'#233'rica de producto' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + DesignSize = ( + 759 + 535) + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 759 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Rectificar referencia gen'#233'rica de producto') + Comments.Strings = ( + + 'Indique el c'#243'digo de producto, el color y la talla que correspon' + + 'de a la referencia gen'#233'rica.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 16 + Top = 483 + Width = 730 + Height = 4 + Anchors = [akLeft, akBottom] + Shape = bsBottomLine + end + object Label1: TLabel + Left = 16 + Top = 460 + Width = 61 + Height = 13 + Anchors = [akLeft, akBottom] + Caption = 'Importe total:' + end + object lblImporteTotal: TLabel + Left = 85 + Top = 460 + Width = 5 + Height = 13 + Anchors = [akLeft, akBottom] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object bAceptar: TButton + Left = 577 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 671 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object bComprobar: TButton + Left = 17 + Top = 496 + Width = 152 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Comprobar todos los c'#243'digos' + TabOrder = 2 + OnClick = bComprobarClick + end + object dsDataSource: TDADataSource + DataTable = dmReferenciaGenerica.tbl_ReferenciaGenerica + Left = 200 + Top = 496 + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + Top = 272 + object cxStyleEditable: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleNoEditable: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6250335 + end + object cxStyleProductor: TcxStyle + AssignedValues = [svTextColor] + TextColor = 14898176 + end + object cxStyleNoEncontrado: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas new file mode 100644 index 0000000..3740253 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas @@ -0,0 +1,314 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorCambioReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, + cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit, cxButtonEdit, + cxTextEdit, cxEditRepositoryItems, uDAInterfaces; + +type + IEditorCambioReferenciaGenerica = interface + ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + bComprobar: TButton; + dsDataSource: TDADataSource; + cxStyleRepository1: TcxStyleRepository; + cxStyleEditable: TcxStyle; + cxStyleNoEditable: TcxStyle; + cxStyleProductor: TcxStyle; + cxStyleNoEncontrado: TcxStyle; + cxGrid: TcxGrid; + cxGridView: TcxGridDBBandedTableView; + cxGridViewRecID: TcxGridDBBandedColumn; + cxGridViewNUMINF: TcxGridDBBandedColumn; + cxGridViewCLAVE1: TcxGridDBBandedColumn; + cxGridViewCLAVE2: TcxGridDBBandedColumn; + cxGridViewCLAVE3: TcxGridDBBandedColumn; + cxGridViewFECHA: TcxGridDBBandedColumn; + cxGridViewCODCENTRO: TcxGridDBBandedColumn; + cxGridViewCENTRO: TcxGridDBBandedColumn; + cxGridViewCODVENDEDOR: TcxGridDBBandedColumn; + cxGridViewVENDEDOR: TcxGridDBBandedColumn; + cxGridViewNUMTALON: TcxGridDBBandedColumn; + cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn; + cxGridViewCODIGO: TcxGridDBBandedColumn; + cxGridViewPRODUCTO: TcxGridDBBandedColumn; + cxGridViewCOLOR: TcxGridDBBandedColumn; + cxGridViewTALLA: TcxGridDBBandedColumn; + cxGridViewVTAPROCESO: TcxGridDBBandedColumn; + cxGridViewVTAFINAL: TcxGridDBBandedColumn; + cxGridViewVTATERM: TcxGridDBBandedColumn; + cxGridViewVALTOT: TcxGridDBBandedColumn; + cxGridViewESTADO: TcxGridDBBandedColumn; + cxGridViewFECHACAMBIO: TcxGridDBBandedColumn; + cxGridLevel: TcxGridLevel; + lblImporteTotal: TLabel; + cxGridViewOperacion: TcxGridDBBandedColumn; + cxEditRepository1: TcxEditRepository; + cxEditButtonDesglosar: TcxEditRepositoryButtonItem; + cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem; + cxGridViewNUMCON: TcxGridDBBandedColumn; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bComprobarClick(Sender: TObject); + procedure cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure bAceptarClick(Sender: TObject); + procedure cxGridViewOperacionGetProperties( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); + procedure cxEditButtonDesglosarPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxEditButtonEliminarDesglosePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); + private + FItems : IBizReferenciaGenerica; + FCodigoBarras : String; + FHayErrores : Boolean; + FItemsErroneos : Integer; + procedure DesglosarReferencia; + protected + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + public + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, + schReferenciaGenericaClient_Intf, Math; + +{$R *.dfm} + +function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorCambioReferenciaGenerica; +begin + AEditor := TfEditorCambioReferenciaGenerica.Create(Application); + try + AEditor.Items := (ABizObject as IBizReferenciaGenerica); + Result := AEditor.ShowModal; + if Result = mrOk then + begin + {(ABizObject as IBizReferenciaGenerica).Edit; + (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; + (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; + (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; + (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; + (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; + (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; + (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; + (ABizObject as IBizReferenciaGenerica).Post; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} + end; + +{ if Result = mrIgnore then + begin + (ABizObject as IBizReferenciaGenerica).Delete; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; + end;} + + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); +begin + FCodigoBarras := ''; + FHayErrores := False; + FItemsErroneos := 0; + FItems.DataTable.Open; + cxGridView.DataController.GotoFirst; +end; + +function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorCambioReferenciaGenerica.SetItems( + const AValue: IBizReferenciaGenerica); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if VarToStrDef(AViewInfo.GridRecord.Values[cxGridViewNUMCON.Index], '0') <> '0' then + ACanvas.Brush.Color := clInfoBk; + + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + + if (AViewInfo.Item.Index = cxGridViewCOLOR.Index) or + (AViewInfo.Item.Index = cxGridViewTALLA.Index) or + (AViewInfo.Item.Index = cxGridViewCODIGO.Index) or + (AViewInfo.Item.Index = cxGridViewVALTOT.Index) then + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]) + else + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end + else + if (AViewInfo.Item.Index = cxGridViewVTAPROCESO.Index) or + (AViewInfo.Item.Index = cxGridViewVTAFINAL.Index) or + (AViewInfo.Item.Index = cxGridViewVTATERM.Index) then + begin + ADone := True; + with AViewInfo do + begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]); + end; + end; +end; + +procedure TfEditorCambioReferenciaGenerica.bComprobarClick( + Sender: TObject); +var + Descripcion : String; + CodigoBarras : String; + bEncontrado : Boolean; + i : Integer; + ABookmark : Pointer; +begin + FHayErrores := False; + FItemsErroneos := 0; + FItems.DataTable.DisableControls; + ABookmark := FItems.DataTable.GetBookMark; + try + FItems.First; + for i := 0 to FItems.RecordCount - 1 do + begin + bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, + FItems.COLOR, CodigoBarras, Descripcion); + FItems.Edit; + if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then + begin + FItems.PRODUCTO := Descripcion; + FItems.CODIGO_BARRA := CodigoBarras; + FItems.Estado := rgResuelto; + FItems.FECHACAMBIO := Now; + end + else begin + FHayErrores := True; + FItemsErroneos := FItemsErroneos + 1; + FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; + end; + FItems.Post; + FItems.Next; + end; + finally + FItems.DataTable.EnableControls; + FItems.DataTable.GotoBookmark(ABookmark); + FItems.DataTable.FreeBookmark(ABookmark); + end; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then + AStyle := cxStyleNoEncontrado; +end; + +procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); +begin + bComprobar.Click; + if FHayErrores then + if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + + '¿Desea guardar los cambios de solamente aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then + Exit; + + // Adaptación a DA5 + // Sólo guardar en el caso de que haya algún item correcto. Si todos están mal da una excepción el servidor + // porque no hay filas a actualizar. + if FItemsErroneos < FItems.DataTable.RecordCount then + FItems.DataTable.ApplyUpdates; + Close; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewOperacionGetProperties( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); +begin + if Assigned(ARecord) then + begin + // Sólo aparecerá el botón '+' si alguna cantidad es mayor que 1 + if (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAPROCESO.Index], 0)) > 1) or + (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAFINAL.Index], 0)) > 1) or + (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTATERM.Index], 0)) > 1) then + AProperties := cxEditButtonDesglosar.Properties + else + if (StrToIntDef(ARecord.DisplayTexts[cxGridViewNUMCON.Index], 0) > 0) then + AProperties := cxEditButtonEliminarDesglose.Properties + end; +end; + +procedure TfEditorCambioReferenciaGenerica.DesglosarReferencia; +begin + FItems.DesglosarReferencia; +end; + +procedure TfEditorCambioReferenciaGenerica.cxEditButtonDesglosarPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + DesglosarReferencia; +end; + +procedure TfEditorCambioReferenciaGenerica.cxEditButtonEliminarDesglosePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + FItems.Delete; +end; + +initialization + RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); + +finalization + +end. + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ new file mode 100644 index 0000000..833fcb5 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ @@ -0,0 +1,210 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorCambioReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, + cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit; + +type + IEditorCambioReferenciaGenerica = interface + ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + bComprobar: TButton; + dsDataSource: TDADataSource; + cxStyleRepository1: TcxStyleRepository; + cxStyleEditable: TcxStyle; + cxStyleNoEditable: TcxStyle; + cxStyleProductor: TcxStyle; + cxStyleNoEncontrado: TcxStyle; + Label1: TLabel; + lblImporteTotal: TLabel; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bComprobarClick(Sender: TObject); + procedure cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizReferenciaGenerica; + FCodigoBarras : String; + FHayErrores : Boolean; + protected + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + public + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, + schReferenciaGenericaClient_Intf; + +{$R *.dfm} + +function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorCambioReferenciaGenerica; +begin + AEditor := TfEditorCambioReferenciaGenerica.Create(Application); + try + AEditor.Items := (ABizObject as IBizReferenciaGenerica); + Result := AEditor.ShowModal; + if Result = mrOk then + begin + {(ABizObject as IBizReferenciaGenerica).Edit; + (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; + (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; + (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; + (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; + (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; + (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; + (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; + (ABizObject as IBizReferenciaGenerica).Post; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} + end; + +{ if Result = mrIgnore then + begin + (ABizObject as IBizReferenciaGenerica).Delete; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; + end;} + + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); +begin + FCodigoBarras := ''; + FHayErrores := False; + FItems.DataTable.Open; + cxGridView.DataController.GotoFirst; +end; + +function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorCambioReferenciaGenerica.SetItems( + const AValue: IBizReferenciaGenerica); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorCambioReferenciaGenerica.bComprobarClick( + Sender: TObject); +var + Descripcion : String; + CodigoBarras : String; + bEncontrado : Boolean; + i : Integer; + ABookmark : Pointer; +begin + FHayErrores := False; + FItems.DataTable.DisableControls; + ABookmark := FItems.DataTable.GetBookMark; + try + FItems.First; + for i := 0 to FItems.RecordCount - 1 do + begin + bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, + FItems.COLOR, CodigoBarras, Descripcion); + FItems.Edit; + if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then + begin + FItems.PRODUCTO := Descripcion; + FItems.CODIGO_BARRA := CodigoBarras; + FItems.Estado := rgResuelto; + FItems.FECHACAMBIO := Now; + end + else begin + FHayErrores := True; + FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; + end; + FItems.Post; + FItems.Next; + end; + finally + FItems.DataTable.EnableControls; + FItems.DataTable.GotoBookmark(ABookmark); + FItems.DataTable.FreeBookmark(ABookmark); + end; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then + AStyle := cxStyleNoEncontrado; +end; + +procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); +begin + bComprobar.Click; + if FHayErrores then + if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + + '¿Desea guardar los cambios de aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then + Exit; + FItems.DataTable.ApplyUpdates; + Close; +end; + +initialization + RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); + +finalization + +end. + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm new file mode 100644 index 0000000..4f2abe1 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm @@ -0,0 +1,1652 @@ +inherited fEditorListaReferenciaGenerica: TfEditorListaReferenciaGenerica + Left = 301 + Top = 227 + Caption = 'Control de referencias gen'#233'ricas' + ClientHeight = 637 + ClientWidth = 901 + ExplicitWidth = 909 + ExplicitHeight = 671 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de referencias gen'#233'ricas' + ExplicitWidth = 901 + inherited Image1: TImage + Left = 874 + ExplicitLeft = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + ExplicitWidth = 901 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 691 + object TBXSubmenuItem2: TTBXSubmenuItem [7] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actEspera + end + object TBXItem35: TTBXItem + Action = actResuelto + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 901 + end + inherited tbxFiltro: TTBXToolbar + Left = 691 + ExplicitLeft = 691 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 901 + ExplicitTop = 618 + ExplicitWidth = 901 + end + inline frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica [3] + Left = 0 + Top = 105 + Width = 901 + Height = 513 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 105 + ExplicitWidth = 901 + ExplicitHeight = 513 + inherited cxGrid: TcxGrid + Width = 901 + Height = 513 + ExplicitWidth = 901 + ExplicitHeight = 513 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'N'#186' de ventas: 0' + Kind = skCount + FieldName = 'NUMTALON' + Column = frViewListaReferenciaGenerica1.cxGridViewNUMTALON + end> + end + end + end + object JvTabBar1: TJvTabBar [4] + Left = 0 + Top = 76 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'En espera' + ImageIndex = 24 + end + item + Caption = 'Resueltos' + ImageIndex = 25 + end> + OnTabSelected = JvTabBar1TabSelected + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Rectificar referencia' + Hint = 'Asocia un producto con'#13#10'la venta de referencia gen'#233'rica' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Caption = 'Eliminar rectificaci'#243'n' + Hint = + 'Elimina la asociaci'#243'n de un producto'#13#10'con esta venta con referen' + + 'cia gen'#233'rica' + end + inherited actPrevisualizar: TAction + Caption = '&Previsualizar formulario' + Hint = 'Previsualizar el formulario '#13#10'para indicar los productos' + end + inherited actImprimir: TAction + Caption = 'Imprimir formulario' + Hint = 'Imprimir el formulario'#13#10'para indicar los productos' + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actEspera: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'En espera' + GroupIndex = 1 + ImageIndex = 24 + OnExecute = actEsperaExecute + OnUpdate = actEsperaUpdate + end + object actResuelto: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Resuelto' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actResueltoExecute + OnUpdate = actResueltoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actEspera + AutoCheck = True + GroupIndex = 1 + end + object Resuelto1: TMenuItem + Action = actResuelto + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas new file mode 100644 index 0000000..d4e4299 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas @@ -0,0 +1,447 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uBizReferenciaGenerica, uCustomView, uViewBase, + uViewControlGrid, uViewListaReferenciaGenerica, uViewGridBase, uViewGrid, + JvTabBar, Grids, DBGrids, StdCtrls, Buttons, uDAInterfaces; + +type + IEditorListaReferenciaGenerica = interface(IEditorGridBase) + ['{875E6A40-3243-4325-A28B-D415BEC291BF}'] + function GetItems: IBizReferenciaGenerica; + procedure SetItems(const Value: IBizReferenciaGenerica); + property Items: IBizReferenciaGenerica read GetItems + write SetItems; + end; + + TfEditorListaReferenciaGenerica = class(TfEditorGridBase, IEditorListaReferenciaGenerica) + frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica; + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + Resuelto1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actEspera: TAction; + actResuelto: TAction; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actEsperaExecute(Sender: TObject); + procedure actEsperaUpdate(Sender: TObject); + procedure actResueltoUpdate(Sender: TObject); + procedure actResueltoExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizReferenciaGenerica; + function GetItems: IBizReferenciaGenerica; + procedure SetItems(const Value: IBizReferenciaGenerica); + procedure CambiarEstado (const NuevoEstado : TRefGenEstado); + public + property Items: IBizReferenciaGenerica read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, uDataModuleReferenciaGenerica, cxGridDBTableView, + cxGridDBDataDefinitions; + + +{$R *.dfm} + +{ TfEditorListaReferenciaGenerica } + +constructor TfEditorListaReferenciaGenerica.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaReferenciaGenerica1; +end; + +function TfEditorListaReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorListaReferenciaGenerica.SetItems( + const Value: IBizReferenciaGenerica); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaReferenciaGenerica1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaReferenciaGenerica.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + FItems.DataTable.Active := True; + Items.VerPendientes; + with (ViewGrid as IViewListaReferenciaGenerica) do + begin + VerPendientes; + ExpandirTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaReferenciaGenerica.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + case Item.Index of + 0 : begin + Items.VerPendientes; + (ViewGrid as IViewListaReferenciaGenerica).VerPendientes; + end; + + 1 : begin + Items.VerEnEspera; + (ViewGrid as IViewListaReferenciaGenerica).VerEnEspera; + end; + + 2 : begin + Items.VerResueltos; + (ViewGrid as IViewListaReferenciaGenerica).VerResueltos + end; + end; + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaReferenciaGenerica.actModificarExecute( + Sender: TObject); +var + AObj : IBizReferenciaGenerica; + ASelectedRowList : ISelectedRowList; +begin + inherited; + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + try + ViewGrid._FocusedView.BeginUpdate; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + AObj := dmReferenciaGenerica.GetSelectedItems(Items); + finally + ViewGrid._FocusedView.EndUpdate; + end; + AObj.Show; + finally + AObj := nil; + ASelectedRowList := nil; + actRefrescar.Execute; + HideHourglassCursor + end; + end; +end; + +procedure TfEditorListaReferenciaGenerica.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaReferenciaGenerica.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaReferenciaGenerica.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaReferenciaGenerica.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaReferenciaGenerica.actEliminarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index = 2); + +end; + +procedure TfEditorListaReferenciaGenerica.actPrevisualizarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index < 2) and + (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) +end; + +procedure TfEditorListaReferenciaGenerica.actImprimirUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index < 2) and + (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) +end; + +procedure TfEditorListaReferenciaGenerica.actPrevisualizarExecute( + Sender: TObject); +var + ACentro : String; + AVendedor : String; + AGroupIndexInicial : Integer; + AEstado : TRefGenEstado; + AFiltro : String; +begin + // inherited; + AGroupIndexInicial := 0; + + while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); + ViewGrid._FocusedView.Controller.GoToNext(True); + AGroupIndexInicial := AGroupIndexInicial + 1; + end; + + ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; + if AGroupIndexInicial < 2 then + AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; + + case JvTabBar1.SelectedTab.Index of + 0 : AEstado := rgPendiente; + 1 : AEstado := rgEnEspera; + 2 : AEstado := rgResuelto; + else + AEstado := rgPendiente; + end; + + AFiltro := ViewGrid.GetFilterAsSQL; + + Items.Preview(ACentro, AVendedor, AEstado, AFiltro); +end; + +procedure TfEditorListaReferenciaGenerica.actImprimirExecute( + Sender: TObject); +var + ACentro : String; + AVendedor : String; + AGroupIndexInicial : Integer; + AString : String; + AEstado : TRefGenEstado; + AFiltro : String; +begin + // inherited; + AGroupIndexInicial := 0; + + while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); + ViewGrid._FocusedView.Controller.GoToNext(True); + AGroupIndexInicial := AGroupIndexInicial + 1; + end; + + ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; + if AGroupIndexInicial < 2 then + AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; + + case JvTabBar1.SelectedTab.Index of + 0 : AEstado := rgPendiente; + 1 : AEstado := rgEnEspera; + 2 : AEstado := rgResuelto; + else + AEstado := rgPendiente; + end; + + AFiltro := ViewGrid.GetFilterAsSQL; + + Items.Print(ACentro, AVendedor, AEstado, AFiltro); + + AString := '¿Desea que las ventas del centro ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CENTRO').Index]; + if Length(AVendedor) > 0 then + AString := AString + #10#13 + 'y del vendedor ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('VENDEDOR').Index]; + + AString := AString + #10#13 + 'pasen a espera de la rectificación?'; + + if (Application.MessageBox(PAnsiChar(AString), 'Atención', MB_YESNO) = IDYES) then + CambiarEstado(rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount > 0) +end; + +procedure TfEditorListaReferenciaGenerica.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaReferenciaGenerica.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(rgPendiente); +end; + +procedure TfEditorListaReferenciaGenerica.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgPendiente); +end; + +procedure TfEditorListaReferenciaGenerica.actEsperaExecute( + Sender: TObject); +begin + CambiarEstado(rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actEsperaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actResueltoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgResuelto); +end; + +procedure TfEditorListaReferenciaGenerica.actResueltoExecute( + Sender: TObject); +begin + CambiarEstado(rgResuelto); +end; + +procedure TfEditorListaReferenciaGenerica.CambiarEstado( + const NuevoEstado: TRefGenEstado); +var + ASelectedRowList : ISelectedRowList; + i : Integer; +begin + inherited; + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + FItems.DataTable.DisableControls; + + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + try + for i := 0 to ASelectedRowList.SelectedRows.Count - 1 do + begin + FItems.First; + if FItems.Locate('RecID', ASelectedRowList.SelectedRows[i]) then + begin + FItems.Edit; + FItems.FECHACAMBIO := Now; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + FItems.DataTable.ApplyUpdates; + ViewGrid._FocusedView.Controller.ClearSelection; + except + FItems.DataTable.CancelUpdates; + end; + finally + FItems.DataTable.EnableControls; + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaReferenciaGenerica.actEliminarExecute( + Sender: TObject); +var + AObj : IBizReferenciaGenerica; + ASelectedRowList : ISelectedRowList; + i : integer; +begin +// inherited; + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + AObj := dmReferenciaGenerica.GetSelectedItems(Items); + while not AObj.DataTable.EOF do + AObj.Delete; + AObj.DataTable.ApplyUpdates; + finally + AObj := nil; + ASelectedRowList := nil; + HideHourglassCursor; + actRefrescar.Execute; + end; + end; +end; + + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp b/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm b/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm new file mode 100644 index 0000000..872b578 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm @@ -0,0 +1,132 @@ +object ModuleReferenciaGenerica: TModuleReferenciaGenerica + OldCreateOrder = True + DefaultAction = actRefGenericas + Description = 'Control de referencia gen'#233'rica' + ModuleMenu = MainMenu + ModuleName = 'Control de referencia gen'#233'rica' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002024944415478DA + 63FCFFFF3F0323232303B5C04603C6FF40AAC2FFC2FF4E109F919A16800CF789 + CA61607AB89861D3D18F604BA866C19A1533FFB3766430F859F333301CFBC0B0 + E93FD8CC16AA580032DCC6C19FE1C58B170CEB162D6430DE3781E1F985FF0C19 + C010A2D882030B32FEDFF861C0606161C1F0E0C103B0252B96AF603870F00023 + C5710032DCCC458781E9C9198605172CC062C88613B4A063FABAFF7FFFFD63F8 + FBF71FC33F28FDF7DF5F867F40DA43E23803CCF0E7DF5E31BCBCB58D21A44586 + C12BBA9C01A667415F21EE2002195E9E110834F83F54C37FB8C6F36B0BB11A7E + E8F805B0BA3F403551590D0CE7774EC76E01A586EF397A8E61DED24DD82DA0D4 + 7090BAFD272E60B7009FE1A797A432EC7FE2C750EBBB0DAFE17F80EA0F9FBA84 + 6901BAE1E63EB90C87D74F8046F07F86964C6D869A684B869E63010CBEB26138 + 0D07D1C7CE5E41B5A073C67AAC86CF5FB38F21C6DF9E61E7E22C86D3C70E3264 + 1B2932F46EBDC7B0F1F61F9C8683F8A72E5CC3F481A17BE6FFBEA622060B7D05 + B02530C341ECE4E424867BB7AF33B8E97E61C8EB3E0B0F3E6C8683E8B3976F60 + 8F039825465A3248F1F08FC1C5D19A4149559361D2E419040D07E10BD76EE14E + 45304B74D524A1190B622072C4E3331CC4BE72F30E6E0B902D51571425D97010 + 206801B22520C5E4008216C02C21CB7428805B404B306AC1C05B000079BE9B8D + E3C07E050000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRefGenericas: TAction + Category = 'Ventas' + Caption = 'Control de referencias gen'#233'ricas' + ImageIndex = 0 + OnExecute = actRefGenericasExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 110 + Action = actRefGenericas + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63642011FC3060F80FA2392E30308268465235B346E532FC5E369961D1050686 + 34A07EA20D383183E1FF13A54B0C6F2E2D65602AE9048B116D0048B39ECF1486 + 97B7B6312C3C64C620D5D000D68CD50B7D7337FFFFF3E72FC39F3F7F1840B41B + 7B38034C330887B4C830F8C65781E5FEFEFD8B6A00487361920FC3BFFFFF810A + FE319C9FC782A1F9C8C94B60CDBF81B86DD2128401A46ABEFFE41DC3A2959B20 + 06A06B9EBF783983C1EF580671352FAC9A7F01F1D3171F19E62E5DC7C008D2EC + E960CAA0A628C6E01A59C1B0797E33C3E2E5AB18126223192E005D814DF39FDF + FF185EBEFDCC3063E12A880BDAA6AEF91FE861C3202729C8F0E7EF3F066D4D55 + 78B860D30CA2DF7FFCC63079CE324418D4F52DFB1FE9EFC4202AC403F6C61F60 + 08FFF9FB1FAB6610FFCBD79F0C7D3316A1C64269DBFCFF49E19EE0002206744E + 9E87990E72EB66FE07DB0E8DE7DFBFFF40F01F28FE8D4A33FEFFFF9F94EC8001 + 06DE00000C3C25BBC192F80F0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020F4944415478DA + 63FCFFFF3F033D01E3C8B09091919126866F346004FBC6FFC27FB00560BB6865 + 21C8329FA81C06A6878B19361DFD08B6946616AE5931F33F6B4706839F353F03 + C3B10F0C9B201E64F03BFF8F91EA16822CB371F06778F1E205C3BA450B198CF7 + 4D6080052BD57D786041C6FF1B3F0C182C2C2C181E3C7800B674C5F2150C070E + 1EA07E1C822C3373D161607A728661C1050BB018B26544593879D176A2F28CEE + BF8D0C30CB9E7F7BC5F0F2D6368690161986F2B6D928EA72623D70C721C832A0 + 02BC16FDF9FB9FE1E8922CAC961D3B7599E1EFBF7F4035FF18FE0271646603C3 + B91DD3B05B486DCB761F39C7306FE926EC1652DB3210BDFFF805EC16D2C2B2DF + BFFF321C397319D34264CB2E5C7FCA9054D8CA30AFBF9AC140531AC5B28A3865 + 060EC54E865ADF6D445906A24F9CBF8A6AE194C53B507C66E4910592048933C0 + C44196810CAA4E5465A889B664E83916C0E02B1B46D03210FFF4A5EB983E3474 + CFFCDFD754C4E060A602F62128186C4C74C13E8459B661760AC3E9630719B28D + 14197AB7DE63D878FB0F41CB40F4F9AB37B1C721B2A5C8C108D3181D13C370EF + F6750637DD2F0C45FD17C0E2842C03E1CB376EE34EA5C896225B06A26DAC4C19 + 94543519A64D9F4DB46520F3AFDCBC83DB42644B2D0D14E106FCFEF317C57262 + 2D03018216225B6AA4254B9165445B886C294803A580280B6196526C1B14C02D + A42718B570E85B0800B34ACDE7425C769D0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas new file mode 100644 index 0000000..6a7c6fc --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas @@ -0,0 +1,72 @@ +unit uPluginControllerReferenciaGenerica; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCReferenciaGenerica = interface(IInterface) + ['{11391827-E14C-449B-AA0A-56193B945226}'] + end; + + TModuleReferenciaGenerica = class(TModuleController, IMCReferenciaGenerica) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actRefGenericas: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actRefGenericasExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uEditorListaReferenciaGenerica, + uBizReferenciaGenerica, uDataModuleReferenciaGenerica; + +function GetModule : TModuleController; +begin + Result := TModuleReferenciaGenerica.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleReferenciaGenerica.actRefGenericasExecute(Sender: TObject); +var + aControl: IBizReferenciaGenerica; + aObj: IEditorListaReferenciaGenerica; +begin + aControl := dmReferenciaGenerica.GetItems; + aObj := TfEditorListaReferenciaGenerica.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleReferenciaGenerica); + +finalization + UnRegisterModuleClass(TModuleReferenciaGenerica); + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp b/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm b/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm new file mode 100644 index 0000000..dc062a3 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm @@ -0,0 +1,140 @@ +inherited frViewListaReferenciaGenerica: TfrViewListaReferenciaGenerica + Width = 504 + ExplicitWidth = 504 + inherited cxGrid: TcxGrid + Width = 504 + ExplicitWidth = 504 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.Filter.Options = [] + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'N'#186' de ventas: 0' + Kind = skCount + FieldName = 'NUMTALON' + Column = cxGridViewNUMTALON + end> + OptionsSelection.MultiSelect = True + OptionsSelection.UnselectFocusedRecordOnExit = True + OptionsView.GridLines = glVertical + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewColumn1: TcxGridDBColumn + DataBinding.FieldName = 'RECID' + Visible = False + end + object cxGridViewFECHACAMBIO: TcxGridDBColumn + Caption = 'Cambiado' + DataBinding.FieldName = 'FECHACAMBIO' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha venta' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCODCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CODCENTRO' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODVENDEDOR: TcxGridDBColumn + DataBinding.FieldName = 'CODVENDEDOR' + Visible = False + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + GroupIndex = 1 + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewVTAPROCESO: TcxGridDBColumn + Caption = 'Proceso' + DataBinding.FieldName = 'VTAPROCESO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTAFINAL: TcxGridDBColumn + Caption = 'Final/Resc' + DataBinding.FieldName = 'VTAFINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTATERM: TcxGridDBColumn + Caption = 'Term/Dev' + DataBinding.FieldName = 'VTATERM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALTOT: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleResuelto: TcxStyle + AssignedValues = [svTextColor] + TextColor = 5921370 + end + object cxStyleEnEspera1semana: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleResueltoRectificado: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas new file mode 100644 index 0000000..5150184 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas @@ -0,0 +1,180 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizReferenciaGenerica, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, uDAInterfaces; + +type + IViewListaReferenciaGenerica = interface(IViewGrid) + ['{2D43B302-DAA6-45FE-BC72-BAD3591CCE67}'] + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + end; + + TfrViewListaReferenciaGenerica = class(TfrViewGrid, IViewListaReferenciaGenerica) + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewVTAPROCESO: TcxGridDBColumn; + cxGridViewVTAFINAL: TcxGridDBColumn; + cxGridViewVTATERM: TcxGridDBColumn; + cxGridViewVALTOT: TcxGridDBColumn; + cxGridViewCODCENTRO: TcxGridDBColumn; + cxGridViewCODVENDEDOR: TcxGridDBColumn; + cxGridViewFECHACAMBIO: TcxGridDBColumn; + cxStyleResuelto: TcxStyle; + cxStyleEnEspera1semana: TcxStyle; + cxStyleResueltoRectificado: TcxStyle; + cxGridViewColumn1: TcxGridDBColumn; + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + FEstado : TRefGenEstado; + public + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + end; + + +implementation + +uses uDataModuleReferenciaGenerica, DateUtils, cxGridDBDataDefinitions; + +{$R *.dfm} + +procedure TfrViewListaReferenciaGenerica.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaReferenciaGenerica.VerEnEspera; +begin + cxGridViewFECHACAMBIO.Visible := True; + cxGridViewFECHACAMBIO.Caption := 'En espera desde'; + FEstado := rgEnEspera; +end; + +procedure TfrViewListaReferenciaGenerica.VerPendientes; +begin + cxGridViewFECHACAMBIO.Visible := False; + FEstado := rgPendiente; +end; + +procedure TfrViewListaReferenciaGenerica.VerResueltos; +begin + cxGridViewFECHACAMBIO.Visible := True; + cxGridViewFECHACAMBIO.Caption := 'Fecha de rectificación'; + FEstado := rgResuelto; +end; + +procedure TfrViewListaReferenciaGenerica.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo + if ARecord.Expandable then + Exit; + + if FEstado = rgResuelto then + begin + if AItem.Index in [cxGridViewPRODUCTO.Index, cxGridViewCOLOR.Index, + cxGridViewTALLA.Index] then + AStyle := cxStyleResueltoRectificado + else + AStyle := cxStyleResuelto; + Exit; + end; + + if FEstado = rgEnEspera then + begin + AColumn := cxGridViewFECHACAMBIO; + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + AFecha := Now; + end; + + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleEnEspera1semana + end; + end; +end; + +procedure TfrViewListaReferenciaGenerica.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ARecord: TcxCustomGridRecord; + AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; +end; + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas b/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas new file mode 100644 index 0000000..9210b56 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas @@ -0,0 +1,913 @@ +unit schReferenciaGenericaClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID__ExisteFilaReferenciaGenerica = '{D1595576-9979-4EBB-840B-FF8B69E9AF21}'; + RID_InformeRefGenerica = '{C8CFA7EB-16B5-4AB4-A583-3EBD915B44B8}'; + RID_GetProducto = '{5D97B590-D22E-4D97-AFC6-400986B4D9FA}'; + RID_ReferenciaGenerica = '{A40BCD4C-E370-497D-8C28-118CBC1A3664}'; + + { Data table names } + nme__ExisteFilaReferenciaGenerica = '_ExisteFilaReferenciaGenerica'; + nme_InformeRefGenerica = 'InformeRefGenerica'; + nme_GetProducto = 'GetProducto'; + nme_ReferenciaGenerica = 'ReferenciaGenerica'; + + { _ExisteFilaReferenciaGenerica fields } + fld__ExisteFilaReferenciaGenericaNUMINF = 'NUMINF'; + fld__ExisteFilaReferenciaGenericaCLAVE1 = 'CLAVE1'; + fld__ExisteFilaReferenciaGenericaCLAVE2 = 'CLAVE2'; + fld__ExisteFilaReferenciaGenericaCLAVE3 = 'CLAVE3'; + fld__ExisteFilaReferenciaGenericaNUMCON = 'NUMCON'; + + { _ExisteFilaReferenciaGenerica field indexes } + idx__ExisteFilaReferenciaGenericaNUMINF = 0; + idx__ExisteFilaReferenciaGenericaCLAVE1 = 1; + idx__ExisteFilaReferenciaGenericaCLAVE2 = 2; + idx__ExisteFilaReferenciaGenericaCLAVE3 = 3; + idx__ExisteFilaReferenciaGenericaNUMCON = 4; + + { InformeRefGenerica fields } + fld_InformeRefGenericaCODCENTRO = 'CODCENTRO'; + fld_InformeRefGenericaCENTRO = 'CENTRO'; + fld_InformeRefGenericaCODVENDEDOR = 'CODVENDEDOR'; + fld_InformeRefGenericaVENDEDOR = 'VENDEDOR'; + fld_InformeRefGenericaFECHA = 'FECHA'; + fld_InformeRefGenericaNUMTALON = 'NUMTALON'; + fld_InformeRefGenericaCANTIDAD = 'CANTIDAD'; + fld_InformeRefGenericaVALTOT = 'VALTOT'; + + { InformeRefGenerica field indexes } + idx_InformeRefGenericaCODCENTRO = 0; + idx_InformeRefGenericaCENTRO = 1; + idx_InformeRefGenericaCODVENDEDOR = 2; + idx_InformeRefGenericaVENDEDOR = 3; + idx_InformeRefGenericaFECHA = 4; + idx_InformeRefGenericaNUMTALON = 5; + idx_InformeRefGenericaCANTIDAD = 6; + idx_InformeRefGenericaVALTOT = 7; + + { GetProducto fields } + fld_GetProductoCODIGO_BARRA = 'CODIGO_BARRA'; + fld_GetProductoCOR_PRODUTO = 'COR_PRODUTO'; + fld_GetProductoDESC_PRODUTO = 'DESC_PRODUTO'; + fld_GetProductoPRODUTO = 'PRODUTO'; + fld_GetProductoGRADE = 'GRADE'; + + { GetProducto field indexes } + idx_GetProductoCODIGO_BARRA = 0; + idx_GetProductoCOR_PRODUTO = 1; + idx_GetProductoDESC_PRODUTO = 2; + idx_GetProductoPRODUTO = 3; + idx_GetProductoGRADE = 4; + + { ReferenciaGenerica fields } + fld_ReferenciaGenericaNUMINF = 'NUMINF'; + fld_ReferenciaGenericaCLAVE1 = 'CLAVE1'; + fld_ReferenciaGenericaCLAVE2 = 'CLAVE2'; + fld_ReferenciaGenericaCLAVE3 = 'CLAVE3'; + fld_ReferenciaGenericaNUMCON = 'NUMCON'; + fld_ReferenciaGenericaFECHA = 'FECHA'; + fld_ReferenciaGenericaCODCENTRO = 'CODCENTRO'; + fld_ReferenciaGenericaCENTRO = 'CENTRO'; + fld_ReferenciaGenericaCODVENDEDOR = 'CODVENDEDOR'; + fld_ReferenciaGenericaVENDEDOR = 'VENDEDOR'; + fld_ReferenciaGenericaNUMTALON = 'NUMTALON'; + fld_ReferenciaGenericaCODIGO_BARRA = 'CODIGO_BARRA'; + fld_ReferenciaGenericaCODIGO = 'CODIGO'; + fld_ReferenciaGenericaPRODUCTO = 'PRODUCTO'; + fld_ReferenciaGenericaCOLOR = 'COLOR'; + fld_ReferenciaGenericaTALLA = 'TALLA'; + fld_ReferenciaGenericaVTAPROCESO = 'VTAPROCESO'; + fld_ReferenciaGenericaVTAFINAL = 'VTAFINAL'; + fld_ReferenciaGenericaVTATERM = 'VTATERM'; + fld_ReferenciaGenericaVALTOT = 'VALTOT'; + fld_ReferenciaGenericaESTADO = 'ESTADO'; + fld_ReferenciaGenericaFECHACAMBIO = 'FECHACAMBIO'; + + { ReferenciaGenerica field indexes } + idx_ReferenciaGenericaNUMINF = 0; + idx_ReferenciaGenericaCLAVE1 = 1; + idx_ReferenciaGenericaCLAVE2 = 2; + idx_ReferenciaGenericaCLAVE3 = 3; + idx_ReferenciaGenericaNUMCON = 4; + idx_ReferenciaGenericaFECHA = 5; + idx_ReferenciaGenericaCODCENTRO = 6; + idx_ReferenciaGenericaCENTRO = 7; + idx_ReferenciaGenericaCODVENDEDOR = 8; + idx_ReferenciaGenericaVENDEDOR = 9; + idx_ReferenciaGenericaNUMTALON = 10; + idx_ReferenciaGenericaCODIGO_BARRA = 11; + idx_ReferenciaGenericaCODIGO = 12; + idx_ReferenciaGenericaPRODUCTO = 13; + idx_ReferenciaGenericaCOLOR = 14; + idx_ReferenciaGenericaTALLA = 15; + idx_ReferenciaGenericaVTAPROCESO = 16; + idx_ReferenciaGenericaVTAFINAL = 17; + idx_ReferenciaGenericaVTATERM = 18; + idx_ReferenciaGenericaVALTOT = 19; + idx_ReferenciaGenericaESTADO = 20; + idx_ReferenciaGenericaFECHACAMBIO = 21; + +type + { I_ExisteFilaReferenciaGenerica } + I_ExisteFilaReferenciaGenerica = interface(IDAStronglyTypedDataTable) + ['{98972C64-DAD7-4646-90BE-053EFD062BBF}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetNUMCONValue: Integer; + procedure SetNUMCONValue(const aValue: Integer); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + end; + + { T_ExisteFilaReferenciaGenericaDataTableRules } + T_ExisteFilaReferenciaGenericaDataTableRules = class(TDADataTableRules, I_ExisteFilaReferenciaGenerica) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IInformeRefGenerica } + IInformeRefGenerica = interface(IDAStronglyTypedDataTable) + ['{6AFE9984-0F66-4AC2-B5E7-87F3C48B81B9}'] + { Property getters and setters } + function GetCODCENTROValue: String; + procedure SetCODCENTROValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODVENDEDORValue: String; + procedure SetCODVENDEDORValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCANTIDADValue: String; + procedure SetCANTIDADValue(const aValue: String); + function GetVALTOTValue: Float; + procedure SetVALTOTValue(const aValue: Float); + + + { Properties } + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + end; + + { TInformeRefGenericaDataTableRules } + TInformeRefGenericaDataTableRules = class(TDADataTableRules, IInformeRefGenerica) + private + protected + { Property getters and setters } + function GetCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANTIDADValue: String; virtual; + procedure SetCANTIDADValue(const aValue: String); virtual; + function GetVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + + { Properties } + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { + Datos de una prenda + } + { IGetProducto } + IGetProducto = interface(IDAStronglyTypedDataTable) + ['{66AEFCA5-9C07-41F0-A81B-9A0965270310}'] + { Property getters and setters } + function GetCODIGO_BARRAValue: String; + procedure SetCODIGO_BARRAValue(const aValue: String); + function GetCOR_PRODUTOValue: String; + procedure SetCOR_PRODUTOValue(const aValue: String); + function GetDESC_PRODUTOValue: String; + procedure SetDESC_PRODUTOValue(const aValue: String); + function GetPRODUTOValue: String; + procedure SetPRODUTOValue(const aValue: String); + function GetGRADEValue: String; + procedure SetGRADEValue(const aValue: String); + + + { Properties } + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; + property GRADE: String read GetGRADEValue write SetGRADEValue; + end; + + { TGetProductoDataTableRules } + TGetProductoDataTableRules = class(TDADataTableRules, IGetProducto) + private + protected + { Property getters and setters } + function GetCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCOR_PRODUTOValue: String; virtual; + procedure SetCOR_PRODUTOValue(const aValue: String); virtual; + function GetDESC_PRODUTOValue: String; virtual; + procedure SetDESC_PRODUTOValue(const aValue: String); virtual; + function GetPRODUTOValue: String; virtual; + procedure SetPRODUTOValue(const aValue: String); virtual; + function GetGRADEValue: String; virtual; + procedure SetGRADEValue(const aValue: String); virtual; + + { Properties } + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; + property GRADE: String read GetGRADEValue write SetGRADEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IReferenciaGenerica } + IReferenciaGenerica = interface(IDAStronglyTypedDataTable) + ['{0D8DB24C-6B9C-4DBA-8B26-D007BD14ED85}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetNUMCONValue: Integer; + procedure SetNUMCONValue(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetCODCENTROValue: String; + procedure SetCODCENTROValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODVENDEDORValue: String; + procedure SetCODVENDEDORValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCODIGO_BARRAValue: String; + procedure SetCODIGO_BARRAValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetVTAPROCESOValue: Float; + procedure SetVTAPROCESOValue(const aValue: Float); + function GetVTAFINALValue: Float; + procedure SetVTAFINALValue(const aValue: Float); + function GetVTATERMValue: Float; + procedure SetVTATERMValue(const aValue: Float); + function GetVALTOTValue: Float; + procedure SetVALTOTValue(const aValue: Float); + function GetESTADOValue: String; + procedure SetESTADOValue(const aValue: String); + function GetFECHACAMBIOValue: DateTime; + procedure SetFECHACAMBIOValue(const aValue: DateTime); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; + property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + property ESTADO: String read GetESTADOValue write SetESTADOValue; + property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + end; + + { TReferenciaGenericaDataTableRules } + TReferenciaGenericaDataTableRules = class(TDADataTableRules, IReferenciaGenerica) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetVTAPROCESOValue: Float; virtual; + procedure SetVTAPROCESOValue(const aValue: Float); virtual; + function GetVTAFINALValue: Float; virtual; + procedure SetVTAFINALValue(const aValue: Float); virtual; + function GetVTATERMValue: Float; virtual; + procedure SetVTATERMValue(const aValue: Float); virtual; + function GetVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + function GetESTADOValue: String; virtual; + procedure SetESTADOValue(const aValue: String); virtual; + function GetFECHACAMBIOValue: DateTime; virtual; + procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; + property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + property ESTADO: String read GetESTADOValue write SetESTADOValue; + property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ T_ExisteFilaReferenciaGenericaDataTableRules } +constructor T_ExisteFilaReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor T_ExisteFilaReferenciaGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger := aValue; +end; + + +{ TInformeRefGenericaDataTableRules } +constructor TInformeRefGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TInformeRefGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function TInformeRefGenericaDataTableRules.GetCODCENTROValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCODCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCODVENDEDORValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime; +end; + +procedure TInformeRefGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCANTIDADValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCANTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetVALTOTValue: Float; +begin + result := DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat; +end; + +procedure TInformeRefGenericaDataTableRules.SetVALTOTValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat := aValue; +end; + + +{ TGetProductoDataTableRules } +constructor TGetProductoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGetProductoDataTableRules.Destroy; +begin + inherited; +end; + +function TGetProductoDataTableRules.GetCODIGO_BARRAValue: String; +begin + result := DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString; +end; + +procedure TGetProductoDataTableRules.SetCODIGO_BARRAValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetCOR_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetCOR_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetDESC_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetDESC_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetPRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoPRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetPRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoPRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetGRADEValue: String; +begin + result := DataTable.Fields[idx_GetProductoGRADE].AsString; +end; + +procedure TGetProductoDataTableRules.SetGRADEValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoGRADE].AsString := aValue; +end; + + +{ TReferenciaGenericaDataTableRules } +constructor TReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TReferenciaGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function TReferenciaGenericaDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime; +end; + +procedure TReferenciaGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODCENTROValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODVENDEDORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODIGO_BARRAValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODIGO_BARRAValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTAPROCESOValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTAPROCESOValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTAFINALValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTAFINALValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTATERMValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTATERMValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVALTOTValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVALTOTValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetESTADOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetESTADOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetFECHACAMBIOValue: DateTime; +begin + result := DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime; +end; + +procedure TReferenciaGenericaDataTableRules.SetFECHACAMBIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID__ExisteFilaReferenciaGenerica, T_ExisteFilaReferenciaGenericaDataTableRules); + RegisterDataTableRules(RID_InformeRefGenerica, TInformeRefGenericaDataTableRules); + RegisterDataTableRules(RID_GetProducto, TGetProductoDataTableRules); + RegisterDataTableRules(RID_ReferenciaGenerica, TReferenciaGenericaDataTableRules); + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas b/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas new file mode 100644 index 0000000..725953b --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas @@ -0,0 +1,1045 @@ +unit schReferenciaGenericaServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schReferenciaGenericaClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID__ExisteFilaReferenciaGenericaDelta = '{4C9816CA-AD0C-473A-B192-0F3331601D04}'; + RID_InformeRefGenericaDelta = '{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'; + RID_GetProductoDelta = '{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'; + RID_ReferenciaGenericaDelta = '{C8170A4A-6B29-465D-99F4-773795682573}'; + +type + { I_ExisteFilaReferenciaGenericaDelta } + I_ExisteFilaReferenciaGenericaDelta = interface(I_ExisteFilaReferenciaGenerica) + ['{4C9816CA-AD0C-473A-B192-0F3331601D04}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldNUMCONValue : Integer; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldNUMCON : Integer read GetOldNUMCONValue; + end; + + { T_ExisteFilaReferenciaGenericaBusinessProcessorRules } + T_ExisteFilaReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, I_ExisteFilaReferenciaGenerica, I_ExisteFilaReferenciaGenericaDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + function GetOldNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : Integer read GetOldNUMCONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IInformeRefGenericaDelta } + IInformeRefGenericaDelta = interface(IInformeRefGenerica) + ['{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'] + { Property getters and setters } + function GetOldCODCENTROValue : String; + function GetOldCENTROValue : String; + function GetOldCODVENDEDORValue : String; + function GetOldVENDEDORValue : String; + function GetOldFECHAValue : DateTime; + function GetOldNUMTALONValue : String; + function GetOldCANTIDADValue : String; + function GetOldVALTOTValue : Float; + + { Properties } + property OldCODCENTRO : String read GetOldCODCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCANTIDAD : String read GetOldCANTIDADValue; + property OldVALTOT : Float read GetOldVALTOTValue; + end; + + { TInformeRefGenericaBusinessProcessorRules } + TInformeRefGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeRefGenerica, IInformeRefGenericaDelta) + private + protected + { Property getters and setters } + function GetCODCENTROValue: String; virtual; + function GetOldCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + function GetOldCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANTIDADValue: String; virtual; + function GetOldCANTIDADValue: String; virtual; + procedure SetCANTIDADValue(const aValue: String); virtual; + function GetVALTOTValue: Float; virtual; + function GetOldVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + + { Properties } + property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CANTIDAD : String read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : String read GetOldCANTIDADValue; + property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; + property OldVALTOT : Float read GetOldVALTOTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGetProductoDelta } + IGetProductoDelta = interface(IGetProducto) + ['{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'] + { Property getters and setters } + function GetOldCODIGO_BARRAValue : String; + function GetOldCOR_PRODUTOValue : String; + function GetOldDESC_PRODUTOValue : String; + function GetOldPRODUTOValue : String; + function GetOldGRADEValue : String; + + { Properties } + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; + property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; + property OldPRODUTO : String read GetOldPRODUTOValue; + property OldGRADE : String read GetOldGRADEValue; + end; + + { TGetProductoBusinessProcessorRules } + TGetProductoBusinessProcessorRules = class(TDABusinessProcessorRules, IGetProducto, IGetProductoDelta) + private + protected + { Property getters and setters } + function GetCODIGO_BARRAValue: String; virtual; + function GetOldCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCOR_PRODUTOValue: String; virtual; + function GetOldCOR_PRODUTOValue: String; virtual; + procedure SetCOR_PRODUTOValue(const aValue: String); virtual; + function GetDESC_PRODUTOValue: String; virtual; + function GetOldDESC_PRODUTOValue: String; virtual; + procedure SetDESC_PRODUTOValue(const aValue: String); virtual; + function GetPRODUTOValue: String; virtual; + function GetOldPRODUTOValue: String; virtual; + procedure SetPRODUTOValue(const aValue: String); virtual; + function GetGRADEValue: String; virtual; + function GetOldGRADEValue: String; virtual; + procedure SetGRADEValue(const aValue: String); virtual; + + { Properties } + property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property COR_PRODUTO : String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; + property DESC_PRODUTO : String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; + property PRODUTO : String read GetPRODUTOValue write SetPRODUTOValue; + property OldPRODUTO : String read GetOldPRODUTOValue; + property GRADE : String read GetGRADEValue write SetGRADEValue; + property OldGRADE : String read GetOldGRADEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IReferenciaGenericaDelta } + IReferenciaGenericaDelta = interface(IReferenciaGenerica) + ['{C8170A4A-6B29-465D-99F4-773795682573}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldNUMCONValue : Integer; + function GetOldFECHAValue : DateTime; + function GetOldCODCENTROValue : String; + function GetOldCENTROValue : String; + function GetOldCODVENDEDORValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGO_BARRAValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldVTAPROCESOValue : Float; + function GetOldVTAFINALValue : Float; + function GetOldVTATERMValue : Float; + function GetOldVALTOTValue : Float; + function GetOldESTADOValue : String; + function GetOldFECHACAMBIOValue : DateTime; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldNUMCON : Integer read GetOldNUMCONValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; + property OldVTAFINAL : Float read GetOldVTAFINALValue; + property OldVTATERM : Float read GetOldVTATERMValue; + property OldVALTOT : Float read GetOldVALTOTValue; + property OldESTADO : String read GetOldESTADOValue; + property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; + end; + + { TReferenciaGenericaBusinessProcessorRules } + TReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IReferenciaGenerica, IReferenciaGenericaDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + function GetOldNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetCODCENTROValue: String; virtual; + function GetOldCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + function GetOldCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGO_BARRAValue: String; virtual; + function GetOldCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetVTAPROCESOValue: Float; virtual; + function GetOldVTAPROCESOValue: Float; virtual; + procedure SetVTAPROCESOValue(const aValue: Float); virtual; + function GetVTAFINALValue: Float; virtual; + function GetOldVTAFINALValue: Float; virtual; + procedure SetVTAFINALValue(const aValue: Float); virtual; + function GetVTATERMValue: Float; virtual; + function GetOldVTATERMValue: Float; virtual; + procedure SetVTATERMValue(const aValue: Float); virtual; + function GetVALTOTValue: Float; virtual; + function GetOldVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + function GetESTADOValue: String; virtual; + function GetOldESTADOValue: String; virtual; + procedure SetESTADOValue(const aValue: String); virtual; + function GetFECHACAMBIOValue: DateTime; virtual; + function GetOldFECHACAMBIOValue: DateTime; virtual; + procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : Integer read GetOldNUMCONValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property VTAPROCESO : Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; + property VTAFINAL : Float read GetVTAFINALValue write SetVTAFINALValue; + property OldVTAFINAL : Float read GetOldVTAFINALValue; + property VTATERM : Float read GetVTATERMValue write SetVTATERMValue; + property OldVTATERM : Float read GetOldVTATERMValue; + property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; + property OldVALTOT : Float read GetOldVALTOTValue; + property ESTADO : String read GetESTADOValue write SetESTADOValue; + property OldESTADO : String read GetOldESTADOValue; + property FECHACAMBIO : DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ T_ExisteFilaReferenciaGenericaBusinessProcessorRules } +constructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON] := aValue; +end; + + +{ TInformeRefGenericaBusinessProcessorRules } +constructor TInformeRefGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TInformeRefGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODCENTRO]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCENTRO]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODVENDEDOR]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVENDEDOR]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaFECHA]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaNUMTALON]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCANTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCANTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCANTIDAD]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCANTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVALTOT]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT] := aValue; +end; + + +{ TGetProductoBusinessProcessorRules } +constructor TGetProductoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGetProductoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGetProductoBusinessProcessorRules.GetCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA]; +end; + +function TGetProductoBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCODIGO_BARRA]; +end; + +procedure TGetProductoBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetCOR_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldCOR_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCOR_PRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetCOR_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetDESC_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldDESC_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoDESC_PRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetDESC_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetPRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldPRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoPRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetPRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetGRADEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE]; +end; + +function TGetProductoBusinessProcessorRules.GetOldGRADEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoGRADE]; +end; + +procedure TGetProductoBusinessProcessorRules.SetGRADEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE] := aValue; +end; + + +{ TReferenciaGenericaBusinessProcessorRules } +constructor TReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TReferenciaGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMINF]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE1]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE2]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE3]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMCON]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODCENTRO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCENTRO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODVENDEDOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVENDEDOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMTALON]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaPRODUCTO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCOLOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaTALLA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTAPROCESOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTAPROCESOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAPROCESO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTAPROCESOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTAFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTAFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAFINAL]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTAFINALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTATERMValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTATERMValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTATERM]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTATERMValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVALTOT]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetESTADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldESTADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaESTADO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetESTADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetFECHACAMBIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldFECHACAMBIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHACAMBIO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetFECHACAMBIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID__ExisteFilaReferenciaGenericaDelta, T_ExisteFilaReferenciaGenericaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_InformeRefGenericaDelta, TInformeRefGenericaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GetProductoDelta, TGetProductoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ReferenciaGenericaDelta, TReferenciaGenericaBusinessProcessorRules); + +end. diff --git a/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas b/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas new file mode 100644 index 0000000..811e49d --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas @@ -0,0 +1,317 @@ +unit uBizReferenciaGenerica; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, + schReferenciaGenericaClient_Intf; + +const + BIZ_REFERENCIAGENERICA = 'Client.ReferenciaGenerica'; + +type + TRefGenEstado = (rgPendiente, rgEnEspera, rgResuelto); + + IBizReferenciaGenerica = interface(IReferenciaGenerica) + ['{31C0DE0B-9B92-43A6-810D-7E94F5FF12FE}'] + procedure VerTodos; + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + procedure DesglosarReferencia; + procedure Show; + procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure SetEstado(const AValue : TRefGenEstado); + function GetEstado : TRefGenEstado ; + property Estado : TRefGenEstado read GetEstado write SetEstado; + end; + + TBizReferenciaGenericaDataTableRules = class(TReferenciaGenericaDataTableRules, + IBizReferenciaGenerica, ISelectedRowList) + private + FSelectedRows : TSelectedRowList; + protected + procedure SetEstado(const AValue : TRefGenEstado); + function GetEstado : TRefGenEstado ; + function GetSelectedRows : TSelectedRowList; + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure VerTodos; + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + procedure DesglosarReferencia; + procedure Show; + procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + property Estado : TRefGenEstado read GetEstado write SetEstado; + property SelectedRows : TSelectedRowList read GetSelectedRows; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, uDataTableUtils, uDACDSDataTable; + + +{ TBizReferenciaGenericaDataTableRules } + +constructor TBizReferenciaGenericaDataTableRules.Create( + aDataTable: TDADataTable); +begin + inherited; + FSelectedRows := TSelectedRowList.Create(aDataTable); +end; + +procedure TBizReferenciaGenericaDataTableRules.DesglosarReferencia; +var + ADataTable : TDACDSDataTable; + AEstado : TRefGenEstado; + i : integer; +begin + + if (Abs(VTAPROCESO) < 2) and + (Abs(VTAFINAL) < 2) and + (Abs(VTATERM) < 2) then + Exit; // No se puede desglosar si la cantidad es menor que 2. + + AEstado := Estado; + DataTable.Edit; + try + if (VTAPROCESO <> 0) then + begin + if (VTAPROCESO > 0) then + VTAPROCESO := VTAPROCESO - 1 + else + VTAPROCESO := VTAPROCESO + 1 + end + else begin + if (VTAFINAL <> 0) then + begin + if (VTAFINAL > 0) then + VTAFINAL := VTAFINAL - 1 + else + VTAFINAL := VTAFINAL + 1 + end + else begin + if (VTATERM <> 0) then + begin + if (VTATERM > 0) then + VTATERM := VTATERM - 1 + else + VTATERM := VTATERM + 1 + end + end; + end; + finally + DataTable.Post; + end; + + SelectedRows.Clear; + SelectedRows.CurrentRowSelected := True; + ADataTable := TDACDSDataTable.Create(nil); + try + ADataTable.RemoteFetchEnabled := False; + ADataTable.LogChanges := False; + CopyDataTable(DataTable, ADataTable, True); + + // Duplicar el registro + DataTable.Next; + if not DataTable.EOF then + DataTable.Insert + else + DataTable.Append; + for i := 0 to DataTable.FieldCount - 1 do + DataTable.Fields[i].Value := ADataTable.Fields[i].Value; + DataTable.Post; + + finally + ADataTable.Free; + end; + + DataTable.Edit; + Estado := AEstado; + FECHACAMBIO := Now; + + { Todavía no sé el valor que va a tener asi que le asigno uno cualquiera para + que en el cliente pueda diferenciar la fila nueva } + NUMCON := 99; + + + try + if (VTAPROCESO <> 0) then + begin + if (VTAPROCESO > 0) then + VTAPROCESO := 1 + else + VTAPROCESO := -1 + end + else begin + if (VTAFINAL <> 0) then + begin + if (VTAFINAL > 0) then + VTAFINAL := 1 + else + VTAFINAL := -1 + end + else begin + if (VTATERM <> 0) then + begin + if (VTATERM > 0) then + VTATERM := 1 + else + VTATERM := -1 + end + end; + end; + finally + DataTable.Post; + end; +end; + +destructor TBizReferenciaGenericaDataTableRules.Destroy; +begin + FreeAndNil(FSelectedRows); + inherited; +end; + +function TBizReferenciaGenericaDataTableRules.GetEstado: TRefGenEstado; +var + aux : String; +begin + aux := GetESTADOValue; + Result := rgPendiente; + if aux = 'E' then + Result := rgEnEspera + else + if aux = 'R' then + Result := rgResuelto; +end; + +function TBizReferenciaGenericaDataTableRules.GetSelectedRows: TSelectedRowList; +begin + Result := FSelectedRows; +end; + +procedure TBizReferenciaGenericaDataTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + ESTADO := rgPendiente; + FECHACAMBIO := Now; +end; + +procedure TBizReferenciaGenericaDataTableRules.Preview(const Centro, + Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); +var + AEstado : String; +begin + case Estado of + rgPendiente : AEstado := 'P'; + rgEnEspera : AEstado := 'E'; + rgResuelto : AEstado := 'R'; + else + AEstado := ''; + end; + + dmReferenciaGenerica.Preview(Centro, Vendedor, AEstado, AFiltro); +end; + +procedure TBizReferenciaGenericaDataTableRules.Print(const Centro, + Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); +var + AEstado : String; +begin + case Estado of + rgPendiente : AEstado := 'P'; + rgEnEspera : AEstado := 'E'; + rgResuelto : AEstado := 'R'; + else + AEstado := ''; + end; + + dmReferenciaGenerica.Print(Centro, Vendedor, AEstado, AFiltro); +end; + +procedure TBizReferenciaGenericaDataTableRules.SetEstado( + const AValue: TRefGenEstado); +begin + case AValue of + rgPendiente : SetESTADOValue('P'); + rgEnEspera : SetESTADOValue('E'); + rgResuelto : SetESTADOValue('R'); + else + SetESTADOValue('P'); + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.Show; +begin + ShowEditor(IBizReferenciaGenerica, Self, etItem); +end; + +procedure TBizReferenciaGenericaDataTableRules.VerEnEspera; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''E'')'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerPendientes; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''P'') OR ' + + '(' + fld_ReferenciaGenericaESTADO + ' IS NULL)'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerResueltos; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''R'')'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerTodos; +begin + Self.DataTable.Filtered := False; +end; + +initialization + RegisterDataTableRules(BIZ_REFERENCIAGENERICA, TBizReferenciaGenericaDataTableRules); + +end. + diff --git a/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas b/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas new file mode 100644 index 0000000..0604d66 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas @@ -0,0 +1,145 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizReferenciaGenericaServer; + +interface + +uses + Classes, SysUtils, + uDADataTable, + uDAInterfaces, schReferenciaGenericaServer_Intf, + uDABusinessProcessor, uDADelta; + +const + BIZ_SERVER_REFERENCIA_GENERICA = 'Server.ReferenciaGenerica'; + +type + { TBizReferenciaGenericaServerRules } + TBizReferenciaGenericaServerRules = class(TReferenciaGenericaBusinessProcessorRules) + private + function GetConnection: IDAConnection; + function GetSchema: IDASchema; + function GetDataSet(const AName : String) : IDADataset; + function GetCommand(const AName : String) : IDASQLCommand; + protected + function ExisteFila: Boolean; + function InsertarFila: Boolean; + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, Variants, uDAClasses; + + +{ TBizReferenciaGenericaServerRules } + +procedure TBizReferenciaGenericaServerRules.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +begin + inherited; + if aChangeType = ctUpdate then + begin + if not ExisteFila then + InsertarFila; + end; +end; + +function TBizReferenciaGenericaServerRules.ExisteFila: Boolean; +var + Connection : IDAConnection; + ADataSet: IDADataSet; +begin + Result := True; + Connection := GetConnection; + ADataSet := GetDataSet('_ExisteFilaReferenciaGenerica'); + with ADataSet do + begin + ParamByName('NUMINF').AsString := NUMINF; + ParamByName('CLAVE1').AsFloat := CLAVE1; + ParamByName('CLAVE2').AsInteger := CLAVE2; + ParamByName('CLAVE3').AsInteger := CLAVE3; + ParamByName('NUMCON').AsInteger := NUMCON; + end; + Connection.BeginTransaction; + try + ADataSet.Open; + Result := not ADataSet.IsEmpty; + ADataSet.Close; + finally + Connection.RollbackTransaction; + ADataSet := nil; + Connection := nil; + end; +end; + +function TBizReferenciaGenericaServerRules.GetCommand( + const AName: String): IDASQLCommand; +begin + Result := GetSchema.NewCommand(GetConnection, AName); +end; + +function TBizReferenciaGenericaServerRules.GetConnection: IDAConnection; +begin + Result := BusinessProcessor.Schema.ConnectionManager.NewConnection(BusinessProcessor.Schema.ConnectionManager.GetDefaultConnectionName); +end; + +function TBizReferenciaGenericaServerRules.GetDataSet( + const AName: String): IDADataset; +begin + Result := GetSchema.NewDataset(GetConnection, AName); +end; + +function TBizReferenciaGenericaServerRules.GetSchema: IDASchema; +begin + Result := BusinessProcessor.Schema; +end; + +function TBizReferenciaGenericaServerRules.InsertarFila: Boolean; +var + Connection : IDAConnection; + ACommand: IDASQLCommand; +begin + Result := False; + Connection := GetConnection; + ACommand := GetCommand(BusinessProcessor.InsertCommandName); + with ACommand do + begin + ParamByName('NUMINF').AsString := NUMINF; + ParamByName('CLAVE1').AsFloat := CLAVE1; + ParamByName('CLAVE2').AsInteger := CLAVE2; + ParamByName('CLAVE3').AsInteger := CLAVE3; + ParamByName('FECHACAMBIO').AsDateTime := Now; + ParamByName('ESTADO').AsString := 'P'; // Pendiente por defecto + ParamByName('VTATERM').AsVariant := Null; + ParamByName('VTAPROCESO').AsVariant := Null; + ParamByName('VTAFINAL').AsVariant := Null; + ParamByName('VALTOT').AsVariant := Null; + ParamByName('CODIGO_BARRA').AsVariant := Null; + end; + + Connection.BeginTransaction; + try + ACommand.Execute; + Connection.CommitTransaction; + Result := True; + except + Connection.RollbackTransaction; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_REFERENCIA_GENERICA, TBizReferenciaGenericaServerRules); + +end. + diff --git a/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp b/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm b/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm new file mode 100644 index 0000000..6095da5 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm @@ -0,0 +1,1302 @@ +object srvReferenciaGenerica: TsrvReferenciaGenerica + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schReferenciaGenerica + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 362 + Width = 469 + object schReferenciaGenerica: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'NUMINF' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE1' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON'#10'FROM RDX_REFERENCI' + + 'A_GENERICA'#10'WHERE NUMINF = :NUMINF AND'#10' CLAVE1 = :CLAVE1 AND' + + #10' CLAVE2 = :CLAVE2 AND'#10' CLAVE3 = :CLAVE3 AND'#10' NUM' + + 'CON = :NUMCON' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end> + end> + Name = '_ExisteFilaReferenciaGenerica' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' CODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = ' + + 'CENTRO) THEN'#10' CENTRO'#10' ELS' + + 'E'#10' CODCENTRO + '#39' - '#39' + CENTRO'#10' ' + + ' END,'#10' CODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVE' + + 'NDEDOR = VENDEDOR) THEN'#10' VENDEDOR'#10' ' + + ' ELSE'#10' CODVENDEDOR + '#39' - '#39' + VENDE' + + 'DOR'#10' END,'#10' FECHA,'#10' NUMTALON,'#10' ' + + ' CANTIDAD ='#10' CASE WHEN (VTAPROCESO <> 0) THEN'#10' ' + + ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (ve' + + 'nta proceso)'#39#10' ELSE'#10' CASE WHEN (VTAFINAL' + + ' <> 0) THEN'#10' REPLACE(CAST(VTAFINAL AS VARCHAR' + + '), '#39'.000'#39', '#39#39') + '#39' (venta final/resc.)'#39#10' ELSE'#10' ' + + ' CASE WHEN (VTATERM <> 0) THEN'#10' ' + + ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (venta te' + + 'rm./dev.)'#39#10' ELSE'#10' '#39'0'#39#10' ' + + ' END'#10' END'#10' END,'#10' VALTOT' + + #10'FROM RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDEDOR, FECHA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'CODCENTRO' + TableField = 'CODCENTRO' + end + item + DatasetField = 'CODVENDEDOR' + TableField = 'CODVENDEDOR' + end> + end> + Name = 'InformeRefGenerica' + Fields = < + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datString + Size = 8000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TALLA' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' PRODUTOS_BARRA.CODIGO_BARRA,'#10' PRODUTOS_BARRA.COR_PRODU' + + 'TO,'#10' PRODUTOS.DESC_PRODUTO,'#10' PRODUTOS.PRODUTO,'#10' PRODUTOS_BARR' + + 'A.GRADE'#10'FROM'#10' PRODUTOS'#10' INNER JOIN PRODUTOS_BARRA ON (PRODUTOS' + + '.PRODUTO = PRODUTOS_BARRA.PRODUTO)'#10'WHERE PRODUTOS_BARRA.PRODUTO ' + + '= :CODIGO'#10'AND PRODUTOS_BARRA.GRADE = :TALLA'#10'AND PRODUTOS_BARRA.C' + + 'OR_PRODUTO = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODIGO_BARRA' + TableField = 'CODIGO_BARRA' + end + item + DatasetField = 'COR_PRODUTO' + TableField = 'COR_PRODUTO' + end + item + DatasetField = 'DESC_PRODUTO' + TableField = 'DESC_PRODUTO' + end + item + DatasetField = 'PRODUTO' + TableField = 'PRODUTO' + end + item + DatasetField = 'GRADE' + TableField = 'GRADE' + end> + end> + Name = 'GetProducto' + Description = 'Datos de una prenda' + Fields = < + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COR_PRODUTO' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_PRODUTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUTO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRADE' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_REFERENCIA_GENERICA' + SQL = + 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON, FECHA,'#10' C' + + 'ODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN'#10' ' + + ' CENTRO'#10' ELSE'#10' ' + + ' CODCENTRO + '#39' - '#39' + CENTRO'#10' END,'#10' C' + + 'ODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR)' + + ' THEN'#10' VENDEDOR'#10' ELSE'#10' ' + + ' CODVENDEDOR + '#39' - '#39' + VENDEDOR'#10' ' + + ' END,'#10' NUMTALON, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TA' + + 'LLA, VTAPROCESO,'#10' VTAFINAL, VTATERM, VALTOT, ESTADO, FECHACAM' + + 'BIO'#10' FROM'#10' RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDED' + + 'OR, FECHA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CODCENTRO' + TableField = 'CODCENTRO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'CODVENDEDOR' + TableField = 'CODVENDEDOR' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO_BARRA' + TableField = 'CODIGO_BARRA' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'VTAPROCESO' + TableField = 'VTAPROCESO' + end + item + DatasetField = 'VTAFINAL' + TableField = 'VTAFINAL' + end + item + DatasetField = 'VTATERM' + TableField = 'VTATERM' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end + item + DatasetField = 'ESTADO' + TableField = 'ESTADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end> + end> + Name = 'ReferenciaGenerica' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 45 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 86 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMCON' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'UPDATE RDX_REFERENCIA_GENERICA'#10' SET '#10' ESTADO = :ESTADO,'#10' ' + + 'FECHACAMBIO = :FECHACAMBIO,'#10' CODIGO_BARRA = :CODIGO_BARRA,'#10' ' + + ' CANESP = :VTAPROCESO,'#10' CANVENNET = :VTAFINAL,'#10' CANVEN = ' + + ':VTATERM,'#10' VALVEN = :VALTOT'#10' WHERE'#10' (NUMINF = :OLD_NUMINF' + + ') AND'#10' (CLAVE1 = :OLD_CLAVE1) AND'#10' (CLAVE2 = :OLD_CLAVE2) ' + + 'AND'#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = :OLD_NUMCON)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ReferenciaGenerica' + end + item + Params = < + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'INSERT INTO RDX_REFERENCIA_GENERICA'#10'(NUMINF, CLAVE1, CLAVE2, CLA' + + 'VE3, ENESPERA, FECHACAMBIO)'#10'SELECT V.NUMINF, V.CLAVE1, V.CLAVE2,' + + ' V.CLAVE3, :ESTADO, CURRENT_TIMESTAMP'#10'FROM RDX_V_REFERENCIA_GENE' + + 'RICA V' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'CambiarEstado' + end + item + Params = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'begin'#10' declare @NUMINF varchar(35)'#10' declare @CLAVE1 nume' + + 'ric(10, 0)'#10' declare @CLAVE2 numeric(5, 0)'#10' declare @CLAV' + + 'E3 numeric(5, 0)'#10' declare @ESTADO char(1)'#10' declare @FECH' + + 'ACAMBIO datetime'#10' declare @CODIGO_BARRA varchar(25)'#10' dec' + + 'lare @VTATERM numeric(15, 3)'#10' declare @VTAPROCESO numeric(15' + + ', 3)'#10' declare @VTAFINAL numeric(15, 3)'#10' declare @NUMCON ' + + 'smallint'#10' declare @VALTOT numeric(15, 3)'#10#10' set @NUMINF =' + + ' :NUMINF'#10' set @CLAVE1 = :CLAVE1'#10' set @CLAVE2 = :CLAVE2'#10' ' + + ' set @CLAVE3 = :CLAVE3'#10' set @ESTADO = :ESTADO'#10' set @F' + + 'ECHACAMBIO = :FECHACAMBIO'#10' set @CODIGO_BARRA = :CODIGO_BARRA' + + #10' set @VTATERM = :VTATERM'#10' set @VTAPROCESO = :VTAPROCESO' + + #10' set @VTAFINAL = :VTAFINAL'#10' set @VALTOT = :VALTOT'#10#10' ' + + ' set @NUMCON = 0'#10#10' select @NUMCON = isnull(max(NUMCON) + 1, ' + + '0)'#10' from RDX_REFERENCIA_GENERICA'#10' where (NUMINF = @NUMIN' + + 'F) and'#10' (CLAVE1 = @CLAVE1) and'#10' (CLAVE2 = @C' + + 'LAVE2) and'#10' (CLAVE3 = @CLAVE3)'#10#10' INSERT INTO RDX_R' + + 'EFERENCIA_GENERICA'#10' (NUMINF, CLAVE1, CLAVE2, CLAVE3,'#10' ' + + ' ESTADO, FECHACAMBIO, CODIGO_BARRA,'#10' CANVEN, CANESP, CANV' + + 'ENNET, VALVEN, NUMCON)'#10' VALUES'#10' (@NUMINF, @CLAVE1, @CLA' + + 'VE2, @CLAVE3,'#10' @ESTADO, @FECHACAMBIO, @CODIGO_BARRA,'#10' ' + + '@VTATERM, @VTAPROCESO, @VTAFINAL, @VALTOT, @NUMCON)'#10#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ReferenciaGenerica' + end + item + Params = < + item + Name = 'OLD_NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMCON' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'DELETE '#10' FROM'#10' RDX_REFERENCIA_GENERICA'#10' WHERE'#10' (NUMINF =' + + ' :OLD_NUMINF) AND '#10' (CLAVE1 = :OLD_CLAVE1) AND '#10' (CLAVE2 =' + + ' :OLD_CLAVE2) AND '#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = ' + + ':OLD_NUMCON)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ReferenciaGenerica' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 32 + end + object bpReferenciaGenerica: TDABusinessProcessor + Schema = schReferenciaGenerica + InsertCommandName = 'Insert_ReferenciaGenerica' + DeleteCommandName = 'Delete_ReferenciaGenerica' + UpdateCommandName = 'Update_ReferenciaGenerica' + ReferencedDataset = 'ReferenciaGenerica' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 32 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxReferenciasGenericas' + CloseDataSource = False + DataSource = dsReferenciasGenericas + Left = 120 + Top = 128 + end + object dsReferenciasGenericas: TDADataSource + DataSet = tbl_ReferenciasGenericas.Dataset + DataTable = tbl_ReferenciasGenericas + Left = 120 + Top = 176 + end + object frxReport1: TfrxReport + Version = '3.23.7' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.OutlineWidth = 180 + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.Description.Strings = ( + 'Demonstrates how to create simple list report.') + ReportOptions.LastChange = 38902.414757476900000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 40 + Top = 128 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxReferenciasGenericas' + end> + Variables = <> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + end + object tbl_ReferenciasGenericas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 120 + Top = 232 + end + object ADOConnection1: TADOConnection + ConnectionString = + 'Provider=SQLNCLI.1;Password=123456;Persist Security Info=True;Us' + + 'er ID=usuario_gft;Initial Catalog=gft_varela;Data Source=localho' + + 'st' + Provider = 'SQLNCLI.1' + Left = 344 + Top = 136 + end + object ADOQuery1: TADOQuery + Connection = ADOConnection1 + CursorType = ctStatic + Parameters = <> + SQL.Strings = ( + 'SELECT' + ' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN' + ' CENTRO' + ' ELSE' + ' CODCENTRO + '#39' - '#39' + CENTRO' + ' END,' + ' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR) THEN' + ' VENDEDOR' + ' ELSE' + ' CODVENDEDOR + '#39' - '#39' + VENDEDOR' + ' END,' + ' FECHA,' + ' NUMTALON,' + ' CANTIDAD =' + ' CASE WHEN (VTAPROCESO <> 0) THEN' + + ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39')' + + ' + '#39' (venta proceso)'#39 + ' ELSE' + ' CASE WHEN (VTAFINAL <> 0) THEN' + + ' REPLACE(CAST(VTAFINAL AS VARCHAR), '#39'.000'#39', '#39 + + #39') + '#39' (venta final/resc.)'#39 + ' ELSE' + ' CASE WHEN (VTATERM <> 0) THEN' + + ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39 + + ', '#39#39') + '#39' (venta term./dev.)'#39 + ' ELSE' + ' '#39'0'#39 + ' END' + ' END' + ' END,' + ' VALTOT' + 'FROM RDX_V_REFERENCIA_GENERICA' + 'ORDER BY CENTRO, VENDEDOR, FECHA') + Left = 344 + Top = 200 + end + object DataSource1: TDataSource + DataSet = ADOQuery1 + Left = 240 + Top = 144 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 336 + Top = 32 + end +end diff --git a/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas b/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas new file mode 100644 index 0000000..47b0d33 --- /dev/null +++ b/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas @@ -0,0 +1,178 @@ +unit srvReferenciaGenerica_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDACDSDataTable, frxClass, DB, + frxDBSet, ADODB, uDAInterfaces, uROClient, uROEventRepository, + uDABINAdapter, uDADataStreamer; + +type + { TsrvReferenciaGenerica } + TsrvReferenciaGenerica = class(TDARemoteService, IsrvReferenciaGenerica) + bpReferenciaGenerica: TDABusinessProcessor; + frxDBCabecera: TfrxDBDataset; + dsReferenciasGenericas: TDADataSource; + tbl_ReferenciasGenericas: TDACDSDataTable; + ADOConnection1: TADOConnection; + ADOQuery1: TADOQuery; + DataSource1: TDataSource; + frxReport1: TfrxReport; + DABINAdapter: TDABINAdapter; + schReferenciaGenerica: TDASchema; + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + function GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; + const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + schReferenciaGenericaClient_Intf, uBizReferenciaGenericaServer, Dialogs; + +procedure Create_srvReferenciaGenerica(out anInstance : IUnknown); +begin + anInstance := TsrvReferenciaGenerica.Create(NIL); +end; + +{ srvReferenciaGenerica } +{ TsrvReferenciaGenerica } + +function TsrvReferenciaGenerica.GenerateReport(const Centro, + Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; +var + ds: IDADataset; + AStream: TMemoryStream; + AWhere : String; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + AWhere := ''; + try + ds := schReferenciaGenerica.NewDataset(Connection, 'InformeRefGenerica'); + + if Length(Centro) > 0 then + begin + AWhere := 'CODCENTRO = ''' + Centro + ''''; + end; + + if Length(Vendedor) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + 'CODVENDEDOR = ''' + Vendedor + ''''; + end; + + if Length(Estado) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + '((ESTADO = ''' + Estado + ''') '; + if Estado = 'P' then + AWhere := AWhere + 'OR (ESTADO is null)'; + AWhere := AWhere + ')'; + end; + + if Length(FiltroUsuario) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + '(' + FiltroUsuario + ')'; + end; + + ds.Where.AddText(AWhere); + + AStream.Clear; + ServiceAdapter.WriteDataset(AStream, ds, [woRows, woSchema], -1); + ServiceAdapter.ReadDataset(AStream, tbl_ReferenciasGenericas, TRUE, '', TRUE, TRUE); + + frxReport1.LoadFromFile(DarRutaInformes + 'InformeReferenciaGenerica.fr3', True); + frxReport1.PrepareReport; + frxReport1.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + end; +end; + + +function TsrvReferenciaGenerica.GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; +var + ds : IDADataset; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + ds := schReferenciaGenerica.NewDataset(conn, nme_GetProducto); + + ds.ParamByName('CODIGO').AsString := Codigo; + ds.ParamByName('TALLA').AsString := Talla; + ds.ParamByName('COLOR').AsString := Color; + try + ds.Open; + Result := not ds.IsEmpty; + if Result then + begin + Descripcion := ds.FieldValues[idx_GetProductoDESC_PRODUTO]; + CodigoBarras := ds.FieldValues[idx_GetProductoCODIGO_BARRA]; + end; + finally + ds.Close; + ds := nil; + conn := nil; + end; +end; + +procedure TsrvReferenciaGenerica.PasarProductosAEspera(const Centro, + Vendedor: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schReferenciaGenerica.NewCommand(conn, 'CambiarEstado'); + try + if Length(Centro) > 0 then + begin + cmd.Where.AddText('V.CODCENTRO = ''' + Centro + ''''); + if Length(Vendedor) > 0 then + cmd.Where.AddText('AND V.CODVENDEDOR = ''' + Vendedor + ''''); + end; + cmd.Execute; + conn.CommitTransaction; + except + conn.RollbackTransaction; + end; +end; + +procedure TsrvReferenciaGenerica.DARemoteServiceCreate(Sender: TObject); +begin + bpReferenciaGenerica.BusinessRulesID := BIZ_SERVER_REFERENCIA_GENERICA; +end; + +initialization + TROClassFactory.Create('srvReferenciaGenerica', Create_srvReferenciaGenerica, TsrvReferenciaGenerica_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Stock/Cliente/Stock.bdsproj b/Source/Modulos/Stock/Cliente/Stock.bdsproj new file mode 100644 index 0000000..3e22257 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Stock.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 2 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.2.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Stock/Cliente/Stock.cfg b/Source/Modulos/Stock/Cliente/Stock.cfg new file mode 100644 index 0000000..53e7995 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/Stock/Cliente/Stock.dof b/Source/Modulos/Stock/Cliente/Stock.dof new file mode 100644 index 0000000..326e1c7 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=2 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.2.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/Stock/Cliente/Stock.dpk b/Source/Modulos/Stock/Cliente/Stock.dpk new file mode 100644 index 0000000..1626dfe --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.dpk @@ -0,0 +1,81 @@ +package Stock; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + PluginSDK_D10R, + GUISDK_D10, + BaseD10, + ControlesBaseD10, + dbrtl, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxGridLnkD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dclcxLibraryD10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + Parametros; + +contains + uPluginControllerStock in 'uPluginControllerStock.pas' {ModuleStock: TModuleController}, + uDataModuleStock in 'uDataModuleStock.pas' {dmStock: TDAClientDataModule}, + uBizStock in '..\Reglas\uBizStock.pas', + uViewControGridStockPrendasCentros in 'uViewControGridStockPrendasCentros.pas' {frViewControlGridStockPrendasCentros: TCustomView}, + uViewControGridStockEDI in 'uViewControGridStockEDI.pas' {frViewControlGridStockEDI: TCustomView}, + uEditorControlStockEDI in 'uEditorControlStockEDI.pas' {fEditorControlStockEDI: TCustomEditor}, + uEditorControlStockVARELA in 'uEditorControlStockVARELA.pas' {fEditorControlStockVARELA: TCustomEditor}, + uViewFiltrosStock in 'uViewFiltrosStock.pas' {frViewFiltrosStock: TCustomView}, + uViewControGridStockVARELA in 'uViewControGridStockVARELA.pas' {frViewControlGridStockVARELA: TCustomView}, + uViewControGridStockEDIInventario in 'uViewControGridStockEDIInventario.pas' {frViewControlGridStockEDIInventario: TCustomView}; + +end. diff --git a/Source/Modulos/Stock/Cliente/Stock.drc b/Source/Modulos/Stock/Cliente/Stock.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/Stock/Cliente/Stock.identcache b/Source/Modulos/Stock/Cliente/Stock.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b248b7d82e8a0520c82914518fd632def94ab3c7 GIT binary patch literal 1499 zcmc)Ku};J=3VK(N6JlPf2Nk~z&9 zEBfU8_IXhhA7|C2s%Z!h;JlRDnX&`#(T$>RC1^%cTa?nAN=Ve2*iLmm7^Jdgx`V-s z>NSJas-wUIs4babV|C|gxL1|M_&%u681%#yInQLLyMDE6ZdMnMS|aD~yk~ax2!~(Q zHKUneO}&|`-ZHCN8%A`eZdu^THAlT31Q?dCC%~9gJ3s3Tu2$D!wx}C6S+& z!5J-83_g?0f9-2|U<~-i?IZ6v<#XTX^1k$D$UTGqH&$XXye`nKE40U8CFB1C8qyOg literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Cliente/Stock.rc b/Source/Modulos/Stock/Cliente/Stock.rc new file mode 100644 index 0000000..f4e84f6 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/Stock.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,2,0 +PRODUCTVERSION 1,0,2,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.2.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Stock/Cliente/Stock.res b/Source/Modulos/Stock/Cliente/Stock.res new file mode 100644 index 0000000000000000000000000000000000000000..31c891c793c14bddb38063f7b351f28a1e100258 GIT binary patch literal 4748 zcmbW5J8vXa5QWRw5@@vo2jt^`06AC_-nK+c8)h~|7%x4LJ>V`I}+x$dKGol|w|-f6X&*@2|*L)2V*e%a6YUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1k zY~p)gcb)%sB*tXC|GfUxCnpH}xWDj4T*U6&6gxT0So2x1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8b6~2;>lIU&LZsTwze(H0n{VKl$wDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BWbfHy`&jb6eIlLD>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDV9S$M(c({r}KDQ|qxK)Q;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm b/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm new file mode 100644 index 0000000..2f888c3 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm @@ -0,0 +1,1209 @@ +object dmStock: TdmStock + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 322 + Width = 267 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvStock' + Left = 48 + Top = 20 + end + object tbl_StockEDI: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockEDI' + IndexDefs = <> + Left = 184 + Top = 16 + end + object tbl_StockVARELA: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockVARELA' + IndexDefs = <> + Left = 184 + Top = 72 + end + object tbl_StockPrendasCentros: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Producto' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Colecci'#243'n' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '38' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '40' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '42' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '44' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '46' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '48' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockPrendasCentros' + IndexDefs = <> + Left = 48 + Top = 176 + end + object ds_StockPrendasCentros: TDADataSource + DataSet = tbl_StockPrendasCentros.Dataset + DataTable = tbl_StockPrendasCentros + Left = 48 + Top = 232 + end + object tbl_StockEDIInventario: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TK' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockEDIInventario' + IndexDefs = <> + Left = 185 + Top = 136 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 48 + Top = 96 + end +end diff --git a/Source/Modulos/Stock/Cliente/uDataModuleStock.pas b/Source/Modulos/Stock/Cliente/uDataModuleStock.pas new file mode 100644 index 0000000..0e5ed7c --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uDataModuleStock.pas @@ -0,0 +1,112 @@ +unit uDataModuleStock; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + uBizStock, uDARemoteDataAdapter, uDAInterfaces; + +type + TdmStock = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_StockEDI: TDACDSDataTable; + tbl_StockVARELA: TDACDSDataTable; + tbl_StockPrendasCentros: TDACDSDataTable; + ds_StockPrendasCentros: TDADataSource; + tbl_StockEDIInventario: TDACDSDataTable; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItemsStockVarela : IBizStockVARELA; + function GetItemsStockEDI : IBizStockEDI; + function GetItemsStockEDIInventario : IBizStockEDIInventario; + function GetItemsStockPrendasCentros : IBizStockPrendasCentros; + end; + +var + dmStock: TdmStock; + +implementation + +{$R *.DFM} + +uses + uDataModuleBase, Controls, Forms, cxControls, uDataTableUtils; + + +procedure TdmStock.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmStock.GetItemsStockEDI: IBizStockEDI; +var + dtItemsStockEDI: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockEDI := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockEDI, dtItemsStockEDI); + dtItemsStockEDI.BusinessRulesID := BIZ_STOCK_EDI; + Result := (dtItemsStockEDI as IBizStockEDI); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockEDIInventario: IBizStockEDIInventario; +var + dtItemsStockEDIInventario: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockEDIInventario := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockEDIInventario, dtItemsStockEDIInventario); + dtItemsStockEDIInventario.BusinessRulesID := BIZ_STOCK_EDIINVENTARIO; + Result := (dtItemsStockEDIInventario as IBizStockEDIInventario); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockPrendasCentros: IBizStockPrendasCentros; +var + dtItemsStock: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStock := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockPrendasCentros, dtItemsStock); + dtItemsStock.BusinessRulesID := BIZ_STOCK_PRENDAS_CENTROS; + Result := (dtItemsStock as IBizStockPrendasCentros); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockVarela: IBizStockVARELA; +var + dtItemsStockVARELA: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockVARELA := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockVARELA, dtItemsStockVARELA); + dtItemsStockVARELA.BusinessRulesID := BIZ_STOCK_VARELA; + Result := (dtItemsStockVARELA as IBizStockVARELA); + finally + HideHourglassCursor; + end; +end; + +initialization + dmStock := TdmStock.Create(nil); + +finalization + FreeAndNil(dmStock); + +end. + diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp b/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm b/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm new file mode 100644 index 0000000..ee5fffe --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm @@ -0,0 +1,2230 @@ +inherited fEditorControlStockEDI: TfEditorControlStockEDI + Left = 467 + Top = 265 + Width = 687 + Height = 607 + Caption = 'Control de stock de centros' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + inherited TBXItem33: TTBXItem + Visible = False + end + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object TBXItem39: TTBXItem [14] + Action = actExpandir + end + object TBXItem38: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 350 + DockPos = 304 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + object PageControl1: TPageControl [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + ActivePage = tabResumen + Align = alClient + TabOrder = 3 + OnChange = PageControl1Change + object tabResumen: TTabSheet + Caption = 'Resumido por prendas' + inline frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 407 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = frViewControlGridStockPrendasCentros1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridViewTOTAL + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 249 + end + end + end + inherited dsDataSource: TDADataSource + Left = 16 + Top = 152 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38966.445252812500000000 + ReportDocument.IsCaptionAssigned = True + BuiltInReportLink = True + end + end + end + end + object tabDesglose: TTabSheet + Caption = 'Detallado por centros' + ImageIndex = 1 + inline frViewControlGridStockEDI1: TfrViewControlGridStockEDI + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 401 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewKT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 249 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38965.499016562500000000 + BuiltInReportLink = True + end + end + end + end + object tabInventario: TTabSheet + Caption = 'Diferencias con '#250'ltimo inventario' + ImageIndex = 2 + inline frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 401 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewDT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewDT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 65 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38993.574718599530000000 + BuiltInReportLink = True + end + end + end + end + end + inherited EditorActionList: TActionList + Top = 208 + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited dsDataTable: TDADataSource [8] + Left = 8 + Top = 208 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited GridPopupMenu: TPopupMenu + Left = 40 + Top = 208 + inherited Duplicar1: TMenuItem + Visible = False + end + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas b/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas new file mode 100644 index 0000000..74a8780 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas @@ -0,0 +1,242 @@ +unit uEditorControlStockEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, + uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, + + uBizStock,uViewControGridStockEDI, uViewControGridStockPrendasCentros, + uViewControGridStockEDIInventario; + +type + IEditorControlStockEDI = interface(IEditorGridBase) + ['{8CDABF14-FD43-48BF-8B33-B6B5A9B03CEB}'] +{ function GetItems: IBizStockEDI; + procedure SetItems(const Value: IBizStockEDI); + property Items: IBizStockEDI read GetItems write SetItems;} + end; + + TfEditorControlStockEDI = class(TfEditorGridBase, IEditorControlStockEDI) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + frViewControlGridStockEDI1: TfrViewControlGridStockEDI; + PageControl1: TPageControl; + tabResumen: TTabSheet; + tabDesglose: TTabSheet; + frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros; + tabInventario: TTabSheet; + frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); override; + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure PageControl1Change(Sender: TObject); + protected + FDesglose : IBizStockEDI; + FInventario : IBizStockEDIInventario; + FResumen : IBizStockPrendasCentros; + + function GetItemsDesglose: IBizStockEDI; + procedure SetItemsDesglose(const Value: IBizStockEDI); + + function GetItemsInventario: IBizStockEDIInventario; + procedure SetItemsInventario(const Value: IBizStockEDIInventario); + + function GetItemsResumen: IBizStockPrendasCentros; + procedure SetItemsResumen(const Value: IBizStockPrendasCentros); + public + property ItemsDesglose: IBizStockEDI read GetItemsDesglose write SetItemsDesglose; + property ItemsInventario: IBizStockEDIInventario read GetItemsInventario write SetItemsInventario; + property ItemsResumen: IBizStockPrendasCentros read GetItemsResumen write SetItemsResumen; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase, + uDataModuleStock, uDAInterfaces; + +{$R *.dfm} + +{ TfEditorControlStockEDI } + +procedure TfEditorControlStockEDI.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + case PageControl1.ActivePageIndex of + 0 : frViewControlGridStockPrendasCentros1.AjustarAncho; + 1 : frViewControlGridStockEDI1.AjustarAncho; + 2 : frViewControlGridStockEDIInventario1.AjustarAncho; + end; +end; + +procedure TfEditorControlStockEDI.FormShow(Sender: TObject); +begin +// inherited; <- No descomentar + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + case PageControl1.ActivePageIndex of + 0 : ViewGrid.ShowEmbedded(tabResumen); + 1 : ViewGrid.ShowEmbedded(tabDesglose); + 2 : ViewGrid.ShowEmbedded(tabInventario); + end; + + ViewGrid.ExpandirTodo; +end; + +constructor TfEditorControlStockEDI.Create(AOwner: TComponent); +begin + inherited; + FResumen := nil; + FDesglose := nil; + FInventario := nil; + + Self.Caption := 'Control de stock en centros'; + JvNavPanelHeader.Caption := Self.Caption; + PageControl1.ActivePageIndex := 0; + + if not Assigned(FResumen) then + ItemsResumen := dmStock.GetItemsStockPrendasCentros; + + ViewGrid := frViewControlGridStockPrendasCentros1; +end; + +procedure TfEditorControlStockEDI.actExpandirExecute(Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockEDI.actContraerExecute(Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +function TfEditorControlStockEDI.GetItemsDesglose: IBizStockEDI; +begin + Result := FDesglose; +end; + +function TfEditorControlStockEDI.GetItemsResumen: IBizStockPrendasCentros; +begin + Result := FResumen; +end; + +procedure TfEditorControlStockEDI.SetItemsDesglose(const Value: IBizStockEDI); +begin + FDesglose := Value; + if Assigned(FDesglose) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FDesglose.DataTable; + frViewControlGridStockEDI1.dsDataSource.DataTable := FDesglose.DataTable; + + if not FDesglose.DataTable.Active then + FDesglose.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorControlStockEDI.SetItemsResumen( + const Value: IBizStockPrendasCentros); +begin + FResumen := Value; + if Assigned(FResumen) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FResumen.DataTable; + frViewControlGridStockPrendasCentros1.dsDataSource.DataTable := FResumen.DataTable; + + if not FResumen.DataTable.Active then + FResumen.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorControlStockEDI.PageControl1Change(Sender: TObject); +begin + inherited; + Self.Update; + + //Quitamos el filtro que hubiera + actQuitarFiltro.Execute; + + case PageControl1.ActivePageIndex of + 0 : begin + ViewGrid := frViewControlGridStockPrendasCentros1; + if not Assigned(FResumen) then + ItemsResumen := dmStock.GetItemsStockPrendasCentros; + end; + 1 : begin + ViewGrid := frViewControlGridStockEDI1; + if not Assigned(FDesglose) then + ItemsDesglose := dmStock.GetItemsStockEDI; + end; + 2 : begin + ViewGrid := frViewControlGridStockEDIInventario1; + if not Assigned(FInventario) then + ItemsInventario := dmStock.GetItemsStockEDIInventario; + end; + end; + + ViewGrid.Refresh; +end; + +function TfEditorControlStockEDI.GetItemsInventario: IBizStockEDIInventario; +begin + Result := FInventario; +end; + +procedure TfEditorControlStockEDI.SetItemsInventario(const Value: IBizStockEDIInventario); +begin + FInventario := Value; + if Assigned(FInventario) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FInventario.DataTable; + frViewControlGridStockEDIInventario1.dsDataSource.DataTable := FInventario.DataTable; + + if not FInventario.DataTable.Active then + FInventario.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp b/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm b/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm new file mode 100644 index 0000000..089709c --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm @@ -0,0 +1,1716 @@ +inherited fEditorControlStockVARELA: TfEditorControlStockVARELA + Left = 408 + Top = 342 + Width = 687 + Height = 607 + Caption = 'Stock VARELA' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + Caption = 'Control de stock de almac'#233'n' + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + inherited TBXItem33: TTBXItem + Visible = False + end + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 350 + DockPos = 350 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + inline frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 679 + Height = 435 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewKT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 679 + inherited dxLayoutControl1: TdxLayoutControl + Width = 679 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 191 + end + end + end + inherited dsDataSource: TDADataSource + Top = 48 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38965.703007268520000000 + ReportDocument.IsCaptionAssigned = True + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource + Left = 32 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited GridPopupMenu: TPopupMenu + Left = 64 + Top = 152 + inherited Duplicar1: TMenuItem + Visible = False + end + inherited N2: TMenuItem + Visible = False + end + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas b/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas new file mode 100644 index 0000000..13a247e --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas @@ -0,0 +1,134 @@ +unit uEditorControlStockVARELA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, + uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, + uBizStock, uViewControGridStockVARELA, uViewControlGrid; + +type + IEditorControlStockVARELA = interface(IEditorGridBase) + ['{E73FFD61-E345-43EF-A3D1-56B8A5D3DA8B}'] + function GetItems: IBizStockVARELA; + procedure SetItems(const Value: IBizStockVARELA); + property Items: IBizStockVARELA read GetItems write SetItems; + end; + + TfEditorControlStockVARELA = class(TfEditorGridBase, IEditorControlStockVARELA) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + private + property ViewGrid; + protected + FItems : IBizStockVARELA; + function GetItems: IBizStockVARELA; + procedure SetItems(const Value: IBizStockVARELA); + public + property Items: IBizStockVARELA read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlStockEDI } + +procedure TfEditorControlStockVARELA.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlGridStockVARELA1.AjustarAncho; +end; + +procedure TfEditorControlStockVARELA.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockVARELA.actImprimirExecute(Sender: TObject); +begin + frViewControlGridStockVARELA1.Print; +end; + +constructor TfEditorControlStockVARELA.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewControlGridStockVARELA1; + Self.Caption := 'Control de stock de almacén'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +function TfEditorControlStockVARELA.GetItems: IBizStockVARELA; +begin + Result := FItems; +end; + +procedure TfEditorControlStockVARELA.SetItems(const Value: IBizStockVARELA); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewControlGridStockVARELA1.dsDataSource.DataTable := FItems.DataTable; + + if not FItems.DataTable.Active then + FItems.DataTable.Active := True; + + actAnchoAuto.Execute; + end; +end; + +procedure TfEditorControlStockVARELA.actPrevisualizarExecute(Sender: TObject); +begin + frViewControlGridStockVARELA1.Preview; +end; + +procedure TfEditorControlStockVARELA.actExpandirExecute(Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockVARELA.actContraerExecute(Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm b/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm new file mode 100644 index 0000000..467f3e3 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm @@ -0,0 +1,126 @@ +object ModuleStock: TModuleStock + OldCreateOrder = True + Description = 'Control de stock' + ModuleMenu = MainMenu + ModuleName = 'Control de stock' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.6' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002B14944415478DA + B5955B48145118C7FFB30B65F89219452F1148588AB60F5A5B123E58ED6E6896 + 1015DB4314515426B8043E54A25DB044D844CB2EB6661962B5586EE9166B6D58 + A829AE6D7941B3EC8658544850BA33679A736C366FEBCEAAFDE1F0CDF966CEEF + 370387399C288AA0E1380EBE52B40BE2D8DEFE12F85C203319579E349CE37452 + A919FB70BD4B82E5148EEAB596A7A2AC8AC098A41A0F07D1AF4A13ED130944CD + F6D1A0A28C830CFEB3AF13D9A67C6FFF78DE61BC7952C02439A566888207441A + B4DE3C99897D1691F329B036C7B279FFAD950CFEE5B51DBEF2D96D63126D7A23 + 9B877569D1E222FE053B36C6A2E07A0D845A03FC25D8E08031792DE292D35064 + B8A85C404325234337828A0E956AF85AC5317871850357CBEE052E982C3C4FE0 + 110456AF591FCFAC40860F3C7762C061833D5C3F7382218F00CFE010FACCD918 + ECEEC0BCB316DCB6D74F5F4088085E200CFE21D50822ADA370E96350F9689A82 + 91F0773BF510D56ACCBF606570DAB7D5364E5D30F6CD7FB7B76241F95390A060 + D6A7A3C6D914B8A0DF52888F678E62C9652B66C7C4A12F2F13DF8BCD5878C301 + 2E2CC20BF7F0021CCF5AA62028BB82DE237B1114B102A1A613F8B46713E69A4E + 618EF180173E38C43341DD0BB73241F456332A5D6BB04D1FC300BDE9BBF1E34E + 29D421A1502F5A8C909287E0A59F28DBA612581E0D2D6DCA045129B9B8EB8EC7 + E6040D83FCEAE942AF2E8ADD0FB954059566F538389D37BB3B940922934FA3AA + 6D1D12E3A3A5851240FA8AAF596998B57E8B4F38AD2FDBBB94092212B360EB34 + 401F17C9E0FC5F084F884F38DD65AF3ABB950996198EE141771212B4CB5171BF + CEEFFF68641409C23764A0FA6D0A72F32D01C1E5F8152C4D30FD3B9D08EF3DA5 + 862B3FEA5ABE479F93F3ED7DD3E482B0F843E8719E9FD2DBCB994CA073B9C61F + FA8146A3C1C487FEFFCA1F9AC3C3EF68FFCFAC0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actStockEdi: TAction + Category = 'Stock' + Caption = 'Control de stock de centros' + ImageIndex = 0 + OnExecute = actStockEdiExecute + end + object actStockVarela: TAction + Category = 'Stock' + Caption = 'Control de stock de almac'#233'n' + ImageIndex = 0 + OnExecute = actStockVarelaExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 8000 + Caption = '&Stock' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actStockEdiExecute + object Stock1: TMenuItem + Tag = 100 + Action = actStockEdi + end + object Stock2: TMenuItem + Tag = 500 + Action = actStockVarela + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D34944415478DA + 63FCFFFF3F03232323033A9891C0F01F999FB180014311582F889835B92D58FF + 5FF51A64C90B171818123AA682D965D1D90C51BEA89A2F32B586A4E556AD051B + 707222E37F8388A970C90515D960CD208D2050D79BC7D0543C89A16BE954867F + 7F7E30FCFDFD93A13AA58A61E29EFF8C7003EEA99E022BFEB4DA0CACF9CB8B9B + 604D20CDDFDF3E607879632FC3A2755F192C8A4E3128DFB66058BAF91FA60191 + 5EA60C33131919AE3D66C00A84BF33306CE0CD6498E13913B701D8C0CF5F7F18 + 9E4DEF65F8F1E23943F4F95FA41900D2FCB0BE90E1F7E7CF0C7C351318FC13AA + 883700A6F9FB8DAB0C42535733FCFAF39F2134AD0EBB010FD44E33847B9A30DC + 2D4E65F87CF20883C68E330C2F96CC66783DBD87416CD521863F9C7C60036372 + 9AB01BF050FD0C43988731C3E7534719AE0639300804C5327C58BB984178F20A + 0626137BB0E61F409C52D486DD80479A671942DD8CC00AEF1526813573798731 + F0D44F856B06D1D9155DD80D78A2758EC1C75E17ACE8F3CDEB0CAF2734327097 + 7531FC063A1DA619848BEAFAB01BF054FB3C8383A91A5C21320619F0F7EF3F70 + C0E234E0B9CE0586A6EE990CC400AC06A8BB9533DCDAD54D9401208062002837 + 5EDD889A1B09016D7F486E0400CE5079F0BCD676180000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas b/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas new file mode 100644 index 0000000..17b42d8 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas @@ -0,0 +1,97 @@ +unit uPluginControllerStock; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCStock = interface(IInterface) + ['{52C5C467-6FBE-476C-BE2A-A97D2752526C}'] + end; + + TModuleStock = class(TModuleController, IMCStock) + actStockEdi: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Stock1: TMenuItem; + SmallImages: TPngImageList; + actStockVarela: TAction; + Stock2: TMenuItem; + procedure actStockEdiExecute(Sender: TObject); + procedure actStockVarelaExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uEditorControlesBase, + uDataModuleStock, uEditorControlStockEDI, uBizStock, cxControls, + uEditorControlStockVARELA; + +function GetModule : TModuleController; +begin + Result := TModuleStock.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleStock.actStockEdiExecute(Sender: TObject); +var + aControl: IBizStockEDI; + aObj: IEditorControlStockEDI; +begin + //aControl := dmStock.GetItemsStockEDI; + aObj := TfEditorControlStockEDI.Create(Application); + + try + with aObj do + begin + //Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleStock.actStockVarelaExecute(Sender: TObject); +var + aControl: IBizStockVARELA; + aObj: IEditorControlStockVARELA; +begin + aControl := dmStock.GetItemsStockVARELA; + aObj := TfEditorControlStockVARELA.Create(Application); + + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleStock); + +finalization + UnRegisterModuleClass(TModuleStock); + +end. diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm b/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm new file mode 100644 index 0000000..53bd0f2 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm @@ -0,0 +1,609 @@ +inherited frViewControlGridStockEDI: TfrViewControlGridStockEDI + Width = 553 + Height = 477 + inherited cxGrid: TcxGrid + Top = 49 + Width = 553 + Height = 428 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewKT + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Visible = False + GroupIndex = 1 + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewTE: TcxGridDBColumn + DataBinding.FieldName = 'TE' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle + end + object cxGridViewS38: TcxGridDBColumn + DataBinding.FieldName = 'S38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS40: TcxGridDBColumn + DataBinding.FieldName = 'S40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS42: TcxGridDBColumn + DataBinding.FieldName = 'S42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS44: TcxGridDBColumn + DataBinding.FieldName = 'S44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS46: TcxGridDBColumn + DataBinding.FieldName = 'S46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS48: TcxGridDBColumn + DataBinding.FieldName = 'S48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewTS: TcxGridDBColumn + DataBinding.FieldName = 'TS' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewKT: TcxGridDBColumn + DataBinding.FieldName = 'KT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 553 + Height = 49 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 553 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 121 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 284 + Width = 191 + OnChange = frViewFiltrosStock1ccbCentroChange + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 72 + Top = 88 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39129.445520289350000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsOnEveryPage.Footers = False + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas b/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas new file mode 100644 index 0000000..cce71fc --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas @@ -0,0 +1,220 @@ +unit uViewControGridStockEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; + +type + IViewControlGridStockEDI = interface(IViewGrid) + ['{9342442A-28CD-4EA9-95C3-79B1B5302BCE}'] + end; + + TfrViewControlGridStockEDI = class(TfrViewGrid, IViewControlGridStockEDI) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + cxGridViewTE: TcxGridDBColumn; + cxGridViewS38: TcxGridDBColumn; + cxGridViewS40: TcxGridDBColumn; + cxGridViewS42: TcxGridDBColumn; + cxGridViewS44: TcxGridDBColumn; + cxGridViewS46: TcxGridDBColumn; + cxGridViewS48: TcxGridDBColumn; + cxGridViewTS: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewKT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewE38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockEDI.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockEDI.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockEDI.cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockEDI.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; +end; + +procedure TfrViewControlGridStockEDI.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + // + if Assigned(AItem) then + if (AItem.Index = cxGridViewTE.Index) or + (AItem.Index = cxGridViewTS.Index) or + (AItem.Index = cxGridViewKT.Index) then + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewE38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDI.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + + +procedure TfrViewControlGridStockEDI.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockEDI.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockEDI.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm b/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm new file mode 100644 index 0000000..e5c482c --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm @@ -0,0 +1,609 @@ +inherited frViewControlGridStockEDIInventario: TfrViewControlGridStockEDIInventario + Width = 553 + Height = 477 + inherited cxGrid: TcxGrid + Top = 49 + Width = 553 + Height = 428 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewDT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewDT + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Visible = False + GroupIndex = 1 + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewI38: TcxGridDBColumn + DataBinding.FieldName = 'I38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI40: TcxGridDBColumn + DataBinding.FieldName = 'I40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI42: TcxGridDBColumn + DataBinding.FieldName = 'I42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI44: TcxGridDBColumn + DataBinding.FieldName = 'I44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI46: TcxGridDBColumn + DataBinding.FieldName = 'I46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI48: TcxGridDBColumn + DataBinding.FieldName = 'I48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewTI: TcxGridDBColumn + DataBinding.FieldName = 'TI' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewTK: TcxGridDBColumn + DataBinding.FieldName = 'TK' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD38: TcxGridDBColumn + DataBinding.FieldName = 'D38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD40: TcxGridDBColumn + DataBinding.FieldName = 'D40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD42: TcxGridDBColumn + DataBinding.FieldName = 'D42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD44: TcxGridDBColumn + DataBinding.FieldName = 'D44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD46: TcxGridDBColumn + DataBinding.FieldName = 'D46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD48: TcxGridDBColumn + DataBinding.FieldName = 'D48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDT: TcxGridDBColumn + DataBinding.FieldName = 'DT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnCustomDrawCell = cxGridViewDTCustomDrawCell + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 553 + Height = 49 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 553 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 145 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 257 + Width = 184 + OnChange = frViewFiltrosStock1ccbCentroChange + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 72 + Top = 88 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39129.445522280090000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsOnEveryPage.Footers = False + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas b/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas new file mode 100644 index 0000000..cb8e1b5 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas @@ -0,0 +1,224 @@ +unit uViewControGridStockEDIInventario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; + +type + IViewControlGridStockEDIInventario = interface(IViewGrid) + ['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}'] + end; + + TfrViewControlGridStockEDIInventario = class(TfrViewGrid, IViewControlGridStockEDIInventario) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewI38: TcxGridDBColumn; + cxGridViewI40: TcxGridDBColumn; + cxGridViewI42: TcxGridDBColumn; + cxGridViewI44: TcxGridDBColumn; + cxGridViewI46: TcxGridDBColumn; + cxGridViewI48: TcxGridDBColumn; + cxGridViewTI: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewTK: TcxGridDBColumn; + cxGridViewD38: TcxGridDBColumn; + cxGridViewD40: TcxGridDBColumn; + cxGridViewD42: TcxGridDBColumn; + cxGridViewD44: TcxGridDBColumn; + cxGridViewD46: TcxGridDBColumn; + cxGridViewD48: TcxGridDBColumn; + cxGridViewDT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewI38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses + uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockEDIInventario.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockEDIInventario.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockEDIInventario.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; +end; + +procedure TfrViewControlGridStockEDIInventario.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + // + if Assigned(AItem) then + if (AItem.Index = cxGridViewTI.Index) or + (AItem.Index = cxGridViewTK.Index) or + (AItem.Index = cxGridViewDT.Index) then + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewI38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDIInventario.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockEDIInventario.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : Integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + ShowHourglassCursor; + try + AItemList := cxGridView.DataController.Filter.Root; + AItemList.Clear; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + finally + cxGridView.DataController.Filter.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm b/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm new file mode 100644 index 0000000..2f3e4dd --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm @@ -0,0 +1,351 @@ +inherited frViewControlGridStockPrendasCentros: TfrViewControlGridStockPrendasCentros + Width = 621 + Height = 459 + inherited cxGrid: TcxGrid + Top = 43 + Width = 621 + Height = 416 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTOTAL + end> + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLECCION: TcxGridDBColumn + DataBinding.FieldName = 'COLECCION' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + end + object cxGridView38: TcxGridDBColumn + DataBinding.FieldName = 'T38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView40: TcxGridDBColumn + DataBinding.FieldName = 'T40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView42: TcxGridDBColumn + DataBinding.FieldName = 'T42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView44: TcxGridDBColumn + DataBinding.FieldName = 'T44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView46: TcxGridDBColumn + DataBinding.FieldName = 'T46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView48: TcxGridDBColumn + DataBinding.FieldName = 'T48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTOTAL: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewCOLUMN7StylesGetContentStyle + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 621 + Height = 43 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 621 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 161 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 273 + OnChange = frViewFiltrosStock1ccbCentroChange + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 24 + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + Left = 184 + Top = 120 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 39129.445565682870000000 + ReportDocument.IsCaptionAssigned = True + ReportTitle.AdjustOnReportScale = True + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + SupportedCustomDraw = True + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + Left = 96 + Top = 104 + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas b/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas new file mode 100644 index 0000000..3a06f07 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas @@ -0,0 +1,199 @@ +unit uViewControGridStockPrendasCentros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, + uViewParametrosControlGrid, uViewFiltrosStock, Grids, DBGrids; + +type + IViewControlGridStockPrendasCentros = interface(IViewGrid) + ['{E6251B25-10FE-4D0C-94CD-0E554F88B54D}'] + end; + + TfrViewControlGridStockPrendasCentros = class(TfrViewGrid, IViewControlGridStockPrendasCentros) + dxComponentPrinterLink1: TdxGridReportLink; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridView38: TcxGridDBColumn; + cxGridView40: TcxGridDBColumn; + cxGridView42: TcxGridDBColumn; + cxGridView44: TcxGridDBColumn; + cxGridView46: TcxGridDBColumn; + cxGridView48: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCOLUMN7StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridView38GetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: String); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockPrendasCentros.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockPrendasCentros.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridViewKTCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockPrendasCentros.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.CentroColumnIndex := -1; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; +end; + +function TfrViewControlGridStockPrendasCentros.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridStockPrendasCentros.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridViewCOLUMN7StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockPrendasCentros.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridView38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockPrendasCentros.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : Integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp b/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm b/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm new file mode 100644 index 0000000..bbfa397 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm @@ -0,0 +1,365 @@ +inherited frViewControlGridStockVARELA: TfrViewControlGridStockVARELA + Width = 621 + Height = 459 + inherited cxGrid: TcxGrid + Top = 43 + Width = 621 + Height = 416 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewKT + end> + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewFILIAL: TcxGridDBColumn + DataBinding.FieldName = 'FILIAL' + Visible = False + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewTIPO_PRODUTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUTO' + Visible = False + end + object cxGridViewGRUPO_PRODUTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUTO' + Visible = False + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewKT: TcxGridDBColumn + DataBinding.FieldName = 'KT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewKTStylesGetContentStyle + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 621 + Height = 43 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 621 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 177 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 289 + Width = 191 + OnChange = frViewFiltrosStock1ccbCentroChange + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + end + end + end + inherited dsDataSource: TDADataSource [2] + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + Left = 184 + Top = 120 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 39141.797618263890000000 + ReportDocument.IsCaptionAssigned = True + ReportTitle.AdjustOnReportScale = True + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + SupportedCustomDraw = True + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + Left = 96 + Top = 104 + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas b/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas new file mode 100644 index 0000000..26f5667 --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas @@ -0,0 +1,187 @@ +unit uViewControGridStockVARELA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, + uViewParametrosControlGrid, uViewFiltrosStock; + +type + IViewControlGridStockVARELA = interface(IViewGrid) + ['{19831B1A-1D3B-4352-A848-52B00BFEF4EF}'] + end; + + TfrViewControlGridStockVARELA = class(TfrViewGrid, IViewControlGridStockVARELA) + dxComponentPrinterLink1: TdxGridReportLink; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewKT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewK38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewKTStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockVARELA.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockVARELA.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewKTCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockVARELA.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewFILIAL.Index; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; +end; + +function TfrViewControlGridStockVARELA.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridStockVARELA.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewK38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + ShowMessage(AText); + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewKTStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockVARELA.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm b/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm new file mode 100644 index 0000000..e2ead5c --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm @@ -0,0 +1,72 @@ +object frViewFiltrosStock: TfrViewFiltrosStock + Left = 0 + Top = 0 + Width = 537 + Height = 105 + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 537 + Height = 41 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object cbColeccion: TcxComboBox + Left = 64 + Top = 10 + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 18 + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 168 + end + object ccbCentro: TJvCheckedComboBox + Left = 280 + Top = 10 + Width = 191 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 1 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Colecci'#243'n:' + Control = cbColeccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro:' + Control = ccbCentro + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas b/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas new file mode 100644 index 0000000..c7f43ba --- /dev/null +++ b/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas @@ -0,0 +1,111 @@ +unit uViewFiltrosStock; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, cxControls, uViewControlGrid, + cxGraphics, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, DB, cxDBData, + cxGridLevel, cxClasses, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxCheckComboBox, StdCtrls, + Mask, JvExMask, JvToolEdit, JvCombobox; + +type + IViewFiltrosStock = interface + ['{ABC745C3-64F0-44E4-AF4B-118AE5060150}'] + procedure SetFocusedView (const Value : TcxGridDBTableView); + function GetFocusedView : TcxGridDBTableView; + property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; + procedure Refresh; + end; + + TfrViewFiltrosStock = class(TFrame, IViewFiltrosStock) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + cbColeccion: TcxComboBox; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + ccbCentro: TJvCheckedComboBox; + private + FFocusedView : TcxGridDBTableView; + function GetFilterValueList(AColumnIndex: Integer): TStringList; + protected + procedure RellenarFiltros; + procedure SetFocusedView (const Value : TcxGridDBTableView); + function GetFocusedView : TcxGridDBTableView; + public + CentroColumnIndex : Integer; + ColeccionColumnIndex : Integer; + property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; + procedure Refresh; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewFiltrosStock } + +function TfrViewFiltrosStock.GetFilterValueList(AColumnIndex: Integer): TStringList; +var + AValueList : TcxDataFilterValueList; + i : Integer; +begin + Result := TStringList.Create; + + if AColumnIndex < 0 then + Exit; + + AValueList := TcxDataFilterValueList.Create(FFocusedView.DataController.Filter); + try + AValueList.Load(AColumnIndex); + for i := 0 to AValueList.Count - 1 do + Result.Add(AValueList[i].DisplayText); + finally + FreeAndNil(AValueList); + end; +end; + +function TfrViewFiltrosStock.GetFocusedView: TcxGridDBTableView; +begin + Result := FFocusedView; +end; + +procedure TfrViewFiltrosStock.Refresh; +begin + inherited; + RellenarFiltros; +end; + +procedure TfrViewFiltrosStock.RellenarFiltros; +begin + if ColeccionColumnIndex >= 0 then + with cbColeccion.Properties do + begin + Items.Clear; + Items.AddStrings(GetFilterValueList(ColeccionColumnIndex)); + Items.Delete(1); + Items.Strings[0] := 'Todos'; + cbColeccion.Text := 'Todos'; + end; + + if CentroColumnIndex >= 0 then + with ccbCentro do + begin + Items.Clear; + Items.AddStrings(GetFilterValueList(CentroColumnIndex)); + Items.Delete(1); + Items.Strings[0] := 'Todos'; + Checked[0] := True; + end; +end; + +procedure TfrViewFiltrosStock.SetFocusedView( + const Value: TcxGridDBTableView); +begin + FFocusedView := Value; +end; + +end. diff --git a/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas b/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas new file mode 100644 index 0000000..e984ff2 --- /dev/null +++ b/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas @@ -0,0 +1,1684 @@ +unit schStockClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_StockPrendasCentros = '{A01C38D3-19DC-42D1-A0CB-6ABF3E9D5507}'; + RID_StockEDI = '{0CB949AB-F343-4ECF-9163-69234641CEB1}'; + RID_StockVARELA = '{DFB28AB8-F8C4-4AAD-AA73-8015541091D0}'; + RID_StockEDIInventario = '{5496215D-7A4A-43E1-929A-D0538C931177}'; + + { Data table names } + nme_StockPrendasCentros = 'StockPrendasCentros'; + nme_StockEDI = 'StockEDI'; + nme_StockVARELA = 'StockVARELA'; + nme_StockEDIInventario = 'StockEDIInventario'; + + { StockPrendasCentros fields } + fld_StockPrendasCentrosCODIGO = 'CODIGO'; + fld_StockPrendasCentrosPRODUCTO = 'PRODUCTO'; + fld_StockPrendasCentrosTIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockPrendasCentrosGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockPrendasCentrosCOLECCION = 'COLECCION'; + fld_StockPrendasCentrosCOLOR = 'COLOR'; + fld_StockPrendasCentrosT38 = 'T38'; + fld_StockPrendasCentrosT40 = 'T40'; + fld_StockPrendasCentrosT42 = 'T42'; + fld_StockPrendasCentrosT44 = 'T44'; + fld_StockPrendasCentrosT46 = 'T46'; + fld_StockPrendasCentrosT48 = 'T48'; + fld_StockPrendasCentrosTOTAL = 'TOTAL'; + + { StockPrendasCentros field indexes } + idx_StockPrendasCentrosCODIGO = 0; + idx_StockPrendasCentrosPRODUCTO = 1; + idx_StockPrendasCentrosTIPO_PRODUCTO = 2; + idx_StockPrendasCentrosGRUPO_PRODUCTO = 3; + idx_StockPrendasCentrosCOLECCION = 4; + idx_StockPrendasCentrosCOLOR = 5; + idx_StockPrendasCentrosT38 = 6; + idx_StockPrendasCentrosT40 = 7; + idx_StockPrendasCentrosT42 = 8; + idx_StockPrendasCentrosT44 = 9; + idx_StockPrendasCentrosT46 = 10; + idx_StockPrendasCentrosT48 = 11; + idx_StockPrendasCentrosTOTAL = 12; + + { StockEDI fields } + fld_StockEDICENTRO = 'CENTRO'; + fld_StockEDICODIGO = 'CODIGO'; + fld_StockEDIPRODUCTO = 'PRODUCTO'; + fld_StockEDITIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockEDIGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockEDICOLECCION = 'COLECCION'; + fld_StockEDICOLOR = 'COLOR'; + fld_StockEDIE38 = 'E38'; + fld_StockEDIE40 = 'E40'; + fld_StockEDIE42 = 'E42'; + fld_StockEDIE44 = 'E44'; + fld_StockEDIE46 = 'E46'; + fld_StockEDIE48 = 'E48'; + fld_StockEDITE = 'TE'; + fld_StockEDIS38 = 'S38'; + fld_StockEDIS40 = 'S40'; + fld_StockEDIS42 = 'S42'; + fld_StockEDIS44 = 'S44'; + fld_StockEDIS46 = 'S46'; + fld_StockEDIS48 = 'S48'; + fld_StockEDITS = 'TS'; + fld_StockEDIK38 = 'K38'; + fld_StockEDIK40 = 'K40'; + fld_StockEDIK42 = 'K42'; + fld_StockEDIK44 = 'K44'; + fld_StockEDIK46 = 'K46'; + fld_StockEDIK48 = 'K48'; + fld_StockEDIKT = 'KT'; + + { StockEDI field indexes } + idx_StockEDICENTRO = 0; + idx_StockEDICODIGO = 1; + idx_StockEDIPRODUCTO = 2; + idx_StockEDITIPO_PRODUCTO = 3; + idx_StockEDIGRUPO_PRODUCTO = 4; + idx_StockEDICOLECCION = 5; + idx_StockEDICOLOR = 6; + idx_StockEDIE38 = 7; + idx_StockEDIE40 = 8; + idx_StockEDIE42 = 9; + idx_StockEDIE44 = 10; + idx_StockEDIE46 = 11; + idx_StockEDIE48 = 12; + idx_StockEDITE = 13; + idx_StockEDIS38 = 14; + idx_StockEDIS40 = 15; + idx_StockEDIS42 = 16; + idx_StockEDIS44 = 17; + idx_StockEDIS46 = 18; + idx_StockEDIS48 = 19; + idx_StockEDITS = 20; + idx_StockEDIK38 = 21; + idx_StockEDIK40 = 22; + idx_StockEDIK42 = 23; + idx_StockEDIK44 = 24; + idx_StockEDIK46 = 25; + idx_StockEDIK48 = 26; + idx_StockEDIKT = 27; + + { StockVARELA fields } + fld_StockVARELAFILIAL = 'FILIAL'; + fld_StockVARELACODIGO = 'CODIGO'; + fld_StockVARELACOLOR = 'COLOR'; + fld_StockVARELAPRODUCTO = 'PRODUCTO'; + fld_StockVARELATIPO_PRODUTO = 'TIPO_PRODUTO'; + fld_StockVARELAGRUPO_PRODUTO = 'GRUPO_PRODUTO'; + fld_StockVARELACOLECCION = 'COLECCION'; + fld_StockVARELAK38 = 'K38'; + fld_StockVARELAK40 = 'K40'; + fld_StockVARELAK42 = 'K42'; + fld_StockVARELAK44 = 'K44'; + fld_StockVARELAK46 = 'K46'; + fld_StockVARELAK48 = 'K48'; + fld_StockVARELAKT = 'KT'; + + { StockVARELA field indexes } + idx_StockVARELAFILIAL = 0; + idx_StockVARELACODIGO = 1; + idx_StockVARELACOLOR = 2; + idx_StockVARELAPRODUCTO = 3; + idx_StockVARELATIPO_PRODUTO = 4; + idx_StockVARELAGRUPO_PRODUTO = 5; + idx_StockVARELACOLECCION = 6; + idx_StockVARELAK38 = 7; + idx_StockVARELAK40 = 8; + idx_StockVARELAK42 = 9; + idx_StockVARELAK44 = 10; + idx_StockVARELAK46 = 11; + idx_StockVARELAK48 = 12; + idx_StockVARELAKT = 13; + + { StockEDIInventario fields } + fld_StockEDIInventarioCENTRO = 'CENTRO'; + fld_StockEDIInventarioCODIGO = 'CODIGO'; + fld_StockEDIInventarioPRODUCTO = 'PRODUCTO'; + fld_StockEDIInventarioCOLOR = 'COLOR'; + fld_StockEDIInventarioTIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockEDIInventarioGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockEDIInventarioCOLECCION = 'COLECCION'; + fld_StockEDIInventarioI38 = 'I38'; + fld_StockEDIInventarioI40 = 'I40'; + fld_StockEDIInventarioI42 = 'I42'; + fld_StockEDIInventarioI44 = 'I44'; + fld_StockEDIInventarioI46 = 'I46'; + fld_StockEDIInventarioI48 = 'I48'; + fld_StockEDIInventarioTI = 'TI'; + fld_StockEDIInventarioK38 = 'K38'; + fld_StockEDIInventarioK40 = 'K40'; + fld_StockEDIInventarioK42 = 'K42'; + fld_StockEDIInventarioK44 = 'K44'; + fld_StockEDIInventarioK46 = 'K46'; + fld_StockEDIInventarioK48 = 'K48'; + fld_StockEDIInventarioTK = 'TK'; + fld_StockEDIInventarioD38 = 'D38'; + fld_StockEDIInventarioD40 = 'D40'; + fld_StockEDIInventarioD42 = 'D42'; + fld_StockEDIInventarioD44 = 'D44'; + fld_StockEDIInventarioD46 = 'D46'; + fld_StockEDIInventarioD48 = 'D48'; + fld_StockEDIInventarioDT = 'DT'; + + { StockEDIInventario field indexes } + idx_StockEDIInventarioCENTRO = 0; + idx_StockEDIInventarioCODIGO = 1; + idx_StockEDIInventarioPRODUCTO = 2; + idx_StockEDIInventarioCOLOR = 3; + idx_StockEDIInventarioTIPO_PRODUCTO = 4; + idx_StockEDIInventarioGRUPO_PRODUCTO = 5; + idx_StockEDIInventarioCOLECCION = 6; + idx_StockEDIInventarioI38 = 7; + idx_StockEDIInventarioI40 = 8; + idx_StockEDIInventarioI42 = 9; + idx_StockEDIInventarioI44 = 10; + idx_StockEDIInventarioI46 = 11; + idx_StockEDIInventarioI48 = 12; + idx_StockEDIInventarioTI = 13; + idx_StockEDIInventarioK38 = 14; + idx_StockEDIInventarioK40 = 15; + idx_StockEDIInventarioK42 = 16; + idx_StockEDIInventarioK44 = 17; + idx_StockEDIInventarioK46 = 18; + idx_StockEDIInventarioK48 = 19; + idx_StockEDIInventarioTK = 20; + idx_StockEDIInventarioD38 = 21; + idx_StockEDIInventarioD40 = 22; + idx_StockEDIInventarioD42 = 23; + idx_StockEDIInventarioD44 = 24; + idx_StockEDIInventarioD46 = 25; + idx_StockEDIInventarioD48 = 26; + idx_StockEDIInventarioDT = 27; + +type + { IStockPrendasCentros } + IStockPrendasCentros = interface(IDAStronglyTypedDataTable) + ['{9147A7A9-8562-4C08-8D0F-4E08050ED78D}'] + { Property getters and setters } + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetT38Value: Float; + procedure SetT38Value(const aValue: Float); + function GetT40Value: Float; + procedure SetT40Value(const aValue: Float); + function GetT42Value: Float; + procedure SetT42Value(const aValue: Float); + function GetT44Value: Float; + procedure SetT44Value(const aValue: Float); + function GetT46Value: Float; + procedure SetT46Value(const aValue: Float); + function GetT48Value: Float; + procedure SetT48Value(const aValue: Float); + function GetTOTALValue: Float; + procedure SetTOTALValue(const aValue: Float); + + + { Properties } + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property T38: Float read GetT38Value write SetT38Value; + property T40: Float read GetT40Value write SetT40Value; + property T42: Float read GetT42Value write SetT42Value; + property T44: Float read GetT44Value write SetT44Value; + property T46: Float read GetT46Value write SetT46Value; + property T48: Float read GetT48Value write SetT48Value; + property TOTAL: Float read GetTOTALValue write SetTOTALValue; + end; + + { TStockPrendasCentrosDataTableRules } + TStockPrendasCentrosDataTableRules = class(TDADataTableRules, IStockPrendasCentros) + private + protected + { Property getters and setters } + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetT38Value: Float; virtual; + procedure SetT38Value(const aValue: Float); virtual; + function GetT40Value: Float; virtual; + procedure SetT40Value(const aValue: Float); virtual; + function GetT42Value: Float; virtual; + procedure SetT42Value(const aValue: Float); virtual; + function GetT44Value: Float; virtual; + procedure SetT44Value(const aValue: Float); virtual; + function GetT46Value: Float; virtual; + procedure SetT46Value(const aValue: Float); virtual; + function GetT48Value: Float; virtual; + procedure SetT48Value(const aValue: Float); virtual; + function GetTOTALValue: Float; virtual; + procedure SetTOTALValue(const aValue: Float); virtual; + + { Properties } + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property T38: Float read GetT38Value write SetT38Value; + property T40: Float read GetT40Value write SetT40Value; + property T42: Float read GetT42Value write SetT42Value; + property T44: Float read GetT44Value write SetT44Value; + property T46: Float read GetT46Value write SetT46Value; + property T48: Float read GetT48Value write SetT48Value; + property TOTAL: Float read GetTOTALValue write SetTOTALValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockEDI } + IStockEDI = interface(IDAStronglyTypedDataTable) + ['{759266B9-20F4-4F29-9B8B-96F6E62E2560}'] + { Property getters and setters } + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetE38Value: Float; + procedure SetE38Value(const aValue: Float); + function GetE40Value: Float; + procedure SetE40Value(const aValue: Float); + function GetE42Value: Float; + procedure SetE42Value(const aValue: Float); + function GetE44Value: Float; + procedure SetE44Value(const aValue: Float); + function GetE46Value: Float; + procedure SetE46Value(const aValue: Float); + function GetE48Value: Float; + procedure SetE48Value(const aValue: Float); + function GetTEValue: Float; + procedure SetTEValue(const aValue: Float); + function GetS38Value: Float; + procedure SetS38Value(const aValue: Float); + function GetS40Value: Float; + procedure SetS40Value(const aValue: Float); + function GetS42Value: Float; + procedure SetS42Value(const aValue: Float); + function GetS44Value: Float; + procedure SetS44Value(const aValue: Float); + function GetS46Value: Float; + procedure SetS46Value(const aValue: Float); + function GetS48Value: Float; + procedure SetS48Value(const aValue: Float); + function GetTSValue: Float; + procedure SetTSValue(const aValue: Float); + function GetK38Value: Float; + procedure SetK38Value(const aValue: Float); + function GetK40Value: Float; + procedure SetK40Value(const aValue: Float); + function GetK42Value: Float; + procedure SetK42Value(const aValue: Float); + function GetK44Value: Float; + procedure SetK44Value(const aValue: Float); + function GetK46Value: Float; + procedure SetK46Value(const aValue: Float); + function GetK48Value: Float; + procedure SetK48Value(const aValue: Float); + function GetKTValue: Float; + procedure SetKTValue(const aValue: Float); + + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property E38: Float read GetE38Value write SetE38Value; + property E40: Float read GetE40Value write SetE40Value; + property E42: Float read GetE42Value write SetE42Value; + property E44: Float read GetE44Value write SetE44Value; + property E46: Float read GetE46Value write SetE46Value; + property E48: Float read GetE48Value write SetE48Value; + property TE: Float read GetTEValue write SetTEValue; + property S38: Float read GetS38Value write SetS38Value; + property S40: Float read GetS40Value write SetS40Value; + property S42: Float read GetS42Value write SetS42Value; + property S44: Float read GetS44Value write SetS44Value; + property S46: Float read GetS46Value write SetS46Value; + property S48: Float read GetS48Value write SetS48Value; + property TS: Float read GetTSValue write SetTSValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property KT: Float read GetKTValue write SetKTValue; + end; + + { TStockEDIDataTableRules } + TStockEDIDataTableRules = class(TDADataTableRules, IStockEDI) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetE38Value: Float; virtual; + procedure SetE38Value(const aValue: Float); virtual; + function GetE40Value: Float; virtual; + procedure SetE40Value(const aValue: Float); virtual; + function GetE42Value: Float; virtual; + procedure SetE42Value(const aValue: Float); virtual; + function GetE44Value: Float; virtual; + procedure SetE44Value(const aValue: Float); virtual; + function GetE46Value: Float; virtual; + procedure SetE46Value(const aValue: Float); virtual; + function GetE48Value: Float; virtual; + procedure SetE48Value(const aValue: Float); virtual; + function GetTEValue: Float; virtual; + procedure SetTEValue(const aValue: Float); virtual; + function GetS38Value: Float; virtual; + procedure SetS38Value(const aValue: Float); virtual; + function GetS40Value: Float; virtual; + procedure SetS40Value(const aValue: Float); virtual; + function GetS42Value: Float; virtual; + procedure SetS42Value(const aValue: Float); virtual; + function GetS44Value: Float; virtual; + procedure SetS44Value(const aValue: Float); virtual; + function GetS46Value: Float; virtual; + procedure SetS46Value(const aValue: Float); virtual; + function GetS48Value: Float; virtual; + procedure SetS48Value(const aValue: Float); virtual; + function GetTSValue: Float; virtual; + procedure SetTSValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetKTValue: Float; virtual; + procedure SetKTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property E38: Float read GetE38Value write SetE38Value; + property E40: Float read GetE40Value write SetE40Value; + property E42: Float read GetE42Value write SetE42Value; + property E44: Float read GetE44Value write SetE44Value; + property E46: Float read GetE46Value write SetE46Value; + property E48: Float read GetE48Value write SetE48Value; + property TE: Float read GetTEValue write SetTEValue; + property S38: Float read GetS38Value write SetS38Value; + property S40: Float read GetS40Value write SetS40Value; + property S42: Float read GetS42Value write SetS42Value; + property S44: Float read GetS44Value write SetS44Value; + property S46: Float read GetS46Value write SetS46Value; + property S48: Float read GetS48Value write SetS48Value; + property TS: Float read GetTSValue write SetTSValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property KT: Float read GetKTValue write SetKTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockVARELA } + IStockVARELA = interface(IDAStronglyTypedDataTable) + ['{29240A98-CF0E-4E1C-AE1B-17DE8E33837F}'] + { Property getters and setters } + function GetFILIALValue: String; + procedure SetFILIALValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUTOValue: String; + procedure SetTIPO_PRODUTOValue(const aValue: String); + function GetGRUPO_PRODUTOValue: String; + procedure SetGRUPO_PRODUTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetK38Value: Integer; + procedure SetK38Value(const aValue: Integer); + function GetK40Value: Integer; + procedure SetK40Value(const aValue: Integer); + function GetK42Value: Integer; + procedure SetK42Value(const aValue: Integer); + function GetK44Value: Integer; + procedure SetK44Value(const aValue: Integer); + function GetK46Value: Integer; + procedure SetK46Value(const aValue: Integer); + function GetK48Value: Integer; + procedure SetK48Value(const aValue: Integer); + function GetKTValue: Integer; + procedure SetKTValue(const aValue: Integer); + + + { Properties } + property FILIAL: String read GetFILIALValue write SetFILIALValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property K38: Integer read GetK38Value write SetK38Value; + property K40: Integer read GetK40Value write SetK40Value; + property K42: Integer read GetK42Value write SetK42Value; + property K44: Integer read GetK44Value write SetK44Value; + property K46: Integer read GetK46Value write SetK46Value; + property K48: Integer read GetK48Value write SetK48Value; + property KT: Integer read GetKTValue write SetKTValue; + end; + + { TStockVARELADataTableRules } + TStockVARELADataTableRules = class(TDADataTableRules, IStockVARELA) + private + protected + { Property getters and setters } + function GetFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUTOValue: String; virtual; + procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUTOValue: String; virtual; + procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetK38Value: Integer; virtual; + procedure SetK38Value(const aValue: Integer); virtual; + function GetK40Value: Integer; virtual; + procedure SetK40Value(const aValue: Integer); virtual; + function GetK42Value: Integer; virtual; + procedure SetK42Value(const aValue: Integer); virtual; + function GetK44Value: Integer; virtual; + procedure SetK44Value(const aValue: Integer); virtual; + function GetK46Value: Integer; virtual; + procedure SetK46Value(const aValue: Integer); virtual; + function GetK48Value: Integer; virtual; + procedure SetK48Value(const aValue: Integer); virtual; + function GetKTValue: Integer; virtual; + procedure SetKTValue(const aValue: Integer); virtual; + + { Properties } + property FILIAL: String read GetFILIALValue write SetFILIALValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property K38: Integer read GetK38Value write SetK38Value; + property K40: Integer read GetK40Value write SetK40Value; + property K42: Integer read GetK42Value write SetK42Value; + property K44: Integer read GetK44Value write SetK44Value; + property K46: Integer read GetK46Value write SetK46Value; + property K48: Integer read GetK48Value write SetK48Value; + property KT: Integer read GetKTValue write SetKTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockEDIInventario } + IStockEDIInventario = interface(IDAStronglyTypedDataTable) + ['{ECFA34AB-357B-4817-BB85-10D0BF34884F}'] + { Property getters and setters } + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetI38Value: Float; + procedure SetI38Value(const aValue: Float); + function GetI40Value: Float; + procedure SetI40Value(const aValue: Float); + function GetI42Value: Float; + procedure SetI42Value(const aValue: Float); + function GetI44Value: Float; + procedure SetI44Value(const aValue: Float); + function GetI46Value: Float; + procedure SetI46Value(const aValue: Float); + function GetI48Value: Float; + procedure SetI48Value(const aValue: Float); + function GetTIValue: Float; + procedure SetTIValue(const aValue: Float); + function GetK38Value: Float; + procedure SetK38Value(const aValue: Float); + function GetK40Value: Float; + procedure SetK40Value(const aValue: Float); + function GetK42Value: Float; + procedure SetK42Value(const aValue: Float); + function GetK44Value: Float; + procedure SetK44Value(const aValue: Float); + function GetK46Value: Float; + procedure SetK46Value(const aValue: Float); + function GetK48Value: Float; + procedure SetK48Value(const aValue: Float); + function GetTKValue: Float; + procedure SetTKValue(const aValue: Float); + function GetD38Value: Float; + procedure SetD38Value(const aValue: Float); + function GetD40Value: Float; + procedure SetD40Value(const aValue: Float); + function GetD42Value: Float; + procedure SetD42Value(const aValue: Float); + function GetD44Value: Float; + procedure SetD44Value(const aValue: Float); + function GetD46Value: Float; + procedure SetD46Value(const aValue: Float); + function GetD48Value: Float; + procedure SetD48Value(const aValue: Float); + function GetDTValue: Float; + procedure SetDTValue(const aValue: Float); + + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property I38: Float read GetI38Value write SetI38Value; + property I40: Float read GetI40Value write SetI40Value; + property I42: Float read GetI42Value write SetI42Value; + property I44: Float read GetI44Value write SetI44Value; + property I46: Float read GetI46Value write SetI46Value; + property I48: Float read GetI48Value write SetI48Value; + property TI: Float read GetTIValue write SetTIValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property TK: Float read GetTKValue write SetTKValue; + property D38: Float read GetD38Value write SetD38Value; + property D40: Float read GetD40Value write SetD40Value; + property D42: Float read GetD42Value write SetD42Value; + property D44: Float read GetD44Value write SetD44Value; + property D46: Float read GetD46Value write SetD46Value; + property D48: Float read GetD48Value write SetD48Value; + property DT: Float read GetDTValue write SetDTValue; + end; + + { TStockEDIInventarioDataTableRules } + TStockEDIInventarioDataTableRules = class(TDADataTableRules, IStockEDIInventario) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetI38Value: Float; virtual; + procedure SetI38Value(const aValue: Float); virtual; + function GetI40Value: Float; virtual; + procedure SetI40Value(const aValue: Float); virtual; + function GetI42Value: Float; virtual; + procedure SetI42Value(const aValue: Float); virtual; + function GetI44Value: Float; virtual; + procedure SetI44Value(const aValue: Float); virtual; + function GetI46Value: Float; virtual; + procedure SetI46Value(const aValue: Float); virtual; + function GetI48Value: Float; virtual; + procedure SetI48Value(const aValue: Float); virtual; + function GetTIValue: Float; virtual; + procedure SetTIValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetTKValue: Float; virtual; + procedure SetTKValue(const aValue: Float); virtual; + function GetD38Value: Float; virtual; + procedure SetD38Value(const aValue: Float); virtual; + function GetD40Value: Float; virtual; + procedure SetD40Value(const aValue: Float); virtual; + function GetD42Value: Float; virtual; + procedure SetD42Value(const aValue: Float); virtual; + function GetD44Value: Float; virtual; + procedure SetD44Value(const aValue: Float); virtual; + function GetD46Value: Float; virtual; + procedure SetD46Value(const aValue: Float); virtual; + function GetD48Value: Float; virtual; + procedure SetD48Value(const aValue: Float); virtual; + function GetDTValue: Float; virtual; + procedure SetDTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property I38: Float read GetI38Value write SetI38Value; + property I40: Float read GetI40Value write SetI40Value; + property I42: Float read GetI42Value write SetI42Value; + property I44: Float read GetI44Value write SetI44Value; + property I46: Float read GetI46Value write SetI46Value; + property I48: Float read GetI48Value write SetI48Value; + property TI: Float read GetTIValue write SetTIValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property TK: Float read GetTKValue write SetTKValue; + property D38: Float read GetD38Value write SetD38Value; + property D40: Float read GetD40Value write SetD40Value; + property D42: Float read GetD42Value write SetD42Value; + property D44: Float read GetD44Value write SetD44Value; + property D46: Float read GetD46Value write SetD46Value; + property D48: Float read GetD48Value write SetD48Value; + property DT: Float read GetDTValue write SetDTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TStockPrendasCentrosDataTableRules } +constructor TStockPrendasCentrosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockPrendasCentrosDataTableRules.Destroy; +begin + inherited; +end; + +function TStockPrendasCentrosDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT38Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT40Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT42Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT44Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT46Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT48Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetTOTALValue: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetTOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat := aValue; +end; + + +{ TStockEDIDataTableRules } +constructor TStockEDIDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockEDIDataTableRules.Destroy; +begin + inherited; +end; + +function TStockEDIDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_StockEDICENTRO].AsString; +end; + +procedure TStockEDIDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICENTRO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockEDICODIGO].AsString; +end; + +procedure TStockEDIDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICODIGO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIPRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIPRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockEDICOLECCION].AsString; +end; + +procedure TStockEDIDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICOLECCION].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockEDICOLOR].AsString; +end; + +procedure TStockEDIDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICOLOR].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetE38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetTEValue: Float; +begin + result := DataTable.Fields[idx_StockEDITE].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetTEValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDITE].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetTSValue: Float; +begin + result := DataTable.Fields[idx_StockEDITS].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetTSValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDITS].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetKTValue: Float; +begin + result := DataTable.Fields[idx_StockEDIKT].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetKTValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIKT].AsFloat := aValue; +end; + + +{ TStockVARELADataTableRules } +constructor TStockVARELADataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockVARELADataTableRules.Destroy; +begin + inherited; +end; + +function TStockVARELADataTableRules.GetFILIALValue: String; +begin + result := DataTable.Fields[idx_StockVARELAFILIAL].AsString; +end; + +procedure TStockVARELADataTableRules.SetFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAFILIAL].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockVARELACODIGO].AsString; +end; + +procedure TStockVARELADataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACODIGO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockVARELACOLOR].AsString; +end; + +procedure TStockVARELADataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACOLOR].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELAPRODUCTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAPRODUCTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetTIPO_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetTIPO_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetGRUPO_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetGRUPO_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockVARELACOLECCION].AsString; +end; + +procedure TStockVARELADataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACOLECCION].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetK38Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK38].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK38Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK38].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK40Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK40].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK40Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK40].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK42Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK42].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK42Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK42].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK44Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK44].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK44Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK44].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK46Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK46].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK46Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK46].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK48Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK48].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK48Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK48].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetKTValue: Integer; +begin + result := DataTable.Fields[idx_StockVARELAKT].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetKTValue(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAKT].AsInteger := aValue; +end; + + +{ TStockEDIInventarioDataTableRules } +constructor TStockEDIInventarioDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockEDIInventarioDataTableRules.Destroy; +begin + inherited; +end; + +function TStockEDIInventarioDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTIValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioTI].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetTIValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioTI].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTKValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioTK].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetTKValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioTK].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetDTValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioDT].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetDTValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioDT].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_StockPrendasCentros, TStockPrendasCentrosDataTableRules); + RegisterDataTableRules(RID_StockEDI, TStockEDIDataTableRules); + RegisterDataTableRules(RID_StockVARELA, TStockVARELADataTableRules); + RegisterDataTableRules(RID_StockEDIInventario, TStockEDIInventarioDataTableRules); + +end. diff --git a/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas b/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas new file mode 100644 index 0000000..a732519 --- /dev/null +++ b/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas @@ -0,0 +1,1991 @@ +unit schStockServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schStockClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_StockPrendasCentrosDelta = '{161451C4-A2CF-4468-A880-DBA417307512}'; + RID_StockEDIDelta = '{F20A87B8-0277-4819-B7A6-667A9904EFA9}'; + RID_StockVARELADelta = '{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'; + RID_StockEDIInventarioDelta = '{11EC9F46-F7DD-486E-ACD2-5873746C963D}'; + +type + { IStockPrendasCentrosDelta } + IStockPrendasCentrosDelta = interface(IStockPrendasCentros) + ['{161451C4-A2CF-4468-A880-DBA417307512}'] + { Property getters and setters } + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldT38Value : Float; + function GetOldT40Value : Float; + function GetOldT42Value : Float; + function GetOldT44Value : Float; + function GetOldT46Value : Float; + function GetOldT48Value : Float; + function GetOldTOTALValue : Float; + + { Properties } + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldT38 : Float read GetOldT38Value; + property OldT40 : Float read GetOldT40Value; + property OldT42 : Float read GetOldT42Value; + property OldT44 : Float read GetOldT44Value; + property OldT46 : Float read GetOldT46Value; + property OldT48 : Float read GetOldT48Value; + property OldTOTAL : Float read GetOldTOTALValue; + end; + + { TStockPrendasCentrosBusinessProcessorRules } + TStockPrendasCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IStockPrendasCentros, IStockPrendasCentrosDelta) + private + protected + { Property getters and setters } + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetT38Value: Float; virtual; + function GetOldT38Value: Float; virtual; + procedure SetT38Value(const aValue: Float); virtual; + function GetT40Value: Float; virtual; + function GetOldT40Value: Float; virtual; + procedure SetT40Value(const aValue: Float); virtual; + function GetT42Value: Float; virtual; + function GetOldT42Value: Float; virtual; + procedure SetT42Value(const aValue: Float); virtual; + function GetT44Value: Float; virtual; + function GetOldT44Value: Float; virtual; + procedure SetT44Value(const aValue: Float); virtual; + function GetT46Value: Float; virtual; + function GetOldT46Value: Float; virtual; + procedure SetT46Value(const aValue: Float); virtual; + function GetT48Value: Float; virtual; + function GetOldT48Value: Float; virtual; + procedure SetT48Value(const aValue: Float); virtual; + function GetTOTALValue: Float; virtual; + function GetOldTOTALValue: Float; virtual; + procedure SetTOTALValue(const aValue: Float); virtual; + + { Properties } + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property T38 : Float read GetT38Value write SetT38Value; + property OldT38 : Float read GetOldT38Value; + property T40 : Float read GetT40Value write SetT40Value; + property OldT40 : Float read GetOldT40Value; + property T42 : Float read GetT42Value write SetT42Value; + property OldT42 : Float read GetOldT42Value; + property T44 : Float read GetT44Value write SetT44Value; + property OldT44 : Float read GetOldT44Value; + property T46 : Float read GetT46Value write SetT46Value; + property OldT46 : Float read GetOldT46Value; + property T48 : Float read GetT48Value write SetT48Value; + property OldT48 : Float read GetOldT48Value; + property TOTAL : Float read GetTOTALValue write SetTOTALValue; + property OldTOTAL : Float read GetOldTOTALValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockEDIDelta } + IStockEDIDelta = interface(IStockEDI) + ['{F20A87B8-0277-4819-B7A6-667A9904EFA9}'] + { Property getters and setters } + function GetOldCENTROValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldE38Value : Float; + function GetOldE40Value : Float; + function GetOldE42Value : Float; + function GetOldE44Value : Float; + function GetOldE46Value : Float; + function GetOldE48Value : Float; + function GetOldTEValue : Float; + function GetOldS38Value : Float; + function GetOldS40Value : Float; + function GetOldS42Value : Float; + function GetOldS44Value : Float; + function GetOldS46Value : Float; + function GetOldS48Value : Float; + function GetOldTSValue : Float; + function GetOldK38Value : Float; + function GetOldK40Value : Float; + function GetOldK42Value : Float; + function GetOldK44Value : Float; + function GetOldK46Value : Float; + function GetOldK48Value : Float; + function GetOldKTValue : Float; + + { Properties } + property OldCENTRO : String read GetOldCENTROValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldE38 : Float read GetOldE38Value; + property OldE40 : Float read GetOldE40Value; + property OldE42 : Float read GetOldE42Value; + property OldE44 : Float read GetOldE44Value; + property OldE46 : Float read GetOldE46Value; + property OldE48 : Float read GetOldE48Value; + property OldTE : Float read GetOldTEValue; + property OldS38 : Float read GetOldS38Value; + property OldS40 : Float read GetOldS40Value; + property OldS42 : Float read GetOldS42Value; + property OldS44 : Float read GetOldS44Value; + property OldS46 : Float read GetOldS46Value; + property OldS48 : Float read GetOldS48Value; + property OldTS : Float read GetOldTSValue; + property OldK38 : Float read GetOldK38Value; + property OldK40 : Float read GetOldK40Value; + property OldK42 : Float read GetOldK42Value; + property OldK44 : Float read GetOldK44Value; + property OldK46 : Float read GetOldK46Value; + property OldK48 : Float read GetOldK48Value; + property OldKT : Float read GetOldKTValue; + end; + + { TStockEDIBusinessProcessorRules } + TStockEDIBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDI, IStockEDIDelta) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetE38Value: Float; virtual; + function GetOldE38Value: Float; virtual; + procedure SetE38Value(const aValue: Float); virtual; + function GetE40Value: Float; virtual; + function GetOldE40Value: Float; virtual; + procedure SetE40Value(const aValue: Float); virtual; + function GetE42Value: Float; virtual; + function GetOldE42Value: Float; virtual; + procedure SetE42Value(const aValue: Float); virtual; + function GetE44Value: Float; virtual; + function GetOldE44Value: Float; virtual; + procedure SetE44Value(const aValue: Float); virtual; + function GetE46Value: Float; virtual; + function GetOldE46Value: Float; virtual; + procedure SetE46Value(const aValue: Float); virtual; + function GetE48Value: Float; virtual; + function GetOldE48Value: Float; virtual; + procedure SetE48Value(const aValue: Float); virtual; + function GetTEValue: Float; virtual; + function GetOldTEValue: Float; virtual; + procedure SetTEValue(const aValue: Float); virtual; + function GetS38Value: Float; virtual; + function GetOldS38Value: Float; virtual; + procedure SetS38Value(const aValue: Float); virtual; + function GetS40Value: Float; virtual; + function GetOldS40Value: Float; virtual; + procedure SetS40Value(const aValue: Float); virtual; + function GetS42Value: Float; virtual; + function GetOldS42Value: Float; virtual; + procedure SetS42Value(const aValue: Float); virtual; + function GetS44Value: Float; virtual; + function GetOldS44Value: Float; virtual; + procedure SetS44Value(const aValue: Float); virtual; + function GetS46Value: Float; virtual; + function GetOldS46Value: Float; virtual; + procedure SetS46Value(const aValue: Float); virtual; + function GetS48Value: Float; virtual; + function GetOldS48Value: Float; virtual; + procedure SetS48Value(const aValue: Float); virtual; + function GetTSValue: Float; virtual; + function GetOldTSValue: Float; virtual; + procedure SetTSValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + function GetOldK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + function GetOldK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + function GetOldK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + function GetOldK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + function GetOldK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + function GetOldK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetKTValue: Float; virtual; + function GetOldKTValue: Float; virtual; + procedure SetKTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property E38 : Float read GetE38Value write SetE38Value; + property OldE38 : Float read GetOldE38Value; + property E40 : Float read GetE40Value write SetE40Value; + property OldE40 : Float read GetOldE40Value; + property E42 : Float read GetE42Value write SetE42Value; + property OldE42 : Float read GetOldE42Value; + property E44 : Float read GetE44Value write SetE44Value; + property OldE44 : Float read GetOldE44Value; + property E46 : Float read GetE46Value write SetE46Value; + property OldE46 : Float read GetOldE46Value; + property E48 : Float read GetE48Value write SetE48Value; + property OldE48 : Float read GetOldE48Value; + property TE : Float read GetTEValue write SetTEValue; + property OldTE : Float read GetOldTEValue; + property S38 : Float read GetS38Value write SetS38Value; + property OldS38 : Float read GetOldS38Value; + property S40 : Float read GetS40Value write SetS40Value; + property OldS40 : Float read GetOldS40Value; + property S42 : Float read GetS42Value write SetS42Value; + property OldS42 : Float read GetOldS42Value; + property S44 : Float read GetS44Value write SetS44Value; + property OldS44 : Float read GetOldS44Value; + property S46 : Float read GetS46Value write SetS46Value; + property OldS46 : Float read GetOldS46Value; + property S48 : Float read GetS48Value write SetS48Value; + property OldS48 : Float read GetOldS48Value; + property TS : Float read GetTSValue write SetTSValue; + property OldTS : Float read GetOldTSValue; + property K38 : Float read GetK38Value write SetK38Value; + property OldK38 : Float read GetOldK38Value; + property K40 : Float read GetK40Value write SetK40Value; + property OldK40 : Float read GetOldK40Value; + property K42 : Float read GetK42Value write SetK42Value; + property OldK42 : Float read GetOldK42Value; + property K44 : Float read GetK44Value write SetK44Value; + property OldK44 : Float read GetOldK44Value; + property K46 : Float read GetK46Value write SetK46Value; + property OldK46 : Float read GetOldK46Value; + property K48 : Float read GetK48Value write SetK48Value; + property OldK48 : Float read GetOldK48Value; + property KT : Float read GetKTValue write SetKTValue; + property OldKT : Float read GetOldKTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockVARELADelta } + IStockVARELADelta = interface(IStockVARELA) + ['{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'] + { Property getters and setters } + function GetOldFILIALValue : String; + function GetOldCODIGOValue : String; + function GetOldCOLORValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUTOValue : String; + function GetOldGRUPO_PRODUTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldK38Value : Integer; + function GetOldK40Value : Integer; + function GetOldK42Value : Integer; + function GetOldK44Value : Integer; + function GetOldK46Value : Integer; + function GetOldK48Value : Integer; + function GetOldKTValue : Integer; + + { Properties } + property OldFILIAL : String read GetOldFILIALValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; + property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldK38 : Integer read GetOldK38Value; + property OldK40 : Integer read GetOldK40Value; + property OldK42 : Integer read GetOldK42Value; + property OldK44 : Integer read GetOldK44Value; + property OldK46 : Integer read GetOldK46Value; + property OldK48 : Integer read GetOldK48Value; + property OldKT : Integer read GetOldKTValue; + end; + + { TStockVARELABusinessProcessorRules } + TStockVARELABusinessProcessorRules = class(TDABusinessProcessorRules, IStockVARELA, IStockVARELADelta) + private + protected + { Property getters and setters } + function GetFILIALValue: String; virtual; + function GetOldFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUTOValue: String; virtual; + function GetOldTIPO_PRODUTOValue: String; virtual; + procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUTOValue: String; virtual; + function GetOldGRUPO_PRODUTOValue: String; virtual; + procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetK38Value: Integer; virtual; + function GetOldK38Value: Integer; virtual; + procedure SetK38Value(const aValue: Integer); virtual; + function GetK40Value: Integer; virtual; + function GetOldK40Value: Integer; virtual; + procedure SetK40Value(const aValue: Integer); virtual; + function GetK42Value: Integer; virtual; + function GetOldK42Value: Integer; virtual; + procedure SetK42Value(const aValue: Integer); virtual; + function GetK44Value: Integer; virtual; + function GetOldK44Value: Integer; virtual; + procedure SetK44Value(const aValue: Integer); virtual; + function GetK46Value: Integer; virtual; + function GetOldK46Value: Integer; virtual; + procedure SetK46Value(const aValue: Integer); virtual; + function GetK48Value: Integer; virtual; + function GetOldK48Value: Integer; virtual; + procedure SetK48Value(const aValue: Integer); virtual; + function GetKTValue: Integer; virtual; + function GetOldKTValue: Integer; virtual; + procedure SetKTValue(const aValue: Integer); virtual; + + { Properties } + property FILIAL : String read GetFILIALValue write SetFILIALValue; + property OldFILIAL : String read GetOldFILIALValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUTO : String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; + property GRUPO_PRODUTO : String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property K38 : Integer read GetK38Value write SetK38Value; + property OldK38 : Integer read GetOldK38Value; + property K40 : Integer read GetK40Value write SetK40Value; + property OldK40 : Integer read GetOldK40Value; + property K42 : Integer read GetK42Value write SetK42Value; + property OldK42 : Integer read GetOldK42Value; + property K44 : Integer read GetK44Value write SetK44Value; + property OldK44 : Integer read GetOldK44Value; + property K46 : Integer read GetK46Value write SetK46Value; + property OldK46 : Integer read GetOldK46Value; + property K48 : Integer read GetK48Value write SetK48Value; + property OldK48 : Integer read GetOldK48Value; + property KT : Integer read GetKTValue write SetKTValue; + property OldKT : Integer read GetOldKTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockEDIInventarioDelta } + IStockEDIInventarioDelta = interface(IStockEDIInventario) + ['{11EC9F46-F7DD-486E-ACD2-5873746C963D}'] + { Property getters and setters } + function GetOldCENTROValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldCOLORValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldI38Value : Float; + function GetOldI40Value : Float; + function GetOldI42Value : Float; + function GetOldI44Value : Float; + function GetOldI46Value : Float; + function GetOldI48Value : Float; + function GetOldTIValue : Float; + function GetOldK38Value : Float; + function GetOldK40Value : Float; + function GetOldK42Value : Float; + function GetOldK44Value : Float; + function GetOldK46Value : Float; + function GetOldK48Value : Float; + function GetOldTKValue : Float; + function GetOldD38Value : Float; + function GetOldD40Value : Float; + function GetOldD42Value : Float; + function GetOldD44Value : Float; + function GetOldD46Value : Float; + function GetOldD48Value : Float; + function GetOldDTValue : Float; + + { Properties } + property OldCENTRO : String read GetOldCENTROValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldI38 : Float read GetOldI38Value; + property OldI40 : Float read GetOldI40Value; + property OldI42 : Float read GetOldI42Value; + property OldI44 : Float read GetOldI44Value; + property OldI46 : Float read GetOldI46Value; + property OldI48 : Float read GetOldI48Value; + property OldTI : Float read GetOldTIValue; + property OldK38 : Float read GetOldK38Value; + property OldK40 : Float read GetOldK40Value; + property OldK42 : Float read GetOldK42Value; + property OldK44 : Float read GetOldK44Value; + property OldK46 : Float read GetOldK46Value; + property OldK48 : Float read GetOldK48Value; + property OldTK : Float read GetOldTKValue; + property OldD38 : Float read GetOldD38Value; + property OldD40 : Float read GetOldD40Value; + property OldD42 : Float read GetOldD42Value; + property OldD44 : Float read GetOldD44Value; + property OldD46 : Float read GetOldD46Value; + property OldD48 : Float read GetOldD48Value; + property OldDT : Float read GetOldDTValue; + end; + + { TStockEDIInventarioBusinessProcessorRules } + TStockEDIInventarioBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDIInventario, IStockEDIInventarioDelta) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetI38Value: Float; virtual; + function GetOldI38Value: Float; virtual; + procedure SetI38Value(const aValue: Float); virtual; + function GetI40Value: Float; virtual; + function GetOldI40Value: Float; virtual; + procedure SetI40Value(const aValue: Float); virtual; + function GetI42Value: Float; virtual; + function GetOldI42Value: Float; virtual; + procedure SetI42Value(const aValue: Float); virtual; + function GetI44Value: Float; virtual; + function GetOldI44Value: Float; virtual; + procedure SetI44Value(const aValue: Float); virtual; + function GetI46Value: Float; virtual; + function GetOldI46Value: Float; virtual; + procedure SetI46Value(const aValue: Float); virtual; + function GetI48Value: Float; virtual; + function GetOldI48Value: Float; virtual; + procedure SetI48Value(const aValue: Float); virtual; + function GetTIValue: Float; virtual; + function GetOldTIValue: Float; virtual; + procedure SetTIValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + function GetOldK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + function GetOldK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + function GetOldK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + function GetOldK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + function GetOldK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + function GetOldK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetTKValue: Float; virtual; + function GetOldTKValue: Float; virtual; + procedure SetTKValue(const aValue: Float); virtual; + function GetD38Value: Float; virtual; + function GetOldD38Value: Float; virtual; + procedure SetD38Value(const aValue: Float); virtual; + function GetD40Value: Float; virtual; + function GetOldD40Value: Float; virtual; + procedure SetD40Value(const aValue: Float); virtual; + function GetD42Value: Float; virtual; + function GetOldD42Value: Float; virtual; + procedure SetD42Value(const aValue: Float); virtual; + function GetD44Value: Float; virtual; + function GetOldD44Value: Float; virtual; + procedure SetD44Value(const aValue: Float); virtual; + function GetD46Value: Float; virtual; + function GetOldD46Value: Float; virtual; + procedure SetD46Value(const aValue: Float); virtual; + function GetD48Value: Float; virtual; + function GetOldD48Value: Float; virtual; + procedure SetD48Value(const aValue: Float); virtual; + function GetDTValue: Float; virtual; + function GetOldDTValue: Float; virtual; + procedure SetDTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property I38 : Float read GetI38Value write SetI38Value; + property OldI38 : Float read GetOldI38Value; + property I40 : Float read GetI40Value write SetI40Value; + property OldI40 : Float read GetOldI40Value; + property I42 : Float read GetI42Value write SetI42Value; + property OldI42 : Float read GetOldI42Value; + property I44 : Float read GetI44Value write SetI44Value; + property OldI44 : Float read GetOldI44Value; + property I46 : Float read GetI46Value write SetI46Value; + property OldI46 : Float read GetOldI46Value; + property I48 : Float read GetI48Value write SetI48Value; + property OldI48 : Float read GetOldI48Value; + property TI : Float read GetTIValue write SetTIValue; + property OldTI : Float read GetOldTIValue; + property K38 : Float read GetK38Value write SetK38Value; + property OldK38 : Float read GetOldK38Value; + property K40 : Float read GetK40Value write SetK40Value; + property OldK40 : Float read GetOldK40Value; + property K42 : Float read GetK42Value write SetK42Value; + property OldK42 : Float read GetOldK42Value; + property K44 : Float read GetK44Value write SetK44Value; + property OldK44 : Float read GetOldK44Value; + property K46 : Float read GetK46Value write SetK46Value; + property OldK46 : Float read GetOldK46Value; + property K48 : Float read GetK48Value write SetK48Value; + property OldK48 : Float read GetOldK48Value; + property TK : Float read GetTKValue write SetTKValue; + property OldTK : Float read GetOldTKValue; + property D38 : Float read GetD38Value write SetD38Value; + property OldD38 : Float read GetOldD38Value; + property D40 : Float read GetD40Value write SetD40Value; + property OldD40 : Float read GetOldD40Value; + property D42 : Float read GetD42Value write SetD42Value; + property OldD42 : Float read GetOldD42Value; + property D44 : Float read GetD44Value write SetD44Value; + property OldD44 : Float read GetOldD44Value; + property D46 : Float read GetD46Value write SetD46Value; + property OldD46 : Float read GetOldD46Value; + property D48 : Float read GetD48Value write SetD48Value; + property OldD48 : Float read GetOldD48Value; + property DT : Float read GetDTValue write SetDTValue; + property OldDT : Float read GetOldDTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TStockPrendasCentrosBusinessProcessorRules } +constructor TStockPrendasCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockPrendasCentrosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCODIGO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosPRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLECCION]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLOR]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT38]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT40]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT42]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT44]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT46]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT48]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetTOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldTOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTOTAL]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetTOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL] := aValue; +end; + + +{ TStockEDIBusinessProcessorRules } +constructor TStockEDIBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockEDIBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockEDIBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICENTRO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICODIGO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIPRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITIPO_PRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIGRUPO_PRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLECCION]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLOR]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITE]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTSValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTSValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITS]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTSValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetKTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT]; +end; + +function TStockEDIBusinessProcessorRules.GetOldKTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIKT]; +end; + +procedure TStockEDIBusinessProcessorRules.SetKTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT] := aValue; +end; + + +{ TStockVARELABusinessProcessorRules } +constructor TStockVARELABusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockVARELABusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockVARELABusinessProcessorRules.GetFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL]; +end; + +function TStockVARELABusinessProcessorRules.GetOldFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAFILIAL]; +end; + +procedure TStockVARELABusinessProcessorRules.SetFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACODIGO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLOR]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAPRODUCTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetTIPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldTIPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELATIPO_PRODUTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetTIPO_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetGRUPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldGRUPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAGRUPO_PRODUTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetGRUPO_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLECCION]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK38Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK38Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK38]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK38Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK40Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK40Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK40]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK40Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK42Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK42Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK42]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK42Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK44Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK44Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK44]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK44Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK46Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK46Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK46]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK46Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK48Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK48Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK48]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK48Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetKTValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT]; +end; + +function TStockVARELABusinessProcessorRules.GetOldKTValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAKT]; +end; + +procedure TStockVARELABusinessProcessorRules.SetKTValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT] := aValue; +end; + + +{ TStockEDIInventarioBusinessProcessorRules } +constructor TStockEDIInventarioBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockEDIInventarioBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCENTRO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCODIGO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioPRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLOR]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLECCION]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTIValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTIValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTI]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTIValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTKValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTKValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTK]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTKValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetDTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldDTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioDT]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetDTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_StockPrendasCentrosDelta, TStockPrendasCentrosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockEDIDelta, TStockEDIBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockVARELADelta, TStockVARELABusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockEDIInventarioDelta, TStockEDIInventarioBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Stock/Reglas/uBizStock.pas b/Source/Modulos/Stock/Reglas/uBizStock.pas new file mode 100644 index 0000000..9f0ff64 --- /dev/null +++ b/Source/Modulos/Stock/Reglas/uBizStock.pas @@ -0,0 +1,58 @@ +unit uBizStock; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schStockClient_Intf; + +const + BIZ_STOCK_EDI = 'Client.StockEDI'; + BIZ_STOCK_EDIINVENTARIO = 'Client.StockEDIInventario'; + BIZ_STOCK_VARELA = 'Client.StockVARELA'; + BIZ_STOCK_PRENDAS_CENTROS = 'Client.StockPrendasCentros'; + +type + IBizStockEDI = interface(IStockEDI) + ['{01767388-AF6D-4EF0-A2A4-092D698ECD19}'] + end; + + IBizStockEDIInventario = interface(IStockEDIInventario) + ['{156E243C-7B4D-4223-8FAF-A965E8C5A94D}'] + end; + + IBizStockVARELA = interface(IStockVARELA) + ['{2DC85C8D-E7CA-4B13-A7CE-46E412D05D76}'] + end; + + IBizStockPrendasCentros = interface(IStockPrendasCentros) + ['{F17984D3-1262-4D0B-94F3-E86DA3B1357E}'] + end; + + TBizStockEDIDataTableRules = class(TStockEDIDataTableRules, IBizStockEDI) + end; + + TBizStockEDIInventarioDataTableRules = class(TStockEDIInventarioDataTableRules, IBizStockEDIInventario) + end; + + TBizStockVARELADataTableRules = class(TStockVARELADataTableRules, IBizStockVARELA) + end; + + TBizStockPrendasCentrosDataTableRules = class(TStockPrendasCentrosDataTableRules, IBizStockPrendasCentros) + end; + + +implementation + +{uses + Dialogs, uEditorUtils, uDataModuleVentasTerminadas;} + +initialization + RegisterDataTableRules(BIZ_STOCK_EDI, TBizStockEDIDataTableRules); + RegisterDataTableRules(BIZ_STOCK_EDIINVENTARIO, TBizStockEDIInventarioDataTableRules); + RegisterDataTableRules(BIZ_STOCK_VARELA, TBizStockVarelaDataTableRules); + RegisterDataTableRules(BIZ_STOCK_PRENDAS_CENTROS, TBizStockPrendasCentrosDataTableRules); +finalization + +end. + diff --git a/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp b/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm b/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm new file mode 100644 index 0000000..4fce771 --- /dev/null +++ b/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm @@ -0,0 +1,1389 @@ +object srvStock: TsrvStock + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schStock + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + OnAfterAcquireConnection = DARemoteServiceAfterAcquireConnection + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object DABINAdapter: TDABINAdapter + Left = 56 + Top = 96 + end + object schStock: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' CODIGO,'#10' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' ' + + 'GRUPO_PRODUCTO,'#10' COLECCION,'#10' COLOR,'#10' SUM(K38) AS ' + + 'T38,'#10' SUM(K40) AS T40,'#10' SUM(K42) AS T42,'#10' SUM(K44' + + ') AS T44,'#10' SUM(K46) AS T46,'#10' SUM(K48) AS T48,'#10' SU' + + 'M(KT) AS TOTAL'#10'FROM RDX_V_STOCK_CALCULADO'#10'GROUP BY CODIGO,'#10' ' + + ' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' GRUPO_PRODUCTO,'#10' COLE' + + 'CCION,'#10' COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end> + end> + Name = 'StockPrendasCentros' + Fields = < + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Producto' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Colecci'#243'n' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '38' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '40' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '42' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '44' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '46' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '48' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT CENTRO, CODIGO, PRODUCTO, TIPO_PRODUCTO, GRUPO_PRODUCTO, ' + + 'COLECCION, COLOR,'#10' E38, E40, E42, E44, E46, E48, TE,'#10' ' + + 'S38, S40, S42, S44, S46, S48, TS,'#10' K38, K40, K42, K44, K46,' + + ' K48, KT'#10' '#10'FROM RDX_V_STOCK_CALCULADO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'TE' + TableField = 'TE' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'TS' + TableField = 'TS' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'KT' + TableField = 'KT' + end> + end> + Name = 'StockEDI' + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT FILIAL, CODIGO, COLOR, PRODUCTO, TIPO_PRODUTO, GRUPO_PROD' + + 'UTO,'#10' COLECCION, K38, K40, K42, K44, K46, K48, KT'#10' '#10'F' + + 'ROM RDX_V_STOCK_VARELA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'TIPO_PRODUTO' + TableField = 'TIPO_PRODUTO' + end + item + DatasetField = 'GRUPO_PRODUTO' + TableField = 'GRUPO_PRODUTO' + end + item + DatasetField = 'KT' + TableField = 'KT' + end> + end> + Name = 'StockVARELA' + Fields = < + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_INVENTARIO' + SQL = + 'SELECT '#10' CENTRO, CODIGO, PRODUCTO, COLOR, TIPO_PRODUCTO, GRUP' + + 'O_PRODUCTO, '#10' COLECCION, I38, I40, I42, I44, I46, I48, TI, K3' + + '8, K40, '#10' K42, K44, K46, K48, TK, D38, D40, D42, D44, D46, D4' + + '8, '#10' DT'#10' FROM'#10' RDX_V_CONTROL_INVENTARIO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'I38' + TableField = 'I38' + end + item + DatasetField = 'I40' + TableField = 'I40' + end + item + DatasetField = 'I42' + TableField = 'I42' + end + item + DatasetField = 'I44' + TableField = 'I44' + end + item + DatasetField = 'I46' + TableField = 'I46' + end + item + DatasetField = 'I48' + TableField = 'I48' + end + item + DatasetField = 'TI' + TableField = 'TI' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'TK' + TableField = 'TK' + end + item + DatasetField = 'D38' + TableField = 'D38' + end + item + DatasetField = 'D40' + TableField = 'D40' + end + item + DatasetField = 'D42' + TableField = 'D42' + end + item + DatasetField = 'D44' + TableField = 'D44' + end + item + DatasetField = 'D46' + TableField = 'D46' + end + item + DatasetField = 'D48' + TableField = 'D48' + end + item + DatasetField = 'DT' + TableField = 'DT' + end> + end> + Name = 'StockEDIInventario' + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TK' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 56 + Top = 32 + end +end diff --git a/Source/Modulos/Stock/Servidor/srvStock_Impl.pas b/Source/Modulos/Stock/Servidor/srvStock_Impl.pas new file mode 100644 index 0000000..fc27fcc --- /dev/null +++ b/Source/Modulos/Stock/Servidor/srvStock_Impl.pas @@ -0,0 +1,59 @@ +unit srvStock_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDAInterfaces, uDADataStreamer; + +type + { TsrvStock } + TsrvStock = class(TDARemoteService, IsrvStock) + DABINAdapter: TDABINAdapter; + schStock: TDASchema; + procedure DARemoteServiceAfterAcquireConnection( + Sender: TDARemoteService; const ConnectionName: String; + const AcquiredConnection: IDAConnection); + private + protected + { IsrvStock methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, ADODB; + +procedure Create_srvStock(out anInstance : IUnknown); +begin + anInstance := TsrvStock.Create(NIL); +end; + +{ srvStock } +procedure TsrvStock.DARemoteServiceAfterAcquireConnection( + Sender: TDARemoteService; const ConnectionName: String; + const AcquiredConnection: IDAConnection); +begin +{ with (Connection as IDAConnectionObjectAccess) do + if ConnectionObject is TADOConnection then + TADOConnection(ConnectionObject).CommandTimeout:= 0;} +end; + +initialization + TROClassFactory.Create('srvStock', Create_srvStock, TsrvStock_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj b/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj new file mode 100644 index 0000000..89713a6 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Traspasos.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.cfg b/Source/Modulos/Traspasos/Cliente/Traspasos.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.dof b/Source/Modulos/Traspasos/Cliente/Traspasos.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.dpk b/Source/Modulos/Traspasos/Cliente/Traspasos.dpk new file mode 100644 index 0000000..f3b8eae --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.dpk @@ -0,0 +1,82 @@ +package Traspasos; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + dxLayoutControlD10; + +contains + uDataModuleTraspasos in 'uDataModuleTraspasos.pas' {dmTraspasos: TDAClientDataModule}, + uBizTraspasos in '..\Reglas\uBizTraspasos.pas', + uPluginControllerTraspasos in 'uPluginControllerTraspasos.pas' {ModuleTraspasos: TModuleController}, + uViewListaTraspasos in 'uViewListaTraspasos.pas' {frViewListaTraspasos: TCustomView}, + uEditorListaTraspasos in 'uEditorListaTraspasos.pas' {fEditorListaTraspasos: TCustomEditor}, + uEditorAjustarTraspasos in 'uEditorAjustarTraspasos.pas' {fEditorAjustarTraspasos}; + +end. diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.drc b/Source/Modulos/Traspasos/Cliente/Traspasos.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.rc b/Source/Modulos/Traspasos/Cliente/Traspasos.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.res b/Source/Modulos/Traspasos/Cliente/Traspasos.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm b/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm new file mode 100644 index 0000000..a407ef1 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm @@ -0,0 +1,1406 @@ +object dmTraspasos: TdmTraspasos + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvTraspasos' + Left = 40 + Top = 32 + end + object tbl_Traspasos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Traspasos' + IndexDefs = <> + Left = 136 + Top = 32 + end + object ds_Traspasos: TDADataSource + DataSet = tbl_Traspasos.Dataset + DataTable = tbl_Traspasos + Left = 136 + Top = 88 + end + object tbl_TraspasosAprobados: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TraspasosAprobados' + IndexDefs = <> + Left = 272 + Top = 32 + end + object ds_TraspasosAprobados: TDADataSource + DataSet = tbl_TraspasosAprobados.Dataset + DataTable = tbl_TraspasosAprobados + Left = 272 + Top = 88 + end + object tbl_TraspasosPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TraspasosPendientes' + IndexDefs = <> + Left = 408 + Top = 32 + end + object ds_TraspasosPendientes: TDADataSource + DataSet = tbl_TraspasosPendientes.Dataset + DataTable = tbl_TraspasosPendientes + Left = 408 + Top = 88 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas b/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas new file mode 100644 index 0000000..b24c908 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas @@ -0,0 +1,87 @@ +unit uDataModuleTraspasos; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizTraspasos, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmTraspasos = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Traspasos: TDACDSDataTable; + ds_Traspasos: TDADataSource; + tbl_TraspasosAprobados: TDACDSDataTable; + ds_TraspasosAprobados: TDADataSource; + tbl_TraspasosPendientes: TDACDSDataTable; + ds_TraspasosPendientes: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems : IBizTraspasos; overload; + function GetItems(const AEstado : TInvTraspasoEstado) : IBizTraspasos; overload; + end; + +var + dmTraspasos: TdmTraspasos; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmTraspasos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmTraspasos.GetItems: IBizTraspasos; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Traspasos, dtLista); + dtLista.BusinessRulesID := BIZ_TRASPASOS; + Result := (dtLista as IBizTraspasos); + finally + HideHourglassCursor; + end; +end; + +function TdmTraspasos.GetItems( + const AEstado: TInvTraspasoEstado): IBizTraspasos; +var + dtLista: TDACDSDataTable; + AStr : String; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + titPendiente : CloneDataTable(tbl_TraspasosPendientes, dtLista); + titAprobado : CloneDataTable(tbl_TraspasosAprobados, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_TRASPASOS; + Result := (dtLista as IBizTraspasos); + finally + HideHourglassCursor; + end; +end; + +initialization + dmTraspasos := TdmTraspasos.Create(nil); + +finalization + FreeAndNil(dmTraspasos); + +end. diff --git a/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp b/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm b/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm new file mode 100644 index 0000000..6b1235d --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm @@ -0,0 +1,725 @@ +object fEditorAjustarTraspasos: TfEditorAjustarTraspasos + Left = 344 + Top = 312 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de recepciones de productos' + ClientHeight = 536 + ClientWidth = 752 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 752 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de recepciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 130 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label2: TLabel + Left = 22 + Top = 335 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 364 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object Bevel3: TBevel + Left = 22 + Top = 74 + Width = 734 + Height = 10 + Shape = bsBottomLine + end + object lblCentroOrigen: TLabel + Left = 133 + Top = 90 + Width = 31 + Height = 13 + Caption = 'Centro' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object lblCentroDestino: TLabel + Left = 133 + Top = 110 + Width = 31 + Height = 13 + Caption = 'Centro' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 333 + DataBinding.DataField = 'T38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 333 + DataBinding.DataField = 'T40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 333 + DataBinding.DataField = 'T42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 333 + DataBinding.DataField = 'T44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 333 + DataBinding.DataField = 'T46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 333 + DataBinding.DataField = 'T48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 133 + Top = 28 + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 420 + end + object edtProducto: TcxDBLabel + Left = 133 + Top = 51 + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 460 + end + object edtColor: TcxDBLabel + Left = 655 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 76 + end + object cbEstado: TcxComboBox + Left = 133 + Top = 146 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otros') + 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 + Text = 'cbEstado' + Width = 156 + end + object memObservaciones: TcxMemo + Left = 22 + Top = 191 + Lines.Strings = ( + 'memEstadoAlbaran') + 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 = 5 + Height = 88 + Width = 333 + end + object cbContabilizar: TcxCheckBox + Left = 348 + Top = 146 + Caption = 'Contabilizar este traspaso' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + 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 = 4 + Width = 319 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales del traspaso' + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group17: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Control = Bevel3 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Centro de origen:' + Control = lblCentroOrigen + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Centro de destino:' + Control = lblCentroDestino + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado del env'#237'o:' + Control = cbEstado + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizar + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Observaciones:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Cantidades' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + DataTable = dmTraspasos.tbl_Traspasos + Left = 200 + Top = 496 + end +end diff --git a/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas b/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas new file mode 100644 index 0000000..6093469 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas @@ -0,0 +1,288 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizTraspasos, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarTraspasos = interface + ['{40E4185E-595B-48DF-AFA8-E86509F7354F}'] + function GetItems : IBizTraspasos; + procedure SetItems (const AValue : IBizTraspasos); + property Items : IBizTraspasos read GetItems write SetItems; + end; + + TfEditorAjustarTraspasos = class(TForm, IEditorAjustarTraspasos) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + cbEstado: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizar: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group17: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + Bevel3: TBevel; + dxLayoutControl1Item1: TdxLayoutItem; + lblCentroOrigen: TLabel; + dxLayoutControl1Item10: TdxLayoutItem; + lblCentroDestino: TLabel; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizTraspasos; + FHayErrores : Boolean; + procedure CargarValores; + procedure SalvarValores; + protected + function GetItems : IBizTraspasos; + procedure SetItems (const AValue : IBizTraspasos); + public + property Items : IBizTraspasos read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleTraspasos; + +{$R *.dfm} + +function ShowEditorAjustarTraspasos (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarTraspasos; +begin + AEditor := TfEditorAjustarTraspasos.Create(Application); + try + AEditor.Items := (ABizObject as IBizTraspasos); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarTraspasos.FormShow(Sender: TObject); +begin + FHayErrores := False; + FItems.DataTable.Open; + + CargarValores; +end; + +function TfEditorAjustarTraspasos.GetItems: IBizTraspasos; +begin + Result := FItems; +end; + +procedure TfEditorAjustarTraspasos.SetItems( + const AValue: IBizTraspasos); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarTraspasos.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarTraspasos.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarTraspasos.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('T38').AsInteger <> FieldByName('TR38').AsInteger then + edtRecR38.Value := FieldByName('TR38').AsInteger + else + edtRecR38.Value := FieldByName('T38').AsInteger; + + if FieldByName('T40').AsInteger <> FieldByName('TR40').AsInteger then + edtRecR40.Value := FieldByName('TR40').AsInteger + else + edtRecR40.Value := FieldByName('T40').AsInteger; + + if FieldByName('T42').AsInteger <> FieldByName('TR42').AsInteger then + edtRecR42.Value := FieldByName('TR42').AsInteger + else + edtRecR42.Value := FieldByName('T42').AsInteger; + + if FieldByName('T44').AsInteger <> FieldByName('TR44').AsInteger then + edtRecR44.Value := FieldByName('TR44').AsInteger + else + edtRecR44.Value := FieldByName('T44').AsInteger; + + if FieldByName('T46').AsInteger <> FieldByName('TR46').AsInteger then + edtRecR46.Value := FieldByName('TR46').AsInteger + else + edtRecR46.Value := FieldByName('T46').AsInteger; + + if FieldByName('T48').AsInteger <> FieldByName('TR48').AsInteger then + edtRecR48.Value := FieldByName('TR48').AsInteger + else + edtRecR48.Value := FieldByName('T48').AsInteger; + + if Length(FieldByName('ESTADO_TRASPASO').AsString) = 0 then + cbEstado.Text := cbEstado.Properties.Items[0] + else + cbEstado.Text := FieldByName('ESTADO_TRASPASO').AsString; + + if FieldByName('TIPO').AsString = 'S' then + begin + lblCentroOrigen.Caption := FieldByName('CENTRO').AsString; + lblCentroDestino.Caption := FieldByName('CENTRO2').AsString; + end + else begin + lblCentroOrigen.Caption := FieldByName('CENTRO2').AsString; + lblCentroDestino.Caption := FieldByName('CENTRO').AsString; + end; + + cbContabilizar.Checked := (FieldByName('CONTABILIZAR').AsString = 'S'); + memObservaciones.Lines.Clear; + if Length(FieldByName('OBSERVACIONES').AsString) > 0 then + memObservaciones.Lines.Add(FieldByName('OBSERVACIONES').AsString) + end; +end; + +procedure TfEditorAjustarTraspasos.SalvarValores; +var + aux : String; +begin + with FItems.DataTable do + begin + Edit; + FieldByName('TR38').AsVariant := edtRecR38.Value; + FieldByName('TR40').AsVariant := edtRecR40.Value; + FieldByName('TR42').AsVariant := edtRecR42.Value; + FieldByName('TR44').AsVariant := edtRecR44.Value; + FieldByName('TR46').AsVariant := edtRecR46.Value; + FieldByName('TR48').AsVariant := edtRecR48.Value; + + if Length(memObservaciones.Lines.Text) > 0 then + FieldByName('OBSERVACIONES').AsString := memObservaciones.Lines.Text + else + FieldByName('OBSERVACIONES').AsVariant := null; + + if cbContabilizar.Checked then + FieldByName('CONTABILIZAR').AsString := 'S' + else + FieldByName('CONTABILIZAR').AsString := 'N'; + + + if cbEstado.Text = cbEstado.Properties.Items[0] then + FieldByName('ESTADO_TRASPASO').AsVariant := null + else + FieldByName('ESTADO_TRASPASO').AsString := cbEstado.Text; + + Post; + end; +end; + + +initialization + RegisterEditor(IBizTraspasos, ShowEditorAjustarTraspasos, etItem); + +finalization + +end. + diff --git a/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp b/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm b/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm new file mode 100644 index 0000000..98db9b3 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm @@ -0,0 +1,1607 @@ +inherited fEditorListaTraspasos: TfEditorListaTraspasos + Left = 271 + Top = 250 + Width = 909 + Height = 659 + Caption = 'Control de traspasos' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de traspasos' + inherited Image1: TImage + Left = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + inherited tbxMain: TTBXToolbar + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + Left = 571 + end + end + inherited StatusBar: TStatusBar + Top = 606 + Width = 901 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 76 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaTraspasos1: TfrViewListaTraspasos [4] + Left = 0 + Top = 105 + Width = 901 + Height = 501 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 901 + Height = 501 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar traslado' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas b/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas new file mode 100644 index 0000000..0f6e376 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas @@ -0,0 +1,308 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, StdCtrls, + uViewListaTraspasos, uBizTraspasos; + + +type + IEditorListaTraspasos = interface(IEditorGridBase) + ['{729D3CD7-88E7-4D97-A9A0-8E0E1CF74716}'] + function GetItems: IBizTraspasos; + procedure SetItems(const Value: IBizTraspasos); + property Items: IBizTraspasos read GetItems + write SetItems; + end; + + TfEditorListaTraspasos = class(TfEditorGridBase, IEditorListaTraspasos) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaTraspasos1: TfrViewListaTraspasos; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizTraspasos; + function GetItems: IBizTraspasos; + procedure SetItems(const Value: IBizTraspasos); + procedure CambiarEstado(const NuevoEstado: TInvTraspasoEstado); + function GetModified: Boolean; override; + public + property Items: IBizTraspasos read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleTraspasos, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaTraspasos.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaTraspasos1; +end; + +function TfEditorListaTraspasos.GetItems: IBizTraspasos; +begin + Result := FItems; +end; + +procedure TfEditorListaTraspasos.SetItems( + const Value: IBizTraspasos); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaTraspasos1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaTraspasos.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + FItems.DataTable.Active := True; + + with (ViewGrid as IViewListaTraspasos) do + begin + VerPendientes; + ContraerTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaTraspasos.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + Items.DataTable.Active := False; + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmTraspasos.GetItems(titPendiente); + (ViewGrid as IViewListaTraspasos).VerPendientes; + end; + + 1 : begin + Items := dmTraspasos.GetItems(titAprobado); + (ViewGrid as IViewListaTraspasos).VerAprobados; + end; + + 2 : begin + Items := dmTraspasos.GetItems; + (ViewGrid as IViewListaTraspasos).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + Items.DataTable.Active := True; + ViewGrid.ContraerTodo; + ViewGrid.GotoFirst; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaTraspasos.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaTraspasos.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaTraspasos.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaTraspasos.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaTraspasos.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaTraspasos.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaTraspasos.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaTraspasos.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(titPendiente); +end; + +procedure TfEditorListaTraspasos.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = titPendiente); +end; + +procedure TfEditorListaTraspasos.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(titAprobado); +end; + +procedure TfEditorListaTraspasos.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = titAprobado); +end; + +procedure TfEditorListaTraspasos.CambiarEstado( + const NuevoEstado: TInvTraspasoEstado); +var + ARecord: TcxCustomGridRecord; + i : Integer; + bm : TBookMark ; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + FItems.DataTable.ApplyUpdates; + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.EnableControls; + ViewGrid._FocusedView.Controller.ClearSelection; + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaTraspasos.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaTraspasos.GetModified: Boolean; +begin + Result := False; +end; + +end. diff --git a/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp b/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm b/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm new file mode 100644 index 0000000..d56401d --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm @@ -0,0 +1,126 @@ +object ModuleTraspasos: TModuleTraspasos + OldCreateOrder = True + DefaultAction = actTraspasos + Description = 'Control de traspasos entre centros' + ModuleMenu = MainMenu + ModuleName = 'Control de traspasos entre centros' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001A44944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 + 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 + CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F + 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB + 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 + A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 + A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C + 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 + 4BB30B8819120000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actTraspasos: TAction + Category = 'Inventario' + Caption = 'Control de traspasos' + ImageIndex = 0 + OnExecute = actTraspasosExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 310 + Action = actTraspasos + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000013A4944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 + 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A + 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 + 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 + 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 + 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 + 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001B84944415478DA + 63FCFFFF3F033D0123C8C22BA552CE40F61E026A5D8851A3D3FD6C2F3116FE57 + 6DA9616067CFC2AAE8E7CF690CB3635B185217135693B3EA19235116025D06D6 + 84023E7F6260F8F29961FA012B06966DA920C3885143A6855083183E030D3BEB + 8EDD42EC6AC8B010C920B0EB6F86605A885B0D8916A219C4F0F50BC3F42709A8 + 16E2574382856F3A300C62F8F29561FA876C848584D59060E1CD1206865FBF50 + 0C62F80674FDAF72848584D5106721285B4C5F2E8F5321C83050B620A486580B + 9D0F3CC49FA91DE4195C8851339AF14733FE08CEF8161333184E44D4E3CCF88C + 7AD3FEFFBF94C588D3425232FEC2238A60B1789BFB186A60161AA65CFB7FE1D4 + 0106744B49C9F8A54035DD73F9F630E4C5AB314C5A780B453EF9930B03480E19 + 383B0B31F4B6AF43B1949194360DC8D520CBAE3E79C3A02D2302174FCA9E0536 + 14268F0CA6AF38C270FAF035B8A5445B088A937953D3C096BDFCFC1D2CF6E6F3 + 2F86B7F79EC30D447610480D481E0490D590E44390A51EF1CE70436000DDC27D + D71F63B58CE42085596A6AAB05360419C02C0425141880A9233B0E912D855942 + AA1AB22C841948C8429CF9909E80EE16020010A9C8E7BBF6D9B3000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas b/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas new file mode 100644 index 0000000..cb6aed3 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas @@ -0,0 +1,72 @@ +unit uPluginControllerTraspasos; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uBizTraspasos; + +type + IMCTraspasos = interface(IInterface) + ['{FF27B168-B706-414A-B584-1A6E4C984BDC}'] + end; + + TModuleTraspasos = class(TModuleController, IMCTraspasos) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actTraspasos: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actTraspasosExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleTraspasos, + uEditorListaTraspasos; + +function GetModule : TModuleController; +begin + Result := TModuleTraspasos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleTraspasos.actTraspasosExecute(Sender: TObject); +var + aControl: IBizTraspasos; + aObj: IEditorListaTraspasos; +begin + aControl := dmTraspasos.GetItems(titPendiente); + aObj := TfEditorListaTraspasos.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleTraspasos); + +finalization + UnRegisterModuleClass(TModuleTraspasos); + +end. diff --git a/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp b/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm b/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm new file mode 100644 index 0000000..db977c5 --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm @@ -0,0 +1,514 @@ +inherited frViewListaTraspasos: TfrViewListaTraspasos + Width = 676 + Height = 486 + inherited cxGrid: TcxGrid + Width = 676 + Height = 486 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'Fecha;Centro;Centro2;Codigo;Color;Tipo;' + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewObservaciones + Preview.Visible = True + Styles.Footer = cxStyleFooter + object cxGridViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 34 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA' + SortIndex = 1 + SortOrder = soAscending + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 87 + end + object cxGridViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + end + object cxGridViewESTADO_TRASPASO: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_TRASPASO' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 296 + end + object cxGridViewCENTRO2: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO2' + Visible = False + end + object cxGridViewTIPO: TcxGridDBColumn + Caption = 'E/S' + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageListTipo + Properties.Items = < + item + Description = 'Entrada' + ImageIndex = 0 + Value = 'E' + end + item + Description = 'Salida' + ImageIndex = 1 + Tag = 1 + Value = 'S' + end> + Properties.Revertable = True + Properties.ShowDescriptions = False + Width = 51 + end + object cxGridViewFILIAL2: TcxGridDBColumn + Caption = 'Centro 2' + DataBinding.FieldName = 'FILIAL2' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 328 + end + object cxGridViewCONTABILIZAR: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR' + Visible = False + Width = 72 + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridViewCODIGOGetDataText + OnGetDisplayText = cxGridViewCODIGOGetDisplayText + GroupIndex = 0 + Width = 53 + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + end + object cxGridViewT38: TcxGridDBColumn + DataBinding.FieldName = 'T38' + Visible = False + end + object cxGridViewT40: TcxGridDBColumn + DataBinding.FieldName = 'T40' + Visible = False + end + object cxGridViewT42: TcxGridDBColumn + DataBinding.FieldName = 'T42' + Visible = False + end + object cxGridViewT44: TcxGridDBColumn + DataBinding.FieldName = 'T44' + Visible = False + end + object cxGridViewT46: TcxGridDBColumn + DataBinding.FieldName = 'T46' + Visible = False + end + object cxGridViewT48: TcxGridDBColumn + DataBinding.FieldName = 'T48' + Visible = False + end + object cxGridViewTOTAL: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL' + Visible = False + end + object cxGridViewTR38: TcxGridDBColumn + Caption = '38' + DataBinding.FieldName = 'TR38' + OnGetDisplayText = cxGridViewTR38GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewTR40: TcxGridDBColumn + Caption = '40' + DataBinding.FieldName = 'TR40' + OnGetDisplayText = cxGridViewTR40GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 57 + end + object cxGridViewTR42: TcxGridDBColumn + Caption = '42' + DataBinding.FieldName = 'TR42' + OnGetDisplayText = cxGridViewTR42GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewTR44: TcxGridDBColumn + Caption = '44' + DataBinding.FieldName = 'TR44' + OnGetDisplayText = cxGridViewTR44GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 55 + end + object cxGridViewTR46: TcxGridDBColumn + Caption = '46' + DataBinding.FieldName = 'TR46' + OnGetDisplayText = cxGridViewTR46GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 60 + end + object cxGridViewTR48: TcxGridDBColumn + Caption = '48' + DataBinding.FieldName = 'TR48' + OnGetDisplayText = cxGridViewTR48GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 57 + end + object cxGridViewTOTAL_RECT: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL_RECT' + OnGetDataText = cxGridViewTOTAL_RECTGetDataText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewObservaciones: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES' + PropertiesClassName = 'TcxMemoProperties' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + end + end + end + inherited dsDataSource: TDADataSource + DataTable = dmTraspasos.tbl_TraspasosPendientes + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE TRASPASOS') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Preview = cxStyleObservacionesInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyleNoContabilizar: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleCentro2: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6579300 + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleObservacionesInforme: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end + object PngImageListTipo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000000FD4944415478DA63FCFFFF3F0325 + 8091AA06585A5A622860156DFAFFFB751D23B2D8F1E3C7893300A499E1FF1F86 + DF6F9A483700A439BDC49C6166D72186DF6F5B493300A6F9DBD79F0C8BA71C65 + F8FFFF2F501488FFFD01D38777C432E2340059F3D72F3F18BE7D01D25F7F307C + F9F483E1F3A7EF0CB72EDC6138B22311BB01767EBBF16A7EF3EA13C3BB27CF18 + 8EEC4AC5E302E1EAFF02628C0C16B6EA0C270EDFC48895B74F1E311CDD9589DB + 001060112CF92F28C10166BF7FF68EE13FC31FB0FFC13430568EEECEC56F00D8 + 10FEDCFF8252FC0CEF9EBD62F8FB711679E980993FED3FC8E6BF9FE791670008 + 30F1C6FDFFF779117106900306DE00006A32C2E1ABAC85280000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FE4944415478DA + 63FCFFFF3F03258091AA06303232A248F2ACE2F8FF25EC0723BA26143DF80CE0 + 5EC2FEFFFFAFFF0CDF927E31926500D73CB6FFED4E450CE51B7B197EE4FF6624 + 6800EF5ACEFF0CFF800A80B682F14F06860ABB6486F7DF3F314CDFB992E167F5 + 1F46FC06ACE6FCBFCCBB8FE1C3D78F0CEFBF7D84D040CD6F3EBF6778F3E51DC3 + DE6367187EB7FF61C46900CF528EFFD3DD1AB06A06E12F3FBE32DC3EF39CE1CF + 94BF8C580DE09ECF0EF6F3F4FD8B516383831BAEF9EFD47FB85DC0350312EA0C + E03000FAF537038392BC38580EA699A45860AD64F9AFAC268EA2992403588A98 + FFFFFFF91F45334906306733FD47D78CD70072C0C01B0000F574D6E150544812 + 0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 451 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas b/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas new file mode 100644 index 0000000..6c05e5e --- /dev/null +++ b/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas @@ -0,0 +1,554 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizTraspasos, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + IViewListaTraspasos = interface(IViewGrid) + ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + end; + + TfrViewListaTraspasos = class(TfrViewGrid, IViewListaTraspasos) + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyleNoContabilizar: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCENTRO2: TcxGridDBColumn; + cxGridViewFILIAL2: TcxGridDBColumn; + cxGridViewAPROBADO: TcxGridDBColumn; + cxGridViewESTADO_TRASPASO: TcxGridDBColumn; + cxGridViewCONTABILIZAR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTR38: TcxGridDBColumn; + cxGridViewTR40: TcxGridDBColumn; + cxGridViewTR42: TcxGridDBColumn; + cxGridViewTR44: TcxGridDBColumn; + cxGridViewTR46: TcxGridDBColumn; + cxGridViewTR48: TcxGridDBColumn; + cxGridViewTOTAL_RECT: TcxGridDBColumn; + cxGridViewT38: TcxGridDBColumn; + cxGridViewT40: TcxGridDBColumn; + cxGridViewT42: TcxGridDBColumn; + cxGridViewT44: TcxGridDBColumn; + cxGridViewT46: TcxGridDBColumn; + cxGridViewT48: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + PngImageListTipo: TPngImageList; + cxStyleCentro2: TcxStyle; + cxGridViewObservaciones: TcxGridDBColumn; + cxStyleObservacionesInforme: TcxStyle; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewTR38GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR40GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR42GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR44GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR46GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR48GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewTOTAL_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewFECHAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + end; + + +implementation + +uses + uDataModuleTraspasos, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaTraspasos.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaTraspasos.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaTraspasos.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaTraspasos.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaTraspasos.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaTraspasos.Preview; +begin + inherited; +// dxComponentPrinterLink1.OnInitializeCell := dxComponentPrinterLink1InitializeCell; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaTraspasos.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaTraspasos.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaTraspasos.cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaTraspasos.cxGridViewTR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'Código : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaTraspasos.cxGridViewTOTAL_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaTraspasos.cxGridViewFECHAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; + if aux = 'N' then + AStyle := cxStyleNoContabilizar + end; +end; + +procedure TfrViewListaTraspasos.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyleNoContabilizar.Font.Style; + AnItem.Font.Color := cxStyleNoContabilizar.Font.Color; + end; + end; +end; + +procedure TfrViewListaTraspasos.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +end. diff --git a/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas b/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas new file mode 100644 index 0000000..cd4df37 --- /dev/null +++ b/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas @@ -0,0 +1,77 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizTraspasos; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_TRASPASOS = 'Client.Traspasos'; + +type + TInvTraspasoEstado = (titPendiente, titAprobado); + + IBizTraspasos = interface(IDAStronglyTypedDataTable) //ITraspasos) + ['{91E16E44-2A50-4459-A758-B14948E0A134}'] + procedure Show; + procedure SetEstado(const AValue : TInvTraspasoEstado); + function GetEstado : TInvTraspasoEstado ; + property Estado : TInvTraspasoEstado read GetEstado write SetEstado; + end; + + + TBizTraspasosDataTableRules = class(TDADataTableRules, IBizTraspasos) //TTraspasosDataTableRules, IBizTraspasos, + protected + procedure SetEstado(const AValue : TInvTraspasoEstado); + function GetEstado : TInvTraspasoEstado ; + public + procedure Show; + property Estado : TInvTraspasoEstado read GetEstado write SetEstado; + end; + + +implementation + +uses + uEditorUtils, uDataModuleTraspasos; + +{ TBizRecepcionDataTableRules } + +function TBizTraspasosDataTableRules.GetEstado: TInvTraspasoEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := titAprobado + else + Result := titPendiente +end; + +procedure TBizTraspasosDataTableRules.SetEstado( + const AValue: TInvTraspasoEstado); +begin + case AValue of + titPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + titAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizTraspasosDataTableRules.Show; +begin + ShowEditor(IBizTraspasos, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_TRASPASOS, TBizTraspasosDataTableRules); + +end. + diff --git a/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp b/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm b/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm new file mode 100644 index 0000000..8e32c08 --- /dev/null +++ b/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm @@ -0,0 +1,1293 @@ +object srvTraspasos: TsrvTraspasos + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schTraspasos + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 96 + end + object schTraspasos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'Traspasos' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'N'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'TraspasosPendientes' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'S'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'TraspasosAprobados' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TOTAL_RECT'#10' FROM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHER' + + 'E'#10' FECHA = :FECHA AND'#10' CENTRO = :CENTRO AND'#10' C' + + 'ENTRO2 = :CENTRO2 AND'#10' CODIGO = :CODIGO AND'#10' COLOR =' + + ' :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end> + end> + Name = 'RefreshTraspasos' + Fields = < + item + Name = 'TOTAL_RECT' + DataType = datFloat + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ESTADO' + Value = '' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'TR38' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR40' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR42' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR44' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR46' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR48' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'begin'#10' declare @rowcount_var int'#10' declare @ESTADO varchar(' + + '20)'#10' declare @OBSERVACIONES varchar(255)'#10' declare @CONTABI' + + 'LIZAR char(1)'#10#10' declare @TR38 numeric(15,0)'#10' declare @TR40' + + ' numeric(15,0)'#10' declare @TR42 numeric(15,0)'#10' declare @TR44' + + ' numeric(15,0)'#10' declare @TR46 numeric(15,0)'#10' declare @TR48' + + ' numeric(15,0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA' + + ' datetime'#10' declare @CENTRO varchar(17)'#10' declare @CENTRO2 v' + + 'archar(17)'#10' declare @CODIGO varchar(12)'#10' declare @COLOR va' + + 'rchar(10)'#10' declare @TIPOCANT varchar(3)'#10#10' set @ESTADO = :E' + + 'STADO'#10' set @OBSERVACIONES = :OBSERVACIONES'#10' set @CONTABILI' + + 'ZAR = :CONTABILIZAR'#10#10' set @TR38 = :TR38'#10' set @TR40 = :TR40' + + #10' set @TR42 = :TR42'#10' set @TR44 = :TR44'#10' set @TR46 = :TR' + + '46'#10' set @TR48 = :TR48'#10#10' set @APROBADO = :APROBADO'#10' set ' + + '@FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CENTRO2 = :CE' + + 'NTRO2'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10' set ' + + '@TIPOCANT = :TIPO'#10#10' /* *********************************** */' + + #10#9'update RDX_TRASPASOS_AJUSTES set'#10#9' CANT38 = @TR38,'#10#9 + + ' CANT40 = @TR40,'#10#9' CANT42 = @TR42,'#10#9' ' + + ' CANT44 = @TR44,'#10#9' CANT46 = @TR46,'#10#9' CANT4' + + '8 = @TR48,'#10' APROBADO = @APROBADO,'#10' E' + + 'STADO = @ESTADO,'#10' TIPOCANT = @TIPOCANT,'#10' ' + + ' OBSERVACIONES = @OBSERVACIONES,'#10' CONTABILIZAR' + + ' = @CONTABILIZAR,'#10' FECHACAMBIO = CURRENT_TIMESTAMP' + + #10#9'where'#10' (RDX_TRASPASOS_AJUSTES.CENTRO = @CENTRO and' + + #10' RDX_TRASPASOS_AJUSTES.CENTRO2 = @CENTRO2 and'#10#9' ' + + ' RDX_TRASPASOS_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_TRASPAS' + + 'OS_AJUSTES.COLOR = @COLOR and'#10#9' RDX_TRASPASOS_AJUSTES.FECHA' + + ' = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT_VA' + + 'R = 0'#10' begin'#10' insert into RDX_TRASPASOS_AJUSTES'#10' ' + + ' (FECHA, CENTRO, CENTRO2, CODIGO, COLOR,'#10' ' + + ' APROBADO, FECHACAMBIO, TIPOCANT,'#10' ESTADO, OB' + + 'SERVACIONES, CONTABILIZAR,'#10' CANT38, CANT40, CANT' + + '42,'#10' CANT44, CANT46, CANT48)'#10' values ('#10' ' + + ' @FECHA, @CENTRO, @CENTRO2, @CODIGO,'#10' ' + + ' @COLOR, @APROBADO, CURRENT_TIMESTAMP, @TIPOCANT,'#10' ' + + ' @ESTADO, @OBSERVACIONES, @CONTABILIZAR,'#10' ' + + '@TR38, @TR40, @TR42,'#10' @TR44, @TR46, @TR48)'#10' e' + + 'nd'#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Traspasos' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Traspasos_TIPO' + DataType = datString + Size = 1 + Required = True + DisplayLabel = 'Tipo' + ReadOnly = True + end + item + Name = 'Traspasos_FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + ReadOnly = True + end + item + Name = 'Traspasos_CENTRO' + DataType = datString + Size = 17 + DisplayLabel = 'Centro' + ReadOnly = True + end + item + Name = 'Traspasos_FILIAL' + DataType = datString + Size = 25 + DisplayLabel = 'Filial' + ReadOnly = True + end + item + Name = 'Traspasos_CENTRO2' + DataType = datString + Size = 17 + DisplayLabel = 'Centro2' + ReadOnly = True + end + item + Name = 'Traspasos_FILIAL2' + DataType = datString + Size = 25 + DisplayLabel = 'Filial2' + ReadOnly = True + end + item + Name = 'Traspasos_CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + end + item + Name = 'Traspasos_PRODUCTO' + DataType = datString + Size = 40 + Required = True + DisplayLabel = 'Producto' + ReadOnly = True + end + item + Name = 'Traspasos_COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + ReadOnly = True + end + item + Name = 'Traspasos_T38' + DataType = datFloat + DisplayLabel = 'T38' + ReadOnly = True + end + item + Name = 'Traspasos_T40' + DataType = datFloat + DisplayLabel = 'T40' + ReadOnly = True + end + item + Name = 'Traspasos_T42' + DataType = datFloat + DisplayLabel = 'T42' + ReadOnly = True + end + item + Name = 'Traspasos_T44' + DataType = datFloat + DisplayLabel = 'T44' + ReadOnly = True + end + item + Name = 'Traspasos_T46' + DataType = datFloat + DisplayLabel = 'T46' + ReadOnly = True + end + item + Name = 'Traspasos_T48' + DataType = datFloat + DisplayLabel = 'T48' + ReadOnly = True + end + item + Name = 'Traspasos_TOTAL' + DataType = datFloat + DisplayLabel = 'Total' + ReadOnly = True + end + item + Name = 'Traspasos_TR38' + DataType = datFloat + DisplayLabel = 'TR38' + end + item + Name = 'Traspasos_TR40' + DataType = datFloat + DisplayLabel = 'TR40' + end + item + Name = 'Traspasos_TR42' + DataType = datFloat + DisplayLabel = 'TR42' + end + item + Name = 'Traspasos_TR44' + DataType = datFloat + DisplayLabel = 'TR44' + end + item + Name = 'Traspasos_TR46' + DataType = datFloat + DisplayLabel = 'TR46' + end + item + Name = 'Traspasos_TR48' + DataType = datFloat + DisplayLabel = 'TR48' + end + item + Name = 'Traspasos_TOTAL_RECT' + DataType = datFloat + DisplayLabel = 'Total' + end + item + Name = 'Traspasos_APROBADO' + DataType = datString + Size = 1 + DisplayLabel = 'Aprobado' + end + item + Name = 'Traspasos_ESTADO_TRASPASO' + DataType = datString + Size = 20 + DisplayLabel = 'Estado' + end + item + Name = 'Traspasos_OBSERVACIONES' + DataType = datString + Size = 255 + DisplayLabel = 'Observaciones' + end + item + Name = 'Traspasos_CONTABILIZAR' + DataType = datString + Size = 1 + DisplayLabel = 'Contabilizar' + end + item + Name = 'Traspasos_FECHACAMBIO' + DataType = datDateTime + DisplayLabel = 'Fecha cambio' + ReadOnly = True + end> + Left = 40 + Top = 168 + end + object bpTraspasos: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'Traspasos' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpTraspasosAprobadas: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'TraspasosAprobados' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpTraspasosPendientes: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'TraspasosPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end +end diff --git a/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas b/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas new file mode 100644 index 0000000..bfd4368 --- /dev/null +++ b/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas @@ -0,0 +1,51 @@ +unit srvTraspasos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer; + +type + { TsrvTraspasos } + TsrvTraspasos = class(TDARemoteService, IsrvTraspasos) + DABINAdapter: TDABINAdapter; + bpTraspasos: TDABusinessProcessor; + bpTraspasosAprobadas: TDABusinessProcessor; + bpTraspasosPendientes: TDABusinessProcessor; + schTraspasos: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvTraspasos methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvTraspasos(out anInstance : IUnknown); +begin + anInstance := TsrvTraspasos.Create(NIL); +end; + +{ srvTraspasos } +initialization + TROClassFactory.Create('srvTraspasos', Create_srvTraspasos, TsrvTraspasos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj b/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj new file mode 100644 index 0000000..72aa031 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + VentasProceso.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg b/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof b/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk b/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk new file mode 100644 index 0000000..e1e3ec7 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk @@ -0,0 +1,74 @@ +package VentasProceso; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10; + +contains + uDataModuleVentasProceso in 'uDataModuleVentasProceso.pas' {dmVentasEnProceso: TDAClientDataModule}, + uPluginControllerVentasProceso in 'uPluginControllerVentasProceso.pas' {ModuleVentasProceso: TModuleController}, + uEditorControlesVentaProceso in 'uEditorControlesVentaProceso.pas' {fEditorControlesVentasProceso: TCustomEditor}, + uViewControlesVentaProceso in 'uViewControlesVentaProceso.pas' {frViewControlesVentaProceso: TCustomView}, + uBizControlVentasProceso in '..\Reglas\uBizControlVentasProceso.pas', + uEditorControlVentaProceso in 'uEditorControlVentaProceso.pas' {fEditorControlVentaProceso: TCustomEditor}, + uViewControlVentaProceso in 'uViewControlVentaProceso.pas' {frViewControlVentaProceso: TCustomView}, + schVentasEnProcesoClient_Intf in '..\Reglas\schVentasEnProcesoClient_Intf.pas', + uBizVentasProceso in '..\Reglas\uBizVentasProceso.pas', + uViewControGridlVentaProceso in 'uViewControGridlVentaProceso.pas' {frViewControlGridVentaProceso: TCustomView}; + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache b/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache new file mode 100644 index 0000000000000000000000000000000000000000..8b7a0eed6e3a2cee09ce7b045adea44a3e2b0ddb GIT binary patch literal 1607 zcmd6n!Ait16h-USujm)}0WPOAh>L;2!LA+*A$is(F;DUm1pi=miip2!=)_vP2(DVY zD_p|izI*R^RaI|i%_Xc^$47KQYUND5#}LSM0=E*CCx$IaZL)*~R_txB3(*kQJI@cO zgFvf1S_ONKUL$PTM4QxYdRIvjX%vRWQu;@TE#Y&+E_k-RA`32_lq9O*JI;%DgPm0Z zaYZk`xTjd3^I{FI?QHDGW#26NBINr*kQ+mR{U46|@gD$DO8J`^G3QV8{pqqBmwRza zz~S13yJ;3*=XG&Zk@1PY8$P95DuknbDPMT00bHw~`i;b5iDwSrurxpZU3oIajs60_ CUqTuH literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc b/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.res b/Source/Modulos/VentasProceso/Cliente/VentasProceso.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm new file mode 100644 index 0000000..ccb41df --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm @@ -0,0 +1,364 @@ +object dmVentasEnProceso: TdmVentasEnProceso + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 300 + Width = 306 + object RemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvVentasEnProceso' + Left = 56 + Top = 16 + end + object tbl_VentasEnProcesoPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'DIA' + DataType = datInteger + end + item + Name = 'DIASEMANA' + DataType = datString + Size = 30 + end + item + Name = 'MES' + DataType = datString + Size = 30 + end + item + Name = 'ANO' + DataType = datInteger + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'INICIO' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'FINAL' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'IMPORTE' + DataType = datFloat + Alignment = taRightJustify + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasEnProcesoPendientes' + IndexDefs = <> + Left = 200 + Top = 16 + end + object tbl_VentasEnProcesoPendientes2: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'FECHAINI' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + DataType = datDateTime + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter2 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasEnProcesoPendientes' + IndexDefs = <> + Left = 200 + Top = 96 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = False + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer2 + Left = 56 + Top = 96 + end + object DARemoteDataAdapter2: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchema' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetData' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer2 + Left = 56 + Top = 168 + end + object DABinDataStreamer2: TDABinDataStreamer + IsCompatibleV4 = False + Left = 56 + Top = 248 + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas b/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas new file mode 100644 index 0000000..cd41a85 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas @@ -0,0 +1,113 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDataModuleVentasProceso; + +interface + +uses {vcl:} SysUtils, Classes, DB, uDataModuleBase, + {RemObjects:} uDAClientDataModule, uROClient, uROServiceComponent, + uRORemoteService, uDADataTable, uDAScriptingProvider, uDACDSDataTable, + uBizControlVentasProceso, uBizVentasProceso, uDARemoteDataAdapter, + uDADataStreamer, uDABinAdapter; + +const + CATEGORIA_VENTAS_PROCESO = 'VENTAPROCESO'; + +type + TdmVentasEnProceso = class(TDAClientDataModule) + RemoteService: TRORemoteService; + tbl_VentasEnProcesoPendientes: TDACDSDataTable; + tbl_VentasEnProcesoPendientes2: TDACDSDataTable; + DARemoteDataAdapter: TDARemoteDataAdapter; + DARemoteDataAdapter2: TDARemoteDataAdapter; + DABinDataStreamer2: TDABinDataStreamer; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function GetItems : IBizVentasProceso; + public + function GetNameColumns: String; + function GetControl: IBizControlVentasProceso; + end; + +var + dmVentasEnProceso: TdmVentasEnProceso; + +implementation + +{$R *.DFM} + +uses + Controls, Forms, uDataTableUtils, + uDataModuleControles, schVentasEnProcesoClient_Intf, Dialogs, cxControls; + +procedure TdmVentasEnProceso.DAClientDataModuleCreate(Sender: TObject); +begin + RemoteService.Channel := dmBase.Channel; + RemoteService.Message := dmBase.Message; +end; + +function TdmVentasEnProceso.GetControl: IBizControlVentasProceso; +var + aDataTable : TDACDSDataTable; +begin + aDataTable := dmControles.GetItems(CATEGORIA_VENTAS_PROCESO); + aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASPROCESO; + + (aDataTable as IBizControlVentasProceso).Items := GetItems; + Result := (aDataTable as IBizControlVentasProceso); +end; + +function TdmVentasEnProceso.GetItems: IBizVentasProceso; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasEnProcesoPendientes2, dtVentas); + dtVentas.Fields.AssignFieldCollection(tbl_VentasEnProcesoPendientes.Fields); + dtVentas.BusinessRulesID := BIZ_VENTASPROCESO; + + dtVentas.FieldByName(fld_VentasEnProcesoPendientesNUMINF).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE1).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE2).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE3).Visible := False; + + dtVentas.LoadSchema; + Result := (dtVentas as IBizVentasProceso); + finally + HideHourglassCursor; + end; +end; + +function TdmVentasEnProceso.GetNameColumns: String; +var + AList : TStringList; + i : integer; +begin + AList := TStringList.Create; + try + for i := 0 to tbl_VentasEnProcesoPendientes.FieldCount - 1 do + if tbl_VentasEnProcesoPendientes.Fields[i].Visible then + AList.Add(tbl_VentasEnProcesoPendientes.Fields[i].Name); + Result := AList.CommaText; + finally + FreeAndNil(AList); + end; +end; + + +initialization + dmVentasEnProceso := TdmVentasEnProceso.Create(nil); + +finalization + FreeAndNil(dmVentasEnProceso); + +end. + diff --git a/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp b/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm new file mode 100644 index 0000000..037ce6c --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm @@ -0,0 +1,1716 @@ +inherited fEditorControlVentaProceso: TfEditorControlVentaProceso + Left = 231 + Top = 105 + Width = 687 + Height = 607 + ActiveControl = frViewControlVentaProceso1.bRefrescar + Caption = 'fEditorControlVentaProceso' + OnCreate = CustomEditorCreate + OnGetModified = CustomEditorGetModified + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D + 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 + A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 + 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 + EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 + 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 + 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E + D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 + 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C + EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF + 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 + 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C + 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 + 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 + 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 + E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F + BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 + 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 + FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D + C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 + F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B + AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + inline frViewControlVentaProceso1: TfrViewControlVentaProceso [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited TBXMultiDock1: TTBXMultiDock + Width = 238 + Height = 478 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 234 + SplitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 234 + inherited TBXLink1: TTBXLink + Width = 226 + end + inherited TBXLink5: TTBXLink + Width = 226 + end + inherited TBXLink2: TTBXLink + Width = 226 + end + end + inherited pcParametros: TPageControl + Width = 234 + Height = 121 + inherited tsColumnas: TTabSheet + inherited frViewColumnas1: TfrViewColumnas + Height = 0 + inherited lbColumnas: TcxCheckListBox + Height = 0 + end + end + end + inherited tsAgrupacion: TTabSheet + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 226 + Height = 111 + inherited TBXLabel1: TTBXLabel + Width = 226 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 226 + inherited TBXButton1: TTBXButton + Width = 114 + end + inherited TBXButton3: TTBXButton + Width = 114 + end + inherited TBXButton2: TTBXButton + Width = 114 + end + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 188 + Width = 234 + inherited bRefrescar: TButton + OnClick = frViewControlVentaProceso1bRefrescarClick + end + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 240 + DockedWidth = 234 + DockPos = 240 + SplitHeight = 222 + inherited TBXPageScroller1: TTBXPageScroller + Width = 234 + Height = 200 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 234 + inherited bFiltros: TTBXLink + Width = 226 + end + inherited bSumarios: TTBXLink + Width = 226 + end + end + inherited pcTareas: TPageControl + Width = 234 + Height = 152 + inherited tsSumarios: TTabSheet + inherited frViewSumarios1: TfrViewSumarios + Height = 48 + inherited vgSumarios: TcxVerticalGrid + Height = 19 + end + end + end + inherited tsFiltros: TTabSheet + inherited frViewFiltros1: TfrViewFiltros + Width = 226 + Height = 142 + inherited vgFiltros: TcxVerticalGrid + Height = 130 + end + inherited TBXLabel1: TTBXLabel + Width = 226 + end + inherited cxFilterControl1: TcxFilterControl + Width = 226 + Height = 83 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 112 + Width = 226 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 24 + Top = 48 + end + end + end + end + end + end + end + inherited frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso + Left = 238 + Width = 441 + Height = 478 + inherited cxGrid: TcxGrid + Width = 441 + Height = 478 + inherited cxGridView: TcxGridDBTableView + DataController.DataSource = dsVentasProceso + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList + Left = 216 + Top = 176 + end + inherited LargeImages: TPngImageList + Left = 192 + Top = 176 + end + end + inherited EditorActionList: TActionList [4] + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + object dsVentasProceso: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas b/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas new file mode 100644 index 0000000..b35e453 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas @@ -0,0 +1,241 @@ +unit uEditorControlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, uViewControlVentaProceso, + Grids, DBGrids, pngimage; + +type + IEditorControlVentaProceso = interface(IEditorControlBase) + ['{7F768AD2-1FF0-41E0-9157-4AB2E2CD7D32}'] + end; + + TfEditorControlVentaProceso = class(TfEditorControlBase, IEditorControlVentaProceso) + frViewControlVentaProceso1: TfrViewControlVentaProceso; + dsVentasProceso: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + procedure actRefrescarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure CustomEditorCreate(Sender: TObject); + procedure CustomEditorGetModified(Sender: TObject; + var Modified: Boolean); + procedure actGuardarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure frViewControlVentaProceso1bRefrescarClick(Sender: TObject); + private + procedure RestaurarConfiguracion; + procedure GuardarConfiguracion; + protected + FModificado : Boolean; + procedure OnViewControlChanged(Sender: TObject); + procedure SetControl(const Value: IBizControlBase); override; + procedure RellenarCabeceraInforme; + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + uEditorUtils, uBizControlVentasProceso, uROClasses, + cxGridTableView; + +{$R *.dfm} + +function ShowEditorVentasProceso (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: IEditorControlVentaProceso; //TfEditorInformeVentas; +begin + AEditor := TfEditorControlVentaProceso.Create(Application); + try + AEditor.Control := (ABizObject as IBizControlVentasProceso); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorControlVentaProceso } + +procedure TfEditorControlVentaProceso.SetControl( + const Value: IBizControlBase); +begin + inherited; + RefrescarTituloEditor; + if Assigned(FControl) then + begin + frViewControlVentaProceso1.Control := FControl; + frViewControlVentaProceso1.OnViewChanged := OnViewControlChanged; + dsDataTable.DataTable := FControl.DataTable; + with (FControl as IBizControlVentasProceso) do + begin + Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' + dsVentasProceso.DataTable := Items.DataTable; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.DataSource := dsVentasProceso; + end; + end; +end; + +procedure TfEditorControlVentaProceso.actRefrescarExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.Refresh; + + while (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord.Expand(True); + if (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecordIndex < + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.RowCount - 1) then + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.GoToNext(False, True) + else + Exit; + end; +end; + +procedure TfEditorControlVentaProceso.actExpandirExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ExpandirTodo; +end; + +procedure TfEditorControlVentaProceso.actContraerExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ContraerTodo; +end; + +procedure TfEditorControlVentaProceso.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.AjustarAncho; +end; + +procedure TfEditorControlVentaProceso.OnViewControlChanged( + Sender: TObject); +begin + FModificado := True; +end; + +procedure TfEditorControlVentaProceso.CustomEditorCreate(Sender: TObject); +begin + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentaProceso.CustomEditorGetModified( + Sender: TObject; var Modified: Boolean); +begin + inherited; + Modified := FModificado; +end; + +procedure TfEditorControlVentaProceso.actGuardarExecute(Sender: TObject); +begin + GuardarConfiguracion; + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentaProceso.GuardarConfiguracion; +var + Aux : IROStrings; +begin + Aux := NewROStrings(); + Aux.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties); + if not (FControl.DataTable.State in dsEditModes) then + FControl.Edit; + FControl.VISTA := Aux; +end; + +procedure TfEditorControlVentaProceso.RestaurarConfiguracion; +begin + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties := FControl.VISTA.Text; +end; + +procedure TfEditorControlVentaProceso.FormShow(Sender: TObject); +begin + inherited; + if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando + RestaurarConfiguracion; + frViewControlVentaProceso1.frViewColumnas1.Refresh; + frViewControlVentaProceso1.frViewAgrupaciones1.Refresh; +end; + +procedure TfEditorControlVentaProceso.actPrevisualizarExecute( + Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.Preview; +end; + +procedure TfEditorControlVentaProceso.actImprimirExecute(Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.Print; +end; + +procedure TfEditorControlVentaProceso.actConfPaginaExecute( + Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.PrintSetup; +end; + +procedure TfEditorControlVentaProceso.RellenarCabeceraInforme; +begin + with frViewControlVentaProceso1.frViewControlGridVentaProceso1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do + begin + LeftTitle.Clear; + LeftTitle.Add(FControl.NOMBRE); + RightTitle.Clear; + RightTitle.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.Filter.FilterText); + end; +end; + +constructor TfEditorControlVentaProceso.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlVentaProceso1; + Self.Caption := 'Nueva consulta de ventas en proceso'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +procedure TfEditorControlVentaProceso.frViewControlVentaProceso1bRefrescarClick( + Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.actRefrescarExecute(Sender); + +end; + +initialization + RegisterEditor(IBizControlVentasProceso, ShowEditorVentasProceso, etItem); + +end. + diff --git a/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm new file mode 100644 index 0000000..4100cc7 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm @@ -0,0 +1,154 @@ +inherited fEditorControlesVentasProceso: TfEditorControlesVentasProceso + Left = 499 + Top = 346 + ActiveControl = frViewControlesVentaProceso1.EasyListview + Caption = 'fEditorControlesVentasProceso' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Control de ventas en proceso' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D + 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 + A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 + 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 + EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 + 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 + 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E + D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 + 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C + EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF + 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 + 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C + 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 + 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 + 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 + E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F + BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 + 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 + FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D + C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 + F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B + AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} + end + end + inline frViewControlesVentaProceso1: TfrViewControlesVentaProceso [3] + Left = 0 + Top = 76 + Width = 654 + Height = 368 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited EasyListview: TEasyListview + Width = 654 + Height = 368 + end + end + inherited EditorActionList: TActionList [4] + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited ViewPopupMenu: TPopupMenu [10] + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas b/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas new file mode 100644 index 0000000..8a30a92 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas @@ -0,0 +1,40 @@ +unit uEditorControlesVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, + uViewBase, uViewControlesBase, uViewControlesVentaProceso, Menus, DB, + uDADataTable; + +type + IEditorControlesVentasProceso = interface(IEditorControlesBase) + ['{691E2C4E-32EF-4F86-9DDE-036A6BCCEF0E}'] + end; + + TfEditorControlesVentasProceso = class(TfEditorControlesBase, IEditorControlesVentasProceso) + frViewControlesVentaProceso1: TfrViewControlesVentaProceso; + private + { Private declarations } + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +{$R *.dfm} + +{ TfEditorControlVentaProceso } + +constructor TfEditorControlesVentasProceso.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlesVentaProceso1; +end; + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp b/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm new file mode 100644 index 0000000..ac4c156 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm @@ -0,0 +1,284 @@ +object ModuleVentasProceso: TModuleVentasProceso + OldCreateOrder = True + Description = 'Controles de ventas en proceso' + ModuleMenu = MainMenu + ModuleName = 'Controles de ventas en proceso' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.4' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000029C4944415478DAB5955D48145114 + C7FFB32B7D083DD8832D0559F420F950C950E1530F421F083D4451422CD88B94 + 0829591229A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042 + E64E9A1F51664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382 + 611848A709EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF9 + 9CBAFA9BE06C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE99 + 5388B557A976E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B + 006D87C32ED08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9D + C1078530C43E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D80 + 1C581DE00CEEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B732 + 9E2F0FF8BF34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C5 + 62989D9D453C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6 + CC17AB039C104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF + 2940CD112531C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A367 + 9A9031FF156565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B + 721475B921E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1 + A67BBA392FBCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F + 805C69CED9214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F167 + 4E15217B83FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB + 02F8AEC58DC10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71A + DDBA002CF8F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D066674152 + 06ECF2771BAB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actVentasProceso: TAction + Category = 'Ventas' + Caption = 'Control de ventas en proceso' + ImageIndex = 0 + OnExecute = actVentasProcesoExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 101 + Action = actVentasProceso + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000023F4944415478DAA5936B48536118 + C7FFE76CF3D26C2859D14DC106899452D9C0CABE84945DC8A23E7841A2A612E5 + B7A02F4151F929FC9262810EA1C0465B0BA2584BB34FE939D636D7D29439626E + BAD96DDAEE97734E9D236B2E7444FDE185079EE7FD3DEFF37F78098EE3F03F22 + FA9E8DFC33A1EE98821000DB8E8AD0419F5FB628C63008C5E308C66258088785 + 5875E23994877B6036DC4D027825202A8509D96D36E46D5A8303F255A0C719B8 + BC0C589201E9FF8EED6F541049169280E53A5F9B944116F2A131CB0A2D2582FD + 3381081106290A614FEE3C1ACE55A77AF0E7181EF72EF8069BD05EFD03322909 + C78C139ED939A87563709F34A1F7F203618C14C0D231EAA434D4541477943918 + 7632F058DE214BE2834EA54755EB7E945516A6025EE637FFEECE7BC0B24079FB + 2B349716E1668F05511B8DFA53C5301BF570D4BE104C2DE83BBB3280976884C4 + E6C78FD05AC04216746190FA0AEA4C9770993FC59A26107C210F590AE0930FF7 + 598558D1F60DB70ECE20C73F8DFAABF710B8F85AC8F3EBDCF9E4421290305148 + 0A1D1838E8FB5037EEC0EE8D7ED8A65CD00F98D0FD74001F4E6B616C312E7A90 + 00DCEEE84D59A32FB30865476AA16D5907659713F31334AED710B8D149E3E397 + 002452F1E21A57FA0B924BEEAA4A79DC90BF9620343A3BB2A70DA8392E47C462 + E5264CAE43639F34FD6901EBAF7887CA4BA4155B4BA3783B29063597F1EB5901 + E459FA5138A51F369BBBF7A6056C6930442A309E51B281E1461D24EC5E16B170 + 0011B184581D9C8DBEA73B33D302FE563F01DC582D540042BC50000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas b/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas new file mode 100644 index 0000000..1cd6e41 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas @@ -0,0 +1,73 @@ +unit uPluginControllerVentasProceso; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCVentas = interface(IInterface) + ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] + end; + + TModuleVentasProceso = class(TModuleController, IMCVentas) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actVentasProceso: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actVentasProcesoExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasProceso, + uEditorControlesVentaProceso, uDataModuleControles, + uBizControlVentasProceso, uEditorControlesBase; + +function GetModule : TModuleController; +begin + Result := TModuleVentasProceso.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleVentasProceso.actVentasProcesoExecute(Sender: TObject); +var + aControl: IBizControlVentasProceso; + aObj: IEditorControlesVentasProceso; +begin + aControl := dmVentasEnProceso.GetControl; + aObj := TfEditorControlesVentasProceso.Create(Application); + try + with aObj do + begin + Control := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleVentasProceso); + +finalization + UnRegisterModuleClass(TModuleVentasProceso); + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp b/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm new file mode 100644 index 0000000..8004f66 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm @@ -0,0 +1,194 @@ +inherited frViewControlGridVentaProceso: TfrViewControlGridVentaProceso + Width = 632 + Height = 419 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 632 + Height = 419 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.CustomizeDialog = False + FilterBox.Visible = fvAlways + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary + DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged + DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.DataRowSizing = True + OptionsCustomize.GroupRowSizing = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.HeaderEndEllipsis = True + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + Styles.FilterBox = cxStyleFilterBox + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + OnColumnPosChanged = cxGridViewColumnPosChanged + OnColumnSizeChanged = cxGridViewColumnSizeChanged + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + end + object cxGridViewDIA: TcxGridDBColumn + Caption = 'Dia' + DataBinding.FieldName = 'DIA' + end + object cxGridViewDIASEMANA: TcxGridDBColumn + Caption = 'Dia de la semana' + DataBinding.FieldName = 'DIASEMANA' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup + end + object cxGridViewMES: TcxGridDBColumn + Caption = 'Mes' + DataBinding.FieldName = 'MES' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup + end + object cxGridViewANO: TcxGridDBColumn + Caption = 'A'#241'o' + DataBinding.FieldName = 'ANO' + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Talon' + DataBinding.FieldName = 'NUMTALON' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewNUMTALONPropertiesInitPopup + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'Codigo' + DataBinding.FieldName = 'CODIGO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup + end + object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn + Caption = 'Grupo' + DataBinding.FieldName = 'GRUPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup + end + object cxGridViewTIPOPRODUCTO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Coleccion' + DataBinding.FieldName = 'COLECCION' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taLeftJustify + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taLeftJustify + end + object cxGridViewINICIO: TcxGridDBColumn + Caption = 'Inicio' + DataBinding.FieldName = 'INICIO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewFINAL: TcxGridDBColumn + Caption = 'Final' + DataBinding.FieldName = 'FINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + Component = cxGrid + BuiltInReportLink = True + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 16 + Top = 48 + object cxStyleRed: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleBlue: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleFilterBox: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInfoBk + TextColor = clWindowText + end + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas b/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas new file mode 100644 index 0000000..b4637dd --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas @@ -0,0 +1,351 @@ +unit uViewControGridlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls; + +type + IViewControlGridVentaProceso = interface(IViewControlGrid) + ['{537E8507-695E-4345-AAEE-F573C113A2CF}'] + end; + + TfrViewControlGridVentaProceso = class(TfrViewControlGrid, IViewControlGridVentaProceso) + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewDIA: TcxGridDBColumn; + cxGridViewDIASEMANA: TcxGridDBColumn; + cxGridViewMES: TcxGridDBColumn; + cxGridViewANO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; + cxGridViewTIPOPRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewINICIO: TcxGridDBColumn; + cxGridViewFINAL: TcxGridDBColumn; + cxGridLevel: TcxGridLevel; + cxStyleRepository1: TcxStyleRepository; + cxStyleRed: TcxStyle; + cxStyleBlue: TcxStyle; + cxStyleFilterBox: TcxStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); + procedure cxGridViewDataControllerSortingChanged(Sender: TObject); + procedure cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); + procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); + procedure cxGridViewNUMTALONPropertiesInitPopup(Sender: TObject); + procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerFilterChanged(Sender: TObject); + procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); + procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); + procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); + protected + procedure ActivarEventos; override; + procedure DesactivarEventos; override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure Refresh; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses + cxVariants, DateUtils, uDataModuleVentasProceso; + +{$R *.dfm} + +{ TfrViewControlGridVentaProceso } + +function TfrViewControlGridVentaProceso.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridVentaProceso.Refresh; +var + FocusedRow, TopRow : Integer; +begin + inherited; + { Refrescar las filas del grid a partir del dataset y colocar la fila + seleccionada donde estaba } + if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then + begin + TopRow := FocusedView.Controller.TopRowIndex; + FocusedRow := FocusedView.DataController.FocusedRowIndex; + + FocusedView.DataController.UpdateItems(False); // <- Refresco + + FocusedView.DataController.FocusedRowIndex := FocusedRow; + FocusedView.Controller.TopRowIndex := TopRow; + + { Esta chapuzilla es para que se rellenen los combobox de los filtros + por que el cxFilterControl no coge los valores la 1ª vez si los + combos están vacíos. } + TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewNUMTALON.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo + if ARecord.Expandable then + Exit; + + AColumn := FocusedView.GetColumnByFieldName('FECHA'); + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); + end; + + if DaysBetween(Now, AFecha) > 14 then + AStyle := cxStyleRed + else + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleBlue + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewColumnPosChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewColumnSizeChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerGroupingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSortingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewCENTROPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewVENDEDORPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewNUMTALONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewNUMTALON.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewNUMTALON.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerFilterChanged( + Sender: TObject); +begin + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +constructor TfrViewControlGridVentaProceso.Create(AOwner: TComponent); +begin + inherited; +end; + +procedure TfrViewControlGridVentaProceso.ActivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; + DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; + DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; + DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; + OnColumnPosChanged := cxGridViewColumnPosChanged; + OnColumnSizeChanged := cxGridViewColumnSizeChanged; + end; +end; + +procedure TfrViewControlGridVentaProceso.DesactivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := nil; + DataController.Summary.OnAfterSummary := nil; + DataController.OnGroupingChanged := nil; + DataController.OnSortingChanged := nil; + OnColumnPosChanged := nil; + OnColumnSizeChanged := nil; + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDIASEMANAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewMESPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewMES.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewMES.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewTIPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewCOLECCIONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp b/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm new file mode 100644 index 0000000..e3b4ec4 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm @@ -0,0 +1,148 @@ +inherited frViewControlVentaProceso: TfrViewControlVentaProceso + Height = 608 + inherited TBXMultiDock1: TTBXMultiDock + Width = 232 + Height = 608 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 228 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 228 + inherited TBXLink1: TTBXLink + Width = 220 + Visible = False + end + inherited TBXLink5: TTBXLink + Width = 220 + end + inherited TBXLink2: TTBXLink + Width = 220 + end + end + inherited pcParametros: TPageControl + Width = 228 + Height = 170 + inherited tsColumnas: TTabSheet + inherited frViewColumnas1: TfrViewColumnas + Width = 220 + Height = 160 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited lbColumnas: TcxCheckListBox + Width = 220 + Height = 131 + end + end + end + inherited tsAgrupacion: TTabSheet + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 220 + Height = 160 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 220 + DesignSize = ( + 220 + 77) + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 237 + Width = 228 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 289 + DockedWidth = 228 + DockPos = 289 + Visible = False + inherited TBXPageScroller1: TTBXPageScroller + Width = 228 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 228 + inherited bFiltros: TTBXLink + Width = 220 + end + inherited bSumarios: TTBXLink + Width = 220 + end + end + inherited pcTareas: TPageControl + Width = 228 + inherited tsSumarios: TTabSheet + inherited frViewSumarios1: TfrViewSumarios + Width = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited vgSumarios: TcxVerticalGrid + Width = 220 + end + end + end + inherited tsFiltros: TTabSheet + inherited frViewFiltros1: TfrViewFiltros + Width = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited cxFilterControl1: TcxFilterControl + Width = 220 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 220 + end + end + end + end + end + end + end + inline frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso [1] + Left = 232 + Top = 0 + Width = 467 + Height = 608 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 467 + Height = 608 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList [2] + end + inherited LargeImages: TPngImageList [3] + end + inherited EditorActionList: TActionList + Left = 248 + Top = 72 + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + end + end +end diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas b/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas new file mode 100644 index 0000000..97f4633 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas @@ -0,0 +1,120 @@ +unit uViewControlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, + uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, + uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, + TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + cxTextEdit, uViewControGridlVentaProceso, uViewFiltros; + +type + IViewControlVentaProceso = interface(IViewControlBase) + ['{C3433C18-BB61-4046-BC0B-CE783A6F7189}'] + end; + + TfrViewControlVentaProceso = class(TfrViewControlBase, IViewControlVentaProceso) + frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso; + procedure actRefrescarExecute(Sender: TObject); + protected + FModificado : Boolean; + procedure OnViewControlGridChanged(Sender : TObject); + procedure OnFilterChanged(Sender : TObject); + public + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation + +uses uDataModuleVentasProceso, uBizControlVentasProceso, uBizVentasProceso; + +{$R *.dfm} + +{ TfrViewControlVentaProceso } + +constructor TfrViewControlVentaProceso.Create(AOwner: TComponent); +begin + inherited; + frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; + frViewColumnas1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewSumarios1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewFiltros1.ViewControlGrid := frViewControlGridVentaProceso1; +end; + +procedure TfrViewControlVentaProceso.Refresh; +var + AColumns : TStringList; +begin + inherited; + ShowHourglassCursor; + actRefrescar.Enabled := False; + + frViewControlGridVentaProceso1.OnViewChanged := nil; + frViewControlGridVentaProceso1.OnFilterChanged := nil; + + try + // Calcular las columnas a pedir al servidor + AColumns := frViewColumnas1.GetCheckedColumns; + AColumns.Duplicates := dupIgnore; + AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); + + (Control as IBizControlVentasProceso).Items.VisibleColumns := AColumns.CommaText; + with (Control as IBizControlVentasProceso).Items.DataTable do + begin + DisableControls; + try + Active := False; + LoadSchema; + Active := True; + + frViewColumnas1.Execute; + frViewAgrupaciones1.Execute; + frViewSumarios1.Refresh; + frViewFiltros1.Refresh; + pnlTareas.Visible := True; + + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); + finally + EnableControls; + frViewControlGridVentaProceso1.Refresh; + frViewControlGridVentaProceso1.ExpandirTodo; + frViewControlGridVentaProceso1.GotoFirst; + end; + end; + finally + FreeAndNil(AColumns); + frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; + actRefrescar.Enabled := True; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlVentaProceso.actRefrescarExecute(Sender: TObject); +begin + inherited; + Refresh; +end; + +procedure TfrViewControlVentaProceso.OnViewControlGridChanged( + Sender: TObject); +begin + if Assigned(Self.OnViewChanged) then + Self.OnViewChanged(Self); +end; + +procedure TfrViewControlVentaProceso.OnFilterChanged(Sender: TObject); +begin + frViewFiltros1.Refresh; +end; + +end. diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm b/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm new file mode 100644 index 0000000..1c5d52e --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm @@ -0,0 +1,2 @@ +inherited frViewControlesVentaProceso: TfrViewControlesVentaProceso +end diff --git a/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas b/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas new file mode 100644 index 0000000..637f1e4 --- /dev/null +++ b/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas @@ -0,0 +1,24 @@ +unit uViewControlesVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, + PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, + MPCommonObjects, MPCommonUtilities, EasyListview; + +type + IViewControlesVentaProceso = interface(IViewControlesBase) + ['{FEC70D50-494A-477A-B907-A5752223ABF1}'] + end; + + TfrViewControlesVentaProceso = class(TfrViewControlesBase, IViewControlesVentaProceso) + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas b/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas new file mode 100644 index 0000000..c0cc047 --- /dev/null +++ b/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas @@ -0,0 +1,460 @@ +unit schVentasEnProcesoClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasEnProcesoPendientes = '{6A914050-F90B-4E27-992C-A010950CC420}'; + + { Data table names } + nme_VentasEnProcesoPendientes = 'VentasEnProcesoPendientes'; + + { VentasEnProcesoPendientes fields } + fld_VentasEnProcesoPendientesNUMINF = 'NUMINF'; + fld_VentasEnProcesoPendientesCLAVE1 = 'CLAVE1'; + fld_VentasEnProcesoPendientesCLAVE2 = 'CLAVE2'; + fld_VentasEnProcesoPendientesCLAVE3 = 'CLAVE3'; + fld_VentasEnProcesoPendientesFECHA = 'FECHA'; + fld_VentasEnProcesoPendientesDIA = 'DIA'; + fld_VentasEnProcesoPendientesDIASEMANA = 'DIASEMANA'; + fld_VentasEnProcesoPendientesMES = 'MES'; + fld_VentasEnProcesoPendientesANO = 'ANO'; + fld_VentasEnProcesoPendientesCENTRO = 'CENTRO'; + fld_VentasEnProcesoPendientesVENDEDOR = 'VENDEDOR'; + fld_VentasEnProcesoPendientesNUMTALON = 'NUMTALON'; + fld_VentasEnProcesoPendientesCODIGO = 'CODIGO'; + fld_VentasEnProcesoPendientesPRODUCTO = 'PRODUCTO'; + fld_VentasEnProcesoPendientesGRUPOPRODUCTO = 'GRUPOPRODUCTO'; + fld_VentasEnProcesoPendientesTIPOPRODUCTO = 'TIPOPRODUCTO'; + fld_VentasEnProcesoPendientesCOLECCION = 'COLECCION'; + fld_VentasEnProcesoPendientesCOLOR = 'COLOR'; + fld_VentasEnProcesoPendientesTALLA = 'TALLA'; + fld_VentasEnProcesoPendientesINICIO = 'INICIO'; + fld_VentasEnProcesoPendientesFINAL = 'FINAL'; + fld_VentasEnProcesoPendientesIMPORTE = 'IMPORTE'; + + { VentasEnProcesoPendientes field indexes } + idx_VentasEnProcesoPendientesNUMINF = 0; + idx_VentasEnProcesoPendientesCLAVE1 = 1; + idx_VentasEnProcesoPendientesCLAVE2 = 2; + idx_VentasEnProcesoPendientesCLAVE3 = 3; + idx_VentasEnProcesoPendientesFECHA = 4; + idx_VentasEnProcesoPendientesDIA = 5; + idx_VentasEnProcesoPendientesDIASEMANA = 6; + idx_VentasEnProcesoPendientesMES = 7; + idx_VentasEnProcesoPendientesANO = 8; + idx_VentasEnProcesoPendientesCENTRO = 9; + idx_VentasEnProcesoPendientesVENDEDOR = 10; + idx_VentasEnProcesoPendientesNUMTALON = 11; + idx_VentasEnProcesoPendientesCODIGO = 12; + idx_VentasEnProcesoPendientesPRODUCTO = 13; + idx_VentasEnProcesoPendientesGRUPOPRODUCTO = 14; + idx_VentasEnProcesoPendientesTIPOPRODUCTO = 15; + idx_VentasEnProcesoPendientesCOLECCION = 16; + idx_VentasEnProcesoPendientesCOLOR = 17; + idx_VentasEnProcesoPendientesTALLA = 18; + idx_VentasEnProcesoPendientesINICIO = 19; + idx_VentasEnProcesoPendientesFINAL = 20; + idx_VentasEnProcesoPendientesIMPORTE = 21; + +type + { IVentasEnProcesoPendientes } + IVentasEnProcesoPendientes = interface(IDAStronglyTypedDataTable) + ['{75EFCBF2-47FD-4655-A865-27703C29C80D}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetDIAValue: Integer; + procedure SetDIAValue(const aValue: Integer); + function GetDIASEMANAValue: String; + procedure SetDIASEMANAValue(const aValue: String); + function GetMESValue: String; + procedure SetMESValue(const aValue: String); + function GetANOValue: Integer; + procedure SetANOValue(const aValue: Integer); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetGRUPOPRODUCTOValue: String; + procedure SetGRUPOPRODUCTOValue(const aValue: String); + function GetTIPOPRODUCTOValue: String; + procedure SetTIPOPRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetINICIOValue: Float; + procedure SetINICIOValue(const aValue: Float); + function GetFINALValue: Float; + procedure SetFINALValue(const aValue: Float); + function GetIMPORTEValue: Float; + procedure SetIMPORTEValue(const aValue: Float); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; + property MES: String read GetMESValue write SetMESValue; + property ANO: Integer read GetANOValue write SetANOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property INICIO: Float read GetINICIOValue write SetINICIOValue; + property FINAL: Float read GetFINALValue write SetFINALValue; + property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; + end; + + { TVentasEnProcesoPendientesDataTableRules } + TVentasEnProcesoPendientesDataTableRules = class(TDADataTableRules, IVentasEnProcesoPendientes) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIASEMANAValue: String; virtual; + procedure SetDIASEMANAValue(const aValue: String); virtual; + function GetMESValue: String; virtual; + procedure SetMESValue(const aValue: String); virtual; + function GetANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetINICIOValue: Float; virtual; + procedure SetINICIOValue(const aValue: Float); virtual; + function GetFINALValue: Float; virtual; + procedure SetFINALValue(const aValue: Float); virtual; + function GetIMPORTEValue: Float; virtual; + procedure SetIMPORTEValue(const aValue: Float); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; + property MES: String read GetMESValue write SetMESValue; + property ANO: Integer read GetANOValue write SetANOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property INICIO: Float read GetINICIOValue write SetINICIOValue; + property FINAL: Float read GetFINALValue write SetFINALValue; + property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TVentasEnProcesoPendientesDataTableRules } +constructor TVentasEnProcesoPendientesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasEnProcesoPendientesDataTableRules.Destroy; +begin + inherited; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetDIAValue: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetDIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetDIASEMANAValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetDIASEMANAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetMESValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetMESValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetANOValue: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetANOValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetGRUPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetTIPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetINICIOValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetINICIOValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetFINALValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetFINALValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetIMPORTEValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetIMPORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_VentasEnProcesoPendientes, TVentasEnProcesoPendientesDataTableRules); + +end. diff --git a/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas b/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas new file mode 100644 index 0000000..62901ca --- /dev/null +++ b/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas @@ -0,0 +1,541 @@ +unit schVentasEnProcesoServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schVentasEnProcesoClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasEnProcesoPendientesDelta = '{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'; + +type + { IVentasEnProcesoPendientesDelta } + IVentasEnProcesoPendientesDelta = interface(IVentasEnProcesoPendientes) + ['{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldFECHAValue : DateTime; + function GetOldDIAValue : Integer; + function GetOldDIASEMANAValue : String; + function GetOldMESValue : String; + function GetOldANOValue : Integer; + function GetOldCENTROValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldGRUPOPRODUCTOValue : String; + function GetOldTIPOPRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldINICIOValue : Float; + function GetOldFINALValue : Float; + function GetOldIMPORTEValue : Float; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldDIA : Integer read GetOldDIAValue; + property OldDIASEMANA : String read GetOldDIASEMANAValue; + property OldMES : String read GetOldMESValue; + property OldANO : Integer read GetOldANOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldINICIO : Float read GetOldINICIOValue; + property OldFINAL : Float read GetOldFINALValue; + property OldIMPORTE : Float read GetOldIMPORTEValue; + end; + + { TVentasEnProcesoPendientesBusinessProcessorRules } + TVentasEnProcesoPendientesBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasEnProcesoPendientes, IVentasEnProcesoPendientesDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetDIAValue: Integer; virtual; + function GetOldDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIASEMANAValue: String; virtual; + function GetOldDIASEMANAValue: String; virtual; + procedure SetDIASEMANAValue(const aValue: String); virtual; + function GetMESValue: String; virtual; + function GetOldMESValue: String; virtual; + procedure SetMESValue(const aValue: String); virtual; + function GetANOValue: Integer; virtual; + function GetOldANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + function GetOldGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + function GetOldTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetINICIOValue: Float; virtual; + function GetOldINICIOValue: Float; virtual; + procedure SetINICIOValue(const aValue: Float); virtual; + function GetFINALValue: Float; virtual; + function GetOldFINALValue: Float; virtual; + procedure SetFINALValue(const aValue: Float); virtual; + function GetIMPORTEValue: Float; virtual; + function GetOldIMPORTEValue: Float; virtual; + procedure SetIMPORTEValue(const aValue: Float); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property DIA : Integer read GetDIAValue write SetDIAValue; + property OldDIA : Integer read GetOldDIAValue; + property DIASEMANA : String read GetDIASEMANAValue write SetDIASEMANAValue; + property OldDIASEMANA : String read GetOldDIASEMANAValue; + property MES : String read GetMESValue write SetMESValue; + property OldMES : String read GetOldMESValue; + property ANO : Integer read GetANOValue write SetANOValue; + property OldANO : Integer read GetOldANOValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property INICIO : Float read GetINICIOValue write SetINICIOValue; + property OldINICIO : Float read GetOldINICIOValue; + property FINAL : Float read GetFINALValue write SetFINALValue; + property OldFINAL : Float read GetOldFINALValue; + property IMPORTE : Float read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Float read GetOldIMPORTEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TVentasEnProcesoPendientesBusinessProcessorRules } +constructor TVentasEnProcesoPendientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasEnProcesoPendientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMINF]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE1]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE2]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE3]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFECHA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIASEMANAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIASEMANAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIASEMANAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetMESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldMESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesMES]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetMESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesANO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetANOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCENTRO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMTALON]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCODIGO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLECCION]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLOR]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTALLA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetINICIOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldINICIOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesINICIO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetINICIOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFINAL]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFINALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetIMPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldIMPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesIMPORTE]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetIMPORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_VentasEnProcesoPendientesDelta, TVentasEnProcesoPendientesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas b/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas new file mode 100644 index 0000000..ba8031f --- /dev/null +++ b/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas @@ -0,0 +1,69 @@ +unit uBizControlVentasProceso; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, + uBizVentasProceso; + +const + BIZ_CONTROL_VENTASPROCESO = 'Client.Control_VentasProceso'; + +type + IBizControlVentasProceso = interface(IBizControlBase) + ['{3D515579-7374-444F-8983-8FFE1C7A38C4}'] + procedure SetItems(const Value : IBizVentasProceso); + function GetItems : IBizVentasProceso; + property Items : IBizVentasProceso read GetItems write SetItems; + end; + + TBizControlVentasProcesoTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasProceso) + protected + FItems : IBizVentasProceso; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure SetItems(const Value : IBizVentasProceso); virtual; + function GetItems : IBizVentasProceso; virtual; + public + procedure Show; override; + property Items : IBizVentasProceso read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleVentasProceso; + +{ TBizControlVentasProcesoTableRules } + +function TBizControlVentasProcesoTableRules.GetItems: IBizVentasProceso; +begin + Result := FItems; +end; + +procedure TBizControlVentasProcesoTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + CATEGORIA := CATEGORIA_VENTAS_PROCESO +end; + +procedure TBizControlVentasProcesoTableRules.SetItems( + const Value: IBizVentasProceso); +begin + FItems := Value; +end; + +procedure TBizControlVentasProcesoTableRules.Show; +begin + inherited; + ShowEditor(IBizControlVentasProceso, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_CONTROL_VENTASPROCESO, TBizControlVentasProcesoTableRules); + +finalization +end. + + diff --git a/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas b/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas new file mode 100644 index 0000000..fe6e9eb --- /dev/null +++ b/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas @@ -0,0 +1,88 @@ +unit uBizVentasProceso; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schVentasEnProcesoClient_Intf; + +const + BIZ_VENTASPROCESO = 'Client.VentasProceso'; + +type + IBizVentasProceso = interface(IVentasEnProcesoPendientes) + ['{FA9EC0B7-D12E-4088-8406-D9A86441C3B3}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + TBizVentasProcesoDataTableRules = class(TVentasEnProcesoPendientesDataTableRules, IBizVentasProceso) + private + FVisibleColumns : String; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + +implementation + +uses + uDataModuleVentasProceso; + +{ TBizVentasProcesoDataTableRules } + +constructor TBizVentasProcesoDataTableRules.Create( + aDataTable: TDADataTable); +begin + inherited; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +function TBizVentasProcesoDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentasEnProceso.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBizVentasProcesoDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasProcesoDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasProcesoDataTableRules.SetVisibleColumns( + const Value: String); +begin + if Length(Value) > 0 then + FVisibleColumns := Value + else + FVisibleColumns := dmVentasEnProceso.GetNameColumns; +end; + +initialization + RegisterDataTableRules(BIZ_VENTASPROCESO, TBizVentasProcesoDataTableRules); + +finalization +end. + + diff --git a/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp b/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm b/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm new file mode 100644 index 0000000..c54e5ac --- /dev/null +++ b/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm @@ -0,0 +1,249 @@ +object srvVentasEnProceso: TsrvVentasEnProceso + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schVentasEnProceso + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schVentasEnProceso: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT '#10' TODAS.NUMINF, TODAS.CLAVE1, TODAS.CLAVE2, TODAS.CLAV' + + 'E3,'#10' TODAS.FECHA, TODAS.DIA, TODAS.DIASEMANA, TODAS.MES, TODA' + + 'S.ANO,'#10' TODAS.CENTRO, TODAS.VENDEDOR, TODAS.NUMTALON, TODAS.C' + + 'ODIGO,'#10' TODAS.PRODUCTO, TODAS.GRUPOPRODUCTO, TODAS.TIPOPRODUC' + + 'TO, TODAS.COLECCION,'#10' TODAS.COLOR, TODAS.TALLA, TODAS.INICIO,' + + ' TODAS.FINAL, TODAS.IMPORTE'#10' FROM'#10' RDX_V_VENTASPROCESOPEND' + + 'IENTES PENDIENTES LEFT JOIN RDX_V_VENTASPROCESO TODAS'#10'ON (TODAS.' + + 'NUMTALON = PENDIENTES.NUMTALON AND TODAS.CODIGO = PENDIENTES.COD' + + 'IGO AND'#10'TODAS.COLOR = PENDIENTES.COLOR AND TODAS.TALLA = PENDIEN' + + 'TES.TALLA)' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'INICIO' + TableField = 'INICIO' + end + item + DatasetField = 'FINAL' + TableField = 'FINAL' + end + item + DatasetField = 'DIA' + TableField = 'DIA' + end + item + DatasetField = 'DIASEMANA' + TableField = 'DIASEMANA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'GRUPOPRODUCTO' + TableField = 'GRUPOPRODUCTO' + end + item + DatasetField = 'TIPOPRODUCTO' + TableField = 'TIPOPRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end> + end> + Name = 'VentasEnProcesoPendientes' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'DIA' + DataType = datInteger + end + item + Name = 'DIASEMANA' + DataType = datString + Size = 30 + end + item + Name = 'MES' + DataType = datString + Size = 30 + end + item + Name = 'ANO' + DataType = datInteger + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'INICIO' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'FINAL' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'IMPORTE' + DataType = datFloat + Alignment = taRightJustify + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 96 + end +end diff --git a/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas b/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas new file mode 100644 index 0000000..3d8fe32 --- /dev/null +++ b/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas @@ -0,0 +1,135 @@ +unit srvVentasEnProceso_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDABusinessProcessor, + uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvVentasEnProceso } + TsrvVentasEnProceso = class(TDARemoteService, IsrvVentasEnProceso) + DABINAdapter: TDABINAdapter; + schVentasEnProceso: TDASchema; + private + protected + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, uSchemaUtilsServer; + +const + CAMPOS_SUMA = '#INICIO#FINAL#IMPORTE#'; + +procedure Create_srvVentasEnProceso(out anInstance : IUnknown); +begin + anInstance := TsrvVentasEnProceso.Create(NIL); +end; + +{ TsrvVentasEnProceso } + +function TsrvVentasEnProceso.GetData(const DatasetName: String; + const Columns: String; const Params: String; + const MaxRecords: Integer): Binary; +var + ds : IDADataset; + i : integer; + pars: TStringList; + parnames: array of string; + parvalues: array of Variant; +begin + pars := TStringList.Create; + result := Binary.Create; + try + try + pars.Text := Params; + SetLength(parnames, pars.Count); + SetLength(parvalues, pars.Count); + for i := 0 to (pars.Count-1) do begin + parnames[i] := pars.Names[i]; + parvalues[i] := pars.Values[pars.Names[i]]; + end; + + { Prepares the parameter arrays} + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + // Fills the parameters (if any are specified) + if (Length(parnames) > 0) then + begin + for i := 0 to (Length(parnames) - 1) do + ds.ParamByName(parnames[i]).Value := parvalues[i]; + end; + + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; + finally + FreeANDNil(pars); + end; +end; + + +function TsrvVentasEnProceso.GetSchema(const DatasetName, + Columns: String): Binary; +var + ds : IDADataset; +begin + result := Binary.Create; + try + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + ServiceAdapter.WriteDataset(result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +initialization + TROClassFactory.Create('srvVentasEnProceso', Create_srvVentasEnProceso, TsrvVentasEnProceso_Invoker); + +finalization + +end. diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj new file mode 100644 index 0000000..92783e2 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + VentasTerminadas.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg new file mode 100644 index 0000000..396e927 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof new file mode 100644 index 0000000..67fc858 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof @@ -0,0 +1,474 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=2 +Item0=..\..\..\..\Output\Cliente +Item1=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk new file mode 100644 index 0000000..c9847eb --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk @@ -0,0 +1,84 @@ +package VentasTerminadas; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + BaseD10, + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + dbrtl, + dsnap, + adortl, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + ControlesBaseD10; + +contains + uPluginControllerVentasTerminadas in 'uPluginControllerVentasTerminadas.pas' {ModuleVentasTerminadas: TModuleController}, + uDataModuleVentasTerminadas in 'uDataModuleVentasTerminadas.pas' {dmVentasTerminadas: TDAClientDataModule}, + uBizVentasTerminadas in '..\Reglas\uBizVentasTerminadas.pas', + uBizControlVentasTerminadas in '..\Reglas\uBizControlVentasTerminadas.pas', + uEditorControlesVentasTerminadas in 'uEditorControlesVentasTerminadas.pas' {fEditorControlesVentasTerminadas: TCustomEditor}, + uViewControlesVentasTerminadas in 'uViewControlesVentasTerminadas.pas' {frViewControlesVentasTerminadas: TCustomView}, + uViewControlVentasTerminadas in 'uViewControlVentasTerminadas.pas' {frViewControlVentasTerminadas: TCustomView}, + uEditorControlVentasTerminadas in 'uEditorControlVentasTerminadas.pas' {fEditorControlVentasTerminadas: TCustomEditor}, + uViewControGridlVentasTerminadas in 'uViewControGridlVentasTerminadas.pas' {frViewControlGridVentasTerminadas: TCustomView}, + uViewControGridResumenVentas in 'uViewControGridResumenVentas.pas' {frViewControlGridResumenVentas: TCustomView}, + uEditorControlResumenVentas in 'uEditorControlResumenVentas.pas' {fEditorControlResumenVentas: TCustomEditor}, + schVentasTerminadasClient_Intf in '..\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Reglas\schVentasTerminadasServer_Intf.pas'; + +end. diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2c7033327ee07e471365e4f3aa36262c0850bd19 GIT binary patch literal 2168 zcmd6oO-{ow5JtlRxI<3B0a!Lgh()EUfvhYcD;~li*Mny4R^k%u_!Hcfq>T!)D$FX0 zm)6L7df&|WG|RHjlj2;>sSay!UUKbBUV``N8c{bAG$W}6N^bfR5;Y^XyE-2XQodw* zfZB_yG=tTuq`)<(1({&m>Z*NL%Qf&CoiF&b8OOuM|=$NBqfudb3k$Q>5QF?GM8M literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm b/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm new file mode 100644 index 0000000..76a3061 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm @@ -0,0 +1,204 @@ +inherited frViewControlGridVentasTerminadasCrossTab: TfrViewControlGridVentasTerminadasCrossTab + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0,0 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + Preview.AutoHeight = False + end + end + inherited dsDataSource: TDADataSource + OnStateChange = dsDataSourceStateChange + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.Orientation = poLandscape + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 38952.779695636570000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsView.Caption = False + OptionsView.FilterBar = False + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleDia: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInactiveCaptionText + TextColor = clHighlightText + end + object cxStyleTotal: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleImporte: TcxStyle + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.UseThousandSeparator = True + end + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm new file mode 100644 index 0000000..700e83c --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm @@ -0,0 +1,576 @@ +object dmVentasTerminadas: TdmVentasTerminadas + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 363 + Width = 600 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvVentasTerminadas' + Left = 48 + Top = 20 + end + object tbl_VentasTerminadas2: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'FECHAINI' + DataType = datString + Value = '2006/01/01' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + DataType = datString + Value = '2006/12/12' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas2 + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadas' + IndexDefs = <> + Left = 464 + Top = 72 + end + object tbl_VentasTerminadasCrossTab: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'fechaini' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'fechafin' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'coleccion' + DataType = datString + Value = '%' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapterCrossTab + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadasCrossTab' + IndexDefs = <> + Left = 216 + Top = 224 + end + object ds_VentasTerminadasCrossTab: TDADataSource + DataSet = tbl_VentasTerminadasCrossTab.Dataset + DataTable = tbl_VentasTerminadasCrossTab + Left = 216 + Top = 288 + end + object DARemoteDataAdapterCrossTab: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaCrossTab' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'FechaIni' + DataType = rtString + Flag = fIn + Value = '01/01/2007' + end + item + Name = 'FechaFin' + DataType = rtString + Flag = fIn + Value = '31/01/2007' + end + item + Name = 'Coleccion' + DataType = rtString + Flag = fIn + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDataCrossTab' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'FechaIni' + DataType = rtString + Flag = fIn + Value = '01/01/2007' + end + item + Name = 'FechaFin' + DataType = rtString + Flag = fIn + Value = '31/01/2007' + end + item + Name = 'Coleccion' + DataType = rtString + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + Left = 216 + Top = 168 + end + object DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchema' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 464 + Top = 16 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 48 + Top = 96 + end + object DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = True + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'aTableNameArray' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 216 + Top = 16 + end + object tbl_VentasTerminadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datDecimal + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'DIA' + DataType = datInteger + DisplayLabel = 'D'#237'a' + end + item + Name = 'DIASEMANA' + DataType = datWideString + Size = 30 + DisplayLabel = 'D'#237'a de la semana' + end + item + Name = 'MES' + DataType = datWideString + Size = 30 + DisplayLabel = 'Mes' + end + item + Name = 'ANO' + DataType = datInteger + DisplayLabel = 'A'#241'o' + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + DisplayLabel = 'Centro' + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + DisplayLabel = 'Vendedor' + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo producto' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'Producto' + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Grupo' + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo' + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + DisplayLabel = 'Colecci'#243'n' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + DisplayLabel = 'Talla' + Alignment = taRightJustify + end + item + Name = 'TALLA38' + DataType = datDecimal + DisplayLabel = '38' + Alignment = taRightJustify + end + item + Name = 'TALLA40' + DataType = datDecimal + DisplayLabel = '40' + Alignment = taRightJustify + end + item + Name = 'TALLA42' + DataType = datDecimal + DisplayLabel = '42' + Alignment = taRightJustify + end + item + Name = 'TALLA44' + DataType = datDecimal + DisplayLabel = '44' + Alignment = taRightJustify + end + item + Name = 'TALLA46' + DataType = datDecimal + DisplayLabel = '46' + Alignment = taRightJustify + end + item + Name = 'TALLA48' + DataType = datDecimal + DisplayLabel = '48' + Alignment = taRightJustify + end + item + Name = 'VTATERMDEV' + DataType = datDecimal + DisplayLabel = 'Vta.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VTAFINALRESC' + DataType = datDecimal + DisplayLabel = 'Vta.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VENTAS' + DataType = datDecimal + DisplayLabel = 'Ventas' + Alignment = taRightJustify + end + item + Name = 'DEVOLUCIONES' + DataType = datDecimal + DisplayLabel = 'Devoluciones' + Alignment = taRightJustify + end + item + Name = 'TOTAL' + DataType = datDecimal + DisplayLabel = 'Total ventas' + Alignment = taRightJustify + end + item + Name = 'VALTERMDEV' + DataType = datDecimal + DisplayLabel = 'Val.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VALFINALRESC' + DataType = datDecimal + DisplayLabel = 'Val.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VALVEN' + DataType = datDecimal + DisplayLabel = 'Imp. ventas' + Alignment = taRightJustify + end + item + Name = 'VALDEV' + DataType = datDecimal + DisplayLabel = 'Imp. devoluciones' + Alignment = taRightJustify + end + item + Name = 'VALTOT' + DataType = datDecimal + DisplayLabel = 'Imp. Total' + Alignment = taRightJustify + end> + Params = < + item + Name = 'FECHAINI' + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadas' + IndexDefs = <> + Left = 216 + Top = 72 + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas new file mode 100644 index 0000000..57a300c --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas @@ -0,0 +1,127 @@ +unit uDataModuleVentasTerminadas; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + uBizVentasTerminadas, uBizControlVentasTerminadas, uDARemoteDataAdapter, + uDAInterfaces, uDAMemDataTable, uDADataStreamer; + +const + CATEGORIA_VENTA_TERMINADA = 'VENTATERMINADA'; + +type + TdmVentasTerminadas = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_VentasTerminadas2: TDACDSDataTable; + tbl_VentasTerminadasCrossTab: TDACDSDataTable; + ds_VentasTerminadasCrossTab: TDADataSource; + DARemoteDataAdapterCrossTab: TDARemoteDataAdapter; + DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter; + tbl_VentasTerminadas: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function GetItems : IBizVentasTerminadas; + public + function GetNameColumns: String; + function GetControl: IBizControlVentasTerminadas; + function GetItemsCrossTab : IBizResumenVentas; + end; + +var + dmVentasTerminadas: TdmVentasTerminadas; + +implementation + +{$R *.DFM} + +uses + Controls, Forms, DataAbstract3_Intf, uDataTableUtils, + uROTypes, uEditorPreview, Dialogs, uDataModuleControles, + uDataModuleBase, uDBSelectionList, schVentasTerminadasClient_Intf, cxControls; + + +procedure TdmVentasTerminadas.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmVentasTerminadas.GetControl: IBizControlVentasTerminadas; +var + aDataTable : TDACDSDataTable; +begin + aDataTable := dmControles.GetItems(CATEGORIA_VENTA_TERMINADA); + aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASTERMINADAS; + + (aDataTable as IBizControlVentasTerminadas).Items := GetItems; + Result := (aDataTable as IBizControlVentasTerminadas); +end; + +function TdmVentasTerminadas.GetItems: IBizVentasTerminadas; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasTerminadas2, dtVentas); + dtVentas.Fields.AssignFieldCollection(tbl_VentasTerminadas.Fields); + dtVentas.BusinessRulesID := BIZ_VENTASTERMINADAS; + + dtVentas.FieldByName(fld_VentasTerminadasNUMINF).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE1).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE2).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE3).Visible := False; + + dtVentas.LoadSchema; + Result := (dtVentas as IBizVentasTerminadas); + finally + HideHourglassCursor; + end; +end; + + +function TdmVentasTerminadas.GetItemsCrossTab: IBizResumenVentas; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasTerminadasCrossTab, dtVentas); + dtVentas.BusinessRulesID := BIZ_RESUMENVENTAS; + Result := (dtVentas as IBizResumenVentas); + finally + HideHourglassCursor; + end; +end; + +function TdmVentasTerminadas.GetNameColumns: String; +var + AList : TStringList; + i : integer; +begin + AList := TStringList.Create; + try + for i := 0 to tbl_VentasTerminadas.FieldCount - 1 do + if tbl_VentasTerminadas.Fields[i].Visible then + AList.Add(tbl_VentasTerminadas.Fields[i].Name); + Result := AList.CommaText; + finally + FreeAndNil(AList); + end; +end; + +initialization + dmVentasTerminadas := TdmVentasTerminadas.Create(nil); + +finalization + FreeAndNil(dmVentasTerminadas); + +end. + diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm new file mode 100644 index 0000000..2812d8b --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm @@ -0,0 +1,1700 @@ +inherited fEditorControlResumenVentas: TfEditorControlResumenVentas + Left = 419 + Top = 239 + Caption = 'Resumen de ventas' + ClientHeight = 573 + ClientWidth = 679 + ExplicitWidth = 687 + ExplicitHeight = 607 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + ExplicitWidth = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + ExplicitLeft = 652 + end + end + inherited TBXDock: TTBXDock + Width = 679 + ExplicitWidth = 679 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 469 + object TBXLabelItem2: TTBXLabelItem [0] + Caption = ' Mes:' + end + object edtMes: TTBXComboBoxItem [1] + Caption = 'Mes:' + EditWidth = 110 + DropDownList = True + MaxVisibleItems = 12 + MinListWidth = 100 + Strings.Strings = ( + 'Enero' + 'Febrero' + 'Marzo' + 'Abril' + 'Mayo' + 'Junio' + 'Julio' + 'Agosto' + 'Septiembre' + 'Octubre' + 'Noviembre' + 'Diciembre') + end + object TBXLabelItem3: TTBXLabelItem [2] + Caption = ' A'#241'o:' + end + object edtAno: TTBXSpinEditItem [3] + Caption = 'A'#241'o:' + SpaceAfterPrefix = False + SpaceBeforePostfix = False + end + object TBXLabelItem4: TTBXLabelItem [4] + Caption = ' Colecci'#243'n:' + end + object edtColeccion: TTBXEditItem [5] + Caption = 'Colecci'#243'n:' + ExtendedAccept = True + end + object TBXSeparatorItem19: TTBXSeparatorItem [6] + Blank = True + end + inherited TBXItem6: TTBXItem [7] + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem18: TTBXSeparatorItem [8] + end + inherited TBXItem2: TTBXItem [9] + end + inherited TBXSeparatorItem1: TTBXSeparatorItem [10] + end + inherited TBXItem29: TTBXItem [11] + end + inherited TBXItem27: TTBXItem [12] + end + inherited TBXItem5: TTBXItem [13] + end + inherited TBXItem4: TTBXItem [14] + end + inherited TBXSeparatorItem14: TTBXSeparatorItem [15] + end + inherited TBXItem33: TTBXItem [16] + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem [17] + end + inherited TBXItem23: TTBXItem [18] + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [19] + end + inherited TBXItem24: TTBXItem [20] + end + inherited TBXItem3: TTBXItem [21] + end + object TBXSeparatorItem16: TTBXSeparatorItem [22] + end + object tbxiExpandir: TTBXItem [23] + Action = actExpandir + end + object tbxiContraer: TTBXItem [24] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [25] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + inherited TBXSeparatorItem10: TTBXSeparatorItem [26] + end + inherited TBXItem26: TTBXItem [27] + end + inherited TBXItem25: TTBXItem [28] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 679 + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 469 + Visible = False + ExplicitLeft = 469 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + ExplicitTop = 554 + ExplicitWidth = 679 + end + inline frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas [3] + Left = 0 + Top = 76 + Width = 679 + Height = 284 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 679 + ExplicitHeight = 478 + inherited cxGrid: TcxGrid + Width = 679 + Height = 284 + ExplicitWidth = 679 + ExplicitHeight = 478 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38952.790681423610000000 + BuiltInReportLink = True + end + end + end + object DBGrid1: TDBGrid [4] + Left = 0 + Top = 360 + Width = 679 + Height = 194 + Align = alBottom + DataSource = dsDataTable + TabOrder = 4 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actRefrescar: TAction + Caption = 'Ir' + ImageIndex = 16 + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + Visible = False + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + Visible = False + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas new file mode 100644 index 0000000..0abc4e6 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas @@ -0,0 +1,156 @@ +unit uEditorControlResumenVentas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, + uViewControlVentasTerminadas, uEditorGridBase, uViewGridBase, uViewGrid, + uViewControGridResumenVentas, Menus, TB2ExtItems, TBXExtItems, + uBizVentasTerminadas, StdCtrls, uDAInterfaces; + +type + IEditorControlResumenVentas = interface(IEditorGridBase) + ['{FC3218D5-319A-4ECF-88E9-0CB8655EDFA9}'] + function GetItems: IBizResumenVentas; + procedure SetItems(const Value: IBizResumenVentas); + property Items: IBizResumenVentas read GetItems write SetItems; + end; + + TfEditorControlResumenVentas = class(TfEditorGridBase, IEditorControlResumenVentas) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + edtMes: TTBXComboBoxItem; + edtAno: TTBXSpinEditItem; + frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas; + TBXLabelItem2: TTBXLabelItem; + TBXLabelItem3: TTBXLabelItem; + TBXSeparatorItem18: TTBXSeparatorItem; + edtColeccion: TTBXEditItem; + TBXLabelItem4: TTBXLabelItem; + TBXSeparatorItem19: TTBXSeparatorItem; + DBGrid1: TDBGrid; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + protected + FItems : IBizResumenVentas; + function GetItems: IBizResumenVentas; + procedure SetItems(const Value: IBizResumenVentas); + public + property Items: IBizResumenVentas read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uROClasses, cxGridTableView, uCustomEditor, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlVentasTerminadas } + +procedure TfEditorControlResumenVentas.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlGridResumenVentas1.AjustarAncho; +end; + +procedure TfEditorControlResumenVentas.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + //Inicializar + edtMes.ItemIndex := (MonthOf(Today)-1); + edtAno.Value := YearOf(Today); +end; + +procedure TfEditorControlResumenVentas.actImprimirExecute(Sender: TObject); +begin + inherited; + frViewControlGridResumenVentas1.Print(edtMes.Text, edtAno.Text); +end; + +constructor TfEditorControlResumenVentas.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewControlGridResumenVentas1; + Self.Caption := 'Resumen de ventas mensuales por centro'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +function TfEditorControlResumenVentas.GetItems: IBizResumenVentas; +begin + Result := FItems; +end; + +procedure TfEditorControlResumenVentas.SetItems( + const Value: IBizResumenVentas); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewControlGridResumenVentas1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorControlResumenVentas.actRefrescarExecute(Sender: TObject); +var + AuxDate: TDateTime; + UltimoDia: Integer; + i : Integer; + +begin + AuxDate := EncodeDate(edtAno.AsInteger , (edtMes.ItemIndex + 1), 1); + + ShowHourglassCursor; + try + with FItems do + begin + if DataTable.Active then + DataTable.Active := False; + + DataTable.ParamByName('FECHAINI').AsString := DateToStr(StartOfTheMonth(AuxDate)); + DataTable.ParamByName('FECHAFIN').AsString := DateToStr(EndOfTheMonth(AuxDate)); + DataTable.ParamByName('COLECCION').AsString := edtColeccion.Text; + + if not DataTable.Active then + DataTable.Active := True; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorControlResumenVentas.actPrevisualizarExecute(Sender: TObject); +begin + frViewControlGridResumenVentas1.Preview(edtMes.Text, edtAno.Text); +end; + +end. + diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm new file mode 100644 index 0000000..f500fce --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm @@ -0,0 +1,1776 @@ +inherited fEditorControlVentasTerminadas: TfEditorControlVentasTerminadas + Left = 531 + Top = 329 + Caption = 'fEditorControlVentasTerminadas' + ClientHeight = 573 + ClientWidth = 679 + OnCreate = CustomEditorCreate + OnGetModified = CustomEditorGetModified + ExplicitWidth = 687 + ExplicitHeight = 607 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + ExplicitWidth = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + ExplicitLeft = 652 + end + end + inherited TBXDock: TTBXDock + Width = 679 + ExplicitWidth = 679 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 679 + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 679 + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + ExplicitTop = 554 + ExplicitWidth = 679 + end + inline frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 679 + ExplicitHeight = 478 + inherited TBXMultiDock1: TTBXMultiDock + Width = 234 + Height = 478 + ExplicitWidth = 234 + ExplicitHeight = 478 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 230 + SplitHeight = 258 + ExplicitWidth = 234 + ExplicitHeight = 258 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 230 + ExplicitWidth = 230 + inherited TBXLink1: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited TBXLink5: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited TBXLink2: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + end + inherited pcParametros: TPageControl + Width = 230 + Height = 138 + ExplicitWidth = 230 + ExplicitHeight = 138 + inherited TabSheet5: TTabSheet + ExplicitHeight = 0 + inherited frViewPeriodoFechas1: TfrViewPeriodoFechas + Height = 0 + ExplicitHeight = 0 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited cbPeriodo: TcxComboBox + ExplicitWidth = 125 + Width = 125 + end + end + end + end + inherited tsColumnas: TTabSheet + ExplicitHeight = 0 + inherited frViewColumnas1: TfrViewColumnas + Height = 0 + ExplicitHeight = 0 + inherited lbColumnas: TcxCheckListBox + Height = 0 + ExplicitHeight = 0 + end + end + end + inherited tsAgrupacion: TTabSheet + ExplicitWidth = 222 + ExplicitHeight = 128 + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 222 + Height = 128 + ExplicitWidth = 222 + ExplicitHeight = 128 + inherited TBXLabel1: TTBXLabel + Width = 222 + ExplicitWidth = 222 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 222 + ExplicitWidth = 222 + inherited TBXButton1: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + inherited TBXButton3: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + inherited TBXButton2: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 206 + Width = 230 + ExplicitTop = 206 + ExplicitWidth = 230 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 258 + DockedWidth = 230 + DockPos = 258 + SplitHeight = 204 + ExplicitTop = 258 + ExplicitWidth = 234 + ExplicitHeight = 204 + inherited TBXPageScroller1: TTBXPageScroller + Width = 230 + Height = 182 + ExplicitWidth = 230 + ExplicitHeight = 182 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 230 + ExplicitWidth = 230 + inherited bFiltros: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited bSumarios: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + end + inherited pcTareas: TPageControl + Width = 230 + Height = 134 + ExplicitWidth = 230 + ExplicitHeight = 134 + inherited tsSumarios: TTabSheet + ExplicitHeight = 48 + inherited frViewSumarios1: TfrViewSumarios + Height = 48 + ExplicitHeight = 48 + inherited vgSumarios: TcxVerticalGrid + Height = 19 + ExplicitHeight = 19 + end + end + end + inherited tsFiltros: TTabSheet + ExplicitWidth = 222 + ExplicitHeight = 124 + inherited frViewFiltros1: TfrViewFiltros + Width = 222 + Height = 124 + ExplicitWidth = 222 + ExplicitHeight = 124 + inherited TBXLabel1: TTBXLabel + Width = 222 + ExplicitWidth = 222 + end + inherited cxFilterControl1: TcxFilterControl + Width = 222 + Height = 65 + ExplicitWidth = 222 + ExplicitHeight = 65 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 94 + Width = 222 + ExplicitTop = 94 + ExplicitWidth = 222 + end + inherited cxStyleRepository1: TcxStyleRepository + Top = 72 + end + end + end + end + end + end + end + inherited frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas + Left = 234 + Width = 445 + Height = 478 + ExplicitLeft = 234 + ExplicitWidth = 445 + ExplicitHeight = 478 + inherited cxGrid: TcxGrid + Width = 445 + Height = 478 + ExplicitWidth = 445 + ExplicitHeight = 478 + inherited cxGridView: TcxGridDBTableView + DataController.DataSource = dsVentasTerminadas + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + end + inherited EditorActionList: TActionList [4] + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas new file mode 100644 index 0000000..cfb7138 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas @@ -0,0 +1,241 @@ +unit uEditorControlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, uViewControlVentasTerminadas, + Grids, DBGrids, pngimage, uDAInterfaces; + +type + IEditorControlVentasTerminadas = interface(IEditorControlBase) + ['{721FAE24-2440-44FA-B681-6E3C2BD656FE}'] + end; + + TfEditorControlVentasTerminadas = class(TfEditorControlBase, IEditorControlVentasTerminadas) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas; + procedure actRefrescarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure CustomEditorCreate(Sender: TObject); + procedure CustomEditorGetModified(Sender: TObject; + var Modified: Boolean); + procedure actGuardarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure frViewControlVentasTerminadas1bRefrescarClick( + Sender: TObject); + private + procedure RestaurarConfiguracion; + procedure GuardarConfiguracion; + protected + FModificado : Boolean; + procedure OnViewControlChanged(Sender: TObject); + procedure SetControl(const Value: IBizControlBase); override; + procedure RellenarCabeceraInforme; override; + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + uEditorUtils, uBizControlVentasTerminadas, uROClasses, + cxGridTableView, uCustomEditor; + +{$R *.dfm} + +function ShowEditorVentasTerminadas (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: IEditorControlVentasTerminadas; +begin + AEditor := TfEditorControlVentasTerminadas.Create(Application); + try + AEditor.Control := (ABizObject as IBizControlVentasTerminadas); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorControlVentasTerminadas } + +procedure TfEditorControlVentasTerminadas.SetControl( + const Value: IBizControlBase); +begin + inherited; + RefrescarTituloEditor; + if Assigned(FControl) then + begin + frViewControlVentasTerminadas1.OnViewChanged := OnViewControlChanged; + with (FControl as IBizControlVentasTerminadas) do + begin + Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' + dsVentasTerminadas.DataTable := Items.DataTable; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.DataSource := dsVentasTerminadas; + end; + end; +end; + +procedure TfEditorControlVentasTerminadas.actRefrescarExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.Refresh; + while (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord.Expand(True); + if (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecordIndex < + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.RowCount - 1) then + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.GoToNext(False, True) + else + Exit; + end; +end; + +procedure TfEditorControlVentasTerminadas.actExpandirExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ExpandirTodo; +end; + +procedure TfEditorControlVentasTerminadas.actContraerExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ContraerTodo; +end; + +procedure TfEditorControlVentasTerminadas.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.AjustarAncho; +end; + +procedure TfEditorControlVentasTerminadas.OnViewControlChanged( + Sender: TObject); +begin + if FControl.EsModificable then + FModificado := True; +end; + +procedure TfEditorControlVentasTerminadas.CustomEditorCreate(Sender: TObject); +begin + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentasTerminadas.CustomEditorGetModified( + Sender: TObject; var Modified: Boolean); +begin + inherited; + Modified := FModificado; +end; + +procedure TfEditorControlVentasTerminadas.actGuardarExecute(Sender: TObject); +begin + if FModificado then + GuardarConfiguracion; + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentasTerminadas.GuardarConfiguracion; +var + Aux : IROStrings; +begin + Aux := NewROStrings(); + Aux.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties); + if not (FControl.DataTable.State in dsEditModes) then + FControl.Edit; + FControl.VISTA := Aux; +end; + +procedure TfEditorControlVentasTerminadas.RestaurarConfiguracion; +begin + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties := FControl.VISTA.Text; +end; + +procedure TfEditorControlVentasTerminadas.FormShow(Sender: TObject); +begin + inherited; + if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando + RestaurarConfiguracion; + frViewControlVentasTerminadas1.frViewColumnas1.Refresh; + frViewControlVentasTerminadas1.frViewAgrupaciones1.Refresh; +end; + +procedure TfEditorControlVentasTerminadas.actPrevisualizarExecute( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Preview; +end; + +procedure TfEditorControlVentasTerminadas.actImprimirExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Print; +end; + +procedure TfEditorControlVentasTerminadas.actConfPaginaExecute( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.PrintSetup; +end; + +procedure TfEditorControlVentasTerminadas.frViewControlVentasTerminadas1bRefrescarClick( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.actRefrescarExecute(Sender); +end; + +constructor TfEditorControlVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlVentasTerminadas1; + Self.Caption := 'Nueva consulta de ventas terminadas'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +procedure TfEditorControlVentasTerminadas.RellenarCabeceraInforme; +begin + inherited; + with frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do + begin + LeftTitle.Clear; + LeftTitle.Add(FControl.NOMBRE); + + RightTitle.Clear; + RightTitle.Add(DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaIni.Date) + + ' - ' + DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaFin.Date)); + RightTitle.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.Filter.FilterText); + end; +end; + +initialization + RegisterEditor(IBizControlVentasTerminadas, ShowEditorVentasTerminadas, etItem); + +end. + diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm new file mode 100644 index 0000000..72533a3 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm @@ -0,0 +1,176 @@ +inherited fEditorControlesVentasTerminadas: TfEditorControlesVentasTerminadas + Left = 470 + Top = 325 + ActiveControl = frViewControlesVentasTerminadas1.EasyListview + Caption = 'fEditorControlesVentasTerminadas' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Control de ventas terminadas' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inline frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas [3] + Left = 0 + Top = 76 + Width = 652 + Height = 365 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 652 + ExplicitHeight = 365 + inherited EasyListview: TEasyListview + Width = 652 + Height = 365 + Groups.Items = { + 0400000002000000FFFECE000400000000000400000000000000010000000E00 + 0000730064006600730020006100640066002000610073006400660020000000 + 00000000000000000000FFFECE00040000000000040000000000000001000000 + 1300000020007300640066006100730064002000200061007300200074003400 + 74002000740034003300000000000000000000000000} + Header.Columns.Items = { + 0400000004000000FFFECE000400000000110001000001010000000000013200 + 00000100000005000000490063006F006E006F00000000000000000000000000 + FFFECE0004000000001100010000010000000000000132000000010000000600 + 00004E006F006D00620072006500000000000000000000000000FFFECE000400 + 0000001100010000010200000000000132000000010000000B00000044006500 + 7300630072006900700063006900F3006E00000000000000000000000000FFFE + CE00040000000011000100000103000000010001320000000100000005000000 + 4F007200640065006E00000000000000000000000000} + ExplicitWidth = 652 + ExplicitHeight = 365 + end + end + inherited EditorActionList: TActionList [4] + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited ViewPopupMenu: TPopupMenu [10] + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas new file mode 100644 index 0000000..c4ffdd2 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas @@ -0,0 +1,43 @@ +unit uEditorControlesVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, + uViewBase, uViewControlesBase, Menus, DB, EasyListview, + uDADataTable, uViewControlesVentasTerminadas, uDAInterfaces; + +type + IEditorControlesVentasTerminadas = interface(IEditorControlesBase) + ['{6FF8D6DA-A997-40E9-8482-B0E4A77ECCC6}'] + end; + + TfEditorControlesVentasTerminadas = class(TfEditorControlesBase, IEditorControlesVentasTerminadas) + frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas; + private + { Private declarations } + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +{$R *.dfm} + +uses + uEditorBase; + +{ TfEditorControlesVentasTerminadas } + +constructor TfEditorControlesVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlesVentasTerminadas1; +end; + +end. diff --git a/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm new file mode 100644 index 0000000..bceea99 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm @@ -0,0 +1,329 @@ +object ModuleVentasTerminadas: TModuleVentasTerminadas + OldCreateOrder = True + Description = 'Control de ventas terminadas' + ModuleMenu = MainMenu + ModuleName = 'Control de ventas terminadas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.5' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002944944415478DAD5955F4853511C + C7BFD7CD9C9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D58 + 2441B587820A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C + 9B685A5EEFEEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB + 85C361A4D3B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C + 4A8AC2221B13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C5 + 79518CCCA91388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED5 + 92808E32AF06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B + 6B19E48C7C3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E0 + 98FB3026B2C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583D + E0DB09683730573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF9 + 1E44014E02682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF + 814FF2A1E45B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB + 30BE711CD6FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D + 7847164A227BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6 + B9F2F30CA2B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED11497 + 41F46C139F5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF3 + 8720B23877A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C924 + 2B6A23A39FE201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B81 + 83CD4BDF45B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB4 + 31DBA95582F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F + 00A95ADA013F01A44422D9EF203E7B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001924944415478DA + 63FCFFFF3F032D01235D2C58BEED344D6C89F43265845B00E49065C8DF7FFF18 + FEFEFD0FA5A1F8DF7F0697F01286733BA661B7807126234390A62656033FFFFA + C5F0F9E74F862F40FA0B12FB4DD457B8E1CB361D6298B774137E0B48051FA2BE + 810DFF03B464D5D623F82D4089A444DC967D9BF10B2558FE40D96B771C23DE02 + 74F0E9F727866F7FBE81B118B33486E1A0B8D8B0EB04760BF0B99658F0A0F52D + C3E6BDA7705BF07F3E24C55E5C69C8A01F7E1E838D0CD0C541FAEF34BE66D87E + F00C6E0B12320CC08A0B1E30304C5060C060230374F105332E30DCAC7BC5B0EB + C859DAF9E05AF50B86BDC7CFD3CE07972A9F311C3C7991763E385FF684E1C899 + CBB4F3C199E2470CC7CF5FA59D0F8EE7DF673873F906A605119E260C4C494C14 + FBE070EE5D860B576F615A10EC6AC4C09EC642B10F0E64DD66B87CE30EA60501 + CE060C5C196C14FB607FE66D862B37B158E0EBA0C7C09BCDC14029C0698197AD + 0E46A105A2FF812B13247120FEF30F938D5CF362B5C0DD5A1B5C51500B6058D0 + 3D693ED50C8701B805B40400A09529EFB6636A250000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actVentas: TAction + Category = 'Ventas' + Caption = 'Control de ventas terminadas' + ImageIndex = 0 + OnExecute = actVentasExecute + end + object actResumenVentas: TAction + Category = 'Ventas' + Caption = 'Resumen de ventas mensuales' + ImageIndex = 1 + OnExecute = actResumenVentasExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actVentasExecute + object Ventas1: TMenuItem + Tag = 100 + Action = actVentas + end + object N1: TMenuItem + Tag = 9998 + Caption = '-' + end + object Resumenventasmensual1: TMenuItem + Tag = 9999 + Action = actResumenVentas + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001624944415478DA63FCFFFF3F0325 + 8071D99653649B10E96DCA083640DD9B9961F2C964AC8A7EFFFDCBF0FDCF1F86 + 6FBF7F337CFCF103CC9EEBBF9521C5630EC3B91DD310068000CC90B966E7300C + B2D92607D70C02280650250CC8F5068A01A47883F9CE5306868A8908037689A4 + C115C234339F6282085C6560F89BF80FCCD45C2BCAB06A8D0103F3EF7F0C715F + 358830E02A440C66C0B51067306DE675984163752A032328212DDF7AFA3FB201 + 20BF2EB7BE8CE10564CD20AF18AECF4418000B4490E6EF40FC0D8A6181B776B9 + 1E8AE6B3E96721810833A07BF27CB84D13845F30F07F7BC7D0CBACC970E50B23 + C302BE3B0CBF7FFE6428F9ABCDF0F10F5A3462CB0B3792430EFE7EF55C87918D + 5D88555621EAD7DD9B539878F818B4976F17C64807B832D39560A7FFFF7FFD7C + C7C8C2CAC7C0C4C4A2B3761F23D68484CB80DB75C56C3FCE9F780E62B3286B85 + 6A4E98BD8F240320AE70FEC72CABE4824B33080000E911EEC1FB93056C000000 + 0049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001334944415478DA + 63FCFFFF3F0325801164C0F26DA7C936056E40A49729511A7EFFF9CBF0FBF75F + 30ED185A8CDD00C64446AC9A7FCCFC0DD7BC74D32186794B3711E7827FFFFE01 + 35FD836B06E155DB8E621A80CB6674F0A4E33DC3FA5D27B01BF07FFE7F868B2B + 0D19F4C3CF836DBEBCDA9841D9E704DC66F1123E86FB2D6F19B6EC3B85DD8084 + 0C038682070C0C131420B621B34160C18C0B0CB71A5E31EC3C7416BF0B34024F + 83FD7C778B0583A4CB21A80BFE3128D608335CAE7CC670E0E445F25D70AEF431 + C3D1B357B01BF075DA4F86DB9BCC19A4DD8E806D7DB5CF9E81D76A373C1674DB + A5184E163E603875F13AAA01216E460C6CA92C44C5C291DCBB0CE7AFDE4235C0 + DF511FEE4F5888FF81F191E21FA6E6CACD3BA80678D9EA302CDE7090A47C8062 + 40F7A4F9246986277B4AB333009B9C2E9EBC2508450000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas new file mode 100644 index 0000000..c581256 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas @@ -0,0 +1,96 @@ +unit uPluginControllerVentasTerminadas; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCVentasTerminadas = interface(IInterface) + ['{D7C41472-C5C7-43C1-849F-2056CC98D9B1}'] + end; + + TModuleVentasTerminadas = class(TModuleController, IMCVentasTerminadas) + actVentas: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Ventas1: TMenuItem; + SmallImages: TPngImageList; + actResumenVentas: TAction; + Resumenventasmensual1: TMenuItem; + N1: TMenuItem; + procedure actVentasExecute(Sender: TObject); + procedure actResumenVentasExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasTerminadas, + uEditorControlesVentasTerminadas, uEditorControlResumenVentas, + uBizControlVentasTerminadas, uBizVentasTerminadas, uEditorControlesBase; + +function GetModule : TModuleController; +begin + Result := TModuleVentasTerminadas.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleVentasTerminadas.actVentasExecute(Sender: TObject); +var + aControl: IBizControlVentasTerminadas; + aObj: IEditorControlesVentasTerminadas; +begin + aControl := dmVentasTerminadas.GetControl; + aObj := TfEditorControlesVentasTerminadas.Create(Application); + try + with aObj do + begin + Control := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleVentasTerminadas.actResumenVentasExecute(Sender: TObject); +var + aControl: IBizResumenVentas; + aObj: IEditorControlResumenVentas; +begin + aControl := dmVentasTerminadas.GetItemsCrossTab; + aObj := TfEditorControlResumenVentas.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleVentasTerminadas); + +finalization + UnRegisterModuleClass(TModuleVentasTerminadas); + +end. diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm new file mode 100644 index 0000000..e92c347 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm @@ -0,0 +1,211 @@ +inherited frViewControlGridResumenVentas: TfrViewControlGridResumenVentas + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0,0 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + Preview.AutoHeight = False + end + end + inherited dsDataSource: TDADataSource + OnStateChange = dsDataSourceStateChange + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.Orientation = poLandscape + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39329.694692372690000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsView.Caption = False + OptionsView.FilterBar = False + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleDia: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = cl3DLight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + TextColor = clWindowText + end + object cxStyleTotal: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleImporte: TcxStyle + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas new file mode 100644 index 0000000..adcd752 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas @@ -0,0 +1,144 @@ +unit uViewControGridResumenVentas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDAInterfaces; + +type + IViewControlGridResumenVentas = interface(IViewGrid) + ['{E6D7FF0F-7E64-4E8C-8844-CAC011A62CDE}'] + end; + + TfrViewControlGridResumenVentas = class(TfrViewGrid, IViewControlGridResumenVentas) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxStyleDia: TcxStyle; + cxStyleTotal: TcxStyle; + cxStyleImporte: TcxStyle; + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure dsDataSourceStateChange(Sender: TObject); + private + procedure LimpiarGrid; + procedure GenerarGrid; + public + procedure Preview(Mes: String; Ano: String); overload; + procedure Print(Mes: String; Ano: String); overload; + end; + +implementation +{$R *.dfm} + +uses schVentasTerminadasClient_Intf, uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridResumenVentas.Preview(Mes: String; Ano: String); +begin + inherited Preview; + dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridResumenVentas.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +procedure TfrViewControlGridResumenVentas.dsDataSourceStateChange(Sender: TObject); +begin + if dsDataSource.State = dsInactive then + LimpiarGrid + else + GenerarGrid; +end; + +procedure TfrViewControlGridResumenVentas.GenerarGrid; +var + i, AuxPos, AuxLen: Integer; + +begin + cxGridView.BeginUpdate; + + try + cxGridView.DataController.CreateAllItems; + + for i := 0 to cxGridView.ColumnCount - 1 do + begin + case i of + 0: cxGridView.Columns[i].Visible := False; + 1: begin + cxGridView.Columns[i].Styles.Content := cxStyleDia; + cxGridView.Columns[i].Properties := cxEditDia.Properties; + cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; + cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; + cxGridView.Columns[i].Width := 30; + cxGridView.Columns[i].SortIndex := 0; + cxGridView.Columns[i].SortOrder := soAscending; + + end; + else begin + cxGridView.Columns[i].Styles.Content := cxStyleImporte; + cxGridView.Columns[i].PropertiesClassName := 'TcxCurrencyEditProperties'; + cxGridView.Columns[i].Properties := cxEditImporte.Properties; + cxGridView.Columns[i].Summary.FooterKind := skSum; + cxGridView.Columns[i].Summary.FooterFormat := ',0.## €;-,0.## €'; + cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; + cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; + cxGridView.Columns[i].Width := 175; + end; + end; + + if i = 2 then + begin + cxGridView.Columns[i].HeaderAlignmentHorz := taLeftJustify; + cxGridView.Columns[i].Styles.Content := cxStyleTotal; + end; + + //Dejamos de la descripción del centro lo más corta y representativa posible + AuxPos := Pos('INGLES', cxGridView.Columns[i].Caption); + if AuxPos > 0 then AuxPos := AuxPos + 6; + AuxLen := Length(cxGridView.Columns[i].Caption) - AuxPos; + cxGridView.Columns[i].Caption := Trim(Copy(cxGridView.Columns[i].Caption, AuxPos, AuxLen)); + end; + + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewControlGridResumenVentas.LimpiarGrid; +begin + cxGridView.BeginUpdate; + try + cxGridView.ClearItems; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewControlGridResumenVentas.Print(Mes, Ano: String); +begin + inherited Print; + dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; + dxComponentPrinterLink1.Print(True, Nil); +end; + +end. + diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm new file mode 100644 index 0000000..ca341d0 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm @@ -0,0 +1,278 @@ +inherited frViewControlGridVentasTerminadas: TfrViewControlGridVentasTerminadas + Width = 733 + Height = 572 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 733 + Height = 572 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.CustomizeDialog = False + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary + DataController.OnCompare = cxGridViewDataControllerCompare + DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged + DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.DataRowSizing = True + OptionsCustomize.GroupRowSizing = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.HeaderEndEllipsis = True + Styles.FilterBox = cxStyleFilterBox + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + OnColumnPosChanged = cxGridViewColumnPosChanged + OnColumnSizeChanged = cxGridViewColumnSizeChanged + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + end + object cxGridViewDIA: TcxGridDBColumn + Caption = 'Dia' + DataBinding.FieldName = 'DIA' + end + object cxGridViewDIASEMANA: TcxGridDBColumn + Caption = 'Dia de la semana' + DataBinding.FieldName = 'DIASEMANA' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup + end + object cxGridViewMES: TcxGridDBColumn + Caption = 'Mes' + DataBinding.FieldName = 'MES' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup + end + object cxGridViewANO: TcxGridDBColumn + Caption = 'A'#241'o' + DataBinding.FieldName = 'ANO' + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'Codigo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup + end + object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn + Caption = 'Grupo' + DataBinding.FieldName = 'GRUPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup + end + object cxGridViewTIPOPRODUCTO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Coleccion' + DataBinding.FieldName = 'COLECCION' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA38: TcxGridDBColumn + Caption = '38' + DataBinding.FieldName = 'TALLA38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA40: TcxGridDBColumn + Caption = '40' + DataBinding.FieldName = 'TALLA40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA42: TcxGridDBColumn + Caption = '42' + DataBinding.FieldName = 'TALLA42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA44: TcxGridDBColumn + Caption = '44' + DataBinding.FieldName = 'TALLA44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA46: TcxGridDBColumn + Caption = '46' + DataBinding.FieldName = 'TALLA46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA48: TcxGridDBColumn + Caption = '48' + DataBinding.FieldName = 'TALLA48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTATERMDEV: TcxGridDBColumn + Caption = 'Vta. Term/Dev' + DataBinding.FieldName = 'VTATERMDEV' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTAFINALRESC: TcxGridDBColumn + Caption = 'Vta. Final/Resc' + DataBinding.FieldName = 'VTAFINALRESC' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVENTAS: TcxGridDBColumn + Caption = 'Ventas' + DataBinding.FieldName = 'VENTAS' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDEVOLUCIONES: TcxGridDBColumn + Caption = 'Devoluciones' + DataBinding.FieldName = 'DEVOLUCIONES' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTOTAL: TcxGridDBColumn + Caption = 'Total' + DataBinding.FieldName = 'TOTAL' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALTERMDEV: TcxGridDBColumn + Caption = 'Val. Term/Dev' + DataBinding.FieldName = 'VALTERMDEV' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALFINALRESC: TcxGridDBColumn + Caption = 'Val. Final/Resc' + DataBinding.FieldName = 'VALFINALRESC' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPVEN: TcxGridDBColumn + Caption = 'Imp. ventas' + DataBinding.FieldName = 'VALVEN' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPDEV: TcxGridDBColumn + Caption = 'Imp. devoluciones' + DataBinding.FieldName = 'VALDEV' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPTOT: TcxGridDBColumn + Caption = 'Imp. total' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + Component = cxGrid + BuiltInReportLink = True + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 16 + Top = 48 + object cxStyleRed: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleBlue: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleFilterBox: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInfoBk + TextColor = clWindowText + end + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas new file mode 100644 index 0000000..57a3752 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas @@ -0,0 +1,385 @@ +unit uViewControGridlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit; + +type + IViewControlGridVentasTerminadas = interface(IViewControlGrid) + ['{95B6857B-0F06-470B-8099-CDB07017B63F}'] + end; + + TfrViewControlGridVentasTerminadas = class(TfrViewControlGrid, IViewControlGridVentasTerminadas) + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridLevel: TcxGridLevel; + cxStyleRepository1: TcxStyleRepository; + cxStyleRed: TcxStyle; + cxStyleBlue: TcxStyle; + cxStyleFilterBox: TcxStyle; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewDIA: TcxGridDBColumn; + cxGridViewDIASEMANA: TcxGridDBColumn; + cxGridViewMES: TcxGridDBColumn; + cxGridViewANO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; + cxGridViewTIPOPRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewTALLA38: TcxGridDBColumn; + cxGridViewTALLA40: TcxGridDBColumn; + cxGridViewTALLA42: TcxGridDBColumn; + cxGridViewTALLA44: TcxGridDBColumn; + cxGridViewTALLA46: TcxGridDBColumn; + cxGridViewTALLA48: TcxGridDBColumn; + cxGridViewVENTAS: TcxGridDBColumn; + cxGridViewDEVOLUCIONES: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + cxGridViewIMPVEN: TcxGridDBColumn; + cxGridViewIMPDEV: TcxGridDBColumn; + cxGridViewIMPTOT: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewVTATERMDEV: TcxGridDBColumn; + cxGridViewVTAFINALRESC: TcxGridDBColumn; + cxGridViewVALTERMDEV: TcxGridDBColumn; + cxGridViewVALFINALRESC: TcxGridDBColumn; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); + procedure cxGridViewDataControllerSortingChanged(Sender: TObject); + procedure cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); + procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); + procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerFilterChanged(Sender: TObject); + procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); + procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); + procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, + ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant; + var Compare: Integer); + protected + procedure ActivarEventos; override; + procedure DesactivarEventos; override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure Refresh; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses + cxVariants, uDateUtils; + +{$R *.dfm} + +{ TfrViewControlGridVentasTerminadas } + +function TfrViewControlGridVentasTerminadas.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridVentasTerminadas.Refresh; +var + FocusedRow, TopRow : Integer; +begin + inherited; + { Refrescar las filas del grid a partir del dataset y colocar la fila + seleccionada donde estaba } + if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then + begin + TopRow := FocusedView.Controller.TopRowIndex; + FocusedRow := FocusedView.DataController.FocusedRowIndex; + + FocusedView.DataController.UpdateItems(False); // <- Refresco + + FocusedView.DataController.FocusedRowIndex := FocusedRow; + FocusedView.Controller.TopRowIndex := TopRow; + + { Esta chapuzilla es para que se rellenen los combobox de los filtros + por que el cxFilterControl no coge los valores la 1ª vez si los + combos están vacíos. } + TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo +{ if ARecord.Expandable then + Exit; + + AColumn := FocusedView.GetColumnByFieldName('FECHA'); + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); + end; + + if DaysBetween(Now, AFecha) > 14 then + AStyle := cxStyleRed + else + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleBlue + end; } +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnPosChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnSizeChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerGroupingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSortingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewCENTROPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewVENDEDORPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerFilterChanged( + Sender: TObject); +begin + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +constructor TfrViewControlGridVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; +end; + +procedure TfrViewControlGridVentasTerminadas.ActivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; + DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; + DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; + DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; + OnColumnPosChanged := cxGridViewColumnPosChanged; + OnColumnSizeChanged := cxGridViewColumnSizeChanged; + end; +end; + +procedure TfrViewControlGridVentasTerminadas.DesactivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := nil; + DataController.Summary.OnAfterSummary := nil; + DataController.OnGroupingChanged := nil; + DataController.OnSortingChanged := nil; + OnColumnPosChanged := nil; + OnColumnSizeChanged := nil; + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDIASEMANAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewMESPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewMES.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewMES.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewTIPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewCOLECCIONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +var + AValue1, + AValue2 : Variant; +begin + // Por defecto + Compare := VarCompare(V1, V2); + try + if (AItemIndex = cxGridViewDIASEMANA.Index) then + begin + AValue1 := ADataController.Values[ARecordIndex1, cxGridViewDIASEMANA.Index]; + AValue2 := ADataController.Values[ARecordIndex2, cxGridViewDIASEMANA.Index]; + if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then + Compare := VarCompare(NumberDayOfTheWeek(AValue1), NumberDayOfTheWeek(AValue2)) + end + else begin + if (AItemIndex = cxGridViewMES.Index) then + begin + AValue1 := ADataController.Values[ARecordIndex1, cxGridViewMES.Index]; + AValue2 := ADataController.Values[ARecordIndex2, cxGridViewMES.Index]; + if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then + Compare := VarCompare(NumberMonthOfTheYear(AValue1), NumberMonthOfTheYear(AValue2)) + end + end; + except + //ShowMessage(VarToStr(ARecordIndex1) + ' ' + VarToStr(ARecordIndex1)); + end; +end; + +end. + diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp b/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm new file mode 100644 index 0000000..bc80b1d --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm @@ -0,0 +1,248 @@ +inherited frViewControlVentasTerminadas: TfrViewControlVentasTerminadas + Height = 608 + ExplicitHeight = 608 + inherited TBXMultiDock1: TTBXMultiDock + Width = 232 + Height = 608 + ExplicitWidth = 232 + ExplicitHeight = 608 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 228 + ExplicitWidth = 232 + ExplicitHeight = 289 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 228 + Height = 68 + ExplicitWidth = 228 + ExplicitHeight = 68 + inherited TBXLink1: TTBXLink + Width = 220 + Height = 20 + Action = actPeriodoFechas + ImageIndex = 4 + Images = SmallImages + ExplicitWidth = 220 + ExplicitHeight = 20 + end + inherited TBXLink5: TTBXLink + Top = 24 + Width = 220 + ExplicitTop = 24 + ExplicitWidth = 220 + end + inherited TBXLink2: TTBXLink + Top = 44 + Width = 220 + ExplicitTop = 44 + ExplicitWidth = 220 + end + end + inherited pcParametros: TPageControl + Top = 68 + Width = 228 + ExplicitTop = 68 + ExplicitWidth = 228 + inherited TabSheet5: TTabSheet + ExplicitWidth = 220 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas + Left = 0 + Top = 0 + Width = 220 + Height = 159 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 220 + ExplicitHeight = 159 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited TBXLabel2: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + inherited cbPeriodo: TcxComboBox + ExplicitWidth = 176 + Width = 176 + end + end + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + inherited Label2: TLabel + Width = 29 + ExplicitWidth = 29 + end + end + end + end + inherited tsColumnas: TTabSheet + ExplicitWidth = 220 + inherited frViewColumnas1: TfrViewColumnas + Width = 220 + ExplicitWidth = 220 + inherited lbColumnas: TcxCheckListBox + Width = 220 + ExplicitWidth = 220 + end + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + end + end + inherited tsAgrupacion: TTabSheet + ExplicitWidth = 220 + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + DesignSize = ( + 220 + 77) + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 237 + Width = 228 + ExplicitTop = 237 + ExplicitWidth = 228 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 289 + DockedWidth = 228 + DockPos = 289 + Visible = False + ExplicitTop = 289 + ExplicitWidth = 232 + inherited TBXPageScroller1: TTBXPageScroller + Width = 228 + ExplicitWidth = 228 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 228 + ExplicitWidth = 228 + inherited bFiltros: TTBXLink + Width = 220 + ExplicitWidth = 220 + end + inherited bSumarios: TTBXLink + Width = 220 + ExplicitWidth = 220 + end + end + inherited pcTareas: TPageControl + Width = 228 + ExplicitWidth = 228 + inherited tsSumarios: TTabSheet + ExplicitWidth = 220 + inherited frViewSumarios1: TfrViewSumarios + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited vgSumarios: TcxVerticalGrid + Width = 220 + ExplicitWidth = 220 + end + end + end + inherited tsFiltros: TTabSheet + ExplicitWidth = 220 + inherited frViewFiltros1: TfrViewFiltros + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited cxFilterControl1: TcxFilterControl + Width = 220 + ExplicitWidth = 220 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 136 + Top = 64 + end + end + end + end + end + end + end + inline frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas [1] + Left = 232 + Top = 0 + Width = 467 + Height = 608 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 232 + ExplicitWidth = 467 + ExplicitHeight = 608 + inherited cxGrid: TcxGrid + Width = 467 + Height = 608 + ExplicitWidth = 467 + ExplicitHeight = 608 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList [2] + end + inherited LargeImages: TPngImageList [3] + end + inherited EditorActionList: TActionList + Left = 248 + Top = 72 + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + end + object actPeriodoFechas: TAction + Category = 'Tareas' + Caption = 'Periodo de fechas' + ImageIndex = 4 + OnExecute = actPeriodoFechasExecute + end + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas new file mode 100644 index 0000000..efa6b59 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas @@ -0,0 +1,148 @@ +unit uViewControlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, + uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, + uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, + TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + cxTextEdit, uViewFiltros, + uViewControGridlVentasTerminadas, uViewPeriodoFechas; + +type + IViewControlVentasTerminadas = interface(IViewControlBase) + ['{B8B9105B-E833-4E7D-BA36-EB9A7EBDCE69}'] + end; + + TfrViewControlVentasTerminadas = class(TfrViewControlBase, IViewControlVentasTerminadas) + frViewPeriodoFechas1: TfrViewPeriodoFechas; + actPeriodoFechas: TAction; + frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas; + procedure actRefrescarExecute(Sender: TObject); + procedure actPeriodoFechasExecute(Sender: TObject); + protected + FModificado : Boolean; + procedure OnViewControlGridChanged(Sender : TObject); + procedure OnFilterChanged(Sender : TObject); + procedure ActivarTarea(const ATarea: Integer); override; + public + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation + +uses + uDataModuleVentasTerminadas, uBizControlVentasTerminadas, uBizVentasTerminadas; + +const + PERIODO = 0; + +{$R *.dfm} + +{ TfrViewControlVentasTerminadas } + +constructor TfrViewControlVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; + frViewColumnas1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewSumarios1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewFiltros1.ViewControlGrid := frViewControlGridVentasTerminadas1; + pcParametros.ActivePage := TabSheet5; +end; + +procedure TfrViewControlVentasTerminadas.Refresh; +var + AColumns : TStringList; +begin + inherited; + ShowHourglassCursor; + actRefrescar.Enabled := False; + + frViewControlGridVentasTerminadas1.OnViewChanged := nil; + frViewControlGridVentasTerminadas1.OnFilterChanged := nil; + + try + // Calcular las columnas a pedir al servidor + AColumns := frViewColumnas1.GetCheckedColumns; + AColumns.Duplicates := dupIgnore; + AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); + + (Control as IBizControlVentasTerminadas).Items.VisibleColumns := AColumns.CommaText; + with (Control as IBizControlVentasTerminadas).Items.DataTable do + begin + DisableControls; + try + Active := False; + LoadSchema; + ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial; + ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal; + Active := True; + + frViewColumnas1.Execute; + frViewAgrupaciones1.Execute; + frViewSumarios1.Refresh; + frViewFiltros1.Refresh; + pnlTareas.Visible := True; + + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); + finally + EnableControls; + frViewControlGridVentasTerminadas1.Refresh; + frViewControlGridVentasTerminadas1.ExpandirTodo; + frViewControlGridVentasTerminadas1.GotoFirst; + end; + end; + finally + FreeAndNil(AColumns); + frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; + actRefrescar.Enabled := True; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlVentasTerminadas.actRefrescarExecute(Sender: TObject); +begin + inherited; + Refresh; +end; + +procedure TfrViewControlVentasTerminadas.OnViewControlGridChanged( + Sender: TObject); +begin + if Assigned(Self.OnViewChanged) then + Self.OnViewChanged(Self); +end; + +procedure TfrViewControlVentasTerminadas.OnFilterChanged(Sender: TObject); +begin + frViewFiltros1.Refresh; +end; + +procedure TfrViewControlVentasTerminadas.actPeriodoFechasExecute( + Sender: TObject); +begin + inherited; + ActivarTarea(PERIODO); +end; + +procedure TfrViewControlVentasTerminadas.ActivarTarea( + const ATarea: Integer); +begin + inherited; + case ATarea of + PERIODO : pcParametros.ActivePage := TabSheet5; + end; +end; + +end. diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm b/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm new file mode 100644 index 0000000..65e3160 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm @@ -0,0 +1,11 @@ +inherited frViewControlesVentasTerminadas: TfrViewControlesVentasTerminadas + inherited EasyListview: TEasyListview + Header.Columns.Items = { + 0400000002000000FFFECE000400000000110001000001000000000100013200 + 000001000000060000004E006F006D0062007200650000000000000000000000 + 0000FFFECE000400000000110001000001010000000000013200000001000000 + 0B000000440065007300630072006900700063006900F3006E00000000000000 + 000000000000} + Header.Visible = True + end +end diff --git a/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas new file mode 100644 index 0000000..c031e43 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas @@ -0,0 +1,24 @@ +unit uViewControlesVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, + PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, + MPCommonObjects, MPCommonUtilities, EasyListview, uDAInterfaces; + +type + IViewControlesVentasTerminadas = interface(IViewControlesBase) + ['{0AFCCF6C-F5FB-4E88-9E8C-5B27D84F0D56}'] + end; + + TfrViewControlesVentasTerminadas = class(TfrViewControlesBase, IViewControlesVentasTerminadas) + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas b/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas new file mode 100644 index 0000000..8f7213b --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas @@ -0,0 +1,1331 @@ +unit schVentasTerminadasClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasTerminadasCrossTab = '{2E68D174-CE7E-4597-A951-7670FA84D874}'; + RID_VentasTerminadas = '{F20667F0-C1D2-4500-8E10-1B8577467C80}'; + + { Data table names } + nme_VentasTerminadasCrossTab = 'VentasTerminadasCrossTab'; + nme_VentasTerminadas = 'VentasTerminadas'; + + { VentasTerminadasCrossTab fields } + + { VentasTerminadasCrossTab field indexes } + + { VentasTerminadas fields } + fld_VentasTerminadasNUMINF = 'NUMINF'; + fld_VentasTerminadasCLAVE1 = 'CLAVE1'; + fld_VentasTerminadasCLAVE2 = 'CLAVE2'; + fld_VentasTerminadasCLAVE3 = 'CLAVE3'; + fld_VentasTerminadasFECHA = 'FECHA'; + fld_VentasTerminadasDIA = 'DIA'; + fld_VentasTerminadasDIASEMANA = 'DIASEMANA'; + fld_VentasTerminadasMES = 'MES'; + fld_VentasTerminadasANO = 'ANO'; + fld_VentasTerminadasCENTRO = 'CENTRO'; + fld_VentasTerminadasVENDEDOR = 'VENDEDOR'; + fld_VentasTerminadasNUMTALON = 'NUMTALON'; + fld_VentasTerminadasCODIGO = 'CODIGO'; + fld_VentasTerminadasPRODUCTO = 'PRODUCTO'; + fld_VentasTerminadasGRUPOPRODUCTO = 'GRUPOPRODUCTO'; + fld_VentasTerminadasTIPOPRODUCTO = 'TIPOPRODUCTO'; + fld_VentasTerminadasCOLECCION = 'COLECCION'; + fld_VentasTerminadasCOLOR = 'COLOR'; + fld_VentasTerminadasTALLA = 'TALLA'; + fld_VentasTerminadasTALLA38 = 'TALLA38'; + fld_VentasTerminadasTALLA40 = 'TALLA40'; + fld_VentasTerminadasTALLA42 = 'TALLA42'; + fld_VentasTerminadasTALLA44 = 'TALLA44'; + fld_VentasTerminadasTALLA46 = 'TALLA46'; + fld_VentasTerminadasTALLA48 = 'TALLA48'; + fld_VentasTerminadasVTATERMDEV = 'VTATERMDEV'; + fld_VentasTerminadasVTAFINALRESC = 'VTAFINALRESC'; + fld_VentasTerminadasVENTAS = 'VENTAS'; + fld_VentasTerminadasDEVOLUCIONES = 'DEVOLUCIONES'; + fld_VentasTerminadasTOTAL = 'TOTAL'; + fld_VentasTerminadasVALTERMDEV = 'VALTERMDEV'; + fld_VentasTerminadasVALFINALRESC = 'VALFINALRESC'; + fld_VentasTerminadasVALVEN = 'VALVEN'; + fld_VentasTerminadasVALDEV = 'VALDEV'; + fld_VentasTerminadasVALTOT = 'VALTOT'; + + { VentasTerminadas field indexes } + idx_VentasTerminadasNUMINF = 0; + idx_VentasTerminadasCLAVE1 = 1; + idx_VentasTerminadasCLAVE2 = 2; + idx_VentasTerminadasCLAVE3 = 3; + idx_VentasTerminadasFECHA = 4; + idx_VentasTerminadasDIA = 5; + idx_VentasTerminadasDIASEMANA = 6; + idx_VentasTerminadasMES = 7; + idx_VentasTerminadasANO = 8; + idx_VentasTerminadasCENTRO = 9; + idx_VentasTerminadasVENDEDOR = 10; + idx_VentasTerminadasNUMTALON = 11; + idx_VentasTerminadasCODIGO = 12; + idx_VentasTerminadasPRODUCTO = 13; + idx_VentasTerminadasGRUPOPRODUCTO = 14; + idx_VentasTerminadasTIPOPRODUCTO = 15; + idx_VentasTerminadasCOLECCION = 16; + idx_VentasTerminadasCOLOR = 17; + idx_VentasTerminadasTALLA = 18; + idx_VentasTerminadasTALLA38 = 19; + idx_VentasTerminadasTALLA40 = 20; + idx_VentasTerminadasTALLA42 = 21; + idx_VentasTerminadasTALLA44 = 22; + idx_VentasTerminadasTALLA46 = 23; + idx_VentasTerminadasTALLA48 = 24; + idx_VentasTerminadasVTATERMDEV = 25; + idx_VentasTerminadasVTAFINALRESC = 26; + idx_VentasTerminadasVENTAS = 27; + idx_VentasTerminadasDEVOLUCIONES = 28; + idx_VentasTerminadasTOTAL = 29; + idx_VentasTerminadasVALTERMDEV = 30; + idx_VentasTerminadasVALFINALRESC = 31; + idx_VentasTerminadasVALVEN = 32; + idx_VentasTerminadasVALDEV = 33; + idx_VentasTerminadasVALTOT = 34; + +type + { IVentasTerminadasCrossTab } + IVentasTerminadasCrossTab = interface(IDAStronglyTypedDataTable) + ['{F1FA92FE-5A97-4645-A93A-CAFA9775A238}'] + { Property getters and setters } + + + { Properties } + end; + + { TVentasTerminadasCrossTabDataTableRules } + TVentasTerminadasCrossTabDataTableRules = class(TDADataTableRules, IVentasTerminadasCrossTab) + private + protected + { Property getters and setters } + + { Properties } + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IVentasTerminadas } + IVentasTerminadas = interface(IDAStronglyTypedDataTable) + ['{78DAAFC9-9EAE-4237-B301-3103B6C18EF2}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetNUMINFIsNull: Boolean; + procedure SetNUMINFIsNull(const aValue: Boolean); + function GetCLAVE1Value: TBcd; + procedure SetCLAVE1Value(const aValue: TBcd); + function GetCLAVE1IsNull: Boolean; + procedure SetCLAVE1IsNull(const aValue: Boolean); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE2IsNull: Boolean; + procedure SetCLAVE2IsNull(const aValue: Boolean); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetCLAVE3IsNull: Boolean; + procedure SetCLAVE3IsNull(const aValue: Boolean); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetFECHAIsNull: Boolean; + procedure SetFECHAIsNull(const aValue: Boolean); + function GetDIAValue: Integer; + procedure SetDIAValue(const aValue: Integer); + function GetDIAIsNull: Boolean; + procedure SetDIAIsNull(const aValue: Boolean); + function GetDIASEMANAValue: WideString; + procedure SetDIASEMANAValue(const aValue: WideString); + function GetDIASEMANAIsNull: Boolean; + procedure SetDIASEMANAIsNull(const aValue: Boolean); + function GetMESValue: WideString; + procedure SetMESValue(const aValue: WideString); + function GetMESIsNull: Boolean; + procedure SetMESIsNull(const aValue: Boolean); + function GetANOValue: Integer; + procedure SetANOValue(const aValue: Integer); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCENTROIsNull: Boolean; + procedure SetCENTROIsNull(const aValue: Boolean); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetVENDEDORIsNull: Boolean; + procedure SetVENDEDORIsNull(const aValue: Boolean); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetNUMTALONIsNull: Boolean; + procedure SetNUMTALONIsNull(const aValue: Boolean); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetCODIGOIsNull: Boolean; + procedure SetCODIGOIsNull(const aValue: Boolean); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetPRODUCTOIsNull: Boolean; + procedure SetPRODUCTOIsNull(const aValue: Boolean); + function GetGRUPOPRODUCTOValue: String; + procedure SetGRUPOPRODUCTOValue(const aValue: String); + function GetGRUPOPRODUCTOIsNull: Boolean; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); + function GetTIPOPRODUCTOValue: String; + procedure SetTIPOPRODUCTOValue(const aValue: String); + function GetTIPOPRODUCTOIsNull: Boolean; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLECCIONIsNull: Boolean; + procedure SetCOLECCIONIsNull(const aValue: Boolean); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetCOLORIsNull: Boolean; + procedure SetCOLORIsNull(const aValue: Boolean); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetTALLAIsNull: Boolean; + procedure SetTALLAIsNull(const aValue: Boolean); + function GetTALLA38Value: TBcd; + procedure SetTALLA38Value(const aValue: TBcd); + function GetTALLA38IsNull: Boolean; + procedure SetTALLA38IsNull(const aValue: Boolean); + function GetTALLA40Value: TBcd; + procedure SetTALLA40Value(const aValue: TBcd); + function GetTALLA40IsNull: Boolean; + procedure SetTALLA40IsNull(const aValue: Boolean); + function GetTALLA42Value: TBcd; + procedure SetTALLA42Value(const aValue: TBcd); + function GetTALLA42IsNull: Boolean; + procedure SetTALLA42IsNull(const aValue: Boolean); + function GetTALLA44Value: TBcd; + procedure SetTALLA44Value(const aValue: TBcd); + function GetTALLA44IsNull: Boolean; + procedure SetTALLA44IsNull(const aValue: Boolean); + function GetTALLA46Value: TBcd; + procedure SetTALLA46Value(const aValue: TBcd); + function GetTALLA46IsNull: Boolean; + procedure SetTALLA46IsNull(const aValue: Boolean); + function GetTALLA48Value: TBcd; + procedure SetTALLA48Value(const aValue: TBcd); + function GetTALLA48IsNull: Boolean; + procedure SetTALLA48IsNull(const aValue: Boolean); + function GetVTATERMDEVValue: TBcd; + procedure SetVTATERMDEVValue(const aValue: TBcd); + function GetVTATERMDEVIsNull: Boolean; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); + function GetVTAFINALRESCValue: TBcd; + procedure SetVTAFINALRESCValue(const aValue: TBcd); + function GetVTAFINALRESCIsNull: Boolean; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); + function GetVENTASValue: TBcd; + procedure SetVENTASValue(const aValue: TBcd); + function GetVENTASIsNull: Boolean; + procedure SetVENTASIsNull(const aValue: Boolean); + function GetDEVOLUCIONESValue: TBcd; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); + function GetDEVOLUCIONESIsNull: Boolean; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); + function GetTOTALValue: TBcd; + procedure SetTOTALValue(const aValue: TBcd); + function GetTOTALIsNull: Boolean; + procedure SetTOTALIsNull(const aValue: Boolean); + function GetVALTERMDEVValue: TBcd; + procedure SetVALTERMDEVValue(const aValue: TBcd); + function GetVALTERMDEVIsNull: Boolean; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); + function GetVALFINALRESCValue: TBcd; + procedure SetVALFINALRESCValue(const aValue: TBcd); + function GetVALFINALRESCIsNull: Boolean; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); + function GetVALVENValue: TBcd; + procedure SetVALVENValue(const aValue: TBcd); + function GetVALVENIsNull: Boolean; + procedure SetVALVENIsNull(const aValue: Boolean); + function GetVALDEVValue: TBcd; + procedure SetVALDEVValue(const aValue: TBcd); + function GetVALDEVIsNull: Boolean; + procedure SetVALDEVIsNull(const aValue: Boolean); + function GetVALTOTValue: TBcd; + procedure SetVALTOTValue(const aValue: TBcd); + function GetVALTOTIsNull: Boolean; + procedure SetVALTOTIsNull(const aValue: Boolean); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; + property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property MES: WideString read GetMESValue write SetMESValue; + property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; + property ANO: Integer read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; + property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; + property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; + property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; + property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + end; + + { TVentasTerminadasDataTableRules } + TVentasTerminadasDataTableRules = class(TDADataTableRules, IVentasTerminadas) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetNUMINFIsNull: Boolean; virtual; + procedure SetNUMINFIsNull(const aValue: Boolean); virtual; + function GetCLAVE1Value: TBcd; virtual; + procedure SetCLAVE1Value(const aValue: TBcd); virtual; + function GetCLAVE1IsNull: Boolean; virtual; + procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE2IsNull: Boolean; virtual; + procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetCLAVE3IsNull: Boolean; virtual; + procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHAIsNull: Boolean; virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIAIsNull: Boolean; virtual; + procedure SetDIAIsNull(const aValue: Boolean); virtual; + function GetDIASEMANAValue: WideString; virtual; + procedure SetDIASEMANAValue(const aValue: WideString); virtual; + function GetDIASEMANAIsNull: Boolean; virtual; + procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; + function GetMESValue: WideString; virtual; + procedure SetMESValue(const aValue: WideString); virtual; + function GetMESIsNull: Boolean; virtual; + procedure SetMESIsNull(const aValue: Boolean); virtual; + function GetANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCENTROIsNull: Boolean; virtual; + procedure SetCENTROIsNull(const aValue: Boolean); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORIsNull: Boolean; virtual; + procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetNUMTALONIsNull: Boolean; virtual; + procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetPRODUCTOIsNull: Boolean; virtual; + procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOIsNull: Boolean; virtual; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOIsNull: Boolean; virtual; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLECCIONIsNull: Boolean; virtual; + procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetCOLORIsNull: Boolean; virtual; + procedure SetCOLORIsNull(const aValue: Boolean); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetTALLAIsNull: Boolean; virtual; + procedure SetTALLAIsNull(const aValue: Boolean); virtual; + function GetTALLA38Value: TBcd; virtual; + procedure SetTALLA38Value(const aValue: TBcd); virtual; + function GetTALLA38IsNull: Boolean; virtual; + procedure SetTALLA38IsNull(const aValue: Boolean); virtual; + function GetTALLA40Value: TBcd; virtual; + procedure SetTALLA40Value(const aValue: TBcd); virtual; + function GetTALLA40IsNull: Boolean; virtual; + procedure SetTALLA40IsNull(const aValue: Boolean); virtual; + function GetTALLA42Value: TBcd; virtual; + procedure SetTALLA42Value(const aValue: TBcd); virtual; + function GetTALLA42IsNull: Boolean; virtual; + procedure SetTALLA42IsNull(const aValue: Boolean); virtual; + function GetTALLA44Value: TBcd; virtual; + procedure SetTALLA44Value(const aValue: TBcd); virtual; + function GetTALLA44IsNull: Boolean; virtual; + procedure SetTALLA44IsNull(const aValue: Boolean); virtual; + function GetTALLA46Value: TBcd; virtual; + procedure SetTALLA46Value(const aValue: TBcd); virtual; + function GetTALLA46IsNull: Boolean; virtual; + procedure SetTALLA46IsNull(const aValue: Boolean); virtual; + function GetTALLA48Value: TBcd; virtual; + procedure SetTALLA48Value(const aValue: TBcd); virtual; + function GetTALLA48IsNull: Boolean; virtual; + procedure SetTALLA48IsNull(const aValue: Boolean); virtual; + function GetVTATERMDEVValue: TBcd; virtual; + procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; + function GetVTATERMDEVIsNull: Boolean; virtual; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; + function GetVTAFINALRESCValue: TBcd; virtual; + procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; + function GetVTAFINALRESCIsNull: Boolean; virtual; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVENTASValue: TBcd; virtual; + procedure SetVENTASValue(const aValue: TBcd); virtual; + function GetVENTASIsNull: Boolean; virtual; + procedure SetVENTASIsNull(const aValue: Boolean); virtual; + function GetDEVOLUCIONESValue: TBcd; virtual; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; + function GetDEVOLUCIONESIsNull: Boolean; virtual; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; + function GetTOTALValue: TBcd; virtual; + procedure SetTOTALValue(const aValue: TBcd); virtual; + function GetTOTALIsNull: Boolean; virtual; + procedure SetTOTALIsNull(const aValue: Boolean); virtual; + function GetVALTERMDEVValue: TBcd; virtual; + procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; + function GetVALTERMDEVIsNull: Boolean; virtual; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; + function GetVALFINALRESCValue: TBcd; virtual; + procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; + function GetVALFINALRESCIsNull: Boolean; virtual; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVALVENValue: TBcd; virtual; + procedure SetVALVENValue(const aValue: TBcd); virtual; + function GetVALVENIsNull: Boolean; virtual; + procedure SetVALVENIsNull(const aValue: Boolean); virtual; + function GetVALDEVValue: TBcd; virtual; + procedure SetVALDEVValue(const aValue: TBcd); virtual; + function GetVALDEVIsNull: Boolean; virtual; + procedure SetVALDEVIsNull(const aValue: Boolean); virtual; + function GetVALTOTValue: TBcd; virtual; + procedure SetVALTOTValue(const aValue: TBcd); virtual; + function GetVALTOTIsNull: Boolean; virtual; + procedure SetVALTOTIsNull(const aValue: Boolean); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; + property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property MES: WideString read GetMESValue write SetMESValue; + property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; + property ANO: Integer read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; + property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; + property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; + property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; + property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TVentasTerminadasCrossTabDataTableRules } +constructor TVentasTerminadasCrossTabDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasTerminadasCrossTabDataTableRules.Destroy; +begin + inherited; +end; + + +{ TVentasTerminadasDataTableRules } +constructor TVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasTerminadasDataTableRules.Destroy; +begin + inherited; +end; + +function TVentasTerminadasDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMINF].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasNUMINF].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetNUMINFIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMINF].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMINFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasNUMINF].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE1Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE1Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE1IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE1].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE1].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE2IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE2].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE2].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE3IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE3].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE3IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE3].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime; +end; + +procedure TVentasTerminadasDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime := aValue; +end; + +function TVentasTerminadasDataTableRules.GetFECHAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasFECHA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasFECHA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDIAValue: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasDIA].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetDIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasDIA].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDIAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDIA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDIA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDIASEMANAValue: WideString; +begin + result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString; +end; + +procedure TVentasTerminadasDataTableRules.SetDIASEMANAValue(const aValue: WideString); +begin + DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDIASEMANAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDIASEMANAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetMESValue: WideString; +begin + result := DataTable.Fields[idx_VentasTerminadasMES].AsWideString; +end; + +procedure TVentasTerminadasDataTableRules.SetMESValue(const aValue: WideString); +begin + DataTable.Fields[idx_VentasTerminadasMES].AsWideString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetMESIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasMES].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetMESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasMES].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetANOValue: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasANO].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetANOValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasANO].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasANO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasANO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCENTRO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCENTRO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCENTROIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCENTRO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCENTROIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCENTRO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVENDEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetNUMTALONIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMTALON].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMTALONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasNUMTALON].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCODIGO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCODIGO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCODIGOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCODIGO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCODIGO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCOLECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLECCION].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCOLECCION].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLOR].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCOLOR].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCOLORIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLOR].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCOLOR].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasTALLA].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA38Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA38Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA38IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA38].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA38IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA38].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA40Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA40Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA40IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA40].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA40IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA40].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA42Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA42Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA42IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA42].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA42IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA42].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA44Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA44Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA44IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA44].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA44IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA44].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA46Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA46Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA46IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA46].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA46IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA46].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA48Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA48Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA48IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA48].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA48IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA48].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVTATERMDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVTATERMDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVTATERMDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVTATERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVTAFINALRESCValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVTAFINALRESCIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVENTASValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVENTASValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVENTASIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVENTAS].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVENTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVENTAS].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDEVOLUCIONESValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDEVOLUCIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTOTALValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTOTALValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTOTAL].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTOTAL].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALTERMDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTERMDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALTERMDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALFINALRESCValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALFINALRESCValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALFINALRESCIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALVENValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALVENValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALVENIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALVEN].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALVENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALVEN].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALTOTValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTOTValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALTOTIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTOT].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTOTIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALTOT].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_VentasTerminadasCrossTab, TVentasTerminadasCrossTabDataTableRules); + RegisterDataTableRules(RID_VentasTerminadas, TVentasTerminadasDataTableRules); + +end. diff --git a/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas b/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas new file mode 100644 index 0000000..cdee0f2 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas @@ -0,0 +1,1598 @@ +unit schVentasTerminadasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schVentasTerminadasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasTerminadasCrossTabDelta = '{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'; + RID_VentasTerminadasDelta = '{05A89678-2248-4B09-9BEC-354E07FD2CE5}'; + +type + { IVentasTerminadasCrossTabDelta } + IVentasTerminadasCrossTabDelta = interface(IVentasTerminadasCrossTab) + ['{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'] + { Property getters and setters } + + { Properties } + end; + + { TVentasTerminadasCrossTabBusinessProcessorRules } + TVentasTerminadasCrossTabBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadasCrossTab, IVentasTerminadasCrossTabDelta) + private + protected + { Property getters and setters } + + { Properties } + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IVentasTerminadasDelta } + IVentasTerminadasDelta = interface(IVentasTerminadas) + ['{05A89678-2248-4B09-9BEC-354E07FD2CE5}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : TBcd; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldFECHAValue : DateTime; + function GetOldDIAValue : Integer; + function GetOldDIASEMANAValue : WideString; + function GetOldMESValue : WideString; + function GetOldANOValue : Integer; + function GetOldCENTROValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldGRUPOPRODUCTOValue : String; + function GetOldTIPOPRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldTALLA38Value : TBcd; + function GetOldTALLA40Value : TBcd; + function GetOldTALLA42Value : TBcd; + function GetOldTALLA44Value : TBcd; + function GetOldTALLA46Value : TBcd; + function GetOldTALLA48Value : TBcd; + function GetOldVTATERMDEVValue : TBcd; + function GetOldVTAFINALRESCValue : TBcd; + function GetOldVENTASValue : TBcd; + function GetOldDEVOLUCIONESValue : TBcd; + function GetOldTOTALValue : TBcd; + function GetOldVALTERMDEVValue : TBcd; + function GetOldVALFINALRESCValue : TBcd; + function GetOldVALVENValue : TBcd; + function GetOldVALDEVValue : TBcd; + function GetOldVALTOTValue : TBcd; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : TBcd read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldDIA : Integer read GetOldDIAValue; + property OldDIASEMANA : WideString read GetOldDIASEMANAValue; + property OldMES : WideString read GetOldMESValue; + property OldANO : Integer read GetOldANOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldTALLA38 : TBcd read GetOldTALLA38Value; + property OldTALLA40 : TBcd read GetOldTALLA40Value; + property OldTALLA42 : TBcd read GetOldTALLA42Value; + property OldTALLA44 : TBcd read GetOldTALLA44Value; + property OldTALLA46 : TBcd read GetOldTALLA46Value; + property OldTALLA48 : TBcd read GetOldTALLA48Value; + property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; + property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; + property OldVENTAS : TBcd read GetOldVENTASValue; + property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; + property OldTOTAL : TBcd read GetOldTOTALValue; + property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; + property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; + property OldVALVEN : TBcd read GetOldVALVENValue; + property OldVALDEV : TBcd read GetOldVALDEVValue; + property OldVALTOT : TBcd read GetOldVALTOTValue; + end; + + { TVentasTerminadasBusinessProcessorRules } + TVentasTerminadasBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadas, IVentasTerminadasDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetNUMINFIsNull: Boolean; virtual; + function GetOldNUMINFValue: String; virtual; + function GetOldNUMINFIsNull: Boolean; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + procedure SetNUMINFIsNull(const aValue: Boolean); virtual; + function GetCLAVE1Value: TBcd; virtual; + function GetCLAVE1IsNull: Boolean; virtual; + function GetOldCLAVE1Value: TBcd; virtual; + function GetOldCLAVE1IsNull: Boolean; virtual; + procedure SetCLAVE1Value(const aValue: TBcd); virtual; + procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetCLAVE2IsNull: Boolean; virtual; + function GetOldCLAVE2Value: Integer; virtual; + function GetOldCLAVE2IsNull: Boolean; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetCLAVE3IsNull: Boolean; virtual; + function GetOldCLAVE3Value: Integer; virtual; + function GetOldCLAVE3IsNull: Boolean; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; + function GetFECHAValue: DateTime; virtual; + function GetFECHAIsNull: Boolean; virtual; + function GetOldFECHAValue: DateTime; virtual; + function GetOldFECHAIsNull: Boolean; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetDIAValue: Integer; virtual; + function GetDIAIsNull: Boolean; virtual; + function GetOldDIAValue: Integer; virtual; + function GetOldDIAIsNull: Boolean; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + procedure SetDIAIsNull(const aValue: Boolean); virtual; + function GetDIASEMANAValue: WideString; virtual; + function GetDIASEMANAIsNull: Boolean; virtual; + function GetOldDIASEMANAValue: WideString; virtual; + function GetOldDIASEMANAIsNull: Boolean; virtual; + procedure SetDIASEMANAValue(const aValue: WideString); virtual; + procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; + function GetMESValue: WideString; virtual; + function GetMESIsNull: Boolean; virtual; + function GetOldMESValue: WideString; virtual; + function GetOldMESIsNull: Boolean; virtual; + procedure SetMESValue(const aValue: WideString); virtual; + procedure SetMESIsNull(const aValue: Boolean); virtual; + function GetANOValue: Integer; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: Integer; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + function GetCENTROValue: String; virtual; + function GetCENTROIsNull: Boolean; virtual; + function GetOldCENTROValue: String; virtual; + function GetOldCENTROIsNull: Boolean; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + procedure SetCENTROIsNull(const aValue: Boolean); virtual; + function GetVENDEDORValue: String; virtual; + function GetVENDEDORIsNull: Boolean; virtual; + function GetOldVENDEDORValue: String; virtual; + function GetOldVENDEDORIsNull: Boolean; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; + function GetNUMTALONValue: String; virtual; + function GetNUMTALONIsNull: Boolean; virtual; + function GetOldNUMTALONValue: String; virtual; + function GetOldNUMTALONIsNull: Boolean; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + function GetCODIGOIsNull: Boolean; virtual; + function GetOldCODIGOValue: String; virtual; + function GetOldCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetPRODUCTOValue: String; virtual; + function GetPRODUCTOIsNull: Boolean; virtual; + function GetOldPRODUCTOValue: String; virtual; + function GetOldPRODUCTOIsNull: Boolean; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + function GetGRUPOPRODUCTOIsNull: Boolean; virtual; + function GetOldGRUPOPRODUCTOValue: String; virtual; + function GetOldGRUPOPRODUCTOIsNull: Boolean; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + function GetTIPOPRODUCTOIsNull: Boolean; virtual; + function GetOldTIPOPRODUCTOValue: String; virtual; + function GetOldTIPOPRODUCTOIsNull: Boolean; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetCOLECCIONValue: String; virtual; + function GetCOLECCIONIsNull: Boolean; virtual; + function GetOldCOLECCIONValue: String; virtual; + function GetOldCOLECCIONIsNull: Boolean; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; + function GetCOLORValue: String; virtual; + function GetCOLORIsNull: Boolean; virtual; + function GetOldCOLORValue: String; virtual; + function GetOldCOLORIsNull: Boolean; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + procedure SetCOLORIsNull(const aValue: Boolean); virtual; + function GetTALLAValue: String; virtual; + function GetTALLAIsNull: Boolean; virtual; + function GetOldTALLAValue: String; virtual; + function GetOldTALLAIsNull: Boolean; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + procedure SetTALLAIsNull(const aValue: Boolean); virtual; + function GetTALLA38Value: TBcd; virtual; + function GetTALLA38IsNull: Boolean; virtual; + function GetOldTALLA38Value: TBcd; virtual; + function GetOldTALLA38IsNull: Boolean; virtual; + procedure SetTALLA38Value(const aValue: TBcd); virtual; + procedure SetTALLA38IsNull(const aValue: Boolean); virtual; + function GetTALLA40Value: TBcd; virtual; + function GetTALLA40IsNull: Boolean; virtual; + function GetOldTALLA40Value: TBcd; virtual; + function GetOldTALLA40IsNull: Boolean; virtual; + procedure SetTALLA40Value(const aValue: TBcd); virtual; + procedure SetTALLA40IsNull(const aValue: Boolean); virtual; + function GetTALLA42Value: TBcd; virtual; + function GetTALLA42IsNull: Boolean; virtual; + function GetOldTALLA42Value: TBcd; virtual; + function GetOldTALLA42IsNull: Boolean; virtual; + procedure SetTALLA42Value(const aValue: TBcd); virtual; + procedure SetTALLA42IsNull(const aValue: Boolean); virtual; + function GetTALLA44Value: TBcd; virtual; + function GetTALLA44IsNull: Boolean; virtual; + function GetOldTALLA44Value: TBcd; virtual; + function GetOldTALLA44IsNull: Boolean; virtual; + procedure SetTALLA44Value(const aValue: TBcd); virtual; + procedure SetTALLA44IsNull(const aValue: Boolean); virtual; + function GetTALLA46Value: TBcd; virtual; + function GetTALLA46IsNull: Boolean; virtual; + function GetOldTALLA46Value: TBcd; virtual; + function GetOldTALLA46IsNull: Boolean; virtual; + procedure SetTALLA46Value(const aValue: TBcd); virtual; + procedure SetTALLA46IsNull(const aValue: Boolean); virtual; + function GetTALLA48Value: TBcd; virtual; + function GetTALLA48IsNull: Boolean; virtual; + function GetOldTALLA48Value: TBcd; virtual; + function GetOldTALLA48IsNull: Boolean; virtual; + procedure SetTALLA48Value(const aValue: TBcd); virtual; + procedure SetTALLA48IsNull(const aValue: Boolean); virtual; + function GetVTATERMDEVValue: TBcd; virtual; + function GetVTATERMDEVIsNull: Boolean; virtual; + function GetOldVTATERMDEVValue: TBcd; virtual; + function GetOldVTATERMDEVIsNull: Boolean; virtual; + procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; + function GetVTAFINALRESCValue: TBcd; virtual; + function GetVTAFINALRESCIsNull: Boolean; virtual; + function GetOldVTAFINALRESCValue: TBcd; virtual; + function GetOldVTAFINALRESCIsNull: Boolean; virtual; + procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVENTASValue: TBcd; virtual; + function GetVENTASIsNull: Boolean; virtual; + function GetOldVENTASValue: TBcd; virtual; + function GetOldVENTASIsNull: Boolean; virtual; + procedure SetVENTASValue(const aValue: TBcd); virtual; + procedure SetVENTASIsNull(const aValue: Boolean); virtual; + function GetDEVOLUCIONESValue: TBcd; virtual; + function GetDEVOLUCIONESIsNull: Boolean; virtual; + function GetOldDEVOLUCIONESValue: TBcd; virtual; + function GetOldDEVOLUCIONESIsNull: Boolean; virtual; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; + function GetTOTALValue: TBcd; virtual; + function GetTOTALIsNull: Boolean; virtual; + function GetOldTOTALValue: TBcd; virtual; + function GetOldTOTALIsNull: Boolean; virtual; + procedure SetTOTALValue(const aValue: TBcd); virtual; + procedure SetTOTALIsNull(const aValue: Boolean); virtual; + function GetVALTERMDEVValue: TBcd; virtual; + function GetVALTERMDEVIsNull: Boolean; virtual; + function GetOldVALTERMDEVValue: TBcd; virtual; + function GetOldVALTERMDEVIsNull: Boolean; virtual; + procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; + function GetVALFINALRESCValue: TBcd; virtual; + function GetVALFINALRESCIsNull: Boolean; virtual; + function GetOldVALFINALRESCValue: TBcd; virtual; + function GetOldVALFINALRESCIsNull: Boolean; virtual; + procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVALVENValue: TBcd; virtual; + function GetVALVENIsNull: Boolean; virtual; + function GetOldVALVENValue: TBcd; virtual; + function GetOldVALVENIsNull: Boolean; virtual; + procedure SetVALVENValue(const aValue: TBcd); virtual; + procedure SetVALVENIsNull(const aValue: Boolean); virtual; + function GetVALDEVValue: TBcd; virtual; + function GetVALDEVIsNull: Boolean; virtual; + function GetOldVALDEVValue: TBcd; virtual; + function GetOldVALDEVIsNull: Boolean; virtual; + procedure SetVALDEVValue(const aValue: TBcd); virtual; + procedure SetVALDEVIsNull(const aValue: Boolean); virtual; + function GetVALTOTValue: TBcd; virtual; + function GetVALTOTIsNull: Boolean; virtual; + function GetOldVALTOTValue: TBcd; virtual; + function GetOldVALTOTIsNull: Boolean; virtual; + procedure SetVALTOTValue(const aValue: TBcd); virtual; + procedure SetVALTOTIsNull(const aValue: Boolean); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull : Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property OldNUMINF : String read GetOldNUMINFValue; + property OldNUMINFIsNull : Boolean read GetOldNUMINFIsNull; + property CLAVE1 : TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull : Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property OldCLAVE1 : TBcd read GetOldCLAVE1Value; + property OldCLAVE1IsNull : Boolean read GetOldCLAVE1IsNull; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull : Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE2IsNull : Boolean read GetOldCLAVE2IsNull; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull : Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldCLAVE3IsNull : Boolean read GetOldCLAVE3IsNull; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; + property DIA : Integer read GetDIAValue write SetDIAValue; + property DIAIsNull : Boolean read GetDIAIsNull write SetDIAIsNull; + property OldDIA : Integer read GetOldDIAValue; + property OldDIAIsNull : Boolean read GetOldDIAIsNull; + property DIASEMANA : WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull : Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property OldDIASEMANA : WideString read GetOldDIASEMANAValue; + property OldDIASEMANAIsNull : Boolean read GetOldDIASEMANAIsNull; + property MES : WideString read GetMESValue write SetMESValue; + property MESIsNull : Boolean read GetMESIsNull write SetMESIsNull; + property OldMES : WideString read GetOldMESValue; + property OldMESIsNull : Boolean read GetOldMESIsNull; + property ANO : Integer read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : Integer read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull : Boolean read GetCENTROIsNull write SetCENTROIsNull; + property OldCENTRO : String read GetOldCENTROValue; + property OldCENTROIsNull : Boolean read GetOldCENTROIsNull; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull : Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldVENDEDORIsNull : Boolean read GetOldVENDEDORIsNull; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull : Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldNUMTALONIsNull : Boolean read GetOldNUMTALONIsNull; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull : Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property OldCODIGO : String read GetOldCODIGOValue; + property OldCODIGOIsNull : Boolean read GetOldCODIGOIsNull; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull : Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldPRODUCTOIsNull : Boolean read GetOldPRODUCTOIsNull; + property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull : Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldGRUPOPRODUCTOIsNull : Boolean read GetOldGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull : Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldTIPOPRODUCTOIsNull : Boolean read GetOldTIPOPRODUCTOIsNull; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull : Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLECCIONIsNull : Boolean read GetOldCOLECCIONIsNull; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property COLORIsNull : Boolean read GetCOLORIsNull write SetCOLORIsNull; + property OldCOLOR : String read GetOldCOLORValue; + property OldCOLORIsNull : Boolean read GetOldCOLORIsNull; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull : Boolean read GetTALLAIsNull write SetTALLAIsNull; + property OldTALLA : String read GetOldTALLAValue; + property OldTALLAIsNull : Boolean read GetOldTALLAIsNull; + property TALLA38 : TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull : Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property OldTALLA38 : TBcd read GetOldTALLA38Value; + property OldTALLA38IsNull : Boolean read GetOldTALLA38IsNull; + property TALLA40 : TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull : Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property OldTALLA40 : TBcd read GetOldTALLA40Value; + property OldTALLA40IsNull : Boolean read GetOldTALLA40IsNull; + property TALLA42 : TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull : Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property OldTALLA42 : TBcd read GetOldTALLA42Value; + property OldTALLA42IsNull : Boolean read GetOldTALLA42IsNull; + property TALLA44 : TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull : Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property OldTALLA44 : TBcd read GetOldTALLA44Value; + property OldTALLA44IsNull : Boolean read GetOldTALLA44IsNull; + property TALLA46 : TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull : Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property OldTALLA46 : TBcd read GetOldTALLA46Value; + property OldTALLA46IsNull : Boolean read GetOldTALLA46IsNull; + property TALLA48 : TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull : Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property OldTALLA48 : TBcd read GetOldTALLA48Value; + property OldTALLA48IsNull : Boolean read GetOldTALLA48IsNull; + property VTATERMDEV : TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull : Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; + property OldVTATERMDEVIsNull : Boolean read GetOldVTATERMDEVIsNull; + property VTAFINALRESC : TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull : Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; + property OldVTAFINALRESCIsNull : Boolean read GetOldVTAFINALRESCIsNull; + property VENTAS : TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull : Boolean read GetVENTASIsNull write SetVENTASIsNull; + property OldVENTAS : TBcd read GetOldVENTASValue; + property OldVENTASIsNull : Boolean read GetOldVENTASIsNull; + property DEVOLUCIONES : TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull : Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; + property OldDEVOLUCIONESIsNull : Boolean read GetOldDEVOLUCIONESIsNull; + property TOTAL : TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull : Boolean read GetTOTALIsNull write SetTOTALIsNull; + property OldTOTAL : TBcd read GetOldTOTALValue; + property OldTOTALIsNull : Boolean read GetOldTOTALIsNull; + property VALTERMDEV : TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull : Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; + property OldVALTERMDEVIsNull : Boolean read GetOldVALTERMDEVIsNull; + property VALFINALRESC : TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull : Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; + property OldVALFINALRESCIsNull : Boolean read GetOldVALFINALRESCIsNull; + property VALVEN : TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull : Boolean read GetVALVENIsNull write SetVALVENIsNull; + property OldVALVEN : TBcd read GetOldVALVENValue; + property OldVALVENIsNull : Boolean read GetOldVALVENIsNull; + property VALDEV : TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull : Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property OldVALDEV : TBcd read GetOldVALDEVValue; + property OldVALDEVIsNull : Boolean read GetOldVALDEVIsNull; + property VALTOT : TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull : Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + property OldVALTOT : TBcd read GetOldVALTOTValue; + property OldVALTOTIsNull : Boolean read GetOldVALTOTIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TVentasTerminadasCrossTabBusinessProcessorRules } +constructor TVentasTerminadasCrossTabBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasTerminadasCrossTabBusinessProcessorRules.Destroy; +begin + inherited; +end; + + +{ TVentasTerminadasBusinessProcessorRules } +constructor TVentasTerminadasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasTerminadasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMINFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE1Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAValue: WideString; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAValue: WideString; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAValue(const aValue: WideString); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetMESValue: WideString; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetMESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldMESValue: WideString; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldMESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetMESValue(const aValue: WideString); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetMESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetANOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCENTROIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCENTROIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCENTROIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMTALONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA38Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA38IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA40Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA40IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA42Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA42IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA44Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA44IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA46Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA46IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA48Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA48IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENTASValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENTASValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENTASValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTOTALValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTOTALValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTOTALValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALVENValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALVENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALVENValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALVENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALVENValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALVENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTOTValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTOTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_VentasTerminadasCrossTabDelta, TVentasTerminadasCrossTabBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_VentasTerminadasDelta, TVentasTerminadasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas new file mode 100644 index 0000000..143ea69 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas @@ -0,0 +1,65 @@ +unit uBizControlVentasTerminadas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, + uBizVentasTerminadas; + +const + BIZ_CONTROL_VENTASTERMINADAS = 'Client.Control_VentasTerminadas'; + +type + IBizControlVentasTerminadas = interface(IBizControlBase) + ['{BC0C313D-E667-4AC6-BB30-55469970F919}'] + procedure SetItems(const Value : IBizVentasTerminadas); + function GetItems : IBizVentasTerminadas; + property Items : IBizVentasTerminadas read GetItems write SetItems; + end; + + TBizControlVentasTerminadasTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasTerminadas) + protected + FItems : IBizVentasTerminadas; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure SetItems(const Value : IBizVentasTerminadas); virtual; + function GetItems : IBizVentasTerminadas; virtual; + public + procedure Show; override; + property Items : IBizVentasTerminadas read GetItems write SetItems; + end; + +implementation + +uses + uEditorUtils, uDataModuleVentasTerminadas; + +{ TBizControlVentasTerminadasTableRules } + +function TBizControlVentasTerminadasTableRules.GetItems: IBizVentasTerminadas; +begin + Result := FItems; +end; + +procedure TBizControlVentasTerminadasTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + CATEGORIA := CATEGORIA_VENTA_TERMINADA +end; + +procedure TBizControlVentasTerminadasTableRules.SetItems( + const Value: IBizVentasTerminadas); +begin + FItems := Value; +end; + +procedure TBizControlVentasTerminadasTableRules.Show; +begin + inherited; + ShowEditor(IBizControlVentasTerminadas, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_CONTROL_VENTASTERMINADAS, TBizControlVentasTerminadasTableRules); + +end. diff --git a/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas b/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas new file mode 100644 index 0000000..b87673d --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas @@ -0,0 +1,82 @@ +unit uBizInformesVentas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, schInformesVentasClient_Intf, uDADataTable; + +const + BIZ_INFORMESVENTAS = 'Client.InformesVentas'; + VALOR_CATEGORIA = 'VENTAS'; + +type + IBizInformesVentas = interface(IListaInformesPorCategoria) + ['{78F747A5-9A35-44D6-8C73-8682A41FE573}'] + procedure Show; + procedure VerPropiedades; + end; + + TBizInformesVentasDataTableRules = class(TListaInformesPorCategoriaDataTableRules, IBizInformesVentas) + protected + function GetVISTAValue: IROStrings; override; + procedure BeforePost(Sender: TDADataTable); override; + public + procedure Show; + procedure VerPropiedades; + end; + +implementation + +uses + Windows, Dialogs, uDACDSDataTable, uDataModuleBase, + uEditorUtils, Variants, uFormPropiedadesInforme, Forms, Controls; + +{ TBizInformesVentasDataTableRules } + +procedure TBizInformesVentasDataTableRules.BeforePost( + Sender: TDADataTable); +begin + inherited; + if Length(CATEGORIA) = 0 then + begin + Edit; + CATEGORIA := VALOR_CATEGORIA; + end; + + if Length(NOMBRE) = 0 then + VerPropiedades; +end; + +function TBizInformesVentasDataTableRules.GetVISTAValue: IROStrings; +begin + result := NewROStrings(); + result.Add(DataTable.Fields[idx_ListaInformesPorCategoriaVISTA].AsString); +end; + +procedure TBizInformesVentasDataTableRules.Show; +begin + ShowEditor(IBizInformesVentas, Self, etItem); +end; + +procedure TBizInformesVentasDataTableRules.VerPropiedades; +begin + with TfrPropiedadesInforme.Create(NIL) do + try + Nombre := Self.NOMBRE; + Descripcion := Self.DESCRIPCION; + if (ShowModal = mrOK) then + begin + DataTable.Edit; + Self.NOMBRE := Nombre; + Self.DESCRIPCION := Descripcion; + Self.ICONO := 2; + end; + finally + Free; + end; +end; + +initialization + RegisterDataTableRules(BIZ_INFORMESVENTAS, TBizInformesVentasDataTableRules); + +end. diff --git a/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas b/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas new file mode 100644 index 0000000..31b0782 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas @@ -0,0 +1,115 @@ +unit uBizVentas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract_Intf, uROTypes; + +const + BIZ_VENTAS = 'Client.Ventas'; + + { ListaInformesPorCategoria fields } + fld_VentasCLAVE1 = 'CLAVE1'; + fld_VentasCLAVE2 = 'CLAVE2'; + fld_VentasCLAVE3 = 'CLAVE3'; + fld_VentasNUMINF = 'NUMINF'; + +type + { IRDX_ARTVEN } + IBizVentas = interface(IDAStronglyTypedDataTable) + ['{E82C7F84-0CD4-4A27-80FB-BD608FDCA091}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(AValue : String); + procedure Show; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + { TRDX_ARTVENDataTableRules } + TBIZ_VENTASDataTableRules = class(TDADataTableRules, IBizVentas) + private + FVisibleColumns : String; + FDateParams : TDADatasetParamArray; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(AValue : String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + + procedure Show; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + destructor Destroy; override; + end; + + +implementation + +{ TBIZ_VENTASDataTableRules } + +uses + Dialogs, uEditorUtils, uDataModuleVentas; + +constructor TBIZ_VENTASDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + FDateParams := TDADatasetParamArray.Create; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +destructor TBIZ_VENTASDataTableRules.Destroy; +begin + FreeAndNIL(FDateParams); + inherited; +end; + +function TBIZ_VENTASDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentas.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBIZ_VENTASDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; + FDateParams.Clear; + NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); + NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); + Request.ParamByName('Params').AsComplexType := FDateParams; +end; + +procedure TBIZ_VENTASDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBIZ_VENTASDataTableRules.SetVisibleColumns(AValue: String); +begin + if Length(AValue) > 0 then + FVisibleColumns := Avalue + else + FVisibleColumns := dmVentas.GetNameColumns; +end; + +procedure TBIZ_VENTASDataTableRules.Show; +begin + ShowEditor(IBizVentas, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_VENTAS, TBIZ_VENTASDataTableRules); + +finalization + +end. + diff --git a/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas b/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas new file mode 100644 index 0000000..2b05c77 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas @@ -0,0 +1,158 @@ +unit uBizVentasTerminadas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schVentasTerminadasClient_Intf; + +const + BIZ_VENTASTERMINADAS = 'Client.VentasTerminadas'; + BIZ_RESUMENVENTAS = 'Client.ResumenVentas'; + +type + IBizVentasTerminadas = interface(IVentasTerminadas) + ['{A8E22BA0-970A-461D-8C69-E3C37F099F76}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + IBizResumenVentas = interface(IVentasTerminadasCrossTab) + ['{F7536368-285D-45B4-B0F0-7DBE724982A3}'] + end; + + TBizResumenVentasDataTableRules = class(TVentasTerminadasCrossTabDataTableRules, IBizResumenVentas) + protected + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + end; + + TBizVentasTerminadasDataTableRules = class(TVentasTerminadasDataTableRules, IBizVentasTerminadas) + private + FVisibleColumns : String; + FDateParams : TDADatasetParamArray; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + destructor Destroy; override; + end; + + +implementation + +{ TBIZ_VENTASDataTableRules } + +uses + Dialogs, uEditorUtils, uDataModuleVentasTerminadas; + +constructor TBizVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + FDateParams := TDADatasetParamArray.Create; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +destructor TBizVentasTerminadasDataTableRules.Destroy; +begin + FreeAndNIL(FDateParams); + inherited; +end; + +function TBizVentasTerminadasDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentasTerminadas.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBizVentasTerminadasDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +var + params : TStringList; +begin + Request.ParamByName('Columns').AsString := VisibleColumns; + + // Begin adaptación a DA5 + params := TStringList.Create; + try + params.Add('FECHAINI'); + params.Values['FECHAINI'] := DataTable.ParamByName('FECHAINI').AsString; + + params.Add('FECHAFIN'); + params.Values['FECHAFIN'] := DataTable.ParamByName('FECHAFIN').AsString; + + Request.ParamByName('Params').AsString := params.text; + finally + FreeAndNIL(params); + end; + // End adaptación a DA5 + +{ FDateParams.Clear; + + NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); + NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); + Request.ParamByName('Params').AsComplexType := FDateParams;} +end; + +procedure TBizVentasTerminadasDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasTerminadasDataTableRules.SetVisibleColumns(const Value: String); +begin + if Length(Value) > 0 then + FVisibleColumns := Value + else + FVisibleColumns := dmVentasTerminadas.GetNameColumns; +end; + + +{ TBizResumenVentasDataTableRules } + +constructor TBizResumenVentasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +procedure TBizResumenVentasDataTableRules.OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; + Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; +end; + +procedure TBizResumenVentasDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; + Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; +end; + +initialization + RegisterDataTableRules(BIZ_VENTASTERMINADAS, TBizVentasTerminadasDataTableRules); + RegisterDataTableRules(BIZ_RESUMENVENTAS, TBizResumenVentasDataTableRules); + +finalization + +end. + diff --git a/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp b/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm b/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm new file mode 100644 index 0000000..82f7044 --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm @@ -0,0 +1,445 @@ +object srvVentasTerminadas: TsrvVentasTerminadas + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schVentasTerminadas + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schVentasTerminadas: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'fechaini' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'fechafin' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'coleccion' + DataType = datString + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'begin'#10' declare @fechaini varchar(10)'#10' declare @fechafin ' + + 'varchar(10)'#10' declare @coleccion varchar(10)'#10' declare @sq' + + 'l varchar(8000)'#10#10' set @fechaini = :fechaini'#10' set @fechaf' + + 'in = :fechafin'#10' set @coleccion = :coleccion'#10#10' select @sq' + + 'l = '#39'SELECT DIA, SUM(VALTOT) AS TOTAL FROM RDX_V_VENTASTERMINADA' + + 'S WHERE FECHA BETWEEN CONVERT(DATETIME, '#39#39#39' + @FECHAINI + '#39#39#39', 1' + + '03) AND CONVERT(DATETIME, '#39#39#39' + @FECHAFIN + '#39#39#39', 103) AND COLECC' + + 'ION LIKE '#39#39#39' + @COLECCION + '#39#39#39' GROUP BY DIA'#39#10#10' EXECUTE cros' + + 'stab @sql,'#10' '#39'SUM(VALTOT)'#39','#10' '#39'CENTRO'#39','#10' ' + + ' '#39'RDX_V_VENTASTERMINADAS'#39#10'end'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'VentasTerminadasCrossTab' + Fields = <> + end + item + Params = < + item + Name = 'FECHAINI' + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_VENTASTERMINADAS' + SQL = + 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, FECHA, DIA, DIASEMAN' + + 'A, '#10' MES, ANO, CENTRO, VENDEDOR, NUMTALON, CODIGO, PRODUCTO,'#10 + + ' GRUPOPRODUCTO, TIPOPRODUCTO, COLECCION, COLOR,'#10' TALLA, TA' + + 'LLA38, TALLA40, TALLA42, TALLA44, TALLA46, '#10' TALLA48, VTATERM' + + 'DEV, VTAFINALRESC, VENTAS, DEVOLUCIONES, TOTAL,'#10' VALTERMDEV, ' + + 'VALFINALRESC, VALVEN, VALDEV, VALTOT'#10' FROM'#10' RDX_V_VENTASTERM' + + 'INADAS'#10' WHERE FECHA BETWEEN :FECHAINI AND :FECHAFIN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'DIA' + TableField = 'DIA' + end + item + DatasetField = 'DIASEMANA' + TableField = 'DIASEMANA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'GRUPOPRODUCTO' + TableField = 'GRUPOPRODUCTO' + end + item + DatasetField = 'TIPOPRODUCTO' + TableField = 'TIPOPRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'TALLA38' + TableField = 'TALLA38' + end + item + DatasetField = 'TALLA40' + TableField = 'TALLA40' + end + item + DatasetField = 'TALLA42' + TableField = 'TALLA42' + end + item + DatasetField = 'TALLA44' + TableField = 'TALLA44' + end + item + DatasetField = 'TALLA46' + TableField = 'TALLA46' + end + item + DatasetField = 'TALLA48' + TableField = 'TALLA48' + end + item + DatasetField = 'VTATERMDEV' + TableField = 'VTATERMDEV' + end + item + DatasetField = 'VTAFINALRESC' + TableField = 'VTAFINALRESC' + end + item + DatasetField = 'VENTAS' + TableField = 'VENTAS' + end + item + DatasetField = 'DEVOLUCIONES' + TableField = 'DEVOLUCIONES' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'VALTERMDEV' + TableField = 'VALTERMDEV' + end + item + DatasetField = 'VALFINALRESC' + TableField = 'VALFINALRESC' + end + item + DatasetField = 'VALVEN' + TableField = 'VALVEN' + end + item + DatasetField = 'VALDEV' + TableField = 'VALDEV' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end> + end> + Name = 'VentasTerminadas' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datDecimal + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'DIA' + DataType = datInteger + DisplayLabel = 'D'#237'a' + end + item + Name = 'DIASEMANA' + DataType = datWideString + Size = 30 + DisplayLabel = 'D'#237'a de la semana' + end + item + Name = 'MES' + DataType = datWideString + Size = 30 + DisplayLabel = 'Mes' + end + item + Name = 'ANO' + DataType = datInteger + DisplayLabel = 'A'#241'o' + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + DisplayLabel = 'Centro' + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + DisplayLabel = 'Vendedor' + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo producto' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'Producto' + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Grupo' + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo' + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + DisplayLabel = 'Colecci'#243'n' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + DisplayLabel = 'Talla' + Alignment = taRightJustify + end + item + Name = 'TALLA38' + DataType = datDecimal + DisplayLabel = '38' + Alignment = taRightJustify + end + item + Name = 'TALLA40' + DataType = datDecimal + DisplayLabel = '40' + Alignment = taRightJustify + end + item + Name = 'TALLA42' + DataType = datDecimal + DisplayLabel = '42' + Alignment = taRightJustify + end + item + Name = 'TALLA44' + DataType = datDecimal + DisplayLabel = '44' + Alignment = taRightJustify + end + item + Name = 'TALLA46' + DataType = datDecimal + DisplayLabel = '46' + Alignment = taRightJustify + end + item + Name = 'TALLA48' + DataType = datDecimal + DisplayLabel = '48' + Alignment = taRightJustify + end + item + Name = 'VTATERMDEV' + DataType = datDecimal + DisplayLabel = 'Vta.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VTAFINALRESC' + DataType = datDecimal + DisplayLabel = 'Vta.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VENTAS' + DataType = datDecimal + DisplayLabel = 'Ventas' + Alignment = taRightJustify + end + item + Name = 'DEVOLUCIONES' + DataType = datDecimal + DisplayLabel = 'Devoluciones' + Alignment = taRightJustify + end + item + Name = 'TOTAL' + DataType = datDecimal + DisplayLabel = 'Total ventas' + Alignment = taRightJustify + end + item + Name = 'VALTERMDEV' + DataType = datDecimal + DisplayLabel = 'Val.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VALFINALRESC' + DataType = datDecimal + DisplayLabel = 'Val.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VALVEN' + DataType = datDecimal + DisplayLabel = 'Imp. ventas' + Alignment = taRightJustify + end + item + Name = 'VALDEV' + DataType = datDecimal + DisplayLabel = 'Imp. devoluciones' + Alignment = taRightJustify + end + item + Name = 'VALTOT' + DataType = datDecimal + DisplayLabel = 'Imp. Total' + Alignment = taRightJustify + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 56 + Top = 96 + end +end diff --git a/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas b/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas new file mode 100644 index 0000000..780429f --- /dev/null +++ b/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas @@ -0,0 +1,210 @@ +unit srvVentasTerminadas_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, + uDataModuleServer, uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvVentasTerminadas } + TsrvVentasTerminadas = class(TDARemoteService, IsrvVentasTerminadas) + DABINAdapter: TDABINAdapter; + schVentasTerminadas: TDASchema; + private + protected + { IsrvVentasTerminadas methods } + function GetData(const DatasetName: String; const MaxRecords: Integer; const Columns: String; const Params: TDADatasetParamArray): Binary; + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uSchemaUtilsServer, dialogs; + +const + CAMPOS_SUMA = '#TALLA38#TALLA40#TALLA42#TALLA44#TALLA46#TALLA48#VENTAS#DEVOLUCIONES#TOTAL#VALVEN#VALDEV#VALTOT#VTATERMDEV#VTAFINALRESC#VALTERMDEV#VALFINALRESC#'; + +procedure Create_srvVentasTerminadas(out anInstance : IUnknown); +begin + anInstance := TsrvVentasTerminadas.Create(NIL); +end; + +{ srvVentasTerminadas } + +function TsrvVentasTerminadas.GetData(const DatasetName: String; + const MaxRecords: Integer; const Columns: String; + const Params: TDADatasetParamArray): TROBinaryMemoryStream; +var + ds : IDADataset; + i : integer; +begin + result := Binary.Create; + try + { Prepares the parameter arrays} + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + for i := 0 to (Params.Count-1) do + ds.ParamByName(Params[i].Name).Value := Params[i].Value; + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetDataCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; +var + ds : IDADataset; + AColeccion : String; +begin + if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then + AColeccion := '%' + else + AColeccion := Coleccion; + + try + Result := Binary.Create; + ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woSchema, woRows], -1); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetDataEx(const DatasetName, Columns, + Params: String; const MaxRecords: Integer): Binary; +var + ds : IDADataset; + i : integer; + pars: TStringList; + parnames: array of string; + parvalues: array of Variant; +begin + pars := TStringList.Create; + result := Binary.Create; + try + try + pars.Text := Params; + SetLength(parnames, pars.Count); + SetLength(parvalues, pars.Count); + for i := 0 to (pars.Count-1) do begin + parnames[i] := pars.Names[i]; + parvalues[i] := pars.Values[pars.Names[i]]; + end; + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + // Fills the parameters (if any are specified) + if (Length(parnames) > 0) then + begin + for i := 0 to (Length(parnames) - 1) do + ds.ParamByName(parnames[i]).Value := parvalues[i]; + end; + + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; + finally + FreeANDNil(pars); + end; +end; + +function TsrvVentasTerminadas.GetSchema(const DatasetName: String; const Columns: String): TROBinaryMemoryStream; +var + ds : IDADataset; +begin + result := Binary.Create; + try + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + ServiceAdapter.WriteDataset(result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetSchemaCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; +var + ds : IDADataset; + AColeccion : String; +begin + if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then + AColeccion := '%' + else + AColeccion := Coleccion; + + try + Result := Binary.Create; + ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +initialization + TROClassFactory.Create('srvVentasTerminadas', Create_srvVentasTerminadas, TsrvVentasTerminadas_Invoker); + +finalization + +end. diff --git a/Source/Servidor/AdminPV_Server.bdsproj b/Source/Servidor/AdminPV_Server.bdsproj new file mode 100644 index 0000000..e4f8c61 --- /dev/null +++ b/Source/Servidor/AdminPV_Server.bdsproj @@ -0,0 +1,678 @@ + + + + + + + + + + + + AdminPV_Server.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Servidor + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7;RemObjects_Indy_D10;IndyProtocols;IndyCore;IndySystem;PascalScript_RO_D10;DataAbstract_Core_D10;DataAbstract_Scripting_D10;DataAbstract_IDE_D10 + EUREKALOG;EUREKALOG_VER6 + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 2 + 5 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 1.2.5.0 + + + + + AdminPV_Server + 1.2.5.0 + + miércoles, 05 de septiembre de 2007 19:15 + + + + diff --git a/Source/Servidor/AdminPV_Server.cfg b/Source/Servidor/AdminPV_Server.cfg new file mode 100644 index 0000000..7d0152a --- /dev/null +++ b/Source/Servidor/AdminPV_Server.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Servidor" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib;..\Base" +-O"..\Lib;..\Base" +-I"..\Lib;..\Base" +-R"..\Lib;..\Base" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Servidor/AdminPV_Server.dof b/Source/Servidor/AdminPV_Server.dof new file mode 100644 index 0000000..1804a4b --- /dev/null +++ b/Source/Servidor/AdminPV_Server.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Servidor +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib;..\Base +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=2 +Release=5 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName=Rodax Software S.L. +FileDescription= +FileVersion=1.2.5.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName=AdminPV_Server +ProductVersion=1.1.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Servidor/AdminPV_Server.dpr b/Source/Servidor/AdminPV_Server.dpr new file mode 100644 index 0000000..7ed1aae --- /dev/null +++ b/Source/Servidor/AdminPV_Server.dpr @@ -0,0 +1,73 @@ +program AdminPV_Server; + +{#ROGEN:VARELA.rodl} // RemObjects: Careful, do not remove! + +uses + uROComInit, + Forms, + fServerForm in 'fServerForm.pas' {ServerForm}, + VARELA_Intf in 'VARELA_Intf.pas', + VARELA_Invk in 'VARELA_Invk.pas', + EDI_Reader in 'EDI\EDI_Reader.pas', + EDI_INVRPT in 'EDI\EDI_INVRPT.pas', + EDI_SLSRPT in 'EDI\EDI_SLSRPT.pas', + schEDILogClient_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogClient_Intf.pas', + schEDILogServer_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogServer_Intf.pas', + uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule}, + uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame}, + uConexionBD in 'Configuracion\uConexionBD.pas' {frConexionBD: TFrame}, + uConfGeneral in 'Configuracion\uConfGeneral.pas' {frConfGeneral: TFrame}, + uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion}, + uBizEDISales in 'Services\EDI_Sales\uBizEDISales.pas', + schEDISalesClient_Intf in 'Services\EDI_Sales\schEDISalesClient_Intf.pas', + schEDISalesServer_Intf in 'Services\EDI_Sales\schEDISalesServer_Intf.pas', + uConfFicherosEDI in 'Configuracion\uConfFicherosEDI.pas' {frConfFicherosEDI: TFrame}, + uDataModuleEDI_Sales in 'Services\EDI_Sales\uDataModuleEDI_Sales.pas' {dmEDISales: TDataModule}, + uDataTableUtils in '..\Base\uDataTableUtils.pas', + srvLogin_Impl in 'Services\Login\srvLogin_Impl.pas' {srvLogin: TDARemoteService}, + srvInformes_Impl in 'srvInformes_Impl.pas' {srvInformes: TDARemoteService}, + srvTransfereciaFicheros_Impl in 'Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.pas' {srvTransfereciaFicheros: TRORemoteDataModule}, + srvControles_Impl in '..\ControlesBase\Servidor\srvControles_Impl.pas' {srvControles: TDARemoteService}, + srvVentasEnProceso_Impl in '..\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.pas' {srvVentasEnProceso: TDARemoteService}, + schVentasEnProcesoClient_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoClient_Intf.pas', + schVentasEnProcesoServer_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoServer_Intf.pas', + uSchemaUtilsServer in 'uSchemaUtilsServer.pas', + srvVentasTerminadas_Impl in '..\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.pas' {srvVentasTerminadas: TDARemoteService}, + schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas', + srvReferenciaGenerica_Impl in '..\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.pas' {srvReferenciaGenerica: TDARemoteService}, + schReferenciaGenericaClient_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaClient_Intf.pas', + schReferenciaGenericaServer_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaServer_Intf.pas', + uBizReferenciaGenericaServer in '..\Modulos\ReferenciaGenerica\Reglas\uBizReferenciaGenericaServer.pas', + uDataModuleEDI_Inventary in 'Services\EDI_Inventary\uDataModuleEDI_Inventary.pas' {dmEDIInventary: TDataModule}, + schEDIInventaryClient_Intf in 'Services\EDI_Inventary\schEDIInventaryClient_Intf.pas', + schEDIInventaryServer_Intf in 'Services\EDI_Inventary\schEDIInventaryServer_Intf.pas', + uBizEDIInventary in 'Services\EDI_Inventary\uBizEDIInventary.pas', + EDI_Utils in 'EDI_Utils.pas', + srvRecepciones_Impl in '..\Modulos\Recepciones\Servidor\srvRecepciones_Impl.pas' {srvRecepciones: TDARemoteService}, + srvDevoluciones_Impl in '..\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.pas' {srvDevoluciones: TDARemoteService}, + srvTraspasos_Impl in '..\Modulos\Traspasos\Servidor\srvTraspasos_Impl.pas' {srvTraspasos: TDARemoteService}, + srvStock_Impl in '..\Modulos\Stock\Servidor\srvStock_Impl.pas' {srvStock: TDARemoteService}, + schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', + schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + srvParametros_Impl in '..\Modulos\Parametros\Servidor\srvParametros_Impl.pas' {srvParametros: TDARemoteService}, + schParametrosClient_Intf in '..\Modulos\Parametros\Reglas\schParametrosClient_Intf.pas', + schParametrosServer_Intf in '..\Modulos\Parametros\Reglas\schParametrosServer_Intf.pas', + EDI_Inventary_Impl in 'EDI_Inventary_Impl.pas', + EDI_Sales_Impl in 'EDI_Sales_Impl.pas', + EDI_Log_Impl in 'EDI_Log_Impl.pas', + schControlesClient_Intf in '..\ControlesBase\Reglas\schControlesClient_Intf.pas', + schControlesServer_Intf in '..\ControlesBase\Reglas\schControlesServer_Intf.pas', + RegExpr in 'RegExpr.pas'; + +{$R *.res} +{$R RODLFile.res} + +begin + Application.Initialize; + Application.Title := ''; + Application.CreateForm(TdmServer, dmServer); + Application.CreateForm(TServerForm, ServerForm); + Application.Run; +end. diff --git a/Source/Servidor/AdminPV_Server.drc b/Source/Servidor/AdminPV_Server.drc new file mode 100644 index 0000000..7d1135a --- /dev/null +++ b/Source/Servidor/AdminPV_Server.drc @@ -0,0 +1,2579 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +#define cxGridStrs_scxGridCustomizationFormColumnsPageCaption 64272 +#define cxGridStrs_scxGridGroupByBoxCaption 64273 +#define cxGridStrs_scxGridFilterCustomizeButtonCaption 64274 +#define cxGridStrs_scxGridColumnsQuickCustomizationHint 64275 +#define cxPCConsts_scxPCNoBaseImages 64288 +#define cxPCConsts_scxPCNoRegisteredStyles 64289 +#define cxPCConsts_scxPCPageIndexError 64290 +#define cxPCConsts_scxPCPainterClassError 64291 +#define cxPCConsts_scxPCTabCountEqualsZero 64292 +#define cxPCConsts_scxPCTabIndexError 64293 +#define cxPCConsts_scxPCTabVisibleIndexOutsOfBounds 64294 +#define cxPCConsts_scxPCVisibleTabListEmpty 64295 +#define cxPCConsts_scxPCAllowRotateError 64296 +#define cxGridStrs_scxGridDeletingConfirmationCaption 64297 +#define cxGridStrs_scxGridDeletingFocusedConfirmationText 64298 +#define cxGridStrs_scxGridDeletingSelectedConfirmationText 64299 +#define cxGridStrs_scxGridNoDataInfoText 64300 +#define cxGridStrs_scxGridNewItemRowInfoText 64301 +#define cxGridStrs_scxGridFilterIsEmpty 64302 +#define cxGridStrs_scxGridCustomizationFormCaption 64303 +#define MidConst_SErrorLoadingMidas 64304 +#define MidConst_SCannotCreateDataSet 64305 +#define MidConst_SNoConnectToBroker 64306 +#define MidConst_SNoParentConnection 64307 +#define MidConst_SInvalidOptParamType 64308 +#define MidConst_SConstraintFailed 64309 +#define MidConst_SField 64310 +#define MidConst_SRecConstFail 64311 +#define MidConst_SFieldConstFail 64312 +#define MidConst_SDefExprFail 64313 +#define MidConst_SNoEditsAllowed 64314 +#define MidConst_SNoDeletesAllowed 64315 +#define MidConst_SNoInsertsAllowed 64316 +#define MidConst_SConnectionMissing 64317 +#define MidConst_SNoCircularConnection 64318 +#define cxPCConsts_scxPCImageListIndexError 64319 +#define cxFilterControlStrs_cxSFilterDialogRows 64320 +#define cxFilterControlStrs_cxSFilterControlDialogCaption 64321 +#define cxFilterControlStrs_cxSFilterControlDialogNewFile 64322 +#define cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption 64323 +#define cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption 64324 +#define cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption 64325 +#define cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption 64326 +#define cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption 64327 +#define cxFilterControlStrs_cxSFilterControlDialogActionOkCaption 64328 +#define cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption 64329 +#define cxFilterControlStrs_cxSFilterControlDialogFileExt 64330 +#define cxFilterControlStrs_cxSFilterControlDialogFileFilter 64331 +#define MidConst_SNoDataProvider 64332 +#define MidConst_SInvalidDataPacket 64333 +#define MidConst_SRefreshError 64334 +#define MidConst_SNoCircularReference 64335 +#define cxFilterControlStrs_cxSFilterAddCondition 64336 +#define cxFilterControlStrs_cxSFilterAddGroup 64337 +#define cxFilterControlStrs_cxSFilterRemoveRow 64338 +#define cxFilterControlStrs_cxSFilterClearAll 64339 +#define cxFilterControlStrs_cxSFilterFooterAddCondition 64340 +#define cxFilterControlStrs_cxSFilterGroupCaption 64341 +#define cxFilterControlStrs_cxSFilterRootGroupCaption 64342 +#define cxFilterControlStrs_cxSFilterControlNullString 64343 +#define cxFilterControlStrs_cxSFilterErrorBuilding 64344 +#define cxFilterControlStrs_cxSFilterDialogCaption 64345 +#define cxFilterControlStrs_cxSFilterDialogInvalidValue 64346 +#define cxFilterControlStrs_cxSFilterDialogUse 64347 +#define cxFilterControlStrs_cxSFilterDialogSingleCharacter 64348 +#define cxFilterControlStrs_cxSFilterDialogCharactersSeries 64349 +#define cxFilterControlStrs_cxSFilterDialogOperationAnd 64350 +#define cxFilterControlStrs_cxSFilterDialogOperationOr 64351 +#define cxEditConsts_scxRegExprHexNumberExpected0 64352 +#define cxEditConsts_scxRegExprHexNumberExpected 64353 +#define cxEditConsts_scxRegExprMissing 64354 +#define cxEditConsts_scxRegExprUnnecessary 64355 +#define cxEditConsts_scxRegExprIncorrectSpace 64356 +#define cxEditConsts_scxRegExprNotCompiled 64357 +#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64358 +#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64359 +#define cxEditConsts_scxMaskEditRegExprError 64360 +#define cxEditConsts_scxMaskEditInvalidEditValue 64361 +#define cxEditConsts_cxSSpinEditInvalidNumericValue 64362 +#define cxFilterControlStrs_cxSFilterBoolOperatorAnd 64363 +#define cxFilterControlStrs_cxSFilterBoolOperatorOr 64364 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotAnd 64365 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotOr 64366 +#define cxFilterControlStrs_cxSFilterRootButtonCaption 64367 +#define cxEditConsts_scxSEditRepositoryTextItem 64368 +#define cxEditConsts_scxSEditRepositoryTimeItem 64369 +#define cxEditConsts_scxRegExprLine 64370 +#define cxEditConsts_scxRegExprChar 64371 +#define cxEditConsts_scxRegExprNotAssignedSourceStream 64372 +#define cxEditConsts_scxRegExprEmptySourceStream 64373 +#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64374 +#define cxEditConsts_scxRegExprCantUseStarQuantifier 64375 +#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64376 +#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64377 +#define cxEditConsts_scxRegExprIllegalSymbol 64378 +#define cxEditConsts_scxRegExprIllegalQuantifier 64379 +#define cxEditConsts_scxRegExprIllegalIntegerValue 64380 +#define cxEditConsts_scxRegExprTooBigReferenceNumber 64381 +#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64382 +#define cxEditConsts_scxRegExprSubrangeOrder 64383 +#define cxEditConsts_scxSEditRepositoryBlobItem 64384 +#define cxEditConsts_scxSEditRepositoryButtonItem 64385 +#define cxEditConsts_scxSEditRepositoryCalcItem 64386 +#define cxEditConsts_scxSEditRepositoryCheckBoxItem 64387 +#define cxEditConsts_scxSEditRepositoryComboBoxItem 64388 +#define cxEditConsts_scxSEditRepositoryCurrencyItem 64389 +#define cxEditConsts_scxSEditRepositoryDateItem 64390 +#define cxEditConsts_scxSEditRepositoryHyperLinkItem 64391 +#define cxEditConsts_scxSEditRepositoryImageComboBoxItem 64392 +#define cxEditConsts_scxSEditRepositoryImageItem 64393 +#define cxEditConsts_scxSEditRepositoryMaskItem 64394 +#define cxEditConsts_scxSEditRepositoryMemoItem 64395 +#define cxEditConsts_scxSEditRepositoryMRUItem 64396 +#define cxEditConsts_scxSEditRepositoryPopupItem 64397 +#define cxEditConsts_scxSEditRepositorySpinItem 64398 +#define cxEditConsts_scxSEditRepositoryRadioGroupItem 64399 +#define cxEditConsts_scxSHyperLinkPrefix 64400 +#define cxEditConsts_cxNavigatorHint_First 64401 +#define cxEditConsts_cxNavigatorHint_Prior 64402 +#define cxEditConsts_cxNavigatorHint_PriorPage 64403 +#define cxEditConsts_cxNavigatorHint_Next 64404 +#define cxEditConsts_cxNavigatorHint_NextPage 64405 +#define cxEditConsts_cxNavigatorHint_Last 64406 +#define cxEditConsts_cxNavigatorHint_Insert 64407 +#define cxEditConsts_cxNavigatorHint_Delete 64408 +#define cxEditConsts_cxNavigatorHint_Edit 64409 +#define cxEditConsts_cxNavigatorHint_Post 64410 +#define cxEditConsts_cxNavigatorHint_Cancel 64411 +#define cxEditConsts_cxNavigatorHint_Refresh 64412 +#define cxEditConsts_cxNavigatorHint_SaveBookmark 64413 +#define cxEditConsts_cxNavigatorHint_GotoBookmark 64414 +#define cxEditConsts_cxNavigatorHint_Filter 64415 +#define cxEditConsts_cxSDateTuesday 64416 +#define cxEditConsts_cxSDateWednesday 64417 +#define cxEditConsts_cxSDateThursday 64418 +#define cxEditConsts_cxSDateFriday 64419 +#define cxEditConsts_cxSDateSaturday 64420 +#define cxEditConsts_cxSDateFirst 64421 +#define cxEditConsts_cxSDateSecond 64422 +#define cxEditConsts_cxSDateThird 64423 +#define cxEditConsts_cxSDateFourth 64424 +#define cxEditConsts_cxSDateFifth 64425 +#define cxEditConsts_cxSDateSixth 64426 +#define cxEditConsts_cxSDateSeventh 64427 +#define cxEditConsts_cxSDateBOM 64428 +#define cxEditConsts_cxSDateEOM 64429 +#define cxEditConsts_cxSDateNow 64430 +#define cxEditConsts_scxSCalcError 64431 +#define cxEditConsts_cxSMenuItemCaptionCut 64432 +#define cxEditConsts_cxSMenuItemCaptionCopy 64433 +#define cxEditConsts_cxSMenuItemCaptionPaste 64434 +#define cxEditConsts_cxSMenuItemCaptionDelete 64435 +#define cxEditConsts_cxSMenuItemCaptionLoad 64436 +#define cxEditConsts_cxSMenuItemCaptionSave 64437 +#define cxEditConsts_cxSDatePopupClear 64438 +#define cxEditConsts_cxSDatePopupNow 64439 +#define cxEditConsts_cxSDatePopupOK 64440 +#define cxEditConsts_cxSDatePopupToday 64441 +#define cxEditConsts_cxSDateError 64442 +#define cxEditConsts_cxSDateToday 64443 +#define cxEditConsts_cxSDateYesterday 64444 +#define cxEditConsts_cxSDateTomorrow 64445 +#define cxEditConsts_cxSDateSunday 64446 +#define cxEditConsts_cxSDateMonday 64447 +#define cxEditConsts_cxSEditNumericValueConvertError 64448 +#define cxEditConsts_cxSEditPopupCircularReferencingError 64449 +#define cxEditConsts_cxSEditTimeConvertError 64450 +#define cxEditConsts_cxSEditValidateErrorText 64451 +#define cxEditConsts_cxSEditValueOutOfBounds 64452 +#define cxEditConsts_cxSEditCheckBoxChecked 64453 +#define cxEditConsts_cxSEditCheckBoxGrayed 64454 +#define cxEditConsts_cxSEditCheckBoxUnchecked 64455 +#define cxEditConsts_cxSRadioGroupDefaultCaption 64456 +#define cxEditConsts_cxSBlobButtonOK 64457 +#define cxEditConsts_cxSBlobButtonCancel 64458 +#define cxEditConsts_cxSBlobButtonClose 64459 +#define cxEditConsts_cxSBlobMemo 64460 +#define cxEditConsts_cxSBlobMemoEmpty 64461 +#define cxEditConsts_cxSBlobPicture 64462 +#define cxEditConsts_cxSBlobPictureEmpty 64463 +#define cxFilterConsts_cxSFilterNotCaption 64464 +#define cxFilterConsts_cxSFilterBlankCaption 64465 +#define cxFilterConsts_cxSFilterOperatorIsNull 64466 +#define cxFilterConsts_cxSFilterOperatorIsNotNull 64467 +#define cxFilterConsts_cxSFilterOperatorBeginsWith 64468 +#define cxFilterConsts_cxSFilterOperatorDoesNotBeginWith 64469 +#define cxFilterConsts_cxSFilterOperatorEndsWith 64470 +#define cxFilterConsts_cxSFilterOperatorDoesNotEndWith 64471 +#define cxFilterConsts_cxSFilterOperatorContains 64472 +#define cxFilterConsts_cxSFilterOperatorDoesNotContain 64473 +#define cxFilterConsts_cxSFilterBoxAllCaption 64474 +#define cxFilterConsts_cxSFilterBoxCustomCaption 64475 +#define cxFilterConsts_cxSFilterBoxBlanksCaption 64476 +#define cxFilterConsts_cxSFilterBoxNonBlanksCaption 64477 +#define cxEditConsts_cxSEditDateConvertError 64478 +#define cxEditConsts_cxSEditInvalidRepositoryItem 64479 +#define cxFilterConsts_cxSFilterOperatorLastMonth 64480 +#define cxFilterConsts_cxSFilterOperatorLastYear 64481 +#define cxFilterConsts_cxSFilterOperatorPast 64482 +#define cxFilterConsts_cxSFilterOperatorThisWeek 64483 +#define cxFilterConsts_cxSFilterOperatorThisMonth 64484 +#define cxFilterConsts_cxSFilterOperatorThisYear 64485 +#define cxFilterConsts_cxSFilterOperatorNext7Days 64486 +#define cxFilterConsts_cxSFilterOperatorNextWeek 64487 +#define cxFilterConsts_cxSFilterOperatorNext14Days 64488 +#define cxFilterConsts_cxSFilterOperatorNextTwoWeeks 64489 +#define cxFilterConsts_cxSFilterOperatorNext30Days 64490 +#define cxFilterConsts_cxSFilterOperatorNextMonth 64491 +#define cxFilterConsts_cxSFilterOperatorNextYear 64492 +#define cxFilterConsts_cxSFilterOperatorFuture 64493 +#define cxFilterConsts_cxSFilterAndCaption 64494 +#define cxFilterConsts_cxSFilterOrCaption 64495 +#define cxFilterConsts_cxSFilterOperatorGreater 64496 +#define cxFilterConsts_cxSFilterOperatorGreaterEqual 64497 +#define cxFilterConsts_cxSFilterOperatorLike 64498 +#define cxFilterConsts_cxSFilterOperatorNotLike 64499 +#define cxFilterConsts_cxSFilterOperatorBetween 64500 +#define cxFilterConsts_cxSFilterOperatorNotBetween 64501 +#define cxFilterConsts_cxSFilterOperatorInList 64502 +#define cxFilterConsts_cxSFilterOperatorNotInList 64503 +#define cxFilterConsts_cxSFilterOperatorYesterday 64504 +#define cxFilterConsts_cxSFilterOperatorToday 64505 +#define cxFilterConsts_cxSFilterOperatorTomorrow 64506 +#define cxFilterConsts_cxSFilterOperatorLast7Days 64507 +#define cxFilterConsts_cxSFilterOperatorLastWeek 64508 +#define cxFilterConsts_cxSFilterOperatorLast14Days 64509 +#define cxFilterConsts_cxSFilterOperatorLastTwoWeeks 64510 +#define cxFilterConsts_cxSFilterOperatorLast30Days 64511 +#define pnglang_EPNGCannotAddChunkText 64512 +#define pnglang_EPNGCannotAddInvalidImageText 64513 +#define pnglang_EPNGOutMemoryText 64514 +#define pnglang_EPNGHeaderNotPresentText 64515 +#define cxDataConsts_cxSDataReadError 64516 +#define cxDataConsts_cxSDataWriteError 64517 +#define cxDataConsts_cxSDataItemExistError 64518 +#define cxDataConsts_cxSDataRecordIndexError 64519 +#define cxDataConsts_cxSDataItemIndexError 64520 +#define cxDataConsts_cxSDataProviderModeError 64521 +#define cxDataConsts_cxSDataInvalidStreamFormat 64522 +#define cxDataConsts_cxSDataRowIndexError 64523 +#define cxFilterConsts_cxSFilterOperatorEqual 64524 +#define cxFilterConsts_cxSFilterOperatorNotEqual 64525 +#define cxFilterConsts_cxSFilterOperatorLess 64526 +#define cxFilterConsts_cxSFilterOperatorLessEqual 64527 +#define pnglang_EPngInvalidCRCText 64528 +#define pnglang_EPNGInvalidIHDRText 64529 +#define pnglang_EPNGMissingMultipleIDATText 64530 +#define pnglang_EPNGZLIBErrorText 64531 +#define pnglang_EPNGInvalidPaletteText 64532 +#define pnglang_EPNGInvalidFileHeaderText 64533 +#define pnglang_EPNGIHDRNotFirstText 64534 +#define pnglang_EPNGSizeExceedsText 64535 +#define pnglang_EPNGUnknownPalEntryText 64536 +#define pnglang_EPNGUnknownCriticalChunkText 64537 +#define pnglang_EPNGUnknownCompressionText 64538 +#define pnglang_EPNGUnknownInterlaceText 64539 +#define pnglang_EPNGCannotAssignChunkText 64540 +#define pnglang_EPNGUnexpectedEndText 64541 +#define pnglang_EPNGNoImageDataText 64542 +#define pnglang_EPNGCannotChangeSizeText 64543 +#define IBSQLMonitor_StrStartTransaction 64544 +#define IBSQLMonitor_StrApplication 64545 +#define ADOConst_SMissingConnection 64546 +#define ADOConst_SNoDetailFilter 64547 +#define ADOConst_SBookmarksRequired 64548 +#define ADOConst_SMissingCommandText 64549 +#define ADOConst_SNoResultSet 64550 +#define ADOConst_SADOCreateError 64551 +#define ADOConst_SEventsNotSupported 64552 +#define ADOConst_SUsupportedFieldType 64553 +#define ADOConst_SConnectionRequired 64554 +#define ADOConst_SCantRequery 64555 +#define ADOConst_SNoFilterOptions 64556 +#define ADOConst_SRecordsetNotOpen 64557 +#define ADOConst_sNameAttr 64558 +#define ADOConst_sValueAttr 64559 +#define IBSQLMonitor_StrError 64560 +#define IBSQLMonitor_StrAttach 64561 +#define IBSQLMonitor_StrDetach 64562 +#define IBSQLMonitor_StrQuery 64563 +#define IBSQLMonitor_StrStart 64564 +#define IBSQLMonitor_StrExecute 64565 +#define IBSQLMonitor_StrNULL 64566 +#define IBSQLMonitor_StrBLOB 64567 +#define IBSQLMonitor_StrFetch 64568 +#define IBSQLMonitor_StrPrepare 64569 +#define IBSQLMonitor_StrPlan 64570 +#define IBSQLMonitor_StrPlanCantRetrive 64571 +#define IBSQLMonitor_StrCommitHardComm 64572 +#define IBSQLMonitor_StrCommitRetaining 64573 +#define IBSQLMonitor_StrRollback 64574 +#define IBSQLMonitor_StrRollbackRetainin 64575 +#define IBXConst_SInvalidOnStatusResult 64576 +#define IBXConst_SDPBConstantUnknownEx 64577 +#define IBXConst_STPBConstantUnknownEx 64578 +#define IBXConst_SUnknownPlan 64579 +#define IBXConst_SFieldSizeMismatch 64580 +#define IBXConst_SEventAlreadyRegistered 64581 +#define IBXConst_SStringTooLarge 64582 +#define IBXConst_SNoTimers 64583 +#define IBXConst_SIB65feature 64584 +#define IBXConst_SLoginPromptFailure 64585 +#define IBXConst_SIB70feature 64586 +#define IBXConst_SIB71feature 64587 +#define IBXConst_SIB80feature 64588 +#define IBSQLMonitor_StrConnect 64589 +#define IBSQLMonitor_StrDisconnect 64590 +#define IBSQLMonitor_StrMisc 64591 +#define IBXConst_SSQLMonitorAlreadyPresent 64592 +#define IBXConst_SCantPrintValue 64593 +#define IBXConst_SEOFReached 64594 +#define IBXConst_SEOFInComment 64595 +#define IBXConst_SEOFInString 64596 +#define IBXConst_SParamNameExpected 64597 +#define IBXConst_SSuccess 64598 +#define IBXConst_SDelphiException 64599 +#define IBXConst_SNoOptionsSet 64600 +#define IBXConst_SNoDestinationDirectory 64601 +#define IBXConst_SNosourceDirectory 64602 +#define IBXConst_SNoUninstallFile 64603 +#define IBXConst_SOptionNeedsClient 64604 +#define IBXConst_SOptionNeedsServer 64605 +#define IBXConst_SInvalidOption 64606 +#define IBXConst_SInvalidOnErrorResult 64607 +#define IBXConst_SInvalidEvent 64608 +#define IBXConst_SMaximumEvents 64609 +#define IBXConst_SNoEventsRegistered 64610 +#define IBXConst_SInvalidQueueing 64611 +#define IBXConst_SInvalidRegistration 64612 +#define IBXConst_SInvalidBatchMove 64613 +#define IBXConst_SSQLDialectInvalid 64614 +#define IBXConst_SSPBConstantNotSupported 64615 +#define IBXConst_SSPBConstantUnknown 64616 +#define IBXConst_SServiceActive 64617 +#define IBXConst_SServiceInActive 64618 +#define IBXConst_SServerNameMissing 64619 +#define IBXConst_SQueryParamsError 64620 +#define IBXConst_SStartParamsError 64621 +#define IBXConst_SOutputParsingError 64622 +#define IBXConst_SUseSpecificProcedures 64623 +#define IBXConst_SEmptySQLStatement 64624 +#define IBXConst_SIsASelectStatement 64625 +#define IBXConst_SRequiredParamNotSet 64626 +#define IBXConst_SNoStoredProcName 64627 +#define IBXConst_SIsAExecuteProcedure 64628 +#define IBXConst_SUpdateFailed 64629 +#define IBXConst_SNotCachedUpdates 64630 +#define IBXConst_SNotLiveRequest 64631 +#define IBXConst_SNoProvider 64632 +#define IBXConst_SNoRecordsAffected 64633 +#define IBXConst_SNoTableName 64634 +#define IBXConst_SCannotCreatePrimaryIndex 64635 +#define IBXConst_SCannotDropSystemIndex 64636 +#define IBXConst_STableNameMismatch 64637 +#define IBXConst_SIndexFieldMissing 64638 +#define IBXConst_SInvalidCancellation 64639 +#define IBXConst_SCannotPost 64640 +#define IBXConst_SCannotUpdate 64641 +#define IBXConst_SCannotDelete 64642 +#define IBXConst_SCannotRefresh 64643 +#define IBXConst_SBufferNotSet 64644 +#define IBXConst_SCircularReference 64645 +#define IBXConst_SSQLParseError 64646 +#define IBXConst_SUserAbort 64647 +#define IBXConst_SDataSetUniDirectional 64648 +#define IBXConst_SCannotCreateSharedResource 64649 +#define IBXConst_SWindowsAPIError 64650 +#define IBXConst_SColumnListsDontMatch 64651 +#define IBXConst_SColumnTypesDontMatch 64652 +#define IBXConst_SCantEndSharedTransaction 64653 +#define IBXConst_SFieldUnsupportedType 64654 +#define IBXConst_SCircularDataLink 64655 +#define IBXConst_SDatasetOpen 64656 +#define IBXConst_SDatasetClosed 64657 +#define IBXConst_SUnknownSQLDataType 64658 +#define IBXConst_SInvalidColumnIndex 64659 +#define IBXConst_SInvalidParamColumnIndex 64660 +#define IBXConst_SInvalidDataConversion 64661 +#define IBXConst_SColumnIsNotNullable 64662 +#define IBXConst_SBlobCannotBeRead 64663 +#define IBXConst_SBlobCannotBeWritten 64664 +#define IBXConst_SEmptyQuery 64665 +#define IBXConst_SCannotOpenNonSQLSelect 64666 +#define IBXConst_SNoFieldAccess 64667 +#define IBXConst_SFieldReadOnly 64668 +#define IBXConst_SFieldNotFound 64669 +#define IBXConst_SNotEditing 64670 +#define IBXConst_SCannotInsert 64671 +#define IBXConst_SDatabaseNameMissing 64672 +#define IBXConst_SNotInTransaction 64673 +#define IBXConst_SInTransaction 64674 +#define IBXConst_STimeoutNegative 64675 +#define IBXConst_SNoDatabasesInTransaction 64676 +#define IBXConst_SUpdateWrongDB 64677 +#define IBXConst_SUpdateWrongTR 64678 +#define IBXConst_SDatabaseNotAssigned 64679 +#define IBXConst_STransactionNotAssigned 64680 +#define IBXConst_SXSQLDAIndexOutOfRange 64681 +#define IBXConst_SXSQLDANameDoesNotExist 64682 +#define IBXConst_SEOF 64683 +#define IBXConst_SBOF 64684 +#define IBXConst_SInvalidStatementHandle 64685 +#define IBXConst_SSQLOpen 64686 +#define IBXConst_SSQLClosed 64687 +#define IBXConst_SInterBaseMissing 64688 +#define IBXConst_SInterBaseInstallMissing 64689 +#define IBXConst_SIB60feature 64690 +#define IBXConst_SNotSupported 64691 +#define IBXConst_SNotPermitted 64692 +#define IBXConst_SFileAccessError 64693 +#define IBXConst_SConnectionTimeout 64694 +#define IBXConst_SCannotSetDatabase 64695 +#define IBXConst_SCannotSetTransaction 64696 +#define IBXConst_SOperationCancelled 64697 +#define IBXConst_SDPBConstantNotSupported 64698 +#define IBXConst_SDPBConstantUnknown 64699 +#define IBXConst_STPBConstantNotSupported 64700 +#define IBXConst_STPBConstantUnknown 64701 +#define IBXConst_SDatabaseClosed 64702 +#define IBXConst_SDatabaseOpen 64703 +#define uDARes_err_LoadPackageFailed 64704 +#define uDARes_err_InvalidDriverReference 64705 +#define uDARes_err_CannotFindStatement 64706 +#define uDARes_err_CannotFindDefaultItem 64707 +#define uDARes_err_PoolIsNotEmpty 64708 +#define uDARes_err_MaxPoolSizeReached 64709 +#define uDARes_err_LAMEDataset 64710 +#define uDARes_err_HETConnectionNotSupportedInV3 64711 +#define uDARes_err_DARDMInvalidSchema 64712 +#define uDARes_err_DARDMUnassignedAdapter 64713 +#define uDARes_err_DARDMConnectionIsNotAssigned 64714 +#define uDARes_err_DARDMCannotFindProxessorForDelta 64715 +#define uDARes_err_NeedShareMem 64716 +#define uDARes_err_ExecuteSQLCommandNotAllowed 64717 +#define uDARes_err_DatasetNotAccessible 64718 +#define IBXConst_SUnknownError 64719 +#define JvResources_RsHotLight 64720 +#define JvResources_RsMenuBar 64721 +#define JvResources_RsMenuHighlight 64722 +#define uDARes_err_ChangeLogAlreadyStarted 64723 +#define uDARes_err_NotAttachedToDataTable 64724 +#define uDARes_err_DriverProcAlreadyRegistered 64725 +#define uDARes_err_DriverManagerAlreadyCreated 64726 +#define uDARes_err_DriverManagerNotAssigned 64727 +#define uDARes_err_FieldTypeNotSupported 64728 +#define uDARes_err_InvalidDataset 64729 +#define uDARes_err_CannotFindItem 64730 +#define uDARes_err_DriverAlreadyLoaded 64731 +#define uDARes_err_InvalidDLL 64732 +#define uDARes_err_UnknownDriver 64733 +#define uDARes_err_FieldIsNotBound 64734 +#define uDARes_err_CannotFindField 64735 +#define JvResources_RsClInactiveBorder 64736 +#define JvResources_RsClAppWorkSpace 64737 +#define JvResources_RsClHighlight 64738 +#define JvResources_RsClHighlightText 64739 +#define JvResources_RsClBtnFace 64740 +#define JvResources_RsClBtnShadow 64741 +#define JvResources_RsClGrayText 64742 +#define JvResources_RsClBtnText 64743 +#define JvResources_RsClInactiveCaptionText 64744 +#define JvResources_RsClBtnHighlight 64745 +#define JvResources_RsCl3DDkShadow 64746 +#define JvResources_RsCl3DLight 64747 +#define JvResources_RsClInfoText 64748 +#define JvResources_RsClInfoBk 64749 +#define JvResources_RsGradientActiveCaption 64750 +#define JvResources_RsGradientInactiveCaption 64751 +#define JvResources_RsClLightYellow 64752 +#define JvResources_RsClLightGreen 64753 +#define JvResources_RsClLightTurquoise 64754 +#define JvResources_RsClPaleBlue 64755 +#define JvResources_RsClLavender 64756 +#define JvResources_RsClScrollBar 64757 +#define JvResources_RsClBackground 64758 +#define JvResources_RsClActiveCaption 64759 +#define JvResources_RsClInactiveCaption 64760 +#define JvResources_RsClMenu 64761 +#define JvResources_RsClWindow 64762 +#define JvResources_RsClWindowFrame 64763 +#define JvResources_RsClMenuText 64764 +#define JvResources_RsClWindowText 64765 +#define JvResources_RsClCaptionText 64766 +#define JvResources_RsClActiveBorder 64767 +#define JvResources_RsClDarkYellow 64768 +#define JvResources_RsClBlueGray 64769 +#define JvResources_RsClGray50 64770 +#define JvResources_RsClLightOrange 64771 +#define JvResources_RsClSeaGreen 64772 +#define JvResources_RsClLightBlue 64773 +#define JvResources_RsClViolet 64774 +#define JvResources_RsClGray40 64775 +#define JvResources_RsClPink 64776 +#define JvResources_RsClGold 64777 +#define JvResources_RsClBrightGreen 64778 +#define JvResources_RsClTurquoise 64779 +#define JvResources_RsClPlum 64780 +#define JvResources_RsClGray25 64781 +#define JvResources_RsClRose 64782 +#define JvResources_RsClTan 64783 +#define JvResources_RsClFuchsia 64784 +#define JvResources_RsClAqua 64785 +#define JvResources_RsClWhite 64786 +#define JvResources_RsClMoneyGreen 64787 +#define JvResources_RsClSkyBlue 64788 +#define JvResources_RsClCream 64789 +#define JvResources_RsClMedGray 64790 +#define JvResources_RsClBrown 64791 +#define JvResources_RsClOliveGreen 64792 +#define JvResources_RsClDarkGreen 64793 +#define JvResources_RsClDarkTeal 64794 +#define JvResources_RsClDarkBlue 64795 +#define JvResources_RsClIndigo 64796 +#define JvResources_RsClGray80 64797 +#define JvResources_RsClDarkRed 64798 +#define JvResources_RsClOrange 64799 +#define JvResources_RsEGIFVersion 64800 +#define JvResources_RsEPixelFormatNotImplemented 64801 +#define JvResources_RsEBitCountNotImplemented 64802 +#define JvResources_RsClBlack 64803 +#define JvResources_RsClMaroon 64804 +#define JvResources_RsClGreen 64805 +#define JvResources_RsClOlive 64806 +#define JvResources_RsClNavy 64807 +#define JvResources_RsClPurple 64808 +#define JvResources_RsClTeal 64809 +#define JvResources_RsClGray 64810 +#define JvResources_RsClSilver 64811 +#define JvResources_RsClRed 64812 +#define JvResources_RsClLime 64813 +#define JvResources_RsClYellow 64814 +#define JvResources_RsClBlue 64815 +#define JvResources_RsEUnableToCreateKey 64816 +#define JvResources_RsEEnumeratingRegistry 64817 +#define JvResources_RsEInvalidType 64818 +#define JvResources_RsEUnknownBaseType 64819 +#define JvResources_RsEInvalidPath 64820 +#define JvResources_RsENotAUniqueRootPath 64821 +#define JvResources_RsECircularReferenceOfStorages 64822 +#define JvResources_RsEShellNotCompatible 64823 +#define JvResources_RsGIFImage 64824 +#define JvResources_RsEChangeGIFSize 64825 +#define JvResources_RsENoGIFData 64826 +#define JvResources_RsEUnrecognizedGIFExt 64827 +#define JvResources_RsEWrongGIFColors 64828 +#define JvResources_RsEBadGIFCodeSize 64829 +#define JvResources_RsEGIFDecodeError 64830 +#define JvResources_RsEGIFEncodeError 64831 +#define JclResources_RsIntelCacheDescr7D 64832 +#define JclResources_RsIntelCacheDescr7F 64833 +#define JclResources_RsIntelCacheDescr82 64834 +#define JclResources_RsIntelCacheDescr83 64835 +#define JclResources_RsIntelCacheDescr84 64836 +#define JclResources_RsIntelCacheDescr85 64837 +#define JclResources_RsIntelCacheDescr86 64838 +#define JclResources_RsIntelCacheDescr87 64839 +#define JclResources_RsIntelCacheDescrB0 64840 +#define JclResources_RsIntelCacheDescrB3 64841 +#define JclResources_RsIntelCacheDescrB4 64842 +#define JclResources_RsIntelCacheDescrF0 64843 +#define JclResources_RsIntelCacheDescrF1 64844 +#define JvResources_RsAniExtension 64845 +#define JvResources_RsAniFilterName 64846 +#define JvResources_RsRootValueReplaceFmt 64847 +#define JclResources_RsIntelCacheDescr57 64848 +#define JclResources_RsIntelCacheDescr5B 64849 +#define JclResources_RsIntelCacheDescr5C 64850 +#define JclResources_RsIntelCacheDescr5D 64851 +#define JclResources_RsIntelCacheDescr60 64852 +#define JclResources_RsIntelCacheDescr66 64853 +#define JclResources_RsIntelCacheDescr67 64854 +#define JclResources_RsIntelCacheDescr68 64855 +#define JclResources_RsIntelCacheDescr70 64856 +#define JclResources_RsIntelCacheDescr71 64857 +#define JclResources_RsIntelCacheDescr72 64858 +#define JclResources_RsIntelCacheDescr78 64859 +#define JclResources_RsIntelCacheDescr79 64860 +#define JclResources_RsIntelCacheDescr7A 64861 +#define JclResources_RsIntelCacheDescr7B 64862 +#define JclResources_RsIntelCacheDescr7C 64863 +#define JclResources_RsIntelCacheDescr29 64864 +#define JclResources_RsIntelCacheDescr2C 64865 +#define JclResources_RsIntelCacheDescr30 64866 +#define JclResources_RsIntelCacheDescr40 64867 +#define JclResources_RsIntelCacheDescr41 64868 +#define JclResources_RsIntelCacheDescr42 64869 +#define JclResources_RsIntelCacheDescr43 64870 +#define JclResources_RsIntelCacheDescr44 64871 +#define JclResources_RsIntelCacheDescr45 64872 +#define JclResources_RsIntelCacheDescr46 64873 +#define JclResources_RsIntelCacheDescr47 64874 +#define JclResources_RsIntelCacheDescr49 64875 +#define JclResources_RsIntelCacheDescr50 64876 +#define JclResources_RsIntelCacheDescr51 64877 +#define JclResources_RsIntelCacheDescr52 64878 +#define JclResources_RsIntelCacheDescr56 64879 +#define JclResources_RsRTTIVarType 64880 +#define JclResources_RsDeclarationFormat 64881 +#define JclResources_RsIntelCacheDescr00 64882 +#define JclResources_RsIntelCacheDescr01 64883 +#define JclResources_RsIntelCacheDescr02 64884 +#define JclResources_RsIntelCacheDescr03 64885 +#define JclResources_RsIntelCacheDescr04 64886 +#define JclResources_RsIntelCacheDescr05 64887 +#define JclResources_RsIntelCacheDescr06 64888 +#define JclResources_RsIntelCacheDescr08 64889 +#define JclResources_RsIntelCacheDescr0A 64890 +#define JclResources_RsIntelCacheDescr0B 64891 +#define JclResources_RsIntelCacheDescr0C 64892 +#define JclResources_RsIntelCacheDescr22 64893 +#define JclResources_RsIntelCacheDescr23 64894 +#define JclResources_RsIntelCacheDescr25 64895 +#define JclResources_RsRTTIMinValue 64896 +#define JclResources_RsRTTIMaxValue 64897 +#define JclResources_RsRTTINameList 64898 +#define JclResources_RsRTTIClassName 64899 +#define JclResources_RsRTTIParent 64900 +#define JclResources_RsRTTIPropCount 64901 +#define JclResources_RsRTTIUnitName 64902 +#define JclResources_RsRTTIBasedOn 64903 +#define JclResources_RsRTTIFloatType 64904 +#define JclResources_RsRTTIMethodKind 64905 +#define JclResources_RsRTTIParamCount 64906 +#define JclResources_RsRTTIReturnType 64907 +#define JclResources_RsRTTIMaxLen 64908 +#define JclResources_RsRTTIElSize 64909 +#define JclResources_RsRTTIElType 64910 +#define JclResources_RsRTTIElNeedCleanup 64911 +#define JclResources_RsRTTITypeError 64912 +#define JclResources_RsRTTITypeInfoAt 64913 +#define JclResources_RsRTTIPropRead 64914 +#define JclResources_RsRTTIPropWrite 64915 +#define JclResources_RsRTTIPropStored 64916 +#define JclResources_RsRTTIField 64917 +#define JclResources_RsRTTIStaticMethod 64918 +#define JclResources_RsRTTIVirtualMethod 64919 +#define JclResources_RsRTTIIndex 64920 +#define JclResources_RsRTTIDefault 64921 +#define JclResources_RsRTTIName 64922 +#define JclResources_RsRTTIType 64923 +#define JclResources_RsRTTIFlags 64924 +#define JclResources_RsRTTIGUID 64925 +#define JclResources_RsRTTITypeKind 64926 +#define JclResources_RsRTTIOrdinalType 64927 +#define JclResources_RsHKCRShort 64928 +#define JclResources_RsHKCUShort 64929 +#define JclResources_RsHKLMShort 64930 +#define JclResources_RsHKUSShort 64931 +#define JclResources_RsHKPDShort 64932 +#define JclResources_RsHKCCShort 64933 +#define JclResources_RsHKDDShort 64934 +#define JclResources_RsRTTIValueOutOfRange 64935 +#define JclResources_RsRTTIUnknownIdentifier 64936 +#define JclResources_RsRTTIVar 64937 +#define JclResources_RsRTTIConst 64938 +#define JclResources_RsRTTIArrayOf 64939 +#define JclResources_RsRTTIOut 64940 +#define JclResources_RsRTTIOrdinal 64941 +#define JclResources_RsRTTITrue 64942 +#define JclResources_RsRTTIFalse 64943 +#define JConsts_sChangeJPGSize 64944 +#define JConsts_sJPEGError 64945 +#define JConsts_sJPEGImageFile 64946 +#define JclResources_RsFileUtilsNoVersionInfo 64947 +#define JclResources_RsUnableToOpenKeyRead 64948 +#define JclResources_RsUnableToOpenKeyWrite 64949 +#define JclResources_RsUnableToAccessValue 64950 +#define JclResources_RsWrongDataType 64951 +#define JclResources_RsInconsistentPath 64952 +#define JclResources_RsHKCRLong 64953 +#define JclResources_RsHKCULong 64954 +#define JclResources_RsHKLMLong 64955 +#define JclResources_RsHKUSLong 64956 +#define JclResources_RsHKPDLong 64957 +#define JclResources_RsHKCCLong 64958 +#define JclResources_RsHKDDLong 64959 +#define IdResourceStringsCore_RSConnectTimeout 64960 +#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 64961 +#define IdResourceStringsCore_RSAlreadyConnected 64962 +#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 64963 +#define IdResourceStringsCore_RSchedMaxThreadEx 64964 +#define IdResourceStringsCore_RSTransparentProxyCannotBind 64965 +#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 64966 +#define IdResourceStringsCore_RSBufferMissingTerminator 64967 +#define IdResourceStringsCore_RSBufferInvalidStartPos 64968 +#define IdResourceStringsCore_RSReplyInvalidCode 64969 +#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 64970 +#define IdResourceStringsCore_RSNoOnExecute 64971 +#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 64972 +#define ComStrs_sInvalidIndex 64973 +#define ComStrs_sInsertError 64974 +#define ComStrs_sUDAssociated 64975 +#define IdResourceStringsCore_RSSocksServerPermissionError 64976 +#define IdResourceStringsCore_RSSocksServerNetUnreachableError 64977 +#define IdResourceStringsCore_RSSocksServerHostUnreachableError 64978 +#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 64979 +#define IdResourceStringsCore_RSSocksServerTTLExpiredError 64980 +#define IdResourceStringsCore_RSSocksServerCommandError 64981 +#define IdResourceStringsCore_RSSocksServerAddressError 64982 +#define IdResourceStringsCore_RSInterceptCircularLink 64983 +#define IdResourceStringsCore_RSNotEnoughDataInBuffer 64984 +#define IdResourceStringsCore_RSTooMuchDataInBuffer 64985 +#define IdResourceStringsCore_RSFileNotFound 64986 +#define IdResourceStringsCore_RSNotConnected 64987 +#define IdResourceStringsCore_RSObjectTypeNotSupported 64988 +#define IdResourceStringsCore_RSIdNoDataToRead 64989 +#define IdResourceStringsCore_RSReadTimeout 64990 +#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 64991 +#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 64992 +#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 64993 +#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 64994 +#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 64995 +#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 64996 +#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 64997 +#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 64998 +#define IdResourceStringsCore_RSSocksUDPNotSupported 64999 +#define IdResourceStringsCore_RSSocksRequestFailed 65000 +#define IdResourceStringsCore_RSSocksRequestServerFailed 65001 +#define IdResourceStringsCore_RSSocksRequestIdentFailed 65002 +#define IdResourceStringsCore_RSSocksUnknownError 65003 +#define IdResourceStringsCore_RSSocksServerRespondError 65004 +#define IdResourceStringsCore_RSSocksAuthMethodError 65005 +#define IdResourceStringsCore_RSSocksAuthError 65006 +#define IdResourceStringsCore_RSSocksServerGeneralError 65007 +#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 65008 +#define IdResourceStringsProtocols_RSHTTPNotAcceptable 65009 +#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 65010 +#define IdResourceStringsProtocols_RSHTTPRequestTimeout 65011 +#define IdResourceStringsProtocols_RSHTTPConflict 65012 +#define IdResourceStringsProtocols_RSHTTPGone 65013 +#define IdResourceStringsProtocols_RSHTTPLengthRequired 65014 +#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 65015 +#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 65016 +#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 65017 +#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 65018 +#define IdResourceStringsProtocols_RSHTTPInternalServerError 65019 +#define IdResourceStringsProtocols_RSHTTPNotImplemented 65020 +#define IdResourceStringsProtocols_RSHTTPBadGateway 65021 +#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 65022 +#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 65023 +#define IdResourceStringsProtocols_RSHTTPOK 65024 +#define IdResourceStringsProtocols_RSHTTPCreated 65025 +#define IdResourceStringsProtocols_RSHTTPAccepted 65026 +#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 65027 +#define IdResourceStringsProtocols_RSHTTPNoContent 65028 +#define IdResourceStringsProtocols_RSHTTPResetContent 65029 +#define IdResourceStringsProtocols_RSHTTPPartialContent 65030 +#define IdResourceStringsProtocols_RSHTTPMovedPermanently 65031 +#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 65032 +#define IdResourceStringsProtocols_RSHTTPSeeOther 65033 +#define IdResourceStringsProtocols_RSHTTPNotModified 65034 +#define IdResourceStringsProtocols_RSHTTPUseProxy 65035 +#define IdResourceStringsProtocols_RSHTTPBadRequest 65036 +#define IdResourceStringsProtocols_RSHTTPUnauthorized 65037 +#define IdResourceStringsProtocols_RSHTTPForbidden 65038 +#define IdResourceStringsProtocols_RSHTTPNotFound 65039 +#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 65040 +#define IdResourceStrings_RSCannotBindRange 65041 +#define IdResourceStrings_RSConnectionClosedGracefully 65042 +#define IdResourceStrings_RSCouldNotBindSocket 65043 +#define IdResourceStrings_RSInvalidPortRange 65044 +#define IdResourceStrings_RSInvalidServiceName 65045 +#define IdResourceStrings_RSIPv6Unavailable 65046 +#define IdResourceStrings_RSInvalidIPv6Address 65047 +#define IdResourceStrings_RSIPVersionUnsupported 65048 +#define IdResourceStrings_RSNotAllBytesSent 65049 +#define IdResourceStrings_RSPackageSizeTooBig 65050 +#define IdResourceStrings_RSSetSizeExceeded 65051 +#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 65052 +#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 65053 +#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 65054 +#define IdResourceStringsProtocols_RSHTTPContinue 65055 +#define IdResourceStrings_RSStackENOBUFS 65056 +#define IdResourceStrings_RSStackEISCONN 65057 +#define IdResourceStrings_RSStackENOTCONN 65058 +#define IdResourceStrings_RSStackESHUTDOWN 65059 +#define IdResourceStrings_RSStackETOOMANYREFS 65060 +#define IdResourceStrings_RSStackETIMEDOUT 65061 +#define IdResourceStrings_RSStackECONNREFUSED 65062 +#define IdResourceStrings_RSStackELOOP 65063 +#define IdResourceStrings_RSStackENAMETOOLONG 65064 +#define IdResourceStrings_RSStackEHOSTDOWN 65065 +#define IdResourceStrings_RSStackEHOSTUNREACH 65066 +#define IdResourceStrings_RSStackENOTEMPTY 65067 +#define IdResourceStrings_RSStackHOST_NOT_FOUND 65068 +#define IdResourceStrings_RSStackClassUndefined 65069 +#define IdResourceStrings_RSStackAlreadyCreated 65070 +#define IdResourceStrings_RSAntiFreezeOnlyOne 65071 +#define IdResourceStrings_RSStackEDESTADDRREQ 65072 +#define IdResourceStrings_RSStackEMSGSIZE 65073 +#define IdResourceStrings_RSStackEPROTOTYPE 65074 +#define IdResourceStrings_RSStackENOPROTOOPT 65075 +#define IdResourceStrings_RSStackEPROTONOSUPPORT 65076 +#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65077 +#define IdResourceStrings_RSStackEOPNOTSUPP 65078 +#define IdResourceStrings_RSStackEPFNOSUPPORT 65079 +#define IdResourceStrings_RSStackEAFNOSUPPORT 65080 +#define IdResourceStrings_RSStackEADDRINUSE 65081 +#define IdResourceStrings_RSStackEADDRNOTAVAIL 65082 +#define IdResourceStrings_RSStackENETDOWN 65083 +#define IdResourceStrings_RSStackENETUNREACH 65084 +#define IdResourceStrings_RSStackENETRESET 65085 +#define IdResourceStrings_RSStackECONNABORTED 65086 +#define IdResourceStrings_RSStackECONNRESET 65087 +#define IdResourceStrings_RSStatusConnecting 65088 +#define IdResourceStrings_RSStatusConnected 65089 +#define IdResourceStrings_RSStatusDisconnecting 65090 +#define IdResourceStrings_RSStatusDisconnected 65091 +#define IdResourceStrings_RSStatusText 65092 +#define IdResourceStrings_RSStackError 65093 +#define IdResourceStrings_RSStackEINTR 65094 +#define IdResourceStrings_RSStackEBADF 65095 +#define IdResourceStrings_RSStackEACCES 65096 +#define IdResourceStrings_RSStackEFAULT 65097 +#define IdResourceStrings_RSStackEINVAL 65098 +#define IdResourceStrings_RSStackEMFILE 65099 +#define IdResourceStrings_RSStackEWOULDBLOCK 65100 +#define IdResourceStrings_RSStackEINPROGRESS 65101 +#define IdResourceStrings_RSStackEALREADY 65102 +#define IdResourceStrings_RSStackENOTSOCK 65103 +#define DBConsts_SProviderSQLNotSupported 65104 +#define DBConsts_SProviderExecuteNotSupported 65105 +#define DBConsts_SExprNoAggOnCalcs 65106 +#define DBConsts_SDataSetUnidirectional 65107 +#define DBConsts_SUnassignedVar 65108 +#define DBConsts_SRecordNotFound 65109 +#define DBConsts_SBcdOverflow 65110 +#define DBConsts_SInvalidBcdValue 65111 +#define DBConsts_SInvalidFormatType 65112 +#define DBConsts_SCouldNotParseTimeStamp 65113 +#define DBConsts_SInvalidSqlTimeStamp 65114 +#define IdResourceStrings_RSFailedTimeZoneInfo 65115 +#define IdResourceStrings_RSWinsockCallError 65116 +#define IdResourceStrings_RSWinsockLoadError 65117 +#define IdResourceStrings_RSWinsockInitializationError 65118 +#define IdResourceStrings_RSStatusResolving 65119 +#define DBConsts_SExprIncorrect 65120 +#define DBConsts_SExprNothing 65121 +#define DBConsts_SExprTypeMis 65122 +#define DBConsts_SExprBadScope 65123 +#define DBConsts_SExprNoArith 65124 +#define DBConsts_SExprNotAgg 65125 +#define DBConsts_SExprBadConst 65126 +#define DBConsts_SExprNoAggFilter 65127 +#define DBConsts_SExprEmptyInList 65128 +#define DBConsts_SInvalidKeywordUse 65129 +#define DBConsts_STextFalse 65130 +#define DBConsts_STextTrue 65131 +#define DBConsts_SParameterNotFound 65132 +#define DBConsts_SInvalidVersion 65133 +#define DBConsts_SBadFieldType 65134 +#define DBConsts_SAggActive 65135 +#define DBConsts_SNotEditing 65136 +#define DBConsts_SDataSetClosed 65137 +#define DBConsts_SDataSetEmpty 65138 +#define DBConsts_SDataSetReadOnly 65139 +#define DBConsts_SNestedDataSetClass 65140 +#define DBConsts_SExprTermination 65141 +#define DBConsts_SExprNameError 65142 +#define DBConsts_SExprStringError 65143 +#define DBConsts_SExprInvalidChar 65144 +#define DBConsts_SExprNoLParen 65145 +#define DBConsts_SExprNoRParen 65146 +#define DBConsts_SExprNoRParenOrComma 65147 +#define DBConsts_SExprExpected 65148 +#define DBConsts_SExprBadField 65149 +#define DBConsts_SExprBadNullTest 65150 +#define DBConsts_SExprRangeError 65151 +#define DBConsts_SFieldOutOfRange 65152 +#define DBConsts_SFieldRequired 65153 +#define DBConsts_SDataSetMissing 65154 +#define DBConsts_SInvalidCalcType 65155 +#define DBConsts_SFieldReadOnly 65156 +#define DBConsts_SFieldIndexError 65157 +#define DBConsts_SNoFieldIndexes 65158 +#define DBConsts_SNotIndexField 65159 +#define DBConsts_SIndexFieldMissing 65160 +#define DBConsts_SNoIndexForFields 65161 +#define DBConsts_SIndexNotFound 65162 +#define DBConsts_SCircularDataLink 65163 +#define DBConsts_SLookupInfoError 65164 +#define DBConsts_SDataSourceChange 65165 +#define DBConsts_SNoNestedMasterSource 65166 +#define DBConsts_SDataSetOpen 65167 +#define DBConsts_SInvalidFieldSize 65168 +#define DBConsts_SInvalidFieldKind 65169 +#define DBConsts_SUnknownFieldType 65170 +#define DBConsts_SFieldNameMissing 65171 +#define DBConsts_SDuplicateFieldName 65172 +#define DBConsts_SFieldNotFound 65173 +#define DBConsts_SFieldAccessError 65174 +#define DBConsts_SFieldValueError 65175 +#define DBConsts_SFieldRangeError 65176 +#define DBConsts_SBcdFieldRangeError 65177 +#define DBConsts_SInvalidIntegerValue 65178 +#define DBConsts_SInvalidBoolValue 65179 +#define DBConsts_SInvalidFloatValue 65180 +#define DBConsts_SFieldTypeMismatch 65181 +#define DBConsts_SFieldSizeMismatch 65182 +#define DBConsts_SInvalidVarByteArray 65183 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65184 +#define uRORes_err_TooManySessions 65185 +#define uRORes_err_DOMElementIsNIL 65186 +#define uRORes_err_CannotLoadXMLDocument 65187 +#define uRORes_err_ErrorCreatingMsXmlDoc 65188 +#define uRORes_err_NoXMLParsersAvailable 65189 +#define uRORes_err_IDispatchMarshalingNotSupported 65190 +#define uRORes_err_UnsupportedVariantType 65191 +#define uRORes_err_VariantIsNotArray 65192 +#define uRORes_err_InvalidVarArrayDimCount 65193 +#define uRORes_err_CannotFindParameter 65194 +#define uRORes_err_MessageNotAssigned 65195 +#define ComConst_SOleError 65196 +#define ComConst_SNoMethod 65197 +#define ComConst_SVarNotObject 65198 +#define ComConst_STooManyParams 65199 +#define uRORes_err_ClassFactoryNotFound 65200 +#define uRORes_err_IROMessageNotSupported 65201 +#define uRORes_err_ClassAlreadyRegistered 65202 +#define uRORes_err_UnknownClass 65203 +#define uRORes_err_UnknownProxyInterface 65204 +#define uRORes_err_DispatcherAlreadyAssigned 65205 +#define uRORes_err_CannotFindMessageDispatcher 65206 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65207 +#define uRORes_err_UnhandledException 65208 +#define uRORes_err_ChannelBusy 65209 +#define uRORes_err_ArrayIndexOutOfBounds 65210 +#define uRORes_err_InvalidHeader 65211 +#define uRORes_err_InvalidHeaderEncrypted 65212 +#define uRORes_err_UnknownClassInStream 65213 +#define uRORes_err_UnexpectedClassInStream 65214 +#define uRORes_err_SessionNotFound 65215 +#define uRORes_err_RodlNoOperationsDefined 65216 +#define uRORes_err_RodlUsedFileDoesNotExist 65217 +#define uRORes_err_RodlInvalidDataType 65218 +#define uRORes_err_RodlStructCannotBeNested 65219 +#define uRORes_err_RodlInvalidAncestorType 65220 +#define uRORes_str_ExceptionOnServer 65221 +#define uRORes_str_ExceptionReraisedFromServer 65222 +#define uRORes_err_AssignError 65223 +#define uRORes_err_InvalidRequestStream 65224 +#define uRORes_err_NILMessage 65225 +#define uRORes_err_UnspecifiedInterface 65226 +#define uRORes_err_UnspecifiedMessage 65227 +#define uRORes_err_UnknownMethod 65228 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65229 +#define uRORes_err_ParameterNotFound 65230 +#define uRORes_err_TypeNotSupported 65231 +#define uRODECConst_sFMT_XX 65232 +#define uRODECConst_sInvalidKeySize 65233 +#define uRODECConst_sNotInitialized 65234 +#define uRORes_err_InvalidIndex 65235 +#define uRORes_err_InvalidType 65236 +#define uRORes_err_InvalidLibrary 65237 +#define uRORes_err_InvalidStream 65238 +#define uRORes_err_InvalidTargetEntity 65239 +#define uRORes_err_InvalidParamFlag 65240 +#define uRORes_err_InvalidStringLength 65241 +#define uRORes_str_InvalidClassTypeInStream 65242 +#define uRORes_err_UnexpectedEndOfStream 65243 +#define uRORes_err_RodlDuplicateName 65244 +#define uRORes_err_RodlNoDataTypeSpecified 65245 +#define uRORes_err_RodlNoEnumValues 65246 +#define uRORes_err_RodlNoStructElementsDefined 65247 +#define Consts_SANSIEncoding 65248 +#define Consts_SASCIIEncoding 65249 +#define Consts_SUnicodeEncoding 65250 +#define Consts_SBigEndianEncoding 65251 +#define Consts_SUTF8Encoding 65252 +#define Consts_SUTF7Encoding 65253 +#define Consts_SWindowsVistaRequired 65254 +#define uRODECConst_sProtectionCircular 65255 +#define uRODECConst_sStringFormatExists 65256 +#define uRODECConst_sInvalidStringFormat 65257 +#define uRODECConst_sInvalidFormatString 65258 +#define uRODECConst_sFMT_COPY 65259 +#define uRODECConst_sFMT_HEX 65260 +#define uRODECConst_sFMT_HEXL 65261 +#define uRODECConst_sFMT_MIME64 65262 +#define uRODECConst_sFMT_UU 65263 +#define Consts_SInvalidMemoSize 65264 +#define Consts_SInvalidPrinterOp 65265 +#define Consts_SNoDefaultPrinter 65266 +#define Consts_SDuplicateMenus 65267 +#define Consts_SPictureLabel 65268 +#define Consts_SPictureDesc 65269 +#define Consts_SPreviewLabel 65270 +#define Consts_SDockedCtlNeedsName 65271 +#define Consts_SDockTreeRemoveError 65272 +#define Consts_SDockZoneNotFound 65273 +#define Consts_SDockZoneHasNoCtl 65274 +#define Consts_SDockZoneVersionConflict 65275 +#define Consts_SMultiSelectRequired 65276 +#define Consts_SSeparator 65277 +#define Consts_SErrorSettingCount 65278 +#define Consts_SListBoxMustBeVirtual 65279 +#define Consts_SmkcCtrl 65280 +#define Consts_SmkcAlt 65281 +#define Consts_srNone 65282 +#define Consts_SOutOfRange 65283 +#define Consts_sAllFilter 65284 +#define Consts_SInsertLineError 65285 +#define Consts_SConfirmCreateDir 65286 +#define Consts_SSelectDirCap 65287 +#define Consts_SDirNameCap 65288 +#define Consts_SDrivesCap 65289 +#define Consts_SDirsCap 65290 +#define Consts_SFilesCap 65291 +#define Consts_SNetworkCap 65292 +#define Consts_SInvalidClipFmt 65293 +#define Consts_SIconToClipboard 65294 +#define Consts_SCannotOpenClipboard 65295 +#define Consts_SmkcBkSp 65296 +#define Consts_SmkcTab 65297 +#define Consts_SmkcEsc 65298 +#define Consts_SmkcEnter 65299 +#define Consts_SmkcSpace 65300 +#define Consts_SmkcPgUp 65301 +#define Consts_SmkcPgDn 65302 +#define Consts_SmkcEnd 65303 +#define Consts_SmkcHome 65304 +#define Consts_SmkcLeft 65305 +#define Consts_SmkcUp 65306 +#define Consts_SmkcRight 65307 +#define Consts_SmkcDown 65308 +#define Consts_SmkcIns 65309 +#define Consts_SmkcDel 65310 +#define Consts_SmkcShift 65311 +#define Consts_SMaskEditErr 65312 +#define Consts_SMsgDlgWarning 65313 +#define Consts_SMsgDlgError 65314 +#define Consts_SMsgDlgInformation 65315 +#define Consts_SMsgDlgConfirm 65316 +#define Consts_SMsgDlgYes 65317 +#define Consts_SMsgDlgNo 65318 +#define Consts_SMsgDlgOK 65319 +#define Consts_SMsgDlgCancel 65320 +#define Consts_SMsgDlgHelp 65321 +#define Consts_SMsgDlgAbort 65322 +#define Consts_SMsgDlgRetry 65323 +#define Consts_SMsgDlgIgnore 65324 +#define Consts_SMsgDlgAll 65325 +#define Consts_SMsgDlgNoToAll 65326 +#define Consts_SMsgDlgYesToAll 65327 +#define Consts_SOKButton 65328 +#define Consts_SCancelButton 65329 +#define Consts_SYesButton 65330 +#define Consts_SNoButton 65331 +#define Consts_SHelpButton 65332 +#define Consts_SCloseButton 65333 +#define Consts_SIgnoreButton 65334 +#define Consts_SRetryButton 65335 +#define Consts_SAbortButton 65336 +#define Consts_SAllButton 65337 +#define Consts_SCannotDragForm 65338 +#define Consts_SVMetafiles 65339 +#define Consts_SVEnhMetafiles 65340 +#define Consts_SVIcons 65341 +#define Consts_SVBitmaps 65342 +#define Consts_SMaskErr 65343 +#define Consts_SMDIChildNotVisible 65344 +#define Consts_SVisibleChanged 65345 +#define Consts_SCannotShowModal 65346 +#define Consts_SScrollBarRange 65347 +#define Consts_SPropertyOutOfRange 65348 +#define Consts_SMenuIndexError 65349 +#define Consts_SMenuReinserted 65350 +#define Consts_SMenuNotFound 65351 +#define Consts_SNoTimers 65352 +#define Consts_SNotPrinting 65353 +#define Consts_SPrinting 65354 +#define Consts_SInvalidPrinter 65355 +#define Consts_SDeviceOnPort 65356 +#define Consts_SGroupIndexTooLow 65357 +#define Consts_SNoMDIForm 65358 +#define Consts_SControlParentSetToSelf 65359 +#define Consts_SChangeIconSize 65360 +#define Consts_SUnknownExtension 65361 +#define Consts_SUnknownClipboardFormat 65362 +#define Consts_SOutOfResources 65363 +#define Consts_SNoCanvasHandle 65364 +#define Consts_SInvalidImageSize 65365 +#define Consts_SInvalidImageList 65366 +#define Consts_SReplaceImage 65367 +#define Consts_SImageIndexError 65368 +#define Consts_SImageReadFail 65369 +#define Consts_SImageWriteFail 65370 +#define Consts_SWindowDCError 65371 +#define Consts_SWindowClass 65372 +#define Consts_SCannotFocus 65373 +#define Consts_SParentRequired 65374 +#define Consts_SParentGivenNotAParent 65375 +#define RTLConsts_SUnknownGroup 65376 +#define RTLConsts_SUnknownProperty 65377 +#define RTLConsts_SWriteError 65378 +#define RTLConsts_SThreadCreateError 65379 +#define RTLConsts_SThreadError 65380 +#define HelpIntfs_hNoTableOfContents 65381 +#define HelpIntfs_hNothingFound 65382 +#define HelpIntfs_hNoContext 65383 +#define HelpIntfs_hNoContextFound 65384 +#define HelpIntfs_hNoTopics 65385 +#define Consts_SInvalidBitmap 65386 +#define Consts_SInvalidIcon 65387 +#define Consts_SInvalidMetafile 65388 +#define Consts_SInvalidPixelFormat 65389 +#define Consts_SInvalidImage 65390 +#define Consts_SScanLine 65391 +#define RTLConsts_SInvalidPropertyType 65392 +#define RTLConsts_SInvalidPropertyValue 65393 +#define RTLConsts_SInvalidRegType 65394 +#define RTLConsts_SListCapacityError 65395 +#define RTLConsts_SListCountError 65396 +#define RTLConsts_SListIndexError 65397 +#define RTLConsts_SMemoryStreamError 65398 +#define RTLConsts_SPropertyException 65399 +#define RTLConsts_SReadError 65400 +#define RTLConsts_SReadOnlyProperty 65401 +#define RTLConsts_SRegCreateFailed 65402 +#define RTLConsts_SRegGetDataFailed 65403 +#define RTLConsts_SRegSetDataFailed 65404 +#define RTLConsts_SResNotFound 65405 +#define RTLConsts_SSeekNotImplemented 65406 +#define RTLConsts_SSortedListError 65407 +#define RTLConsts_SCantWriteResourceStreamError 65408 +#define RTLConsts_SCheckSynchronizeError 65409 +#define RTLConsts_SClassNotFound 65410 +#define RTLConsts_SDuplicateClass 65411 +#define RTLConsts_SDuplicateItem 65412 +#define RTLConsts_SDuplicateName 65413 +#define RTLConsts_SDuplicateString 65414 +#define RTLConsts_SFCreateErrorEx 65415 +#define RTLConsts_SFOpenErrorEx 65416 +#define RTLConsts_SIniFileWriteError 65417 +#define RTLConsts_SInvalidFileName 65418 +#define RTLConsts_SInvalidImage 65419 +#define RTLConsts_SInvalidName 65420 +#define RTLConsts_SInvalidProperty 65421 +#define RTLConsts_SInvalidPropertyElement 65422 +#define RTLConsts_SInvalidPropertyPath 65423 +#define SysConst_SShortDayNameTue 65424 +#define SysConst_SShortDayNameWed 65425 +#define SysConst_SShortDayNameThu 65426 +#define SysConst_SShortDayNameFri 65427 +#define SysConst_SShortDayNameSat 65428 +#define SysConst_SLongDayNameSun 65429 +#define SysConst_SLongDayNameMon 65430 +#define SysConst_SLongDayNameTue 65431 +#define SysConst_SLongDayNameWed 65432 +#define SysConst_SLongDayNameThu 65433 +#define SysConst_SLongDayNameFri 65434 +#define SysConst_SLongDayNameSat 65435 +#define SysConst_SCannotCreateDir 65436 +#define RTLConsts_SAncestorNotFound 65437 +#define RTLConsts_SAssignError 65438 +#define RTLConsts_SBitsIndexError 65439 +#define SysConst_SShortMonthNameNov 65440 +#define SysConst_SShortMonthNameDec 65441 +#define SysConst_SLongMonthNameJan 65442 +#define SysConst_SLongMonthNameFeb 65443 +#define SysConst_SLongMonthNameMar 65444 +#define SysConst_SLongMonthNameApr 65445 +#define SysConst_SLongMonthNameMay 65446 +#define SysConst_SLongMonthNameJun 65447 +#define SysConst_SLongMonthNameJul 65448 +#define SysConst_SLongMonthNameAug 65449 +#define SysConst_SLongMonthNameSep 65450 +#define SysConst_SLongMonthNameOct 65451 +#define SysConst_SLongMonthNameNov 65452 +#define SysConst_SLongMonthNameDec 65453 +#define SysConst_SShortDayNameSun 65454 +#define SysConst_SShortDayNameMon 65455 +#define SysConst_SAssertError 65456 +#define SysConst_SAbstractError 65457 +#define SysConst_SModuleAccessViolation 65458 +#define SysConst_SOSError 65459 +#define SysConst_SUnkOSError 65460 +#define SysConst_SNL 65461 +#define SysConst_SShortMonthNameJan 65462 +#define SysConst_SShortMonthNameFeb 65463 +#define SysConst_SShortMonthNameMar 65464 +#define SysConst_SShortMonthNameApr 65465 +#define SysConst_SShortMonthNameMay 65466 +#define SysConst_SShortMonthNameJun 65467 +#define SysConst_SShortMonthNameJul 65468 +#define SysConst_SShortMonthNameAug 65469 +#define SysConst_SShortMonthNameSep 65470 +#define SysConst_SShortMonthNameOct 65471 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65472 +#define SysConst_SVarTypeOutOfRangeWithPrefix 65473 +#define SysConst_SVarTypeAlreadyUsedWithPrefix 65474 +#define SysConst_SVarTypeNotUsableWithPrefix 65475 +#define SysConst_SVarTypeTooManyCustom 65476 +#define SysConst_SVarTypeCouldNotConvert 65477 +#define SysConst_SVarTypeConvertOverflow 65478 +#define SysConst_SVarOverflow 65479 +#define SysConst_SVarInvalid 65480 +#define SysConst_SVarBadType 65481 +#define SysConst_SVarNotImplemented 65482 +#define SysConst_SVarUnexpected 65483 +#define SysConst_SExternalException 65484 +#define SysConst_SAssertionFailed 65485 +#define SysConst_SIntfCastError 65486 +#define SysConst_SSafecallException 65487 +#define SysConst_SOperationAborted 65488 +#define SysConst_SException 65489 +#define SysConst_SExceptTitle 65490 +#define SysConst_SInvalidFormat 65491 +#define SysConst_SArgumentMissing 65492 +#define SysConst_SDispatchError 65493 +#define SysConst_SReadAccess 65494 +#define SysConst_SWriteAccess 65495 +#define SysConst_SFormatTooLong 65496 +#define SysConst_SVarArrayCreate 65497 +#define SysConst_SVarArrayBounds 65498 +#define SysConst_SVarArrayLocked 65499 +#define SysConst_SVarArrayWithHResult 65500 +#define SysConst_SInvalidVarCast 65501 +#define SysConst_SInvalidVarOp 65502 +#define SysConst_SInvalidVarNullOp 65503 +#define SysConst_SDiskFull 65504 +#define SysConst_SInvalidInput 65505 +#define SysConst_SDivByZero 65506 +#define SysConst_SRangeError 65507 +#define SysConst_SIntOverflow 65508 +#define SysConst_SInvalidOp 65509 +#define SysConst_SZeroDivide 65510 +#define SysConst_SOverflow 65511 +#define SysConst_SUnderflow 65512 +#define SysConst_SInvalidPointer 65513 +#define SysConst_SInvalidCast 65514 +#define SysConst_SAccessViolationArg3 65515 +#define SysConst_SAccessViolationNoArg 65516 +#define SysConst_SStackOverflow 65517 +#define SysConst_SControlC 65518 +#define SysConst_SPrivilege 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SInvalidFloat 65521 +#define SysConst_SInvalidDate 65522 +#define SysConst_SInvalidTime 65523 +#define SysConst_SInvalidDateTime 65524 +#define SysConst_SInvalidTimeStamp 65525 +#define SysConst_SInvalidGUID 65526 +#define SysConst_STimeEncodeError 65527 +#define SysConst_SDateEncodeError 65528 +#define SysConst_SOutOfMemory 65529 +#define SysConst_SInOutError 65530 +#define SysConst_SFileNotFound 65531 +#define SysConst_SInvalidFilename 65532 +#define SysConst_STooManyOpenFiles 65533 +#define SysConst_SAccessDenied 65534 +#define SysConst_SEndOfFile 65535 +STRINGTABLE +BEGIN + cxGridStrs_scxGridCustomizationFormColumnsPageCaption, "Columns" + cxGridStrs_scxGridGroupByBoxCaption, "Drag a column header here to group by that column" + cxGridStrs_scxGridFilterCustomizeButtonCaption, "Customize..." + cxGridStrs_scxGridColumnsQuickCustomizationHint, "Click here to select visible columns" + cxPCConsts_scxPCNoBaseImages, "BaseImages is not assigned" + cxPCConsts_scxPCNoRegisteredStyles, "There are no styles registered" + cxPCConsts_scxPCPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d" + cxPCConsts_scxPCPainterClassError, "PCPainterClass is nil" + cxPCConsts_scxPCTabCountEqualsZero, "Tabs.Count = 0" + cxPCConsts_scxPCTabIndexError, "Tab's index (%d) out of bounds" + cxPCConsts_scxPCTabVisibleIndexOutsOfBounds, "TabVisibleIndex (%d) must be between 0 and %d" + cxPCConsts_scxPCVisibleTabListEmpty, "There are no visible tabs" + cxPCConsts_scxPCAllowRotateError, "%s style does not support rotation of tabs" + cxGridStrs_scxGridDeletingConfirmationCaption, "Confirm" + cxGridStrs_scxGridDeletingFocusedConfirmationText, "Delete record?" + cxGridStrs_scxGridDeletingSelectedConfirmationText, "Delete all selected records?" + cxGridStrs_scxGridNoDataInfoText, "" + cxGridStrs_scxGridNewItemRowInfoText, "Click here to add a new row" + cxGridStrs_scxGridFilterIsEmpty, "" + cxGridStrs_scxGridCustomizationFormCaption, "Customization" + MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" + MidConst_SCannotCreateDataSet, "No fields defined. Cannot create dataset" + MidConst_SNoConnectToBroker, "Connection not allowed to TConnectionBroker" + MidConst_SNoParentConnection, "ParentConnection is not assigned" + MidConst_SInvalidOptParamType, "Value cannot be stored in an optional parameter" + MidConst_SConstraintFailed, "Record or field constraint failed." + MidConst_SField, "Field" + MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\"" + MidConst_SFieldConstFail, "Preparation of field constraint failed with error \"%s\"" + MidConst_SDefExprFail, "Preparation of default expression failed with error \"%s\"" + MidConst_SNoEditsAllowed, "Modifications are not allowed" + MidConst_SNoDeletesAllowed, "Deletes are not allowed" + MidConst_SNoInsertsAllowed, "Inserts are not allowed" + MidConst_SConnectionMissing, "Requires Connection before opening" + MidConst_SNoCircularConnection, "Circular reference to Connection not allowed" + cxPCConsts_scxPCImageListIndexError, "Index (%d) must be between 0 and %d" + cxFilterControlStrs_cxSFilterDialogRows, "Show rows where:" + cxFilterControlStrs_cxSFilterControlDialogCaption, "Filter builder" + cxFilterControlStrs_cxSFilterControlDialogNewFile, "untitled.flt" + cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption, "Open an existing filter" + cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption, "Save the active filter to file" + cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption, "&Save As..." + cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption, "&Open..." + cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption, "&Apply" + cxFilterControlStrs_cxSFilterControlDialogActionOkCaption, "OK" + cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption, "Cancel" + cxFilterControlStrs_cxSFilterControlDialogFileExt, "flt" + cxFilterControlStrs_cxSFilterControlDialogFileFilter, "Filters (*.flt)|*.flt" + MidConst_SNoDataProvider, "Missing data provider or data packet" + MidConst_SInvalidDataPacket, "Invalid data packet" + MidConst_SRefreshError, "Must apply updates before refreshing data" + MidConst_SNoCircularReference, "Circular provider references not allowed" + cxFilterControlStrs_cxSFilterAddCondition, "Add &Condition" + cxFilterControlStrs_cxSFilterAddGroup, "Add &Group" + cxFilterControlStrs_cxSFilterRemoveRow, "&Remove Row" + cxFilterControlStrs_cxSFilterClearAll, "Clear &All" + cxFilterControlStrs_cxSFilterFooterAddCondition, "press the button to add a new condition" + cxFilterControlStrs_cxSFilterGroupCaption, "applies to the following conditions" + cxFilterControlStrs_cxSFilterRootGroupCaption, "" + cxFilterControlStrs_cxSFilterControlNullString, "" + cxFilterControlStrs_cxSFilterErrorBuilding, "Can't build filter from source" + cxFilterControlStrs_cxSFilterDialogCaption, "Custom Filter" + cxFilterControlStrs_cxSFilterDialogInvalidValue, "Invalid value" + cxFilterControlStrs_cxSFilterDialogUse, "Use" + cxFilterControlStrs_cxSFilterDialogSingleCharacter, "to represent any single character" + cxFilterControlStrs_cxSFilterDialogCharactersSeries, "to represent any series of characters" + cxFilterControlStrs_cxSFilterDialogOperationAnd, "AND" + cxFilterControlStrs_cxSFilterDialogOperationOr, "OR" + cxEditConsts_scxRegExprHexNumberExpected0, "Hexadecimal number expected" + cxEditConsts_scxRegExprHexNumberExpected, "Hexadecimal number expected but '%s' found" + cxEditConsts_scxRegExprMissing, "Missing '%s'" + cxEditConsts_scxRegExprUnnecessary, "Unnecessary '%s'" + cxEditConsts_scxRegExprIncorrectSpace, "The space character is not allowed after '\\'" + cxEditConsts_scxRegExprNotCompiled, "Regular expression is not compiled" + cxEditConsts_scxRegExprIncorrectParameterQuantifier, "Incorrect parameter quantifier" + cxEditConsts_scxRegExprCantUseParameterQuantifier, "The parameter quantifier cannot be applied here" + cxEditConsts_scxMaskEditRegExprError, "Regular expression errors:" + cxEditConsts_scxMaskEditInvalidEditValue, "The edit value is invalid" + cxEditConsts_cxSSpinEditInvalidNumericValue, "Invalid numeric value" + cxFilterControlStrs_cxSFilterBoolOperatorAnd, "AND" + cxFilterControlStrs_cxSFilterBoolOperatorOr, "OR" + cxFilterControlStrs_cxSFilterBoolOperatorNotAnd, "NOT AND" + cxFilterControlStrs_cxSFilterBoolOperatorNotOr, "NOT OR" + cxFilterControlStrs_cxSFilterRootButtonCaption, "Filter" + cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor" + cxEditConsts_scxSEditRepositoryTimeItem, "TimeEdit|Represents an editor displaying time values" + cxEditConsts_scxRegExprLine, "Line" + cxEditConsts_scxRegExprChar, "Char" + cxEditConsts_scxRegExprNotAssignedSourceStream, "The source stream is not assigned" + cxEditConsts_scxRegExprEmptySourceStream, "The source stream is empty" + cxEditConsts_scxRegExprCantUsePlusQuantifier, "The '+' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantUseStarQuantifier, "The '*' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantCreateEmptyAlt, "The alternative should not be empty" + cxEditConsts_scxRegExprCantCreateEmptyBlock, "The block should not be empty" + cxEditConsts_scxRegExprIllegalSymbol, "Illegal '%s'" + cxEditConsts_scxRegExprIllegalQuantifier, "Illegal quantifier '%s'" + cxEditConsts_scxRegExprIllegalIntegerValue, "Illegal integer value" + cxEditConsts_scxRegExprTooBigReferenceNumber, "Too big reference number" + cxEditConsts_scxRegExprCantCreateEmptyEnum, "Can't create empty enumeration" + cxEditConsts_scxRegExprSubrangeOrder, "The starting character of the subrange must be less than the finishing one" + cxEditConsts_scxSEditRepositoryBlobItem, "BlobEdit|Represents the BLOB editor" + cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons" + cxEditConsts_scxSEditRepositoryCalcItem, "CalcEdit|Represents an edit control with a dropdown calculator window" + cxEditConsts_scxSEditRepositoryCheckBoxItem, "CheckBox|Represents a check box control that allows selecting an option" + cxEditConsts_scxSEditRepositoryComboBoxItem, "ComboBox|Represents the combo box editor" + cxEditConsts_scxSEditRepositoryCurrencyItem, "CurrencyEdit|Represents an editor enabling editing currency data" + cxEditConsts_scxSEditRepositoryDateItem, "DateEdit|Represents an edit control with a dropdown calendar" + cxEditConsts_scxSEditRepositoryHyperLinkItem, "HyperLink|Represents a text editor with hyperlink functionality" + cxEditConsts_scxSEditRepositoryImageComboBoxItem, "ImageComboBox|Represents an editor displaying the list of images and text strings within the dropdown window" + cxEditConsts_scxSEditRepositoryImageItem, "Image|Represents an image editor" + cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control." + cxEditConsts_scxSEditRepositoryMemoItem, "Memo|Represents an edit control that allows editing memo data" + cxEditConsts_scxSEditRepositoryMRUItem, "MRUEdit|Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window" + cxEditConsts_scxSEditRepositoryPopupItem, "PopupEdit|Represents an edit control with a dropdown list" + cxEditConsts_scxSEditRepositorySpinItem, "SpinEdit|Represents a spin editor" + cxEditConsts_scxSEditRepositoryRadioGroupItem, "RadioGroup|Represents a group of radio buttons" + cxEditConsts_scxSHyperLinkPrefix, "http://" + cxEditConsts_cxNavigatorHint_First, "First record" + cxEditConsts_cxNavigatorHint_Prior, "Prior record" + cxEditConsts_cxNavigatorHint_PriorPage, "Prior page" + cxEditConsts_cxNavigatorHint_Next, "Next record" + cxEditConsts_cxNavigatorHint_NextPage, "Next page" + cxEditConsts_cxNavigatorHint_Last, "Last record" + cxEditConsts_cxNavigatorHint_Insert, "Insert record" + cxEditConsts_cxNavigatorHint_Delete, "Delete record" + cxEditConsts_cxNavigatorHint_Edit, "Edit record" + cxEditConsts_cxNavigatorHint_Post, "Post edit" + cxEditConsts_cxNavigatorHint_Cancel, "Cancel edit" + cxEditConsts_cxNavigatorHint_Refresh, "Refresh data" + cxEditConsts_cxNavigatorHint_SaveBookmark, "Save Bookmark" + cxEditConsts_cxNavigatorHint_GotoBookmark, "Goto Bookmark" + cxEditConsts_cxNavigatorHint_Filter, "Filter data" + cxEditConsts_cxSDateTuesday, "Tuesday" + cxEditConsts_cxSDateWednesday, "Wednesday" + cxEditConsts_cxSDateThursday, "Thursday" + cxEditConsts_cxSDateFriday, "Friday" + cxEditConsts_cxSDateSaturday, "Saturday" + cxEditConsts_cxSDateFirst, "first" + cxEditConsts_cxSDateSecond, "second" + cxEditConsts_cxSDateThird, "third" + cxEditConsts_cxSDateFourth, "fourth" + cxEditConsts_cxSDateFifth, "fifth" + cxEditConsts_cxSDateSixth, "sixth" + cxEditConsts_cxSDateSeventh, "seventh" + cxEditConsts_cxSDateBOM, "bom" + cxEditConsts_cxSDateEOM, "eom" + cxEditConsts_cxSDateNow, "now" + cxEditConsts_scxSCalcError, "Error" + cxEditConsts_cxSMenuItemCaptionCut, "Cu&t" + cxEditConsts_cxSMenuItemCaptionCopy, "&Copy" + cxEditConsts_cxSMenuItemCaptionPaste, "&Paste" + cxEditConsts_cxSMenuItemCaptionDelete, "&Delete" + cxEditConsts_cxSMenuItemCaptionLoad, "&Load..." + cxEditConsts_cxSMenuItemCaptionSave, "Save &As..." + cxEditConsts_cxSDatePopupClear, "Clear" + cxEditConsts_cxSDatePopupNow, "Now" + cxEditConsts_cxSDatePopupOK, "OK" + cxEditConsts_cxSDatePopupToday, "Today" + cxEditConsts_cxSDateError, "Invalid Date" + cxEditConsts_cxSDateToday, "today" + cxEditConsts_cxSDateYesterday, "yesterday" + cxEditConsts_cxSDateTomorrow, "tomorrow" + cxEditConsts_cxSDateSunday, "Sunday" + cxEditConsts_cxSDateMonday, "Monday" + cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" + cxEditConsts_cxSEditPopupCircularReferencingError, "Circular referencing is not allowed" + cxEditConsts_cxSEditTimeConvertError, "Could not convert to time" + cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes" + cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds" + cxEditConsts_cxSEditCheckBoxChecked, "True" + cxEditConsts_cxSEditCheckBoxGrayed, "" + cxEditConsts_cxSEditCheckBoxUnchecked, "False" + cxEditConsts_cxSRadioGroupDefaultCaption, "" + cxEditConsts_cxSBlobButtonOK, "&OK" + cxEditConsts_cxSBlobButtonCancel, "&Cancel" + cxEditConsts_cxSBlobButtonClose, "&Close" + cxEditConsts_cxSBlobMemo, "(MEMO)" + cxEditConsts_cxSBlobMemoEmpty, "(memo)" + cxEditConsts_cxSBlobPicture, "(PICTURE)" + cxEditConsts_cxSBlobPictureEmpty, "(picture)" + cxFilterConsts_cxSFilterNotCaption, "not" + cxFilterConsts_cxSFilterBlankCaption, "blank" + cxFilterConsts_cxSFilterOperatorIsNull, "is blank" + cxFilterConsts_cxSFilterOperatorIsNotNull, "is not blank" + cxFilterConsts_cxSFilterOperatorBeginsWith, "begins with" + cxFilterConsts_cxSFilterOperatorDoesNotBeginWith, "does not begin with" + cxFilterConsts_cxSFilterOperatorEndsWith, "ends with" + cxFilterConsts_cxSFilterOperatorDoesNotEndWith, "does not end with" + cxFilterConsts_cxSFilterOperatorContains, "contains" + cxFilterConsts_cxSFilterOperatorDoesNotContain, "does not contain" + cxFilterConsts_cxSFilterBoxAllCaption, "(All)" + cxFilterConsts_cxSFilterBoxCustomCaption, "(Custom...)" + cxFilterConsts_cxSFilterBoxBlanksCaption, "(Blanks)" + cxFilterConsts_cxSFilterBoxNonBlanksCaption, "(NonBlanks)" + cxEditConsts_cxSEditDateConvertError, "Could not convert to date" + cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" + cxFilterConsts_cxSFilterOperatorLastMonth, "is last month" + cxFilterConsts_cxSFilterOperatorLastYear, "is last year" + cxFilterConsts_cxSFilterOperatorPast, "is past" + cxFilterConsts_cxSFilterOperatorThisWeek, "is this week" + cxFilterConsts_cxSFilterOperatorThisMonth, "is this month" + cxFilterConsts_cxSFilterOperatorThisYear, "is this year" + cxFilterConsts_cxSFilterOperatorNext7Days, "is next 7 days" + cxFilterConsts_cxSFilterOperatorNextWeek, "is next week" + cxFilterConsts_cxSFilterOperatorNext14Days, "is next 14 days" + cxFilterConsts_cxSFilterOperatorNextTwoWeeks, "is next two weeks" + cxFilterConsts_cxSFilterOperatorNext30Days, "is next 30 days" + cxFilterConsts_cxSFilterOperatorNextMonth, "is next month" + cxFilterConsts_cxSFilterOperatorNextYear, "is next year" + cxFilterConsts_cxSFilterOperatorFuture, "is future" + cxFilterConsts_cxSFilterAndCaption, "and" + cxFilterConsts_cxSFilterOrCaption, "or" + cxFilterConsts_cxSFilterOperatorGreater, "is greater than" + cxFilterConsts_cxSFilterOperatorGreaterEqual, "is greater than or equal to" + cxFilterConsts_cxSFilterOperatorLike, "like" + cxFilterConsts_cxSFilterOperatorNotLike, "not like" + cxFilterConsts_cxSFilterOperatorBetween, "between" + cxFilterConsts_cxSFilterOperatorNotBetween, "not between" + cxFilterConsts_cxSFilterOperatorInList, "in" + cxFilterConsts_cxSFilterOperatorNotInList, "not in" + cxFilterConsts_cxSFilterOperatorYesterday, "is yesterday" + cxFilterConsts_cxSFilterOperatorToday, "is today" + cxFilterConsts_cxSFilterOperatorTomorrow, "is tomorrow" + cxFilterConsts_cxSFilterOperatorLast7Days, "is last 7 days" + cxFilterConsts_cxSFilterOperatorLastWeek, "is last week" + cxFilterConsts_cxSFilterOperatorLast14Days, "is last 14 days" + cxFilterConsts_cxSFilterOperatorLastTwoWeeks, "is last two weeks" + cxFilterConsts_cxSFilterOperatorLast30Days, "is last 30 days" + pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed." + pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid." + pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again." + pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." + cxDataConsts_cxSDataReadError, "Stream read error" + cxDataConsts_cxSDataWriteError, "Stream write error" + cxDataConsts_cxSDataItemExistError, "Item already exists" + cxDataConsts_cxSDataRecordIndexError, "RecordIndex out of range" + cxDataConsts_cxSDataItemIndexError, "ItemIndex out of range" + cxDataConsts_cxSDataProviderModeError, "This operation is not supported in provider mode" + cxDataConsts_cxSDataInvalidStreamFormat, "Invalid stream format" + cxDataConsts_cxSDataRowIndexError, "RowIndex out of range" + cxFilterConsts_cxSFilterOperatorEqual, "equals" + cxFilterConsts_cxSFilterOperatorNotEqual, "does not equal" + cxFilterConsts_cxSFilterOperatorLess, "is less than" + cxFilterConsts_cxSFilterOperatorLessEqual, "is less than or equal to" + pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)" + pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" + pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts." + pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " + pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." + pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again." + pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" + pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length." + pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." + pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." + pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." + pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." + pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." + pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." + pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data." + pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap." + IBSQLMonitor_StrStartTransaction, ": [Start transaction]" + IBSQLMonitor_StrApplication, "[Application: " + ADOConst_SMissingConnection, "Missing Connection or ConnectionString" + ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables" + ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls" + ADOConst_SMissingCommandText, "Missing %s property" + ADOConst_SNoResultSet, "CommandText does not return a result set" + ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed" + ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors" + ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s" + ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions" + ADOConst_SCantRequery, "Cannot perform a requery after connection has changed" + ADOConst_SNoFilterOptions, "FilterOptions are not supported" + ADOConst_SRecordsetNotOpen, "Recordset is not open" + ADOConst_sNameAttr, "Name" + ADOConst_sValueAttr, "Value" + IBSQLMonitor_StrError, "[Error] " + IBSQLMonitor_StrAttach, ": [Attach]" + IBSQLMonitor_StrDetach, ": [Detach]" + IBSQLMonitor_StrQuery, ": [Query]" + IBSQLMonitor_StrStart, ": [Start]" + IBSQLMonitor_StrExecute, ": [Execute] " + IBSQLMonitor_StrNULL, "" + IBSQLMonitor_StrBLOB, "" + IBSQLMonitor_StrFetch, ": [Fetch] " + IBSQLMonitor_StrPrepare, ": [Prepare] " + IBSQLMonitor_StrPlan, " Plan: " + IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large" + IBSQLMonitor_StrCommitHardComm, ": [Commit (Hard commit)]" + IBSQLMonitor_StrCommitRetaining, ": [Commit retaining (Soft commit)]" + IBSQLMonitor_StrRollback, ": [Rollback]" + IBSQLMonitor_StrRollbackRetainin, ": [Rollback retaining (Soft rollback)]" + IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value" + IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown" + IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown" + IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan" + IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data" + IBXConst_SEventAlreadyRegistered, "Events already registered" + IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d" + IBXConst_SNoTimers, "Not enough timers available" + IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality" + IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file." + IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality" + IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality" + IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality" + IBSQLMonitor_StrConnect, ": [Connect]" + IBSQLMonitor_StrDisconnect, ": [Disconnect]" + IBSQLMonitor_StrMisc, "[Misc] " + IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present" + IBXConst_SCantPrintValue, "Cannot print value" + IBXConst_SEOFReached, "SEOFReached" + IBXConst_SEOFInComment, "EOF in comment detected" + IBXConst_SEOFInString, "EOF in string detected" + IBXConst_SParamNameExpected, "Parameter name expected" + IBXConst_SSuccess, "Successful execution" + IBXConst_SDelphiException, "DelphiException %s" + IBXConst_SNoOptionsSet, "No Install Options selected" + IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set" + IBXConst_SNosourceDirectory, "SourceDirectory is not set" + IBXConst_SNoUninstallFile, "Uninstall File Name is not set" + IBXConst_SOptionNeedsClient, "%s component requires Client to function properly" + IBXConst_SOptionNeedsServer, "%s component requires Server to function properly" + IBXConst_SInvalidOption, "Invalid option specified" + IBXConst_SInvalidOnErrorResult, "Unexpected onError return value" + IBXConst_SInvalidEvent, "Invalid Event" + IBXConst_SMaximumEvents, "Exceded Maximum Event limits" + IBXConst_SNoEventsRegistered, "No Events Registered" + IBXConst_SInvalidQueueing, "Invalid Queueing" + IBXConst_SInvalidRegistration, "Invalid Registration" + IBXConst_SInvalidBatchMove, "Invalid Batch Move" + IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid" + IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported" + IBXConst_SSPBConstantUnknown, "SPB Constant Unknown" + IBXConst_SServiceActive, "Cannot perform operation -- service is not attached" + IBXConst_SServiceInActive, "Cannot perform operation -- service is attached" + IBXConst_SServerNameMissing, "Server Name Missing" + IBXConst_SQueryParamsError, "Query Parameters missing or incorrect" + IBXConst_SStartParamsError, "start Parameters missing or incorrect" + IBXConst_SOutputParsingError, "Unexpected Output buffer value" + IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params" + IBXConst_SEmptySQLStatement, "Empty SQL Statement" + IBXConst_SIsASelectStatement, "use Open for a Select Statement" + IBXConst_SRequiredParamNotSet, "Required Param value not set" + IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned" + IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures" + IBXConst_SUpdateFailed, "Update Failed" + IBXConst_SNotCachedUpdates, "CachedUpdates not enabled" + IBXConst_SNotLiveRequest, "Request is not live - cannot modify" + IBXConst_SNoProvider, "No Provider" + IBXConst_SNoRecordsAffected, "No Records Affected" + IBXConst_SNoTableName, "No Table Name assigned" + IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically" + IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index" + IBXConst_STableNameMismatch, "Table Name Mismatch" + IBXConst_SIndexFieldMissing, "Index Field Missing" + IBXConst_SInvalidCancellation, "Cannot Cancel events while processing" + IBXConst_SCannotPost, "Cannot post. (No update/insert query)" + IBXConst_SCannotUpdate, "Cannot update. (No update query)" + IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)" + IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)" + IBXConst_SBufferNotSet, "Buffer not set" + IBXConst_SCircularReference, "Circular references not permitted" + IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s" + IBXConst_SUserAbort, "User abort" + IBXConst_SDataSetUniDirectional, "Data set is uni-directional" + IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)" + IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])" + IBXConst_SColumnListsDontMatch, "Column lists do not match" + IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)" + IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction" + IBXConst_SFieldUnsupportedType, "Unsupported Field Type" + IBXConst_SCircularDataLink, "Circular DataLink Reference" + IBXConst_SDatasetOpen, "Dataset open" + IBXConst_SDatasetClosed, "Dataset closed" + IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)" + IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)" + IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)" + IBXConst_SInvalidDataConversion, "Invalid data conversion" + IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)" + IBXConst_SBlobCannotBeRead, "Blob stream cannot be read" + IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written" + IBXConst_SEmptyQuery, "Empty query" + IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery" + IBXConst_SNoFieldAccess, "No access to field \"%s\"" + IBXConst_SFieldReadOnly, "Field \"%s\" is read-only" + IBXConst_SFieldNotFound, "Field \"%s\" not found" + IBXConst_SNotEditing, "Not in edit mode" + IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)" + IBXConst_SDatabaseNameMissing, "Database name is missing" + IBXConst_SNotInTransaction, "Transaction is not active" + IBXConst_SInTransaction, "Transaction is active" + IBXConst_STimeoutNegative, "Timeout values cannot be negative" + IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component" + IBXConst_SUpdateWrongDB, "Updating wrong database" + IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set" + IBXConst_SDatabaseNotAssigned, "Database not assigned" + IBXConst_STransactionNotAssigned, "Transaction not assigned" + IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range" + IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)" + IBXConst_SEOF, "End of file" + IBXConst_SBOF, "Beginning of file" + IBXConst_SInvalidStatementHandle, "Invalid statement handle" + IBXConst_SSQLOpen, "IBSQL Open" + IBXConst_SSQLClosed, "IBSQL Closed" + IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality" + IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality" + IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality" + IBXConst_SNotSupported, "Unsupported feature" + IBXConst_SNotPermitted, "Not permitted" + IBXConst_SFileAccessError, "Temporary file access error" + IBXConst_SConnectionTimeout, "Database connection timed out" + IBXConst_SCannotSetDatabase, "Cannot set database" + IBXConst_SCannotSetTransaction, "Cannot set transaction" + IBXConst_SOperationCancelled, "Operation cancelled at user's request" + IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported" + IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown" + IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported" + IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown" + IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open" + IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open" + uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s" + uDARes_err_InvalidDriverReference, "The driver in %s could not be loaded" + uDARes_err_CannotFindStatement, "Cannot find statement %s for connection %s" + uDARes_err_CannotFindDefaultItem, "Cannot find default %s" + uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled" + uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection" + uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" + uDARes_err_HETConnectionNotSupportedInV3, "HET Connections are not supported by te legacy v3 DARemoteService" + uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" + uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." + uDARes_err_DatasetNotAccessible, "Access to dataset %s has not been permitted." + IBXConst_SUnknownError, "Unknown error" + JvResources_RsHotLight, "Hot Light" + JvResources_RsMenuBar, "Menu Bar" + JvResources_RsMenuHighlight, "Menu Highlight" + uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time." + uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable" + uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered" + uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed" + uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned" + uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported" + uDARes_err_InvalidDataset, "Invalid or NIL dataset" + uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s" + uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded" + uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver" + uDARes_err_UnknownDriver, "Unknown driver %s" + uDARes_err_FieldIsNotBound, "Field is not bound" + uDARes_err_CannotFindField, "Cannot find field %s" + JvResources_RsClInactiveBorder, "Inactive window border" + JvResources_RsClAppWorkSpace, "Application workspace" + JvResources_RsClHighlight, "Selection background" + JvResources_RsClHighlightText, "Selection text" + JvResources_RsClBtnFace, "Button face" + JvResources_RsClBtnShadow, "Button shadow" + JvResources_RsClGrayText, "Dimmed text" + JvResources_RsClBtnText, "Button text" + JvResources_RsClInactiveCaptionText, "Inactive window title bar text" + JvResources_RsClBtnHighlight, "Button highlight" + JvResources_RsCl3DDkShadow, "Dark shadow 3D elements" + JvResources_RsCl3DLight, "Highlight 3D elements" + JvResources_RsClInfoText, "Tooltip text" + JvResources_RsClInfoBk, "Tooltip background" + JvResources_RsGradientActiveCaption, "Gradient Active Caption" + JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption" + JvResources_RsClLightYellow, "Light Yellow" + JvResources_RsClLightGreen, "Light Green" + JvResources_RsClLightTurquoise, "Light Turquoise" + JvResources_RsClPaleBlue, "Pale Blue" + JvResources_RsClLavender, "Lavender" + JvResources_RsClScrollBar, "Scrollbar" + JvResources_RsClBackground, "Desktop background" + JvResources_RsClActiveCaption, "Active window title bar" + JvResources_RsClInactiveCaption, "Inactive window title bar" + JvResources_RsClMenu, "Menu background" + JvResources_RsClWindow, "Window background" + JvResources_RsClWindowFrame, "Window frame" + JvResources_RsClMenuText, "Menu text" + JvResources_RsClWindowText, "Window text" + JvResources_RsClCaptionText, "Active window title bar text" + JvResources_RsClActiveBorder, "Active window border" + JvResources_RsClDarkYellow, "Dark Yellow" + JvResources_RsClBlueGray, "Blue Gray" + JvResources_RsClGray50, "Gray 50%" + JvResources_RsClLightOrange, "Light Orange" + JvResources_RsClSeaGreen, "Sea Green" + JvResources_RsClLightBlue, "Light Blue" + JvResources_RsClViolet, "Violet" + JvResources_RsClGray40, "Gray 40%" + JvResources_RsClPink, "Pink" + JvResources_RsClGold, "Gold" + JvResources_RsClBrightGreen, "Bright Green" + JvResources_RsClTurquoise, "Turquoise" + JvResources_RsClPlum, "Plum" + JvResources_RsClGray25, "Gray 25%" + JvResources_RsClRose, "Rose" + JvResources_RsClTan, "Tan" + JvResources_RsClFuchsia, "Fuchsia" + JvResources_RsClAqua, "Aqua" + JvResources_RsClWhite, "White" + JvResources_RsClMoneyGreen, "Money green" + JvResources_RsClSkyBlue, "Sky blue" + JvResources_RsClCream, "Cream" + JvResources_RsClMedGray, "Medium gray" + JvResources_RsClBrown, "Brown" + JvResources_RsClOliveGreen, "Olive Green" + JvResources_RsClDarkGreen, "Dark Green" + JvResources_RsClDarkTeal, "Dark Teal" + JvResources_RsClDarkBlue, "Dark Blue" + JvResources_RsClIndigo, "Indigo" + JvResources_RsClGray80, "Gray 80%" + JvResources_RsClDarkRed, "Dark Red" + JvResources_RsClOrange, "Orange" + JvResources_RsEGIFVersion, "Unknown GIF version" + JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented" + JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented" + JvResources_RsClBlack, "Black" + JvResources_RsClMaroon, "Maroon" + JvResources_RsClGreen, "Green" + JvResources_RsClOlive, "Olive green" + JvResources_RsClNavy, "Navy blue" + JvResources_RsClPurple, "Purple" + JvResources_RsClTeal, "Teal" + JvResources_RsClGray, "Gray" + JvResources_RsClSilver, "Silver" + JvResources_RsClRed, "Red" + JvResources_RsClLime, "Lime" + JvResources_RsClYellow, "Yellow" + JvResources_RsClBlue, "Blue" + JvResources_RsEUnableToCreateKey, "Unable to create key '%s'" + JvResources_RsEEnumeratingRegistry, "Error enumerating registry" + JvResources_RsEInvalidType, "Invalid type" + JvResources_RsEUnknownBaseType, "Unknown base type for given set" + JvResources_RsEInvalidPath, "Invalid path" + JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path" + JvResources_RsECircularReferenceOfStorages, "Circular reference of storages" + JvResources_RsEShellNotCompatible, "Shell not compatible with BrowseForFolder" + JvResources_RsGIFImage, "CompuServe GIF Image" + JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image" + JvResources_RsENoGIFData, "No GIF Data to write" + JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x" + JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2" + JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9" + JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt" + JvResources_RsEGIFEncodeError, "GIF image encoding error" + JclResources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr7F, "2nd-level cache: 512 KBytes, 2-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr82, "2nd-level cache: 256 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr83, "2nd-level cache: 512 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr84, "2nd-level cache: 1 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr85, "2nd-level cache: 2 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" + JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching" + JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching" + JvResources_RsAniExtension, "ani" + JvResources_RsAniFilterName, "ANI Image" + JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties." + JclResources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" + JclResources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr5D, "Data TLB: 4 KByte and 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr67, "1st-level data cache: 16 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr71, "Trace cache: 16 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr72, "Trace cache: 32 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size" + JclResources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr40, "No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rd-level cache" + JclResources_RsIntelCacheDescr41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr50, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr51, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr52, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries" + JclResources_RsRTTIVarType, "Variant type: " + JclResources_RsDeclarationFormat, "// Declaration for '%s' not supported." + JclResources_RsIntelCacheDescr00, "Null descriptor" + JclResources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" + JclResources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0A, "1st level data cache: 8 KBytes, 2-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries" + JclResources_RsIntelCacheDescr0C, "1st level data cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr22, "3rd level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsRTTIMinValue, "Min value: " + JclResources_RsRTTIMaxValue, "Max value: " + JclResources_RsRTTINameList, "Names: " + JclResources_RsRTTIClassName, "Class name: " + JclResources_RsRTTIParent, "Parent: " + JclResources_RsRTTIPropCount, "Property count: " + JclResources_RsRTTIUnitName, "Unit name: " + JclResources_RsRTTIBasedOn, "Based on: " + JclResources_RsRTTIFloatType, "Float type: " + JclResources_RsRTTIMethodKind, "Method kind: " + JclResources_RsRTTIParamCount, "Parameter count: " + JclResources_RsRTTIReturnType, "Return type: " + JclResources_RsRTTIMaxLen, "Max length: " + JclResources_RsRTTIElSize, "Element size: " + JclResources_RsRTTIElType, "Element type: " + JclResources_RsRTTIElNeedCleanup, "Elements need clean up: " + JclResources_RsRTTITypeError, "???" + JclResources_RsRTTITypeInfoAt, "Type info: %p" + JclResources_RsRTTIPropRead, "read" + JclResources_RsRTTIPropWrite, "write" + JclResources_RsRTTIPropStored, "stored" + JclResources_RsRTTIField, "field" + JclResources_RsRTTIStaticMethod, "static method" + JclResources_RsRTTIVirtualMethod, "virtual method" + JclResources_RsRTTIIndex, "index" + JclResources_RsRTTIDefault, "default" + JclResources_RsRTTIName, "Name: " + JclResources_RsRTTIType, "Type: " + JclResources_RsRTTIFlags, "Flags: " + JclResources_RsRTTIGUID, "GUID: " + JclResources_RsRTTITypeKind, "Type kind: " + JclResources_RsRTTIOrdinalType, "Ordinal type: " + JclResources_RsHKCRShort, "HKCR" + JclResources_RsHKCUShort, "HKCU" + JclResources_RsHKLMShort, "HKLM" + JclResources_RsHKUSShort, "HKUS" + JclResources_RsHKPDShort, "HKPD" + JclResources_RsHKCCShort, "HKCC" + JclResources_RsHKDDShort, "HKDD" + JclResources_RsRTTIValueOutOfRange, "Value out of range (%s)." + JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'." + JclResources_RsRTTIVar, "var " + JclResources_RsRTTIConst, "const " + JclResources_RsRTTIArrayOf, "array of " + JclResources_RsRTTIOut, "out " + JclResources_RsRTTIOrdinal, "ordinal=" + JclResources_RsRTTITrue, "True" + JclResources_RsRTTIFalse, "False" + JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image" + JConsts_sJPEGError, "JPEG error #%d" + JConsts_sJPEGImageFile, "JPEG Image File" + JclResources_RsFileUtilsNoVersionInfo, "File contains no version information" + JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\\%s\" for read" + JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\\%s\" for write" + JclResources_RsUnableToAccessValue, "Unable to open key \"%s\\%s\" and access value \"%s\"" + JclResources_RsWrongDataType, "\"%s\\%s\\%s\" is of wrong kind or size" + JclResources_RsInconsistentPath, "\"%s\" does not match RootKey" + JclResources_RsHKCRLong, "HKEY_CLASSES_ROOT" + JclResources_RsHKCULong, "HKEY_CURRENT_USER" + JclResources_RsHKLMLong, "HKEY_LOCAL_MACHINE" + JclResources_RsHKUSLong, "HKEY_USERS" + JclResources_RsHKPDLong, "HKEY_PERFORMANCE_DATA" + JclResources_RsHKCCLong, "HKEY_CURRENT_CONFIG" + JclResources_RsHKDDLong, "HKEY_DYN_DATA" + IdResourceStringsCore_RSConnectTimeout, "Connect timed out." + IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" + IdResourceStringsCore_RSAlreadyConnected, "Already connected." + IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded" + IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded." + IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind." + IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy." + IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified." + IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid." + IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s" + IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler." + IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event." + IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active." + ComStrs_sInvalidIndex, "Invalid index" + ComStrs_sInsertError, "Unable to insert an item" + ComStrs_sUDAssociated, "%s is already associated with %s" + IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset." + IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable." + IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable." + IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused." + IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired." + IdResourceStringsCore_RSSocksServerCommandError, "Command not supported." + IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported." + IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed" + IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer." + IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer." + IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found" + IdResourceStringsCore_RSNotConnected, "Not Connected" + IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported." + IdResourceStringsCore_RSIdNoDataToRead, "No data to read." + IdResourceStringsCore_RSReadTimeout, "Read Timeout" + IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." + IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" + IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code" + IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written." + IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command." + IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." + IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." + IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." + IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version." + IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed." + IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." + IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." + IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error." + IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond." + IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method." + IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server." + IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure." + IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed" + IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable" + IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" + IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout" + IdResourceStringsProtocols_RSHTTPConflict, "Conflict" + IdResourceStringsProtocols_RSHTTPGone, "Gone" + IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required" + IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed" + IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long" + IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" + IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type" + IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error" + IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented" + IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway" + IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable" + IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout" + IdResourceStringsProtocols_RSHTTPOK, "OK" + IdResourceStringsProtocols_RSHTTPCreated, "Created" + IdResourceStringsProtocols_RSHTTPAccepted, "Accepted" + IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" + IdResourceStringsProtocols_RSHTTPNoContent, "No Content" + IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content" + IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content" + IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently" + IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily" + IdResourceStringsProtocols_RSHTTPSeeOther, "See Other" + IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified" + IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy" + IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request" + IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized" + IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden" + IdResourceStringsProtocols_RSHTTPNotFound, "Not Found" + IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected" + IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)" + IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." + IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." + IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" + IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." + IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable" + IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address" + IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported." + IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent." + IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big." + IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." + IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty" + IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty" + IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits" + IdResourceStringsProtocols_RSHTTPContinue, "Continue" + IdResourceStrings_RSStackENOBUFS, "No buffer space available." + IdResourceStrings_RSStackEISCONN, "Socket is already connected." + IdResourceStrings_RSStackENOTCONN, "Socket is not connected." + IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed." + IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice." + IdResourceStrings_RSStackETIMEDOUT, "Connection timed out." + IdResourceStrings_RSStackECONNREFUSED, "Connection refused." + IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links." + IdResourceStrings_RSStackENAMETOOLONG, "File name too long." + IdResourceStrings_RSStackEHOSTDOWN, "Host is down." + IdResourceStrings_RSStackEHOSTUNREACH, "No route to host." + IdResourceStrings_RSStackENOTEMPTY, "Directory not empty" + IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found." + IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined." + IdResourceStrings_RSStackAlreadyCreated, "Stack already created." + IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application." + IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required." + IdResourceStrings_RSStackEMSGSIZE, "Message too long." + IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket." + IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option." + IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported." + IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported." + IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket." + IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported." + IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family." + IdResourceStrings_RSStackEADDRINUSE, "Address already in use." + IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address." + IdResourceStrings_RSStackENETDOWN, "Network is down." + IdResourceStrings_RSStackENETUNREACH, "Network is unreachable." + IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset." + IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort." + IdResourceStrings_RSStackECONNRESET, "Connection reset by peer." + IdResourceStrings_RSStatusConnecting, "Connecting to %s." + IdResourceStrings_RSStatusConnected, "Connected." + IdResourceStrings_RSStatusDisconnecting, "Disconnecting." + IdResourceStrings_RSStatusDisconnected, "Disconnected." + IdResourceStrings_RSStatusText, "%s" + IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" + IdResourceStrings_RSStackEINTR, "Interrupted system call." + IdResourceStrings_RSStackEBADF, "Bad file number." + IdResourceStrings_RSStackEACCES, "Access denied." + IdResourceStrings_RSStackEFAULT, "Buffer fault." + IdResourceStrings_RSStackEINVAL, "Invalid argument." + IdResourceStrings_RSStackEMFILE, "Too many open files." + IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block." + IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress." + IdResourceStrings_RSStackEALREADY, "Operation already in progress." + IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket." + DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" + DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" + DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" + DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" + DBConsts_SUnassignedVar, "Unassigned variant value" + DBConsts_SRecordNotFound, "Record not found" + DBConsts_SBcdOverflow, "BCD overflow" + DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" + DBConsts_SInvalidFormatType, "Invalid format type for BCD" + DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" + DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" + IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." + IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s" + IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)" + IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." + IdResourceStrings_RSStatusResolving, "Resolving hostname %s." + DBConsts_SExprIncorrect, "Incorrectly formed filter expression" + DBConsts_SExprNothing, "nothing" + DBConsts_SExprTypeMis, "Type mismatch in expression" + DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" + DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" + DBConsts_SExprNotAgg, "Expression is not an aggregate expression" + DBConsts_SExprBadConst, "Constant is not correct type %s" + DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" + DBConsts_SExprEmptyInList, "IN predicate list may not be empty" + DBConsts_SInvalidKeywordUse, "Invalid use of keyword" + DBConsts_STextFalse, "False" + DBConsts_STextTrue, "True" + DBConsts_SParameterNotFound, "Parameter '%s' not found" + DBConsts_SInvalidVersion, "Unable to load bind parameters" + DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" + DBConsts_SAggActive, "Property may not be modified while aggregate is active" + DBConsts_SNotEditing, "Dataset not in edit or insert mode" + DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset" + DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset" + DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset" + DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s" + DBConsts_SExprTermination, "Filter expression incorrectly terminated" + DBConsts_SExprNameError, "Unterminated field name" + DBConsts_SExprStringError, "Unterminated string constant" + DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" + DBConsts_SExprNoLParen, "'(' expected but %s found" + DBConsts_SExprNoRParen, "')' expected but %s found" + DBConsts_SExprNoRParenOrComma, "')' or ',' expected but %s found" + DBConsts_SExprExpected, "Expression expected but %s found" + DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" + DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" + DBConsts_SExprRangeError, "Constant out of range" + DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range" + DBConsts_SFieldRequired, "Field '%s' must have a value" + DBConsts_SDataSetMissing, "Field '%s' has no dataset" + DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field" + DBConsts_SFieldReadOnly, "Field '%s' cannot be modified" + DBConsts_SFieldIndexError, "Field index out of range" + DBConsts_SNoFieldIndexes, "No index currently active" + DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" + DBConsts_SIndexFieldMissing, "Cannot access index field '%s'" + DBConsts_SNoIndexForFields, "No index for fields '%s'" + DBConsts_SIndexNotFound, "Index '%s' not found" + DBConsts_SCircularDataLink, "Circular datalinks are not allowed" + DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" + DBConsts_SDataSourceChange, "DataSource cannot be changed" + DBConsts_SNoNestedMasterSource, "Nested datasets cannot have a MasterSource" + DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" + DBConsts_SInvalidFieldSize, "Invalid field size" + DBConsts_SInvalidFieldKind, "Invalid FieldKind" + DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type" + DBConsts_SFieldNameMissing, "Field name missing" + DBConsts_SDuplicateFieldName, "Duplicate field name '%s'" + DBConsts_SFieldNotFound, "Field '%s' not found" + DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s" + DBConsts_SFieldValueError, "Invalid value for field '%s'" + DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g" + DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s" + DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'" + DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'" + DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'" + DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s" + DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d" + DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'" + uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader" + uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)" + uRORes_err_DOMElementIsNIL, "DOMElement is NIL" + uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d" + uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s" + uRORes_err_NoXMLParsersAvailable, "MSXML is not installed" + uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported." + uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\"" + uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d" + uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d" + uRORes_err_CannotFindParameter, "Cannot find parameter %s" + uRORes_err_MessageNotAssigned, "Message is NIL" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found" + uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage" + uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered" + uRORes_err_UnknownClass, "Unknown class \"%s\"" + uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?" + uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher" + uRORes_err_UnhandledException, "Unhandled exception" + uRORes_err_ChannelBusy, "Channel is busy. Try again later." + uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)." + uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." + uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?" + uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream." + uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"." + uRORes_err_SessionNotFound, "Session %s could not be found" + uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements." + uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found." + uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"." + uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves." + uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"." + uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s" + uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"." + uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)" + uRORes_err_NILMessage, "Message is NIL" + uRORes_err_UnspecifiedInterface, "The message does not have an interface name" + uRORes_err_UnspecifiedMessage, "The message does not have a name" + uRORes_err_UnknownMethod, "Unknown method %s for interface %s" + uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\"" + uRORes_err_ParameterNotFound, "Parameter \"%s\" was not found" + uRORes_err_TypeNotSupported, "Type \"%s\" not supported" + uRODECConst_sFMT_XX, "XX Coding" + uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes" + uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first." + uRORes_err_InvalidIndex, "Invalid index %d" + uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" + uRORes_err_InvalidLibrary, "Invalid library" + uRORes_err_InvalidStream, "Invalid stream" + uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\"" + uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\"" + uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" + uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\"" + uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream." + uRORes_err_RodlDuplicateName, "Duplicate name." + uRORes_err_RodlNoDataTypeSpecified, "No data type specified." + uRORes_err_RodlNoEnumValues, "Enum does not contain any values." + uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements." + Consts_SANSIEncoding, "ANSI" + Consts_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_SWindowsVistaRequired, "%s requires Windows Vista or later" + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist." + uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format." + uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format." + uRODECConst_sFMT_COPY, "copy Input to Output" + uRODECConst_sFMT_HEX, "Hexadecimal" + uRODECConst_sFMT_HEXL, "Hexadecimal lowercase" + uRODECConst_sFMT_MIME64, "MIME Base 64" + uRODECConst_sFMT_UU, "UU Coding" + Consts_SInvalidMemoSize, "Text exceeds memo capacity" + Consts_SInvalidPrinterOp, "Operation not supported on selected printer" + Consts_SNoDefaultPrinter, "There is no default printer currently selected" + Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" + Consts_SPictureLabel, "Picture:" + Consts_SPictureDesc, " (%dx%d)" + Consts_SPreviewLabel, "Preview" + Consts_SDockedCtlNeedsName, "Docked control must have a name" + Consts_SDockTreeRemoveError, "Error removing control from dock tree" + Consts_SDockZoneNotFound, " - Dock zone not found" + Consts_SDockZoneHasNoCtl, " - Dock zone has no control" + Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." + Consts_SMultiSelectRequired, "Multiselect mode must be on for this feature" + Consts_SSeparator, "Separator" + Consts_SErrorSettingCount, "Error setting %s.Count" + Consts_SListBoxMustBeVirtual, "Listbox (%s) style must be virtual in order to set Count" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_srNone, "(None)" + Consts_SOutOfRange, "Value must be between %d and %d" + Consts_sAllFilter, "All" + Consts_SInsertLineError, "Unable to insert a line" + Consts_SConfirmCreateDir, "The specified directory does not exist. Create it?" + Consts_SSelectDirCap, "Select Directory" + Consts_SDirNameCap, "Directory &Name:" + Consts_SDrivesCap, "D&rives:" + Consts_SDirsCap, "&Directories:" + Consts_SFilesCap, "&Files: (*.*)" + Consts_SNetworkCap, "Ne&twork..." + Consts_SInvalidClipFmt, "Invalid clipboard format" + Consts_SIconToClipboard, "Clipboard does not support Icons" + Consts_SCannotOpenClipboard, "Cannot open clipboard" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + Consts_SmkcEnter, "Enter" + Consts_SmkcSpace, "Space" + Consts_SmkcPgUp, "PgUp" + Consts_SmkcPgDn, "PgDn" + Consts_SmkcEnd, "End" + Consts_SmkcHome, "Home" + Consts_SmkcLeft, "Left" + Consts_SmkcUp, "Up" + Consts_SmkcRight, "Right" + Consts_SmkcDown, "Down" + Consts_SmkcIns, "Ins" + Consts_SmkcDel, "Del" + Consts_SmkcShift, "Shift+" + Consts_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + Consts_SMsgDlgInformation, "Information" + Consts_SMsgDlgConfirm, "Confirm" + Consts_SMsgDlgYes, "&Yes" + Consts_SMsgDlgNo, "&No" + Consts_SMsgDlgOK, "OK" + Consts_SMsgDlgCancel, "Cancel" + Consts_SMsgDlgHelp, "&Help" + Consts_SMsgDlgAbort, "&Abort" + Consts_SMsgDlgRetry, "&Retry" + Consts_SMsgDlgIgnore, "&Ignore" + Consts_SMsgDlgAll, "&All" + Consts_SMsgDlgNoToAll, "N&o to All" + Consts_SMsgDlgYesToAll, "Yes to &All" + Consts_SOKButton, "OK" + Consts_SCancelButton, "Cancel" + Consts_SYesButton, "&Yes" + Consts_SNoButton, "&No" + Consts_SHelpButton, "&Help" + Consts_SCloseButton, "&Close" + Consts_SIgnoreButton, "&Ignore" + Consts_SRetryButton, "&Retry" + Consts_SAbortButton, "Abort" + Consts_SAllButton, "&All" + Consts_SCannotDragForm, "Cannot drag a form" + Consts_SVMetafiles, "Metafiles" + Consts_SVEnhMetafiles, "Enhanced Metafiles" + Consts_SVIcons, "Icons" + Consts_SVBitmaps, "Bitmaps" + Consts_SMaskErr, "Invalid input value" + Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" + Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" + Consts_SCannotShowModal, "Cannot make a visible window modal" + Consts_SScrollBarRange, "Scrollbar property out of range" + Consts_SPropertyOutOfRange, "%s property out of range" + Consts_SMenuIndexError, "Menu index out of range" + Consts_SMenuReinserted, "Menu inserted twice" + Consts_SMenuNotFound, "Sub-menu is not in menu" + Consts_SNoTimers, "Not enough timers available" + Consts_SNotPrinting, "Printer is not currently printing" + Consts_SPrinting, "Printing in progress" + Consts_SInvalidPrinter, "Printer selected is not valid" + Consts_SDeviceOnPort, "%s on %s" + Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" + Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" + Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" + Consts_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownExtension, "Unknown picture file extension (.%s)" + Consts_SUnknownClipboardFormat, "Unsupported clipboard format" + Consts_SOutOfResources, "Out of system resources" + Consts_SNoCanvasHandle, "Canvas does not allow drawing" + Consts_SInvalidImageSize, "Invalid image size" + Consts_SInvalidImageList, "Invalid ImageList" + Consts_SReplaceImage, "Unable to Replace Image" + Consts_SImageIndexError, "Invalid ImageList Index" + Consts_SImageReadFail, "Failed to read ImageList data from stream" + Consts_SImageWriteFail, "Failed to write ImageList data to stream" + Consts_SWindowDCError, "Error creating window device context" + Consts_SWindowClass, "Error creating window class" + Consts_SCannotFocus, "Cannot focus a disabled or invisible window" + Consts_SParentRequired, "Control '%s' has no parent window" + Consts_SParentGivenNotAParent, "Parent given is not a parent of '%s'" + RTLConsts_SUnknownGroup, "%s not in a class registration group" + RTLConsts_SUnknownProperty, "Property %s does not exist" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" + HelpIntfs_hNothingFound, "No help found for %s" + HelpIntfs_hNoContext, "No context-sensitive help installed" + HelpIntfs_hNoContextFound, "No help found for context" + HelpIntfs_hNoTopics, "No topic-based help system installed" + Consts_SInvalidBitmap, "Bitmap image is not valid" + Consts_SInvalidIcon, "Icon image is not valid" + Consts_SInvalidMetafile, "Metafile is not valid" + Consts_SInvalidPixelFormat, "Invalid pixel format" + Consts_SInvalidImage, "Invalid image" + Consts_SScanLine, "Scan line index out of range" + RTLConsts_SInvalidPropertyType, "Invalid property type: %s" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + RTLConsts_SInvalidRegType, "Invalid data type for '%s'" + RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" + RTLConsts_SListCountError, "List count out of bounds (%d)" + RTLConsts_SListIndexError, "List index out of bounds (%d)" + RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" + RTLConsts_SPropertyException, "Error reading %s%s%s: %s" + RTLConsts_SReadError, "Stream read error" + RTLConsts_SReadOnlyProperty, "Property is read-only" + RTLConsts_SRegCreateFailed, "Failed to create key %s" + RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" + RTLConsts_SRegSetDataFailed, "Failed to set data for '%s'" + RTLConsts_SResNotFound, "Resource %s not found" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SClassNotFound, "Class %s not found" + RTLConsts_SDuplicateClass, "A class named %s already exists" + RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" + RTLConsts_SDuplicateName, "A component named %s already exists" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SIniFileWriteError, "Unable to write to %s" + RTLConsts_SInvalidFileName, "Invalid file name - %s" + RTLConsts_SInvalidImage, "Invalid stream format" + RTLConsts_SInvalidName, "''%s'' is not a valid component name" + RTLConsts_SInvalidProperty, "Invalid property value" + RTLConsts_SInvalidPropertyElement, "Invalid property element: %s" + RTLConsts_SInvalidPropertyPath, "Invalid property path" + SysConst_SShortDayNameTue, "Tue" + SysConst_SShortDayNameWed, "Wed" + SysConst_SShortDayNameThu, "Thu" + SysConst_SShortDayNameFri, "Fri" + SysConst_SShortDayNameSat, "Sat" + SysConst_SLongDayNameSun, "Sunday" + SysConst_SLongDayNameMon, "Monday" + SysConst_SLongDayNameTue, "Tuesday" + SysConst_SLongDayNameWed, "Wednesday" + SysConst_SLongDayNameThu, "Thursday" + SysConst_SLongDayNameFri, "Friday" + SysConst_SLongDayNameSat, "Saturday" + SysConst_SCannotCreateDir, "Unable to create directory" + RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SBitsIndexError, "Bits index out of range" + SysConst_SShortMonthNameNov, "Nov" + SysConst_SShortMonthNameDec, "Dec" + SysConst_SLongMonthNameJan, "January" + SysConst_SLongMonthNameFeb, "February" + SysConst_SLongMonthNameMar, "March" + SysConst_SLongMonthNameApr, "April" + SysConst_SLongMonthNameMay, "May" + SysConst_SLongMonthNameJun, "June" + SysConst_SLongMonthNameJul, "July" + SysConst_SLongMonthNameAug, "August" + SysConst_SLongMonthNameSep, "September" + SysConst_SLongMonthNameOct, "October" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + SysConst_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SNL, "Application is not licensed to use this feature" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeOutOfRangeWithPrefix, "Custom variant type (%s%.4x) is out of range" + SysConst_SVarTypeAlreadyUsedWithPrefix, "Custom variant type (%s%.4x) already used by %s" + SysConst_SVarTypeNotUsableWithPrefix, "Custom variant type (%s%.4x) is not usable" + SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_SVarUnexpected, "Unexpected variant error" + SysConst_SExternalException, "External exception %x" + SysConst_SAssertionFailed, "Assertion failed" + SysConst_SIntfCastError, "Interface not supported" + SysConst_SSafecallException, "Exception in safecall method" + SysConst_SOperationAborted, "Operation aborted" + SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" + SysConst_SExceptTitle, "Application Error" + SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" + SysConst_SArgumentMissing, "No argument for format '%s'" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SFormatTooLong, "Format string too long" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SVarArrayWithHResult, "Unexpected variant or safe array error: %s%.8x" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" + SysConst_SInvalidOp, "Invalid floating point operation" + SysConst_SZeroDivide, "Floating point division by zero" + SysConst_SOverflow, "Floating point overflow" + SysConst_SUnderflow, "Floating point underflow" + SysConst_SInvalidPointer, "Invalid pointer operation" + SysConst_SInvalidCast, "Invalid class typecast" + SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" + SysConst_SAccessViolationNoArg, "Access violation" + SysConst_SStackOverflow, "Stack overflow" + SysConst_SControlC, "Control-C hit" + SysConst_SPrivilege, "Privileged instruction" + SysConst_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SInvalidFloat, "'%s' is not a valid floating point value" + SysConst_SInvalidDate, "'%s' is not a valid date" + SysConst_SInvalidTime, "'%s' is not a valid time" + SysConst_SInvalidDateTime, "'%s' is not a valid date and time" + SysConst_SInvalidTimeStamp, "'%d.%d' is not a valid timestamp" + SysConst_SInvalidGUID, "'%s' is not a valid GUID value" + SysConst_STimeEncodeError, "Invalid argument to time encode" + SysConst_SDateEncodeError, "Invalid argument to date encode" + SysConst_SOutOfMemory, "Out of memory" + SysConst_SInOutError, "I/O error %d" + SysConst_SFileNotFound, "File not found" + SysConst_SInvalidFilename, "Invalid filename" + SysConst_STooManyOpenFiles, "Too many open files" + SysConst_SAccessDenied, "File access denied" + SysConst_SEndOfFile, "Read beyond end of file" +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* T:\Componentes\FastReport 3\LibD10\frxProgress.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxCtrls.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxDock.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPassw.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxClass.RES */ +/* T:\Componentes\jvcl\resources\JvConsts.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */ +/* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */ +/* T:\Componentes\jvcl\lib\d10\JvLogForm.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uDataModuleServer.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ +/* T:\Componentes\jvcl\resources\JvToolEdit.res */ +/* T:\Componentes\jvcl\resources\JvSpin.Res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\dxOffice11.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxLookAndFeelPainters.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxControls.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxEdit.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxShellBrowser.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConexionBD.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfGeneral.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfiguracion.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Sales_Impl.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxGrid.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterControlDialog.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterDialog.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Log_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uAcercaDe.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\fServerForm.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Inventary_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\srvInformes_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\RODLFile.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.drf */ diff --git a/Source/Servidor/AdminPV_Server.identcache b/Source/Servidor/AdminPV_Server.identcache new file mode 100644 index 0000000000000000000000000000000000000000..091f9f93c5aaaa289530c471953df73f73dc1d8f GIT binary patch literal 7940 zcmd5>O>fgc5H0^Czo2KtEv-`&sYQ{U=42^a>`A)R*$rzuY5{=|0>l9!4jd4Fmhn1X z+mn@VleAK$^{l0xym@av*3Zw*&b~amd=UpaDL0^sd?Zvlil8W@TIca?UJ4_1d?WKw zx_?FIaX1b}QBkJ2Gc)=PBt;%Cgn>-NkuFUF@r_Q)4Bwm^k#9wgs|d_arrN~0**WWS zy4hyu_yYRj{uF~h?(}iGk!rSBRt7NV>DIV&aq*7>3wO3%Bw$fd`3elEM2ah!+<`%a zYGCS(j{W!;O@e8R|I6vCML3(&@Vw;=PZ@|pSn|L=LWCTj7*21<8WlRZk3(2z0;7@K z+2_klqAr$GRjeoy-;cu<8w#~UFNArF%M1AqEz`z8o#FuKkinHtk;stCdw=W$_2u^| z0K&j^@u_Kay!bU_3L$}QBDF${9DXSAj@_&5dj^8L^B3cAay|Bf!Ex?|$RW0po{QHR z+!iv+DM$WtaHI`FlVx9m0wWXAk#`7mb3p4Hvbxl&Fd9WU+N<=9MMdDNX4)%J zxaIh37gd{6!Q$#vod;~Zp|?RXTXV7-i~HnZYv`FQJ+Kq8m3P}#IQsyb-!p*FXsvE@ zT(~gZSc{h_j|_gelM#rOT$e^v9F9wTga=$*1T;KfIr!SZF%w2?026V)PPb++Ff7V; z$n+#sr<=O1vFice7|wY0Wa~xc1LyIFbZOZ`8S{seF?CUzgTYZ!q&O?I+NN7oAi;PW zu2V8-z^yH32r<`8)k>QUNaCPdPT|m6gsT|hOlbu zuqh|g6Ybf(JmMH;Y)-B&uvRrTS4d+TIo8g+94BBB5db}vTQ&8h?**FsXe-zdM2dHH zsi!n&KcVEZFWuEG)?wbH>y#)Ba4X|XkJSi@CD_Xvjw{-R zG~Q1`10b*t!j>{sDnults=gcAg%=doW}S+;BPhBxAS>28i!#Ems~cf&wCi|L8T|)z CkMcMG literal 0 HcmV?d00001 diff --git a/Source/Servidor/AdminPV_Server.rc b/Source/Servidor/AdminPV_Server.rc new file mode 100644 index 0000000..66b42e9 --- /dev/null +++ b/Source/Servidor/AdminPV_Server.rc @@ -0,0 +1,26 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Servidor.ico" +1 VERSIONINFO +FILEVERSION 1,2,5,0 +PRODUCTVERSION 1,2,5,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "1.2.5.0\0" + VALUE "ProductName", "AdminPV_Server\0" + VALUE "ProductVersion", "1.2.5.0\0" + VALUE "CompileDate", "jueves, 06 de septiembre de 2007 12:09\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Servidor/AdminPV_Server.res b/Source/Servidor/AdminPV_Server.res new file mode 100644 index 0000000000000000000000000000000000000000..77f5947782c2fa03a538f3ee3a2ad2ed2fb7384e GIT binary patch literal 23588 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 bD%ycWP1No+&iDlMKVI=uwC>fcf2{a_qq}8a literal 0 HcmV?d00001 diff --git a/Source/Servidor/Configuracion/uConexionBD.ddp b/Source/Servidor/Configuracion/uConexionBD.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Configuracion/uConexionBD.dfm b/Source/Servidor/Configuracion/uConexionBD.dfm new file mode 100644 index 0000000..9d1f999 --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionBD.dfm @@ -0,0 +1,101 @@ +inherited frConexionBD: TfrConexionBD + Visible = True + ExplicitWidth = 451 + ExplicitHeight = 304 + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 185 + Caption = 'Servidor de base de datos' + TabOrder = 0 + DesignSize = ( + 375 + 185) + object Label1: TLabel + Left = 18 + Top = 30 + Width = 100 + Height = 13 + Caption = 'Nombre del servidor:' + end + object Label3: TLabel + Left = 18 + Top = 61 + Width = 72 + Height = 13 + Caption = 'Base de datos:' + end + object Label4: TLabel + Left = 18 + Top = 118 + Width = 36 + Height = 13 + Caption = 'Usuario' + end + object Label5: TLabel + Left = 18 + Top = 148 + Width = 60 + Height = 13 + Caption = 'Contrase'#241'a:' + end + object Bevel1: TBevel + Left = 16 + Top = 88 + Width = 343 + Height = 10 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object edtServer: TEdit + Left = 128 + Top = 24 + Width = 231 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = 'localhost' + end + object edtUser: TEdit + Left = 128 + Top = 112 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 2 + end + object edtPassword: TEdit + Left = 128 + Top = 144 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 3 + end + object edtBD: TEdit + Left = 128 + Top = 57 + Width = 231 + Height = 21 + TabOrder = 1 + end + end + object bProbar: TButton + Left = 240 + Top = 200 + Width = 143 + Height = 25 + Caption = 'Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object ADOConnection: TADOConnection + LoginPrompt = False + Mode = cmRead + Provider = 'SQLOLEDB.1' + Left = 48 + Top = 200 + end +end diff --git a/Source/Servidor/Configuracion/uConexionBD.pas b/Source/Servidor/Configuracion/uConexionBD.pas new file mode 100644 index 0000000..d52c411 --- /dev/null +++ b/Source/Servidor/Configuracion/uConexionBD.pas @@ -0,0 +1,90 @@ +unit uConexionBD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, cxShellBrowserDialog, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, + DB, IBDatabase, uFrameConfiguracion, ADODB; + +type + TfrConexionBD = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + edtServer: TEdit; + Label1: TLabel; + Label3: TLabel; + bProbar: TButton; + Label4: TLabel; + edtUser: TEdit; + Label5: TLabel; + edtPassword: TEdit; + Bevel1: TBevel; + edtBD: TEdit; + ADOConnection: TADOConnection; + procedure bProbarClick(Sender: TObject); + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +procedure TfrConexionBD.bProbarClick(Sender: TObject); +var + Aux : string; +begin + //Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=gft_varela;Data Source=david + + Aux := 'Provider=SQLOLEDB.1;Persist Security Info=False'; + Aux := Aux + ';Data Source=' + edtServer.Text; + Aux := Aux + ';User ID=' + edtUser.Text; + Aux := Aux + ';Password=' + edtPassword.Text; + Aux := Aux + ';Initial Catalog=' + edtBD.Text; + + with ADOConnection do + begin + LoginPrompt := False; + Mode := cmRead; + Provider := 'SQLOLEDB.1'; + ConnectionString := Aux; + + ShowHourglassCursor; + try + Connected := True; + Application.MessageBox('Conexión válida con la base de datos.', 'Información', MB_OK); + Connected := False; + except + on E : Exception do + begin + HideHourglassCursor; + Aux := 'No se ha podido establecer la conexión con la base de datos.' + + #13 + #10 + #13 + #10 + PChar(E.Message); + Application.MessageBox(PAnsiChar(Aux), 'Error', MB_OK); + end; + end; + end; +end; + +procedure TfrConexionBD.Init; +begin + edtServer.Text := dmServer.FDBServer; + edtBD.Text := dmServer.FDBName; + edtUser.Text := dmServer.FDBUser; + edtPassword.Text := Decrypt(dmServer.FDBPass); +end; + +procedure TfrConexionBD.Finalize; +begin + dmServer.FDBServer := edtServer.Text; + dmServer.FDBName := edtBD.Text; + dmServer.FDBUser := edtUser.Text; + dmServer.FDBPass := Encrypt(edtPassword.Text); +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfFicherosEDI.ddp b/Source/Servidor/Configuracion/uConfFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Configuracion/uConfFicherosEDI.dfm b/Source/Servidor/Configuracion/uConfFicherosEDI.dfm new file mode 100644 index 0000000..ccb9b1b --- /dev/null +++ b/Source/Servidor/Configuracion/uConfFicherosEDI.dfm @@ -0,0 +1,129 @@ +inherited frConfFicherosEDI: TfrConfFicherosEDI + Visible = True + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 217 + Caption = 'Ubicaci'#243'n de ficheros' + Constraints.MaxHeight = 217 + TabOrder = 0 + object Label1: TLabel + Left = 16 + Top = 32 + Width = 95 + Height = 13 + Caption = 'Entrada de ficheros:' + end + object Label2: TLabel + Left = 16 + Top = 128 + Width = 146 + Height = 13 + Caption = 'Almac'#233'n de ficheros cargados:' + end + object edtEntrada: TJvDirectoryEdit + Left = 16 + Top = 48 + Width = 345 + Height = 21 + AcceptFiles = False + DialogKind = dkWin32 + DialogText = 'Directorio de entrada de ficheros EDI' + ShowButton = False + TabOrder = 0 + end + object edtAlmacen: TJvDirectoryEdit + Left = 16 + Top = 144 + Width = 345 + Height = 21 + AcceptFiles = False + DialogKind = dkWin32 + DialogText = 'Directorio para almacenar ficheros EDI cargados' + ShowButton = False + TabOrder = 1 + end + object bElegir1: TButton + Left = 16 + Top = 72 + Width = 97 + Height = 25 + Caption = 'Elegir carpeta...' + TabOrder = 2 + OnClick = bElegir1Click + end + object bElegir2: TButton + Left = 16 + Top = 168 + Width = 97 + Height = 25 + Caption = 'Elegir carpeta...' + TabOrder = 3 + OnClick = bElegir2Click + end + end + object bAbrir1: TButton + Left = 272 + Top = 80 + Width = 97 + Height = 25 + Action = actAbrir1 + TabOrder = 1 + end + object bAbrir2: TButton + Left = 272 + Top = 176 + Width = 97 + Height = 25 + Action = actAbrir2 + TabOrder = 2 + end + object Panel1: TPanel + Left = 7 + Top = 232 + Width = 377 + Height = 41 + BevelOuter = bvNone + TabOrder = 3 + object Label3: TLabel + Left = 25 + Top = 12 + Width = 298 + Height = 13 + Caption = 'N'#250'mero de d'#237'as a mantener de almac'#233'n de ficheros cargados :' + Transparent = False + end + object edtDias: TcxSpinEdit + Left = 328 + Top = 8 + Properties.MinValue = 1.000000000000000000 + Properties.ValueType = vtInt + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Value = 1 + Width = 41 + end + end + object ActionList1: TActionList + Left = 320 + Top = 120 + object actAbrir1: TAction + Caption = 'Abrir carpeta...' + OnExecute = actAbrir1Execute + OnUpdate = actAbrir1Update + end + object actAbrir2: TAction + Caption = 'Abrir carpeta...' + OnExecute = actAbrir2Execute + OnUpdate = actAbrir2Update + end + end +end diff --git a/Source/Servidor/Configuracion/uConfFicherosEDI.pas b/Source/Servidor/Configuracion/uConfFicherosEDI.pas new file mode 100644 index 0000000..c68e629 --- /dev/null +++ b/Source/Servidor/Configuracion/uConfFicherosEDI.pas @@ -0,0 +1,102 @@ +unit uConfFicherosEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls, Mask, JvExMask, + JvToolEdit, ActnList, JvSpin, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxSpinEdit; + +type + TfrConfFicherosEDI = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + edtEntrada: TJvDirectoryEdit; + Label1: TLabel; + Label2: TLabel; + edtAlmacen: TJvDirectoryEdit; + bElegir1: TButton; + bElegir2: TButton; + bAbrir1: TButton; + bAbrir2: TButton; + ActionList1: TActionList; + actAbrir1: TAction; + actAbrir2: TAction; + Panel1: TPanel; + Label3: TLabel; + edtDias: TcxSpinEdit; + procedure bElegir1Click(Sender: TObject); + procedure bElegir2Click(Sender: TObject); + procedure actAbrir1Update(Sender: TObject); + procedure actAbrir2Update(Sender: TObject); + procedure actAbrir1Execute(Sender: TObject); + procedure actAbrir2Execute(Sender: TObject); + private + { Private declarations } + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer, JclShell; + +{$R *.dfm} + +{ TfrConfFicherosEDI } + +procedure TfrConfFicherosEDI.Finalize; +begin + inherited; + dmServer.FDirEntrada := edtEntrada.Text; + dmServer.FDirAlmacen := edtAlmacen.Text; + dmServer.FDias := edtDias.Value; +end; + +procedure TfrConfFicherosEDI.Init; +begin + inherited; + edtEntrada.Text := dmServer.FDirEntrada; + edtAlmacen.Text := dmServer.FDirAlmacen; + edtDias.Value := dmServer.FDias; +end; + +procedure TfrConfFicherosEDI.bElegir1Click(Sender: TObject); +begin + inherited; + edtEntrada.DoClick; +end; + +procedure TfrConfFicherosEDI.bElegir2Click(Sender: TObject); +begin + inherited; + edtAlmacen.DoClick; +end; + +procedure TfrConfFicherosEDI.actAbrir1Update(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtEntrada.Text) > 0) +end; + +procedure TfrConfFicherosEDI.actAbrir2Update(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtAlmacen.Text) > 0) +end; + +procedure TfrConfFicherosEDI.actAbrir1Execute(Sender: TObject); +begin + inherited; + OpenFolder(edtEntrada.Text); +end; + +procedure TfrConfFicherosEDI.actAbrir2Execute(Sender: TObject); +begin + inherited; + OpenFolder(edtAlmacen.Text); +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfGeneral.ddp b/Source/Servidor/Configuracion/uConfGeneral.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Configuracion/uConfGeneral.dfm b/Source/Servidor/Configuracion/uConfGeneral.dfm new file mode 100644 index 0000000..7e7f40f --- /dev/null +++ b/Source/Servidor/Configuracion/uConfGeneral.dfm @@ -0,0 +1,39 @@ +inherited frConfGeneral: TfrConfGeneral + Visible = True + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 105 + Caption = 'General' + TabOrder = 0 + DesignSize = ( + 375 + 105) + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object edtPort: TEdit + Left = 128 + Top = 56 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = '8099' + OnExit = edtPortExit + end + object cbInicioWin: TCheckBox + Left = 17 + Top = 27 + Width = 232 + Height = 17 + Caption = 'Iniciar con Windows' + TabOrder = 1 + end + end +end diff --git a/Source/Servidor/Configuracion/uConfGeneral.pas b/Source/Servidor/Configuracion/uConfGeneral.pas new file mode 100644 index 0000000..b3427cc --- /dev/null +++ b/Source/Servidor/Configuracion/uConfGeneral.pas @@ -0,0 +1,52 @@ +unit uConfGeneral; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls; + +type + TfrConfGeneral = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + Label2: TLabel; + edtPort: TEdit; + cbInicioWin: TCheckBox; + procedure edtPortExit(Sender: TObject); + private + { Private declarations } + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +{ TfrConfGeneral } + +procedure TfrConfGeneral.Finalize; +begin + inherited; + dmServer.FInicioWindows := cbInicioWin.Checked; + dmServer.FServerPort := edtPort.Text; +end; + +procedure TfrConfGeneral.Init; +begin + cbInicioWin.Checked := dmServer.FInicioWindows; + edtPort.Text := dmServer.FServerPort; +end; + +procedure TfrConfGeneral.edtPortExit(Sender: TObject); +begin + inherited; + if Length(edtPort.Text) = 0 then + edtPort.Text := SERVER_PORT; +end; + +end. diff --git a/Source/Servidor/Configuracion/uConfiguracion.ddp b/Source/Servidor/Configuracion/uConfiguracion.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Configuracion/uConfiguracion.dfm b/Source/Servidor/Configuracion/uConfiguracion.dfm new file mode 100644 index 0000000..75ddf1c --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.dfm @@ -0,0 +1,214 @@ +object fConfiguracion: TfConfiguracion + Left = 303 + Top = 203 + BorderStyle = bsDialog + Caption = 'Configuraci'#243'n' + ClientHeight = 442 + ClientWidth = 623 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 445 + Top = 407 + Width = 75 + Height = 25 + Action = actAceptar + ModalResult = 1 + TabOrder = 0 + end + object Button2: TButton + Left = 533 + Top = 407 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + object JvSettingsTreeView1: TJvSettingsTreeView + Left = 8 + Top = 8 + Width = 193 + Height = 385 + PageDefault = 0 + PageList = JvPageList1 + Images = PngImageList1 + Indent = 19 + TabOrder = 2 + OnChanging = JvSettingsTreeView1Changing + Items.Data = { + 0300000020000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 + 0747656E6572616C28000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01000000 + 000000000F436F6E657869F36E20636F6E2042442E000000FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF02000000000000001555626963616369F36E206465206669 + 636865726F73} + Items.Links = {03000000000000000100000002000000} + end + object JvPageList1: TJvPageList + Left = 216 + Top = 8 + Width = 394 + Height = 385 + ActivePage = JvStandardPage1 + PropagateEnable = False + object JvStandardPage1: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage1' + inline frConfGeneral1: TfrConfGeneral + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + end + end + object JvStandardPage2: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage2' + inline frConexionBD1: TfrConexionBD + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + inherited GroupBox1: TGroupBox + inherited Label1: TLabel + Width = 100 + end + inherited Label3: TLabel + Width = 72 + end + inherited Label5: TLabel + Width = 60 + end + end + end + end + object JvStandardPage3: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage3' + inline frConfFicherosEDI1: TfrConfFicherosEDI + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + inherited Label3: TLabel + Width = 299 + end + inherited GroupBox1: TGroupBox + inherited Label1: TLabel + Width = 98 + end + inherited Label2: TLabel + Width = 147 + end + end + end + end + end + object ActionList1: TActionList + Left = 8 + Top = 400 + object actAceptar: TAction + Caption = '&Aceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 48 + Top = 400 + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 88 + Top = 400 + Bitmap = {} + end +end diff --git a/Source/Servidor/Configuracion/uConfiguracion.pas b/Source/Servidor/Configuracion/uConfiguracion.pas new file mode 100644 index 0000000..6ae1174 --- /dev/null +++ b/Source/Servidor/Configuracion/uConfiguracion.pas @@ -0,0 +1,105 @@ +unit uConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList, JvComponent, + JvAppStorage, JvAppRegistryStorage, Contnrs, ExtCtrls, ImgList, + PngImageList, JvExControls, JvGradientHeaderPanel, uFrameConfiguracion, + JvComponentBase, JvPageList, JvExComCtrls, JvPageListTreeView, + uConfFicherosEDI, uConexionBD, uConfGeneral; + +type + TfConfiguracion = class(TForm) + Button1: TButton; + Button2: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + JvAppRegistryStorage1: TJvAppRegistryStorage; + PngImageList1: TPngImageList; + JvSettingsTreeView1: TJvSettingsTreeView; + JvPageList1: TJvPageList; + JvStandardPage1: TJvStandardPage; + JvStandardPage2: TJvStandardPage; + JvStandardPage3: TJvStandardPage; + frConfGeneral1: TfrConfGeneral; + frConexionBD1: TfrConexionBD; + frConfFicherosEDI1: TfrConfFicherosEDI; + procedure tvArbolChange(Sender: TObject; Node: TTreeNode); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure JvSettingsTreeView1Changing(Sender: TObject; Node: TTreeNode; + var AllowChange: Boolean); + private + FPaginaActual : IConfiguracionFrame; + end; + +var + fConfiguracion: TfConfiguracion; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +type + TFrameClass = class of TFrameConfiguracion; + +function CreateFrame(Parent: TWinControl; FrameClass: TFrameClass): IConfiguracionFrame; +var + aFrame : TFrameConfiguracion; +begin + aFrame := FrameClass.Create(NIL); + aFrame.Name:='Frame'+IntToStr(Random(10000)); + aFrame.Parent := Parent; + aFrame.Init; + aFrame.Show; + Result := aFrame; +end; + +procedure TfConfiguracion.tvArbolChange(Sender: TObject; Node: TTreeNode); +begin +{ if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := CreateFrame(pnlPagina, TfrConfGeneral); + 1 : FPaginaActual := CreateFrame(pnlPagina, TfrConexionBD); + 2 : FPaginaActual := CreateFrame(pnlPagina, TfrConfFicherosEDI); + end; + Self.Update; + pnlHeader.LabelCaption := Node.Text;} +end; + +procedure TfConfiguracion.actAceptarExecute(Sender: TObject); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + dmServer.SalvarConfiguracion; + Close; +end; + +procedure TfConfiguracion.actCancelarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfConfiguracion.JvSettingsTreeView1Changing(Sender: TObject; + Node: TTreeNode; var AllowChange: Boolean); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := frConfGeneral1; + 1 : FPaginaActual := frConexionBD1; + 2 : FPaginaActual := frConfFicherosEDI1; + end; + if Assigned(FPaginaActual) then + FPaginaActual.Init; +end; + +end. diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.dfm b/Source/Servidor/Configuracion/uFrameConfiguracion.dfm new file mode 100644 index 0000000..a2649c6 --- /dev/null +++ b/Source/Servidor/Configuracion/uFrameConfiguracion.dfm @@ -0,0 +1,10 @@ +object FrameConfiguracion: TFrameConfiguracion + Left = 0 + Top = 0 + Width = 443 + Height = 277 + Align = alClient + ParentBackground = False + TabOrder = 0 + Visible = False +end diff --git a/Source/Servidor/Configuracion/uFrameConfiguracion.pas b/Source/Servidor/Configuracion/uFrameConfiguracion.pas new file mode 100644 index 0000000..c03ed29 --- /dev/null +++ b/Source/Servidor/Configuracion/uFrameConfiguracion.pas @@ -0,0 +1,30 @@ +unit uFrameConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls; + +type + IConfiguracionFrame = interface + ['{07F3EDBF-DFED-4B76-ADC7-0D3B83FB6F9B}'] + procedure Init; + procedure Finalize; + end; + + TFrameConfiguracion = class(TFrame, IConfiguracionFrame) + protected + procedure Finalize; virtual; abstract; + public + procedure Init; virtual; abstract; + end; + +implementation + +{$R *.dfm} + +{ TFrameConfiguracion } + + +end. diff --git a/Source/Servidor/EDI/EDI_INVRPT.pas b/Source/Servidor/EDI/EDI_INVRPT.pas new file mode 100644 index 0000000..5a92ec3 --- /dev/null +++ b/Source/Servidor/EDI/EDI_INVRPT.pas @@ -0,0 +1,195 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit EDI_INVRPT; + +interface + +uses + Classes, EDI_Reader; + +const + LONG_LINEA_CAB = 101; + LONG_LINEA_LIN = 319; + LONG_LINEA_CANT = 100; + +type + TEDIFILE_CABINV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + TIPODOC : array[1..3] of char; + TIPOLIQ : array[1..3] of char; + FECHA : array[1..8] of char; + FECHALIQ: array[1..8] of char; + EMISOR : array[1..17] of char; + RECEPTOR: array[1..17] of char; + DPTO : array[1..3] of char; + CENTRO : array[1..17] of char; + end; + + TEDIFILE_LININV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + NUMLIN : array[1..6] of char; + CODART : array[1..17] of char; + FAMILIA : array[1..17] of char; + BARRA : array[1..17] of char; + TALLA : array[1..17] of char; + MARCA : array[1..25] of char; + TAMANO : array[1..25] of char; + SERIE : array[1..25] of char; + COLOR : array[1..25] of char; + MODELO : array[1..25] of char; + DIBUJO : array[1..25] of char; + DESCRIP : array[1..70] of char; + end; + + TEDITFILE_CANTINV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + NUMLIN : array[1..6] of char; + NUMCANT : array[1..6] of char; + TIPOCANT: array[1..3] of char; + CANTIDAD: array[1..15] of char; + CENTRO : array[1..17] of char; + TMOV : array[1..3] of char; + FACT : array[1..12] of char; + DEPTO : array[1..3] of char; + IDVEN : array[1..10] of char; + end; + + PCABINV = ^TEDIFILE_CABINV; + PLININV = ^TEDIFILE_LININV; + PCANTINV= ^TEDITFILE_CANTINV; + + TCABINV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TLININV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TCANTINV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Inventary; + +{ TLININV_Reader } + +function TLININV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_LININV; + pRegistro : PLININV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_LIN) + '.' + IntTostr(LONG_LINEA_LIN) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_LININV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_LIN+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LIN); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_LININV)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TCABINV_Reader } + +function TCABINV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_CABINV; + pRegistro : PCABINV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_CABINV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABINV)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TCANTINV_Reader } + +function TCANTINV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDITFILE_CANTINV; + pRegistro : PCANTINV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CANT) + '.' + IntTostr(LONG_LINEA_CANT) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDITFILE_CANTINV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CANT+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CANT); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDITFILE_CANTINV)); + FileData.Add(pRegistro); + Result := True; +end; + +end. diff --git a/Source/Servidor/EDI/EDI_Log_Impl.ddp b/Source/Servidor/EDI/EDI_Log_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/EDI/EDI_Log_Impl.dfm b/Source/Servidor/EDI/EDI_Log_Impl.dfm new file mode 100644 index 0000000..c38a85e --- /dev/null +++ b/Source/Servidor/EDI/EDI_Log_Impl.dfm @@ -0,0 +1,169 @@ +object EDI_Log: TEDI_Log + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schEDILog + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schEDILog: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + + 'CARGA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'OK' + TableField = 'OK' + end + item + DatasetField = 'ERROR_MSG' + TableField = 'ERROR_MSG' + end + item + DatasetField = 'REPORT' + TableField = 'REPORT' + end> + end> + Name = 'EDILog' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + + ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EDILog' + end> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end +end diff --git a/Source/Servidor/EDI/EDI_Log_Impl.pas b/Source/Servidor/EDI/EDI_Log_Impl.pas new file mode 100644 index 0000000..770c308 --- /dev/null +++ b/Source/Servidor/EDI/EDI_Log_Impl.pas @@ -0,0 +1,73 @@ +unit EDI_Log_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDADataStreamer; + +type + { TEDI_Log } + TEDI_Log = class(TDARemoteService, IEDI_Log) + schEDILog: TDASchema; + DABINAdapter: TDABINAdapter; + private + protected + { IEDI_Log methods } + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, + uDAInterfaces, uDataModuleServer; + +procedure Create_EDI_Log(out anInstance : IUnknown); +begin + anInstance := TEDI_Log.Create(NIL); +end; + +{ EDI_Log } +procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); + try + cmd.ParamByName('FECHA').AsDateTime := Fecha; + cmd.ParamByName('REPORT').AsString := Report; + if OK then + cmd.ParamByName('OK').AsInteger := 1 + else + cmd.ParamByName('OK').AsInteger := 0; + cmd.ParamByName('ERROR_MSG').AsString := Error_msg; + cmd.Execute; + finally + conn.CommitTransaction; + conn := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); + +finalization + +end. diff --git a/Source/Servidor/EDI/EDI_Reader.pas b/Source/Servidor/EDI/EDI_Reader.pas new file mode 100644 index 0000000..36e6872 --- /dev/null +++ b/Source/Servidor/EDI/EDI_Reader.pas @@ -0,0 +1,109 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 18-04-2006 + Versión actual: 1.0.0 + Fecha versión actual: 18-04-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} +unit EDI_Reader; + +interface + +uses + Classes; + +type + TEDIFileData = class(TList) + end; + + TEDIFile_Reader = class + private + FFilename: String; + FFileData : TEDIFileData; + protected + function ProcessLine (const ALine : String) : Boolean; virtual; abstract; + public + constructor Create; virtual; + destructor Destroy; override; + procedure ReadFile; + published + property Filename : String read FFilename write FFilename; + property FileData : TEDIFileData read FFileData; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Sales; + +{ TEDIFile_Reader } + +constructor TEDIFile_Reader.Create; +begin + FFilename := ''; + FFileData := TEDIFileData.Create; +end; + +destructor TEDIFile_Reader.Destroy; +var + i : integer; +begin + try + with FFileData do + for I := Count - 1 downto 0 do + Dispose(Items[I]); + finally + FFileData.Free; + end; + inherited; +end; + +procedure TEDIFile_Reader.ReadFile; +var + i : integer; + AFichero : TStringList; +begin + if (Length(FFilename) = 0) then + raise Exception.Create('Falta indicar el nombre de todos los ficheros'); + + AFichero := TStringList.Create; + try + try + AFichero.LoadFromFile(FFilename); + for i := 0 to AFichero.Count - 1 do + begin + if not ProcessLine (AFichero.Strings[i]) then + begin + //ShowMessage('Error al procesar la línea ' +#13+#10 + AFichero.Strings[i]); + Break; + end; + end; + except + on E : Exception do + begin + //ShowMessage(E.Message); + raise; + end; + end; + finally + FreeAndNIL(AFichero); + end; +end; + +end. diff --git a/Source/Servidor/EDI/EDI_SLSRPT.pas b/Source/Servidor/EDI/EDI_SLSRPT.pas new file mode 100644 index 0000000..6be4a34 --- /dev/null +++ b/Source/Servidor/EDI/EDI_SLSRPT.pas @@ -0,0 +1,284 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 18-04-2006 + Versión actual: 1.0.0 + Fecha versión actual: 18-04-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit EDI_SLSRPT; + +interface + +uses + Classes, EDI_Reader; + +const + LONG_LINEA_CAB = 859; + LONG_LINEA_LUG = 142; + LONG_LINEA_ART = 778; + +type + TEDIFILE_CABVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + NUMINF : array[1..35] of char; + FUNCION : array[1..3] of char; + FECINI : array[1..12] of char; + FECFIN : array[1..12] of char; + FECINF : array[1..12] of char; + PERVEN : array[1..16] of char; + + EANOFI : array[1..17] of char; + EANEMI : array[1..17] of char; + EANREC : array[1..17] of char; + EANVEN : array[1..17] of char; + EANALM : array[1..17] of char; + EANREP : array[1..17] of char; + EANPRO : array[1..17] of char; + + EANADMSA: array[1..17] of char; + EANREPSR: array[1..17] of char; + + ADMVENSA: array[1..35] of char; + REPDEPSR: array[1..35] of char; + EMAILSA : array[1..35] of char; + NUMFAXSA: array[1..35] of char; + NUMTELSA: array[1..35] of char; + NUMTLXSA: array[1..35] of char; + X400SA : array[1..35] of char; + + EMAILSR : array[1..35] of char; + NUMFAXSR: array[1..35] of char; + NUMTELSR: array[1..35] of char; + NUMTLXSR: array[1..35] of char; + X400SR : array[1..35] of char; + + NUMPRE : array[1..35] of char; + NUMINFSC: array[1..35] of char; + NUMCON : array[1..35] of char; + + FECPRE : array[1..12] of char; + FECINFSC: array[1..12] of char; + FECCON : array[1..12] of char; + + DIVPED : array[1..3] of char; + DIVPRE : array[1..3] of char; + DIVPAG : array[1..3] of char; + DIVPEDF : array[1..3] of char; + DIVPREF : array[1..3] of char; + DIVPAGF : array[1..3] of char; + + TASCAM : array[1..15] of char; + FECTAS : array[1..12] of char; + end; + + TEDIFILE_LUGVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + CLAVE2 : array[1..5] of char; + EANLUG : array[1..17] of char; + LUGVEN : array[1..70] of char; + FECINI : array[1..12] of char; + FECFIN : array[1..12] of char; + PERVEN : array[1..16] of char; + end; + + TEDIFILE_ARTVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + CLAVE2 : array[1..5] of char; + CLAVE3 : array[1..5] of char; + EANART : array[1..17] of char; + CODCOM : array[1..35] of char; + NUMVAR : array[1..35] of char; + CODPRO : array[1..35] of char; + DESARTCO: array[1..35] of char; + DESART : array[1..70] of char; + NUMCON : array[1..35] of char; + NUMLIS : array[1..35] of char; + CONESP1 : array[1..3] of char; + CONESP2 : array[1..3] of char; + CONESP3 : array[1..3] of char; + VALVEN : array[1..15] of char; + PRENETCT: array[1..15] of char; + PREBRUCT: array[1..15] of char; + PREINFET: array[1..15] of char; + PREINFFT: array[1..15] of char; + PRECALCT: array[1..15] of char; + PRENETCA: array[1..15] of char; + PREBRUCA: array[1..15] of char; + PREINFEA: array[1..15] of char; + PREINFFA: array[1..15] of char; + PRECALCA: array[1..15] of char; + BAPRUN1 : array[1..9] of char; + UNIMED1 : array[1..3] of char; + BAPRUN2 : array[1..9] of char; + UNIMED2 : array[1..3] of char; + BAPRUN3 : array[1..9] of char; + UNIMED3 : array[1..3] of char; + BAPRUN4 : array[1..9] of char; + UNIMED4 : array[1..3] of char; + BAPRUN5 : array[1..9] of char; + UNIMED5 : array[1..3] of char; + CANVEN : array[1..15] of char; + EXIPRO : array[1..15] of char; + DESEXI : array[1..15] of char; + ESPMEDCV: array[1..3] of char; + ESPMEDEP: array[1..3] of char; + ESPMEDDE: array[1..3] of char; + CANDEV : array[1..15] of char; + EANVEN : array[1..17] of char; + NOMVEN : array[1..70] of char; + NUMTALON: array[1..35] of char; + CANVENNET : array[1..15] of char; + UMEDVENNET: array[1..3] of char; + CANESP : array[1..15] of char; + UMEDESP : array[1..3] of char; + end; + + PCABVEN = ^TEDIFILE_CABVEN; + PLUGVEN = ^TEDIFILE_LUGVEN; + PARTVEN = ^TEDIFILE_ARTVEN; + + TCABVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TLUGVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TARTVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Sales; + +{ TCABVEN_Reader } + +function TCABVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_CABVEN; + pRegistro : PCABVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_CABVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TLUGVEN_Reader } + +function TLUGVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_LUGVEN; + pRegistro : PLUGVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_LUG) + '.' + IntTostr(LONG_LINEA_LUG) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_LUGVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_LUG+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LUG); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_LUGVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TARTVEN_Reader } + +function TARTVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_ARTVEN; + pRegistro : PARTVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_ART) + '.' + IntTostr(LONG_LINEA_ART) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_ARTVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_ART+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_ART); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_ARTVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +end. diff --git a/Source/Servidor/EDI_Inventary_Impl.dfm b/Source/Servidor/EDI_Inventary_Impl.dfm new file mode 100644 index 0000000..29be14a --- /dev/null +++ b/Source/Servidor/EDI_Inventary_Impl.dfm @@ -0,0 +1,7 @@ +inherited EDI_Inventary: TEDI_Inventary + OldCreateOrder = True + Left = 200 + Top = 200 + Height = 300 + Width = 300 +end diff --git a/Source/Servidor/EDI_Inventary_Impl.pas b/Source/Servidor/EDI_Inventary_Impl.pas new file mode 100644 index 0000000..27971a8 --- /dev/null +++ b/Source/Servidor/EDI_Inventary_Impl.pas @@ -0,0 +1,52 @@ +unit EDI_Inventary_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TEDI_Inventary } + TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) + private + protected + { IEDI_Inventary methods } + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk; + +procedure Create_EDI_Inventary(out anInstance : IUnknown); +begin + anInstance := TEDI_Inventary.Create(nil); +end; + +{ EDI_Inventary } +function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; +begin +end; + +initialization + TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); + +finalization + +end. diff --git a/Source/Servidor/EDI_Log_Impl.dfm b/Source/Servidor/EDI_Log_Impl.dfm new file mode 100644 index 0000000..cc39195 --- /dev/null +++ b/Source/Servidor/EDI_Log_Impl.dfm @@ -0,0 +1,179 @@ +object EDI_Log: TEDI_Log + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schEDILog + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schEDILog: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + + 'CARGA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'OK' + TableField = 'OK' + end + item + DatasetField = 'ERROR_MSG' + TableField = 'ERROR_MSG' + end + item + DatasetField = 'REPORT' + TableField = 'REPORT' + end> + end> + Name = 'EDILog' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + + ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EDILog' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 48 + Top = 80 + end +end diff --git a/Source/Servidor/EDI_Log_Impl.pas b/Source/Servidor/EDI_Log_Impl.pas new file mode 100644 index 0000000..1b06759 --- /dev/null +++ b/Source/Servidor/EDI_Log_Impl.pas @@ -0,0 +1,75 @@ +unit EDI_Log_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataStreamer, uDABinAdapter, uDAClasses, uDAInterfaces; + +type + { TEDI_Log } + TEDI_Log = class(TDARemoteService, IEDI_Log) + DABINAdapter: TDABINAdapter; + schEDILog: TDASchema; + private + protected + { IEDI_Log methods } + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, + uDataModuleServer, Dialogs; + +procedure Create_EDI_Log(out anInstance : IUnknown); +begin + anInstance := TEDI_Log.Create(NIL); +end; + +{ EDI_Log } +procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); + try + cmd.ParamByName('FECHA').AsDateTime := Fecha; + cmd.ParamByName('REPORT').AsString := Report; + if OK then + cmd.ParamByName('OK').AsInteger := 1 + else + cmd.ParamByName('OK').AsInteger := 0; + cmd.ParamByName('ERROR_MSG').AsString := Error_msg; + cmd.Execute; + finally + conn.CommitTransaction; + conn := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); + +finalization + +end. diff --git a/Source/Servidor/EDI_Sales_Impl.dfm b/Source/Servidor/EDI_Sales_Impl.dfm new file mode 100644 index 0000000..96f3a4b --- /dev/null +++ b/Source/Servidor/EDI_Sales_Impl.dfm @@ -0,0 +1,7 @@ +inherited EDI_Sales: TEDI_Sales + OldCreateOrder = True + Left = 200 + Top = 200 + Height = 300 + Width = 300 +end diff --git a/Source/Servidor/EDI_Sales_Impl.pas b/Source/Servidor/EDI_Sales_Impl.pas new file mode 100644 index 0000000..e3a05bd --- /dev/null +++ b/Source/Servidor/EDI_Sales_Impl.pas @@ -0,0 +1,52 @@ +unit EDI_Sales_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TEDI_Sales } + TEDI_Sales = class(TDARemoteService, IEDI_Sales) + private + protected + { IEDI_Sales methods } + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk; + +procedure Create_EDI_Sales(out anInstance : IUnknown); +begin + anInstance := TEDI_Sales.Create(nil); +end; + +{ EDI_Sales } +function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +begin +end; + +initialization + TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); + +finalization + +end. diff --git a/Source/Servidor/EDI_Utils.pas b/Source/Servidor/EDI_Utils.pas new file mode 100644 index 0000000..61e81b4 --- /dev/null +++ b/Source/Servidor/EDI_Utils.pas @@ -0,0 +1,40 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit EDI_Utils; + +interface + +uses + Controls; + +function EDIDateToDateF (const ADate : string; const AFormat : string = 'yyyymmdd' ) : TDate; + +implementation + +uses + SysUtils; + +function EDIDateToDateF (const ADate : string; const AFormat : string) : TDate; +var + aux : string; +begin + if Length(ADate) = 0 then + Result := 0 + else begin + try + if AFormat = 'yyyymmdd' then + Result := EncodeDate( StrToInt(copy(ADate, 1, 4)), StrToInt(copy(ADate, 5, 2)), StrToInt(copy(ADate, 7, 2)) ); + except + Result := 0 + end; + end; +end; + +end. + \ No newline at end of file diff --git a/Source/Servidor/RDX_VARELA.daConnections b/Source/Servidor/RDX_VARELA.daConnections new file mode 100644 index 0000000..b8d3686 --- /dev/null +++ b/Source/Servidor/RDX_VARELA.daConnections @@ -0,0 +1 @@ +SDAC?Server=DAVID;Database=GFT_VARELA;Integrated Security=SSPI;TrueGFT_VARELA010pbWaitTrue6001 diff --git a/Source/Servidor/RDX_VARELA.daDictionary b/Source/Servidor/RDX_VARELA.daDictionary new file mode 100644 index 0000000..e6a48a9 --- /dev/null +++ b/Source/Servidor/RDX_VARELA.daDictionary @@ -0,0 +1 @@ +0 diff --git a/Source/Servidor/RDX_VARELA.daSchema b/Source/Servidor/RDX_VARELA.daSchema new file mode 100644 index 0000000..0afb08f --- /dev/null +++ b/Source/Servidor/RDX_VARELA.daSchema @@ -0,0 +1,35 @@ +TrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE30TrueTrueFalseFalseCLAVE3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANART0FalseTrueFalseFalseEANARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringCODCOM0FalseTrueFalseFalseCODCOMFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMVAR0FalseTrueFalseFalseNUMVARFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCODPRO0FalseTrueFalseFalseCODPROFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESARTCO0FalseTrueFalseFalseDESARTCOFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESART0FalseTrueFalseFalseDESARTFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMLIS0FalseTrueFalseFalseNUMLISFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCONESP10FalseTrueFalseFalseCONESP1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP20FalseTrueFalseFalseCONESP2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP30FalseTrueFalseFalseCONESP3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatVALVEN0FalseTrueFalseFalseVALVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCT0FalseTrueFalseFalsePRENETCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCT0FalseTrueFalseFalsePREBRUCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFET0FalseTrueFalseFalsePREINFETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFT0FalseTrueFalseFalsePREINFFTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCT0FalseTrueFalseFalsePRECALCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCA0FalseTrueFalseFalsePRENETCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCA0FalseTrueFalseFalsePREBRUCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFEA0FalseTrueFalseFalsePREINFEAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFA0FalseTrueFalseFalsePREINFFAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCA0FalseTrueFalseFalsePRECALCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN10FalseTrueFalseFalseBAPRUN1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED10FalseTrueFalseFalseUNIMED1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN20FalseTrueFalseFalseBAPRUN2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED20FalseTrueFalseFalseUNIMED2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN30FalseTrueFalseFalseBAPRUN3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED30FalseTrueFalseFalseUNIMED3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN40FalseTrueFalseFalseBAPRUN4FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED40FalseTrueFalseFalseUNIMED4FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN50FalseTrueFalseFalseBAPRUN5FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED50FalseTrueFalseFalseUNIMED5FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANVEN0FalseTrueFalseFalseCANVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatEXIPRO0FalseTrueFalseFalseEXIPROFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatDESEXI0FalseTrueFalseFalseDESEXIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringESPMEDCV0FalseTrueFalseFalseESPMEDCVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDEP0FalseTrueFalseFalseESPMEDEPFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDDE0FalseTrueFalseFalseESPMEDDEFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANDEV0FalseTrueFalseFalseCANDEVFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringNOMVEN0FalseTrueFalseFalseNOMVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMTALON0FalseTrueFalseFalseNUMTALONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatFloatCANVENNET0FalseTrueFalseFalseCANVENNETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDVENNET0FalseTrueFalseFalseUMEDVENNETFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANESP0FalseTrueFalseFalseCANESPFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDESP0FalseTrueFalseFalseUMEDESPFalseFalseFalse3TrueRDX_ARTVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2CLAVE3CLAVE3CLAVE3EANARTEANARTEANARTCODCOMCODCOMCODCOMNUMVARNUMVARNUMVARCODPROCODPROCODPRODESARTCODESARTCODESARTCODESARTDESARTDESARTNUMCONNUMCONNUMCONNUMLISNUMLISNUMLISCONESP1CONESP1CONESP1CONESP2CONESP2CONESP2CONESP3CONESP3CONESP3VALVENVALVENVALVENPRENETCTPRENETCTPRENETCTPREBRUCTPREBRUCTPREBRUCTPREINFETPREINFETPREINFETPREINFFTPREINFFTPREINFFTPRECALCTPRECALCTPRECALCTPRENETCAPRENETCAPRENETCAPREBRUCAPREBRUCAPREBRUCAPREINFEAPREINFEAPREINFEAPREINFFAPREINFFAPREINFFAPRECALCAPRECALCAPRECALCABAPRUN1BAPRUN1BAPRUN1UNIMED1UNIMED1UNIMED1BAPRUN2BAPRUN2BAPRUN2UNIMED2UNIMED2UNIMED2BAPRUN3BAPRUN3BAPRUN3UNIMED3UNIMED3UNIMED3BAPRUN4BAPRUN4BAPRUN4UNIMED4UNIMED4UNIMED4BAPRUN5BAPRUN5BAPRUN5UNIMED5UNIMED5UNIMED5CANVENCANVENCANVENEXIPROEXIPROEXIPRODESEXIDESEXIDESEXIESPMEDCVESPMEDCVESPMEDCVESPMEDEPESPMEDEPESPMEDEPESPMEDDEESPMEDDEESPMEDDECANDEVCANDEVCANDEVEANVENEANVENEANVENNOMVENNOMVENNOMVENNUMTALONNUMTALONNUMTALONCANVENNETCANVENNETCANVENNETUMEDVENNETUMEDVENNETUMEDVENNETCANESPCANESPCANESPUMEDESPUMEDESPUMEDESPGFT_VARELASELECT + CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODPRO, + DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, + CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, + PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, + BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, + BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, + DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, + NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDESP + FROM + RDX_ARTVENstSQLRDX_ARTVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTIPODOC0FalseTrueFalseFalseTIPODOCFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringTIPOLIQ0FalseTrueFalseFalseTIPOLIQFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA0FalseTrueFalseFalseFECHAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHALIQ0FalseTrueFalseFalseFECHALIQFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEMISOR0FalseTrueFalseFalseEMISORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringRECEPTOR0FalseTrueFalseFalseRECEPTORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringDPTO0FalseTrueFalseFalseDPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TrueRDX_CABINVNUMDOCNUMDOCNUMDOCTIPODOCTIPODOCTIPODOCTIPOLIQTIPOLIQTIPOLIQFECHAFECHAFECHAFECHALIQFECHALIQFECHALIQEMISOREMISOREMISORRECEPTORRECEPTORRECEPTORDPTODPTODPTOCENTROCENTROCENTROGFT_VARELASELECT + NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, + RECEPTOR, DPTO, CENTRO + FROM + RDX_CABINVstSQLRDX_CABINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringNUMINF0FalseTrueFalseFalseNUMINFFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringFUNCION0FalseTrueFalseFalseFUNCIONFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINF0FalseTrueFalseFalseFECINFFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TruetaLeftJustifydabtUnknownFalsedatStringEANOFI0FalseTrueFalseFalseEANOFIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANEMI0FalseTrueFalseFalseEANEMIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREC0FalseTrueFalseFalseEANRECFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANALM0FalseTrueFalseFalseEANALMFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREP0FalseTrueFalseFalseEANREPFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANPRO0FalseTrueFalseFalseEANPROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANADMSA0FalseTrueFalseFalseEANADMSAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREPSR0FalseTrueFalseFalseEANREPSRFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringADMVENSA0FalseTrueFalseFalseADMVENSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringREPDEPSR0FalseTrueFalseFalseREPDEPSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSA0FalseTrueFalseFalseEMAILSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSA0FalseTrueFalseFalseNUMFAXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSA0FalseTrueFalseFalseNUMTELSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSA0FalseTrueFalseFalseNUMTLXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SA0FalseTrueFalseFalseX400SAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSR0FalseTrueFalseFalseEMAILSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSR0FalseTrueFalseFalseNUMFAXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSR0FalseTrueFalseFalseNUMTELSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSR0FalseTrueFalseFalseNUMTLXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SR0FalseTrueFalseFalseX400SRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMPRE0FalseTrueFalseFalseNUMPREFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMINFSC0FalseTrueFalseFalseNUMINFSCFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatDateTimeFECPRE0FalseTrueFalseFalseFECPREFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINFSC0FalseTrueFalseFalseFECINFSCFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECCON0FalseTrueFalseFalseFECCONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringDIVPED0FalseTrueFalseFalseDIVPEDFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPRE0FalseTrueFalseFalseDIVPREFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAG0FalseTrueFalseFalseDIVPAGFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPEDF0FalseTrueFalseFalseDIVPEDFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPREF0FalseTrueFalseFalseDIVPREFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAGF0FalseTrueFalseFalseDIVPAGFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatTASCAM0FalseTrueFalseFalseTASCAMFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECTAS0FalseTrueFalseFalseFECTASFalseFalseFalse0TrueRDX_CABVENCLAVE1CLAVE1CLAVE1NUMINFNUMINFNUMINFFUNCIONFUNCIONFUNCIONFECINIFECINIFECINIFECFINFECFINFECFINFECINFFECINFFECINFPERVENPERVENPERVENEANOFIEANOFIEANOFIEANEMIEANEMIEANEMIEANRECEANRECEANRECEANVENEANVENEANVENEANALMEANALMEANALMEANREPEANREPEANREPEANPROEANPROEANPROEANADMSAEANADMSAEANADMSAEANREPSREANREPSREANREPSRADMVENSAADMVENSAADMVENSAREPDEPSRREPDEPSRREPDEPSREMAILSAEMAILSAEMAILSANUMFAXSANUMFAXSANUMFAXSANUMTELSANUMTELSANUMTELSANUMTLXSANUMTLXSANUMTLXSAX400SAX400SAX400SAEMAILSREMAILSREMAILSRNUMFAXSRNUMFAXSRNUMFAXSRNUMTELSRNUMTELSRNUMTELSRNUMTLXSRNUMTLXSRNUMTLXSRX400SRX400SRX400SRNUMPRENUMPRENUMPRENUMINFSCNUMINFSCNUMINFSCNUMCONNUMCONNUMCONFECPREFECPREFECPREFECINFSCFECINFSCFECINFSCFECCONFECCONFECCONDIVPEDDIVPEDDIVPEDDIVPREDIVPREDIVPREDIVPAGDIVPAGDIVPAGDIVPEDFDIVPEDFDIVPEDFDIVPREFDIVPREFDIVPREFDIVPAGFDIVPAGFDIVPAGFTASCAMTASCAMTASCAMFECTASFECTASFECTASGFT_VARELASELECT + CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PERVEN, + EANOFI, EANEMI, EANREC, EANVEN, EANALM, EANREP, EANPRO, + EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAILSA, NUMFAXSA, + NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXSR, NUMTELSR, + NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FECPRE, + FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, + DIVPREF, DIVPAGF, TASCAM, FECTAS + FROM + RDX_CABVENstSQLRDX_CABVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatNUMCANT0FalseTrueFalseFalseNUMCANTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringTIPOCANT0FalseTrueFalseFalseTIPOCANTFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANTIDAD0FalseTrueFalseFalseCANTIDADFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTMOV0FalseTrueFalseFalseTMOVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringFACT0FalseTrueFalseFalseFACTFalseFalseFalse12TruetaLeftJustifydabtUnknownFalsedatStringDEPTO0FalseTrueFalseFalseDEPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringIDVEN0FalseTrueFalseFalseIDVENFalseFalseFalse10TrueRDX_CANTINVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINNUMCANTNUMCANTNUMCANTTIPOCANTTIPOCANTTIPOCANTCANTIDADCANTIDADCANTIDADCENTROCENTROCENTROTMOVTMOVTMOVFACTFACTFACTDEPTODEPTODEPTOIDVENIDVENIDVENGFT_VARELASELECT + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO, + TMOV, FACT, DEPTO, IDVEN + FROM + RDX_CANTINVstSQLRDX_CANTINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCODART0FalseTrueFalseFalseCODARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringFAMILIA0FalseTrueFalseFalseFAMILIAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringBARRA0FalseTrueFalseFalseBARRAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTALLA0FalseTrueFalseFalseTALLAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringMARCA0FalseTrueFalseFalseMARCAFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTAMANO0FalseTrueFalseFalseTAMANOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringSERIE0FalseTrueFalseFalseSERIEFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringCOLOR0FalseTrueFalseFalseCOLORFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringMODELO0FalseTrueFalseFalseMODELOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDIBUJO0FalseTrueFalseFalseDIBUJOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDESCRIP0FalseTrueFalseFalseDESCRIPFalseFalseFalse70TrueRDX_LININVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINCODARTCODARTCODARTFAMILIAFAMILIAFAMILIABARRABARRABARRATALLATALLATALLAMARCAMARCAMARCATAMANOTAMANOTAMANOSERIESERIESERIECOLORCOLORCOLORMODELOMODELOMODELODIBUJODIBUJODIBUJODESCRIPDESCRIPDESCRIPGFT_VARELASELECT + NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA, + TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP + FROM + RDX_LININVstSQLRDX_LININVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANLUG0FalseTrueFalseFalseEANLUGFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringLUGVEN0FalseTrueFalseFalseLUGVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TrueRDX_LUGVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2EANLUGEANLUGEANLUGLUGVENLUGVENLUGVENFECINIFECINIFECINIFECFINFECFINFECFINPERVENPERVENPERVENGFT_VARELASELECT + CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERVEN + FROM + RDX_LUGVENstSQLRDX_LUGVENRDX_LININVNUMDOCRDX_CABINVNUMDOCFK_RDX_LININV_RDX_CABINVRDX_CANTINVNUMDOC;NUMLINRDX_LININVNUMDOC;NUMLINFK_RDX_CANTINV_RDX_LININVRDX_LUGVENCLAVE1RDX_CABVENCLAVE1FK_RDX_LUGVEN_RDX_CABVENRDX_ARTVENCLAVE1;CLAVE2RDX_LUGVENCLAVE1;CLAVE2FK_RDX_ARTVEN_RDX_LUGVEN0 diff --git a/Source/Servidor/RODLFILE.res b/Source/Servidor/RODLFILE.res new file mode 100644 index 0000000000000000000000000000000000000000..1deefbaa2fa9dcc960b18ca793812cc9b68d1e2b GIT binary patch literal 18469 zcmeHP*=`$2meq3u^ACdFV;uVew7U^&K^Rw+M_$lx1(uX{5hIZvl5$s1qd#-Lr{+Xv zGP#&$kreHzUJ7s_QxYR1Z`|eFbMNKF#l^)X{{8Yx_YapF|NZYb7Z(&i`Q?}2UEExJ ze~~U;T$GDz{6BB}-SX!5fBgC3{_D6U3xt-pPC-0wMJuco6d-caZ z{M+w-|6=^(Y&84J<#(fp=K0lIf0JMMtIIdn>G{=PeUi#iPZ4-ZUGtmS^zp-dxa!w_)yzJQZ^zU54>?^gACZ}Ll$$`TQwopZj5tjL zktUZMyyY&izqN}#YggS~^ldX)jONSLisP(kU5E&b5m_WwD?$=)Vx+~;B(>YOTAWT6 zv*~>^ENB@MGUP~naFBqZg;*6J24!h>k=h*iz6HN&Ce3VgzuaG>KI4TnDXH#{YC)Wg z9Q)Hn`DBF&d-r!e`B>j~Hl8k5G@KgYeIzm1L}ZeVc%Ch>(z_^K4l?C^8+^5x-u~Be zv0N18!FXa*#@k9>i1SgB;AIGgN|tEaUaUKo_OQDHZq~2+qfh>(d6+Jm{x6o#b1EfH zAqgI!RWc?`Y;+kKfX6XPEp-C=<$s(nW~18$)VS4z>&c>-y&K(jPa5u)&uZR{9`6^+ zXGA3+56KDj-a)~XfDVU3e2Il~i_>(bd#CR|;HVZbm-YpQyMEbknnfBx)tbet+n<_; z(Q^Gn6)QLdVz`ZX2hB;aI1j^op*lyJJ#3_^?aR>&HioUY>koJR`ZvwI-F1D)>%V+} zEr#&~hIw^a?nf}${`YmEXTxVVmhBfB_1mlleRa87?$u%j+g~nsJ-NF4bgk9O?H->E zLa2W_-0YCZZ2Vy{7>&|Z0>ThQVJa{hPMn2SLEjnEnX;fx6v^g094wMGiC~joMI`kh zOBJ!oC|#WzcZos;Wg<4i+X*W~Vm1ZGdleiG_RFfsnmmpb$FRd*3EKOkg}S}U_2l;c z@vd1~*6M`96yA6QUG0oux7Kd2_U-8Bo91>pyW7}T^%L)#+5V+YG=RF{{PXg>JvFHm z4-d*b&f7XTQ~{qH1appCXM_I-I`7xX_xjYHgP+YtgVQ?fyxz>4SsCBMGd@)t|33BT z&4;_uqNze$YEZISGZ!@BHXC@*8m}^wglF#%6Io2we$}9on)|xDy2o9?Y4BGZla<`NPRmD>Q5Ne|bE|k_2=YW}<<%W9$0CcJ>wmibY;RJhJ7sX~! zI)f+xH9Ak|=YRSZkLtjh;~`?VqMC#hxtP=JP<;h zY6QKNo`N!mEq)e5ti*k2OxY{w6^`v-?T|9G2za>be%a?J^;i96zs=-dOy7?uTRBXK zo(En5Kf*h7I9lS8gEnVxgLQ&Njs*77Pmr!GrnBc)pX5SMN^g`^3YiThK}!G*2R|90 z5F|Rwl8nMJ+Z)pW-`m$5?)sN&Uu|$Tf{8#)Bq}0Tl?*TD7;)B~baWs2B0-^;^Fq^J%U2xVQrx+#CWVi~RK-1K`I9Mu` zlm=n^R8+T_CLL^6{T>0V)-`z(59|gs+osj8^y2!vGp!W;cdwti)VK5Zc{ZEwNh?k< z(DOu-YAvruYgD6@4vxG4-DU@;D+S1~;5~^sD$Nr(6}>-@d__xv*=m&xz^8)mkxIZ) z3Jj+d?JQ884t1|}L#J6vRI(_oGzl>ylm-U4!=fj~sbWgz%CoN=fX;6zZ@zh|diQ(s zH~-LvGM|0i04GKTcuQ*uWgr%125IaPx1jtzatD^d=k^@>X4p84dp{v;Xpq<3Lr+mH zLD=w>edkP(?34ijR95hQL;Hja^N{DMQIb*id8vOxPL3_X4m%G5S+` z*)sJ#f{KFcfchJc9Q=o+8k(RD$wmfnK{1$cV%~o!7(Z(3ubM^GloizO-a=ci6yOyR zQPeyoDzG>VSyOgKCWqn)|H5yvZ5ij$=kJ<7uU>V<7aRhijuLCf5!O8qJPME`w*h4q zuc{`dfWjI0K{$&9Y>7&srKbkT(<)Ex?#|B?o(FFsjC8f)*Ujt!?{~MV8iyEAhct;O z@K2~3BYU^WI>MAfR)rFwP0-Dwa+Jdg(I*5Oqf}BEHCd_)kXPgtBPHZh(H6!~N45SS zs+n+|)lkt<& zi@Hu3qxgDUT-$yzSYLCCzMrEPI`(urb>BW8Cp}IEl&CUDt|bLc>Np&mDLPv#7@9P` zZZ-Cw<9yB*wJXm$dsww(NiHHq(+vR-2kcQiqPngexChW`QETrNN+Cx@>%+RdPKnkw zdojZqa%4xPi&t#gm*(c&}%p$^2b2Yi`Fd<(7~f@MDxQz&C-A zjkP&PLz*Ee0Dzo)00%{dR^8?{6X`F;zoMG!OGbV}HAUY9Dqh6ZZnUUj!;GQxkR60= z-h8;9j_%@5kCUOZ4f(SNJuZk!I0I==(Fi~_AlC${r<|gQc2NE7dS1q}IoSA>OWew$ z4y8-)o5=|cTHC%AZ4=F1+c>bcp$)vXdp}3H)=r*?1mpQn%}|$*DO)EC1xp!gM#m{M z2Zaf3RYn#!{Z4&$(9f1qIwjGLI%u zIEr8cM~4`EnS%6w8(s`WCdL>l^qvKDqfj)O2J|=)UCAhT45M}51Uv8;T`6_zb|}A8 zV))r`*Zpl@R;|D4FMBRzNZj(|d^bDv}ejBkO&THC^`CNfWsUCag3%*WGrYs zJW_^VEN^2zp@|k{`)ILEw7MFURM8TcQ;;$;>ccX<+7#Mw*Gr=Zp-b?Y&?D=$)x_uk zA0AP+@(FB|(&#@+UP)zlmIJr_$l1VWbwgg90PYvT0;WFuw`*2I9Ky@()cYnMKj4(Lck*q89XaAMAt zq|0F;zh;)}7z$pac|ETE>ie3h20Q9^c+-5C&Ni^vDXh--|FOQ4lh9mSWd7k{4t-g{ zutWB;7lxfjlMy~|nwkMjkOH*hDC66q&y*X3_CaJ&si31$rj!sqYUxTBoF_FNSmd`7 zL7kI|S*SFoL%@7GgE~lvDE8DcA-2!=&AeCkfUMg#?pxO==^3_t=M+30A(OIt?goYYWQOC!Vq3(Z*87e2qC?badq1y7_xBri zcFH24Z}xRi?9MN?chbF27@;|Q4}tobZj9~4QZv8Bz{!3}=`(BXwYY5;*iCOOnx&)Z zOIfJBdWH6k0B#RP12Q!@wEgkq&?uBm;j(YJ8#aEZwrpf>Jto_P5F1L^t6juQ*zC#5 zg6ha!bNBS4&hy3S?#a8U^8mByoB3lm>~==Cx_!tf-;HKVk1+RnUdO95(QH0#`>lh9zOhwd@C8(V+d+XP$`2Mg(J}_F-pyIh*`a^AUBb z>eW^PDbTV2LQfEe z0SzuNr5aRU;vY<~^^0c{Ajr=7htYgGFq{&zrQSwEm_z0*8PGyVXsOc~Kldps6OJVa zzL@kd&;cS6gpdMNP}L6uFDeKylrCrQ17-)mELFTQ35;_TC|w1jM4ik))&R-}z#sGA z7K2D!=6GyL{IKET6AZU#W`f}uHwAeH+E^-rZe5NkbzH(|8Cv0Y0mHNDT_5IA7hHx7 zj{3Pt%wtQ{moRM3vl!6KRU%3hToie%_`X>CT2{=U#1GzIaljeQkT23m(e+#u2wje1 z@mbCGSx@h^whurGAij3lLz=AtkfmG=b)yF8*Ij+`%4;J=%NNJwmvH#*0D_2FC*?f?DR-0G4< z&)R3yPwn2vn(N!x4dM`LPpIvnO$`Cnq5SUyXdsaVCP{r{_)3~C#{b%G)}HWdds?@M zUMfag!yy*H+xl%E5+qbW3oFT)7eTe>z;OHa(JlGOgFCUb=L56u&ThEqzo7?0`#;y( B%zyv@ literal 0 HcmV?d00001 diff --git a/Source/Servidor/RegExpr.pas b/Source/Servidor/RegExpr.pas new file mode 100644 index 0000000..f17279a --- /dev/null +++ b/Source/Servidor/RegExpr.pas @@ -0,0 +1,4042 @@ +unit RegExpr; + +{ + TRegExpr class library + Delphi Regular Expressions + + Copyright (c) 1999-2004 Andrey V. Sorokin, St.Petersburg, Russia + + You may use this software in any kind of development, + including comercial, redistribute, and modify it freely, + under the following restrictions : + 1. This software is provided as it is, without any kind of + warranty given. Use it at Your own risk.The author is not + responsible for any consequences of use of this software. + 2. The origin of this software may not be mispresented, You + must not claim that You wrote the original software. If + You use this software in any kind of product, it would be + appreciated that there in a information box, or in the + documentation would be an acknowledgement like + + Partial Copyright (c) 2004 Andrey V. Sorokin + http://RegExpStudio.com + mailto:anso@mail.ru + + 3. You may not have any income from distributing this source + (or altered version of it) to other developers. When You + use this product in a comercial package, the source may + not be charged seperatly. + 4. Altered versions must be plainly marked as such, and must + not be misrepresented as being the original software. + 5. RegExp Studio application and all the visual components as + well as documentation is not part of the TRegExpr library + and is not free for usage. + + mailto:anso@mail.ru + http://RegExpStudio.com + http://anso.da.ru/ +} + +interface + +// ======== Determine compiler +{$IFDEF VER80} Sorry, TRegExpr is for 32-bits Delphi only. Delphi 1 is not supported (and whos really care today?!). {$ENDIF} +{$IFDEF VER90} {$DEFINE D2} {$ENDIF} // D2 +{$IFDEF VER93} {$DEFINE D2} {$ENDIF} // CPPB 1 +{$IFDEF VER100} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D3 +{$IFDEF VER110} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // CPPB 3 +{$IFDEF VER120} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D4 +{$IFDEF VER130} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D5 +{$IFDEF VER140} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D6 +{$IFDEF VER150} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D7 +{$IFDEF VER180} {$DEFINE D2007} {$DEFINE D10} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D10/D2007 + +// ======== Define base compiler options +{$BOOLEVAL OFF} +{$EXTENDEDSYNTAX ON} +{$LONGSTRINGS ON} +{$OPTIMIZATION ON} +{$IFDEF D6} + {$WARN SYMBOL_PLATFORM OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF D7} + {$WARN UNSAFE_CAST OFF} // Suppress .Net warnings + {$WARN UNSAFE_TYPE OFF} // Suppress .Net warnings + {$WARN UNSAFE_CODE OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF FPC} + {$MODE DELPHI} // Delphi-compatible mode in FreePascal +{$ENDIF} + +// ======== Define options for TRegExpr engine +{.$DEFINE UniCode} // Unicode support +{$DEFINE RegExpPCodeDump} // p-code dumping (see Dump method) +{$IFNDEF FPC} // the option is not supported in FreePascal + {$DEFINE reRealExceptionAddr} // exceptions will point to appropriate source line, not to Error procedure +{$ENDIF} +{$DEFINE ComplexBraces} // support braces in complex cases +{$IFNDEF UniCode} // the option applicable only for non-UniCode mode + {$DEFINE UseSetOfChar} // Significant optimization by using set of char +{$ENDIF} +{$IFDEF UseSetOfChar} + {$DEFINE UseFirstCharSet} // Fast skip between matches for r.e. that starts with determined set of chars +{$ENDIF} + +// ======== Define Pascal-language options +// Define 'UseAsserts' option (do not edit this definitions). +// Asserts used to catch 'strange bugs' in TRegExpr implementation (when something goes +// completely wrong). You can swith asserts on/off with help of {$C+}/{$C-} compiler options. +{$IFDEF D3} {$DEFINE UseAsserts} {$ENDIF} +{$IFDEF FPC} {$DEFINE UseAsserts} {$ENDIF} + +// Define 'use subroutine parameters default values' option (do not edit this definition). +{$IFDEF D4} {$DEFINE DefParam} {$ENDIF} + +// Define 'OverMeth' options, to use method overloading (do not edit this definitions). +{$IFDEF D5} {$DEFINE OverMeth} {$ENDIF} +{$IFDEF FPC} {$DEFINE OverMeth} {$ENDIF} + +uses + Classes, // TStrings in Split method + SysUtils; // Exception + +type + {$IFDEF UniCode} + PRegExprChar = PWideChar; + RegExprString = WideString; + REChar = WideChar; + {$ELSE} + PRegExprChar = PChar; + RegExprString = AnsiString; //###0.952 was string + REChar = Char; + {$ENDIF} + TREOp = REChar; // internal p-code type //###0.933 + PREOp = ^TREOp; + TRENextOff = integer; // internal Next "pointer" (offset to current p-code) //###0.933 + PRENextOff = ^TRENextOff; // used for extracting Next "pointers" from compiled r.e. //###0.933 + TREBracesArg = integer; // type of {m,n} arguments + PREBracesArg = ^TREBracesArg; + +const + REOpSz = SizeOf (TREOp) div SizeOf (REChar); // size of p-code in RegExprString units + RENextOffSz = SizeOf (TRENextOff) div SizeOf (REChar); // size of Next 'pointer' -"- + REBracesArgSz = SizeOf (TREBracesArg) div SizeOf (REChar); // size of BRACES arguments -"- + +type + TRegExprInvertCaseFunction = function (const Ch : REChar) : REChar + of object; + +const + EscChar = '\'; // 'Escape'-char ('\' in common r.e.) used for escaping metachars (\w, \d etc). + RegExprModifierI : boolean = False; // default value for ModifierI + RegExprModifierR : boolean = True; // default value for ModifierR + RegExprModifierS : boolean = True; // default value for ModifierS + RegExprModifierG : boolean = True; // default value for ModifierG + RegExprModifierM : boolean = False; // default value for ModifierM + RegExprModifierX : boolean = False; // default value for ModifierX + RegExprSpaceChars : RegExprString = // default value for SpaceChars + ' '#$9#$A#$D#$C; + RegExprWordChars : RegExprString = // default value for WordChars + '0123456789' //###0.940 + + 'abcdefghijklmnopqrstuvwxyz' + + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'; + RegExprLineSeparators : RegExprString =// default value for LineSeparators + #$d#$a{$IFDEF UniCode}+#$b#$c#$2028#$2029#$85{$ENDIF}; //###0.947 + RegExprLinePairedSeparator : RegExprString =// default value for LinePairedSeparator + #$d#$a; + { if You need Unix-styled line separators (only \n), then use: + RegExprLineSeparators = #$a; + RegExprLinePairedSeparator = ''; + } + + +const + NSUBEXP = 15; // max number of subexpression //###0.929 + // Cannot be more than NSUBEXPMAX + // Be carefull - don't use values which overflow CLOSE opcode + // (in this case you'll get compiler erorr). + // Big NSUBEXP will cause more slow work and more stack required + NSUBEXPMAX = 255; // Max possible value for NSUBEXP. //###0.945 + // Don't change it! It's defined by internal TRegExpr design. + + MaxBracesArg = $7FFFFFFF - 1; // max value for {n,m} arguments //###0.933 + + {$IFDEF ComplexBraces} + LoopStackMax = 10; // max depth of loops stack //###0.925 + {$ENDIF} + + TinySetLen = 3; + // if range includes more then TinySetLen chars, //###0.934 + // then use full (32 bytes) ANYOFFULL instead of ANYOF[BUT]TINYSET + // !!! Attension ! If you change TinySetLen, you must + // change code marked as "//!!!TinySet" + + +type + +{$IFDEF UseSetOfChar} + PSetOfREChar = ^TSetOfREChar; + TSetOfREChar = set of REChar; +{$ENDIF} + + TRegExpr = class; + + TRegExprReplaceFunction = function (ARegExpr : TRegExpr): string + of object; + + TRegExpr = class + private + startp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr starting points + endp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr end points + + {$IFDEF ComplexBraces} + LoopStack : array [1 .. LoopStackMax] of integer; // state before entering loop + LoopStackIdx : integer; // 0 - out of all loops + {$ENDIF} + + // The "internal use only" fields to pass info from compile + // to execute that permits the execute phase to run lots faster on + // simple cases. + regstart : REChar; // char that must begin a match; '\0' if none obvious + reganch : REChar; // is the match anchored (at beginning-of-line only)? + regmust : PRegExprChar; // string (pointer into program) that match must include, or nil + regmlen : integer; // length of regmust string + // Regstart and reganch permit very fast decisions on suitable starting points + // for a match, cutting down the work a lot. Regmust permits fast rejection + // of lines that cannot possibly match. The regmust tests are costly enough + // that regcomp() supplies a regmust only if the r.e. contains something + // potentially expensive (at present, the only such thing detected is * or + + // at the start of the r.e., which can involve a lot of backup). Regmlen is + // supplied because the test in regexec() needs it and regcomp() is computing + // it anyway. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet : TSetOfREChar; + {$ENDIF} + + // work variables for Exec's routins - save stack in recursion} + reginput : PRegExprChar; // String-input pointer. + fInputStart : PRegExprChar; // Pointer to first char of input string. + fInputEnd : PRegExprChar; // Pointer to char AFTER last char of input string + + // work variables for compiler's routines + regparse : PRegExprChar; // Input-scan pointer. + regnpar : integer; // count. + regdummy : char; + regcode : PRegExprChar; // Code-emit pointer; @regdummy = don't. + regsize : integer; // Code size. + + regexpbeg : PRegExprChar; // only for error handling. Contains + // pointer to beginning of r.e. while compiling + fExprIsCompiled : boolean; // true if r.e. successfully compiled + + // programm is essentially a linear encoding + // of a nondeterministic finite-state machine (aka syntax charts or + // "railroad normal form" in parsing technology). Each node is an opcode + // plus a "next" pointer, possibly plus an operand. "Next" pointers of + // all nodes except BRANCH implement concatenation; a "next" pointer with + // a BRANCH on both ends of it is connecting two alternatives. (Here we + // have one of the subtle syntax dependencies: an individual BRANCH (as + // opposed to a collection of them) is never concatenated with anything + // because of operator precedence.) The operand of some types of node is + // a literal string; for others, it is a node leading into a sub-FSM. In + // particular, the operand of a BRANCH node is the first node of the branch. + // (NB this is *not* a tree structure: the tail of the branch connects + // to the thing following the set of BRANCHes.) The opcodes are: + programm : PRegExprChar; // Unwarranted chumminess with compiler. + + fExpression : PRegExprChar; // source of compiled r.e. + fInputString : PRegExprChar; // input string + + fLastError : integer; // see Error, LastError + + fModifiers : integer; // modifiers + fCompModifiers : integer; // compiler's copy of modifiers + fProgModifiers : integer; // modifiers values from last programm compilation + + fSpaceChars : RegExprString; //###0.927 + fWordChars : RegExprString; //###0.929 + fInvertCase : TRegExprInvertCaseFunction; //###0.927 + + fLineSeparators : RegExprString; //###0.941 + fLinePairedSeparatorAssigned : boolean; + fLinePairedSeparatorHead, + fLinePairedSeparatorTail : REChar; + {$IFNDEF UniCode} + fLineSeparatorsSet : set of REChar; + {$ENDIF} + + procedure InvalidateProgramm; + // Mark programm as have to be [re]compiled + + function IsProgrammOk : boolean; //###0.941 + // Check if we can use precompiled r.e. or + // [re]compile it if something changed + + function GetExpression : RegExprString; + procedure SetExpression (const s : RegExprString); + + function GetModifierStr : RegExprString; + class function ParseModifiersStr (const AModifiers : RegExprString; + var AModifiersInt : integer) : boolean; //###0.941 class function now + // Parse AModifiers string and return true and set AModifiersInt + // if it's in format 'ismxrg-ismxrg'. + procedure SetModifierStr (const AModifiers : RegExprString); + + function GetModifier (AIndex : integer) : boolean; + procedure SetModifier (AIndex : integer; ASet : boolean); + + procedure Error (AErrorID : integer); virtual; // error handler. + // Default handler raise exception ERegExpr with + // Message = ErrorMsg (AErrorID), ErrorCode = AErrorID + // and CompilerErrorPos = value of property CompilerErrorPos. + + + {==================== Compiler section ===================} + function CompileRegExpr (exp : PRegExprChar) : boolean; + // compile a regular expression into internal code + + procedure Tail (p : PRegExprChar; val : PRegExprChar); + // set the next-pointer at the end of a node chain + + procedure OpTail (p : PRegExprChar; val : PRegExprChar); + // regoptail - regtail on operand of first argument; nop if operandless + + function EmitNode (op : TREOp) : PRegExprChar; + // regnode - emit a node, return location + + procedure EmitC (b : REChar); + // emit (if appropriate) a byte of code + + procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90 + // insert an operator in front of already-emitted operand + // Means relocating the operand. + + function ParseReg (paren : integer; var flagp : integer) : PRegExprChar; + // regular expression, i.e. main body or parenthesized thing + + function ParseBranch (var flagp : integer) : PRegExprChar; + // one alternative of an | operator + + function ParsePiece (var flagp : integer) : PRegExprChar; + // something followed by possible [*+?] + + function ParseAtom (var flagp : integer) : PRegExprChar; + // the lowest level + + function GetCompilerErrorPos : integer; + // current pos in r.e. - for error hanling + + {$IFDEF UseFirstCharSet} //###0.929 + procedure FillFirstCharSet (prog : PRegExprChar); + {$ENDIF} + + {===================== Mathing section ===================} + function regrepeat (p : PRegExprChar; AMax : integer) : integer; + // repeatedly match something simple, report how many + + function regnext (p : PRegExprChar) : PRegExprChar; + // dig the "next" pointer out of a node + + function MatchPrim (prog : PRegExprChar) : boolean; + // recursively matching routine + + function ExecPrim (AOffset: integer) : boolean; + // Exec for stored InputString + + {$IFDEF RegExpPCodeDump} + function DumpOp (op : REChar) : RegExprString; + {$ENDIF} + + function GetSubExprMatchCount : integer; + function GetMatchPos (Idx : integer) : integer; + function GetMatchLen (Idx : integer) : integer; + function GetMatch (Idx : integer) : RegExprString; + + function GetInputString : RegExprString; + procedure SetInputString (const AInputString : RegExprString); + + {$IFNDEF UseSetOfChar} + function StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 + {$ENDIF} + + procedure SetLineSeparators (const AStr : RegExprString); + procedure SetLinePairedSeparator (const AStr : RegExprString); + function GetLinePairedSeparator : RegExprString; + + public + constructor Create; + destructor Destroy; override; + + class function VersionMajor : integer; //###0.944 + class function VersionMinor : integer; //###0.944 + + property Expression : RegExprString read GetExpression write SetExpression; + // Regular expression. + // For optimization, TRegExpr will automatically compiles it into 'P-code' + // (You can see it with help of Dump method) and stores in internal + // structures. Real [re]compilation occures only when it really needed - + // while calling Exec[Next], Substitute, Dump, etc + // and only if Expression or other P-code affected properties was changed + // after last [re]compilation. + // If any errors while [re]compilation occures, Error method is called + // (by default Error raises exception - see below) + + property ModifierStr : RegExprString read GetModifierStr write SetModifierStr; + // Set/get default values of r.e.syntax modifiers. Modifiers in + // r.e. (?ismx-ismx) will replace this default values. + // If you try to set unsupported modifier, Error will be called + // (by defaul Error raises exception ERegExpr). + + property ModifierI : boolean index 1 read GetModifier write SetModifier; + // Modifier /i - caseinsensitive, initialized from RegExprModifierI + + property ModifierR : boolean index 2 read GetModifier write SetModifier; + // Modifier /r - use r.e.syntax extended for russian, + // (was property ExtSyntaxEnabled in previous versions) + // If true, then à-ÿ additional include russian letter '¸', + // À-ß additional include '¨', and à-ß include all russian symbols. + // You have to turn it off if it may interfere with you national alphabet. + // , initialized from RegExprModifierR + + property ModifierS : boolean index 3 read GetModifier write SetModifier; + // Modifier /s - '.' works as any char (else as [^\n]), + // , initialized from RegExprModifierS + + property ModifierG : boolean index 4 read GetModifier write SetModifier; + // Switching off modifier /g switchs all operators in + // non-greedy style, so if ModifierG = False, then + // all '*' works as '*?', all '+' as '+?' and so on. + // , initialized from RegExprModifierG + + property ModifierM : boolean index 5 read GetModifier write SetModifier; + // Treat string as multiple lines. That is, change `^' and `$' from + // matching at only the very start or end of the string to the start + // or end of any line anywhere within the string. + // , initialized from RegExprModifierM + + property ModifierX : boolean index 6 read GetModifier write SetModifier; + // Modifier /x - eXtended syntax, allow r.e. text formatting, + // see description in the help. Initialized from RegExprModifierX + + function Exec (const AInputString : RegExprString) : boolean; {$IFDEF OverMeth} overload; + {$IFNDEF FPC} // I do not know why FreePascal cannot overload methods with empty param list + function Exec : boolean; overload; //###0.949 + {$ENDIF} + function Exec (AOffset: integer) : boolean; overload; //###0.949 + {$ENDIF} + // match a programm against a string AInputString + // !!! Exec store AInputString into InputString property + // For Delphi 5 and higher available overloaded versions - first without + // parameter (uses already assigned to InputString property value) + // and second that has integer parameter and is same as ExecPos + + function ExecNext : boolean; + // find next match: + // ExecNext; + // works same as + // if MatchLen [0] = 0 then ExecPos (MatchPos [0] + 1) + // else ExecPos (MatchPos [0] + MatchLen [0]); + // but it's more simpler ! + // Raises exception if used without preceeding SUCCESSFUL call to + // Exec* (Exec, ExecPos, ExecNext). So You always must use something like + // if Exec (InputString) then repeat { proceed results} until not ExecNext; + + function ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + // find match for InputString starting from AOffset position + // (AOffset=1 - first char of InputString) + + property InputString : RegExprString read GetInputString write SetInputString; + // returns current input string (from last Exec call or last assign + // to this property). + // Any assignment to this property clear Match* properties ! + + function Substitute (const ATemplate : RegExprString) : RegExprString; + // Returns ATemplate with '$&' or '$0' replaced by whole r.e. + // occurence and '$n' replaced by occurence of subexpression #n. + // Since v.0.929 '$' used instead of '\' (for future extensions + // and for more Perl-compatibility) and accept more then one digit. + // If you want place into template raw '$' or '\', use prefix '\' + // Example: '1\$ is $2\\rub\\' -> '1$ is \rub\' + // If you want to place raw digit after '$n' you must delimit + // n with curly braces '{}'. + // Example: 'a$12bc' -> 'abc' + // 'a${1}2bc' -> 'a2bc'. + + procedure Split (AInputStr : RegExprString; APieces : TStrings); + // Split AInputStr into APieces by r.e. occurencies + // Internally calls Exec[Next] + + function Replace (AInputStr : RegExprString; + const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) //###0.946 + : RegExprString; {$IFDEF OverMeth} overload; + function Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; overload; + {$ENDIF} + function ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + // Returns AInputStr with r.e. occurencies replaced by AReplaceStr + // If AUseSubstitution is true, then AReplaceStr will be used + // as template for Substitution methods. + // For example: + // Expression := '({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*'; + // Replace ('BLOCK( test1)', 'def "$1" value "$2"', True); + // will return: def 'BLOCK' value 'test1' + // Replace ('BLOCK( test1)', 'def "$1" value "$2"') + // will return: def "$1" value "$2" + // Internally calls Exec[Next] + // Overloaded version and ReplaceEx operate with call-back function, + // so You can implement really complex functionality. + + property SubExprMatchCount : integer read GetSubExprMatchCount; + // Number of subexpressions has been found in last Exec* call. + // If there are no subexpr. but whole expr was found (Exec* returned True), + // then SubExprMatchCount=0, if no subexpressions nor whole + // r.e. found (Exec* returned false) then SubExprMatchCount=-1. + // Note, that some subexpr. may be not found and for such + // subexpr. MathPos=MatchLen=-1 and Match=''. + // For example: Expression := '(1)?2(3)?'; + // Exec ('123'): SubExprMatchCount=2, Match[0]='123', [1]='1', [2]='3' + // Exec ('12'): SubExprMatchCount=1, Match[0]='12', [1]='1' + // Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3' + // Exec ('2'): SubExprMatchCount=0, Match[0]='2' + // Exec ('7') - return False: SubExprMatchCount=-1 + + property MatchPos [Idx : integer] : integer read GetMatchPos; + // pos of entrance subexpr. #Idx into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + property MatchLen [Idx : integer] : integer read GetMatchLen; + // len of entrance subexpr. #Idx r.e. into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + // Remember - MatchLen may be 0 (if r.e. match empty string) ! + + property Match [Idx : integer] : RegExprString read GetMatch; + // == copy (InputString, MatchPos [Idx], MatchLen [Idx]) + // Returns '' if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + function LastError : integer; + // Returns ID of last error, 0 if no errors (unusable if + // Error method raises exception) and clear internal status + // into 0 (no errors). + + function ErrorMsg (AErrorID : integer) : RegExprString; virtual; + // Returns Error message for error with ID = AErrorID. + + property CompilerErrorPos : integer read GetCompilerErrorPos; + // Returns pos in r.e. there compiler stopped. + // Usefull for error diagnostics + + property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927 + // Contains chars, treated as /s (initially filled with RegExprSpaceChars + // global constant) + + property WordChars : RegExprString read fWordChars write fWordChars; //###0.929 + // Contains chars, treated as /w (initially filled with RegExprWordChars + // global constant) + + property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941 + // line separators (like \n in Unix) + + property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941 + // paired line separator (like \r\n in DOS and Windows). + // must contain exactly two chars or no chars at all + + class function InvertCaseFunction (const Ch : REChar) : REChar; + // Converts Ch into upper case if it in lower case or in lower + // if it in upper (uses current system local setings) + + property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935 + // Set this property if you want to override case-insensitive functionality. + // Create set it to RegExprInvertCaseFunction (InvertCaseFunction by default) + + procedure Compile; //###0.941 + // [Re]compile r.e. Usefull for example for GUI r.e. editors (to check + // all properties validity). + + {$IFDEF RegExpPCodeDump} + function Dump : RegExprString; + // dump a compiled regexp in vaguely comprehensible form + {$ENDIF} + end; + + ERegExpr = class (Exception) + public + ErrorCode : integer; + CompilerErrorPos : integer; + end; + +const + RegExprInvertCaseFunction : TRegExprInvertCaseFunction = {$IFDEF FPC} nil {$ELSE} TRegExpr.InvertCaseFunction{$ENDIF}; + // defaul for InvertCase property + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; +// true if string AInputString match regular expression ARegExpr +// ! will raise exeption if syntax errors in ARegExpr + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); +// Split AInputStr into APieces by r.e. ARegExpr occurencies + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947 +// Returns AInputStr with r.e. occurencies replaced by AReplaceStr +// If AUseSubstitution is true, then AReplaceStr will be used +// as template for Substitution methods. +// For example: +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"', True) +// will return: def 'BLOCK' value 'test1' +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"') +// will return: def "$1" value "$2" + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; +// Replace all metachars with its safe representation, +// for example 'abc$cd.(' converts into 'abc\$cd\.\(' +// This function usefull for r.e. autogeneration from +// user input + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; +// Makes list of subexpressions found in ARegExpr r.e. +// In ASubExps every item represent subexpression, +// from first to last, in format: +// String - subexpression text (without '()') +// low word of Object - starting position in ARegExpr, including '(' +// if exists! (first position is 1) +// high word of Object - length, including starting '(' and ending ')' +// if exist! +// AExtendedSyntax - must be True if modifier /m will be On while +// using the r.e. +// Usefull for GUI editors of r.e. etc (You can find example of using +// in TestRExp.dpr project) +// Returns +// 0 Success. No unbalanced brackets was found; +// -1 There are not enough closing brackets ')'; +// -(n+1) At position n was found opening '[' without //###0.942 +// corresponding closing ']'; +// n At position n was found closing bracket ')' without +// corresponding opening '('. +// If Result <> 0, then ASubExpr can contain empty items or illegal ones + + +implementation + +uses + Windows; // CharUpper/Lower + +const + TRegExprVersionMajor : integer = 0; + TRegExprVersionMinor : integer = 952; + // TRegExpr.VersionMajor/Minor return values of this constants + + MaskModI = 1; // modifier /i bit in fModifiers + MaskModR = 2; // -"- /r + MaskModS = 4; // -"- /s + MaskModG = 8; // -"- /g + MaskModM = 16; // -"- /m + MaskModX = 32; // -"- /x + + {$IFDEF UniCode} + XIgnoredChars = ' '#9#$d#$a; + {$ELSE} + XIgnoredChars = [' ', #9, #$d, #$a]; + {$ENDIF} + +{=============================================================} +{=================== WideString functions ====================} +{=============================================================} + +{$IFDEF UniCode} + +function StrPCopy (Dest: PRegExprChar; const Source: RegExprString): PRegExprChar; + var + i, Len : Integer; + begin + Len := length (Source); //###0.932 + for i := 1 to Len do + Dest [i - 1] := Source [i]; + Dest [Len] := #0; + Result := Dest; + end; { of function StrPCopy +--------------------------------------------------------------} + +function StrLCopy (Dest, Source: PRegExprChar; MaxLen: Cardinal): PRegExprChar; + var i: Integer; + begin + for i := 0 to MaxLen - 1 do + Dest [i] := Source [i]; + Result := Dest; + end; { of function StrLCopy +--------------------------------------------------------------} + +function StrLen (Str: PRegExprChar): Cardinal; + begin + Result:=0; + while Str [result] <> #0 + do Inc (Result); + end; { of function StrLen +--------------------------------------------------------------} + +function StrPos (Str1, Str2: PRegExprChar): PRegExprChar; + var n: Integer; + begin + Result := nil; + n := Pos (RegExprString (Str2), RegExprString (Str1)); + if n = 0 + then EXIT; + Result := Str1 + n - 1; + end; { of function StrPos +--------------------------------------------------------------} + +function StrLComp (Str1, Str2: PRegExprChar; MaxLen: Cardinal): Integer; + var S1, S2: RegExprString; + begin + S1 := Str1; + S2 := Str2; + if Copy (S1, 1, MaxLen) > Copy (S2, 1, MaxLen) + then Result := 1 + else + if Copy (S1, 1, MaxLen) < Copy (S2, 1, MaxLen) + then Result := -1 + else Result := 0; + end; { function StrLComp +--------------------------------------------------------------} + +function StrScan (Str: PRegExprChar; Chr: WideChar): PRegExprChar; + begin + Result := nil; + while (Str^ <> #0) and (Str^ <> Chr) + do Inc (Str); + if (Str^ <> #0) + then Result := Str; + end; { of function StrScan +--------------------------------------------------------------} + +{$ENDIF} + + +{=============================================================} +{===================== Global functions ======================} +{=============================================================} + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; + var r : TRegExpr; + begin + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + Result := r.Exec (AInputStr); + finally r.Free; + end; + end; { of function ExecRegExpr +--------------------------------------------------------------} + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); + var r : TRegExpr; + begin + APieces.Clear; + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + r.Split (AInputStr, APieces); + finally r.Free; + end; + end; { of procedure SplitRegExpr +--------------------------------------------------------------} + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + begin + with TRegExpr.Create do try + Expression := ARegExpr; + Result := Replace (AInputStr, AReplaceStr, AUseSubstitution); + finally Free; + end; + end; { of function ReplaceRegExpr +--------------------------------------------------------------} + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; + const + RegExprMetaSet : RegExprString = '^$.[()|?+*'+EscChar+'{' + + ']}'; // - this last are additional to META. + // Very similar to META array, but slighly changed. + // !Any changes in META array must be synchronized with this set. + var + i, i0, Len : integer; + begin + Result := ''; + Len := length (AStr); + i := 1; + i0 := i; + while i <= Len do begin + if Pos (AStr [i], RegExprMetaSet) > 0 then begin + Result := Result + System.Copy (AStr, i0, i - i0) + + EscChar + AStr [i]; + i0 := i + 1; + end; + inc (i); + end; + Result := Result + System.Copy (AStr, i0, MaxInt); // Tail + end; { of function QuoteRegExprMetaChars +--------------------------------------------------------------} + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; + type + TStackItemRec = record //###0.945 + SubExprIdx : integer; + StartPos : integer; + end; + TStackArray = packed array [0 .. NSUBEXPMAX - 1] of TStackItemRec; + var + Len, SubExprLen : integer; + i, i0 : integer; + Modif : integer; + Stack : ^TStackArray; //###0.945 + StackIdx, StackSz : integer; + begin + Result := 0; // no unbalanced brackets found at this very moment + + ASubExprs.Clear; // I don't think that adding to non empty list + // can be usefull, so I simplified algorithm to work only with empty list + + Len := length (ARegExpr); // some optimization tricks + + // first we have to calculate number of subexpression to reserve + // space in Stack array (may be we'll reserve more then need, but + // it's faster then memory reallocation during parsing) + StackSz := 1; // add 1 for entire r.e. + for i := 1 to Len do + if ARegExpr [i] = '(' + then inc (StackSz); +// SetLength (Stack, StackSz); //###0.945 + GetMem (Stack, SizeOf (TStackItemRec) * StackSz); + try + + StackIdx := 0; + i := 1; + while (i <= Len) do begin + case ARegExpr [i] of + '(': begin + if (i < Len) and (ARegExpr [i + 1] = '?') then begin + // this is not subexpression, but comment or other + // Perl extension. We must check is it (?ismxrg-ismxrg) + // and change AExtendedSyntax if /x is changed. + inc (i, 2); // skip '(?' + i0 := i; + while (i <= Len) and (ARegExpr [i] <> ')') + do inc (i); + if i > Len + then Result := -1 // unbalansed '(' + else + if TRegExpr.ParseModifiersStr (System.Copy (ARegExpr, i, i - i0), Modif) + then AExtendedSyntax := (Modif and MaskModX) <> 0; + end + else begin // subexpression starts + ASubExprs.Add (''); // just reserve space + with Stack [StackIdx] do begin + SubExprIdx := ASubExprs.Count - 1; + StartPos := i; + end; + inc (StackIdx); + end; + end; + ')': begin + if StackIdx = 0 + then Result := i // unbalanced ')' + else begin + dec (StackIdx); + with Stack [StackIdx] do begin + SubExprLen := i - StartPos + 1; + ASubExprs.Objects [SubExprIdx] := + TObject (StartPos or (SubExprLen ShL 16)); + ASubExprs [SubExprIdx] := System.Copy ( + ARegExpr, StartPos + 1, SubExprLen - 2); // add without brackets + end; + end; + end; + EscChar: inc (i); // skip quoted symbol + '[': begin + // we have to skip character ranges at once, because they can + // contain '#', and '#' in it must NOT be recognized as eXtended + // comment beginning! + i0 := i; + inc (i); + if ARegExpr [i] = ']' // cannot be 'emty' ranges - this interpretes + then inc (i); // as ']' by itself + while (i <= Len) and (ARegExpr [i] <> ']') do + if ARegExpr [i] = EscChar //###0.942 + then inc (i, 2) // skip 'escaped' char to prevent stopping at '\]' + else inc (i); + if (i > Len) or (ARegExpr [i] <> ']') //###0.942 + then Result := - (i0 + 1); // unbalansed '[' //###0.942 + end; + '#': if AExtendedSyntax then begin + // skip eXtended comments + while (i <= Len) and (ARegExpr [i] <> #$d) and (ARegExpr [i] <> #$a) + // do not use [#$d, #$a] due to UniCode compatibility + do inc (i); + while (i + 1 <= Len) and ((ARegExpr [i + 1] = #$d) or (ARegExpr [i + 1] = #$a)) + do inc (i); // attempt to work with different kinds of line separators + // now we are at the line separator that must be skipped. + end; + // here is no 'else' clause - we simply skip ordinary chars + end; // of case + inc (i); // skip scanned char + // ! can move after Len due to skipping quoted symbol + end; + + // check brackets balance + if StackIdx <> 0 + then Result := -1; // unbalansed '(' + + // check if entire r.e. added + if (ASubExprs.Count = 0) + or ((integer (ASubExprs.Objects [0]) and $FFFF) <> 1) + or (((integer (ASubExprs.Objects [0]) ShR 16) and $FFFF) <> Len) + // whole r.e. wasn't added because it isn't bracketed + // well, we add it now: + then ASubExprs.InsertObject (0, ARegExpr, TObject ((Len ShL 16) or 1)); + + finally FreeMem (Stack); + end; + end; { of function RegExprSubExpressions +--------------------------------------------------------------} + + + +const + MAGIC = TREOp (216);// programm signature + +// name opcode opnd? meaning + EEND = TREOp (0); // - End of program + BOL = TREOp (1); // - Match "" at beginning of line + EOL = TREOp (2); // - Match "" at end of line + ANY = TREOp (3); // - Match any one character + ANYOF = TREOp (4); // Str Match any character in string Str + ANYBUT = TREOp (5); // Str Match any char. not in string Str + BRANCH = TREOp (6); // Node Match this alternative, or the next + BACK = TREOp (7); // - Jump backward (Next < 0) + EXACTLY = TREOp (8); // Str Match string Str + NOTHING = TREOp (9); // - Match empty string + STAR = TREOp (10); // Node Match this (simple) thing 0 or more times + PLUS = TREOp (11); // Node Match this (simple) thing 1 or more times + ANYDIGIT = TREOp (12); // - Match any digit (equiv [0-9]) + NOTDIGIT = TREOp (13); // - Match not digit (equiv [0-9]) + ANYLETTER = TREOp (14); // - Match any letter from property WordChars + NOTLETTER = TREOp (15); // - Match not letter from property WordChars + ANYSPACE = TREOp (16); // - Match any space char (see property SpaceChars) + NOTSPACE = TREOp (17); // - Match not space char (see property SpaceChars) + BRACES = TREOp (18); // Node,Min,Max Match this (simple) thing from Min to Max times. + // Min and Max are TREBracesArg + COMMENT = TREOp (19); // - Comment ;) + EXACTLYCI = TREOp (20); // Str Match string Str case insensitive + ANYOFCI = TREOp (21); // Str Match any character in string Str, case insensitive + ANYBUTCI = TREOp (22); // Str Match any char. not in string Str, case insensitive + LOOPENTRY = TREOp (23); // Node Start of loop (Node - LOOP for this loop) + LOOP = TREOp (24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY. + // Min and Max are TREBracesArg + // Node - next node in sequence, + // LoopEntryJmp - associated LOOPENTRY node addr + ANYOFTINYSET= TREOp (25); // Chrs Match any one char from Chrs (exactly TinySetLen chars) + ANYBUTTINYSET=TREOp (26); // Chrs Match any one char not in Chrs (exactly TinySetLen chars) + ANYOFFULLSET= TREOp (27); // Set Match any one char from set of char + // - very fast (one CPU instruction !) but takes 32 bytes of p-code + BSUBEXP = TREOp (28); // Idx Match previously matched subexpression #Idx (stored as REChar) //###0.936 + BSUBEXPCI = TREOp (29); // Idx -"- in case-insensitive mode + + // Non-Greedy Style Ops //###0.940 + STARNG = TREOp (30); // Same as START but in non-greedy mode + PLUSNG = TREOp (31); // Same as PLUS but in non-greedy mode + BRACESNG = TREOp (32); // Same as BRACES but in non-greedy mode + LOOPNG = TREOp (33); // Same as LOOP but in non-greedy mode + + // Multiline mode \m + BOLML = TREOp (34); // - Match "" at beginning of line + EOLML = TREOp (35); // - Match "" at end of line + ANYML = TREOp (36); // - Match any one character + + // Word boundary + BOUND = TREOp (37); // Match "" between words //###0.943 + NOTBOUND = TREOp (38); // Match "" not between words //###0.943 + + // !!! Change OPEN value if you add new opcodes !!! + + OPEN = TREOp (39); // - Mark this point in input as start of \n + // OPEN + 1 is \1, etc. + CLOSE = TREOp (ord (OPEN) + NSUBEXP); + // - Analogous to OPEN. + + // !!! Don't add new OpCodes after CLOSE !!! + +// We work with p-code thru pointers, compatible with PRegExprChar. +// Note: all code components (TRENextOff, TREOp, TREBracesArg, etc) +// must have lengths that can be divided by SizeOf (REChar) ! +// A node is TREOp of opcode followed Next "pointer" of TRENextOff type. +// The Next is a offset from the opcode of the node containing it. +// An operand, if any, simply follows the node. (Note that much of +// the code generation knows about this implicit relationship!) +// Using TRENextOff=integer speed up p-code processing. + +// Opcodes description: +// +// BRANCH The set of branches constituting a single choice are hooked +// together with their "next" pointers, since precedence prevents +// anything being concatenated to any individual branch. The +// "next" pointer of the last BRANCH in a choice points to the +// thing following the whole choice. This is also where the +// final "next" pointer of each individual branch points; each +// branch starts with the operand node of a BRANCH node. +// BACK Normal "next" pointers all implicitly point forward; BACK +// exists to make loop structures possible. +// STAR,PLUS,BRACES '?', and complex '*' and '+', are implemented as +// circular BRANCH structures using BACK. Complex '{min,max}' +// - as pair LOOPENTRY-LOOP (see below). Simple cases (one +// character per match) are implemented with STAR, PLUS and +// BRACES for speed and to minimize recursive plunges. +// LOOPENTRY,LOOP {min,max} are implemented as special pair +// LOOPENTRY-LOOP. Each LOOPENTRY initialize loopstack for +// current level. +// OPEN,CLOSE are numbered at compile time. + + +{=============================================================} +{================== Error handling section ===================} +{=============================================================} + +const + reeOk = 0; + reeCompNullArgument = 100; + reeCompRegexpTooBig = 101; + reeCompParseRegTooManyBrackets = 102; + reeCompParseRegUnmatchedBrackets = 103; + reeCompParseRegUnmatchedBrackets2 = 104; + reeCompParseRegJunkOnEnd = 105; + reePlusStarOperandCouldBeEmpty = 106; + reeNestedSQP = 107; + reeBadHexDigit = 108; + reeInvalidRange = 109; + reeParseAtomTrailingBackSlash = 110; + reeNoHexCodeAfterBSlashX = 111; + reeHexCodeAfterBSlashXTooBig = 112; + reeUnmatchedSqBrackets = 113; + reeInternalUrp = 114; + reeQPSBFollowsNothing = 115; + reeTrailingBackSlash = 116; + reeRarseAtomInternalDisaster = 119; + reeBRACESArgTooBig = 122; + reeBracesMinParamGreaterMax = 124; + reeUnclosedComment = 125; + reeComplexBracesNotImplemented = 126; + reeUrecognizedModifier = 127; + reeBadLinePairedSeparator = 128; + reeRegRepeatCalledInappropriately = 1000; + reeMatchPrimMemoryCorruption = 1001; + reeMatchPrimCorruptedPointers = 1002; + reeNoExpression = 1003; + reeCorruptedProgram = 1004; + reeNoInpitStringSpecified = 1005; + reeOffsetMustBeGreaterThen0 = 1006; + reeExecNextWithoutExec = 1007; + reeGetInputStringWithoutInputString = 1008; + reeDumpCorruptedOpcode = 1011; + reeModifierUnsupported = 1013; + reeLoopStackExceeded = 1014; + reeLoopWithoutEntry = 1015; + reeBadPCodeImported = 2000; + +function TRegExpr.ErrorMsg (AErrorID : integer) : RegExprString; + begin + case AErrorID of + reeOk: Result := 'No errors'; + reeCompNullArgument: Result := 'TRegExpr(comp): Null Argument'; + reeCompRegexpTooBig: Result := 'TRegExpr(comp): Regexp Too Big'; + reeCompParseRegTooManyBrackets: Result := 'TRegExpr(comp): ParseReg Too Many ()'; + reeCompParseRegUnmatchedBrackets: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegUnmatchedBrackets2: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegJunkOnEnd: Result := 'TRegExpr(comp): ParseReg Junk On End'; + reePlusStarOperandCouldBeEmpty: Result := 'TRegExpr(comp): *+ Operand Could Be Empty'; + reeNestedSQP: Result := 'TRegExpr(comp): Nested *?+'; + reeBadHexDigit: Result := 'TRegExpr(comp): Bad Hex Digit'; + reeInvalidRange: Result := 'TRegExpr(comp): Invalid [] Range'; + reeParseAtomTrailingBackSlash: Result := 'TRegExpr(comp): Parse Atom Trailing \'; + reeNoHexCodeAfterBSlashX: Result := 'TRegExpr(comp): No Hex Code After \x'; + reeHexCodeAfterBSlashXTooBig: Result := 'TRegExpr(comp): Hex Code After \x Is Too Big'; + reeUnmatchedSqBrackets: Result := 'TRegExpr(comp): Unmatched []'; + reeInternalUrp: Result := 'TRegExpr(comp): Internal Urp'; + reeQPSBFollowsNothing: Result := 'TRegExpr(comp): ?+*{ Follows Nothing'; + reeTrailingBackSlash: Result := 'TRegExpr(comp): Trailing \'; + reeRarseAtomInternalDisaster: Result := 'TRegExpr(comp): RarseAtom Internal Disaster'; + reeBRACESArgTooBig: Result := 'TRegExpr(comp): BRACES Argument Too Big'; + reeBracesMinParamGreaterMax: Result := 'TRegExpr(comp): BRACE Min Param Greater then Max'; + reeUnclosedComment: Result := 'TRegExpr(comp): Unclosed (?#Comment)'; + reeComplexBracesNotImplemented: Result := 'TRegExpr(comp): If you want take part in beta-testing BRACES ''{min,max}'' and non-greedy ops ''*?'', ''+?'', ''??'' for complex cases - remove ''.'' from {.$DEFINE ComplexBraces}'; + reeUrecognizedModifier: Result := 'TRegExpr(comp): Urecognized Modifier'; + reeBadLinePairedSeparator: Result := 'TRegExpr(comp): LinePairedSeparator must countain two different chars or no chars at all'; + + reeRegRepeatCalledInappropriately: Result := 'TRegExpr(exec): RegRepeat Called Inappropriately'; + reeMatchPrimMemoryCorruption: Result := 'TRegExpr(exec): MatchPrim Memory Corruption'; + reeMatchPrimCorruptedPointers: Result := 'TRegExpr(exec): MatchPrim Corrupted Pointers'; + reeNoExpression: Result := 'TRegExpr(exec): Not Assigned Expression Property'; + reeCorruptedProgram: Result := 'TRegExpr(exec): Corrupted Program'; + reeNoInpitStringSpecified: Result := 'TRegExpr(exec): No Input String Specified'; + reeOffsetMustBeGreaterThen0: Result := 'TRegExpr(exec): Offset Must Be Greater Then 0'; + reeExecNextWithoutExec: Result := 'TRegExpr(exec): ExecNext Without Exec[Pos]'; + reeGetInputStringWithoutInputString: Result := 'TRegExpr(exec): GetInputString Without InputString'; + reeDumpCorruptedOpcode: Result := 'TRegExpr(dump): Corrupted Opcode'; + reeLoopStackExceeded: Result := 'TRegExpr(exec): Loop Stack Exceeded'; + reeLoopWithoutEntry: Result := 'TRegExpr(exec): Loop Without LoopEntry !'; + + reeBadPCodeImported: Result := 'TRegExpr(misc): Bad p-code imported'; + else Result := 'Unknown error'; + end; + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +function TRegExpr.LastError : integer; + begin + Result := fLastError; + fLastError := reeOk; + end; { of function TRegExpr.LastError +--------------------------------------------------------------} + + +{=============================================================} +{===================== Common section ========================} +{=============================================================} + +class function TRegExpr.VersionMajor : integer; //###0.944 + begin + Result := TRegExprVersionMajor; + end; { of class function TRegExpr.VersionMajor +--------------------------------------------------------------} + +class function TRegExpr.VersionMinor : integer; //###0.944 + begin + Result := TRegExprVersionMinor; + end; { of class function TRegExpr.VersionMinor +--------------------------------------------------------------} + +constructor TRegExpr.Create; + begin + inherited; + programm := nil; + fExpression := nil; + fInputString := nil; + + regexpbeg := nil; + fExprIsCompiled := false; + + ModifierI := RegExprModifierI; + ModifierR := RegExprModifierR; + ModifierS := RegExprModifierS; + ModifierG := RegExprModifierG; + ModifierM := RegExprModifierM; //###0.940 + + SpaceChars := RegExprSpaceChars; //###0.927 + WordChars := RegExprWordChars; //###0.929 + fInvertCase := RegExprInvertCaseFunction; //###0.927 + + fLineSeparators := RegExprLineSeparators; //###0.941 + LinePairedSeparator := RegExprLinePairedSeparator; //###0.941 + end; { of constructor TRegExpr.Create +--------------------------------------------------------------} + +destructor TRegExpr.Destroy; + begin + if programm <> nil + then FreeMem (programm); + if fExpression <> nil + then FreeMem (fExpression); + if fInputString <> nil + then FreeMem (fInputString); + end; { of destructor TRegExpr.Destroy +--------------------------------------------------------------} + +class function TRegExpr.InvertCaseFunction (const Ch : REChar) : REChar; + begin + {$IFDEF UniCode} + if Ch >= #128 + then Result := Ch + else + {$ENDIF} + begin + Result := {$IFDEF FPC}AnsiUpperCase (Ch) [1]{$ELSE} REChar (CharUpper (PChar (Ch))){$ENDIF}; + if Result = Ch + then Result := {$IFDEF FPC}AnsiLowerCase (Ch) [1]{$ELSE} REChar (CharLower (PChar (Ch))){$ENDIF}; + end; + end; { of function TRegExpr.InvertCaseFunction +--------------------------------------------------------------} + +function TRegExpr.GetExpression : RegExprString; + begin + if fExpression <> nil + then Result := fExpression + else Result := ''; + end; { of function TRegExpr.GetExpression +--------------------------------------------------------------} + +procedure TRegExpr.SetExpression (const s : RegExprString); + var + Len : integer; //###0.950 + begin + if (s <> fExpression) or not fExprIsCompiled then begin + fExprIsCompiled := false; + if fExpression <> nil then begin + FreeMem (fExpression); + fExpression := nil; + end; + if s <> '' then begin + Len := length (s); //###0.950 + GetMem (fExpression, (Len + 1) * SizeOf (REChar)); +// StrPCopy (fExpression, s); //###0.950 replaced due to StrPCopy limitation of 255 chars + {$IFDEF UniCode} + StrPCopy (fExpression, Copy (s, 1, Len)); //###0.950 + {$ELSE} + StrLCopy (fExpression, PRegExprChar (s), Len); //###0.950 + {$ENDIF UniCode} + + InvalidateProgramm; //###0.941 + end; + end; + end; { of procedure TRegExpr.SetExpression +--------------------------------------------------------------} + +function TRegExpr.GetSubExprMatchCount : integer; + begin + if Assigned (fInputString) then begin + Result := NSUBEXP - 1; + while (Result > 0) and ((startp [Result] = nil) + or (endp [Result] = nil)) + do dec (Result); + end + else Result := -1; + end; { of function TRegExpr.GetSubExprMatchCount +--------------------------------------------------------------} + +function TRegExpr.GetMatchPos (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := (startp [Idx] - fInputString) + 1; + end + else Result := -1; + end; { of function TRegExpr.GetMatchPos +--------------------------------------------------------------} + +function TRegExpr.GetMatchLen (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := endp [Idx] - startp [Idx]; + end + else Result := -1; + end; { of function TRegExpr.GetMatchLen +--------------------------------------------------------------} + +function TRegExpr.GetMatch (Idx : integer) : RegExprString; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) + //then Result := copy (fInputString, MatchPos [Idx], MatchLen [Idx]) //###0.929 + then SetString (Result, startp [idx], endp [idx] - startp [idx]) + else Result := ''; + end; { of function TRegExpr.GetMatch +--------------------------------------------------------------} + +function TRegExpr.GetModifierStr : RegExprString; + begin + Result := '-'; + + if ModifierI + then Result := 'i' + Result + else Result := Result + 'i'; + if ModifierR + then Result := 'r' + Result + else Result := Result + 'r'; + if ModifierS + then Result := 's' + Result + else Result := Result + 's'; + if ModifierG + then Result := 'g' + Result + else Result := Result + 'g'; + if ModifierM + then Result := 'm' + Result + else Result := Result + 'm'; + if ModifierX + then Result := 'x' + Result + else Result := Result + 'x'; + + if Result [length (Result)] = '-' // remove '-' if all modifiers are 'On' + then System.Delete (Result, length (Result), 1); + end; { of function TRegExpr.GetModifierStr +--------------------------------------------------------------} + +class function TRegExpr.ParseModifiersStr (const AModifiers : RegExprString; +var AModifiersInt : integer) : boolean; +// !!! Be carefull - this is class function and must not use object instance fields + var + i : integer; + IsOn : boolean; + Mask : integer; + begin + Result := true; + IsOn := true; + Mask := 0; // prevent compiler warning + for i := 1 to length (AModifiers) do + if AModifiers [i] = '-' + then IsOn := false + else begin + if Pos (AModifiers [i], 'iI') > 0 + then Mask := MaskModI + else if Pos (AModifiers [i], 'rR') > 0 + then Mask := MaskModR + else if Pos (AModifiers [i], 'sS') > 0 + then Mask := MaskModS + else if Pos (AModifiers [i], 'gG') > 0 + then Mask := MaskModG + else if Pos (AModifiers [i], 'mM') > 0 + then Mask := MaskModM + else if Pos (AModifiers [i], 'xX') > 0 + then Mask := MaskModX + else begin + Result := false; + EXIT; + end; + if IsOn + then AModifiersInt := AModifiersInt or Mask + else AModifiersInt := AModifiersInt and not Mask; + end; + end; { of function TRegExpr.ParseModifiersStr +--------------------------------------------------------------} + +procedure TRegExpr.SetModifierStr (const AModifiers : RegExprString); + begin + if not ParseModifiersStr (AModifiers, fModifiers) + then Error (reeModifierUnsupported); + end; { of procedure TRegExpr.SetModifierStr +--------------------------------------------------------------} + +function TRegExpr.GetModifier (AIndex : integer) : boolean; + var + Mask : integer; + begin + Result := false; + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + Result := (fModifiers and Mask) <> 0; + end; { of function TRegExpr.GetModifier +--------------------------------------------------------------} + +procedure TRegExpr.SetModifier (AIndex : integer; ASet : boolean); + var + Mask : integer; + begin + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + if ASet + then fModifiers := fModifiers or Mask + else fModifiers := fModifiers and not Mask; + end; { of procedure TRegExpr.SetModifier +--------------------------------------------------------------} + + +{=============================================================} +{==================== Compiler section =======================} +{=============================================================} + +procedure TRegExpr.InvalidateProgramm; + begin + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + end; { of procedure TRegExpr.InvalidateProgramm +--------------------------------------------------------------} + +procedure TRegExpr.Compile; //###0.941 + begin + if fExpression = nil then begin // No Expression assigned + Error (reeNoExpression); + EXIT; + end; + CompileRegExpr (fExpression); + end; { of procedure TRegExpr.Compile +--------------------------------------------------------------} + +function TRegExpr.IsProgrammOk : boolean; + {$IFNDEF UniCode} + var + i : integer; + {$ENDIF} + begin + Result := false; + + // check modifiers + if fModifiers <> fProgModifiers //###0.941 + then InvalidateProgramm; + + // can we optimize line separators by using sets? + {$IFNDEF UniCode} + fLineSeparatorsSet := []; + for i := 1 to length (fLineSeparators) + do System.Include (fLineSeparatorsSet, fLineSeparators [i]); + {$ENDIF} + + // [Re]compile if needed + if programm = nil + then Compile; //###0.941 + + // check [re]compiled programm + if programm = nil + then EXIT // error was set/raised by Compile (was reeExecAfterCompErr) + else if programm [0] <> MAGIC // Program corrupted. + then Error (reeCorruptedProgram) + else Result := true; + end; { of function TRegExpr.IsProgrammOk +--------------------------------------------------------------} + +procedure TRegExpr.Tail (p : PRegExprChar; val : PRegExprChar); +// set the next-pointer at the end of a node chain + var + scan : PRegExprChar; + temp : PRegExprChar; +// i : int64; + begin + if p = @regdummy + then EXIT; + // Find last node. + scan := p; + REPEAT + temp := regnext (scan); + if temp = nil + then BREAK; + scan := temp; + UNTIL false; + // Set Next 'pointer' + if val < scan + then PRENextOff (scan + REOpSz)^ := - (scan - val) //###0.948 + // work around PWideChar subtraction bug (Delphi uses + // shr after subtraction to calculate widechar distance %-( ) + // so, if difference is negative we have .. the "feature" :( + // I could wrap it in $IFDEF UniCode, but I didn't because + // "P – Q computes the difference between the address given + // by P (the higher address) and the address given by Q (the + // lower address)" - Delphi help quotation. + else PRENextOff (scan + REOpSz)^ := val - scan; //###0.933 + end; { of procedure TRegExpr.Tail +--------------------------------------------------------------} + +procedure TRegExpr.OpTail (p : PRegExprChar; val : PRegExprChar); +// regtail on operand of first argument; nop if operandless + begin + // "Operandless" and "op != BRANCH" are synonymous in practice. + if (p = nil) or (p = @regdummy) or (PREOp (p)^ <> BRANCH) + then EXIT; + Tail (p + REOpSz + RENextOffSz, val); //###0.933 + end; { of procedure TRegExpr.OpTail +--------------------------------------------------------------} + +function TRegExpr.EmitNode (op : TREOp) : PRegExprChar; //###0.933 +// emit a node, return location + begin + Result := regcode; + if Result <> @regdummy then begin + PREOp (regcode)^ := op; + inc (regcode, REOpSz); + PRENextOff (regcode)^ := 0; // Next "pointer" := nil + inc (regcode, RENextOffSz); + end + else inc (regsize, REOpSz + RENextOffSz); // compute code size without code generation + end; { of function TRegExpr.EmitNode +--------------------------------------------------------------} + +procedure TRegExpr.EmitC (b : REChar); +// emit a byte to code + begin + if regcode <> @regdummy then begin + regcode^ := b; + inc (regcode); + end + else inc (regsize); // Type of p-code pointer always is ^REChar + end; { of procedure TRegExpr.EmitC +--------------------------------------------------------------} + +procedure TRegExpr.InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); +// insert an operator in front of already-emitted operand +// Means relocating the operand. + var + src, dst, place : PRegExprChar; + i : integer; + begin + if regcode = @regdummy then begin + inc (regsize, sz); + EXIT; + end; + src := regcode; + inc (regcode, sz); + dst := regcode; + while src > opnd do begin + dec (dst); + dec (src); + dst^ := src^; + end; + place := opnd; // Op node, where operand used to be. + PREOp (place)^ := op; + inc (place, REOpSz); + for i := 1 + REOpSz to sz do begin + place^ := #0; + inc (place); + end; + end; { of procedure TRegExpr.InsertOperator +--------------------------------------------------------------} + +function strcspn (s1 : PRegExprChar; s2 : PRegExprChar) : integer; +// find length of initial segment of s1 consisting +// entirely of characters not from s2 + var scan1, scan2 : PRegExprChar; + begin + Result := 0; + scan1 := s1; + while scan1^ <> #0 do begin + scan2 := s2; + while scan2^ <> #0 do + if scan1^ = scan2^ + then EXIT + else inc (scan2); + inc (Result); + inc (scan1) + end; + end; { of function strcspn +--------------------------------------------------------------} + +const +// Flags to be passed up and down. + HASWIDTH = 01; // Known never to match nil string. + SIMPLE = 02; // Simple enough to be STAR/PLUS/BRACES operand. + SPSTART = 04; // Starts with * or +. + WORST = 0; // Worst case. + META : array [0 .. 12] of REChar = ( + '^', '$', '.', '[', '(', ')', '|', '?', '+', '*', EscChar, '{', #0); + // Any modification must be synchronized with QuoteRegExprMetaChars !!! + +{$IFDEF UniCode} + RusRangeLo : array [0 .. 33] of REChar = + (#$430,#$431,#$432,#$433,#$434,#$435,#$451,#$436,#$437, + #$438,#$439,#$43A,#$43B,#$43C,#$43D,#$43E,#$43F, + #$440,#$441,#$442,#$443,#$444,#$445,#$446,#$447, + #$448,#$449,#$44A,#$44B,#$44C,#$44D,#$44E,#$44F,#0); + RusRangeHi : array [0 .. 33] of REChar = + (#$410,#$411,#$412,#$413,#$414,#$415,#$401,#$416,#$417, + #$418,#$419,#$41A,#$41B,#$41C,#$41D,#$41E,#$41F, + #$420,#$421,#$422,#$423,#$424,#$425,#$426,#$427, + #$428,#$429,#$42A,#$42B,#$42C,#$42D,#$42E,#$42F,#0); + RusRangeLoLow = #$430{'à'}; + RusRangeLoHigh = #$44F{'ÿ'}; + RusRangeHiLow = #$410{'À'}; + RusRangeHiHigh = #$42F{'ß'}; +{$ELSE} + RusRangeLo = 'àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ'; + RusRangeHi = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß'; + RusRangeLoLow = 'à'; + RusRangeLoHigh = 'ÿ'; + RusRangeHiLow = 'À'; + RusRangeHiHigh = 'ß'; +{$ENDIF} + +function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean; +// compile a regular expression into internal code +// We can't allocate space until we know how big the compiled form will be, +// but we can't compile it (and thus know how big it is) until we've got a +// place to put the code. So we cheat: we compile it twice, once with code +// generation turned off and size counting turned on, and once "for real". +// This also means that we don't allocate space until we are sure that the +// thing really will compile successfully, and we never have to move the +// code and thus invalidate pointers into it. (Note that it has to be in +// one piece because free() must be able to free it all.) +// Beware that the optimization-preparation code in here knows about some +// of the structure of the compiled regexp. + var + scan, longest : PRegExprChar; + len : cardinal; + flags : integer; + begin + Result := false; // life too dark + + regparse := nil; // for correct error handling + regexpbeg := exp; + try + + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + + if exp = nil then begin + Error (reeCompNullArgument); + EXIT; + end; + + fProgModifiers := fModifiers; + // well, may it's paranoia. I'll check it later... !!!!!!!! + + // First pass: determine size, legality. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regsize := 0; + regcode := @regdummy; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Small enough for 2-bytes programm pointers ? + // ###0.933 no real p-code length limits now :))) +// if regsize >= 64 * 1024 then begin +// Error (reeCompRegexpTooBig); +// EXIT; +// end; + + // Allocate space. + GetMem (programm, regsize * SizeOf (REChar)); + + // Second pass: emit code. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regcode := programm; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Dig out information for optimizations. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet := []; + FillFirstCharSet (programm + REOpSz); + {$ENDIF} + regstart := #0; // Worst-case defaults. + reganch := #0; + regmust := nil; + regmlen := 0; + scan := programm + REOpSz; // First BRANCH. + if PREOp (regnext (scan))^ = EEND then begin // Only one top-level choice. + scan := scan + REOpSz + RENextOffSz; + + // Starting-point info. + if PREOp (scan)^ = EXACTLY + then regstart := (scan + REOpSz + RENextOffSz)^ + else if PREOp (scan)^ = BOL + then inc (reganch); + + // If there's something expensive in the r.e., find the longest + // literal string that must appear and make it the regmust. Resolve + // ties in favor of later strings, since the regstart check works + // with the beginning of the r.e. and avoiding duplication + // strengthens checking. Not a strong reason, but sufficient in the + // absence of others. + if (flags and SPSTART) <> 0 then begin + longest := nil; + len := 0; + while scan <> nil do begin + if (PREOp (scan)^ = EXACTLY) + and (strlen (scan + REOpSz + RENextOffSz) >= len) then begin + longest := scan + REOpSz + RENextOffSz; + len := strlen (longest); + end; + scan := regnext (scan); + end; + regmust := longest; + regmlen := len; + end; + end; + + Result := true; + + finally begin + if not Result + then InvalidateProgramm; + regexpbeg := nil; + fExprIsCompiled := Result; //###0.944 + end; + end; + + end; { of function TRegExpr.CompileRegExpr +--------------------------------------------------------------} + +function TRegExpr.ParseReg (paren : integer; var flagp : integer) : PRegExprChar; +// regular expression, i.e. main body or parenthesized thing +// Caller must absorb opening parenthesis. +// Combining parenthesis handling with the base level of regular expression +// is a trifle forced, but the need to tie the tails of the branches to what +// follows makes it hard to avoid. + var + ret, br, ender : PRegExprChar; + parno : integer; + flags : integer; + SavedModifiers : integer; + begin + Result := nil; + flagp := HASWIDTH; // Tentatively. + parno := 0; // eliminate compiler stupid warning + SavedModifiers := fCompModifiers; + + // Make an OPEN node, if parenthesized. + if paren <> 0 then begin + if regnpar >= NSUBEXP then begin + Error (reeCompParseRegTooManyBrackets); + EXIT; + end; + parno := regnpar; + inc (regnpar); + ret := EmitNode (TREOp (ord (OPEN) + parno)); + end + else ret := nil; + + // Pick up the branches, linking them together. + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + if ret <> nil + then Tail (ret, br) // OPEN -> first. + else ret := br; + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + while (regparse^ = '|') do begin + inc (regparse); + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + Tail (ret, br); // BRANCH -> BRANCH. + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + end; + + // Make a closing node, and hook it on the end. + if paren <> 0 + then ender := EmitNode (TREOp (ord (CLOSE) + parno)) + else ender := EmitNode (EEND); + Tail (ret, ender); + + // Hook the tails of the branches to the closing node. + br := ret; + while br <> nil do begin + OpTail (br, ender); + br := regnext (br); + end; + + // Check for proper termination. + if paren <> 0 then + if regparse^ <> ')' then begin + Error (reeCompParseRegUnmatchedBrackets); + EXIT; + end + else inc (regparse); // skip trailing ')' + if (paren = 0) and (regparse^ <> #0) then begin + if regparse^ = ')' + then Error (reeCompParseRegUnmatchedBrackets2) + else Error (reeCompParseRegJunkOnEnd); + EXIT; + end; + fCompModifiers := SavedModifiers; // restore modifiers of parent + Result := ret; + end; { of function TRegExpr.ParseReg +--------------------------------------------------------------} + +function TRegExpr.ParseBranch (var flagp : integer) : PRegExprChar; +// one alternative of an | operator +// Implements the concatenation operator. + var + ret, chain, latest : PRegExprChar; + flags : integer; + begin + flagp := WORST; // Tentatively. + + ret := EmitNode (BRANCH); + chain := nil; + while (regparse^ <> #0) and (regparse^ <> '|') + and (regparse^ <> ')') do begin + latest := ParsePiece (flags); + if latest = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and HASWIDTH; + if chain = nil // First piece. + then flagp := flagp or flags and SPSTART + else Tail (chain, latest); + chain := latest; + end; + if chain = nil // Loop ran zero times. + then EmitNode (NOTHING); + Result := ret; + end; { of function TRegExpr.ParseBranch +--------------------------------------------------------------} + +function TRegExpr.ParsePiece (var flagp : integer) : PRegExprChar; +// something followed by possible [*+?{] +// Note that the branching code sequences used for ? and the general cases +// of * and + and { are somewhat optimized: they use the same NOTHING node as +// both the endmarker for their branch list and the body of the last branch. +// It might seem that this node could be dispensed with entirely, but the +// endmarker role is not redundant. + function parsenum (AStart, AEnd : PRegExprChar) : TREBracesArg; + begin + Result := 0; + if AEnd - AStart + 1 > 8 then begin // prevent stupid scanning + Error (reeBRACESArgTooBig); + EXIT; + end; + while AStart <= AEnd do begin + Result := Result * 10 + (ord (AStart^) - ord ('0')); + inc (AStart); + end; + if (Result > MaxBracesArg) or (Result < 0) then begin + Error (reeBRACESArgTooBig); + EXIT; + end; + end; + + var + op : REChar; + NonGreedyOp, NonGreedyCh : boolean; //###0.940 + TheOp : TREOp; //###0.940 + NextNode : PRegExprChar; + flags : integer; + BracesMin, Bracesmax : TREBracesArg; + p, savedparse : PRegExprChar; + + procedure EmitComplexBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + {$IFDEF ComplexBraces} + var + off : integer; + {$ENDIF} + begin + {$IFNDEF ComplexBraces} + Error (reeComplexBracesNotImplemented); + {$ELSE} + if ANonGreedyOp + then TheOp := LOOPNG + else TheOp := LOOP; + InsertOperator (LOOPENTRY, Result, REOpSz + RENextOffSz); + NextNode := EmitNode (TheOp); + if regcode <> @regdummy then begin + off := (Result + REOpSz + RENextOffSz) + - (regcode - REOpSz - RENextOffSz); // back to Atom after LOOPENTRY + PREBracesArg (regcode)^ := ABracesMin; + inc (regcode, REBracesArgSz); + PREBracesArg (regcode)^ := ABracesMax; + inc (regcode, REBracesArgSz); + PRENextOff (regcode)^ := off; + inc (regcode, RENextOffSz); + end + else inc (regsize, REBracesArgSz * 2 + RENextOffSz); + Tail (Result, NextNode); // LOOPENTRY -> LOOP + if regcode <> @regdummy then + Tail (Result + REOpSz + RENextOffSz, NextNode); // Atom -> LOOP + {$ENDIF} + end; + + procedure EmitSimpleBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + begin + if ANonGreedyOp //###0.940 + then TheOp := BRACESNG + else TheOp := BRACES; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz + REBracesArgSz * 2); + if regcode <> @regdummy then begin + PREBracesArg (Result + REOpSz + RENextOffSz)^ := ABracesMin; + PREBracesArg (Result + REOpSz + RENextOffSz + REBracesArgSz)^ := ABracesMax; + end; + end; + + begin + Result := ParseAtom (flags); + if Result = nil + then EXIT; + + op := regparse^; + if not ((op = '*') or (op = '+') or (op = '?') or (op = '{')) then begin + flagp := flags; + EXIT; + end; + if ((flags and HASWIDTH) = 0) and (op <> '?') then begin + Error (reePlusStarOperandCouldBeEmpty); + EXIT; + end; + + case op of + '*': begin + flagp := WORST or SPSTART; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (0, MaxBracesArg, NonGreedyOp) + else begin // Emit x* as (x&|), where & means "self". + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + OpTail (Result, EmitNode (BACK)); // and loop + OpTail (Result, Result); // back + Tail (Result, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := STARNG + else TheOp := STAR; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '*'} + '+': begin + flagp := WORST or SPSTART or HASWIDTH; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (1, MaxBracesArg, NonGreedyOp) + else begin // Emit x+ as x(&|), where & means "self". + NextNode := EmitNode (BRANCH); // Either + Tail (Result, NextNode); + Tail (EmitNode (BACK), Result); // loop back + Tail (NextNode, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := PLUSNG + else TheOp := PLUS; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '+'} + '?': begin + flagp := WORST; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if NonGreedyOp then begin //###0.940 // We emit x?? as x{0,1}? + if (flags and SIMPLE) = 0 + then EmitComplexBraces (0, 1, NonGreedyOp) + else EmitSimpleBraces (0, 1, NonGreedyOp); + end + else begin // greedy '?' + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + Tail (Result, EmitNode (BRANCH)); // or + NextNode := EmitNode (NOTHING); // nil. + Tail (Result, NextNode); + OpTail (Result, NextNode); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '?'} + '{': begin + savedparse := regparse; + // !!!!!!!!!!!! + // Filip Jirsak's note - what will happen, when we are at the end of regparse? + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 // MUST appear + do inc (regparse); + if (regparse^ <> '}') and (regparse^ <> ',') or (p = regparse) then begin + regparse := savedparse; + flagp := flags; + EXIT; + end; + BracesMin := parsenum (p, regparse - 1); + if regparse^ = ',' then begin + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 + do inc (regparse); + if regparse^ <> '}' then begin + regparse := savedparse; + EXIT; + end; + if p = regparse + then BracesMax := MaxBracesArg + else BracesMax := parsenum (p, regparse - 1); + end + else BracesMax := BracesMin; // {n} == {n,n} + if BracesMin > BracesMax then begin + Error (reeBracesMinParamGreaterMax); + EXIT; + end; + if BracesMin > 0 + then flagp := WORST; + if BracesMax > 0 + then flagp := flagp or HASWIDTH or SPSTART; + + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) <> 0 + then EmitSimpleBraces (BracesMin, BracesMax, NonGreedyOp) + else EmitComplexBraces (BracesMin, BracesMax, NonGreedyOp); + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char '?' + end; { of case '{'} +// else // here we can't be + end; { of case op} + + inc (regparse); + if (regparse^ = '*') or (regparse^ = '+') or (regparse^ = '?') or (regparse^ = '{') then begin + Error (reeNestedSQP); + EXIT; + end; + end; { of function TRegExpr.ParsePiece +--------------------------------------------------------------} + +function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar; +// the lowest level +// Optimization: gobbles an entire sequence of ordinary characters so that +// it can turn them into a single node, which is smaller to store and +// faster to run. Backslashed characters are exceptions, each becoming a +// separate node; the code is simpler that way and it's not worth fixing. + var + ret : PRegExprChar; + flags : integer; + RangeBeg, RangeEnd : REChar; + CanBeRange : boolean; + len : integer; + ender : REChar; + begmodfs : PRegExprChar; + + {$IFDEF UseSetOfChar} //###0.930 + RangePCodeBeg : PRegExprChar; + RangePCodeIdx : integer; + RangeIsCI : boolean; + RangeSet : TSetOfREChar; + RangeLen : integer; + RangeChMin, RangeChMax : REChar; + {$ENDIF} + + procedure EmitExactly (ch : REChar); + begin + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + EmitC (ch); + EmitC (#0); + flagp := flagp or HASWIDTH or SIMPLE; + end; + + procedure EmitStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitC (s [i]); + end; + + function HexDig (ch : REChar) : integer; + begin + Result := 0; + if (ch >= 'a') and (ch <= 'f') + then ch := REChar (ord (ch) - (ord ('a') - ord ('A'))); + if (ch < '0') or (ch > 'F') or ((ch > '9') and (ch < 'A')) then begin + Error (reeBadHexDigit); + EXIT; + end; + Result := ord (ch) - ord ('0'); + if ch >= 'A' + then Result := Result - (ord ('A') - ord ('9') - 1); + end; + + function EmitRange (AOpCode : REChar) : PRegExprChar; + begin + {$IFDEF UseSetOfChar} + case AOpCode of + ANYBUTCI, ANYBUT: + Result := EmitNode (ANYBUTTINYSET); + else // ANYOFCI, ANYOF + Result := EmitNode (ANYOFTINYSET); + end; + case AOpCode of + ANYBUTCI, ANYOFCI: + RangeIsCI := True; + else // ANYBUT, ANYOF + RangeIsCI := False; + end; + RangePCodeBeg := regcode; + RangePCodeIdx := regsize; + RangeLen := 0; + RangeSet := []; + RangeChMin := #255; + RangeChMax := #0; + {$ELSE} + Result := EmitNode (AOpCode); + // ToDo: + // !!!!!!!!!!!!! Implement ANYOF[BUT]TINYSET generation for UniCode !!!!!!!!!! + {$ENDIF} + end; + +{$IFDEF UseSetOfChar} + procedure EmitRangeCPrim (b : REChar); //###0.930 + begin + if b in RangeSet + then EXIT; + inc (RangeLen); + if b < RangeChMin + then RangeChMin := b; + if b > RangeChMax + then RangeChMax := b; + Include (RangeSet, b); + end; + {$ENDIF} + + procedure EmitRangeC (b : REChar); + {$IFDEF UseSetOfChar} + var + Ch : REChar; + {$ENDIF} + begin + CanBeRange := false; + {$IFDEF UseSetOfChar} + if b <> #0 then begin + EmitRangeCPrim (b); //###0.930 + if RangeIsCI + then EmitRangeCPrim (InvertCase (b)); //###0.930 + end + else begin + {$IFDEF UseAsserts} + Assert (RangeLen > 0, 'TRegExpr.ParseAtom(subroutine EmitRangeC): empty range'); // impossible, but who knows.. + Assert (RangeChMin <= RangeChMax, 'TRegExpr.ParseAtom(subroutine EmitRangeC): RangeChMin > RangeChMax'); // impossible, but who knows.. + {$ENDIF} + if RangeLen <= TinySetLen then begin // emit "tiny set" + if regcode = @regdummy then begin + regsize := RangePCodeIdx + TinySetLen; // RangeChMin/Max !!! + EXIT; + end; + regcode := RangePCodeBeg; + for Ch := RangeChMin to RangeChMax do //###0.930 + if Ch in RangeSet then begin + regcode^ := Ch; + inc (regcode); + end; + // fill rest: + while regcode < RangePCodeBeg + TinySetLen do begin + regcode^ := RangeChMax; + inc (regcode); + end; + end + else begin + if regcode = @regdummy then begin + regsize := RangePCodeIdx + SizeOf (TSetOfREChar); + EXIT; + end; + if (RangePCodeBeg - REOpSz - RENextOffSz)^ = ANYBUTTINYSET + then RangeSet := [#0 .. #255] - RangeSet; + PREOp (RangePCodeBeg - REOpSz - RENextOffSz)^ := ANYOFFULLSET; + regcode := RangePCodeBeg; + Move (RangeSet, regcode^, SizeOf (TSetOfREChar)); + inc (regcode, SizeOf (TSetOfREChar)); + end; + end; + {$ELSE} + EmitC (b); + {$ENDIF} + end; + + procedure EmitSimpleRangeC (b : REChar); + begin + RangeBeg := b; + EmitRangeC (b); + CanBeRange := true; + end; + + procedure EmitRangeStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitRangeC (s [i]); + end; + + function UnQuoteChar (var APtr : PRegExprChar) : REChar; //###0.934 + begin + case APtr^ of + 't': Result := #$9; // tab (HT/TAB) + 'n': Result := #$a; // newline (NL) + 'r': Result := #$d; // car.return (CR) + 'f': Result := #$c; // form feed (FF) + 'a': Result := #$7; // alarm (bell) (BEL) + 'e': Result := #$1b; // escape (ESC) + 'x': begin // hex char + Result := #0; + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ = '{' then begin // \x{nnnn} //###0.936 + REPEAT + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ <> '}' then begin + if (Ord (Result) + ShR (SizeOf (REChar) * 8 - 4)) and $F <> 0 then begin + Error (reeHexCodeAfterBSlashXTooBig); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end + else BREAK; + UNTIL False; + end + else begin + Result := REChar (HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end; + end; + else Result := APtr^; + end; + end; + + begin + Result := nil; + flagp := WORST; // Tentatively. + + inc (regparse); + case (regparse - 1)^ of + '^': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (BOL) + else ret := EmitNode (BOLML); + '$': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (EOL) + else ret := EmitNode (EOLML); + '.': + if (fCompModifiers and MaskModS) <> 0 then begin + ret := EmitNode (ANY); + flagp := flagp or HASWIDTH or SIMPLE; + end + else begin // not /s, so emit [^:LineSeparators:] + ret := EmitNode (ANYML); + flagp := flagp or HASWIDTH; // not so simple ;) +// ret := EmitRange (ANYBUT); +// EmitRangeStr (LineSeparators); //###0.941 +// EmitRangeStr (LinePairedSeparator); // !!! isn't correct if have to accept only paired +// EmitRangeC (#0); +// flagp := flagp or HASWIDTH or SIMPLE; + end; + '[': begin + if regparse^ = '^' then begin // Complement of range. + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYBUTCI) + else ret := EmitRange (ANYBUT); + inc (regparse); + end + else + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYOFCI) + else ret := EmitRange (ANYOF); + + CanBeRange := false; + + if (regparse^ = ']') then begin + EmitSimpleRangeC (regparse^); // []-a] -> ']' .. 'a' + inc (regparse); + end; + + while (regparse^ <> #0) and (regparse^ <> ']') do begin + if (regparse^ = '-') + and ((regparse + 1)^ <> #0) and ((regparse + 1)^ <> ']') + and CanBeRange then begin + inc (regparse); + RangeEnd := regparse^; + if RangeEnd = EscChar then begin + {$IFDEF UniCode} //###0.935 + if (ord ((regparse + 1)^) < 256) + and (char ((regparse + 1)^) + in ['d', 'D', 's', 'S', 'w', 'W']) then begin + {$ELSE} + if (regparse + 1)^ in ['d', 'D', 's', 'S', 'w', 'W'] then begin + {$ENDIF} + EmitRangeC ('-'); // or treat as error ?!! + CONTINUE; + end; + inc (regparse); + RangeEnd := UnQuoteChar (regparse); + end; + + // r.e.ranges extension for russian + if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeLoHigh) then begin + EmitRangeStr (RusRangeLo); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeHiLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeHi); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeLo); + EmitRangeStr (RusRangeHi); + end + else begin // standard r.e. handling + if RangeBeg > RangeEnd then begin + Error (reeInvalidRange); + EXIT; + end; + inc (RangeBeg); + EmitRangeC (RangeEnd); // prevent infinite loop if RangeEnd=$ff + while RangeBeg < RangeEnd do begin //###0.929 + EmitRangeC (RangeBeg); + inc (RangeBeg); + end; + end; + inc (regparse); + end + else begin + if regparse^ = EscChar then begin + inc (regparse); + if regparse^ = #0 then begin + Error (reeParseAtomTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'd': EmitRangeStr ('0123456789'); + 'w': EmitRangeStr (WordChars); + 's': EmitRangeStr (SpaceChars); + else EmitSimpleRangeC (UnQuoteChar (regparse)); + end; { of case} + end + else EmitSimpleRangeC (regparse^); + inc (regparse); + end; + end; { of while} + EmitRangeC (#0); + if regparse^ <> ']' then begin + Error (reeUnmatchedSqBrackets); + EXIT; + end; + inc (regparse); + flagp := flagp or HASWIDTH or SIMPLE; + end; + '(': begin + if regparse^ = '?' then begin + // check for extended Perl syntax : (?..) + if (regparse + 1)^ = '#' then begin // (?#comment) + inc (regparse, 2); // find closing ')' + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if regparse^ <> ')' then begin + Error (reeUnclosedComment); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment + end + else begin // modifiers ? + inc (regparse); // skip '?' + begmodfs := regparse; + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if (regparse^ <> ')') + or not ParseModifiersStr (copy (begmodfs, 1, (regparse - begmodfs)), fCompModifiers) then begin + Error (reeUrecognizedModifier); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment +// Error (reeQPSBFollowsNothing); +// EXIT; + end; + end + else begin + ret := ParseReg (1, flags); + if ret = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and (HASWIDTH or SPSTART); + end; + end; + #0, '|', ')': begin // Supposed to be caught earlier. + Error (reeInternalUrp); + EXIT; + end; + '?', '+', '*': begin + Error (reeQPSBFollowsNothing); + EXIT; + end; + EscChar: begin + if regparse^ = #0 then begin + Error (reeTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'b': ret := EmitNode (BOUND); //###0.943 + 'B': ret := EmitNode (NOTBOUND); //###0.943 + 'A': ret := EmitNode (BOL); //###0.941 + 'Z': ret := EmitNode (EOL); //###0.941 + 'd': begin // r.e.extension - any digit ('0' .. '9') + ret := EmitNode (ANYDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'D': begin // r.e.extension - not digit ('0' .. '9') + ret := EmitNode (NOTDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 's': begin // r.e.extension - any space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'S': begin // r.e.extension - not space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'w': begin // r.e.extension - any english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'W': begin // r.e.extension - not english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + '1' .. '9': begin //###0.936 + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (BSUBEXPCI) + else ret := EmitNode (BSUBEXP); + EmitC (REChar (ord (regparse^) - ord ('0'))); + flagp := flagp or HASWIDTH or SIMPLE; + end; + else EmitExactly (UnQuoteChar (regparse)); + end; { of case} + inc (regparse); + end; + else begin + dec (regparse); + if ((fCompModifiers and MaskModX) <> 0) and // check for eXtended syntax + ((regparse^ = '#') + or ({$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF})) then begin //###0.941 \x + if regparse^ = '#' then begin // Skip eXtended comment + // find comment terminator (group of \n and/or \r) + while (regparse^ <> #0) and (regparse^ <> #$d) and (regparse^ <> #$a) + do inc (regparse); + while (regparse^ = #$d) or (regparse^ = #$a) // skip comment terminator + do inc (regparse); // attempt to support different type of line separators + end + else begin // Skip the blanks! + while {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} + do inc (regparse); + end; + ret := EmitNode (COMMENT); // comment + end + else begin + len := strcspn (regparse, META); + if len <= 0 then + if regparse^ <> '{' then begin + Error (reeRarseAtomInternalDisaster); + EXIT; + end + else len := strcspn (regparse + 1, META) + 1; // bad {n,m} - compile as EXATLY + ender := (regparse + len)^; + if (len > 1) + and ((ender = '*') or (ender = '+') or (ender = '?') or (ender = '{')) + then dec (len); // Back off clear of ?+*{ operand. + flagp := flagp or HASWIDTH; + if len = 1 + then flagp := flagp or SIMPLE; + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + while (len > 0) + and (((fCompModifiers and MaskModX) = 0) or (regparse^ <> '#')) do begin + if ((fCompModifiers and MaskModX) = 0) or not ( //###0.941 + {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} ) + then EmitC (regparse^); + inc (regparse); + dec (len); + end; + EmitC (#0); + end; { of if not comment} + end; { of case else} + end; { of case} + + Result := ret; + end; { of function TRegExpr.ParseAtom +--------------------------------------------------------------} + +function TRegExpr.GetCompilerErrorPos : integer; + begin + Result := 0; + if (regexpbeg = nil) or (regparse = nil) + then EXIT; // not in compiling mode ? + Result := regparse - regexpbeg; + end; { of function TRegExpr.GetCompilerErrorPos +--------------------------------------------------------------} + + +{=============================================================} +{===================== Matching section ======================} +{=============================================================} + +{$IFNDEF UseSetOfChar} +function TRegExpr.StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 - now method of TRegExpr + begin + while (s^ <> #0) and (s^ <> ch) and (s^ <> InvertCase (ch)) + do inc (s); + if s^ <> #0 + then Result := s + else Result := nil; + end; { of function TRegExpr.StrScanCI +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.regrepeat (p : PRegExprChar; AMax : integer) : integer; +// repeatedly match something simple, report how many + var + scan : PRegExprChar; + opnd : PRegExprChar; + TheMax : integer; + {Ch,} InvCh : REChar; //###0.931 + sestart, seend : PRegExprChar; //###0.936 + begin + Result := 0; + scan := reginput; + opnd := p + REOpSz + RENextOffSz; //OPERAND + TheMax := fInputEnd - scan; + if TheMax > AMax + then TheMax := AMax; + case PREOp (p)^ of + ANY: begin + // note - ANYML cannot be proceeded in regrepeat because can skip + // more than one char at once + Result := TheMax; + inc (scan, Result); + end; + EXACTLY: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin + inc (Result); + inc (scan); + end; + end; + EXACTLYCI: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin // prevent unneeded InvertCase //###0.931 + inc (Result); + inc (scan); + end; + if Result < TheMax then begin //###0.931 + InvCh := InvertCase (opnd^); // store in register + while (Result < TheMax) and + ((opnd^ = scan^) or (InvCh = scan^)) do begin + inc (Result); + inc (scan); + end; + end; + end; + BSUBEXP: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or (scan^ <> opnd^) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + BSUBEXPCI: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or + ((scan^ <> opnd^) and (scan^ <> InvertCase (opnd^))) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + ANYDIGIT: + while (Result < TheMax) and + (scan^ >= '0') and (scan^ <= '9') do begin + inc (Result); + inc (scan); + end; + NOTDIGIT: + while (Result < TheMax) and + ((scan^ < '0') or (scan^ > '9')) do begin + inc (Result); + inc (scan); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) > 0) //###0.940 + { ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + NOTLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) <= 0) //###0.940 + { not ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') + or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + ANYSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) > 0) do begin + inc (Result); + inc (scan); + end; + NOTSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) <= 0) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + ANYOFTINYSET: begin + while (Result < TheMax) and //!!!TinySet + ((scan^ = opnd^) or (scan^ = (opnd + 1)^) + or (scan^ = (opnd + 2)^)) do begin + inc (Result); + inc (scan); + end; + end; + ANYBUTTINYSET: begin + while (Result < TheMax) and //!!!TinySet + (scan^ <> opnd^) and (scan^ <> (opnd + 1)^) + and (scan^ <> (opnd + 2)^) do begin + inc (Result); + inc (scan); + end; + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + while (Result < TheMax) and + (scan^ in PSetOfREChar (opnd)^) do begin + inc (Result); + inc (scan); + end; + end; + {$ELSE} + ANYOF: + while (Result < TheMax) and + (StrScan (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUT: + while (Result < TheMax) and + (StrScan (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + ANYOFCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUTCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + else begin // Oh dear. Called inappropriately. + Result := 0; // Best compromise. + Error (reeRegRepeatCalledInappropriately); + EXIT; + end; + end; { of case} + reginput := scan; + end; { of function TRegExpr.regrepeat +--------------------------------------------------------------} + +function TRegExpr.regnext (p : PRegExprChar) : PRegExprChar; +// dig the "next" pointer out of a node + var offset : TRENextOff; + begin + if p = @regdummy then begin + Result := nil; + EXIT; + end; + offset := PRENextOff (p + REOpSz)^; //###0.933 inlined NEXT + if offset = 0 + then Result := nil + else Result := p + offset; + end; { of function TRegExpr.regnext +--------------------------------------------------------------} + +function TRegExpr.MatchPrim (prog : PRegExprChar) : boolean; +// recursively matching routine +// Conceptually the strategy is simple: check to see whether the current +// node matches, call self recursively to see whether the rest matches, +// and then act accordingly. In practice we make some effort to avoid +// recursion, in particular by going through "ordinary" nodes (that don't +// need to know whether the rest of the match failed) by a loop instead of +// by recursion. + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + len : integer; + opnd : PRegExprChar; + no : integer; + save : PRegExprChar; + nextch : REChar; + BracesMin, BracesMax : integer; // we use integer instead of TREBracesArg for better support */+ + {$IFDEF ComplexBraces} + SavedLoopStack : array [1 .. LoopStackMax] of integer; // :(( very bad for recursion + SavedLoopStackIdx : integer; //###0.925 + {$ENDIF} + begin + Result := false; + scan := prog; + + while scan <> nil do begin + len := PRENextOff (scan + 1)^; //###0.932 inlined regnext + if len = 0 + then next := nil + else next := scan + len; + + case scan^ of + NOTBOUND, //###0.943 //!!! think about UseSetOfChar !!! + BOUND: + if (scan^ = BOUND) + xor ( + ((reginput = fInputStart) or (Pos ((reginput - 1)^, fWordChars) <= 0)) + and (reginput^ <> #0) and (Pos (reginput^, fWordChars) > 0) + or + (reginput <> fInputStart) and (Pos ((reginput - 1)^, fWordChars) > 0) + and ((reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0))) + then EXIT; + + BOL: if reginput <> fInputStart + then EXIT; + EOL: if reginput^ <> #0 + then EXIT; + BOLML: if reginput > fInputStart then begin + nextch := (reginput - 1)^; + if (nextch <> fLinePairedSeparatorTail) + or ((reginput - 1) <= fInputStart) + or ((reginput - 2)^ <> fLinePairedSeparatorHead) + then begin + if (nextch = fLinePairedSeparatorHead) + and (reginput^ = fLinePairedSeparatorTail) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + EOLML: if reginput^ <> #0 then begin + nextch := reginput^; + if (nextch <> fLinePairedSeparatorHead) + or ((reginput + 1)^ <> fLinePairedSeparatorTail) + then begin + if (nextch = fLinePairedSeparatorTail) + and (reginput > fInputStart) + and ((reginput - 1)^ = fLinePairedSeparatorHead) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + ANY: begin + if reginput^ = #0 + then EXIT; + inc (reginput); + end; + ANYML: begin //###0.941 + if (reginput^ = #0) + or ((reginput^ = fLinePairedSeparatorHead) + and ((reginput + 1)^ = fLinePairedSeparatorTail)) + or {$IFNDEF UniCode} (reginput^ in fLineSeparatorsSet) + {$ELSE} (pos (reginput^, fLineSeparators) > 0) {$ENDIF} + then EXIT; + inc (reginput); + end; + ANYDIGIT: begin + if (reginput^ = #0) or (reginput^ < '0') or (reginput^ > '9') + then EXIT; + inc (reginput); + end; + NOTDIGIT: begin + if (reginput^ = #0) or ((reginput^ >= '0') and (reginput^ <= '9')) + then EXIT; + inc (reginput); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + ANYSPACE: begin + if (reginput^ = #0) or not (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTSPACE: begin + if (reginput^ = #0) or (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + {$ENDIF} + EXACTLYCI: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if (opnd^ <> reginput^) + and (InvertCase (opnd^) <> reginput^) + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if (opnd^ <> save^) + and (InvertCase (opnd^) <> save^) + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + EXACTLY: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if opnd^ <> reginput^ + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if opnd^ <> save^ + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + BSUBEXP: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or (save^ <> opnd^) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + BSUBEXPCI: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or + ((save^ <> opnd^) and (save^ <> InvertCase (opnd^))) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + ANYOFTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + ((reginput^ <> (scan + REOpSz + RENextOffSz)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 1)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 2)^)) + then EXIT; + inc (reginput); + end; + ANYBUTTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + (reginput^ = (scan + REOpSz + RENextOffSz)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 1)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 2)^) + then EXIT; + inc (reginput); + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + if (reginput^ = #0) + or not (reginput^ in PSetOfREChar (scan + REOpSz + RENextOffSz)^) + then EXIT; + inc (reginput); + end; + {$ELSE} + ANYOF: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUT: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + ANYOFCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUTCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + {$ENDIF} + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + no := ord (scan^) - ord (OPEN); +// save := reginput; + save := startp [no]; //###0.936 + startp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then startp [no] := save; +// if Result and (startp [no] = nil) +// then startp [no] := save; + // Don't set startp if some later invocation of the same + // parentheses already has. + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + no := ord (scan^) - ord (CLOSE); +// save := reginput; + save := endp [no]; //###0.936 + endp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then endp [no] := save; +// if Result and (endp [no] = nil) +// then endp [no] := save; + // Don't set endp if some later invocation of the same + // parentheses already has. + EXIT; + end; + BRANCH: begin + if (next^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion + else begin + REPEAT + save := reginput; + Result := MatchPrim (scan + REOpSz + RENextOffSz); + if Result + then EXIT; + reginput := save; + scan := regnext (scan); + UNTIL (scan = nil) or (scan^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 + no := LoopStackIdx; + inc (LoopStackIdx); + if LoopStackIdx > LoopStackMax then begin + Error (reeLoopStackExceeded); + EXIT; + end; + save := reginput; + LoopStack [LoopStackIdx] := 0; // init loop counter + Result := MatchPrim (next); // execute LOOP + LoopStackIdx := no; // cleanup + if Result + then EXIT; + reginput := save; + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + if LoopStackIdx <= 0 then begin + Error (reeLoopWithoutEntry); + EXIT; + end; + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + 2 * REBracesArgSz)^; + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + save := reginput; + if LoopStack [LoopStackIdx] >= BracesMin then begin // Min alredy matched - we can work + if scan^ = LOOP then begin + // greedy way - first try to max deep of greed ;) + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Fail. May be we are too greedy? ;) + Result := MatchPrim (next); + if not Result + then reginput := save; + EXIT; + end + else begin + // non-greedy - try just now + Result := MatchPrim (next); + if Result + then EXIT + else reginput := save; // failed - move next and try again + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Failed - back up + EXIT; + end + end + else begin // first match a min_cnt times + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + dec (LoopStack [LoopStackIdx]); + reginput := save; + EXIT; + end; + end; + {$ENDIF} + STAR, PLUS, BRACES, STARNG, PLUSNG, BRACESNG: begin + // Lookahead to avoid useless match attempts when we know + // what character comes next. + nextch := #0; + if next^ = EXACTLY + then nextch := (next + REOpSz + RENextOffSz)^; + BracesMax := MaxInt; // infinite loop for * and + //###0.92 + if (scan^ = STAR) or (scan^ = STARNG) + then BracesMin := 0 // STAR + else if (scan^ = PLUS) or (scan^ = PLUSNG) + then BracesMin := 1 // PLUS + else begin // BRACES + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + end; + save := reginput; + opnd := scan + REOpSz + RENextOffSz; + if (scan^ = BRACES) or (scan^ = BRACESNG) + then inc (opnd, 2 * REBracesArgSz); + + if (scan^ = PLUSNG) or (scan^ = STARNG) or (scan^ = BRACESNG) then begin + // non-greedy mode + BracesMax := regrepeat (opnd, BracesMax); // don't repeat more than BracesMax + // Now we know real Max limit to move forward (for recursion 'back up') + // In some cases it can be faster to check only Min positions first, + // but after that we have to check every position separtely instead + // of fast scannig in loop. + no := BracesMin; + while no <= BracesMax do begin + reginput := save + no; + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + inc (no); // Couldn't or didn't - move forward. + end; { of while} + EXIT; + end + else begin // greedy mode + no := regrepeat (opnd, BracesMax); // don't repeat more than max_cnt + while no >= BracesMin do begin + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + dec (no); // Couldn't or didn't - back up. + reginput := save + no; + end; { of while} + EXIT; + end; + end; + EEND: begin + Result := true; // Success! + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + + // We get here only if there's trouble -- normally "case EEND" is the + // terminating point. + Error (reeMatchPrimCorruptedPointers); + end; { of function TRegExpr.MatchPrim +--------------------------------------------------------------} + +{$IFDEF UseFirstCharSet} //###0.929 +procedure TRegExpr.FillFirstCharSet (prog : PRegExprChar); + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + opnd : PRegExprChar; + min_cnt : integer; + begin + scan := prog; + while scan <> nil do begin + next := regnext (scan); + case PREOp (scan)^ of + BSUBEXP, BSUBEXPCI: begin //###0.938 + FirstCharSet := [#0 .. #255]; // :((( we cannot + // optimize r.e. if it starts with back reference + EXIT; + end; + BOL, BOLML: ; // EXIT; //###0.937 + EOL, EOLML: begin //###0.948 was empty in 0.947, was EXIT in 0.937 + Include (FirstCharSet, #0); + if ModifierM + then begin + opnd := PRegExprChar (LineSeparators); + while opnd^ <> #0 do begin + Include (FirstCharSet, opnd^); + inc (opnd); + end; + end; + EXIT; + end; + BOUND, NOTBOUND: ; //###0.943 ?!! + ANY, ANYML: begin // we can better define ANYML !!! + FirstCharSet := [#0 .. #255]; //###0.930 + EXIT; + end; + ANYDIGIT: begin + FirstCharSet := FirstCharSet + ['0' .. '9']; + EXIT; + end; + NOTDIGIT: begin + FirstCharSet := FirstCharSet + ([#0 .. #255] - ['0' .. '9']); //###0.948 FirstCharSet was forgotten + EXIT; + end; + EXACTLYCI: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, InvertCase ((scan + REOpSz + RENextOffSz)^)); + EXIT; + end; + EXACTLY: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + EXIT; + end; + ANYOFFULLSET: begin + FirstCharSet := FirstCharSet + PSetOfREChar (scan + REOpSz + RENextOffSz)^; + EXIT; + end; + ANYOFTINYSET: begin + //!!!TinySet + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 1)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 2)^); + // ... // up to TinySetLen + EXIT; + end; + ANYBUTTINYSET: begin + //!!!TinySet + FirstCharSet := FirstCharSet + ([#0 .. #255] - [ //###0.948 FirstCharSet was forgotten + (scan + REOpSz + RENextOffSz)^, + (scan + REOpSz + RENextOffSz + 1)^, + (scan + REOpSz + RENextOffSz + 2)^]); + // ... // up to TinySetLen + EXIT; + end; + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + BRANCH: begin + if (PREOp (next)^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion. + else begin + REPEAT + FillFirstCharSet (scan + REOpSz + RENextOffSz); + scan := regnext (scan); + UNTIL (scan = nil) or (PREOp (scan)^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 +// LoopStack [LoopStackIdx] := 0; //###0.940 line removed + FillFirstCharSet (next); // execute LOOP + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + REBracesArgSz * 2)^; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; + FillFirstCharSet (opnd); + if min_cnt = 0 + then FillFirstCharSet (next); + EXIT; + end; + {$ENDIF} + STAR, STARNG: //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + PLUS, PLUSNG: begin //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + EXIT; + end; + BRACES, BRACESNG: begin //###0.940 + opnd := scan + REOpSz + RENextOffSz + REBracesArgSz * 2; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; // BRACES + FillFirstCharSet (opnd); + if min_cnt > 0 + then EXIT; + end; + EEND: begin + FirstCharSet := [#0 .. #255]; //###0.948 + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + end; { of procedure FillFirstCharSet +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.Exec (const AInputString : RegExprString) : boolean; + begin + InputString := AInputString; + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} + +{$IFDEF OverMeth} +{$IFNDEF FPC} +function TRegExpr.Exec : boolean; + begin + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} +function TRegExpr.Exec (AOffset: integer) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.ExecPos +--------------------------------------------------------------} + +function TRegExpr.ExecPrim (AOffset: integer) : boolean; + procedure ClearMatchs; + // Clears matchs array + var i : integer; + begin + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + end; { of procedure ClearMatchs; +..............................................................} + function RegMatch (str : PRegExprChar) : boolean; + // try match at specific point + begin + //###0.949 removed clearing of start\endp + reginput := str; + Result := MatchPrim (programm + REOpSz); + if Result then begin + startp [0] := str; + endp [0] := reginput; + end; + end; { of function RegMatch +..............................................................} + var + s : PRegExprChar; + StartPtr: PRegExprChar; + InputLen : integer; + begin + Result := false; // Be paranoid... + + ClearMatchs; //###0.949 + // ensure that Match cleared either if optimization tricks or some error + // will lead to leaving ExecPrim without actual search. That is + // importent for ExecNext logic and so on. + + if not IsProgrammOk //###0.929 + then EXIT; + + // Check InputString presence + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + + InputLen := length (fInputString); + + //Check that the start position is not negative + if AOffset < 1 then begin + Error (reeOffsetMustBeGreaterThen0); + EXIT; + end; + // Check that the start position is not longer than the line + // If so then exit with nothing found + if AOffset > (InputLen + 1) // for matching empty string after last char. + then EXIT; + + StartPtr := fInputString + AOffset - 1; + + // If there is a "must appear" string, look for it. + if regmust <> nil then begin + s := StartPtr; + REPEAT + s := StrScan (s, regmust [0]); + if s <> nil then begin + if StrLComp (s, regmust, regmlen) = 0 + then BREAK; // Found it. + inc (s); + end; + UNTIL s = nil; + if s = nil // Not present. + then EXIT; + end; + + // Mark beginning of line for ^ . + fInputStart := fInputString; + + // Pointer to end of input stream - for + // pascal-style string processing (may include #0) + fInputEnd := fInputString + InputLen; + + {$IFDEF ComplexBraces} + // no loops started + LoopStackIdx := 0; //###0.925 + {$ENDIF} + + // Simplest case: anchored match need be tried only once. + if reganch <> #0 then begin + Result := RegMatch (StartPtr); + EXIT; + end; + + // Messy cases: unanchored match. + s := StartPtr; + if regstart <> #0 then // We know what char it must start with. + REPEAT + s := StrScan (s, regstart); + if s <> nil then begin + Result := RegMatch (s); + if Result + then EXIT + else ClearMatchs; //###0.949 + inc (s); + end; + UNTIL s = nil + else begin // We don't - general case. + repeat //###0.948 + {$IFDEF UseFirstCharSet} + if s^ in FirstCharSet + then Result := RegMatch (s); + {$ELSE} + Result := RegMatch (s); + {$ENDIF} + if Result or (s^ = #0) // Exit on a match or after testing the end-of-string. + then EXIT + else ClearMatchs; //###0.949 + inc (s); + until false; +(* optimized and fixed by Martin Fuller - empty strings + were not allowed to pass thru in UseFirstCharSet mode + {$IFDEF UseFirstCharSet} //###0.929 + while s^ <> #0 do begin + if s^ in FirstCharSet + then Result := RegMatch (s); + if Result + then EXIT; + inc (s); + end; + {$ELSE} + REPEAT + Result := RegMatch (s); + if Result + then EXIT; + inc (s); + UNTIL s^ = #0; + {$ENDIF} +*) + end; + // Failure + end; { of function TRegExpr.ExecPrim +--------------------------------------------------------------} + +function TRegExpr.ExecNext : boolean; + var offset : integer; + begin + Result := false; + if not Assigned (startp[0]) or not Assigned (endp[0]) then begin + Error (reeExecNextWithoutExec); + EXIT; + end; +// Offset := MatchPos [0] + MatchLen [0]; +// if MatchLen [0] = 0 + Offset := endp [0] - fInputString + 1; //###0.929 + if endp [0] = startp [0] //###0.929 + then inc (Offset); // prevent infinite looping if empty string match r.e. + Result := ExecPrim (Offset); + end; { of function TRegExpr.ExecNext +--------------------------------------------------------------} + +function TRegExpr.GetInputString : RegExprString; + begin + if not Assigned (fInputString) then begin + Error (reeGetInputStringWithoutInputString); + EXIT; + end; + Result := fInputString; + end; { of function TRegExpr.GetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetInputString (const AInputString : RegExprString); + var + Len : integer; + i : integer; + begin + // clear Match* - before next Exec* call it's undefined + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + + // need reallocation of input string buffer ? + Len := length (AInputString); + if Assigned (fInputString) and (Length (fInputString) <> Len) then begin + FreeMem (fInputString); + fInputString := nil; + end; + // buffer [re]allocation + if not Assigned (fInputString) + then GetMem (fInputString, (Len + 1) * SizeOf (REChar)); + + // copy input string into buffer + {$IFDEF UniCode} + StrPCopy (fInputString, Copy (AInputString, 1, Len)); //###0.927 + {$ELSE} + StrLCopy (fInputString, PRegExprChar (AInputString), Len); + {$ENDIF} + + { + fInputString : string; + fInputStart, fInputEnd : PRegExprChar; + + SetInputString: + fInputString := AInputString; + UniqueString (fInputString); + fInputStart := PChar (fInputString); + Len := length (fInputString); + fInputEnd := PRegExprChar (integer (fInputStart) + Len); ?? + !! startp/endp âñå ðàâíî áóäåò îïàñíî èñïîëüçîâàòü ? + } + end; { of procedure TRegExpr.SetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetLineSeparators (const AStr : RegExprString); + begin + if AStr <> fLineSeparators then begin + fLineSeparators := AStr; + InvalidateProgramm; + end; + end; { of procedure TRegExpr.SetLineSeparators +--------------------------------------------------------------} + +procedure TRegExpr.SetLinePairedSeparator (const AStr : RegExprString); + begin + if length (AStr) = 2 then begin + if AStr [1] = AStr [2] then begin + // it's impossible for our 'one-point' checking to support + // two chars separator for identical chars + Error (reeBadLinePairedSeparator); + EXIT; + end; + if not fLinePairedSeparatorAssigned + or (AStr [1] <> fLinePairedSeparatorHead) + or (AStr [2] <> fLinePairedSeparatorTail) then begin + fLinePairedSeparatorAssigned := true; + fLinePairedSeparatorHead := AStr [1]; + fLinePairedSeparatorTail := AStr [2]; + InvalidateProgramm; + end; + end + else if length (AStr) = 0 then begin + if fLinePairedSeparatorAssigned then begin + fLinePairedSeparatorAssigned := false; + InvalidateProgramm; + end; + end + else Error (reeBadLinePairedSeparator); + end; { of procedure TRegExpr.SetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.GetLinePairedSeparator : RegExprString; + begin + if fLinePairedSeparatorAssigned then begin + {$IFDEF UniCode} + // Here is some UniCode 'magic' + // If You do know better decision to concatenate + // two WideChars, please, let me know! + Result := fLinePairedSeparatorHead; //###0.947 + Result := Result + fLinePairedSeparatorTail; + {$ELSE} + Result := fLinePairedSeparatorHead + fLinePairedSeparatorTail; + {$ENDIF} + end + else Result := ''; + end; { of function TRegExpr.GetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.Substitute (const ATemplate : RegExprString) : RegExprString; +// perform substitutions after a regexp match +// completely rewritten in 0.929 + var + TemplateLen : integer; + TemplateBeg, TemplateEnd : PRegExprChar; + p, p0, ResultPtr : PRegExprChar; + ResultLen : integer; + n : integer; + Ch : REChar; + function ParseVarName (var APtr : PRegExprChar) : integer; + // extract name of variable (digits, may be enclosed with + // curly braces) from APtr^, uses TemplateEnd !!! + const + Digits = ['0' .. '9']; + var + p : PRegExprChar; + Delimited : boolean; + begin + Result := 0; + p := APtr; + Delimited := (p < TemplateEnd) and (p^ = '{'); + if Delimited + then inc (p); // skip left curly brace + if (p < TemplateEnd) and (p^ = '&') + then inc (p) // this is '$&' or '${&}' + else + while (p < TemplateEnd) and + {$IFDEF UniCode} //###0.935 + (ord (p^) < 256) and (char (p^) in Digits) + {$ELSE} + (p^ in Digits) + {$ENDIF} + do begin + Result := Result * 10 + (ord (p^) - ord ('0')); //###0.939 + inc (p); + end; + if Delimited then + if (p < TemplateEnd) and (p^ = '}') + then inc (p) // skip right curly brace + else p := APtr; // isn't properly terminated + if p = APtr + then Result := -1; // no valid digits found or no right curly brace + APtr := p; + end; + begin + // Check programm and input string + if not IsProgrammOk + then EXIT; + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + // Prepare for working + TemplateLen := length (ATemplate); + if TemplateLen = 0 then begin // prevent nil pointers + Result := ''; + EXIT; + end; + TemplateBeg := pointer (ATemplate); + TemplateEnd := TemplateBeg + TemplateLen; + // Count result length for speed optimization. + ResultLen := 0; + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + if (n < NSUBEXP) and Assigned (startp [n]) and Assigned (endp [n]) + then inc (ResultLen, endp [n] - startp [n]); + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) + then inc (p); // quoted or special char followed + inc (ResultLen); + end; + end; + // Get memory. We do it once and it significant speed up work ! + if ResultLen = 0 then begin + Result := ''; + EXIT; + end; + SetString (Result, nil, ResultLen); + // Fill Result + ResultPtr := pointer (Result); + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + p0 := startp [n]; + if (n < NSUBEXP) and Assigned (p0) and Assigned (endp [n]) then + while p0 < endp [n] do begin + ResultPtr^ := p0^; + inc (ResultPtr); + inc (p0); + end; + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) then begin // quoted or special char followed + Ch := p^; + inc (p); + end; + ResultPtr^ := Ch; + inc (ResultPtr); + end; + end; + end; { of function TRegExpr.Substitute +--------------------------------------------------------------} + +procedure TRegExpr.Split (AInputStr : RegExprString; APieces : TStrings); + var PrevPos : integer; + begin + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + APieces.Add (System.Copy (AInputStr, PrevPos, MatchPos [0] - PrevPos)); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + APieces.Add (System.Copy (AInputStr, PrevPos, MaxInt)); // Tail + end; { of procedure TRegExpr.Split +--------------------------------------------------------------} + +function TRegExpr.Replace (AInputStr : RegExprString; const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos); + if AUseSubstitution //###0.946 + then Result := Result + Substitute (AReplaceStr) + else Result := Result + AReplaceStr; + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.Replace +--------------------------------------------------------------} + +function TRegExpr.ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos) + + AReplaceFunc (Self); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.ReplaceEx +--------------------------------------------------------------} + + +{$IFDEF OverMeth} +function TRegExpr.Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + begin + ReplaceEx (AInputStr, AReplaceFunc); + end; { of function TRegExpr.Replace +--------------------------------------------------------------} +{$ENDIF} + +{=============================================================} +{====================== Debug section ========================} +{=============================================================} + +{$IFDEF RegExpPCodeDump} +function TRegExpr.DumpOp (op : TREOp) : RegExprString; +// printable representation of opcode + begin + case op of + BOL: Result := 'BOL'; + EOL: Result := 'EOL'; + BOLML: Result := 'BOLML'; + EOLML: Result := 'EOLML'; + BOUND: Result := 'BOUND'; //###0.943 + NOTBOUND: Result := 'NOTBOUND'; //###0.943 + ANY: Result := 'ANY'; + ANYML: Result := 'ANYML'; //###0.941 + ANYLETTER: Result := 'ANYLETTER'; + NOTLETTER: Result := 'NOTLETTER'; + ANYDIGIT: Result := 'ANYDIGIT'; + NOTDIGIT: Result := 'NOTDIGIT'; + ANYSPACE: Result := 'ANYSPACE'; + NOTSPACE: Result := 'NOTSPACE'; + ANYOF: Result := 'ANYOF'; + ANYBUT: Result := 'ANYBUT'; + ANYOFCI: Result := 'ANYOF/CI'; + ANYBUTCI: Result := 'ANYBUT/CI'; + BRANCH: Result := 'BRANCH'; + EXACTLY: Result := 'EXACTLY'; + EXACTLYCI: Result := 'EXACTLY/CI'; + NOTHING: Result := 'NOTHING'; + COMMENT: Result := 'COMMENT'; + BACK: Result := 'BACK'; + EEND: Result := 'END'; + BSUBEXP: Result := 'BSUBEXP'; + BSUBEXPCI: Result := 'BSUBEXP/CI'; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1): //###0.929 + Result := Format ('OPEN[%d]', [ord (op) - ord (OPEN)]); + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): //###0.929 + Result := Format ('CLOSE[%d]', [ord (op) - ord (CLOSE)]); + STAR: Result := 'STAR'; + PLUS: Result := 'PLUS'; + BRACES: Result := 'BRACES'; + {$IFDEF ComplexBraces} + LOOPENTRY: Result := 'LOOPENTRY'; //###0.925 + LOOP: Result := 'LOOP'; //###0.925 + LOOPNG: Result := 'LOOPNG'; //###0.940 + {$ENDIF} + ANYOFTINYSET: Result:= 'ANYOFTINYSET'; + ANYBUTTINYSET:Result:= 'ANYBUTTINYSET'; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: Result:= 'ANYOFFULLSET'; + {$ENDIF} + STARNG: Result := 'STARNG'; //###0.940 + PLUSNG: Result := 'PLUSNG'; //###0.940 + BRACESNG: Result := 'BRACESNG'; //###0.940 + else Error (reeDumpCorruptedOpcode); + end; {of case op} + Result := ':' + Result; + end; { of function TRegExpr.DumpOp +--------------------------------------------------------------} + +function TRegExpr.Dump : RegExprString; +// dump a regexp in vaguely comprehensible form + var + s : PRegExprChar; + op : TREOp; // Arbitrary non-END op. + next : PRegExprChar; + i : integer; + Diff : integer; +{$IFDEF UseSetOfChar} //###0.929 + Ch : REChar; +{$ENDIF} + begin + if not IsProgrammOk //###0.929 + then EXIT; + + op := EXACTLY; + Result := ''; + s := programm + REOpSz; + while op <> EEND do begin // While that wasn't END last time... + op := s^; + Result := Result + Format ('%2d%s', [s - programm, DumpOp (s^)]); // Where, what. + next := regnext (s); + if next = nil // Next ptr. + then Result := Result + ' (0)' + else begin + if next > s //###0.948 PWideChar subtraction workaround (see comments in Tail method for details) + then Diff := next - s + else Diff := - (s - next); + Result := Result + Format (' (%d) ', [(s - programm) + Diff]); + end; + inc (s, REOpSz + RENextOffSz); + if (op = ANYOF) or (op = ANYOFCI) or (op = ANYBUT) or (op = ANYBUTCI) + or (op = EXACTLY) or (op = EXACTLYCI) then begin + // Literal string, where present. + while s^ <> #0 do begin + Result := Result + s^; + inc (s); + end; + inc (s); + end; + if (op = ANYOFTINYSET) or (op = ANYBUTTINYSET) then begin + for i := 1 to TinySetLen do begin + Result := Result + s^; + inc (s); + end; + end; + if (op = BSUBEXP) or (op = BSUBEXPCI) then begin + Result := Result + ' \' + IntToStr (Ord (s^)); + inc (s); + end; + {$IFDEF UseSetOfChar} //###0.929 + if op = ANYOFFULLSET then begin + for Ch := #0 to #255 do + if Ch in PSetOfREChar (s)^ then + if Ch < ' ' + then Result := Result + '#' + IntToStr (Ord (Ch)) //###0.936 + else Result := Result + Ch; + inc (s, SizeOf (TSetOfREChar)); + end; + {$ENDIF} + if (op = BRACES) or (op = BRACESNG) then begin //###0.941 + // show min/max argument of BRACES operator + Result := Result + Format ('{%d,%d}', [PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, REBracesArgSz * 2); + end; + {$IFDEF ComplexBraces} + if (op = LOOP) or (op = LOOPNG) then begin //###0.940 + Result := Result + Format (' -> (%d) {%d,%d}', [ + (s - programm - (REOpSz + RENextOffSz)) + PRENextOff (s + 2 * REBracesArgSz)^, + PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, 2 * REBracesArgSz + RENextOffSz); + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of while} + + // Header fields of interest. + + if regstart <> #0 + then Result := Result + 'start ' + regstart; + if reganch <> #0 + then Result := Result + 'anchored '; + if regmust <> nil + then Result := Result + 'must have ' + regmust; + {$IFDEF UseFirstCharSet} //###0.929 + Result := Result + #$d#$a'FirstCharSet:'; + for Ch := #0 to #255 do + if Ch in FirstCharSet + then begin + if Ch < ' ' + then Result := Result + '#' + IntToStr(Ord(Ch)) //###0.948 + else Result := Result + Ch; + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of function TRegExpr.Dump +--------------------------------------------------------------} +{$ENDIF} + +{$IFDEF reRealExceptionAddr} +{$OPTIMIZATION ON} +// ReturnAddr works correctly only if compiler optimization is ON +// I placed this method at very end of unit because there are no +// way to restore compiler optimization flag ... +{$ENDIF} +procedure TRegExpr.Error (AErrorID : integer); +{$IFDEF reRealExceptionAddr} + function ReturnAddr : pointer; //###0.938 + asm + mov eax,[ebp+4] + end; +{$ENDIF} + var + e : ERegExpr; + begin + fLastError := AErrorID; // dummy stub - useless because will raise exception + if AErrorID < 1000 // compilation error ? + then e := ERegExpr.Create (ErrorMsg (AErrorID) // yes - show error pos + + ' (pos ' + IntToStr (CompilerErrorPos) + ')') + else e := ERegExpr.Create (ErrorMsg (AErrorID)); + e.ErrorCode := AErrorID; + e.CompilerErrorPos := CompilerErrorPos; + raise e + {$IFDEF reRealExceptionAddr} + At ReturnAddr; //###0.938 + {$ENDIF} + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +(* + PCode persistence: + FirstCharSet + programm, regsize + regstart // -> programm + reganch // -> programm + regmust, regmlen // -> programm + fExprIsCompiled +*) + +// be carefull - placed here code will be always compiled with +// compiler optimization flag + +{$IFDEF FPC} +initialization + RegExprInvertCaseFunction := TRegExpr.InvertCaseFunction; + +{$ENDIF} +end. + diff --git a/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp b/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm b/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm new file mode 100644 index 0000000..31a1551 --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm @@ -0,0 +1,16 @@ +object EDI_Inventary: TEDI_Inventary + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ServiceSchema = dmEDIInventary.schEDIInventary + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 295 + Width = 296 + object DABINAdapter: TDABINAdapter + Left = 64 + Top = 32 + end +end diff --git a/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas b/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas new file mode 100644 index 0000000..4c9f420 --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas @@ -0,0 +1,139 @@ +unit EDI_Inventary_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TEDI_Inventary } + TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) + DABINAdapter: TDABINAdapter; + private + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + protected + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + JclFileUtils, DateUtils, EDI_Log_Impl, uDataModuleEDI_Inventary; + +procedure Create_EDI_Inventary(out anInstance : IUnknown); +begin + anInstance := TEDI_Inventary.Create(NIL); +end; + +{ EDI_Inventary } +{ TEDI_Inventary } + +function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB, FicheroLIN, + FicheroCANT: String; out MsgError: String): Boolean; +var + ADirEntrada : String; + ADirTemp : String; + NumRegNuevos : Integer; + + procedure GuardarFicheros; + var + AAlmacen : String; + ADate : String; + begin + DateTimeToString(ADate, 'yyyymmddhhnn', Now); + AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); + AAlmacen := PathAddSeparator(AAlmacen + ADate); + if not DirectoryExists(AAlmacen) then + ForceDirectories(AAlmacen); + FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); + FileMove(ADirTemp + FicheroLIN, AAlmacen + FicheroLIN); + FileMove(ADirTemp + FicheroCANT, AAlmacen + FicheroCANT); + DeleteDirectory(ADirTemp, False); + end; + +begin + Result := False; + + // Hay que comprobar que existen los ficheros. + ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); + + if not FileExists(ADirEntrada + FicheroCAB) or + not FileExists(ADirEntrada + FicheroLIN) or + not FileExists(ADirEntrada + FicheroCANT) then + begin + MsgError := 'No hay ficheros de datos'; + InsertarLog(False, MsgError + ' (CargarFicheroEDI1 INV)'); + end + else begin + + // Muevo los ficheros de carga a un directorio temporal + ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); + try + if not DirectoryExists(ADirTemp) then + ForceDirectories(ADirTemp); + FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); + FileMove(ADirEntrada + FicheroLIN, ADirTemp + FicheroLIN); + FileMove(ADirEntrada + FicheroCANT, ADirTemp + FicheroCANT); + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI2 INV)'); + Exit; + end; + end; + + try + try + dmEDIInventary.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLIN, ADirTemp + FicheroCANT, NumRegNuevos); + if NumRegNuevos > 0 then + InsertarLog(True, Format('Se han cargado %d registros de inventario nuevos', [NumRegNuevos])) + else + InsertarLog(True, 'El fichero se ha cargado pero no hay registros de inventario nuevos'); + Result := True; + finally + GuardarFicheros; + dmServer.BorrarFicherosDeCargaAntiguos; + end; + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI3 INV)'); + end; + end; + end; +end; + +procedure TEDI_Inventary.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); + +finalization + +end. diff --git a/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas b/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas new file mode 100644 index 0000000..8903964 --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas @@ -0,0 +1,742 @@ +unit schEDIInventaryClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_CANTINV = '{D890DD46-1103-4942-83FC-8BE8479D1101}'; + RID_RDX_LININV = '{B0D6E128-0438-4CA2-81F9-0893BE9A9A21}'; + RID_RDX_CABINV = '{21FBA86D-243E-4A6E-AC7D-DB040E6AA070}'; + + { Data table names } + nme_RDX_CANTINV = 'RDX_CANTINV'; + nme_RDX_LININV = 'RDX_LININV'; + nme_RDX_CABINV = 'RDX_CABINV'; + + { RDX_CANTINV fields } + fld_RDX_CANTINVNUMDOC = 'NUMDOC'; + fld_RDX_CANTINVNUMLIN = 'NUMLIN'; + fld_RDX_CANTINVNUMCANT = 'NUMCANT'; + fld_RDX_CANTINVTIPOCANT = 'TIPOCANT'; + fld_RDX_CANTINVCANTIDAD = 'CANTIDAD'; + fld_RDX_CANTINVCENTRO = 'CENTRO'; + fld_RDX_CANTINVTMOV = 'TMOV'; + fld_RDX_CANTINVFACT = 'FACT'; + fld_RDX_CANTINVDEPTO = 'DEPTO'; + fld_RDX_CANTINVIDVEN = 'IDVEN'; + + { RDX_CANTINV field indexes } + idx_RDX_CANTINVNUMDOC = 0; + idx_RDX_CANTINVNUMLIN = 1; + idx_RDX_CANTINVNUMCANT = 2; + idx_RDX_CANTINVTIPOCANT = 3; + idx_RDX_CANTINVCANTIDAD = 4; + idx_RDX_CANTINVCENTRO = 5; + idx_RDX_CANTINVTMOV = 6; + idx_RDX_CANTINVFACT = 7; + idx_RDX_CANTINVDEPTO = 8; + idx_RDX_CANTINVIDVEN = 9; + + { RDX_LININV fields } + fld_RDX_LININVNUMDOC = 'NUMDOC'; + fld_RDX_LININVNUMLIN = 'NUMLIN'; + fld_RDX_LININVCODART = 'CODART'; + fld_RDX_LININVFAMILIA = 'FAMILIA'; + fld_RDX_LININVBARRA = 'BARRA'; + fld_RDX_LININVTALLA = 'TALLA'; + fld_RDX_LININVMARCA = 'MARCA'; + fld_RDX_LININVTAMANO = 'TAMANO'; + fld_RDX_LININVSERIE = 'SERIE'; + fld_RDX_LININVCOLOR = 'COLOR'; + fld_RDX_LININVMODELO = 'MODELO'; + fld_RDX_LININVDIBUJO = 'DIBUJO'; + fld_RDX_LININVDESCRIP = 'DESCRIP'; + + { RDX_LININV field indexes } + idx_RDX_LININVNUMDOC = 0; + idx_RDX_LININVNUMLIN = 1; + idx_RDX_LININVCODART = 2; + idx_RDX_LININVFAMILIA = 3; + idx_RDX_LININVBARRA = 4; + idx_RDX_LININVTALLA = 5; + idx_RDX_LININVMARCA = 6; + idx_RDX_LININVTAMANO = 7; + idx_RDX_LININVSERIE = 8; + idx_RDX_LININVCOLOR = 9; + idx_RDX_LININVMODELO = 10; + idx_RDX_LININVDIBUJO = 11; + idx_RDX_LININVDESCRIP = 12; + + { RDX_CABINV fields } + fld_RDX_CABINVNUMDOC = 'NUMDOC'; + fld_RDX_CABINVTIPODOC = 'TIPODOC'; + fld_RDX_CABINVTIPOLIQ = 'TIPOLIQ'; + fld_RDX_CABINVFECHA = 'FECHA'; + fld_RDX_CABINVFECHALIQ = 'FECHALIQ'; + fld_RDX_CABINVEMISOR = 'EMISOR'; + fld_RDX_CABINVRECEPTOR = 'RECEPTOR'; + fld_RDX_CABINVDPTO = 'DPTO'; + fld_RDX_CABINVCENTRO = 'CENTRO'; + fld_RDX_CABINVFECHA_CARGA = 'FECHA_CARGA'; + + { RDX_CABINV field indexes } + idx_RDX_CABINVNUMDOC = 0; + idx_RDX_CABINVTIPODOC = 1; + idx_RDX_CABINVTIPOLIQ = 2; + idx_RDX_CABINVFECHA = 3; + idx_RDX_CABINVFECHALIQ = 4; + idx_RDX_CABINVEMISOR = 5; + idx_RDX_CABINVRECEPTOR = 6; + idx_RDX_CABINVDPTO = 7; + idx_RDX_CABINVCENTRO = 8; + idx_RDX_CABINVFECHA_CARGA = 9; + +type + { IRDX_CANTINV } + IRDX_CANTINV = interface(IDAStronglyTypedDataTable) + ['{2D19DA25-B122-468C-BB44-9B28F4025A0B}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetNUMLINValue: Float; + procedure SetNUMLINValue(const aValue: Float); + function GetNUMCANTValue: Float; + procedure SetNUMCANTValue(const aValue: Float); + function GetTIPOCANTValue: String; + procedure SetTIPOCANTValue(const aValue: String); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetTMOVValue: String; + procedure SetTMOVValue(const aValue: String); + function GetFACTValue: String; + procedure SetFACTValue(const aValue: String); + function GetDEPTOValue: String; + procedure SetDEPTOValue(const aValue: String); + function GetIDVENValue: String; + procedure SetIDVENValue(const aValue: String); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; + property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property TMOV: String read GetTMOVValue write SetTMOVValue; + property FACT: String read GetFACTValue write SetFACTValue; + property DEPTO: String read GetDEPTOValue write SetDEPTOValue; + property IDVEN: String read GetIDVENValue write SetIDVENValue; + end; + + { TRDX_CANTINVDataTableRules } + TRDX_CANTINVDataTableRules = class(TDADataTableRules, IRDX_CANTINV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetNUMCANTValue: Float; virtual; + procedure SetNUMCANTValue(const aValue: Float); virtual; + function GetTIPOCANTValue: String; virtual; + procedure SetTIPOCANTValue(const aValue: String); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetTMOVValue: String; virtual; + procedure SetTMOVValue(const aValue: String); virtual; + function GetFACTValue: String; virtual; + procedure SetFACTValue(const aValue: String); virtual; + function GetDEPTOValue: String; virtual; + procedure SetDEPTOValue(const aValue: String); virtual; + function GetIDVENValue: String; virtual; + procedure SetIDVENValue(const aValue: String); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; + property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property TMOV: String read GetTMOVValue write SetTMOVValue; + property FACT: String read GetFACTValue write SetFACTValue; + property DEPTO: String read GetDEPTOValue write SetDEPTOValue; + property IDVEN: String read GetIDVENValue write SetIDVENValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_LININV } + IRDX_LININV = interface(IDAStronglyTypedDataTable) + ['{7DF3D736-0E00-441C-A777-864BD96FA2A4}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetNUMLINValue: Float; + procedure SetNUMLINValue(const aValue: Float); + function GetCODARTValue: String; + procedure SetCODARTValue(const aValue: String); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetBARRAValue: String; + procedure SetBARRAValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetMARCAValue: String; + procedure SetMARCAValue(const aValue: String); + function GetTAMANOValue: String; + procedure SetTAMANOValue(const aValue: String); + function GetSERIEValue: String; + procedure SetSERIEValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetMODELOValue: String; + procedure SetMODELOValue(const aValue: String); + function GetDIBUJOValue: String; + procedure SetDIBUJOValue(const aValue: String); + function GetDESCRIPValue: String; + procedure SetDESCRIPValue(const aValue: String); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property CODART: String read GetCODARTValue write SetCODARTValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property BARRA: String read GetBARRAValue write SetBARRAValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property MARCA: String read GetMARCAValue write SetMARCAValue; + property TAMANO: String read GetTAMANOValue write SetTAMANOValue; + property SERIE: String read GetSERIEValue write SetSERIEValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property MODELO: String read GetMODELOValue write SetMODELOValue; + property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; + property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; + end; + + { TRDX_LININVDataTableRules } + TRDX_LININVDataTableRules = class(TDADataTableRules, IRDX_LININV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetCODARTValue: String; virtual; + procedure SetCODARTValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetBARRAValue: String; virtual; + procedure SetBARRAValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetMARCAValue: String; virtual; + procedure SetMARCAValue(const aValue: String); virtual; + function GetTAMANOValue: String; virtual; + procedure SetTAMANOValue(const aValue: String); virtual; + function GetSERIEValue: String; virtual; + procedure SetSERIEValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetMODELOValue: String; virtual; + procedure SetMODELOValue(const aValue: String); virtual; + function GetDIBUJOValue: String; virtual; + procedure SetDIBUJOValue(const aValue: String); virtual; + function GetDESCRIPValue: String; virtual; + procedure SetDESCRIPValue(const aValue: String); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property CODART: String read GetCODARTValue write SetCODARTValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property BARRA: String read GetBARRAValue write SetBARRAValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property MARCA: String read GetMARCAValue write SetMARCAValue; + property TAMANO: String read GetTAMANOValue write SetTAMANOValue; + property SERIE: String read GetSERIEValue write SetSERIEValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property MODELO: String read GetMODELOValue write SetMODELOValue; + property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; + property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_CABINV } + IRDX_CABINV = interface(IDAStronglyTypedDataTable) + ['{4373F992-8872-4C21-BF37-CB9EB6F816CF}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetTIPODOCValue: String; + procedure SetTIPODOCValue(const aValue: String); + function GetTIPOLIQValue: String; + procedure SetTIPOLIQValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetFECHALIQValue: DateTime; + procedure SetFECHALIQValue(const aValue: DateTime); + function GetEMISORValue: String; + procedure SetEMISORValue(const aValue: String); + function GetRECEPTORValue: String; + procedure SetRECEPTORValue(const aValue: String); + function GetDPTOValue: String; + procedure SetDPTOValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetFECHA_CARGAValue: DateTime; + procedure SetFECHA_CARGAValue(const aValue: DateTime); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; + property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; + property EMISOR: String read GetEMISORValue write SetEMISORValue; + property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; + property DPTO: String read GetDPTOValue write SetDPTOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + end; + + { TRDX_CABINVDataTableRules } + TRDX_CABINVDataTableRules = class(TDADataTableRules, IRDX_CABINV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetTIPODOCValue: String; virtual; + procedure SetTIPODOCValue(const aValue: String); virtual; + function GetTIPOLIQValue: String; virtual; + procedure SetTIPOLIQValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHALIQValue: DateTime; virtual; + procedure SetFECHALIQValue(const aValue: DateTime); virtual; + function GetEMISORValue: String; virtual; + procedure SetEMISORValue(const aValue: String); virtual; + function GetRECEPTORValue: String; virtual; + procedure SetRECEPTORValue(const aValue: String); virtual; + function GetDPTOValue: String; virtual; + procedure SetDPTOValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetFECHA_CARGAValue: DateTime; virtual; + procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; + property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; + property EMISOR: String read GetEMISORValue write SetEMISORValue; + property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; + property DPTO: String read GetDPTOValue write SetDPTOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TRDX_CANTINVDataTableRules } +constructor TRDX_CANTINVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CANTINVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CANTINVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetNUMLINValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMLINValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetNUMCANTValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMCANTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetTIPOCANTValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetTIPOCANTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetTMOVValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVTMOV].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetTMOVValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVTMOV].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetFACTValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVFACT].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetFACTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetDEPTOValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetDEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetIDVENValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetIDVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; +end; + + +{ TRDX_LININVDataTableRules } +constructor TRDX_LININVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_LININVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_LININVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVNUMDOC].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVNUMDOC].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetNUMLINValue: Float; +begin + result := DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat; +end; + +procedure TRDX_LININVDataTableRules.SetNUMLINValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat := aValue; +end; + +function TRDX_LININVDataTableRules.GetCODARTValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVCODART].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetCODARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVFAMILIA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetBARRAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVBARRA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetBARRAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVTALLA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetMARCAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVMARCA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetMARCAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetTAMANOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVTAMANO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetTAMANOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetSERIEValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVSERIE].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetSERIEValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVCOLOR].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetMODELOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVMODELO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetMODELOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetDIBUJOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVDIBUJO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetDIBUJOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetDESCRIPValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVDESCRIP].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetDESCRIPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; +end; + + +{ TRDX_CABINVDataTableRules } +constructor TRDX_CABINVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CABINVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CABINVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetTIPODOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetTIPODOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetTIPOLIQValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetTIPOLIQValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHALIQValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHALIQValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; +end; + +function TRDX_CABINVDataTableRules.GetEMISORValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVEMISOR].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetEMISORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetRECEPTORValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetRECEPTORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetDPTOValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVDPTO].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetDPTOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVCENTRO].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHA_CARGAValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHA_CARGAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RDX_CANTINV, TRDX_CANTINVDataTableRules); + RegisterDataTableRules(RID_RDX_LININV, TRDX_LININVDataTableRules); + RegisterDataTableRules(RID_RDX_CABINV, TRDX_CABINVDataTableRules); + +end. diff --git a/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas b/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas new file mode 100644 index 0000000..5429a9a --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas @@ -0,0 +1,855 @@ +unit schEDIInventaryServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDIInventaryClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_CANTINVDelta = '{C803322D-5148-44E9-A06D-99D8B2E2781E}'; + RID_RDX_LININVDelta = '{59D21195-BB34-4A91-BD02-D48649A8F4B9}'; + RID_RDX_CABINVDelta = '{9A135F09-4540-4DAE-B701-2CDA92E0519B}'; + +type + { IRDX_CANTINVDelta } + IRDX_CANTINVDelta = interface(IRDX_CANTINV) + ['{C803322D-5148-44E9-A06D-99D8B2E2781E}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldNUMLINValue : Float; + function GetOldNUMCANTValue : Float; + function GetOldTIPOCANTValue : String; + function GetOldCANTIDADValue : Float; + function GetOldCENTROValue : String; + function GetOldTMOVValue : String; + function GetOldFACTValue : String; + function GetOldDEPTOValue : String; + function GetOldIDVENValue : String; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property OldNUMCANT : Float read GetOldNUMCANTValue; + property OldTIPOCANT : String read GetOldTIPOCANTValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldTMOV : String read GetOldTMOVValue; + property OldFACT : String read GetOldFACTValue; + property OldDEPTO : String read GetOldDEPTOValue; + property OldIDVEN : String read GetOldIDVENValue; + end; + + { TRDX_CANTINVBusinessProcessorRules } + TRDX_CANTINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CANTINV, IRDX_CANTINVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + function GetOldNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetNUMCANTValue: Float; virtual; + function GetOldNUMCANTValue: Float; virtual; + procedure SetNUMCANTValue(const aValue: Float); virtual; + function GetTIPOCANTValue: String; virtual; + function GetOldTIPOCANTValue: String; virtual; + procedure SetTIPOCANTValue(const aValue: String); virtual; + function GetCANTIDADValue: Float; virtual; + function GetOldCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetTMOVValue: String; virtual; + function GetOldTMOVValue: String; virtual; + procedure SetTMOVValue(const aValue: String); virtual; + function GetFACTValue: String; virtual; + function GetOldFACTValue: String; virtual; + procedure SetFACTValue(const aValue: String); virtual; + function GetDEPTOValue: String; virtual; + function GetOldDEPTOValue: String; virtual; + procedure SetDEPTOValue(const aValue: String); virtual; + function GetIDVENValue: String; virtual; + function GetOldIDVENValue: String; virtual; + procedure SetIDVENValue(const aValue: String); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property NUMCANT : Float read GetNUMCANTValue write SetNUMCANTValue; + property OldNUMCANT : Float read GetOldNUMCANTValue; + property TIPOCANT : String read GetTIPOCANTValue write SetTIPOCANTValue; + property OldTIPOCANT : String read GetOldTIPOCANTValue; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property TMOV : String read GetTMOVValue write SetTMOVValue; + property OldTMOV : String read GetOldTMOVValue; + property FACT : String read GetFACTValue write SetFACTValue; + property OldFACT : String read GetOldFACTValue; + property DEPTO : String read GetDEPTOValue write SetDEPTOValue; + property OldDEPTO : String read GetOldDEPTOValue; + property IDVEN : String read GetIDVENValue write SetIDVENValue; + property OldIDVEN : String read GetOldIDVENValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_LININVDelta } + IRDX_LININVDelta = interface(IRDX_LININV) + ['{59D21195-BB34-4A91-BD02-D48649A8F4B9}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldNUMLINValue : Float; + function GetOldCODARTValue : String; + function GetOldFAMILIAValue : String; + function GetOldBARRAValue : String; + function GetOldTALLAValue : String; + function GetOldMARCAValue : String; + function GetOldTAMANOValue : String; + function GetOldSERIEValue : String; + function GetOldCOLORValue : String; + function GetOldMODELOValue : String; + function GetOldDIBUJOValue : String; + function GetOldDESCRIPValue : String; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property OldCODART : String read GetOldCODARTValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldBARRA : String read GetOldBARRAValue; + property OldTALLA : String read GetOldTALLAValue; + property OldMARCA : String read GetOldMARCAValue; + property OldTAMANO : String read GetOldTAMANOValue; + property OldSERIE : String read GetOldSERIEValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldMODELO : String read GetOldMODELOValue; + property OldDIBUJO : String read GetOldDIBUJOValue; + property OldDESCRIP : String read GetOldDESCRIPValue; + end; + + { TRDX_LININVBusinessProcessorRules } + TRDX_LININVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LININV, IRDX_LININVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + function GetOldNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetCODARTValue: String; virtual; + function GetOldCODARTValue: String; virtual; + procedure SetCODARTValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + function GetOldFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetBARRAValue: String; virtual; + function GetOldBARRAValue: String; virtual; + procedure SetBARRAValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetMARCAValue: String; virtual; + function GetOldMARCAValue: String; virtual; + procedure SetMARCAValue(const aValue: String); virtual; + function GetTAMANOValue: String; virtual; + function GetOldTAMANOValue: String; virtual; + procedure SetTAMANOValue(const aValue: String); virtual; + function GetSERIEValue: String; virtual; + function GetOldSERIEValue: String; virtual; + procedure SetSERIEValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetMODELOValue: String; virtual; + function GetOldMODELOValue: String; virtual; + procedure SetMODELOValue(const aValue: String); virtual; + function GetDIBUJOValue: String; virtual; + function GetOldDIBUJOValue: String; virtual; + procedure SetDIBUJOValue(const aValue: String); virtual; + function GetDESCRIPValue: String; virtual; + function GetOldDESCRIPValue: String; virtual; + procedure SetDESCRIPValue(const aValue: String); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property CODART : String read GetCODARTValue write SetCODARTValue; + property OldCODART : String read GetOldCODARTValue; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property BARRA : String read GetBARRAValue write SetBARRAValue; + property OldBARRA : String read GetOldBARRAValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property MARCA : String read GetMARCAValue write SetMARCAValue; + property OldMARCA : String read GetOldMARCAValue; + property TAMANO : String read GetTAMANOValue write SetTAMANOValue; + property OldTAMANO : String read GetOldTAMANOValue; + property SERIE : String read GetSERIEValue write SetSERIEValue; + property OldSERIE : String read GetOldSERIEValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property MODELO : String read GetMODELOValue write SetMODELOValue; + property OldMODELO : String read GetOldMODELOValue; + property DIBUJO : String read GetDIBUJOValue write SetDIBUJOValue; + property OldDIBUJO : String read GetOldDIBUJOValue; + property DESCRIP : String read GetDESCRIPValue write SetDESCRIPValue; + property OldDESCRIP : String read GetOldDESCRIPValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_CABINVDelta } + IRDX_CABINVDelta = interface(IRDX_CABINV) + ['{9A135F09-4540-4DAE-B701-2CDA92E0519B}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldTIPODOCValue : String; + function GetOldTIPOLIQValue : String; + function GetOldFECHAValue : DateTime; + function GetOldFECHALIQValue : DateTime; + function GetOldEMISORValue : String; + function GetOldRECEPTORValue : String; + function GetOldDPTOValue : String; + function GetOldCENTROValue : String; + function GetOldFECHA_CARGAValue : DateTime; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldTIPODOC : String read GetOldTIPODOCValue; + property OldTIPOLIQ : String read GetOldTIPOLIQValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldFECHALIQ : DateTime read GetOldFECHALIQValue; + property OldEMISOR : String read GetOldEMISORValue; + property OldRECEPTOR : String read GetOldRECEPTORValue; + property OldDPTO : String read GetOldDPTOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; + end; + + { TRDX_CABINVBusinessProcessorRules } + TRDX_CABINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABINV, IRDX_CABINVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetTIPODOCValue: String; virtual; + function GetOldTIPODOCValue: String; virtual; + procedure SetTIPODOCValue(const aValue: String); virtual; + function GetTIPOLIQValue: String; virtual; + function GetOldTIPOLIQValue: String; virtual; + procedure SetTIPOLIQValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHALIQValue: DateTime; virtual; + function GetOldFECHALIQValue: DateTime; virtual; + procedure SetFECHALIQValue(const aValue: DateTime); virtual; + function GetEMISORValue: String; virtual; + function GetOldEMISORValue: String; virtual; + procedure SetEMISORValue(const aValue: String); virtual; + function GetRECEPTORValue: String; virtual; + function GetOldRECEPTORValue: String; virtual; + procedure SetRECEPTORValue(const aValue: String); virtual; + function GetDPTOValue: String; virtual; + function GetOldDPTOValue: String; virtual; + procedure SetDPTOValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetFECHA_CARGAValue: DateTime; virtual; + function GetOldFECHA_CARGAValue: DateTime; virtual; + procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property TIPODOC : String read GetTIPODOCValue write SetTIPODOCValue; + property OldTIPODOC : String read GetOldTIPODOCValue; + property TIPOLIQ : String read GetTIPOLIQValue write SetTIPOLIQValue; + property OldTIPOLIQ : String read GetOldTIPOLIQValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property FECHALIQ : DateTime read GetFECHALIQValue write SetFECHALIQValue; + property OldFECHALIQ : DateTime read GetOldFECHALIQValue; + property EMISOR : String read GetEMISORValue write SetEMISORValue; + property OldEMISOR : String read GetOldEMISORValue; + property RECEPTOR : String read GetRECEPTORValue write SetRECEPTORValue; + property OldRECEPTOR : String read GetOldRECEPTORValue; + property DPTO : String read GetDPTOValue write SetDPTOValue; + property OldDPTO : String read GetOldDPTOValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property FECHA_CARGA : DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TRDX_CANTINVBusinessProcessorRules } +constructor TRDX_CANTINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CANTINVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMDOC]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMLIN]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMCANTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMCANTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMCANT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMCANTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetTIPOCANTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldTIPOCANTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTIPOCANT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetTIPOCANTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCANTIDAD]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCENTRO]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetTMOVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldTMOVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTMOV]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetTMOVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetFACTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldFACTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVFACT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetFACTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetDEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldDEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVDEPTO]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetDEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetIDVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldIDVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVIDVEN]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetIDVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN] := aValue; +end; + + +{ TRDX_LININVBusinessProcessorRules } +constructor TRDX_LININVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_LININVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_LININVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMDOC]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMLIN]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetCODARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldCODARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCODART]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetCODARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVFAMILIA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVBARRA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetBARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTALLA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetMARCAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldMARCAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMARCA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetMARCAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetTAMANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldTAMANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTAMANO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetTAMANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetSERIEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldSERIEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVSERIE]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetSERIEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCOLOR]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetMODELOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldMODELOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMODELO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetMODELOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetDIBUJOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldDIBUJOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDIBUJO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetDIBUJOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetDESCRIPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldDESCRIPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDESCRIP]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetDESCRIPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP] := aValue; +end; + + +{ TRDX_CABINVBusinessProcessorRules } +constructor TRDX_CABINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CABINVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CABINVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVNUMDOC]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetTIPODOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldTIPODOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPODOC]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetTIPODOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetTIPOLIQValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldTIPOLIQValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPOLIQ]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetTIPOLIQValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHALIQValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHALIQValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHALIQ]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHALIQValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetEMISORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldEMISORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVEMISOR]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetEMISORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetRECEPTORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldRECEPTORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVRECEPTOR]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetRECEPTORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetDPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldDPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVDPTO]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetDPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVCENTRO]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHA_CARGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHA_CARGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA_CARGA]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHA_CARGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RDX_CANTINVDelta, TRDX_CANTINVBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_LININVDelta, TRDX_LININVBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_CABINVDelta, TRDX_CABINVBusinessProcessorRules); + +end. diff --git a/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas b/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas new file mode 100644 index 0000000..51c3f6e --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas @@ -0,0 +1,323 @@ +unit uBizEDIInventary; + +interface + +uses + uDAInterfaces, uDADataTable, Classes, + DB, Controls, schEDIInventaryClient_Intf; + +const + BIZ_INVRPT_CAB = 'BizInvRptCab'; + BIZ_INVRPT_LIN = 'BizInvRptLin'; + BIZ_INVRPT_CANT = 'BizInvRptCant'; + +type + IBizEDIInv_Cab = interface(IRDX_CABINV) + ['{95AB3EC1-B8CC-4DB0-8052-03D1D225AC69}'] + end; + + IBizEDIInv_Lin = interface(IRDX_LININV) + ['{171361CD-EC4F-479C-9E86-2D369DEC4EA9}'] + end; + + IBizEDIInv_Cant = interface(IRDX_CANTINV) + ['{A91F8700-BD74-475A-8677-B349BB79FC07}'] + end; + + TBizEDIInv_Cab = class(TRDX_CABINVDataTableRules, IBizEDIInv_Cab) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetTIPODOCValue(const aValue: String); override; + procedure SetTIPOLIQValue(const aValue: String); override; + procedure SetFECHAValue(const aValue: DateTime); override; + procedure SetFECHALIQValue(const aValue: DateTime); override; + procedure SetEMISORValue(const aValue: String); override; + procedure SetRECEPTORValue(const aValue: String); override; + procedure SetDPTOValue(const aValue: String); override; + procedure SetCENTROValue(const aValue: String); override; + end; + + TBizEDIInv_Lin = class(TRDX_LININVDataTableRules, IBizEDIInv_Lin) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetNUMLINValue(const aValue: Float); override; + procedure SetCODARTValue(const aValue: String); override; + procedure SetFAMILIAValue(const aValue: String); override; + procedure SetBARRAValue(const aValue: String); override; + procedure SetTALLAValue(const aValue: String); override; + procedure SetMARCAValue(const aValue: String); override; + procedure SetTAMANOValue(const aValue: String); override; + procedure SetSERIEValue(const aValue: String); override; + procedure SetCOLORValue(const aValue: String); override; + procedure SetMODELOValue(const aValue: String); override; + procedure SetDIBUJOValue(const aValue: String); override; + procedure SetDESCRIPValue(const aValue: String); override; + end; + + TBizEDIInv_Cant = class(TRDX_CANTINVDataTableRules, IBizEDIInv_Cant) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetNUMLINValue(const aValue: Float); override; + procedure SetNUMCANTValue(const aValue: Float); override; + procedure SetTIPOCANTValue(const aValue: String); override; + procedure SetCANTIDADValue(const aValue: Float); override; + procedure SetCENTROValue(const aValue: String); override; + procedure SetTMOVValue(const aValue: String); override; + procedure SetFACTValue(const aValue: String); override; + procedure SetDEPTOValue(const aValue: String); override; + procedure SetIDVENValue(const aValue: String); override; + end; + + +implementation + +uses + Variants; + +{ TBizEDIInv_Cab } + +procedure TBizEDIInv_Cab.SetCENTROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVCENTRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetDPTOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVDPTO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetEMISORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVEMISOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetFECHALIQValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; +end; + +procedure TBizEDIInv_Cab.SetFECHAValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABINVFECHA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; +end; + +procedure TBizEDIInv_Cab.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Cab.SetRECEPTORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetTIPODOCValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetTIPOLIQValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; +end; + +{ TBizEDIInv_Lin } + +procedure TBizEDIInv_Lin.SetBARRAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVBARRA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetCODARTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVCODART].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetCOLORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVCOLOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetDESCRIPValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVDESCRIP].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetDIBUJOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVDIBUJO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetFAMILIAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVFAMILIA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetMARCAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVMARCA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetMODELOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVMODELO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Lin.SetNUMLINValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Lin.SetSERIEValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVSERIE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetTALLAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVTALLA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetTAMANOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVTAMANO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; +end; + +{ TBizEDIInv_Cant } + +procedure TBizEDIInv_Cant.SetCANTIDADValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetCENTROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetDEPTOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetFACTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVFACT].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetIDVENValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetNUMCANTValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetNUMLINValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetTIPOCANTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetTMOVValue(const aValue: String); +begin + inherited; + +end; + +initialization + RegisterDataTableRules(BIZ_INVRPT_CAB, TBizEDIInv_Cab); + RegisterDataTableRules(BIZ_INVRPT_LIN, TBizEDIInv_Lin); + RegisterDataTableRules(BIZ_INVRPT_CANT, TBizEDIInv_Cant); + +finalization + +end. diff --git a/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp b/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm b/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm new file mode 100644 index 0000000..164e687 --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm @@ -0,0 +1,1061 @@ +object dmEDIInventary: TdmEDIInventary + OldCreateOrder = False + Height = 185 + Width = 396 + object schEDIInventary: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CANTINV' + SQL = + 'SELECT '#10' NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO,' + + ' '#10' TMOV, FACT, DEPTO, IDVEN'#10' FROM'#10' RDX_CANTINV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'NUMLIN' + TableField = 'NUMLIN' + end + item + DatasetField = 'NUMCANT' + TableField = 'NUMCANT' + end + item + DatasetField = 'TIPOCANT' + TableField = 'TIPOCANT' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'TMOV' + TableField = 'TMOV' + end + item + DatasetField = 'FACT' + TableField = 'FACT' + end + item + DatasetField = 'DEPTO' + TableField = 'DEPTO' + end + item + DatasetField = 'IDVEN' + TableField = 'IDVEN' + end> + end> + Name = 'RDX_CANTINV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCANT' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPOCANT' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TMOV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FACT' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DEPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IDVEN' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LININV' + SQL = + 'SELECT '#10' NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA' + + ', '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP'#10' FROM'#10' ' + + 'RDX_LININV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'NUMLIN' + TableField = 'NUMLIN' + end + item + DatasetField = 'CODART' + TableField = 'CODART' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'BARRA' + TableField = 'BARRA' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'MARCA' + TableField = 'MARCA' + end + item + DatasetField = 'TAMANO' + TableField = 'TAMANO' + end + item + DatasetField = 'SERIE' + TableField = 'SERIE' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'MODELO' + TableField = 'MODELO' + end + item + DatasetField = 'DIBUJO' + TableField = 'DIBUJO' + end + item + DatasetField = 'DESCRIP' + TableField = 'DESCRIP' + end> + end> + Name = 'RDX_LININV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TALLA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MARCA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TAMANO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SERIE' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MODELO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIBUJO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIP' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABINV' + SQL = + 'SELECT '#10' NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, '#10 + + ' RECEPTOR, DPTO, CENTRO, FECHA_CARGA'#10' FROM'#10' RDX_CABINV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'TIPODOC' + TableField = 'TIPODOC' + end + item + DatasetField = 'TIPOLIQ' + TableField = 'TIPOLIQ' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'FECHALIQ' + TableField = 'FECHALIQ' + end + item + DatasetField = 'EMISOR' + TableField = 'EMISOR' + end + item + DatasetField = 'RECEPTOR' + TableField = 'RECEPTOR' + end + item + DatasetField = 'DPTO' + TableField = 'DPTO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FECHA_CARGA' + TableField = 'FECHA_CARGA' + end> + end> + Name = 'RDX_CABINV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPODOC' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPOLIQ' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHALIQ' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMISOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECEPTOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_SET_ULTIMOINVENTARIO' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_SET_ULTIMOINVENTARIO' + end + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_CARGAR_INVENTARIOEDI' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_CARGAR_INVENTARIOEDI' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPODOC' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPOLIQ' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHALIQ' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMISOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECEPTOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABINV' + SQL = + 'INSERT'#10' INTO RDX_CABINV'#10' (NUMDOC, TIPODOC, TIPOLIQ, FECHA, F' + + 'ECHALIQ, EMISOR, '#10' RECEPTOR, DPTO, CENTRO, FECHA_CARGA)'#10' VA' + + 'LUES'#10' (:NUMDOC, :TIPODOC, :TIPOLIQ, :FECHA, :FECHALIQ, :EMISO' + + 'R, '#10' :RECEPTOR, :DPTO, :CENTRO, CURRENT_TIMESTAMP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CABINV' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAMILIA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TALLA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MARCA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TAMANO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SERIE' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MODELO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIBUJO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIP' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LININV' + SQL = + 'INSERT'#10' INTO RDX_LININV'#10' (NUMDOC, NUMLIN, CODART, FAMILIA, B' + + 'ARRA, TALLA, MARCA, '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, ' + + 'DESCRIP)'#10' VALUES'#10' (:NUMDOC, :NUMLIN, :CODART, :FAMILIA, :BAR' + + 'RA, :TALLA, '#10' :MARCA, :TAMANO, :SERIE, :COLOR, :MODELO, :DIB' + + 'UJO, '#10' :DESCRIP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_LININV' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCANT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPOCANT' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TMOV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FACT' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DEPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IDVEN' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CANTINV' + SQL = + 'INSERT'#10' INTO RDX_CANTINV'#10' (NUMDOC, NUMLIN, NUMCANT, TIPOCANT' + + ', CANTIDAD, CENTRO, '#10' TMOV, FACT, DEPTO, IDVEN)'#10' VALUES'#10' ' + + ' (:NUMDOC, :NUMLIN, :NUMCANT, :TIPOCANT, :CANTIDAD, :CENTRO, '#10' ' + + ' :TMOV, :FACT, :DEPTO, :IDVEN)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CANTINV' + end> + RelationShips = < + item + Name = 'FK_RDX_LININV_RDX_CABINV' + MasterDatasetName = 'RDX_CABINV' + MasterFields = 'NUMDOC' + DetailDatasetName = 'RDX_LININV' + DetailFields = 'NUMDOC' + RelationshipType = rtForeignKey + end + item + Name = 'FK_RDX_CANTINV_RDX_LININV' + MasterDatasetName = 'RDX_LININV' + MasterFields = 'NUMDOC;NUMLIN' + DetailDatasetName = 'RDX_CANTINV' + DetailFields = 'NUMDOC;NUMLIN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RDX_CABINV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_LININV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_CANTINV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CABINV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_LININV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CANTINV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CANTINV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_LININV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CABINV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 56 + Top = 16 + end +end diff --git a/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas b/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas new file mode 100644 index 0000000..e6b95a2 --- /dev/null +++ b/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas @@ -0,0 +1,318 @@ +unit uDataModuleEDI_Inventary; + +interface + +uses + SysUtils, Classes, JvComponentBase, JvLogFile, uDAClasses, + uDABusinessProcessor, uDAScriptingProvider, uDADataTable, uDACDSDataTable, + uDataModuleServer, uBizEDIInventary, EDI_Reader, EDI_Inventary_Impl, + EDI_INVRPT, uDAInterfaces; + +type + TdmEDIInventary = class(TDataModule) + schEDIInventary: TDASchema; + private + function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarLineas(const ALinData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarCantidades(const ACantData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + function GenerarInventarioEDI: Boolean; + function MarcarRegistrosUltimoInventarioEDI: Boolean; + public + function CargarFicheros(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; + end; + +var + dmEDIInventary: TdmEDIInventary; + +implementation + +uses + Controls, Forms, uDataTableUtils, DB, + Dialogs, Variants, schEDIInventaryClient_Intf, EDI_Utils, EDI_Log_Impl, + VARELA_Intf; + +{$R *.dfm} + +{ TdmEDIInventary } + +function TdmEDIInventary.CargarFicheros(const FicheroCAB, FicheroLIN, + FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; +var + Cab_Reader : TCABINV_Reader; + Lin_Reader : TLININV_Reader; + Cant_Reader : TCANTINV_Reader; + + NumRegNuevosCab : Integer; + NumRegNuevosLin : Integer; + NumRegNuevosCant : Integer; +begin + Result := True; + + Cab_Reader := TCABINV_Reader.Create; + try + Cab_Reader.Filename := FicheroCAB; + Cab_Reader.ReadFile; + Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); + finally + FreeAndNIL(Cab_Reader); + end; + + if Result then + begin + Lin_Reader := TLININV_Reader.Create; + try + Lin_Reader.Filename := FicheroLIN; + Lin_Reader.ReadFile; + Result := InsertarLineas (Lin_Reader.FileData, NumRegNuevosLin); + finally + FreeAndNIL(Lin_Reader); + end; + + if Result then + begin + Cant_Reader := TCANTINV_Reader.Create; + try + Cant_Reader.Filename := FicheroCANT; + Cant_Reader.ReadFile; + Result := InsertarCantidades(Cant_Reader.FileData, NumRegNuevosCant); + finally + Cant_Reader.Free; + end; + end; + end; + + if Result then + begin + NumRegNuevos := NumRegNuevosCant; + Result := GenerarInventarioEDI; + if Result then + Result := MarcarRegistrosUltimoInventarioEDI; + end; +end; + +function TdmEDIInventary.GenerarInventarioEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_CARGAR_INVENTARIOEDI'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (GenerarInventarioEDI)'); + end + end; +end; + +function TdmEDIInventary.InsertarCabecera(const ACabData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PCABINV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACabData.Count - 1 do + begin + Registro := ACabData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CABINV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('TIPODOC').AsString := Trim(Registro.TIPODOC); + ParamByName('TIPOLIQ').AsString := Trim(Registro.TIPOLIQ); + ParamByName('FECHA').AsDateTime := EDIDateToDateF(Trim(Registro.FECHA)); + ParamByName('FECHALIQ').AsDateTime := EDIDateToDateF(Trim(Registro.FECHALIQ)); + ParamByName('EMISOR').AsString := Trim(Registro.EMISOR); + ParamByName('RECEPTOR').AsString := Trim(Registro.RECEPTOR); + ParamByName('DPTO').AsString := Trim(Registro.DPTO); + ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCabecera INV)'); + end + end; + end; //for +end; + +function TdmEDIInventary.InsertarCantidades(const ACantData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PCANTINV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACantData.Count - 1 do + begin + Registro := ACantData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CANTINV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); + ParamByName('NUMCANT').AsInteger := StrToInt(Trim(Registro.NUMCANT)); + ParamByName('TIPOCANT').AsString := Trim(Registro.TIPOCANT); + ParamByName('CANTIDAD').AsFloat := StrToFloat(Trim(Registro.CANTIDAD)); + ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); + ParamByName('TMOV').AsString := Trim(Registro.TMOV); + ParamByName('FACT').AsString := Trim(Registro.FACT); + ParamByName('DEPTO').AsString := Trim(Registro.DEPTO); + ParamByName('IDVEN').AsString := Trim(Registro.IDVEN); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCantidades INV)'); + end + end; + end; //for +end; + +function TdmEDIInventary.InsertarLineas(const ALinData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PLININV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ALinData.Count - 1 do + begin + Registro := ALinData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_LININV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); + ParamByName('CODART').AsString := Trim(Registro.CODART); + ParamByName('FAMILIA').AsString := Trim(Registro.FAMILIA); + ParamByName('BARRA').AsString := Trim(Registro.BARRA); + ParamByName('TALLA').AsString := Trim(Registro.TALLA); + ParamByName('MARCA').AsString := Trim(Registro.MARCA); + ParamByName('TAMANO').AsString := Trim(Registro.TAMANO); + ParamByName('SERIE').AsString := Trim(Registro.SERIE); + ParamByName('COLOR').AsString := Trim(Registro.COLOR); + ParamByName('MODELO').AsString := Trim(Registro.MODELO); + ParamByName('DIBUJO').AsString := Trim(Registro.DIBUJO); + ParamByName('DESCRIP').AsString := Trim(Registro.DESCRIP); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarLineas INV)'); + end + end; + end; //for + Result := True; +end; + + +procedure TdmEDIInventary.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +function TdmEDIInventary.MarcarRegistrosUltimoInventarioEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_SET_ULTIMOINVENTARIO'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (MarcarRegistrosUltimoInventarioEDI)'); + end + end; +end; + +initialization + dmEDIInventary := TdmEDIInventary.Create(nil); + +finalization + FreeAndNil(dmEDIInventary); + +end. diff --git a/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm new file mode 100644 index 0000000..2638b6c --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm @@ -0,0 +1,17 @@ +object EDI_Sales: TEDI_Sales + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ConnectionName = 'GFT_VARELA' + ServiceSchema = dmEDISales.schEDISales + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object DABINAdapter: TDABINAdapter + Left = 64 + Top = 32 + end +end diff --git a/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas new file mode 100644 index 0000000..f7d8bc9 --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas @@ -0,0 +1,143 @@ +unit EDI_Sales_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, uDADataTable, + uDACDSDataTable, uDABusinessProcessor, uDABINAdapter, uDADataStreamer; + +type + { TEDI_Sales } + TEDI_Sales = class(TDARemoteService, IEDI_Sales) + DABINAdapter: TDABINAdapter; + private + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + protected + function CargarFicheroEDI(const FicheroCAB: String; + const FicheroLUG: String; const FicheroART: String; + out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDAInterfaces, + Dialogs, uDataModuleEDI_Sales, uDataModuleServer, + JclFileUtils, DateUtils, EDI_Log_Impl; + +procedure Create_EDI_Sales(out anInstance : IUnknown); +begin + anInstance := TEDI_Sales.Create(NIL); +end; + +{ EDI_Sales } +function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; + const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +var + ADirEntrada : String; + ADirTemp : String; + NumRegNuevos : Integer; + + procedure GuardarFicheros; + var + AAlmacen : String; + ADate : String; + begin + DateTimeToString(ADate, 'yyyymmddhhnn', Now); + AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); + AAlmacen := PathAddSeparator(AAlmacen + ADate); + if not DirectoryExists(AAlmacen) then + ForceDirectories(AAlmacen); + FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); + FileMove(ADirTemp + FicheroLUG, AAlmacen + FicheroLUG); + FileMove(ADirTemp + FicheroART, AAlmacen + FicheroART); + FileMove(ADirTemp + FicheroART, AAlmacen + 'CONVEN.TXT'); + DeleteDirectory(ADirTemp, False); + end; + +begin + Result := False; + NumRegNuevos := 0; + + // Hay que comprobar que existen los ficheros. + ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); + + if not FileExists(ADirEntrada + FicheroCAB) or + not FileExists(ADirEntrada + FicheroLUG) or + not FileExists(ADirEntrada + FicheroART) then + begin + MsgError := 'No hay ficheros de datos'; + InsertarLog(False, MsgError + ' (CargarFicheroEDI1 SLS)'); + end + else begin + + // Muevo los ficheros de carga a un directorio temporal + ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); + try + if not DirectoryExists(ADirTemp) then + ForceDirectories(ADirTemp); + FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); + FileMove(ADirEntrada + FicheroLUG, ADirTemp + FicheroLUG); + FileMove(ADirEntrada + FicheroART, ADirTemp + FicheroART); + FileMove(ADirEntrada + FicheroART, ADirTemp + 'CONVEN.TXT'); + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI2 SLS)'); + Exit; + end; + end; + + try + try + dmEDISales.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLUG, ADirTemp + FicheroART, NumRegNuevos); + if NumRegNuevos > 0 then + InsertarLog(True, Format('Se han cargado %d registros de ventas nuevos', [NumRegNuevos])) + else + InsertarLog(True, 'El fichero se ha cargado pero no hay registros de ventas nuevos'); + Result := True; + finally + GuardarFicheros; + dmServer.BorrarFicherosDeCargaAntiguos; + end; + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI3 SLS)'); + end; + end; + end; +end; + +procedure TEDI_Sales.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); + +finalization + +end. diff --git a/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas new file mode 100644 index 0000000..cb3a387 --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas @@ -0,0 +1,9 @@ +unit EDI_Sales_Types; + +interface + + + +implementation + +end. diff --git a/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas b/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas new file mode 100644 index 0000000..ccbf38c --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas @@ -0,0 +1,1948 @@ +unit schEDISalesClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_ARTVEN = '{D0532CCF-994D-4445-B3AC-544120B18841}'; + RID_RDX_CABVEN = '{9B9CC64F-37C7-4B46-BF30-02E8CB14ED5B}'; + RID_RDX_LUGVEN = '{8CBF6BF1-7E83-43F2-BC61-6F692B9137CC}'; + + { Data table names } + nme_RDX_ARTVEN = 'RDX_ARTVEN'; + nme_RDX_CABVEN = 'RDX_CABVEN'; + nme_RDX_LUGVEN = 'RDX_LUGVEN'; + + { RDX_ARTVEN fields } + fld_RDX_ARTVENCLAVE1 = 'CLAVE1'; + fld_RDX_ARTVENCLAVE2 = 'CLAVE2'; + fld_RDX_ARTVENCLAVE3 = 'CLAVE3'; + fld_RDX_ARTVENEANART = 'EANART'; + fld_RDX_ARTVENCODCOM = 'CODCOM'; + fld_RDX_ARTVENNUMVAR = 'NUMVAR'; + fld_RDX_ARTVENCODPRO = 'CODPRO'; + fld_RDX_ARTVENDESARTCO = 'DESARTCO'; + fld_RDX_ARTVENDESART = 'DESART'; + fld_RDX_ARTVENNUMCON = 'NUMCON'; + fld_RDX_ARTVENNUMLIS = 'NUMLIS'; + fld_RDX_ARTVENCONESP1 = 'CONESP1'; + fld_RDX_ARTVENCONESP2 = 'CONESP2'; + fld_RDX_ARTVENCONESP3 = 'CONESP3'; + fld_RDX_ARTVENVALVEN = 'VALVEN'; + fld_RDX_ARTVENPRENETCT = 'PRENETCT'; + fld_RDX_ARTVENPREBRUCT = 'PREBRUCT'; + fld_RDX_ARTVENPREINFET = 'PREINFET'; + fld_RDX_ARTVENPREINFFT = 'PREINFFT'; + fld_RDX_ARTVENPRECALCT = 'PRECALCT'; + fld_RDX_ARTVENPRENETCA = 'PRENETCA'; + fld_RDX_ARTVENPREBRUCA = 'PREBRUCA'; + fld_RDX_ARTVENPREINFEA = 'PREINFEA'; + fld_RDX_ARTVENPREINFFA = 'PREINFFA'; + fld_RDX_ARTVENPRECALCA = 'PRECALCA'; + fld_RDX_ARTVENBAPRUN1 = 'BAPRUN1'; + fld_RDX_ARTVENUNIMED1 = 'UNIMED1'; + fld_RDX_ARTVENBAPRUN2 = 'BAPRUN2'; + fld_RDX_ARTVENUNIMED2 = 'UNIMED2'; + fld_RDX_ARTVENBAPRUN3 = 'BAPRUN3'; + fld_RDX_ARTVENUNIMED3 = 'UNIMED3'; + fld_RDX_ARTVENBAPRUN4 = 'BAPRUN4'; + fld_RDX_ARTVENUNIMED4 = 'UNIMED4'; + fld_RDX_ARTVENBAPRUN5 = 'BAPRUN5'; + fld_RDX_ARTVENUNIMED5 = 'UNIMED5'; + fld_RDX_ARTVENCANVEN = 'CANVEN'; + fld_RDX_ARTVENEXIPRO = 'EXIPRO'; + fld_RDX_ARTVENDESEXI = 'DESEXI'; + fld_RDX_ARTVENESPMEDCV = 'ESPMEDCV'; + fld_RDX_ARTVENESPMEDEP = 'ESPMEDEP'; + fld_RDX_ARTVENESPMEDDE = 'ESPMEDDE'; + fld_RDX_ARTVENCANDEV = 'CANDEV'; + fld_RDX_ARTVENEANVEN = 'EANVEN'; + fld_RDX_ARTVENNOMVEN = 'NOMVEN'; + fld_RDX_ARTVENNUMTALON = 'NUMTALON'; + fld_RDX_ARTVENCANVENNET = 'CANVENNET'; + fld_RDX_ARTVENUMEDVENNET = 'UMEDVENNET'; + fld_RDX_ARTVENCANESP = 'CANESP'; + fld_RDX_ARTVENUMEDESP = 'UMEDESP'; + + { RDX_ARTVEN field indexes } + idx_RDX_ARTVENCLAVE1 = 0; + idx_RDX_ARTVENCLAVE2 = 1; + idx_RDX_ARTVENCLAVE3 = 2; + idx_RDX_ARTVENEANART = 3; + idx_RDX_ARTVENCODCOM = 4; + idx_RDX_ARTVENNUMVAR = 5; + idx_RDX_ARTVENCODPRO = 6; + idx_RDX_ARTVENDESARTCO = 7; + idx_RDX_ARTVENDESART = 8; + idx_RDX_ARTVENNUMCON = 9; + idx_RDX_ARTVENNUMLIS = 10; + idx_RDX_ARTVENCONESP1 = 11; + idx_RDX_ARTVENCONESP2 = 12; + idx_RDX_ARTVENCONESP3 = 13; + idx_RDX_ARTVENVALVEN = 14; + idx_RDX_ARTVENPRENETCT = 15; + idx_RDX_ARTVENPREBRUCT = 16; + idx_RDX_ARTVENPREINFET = 17; + idx_RDX_ARTVENPREINFFT = 18; + idx_RDX_ARTVENPRECALCT = 19; + idx_RDX_ARTVENPRENETCA = 20; + idx_RDX_ARTVENPREBRUCA = 21; + idx_RDX_ARTVENPREINFEA = 22; + idx_RDX_ARTVENPREINFFA = 23; + idx_RDX_ARTVENPRECALCA = 24; + idx_RDX_ARTVENBAPRUN1 = 25; + idx_RDX_ARTVENUNIMED1 = 26; + idx_RDX_ARTVENBAPRUN2 = 27; + idx_RDX_ARTVENUNIMED2 = 28; + idx_RDX_ARTVENBAPRUN3 = 29; + idx_RDX_ARTVENUNIMED3 = 30; + idx_RDX_ARTVENBAPRUN4 = 31; + idx_RDX_ARTVENUNIMED4 = 32; + idx_RDX_ARTVENBAPRUN5 = 33; + idx_RDX_ARTVENUNIMED5 = 34; + idx_RDX_ARTVENCANVEN = 35; + idx_RDX_ARTVENEXIPRO = 36; + idx_RDX_ARTVENDESEXI = 37; + idx_RDX_ARTVENESPMEDCV = 38; + idx_RDX_ARTVENESPMEDEP = 39; + idx_RDX_ARTVENESPMEDDE = 40; + idx_RDX_ARTVENCANDEV = 41; + idx_RDX_ARTVENEANVEN = 42; + idx_RDX_ARTVENNOMVEN = 43; + idx_RDX_ARTVENNUMTALON = 44; + idx_RDX_ARTVENCANVENNET = 45; + idx_RDX_ARTVENUMEDVENNET = 46; + idx_RDX_ARTVENCANESP = 47; + idx_RDX_ARTVENUMEDESP = 48; + + { RDX_CABVEN fields } + fld_RDX_CABVENCLAVE1 = 'CLAVE1'; + fld_RDX_CABVENNUMINF = 'NUMINF'; + fld_RDX_CABVENFUNCION = 'FUNCION'; + fld_RDX_CABVENFECINI = 'FECINI'; + fld_RDX_CABVENFECFIN = 'FECFIN'; + fld_RDX_CABVENFECINF = 'FECINF'; + fld_RDX_CABVENPERVENINI = 'PERVENINI'; + fld_RDX_CABVENPERVENFIN = 'PERVENFIN'; + fld_RDX_CABVENEANOFI = 'EANOFI'; + fld_RDX_CABVENEANEMI = 'EANEMI'; + fld_RDX_CABVENEANREC = 'EANREC'; + fld_RDX_CABVENEANVEN = 'EANVEN'; + fld_RDX_CABVENEANALM = 'EANALM'; + fld_RDX_CABVENEANREP = 'EANREP'; + fld_RDX_CABVENEANPRO = 'EANPRO'; + fld_RDX_CABVENEANADMSA = 'EANADMSA'; + fld_RDX_CABVENEANREPSR = 'EANREPSR'; + fld_RDX_CABVENADMVENSA = 'ADMVENSA'; + fld_RDX_CABVENREPDEPSR = 'REPDEPSR'; + fld_RDX_CABVENEMAILSA = 'EMAILSA'; + fld_RDX_CABVENNUMFAXSA = 'NUMFAXSA'; + fld_RDX_CABVENNUMTELSA = 'NUMTELSA'; + fld_RDX_CABVENNUMTLXSA = 'NUMTLXSA'; + fld_RDX_CABVENX400SA = 'X400SA'; + fld_RDX_CABVENEMAILSR = 'EMAILSR'; + fld_RDX_CABVENNUMFAXSR = 'NUMFAXSR'; + fld_RDX_CABVENNUMTELSR = 'NUMTELSR'; + fld_RDX_CABVENNUMTLXSR = 'NUMTLXSR'; + fld_RDX_CABVENX400SR = 'X400SR'; + fld_RDX_CABVENNUMPRE = 'NUMPRE'; + fld_RDX_CABVENNUMINFSC = 'NUMINFSC'; + fld_RDX_CABVENNUMCON = 'NUMCON'; + fld_RDX_CABVENFECPRE = 'FECPRE'; + fld_RDX_CABVENFECINFSC = 'FECINFSC'; + fld_RDX_CABVENFECCON = 'FECCON'; + fld_RDX_CABVENDIVPED = 'DIVPED'; + fld_RDX_CABVENDIVPRE = 'DIVPRE'; + fld_RDX_CABVENDIVPAG = 'DIVPAG'; + fld_RDX_CABVENDIVPEDF = 'DIVPEDF'; + fld_RDX_CABVENDIVPREF = 'DIVPREF'; + fld_RDX_CABVENDIVPAGF = 'DIVPAGF'; + fld_RDX_CABVENTASCAM = 'TASCAM'; + fld_RDX_CABVENFECTAS = 'FECTAS'; + + { RDX_CABVEN field indexes } + idx_RDX_CABVENCLAVE1 = 0; + idx_RDX_CABVENNUMINF = 1; + idx_RDX_CABVENFUNCION = 2; + idx_RDX_CABVENFECINI = 3; + idx_RDX_CABVENFECFIN = 4; + idx_RDX_CABVENFECINF = 5; + idx_RDX_CABVENPERVENINI = 6; + idx_RDX_CABVENPERVENFIN = 7; + idx_RDX_CABVENEANOFI = 8; + idx_RDX_CABVENEANEMI = 9; + idx_RDX_CABVENEANREC = 10; + idx_RDX_CABVENEANVEN = 11; + idx_RDX_CABVENEANALM = 12; + idx_RDX_CABVENEANREP = 13; + idx_RDX_CABVENEANPRO = 14; + idx_RDX_CABVENEANADMSA = 15; + idx_RDX_CABVENEANREPSR = 16; + idx_RDX_CABVENADMVENSA = 17; + idx_RDX_CABVENREPDEPSR = 18; + idx_RDX_CABVENEMAILSA = 19; + idx_RDX_CABVENNUMFAXSA = 20; + idx_RDX_CABVENNUMTELSA = 21; + idx_RDX_CABVENNUMTLXSA = 22; + idx_RDX_CABVENX400SA = 23; + idx_RDX_CABVENEMAILSR = 24; + idx_RDX_CABVENNUMFAXSR = 25; + idx_RDX_CABVENNUMTELSR = 26; + idx_RDX_CABVENNUMTLXSR = 27; + idx_RDX_CABVENX400SR = 28; + idx_RDX_CABVENNUMPRE = 29; + idx_RDX_CABVENNUMINFSC = 30; + idx_RDX_CABVENNUMCON = 31; + idx_RDX_CABVENFECPRE = 32; + idx_RDX_CABVENFECINFSC = 33; + idx_RDX_CABVENFECCON = 34; + idx_RDX_CABVENDIVPED = 35; + idx_RDX_CABVENDIVPRE = 36; + idx_RDX_CABVENDIVPAG = 37; + idx_RDX_CABVENDIVPEDF = 38; + idx_RDX_CABVENDIVPREF = 39; + idx_RDX_CABVENDIVPAGF = 40; + idx_RDX_CABVENTASCAM = 41; + idx_RDX_CABVENFECTAS = 42; + + { RDX_LUGVEN fields } + fld_RDX_LUGVENCLAVE1 = 'CLAVE1'; + fld_RDX_LUGVENCLAVE2 = 'CLAVE2'; + fld_RDX_LUGVENEANLUG = 'EANLUG'; + fld_RDX_LUGVENLUGVEN = 'LUGVEN'; + fld_RDX_LUGVENFECINI = 'FECINI'; + fld_RDX_LUGVENFECFIN = 'FECFIN'; + fld_RDX_LUGVENPERVENINI = 'PERVENINI'; + fld_RDX_LUGVENPERVENFIN = 'PERVENFIN'; + + { RDX_LUGVEN field indexes } + idx_RDX_LUGVENCLAVE1 = 0; + idx_RDX_LUGVENCLAVE2 = 1; + idx_RDX_LUGVENEANLUG = 2; + idx_RDX_LUGVENLUGVEN = 3; + idx_RDX_LUGVENFECINI = 4; + idx_RDX_LUGVENFECFIN = 5; + idx_RDX_LUGVENPERVENINI = 6; + idx_RDX_LUGVENPERVENFIN = 7; + +type + { IRDX_ARTVEN } + IRDX_ARTVEN = interface(IDAStronglyTypedDataTable) + ['{9EC1A018-B12C-49B8-A8D7-852A5453C9B0}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Float; + procedure SetCLAVE2Value(const aValue: Float); + function GetCLAVE3Value: Float; + procedure SetCLAVE3Value(const aValue: Float); + function GetEANARTValue: String; + procedure SetEANARTValue(const aValue: String); + function GetCODCOMValue: String; + procedure SetCODCOMValue(const aValue: String); + function GetNUMVARValue: String; + procedure SetNUMVARValue(const aValue: String); + function GetCODPROValue: String; + procedure SetCODPROValue(const aValue: String); + function GetDESARTCOValue: String; + procedure SetDESARTCOValue(const aValue: String); + function GetDESARTValue: String; + procedure SetDESARTValue(const aValue: String); + function GetNUMCONValue: String; + procedure SetNUMCONValue(const aValue: String); + function GetNUMLISValue: String; + procedure SetNUMLISValue(const aValue: String); + function GetCONESP1Value: String; + procedure SetCONESP1Value(const aValue: String); + function GetCONESP2Value: String; + procedure SetCONESP2Value(const aValue: String); + function GetCONESP3Value: String; + procedure SetCONESP3Value(const aValue: String); + function GetVALVENValue: Float; + procedure SetVALVENValue(const aValue: Float); + function GetPRENETCTValue: Float; + procedure SetPRENETCTValue(const aValue: Float); + function GetPREBRUCTValue: Float; + procedure SetPREBRUCTValue(const aValue: Float); + function GetPREINFETValue: Float; + procedure SetPREINFETValue(const aValue: Float); + function GetPREINFFTValue: Float; + procedure SetPREINFFTValue(const aValue: Float); + function GetPRECALCTValue: Float; + procedure SetPRECALCTValue(const aValue: Float); + function GetPRENETCAValue: Float; + procedure SetPRENETCAValue(const aValue: Float); + function GetPREBRUCAValue: Float; + procedure SetPREBRUCAValue(const aValue: Float); + function GetPREINFEAValue: Float; + procedure SetPREINFEAValue(const aValue: Float); + function GetPREINFFAValue: Float; + procedure SetPREINFFAValue(const aValue: Float); + function GetPRECALCAValue: Float; + procedure SetPRECALCAValue(const aValue: Float); + function GetBAPRUN1Value: Float; + procedure SetBAPRUN1Value(const aValue: Float); + function GetUNIMED1Value: String; + procedure SetUNIMED1Value(const aValue: String); + function GetBAPRUN2Value: Float; + procedure SetBAPRUN2Value(const aValue: Float); + function GetUNIMED2Value: String; + procedure SetUNIMED2Value(const aValue: String); + function GetBAPRUN3Value: Float; + procedure SetBAPRUN3Value(const aValue: Float); + function GetUNIMED3Value: String; + procedure SetUNIMED3Value(const aValue: String); + function GetBAPRUN4Value: Float; + procedure SetBAPRUN4Value(const aValue: Float); + function GetUNIMED4Value: String; + procedure SetUNIMED4Value(const aValue: String); + function GetBAPRUN5Value: Float; + procedure SetBAPRUN5Value(const aValue: Float); + function GetUNIMED5Value: String; + procedure SetUNIMED5Value(const aValue: String); + function GetCANVENValue: Float; + procedure SetCANVENValue(const aValue: Float); + function GetEXIPROValue: Float; + procedure SetEXIPROValue(const aValue: Float); + function GetDESEXIValue: Float; + procedure SetDESEXIValue(const aValue: Float); + function GetESPMEDCVValue: String; + procedure SetESPMEDCVValue(const aValue: String); + function GetESPMEDEPValue: String; + procedure SetESPMEDEPValue(const aValue: String); + function GetESPMEDDEValue: String; + procedure SetESPMEDDEValue(const aValue: String); + function GetCANDEVValue: Float; + procedure SetCANDEVValue(const aValue: Float); + function GetEANVENValue: String; + procedure SetEANVENValue(const aValue: String); + function GetNOMVENValue: String; + procedure SetNOMVENValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCANVENNETValue: Float; + procedure SetCANVENNETValue(const aValue: Float); + function GetUMEDVENNETValue: String; + procedure SetUMEDVENNETValue(const aValue: String); + function GetCANESPValue: Float; + procedure SetCANESPValue(const aValue: Float); + function GetUMEDESPValue: String; + procedure SetUMEDESPValue(const aValue: String); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; + property EANART: String read GetEANARTValue write SetEANARTValue; + property CODCOM: String read GetCODCOMValue write SetCODCOMValue; + property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; + property CODPRO: String read GetCODPROValue write SetCODPROValue; + property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; + property DESART: String read GetDESARTValue write SetDESARTValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; + property CONESP1: String read GetCONESP1Value write SetCONESP1Value; + property CONESP2: String read GetCONESP2Value write SetCONESP2Value; + property CONESP3: String read GetCONESP3Value write SetCONESP3Value; + property VALVEN: Float read GetVALVENValue write SetVALVENValue; + property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; + property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; + property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; + property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; + property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; + property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; + property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; + property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; + property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; + property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; + property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; + property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; + property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; + property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; + property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; + property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; + property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; + property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; + property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; + property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; + property CANVEN: Float read GetCANVENValue write SetCANVENValue; + property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; + property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; + property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; + property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; + property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; + property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; + property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property CANESP: Float read GetCANESPValue write SetCANESPValue; + property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; + end; + + { TRDX_ARTVENDataTableRules } + TRDX_ARTVENDataTableRules = class(TDADataTableRules, IRDX_ARTVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Float; virtual; + procedure SetCLAVE2Value(const aValue: Float); virtual; + function GetCLAVE3Value: Float; virtual; + procedure SetCLAVE3Value(const aValue: Float); virtual; + function GetEANARTValue: String; virtual; + procedure SetEANARTValue(const aValue: String); virtual; + function GetCODCOMValue: String; virtual; + procedure SetCODCOMValue(const aValue: String); virtual; + function GetNUMVARValue: String; virtual; + procedure SetNUMVARValue(const aValue: String); virtual; + function GetCODPROValue: String; virtual; + procedure SetCODPROValue(const aValue: String); virtual; + function GetDESARTCOValue: String; virtual; + procedure SetDESARTCOValue(const aValue: String); virtual; + function GetDESARTValue: String; virtual; + procedure SetDESARTValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetNUMLISValue: String; virtual; + procedure SetNUMLISValue(const aValue: String); virtual; + function GetCONESP1Value: String; virtual; + procedure SetCONESP1Value(const aValue: String); virtual; + function GetCONESP2Value: String; virtual; + procedure SetCONESP2Value(const aValue: String); virtual; + function GetCONESP3Value: String; virtual; + procedure SetCONESP3Value(const aValue: String); virtual; + function GetVALVENValue: Float; virtual; + procedure SetVALVENValue(const aValue: Float); virtual; + function GetPRENETCTValue: Float; virtual; + procedure SetPRENETCTValue(const aValue: Float); virtual; + function GetPREBRUCTValue: Float; virtual; + procedure SetPREBRUCTValue(const aValue: Float); virtual; + function GetPREINFETValue: Float; virtual; + procedure SetPREINFETValue(const aValue: Float); virtual; + function GetPREINFFTValue: Float; virtual; + procedure SetPREINFFTValue(const aValue: Float); virtual; + function GetPRECALCTValue: Float; virtual; + procedure SetPRECALCTValue(const aValue: Float); virtual; + function GetPRENETCAValue: Float; virtual; + procedure SetPRENETCAValue(const aValue: Float); virtual; + function GetPREBRUCAValue: Float; virtual; + procedure SetPREBRUCAValue(const aValue: Float); virtual; + function GetPREINFEAValue: Float; virtual; + procedure SetPREINFEAValue(const aValue: Float); virtual; + function GetPREINFFAValue: Float; virtual; + procedure SetPREINFFAValue(const aValue: Float); virtual; + function GetPRECALCAValue: Float; virtual; + procedure SetPRECALCAValue(const aValue: Float); virtual; + function GetBAPRUN1Value: Float; virtual; + procedure SetBAPRUN1Value(const aValue: Float); virtual; + function GetUNIMED1Value: String; virtual; + procedure SetUNIMED1Value(const aValue: String); virtual; + function GetBAPRUN2Value: Float; virtual; + procedure SetBAPRUN2Value(const aValue: Float); virtual; + function GetUNIMED2Value: String; virtual; + procedure SetUNIMED2Value(const aValue: String); virtual; + function GetBAPRUN3Value: Float; virtual; + procedure SetBAPRUN3Value(const aValue: Float); virtual; + function GetUNIMED3Value: String; virtual; + procedure SetUNIMED3Value(const aValue: String); virtual; + function GetBAPRUN4Value: Float; virtual; + procedure SetBAPRUN4Value(const aValue: Float); virtual; + function GetUNIMED4Value: String; virtual; + procedure SetUNIMED4Value(const aValue: String); virtual; + function GetBAPRUN5Value: Float; virtual; + procedure SetBAPRUN5Value(const aValue: Float); virtual; + function GetUNIMED5Value: String; virtual; + procedure SetUNIMED5Value(const aValue: String); virtual; + function GetCANVENValue: Float; virtual; + procedure SetCANVENValue(const aValue: Float); virtual; + function GetEXIPROValue: Float; virtual; + procedure SetEXIPROValue(const aValue: Float); virtual; + function GetDESEXIValue: Float; virtual; + procedure SetDESEXIValue(const aValue: Float); virtual; + function GetESPMEDCVValue: String; virtual; + procedure SetESPMEDCVValue(const aValue: String); virtual; + function GetESPMEDEPValue: String; virtual; + procedure SetESPMEDEPValue(const aValue: String); virtual; + function GetESPMEDDEValue: String; virtual; + procedure SetESPMEDDEValue(const aValue: String); virtual; + function GetCANDEVValue: Float; virtual; + procedure SetCANDEVValue(const aValue: Float); virtual; + function GetEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetNOMVENValue: String; virtual; + procedure SetNOMVENValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANVENNETValue: Float; virtual; + procedure SetCANVENNETValue(const aValue: Float); virtual; + function GetUMEDVENNETValue: String; virtual; + procedure SetUMEDVENNETValue(const aValue: String); virtual; + function GetCANESPValue: Float; virtual; + procedure SetCANESPValue(const aValue: Float); virtual; + function GetUMEDESPValue: String; virtual; + procedure SetUMEDESPValue(const aValue: String); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; + property EANART: String read GetEANARTValue write SetEANARTValue; + property CODCOM: String read GetCODCOMValue write SetCODCOMValue; + property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; + property CODPRO: String read GetCODPROValue write SetCODPROValue; + property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; + property DESART: String read GetDESARTValue write SetDESARTValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; + property CONESP1: String read GetCONESP1Value write SetCONESP1Value; + property CONESP2: String read GetCONESP2Value write SetCONESP2Value; + property CONESP3: String read GetCONESP3Value write SetCONESP3Value; + property VALVEN: Float read GetVALVENValue write SetVALVENValue; + property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; + property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; + property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; + property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; + property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; + property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; + property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; + property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; + property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; + property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; + property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; + property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; + property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; + property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; + property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; + property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; + property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; + property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; + property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; + property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; + property CANVEN: Float read GetCANVENValue write SetCANVENValue; + property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; + property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; + property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; + property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; + property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; + property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; + property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property CANESP: Float read GetCANESPValue write SetCANESPValue; + property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_CABVEN } + IRDX_CABVEN = interface(IDAStronglyTypedDataTable) + ['{5180F5AB-5BAF-4C8C-80F8-498D0D1252B5}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetFUNCIONValue: String; + procedure SetFUNCIONValue(const aValue: String); + function GetFECINIValue: DateTime; + procedure SetFECINIValue(const aValue: DateTime); + function GetFECFINValue: DateTime; + procedure SetFECFINValue(const aValue: DateTime); + function GetFECINFValue: DateTime; + procedure SetFECINFValue(const aValue: DateTime); + function GetPERVENINIValue: DateTime; + procedure SetPERVENINIValue(const aValue: DateTime); + function GetPERVENFINValue: DateTime; + procedure SetPERVENFINValue(const aValue: DateTime); + function GetEANOFIValue: String; + procedure SetEANOFIValue(const aValue: String); + function GetEANEMIValue: String; + procedure SetEANEMIValue(const aValue: String); + function GetEANRECValue: String; + procedure SetEANRECValue(const aValue: String); + function GetEANVENValue: String; + procedure SetEANVENValue(const aValue: String); + function GetEANALMValue: String; + procedure SetEANALMValue(const aValue: String); + function GetEANREPValue: String; + procedure SetEANREPValue(const aValue: String); + function GetEANPROValue: String; + procedure SetEANPROValue(const aValue: String); + function GetEANADMSAValue: String; + procedure SetEANADMSAValue(const aValue: String); + function GetEANREPSRValue: String; + procedure SetEANREPSRValue(const aValue: String); + function GetADMVENSAValue: String; + procedure SetADMVENSAValue(const aValue: String); + function GetREPDEPSRValue: String; + procedure SetREPDEPSRValue(const aValue: String); + function GetEMAILSAValue: String; + procedure SetEMAILSAValue(const aValue: String); + function GetNUMFAXSAValue: String; + procedure SetNUMFAXSAValue(const aValue: String); + function GetNUMTELSAValue: String; + procedure SetNUMTELSAValue(const aValue: String); + function GetNUMTLXSAValue: String; + procedure SetNUMTLXSAValue(const aValue: String); + function GetX400SAValue: String; + procedure SetX400SAValue(const aValue: String); + function GetEMAILSRValue: String; + procedure SetEMAILSRValue(const aValue: String); + function GetNUMFAXSRValue: String; + procedure SetNUMFAXSRValue(const aValue: String); + function GetNUMTELSRValue: String; + procedure SetNUMTELSRValue(const aValue: String); + function GetNUMTLXSRValue: String; + procedure SetNUMTLXSRValue(const aValue: String); + function GetX400SRValue: String; + procedure SetX400SRValue(const aValue: String); + function GetNUMPREValue: String; + procedure SetNUMPREValue(const aValue: String); + function GetNUMINFSCValue: String; + procedure SetNUMINFSCValue(const aValue: String); + function GetNUMCONValue: String; + procedure SetNUMCONValue(const aValue: String); + function GetFECPREValue: DateTime; + procedure SetFECPREValue(const aValue: DateTime); + function GetFECINFSCValue: DateTime; + procedure SetFECINFSCValue(const aValue: DateTime); + function GetFECCONValue: DateTime; + procedure SetFECCONValue(const aValue: DateTime); + function GetDIVPEDValue: String; + procedure SetDIVPEDValue(const aValue: String); + function GetDIVPREValue: String; + procedure SetDIVPREValue(const aValue: String); + function GetDIVPAGValue: String; + procedure SetDIVPAGValue(const aValue: String); + function GetDIVPEDFValue: String; + procedure SetDIVPEDFValue(const aValue: String); + function GetDIVPREFValue: String; + procedure SetDIVPREFValue(const aValue: String); + function GetDIVPAGFValue: String; + procedure SetDIVPAGFValue(const aValue: String); + function GetTASCAMValue: Float; + procedure SetTASCAMValue(const aValue: Float); + function GetFECTASValue: DateTime; + procedure SetFECTASValue(const aValue: DateTime); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property FECINF: DateTime read GetFECINFValue write SetFECINFValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + property EANOFI: String read GetEANOFIValue write SetEANOFIValue; + property EANEMI: String read GetEANEMIValue write SetEANEMIValue; + property EANREC: String read GetEANRECValue write SetEANRECValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property EANALM: String read GetEANALMValue write SetEANALMValue; + property EANREP: String read GetEANREPValue write SetEANREPValue; + property EANPRO: String read GetEANPROValue write SetEANPROValue; + property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; + property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; + property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; + property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; + property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; + property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; + property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property X400SA: String read GetX400SAValue write SetX400SAValue; + property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; + property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; + property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property X400SR: String read GetX400SRValue write SetX400SRValue; + property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; + property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; + property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; + property FECCON: DateTime read GetFECCONValue write SetFECCONValue; + property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; + property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; + property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; + property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; + property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; + property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; + property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; + property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; + end; + + { TRDX_CABVENDataTableRules } + TRDX_CABVENDataTableRules = class(TDADataTableRules, IRDX_CABVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetFUNCIONValue: String; virtual; + procedure SetFUNCIONValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetFECINFValue: DateTime; virtual; + procedure SetFECINFValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + function GetEANOFIValue: String; virtual; + procedure SetEANOFIValue(const aValue: String); virtual; + function GetEANEMIValue: String; virtual; + procedure SetEANEMIValue(const aValue: String); virtual; + function GetEANRECValue: String; virtual; + procedure SetEANRECValue(const aValue: String); virtual; + function GetEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetEANALMValue: String; virtual; + procedure SetEANALMValue(const aValue: String); virtual; + function GetEANREPValue: String; virtual; + procedure SetEANREPValue(const aValue: String); virtual; + function GetEANPROValue: String; virtual; + procedure SetEANPROValue(const aValue: String); virtual; + function GetEANADMSAValue: String; virtual; + procedure SetEANADMSAValue(const aValue: String); virtual; + function GetEANREPSRValue: String; virtual; + procedure SetEANREPSRValue(const aValue: String); virtual; + function GetADMVENSAValue: String; virtual; + procedure SetADMVENSAValue(const aValue: String); virtual; + function GetREPDEPSRValue: String; virtual; + procedure SetREPDEPSRValue(const aValue: String); virtual; + function GetEMAILSAValue: String; virtual; + procedure SetEMAILSAValue(const aValue: String); virtual; + function GetNUMFAXSAValue: String; virtual; + procedure SetNUMFAXSAValue(const aValue: String); virtual; + function GetNUMTELSAValue: String; virtual; + procedure SetNUMTELSAValue(const aValue: String); virtual; + function GetNUMTLXSAValue: String; virtual; + procedure SetNUMTLXSAValue(const aValue: String); virtual; + function GetX400SAValue: String; virtual; + procedure SetX400SAValue(const aValue: String); virtual; + function GetEMAILSRValue: String; virtual; + procedure SetEMAILSRValue(const aValue: String); virtual; + function GetNUMFAXSRValue: String; virtual; + procedure SetNUMFAXSRValue(const aValue: String); virtual; + function GetNUMTELSRValue: String; virtual; + procedure SetNUMTELSRValue(const aValue: String); virtual; + function GetNUMTLXSRValue: String; virtual; + procedure SetNUMTLXSRValue(const aValue: String); virtual; + function GetX400SRValue: String; virtual; + procedure SetX400SRValue(const aValue: String); virtual; + function GetNUMPREValue: String; virtual; + procedure SetNUMPREValue(const aValue: String); virtual; + function GetNUMINFSCValue: String; virtual; + procedure SetNUMINFSCValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetFECPREValue: DateTime; virtual; + procedure SetFECPREValue(const aValue: DateTime); virtual; + function GetFECINFSCValue: DateTime; virtual; + procedure SetFECINFSCValue(const aValue: DateTime); virtual; + function GetFECCONValue: DateTime; virtual; + procedure SetFECCONValue(const aValue: DateTime); virtual; + function GetDIVPEDValue: String; virtual; + procedure SetDIVPEDValue(const aValue: String); virtual; + function GetDIVPREValue: String; virtual; + procedure SetDIVPREValue(const aValue: String); virtual; + function GetDIVPAGValue: String; virtual; + procedure SetDIVPAGValue(const aValue: String); virtual; + function GetDIVPEDFValue: String; virtual; + procedure SetDIVPEDFValue(const aValue: String); virtual; + function GetDIVPREFValue: String; virtual; + procedure SetDIVPREFValue(const aValue: String); virtual; + function GetDIVPAGFValue: String; virtual; + procedure SetDIVPAGFValue(const aValue: String); virtual; + function GetTASCAMValue: Float; virtual; + procedure SetTASCAMValue(const aValue: Float); virtual; + function GetFECTASValue: DateTime; virtual; + procedure SetFECTASValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property FECINF: DateTime read GetFECINFValue write SetFECINFValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + property EANOFI: String read GetEANOFIValue write SetEANOFIValue; + property EANEMI: String read GetEANEMIValue write SetEANEMIValue; + property EANREC: String read GetEANRECValue write SetEANRECValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property EANALM: String read GetEANALMValue write SetEANALMValue; + property EANREP: String read GetEANREPValue write SetEANREPValue; + property EANPRO: String read GetEANPROValue write SetEANPROValue; + property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; + property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; + property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; + property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; + property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; + property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; + property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property X400SA: String read GetX400SAValue write SetX400SAValue; + property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; + property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; + property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property X400SR: String read GetX400SRValue write SetX400SRValue; + property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; + property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; + property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; + property FECCON: DateTime read GetFECCONValue write SetFECCONValue; + property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; + property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; + property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; + property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; + property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; + property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; + property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; + property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_LUGVEN } + IRDX_LUGVEN = interface(IDAStronglyTypedDataTable) + ['{1F9C102A-BE07-4CEC-BBE3-7B062C9F8618}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetEANLUGValue: String; + procedure SetEANLUGValue(const aValue: String); + function GetLUGVENValue: String; + procedure SetLUGVENValue(const aValue: String); + function GetFECINIValue: DateTime; + procedure SetFECINIValue(const aValue: DateTime); + function GetFECFINValue: DateTime; + procedure SetFECFINValue(const aValue: DateTime); + function GetPERVENINIValue: DateTime; + procedure SetPERVENINIValue(const aValue: DateTime); + function GetPERVENFINValue: DateTime; + procedure SetPERVENFINValue(const aValue: DateTime); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property EANLUG: String read GetEANLUGValue write SetEANLUGValue; + property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + end; + + { TRDX_LUGVENDataTableRules } + TRDX_LUGVENDataTableRules = class(TDADataTableRules, IRDX_LUGVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetEANLUGValue: String; virtual; + procedure SetEANLUGValue(const aValue: String); virtual; + function GetLUGVENValue: String; virtual; + procedure SetLUGVENValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property EANLUG: String read GetEANLUGValue write SetEANLUGValue; + property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TRDX_ARTVENDataTableRules } +constructor TRDX_ARTVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_ARTVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE2Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE2Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE3Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE3Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEANARTValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENEANART].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetEANARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENEANART].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCODCOMValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCODCOMValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMVARValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMVARValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCODPROValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCODPROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESARTCOValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESARTCOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESARTValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESART].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENDESART].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMCONValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMCONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMLISValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMLISValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP1Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP1Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP2Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP2Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP3Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP3Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetVALVENValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetVALVENValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRENETCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRENETCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREBRUCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREBRUCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFETValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFETValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFFTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFFTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRECALCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRECALCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRENETCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRENETCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREBRUCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREBRUCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFEAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFEAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFFAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFFAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRECALCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRECALCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN1Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED1Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED1Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN2Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN2Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED2Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED2Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN3Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN3Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED3Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED3Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN4Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN4Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED4Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED4Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN5Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN5Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED5Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED5Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANVENValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANVENValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEXIPROValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetEXIPROValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESEXIValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESEXIValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDCVValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDCVValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDEPValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDEPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDDEValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDDEValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANDEVValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANDEVValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEANVENValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetEANVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNOMVENValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNOMVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANVENNETValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANVENNETValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUMEDVENNETValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUMEDVENNETValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANESPValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANESPValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUMEDESPValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUMEDESPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString := aValue; +end; + + +{ TRDX_CABVENDataTableRules } +constructor TRDX_CABVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CABVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CABVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat; +end; + +procedure TRDX_CABVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMINF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFUNCIONValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENFUNCION].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetFUNCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINFValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINFValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetPERVENINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetPERVENFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANOFIValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANOFI].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANOFIValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANEMIValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANEMI].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANEMIValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANRECValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREC].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANRECValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANVENValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANVEN].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANALMValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANALM].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANALMValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANREPValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREP].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANREPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANPROValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANPRO].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANPROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANADMSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANADMSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANREPSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANREPSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetADMVENSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetADMVENSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetREPDEPSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetREPDEPSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEMAILSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEMAILSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMFAXSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMFAXSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTELSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTELSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTLXSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTLXSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetX400SAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENX400SA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetX400SAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEMAILSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEMAILSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMFAXSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMFAXSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTELSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTELSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTLXSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTLXSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetX400SRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENX400SR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetX400SRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMPREValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMPREValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMINFSCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMINFSCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMCONValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMCON].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMCONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECPREValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECPREValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINFSCValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINFSCValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECCONValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECCONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPEDValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPED].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPEDValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPREValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPREValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPAGValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPAGValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPEDFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPEDFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPREFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPREFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPAGFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPAGFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetTASCAMValue: Float; +begin + result := DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat; +end; + +procedure TRDX_CABVENDataTableRules.SetTASCAMValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECTASValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECTASValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; +end; + + +{ TRDX_LUGVENDataTableRules } +constructor TRDX_LUGVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_LUGVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_LUGVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat; +end; + +procedure TRDX_LUGVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger; +end; + +procedure TRDX_LUGVENDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetEANLUGValue: String; +begin + result := DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString; +end; + +procedure TRDX_LUGVENDataTableRules.SetEANLUGValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetLUGVENValue: String; +begin + result := DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString; +end; + +procedure TRDX_LUGVENDataTableRules.SetLUGVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetFECINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetFECINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetFECFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetFECFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetPERVENINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetPERVENFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RDX_ARTVEN, TRDX_ARTVENDataTableRules); + RegisterDataTableRules(RID_RDX_CABVEN, TRDX_CABVENDataTableRules); + RegisterDataTableRules(RID_RDX_LUGVEN, TRDX_LUGVENDataTableRules); + +end. diff --git a/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas b/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas new file mode 100644 index 0000000..8c11867 --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas @@ -0,0 +1,2329 @@ +unit schEDISalesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDISalesClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_ARTVENDelta = '{DBADAFB4-396F-45CF-969C-0E310CE772EF}'; + RID_RDX_CABVENDelta = '{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'; + RID_RDX_LUGVENDelta = '{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'; + +type + { IRDX_ARTVENDelta } + IRDX_ARTVENDelta = interface(IRDX_ARTVEN) + ['{DBADAFB4-396F-45CF-969C-0E310CE772EF}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Float; + function GetOldCLAVE3Value : Float; + function GetOldEANARTValue : String; + function GetOldCODCOMValue : String; + function GetOldNUMVARValue : String; + function GetOldCODPROValue : String; + function GetOldDESARTCOValue : String; + function GetOldDESARTValue : String; + function GetOldNUMCONValue : String; + function GetOldNUMLISValue : String; + function GetOldCONESP1Value : String; + function GetOldCONESP2Value : String; + function GetOldCONESP3Value : String; + function GetOldVALVENValue : Float; + function GetOldPRENETCTValue : Float; + function GetOldPREBRUCTValue : Float; + function GetOldPREINFETValue : Float; + function GetOldPREINFFTValue : Float; + function GetOldPRECALCTValue : Float; + function GetOldPRENETCAValue : Float; + function GetOldPREBRUCAValue : Float; + function GetOldPREINFEAValue : Float; + function GetOldPREINFFAValue : Float; + function GetOldPRECALCAValue : Float; + function GetOldBAPRUN1Value : Float; + function GetOldUNIMED1Value : String; + function GetOldBAPRUN2Value : Float; + function GetOldUNIMED2Value : String; + function GetOldBAPRUN3Value : Float; + function GetOldUNIMED3Value : String; + function GetOldBAPRUN4Value : Float; + function GetOldUNIMED4Value : String; + function GetOldBAPRUN5Value : Float; + function GetOldUNIMED5Value : String; + function GetOldCANVENValue : Float; + function GetOldEXIPROValue : Float; + function GetOldDESEXIValue : Float; + function GetOldESPMEDCVValue : String; + function GetOldESPMEDEPValue : String; + function GetOldESPMEDDEValue : String; + function GetOldCANDEVValue : Float; + function GetOldEANVENValue : String; + function GetOldNOMVENValue : String; + function GetOldNUMTALONValue : String; + function GetOldCANVENNETValue : Float; + function GetOldUMEDVENNETValue : String; + function GetOldCANESPValue : Float; + function GetOldUMEDESPValue : String; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Float read GetOldCLAVE2Value; + property OldCLAVE3 : Float read GetOldCLAVE3Value; + property OldEANART : String read GetOldEANARTValue; + property OldCODCOM : String read GetOldCODCOMValue; + property OldNUMVAR : String read GetOldNUMVARValue; + property OldCODPRO : String read GetOldCODPROValue; + property OldDESARTCO : String read GetOldDESARTCOValue; + property OldDESART : String read GetOldDESARTValue; + property OldNUMCON : String read GetOldNUMCONValue; + property OldNUMLIS : String read GetOldNUMLISValue; + property OldCONESP1 : String read GetOldCONESP1Value; + property OldCONESP2 : String read GetOldCONESP2Value; + property OldCONESP3 : String read GetOldCONESP3Value; + property OldVALVEN : Float read GetOldVALVENValue; + property OldPRENETCT : Float read GetOldPRENETCTValue; + property OldPREBRUCT : Float read GetOldPREBRUCTValue; + property OldPREINFET : Float read GetOldPREINFETValue; + property OldPREINFFT : Float read GetOldPREINFFTValue; + property OldPRECALCT : Float read GetOldPRECALCTValue; + property OldPRENETCA : Float read GetOldPRENETCAValue; + property OldPREBRUCA : Float read GetOldPREBRUCAValue; + property OldPREINFEA : Float read GetOldPREINFEAValue; + property OldPREINFFA : Float read GetOldPREINFFAValue; + property OldPRECALCA : Float read GetOldPRECALCAValue; + property OldBAPRUN1 : Float read GetOldBAPRUN1Value; + property OldUNIMED1 : String read GetOldUNIMED1Value; + property OldBAPRUN2 : Float read GetOldBAPRUN2Value; + property OldUNIMED2 : String read GetOldUNIMED2Value; + property OldBAPRUN3 : Float read GetOldBAPRUN3Value; + property OldUNIMED3 : String read GetOldUNIMED3Value; + property OldBAPRUN4 : Float read GetOldBAPRUN4Value; + property OldUNIMED4 : String read GetOldUNIMED4Value; + property OldBAPRUN5 : Float read GetOldBAPRUN5Value; + property OldUNIMED5 : String read GetOldUNIMED5Value; + property OldCANVEN : Float read GetOldCANVENValue; + property OldEXIPRO : Float read GetOldEXIPROValue; + property OldDESEXI : Float read GetOldDESEXIValue; + property OldESPMEDCV : String read GetOldESPMEDCVValue; + property OldESPMEDEP : String read GetOldESPMEDEPValue; + property OldESPMEDDE : String read GetOldESPMEDDEValue; + property OldCANDEV : Float read GetOldCANDEVValue; + property OldEANVEN : String read GetOldEANVENValue; + property OldNOMVEN : String read GetOldNOMVENValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCANVENNET : Float read GetOldCANVENNETValue; + property OldUMEDVENNET : String read GetOldUMEDVENNETValue; + property OldCANESP : Float read GetOldCANESPValue; + property OldUMEDESP : String read GetOldUMEDESPValue; + end; + + { TRDX_ARTVENBusinessProcessorRules } + TRDX_ARTVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_ARTVEN, IRDX_ARTVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Float; virtual; + function GetOldCLAVE2Value: Float; virtual; + procedure SetCLAVE2Value(const aValue: Float); virtual; + function GetCLAVE3Value: Float; virtual; + function GetOldCLAVE3Value: Float; virtual; + procedure SetCLAVE3Value(const aValue: Float); virtual; + function GetEANARTValue: String; virtual; + function GetOldEANARTValue: String; virtual; + procedure SetEANARTValue(const aValue: String); virtual; + function GetCODCOMValue: String; virtual; + function GetOldCODCOMValue: String; virtual; + procedure SetCODCOMValue(const aValue: String); virtual; + function GetNUMVARValue: String; virtual; + function GetOldNUMVARValue: String; virtual; + procedure SetNUMVARValue(const aValue: String); virtual; + function GetCODPROValue: String; virtual; + function GetOldCODPROValue: String; virtual; + procedure SetCODPROValue(const aValue: String); virtual; + function GetDESARTCOValue: String; virtual; + function GetOldDESARTCOValue: String; virtual; + procedure SetDESARTCOValue(const aValue: String); virtual; + function GetDESARTValue: String; virtual; + function GetOldDESARTValue: String; virtual; + procedure SetDESARTValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + function GetOldNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetNUMLISValue: String; virtual; + function GetOldNUMLISValue: String; virtual; + procedure SetNUMLISValue(const aValue: String); virtual; + function GetCONESP1Value: String; virtual; + function GetOldCONESP1Value: String; virtual; + procedure SetCONESP1Value(const aValue: String); virtual; + function GetCONESP2Value: String; virtual; + function GetOldCONESP2Value: String; virtual; + procedure SetCONESP2Value(const aValue: String); virtual; + function GetCONESP3Value: String; virtual; + function GetOldCONESP3Value: String; virtual; + procedure SetCONESP3Value(const aValue: String); virtual; + function GetVALVENValue: Float; virtual; + function GetOldVALVENValue: Float; virtual; + procedure SetVALVENValue(const aValue: Float); virtual; + function GetPRENETCTValue: Float; virtual; + function GetOldPRENETCTValue: Float; virtual; + procedure SetPRENETCTValue(const aValue: Float); virtual; + function GetPREBRUCTValue: Float; virtual; + function GetOldPREBRUCTValue: Float; virtual; + procedure SetPREBRUCTValue(const aValue: Float); virtual; + function GetPREINFETValue: Float; virtual; + function GetOldPREINFETValue: Float; virtual; + procedure SetPREINFETValue(const aValue: Float); virtual; + function GetPREINFFTValue: Float; virtual; + function GetOldPREINFFTValue: Float; virtual; + procedure SetPREINFFTValue(const aValue: Float); virtual; + function GetPRECALCTValue: Float; virtual; + function GetOldPRECALCTValue: Float; virtual; + procedure SetPRECALCTValue(const aValue: Float); virtual; + function GetPRENETCAValue: Float; virtual; + function GetOldPRENETCAValue: Float; virtual; + procedure SetPRENETCAValue(const aValue: Float); virtual; + function GetPREBRUCAValue: Float; virtual; + function GetOldPREBRUCAValue: Float; virtual; + procedure SetPREBRUCAValue(const aValue: Float); virtual; + function GetPREINFEAValue: Float; virtual; + function GetOldPREINFEAValue: Float; virtual; + procedure SetPREINFEAValue(const aValue: Float); virtual; + function GetPREINFFAValue: Float; virtual; + function GetOldPREINFFAValue: Float; virtual; + procedure SetPREINFFAValue(const aValue: Float); virtual; + function GetPRECALCAValue: Float; virtual; + function GetOldPRECALCAValue: Float; virtual; + procedure SetPRECALCAValue(const aValue: Float); virtual; + function GetBAPRUN1Value: Float; virtual; + function GetOldBAPRUN1Value: Float; virtual; + procedure SetBAPRUN1Value(const aValue: Float); virtual; + function GetUNIMED1Value: String; virtual; + function GetOldUNIMED1Value: String; virtual; + procedure SetUNIMED1Value(const aValue: String); virtual; + function GetBAPRUN2Value: Float; virtual; + function GetOldBAPRUN2Value: Float; virtual; + procedure SetBAPRUN2Value(const aValue: Float); virtual; + function GetUNIMED2Value: String; virtual; + function GetOldUNIMED2Value: String; virtual; + procedure SetUNIMED2Value(const aValue: String); virtual; + function GetBAPRUN3Value: Float; virtual; + function GetOldBAPRUN3Value: Float; virtual; + procedure SetBAPRUN3Value(const aValue: Float); virtual; + function GetUNIMED3Value: String; virtual; + function GetOldUNIMED3Value: String; virtual; + procedure SetUNIMED3Value(const aValue: String); virtual; + function GetBAPRUN4Value: Float; virtual; + function GetOldBAPRUN4Value: Float; virtual; + procedure SetBAPRUN4Value(const aValue: Float); virtual; + function GetUNIMED4Value: String; virtual; + function GetOldUNIMED4Value: String; virtual; + procedure SetUNIMED4Value(const aValue: String); virtual; + function GetBAPRUN5Value: Float; virtual; + function GetOldBAPRUN5Value: Float; virtual; + procedure SetBAPRUN5Value(const aValue: Float); virtual; + function GetUNIMED5Value: String; virtual; + function GetOldUNIMED5Value: String; virtual; + procedure SetUNIMED5Value(const aValue: String); virtual; + function GetCANVENValue: Float; virtual; + function GetOldCANVENValue: Float; virtual; + procedure SetCANVENValue(const aValue: Float); virtual; + function GetEXIPROValue: Float; virtual; + function GetOldEXIPROValue: Float; virtual; + procedure SetEXIPROValue(const aValue: Float); virtual; + function GetDESEXIValue: Float; virtual; + function GetOldDESEXIValue: Float; virtual; + procedure SetDESEXIValue(const aValue: Float); virtual; + function GetESPMEDCVValue: String; virtual; + function GetOldESPMEDCVValue: String; virtual; + procedure SetESPMEDCVValue(const aValue: String); virtual; + function GetESPMEDEPValue: String; virtual; + function GetOldESPMEDEPValue: String; virtual; + procedure SetESPMEDEPValue(const aValue: String); virtual; + function GetESPMEDDEValue: String; virtual; + function GetOldESPMEDDEValue: String; virtual; + procedure SetESPMEDDEValue(const aValue: String); virtual; + function GetCANDEVValue: Float; virtual; + function GetOldCANDEVValue: Float; virtual; + procedure SetCANDEVValue(const aValue: Float); virtual; + function GetEANVENValue: String; virtual; + function GetOldEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetNOMVENValue: String; virtual; + function GetOldNOMVENValue: String; virtual; + procedure SetNOMVENValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANVENNETValue: Float; virtual; + function GetOldCANVENNETValue: Float; virtual; + procedure SetCANVENNETValue(const aValue: Float); virtual; + function GetUMEDVENNETValue: String; virtual; + function GetOldUMEDVENNETValue: String; virtual; + procedure SetUMEDVENNETValue(const aValue: String); virtual; + function GetCANESPValue: Float; virtual; + function GetOldCANESPValue: Float; virtual; + procedure SetCANESPValue(const aValue: Float); virtual; + function GetUMEDESPValue: String; virtual; + function GetOldUMEDESPValue: String; virtual; + procedure SetUMEDESPValue(const aValue: String); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Float read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Float read GetOldCLAVE2Value; + property CLAVE3 : Float read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Float read GetOldCLAVE3Value; + property EANART : String read GetEANARTValue write SetEANARTValue; + property OldEANART : String read GetOldEANARTValue; + property CODCOM : String read GetCODCOMValue write SetCODCOMValue; + property OldCODCOM : String read GetOldCODCOMValue; + property NUMVAR : String read GetNUMVARValue write SetNUMVARValue; + property OldNUMVAR : String read GetOldNUMVARValue; + property CODPRO : String read GetCODPROValue write SetCODPROValue; + property OldCODPRO : String read GetOldCODPROValue; + property DESARTCO : String read GetDESARTCOValue write SetDESARTCOValue; + property OldDESARTCO : String read GetOldDESARTCOValue; + property DESART : String read GetDESARTValue write SetDESARTValue; + property OldDESART : String read GetOldDESARTValue; + property NUMCON : String read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : String read GetOldNUMCONValue; + property NUMLIS : String read GetNUMLISValue write SetNUMLISValue; + property OldNUMLIS : String read GetOldNUMLISValue; + property CONESP1 : String read GetCONESP1Value write SetCONESP1Value; + property OldCONESP1 : String read GetOldCONESP1Value; + property CONESP2 : String read GetCONESP2Value write SetCONESP2Value; + property OldCONESP2 : String read GetOldCONESP2Value; + property CONESP3 : String read GetCONESP3Value write SetCONESP3Value; + property OldCONESP3 : String read GetOldCONESP3Value; + property VALVEN : Float read GetVALVENValue write SetVALVENValue; + property OldVALVEN : Float read GetOldVALVENValue; + property PRENETCT : Float read GetPRENETCTValue write SetPRENETCTValue; + property OldPRENETCT : Float read GetOldPRENETCTValue; + property PREBRUCT : Float read GetPREBRUCTValue write SetPREBRUCTValue; + property OldPREBRUCT : Float read GetOldPREBRUCTValue; + property PREINFET : Float read GetPREINFETValue write SetPREINFETValue; + property OldPREINFET : Float read GetOldPREINFETValue; + property PREINFFT : Float read GetPREINFFTValue write SetPREINFFTValue; + property OldPREINFFT : Float read GetOldPREINFFTValue; + property PRECALCT : Float read GetPRECALCTValue write SetPRECALCTValue; + property OldPRECALCT : Float read GetOldPRECALCTValue; + property PRENETCA : Float read GetPRENETCAValue write SetPRENETCAValue; + property OldPRENETCA : Float read GetOldPRENETCAValue; + property PREBRUCA : Float read GetPREBRUCAValue write SetPREBRUCAValue; + property OldPREBRUCA : Float read GetOldPREBRUCAValue; + property PREINFEA : Float read GetPREINFEAValue write SetPREINFEAValue; + property OldPREINFEA : Float read GetOldPREINFEAValue; + property PREINFFA : Float read GetPREINFFAValue write SetPREINFFAValue; + property OldPREINFFA : Float read GetOldPREINFFAValue; + property PRECALCA : Float read GetPRECALCAValue write SetPRECALCAValue; + property OldPRECALCA : Float read GetOldPRECALCAValue; + property BAPRUN1 : Float read GetBAPRUN1Value write SetBAPRUN1Value; + property OldBAPRUN1 : Float read GetOldBAPRUN1Value; + property UNIMED1 : String read GetUNIMED1Value write SetUNIMED1Value; + property OldUNIMED1 : String read GetOldUNIMED1Value; + property BAPRUN2 : Float read GetBAPRUN2Value write SetBAPRUN2Value; + property OldBAPRUN2 : Float read GetOldBAPRUN2Value; + property UNIMED2 : String read GetUNIMED2Value write SetUNIMED2Value; + property OldUNIMED2 : String read GetOldUNIMED2Value; + property BAPRUN3 : Float read GetBAPRUN3Value write SetBAPRUN3Value; + property OldBAPRUN3 : Float read GetOldBAPRUN3Value; + property UNIMED3 : String read GetUNIMED3Value write SetUNIMED3Value; + property OldUNIMED3 : String read GetOldUNIMED3Value; + property BAPRUN4 : Float read GetBAPRUN4Value write SetBAPRUN4Value; + property OldBAPRUN4 : Float read GetOldBAPRUN4Value; + property UNIMED4 : String read GetUNIMED4Value write SetUNIMED4Value; + property OldUNIMED4 : String read GetOldUNIMED4Value; + property BAPRUN5 : Float read GetBAPRUN5Value write SetBAPRUN5Value; + property OldBAPRUN5 : Float read GetOldBAPRUN5Value; + property UNIMED5 : String read GetUNIMED5Value write SetUNIMED5Value; + property OldUNIMED5 : String read GetOldUNIMED5Value; + property CANVEN : Float read GetCANVENValue write SetCANVENValue; + property OldCANVEN : Float read GetOldCANVENValue; + property EXIPRO : Float read GetEXIPROValue write SetEXIPROValue; + property OldEXIPRO : Float read GetOldEXIPROValue; + property DESEXI : Float read GetDESEXIValue write SetDESEXIValue; + property OldDESEXI : Float read GetOldDESEXIValue; + property ESPMEDCV : String read GetESPMEDCVValue write SetESPMEDCVValue; + property OldESPMEDCV : String read GetOldESPMEDCVValue; + property ESPMEDEP : String read GetESPMEDEPValue write SetESPMEDEPValue; + property OldESPMEDEP : String read GetOldESPMEDEPValue; + property ESPMEDDE : String read GetESPMEDDEValue write SetESPMEDDEValue; + property OldESPMEDDE : String read GetOldESPMEDDEValue; + property CANDEV : Float read GetCANDEVValue write SetCANDEVValue; + property OldCANDEV : Float read GetOldCANDEVValue; + property EANVEN : String read GetEANVENValue write SetEANVENValue; + property OldEANVEN : String read GetOldEANVENValue; + property NOMVEN : String read GetNOMVENValue write SetNOMVENValue; + property OldNOMVEN : String read GetOldNOMVENValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CANVENNET : Float read GetCANVENNETValue write SetCANVENNETValue; + property OldCANVENNET : Float read GetOldCANVENNETValue; + property UMEDVENNET : String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property OldUMEDVENNET : String read GetOldUMEDVENNETValue; + property CANESP : Float read GetCANESPValue write SetCANESPValue; + property OldCANESP : Float read GetOldCANESPValue; + property UMEDESP : String read GetUMEDESPValue write SetUMEDESPValue; + property OldUMEDESP : String read GetOldUMEDESPValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_CABVENDelta } + IRDX_CABVENDelta = interface(IRDX_CABVEN) + ['{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldNUMINFValue : String; + function GetOldFUNCIONValue : String; + function GetOldFECINIValue : DateTime; + function GetOldFECFINValue : DateTime; + function GetOldFECINFValue : DateTime; + function GetOldPERVENINIValue : DateTime; + function GetOldPERVENFINValue : DateTime; + function GetOldEANOFIValue : String; + function GetOldEANEMIValue : String; + function GetOldEANRECValue : String; + function GetOldEANVENValue : String; + function GetOldEANALMValue : String; + function GetOldEANREPValue : String; + function GetOldEANPROValue : String; + function GetOldEANADMSAValue : String; + function GetOldEANREPSRValue : String; + function GetOldADMVENSAValue : String; + function GetOldREPDEPSRValue : String; + function GetOldEMAILSAValue : String; + function GetOldNUMFAXSAValue : String; + function GetOldNUMTELSAValue : String; + function GetOldNUMTLXSAValue : String; + function GetOldX400SAValue : String; + function GetOldEMAILSRValue : String; + function GetOldNUMFAXSRValue : String; + function GetOldNUMTELSRValue : String; + function GetOldNUMTLXSRValue : String; + function GetOldX400SRValue : String; + function GetOldNUMPREValue : String; + function GetOldNUMINFSCValue : String; + function GetOldNUMCONValue : String; + function GetOldFECPREValue : DateTime; + function GetOldFECINFSCValue : DateTime; + function GetOldFECCONValue : DateTime; + function GetOldDIVPEDValue : String; + function GetOldDIVPREValue : String; + function GetOldDIVPAGValue : String; + function GetOldDIVPEDFValue : String; + function GetOldDIVPREFValue : String; + function GetOldDIVPAGFValue : String; + function GetOldTASCAMValue : Float; + function GetOldFECTASValue : DateTime; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldNUMINF : String read GetOldNUMINFValue; + property OldFUNCION : String read GetOldFUNCIONValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property OldFECINF : DateTime read GetOldFECINFValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + property OldEANOFI : String read GetOldEANOFIValue; + property OldEANEMI : String read GetOldEANEMIValue; + property OldEANREC : String read GetOldEANRECValue; + property OldEANVEN : String read GetOldEANVENValue; + property OldEANALM : String read GetOldEANALMValue; + property OldEANREP : String read GetOldEANREPValue; + property OldEANPRO : String read GetOldEANPROValue; + property OldEANADMSA : String read GetOldEANADMSAValue; + property OldEANREPSR : String read GetOldEANREPSRValue; + property OldADMVENSA : String read GetOldADMVENSAValue; + property OldREPDEPSR : String read GetOldREPDEPSRValue; + property OldEMAILSA : String read GetOldEMAILSAValue; + property OldNUMFAXSA : String read GetOldNUMFAXSAValue; + property OldNUMTELSA : String read GetOldNUMTELSAValue; + property OldNUMTLXSA : String read GetOldNUMTLXSAValue; + property OldX400SA : String read GetOldX400SAValue; + property OldEMAILSR : String read GetOldEMAILSRValue; + property OldNUMFAXSR : String read GetOldNUMFAXSRValue; + property OldNUMTELSR : String read GetOldNUMTELSRValue; + property OldNUMTLXSR : String read GetOldNUMTLXSRValue; + property OldX400SR : String read GetOldX400SRValue; + property OldNUMPRE : String read GetOldNUMPREValue; + property OldNUMINFSC : String read GetOldNUMINFSCValue; + property OldNUMCON : String read GetOldNUMCONValue; + property OldFECPRE : DateTime read GetOldFECPREValue; + property OldFECINFSC : DateTime read GetOldFECINFSCValue; + property OldFECCON : DateTime read GetOldFECCONValue; + property OldDIVPED : String read GetOldDIVPEDValue; + property OldDIVPRE : String read GetOldDIVPREValue; + property OldDIVPAG : String read GetOldDIVPAGValue; + property OldDIVPEDF : String read GetOldDIVPEDFValue; + property OldDIVPREF : String read GetOldDIVPREFValue; + property OldDIVPAGF : String read GetOldDIVPAGFValue; + property OldTASCAM : Float read GetOldTASCAMValue; + property OldFECTAS : DateTime read GetOldFECTASValue; + end; + + { TRDX_CABVENBusinessProcessorRules } + TRDX_CABVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABVEN, IRDX_CABVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetFUNCIONValue: String; virtual; + function GetOldFUNCIONValue: String; virtual; + procedure SetFUNCIONValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + function GetOldFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + function GetOldFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetFECINFValue: DateTime; virtual; + function GetOldFECINFValue: DateTime; virtual; + procedure SetFECINFValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + function GetOldPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + function GetOldPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + function GetEANOFIValue: String; virtual; + function GetOldEANOFIValue: String; virtual; + procedure SetEANOFIValue(const aValue: String); virtual; + function GetEANEMIValue: String; virtual; + function GetOldEANEMIValue: String; virtual; + procedure SetEANEMIValue(const aValue: String); virtual; + function GetEANRECValue: String; virtual; + function GetOldEANRECValue: String; virtual; + procedure SetEANRECValue(const aValue: String); virtual; + function GetEANVENValue: String; virtual; + function GetOldEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetEANALMValue: String; virtual; + function GetOldEANALMValue: String; virtual; + procedure SetEANALMValue(const aValue: String); virtual; + function GetEANREPValue: String; virtual; + function GetOldEANREPValue: String; virtual; + procedure SetEANREPValue(const aValue: String); virtual; + function GetEANPROValue: String; virtual; + function GetOldEANPROValue: String; virtual; + procedure SetEANPROValue(const aValue: String); virtual; + function GetEANADMSAValue: String; virtual; + function GetOldEANADMSAValue: String; virtual; + procedure SetEANADMSAValue(const aValue: String); virtual; + function GetEANREPSRValue: String; virtual; + function GetOldEANREPSRValue: String; virtual; + procedure SetEANREPSRValue(const aValue: String); virtual; + function GetADMVENSAValue: String; virtual; + function GetOldADMVENSAValue: String; virtual; + procedure SetADMVENSAValue(const aValue: String); virtual; + function GetREPDEPSRValue: String; virtual; + function GetOldREPDEPSRValue: String; virtual; + procedure SetREPDEPSRValue(const aValue: String); virtual; + function GetEMAILSAValue: String; virtual; + function GetOldEMAILSAValue: String; virtual; + procedure SetEMAILSAValue(const aValue: String); virtual; + function GetNUMFAXSAValue: String; virtual; + function GetOldNUMFAXSAValue: String; virtual; + procedure SetNUMFAXSAValue(const aValue: String); virtual; + function GetNUMTELSAValue: String; virtual; + function GetOldNUMTELSAValue: String; virtual; + procedure SetNUMTELSAValue(const aValue: String); virtual; + function GetNUMTLXSAValue: String; virtual; + function GetOldNUMTLXSAValue: String; virtual; + procedure SetNUMTLXSAValue(const aValue: String); virtual; + function GetX400SAValue: String; virtual; + function GetOldX400SAValue: String; virtual; + procedure SetX400SAValue(const aValue: String); virtual; + function GetEMAILSRValue: String; virtual; + function GetOldEMAILSRValue: String; virtual; + procedure SetEMAILSRValue(const aValue: String); virtual; + function GetNUMFAXSRValue: String; virtual; + function GetOldNUMFAXSRValue: String; virtual; + procedure SetNUMFAXSRValue(const aValue: String); virtual; + function GetNUMTELSRValue: String; virtual; + function GetOldNUMTELSRValue: String; virtual; + procedure SetNUMTELSRValue(const aValue: String); virtual; + function GetNUMTLXSRValue: String; virtual; + function GetOldNUMTLXSRValue: String; virtual; + procedure SetNUMTLXSRValue(const aValue: String); virtual; + function GetX400SRValue: String; virtual; + function GetOldX400SRValue: String; virtual; + procedure SetX400SRValue(const aValue: String); virtual; + function GetNUMPREValue: String; virtual; + function GetOldNUMPREValue: String; virtual; + procedure SetNUMPREValue(const aValue: String); virtual; + function GetNUMINFSCValue: String; virtual; + function GetOldNUMINFSCValue: String; virtual; + procedure SetNUMINFSCValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + function GetOldNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetFECPREValue: DateTime; virtual; + function GetOldFECPREValue: DateTime; virtual; + procedure SetFECPREValue(const aValue: DateTime); virtual; + function GetFECINFSCValue: DateTime; virtual; + function GetOldFECINFSCValue: DateTime; virtual; + procedure SetFECINFSCValue(const aValue: DateTime); virtual; + function GetFECCONValue: DateTime; virtual; + function GetOldFECCONValue: DateTime; virtual; + procedure SetFECCONValue(const aValue: DateTime); virtual; + function GetDIVPEDValue: String; virtual; + function GetOldDIVPEDValue: String; virtual; + procedure SetDIVPEDValue(const aValue: String); virtual; + function GetDIVPREValue: String; virtual; + function GetOldDIVPREValue: String; virtual; + procedure SetDIVPREValue(const aValue: String); virtual; + function GetDIVPAGValue: String; virtual; + function GetOldDIVPAGValue: String; virtual; + procedure SetDIVPAGValue(const aValue: String); virtual; + function GetDIVPEDFValue: String; virtual; + function GetOldDIVPEDFValue: String; virtual; + procedure SetDIVPEDFValue(const aValue: String); virtual; + function GetDIVPREFValue: String; virtual; + function GetOldDIVPREFValue: String; virtual; + procedure SetDIVPREFValue(const aValue: String); virtual; + function GetDIVPAGFValue: String; virtual; + function GetOldDIVPAGFValue: String; virtual; + procedure SetDIVPAGFValue(const aValue: String); virtual; + function GetTASCAMValue: Float; virtual; + function GetOldTASCAMValue: Float; virtual; + procedure SetTASCAMValue(const aValue: Float); virtual; + function GetFECTASValue: DateTime; virtual; + function GetOldFECTASValue: DateTime; virtual; + procedure SetFECTASValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property FUNCION : String read GetFUNCIONValue write SetFUNCIONValue; + property OldFUNCION : String read GetOldFUNCIONValue; + property FECINI : DateTime read GetFECINIValue write SetFECINIValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property FECINF : DateTime read GetFECINFValue write SetFECINFValue; + property OldFECINF : DateTime read GetOldFECINFValue; + property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + property EANOFI : String read GetEANOFIValue write SetEANOFIValue; + property OldEANOFI : String read GetOldEANOFIValue; + property EANEMI : String read GetEANEMIValue write SetEANEMIValue; + property OldEANEMI : String read GetOldEANEMIValue; + property EANREC : String read GetEANRECValue write SetEANRECValue; + property OldEANREC : String read GetOldEANRECValue; + property EANVEN : String read GetEANVENValue write SetEANVENValue; + property OldEANVEN : String read GetOldEANVENValue; + property EANALM : String read GetEANALMValue write SetEANALMValue; + property OldEANALM : String read GetOldEANALMValue; + property EANREP : String read GetEANREPValue write SetEANREPValue; + property OldEANREP : String read GetOldEANREPValue; + property EANPRO : String read GetEANPROValue write SetEANPROValue; + property OldEANPRO : String read GetOldEANPROValue; + property EANADMSA : String read GetEANADMSAValue write SetEANADMSAValue; + property OldEANADMSA : String read GetOldEANADMSAValue; + property EANREPSR : String read GetEANREPSRValue write SetEANREPSRValue; + property OldEANREPSR : String read GetOldEANREPSRValue; + property ADMVENSA : String read GetADMVENSAValue write SetADMVENSAValue; + property OldADMVENSA : String read GetOldADMVENSAValue; + property REPDEPSR : String read GetREPDEPSRValue write SetREPDEPSRValue; + property OldREPDEPSR : String read GetOldREPDEPSRValue; + property EMAILSA : String read GetEMAILSAValue write SetEMAILSAValue; + property OldEMAILSA : String read GetOldEMAILSAValue; + property NUMFAXSA : String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property OldNUMFAXSA : String read GetOldNUMFAXSAValue; + property NUMTELSA : String read GetNUMTELSAValue write SetNUMTELSAValue; + property OldNUMTELSA : String read GetOldNUMTELSAValue; + property NUMTLXSA : String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property OldNUMTLXSA : String read GetOldNUMTLXSAValue; + property X400SA : String read GetX400SAValue write SetX400SAValue; + property OldX400SA : String read GetOldX400SAValue; + property EMAILSR : String read GetEMAILSRValue write SetEMAILSRValue; + property OldEMAILSR : String read GetOldEMAILSRValue; + property NUMFAXSR : String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property OldNUMFAXSR : String read GetOldNUMFAXSRValue; + property NUMTELSR : String read GetNUMTELSRValue write SetNUMTELSRValue; + property OldNUMTELSR : String read GetOldNUMTELSRValue; + property NUMTLXSR : String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property OldNUMTLXSR : String read GetOldNUMTLXSRValue; + property X400SR : String read GetX400SRValue write SetX400SRValue; + property OldX400SR : String read GetOldX400SRValue; + property NUMPRE : String read GetNUMPREValue write SetNUMPREValue; + property OldNUMPRE : String read GetOldNUMPREValue; + property NUMINFSC : String read GetNUMINFSCValue write SetNUMINFSCValue; + property OldNUMINFSC : String read GetOldNUMINFSCValue; + property NUMCON : String read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : String read GetOldNUMCONValue; + property FECPRE : DateTime read GetFECPREValue write SetFECPREValue; + property OldFECPRE : DateTime read GetOldFECPREValue; + property FECINFSC : DateTime read GetFECINFSCValue write SetFECINFSCValue; + property OldFECINFSC : DateTime read GetOldFECINFSCValue; + property FECCON : DateTime read GetFECCONValue write SetFECCONValue; + property OldFECCON : DateTime read GetOldFECCONValue; + property DIVPED : String read GetDIVPEDValue write SetDIVPEDValue; + property OldDIVPED : String read GetOldDIVPEDValue; + property DIVPRE : String read GetDIVPREValue write SetDIVPREValue; + property OldDIVPRE : String read GetOldDIVPREValue; + property DIVPAG : String read GetDIVPAGValue write SetDIVPAGValue; + property OldDIVPAG : String read GetOldDIVPAGValue; + property DIVPEDF : String read GetDIVPEDFValue write SetDIVPEDFValue; + property OldDIVPEDF : String read GetOldDIVPEDFValue; + property DIVPREF : String read GetDIVPREFValue write SetDIVPREFValue; + property OldDIVPREF : String read GetOldDIVPREFValue; + property DIVPAGF : String read GetDIVPAGFValue write SetDIVPAGFValue; + property OldDIVPAGF : String read GetOldDIVPAGFValue; + property TASCAM : Float read GetTASCAMValue write SetTASCAMValue; + property OldTASCAM : Float read GetOldTASCAMValue; + property FECTAS : DateTime read GetFECTASValue write SetFECTASValue; + property OldFECTAS : DateTime read GetOldFECTASValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_LUGVENDelta } + IRDX_LUGVENDelta = interface(IRDX_LUGVEN) + ['{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldEANLUGValue : String; + function GetOldLUGVENValue : String; + function GetOldFECINIValue : DateTime; + function GetOldFECFINValue : DateTime; + function GetOldPERVENINIValue : DateTime; + function GetOldPERVENFINValue : DateTime; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldEANLUG : String read GetOldEANLUGValue; + property OldLUGVEN : String read GetOldLUGVENValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + end; + + { TRDX_LUGVENBusinessProcessorRules } + TRDX_LUGVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LUGVEN, IRDX_LUGVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetEANLUGValue: String; virtual; + function GetOldEANLUGValue: String; virtual; + procedure SetEANLUGValue(const aValue: String); virtual; + function GetLUGVENValue: String; virtual; + function GetOldLUGVENValue: String; virtual; + procedure SetLUGVENValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + function GetOldFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + function GetOldFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + function GetOldPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + function GetOldPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property EANLUG : String read GetEANLUGValue write SetEANLUGValue; + property OldEANLUG : String read GetOldEANLUGValue; + property LUGVEN : String read GetLUGVENValue write SetLUGVENValue; + property OldLUGVEN : String read GetOldLUGVENValue; + property FECINI : DateTime read GetFECINIValue write SetFECINIValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TRDX_ARTVENBusinessProcessorRules } +constructor TRDX_ARTVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_ARTVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE2Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE2Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE3Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE3Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE3Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEANARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEANARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANART]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEANARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCODCOMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCODCOMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODCOM]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCODCOMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMVARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMVARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMVAR]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMVARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCODPROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCODPROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODPRO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCODPROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESARTCOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTCOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESARTCO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTCOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESART]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMCON]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMLISValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMLISValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMLIS]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMLISValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP3Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP3Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP3Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetVALVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldVALVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENVALVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetVALVENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRENETCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFETValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFETValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFETValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFFTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRECALCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRENETCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFEA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFEAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFFAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRECALCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN2Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN2Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN2Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN3Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN3Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN3Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED3Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED3Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED3Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN4Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN4Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN4]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN4Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED4Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED4Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED4]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED4Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN5Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN5Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN5]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN5Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED5Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED5Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED5]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED5Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEXIPROValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEXIPROValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEXIPRO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEXIPROValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESEXIValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESEXIValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESEXI]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESEXIValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDCVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDCVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDCV]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDCVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDEPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDEPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDEP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDEPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDDEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDDEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDDE]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDDEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANDEVValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANDEVValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANDEV]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANDEVValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEANVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNOMVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNOMVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNOMVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNOMVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMTALON]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANVENNETValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENNETValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVENNET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENNETValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUMEDVENNETValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDVENNETValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDVENNET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDVENNETValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANESPValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANESPValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANESP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANESPValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUMEDESPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDESPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDESP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDESPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP] := aValue; +end; + + +{ TRDX_CABVENBusinessProcessorRules } +constructor TRDX_CABVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CABVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CABVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENCLAVE1]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFUNCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFUNCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFUNCION]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFUNCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECFIN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINFValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINFValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINFValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENINI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENFIN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANOFIValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANOFIValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANOFI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANOFIValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANEMIValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANEMIValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANEMI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANEMIValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANRECValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANRECValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANRECValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANVEN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANALMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANALMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANALM]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANALMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANREPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANREPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREP]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANREPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANPROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANPROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANPRO]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANPROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANADMSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANADMSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANADMSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANADMSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANREPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANREPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREPSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANREPSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetADMVENSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldADMVENSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENADMVENSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetADMVENSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetREPDEPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldREPDEPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENREPDEPSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetREPDEPSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEMAILSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTELSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetX400SAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldX400SAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetX400SAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEMAILSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTELSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetX400SRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldX400SRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetX400SRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMPREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMPREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMPREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMINFSCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFSCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINFSC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFSCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMCON]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECPREValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECPREValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECPREValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINFSCValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINFSCValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINFSC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINFSCValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECCONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECCONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECCON]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECCONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPEDValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPED]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPAGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAG]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPEDFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPEDF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPREFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPREF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPAGFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAGF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetTASCAMValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldTASCAMValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENTASCAM]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetTASCAMValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECTASValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECTASValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECTAS]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECTASValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS] := aValue; +end; + + +{ TRDX_LUGVENBusinessProcessorRules } +constructor TRDX_LUGVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_LUGVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE1]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE2]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetEANLUGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldEANLUGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENEANLUG]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetEANLUGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetLUGVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldLUGVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENLUGVEN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetLUGVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECINI]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECFIN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENINI]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENFIN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RDX_ARTVENDelta, TRDX_ARTVENBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_CABVENDelta, TRDX_CABVENBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_LUGVENDelta, TRDX_LUGVENBusinessProcessorRules); + +end. diff --git a/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas b/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas new file mode 100644 index 0000000..a6e6cdc --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas @@ -0,0 +1,476 @@ +unit uBizEDISales; + +interface + +uses + uDAInterfaces, uDADataTable, schEDISalesClient_Intf, Classes, + DB, Controls; + +const + BIZ_SLSRPT_CAB = 'BizSlsRptCab'; + BIZ_SLSRPT_LUG = 'BizSlsRptLug'; + BIZ_SLSRPT_ART = 'BizSlsRptArt'; + +type + IBizEDISls_Cab = interface(IRDX_CABVEN) + ['{E7A9D79B-C28F-48BC-A592-EF8C28CD8DFF}'] + end; + + IBizEDISls_Lug = interface(IRDX_LUGVEN) + ['{C3438D84-14A3-4501-879D-C24AE7847DBB}'] + end; + + IBizEDISls_Art = interface(IRDX_ARTVEN) + ['{8A2A5662-D75D-469A-95EB-03C02D2CD1F7}'] + end; + + TBizEDISls_Cab = class(TRDX_CABVENDataTableRules, IBizEDISls_Cab) + protected + procedure SetCLAVE1Value(const aValue: Float); override; + procedure SetNUMINFValue(const aValue: String); override; + procedure SetFUNCIONValue(const aValue: String); override; + + procedure SetEANOFIValue(const aValue: String); override; + procedure SetEANEMIValue(const aValue: String); override; + procedure SetEANRECValue(const aValue: String); override; + procedure SetEANVENValue(const aValue: String); override; + procedure SetEANALMValue(const aValue: String); override; + procedure SetEANREPValue(const aValue: String); override; + procedure SetEANPROValue(const aValue: String); override; + procedure SetEANADMSAValue(const aValue: String); override; + procedure SetEANREPSRValue(const aValue: String); override; + procedure SetADMVENSAValue(const aValue: String); override; + procedure SetREPDEPSRValue(const aValue: String); override; + procedure SetEMAILSAValue(const aValue: String); override; + procedure SetNUMFAXSAValue(const aValue: String); override; + procedure SetNUMTELSAValue(const aValue: String); override; + procedure SetNUMTLXSAValue(const aValue: String); override; + procedure SetX400SAValue(const aValue: String); override; + procedure SetEMAILSRValue(const aValue: String); override; + procedure SetNUMFAXSRValue(const aValue: String); override; + procedure SetNUMTELSRValue(const aValue: String); override; + procedure SetNUMTLXSRValue(const aValue: String); override; + procedure SetX400SRValue(const aValue: String); override; + procedure SetNUMPREValue(const aValue: String); override; + procedure SetNUMINFSCValue(const aValue: String); override; + procedure SetNUMCONValue(const aValue: String); override; + procedure SetDIVPEDValue(const aValue: String); override; + procedure SetDIVPREValue(const aValue: String); override; + procedure SetDIVPAGValue(const aValue: String); override; + procedure SetDIVPEDFValue(const aValue: String); override; + procedure SetDIVPREFValue(const aValue: String); override; + procedure SetDIVPAGFValue(const aValue: String); override; + + procedure SetTASCAMValue(const aValue: Float); override; + + procedure SetFECINIValue(const aValue: DateTime); override; + procedure SetFECFINValue(const aValue: DateTime); override; + procedure SetFECINFValue(const aValue: DateTime); override; + procedure SetFECPREValue(const aValue: DateTime); override; + procedure SetFECINFSCValue(const aValue: DateTime); override; + procedure SetFECCONValue(const aValue: DateTime); override; + procedure SetFECTASValue(const aValue: DateTime); override; + procedure SetPERVENINIValue(const aValue: DateTime); override; + procedure SetPERVENFINValue(const aValue: DateTime); override; + end; + + + TBizEDISls_Lug = class(TRDX_LUGVENDataTableRules, IBizEDISls_Lug) + protected + procedure SetFECINIValue(const aValue: DateTime); override; + procedure SetFECFINValue(const aValue: DateTime); override; + procedure SetPERVENINIValue(const aValue: DateTime); override; + procedure SetPERVENFINValue(const aValue: DateTime); override; + end; + + TBizEDISls_Art = class(TRDX_ARTVENDataTableRules, IBizEDISls_Art) + protected + end; + +implementation + +{ TBizEDISls_Cab } + +uses + Variants; + +procedure TBizEDISls_Cab.SetADMVENSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetCLAVE1Value(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDISls_Cab.SetDIVPAGFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPAGValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPEDFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPEDValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPED].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPREFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPREValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANADMSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANALMValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANALM].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANEMIValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANEMI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANOFIValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANOFI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANPROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANPRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANRECValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANREPSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANREPValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREP].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANVENValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANVEN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEMAILSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEMAILSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetFECCONValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECCON].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINFSCValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINFValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECPREValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECTASValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECTAS].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFUNCIONValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENFUNCION].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMCONValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMCON].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMFAXSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMFAXSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMINFSCValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMINFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMINF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMPREValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTELSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTELSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTLXSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTLXSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetPERVENFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetPERVENINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetREPDEPSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetTASCAMValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDISls_Cab.SetX400SAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENX400SA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetX400SRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENX400SR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; +end; + +{ TBizEDISls_Lug } + +procedure TBizEDISls_Lug.SetFECFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetFECINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENFECINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetPERVENFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetPERVENINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; +end; + +initialization + RegisterDataTableRules(BIZ_SLSRPT_CAB, TBizEDISls_Cab); + RegisterDataTableRules(BIZ_SLSRPT_LUG, TBizEDISls_Lug); + RegisterDataTableRules(BIZ_SLSRPT_ART, TBizEDISls_Art); + +finalization + +end. diff --git a/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp b/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm b/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm new file mode 100644 index 0000000..571803f --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm @@ -0,0 +1,2699 @@ +object dmEDISales: TdmEDISales + OldCreateOrder = False + Height = 184 + Width = 379 + object schEDISales: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_ARTVEN' + SQL = + 'SELECT '#10' CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODP' + + 'RO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, '#10' ' + + ' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, '#10' ' + + 'PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, '#10' ' + + ' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, '#10' BAPR' + + 'UN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, '#10' DESEXI, ESP' + + 'MEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, '#10' NOMVEN, NUMTALON' + + ', CANVENNET, UMEDVENNET, CANESP, UMEDESP'#10' FROM'#10' RDX_ARTVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'EANART' + TableField = 'EANART' + end + item + DatasetField = 'CODCOM' + TableField = 'CODCOM' + end + item + DatasetField = 'NUMVAR' + TableField = 'NUMVAR' + end + item + DatasetField = 'CODPRO' + TableField = 'CODPRO' + end + item + DatasetField = 'DESARTCO' + TableField = 'DESARTCO' + end + item + DatasetField = 'DESART' + TableField = 'DESART' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end + item + DatasetField = 'NUMLIS' + TableField = 'NUMLIS' + end + item + DatasetField = 'CONESP1' + TableField = 'CONESP1' + end + item + DatasetField = 'CONESP2' + TableField = 'CONESP2' + end + item + DatasetField = 'CONESP3' + TableField = 'CONESP3' + end + item + DatasetField = 'VALVEN' + TableField = 'VALVEN' + end + item + DatasetField = 'PRENETCT' + TableField = 'PRENETCT' + end + item + DatasetField = 'PREBRUCT' + TableField = 'PREBRUCT' + end + item + DatasetField = 'PREINFET' + TableField = 'PREINFET' + end + item + DatasetField = 'PREINFFT' + TableField = 'PREINFFT' + end + item + DatasetField = 'PRECALCT' + TableField = 'PRECALCT' + end + item + DatasetField = 'PRENETCA' + TableField = 'PRENETCA' + end + item + DatasetField = 'PREBRUCA' + TableField = 'PREBRUCA' + end + item + DatasetField = 'PREINFEA' + TableField = 'PREINFEA' + end + item + DatasetField = 'PREINFFA' + TableField = 'PREINFFA' + end + item + DatasetField = 'PRECALCA' + TableField = 'PRECALCA' + end + item + DatasetField = 'BAPRUN1' + TableField = 'BAPRUN1' + end + item + DatasetField = 'UNIMED1' + TableField = 'UNIMED1' + end + item + DatasetField = 'BAPRUN2' + TableField = 'BAPRUN2' + end + item + DatasetField = 'UNIMED2' + TableField = 'UNIMED2' + end + item + DatasetField = 'BAPRUN3' + TableField = 'BAPRUN3' + end + item + DatasetField = 'UNIMED3' + TableField = 'UNIMED3' + end + item + DatasetField = 'BAPRUN4' + TableField = 'BAPRUN4' + end + item + DatasetField = 'UNIMED4' + TableField = 'UNIMED4' + end + item + DatasetField = 'BAPRUN5' + TableField = 'BAPRUN5' + end + item + DatasetField = 'UNIMED5' + TableField = 'UNIMED5' + end + item + DatasetField = 'CANVEN' + TableField = 'CANVEN' + end + item + DatasetField = 'EXIPRO' + TableField = 'EXIPRO' + end + item + DatasetField = 'DESEXI' + TableField = 'DESEXI' + end + item + DatasetField = 'ESPMEDCV' + TableField = 'ESPMEDCV' + end + item + DatasetField = 'ESPMEDEP' + TableField = 'ESPMEDEP' + end + item + DatasetField = 'ESPMEDDE' + TableField = 'ESPMEDDE' + end + item + DatasetField = 'CANDEV' + TableField = 'CANDEV' + end + item + DatasetField = 'EANVEN' + TableField = 'EANVEN' + end + item + DatasetField = 'NOMVEN' + TableField = 'NOMVEN' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CANVENNET' + TableField = 'CANVENNET' + end + item + DatasetField = 'UMEDVENNET' + TableField = 'UMEDVENNET' + end + item + DatasetField = 'CANESP' + TableField = 'CANESP' + end + item + DatasetField = 'UMEDESP' + TableField = 'UMEDESP' + end> + end> + Name = 'RDX_ARTVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODCOM' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMVAR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODPRO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESARTCO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESART' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIS' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALVEN' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRENETCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREBRUCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFET' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFFT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECALCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRENETCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREBRUCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFEA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFFA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECALCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN1' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN4' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED4' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN5' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED5' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANVEN' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EXIPRO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESEXI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDCV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDEP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDDE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANDEV' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANVENNET' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UMEDVENNET' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANESP' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UMEDESP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABVEN' + SQL = + 'SELECT '#10' CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PER' + + 'VENINI, PERVENFIN,'#10' EANOFI, EANEMI, EANREC, EANVEN, EANALM, E' + + 'ANREP, EANPRO, '#10' EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAI' + + 'LSA, NUMFAXSA, '#10' NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + + 'R, NUMTELSR, '#10' NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FE' + + 'CPRE, '#10' FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, '#10' ' + + ' DIVPREF, DIVPAGF, TASCAM, FECTAS, FECHA_CARGA'#10' FROM'#10' RDX_' + + 'CABVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'FUNCION' + TableField = 'FUNCION' + end + item + DatasetField = 'FECINI' + TableField = 'FECINI' + end + item + DatasetField = 'FECFIN' + TableField = 'FECFIN' + end + item + DatasetField = 'FECINF' + TableField = 'FECINF' + end + item + DatasetField = 'EANOFI' + TableField = 'EANOFI' + end + item + DatasetField = 'EANEMI' + TableField = 'EANEMI' + end + item + DatasetField = 'EANREC' + TableField = 'EANREC' + end + item + DatasetField = 'EANVEN' + TableField = 'EANVEN' + end + item + DatasetField = 'EANALM' + TableField = 'EANALM' + end + item + DatasetField = 'EANREP' + TableField = 'EANREP' + end + item + DatasetField = 'EANPRO' + TableField = 'EANPRO' + end + item + DatasetField = 'EANADMSA' + TableField = 'EANADMSA' + end + item + DatasetField = 'EANREPSR' + TableField = 'EANREPSR' + end + item + DatasetField = 'ADMVENSA' + TableField = 'ADMVENSA' + end + item + DatasetField = 'REPDEPSR' + TableField = 'REPDEPSR' + end + item + DatasetField = 'EMAILSA' + TableField = 'EMAILSA' + end + item + DatasetField = 'NUMFAXSA' + TableField = 'NUMFAXSA' + end + item + DatasetField = 'NUMTELSA' + TableField = 'NUMTELSA' + end + item + DatasetField = 'NUMTLXSA' + TableField = 'NUMTLXSA' + end + item + DatasetField = 'X400SA' + TableField = 'X400SA' + end + item + DatasetField = 'EMAILSR' + TableField = 'EMAILSR' + end + item + DatasetField = 'NUMFAXSR' + TableField = 'NUMFAXSR' + end + item + DatasetField = 'NUMTELSR' + TableField = 'NUMTELSR' + end + item + DatasetField = 'NUMTLXSR' + TableField = 'NUMTLXSR' + end + item + DatasetField = 'X400SR' + TableField = 'X400SR' + end + item + DatasetField = 'NUMPRE' + TableField = 'NUMPRE' + end + item + DatasetField = 'NUMINFSC' + TableField = 'NUMINFSC' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end + item + DatasetField = 'FECPRE' + TableField = 'FECPRE' + end + item + DatasetField = 'FECINFSC' + TableField = 'FECINFSC' + end + item + DatasetField = 'FECCON' + TableField = 'FECCON' + end + item + DatasetField = 'DIVPED' + TableField = 'DIVPED' + end + item + DatasetField = 'DIVPRE' + TableField = 'DIVPRE' + end + item + DatasetField = 'DIVPAG' + TableField = 'DIVPAG' + end + item + DatasetField = 'DIVPEDF' + TableField = 'DIVPEDF' + end + item + DatasetField = 'DIVPREF' + TableField = 'DIVPREF' + end + item + DatasetField = 'DIVPAGF' + TableField = 'DIVPAGF' + end + item + DatasetField = 'TASCAM' + TableField = 'TASCAM' + end + item + DatasetField = 'FECTAS' + TableField = 'FECTAS' + end + item + DatasetField = 'PERVENINI' + TableField = 'PERVENINI' + end + item + DatasetField = 'PERVENFIN' + TableField = 'PERVENFIN' + end + item + DatasetField = 'FECHA_CARGA' + TableField = 'FECHA_CARGA' + end> + end> + Name = 'RDX_CABVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FUNCION' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINF' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANOFI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANEMI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREC' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANALM' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREP' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANPRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANADMSA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREPSR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ADMVENSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPDEPSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAILSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMFAXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTELSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTLXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'X400SA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAILSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMFAXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTELSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTLXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'X400SR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMPRE' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMINFSC' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECPRE' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINFSC' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECCON' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPED' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPRE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPAG' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPEDF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPREF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPAGF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TASCAM' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECTAS' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LUGVEN' + SQL = + 'SELECT '#10' CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERV' + + 'ENINI, '#10' PERVENFIN'#10' FROM'#10' RDX_LUGVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'EANLUG' + TableField = 'EANLUG' + end + item + DatasetField = 'LUGVEN' + TableField = 'LUGVEN' + end + item + DatasetField = 'FECINI' + TableField = 'FECINI' + end + item + DatasetField = 'FECFIN' + TableField = 'FECFIN' + end + item + DatasetField = 'PERVENINI' + TableField = 'PERVENINI' + end + item + DatasetField = 'PERVENFIN' + TableField = 'PERVENFIN' + end> + end> + Name = 'RDX_LUGVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANLUG' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LUGVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_CARGAR_VENTASEDI' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_CARGAR_VENTASEDI' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FUNCION' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINF' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANOFI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANEMI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREC' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANALM' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREP' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANPRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANADMSA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREPSR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ADMVENSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPDEPSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAILSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMFAXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTELSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTLXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'X400SA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAILSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMFAXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTELSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTLXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'X400SR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMPRE' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMINFSC' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECPRE' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINFSC' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECCON' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPED' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPRE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPAG' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPEDF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPREF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPAGF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TASCAM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECTAS' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABVEN' + SQL = + 'INSERT'#10' INTO RDX_CABVEN'#10' (CLAVE1, NUMINF, FUNCION, FECINI, F' + + 'ECFIN, FECINF, EANOFI, '#10' EANEMI, EANREC, EANVEN, EANALM, EAN' + + 'REP, EANPRO, EANADMSA, '#10' EANREPSR, ADMVENSA, REPDEPSR, EMAIL' + + 'SA, NUMFAXSA, NUMTELSA, '#10' NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + + 'R, NUMTELSR, NUMTLXSR, '#10' X400SR, NUMPRE, NUMINFSC, NUMCON, F' + + 'ECPRE, FECINFSC, '#10' FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, ' + + 'DIVPREF, DIVPAGF, '#10' TASCAM, FECTAS, PERVENINI, PERVENFIN, FE' + + 'CHA_CARGA)'#10' VALUES'#10' (:CLAVE1, :NUMINF, :FUNCION, :FECINI, :F' + + 'ECFIN, :FECINF, '#10' :EANOFI, :EANEMI, :EANREC, :EANVEN, :EANAL' + + 'M, :EANREP, '#10' :EANPRO, :EANADMSA, :EANREPSR, :ADMVENSA, :REP' + + 'DEPSR, '#10' :EMAILSA, :NUMFAXSA, :NUMTELSA, :NUMTLXSA, :X400SA,' + + ' '#10' :EMAILSR, :NUMFAXSR, :NUMTELSR, :NUMTLXSR, :X400SR, '#10' ' + + ' :NUMPRE, :NUMINFSC, :NUMCON, :FECPRE, :FECINFSC, :FECCON, '#10' ' + + ' :DIVPED, :DIVPRE, :DIVPAG, :DIVPEDF, :DIVPREF, :DIVPAGF, '#10' ' + + ':TASCAM, :FECTAS, :PERVENINI, :PERVENFIN, CURRENT_TIMESTAMP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CABVEN' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANLUG' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'LUGVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LUGVEN' + SQL = + 'INSERT'#10' INTO RDX_LUGVEN'#10' (CLAVE1, CLAVE2, EANLUG, LUGVEN, FE' + + 'CINI, FECFIN, PERVENINI, '#10' PERVENFIN)'#10' VALUES'#10' (:CLAVE1,' + + ' :CLAVE2, :EANLUG, :LUGVEN, :FECINI, :FECFIN, '#10' :PERVENINI, ' + + ':PERVENFIN)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_LUGVEN' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODCOM' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMVAR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODPRO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESARTCO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESART' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIS' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALVEN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRENETCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREBRUCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFET' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFFT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECALCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRENETCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREBRUCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFEA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFFA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECALCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN4' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED4' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN5' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED5' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANVEN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EXIPRO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESEXI' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDCV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDEP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDDE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANDEV' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANVENNET' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UMEDVENNET' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANESP' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UMEDESP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_ARTVEN' + SQL = + 'INSERT'#10' INTO RDX_ARTVEN'#10' (CLAVE1, CLAVE2, CLAVE3, EANART, CO' + + 'DCOM, NUMVAR, CODPRO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CO' + + 'NESP1, CONESP2, '#10' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREIN' + + 'FET, PREINFFT, '#10' PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PRE' + + 'INFFA, PRECALCA, '#10' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRU' + + 'N3, UNIMED3, '#10' BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, E' + + 'XIPRO, '#10' DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVE' + + 'N, '#10' NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDES' + + 'P)'#10' VALUES'#10' (:CLAVE1, :CLAVE2, :CLAVE3, :EANART, :CODCOM, :N' + + 'UMVAR, '#10' :CODPRO, :DESARTCO, :DESART, :NUMCON, :NUMLIS, :CON' + + 'ESP1, '#10' :CONESP2, :CONESP3, :VALVEN, :PRENETCT, :PREBRUCT, '#10 + + ' :PREINFET, :PREINFFT, :PRECALCT, :PRENETCA, :PREBRUCA, '#10' ' + + ' :PREINFEA, :PREINFFA, :PRECALCA, :BAPRUN1, :UNIMED1, '#10' :BA' + + 'PRUN2, :UNIMED2, :BAPRUN3, :UNIMED3, :BAPRUN4, :UNIMED4, '#10' :' + + 'BAPRUN5, :UNIMED5, :CANVEN, :EXIPRO, :DESEXI, :ESPMEDCV, '#10' :' + + 'ESPMEDEP, :ESPMEDDE, :CANDEV, :EANVEN, :NOMVEN, :NUMTALON, '#10' ' + + ' :CANVENNET, :UMEDVENNET, :CANESP, :UMEDESP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_ARTVEN' + end> + RelationShips = < + item + Name = 'FK_RDX_LUGVEN_RDX_CABVEN' + MasterDatasetName = 'RDX_CABVEN' + MasterFields = 'CLAVE1' + DetailDatasetName = 'RDX_LUGVEN' + DetailFields = 'CLAVE1' + RelationshipType = rtForeignKey + end + item + Name = 'FK_RDX_ARTVEN_RDX_LUGVEN' + MasterDatasetName = 'RDX_LUGVEN' + MasterFields = 'CLAVE1;CLAVE2' + DetailDatasetName = 'RDX_ARTVEN' + DetailFields = 'CLAVE1;CLAVE2' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RDX_CABVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_LUGVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_ARTVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CABVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_LUGVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_ARTVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_ARTVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_LUGVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CABVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 16 + end +end diff --git a/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas b/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas new file mode 100644 index 0000000..1208366 --- /dev/null +++ b/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas @@ -0,0 +1,483 @@ +unit uDataModuleEDI_Sales; + +interface + +uses + SysUtils, Classes, uDAScriptingProvider, uDADataTable, uDACDSDataTable, + uBizEDISales, uDAEngine, uDAADODriver, uDABINAdapter, + uDABusinessProcessor, uDAClasses, EDI_Reader, JvComponentBase; + +type + TdmEDISales = class(TDataModule) + schEDISales: TDASchema; + private + function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarLugares(const ALugData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarArticulos(const AArtData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function GenerarVentasEDI: Boolean; + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + public + function CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; var NumRegNuevos: Integer ): Boolean; + end; + +var + dmEDISales: TdmEDISales; + +implementation + +uses + EDI_Sales_Impl, Controls, Forms, uDataTableUtils, EDI_SLSRPT, uDAInterfaces, + Dialogs, schEDISalesClient_Intf, uDataModuleServer, Variants, EDI_Utils, + VARELA_Intf, EDI_Log_Impl, DB; + +{$R *.dfm} + +{ TdmEDISales } + +function TdmEDISales.CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; var NumRegNuevos: Integer ): Boolean; +var + Cab_Reader : TCABVEN_Reader; + Lug_Reader : TLUGVEN_Reader; + Art_Reader : TARTVEN_Reader; + + NumRegNuevosCab : Integer; + NumRegNuevosLug : Integer; + NumRegNuevosArt : Integer; +begin + Result := True; + + Cab_Reader := TCABVEN_Reader.Create; + try + Cab_Reader.Filename := FicheroCAB; + Cab_Reader.ReadFile; + Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); + finally + FreeAndNIL(Cab_Reader); + end; + + if Result then + begin + Lug_Reader := TLUGVEN_Reader.Create; + try + Lug_Reader.Filename := FicheroLUG; + Lug_Reader.ReadFile; + Result := InsertarLugares (Lug_Reader.FileData, NumRegNuevosLug); + finally + FreeAndNIL(Lug_Reader); + end; + + if Result then + begin + Art_Reader := TARTVEN_Reader.Create; + try + Art_Reader.Filename := FicheroART; + Art_Reader.ReadFile; + Result := InsertarArticulos(Art_Reader.FileData, NumRegNuevosArt); + finally + FreeAndNil(Art_Reader); + end; + end; + end; + + if Result then + begin + NumRegNuevos := NumRegNuevosArt; + Result := GenerarVentasEDI; + end; +end; + +function TdmEDISales.GenerarVentasEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDISales.NewCommand(AConnection, 'RDX_P_CARGAR_VENTASEDI'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (GenerarVentasEDI)'); + end + end; +end; + +function TdmEDISales.InsertarArticulos(const AArtData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PARTVEN; + AuxStr : String; + AuxInt : Integer; + AuxNum : Double; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to AArtData.Count - 1 do + begin + Registro := AArtData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_ARTVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('CLAVE2').AsFloat := StrToInt(Trim(Registro.CLAVE2)); + ParamByName('CLAVE3').AsFloat := StrToInt(Trim(Registro.CLAVE3)); + + ParamByName('EANART').AsString := Trim(Registro.EANART); + ParamByName('CODCOM').AsString := Trim(Registro.CODCOM); + ParamByName('NUMVAR').AsString := Trim(Registro.NUMVAR); + ParamByName('CODPRO').AsString := Trim(Registro.CODPRO); + ParamByName('DESARTCO').AsString := Trim(Registro.DESARTCO); + ParamByName('DESART').AsString := Trim(Registro.DESART); + ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); + ParamByName('NUMLIS').AsString := Trim(Registro.NUMLIS); + ParamByName('CONESP1').AsString := Trim(Registro.CONESP1); + ParamByName('CONESP2').AsString := Trim(Registro.CONESP2); + ParamByName('CONESP3').AsString := Trim(Registro.CONESP3); + + ParamByName('VALVEN').AsVariant := Null; + AuxStr := Trim(Registro.VALVEN); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('VALVEN').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRENETCT').AsVariant := Null; + AuxStr := Trim(Registro.PRENETCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRENETCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREBRUCT').AsVariant := Null; + AuxStr := Trim(Registro.PREBRUCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREBRUCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFET').AsVariant := Null; + AuxStr := Trim(Registro.PREINFET); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFET').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFFT').AsVariant := Null; + AuxStr := Trim(Registro.PREINFFT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFFT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRECALCT').AsVariant := Null; + AuxStr := Trim(Registro.PRECALCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRECALCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRENETCA').AsVariant := Null; + AuxStr := Trim(Registro.PRENETCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRENETCA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREBRUCA').AsVariant := Null; + AuxStr := Trim(Registro.PREBRUCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREBRUCA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFEA').AsVariant := Null; + AuxStr := Trim(Registro.PREINFEA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFEA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFFA').AsVariant := Null; + AuxStr := Trim(Registro.PREINFFA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFFA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRECALCA').AsVariant := Null; + AuxStr := Trim(Registro.PRECALCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRECALCA').AsFloat := AuxNum/1000; //N(15,3) + + + ParamByName('BAPRUN1').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN1); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN1').AsInteger := AuxInt; + ParamByName('UNIMED1').AsString := Trim(Registro.UNIMED1); + + ParamByName('BAPRUN2').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN2); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN2').AsInteger := AuxInt; + ParamByName('UNIMED2').AsString := Trim(Registro.UNIMED2); + + ParamByName('BAPRUN3').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN3); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN3').AsInteger := AuxInt; + ParamByName('UNIMED3').AsString := Trim(Registro.UNIMED3); + + ParamByName('BAPRUN4').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN4); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN4').AsInteger := AuxInt; + ParamByName('UNIMED4').AsString := Trim(Registro.UNIMED4); + + ParamByName('BAPRUN5').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN5); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN5').AsInteger := AuxInt; + ParamByName('UNIMED5').AsString := Trim(Registro.UNIMED5); + + ParamByName('CANVEN').AsVariant := Null; + AuxStr := Trim(Registro.CANVEN); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANVEN').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('EXIPRO').AsVariant := Null; + AuxStr := Trim(Registro.EXIPRO); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('EXIPRO').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('DESEXI').AsVariant := Null; + AuxStr := Trim(Registro.DESEXI); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('DESEXI').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('ESPMEDCV').AsString := Trim(Registro.ESPMEDCV); + ParamByName('ESPMEDEP').AsString := Trim(Registro.ESPMEDEP); + ParamByName('ESPMEDDE').AsString := Trim(Registro.ESPMEDDE); + + ParamByName('CANDEV').AsVariant := Null; + AuxStr := Trim(Registro.CANDEV); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANDEV').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); + ParamByName('NOMVEN').AsString := Trim(Registro.NOMVEN); + ParamByName('NUMTALON').AsString := Trim(Registro.NUMTALON); + + ParamByName('CANVENNET').AsVariant := Null; + AuxStr := Trim(Registro.CANVENNET); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANVENNET').AsFloat := AuxNum/1000; // N(15,3) + ParamByName('UMEDVENNET').AsString := Trim(Registro.UMEDVENNET); + + ParamByName('CANESP').AsVariant := Null; + AuxStr := Trim(Registro.CANESP); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANESP').AsFloat := AuxNum/1000; // N(15,3) + ParamByName('UMEDESP').AsString := Trim(Registro.UMEDESP); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarArticulos SLS)'); + end + end; + end; //for +end; + +function TdmEDISales.InsertarCabecera(const ACabData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PCABVEN; + AuxStr : String; + AuxNum : Double; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACabData.Count - 1 do + begin + Registro := ACabData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_CABVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('NUMINF').AsString := Trim(Registro.NUMINF); + ParamByName('FUNCION').AsString := Trim(Registro.FUNCION); + + ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); + ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); + ParamByName('FECINF').AsDateTime := EDIDateToDateF(Trim(Registro.FECINF)); + + ParamByName('PERVENINI').AsVariant := Null; + ParamByName('PERVENFIN').AsVariant := Null; + if Length(Trim(Registro.PERVEN)) = 16 then + begin + ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); + ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)); + end; + + ParamByName('EANOFI').AsString := Trim(Registro.EANOFI); + ParamByName('EANEMI').AsString := Trim(Registro.EANEMI); + ParamByName('EANREC').AsString := Trim(Registro.EANREC); + ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); + ParamByName('EANALM').AsString := Trim(Registro.EANALM); + ParamByName('EANREP').AsString := Trim(Registro.EANREP); + ParamByName('EANPRO').AsString := Trim(Registro.EANPRO); + ParamByName('EANADMSA').AsString := Trim(Registro.EANADMSA); + ParamByName('EANREPSR').AsString := Trim(Registro.EANREPSR); + ParamByName('ADMVENSA').AsString := Trim(Registro.ADMVENSA); + ParamByName('REPDEPSR').AsString := Trim(Registro.REPDEPSR); + + ParamByName('EMAILSA').AsString := Trim(Registro.EMAILSA); + ParamByName('NUMFAXSA').AsString := Trim(Registro.NUMFAXSA); + ParamByName('NUMTELSA').AsString := Trim(Registro.NUMTELSA); + ParamByName('NUMTLXSA').AsString := Trim(Registro.NUMTLXSA); + ParamByName('X400SA').AsString := Trim(Registro.X400SA); + + ParamByName('EMAILSR').AsString := Trim(Registro.EMAILSR); + ParamByName('NUMFAXSR').AsString := Trim(Registro.NUMFAXSR); + ParamByName('NUMTELSR').AsString := Trim(Registro.NUMTELSR); + ParamByName('NUMTLXSR').AsString := Trim(Registro.NUMTLXSR); + ParamByName('X400SR').AsString := Trim(Registro.X400SR); + + ParamByName('NUMPRE').AsString := Trim(Registro.NUMPRE); + ParamByName('NUMINFSC').AsString := Trim(Registro.NUMINFSC); + ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); + + ParamByName('FECPRE').AsDateTime := EDIDateToDateF(Trim(Registro.FECPRE)); + ParamByName('FECINFSC').AsDateTime := EDIDateToDateF(Trim(Registro.FECINFSC)); + ParamByName('FECCON').AsDateTime := EDIDateToDateF(Trim(Registro.FECCON)); + + ParamByName('DIVPED').AsString := Trim(Registro.DIVPED); + ParamByName('DIVPRE').AsString := Trim(Registro.DIVPRE); + ParamByName('DIVPAG').AsString := Trim(Registro.DIVPAG); + ParamByName('DIVPEDF').AsString := Trim(Registro.DIVPEDF); + ParamByName('DIVPREF').AsString := Trim(Registro.DIVPREF); + ParamByName('DIVPAGF').AsString := Trim(Registro.DIVPAGF); + + ParamByName('TASCAM').AsVariant := Null; + AuxStr := Trim(Registro.TASCAM); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('TASCAM').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('FECTAS').AsDateTime := EDIDateToDateF(Trim(Registro.FECTAS)); + end; // with + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCabecera SLS)'); + end + end; + + end; //for +end; + + +procedure TdmEDISales.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +function TdmEDISales.InsertarLugares(const ALugData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PLUGVEN; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ALugData.Count - 1 do + begin + Registro := ALugData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_LUGVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('CLAVE2').AsInteger := StrToInt(Trim(Registro.CLAVE2)); + ParamByName('EANLUG').AsString := Trim(Registro.EANLUG); + ParamByName('LUGVEN').AsString := Trim(Registro.LUGVEN); + + ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); + ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); + + ParamByName('PERVENINI').AsVariant := Null; + ParamByName('PERVENFIN').AsVariant := Null; + if Length(Trim(Registro.PERVEN)) >= 8 then + begin + ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); + if Length(Trim(Registro.PERVEN)) = 16 then + ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)) + end + end; // with + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + '(InsertarLugares SLS)'); + end + end; + end; //for +end; + + +initialization + dmEDISales := TdmEDISales.Create(nil); + +finalization + FreeAndNil(dmEDISales); + +end. + diff --git a/Source/Servidor/Services/Login/srvLogin_Impl.ddp b/Source/Servidor/Services/Login/srvLogin_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/Login/srvLogin_Impl.dfm b/Source/Servidor/Services/Login/srvLogin_Impl.dfm new file mode 100644 index 0000000..a3e035b --- /dev/null +++ b/Source/Servidor/Services/Login/srvLogin_Impl.dfm @@ -0,0 +1,99 @@ +object srvLogin: TsrvLogin + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schLogin + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 220 + Width = 339 + object schLogin: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'USERID' + DataType = datString + BlobType = dabtUnknown + Value = 'zeus' + ParamType = daptInput + end + item + Name = 'PASSWORD' + DataType = datString + BlobType = dabtUnknown + Value = 'zvg' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'USUARIOS' + SQL = + 'SELECT'#10' CLAVE AS ID, PASSW AS PASS'#10' FROM'#10' USUARIOS'#10' WH' + + 'ERE CLAVE = :USERID AND'#10' PASSW = :PASSWORD;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'CLAVE' + SQLOrigin = 'ID' + end + item + DatasetField = 'PASS' + TableField = 'PASSW' + SQLOrigin = 'PASS' + end> + end> + Name = 'GetLoginInfo' + Fields = < + item + Name = 'ID' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PASS' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 56 + Top = 96 + end +end diff --git a/Source/Servidor/Services/Login/srvLogin_Impl.pas b/Source/Servidor/Services/Login/srvLogin_Impl.pas new file mode 100644 index 0000000..901804b --- /dev/null +++ b/Source/Servidor/Services/Login/srvLogin_Impl.pas @@ -0,0 +1,135 @@ +unit srvLogin_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, uDAInterfaces, DARemoteService_Impl, DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDADataStreamer; + +type + { TsrvLogin } + TsrvLogin = class(TDARemoteService, IsrvLogin) + DABINAdapter: TDABINAdapter; + schLogin: TDASchema; + private + protected + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function UpdateUsers(const UsersDelta: Binary): Binary; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function Ping : Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, Dialogs, IB, Variants; + + +procedure Create_srvLogin(out anInstance : IUnknown); +begin + anInstance := TsrvLogin.Create(NIL); +end; + +{ TsrvLogin } + +function TsrvLogin.Login(const UserID, Password: String; + out LoginInfo: TLoginInfo): Boolean; +var + dsUserInfo : IDADataset; +begin + LoginInfo := NIL; + Result := False; + + dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo'); + with dsUserInfo do + begin + ParamByName('UserID').AsString := UserID; + ParamByName('Password').AsString := Password; + Open; + end; + + //dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo', ['UserID', 'Password'], [UserID, Password]); + + if not (dsUserInfo.IsEmpty) then + try + Result := TRUE; + + // Packages the user information that will be sent back to the client. + // This information will be used in many places client-side and when issing service calls + // so it's good practice to cache it there + LoginInfo := TLoginInfo.Create; + FillROStruct(dsUserInfo, LoginInfo); + LoginInfo.UserID := UserID; + LoginInfo.SessionID := GUIDToString(Session.SessionID); + //LoginInfo.Roles.Add(VarToStr(dsUserInfo.FieldValues[3])); + + // Collects the privileges for this user as a comma separated list of strings +{ privs := Schema.NewDataset(Connection, ds_GetUserPrivileges, ['UserInc'], [LoginInfo.UserInc]); + + while not privs.EOF do begin + LoginInfo.Privileges := LoginInfo.Privileges+Trim(VarToStr(privs.FieldValues[0]))+','; + privs.Next; + end; + LoginInfo.Privileges := Copy(LoginInfo.Privileges,1,Length(LoginInfo.Privileges)-1); + + + // Stores all the information we retrieved in the current session since it might be + // necessary for other services} + Session.SaveStruct(LoginInfo); + except + FreeAndNIL(LoginInfo); + raise + end; +end; + +procedure TsrvLogin.Logout; +begin + DestroySession; +end; + +function TsrvLogin.Ping: Boolean; +begin + Result := True; +end; + +function TsrvLogin.SetUserPassword(const UserID, + NewPassword: String): Boolean; +var + dsCommand : IDASQLCommand; + i : Integer; +begin + Result := False; + dsCommand := schLogin.NewCommand(Connection, 'SetUserPassword'); + with dsCommand do + begin + ParamByName('UserID').AsString := UserID; + ParamByName('Password').AsString := NewPassword; + i := Execute; + end; + if i > 0 then + Result := True; +end; + +function TsrvLogin.UpdateUsers(const UsersDelta: Binary): Binary; +begin + // +end; + +initialization + TROClassFactory.Create('srvLogin', Create_srvLogin, TsrvLogin_Invoker); + +finalization + +end. diff --git a/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp b/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm b/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm new file mode 100644 index 0000000..51978be --- /dev/null +++ b/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm @@ -0,0 +1,6 @@ +object srvTransfereciaFicheros: TsrvTransfereciaFicheros + OldCreateOrder = True + SessionManager = dmServer.SessionManager + Height = 292 + Width = 296 +end diff --git a/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas b/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas new file mode 100644 index 0000000..5c48ec2 --- /dev/null +++ b/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas @@ -0,0 +1,104 @@ +unit srvTransfereciaFicheros_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TsrvTransfereciaFicheros } + TsrvTransfereciaFicheros = class(TRORemoteDataModule, IsrvTransfereciaFicheros) + private + function getFileDirectory: String; + protected + { IsrvTransfereciaFicheros methods } + procedure DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + JclFileUtils; + +procedure Create_srvTransfereciaFicheros(out anInstance : IUnknown); +begin + anInstance := TsrvTransfereciaFicheros.Create(NIL); +end; + +{ srvTransfereciaFicheros } +procedure TsrvTransfereciaFicheros.DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); +const + Block: Integer = 65536; +var + Position: Int64; + MemStream: TFileStream; + localfilename:String; +begin + fileData := Binary.Create; + localfilename:=getFileDirectory+filename; + if not FileExists(localfilename) then exit; + MemStream:=TFileStream.Create(localfilename,fmopenRead); + try + FileSize := MemStream.Size; + Position := Block * (Sequence - 1); + if Position <= FileSize then begin + MemStream.Position := Position; + if Position + Block > FileSize then + fileData.CopyFrom(MemStream, FileSize - Position) + else + fileData.CopyFrom(MemStream, Block); + end; + finally + MemStream.Free; + end; +end; + +function TsrvTransfereciaFicheros.getFileDirectory: String; +begin + result := PathAddSeparator(dmServer.FDirEntrada); +end; + +procedure TsrvTransfereciaFicheros.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); +var + NewFile: TFileStream; + localfilename:String; +begin + Localfilename:= GetFileDirectory + Filename; + if isfirst and Fileexists(localfilename) then DeleteFile(localfilename); + if FileExists(localfilename) + then NewFile := TFileStream.Create(localfilename,fmOpenReadWrite) + else NewFile := TFileStream.Create(localfilename,fmCreate); + try + NewFile.Seek(0,soFromEnd); + filedata.SaveToStream(NewFile); + finally + NewFile.Free; + end; +end; + +procedure TsrvTransfereciaFicheros.UploadFinished(const Filename: String; const Filesize: Int64); +begin +// (EventRepository as IFileEvents_Writer).OnNewFileAvailable(Session.SessionID, Filename, Filesize); +end; + +initialization + TROClassFactory.Create('srvTransfereciaFicheros', Create_srvTransfereciaFicheros, TsrvTransfereciaFicheros_Invoker); + +finalization + +end. diff --git a/Source/Servidor/VARELA.RODL b/Source/Servidor/VARELA.RODL new file mode 100644 index 0000000..32036dc --- /dev/null +++ b/Source/Servidor/VARELA.RODL @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Servidor/VARELA_Intf.pas b/Source/Servidor/VARELA_Intf.pas new file mode 100644 index 0000000..e80b443 --- /dev/null +++ b/Source/Servidor/VARELA_Intf.pas @@ -0,0 +1,1079 @@ +unit VARELA_Intf; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, TypInfo, + {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, + {Used RODLs:} DataAbstract3_Intf; + +const + { Library ID } + LibraryUID = '{AD45905A-2C7F-4295-A913-3D4F93CE82CF}'; + TargetNamespace = ''; + + { Service Interface ID's } + IEDI_Inventary_IID : TGUID = '{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'; + IEDI_Sales_IID : TGUID = '{A9A65D73-350D-4530-AF81-FF69845C6B61}'; + IsrvLogin_IID : TGUID = '{6B132AE4-D45F-4AE8-8215-E95789358329}'; + IsrvVentasTerminadas_IID : TGUID = '{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'; + IsrvInformes_IID : TGUID = '{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'; + IsrvTransfereciaFicheros_IID : TGUID = '{2A7AFE06-0600-46ED-9B7A-C694A1191311}'; + IsrvControles_IID : TGUID = '{A0C11144-A1B7-408D-BA07-63565D587662}'; + IsrvVentasEnProceso_IID : TGUID = '{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'; + IEDI_Log_IID : TGUID = '{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'; + IsrvReferenciaGenerica_IID : TGUID = '{994518CC-96BD-4976-ABC6-9B421A4B65D3}'; + IsrvRecepciones_IID : TGUID = '{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'; + IsrvDevoluciones_IID : TGUID = '{87C31D12-C353-437F-A7A3-10882373AB54}'; + IsrvTraspasos_IID : TGUID = '{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'; + IsrvStock_IID : TGUID = '{F617B727-5B8B-4645-BBB2-3D645AB31981}'; + IsrvParametros_IID : TGUID = '{E5177628-952A-4217-80C0-36F59E423EC4}'; + + { Event ID's } + +type + { Forward declarations } + IEDI_Inventary = interface; + IEDI_Sales = interface; + IsrvLogin = interface; + IsrvVentasTerminadas = interface; + IsrvInformes = interface; + IsrvTransfereciaFicheros = interface; + IsrvControles = interface; + IsrvVentasEnProceso = interface; + IEDI_Log = interface; + IsrvReferenciaGenerica = interface; + IsrvRecepciones = interface; + IsrvDevoluciones = interface; + IsrvTraspasos = interface; + IsrvStock = interface; + IsrvParametros = interface; + + + TLoginInfo = class; + + + { TLoginInfo } + TLoginInfo = class(TDALoginInfo) + private + fRoles: TDAStringArray; + function GetRoles: TDAStringArray; + public + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Roles:TDAStringArray read GetRoles write fRoles; + end; + + { TLoginInfoCollection } + TLoginInfoCollection = class(TDALoginInfoCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): TLoginInfo; + procedure SetItems(aIndex: integer; const Value: TLoginInfo); + public + constructor Create; overload; + function Add: TLoginInfo; reintroduce; + property Items[Index: integer]:TLoginInfo read GetItems write SetItems; default; + end; + + { IEDI_Inventary } + IEDI_Inventary = interface(IDARemoteService) + ['{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'] + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + + { CoEDI_Inventary } + CoEDI_Inventary = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; + end; + + { TEDI_Inventary_Proxy } + TEDI_Inventary_Proxy = class(TDARemoteService_Proxy, IEDI_Inventary) + protected + function __GetInterfaceName:string; override; + + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + + { IEDI_Sales } + IEDI_Sales = interface(IDARemoteService) + ['{A9A65D73-350D-4530-AF81-FF69845C6B61}'] + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + + { CoEDI_Sales } + CoEDI_Sales = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; + end; + + { TEDI_Sales_Proxy } + TEDI_Sales_Proxy = class(TDARemoteService_Proxy, IEDI_Sales) + protected + function __GetInterfaceName:string; override; + + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + + { IsrvLogin } + IsrvLogin = interface + ['{6B132AE4-D45F-4AE8-8215-E95789358329}'] + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function UpdateUsers(const UsersDelta: Binary): Binary; + end; + + { CosrvLogin } + CosrvLogin = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; + end; + + { TsrvLogin_Proxy } + TsrvLogin_Proxy = class(TROProxy, IsrvLogin) + protected + function __GetInterfaceName:string; override; + + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function UpdateUsers(const UsersDelta: Binary): Binary; + end; + + { IsrvVentasTerminadas } + IsrvVentasTerminadas = interface(IDARemoteService) + ['{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'] + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + + { CosrvVentasTerminadas } + CosrvVentasTerminadas = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; + end; + + { TsrvVentasTerminadas_Proxy } + TsrvVentasTerminadas_Proxy = class(TDARemoteService_Proxy, IsrvVentasTerminadas) + protected + function __GetInterfaceName:string; override; + + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + + { IsrvInformes } + IsrvInformes = interface(IDARemoteService) + ['{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'] + end; + + { CosrvInformes } + CosrvInformes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; + end; + + { TsrvInformes_Proxy } + TsrvInformes_Proxy = class(TDARemoteService_Proxy, IsrvInformes) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvTransfereciaFicheros } + IsrvTransfereciaFicheros = interface + ['{2A7AFE06-0600-46ED-9B7A-C694A1191311}'] + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + + { CosrvTransfereciaFicheros } + CosrvTransfereciaFicheros = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; + end; + + { TsrvTransfereciaFicheros_Proxy } + TsrvTransfereciaFicheros_Proxy = class(TROProxy, IsrvTransfereciaFicheros) + protected + function __GetInterfaceName:string; override; + + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + + { IsrvControles } + IsrvControles = interface(IDARemoteService) + ['{A0C11144-A1B7-408D-BA07-63565D587662}'] + end; + + { CosrvControles } + CosrvControles = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; + end; + + { TsrvControles_Proxy } + TsrvControles_Proxy = class(TDARemoteService_Proxy, IsrvControles) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvVentasEnProceso } + IsrvVentasEnProceso = interface(IDARemoteService) + ['{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'] + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + + { CosrvVentasEnProceso } + CosrvVentasEnProceso = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; + end; + + { TsrvVentasEnProceso_Proxy } + TsrvVentasEnProceso_Proxy = class(TDARemoteService_Proxy, IsrvVentasEnProceso) + protected + function __GetInterfaceName:string; override; + + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + + { IEDI_Log } + IEDI_Log = interface(IDARemoteService) + ['{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'] + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + + { CoEDI_Log } + CoEDI_Log = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; + end; + + { TEDI_Log_Proxy } + TEDI_Log_Proxy = class(TDARemoteService_Proxy, IEDI_Log) + protected + function __GetInterfaceName:string; override; + + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + + { IsrvReferenciaGenerica } + IsrvReferenciaGenerica = interface(IDARemoteService) + ['{994518CC-96BD-4976-ABC6-9B421A4B65D3}'] + function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + + { CosrvReferenciaGenerica } + CosrvReferenciaGenerica = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; + end; + + { TsrvReferenciaGenerica_Proxy } + TsrvReferenciaGenerica_Proxy = class(TDARemoteService_Proxy, IsrvReferenciaGenerica) + protected + function __GetInterfaceName:string; override; + + function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + + { IsrvRecepciones } + IsrvRecepciones = interface(IDARemoteService) + ['{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'] + end; + + { CosrvRecepciones } + CosrvRecepciones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; + end; + + { TsrvRecepciones_Proxy } + TsrvRecepciones_Proxy = class(TDARemoteService_Proxy, IsrvRecepciones) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvDevoluciones } + IsrvDevoluciones = interface(IDARemoteService) + ['{87C31D12-C353-437F-A7A3-10882373AB54}'] + end; + + { CosrvDevoluciones } + CosrvDevoluciones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; + end; + + { TsrvDevoluciones_Proxy } + TsrvDevoluciones_Proxy = class(TDARemoteService_Proxy, IsrvDevoluciones) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvTraspasos } + IsrvTraspasos = interface(IDARemoteService) + ['{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'] + end; + + { CosrvTraspasos } + CosrvTraspasos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; + end; + + { TsrvTraspasos_Proxy } + TsrvTraspasos_Proxy = class(TDARemoteService_Proxy, IsrvTraspasos) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvStock } + IsrvStock = interface(IDARemoteService) + ['{F617B727-5B8B-4645-BBB2-3D645AB31981}'] + end; + + { CosrvStock } + CosrvStock = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; + end; + + { TsrvStock_Proxy } + TsrvStock_Proxy = class(TDARemoteService_Proxy, IsrvStock) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvParametros } + IsrvParametros = interface(IDARemoteService) + ['{E5177628-952A-4217-80C0-36F59E423EC4}'] + end; + + { CosrvParametros } + CosrvParametros = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; + end; + + { TsrvParametros_Proxy } + TsrvParametros_Proxy = class(TDARemoteService_Proxy, IsrvParametros) + protected + function __GetInterfaceName:string; override; + + end; + +implementation + +uses + {vcl:} SysUtils, + {RemObjects:} uROEventRepository, uROSerializer, uRORes; + +{ TLoginInfo } + +procedure TLoginInfo.Assign(iSource: TPersistent); +var lSource: VARELA_Intf.TLoginInfo; +begin + inherited Assign(iSource); + if (iSource is VARELA_Intf.TLoginInfo) then begin + lSource := VARELA_Intf.TLoginInfo(iSource); + Roles.Assign(lSource.Roles); + end; +end; + +function TLoginInfo.GetRoles: TDAStringArray; +begin + if (fRoles = nil) then fRoles := TDAStringArray.Create(); + result := fRoles; +end; + +procedure TLoginInfo.ReadComplex(ASerializer: TObject); +var + l_Attributes: TDAStringArray; + l_Data: Binary; + l_Privileges: TDAStringArray; + l_Roles: TDAStringArray; + l_SessionID: String; + l_UserID: String; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + inherited; + l_Roles := Roles; + TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); + if Roles <> l_Roles then Roles.Free; + Roles := l_Roles; + end + else begin + l_Attributes := Attributes; + TROSerializer(ASerializer).ReadArray('Attributes', TDAStringArray, l_Attributes); + if Attributes <> l_Attributes then Attributes.Free; + Attributes := l_Attributes; + l_Data := Data; + TROSerializer(ASerializer).ReadBinary('Data', l_Data); + if Data <> l_Data then Data.Free; + Data := l_Data; + l_Privileges := Privileges; + TROSerializer(ASerializer).ReadArray('Privileges', TDAStringArray, l_Privileges); + if Privileges <> l_Privileges then Privileges.Free; + Privileges := l_Privileges; + l_Roles := Roles; + TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); + if Roles <> l_Roles then Roles.Free; + Roles := l_Roles; + l_SessionID := SessionID; + TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID); + SessionID := l_SessionID; + l_UserID := UserID; + TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID); + UserID := l_UserID; + end; +end; + +procedure TLoginInfo.WriteComplex(ASerializer: TObject); +var + l_Attributes: TDAStringArray; + l_Data: Binary; + l_Privileges: TDAStringArray; + l_Roles: TDAStringArray; + l_SessionID: String; + l_UserID: String; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + inherited; + l_Roles := Roles; + TROSerializer(ASerializer).WriteArray('Roles', l_Roles); + end + else begin + l_Attributes := Attributes; + TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes); + l_Data := Data; + TROSerializer(ASerializer).WriteBinary('Data', l_Data); + l_Privileges := Privileges; + TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges); + l_Roles := Roles; + TROSerializer(ASerializer).WriteArray('Roles', l_Roles); + l_SessionID := SessionID; + TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID); + l_UserID := UserID; + TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID); + end; +end; + +{ TLoginInfoCollection } +constructor TLoginInfoCollection.Create; +begin + inherited Create(TLoginInfo); +end; + +constructor TLoginInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function TLoginInfoCollection.Add: TLoginInfo; +begin + result := TLoginInfo(inherited Add); +end; + +function TLoginInfoCollection.GetItems(aIndex: integer): TLoginInfo; +begin + result := TLoginInfo(inherited Items[aIndex]); +end; + +procedure TLoginInfoCollection.SetItems(aIndex: integer; const Value: TLoginInfo); +begin + TLoginInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ CoEDI_Inventary } + +class function CoEDI_Inventary.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; +begin + result := TEDI_Inventary_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Inventary_Proxy } + +function TEDI_Inventary_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Inventary'; +end; + +function TEDI_Inventary_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); + __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Write('FicheroLIN', TypeInfo(String), FicheroLIN, []); + __Message.Write('FicheroCANT', TypeInfo(String), FicheroCANT, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('MsgError', TypeInfo(String), MsgError, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CoEDI_Sales } + +class function CoEDI_Sales.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; +begin + result := TEDI_Sales_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Sales_Proxy } + +function TEDI_Sales_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Sales'; +end; + +function TEDI_Sales_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); + __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Write('FicheroLUG', TypeInfo(String), FicheroLUG, []); + __Message.Write('FicheroART', TypeInfo(String), FicheroART, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('MsgError', TypeInfo(String), MsgError, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvLogin } + +class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; +begin + result := TsrvLogin_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvLogin_Proxy } + +function TsrvLogin_Proxy.__GetInterfaceName:string; +begin + result := 'srvLogin'; +end; + +function TsrvLogin_Proxy.Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; +begin + try + LoginInfo := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Login'); + __Message.Write('UserID', TypeInfo(String), UserID, []); + __Message.Write('Password', TypeInfo(String), Password, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvLogin_Proxy.Logout; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Logout'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.Ping: Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Ping'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.SetUserPassword(const UserID: String; const NewPassword: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'SetUserPassword'); + __Message.Write('UserID', TypeInfo(String), UserID, []); + __Message.Write('NewPassword', TypeInfo(String), NewPassword, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.UpdateUsers(const UsersDelta: Binary): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UpdateUsers'); + __Message.Write('UsersDelta', TypeInfo(Binary), UsersDelta, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvVentasTerminadas } + +class function CosrvVentasTerminadas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; +begin + result := TsrvVentasTerminadas_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvVentasTerminadas_Proxy } + +function TsrvVentasTerminadas_Proxy.__GetInterfaceName:string; +begin + result := 'srvVentasTerminadas'; +end; + +function TsrvVentasTerminadas_Proxy.GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataEx'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Write('Params', TypeInfo(String), Params, []); + __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataCrossTab'); + __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchemaCrossTab'); + __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvInformes } + +class function CosrvInformes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; +begin + result := TsrvInformes_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvInformes_Proxy.__GetInterfaceName:string; +begin + result := 'srvInformes'; +end; + +{ CosrvTransfereciaFicheros } + +class function CosrvTransfereciaFicheros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; +begin + result := TsrvTransfereciaFicheros_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvTransfereciaFicheros_Proxy } + +function TsrvTransfereciaFicheros_Proxy.__GetInterfaceName:string; +begin + result := 'srvTransfereciaFicheros'; +end; + +procedure TsrvTransfereciaFicheros_Proxy.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadChunk'); + __Message.Write('IsFirst', TypeInfo(Boolean), IsFirst, []); + __Message.Write('Filename', TypeInfo(String), Filename, []); + __Message.Write('Filedata', TypeInfo(Binary), Filedata, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvTransfereciaFicheros_Proxy.UploadFinished(const Filename: String; const Filesize: Int64); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadFinished'); + __Message.Write('Filename', TypeInfo(String), Filename, []); + __Message.Write('Filesize', TypeInfo(Int64), Filesize, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvControles } + +class function CosrvControles.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; +begin + result := TsrvControles_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvControles_Proxy.__GetInterfaceName:string; +begin + result := 'srvControles'; +end; + +{ CosrvVentasEnProceso } + +class function CosrvVentasEnProceso.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; +begin + result := TsrvVentasEnProceso_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvVentasEnProceso_Proxy } + +function TsrvVentasEnProceso_Proxy.__GetInterfaceName:string; +begin + result := 'srvVentasEnProceso'; +end; + +function TsrvVentasEnProceso_Proxy.GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetData'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Write('Params', TypeInfo(String), Params, []); + __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasEnProceso_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CoEDI_Log } + +class function CoEDI_Log.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; +begin + result := TEDI_Log_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Log_Proxy } + +function TEDI_Log_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Log'; +end; + +procedure TEDI_Log_Proxy.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'InsertarLog'); + __Message.Write('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); + __Message.Write('Report', TypeInfo(String), Report, []); + __Message.Write('OK', TypeInfo(Boolean), OK, []); + __Message.Write('Error_msg', TypeInfo(String), Error_msg, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvReferenciaGenerica } + +class function CosrvReferenciaGenerica.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; +begin + result := TsrvReferenciaGenerica_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvReferenciaGenerica_Proxy } + +function TsrvReferenciaGenerica_Proxy.__GetInterfaceName:string; +begin + result := 'srvReferenciaGenerica'; +end; + +function TsrvReferenciaGenerica_Proxy.GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetProducto'); + __Message.Write('Codigo', TypeInfo(String), Codigo, []); + __Message.Write('Talla', TypeInfo(String), Talla, []); + __Message.Write('Color', TypeInfo(String), Color, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('CodigoBarras', TypeInfo(String), CodigoBarras, []); + __Message.Read('Descripcion', TypeInfo(String), Descripcion, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvReferenciaGenerica_Proxy.GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GenerateReport'); + __Message.Write('Centro', TypeInfo(String), Centro, []); + __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Write('Estado', TypeInfo(String), Estado, []); + __Message.Write('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvReferenciaGenerica_Proxy.PasarProductosAEspera(const Centro: String; const Vendedor: String); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'PasarProductosAEspera'); + __Message.Write('Centro', TypeInfo(String), Centro, []); + __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvRecepciones } + +class function CosrvRecepciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; +begin + result := TsrvRecepciones_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvRecepciones_Proxy.__GetInterfaceName:string; +begin + result := 'srvRecepciones'; +end; + +{ CosrvDevoluciones } + +class function CosrvDevoluciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; +begin + result := TsrvDevoluciones_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvDevoluciones_Proxy.__GetInterfaceName:string; +begin + result := 'srvDevoluciones'; +end; + +{ CosrvTraspasos } + +class function CosrvTraspasos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; +begin + result := TsrvTraspasos_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvTraspasos_Proxy.__GetInterfaceName:string; +begin + result := 'srvTraspasos'; +end; + +{ CosrvStock } + +class function CosrvStock.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; +begin + result := TsrvStock_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvStock_Proxy.__GetInterfaceName:string; +begin + result := 'srvStock'; +end; + +{ CosrvParametros } + +class function CosrvParametros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; +begin + result := TsrvParametros_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvParametros_Proxy.__GetInterfaceName:string; +begin + result := 'srvParametros'; +end; + +initialization + RegisterROClass(TLoginInfo); + RegisterProxyClass(IEDI_Inventary_IID, TEDI_Inventary_Proxy); + RegisterProxyClass(IEDI_Sales_IID, TEDI_Sales_Proxy); + RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); + RegisterProxyClass(IsrvVentasTerminadas_IID, TsrvVentasTerminadas_Proxy); + RegisterProxyClass(IsrvInformes_IID, TsrvInformes_Proxy); + RegisterProxyClass(IsrvTransfereciaFicheros_IID, TsrvTransfereciaFicheros_Proxy); + RegisterProxyClass(IsrvControles_IID, TsrvControles_Proxy); + RegisterProxyClass(IsrvVentasEnProceso_IID, TsrvVentasEnProceso_Proxy); + RegisterProxyClass(IEDI_Log_IID, TEDI_Log_Proxy); + RegisterProxyClass(IsrvReferenciaGenerica_IID, TsrvReferenciaGenerica_Proxy); + RegisterProxyClass(IsrvRecepciones_IID, TsrvRecepciones_Proxy); + RegisterProxyClass(IsrvDevoluciones_IID, TsrvDevoluciones_Proxy); + RegisterProxyClass(IsrvTraspasos_IID, TsrvTraspasos_Proxy); + RegisterProxyClass(IsrvStock_IID, TsrvStock_Proxy); + RegisterProxyClass(IsrvParametros_IID, TsrvParametros_Proxy); + + +finalization + UnregisterROClass(TLoginInfo); + UnregisterProxyClass(IEDI_Inventary_IID); + UnregisterProxyClass(IEDI_Sales_IID); + UnregisterProxyClass(IsrvLogin_IID); + UnregisterProxyClass(IsrvVentasTerminadas_IID); + UnregisterProxyClass(IsrvInformes_IID); + UnregisterProxyClass(IsrvTransfereciaFicheros_IID); + UnregisterProxyClass(IsrvControles_IID); + UnregisterProxyClass(IsrvVentasEnProceso_IID); + UnregisterProxyClass(IEDI_Log_IID); + UnregisterProxyClass(IsrvReferenciaGenerica_IID); + UnregisterProxyClass(IsrvRecepciones_IID); + UnregisterProxyClass(IsrvDevoluciones_IID); + UnregisterProxyClass(IsrvTraspasos_IID); + UnregisterProxyClass(IsrvStock_IID); + UnregisterProxyClass(IsrvParametros_IID); + +end. diff --git a/Source/Servidor/VARELA_Invk.pas b/Source/Servidor/VARELA_Invk.pas new file mode 100644 index 0000000..5bf9316 --- /dev/null +++ b/Source/Servidor/VARELA_Invk.pas @@ -0,0 +1,707 @@ +unit VARELA_Invk; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, + {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf, + {Used RODL Intf's:} DataAbstract3_Intf, + {Used RODL Invk's:} DataAbstract3_Invk, + {Generated:} VARELA_Intf; + +type + {$M+} + TEDI_Inventary_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TEDI_Sales_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvLogin_Invoker = class(TROInvoker) + private + protected + published + procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvVentasTerminadas_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvInformes_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvTransfereciaFicheros_Invoker = class(TROInvoker) + private + protected + published + procedure Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvControles_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvVentasEnProceso_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TEDI_Log_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvReferenciaGenerica_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvRecepciones_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvDevoluciones_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvTraspasos_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvStock_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvParametros_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + +implementation + +uses + {RemObjects:} uRORes, uROClient; + +{ TEDI_Inventary_Invoker } + +procedure TEDI_Inventary_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; } +var + FicheroCAB: String; + FicheroLIN: String; + FicheroCANT: String; + MsgError: String; + lResult: Boolean; +begin + try + __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Read('FicheroLIN', TypeInfo(String), FicheroLIN, []); + __Message.Read('FicheroCANT', TypeInfo(String), FicheroCANT, []); + + lResult := (__Instance as IEDI_Inventary).CargarFicheroEDI(FicheroCAB, FicheroLIN, FicheroCANT, MsgError); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Inventary', 'CargarFicheroEDIResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('MsgError', TypeInfo(String), MsgError, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TEDI_Sales_Invoker } + +procedure TEDI_Sales_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; } +var + FicheroCAB: String; + FicheroLUG: String; + FicheroART: String; + MsgError: String; + lResult: Boolean; +begin + try + __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Read('FicheroLUG', TypeInfo(String), FicheroLUG, []); + __Message.Read('FicheroART', TypeInfo(String), FicheroART, []); + + lResult := (__Instance as IEDI_Sales).CargarFicheroEDI(FicheroCAB, FicheroLUG, FicheroART, MsgError); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Sales', 'CargarFicheroEDIResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('MsgError', TypeInfo(String), MsgError, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvLogin_Invoker } + +procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; } +var + UserID: String; + Password: String; + LoginInfo: VARELA_Intf.TLoginInfo; + lResult: Boolean; + __lObjectDisposer: TROObjectDisposer; +begin + LoginInfo := nil; + try + __Message.Read('UserID', TypeInfo(String), UserID, []); + __Message.Read('Password', TypeInfo(String), Password, []); + + lResult := (__Instance as IsrvLogin).Login(UserID, Password, LoginInfo); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LoginResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(LoginInfo); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure Logout; } +begin + try + (__Instance as IsrvLogin).Logout; + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LogoutResponse'); + __Message.Finalize; + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Ping: Boolean; } +var + lResult: Boolean; +begin + try + lResult := (__Instance as IsrvLogin).Ping; + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'PingResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; } +var + UserID: String; + NewPassword: String; + lResult: Boolean; +begin + try + __Message.Read('UserID', TypeInfo(String), UserID, []); + __Message.Read('NewPassword', TypeInfo(String), NewPassword, []); + + lResult := (__Instance as IsrvLogin).SetUserPassword(UserID, NewPassword); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'SetUserPasswordResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function UpdateUsers(const UsersDelta: Binary): Binary; } +var + UsersDelta: Binary; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + UsersDelta := nil; + lResult := nil; + try + __Message.Read('UsersDelta', TypeInfo(Binary), UsersDelta, []); + + lResult := (__Instance as IsrvLogin).UpdateUsers(UsersDelta); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'UpdateUsersResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(UsersDelta); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvVentasTerminadas_Invoker } + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } +var + DatasetName: String; + Columns: String; + Params: String; + MaxRecords: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + __Message.Read('Params', TypeInfo(String), Params, []); + __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetDataEx(DatasetName, Columns, Params, MaxRecords); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataExResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } +var + DatasetName: String; + Columns: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetSchema(DatasetName, Columns); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } +var + FechaIni: String; + FechaFin: String; + Coleccion: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetDataCrossTab(FechaIni, FechaFin, Coleccion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataCrossTabResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } +var + FechaIni: String; + FechaFin: String; + Coleccion: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetSchemaCrossTab(FechaIni, FechaFin, Coleccion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaCrossTabResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvTransfereciaFicheros_Invoker } + +procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); } +var + IsFirst: Boolean; + Filename: String; + Filedata: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + Filedata := nil; + try + __Message.Read('IsFirst', TypeInfo(Boolean), IsFirst, []); + __Message.Read('Filename', TypeInfo(String), Filename, []); + __Message.Read('Filedata', TypeInfo(Binary), Filedata, []); + + (__Instance as IsrvTransfereciaFicheros).UploadChunk(IsFirst, Filename, Filedata); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadChunkResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(Filedata); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure UploadFinished(const Filename: String; const Filesize: Int64); } +var + Filename: String; + Filesize: Int64; +begin + try + __Message.Read('Filename', TypeInfo(String), Filename, []); + __Message.Read('Filesize', TypeInfo(Int64), Filesize, []); + + (__Instance as IsrvTransfereciaFicheros).UploadFinished(Filename, Filesize); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadFinishedResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +{ TsrvVentasEnProceso_Invoker } + +procedure TsrvVentasEnProceso_Invoker.Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } +var + DatasetName: String; + Columns: String; + Params: String; + MaxRecords: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + __Message.Read('Params', TypeInfo(String), Params, []); + __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); + + lResult := (__Instance as IsrvVentasEnProceso).GetData(DatasetName, Columns, Params, MaxRecords); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetDataResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasEnProceso_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } +var + DatasetName: String; + Columns: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + + lResult := (__Instance as IsrvVentasEnProceso).GetSchema(DatasetName, Columns); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetSchemaResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TEDI_Log_Invoker } + +procedure TEDI_Log_Invoker.Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); } +var + Fecha: DateTime; + Report: String; + OK: Boolean; + Error_msg: String; +begin + try + __Message.Read('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); + __Message.Read('Report', TypeInfo(String), Report, []); + __Message.Read('OK', TypeInfo(Boolean), OK, []); + __Message.Read('Error_msg', TypeInfo(String), Error_msg, []); + + (__Instance as IEDI_Log).InsertarLog(Fecha, Report, OK, Error_msg); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Log', 'InsertarLogResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +{ TsrvReferenciaGenerica_Invoker } + +procedure TsrvReferenciaGenerica_Invoker.Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; } +var + Codigo: String; + Talla: String; + Color: String; + CodigoBarras: String; + Descripcion: String; + lResult: Boolean; +begin + try + __Message.Read('Codigo', TypeInfo(String), Codigo, []); + __Message.Read('Talla', TypeInfo(String), Talla, []); + __Message.Read('Color', TypeInfo(String), Color, []); + + lResult := (__Instance as IsrvReferenciaGenerica).GetProducto(Codigo, Talla, Color, CodigoBarras, Descripcion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GetProductoResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('CodigoBarras', TypeInfo(String), CodigoBarras, []); + __Message.Write('Descripcion', TypeInfo(String), Descripcion, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvReferenciaGenerica_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; } +var + Centro: String; + Vendedor: String; + Estado: String; + FiltroUsuario: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('Centro', TypeInfo(String), Centro, []); + __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Read('Estado', TypeInfo(String), Estado, []); + __Message.Read('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); + + lResult := (__Instance as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, FiltroUsuario); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvReferenciaGenerica_Invoker.Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); } +var + Centro: String; + Vendedor: String; +begin + try + __Message.Read('Centro', TypeInfo(String), Centro, []); + __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); + + (__Instance as IsrvReferenciaGenerica).PasarProductosAEspera(Centro, Vendedor); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'PasarProductosAEsperaResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +end. diff --git a/Source/Servidor/cxVerticalGridD10.drc b/Source/Servidor/cxVerticalGridD10.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Source/Servidor/cxVerticalGridD10.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Source/Servidor/fServerForm.ddp b/Source/Servidor/fServerForm.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/fServerForm.dfm b/Source/Servidor/fServerForm.dfm new file mode 100644 index 0000000..af1bd52 --- /dev/null +++ b/Source/Servidor/fServerForm.dfm @@ -0,0 +1,1069 @@ +object ServerForm: TServerForm + Left = 806 + Top = 611 + BorderStyle = bsDialog + Caption = 'Administrador de puntos de venta - Server' + ClientHeight = 255 + ClientWidth = 371 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 371 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Memo1: TMemo + Left = 24 + Top = 72 + Width = 329 + Height = 129 + Lines.Strings = ( + 'Memo1') + ScrollBars = ssVertical + TabOrder = 0 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Image1: TImage + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alClient + Center = True + Picture.Data = { + 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF + F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A + 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC + FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA + FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 + A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 + 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 + EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 + 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD + FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 + F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF + EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 + F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 + 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 + 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 + 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 + 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED + F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 + 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 + CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F + 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C + 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 + A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 + 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 + ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 + 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 + 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 + 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E + 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F + 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 + E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C + 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 + D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 + AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 + B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 + 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 + 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 + 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E + AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 + 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 + 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 + 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 + 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 + 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 + 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 + 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B + 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD + 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 + F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 + 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 + 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A + C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E + 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 + 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 + 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A + 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 + 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 + 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 + 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 + 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 + D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 + 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 + E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C + 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E + 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 + 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 + 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D + 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A + 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B + 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 + 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB + 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 + 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 + 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 + 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA + D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 + 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 + 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 + 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 + 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 + 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 + 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 + B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B + 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 + 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB + 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B + 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE + A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC + EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B + 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 + 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 + 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C + 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 + A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 + 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 + 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 + 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F + 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B + 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 + 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 + 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F + 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB + 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D + F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 + 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 + 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C + 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 + 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 + 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F + A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 + 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 + BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 + 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 + 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 + BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 + 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B + D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B + A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A + 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 + 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 + 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 + 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 + 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 + 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A + D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 + DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 + 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 + 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 + 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE + 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 + 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B + 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E + 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 + 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 + 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 + 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 + 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 + CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 + 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 + 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E + 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 + 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 + E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA + AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 + BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 + 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 + 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 + 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B + B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD + D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C + 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 + 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 + AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F + 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C + F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 + 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E + 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 + 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 + 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B + 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 + 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA + BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE + EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 + DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 + 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 + BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 + 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 + 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 + 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 + F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 + 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E + 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF + 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 + 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C + 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 + 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 + 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 + 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF + 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 + 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 + 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 + 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 + 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 + 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA + 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB + 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA + AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 + 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E + 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 + 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E + 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 + CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C + 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 + 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 + 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 + 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C + 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 + 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 + D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 + ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 + 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF + 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 + 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 + A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E + 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A + 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 + 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 + 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 + 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 + 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 + 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 + B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 + 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF + 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A + 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 + 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 + B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 + 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 + 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 + 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 + 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA + D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 + 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A + D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA + 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 + DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 + 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 + 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA + 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 + 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 + 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 + 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 + A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C + 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B + 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C + 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 + 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC + 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A + 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC + 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 + 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 + 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 + 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D + 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 + 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 + 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B + B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F + 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 + A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 + 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B + 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 + ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 + 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E + ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 + 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 + 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 + 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 + EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D + 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F + 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA + B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 + F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E + 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 + 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 + 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 + 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C + 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 + 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 + F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 + 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C + D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 + 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 + 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 + 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D + CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 + 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C + B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D + 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 + A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F + 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 + 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C + 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C + 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 + 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 + 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 + 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C + 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 + E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 + 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 + 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 + B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 + 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F + 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 + C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 + 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F + 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 + A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 + DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 + ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA + A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC + B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E + 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F + 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 + E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 + 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E + C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C + 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B + A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 + EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB + 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F + 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 + 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B + B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 + 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E + 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 + B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F + 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 + 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D + 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E + 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C + CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B + 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A + 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 + BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 + FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 + CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD + BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 + F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 + D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 + 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE + 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D + D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D + 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 + 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 + 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 + 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 + 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 + AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 + 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E + D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B + 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 + D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 + 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF + 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 + E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 + 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 + 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E + E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E + E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 + 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 + CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 + 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 + 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 + 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 + 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 + 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 + DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 + 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 + 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 + 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF + FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A + 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 + 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E + 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 + 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 + AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 + A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 + 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C + 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 + 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 + 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE + CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 + 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 + 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 + 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 + 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 + C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB + 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 + 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 + 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 + 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 + DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 + DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B + 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E + E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 + AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E + 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 + 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 + 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC + A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA + 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 + AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC + 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 + 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 + C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 + 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE + 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 + 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 + 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 + 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 + 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 + B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 + 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 + CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A + 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 + 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A + 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 + E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 + 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 + AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A + 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 + C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 + 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 + 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 + 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 + 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 + A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C + 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 + 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 + 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C + 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 + D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C + E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA + 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 + 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 + 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 + 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 + C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB + 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B + 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA + 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 + 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 + 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E + C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D + 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E + F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B + 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 + F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 + A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A + 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 + 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 + 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 + EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 + 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 + D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 + 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 + 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B + C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 + 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 + 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C + 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 + 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC + 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E + E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB + 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 + 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 + 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E + 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 + 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 + 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 + 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 + F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA + 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 + 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 + 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D + F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 + 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 + 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 + C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B + 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 + 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D + DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 + 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC + 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 + 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 + 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE + 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A + 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED + 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A + 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 + 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 + 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D + 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 + 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 + A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE + E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 + 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 + 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 + B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C + 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 + 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 + A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 + 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E + E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC + 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE + B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 + C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B + 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E + DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 + 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 + ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB + E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B + FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 + 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC + 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 + 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 + DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 + BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E + 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F + 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 + 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE + B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 + 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E + A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 + 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 + 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F + 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 + 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC + DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB + 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E + B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 + 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 + 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 + E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 + F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 + E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 + 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E + AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E + F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C + 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 + 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC + 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 + 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE + 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 + 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B + 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E + 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 + 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D + 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 + 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 + DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 + 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D + 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 + 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C + CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 + 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A + 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 + A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 + A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C + 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 + 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 + 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B + 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 + D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB + 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 + 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 + D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 + BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F + 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 + 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 + DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 + 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 + 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 + CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B + 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 + 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 + 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C + 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 + 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 + E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 + 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 + 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA + F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 + 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E + 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D + 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 + 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 + 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 + E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 + 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 + 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 + 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 + 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 + 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D + E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 + 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 + A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE + 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C + 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 + DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 + EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C + 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F + 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 + 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D + 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 + 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB + 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D + 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 + 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D + E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF + 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D + 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B + AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 + 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 + BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F + 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 + 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 + BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 + 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F + 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA + 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 + 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C + 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 + 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 + 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 + F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 + 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D + 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 + 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 + 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F + 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D + 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 + 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 + 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 + 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 + 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D + 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 + 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A + A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 + 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 + 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 + A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 + 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D + A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 + 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 + 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 + E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F + 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 + 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 + 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A + A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 + 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 + 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 + 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 + 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 + C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC + 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E + 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 + 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 + 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 + 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 + 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 + A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 + 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B + 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 + 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 + 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E + A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD + D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B + BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 + 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 + F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 + ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF + A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C + AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 + 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 + 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C + CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 + 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 + 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B + D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 + DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 + B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 + 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 + 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB + D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 + 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 + 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 + D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 + 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 + 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED + 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 + 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D + DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 + DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B + 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D + 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 + 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D + 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 + FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE + 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 + 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 + 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 + 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 + EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 + BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 + CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB + 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C + 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 + 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E + 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 + 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 + 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 + 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 + DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D + CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 + 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 + A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C + 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 + B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE + CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF + EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 + 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 + 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 + A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 + 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A + 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 + 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 + B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 + 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D + 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 + 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C + B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 + 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 + 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 + D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E + 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B + 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 + 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 + 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C + 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 + 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 + 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C + 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 + 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 + EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 + C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A + 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 + 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 + 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 + C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A + CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 + C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F + 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D + CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 + 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 + 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 + 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E + D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 + C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A + 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A + A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 + 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 + 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 + E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 + 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 + AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 + CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 + 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D + 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD + E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C + B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C + 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA + 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E + 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 + 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A + 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 + 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F + 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 + 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 + 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 + 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 + D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A + 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD + CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 + E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 + DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 + FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 + C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F + DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 + 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 + 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD + EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F + 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 + D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 + 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 + 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 + 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 + 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 + 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 + 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 + 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 + 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE + 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C + C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 + 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE + F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 + 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF + 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 + 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 + 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 + 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F + 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 + 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE + 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D + 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 + 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D + 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 + 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 + 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 + 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 + 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B + 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 + D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF + F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B + 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A + A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 + 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E + FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 + ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B + FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 + FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF + B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 + 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 + 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B + B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 + 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 + 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 + 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 + F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F + 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D + 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A + 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 + 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 + 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B + BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B + F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A + D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 + 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 + 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 + 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE + 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 + 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 + 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E + 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF + 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 + 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 + 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A + D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB + 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 + 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD + 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 + A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF + 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 + 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 + C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D + DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B + C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 + 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A + 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C + 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 + 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 + EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 + 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE + E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 + BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB + 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 + 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 + 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 + 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 + 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF + 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 + ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 + 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 + 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 + 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 + 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 + 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D + F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 + A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F + F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 + 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A + 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC + B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC + DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 + 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C + 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD + 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 + 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 + 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 + 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C + 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 + DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE + 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 + 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 + 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C + C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 + 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 + 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 + E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 + A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D + B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE + 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D + AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A + E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 + 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 + FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 + C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 + D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 + 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 + B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA + EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F + 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F + 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 + BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 + E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 + 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 + 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B + BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 + 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 + 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 + 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 + DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 + 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 + CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B + B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 + 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C + 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 + 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 + E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 + 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 + 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A + 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA + BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 + D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 + 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B + 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 + C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 + 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 + E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 + CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC + 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 + 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C + 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 + 0DE44000003B} + end + end + object Button1: TButton + Left = 24 + Top = 216 + Width = 75 + Height = 25 + Caption = 'Button1' + TabOrder = 2 + end + object PopupMenu1: TPopupMenu + Left = 104 + Top = 16 + object Opciones1: TMenuItem + Action = actOpciones + end + object Refrescarconexin1: TMenuItem + Action = actRestart + end + object N2: TMenuItem + Caption = '-' + end + object Acercade1: TMenuItem + Action = actAcerca + end + object N1: TMenuItem + Caption = '-' + end + object Cerrar1: TMenuItem + Action = actCerrar + end + end + object ActionList: TActionList + Left = 72 + Top = 16 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actRestart: TAction + Caption = 'Refrescar conexi'#243'n' + OnExecute = actRestartExecute + end + object actOpciones: TAction + Caption = '&Configuraci'#243'n...' + OnExecute = actOpcionesExecute + end + object actConexiones: TAction + Caption = 'Lista de conexiones...' + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object XPManifest1: TXPManifest + Left = 40 + Top = 16 + end + object JvTrayIcon: TJvTrayIcon + IconIndex = 0 + DropDownMenu = PopupMenu1 + PopupMenu = PopupMenu1 + Delay = 300 + Snap = True + Visibility = [tvVisibleTaskBar, tvAutoHide] + Left = 8 + Top = 16 + end +end diff --git a/Source/Servidor/fServerForm.pas b/Source/Servidor/fServerForm.pas new file mode 100644 index 0000000..5872ec9 --- /dev/null +++ b/Source/Servidor/fServerForm.pas @@ -0,0 +1,103 @@ +unit fServerForm; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, + uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, + uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, frxClass, frxPreview, + JvComponent, JvTrayIcon, ActnList, Menus, XPMan, JvExControls, + JvGradient, JvGIF, ExtCtrls, JvComponentBase; + +type + TServerForm = class(TForm) + Memo1: TMemo; + PopupMenu1: TPopupMenu; + ActionList: TActionList; + actCerrar: TAction; + Cerrar1: TMenuItem; + actRestart: TAction; + actOpciones: TAction; + actConexiones: TAction; + Opciones1: TMenuItem; + Refrescarconexin1: TMenuItem; + N2: TMenuItem; + XPManifest1: TXPManifest; + JvTrayIcon: TJvTrayIcon; + Panel1: TPanel; + Image1: TImage; + JvGradient1: TJvGradient; + Button1: TButton; + actAcerca: TAction; + Acercade1: TMenuItem; + N1: TMenuItem; + procedure actCerrarExecute(Sender: TObject); + procedure actRestartExecute(Sender: TObject); + procedure actOpcionesExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure actAcercaExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + ServerForm: TServerForm; + +implementation + +uses + uDataModuleServer, uConfiguracion, EDI_SLSRPT, uAcercaDe; + + +{$R *.dfm} + +procedure TServerForm.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TServerForm.actRestartExecute(Sender: TObject); +begin + dmServer.RefrescarConexion; +end; + +procedure TServerForm.actOpcionesExecute(Sender: TObject); +var + AForm : TForm; +begin + AForm := TfConfiguracion.Create(NIL); + try + AForm.ShowModal; + finally + AForm.Free; + actRestart.Execute; + end; +end; + +procedure TServerForm.FormCreate(Sender: TObject); +begin + JvTrayIcon.HideApplication; + JvTrayIcon.Hint := 'Administración de puntos de venta (Servidor)' + + #10#13 + dmServer.ConnectionName; + JvTrayIcon.Active := True; +end; + +procedure TServerForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + JvTrayIcon.Active := False; +end; + +procedure TServerForm.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + +end. diff --git a/Source/Servidor/srvInformes_Impl.ddp b/Source/Servidor/srvInformes_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/srvInformes_Impl.dfm b/Source/Servidor/srvInformes_Impl.dfm new file mode 100644 index 0000000..90074b2 --- /dev/null +++ b/Source/Servidor/srvInformes_Impl.dfm @@ -0,0 +1,331 @@ +object srvInformes: TsrvInformes + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schInformes + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schInformes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = 'VENTAS' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + + 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'ICONO' + TableField = 'ICONO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ORDEN' + TableField = 'ORDEN' + end + item + DatasetField = 'VISTA' + TableField = 'VISTA' + end + item + DatasetField = 'MODIFICABLE' + TableField = 'MODIFICABLE' + end> + end> + Name = 'ListaInformesPorCategoria' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DefaultValue = 'S' + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + + 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + + 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ListaInformesPorCategoria' + end + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + + 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + + 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + + 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ListaInformesPorCategoria' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object bpInformes: TDABusinessProcessor + Schema = schInformes + InsertCommandName = 'Insert_ListaInformesPorCategoria' + UpdateCommandName = 'Update_ListaInformesPorCategoria' + ReferencedDataset = 'ListaInformesPorCategoria' + ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 144 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 40 + Top = 96 + end +end diff --git a/Source/Servidor/srvInformes_Impl.pas b/Source/Servidor/srvInformes_Impl.pas new file mode 100644 index 0000000..57b76b9 --- /dev/null +++ b/Source/Servidor/srvInformes_Impl.pas @@ -0,0 +1,48 @@ +unit srvInformes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvInformes } + TsrvInformes = class(TDARemoteService, IsrvInformes) + bpInformes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schInformes: TDASchema; + private + protected + { IsrvInformes methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvInformes(out anInstance : IUnknown); +begin + anInstance := TsrvInformes.Create(NIL); +end; + +{ srvInformes } +initialization + TROClassFactory.Create('srvInformes', Create_srvInformes, TsrvInformes_Invoker); + +finalization + +end. diff --git a/Source/Servidor/uAcercaDe.ddp b/Source/Servidor/uAcercaDe.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/uAcercaDe.dfm b/Source/Servidor/uAcercaDe.dfm new file mode 100644 index 0000000..f4ef396 --- /dev/null +++ b/Source/Servidor/uAcercaDe.dfm @@ -0,0 +1,959 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Source/Servidor/uAcercaDe.pas b/Source/Servidor/uAcercaDe.pas new file mode 100644 index 0000000..466c9fe --- /dev/null +++ b/Source/Servidor/uAcercaDe.pas @@ -0,0 +1,47 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Image1: TImage; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + procedure FormShow(Sender: TObject); + end; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); + end; + finally + FreeAndNil(Obj); + end; +end; + +end. diff --git a/Source/Servidor/uDataModuleServer.ddp b/Source/Servidor/uDataModuleServer.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Servidor/uDataModuleServer.dfm b/Source/Servidor/uDataModuleServer.dfm new file mode 100644 index 0000000..6a5f4cd --- /dev/null +++ b/Source/Servidor/uDataModuleServer.dfm @@ -0,0 +1,96 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 307 + Width = 382 + object HTTPServer: TROIndyHTTPServer + Encryption.UseCompression = True + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.DefaultPort = 8099 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Left = 136 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + TraceActive = True + TraceFlags = [toPrepare, toExecute, toFetch, toError, toStmt, toConnect, toTransact, toBlob, toService, toMisc, toParams] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + Connections = < + item + Name = 'GFT_VARELA' + ConnectionString = + 'ADO?AuxDriver=SQLOLEDB.1;Server=david;Database=GFT_VARELA;UserID' + + '=sa;Password=123456;Integrated Security=SSPI;' + Default = True + end> + DriverManager = DriverManager + PoolingEnabled = True + Left = 40 + Top = 80 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'IMPORTE' + DataType = datCurrency + DisplayLabel = 'Importe' + Alignment = taRightJustify + end> + Left = 40 + Top = 144 + end + object DADiagrams: TDADiagrams + Left = 136 + Top = 144 + DiagramData = + ''#13#10' '#13#10' '#13#10''#13#10 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + RegRoot = hkLocalMachine + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 136 + Top = 208 + end + object DAADODriver: TDAADODriver + Left = 304 + Top = 16 + end + object SessionManager: TROInMemorySessionManager + SessionDuration = -1 + Left = 224 + Top = 16 + end + object DAServerLog1: TDAServerLog + Active = True + OnAddSQLCommandLog = DAServerLog1AddSQLCommandLog + OnAddSQLErrorLog = DAServerLog1AddSQLErrorLog + Left = 224 + Top = 80 + end + object JvLogFile1: TJvLogFile + Left = 224 + Top = 144 + end +end diff --git a/Source/Servidor/uDataModuleServer.pas b/Source/Servidor/uDataModuleServer.pas new file mode 100644 index 0000000..0475be5 --- /dev/null +++ b/Source/Servidor/uDataModuleServer.pas @@ -0,0 +1,364 @@ +unit uDataModuleServer; + +interface + +uses + SysUtils, Classes, uDAEngine, uDAIBXDriver, uDAClasses, uDADriverManager, + uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, + uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, + JvAppStorage, JvAppRegistryStorage, uDAInterfaces, + JvComponentBase, uDAADODriver, uROEventRepository, uDAServerLog, ExceptionLog, + JvLogFile, SyncObjs; + +const + SERVER_PORT = '8099'; + +type + TdmServer = class(TDataModule) + HTTPServer: TROIndyHTTPServer; + BINMessage: TROBinMessage; + DriverManager: TDADriverManager; + DADiagrams: TDADiagrams; + JvAppRegistryStorage: TJvAppRegistryStorage; + DAADODriver: TDAADODriver; + SessionManager: TROInMemorySessionManager; + ConnectionManager: TDAConnectionManager; + DAServerLog1: TDAServerLog; + JvLogFile1: TJvLogFile; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + procedure HTTPServerBeforeServerActivate(Sender: TObject); + procedure DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; + SQLCommandLog: TDASQLCommandLog); + procedure DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; + SQLErrorLog: TDASQLErrorLog); + procedure DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); + private + FConnectionName : string; + FEscribirLog : TCriticalSection; + function GetConnectionString: string; + procedure FindFiles(StartDir: string; var FilesList: TStringList); + procedure IniciarLog; + procedure DetenerLog; + + public + FDBServer : string; + FDBName : string; + FDBUser : string; + FDBPass : string; + FInicioWindows : Boolean; + FServerPort : string; + FDirEntrada : String; + FDirAlmacen : String; + FDias : Integer; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + procedure RefrescarConexion; + procedure BorrarFicherosDeCargaAntiguos; + procedure EscribirLog(const AMensaje : String); + property ConnectionName : string read FConnectionName write FConnectionName; + end; + + +function DarRutaInformes : String; +function Encrypt (const Source : string) : String; +function Decrypt (const Source : string) : String; +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; +function GetTempDirectory(ABasePath : string) : string ; + + +var + dmServer: TdmServer; + +implementation + +{$R *.dfm} + +uses + DateUtils, JclFileUtils, ActiveX, Forms, fServerForm, Registry, Windows, Dialogs, + ADODB; + + +function GetTempDirectory(ABasePath : string) : string ; +var + fTime : TDateTime; + sFile : String; +Begin + Result := '' ; + + fTime := Frac(Now) ; + sFile := 'TMP' + Copy(FormatFloat('#.########', fTime), 5, 5); + + while FileExists(ABasePath + PathDelim + sFile) do + begin + fTime := Frac(Now); + sFile := 'TMP'+Copy(FormatFloat('#.########', fTime), 5, 5); + end; + Result := sFile ; +end; + +Function AddBS(s:String): String; +Begin + If Copy(s,Length(s),1)<>'\' Then + s := s + '\' ; + Result := s ; +End; + +function DarRutaInformes : String; +begin + Result := ExtractFilePath(Application.ExeName) + 'Informes' + PathDelim; +end; + +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; +var + ds: IDADataset; +begin + ds := AConnection.NewDataset(Format('SELECT Gen_id(%s,1) FROM RDB$Database', [GeneratorName])); + ds.Open; + result := ds.Fields[0].Value; + ds.Close; +end; + +procedure WriteAutoRun(Name, Value : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + reg.WriteString(Name, Value); + reg.CloseKey; + finally + reg.free; + end; +end; + +procedure DeleteAutoRun(Name : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + if reg.ValueExists(Name) then + reg.DeleteValue(Name); + reg.CloseKey; + finally + reg.free; + end; +end; + + +function Encrypt (const Source : string) : String; +var + i:integer; +begin + Randseed := 28; + Result := ''; + for i:=1 to length(Source) do + Result := Result + chr(ord(Source[i]) + Random(10) + 1); +end; + +function Decrypt (const Source : string) : String; +var + i : integer; +begin + Randseed:= 28; + Result := ''; + for i := 1 to length(Source) do + Result := Result + chr(ord(Source[i]) - Random(10) - 1); +end; + +procedure TdmServer.DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; + SQLCommandLog: TDASQLCommandLog); +begin + EscribirLog(SQLCommandLog.OriginalSQLText); + EscribirLog(SQLCommandLog.OriginalSQLText); + EscribirLog('-----------------------------------------------------'); +end; + +procedure TdmServer.DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; + SQLErrorLog: TDASQLErrorLog); +begin + EscribirLog(SQLErrorLog.ErrorMessage); + EscribirLog(SQLErrorLog.OriginalSQLText); + EscribirLog(SQLErrorLog.OriginalSQLText); + EscribirLog('-----------------------------------------------------'); +end; + +procedure TdmServer.DataModuleCreate(Sender: TObject); +begin + LeerConfiguracion; + RefrescarConexion; + IniciarLog; +end; + +function TdmServer.GetConnectionString: string; +begin +{ Result := 'SDAC?Server=' + FDBServer + + ';Database=' + FDBName + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass);} + + Result := 'ADO?AuxDriver=SQLOLEDB.1;Server=' + FDBServer + + ';Database=' + FDBName + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass); +end; + +procedure TdmServer.LeerConfiguracion; +begin + with JvAppRegistryStorage do + begin + FDBServer := ReadString('ServerDB'); + FDBName := ReadString('DBName'); + FDBUser := ReadString('UserDB'); + FDBPass := ReadString('PassDB'); + + FServerPort := ReadString('ServerPort', SERVER_PORT); + FInicioWindows := ReadBoolean('InicioWindows'); + + FDirEntrada := ReadString('DirEntradaEDI'); + FDirAlmacen := ReadString('DirAlmacenEDI'); + FDias := ReadInteger('DiasAlmacenEDI', 1); + end; +end; + +procedure TdmServer.SalvarConfiguracion; +begin + with JvAppRegistryStorage do + begin + BeginUpdate; + try + WriteString('ServerDB', FDBServer); + WriteString('DBName', FDBName); + WriteString('UserDB', FDBUser); + WriteString('PassDB', FDBPass); + WriteString('ServerPort', FServerPort); + + WriteString('DirEntradaEDI', FDirEntrada); + WriteString('DirAlmacenEDI', FDirAlmacen); + WriteInteger('DiasAlmacenEDI', FDias); + + WriteBoolean('InicioWindows', FInicioWindows); + if FInicioWindows then + WriteAutoRun('AdminPV_Server', Application.ExeName) + else + DeleteAutoRun('AdminPV_Server'); + finally + EndUpdate + end; + end; +end; + +procedure TdmServer.DataModuleDestroy(Sender: TObject); +begin + SessionManager.ClearSessions(False); + HTTPServer.Active := False; + DetenerLog; +end; + +procedure TdmServer.DetenerLog; +begin + FEscribirLog.Free; +end; + +procedure TdmServer.DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); +begin + EscribirLog(Text + #10#13 + #10#13); +end; + +procedure TdmServer.EscribirLog(const AMensaje: String); +begin + FEscribirLog.Acquire; + try + JvLogFile1.Add(AMensaje); + finally + FEscribirLog.Release; + end; +end; + +procedure TdmServer.RefrescarConexion; +begin + HTTPServer.Active := False; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; + + ConnectionName := ConnectionManager.GetDefaultConnectionName; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; + CoInitialize(nil); + HTTPServer.Active := TRUE; +end; + +procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); +begin + HTTPServer.Port := StrToInt(FServerPort); +end; + +procedure TdmServer.IniciarLog; +begin + FEscribirLog := TCriticalSection.Create; + + JvLogFile1.Active := False; + JvLogFile1.FileName := ExtractFilePath(Application.ExeName) + 'ServerLog.txt'; + JvLogFile1.AutoSave := True; + JvLogFile1.Active := True; + JvLogFile1.Clear; +end; + +procedure TdmServer.BorrarFicherosDeCargaAntiguos; +var + AAlmacen : String; + ADate : TDateTime; + FilesList: TStringList; + i: integer; +begin + ADate := Now; + IncDay(ADate,((-1)*FDias)); //Establecemos fecha desde la que eliminaremos + + AAlmacen := PathAddSeparator(FDirAlmacen); + FilesList := TStringList.Create; + try + FindFiles(AAlmacen, FilesList); + for i:=0 to FilesList.Count-1 do + begin +// showmessage(FilesList.Strings[i]); + DeleteDirectory(FilesList.Strings[i], false) + end; + finally + FreeAndNil(FilesList); + end +end; + +procedure TdmServer.FindFiles(StartDir: string; var FilesList: TStringList); +const + MASK_ALL_FILES = '*.*'; + CHAR_POINT = '.'; +var + SR: TSearchRec; + IsFound: Boolean; + ADateTime: TDateTime; +begin + StartDir := PathAddSeparator(StartDir); + + IsFound := (FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0); + while IsFound do + begin + if (SR.Name[1] <> CHAR_POINT) then + begin + ADateTime := FileDateToDateTime(SR.Time); + if (DaysBetween(ADateTime, Now) > FDias) then + FilesList.Add(StartDir + SR.Name); + end; + IsFound := (FindNext(SR) = 0); + end; + SysUtils.FindClose(SR); +end; + +end. diff --git a/Source/Servidor/uSchemaUtilsServer.pas b/Source/Servidor/uSchemaUtilsServer.pas new file mode 100644 index 0000000..ac5791a --- /dev/null +++ b/Source/Servidor/uSchemaUtilsServer.pas @@ -0,0 +1,161 @@ +unit uSchemaUtilsServer; + +interface + +uses + Classes, SysUtils, + uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + DARemoteService_Impl, + DataAbstract3_Intf, + uDAClasses, uDAInterfaces, uDADataTable; + +type + TReplicarDataSet = class + protected + function GenerateNewSQL : String; + public + Service : TDARemoteService; + Columnas : String; + ColumnasQueSuman : String; + SourceDataSetName : String; + function GetNewDataSet : IDADataset; + end; + + +implementation + +{ TReplicaDataSet } + +uses + RegExpr, + Dialogs, JclStrings; + +function TReplicarDataSet.GenerateNewSQL: String; +var + AColumnList : TStringList; + ASQL: TStringList; + ds : IDADataset; + i : integer; + Separador : String; + bHayAgrupacion : Boolean; + APos : Integer; + + function GetTrueFieldName(AField : string; ConAlias : Boolean = True) : String; + var + ARegExpr : TRegExpr; + begin + Result := AField; // Por si el campo no tuviera alias + ARegExpr := TRegExpr.Create; + try + ARegExpr.ModifierI := True; // case insensitive + ARegExpr.InputString := ds.SQL; + ARegExpr.Expression := '[^ ,]+[ ]+AS[ ]+' + AField; // buscar (xxxx.xxxx AS AField) o (xxxx AS AField) + ARegExpr.Expression := ARegExpr.Expression + '|'; // o + ARegExpr.Expression := ARegExpr.Expression + '[^ ,]+\.' + AField; // buscar xxxx.AField + if ARegExpr.Exec then + Result := ARegExpr.Match[0]; + + if not ConAlias then + begin + ARegExpr.InputString := Result; + ARegExpr.Expression := '^[^ ,]+'; // Para quedarme con el campo sin alias + if ARegExpr.Exec then + Result := ARegExpr.Match[0] + end; + finally + FreeAndNil(ARegExpr); + end; + end; + +begin + AColumnList := TStringList.Create; + ASQL := TStringList.Create; + ds := Service.ServiceSchema.NewDataset(Service.Connection, SourceDataSetName); + bHayAgrupacion := False; + try + AColumnList.CommaText := Columnas; + + with ASQL do + begin + Insert(0, 'SELECT DISTINCT'); + Insert(1, ''); // Lista de campos + Insert(2, Copy(ds.SQL, Pos('FROM', ds.SQL), Length(ds.SQL))); + Insert(3, ''); // Group by + Separador := ''; + + for i := 0 to AColumnList.Count - 1 do + begin + if Assigned(ds.FindField(AColumnList[i])) then + begin + if i > 0 then + Separador := ','; + + if Pos('#'+AColumnList[i]+'#', ColumnasQueSuman) > 0 then + begin + Strings[1] := Strings[1] + Separador + 'SUM(' + GetTrueFieldName(AColumnList[i], False) + ') AS ' + AColumnList[i]; + bHayAgrupacion := True; + end + else begin + Strings[1] := Strings[1] + Separador + GetTrueFieldName(AColumnList[i]); + if Length(Strings[3]) = 0 then + Strings[3] := 'GROUP BY ' + else begin + if (Strings[3] <> 'GROUP BY ') then + Strings[3] := Strings[3] + Separador; + end; + Strings[3] := Strings[3] + GetTrueFieldName(AColumnList[i], False); + end; + end; + end; // for + + if not bHayAgrupacion then + Delete(3); + end; + Result := ASQL.Text; + finally + AColumnList.Free; + ASQL.Free; + end; +end; + + + +function TReplicarDataSet.GetNewDataSet: IDADataset; +var + SQL: String; + ASchemaDataSet: TDADataSet; + AField: TDAField; + AColumnList : TStringList; + i, j : Integer; +begin + SQL := GenerateNewSQL; + Result := Service.Connection.NewDataset(SQL, SourceDataSetName); + + ASchemaDataSet := Service.ServiceSchema.Datasets.DatasetByName(SourceDataSetName); + if Assigned(ASchemaDataSet) then + begin + Result.Params.AssignParamCollection(ASchemaDataSet.Params); + Result.Fields.AssignFieldCollection(ASchemaDataSet.Fields); + AColumnList := TStringList.Create; + try + AColumnList.CommaText := Columnas; + j := 0; + i := Result.Fields.Count; + while i > 0 do + begin + if AColumnList.IndexOf(Result.Fields[j].Name) = -1 then + Result.Fields.Delete(j) + else + j := j + 1; // Un campo que dejo + i := i - 1; // Un campo menos por revisar + end; + finally + AColumnList.Free; + end; + end; + + Result.Close; + Result.Where.Clear; +end; + +end. diff --git a/Source/Usuarios/Usuarios.bdsproj b/Source/Usuarios/Usuarios.bdsproj new file mode 100644 index 0000000..adb8eb4 --- /dev/null +++ b/Source/Usuarios/Usuarios.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Usuarios.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + Pedidos a proveedor + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Usuarios/Usuarios.cfg b/Source/Usuarios/Usuarios.cfg new file mode 100644 index 0000000..96c8d0b --- /dev/null +++ b/Source/Usuarios/Usuarios.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\Output\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Source/Usuarios/Usuarios.dof b/Source/Usuarios/Usuarios.dof new file mode 100644 index 0000000..908913c --- /dev/null +++ b/Source/Usuarios/Usuarios.dof @@ -0,0 +1,471 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription=Pedidos a proveedor +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\Output\Cliente +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=1 +Item0=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=1 +Item0=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=1 +Item0=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Source/Usuarios/Usuarios.dpk b/Source/Usuarios/Usuarios.dpk new file mode 100644 index 0000000..584f8f1 --- /dev/null +++ b/Source/Usuarios/Usuarios.dpk @@ -0,0 +1,50 @@ +package Usuarios; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'Pedidos a proveedor'} +{$IMPLICITBUILD ON} + +requires + vcl, + vcldb, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + vcljpg, + BaseD10, + rtl, + dbrtl, + dsnap, + adortl, + JvMMD10R; + +contains + uDataModuleUsuarios in 'uDataModuleUsuarios.pas' {dmUsuarios: TDAClientDataModule}, + uUsuarios in 'uUsuarios.pas' {fUsuarios}, + uUsuario in 'uUsuario.pas' {fUsuario}, + uLoginForm in 'uLoginForm.pas' {fLoginForm}, + uCambiarPassword in 'uCambiarPassword.pas' {fCambiarPassword}; + +end. diff --git a/Source/Usuarios/Usuarios.drc b/Source/Usuarios/Usuarios.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Source/Usuarios/Usuarios.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Source/Usuarios/Usuarios.identcache b/Source/Usuarios/Usuarios.identcache new file mode 100644 index 0000000000000000000000000000000000000000..d414da54e5d85de1e8a01197546ffcc97d461e35 GIT binary patch literal 631 zcmcJLF%H5o3`MhWkDP!5Fw%;NN|h>@yqG4cf|3~7j(Ytf6c{Qo#`FLGJ^5gaiQNf$ znoIIo#bS1L@~R;(0yinhfnW$?U5${ynK*uOT3jGIGClpQ0(WE|5hf};`)^sG)S2T8 y<<0xu+8o@Y;y|uMUlnBUpv@gROpky(qR2|@_5!)Nz?GJeFT`n&PR-H(zPx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp edtPassword.Text then + raise Exception.Create('Por favor, introduzca la MISMA contraseña en los dos campos') + else + ModalResult := mrOK; +end; + +end. diff --git a/Source/Usuarios/uDataModuleUsuarios.ddp b/Source/Usuarios/uDataModuleUsuarios.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Usuarios/uDataModuleUsuarios.dfm b/Source/Usuarios/uDataModuleUsuarios.dfm new file mode 100644 index 0000000..5c031b4 --- /dev/null +++ b/Source/Usuarios/uDataModuleUsuarios.dfm @@ -0,0 +1,132 @@ +object dmUsuarios: TdmUsuarios + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 340 + Width = 423 + object ROLoginService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvLogin' + Left = 56 + Top = 40 + end + object tbl_Usuarios: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Usuarios' + IndexDefs = <> + Left = 176 + Top = 40 + end + object ds_Usuarios: TDADataSource + DataSet = tbl_Usuarios.Dataset + DataTable = tbl_Usuarios + Left = 280 + Top = 40 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = ROLoginService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = ROLoginService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = ROLoginService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = ROLoginService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = ROLoginService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 56 + Top = 104 + end +end diff --git a/Source/Usuarios/uDataModuleUsuarios.pas b/Source/Usuarios/uDataModuleUsuarios.pas new file mode 100644 index 0000000..57e1667 --- /dev/null +++ b/Source/Usuarios/uDataModuleUsuarios.pas @@ -0,0 +1,117 @@ +unit uDataModuleUsuarios; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + VARELA_Intf, uDARemoteDataAdapter, uDAInterfaces; + +const + ROL_ADMIN = 'Administrador'; + +type + TdmUsuarios = class(TDAClientDataModule) + ROLoginService: TRORemoteService; + tbl_Usuarios: TDACDSDataTable; + ds_Usuarios: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DAClientDataModuleDestroy(Sender: TObject); + private + FLoginInfo: TLoginInfo; + function CambiarPassword (const APassword : String) : boolean; overload; + + public + function Login: Boolean; overload; + function Login(Usuario: String; Password: String): Boolean; overload; + procedure Logout; + procedure CambiarPassword; overload; + function EsAdmin : Boolean; + property LoginInfo: TLoginInfo read FLoginInfo write FLoginInfo; + end; + +var + dmUsuarios: TdmUsuarios; + +implementation + +{$R *.DFM} + +uses + Forms, Controls, uDataTableUtils, uDataModuleBase, uLoginForm, + uCambiarPassword, Dialogs, Windows; + +{ TDAClientDataModule1 } + +procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject); +begin + ROLoginService.Channel := dmBase.Channel; + ROLoginService.Message := dmBase.Message; + + // *********************** PENDIENTE ADAPTAR + // Adapter := dmBase.Adapter; +end; + +function TdmUsuarios.Login: Boolean; +begin + with TfLoginForm.Create(NIL) do + try + if Assigned(FLoginInfo) then + edtUser.Text := FLoginInfo.UserID; + Result := (ShowModal = mrOK) + finally + Free; + end; +end; + +function TdmUsuarios.Login(Usuario: String; Password: String): Boolean; +begin + Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo); +end; + +procedure TdmUsuarios.Logout; +begin + (ROLoginService as IsrvLogin).Logout; +end; + +procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject); +begin + FreeAndNIL(FLoginInfo); +end; + +function TdmUsuarios.EsAdmin: Boolean; +begin + Result := False; + if LoginInfo.Roles.Count > 0 then + Result := (Pos(ROL_ADMIN, LoginInfo.Roles.Items[0]) > 0); +end; + +procedure TdmUsuarios.CambiarPassword; +begin + with TfCambiarPassword.Create(NIL) do + try + if ShowModal = mrOk then + if CambiarPassword(edtPassword.Text) then + Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK); + finally + Free; + end; +end; + +function TdmUsuarios.CambiarPassword(const APassword: String): boolean; +begin + Result := False; + if not (ROLoginService as IsrvLogin).SetUserPassword(LoginInfo.UserID, APassword) then + raise Exception.Create('Error en el servidor. No se ha podido cambiar la contraseña'); + Result := True; +end; + +initialization + dmUsuarios := TdmUsuarios.Create(nil); + +finalization + FreeAndNil(dmUsuarios); + +end. diff --git a/Source/Usuarios/uLoginForm.ddp b/Source/Usuarios/uLoginForm.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Source/Usuarios/uLoginForm.dfm b/Source/Usuarios/uLoginForm.dfm new file mode 100644 index 0000000..049b239 --- /dev/null +++ b/Source/Usuarios/uLoginForm.dfm @@ -0,0 +1,784 @@ +object fLoginForm: TfLoginForm + Left = 790 + Top = 387 + ActiveControl = edtUser + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de puntos de venta' + ClientHeight = 241 + ClientWidth = 385 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label3: TLabel + Left = 24 + Top = 108 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label4: TLabel + Left = 24 + Top = 138 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object Label1: TLabel + Left = 16 + Top = 72 + Width = 94 + Height = 13 + Caption = 'Inicio de sesi'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clMenuHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 385 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alTop + BevelOuter = bvNone + Color = clWhite + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alClient + Picture.Data = { + 0B544A76474946496D616765E84E0000474946383961C201FA00F70000FFFFFF + BD810BE3CEAFE8E8E8B59167AE6606D2D1D1C4930FD3AB37C59410C28D0ECA96 + 34B26C088D4205D6AE6AB48658D6AD51CCC3B7C0880CB97C0BBAA78FCDA616E2 + C670A55405E6D08BB9790A904205C69550A14C03C6BBAAB47109AD7A4B8A4207 + A95E06F8F3EAB16B07E7D6C4C89A12BE820CDADADBD5D5D5C28E10CEC9C29443 + 04BE840CCBA014B77609B06908964203B57209AD6406B26E08A04903BF830BF1 + E8DAB7761AC69811C99D13B8770AC99F14A85B05A75A17D1CEC89C4504AB6007 + B7780AA96327A35105A35003F3F3F2964303AC6608A45204A24D04F2ECE4C18A + 0CECE2D4984403BD8735AE6707A65805B6750A9842038641089B4403C28A0EB6 + 7508FCF9F4D9BA9EB6730AC5A8869D48039A561CE0C59AA66A33B87924B06C08 + C69A70F2E8C7BC7E0B874107B574099C4402AC6206EEDFB7AD6419B77E3FDAB9 + 88AF6807D3D0CDC0B29E9D6430995C26CBA215FAF6F0EDDFC9904203D1A984C1 + AE939A4C0CFDFCFAB5720AFAF9F8954E13CCA51AD5D4D2AD640FA67040994304 + B16E1CCBA415C4900FB36F09934A0CD3D2D2BE82178C4509FEFEFDAA5D0FCA9E + 1BC0860CF7F0DBB99C788D4911A4510AC79610A35E22C18B0CAF6B28924304FC + FAF8B7760BAC6307AE6406944403C08A0E914609FFFEFEDCBC54934403C0870F + B77208DDBB66B46D05B36503A85503D6D6D7FCFBFBCFA824CEA819D9D8D7C48A + 22BD7E1B8B4105D2D2D3CEAA17A54D01E0C383D7D6D5B97A0EFEFDFCB27138AB + 5E05D0D0D0A55002C79516FEFEFEA04602DDDDDEA04A03D7D7D8B5720CD4D3D3 + FFFFFEBA7E0BB5740ABA7306AF64098E470CB0690DCECDCDA04E0BC89B16B16F + 09AF702D9B5012A55604BDA281B57609BD7F0FB46F0D8F4506CA95229B4201B6 + 7008C69117984708954806F7F7F6D4D4D5EEEEEDA34A01C38E0FC4B18FB7740F + B36F12B4700BB5760AA95909B36F0EA24E02B06505E2E2E3A8580FB36D09D0AE + 92B7710AC49212C38C19CF9E26B46A0EBF890DA35403CFCFD1BB7912D9D9D98A + 4306B57207EAD8A0C3871292511AA25214AA5805AA5C03AC5903AF60042C0000 + 0000C201FA000008FF005355182890E0C00A05111E4CC870E1C2571021128CD8 + 90202A0B6844D002C0B1A3C78F20438A1C49B2A4C9932853AA5CC9B2A5CB9730 + 63CA9C49B326498502732AACC047A74F9C3B05FDF42988E7509CA95E79C227E6 + 8ACDA750A34A9D4AB5AAD5AB5867F2292A686B85AE5C0571F50AF62BD9AD62CF + 8E15CBD6EC5AB3A83C611491B5AEDDBB78F3EADDCB17001F9E80FF0A161BB8B0 + E0C05E0F2BFE4A78B162547131D0ED4BB9B2E5CB9833433DC8B9B3E7CFA0438B + EEFCF71506319A53AB5ECDBA35DED1B063CB0E8DC04223D7B873EBDECD3BE4EC + DFC047A7F2842651B0DEC8932B5F6E7720E1CE4565473F385DF4F4EB5F072A45 + 73050FF3EFE0C38BFF5729288E79C64517C559849E6D58AEE6CB9B8FB38370DB + B63BE214CD0F3F7E1C3E4B8970C571E31568E081CAE9A71F575FC5D1427C4529 + 58411CD945E81F1FF33146E17DE76568218571A082C069726C84E08928A698D9 + 7CF3C9A7A07F2CC2C8E283EAC5C8A28B2DE467638B7120B09418DEA928E49044 + 62F59E7BED71B861791332B9645B204ED8607C49BAD79527A73955E4965C7609 + 9395EE2D68E58B0BD25726846CED28C8830A8269655CF84CE6E59C74D6F9D18E + 78E6A9E79E2DF4B9A7797C40804F2389D869E8A15BF6A9E8A28CFAD9E8A39046 + DAE70E90CED7426D4D158AE8A69C1A28E9A39446BAC3A8A0925AAAA98A5A5A1B + 779A76EAEAABC929FF3A6A0E39EE406B0EA6927AABAEB58E3A6B0BB8FA2AACAD + C00E4B29ADB9C20924ACCC368B9BB1BF1EDB2BA9B3425BEDB5BEE28A6CB1C3F6 + 5AEB3B72892187B3E4968B99AEC3EE8A2CBAD8AE1B6CB6F06ACBADB0F3E6606F + 1CE00E8A47ABE6F6EB6F56CAE45002B1F6DA5B82BD3B1C1CF0C1BB06AC8CAD05 + 0F1C70C1C56A6B2BC1C0029BC3C402CF3A221A25FE2BF2C853096CB2C0252873 + 30C32697E0B2C12B0BACF2CB289F0CF3C431172C33CD05C3D9081E04922CF4D0 + 2FE96CB0CD46B78CB4D2391BDD74D247B36CEF229EC4F273D04467AD75492FBB + EC320E2EABBCF3CC607F2D76D961A78C43C168978DF2CA5D7BDDB632AB5EC1EF + D678E70D40CA5ECFFFCC37D37EFBFDB6D870171E78DF2B1F9EB6CB3EEAABF7E3 + 789700F6E4924BAE72E0944FAE0C0E9B57AE76E799571EFAC1A187BE08A68442 + AEFAD05EB7EEFAEBB0C72EFBECB4BFFC8E2818D8A0E5EABCFB5BFBEFC0075FFB + 22EF60346EEFC8972BFCF2CC07AFCCE918DC96FCF4CC366FFDF5B1A3220A6AD4 + 77DFE9EB93E310090E68BB3C7EEB608F5F7E09E74B2EBEDCF0932FBFE8F24722 + 7A09547317A4F7FCD72977020970DFF812403EF405D0650988040109D8BE48E4 + 8280604B60F820584006BA2F82E2AB1FF9E846A2FE79704EEAC3010571F04005 + 6A3081EA53E00345C842074A907C2624DF08E547C11026608503249FCFEEF6C1 + 1EA62801ED002010FF8598400006D1880A8CC4119308C003105181404CE21187 + 684421B6438A006462249C98C05CDCAE293E0CA38A6EB8C01516F18166442319 + 4BB840008A50856B24A308D358C638BE918C002C612E96723C31FAD1404C24A2 + 200749C82C16F1899180220A034948461632010BC89D89FE4849F034F2919844 + E12013A9484D663291994C80F632C2C34A9A72379B3C642857C9CA560E921A08 + 10C51C7677CA5AEA46958674A5100F30C55DF6B295EDE02226490801C9D8F298 + B9D9E50184B9CC6512B199CBEC6433A138882D423389CB1CC433A7A94D683A33 + 8BCE54E00116100B3158026BC84C276694C9CC66266010C1F4E60122A1CD045C + 739EF22C6234B739FF4D790AD39EF34CE001F2F533751A143307D066379BA950 + 7F3A549E0D756844A1F9CE8A66B3A21375622E6209B2521EF4A376E1E620DC59 + CD4198F4A423CDA649B3A9D293D2D39F2B65284A4DFA4E9A5653A60C4D00358A + D9085A82F4A77599A950871A53A20E159A46256A4D156A4FA2B6831A4B69C424 + 814A55AB78E3AA58CDAA564F7A55AE6AF5AB5D152A58C17A546FA034ABEDF898 + 4FABCA56A8A4E0AD0A88EB5B532057BA2A00AB71C56B5C1530D7BDFA15AC7E0D + 6C60BB8AD541BC35AB7C85EB3B1C10A7B63A362A7DADAB5DE1CA57BF4656B282 + 4D6C0AAE4AD9CC06F6B09C9D6B64FBBAD172DAEDB1A89DC9652DBB5ACF6AD6B5 + 9AB52B6C593BD9CEFFBE36050B8040177497DADEBE24B0835040703D3B5CE0CE + 96B8C2DD6B708B7B5CCF5E630101F2AD745712D849CCD6BA82C56E73FDAA5DEE + 6E17B6B88DC51CF637DDF28E44BBD6AD827ABD915CF506D6BD7B55AF7AAD4B5F + 05D437BDF0B5AF7CAB60DF14ECF7BFF98D6B7DDDAB0C41A5CEBC08068902E4AB + 0009C897BE0CB66F5CDD0B60FE4EA20A1290707D1DBC5FFC32B80A9B78701526 + 018AFD4A58C0FA552F6E4541CA04BB982317562F87D5BB894DF897C621966F8D + 2B6C5D07DF57BF33B6B0892791821CD7F8C8FBCDF18825CCE06B20600D607C71 + 8231BC04094C221E55AE423C267161092C81CB5876F0961DEC653267B9CC5416 + F324CCCCE6345319FFCC93087199AF7CE63A93190102E8A394CBDB650C5B99CB + 4BF832A0035D672E1BFAD0184EF4A1C9CCE544FB58029066749F036DE844075A + D28826E7B2F6CC673263D8D097F632A19760E9439BDAD37F6EB48FD7ECE83543 + 5AD1AC16B5A1CD4CEA552F7AA759E2F4746BED6751877AD47506F6A81DDDEB60 + 6318148CA84295234D655E03DBD2C11E760ADE6160F2EAFAB191CEB6B6B30D8A + 6D7BFBDBE00EB7B8C71DE94D50C30173D0F3B51D4B6E486F0214DD6EB7BCE74D + EF6C23C0B4EB462DB819C1EF6D838205F10638A401CE086DF79BDB0497C0C1F9 + 5D706D233BDEDE3EB8C2FF0D7150B80302B1B041BEB11D0F09C483E10507450D + 18EEF19277FCE425FF17793EFADDF17FA3FCE5FC1E79CCBBFD729383DCE42C58 + 39BF5D6E720998DB0179B6F6C641CA0213181DE445AF81D26BC002A59B80E22C + 88FABFA3BEF49147DD04518F3A2300CE7546283DE635C03A0BB62E75809BA0EA + 64A77ACC8D8E75B66F1D140B584346D039F483567DE4780F3B28CEEEF4AF7BDD + 045EFF3ADE035FF5A7F3DDEB8447FCDDF59E77A78B1CED83CFFBD3F18E6B2608 + BDEEEA347AD8CF1EF8AB8B9DED4BA73AE4EF9EF5AC479EE945FF7BE94DEF74A3 + AF3EEB7FE77BD867AFF4432C80B14AF028E66D69827C9C5DF64CFF3DD57B1FFA + A6177FF1AF277DD47D1FF6D71BDFE9F9703EEA7B0F78EADF1D140860EC8177AF + CEA2BB1EF59EF7BEFFF3456F8200645DF3C167BBFAC5FEFAF58BBEF9ECF7BCD1 + CD5FFCF047DDF60EC808F70DBAFE1A987FFD01F07FDE777601E07A01A87E01E0 + 7FFE17800CC8800058740D58809A677EF2377F11A88058677E12C8768780005D + 7035FB874C00E88016D8806C978027B881D110800B18812498822E78829BB77E + E5D7800A1883087808BA65039717827FE4820CD882E5578309788030D8822C08 + 844648844A888417A88450D88287B00A10906753E5839404855AE88263B085C2 + B08560188662D880877008E8A66E58E84701F88563188163D0855B08876D1800 + 72488772F88575388774484EDC9186951400C210888008886F38886FF885C250 + 8888288888F8868EFF38068198888A68875D888876D888957889801889967888 + 86388978F888EE404E1AE7877F148813008991988A9C3801ABA88A89E88AAD38 + 06A9588B13508BB0488BB01888B4C889B9288BC2808B91D88BC3C88ABE588BD1 + 200C17D787A62846A8088CC19801A89801B7F88CB2788BD41888D4888DB7D88D + DCA88DD5188CDC888DC1B88AC03801DB688DD2088EE1188DDD488DD1B0015026 + 029DD08C3ED48DB4788BF9688BDEC88FFBF88FF8D88FFA1890032990005990FC + E88DFBA890043901D140855D1065F6E841DE288EDD288EDBF88E02A9911BC991 + 1B9901B3208DAE28921D898ED5388E1A99911B1992C2E0040EF081573891D4D3 + 8F16598E2AE99125FF999325998E17B991C2A09216A99302B98DB6270A022027 + 32D93D219901D4D894E8C8945009925109952169925069955879954EC9943A90 + 015D09925F599552199556E99562F9945B99954C3901B3E00471C78C49493D5D + F9955339973AA003B3609773B99451D9954130955079978069967B5998814998 + 3AF0975C99977D19957FF99819F097820992ACB0015D304B71493D5E19987729 + 9841D0997A299876C999A0499AA0599A73B999A93999A1D999AAF999931999A7 + 399B9D697B72B756990939B4099A41009B9DD99BBEF998BF199979B99BC6799C + B3099CBE7997BD299BBF199CBDB99BACB000BBD583B989372EE002C0999DDCD9 + 9BDCF99DDDE99DDAFF1904E0999DE4499EE5999EE3899EDFE99DE2999E56D09E + EFA903C4A09EE6E902876099E3759DAB639FFEF99F001AA002AA9EEC39A0E579 + 09D3997131C99F5A139FE0190551909E106AA0DF39A1DC69A1FF09A11A1A050E + FA9D56D0A11DBAA1171AA1EAA9A12E1005F4B00102A00496C0A07A63051BCAA1 + 1FAAA1200AA31EFAA1334AA338AAA3109AA33D5AA3DC89A3420AA31B1A9FF189 + A13A4AA4187AA23BFAA35140852BEAA279C30A2E6005A1F0A34AFAA1D939A337 + DAA4589AA544EAA3321AA4353AA44A8AA5274AA2692AA3675AA15E3AA397E004 + 61B0A2BA27A5FEE204AC400CE0900565500659F0A77FDAA7304A0C7C6A05C4C0 + A17E1AA87DBAA88CFF0AA87C9AA880BAA85140A882EAA896BAA8803A0CC3F0A1 + 967AA990FAA71FDAA88AFAA737B001F9A711764A348E80A73A100AF700A87990 + 073110031E10037F2AABB67A0FB31AABB83AAB8C5A06B69A05B11A039FFAA8C1 + 9A05B31A03BCDAA97DBAABBC9AACD0FAACC9FAA7CADAABD09A05BACAAB797003 + 0B204B6898AAFED201DFB0014E000EA1600D5620ACB8DAA7D24AACCE6AADBF1A + ACC35AACCDFA0BD43AABC310ABCC0AACD53AACD0FAAED78AACCAFAAFB31A0A56 + D0AFB25AAA507605F508AE22E3031DE000E4FA0B79A0AB1E70B1189BB11A9BB1 + 04FBAF18DBB1B45AABD0FAB11DABB123BBB1241BB2282BB2B3AAB10A2B2E75EA + B0AFD207103BAEABFFE0952ABBB23A0BB239CBB12D7BB1270BB4C03AB43DCBB2 + 45ABB32B9BAC1B3B0CACF092BC25B3FD620A28E0031130AE4E400CA170B448BB + B55B4B085CFBB5600BB6CBB0B1E0F00561B05BB809B5AFB20DF5200B7D10011D + B0AAE0000E1E600D84600D757BB71A8BB7176BB78470B780FBB778EBB779EBB5 + 7D9BB17F6BB82BEBB7899BB18C3BB87AEBB87A6BB77C7BB1893BB8184B084D0B + 936A4B2EAE800228D0076F6BB337200D60A00EA7AB0EAA9BB884B0BA7FABBA33 + 3003AAABBAA93BBBB53B03CB90B8EAF0B7B1EBBAACABBBEA10BBBDCBBABD3BBB + 33D0BABBFBBAB3BBBCC94B080CC0BC7FBB0C33500E2E799469DBB9886208DABB + 0D27A00A55BB010BFFC00AD6D0BBCBC0BCE60BBBB24BBBCB50BB6050BEB0BB0C + F7A0BCC19BBEE7BBBCC24BBFE86BBFE90BBCF5AB0EEB7BBEB80B06E0E0046B40 + 028DD0B0D8EB2ADA0B0CAE200BA6F0B66EE0080B400FD6300A8470BA6020BC18 + 8CBA1C8CC1F7DBC1BD7BBAF73BC233B0C1B1BBC11E7CBF265CC21C7CC22DFCC1 + 28DCC1202CBBA7BB0C6D59C0DF9AC086720BAED0C386800227500F2A80058EF0 + 0037700FBBCB000C20BC0C00064D5C0EED0B0650BCC41A0CC5EBCBC4541CBB59 + ACC423D0C44B6CC552ACC4593CBD4E2CC60C3002503C0362CCC4F76BC667ECC5 + 5D5CC625BCBECFABB0E916B33ACC2506700B7B7C0B86500FBCA00A10FB0C1B70 + 03A330022390C1B1FFFB0260700C0CC0C818DCC830DCC4F3ABC66EBCC58ECCC8 + 4BECC499BCC61AECC68EECC496ECC66DECC68C9CC98DBCC4942CC63740C02440 + 8F799CBDAEC0C386E00A866000AEE00B6D10015AB001E1A00E877CC9C23CCC62 + 0C06C12CC6A340CCC39CCC979CCCCC7CC9882CCCCECC00CFACCC878CC6A57A99 + 2113CB76A20A7D6C00E07C0BDBE00BF530C81B90A7A3300A2FC0006C30022FF0 + 02EDECCEEF8CC82FE0CE887CCFF43CCFF58CCFEE7C0EFB0CC9F23CCFF6BCCFFC + 4CCFF28CC8FE1CCF600006FC9CD0F7CC062F700EF80CCFFFFC05FA79BDDC4C24 + E8500FB8CCC706A0BD28E00BB2E0032AF00D10C00AE0200DF03002C7C0C82F70 + 0CF4DCD2880C0602FF3DD1F04CD30CCDCFEFACD0FB8CD33DCDC8057DCF381DCF + F00CD3EE4CD313CD0646CDD2353D024ABDCFC7700C16ADCD789CD127C20DBC50 + 0FC0B0C7E0FCD1DB600A6E5BD28EA0065F100E67ECD42F500CF45C0CFBCCD6F1 + 9CD4690DCF054DD1880CD1751DD788ECD6419DD7748DD66AEDCE6C8DCF10FDD7 + 23A0D7F78CD785FDD2168DC356ED25DAC00DE8C00B7DC0D51F6D08DB8002AAD0 + 06252DB14E500E470DD16C40D3118DD66C50DAF0CC064F60DAA00D064F70D3A9 + 1DDAAB5DDAE70006107D0EA87DD3A08DDA6C60DBAD0DDB11ADDBB35DDBAA4DDB + BFDDDBAC5DDAC70DDBBBADD4168D059657D58D3D1EBAA0074510D993EDD15CBD + 0D6E5BB304E004E1FF000FA440DABAEDCE105D00A66DDE0510D12F80DE6C90DE + A5EDDEE7DDDEF2CDDEB95DDEF3ADDAA57DDFECEDDEA7FDDEF80DDF003EDFAD8C + 05E916DD5BA20BDA500403C00428700BF380CB5E0DBA6D40B56EB00185AC0E75 + 8DDA4F500023D0DB05F004B4FD0422FECFA92DE2BE5DDA208EE2ED2DE22C9EE2 + A81DE21B8EE2C90DE326BEE2235EE26090DEAD5DE2AF1DE32F5EE28A7DD1065E + 24D3ADE0BC000CD86DCB86D007A10BC145FC05D2400AED5D0054CEE255DEE2A9 + 6DDE586EE247B0E553BEE5C560E356FEE11A9EDA5DCEE2F33DE6562EE561BEE5 + 577E04BA6DE2ADBC069839E429D247A7A00D03800E28B0D5958DCB6CAB0AAAA0 + 021D40C85F000FE7FF40E557BEE105500C1FBEE5901EE98AEEE5BCDDE28B1EE9 + B62DE68AEEE83ABEDB2CEEE88C1EE9223EE7756EE708D2531D710A46AED55D0D + CEAEF0D1A04BB5847C0399A0E8B67EEBB89EEBBABEEB9920E2BBBEEB58AEEBC1 + FEEBB7FE04C7100E4E1091FB62EA073228BBA3EA7BAE0A86300F1E5DCB06600A + 224DB5BDFC052320E5B57EEB472003325000475000E25EEE8A2EEEEA5EEEE53E + EEB81EEEDF4EEEE26EEBEA7EEEE47EEFB79E09992003E88EEBF34EE5ECBEEBE5 + 9ECD4CD0A2CC5E2016701A221024790ED9B2E00A0FCEC31FDD070EDCE062CD0C + E09DE8FEEEEEE6CEF1545EEF1CFFEFFE1EEF1D4FEFF54EECFAEEF1B72EF2C4BE + E95F40C0E986C007FFFF1D4A711ABA5328D30DD927B00DB7D00610DE0786000C + A6500F27E003E34AD6C7A0EFFB0EF24CDFF44D9FEE4E1FF552AFEF50CFEF549E + F2275F00582FF5EEFE04D95CEA33CF1CA8A0141630282692F303500FB7800C7C + FCEAAF7ED927D0072AE006CFE0045F500C99700699800979BFF798F0F7800FF8 + 4E0FF800FFF7E2FEF77A7F06816FF820BFF87C4FF587FFF78A9EF78C3FEE47A0 + F78E5FF97F8FEE47D0DCCF1DF6CC9114648F061289070AAE0AB3DCD5D87DD914 + 5FB504A0068190F43280F9992FF8F5CEF78A8FF87ECFF780BFF7BB1FF87D1FF9 + B52FFC7DCFFBE13EFBBE9FFBB50FFC8ADFF996C904390CFAB911117181259902 + 009D700ADC3000BCFFB00DD47E0BD80D0CC0A0DD355BC4CC500CFF7006CABFFC + ECDFFEEEFFFEF01FFF8E9F06533D077A20FDC9111110E123A701108DE4740290 + 481B375E288019B8C5D0D0C33EA664B58980E5D90666F0FE9D01820908478F67 + 308D2439B2E3C7932051864CD932A44995314BBAEC089366CC964056FAF9B2A1 + 0B932B00840E255AD4E851A449952E65DAD4E953A851A54EA55AD5EA55AC4C5F + 6D7D95AA42855716308811114CA8B601BC78C97285ACA12B03AEB6995225CB47 + 042D1BBE043AA25327479D2501EBB4F597B0DFC2218084183C1848E19A8625AF + C474A6B0ADC68B15FB05BC19F167943ABF385933276856D4A955AF66DDDAF56B + D84F2B78A53DFB95FFA7B17284EA3A981685AB5BAE0CC13530DCD0B6BBDF1C39 + 61E6C723689C80311FFE08F98CE7D0D3634E7F6C38A448C2D2FD32AE8E98A365 + E82919170BE4040B133DB462CFA75FDFFE7DFCF90178FDDA7F362ADCC418400F + A1F0408B17530C3180A1051704C6141428B2E31935C2F9E71F5B420821C3C534 + DB50C30F35CC504410470CF14413432087440DAFD3B04314415471C6126B6411 + 440F350CE4813548D04D3F208314724822639BEDC80AF8F88A8FDB2CC0478C2B + E403408F01D0A9AB41B886DB06857A0C51A1030A2DECEEC3F33ECCF04C33D344 + 73CD34AF0382071233BCEECC8FD43413CE157960734FC5FAE490BC40D4E85104 + 3C8A34F450441345FFB4B6FEE2E82F15043C799250A14EE166801364C1B24160 + 7C39A18F36C074221045FEE9E7461353B5314654655C911C555B95F5555951A4 + B54FCD6C39468D3A0410E1148214157658628BC5CA3F24914CC59300AF2874CA + 4B4F3024B8E1B29C0B055023B0E381632E4C53C6174F05574634E31CF7DC1B65 + CC115D76DB6D11DC5D1D20815263EBB5F7DE7B91D5B7BF571070B291D34E2902 + 53141A9AA7C186E2AA47151528F8809934CEE8C71672E03CD7627429EE07E313 + DDDD906310416EB762912F1E97A75E9538055F965B7659487D05E143107D11F0 + 171F801329E8406090F121E1E25C71C597892270C39107020162621E7838F5E9 + A69D0E21EA109EAEFFBAE97E368E5A6AADB78EFA54ACA76EFA6A38ADA61A6CAF + CBFEBA6AB1D31E1B1E351CF035D897EBB6FBEED41AFD4A90381CADC05147F960 + 5294B11AB144284B106AABC1060D890818BB3A403A90346C89DA1FB7316F5A73 + 1E38E77CEBCF33BF7CF4CD49EFDC6DD443479D9C5D533E1C6FD863977DA9FEF8 + EEDBF63870AF4066002D4003A84A11F2058569DB882B2EB94E60A28F08280843 + 8D40AEDEB86B459CE6A1FAE9ADCFBEFAA6B1BF3E6AEEBFDFD87BEFB3DF5EFBAF + D3EF1E7DACC14F3F8D5AE456E2D9D9EBB71FEFDD6DDFA1EF38F6EFDB7FBEC92C + 524F0A5811D09110E21C0F2EAE00461F92E3880F0482643C986005A366C1A661 + 908217E460063BB8FF410F86108423D460093F48893008400972D0D9FD5CF842 + 7BF1EF7680E3DBDF6A98BBC0310B03681081503A41255ED4A360B7A0D643E632 + 1115B8210C0FF8821FBAA63528A00E8A518B62D3AAD83E1E40E18956A4E2D6A6 + C8453066B18B56ECDA18B358461EF8216E5DB001FD60F846381A4A8633A4230E + E9C8A49B89808500E8CD097A06B4E1A040900EEC801608A086CA95E27451BCE2 + 1531C7483142D29162F45C242D593A495A329399E4DC264FC74528F881121BC0 + 821806124754A6323F73FC5B2B01E74A58C6810F37234BA17431B0B5004341C4 + 71451FB6B1308A48CE0969F8A218C3D8C84B1A737A903C663291D94C68F6A393 + 9A34663551F89E3DFFAA529BDB6C4D1C5AC0BF1608429CDF1CE71CFBF64D5936 + 490C8DD80D2E55018C043E0418DBF005A8BE44802FF8C31650E06716F9090567 + F0E39FFF7406144A015081FEF3A0504868410FEAD08102D4A0FC6CE840FD59D0 + 813E74A2FCD4E84213CA518932320469D8C03AE6F0236EA654A5553127CD6CB7 + BBBED9D09C7DEBDD3AF1A00BDE70031D7E6C03B58413972DA9C2071D3824C4FC + C18F823A43A9FD8C6252258A513142B5A94FA5AA5393CA8380F213AA56AD6A48 + B1DA556744B5AAE40828494B2302BAAD54AD6B4D0A3ABDE9D616A033AEE0742B + FFF8B0084FF8CE943A13183A7CC1908624CC10F3EC431FBEF40C0230A318477D + E852B9AA54C83ED5FFB100856C652D3B59AB2EB5B1977D2C65935A59CF8616AA + A3ACC3BCA4C456D4A636AEAB656D6B5DFBDA16F021AF93D205006861C013B8A2 + A744844B1F86D3877AC8420576C0C831184B56A59243AB17606E73934BD97468 + 351DCDBD00642F8004E696E20200552E14980BD9EE7E57A9D4EDAE33CA5BDDF1 + 7E57B9CFF52E75B7AB08D2CEA187A9A5EF5A5F9B83D7EE40BFB06D410EF40B20 + 0CF8400996D0854130352D642C8838B700C609D0215C373C83398A80022EAE3B + 51675C001748C06E7321B161244062BBE90D312EACCBE10F5717C3E275C64359 + 0CE20B7494B21EDEF076B55BDD877EB8C3CCC56E0F78458222B4B0BE43D6A67E + 8DBC5FD71E59C947FF5EED0E5071B346888016BC1940977A2A1C2C17A73886A0 + C83712AB0867C8E3C6D4153373CB7C81339379CCD45DB37BDD9B5E35BB39CE68 + 6E6E9AEB9CE1EBDEB8071B28AD9489FC6754F657D0F8F5EF0E5A4B68411B79D0 + FDDD81329E2C16B2542A2DDB30805B80B6A03EF8C217123A242514518A1BCB83 + CEF240B1A8E5A163EC9A7AD41AC62E2490200F53971AD6293EF58655DD6A0E8F + 1AD5D75D35AC538D6652939AB93AAEAE107E5C0440271B868636346B91CC5F45 + B7D6C8A968120F83724B4C6D83889706060A8667D80E50002369E0873F9A7B63 + 2494A2C3EAE6F5BACF8DDD74C33BD4EC468233D62D6F37A7FBDD793EF7BEF5DD + EE3CE39B1C3E2EADFF124EAB6C84C38ED1882EF4A219DE024533DCC8FE5D042D + 7F35A5B4FC15610A76050AB66197E611E00FE40678ADDB8DE257A79CCEAF8604 + AA833D84535FF7D4B9E670885F2DEA56A738E528B630BC65FE6A98A73CD8250E + 31AB43ECE314CE2FE14BBF5B0E9CEE70A8337C110FA77A0B2A0E811D9EE620BC + 782743B214B42D45485BCF4B03128830849AFB1CEDF1E6F510AE1B66522361ED + 6DBF0024E2EE769F8B39E8D7957B87E1DDF7B9FBDCE77647FBDCF15E779A5FA0 + 075F483AD31DEFB21C28C3E94F9F7C7F293F79CC575EF3945746091CED3B81E0 + E11468F99482DEC2A98EB72189109420AB832E8F21E002E6AF4782EC612D0F22 + C0DEF63B7F7DEC85FF0E745B035DEE4387BDDC774FFCDFEB7EF6B69EFDD0435C + 8B14B6F1F1D3AF17A1735082EB675EFBDBE7FEE4B1EF687F6140BE7C4D8B2AFA + 40C4E30D761B85F50132C2CD4445900317B810B1D98770FF21E41ED6F7873511 + CE8EFF59BB80FCF33F0204B6DCB33F983BB5FBF33F03FCBFFC633960AB3FDC23 + 40FC5BC0FF3340DC1B82C57B002C903EEAFB4045E9BCEBEBBC12C0BEEECB3EED + C33E132441CF2B4165588477C8AB753A9C8340877A589CE0D832A13185130815 + 43528337903F5CA040FCF3BF0A1C40073C4224A440D823C0FF833DD81BC02274 + 4023544227ACC2293C420A6C394550830E7423100C432151C1EC33C113DC8113 + 743A3224431CC0AFFFD932A5534884813185B7180EE3890B53E0851E8C003021 + 004A480727AC402CB4C024D4C22B14B640B4422A5C44255CC241944241C44222 + 48031E99033014434CBC8F122C011C28C1EBDBC44E2CC1507441CF1BC516E444 + 5024C5CE7BC148198B5FD1039D92085D3A1EC6692003B80B0A780021E881FCB3 + C2214802470C44603CBB2B4CC2451CC65FECC56124026444460B44460A6C4665 + 84C4C24B0341F1C04CCCC6FA38456E64416F5C43520C471514C755AC38DCE0A1 + 42814574308579E8A9A0318036300414A00B5C24800F48835298BFFF2B467EEC + C740F44780DCC7801C487E94422240024AFC8983D346866C0D54EC44887C4889 + 1CC588AC488914C5FF892CC14713001B908360E82B4D39BD0509248950BD0843 + A47C4C028224C85F5CC9626C499774497358C221B0C63560024B10B286DC49D4 + D8449FCCC888F449534CC59F244A50AC384893323DC0A56D501005033B143801 + A17A3F6648075C80057388C97E9CC981348721BCC22408CB62FC4A0AE44A22C8 + 4AB4ECC75EBC424AC4269DE449B8A48AA29C4BBAAC4BBB9C4B1C58842713051E + B284D1C31460B805B7502003789089B80B3B482C22C0050E60C621C84A6054C9 + B34B027398499584CCB3CCCCC86446CD6CC9CAFCCC96BCCCCA4C46B4AC4CCEDC + CCCDAC4C9544CDD0244D228084B62481D7894BDA948ABBBC4DDCCC4D1C4000BE + 240B3DE8AB7AA034FF06F9A991340412B82788014473E806CA7C4C661C4DD574 + 4EB4C405B47C4CEBACCE99FC4CD5CC4EE91CCDB0D44EEE0CCFC784CEEB2C4FCB + 94CC21A0041E210102A94DF7748ADC8C4FF92CCAABB30001688442C125146088 + 041B49E1E836E6399A0760064548826E60CEEFE4000E08CB245050067D500865 + 50D58CD006E50073480258A04CF054D005CDD009FDCE0F055108FD4C06B5D0B0 + 84CD5A28ADF67C4F16458AF97CD1F9548659FA1739B8821AAC876DF3BA919485 + E141CC0DA8853480045858500E18520435D005A5500A0DD107E5806E28520C2D + D2CF3452281DD20C2DD1271DD10B7D501235D06ED852604C875A58071F79CB16 + 6D51184D53DC8C84FF48C081188C0534B0013DB8251B4C205A8C085FA807C352 + 0E35F8C364E8050E4DD2063D5225E552308550053DD227FD4C0E555441AD5042 + D5502D0553130DCB278504E85381F93A534E05C536C5011CF8D45045C536FDC9 + 500555501CD54EFCD4871C55BC045565F017345099A53CA06DC032A1A996B868 + A0A1D28201E5C50A35874065D0214D06134D06EDB4504065540BAD4C0E7DD064 + 084B0795D64015D46A1554676D56099D5063D54E48108230F0114EE5541C4880 + 724D80048884746D077445D7736D875335D7744DD7369D577745577695D77635 + D77A3DD57C4D805CB819749003BF4488A61CCEB850BF4DFB120A382472808527 + BD8340BD50739058FF0BBD830BE5008CAD500EB5588D25D26B0DD98E0D598FF5 + D84035D989A54C8CE55022B8A64D1D57F704D57A55D75C00587905D572CD0551 + 05D579C5599BF5D99AE5D99BFD547505D5A04DD74580807324144BD92959303D + E13022149085C2FA124750831E10D26A15560B15D96B0554AF0D5BB11D5BB2BD + D66F4D2139D083B482599E4457757DDB795557B76D57B95D57B885DBB9CDDB7D + 8DDBBD4D807FCD0500438346288222B8145EF82BA0C992A139817AB0DA077803 + 48385091055B0EA55C05ED05CCF55ACADDDCCA0D59CEBDDCB2AD56CB1D0270E5 + 486D605BDAB4D9BADD579ADDDBBA6D5DD6B5D9BE9D5B365D5DBADDD71280947F + 11013DD8BA85309EFF2C3B0E59785A15D01602E80188ED06B0C55CE66DDEE6AD + DCCC0DD4E8E580E9ADDEE7855EE7C55ECBFDDAEBBDDC7D48512C3038D4854BDA + 9D5DDBC5DB743D80BE45DFD8AD5DDBE5DB763D805C5800C2895339D00603E205 + 57988784218E79701C6010AA5CEC81ACED865DA001E74D60EBA55C89B55EE8D5 + 5ECB5560ED0DDBECBD5CCCFDDE30E8C0D91C5F6D9C5D0FF6E0F7FDE0F5655311 + DE5B65884151C0071BD006033B8179408604330EE1D8866D5005D5A300A4A184 + C8DD05E5C55C1AF861204EE01F166204F6E122EE852136E220665E206E620E6D + 62056662283662CCED816BC2460ECEC412F660F5DD62BFF5622F56DF76C8056A + 00107C90AFDE9D34FFF4631C8525A46DF943586862399E633AAE633BBEE33996 + E22446623C9663E63D5B6CCAE26C44D72E0EE3761D847F9DDD42E6E2441661F5 + 3D807618840AC00D1258213AD5B6C12CCEE43981E324AA07F0821EA0816EE863 + 522E6553F663252E65264E06217880756002941264103C005AA6E541B8E5423E + 8041A8655A3EE441885F5B26E45E16E67DBDE55DE6E54236665D3E665B9E5F51 + 30DDA65D881C649C5D85C7C3FAE47D38656DDE666E36E524E8010E6482D395E5 + 594666733E67744E6775E665665E675E2E017FE98239E0865350473ABC857694 + 61B998DA7AAC857418E51FDE823BDE058116E83BDE8203B663840E682046E884 + 4EE8839663842EE8FF8626E83B68E557DE607276BC5A4E8175F6E87676E75ADE + 658F46E79016695A2E8177E0CD595D4ADC3A3F6458A0E280A7E1F581D5FB0021 + 48061AD80582DE8289F6E99EF669A10E6AA21E6AA306EAA3FEE91F286AA14EEA + A666EA9F9E681AE8810F28B84BDC68654369ADDEEA745666941E04599D031BE0 + 86C24587DFD0D506F136AA65589C4E0603DE851F68EA2D58EAA68E6BB9BE6BBC + CEEBA58E6BBECE6BA1DEEBA0F66B9FA66B9FA6817DA86A8EC483B5C56A4043E6 + 141884C72E695B966C5E7EEC5B8E6CC8CE6CC97EECCA866C73CEECCBF66A5D8E + EC666E451F90D35398345DB25303D886796A835071983448021A88EB6C18EC1F + F80133986BDD3683FFDCC606DECEEDB8066E6C106EE0CEED2608EEDC3603E6F6 + EDDFDE82E4766EE1EE6DE6FEEBE9BE6EDD9E6EE64E06E85321C65E3A6436665C + 1EE993166FF3366FF266E7F156EFF36666D1BEE56B5869FB5C613988966DE05F + 9F1AC93C5485E679805AC8699EDEEDBE1EEC2D10F0DC9E6B04BFEEE04670028F + 6BDF16F0056F7004DF6DDF96F0BEEE6BE7E6EDDDBE03E89B97C5FEEEFAD2EC41 + F006122771F3F606D0CEEC125F711437E6163766CC2E71F3B6EC1167F1C82EF1 + 9126F16B6801DEFC092548E3BF1ACCAFEB36A2192A0115021AA8865D906EEC5E + 6E26CF6D2A606EE196F226A76EED7EF22B9F722CBF6E2AB7F2C3D6022003F164 + 63713237F11A7FF1FF324FF31657F3173F733697F15B5EF1413861C2110325C0 + 5F8460C7DD4A98799A0B1B8E8067D0C57408F01FA0822AEF7228EF6D2DAF722B + 77F22D77F245677445777433B8837DF8313F13F3217B7333877337E7F4385773 + F1E6743977F31438F541A0060848612610811ADC064BA36603F005B590100892 + 845E3083283FF427D7F52E47742EFF7560CF7248977461A7720CAEE40FD7F495 + 5200676771678FF6349776127FF66AA7766F70F6534F8168B77612DFF66DEF76 + 052873715FF1804D61B2285C5E681CE2E43843F081A17218494886E68E7449C7 + EE7ABF777DDF7747BF77C3C67466A7AF331F8471AF768277F36827783917F783 + 578086177788C7F6FF84777805387513A7786727F8673FF56B4000088805154A + 5B9DBA6F4B93691AE6673079987DD8856AA80643078428676E43176E2AA8799B + B7F942B77998A7F9979FEE9AFF01987FF99B77F9490F7AA0FF79A34FFA983783 + 5DF872D90C78D462F1814771687778AA5FF16E1F71ADA7FA88EFFA12CF78AEB7 + 781347F167D7F8AF8FEF7748E18E5CCA01F005E078FBA8A561AAA588A3C15A7A + E779A3F7799DFFF99A877940D8F9449F799A2F74C23774C3A702403870DF36FC + C26F7CA13F7CA33FEC3A68F58584FA6DAA716E2FF86CEFFA8CD77CB2EFF6CDA7 + 788DE77CD0F7066E6F7882DF7614AF82AC97F88C4FFB2E400374206B8291E691 + 0C1A53A8273EBCF5FF7DC86DBFAF06BF477CC4077EE20F7E40287EE137FEE45F + 7EE307FEBFA78226387AE59F7EE04FFEE2FF812F572133B5FC54E2FC6CAF02D6 + 7778F0277D6707FFF087F8F117F7F4277FF55F7FF38FF804A00604901B1B4804 + 5A4088FDAC43050106C80108147DDA4470F480520F6C54AA5101F483CAC38880 + 1A52816831E2C58C0F294ED4E8F1C744871F358694D8F0C7BE0FCF48C801E0F2 + 25CC983267D2AC69F326CE9C3A77F2ECE9F327D0A03E1510AD6294A882490A8C + 5699C41429D4A84637452D7A546A15A49B4065AD8AB5EBD2AB51376DAA420D02 + 3E26458A7043C7CB95815B060CC09D0B6CDB098214087C1072C74CC38E202B56 + 0354783044C18A2BFF0E36EC183164C5850B335E9C98B0E1C4930DDFA9158644 + 11A1A247932E6DFA34EAD43A958665EADAA8842A1290B26E9D14A90477466B67 + 7D4AD4E95309658F027FADF43572DAB2155C430021160925DAB4B575E5EA569B + B97481A1F0250B590437CF0E26DB129263E08E142D6EA9A8FE7DC5F8F0E36F3C + AF3EBDFD88520085E4DF11103629D5C1444BAA19782082092AB8204DB22D811C + 535B2D119B044E39352153B165E59404135AD89471143E384987116AB8DB8927 + 1AC5D5860E8A98550ACDC522800DDC1431003ABEB8828C5C7019F2A329F5F4E1 + 4307143CE00517BD9861866385F9D74443D5403965945352D6C495555281E544 + 4DF807C87E9B3501FFE5975C4AE99F1467FA17A54302CE5144220CCA39279D75 + DAE91285109A285B15544D42E26BB32995E79F1B16071C859BE4B99BA2530DC7 + A76BF90CC7219F142635493C912060411773D820475BA65C678021AEFC78CB36 + F5F0A20A416E10F08024BD54538D14B5A6B7A5AD63EA9A2B15526C491194EEC9 + 271F7FB68624C5945F72E42598FCE147E6AFFBA831A008775A7B2DB6D9EE5429 + B7896E82E99F80E6392E9F7FC6D32DBA159E3B2EA67CC65328B9C295A5AEB8E5 + FEA9E8350B38100B1A4A8830002FA6A04017C1DA6D270B918E7CB00F48B5D68A + A6C311473CE5C3C53A4CE59712FFDA04AF54522931B2B8D6EA71800FACC392B6 + 29ABBC729DE37E1BFF6E9E4BC82CF3BD7FC6DB54874B501A5BB8F63EC873B893 + CC3CB4CE94FE49F3D145077DB470F1B4F3CE7368D820C25AE86C330F8FA41A32 + 9721B29CA08A0A1D18244432B3D23AB1AEBA5663C4AEC88E3932C7308CB905C7 + 15C1DD76DA7973ECB6DE7DA70D03369284B18E0D78B07C38E28993E66215EF86 + 8B61CE339B0B2FE4134A90338990C3ECA1D0145E5EA1D04423DD21E8484BBE74 + D21280328937B920E0800068D8D8962F73C9A575A9BE08E443047638E245323F + 9811B1DC63B2FDB6119ABCCD370C6E37AF2B984D682245F178FBBD77DAC737A1 + 7DDFD4076EB25A712A3E3EF9E5CB34EEE7A4F329FAE532DFDCBECCB2353AF3FA + F17B1EB9E8F4C7C6FF3EFC33C32FA286A086010130C1463812D5EDB8F623147C + CD07AEF282249A4137EAF14D7A63AA46F59E273D18148F7A166C9E118CD03CE5 + EDAA7A6322E1DB4C983DEDA1507923BC83240880050299AF8636445CFA72A8C3 + 1DF2B0873EFC2110830844B32C00025DB0811EA8C38B79C4652E70810B3082D4 + 071588E74877389B0BA5A03CB66DD1835CE4A005B9B8BD0D364F6E623C6318D3 + B8C53472906D6D949E075D18B80D10CE1237BC231EAD25C43DF2B18F7EFC633C + AE210A0C88610022E006C0B621975B58676BAED8862CFA4082DE118019924846 + 13B650C6BE69704C60BC1E073B79BD51E6ED93D43B5E2739F83D2C142E8FAE7C + 6582FE28CB59D2B2FF8F2CF0C6594421007468430FDC780B8F126808EE6C0318 + BC73D591F6E1491884D00880588111A0D9CCEDB531846FD4441BD7B8C5668670 + 9B22646633C1E846667E109CDFACE6F6EEC0850760A15AB07C273C49934346D0 + 939EE9B3A704EAA9CF7D32E29EF3D4E73D019A4F7C7E8EA004BD1C3F135A507E + 4A2005EE40802E9970488099A254D861A4A95C210B534CB10376200092B6E0C5 + 1002C299DC5C6638E5E642726E8F84DC7CA935CDF9CD945A306E2945E798B0F1 + 8630084004B488275083BA937FD633A0084D68426B70D0811675A14D6DEA42A3 + 1A50A44235A12C60013DA136232628A12D27D8860190C1B5B9F4C117F5401815 + 09F00749DCA109E0FF2CE9334F3A3D7372708BD50CE11861FAD2BBCE34A66BBC + 6B28C119469DB2D39D423D2C626152CF78309505A0D0A76325108F7A82C2B196 + AD2C662FBB58D55D56B292ED2C632BDB4FC63296114AA5670D40E1D9D05AD6B4 + 8CB86C64599BD9D9E6831A0B58033E6AD4165EC8A2898D7C22A9BEE30685BD21 + 19A7DC2B5FFB8A8D153C131B814D29379F1B5DBA9A93B92BC00674F51A426CF4 + 200C73B06362C32BD4D79217AB2CA8017AD17BDEF492D704E97DAF09E2FBDEF9 + D6E0AAEB55EA7A4D7B5FF49277BEAFE52F7D035C0313B0C004FD15F080B1EA8E + 0588A20B6840075B06E08B79DCAE2EDB111215C723042CB9D59C748081349BB9 + 8215C04013308566FF8845C8B6E49158A6227E2989B54B074D6CD39B24F5421D + 48A007F1F2189EF8752D56D9ABD42197F7BDA64DAF094041E425BF1614061EB2 + 92511B64D7FE98C9EAA5328253EBDE201B39C0F4CC57D4D482C87AF8626B8C24 + D5235110C963C2EA0774AB66284F8C4DBDA658C5CAC36672A3095371EE59A578 + 35F14BEF80E339D0A2133D3E341EB37CE400CB77C04376B47B874CE0231BB8C0 + 8F5E7297912CDF48A3D7BD8B46707C398DE44BD3F710B914002FBA4AD1EB9CB9 + 2EDD31AB0AECF0803770E10ECCBC350CE8D0CC0F43B3C4271E7174675CE20F33 + 13D8211C71AE6F1AECBA963894780E742D5879054453BB862CC8877B096CDFF7 + 5E35BDDD56EF7EC1FFED6DCCD637DBE0FE74A7B1CD6DFB5E55DD49B6ECB7D5CD + EE6D7B3BDCF5BDF696F3710DA8E1630E5453C20976D4864692751BDDE9A84124 + A1C9BACE14C58046B19E59ACE71243BCC5209E73AFDB58713D6FBCE3D10C258A + 25F1001A55BBE4E32B707CE7BDEE7A83DBDEDF2EB77CAF4A6071CF97C0DAAE37 + BB438D726DAF57E7F3DEEFCBEBADF30098200067818E0D06A00474041C6B3DD2 + CE23F3120123D11ABBC70631B0291E4D60AF00E323C626D791AD01126B62C424 + E6F5D6511C76B5B33DEDB9063627441E012588CFE4764F19A70B1C809D879AE8 + F1DDFBDF59E0F75013BEF03E37BCB60B0F78C317D8BE860F400DF62EF394DB5C + F191A737E26B908FFF05DCB65345D006C06E810CB196EA4786D8867754109EB1 + 714C8424EEB8D93D5ED7B24793C6B4973DD6BB5EECE4959DEB1F2F76EC915D08 + CF90C0A7773F3EB6141F80C1177DF9D158FEE0973F60133C9FF97F773EE197DF + 77ED17BDFA018846A8BD5FFDE6639FC0DCCFFEF99D0FFDC18BFFFC8C7007351C + D0A901ECD614C03018D750A07F031049D66CA526AFAD5DECA51DB2CD58EFF15E + EF059FD9694200D2D8021EA0D91941002A201DACC01E105F68209F06D649F615 + 9D07FE9D07125DF4A51FE289A0E29D20089A60079A200B0E9DF591DF0A9220F4 + 151DCA415F0D9C1A0970830EBEC5225987A9185C3D9C0009A4D507704121B458 + DA1120EC91DDEDD9FF9E02C61E9E7DDDB1755D02725CEE29602875468E15C806 + 76A182AC1F187ADFFAB51F1896A1199E211A429F18A6211BB6A1FAB9610008C3 + 3518112FE8E0009802583951C118C0361802EF884D11DE81065CE1133EA11316 + 62F039E0D72520222E62238ED81E7CC03A1088A179A125AA061C66221A8E8126 + 76A227B62127BAA130D44011C5820FA8C58DF02013950A5D3C1230201CAC2CDC + EB3DE2236AC2275CE127E4222D6683266483021E221542E12AD9C0B45DA2319A + C627A6A13098E1322EE3FA35231B3A63324EA3342A23E4D996FCD90075B8451F + E0DF8FDC8540DC42048C075B91D8D8D16223DA62059A5D2E7E022DDA22232E62 + 022AE22216021CB0FF131380D731EE6350ACDF1884A226FEA33F026400086419 + 0A433532A3191AE434A2E132FE234412E4414A1F350C12133041D2E54837FAA0 + 13A1DE09F4C1D481141764433670103A16A22EC65E3BEE622FFE223DD2633016 + C24EB5133FD6E44F44E418648030E0244F22244242A44E42E4044CC04EFEE304 + 64C03FFEE43F660051FA244F26A5531A25513E255416255556A54FFAE4501EE5 + 50F6A45216650DAC0204AC01012192D5C4852369C736080C32A49517C8433668 + C03A16A25CAEC05C065F5DD2415DC6DE5CEAE55DDA655ECA653B56A05F02E65D + 0ADA4AD042DDD92463DA44446EE55562A5504E80508E01654A256662E6505A25 + 4E0A03641AE51870FF66672A6564FE64536AA56576254F52E66586A6670A8358 + 8A42BFA91A30654746B5A22AF0C22D0C575F34038811A2D90DE220D2250C0867 + 710667EE15E7719A9D721A673B3627749E2327AC4033D4C2246A436366674D6C + 25530E657772A57772A77886E7568A273DE4E47882A77A7E277BA6677B966778 + 9E275292E77AA667797EE77D72A709AC421175812AD8A12F8C9E1E920A776098 + 1B188917D81A88E9E5D855C22754825D3EE82730E80A382884EAA5856AC0D851 + 28876A28606EA8877628888E2860AE00177C00160C8076AE684CB0267CB2A665 + C6288CCEA88C76A58BDEA88CE6287CEA686A42268DCEA88DEAE88BF2E88BFE68 + 90CE68341C427F92FF40D2D90099C1C5EDF4C130ADA52CB40A48ED81820AE727 + 4CC3270C22974E43715682066C69971627996A809886A970A6299AAEA99BAA29 + 9CB6699C560227AC930070218B6AA77AE6277DBEE79EDA2757FA6977CE82A016 + 69A1F62977E227A2BE28536600A1BAE756060165DA962ECD4157E50885DDC28F + D4055E9C5578F0051CDC815FA2E9830AA6831226A98A69055AA861B66A61BE6A + 60A2AAACBA6AAC0AC167144125E66963326A79BE66777A669112A5B01A6AB002 + 6BB02A2AAF06EBB02EEA78FAAAB2C2A7B1DA6734AC822ED9005B040CD76494E9 + 994A1BF0CE7884EA20D2C134544225D0C184DA65AE4DE8719AEB86C200B98EA9 + B9C62BBAC6EBBAA6FFEB87C1EBB896EB838AE9348C9D068CAB5D4E0317A8C124 + EAA3AEDA24A1CE8277266CA38AA74E1265C3466CA006EAA30AAB3038EAC31E65 + 06482CC63E2AC73AEBC35E6CA06EEC51326CC9462CC9E667C75AECC636AAC71E + A59246CD00E84111588DD315CC30F5812A10C978D0DAD995AB5C6AA85C022D1D + 10AD5CD2815F96ABD232A8D0162DD23A6DB922EDD2326DD14E2DD4D24121AC13 + 4D1E2C63A26CA366800EA46CCAD627A2B6ECC48667C36A2CA4A62DD9B6EDD74A + 6CD9922CDBC2ADDAD667061C423E20C037E4A02FE508706DCD3075C777509123 + AC554922ADBF6AA8D4A26925F4EB0A1CAD5EE66BE3BEABD0FEEBA9566DD492EB + B822AEE2EE6BE34AFF6DBE6A0027BCC14AE8C16272AD3182ADEA6E6CD8826DEB + B62CECC6AEECC66ED8BE2EEBAEEEECC2AEEDE62EEFE6EEEEFA2EEED62EEEEA2E + EE06C12C040152EACB2ED1A629E01F5DA00047B501E1FE8111C2402B046DE726 + EDA83EEDD05E6DE576AFD43A6DF8466DD35EEDF832E8059E8C1C9C2EEA7AA10E + BC2FFCC66FD80681FCD6AFFDDEEFFB6600FDE22FFFE22FF2EE6FFFDAAFFE0630 + 01F7EF0444C35974011368C3B5DE9F1EFEC8364012C288CD5A7142E4226EE86A + 68BFF62BBF0A6DBF56EE067FAF0673EEBB7EF0BF9EB009A7F0D0BEC103748112 + 184EFB1A63FFBA80EB167000D3B00D177006E0700EC32F0FF7700E0781108F43 + 346C4017F002FDB5FF453D34D1801A0099B5016FBEC11E64C3D32E6DE58A69F7 + 6A28167FEF165FF1D16A71D18A709B6AB1D06231D2EE811738420EC6B0311AAF + 101B2FFC1EAF10CBB11BBFF11BD3B11DD3311EDB311FC32F1FFFB11EBF71FCE6 + F11DDFF1FBF2712003F21FD731001F3200CFB1108F4129D2C87460EA2D2410A9 + 98822C18023214C90330C34832AD079FB006A330068FB20AA732298F3208A3B2 + D072823E808FC1B2B10606C125BCF12D0B712EDBF225DC722EBB800BE0F21BBB + 402EEFF22E07B3102333302F333127B32E03B32EE3722FDBF2302373314F332F + 5F023447333707C13253F33747732F1BF338DF3230E7B20ECC027F92A5B57A15 + 5861F22BA68A2CF4FFCE037C001C1402F75EEF18EFB3AA86B11897B118773140 + 93B1086F719DB29312D0B217163224373436277330EF3131273223E331339FB3 + 1E6BB30B04F23817323067742FCB712F2333451F6F387B3334D331368B34366F + F32C8CC33804C1E6C91F4622122FE4219AB5E209F0423D50D15EBC013E336D08 + 8FF0069F7229ABF251FFAB289B70292775E58E2E4F89C02C2BB4C95DB4555F35 + 5667B5565B35315881156C355887B5588F35595FF42C38811159AA57D91FC158 + D85D00830AA88091DC730368C0F5DEF5F75E6F034C035EEB3516EFB507D7752B + 60B13E6B705DFFEB6157C25D13B65D6BE81EFC418E191655DBDD324781655BB6 + 5733F3654781557FFFF5575F35672FB3578FF66647C167BB00669FB60B58C166 + 577668A336677BF66BAFF668BBF668B3F665AF363097B66503B36A9B3669A7B6 + 7063B665B38258AE81D424D1009C00D6B4C1EDB441D7780748EEC51FC04125E4 + 9A8622C22A37350A7F6F08ABF2770BAD7687B77627F53470C23DCEDD641F9F6B + 5F7666F7766B5FB415743568BFF66D7B756967366CEBB70B74757CC3B66BD336 + 6B33F36DDB7670F7F67BF3B66F9F3670E3F7703BB869733631D0032B28EFA720 + D209D8CEED18421F08CCC010EE0748425CEAB5060876639B785D9B3889374025 + A47889BFB88BC7388CCFB88CD775DC8D1CAEAEB7C9F1B670C3B48257B6154003 + 3484F68F0BF8810FFF776A13F87F03386A2FF880EF776DEF7683E3F6650B398F + BB37348C837B8F761674B9834338980F83BE604074EC603D188273938A5DF4C1 + 5911899108C11E7082E27EF0614F0383DA399D1BF6502B755117752BE3B9778B + 2B9F17C21F7CC6FAEA78B59581A22F7A9737BAA2377A97978115383AA347FAA3 + 433AA65BFAA2C7400C2C7AA5673AA65F3AA597C1A87FFA300C83A7A7BAA797BA + AAA77A0C407AAAC33AA967410CD0C32A38C11ACC811CF8D24D67CDD638919AF9 + A1277BC123202D5F37402B344003D041B227FB5E2FFBB3D381604B3BB2573BB4 + 1F7B2B4CC3B52F7BB323BBB6333BB24BBBB60BEC0750403E223AB5A97AA8CF3A + A597FAA883FABA6FFF7AA7C73ABCCBFA30C83ABBAB7B979F7AABEB7B16F47BAB + C7401EB0BAAC37FA3078400C2C401794B94DE334CEBAC240A415504F686367BB + 8A8FFBB3637C89F375C56BBC5E63BCB657FCC6A338C617C21E3C4004E029BA8B + 17A7C7800794C132B4BCCCDF4328C8BCCDDF7C19BCFCCD0B7C1E0C7C162C43CE + 9701A7F77C1E047DCC733ACDDF4316DC83CDBF7CCC2BFDCEC33CA74B3DA703FD + CD5BFDD423BCCD077DCB533DA77B80D6CB7CCEDF7C28DC03D1DF43853B400414 + 9012B902D6188C750CC4741FC91E2876892BBB5DB782B3E3BDB2A738DFF3BDDE + 5BFBDD0BB6DEDF7DB713FEE197782BBCC124AEFCA1753AE40BBDE4373DE47F7D + E56FBDCC83FDCBF7FFBC07B043E4B73CD17FBED037FDE44FFECE5FFED48BBEEA + 977ED45F7EE96B3EEB8F7ED70F7DCF77BA71CBDF1C7003E8DDB4DB3BD137A60A + 48BACA1FE843366C7BC7673CF283FC5EE375F293BCF38B7CC6B7829DBE70AE3A + FE6105FDCB673FD77F7DF6B77CF76FBDCE733FD8133D2180FDF6133DF6A77FF6 + 9BBFF67FBFD887FFD7ABBFFCB7BFEC673DD7ABBFE6D37FD8C7BF0700441E811E + CA7820E604C21A12038A0CE0B5CDD52D03065C197205CC97AF3E2ADC10F8C0C5 + 58033A225B3528D9609A48942A538E6CD9C0A4C9972D4BB672599366CC562F1B + 207AF34000375A008816357A146952A54B993675FA146A54A953A956ADEA016B + 56AD5BB976F5FA15FF6C58B163C996355B7696930D6BD02811818E97A93EAE2A + 4E343411D809641D1C7D2CD440C34A0D3B05B70A3CCDF04A4480511A269C72F0 + E0942917DB736C0F7062CC903979D162E39455D1A34997367D1AB5E8AFCBB612 + F2C01AAB6BD85B677B20747BB6EBB3AF6D13AACD1BEC6FAEC281AFDE4DBBABEC + 1BD1368822C1841BB701BE80CD9B78DDC0B613BE22B8E9CBE5D3E55698C9D76C + 00E2BC4EF5E6D9AFC79CBE7D7B7D6178E1497D1F7F7EFDFB4F67B5268EABFF7A + D34A1CDD00D46DC0AC6E5BD036010911D02B047BBBADB5DB1CD4CA1A090364D0 + AB03152CEBC10E35F400C0ACEEA16703070480AE086E7891053BBC50F0451664 + 22A0E0012E383169FFBC063683C94798D003F2BD20612A1249227D1CF248259B + 2CE403016C188ABF2AADBC124BD46CB34D9D6528BC4D9D2FC55C509D325D2344 + 9A05D524A44C2FCF94C6CC2DCFB42DCD2DCD5C934D34C10C93CC30E5FC93CD38 + CFC4B3CB65D449F34B4027AC73CE33CB54B4510F6E40A80B12946891175FEE92 + 885314EA39A18F1BFD22A949CB78440F0410E25B4FA756D87B0FBD556BB20711 + 2FC2082ACB5C75DD95D7A2FA9C61863285E5734F75801D16D93BD52CB31C3793 + 7D16DA68930536D8649785160C6A855D068C72A41DF65862BFC5561D7056596B + 0E3DB471711B4E27AA0885190D50810202E040AC15265DB5673357FDFD176094 + F80518607E79CCD7FF47CC5C3D0F913D3ED082894E3AE995E28A2D2EEDD76A87 + BDD6588DA125541D309C1D976469B5B5B64F684F0E996592C34DB964648FB961 + 81582CD5A60874EA01C68079243244A26D68A4F70138F658CC24557B5498E0A6 + C93BD8691F5D45B53C84D1D3E7012CE408EDE2AEBDFE3AA98C9FA5D6E38EC7AE + B6D871C32D936C61450623DAB7A15D66066B463E3B666457E6736FB3856D7B5B + 71585940451100D0C6A1769171C5AE6D4C51A58DEE08F8030E63E8D8F7DFF4D0 + E3D732A5ADD61CBE7CC7B30755D14B2ADD737BF6F8631D26F4001BF6D82D76DB + 6FBDFB0E17EEBFCB4E16EEDC7507776FDFC9E53D646009119EE5DCD71E16F9B3 + 3D86FB768F012F13FF6E69C07142140144D0438F01D031E516EB7E064616596E + F1C1BB0FE0286447D25B2123DF5453E55C55F855951FFF544527835FFCDF8F5F + 7EFF0301ADE0400001286162B253E002AD443D6E2D4F77100C17B77E27AD7288 + CC76C05B9BDCB045416471AB1C3320C40C2E382C10B2AD6C27FCD6CABA952D09 + 4A8F851764C00888B10A1529817B0D4181016ED186EB6C0305B2A8471B3A80A3 + 3F70611A96995AAAD2C3397F290D74A83A8FBFFA37C5A99D477F531B4FC33ED0 + 3A4B30108C614C0D03C858466A9591016443631AD5C8C619AC916C6D5C2319CF + 38473BBAD18E7104161CEB58C6DEB9F18D74DC231EEFF8C73B12B28F7764C50D + B5710A6EA00346B7FF601C76DAA5820ED8E1017FD883FCE0673FFD79327FF9EB + 2427FFD749FA81C094FC2243AA1EF1064744C0706294E52CA932476A8D8201B8 + 4CE3329631023406128EA318812F75F9CB41E67114C03C64318F694C3A8E020C + BE446332CBF8025F92ED1ED41AA620D958C6629A519969B4E520CF98CC6F92F1 + 050751910D5E873857CC631E3EBC0B5D5060081F484E9388809F13F775CAFC01 + 507E9C23DDFC064A50FFF5D31EFAE862BA12484B873E142987EC261987294D89 + CE209A23C0A844EF98C83C72D496D9B2A820C1804E8D9AB1A4141DA938E99852 + 8E36F3A5E19C2103C0C10A0844C07500C8992F2262170318A20FF5DC48478E68 + 8C7EDA4FA0A1D45FFFFE926AD0801654809C43041C1E100125D807A25985E808 + E0E14BAE7A7304BAACA8345F708C91BE800D66ADE80CC43AC7AEA2B59A66FDE6 + 4A554AC6B4BE209AF0982357C7EA55BD8E000C6078C10CB7C9578B6EF38E88F5 + 255ED728D8931EF218831D2B03BA5AC611A0551D8BC40213B4A187869C601B77 + A1884580E129595892004533EAC0F6E9CF8332D59FFD7B2A295BCBAFD541EC8B + 5AD5ED2CFBDA5BDFA215AD2360C30B8A015C36B06198C545AE6F2B3ADC8A0677 + B8C54D2E70954B5CE31E7798C0ED6D74C70ADC232C97B9CFADAE78A99BDDE55A + 77B8E945AF79D10A5EED0A97B86365072BC2D00126C8E170D3D9865D186788D2 + A260237CF9803E4AFF690F53AE929308562A2A153CC00693817F0D4E15841F01 + 8730B421B7BBD530037B6B4D6B66B7AFC37D8187D30B86F4B297B91F36F16547 + F0041207F7B2EA95B171337AE2BEBE77982286F16F9B6B5C16CF38C71F2EF18C + 9D0B5F1B1B19C5E605C317D0258744AC8B1728E8E14FDBD0D3F2D9A82FFA40C4 + 78C6C3BF01E24FC2A15C65830DCC49D2159493207804178052840DBF5981C02D + 001BE63CE7F4D219CF0568AF9D8F7B5D3BB7F7B87F0E749EF36C5C43CBB8CFE7 + A0F39E01BDE7E33EBACE8026B47A05DDE740BFE01CD71D6EA6896C694FDF59CF + 97E6B49FF1FC046930790D73104122F4E02257204322D73144BC6E6149473C80 + C0AE82F0AE79DDEBFF5E1B98D713F6F5B0814D064420E20F6E60822512016767 + 7B8D0D8265838B9F306DB48281DAD6AE76B6A98DD6636CFB18C3E5F60BB64D6E + 6D6BFBDA238E76B5D31AED688F78DCDB16ECB5CB5DEF7377FBDDF736B78BD3FB + 6D6DB3B8BDE136F1BC5D0C6F13EBBBC4EADEB7B95F508E1BA04B04B48032E328 + 6E97B9C8227238D28751DF376C8F0FFB7D0CEE352A3BEEEB29D8C3C2563D4543 + 9FDDF25DBDE0082F987331F04CF3E3D27CE635D7F9B64B3D6D36E0FCE73ACF79 + CE871BF3A2F7BCE8E6063AD08DEEE8A50B3DE8491F7AD073CEF3A91777CEEC86 + B9D2DBFBF4AAB3A1E95EFFF913C040B80372CF45BEB8C5DAB153DA21DEA868D3 + F8B8C9A7E0F129D4FF7DEE1F6FA523DAA00796BB1CF0573AAEA2073FED276CFB + F03E2F4001847BF86A9FC3F19197BCE3153D79C93F9AE790773CE6271FE83957 + DEE78F37BCE513FF78C72FFEF405E83CE2511FF9D03F21EBA33F2EE97D3EFAC3 + 83FEF0E1D8401DDA82F617495292D871451B54A0024C1238EFBBC6FBB0EBBEFC + E4379F0C5380C30722E0E4C05FFF4AC2557C01484167EE1BFEBBB047AEF7EDAC + FAC92F1EFDE957FFFAD50F69F4477EFDC85DBCE751EFF3EEB3BFFDF87F7FEA53 + AF7FFFFF1F00D12F109CA00E56040F7461A736053BFCCB1088AF2FE0E0113AE9 + EE94EFEE2A10FA20AC0229D0023370EE5A490B44E0EFB04F0453A31CE081FCD8 + 0FFE180FFF2C2F00FF5B50FD5250FF4ED0055D3005FB6F066FF0FF5E201CD4A2 + 0B6C000FD4C52150A0A72C0E18EA0105E88500DE600F5C6502317003E96EF936 + D002F30E11E6C30747100BEF430D026104D2EF08600FF5BE100CD36F0C614FF2 + 70700661300DBF100D5F90FF0EAF0DE310058F80C9BA800944401B10E77B444B + D67CE10454010995F002A34F0AA34F039D500A9B90104DEE111E8004DC2C0B23 + B13436C009A4E11C32C10B0BE0083491FD363113D76F134311FD3CB113D58F14 + 17EF1447911345311533911539D1154D711555F11303F0156F111655311559F1 + 18586103BA600EF0ABD5D041152262F826C271402502EC20091F610A13111AA3 + 511A37B01123E00AFF25111BABA20328311C18401651F1FF5AF11B6D311C4B11 + 1CCF711C49511CD7911673511CF14F1DDB311ED1B1163DF1081E2E16D040044E + C191A6639E26E2160CC114C087239A1111A7112113F2EE1EE10F9EC107F02B1B + 23322A6C6D03BE201C8A21136420146580233D91233912163FB22339512465C0 + FC8E00134E4F143B920D4D72136500136EF1238F80265731260B20133261233B + F2264311134412256500137551136F72248FA02469F2F036322761722535F227 + 67322A3F32267BD22651F2258F81074920E24EA1215441087F0A5E4C21B40211 + D814122DA5F1112A2C6B944022DFD2294E80231CA12203A118CE0126A7B224F7 + 722A31E127FD522FCD5DF227D12F2FF572F14A1230A9D22FA91231171324176F + 31139323FB1226F7B23227D3312BB32F071332F35224033331255331FFF23135 + 333367660114821B4223674E40CAD8CE00DCEE087104020F322D6FD302DF200C + 98002E7B532978A11E542002BEE1199CE006F0B22AA9122911332827132B93F3 + 339B9327A5D332B1522A97132A81B22AB1B2289F133B9BD33A9D723BAF933CC5 + 533B9F733AAF733BF5D23B411229BD332A8F200468A67026E6B3DA25D6FCCB17 + 5EA420DF20027113402D501F0880047CD3408D222000003B} + end + end + object edtPassword: TEdit + Left = 96 + Top = 132 + Width = 278 + Height = 21 + PasswordChar = '*' + TabOrder = 2 + end + object bAceptar: TButton + Left = 208 + Top = 203 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + TabOrder = 3 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 296 + Top = 203 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Salir' + ModalResult = 2 + TabOrder = 4 + end + object edtUser: TEdit + Left = 96 + Top = 104 + Width = 278 + Height = 21 + TabOrder = 1 + end + object Button1: TButton + Left = 16 + Top = 203 + Width = 129 + Height = 25 + Caption = 'C&onfigurar conexi'#243'n...' + TabOrder = 5 + OnClick = ToolButton4Click + end + object Timer1: TTimer + Enabled = False + Interval = 5000 + OnTimer = Timer1Timer + Left = 344 + Top = 64 + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + Root = 'Software\Administraci'#243'n de puntos de venta' + SubStorages = <> + Left = 14 + Top = 168 + end + object JvFormStorage1: TJvFormStorage + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edtUser.Text' + 'edtPassword.Text') + StoredValues = < + item + Name = 'Ruta' + Value = '' + end> + Left = 48 + Top = 168 + end +end diff --git a/Source/Usuarios/uLoginForm.pas b/Source/Usuarios/uLoginForm.pas new file mode 100644 index 0000000..6f0cb5a --- /dev/null +++ b/Source/Usuarios/uLoginForm.pas @@ -0,0 +1,100 @@ +unit uLoginForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, + JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement, + JvAppStorage, JvAppRegistryStorage; + +type + TfLoginForm = class(TForm) + Panel1: TPanel; + Label3: TLabel; + Label4: TLabel; + edtPassword: TEdit; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + edtUser: TEdit; + Image1: TImage; + JvGradient1: TJvGradient; + Button1: TButton; + Timer1: TTimer; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + procedure bAceptarClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + private + FIntentos: Integer; + end; + +var + fLoginForm: TfLoginForm; + +implementation + +uses + uDataModuleUsuarios, uDataModuleBase; + +{$R *.dfm} + +{ +********************************* TfLoginForm ********************************** +} +procedure TfLoginForm.bAceptarClick(Sender: TObject); +var + bOk : Boolean; +begin + ShowHourglassCursor; + try + bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text); + finally + HideHourglassCursor; + end; + + if bOk then + ModalResult := mrOK + else begin + Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK); + Dec(FIntentos); + if (FIntentos <= 0) then + ModalResult := mrCancel; + end; +end; + +procedure TfLoginForm.FormCreate(Sender: TObject); +begin + FIntentos := 3; +end; + +procedure TfLoginForm.ToolButton4Click(Sender: TObject); +begin + Timer1.Enabled := False; + dmBase.ConfigurarConexion; +end; + +procedure TfLoginForm.FormShow(Sender: TObject); +begin + Self.Caption := Self.Caption + ' - ' + dmBase.DarVersion; + JvFormStorage1.RestoreFormPlacement; + // Hacer login automática si hay usuario/password y no hay más de una base + // de datos como opción para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +procedure TfLoginForm.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Source/Usuarios/uUsuario.dfm b/Source/Usuarios/uUsuario.dfm new file mode 100644 index 0000000..93fcc6e --- /dev/null +++ b/Source/Usuarios/uUsuario.dfm @@ -0,0 +1,123 @@ +object fUsuario: TfUsuario + Left = 523 + Top = 415 + BorderStyle = bsDialog + Caption = 'Datos del usuario' + ClientHeight = 309 + ClientWidth = 308 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 138 + Top = 273 + Width = 75 + Height = 25 + Action = actAceptar + TabOrder = 1 + end + object Button2: TButton + Left = 226 + Top = 273 + Width = 75 + Height = 25 + Action = actCancelar + TabOrder = 2 + end + object TabControl1: TPageControl + Left = 8 + Top = 8 + Width = 293 + Height = 257 + ActivePage = pagUsuario + TabOrder = 0 + object pagUsuario: TTabSheet + Caption = 'Usuario' + object GroupBox1: TGroupBox + Left = 6 + Top = 5 + Width = 274 + Height = 99 + Caption = 'GroupBox1' + TabOrder = 0 + DesignSize = ( + 274 + 99) + object Label4: TLabel + Left = 34 + Top = 28 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label5: TLabel + Left = 16 + Top = 60 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object edtUser: TEdit + Left = 88 + Top = 24 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPassword: TEdit + Left = 88 + Top = 56 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 1 + end + end + object GroupBox2: TGroupBox + Left = 7 + Top = 111 + Width = 273 + Height = 110 + Caption = 'Permisos y seguridad' + TabOrder = 1 + object Label1: TLabel + Left = 47 + Top = 36 + Width = 26 + Height = 13 + Caption = 'Perfil:' + Transparent = False + end + object cbPerfil: TComboBox + Left = 88 + Top = 28 + Width = 169 + Height = 21 + ItemHeight = 13 + TabOrder = 0 + end + end + end + end + object ActionList: TActionList + Left = 8 + Top = 272 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Source/Usuarios/uUsuario.pas b/Source/Usuarios/uUsuario.pas new file mode 100644 index 0000000..90e722c --- /dev/null +++ b/Source/Usuarios/uUsuario.pas @@ -0,0 +1,39 @@ +unit uUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList; + +type + TfUsuario = class(TForm) + Button1: TButton; + Button2: TButton; + TabControl1: TPageControl; + pagUsuario: TTabSheet; + GroupBox1: TGroupBox; + Label4: TLabel; + Label5: TLabel; + edtUser: TEdit; + edtPassword: TEdit; + GroupBox2: TGroupBox; + Label1: TLabel; + cbPerfil: TComboBox; + ActionList: TActionList; + actAceptar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +var + fUsuario: TfUsuario; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/Usuarios/uUsuarios.dfm b/Source/Usuarios/uUsuarios.dfm new file mode 100644 index 0000000..a2faae2 --- /dev/null +++ b/Source/Usuarios/uUsuarios.dfm @@ -0,0 +1,119 @@ +object fUsuarios: TfUsuarios + Left = 490 + Top = 417 + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de usuarios' + ClientHeight = 401 + ClientWidth = 550 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Grid: TDBGrid + Left = 8 + Top = 40 + Width = 425 + Height = 313 + DataSource = DADataSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end + object JvNavPanelHeader1: TJvNavPanelHeader + Left = 0 + Top = 0 + Width = 550 + Align = alTop + Caption = 'Panel de control' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + end + object Button1: TButton + Left = 448 + Top = 40 + Width = 91 + Height = 25 + Action = actNuevo + TabOrder = 2 + end + object Button2: TButton + Left = 448 + Top = 136 + Width = 91 + Height = 25 + Action = actModificar + TabOrder = 3 + end + object Button3: TButton + Left = 448 + Top = 176 + Width = 91 + Height = 25 + Action = actEliminar + TabOrder = 4 + end + object Button4: TButton + Left = 448 + Top = 368 + Width = 91 + Height = 25 + Action = actCerrar + TabOrder = 5 + end + object Button5: TButton + Left = 448 + Top = 96 + Width = 91 + Height = 25 + Action = actCambiarPassword + TabOrder = 6 + end + object DADataSource: TDADataSource + DataTable = dmUsuarios.tbl_Usuarios + Left = 368 + Top = 40 + end + object ActionList: TActionList + Left = 8 + Top = 360 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actNuevo: TAction + Caption = 'Nuevo usuario' + OnUpdate = actNuevoUpdate + end + object actCambiarPassword: TAction + Caption = 'Cambiar contrase'#241'a' + OnUpdate = actCambiarPasswordUpdate + end + object actModificar: TAction + Caption = 'Modificar usuario' + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar usuario' + OnUpdate = actEliminarUpdate + end + end +end diff --git a/Source/Usuarios/uUsuarios.pas b/Source/Usuarios/uUsuarios.pas new file mode 100644 index 0000000..dfad797 --- /dev/null +++ b/Source/Usuarios/uUsuarios.pas @@ -0,0 +1,89 @@ +unit uUsuarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls, + DBCtrls, uDataModuleBase, JvExControls, JvComponent, JvNavigationPane, + Grids, DBGrids, ActnList; + +type + TfUsuarios = class(TForm) + DADataSource: TDADataSource; + Grid: TDBGrid; + JvNavPanelHeader1: TJvNavPanelHeader; + Button1: TButton; + Button2: TButton; + Button3: TButton; + Button4: TButton; + Button5: TButton; + ActionList: TActionList; + actCerrar: TAction; + actNuevo: TAction; + actCambiarPassword: TAction; + actModificar: TAction; + actEliminar: TAction; + procedure actCerrarExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actCambiarPasswordUpdate(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +procedure AdministrarUsuarios; + +implementation + +{$R *.dfm} + + +procedure AdministrarUsuarios; +var + fUsuarios: TfUsuarios; +begin + fUsuarios := TfUsuarios.Create(NIL); + try + fUsuarios.ShowModal; + finally + fUsuarios.Free; + end; +end; + +procedure TfUsuarios.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfUsuarios.FormCreate(Sender: TObject); +begin + DADataSource.DataTable := dmUsuarios.tbl_Usuarios; + DADataSource.DataTable.Active := True; +end; + +procedure TfUsuarios.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actNuevoUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(DADataSource.DataTable); +end; + +end. diff --git a/Source/leeme.txt b/Source/leeme.txt new file mode 100644 index 0000000..a3637e2 --- /dev/null +++ b/Source/leeme.txt @@ -0,0 +1,5 @@ +El archivo uDADataTable.pas es una versión +modificada del original de Data Abstract 5 para +implementar el uso de Where en TDADataTable. + +Ver procedimiento OnWhereChange. \ No newline at end of file diff --git a/Source/uDADataTable.pas b/Source/uDADataTable.pas new file mode 100644 index 0000000..bb94913 --- /dev/null +++ b/Source/uDADataTable.pas @@ -0,0 +1,4645 @@ +unit uDADataTable; + +{----------------------------------------------------------------------------} +{ Data Abstract Library - Core Library } +{ } +{ compiler: Delphi 6 and up, Kylix 3 and up } +{ platform: Win32, Linux } +{ } +{ (c)opyright RemObjects Software. all rights reserved. } +{ } +{ Using this code requires a valid license of the Data Abstract } +{ which can be obtained at http://www.remobjects.com. } +{----------------------------------------------------------------------------} + +{$I DataAbstract.inc} + +interface + +uses + Classes, DB, Contnrs, SysUtils, + {$IFDEF MSWINDOWS}ActiveX,{$ENDIF} + uRODL, uROTypes, uROClasses, uROClientIntf, uRODynamicRequest,uDAExpressionEvaluator, + uDAInterfaces, uDAClasses, uDAEngine, uDAScriptingProvider, uDADataStreamer, uDADelta, + DataAbstract3_Intf, DataAbstract4_Intf,uDAWhere; + +const + RecIDFieldName = 'RecID'; // Do not change! + AllChanges = [ctInsert, ctUpdate, ctDelete]; + +type + //ToDo: remove and replace these three with TRO(Dynamic)Request* + TDARemoteRequest = TRODynamicRequest; + TDARemoteRequestParam = TRORequestParam; + TDARemoteRequestParams = TRORequestParamCollection; + + { Other types } + float = double; + datetime = TDateTime; + + TDADataTable = class; + TDatasetClass = class of TDataset; + TDADataTableRules = class; + + TDADataTableNotifyEvent = procedure(DataTable: TDADataTable) of object; + TDADataTableFilterEvent = procedure(DataTable: TDADataTable; var Accept: Boolean) of object; + TDADataTableErrorEvent = procedure(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction) of object; + TDADataTableDynamicMethodEvent = procedure(DataTable: TDADataTable; const aMessage: IROMessage) of object; + TDADataTableRemoteRequestEvent = procedure(DataTable: TDADataTable; Request: TDARemoteRequest) of object; + TDADataTableDataChangeEvent = procedure(DataTable: TDADataTable; Field: TDAField) of object; + TDADataRequestStreamEvent = procedure(DataTable: TDADataTable; Stream: TStream) of object; + + //TDADelta = class; + + TDAApplyUpdatesError = procedure(DataTable: TDADataTable; const Delta: IDADelta; var Ignore: boolean) of object; + TDAAfterApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; + TDABeforeApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; + + TDADetailOption = (dtCascadeOpenClose, + dtCascadeApplyUpdates, + dtAutoFetch, + dtCascadeDelete, + dtCascadeUpdate, + dtDisableLogOfCascadeDeletes, + dtDisableLogOfCascadeUpdates, + dtIncludeInAllInOneFetch); + TDADetailOptions = set of TDADetailOption; + + TDAMasterOption = (moCascadeOpenClose, + moCascadeApplyUpdates, + moCascadeDelete, + moCascadeUpdate, + moDisableLogOfCascadeDeletes, + moDisableLogOfCascadeUpdates, + moAllInOneFetch); + + TDAMasterOptions = set of TDAMasterOption; + + TDAStreamingOption = (soIgnoreStreamSchema, soDisableEventsWhileStreaming); + TDAStreamingOptions = set of TDAStreamingOption; + + TDARemoteUpdatesOption = (ruoOnPost); + TDARemoteUpdatesOptions = set of TDARemoteUpdatesOption; + + TDABaseRemoteDataAdapter = class(TComponent) + protected + function GetDataStreamer: TDADataStreamer; virtual; abstract; + + { backward compatibility: to provide access to these in the legacy events } + function Get_GetSchemaCall: TDARemoteRequest; virtual; + function Get_GetDataCall: TDARemoteRequest; virtual; + function Get_UpdateDataCall: TDARemoteRequest; virtual; + function Get_GetScriptsCall: TDARemoteRequest; virtual; + public + function ApplyUpdates(aTables: array of TDADataTable; aRefetchAll: boolean = false): boolean; virtual; abstract; + procedure Fill(aTables: array of TDADataTable; aSaveCursor: boolean; aIncludeSchema: boolean); virtual; abstract; + procedure FillSchema(aTables: array of TDADataTable; aPreserveLookupFields: boolean = false; areserveClientCalcFields : boolean = false); virtual; abstract; + procedure FillScripts(aTables: array of TDADataTable); virtual; abstract; + + property DataStreamer: TDADataStreamer read GetDataStreamer; + end; + + { IDADataTableDataset } + IDADataTableDataset = interface + ['{3BADA4F8-BA32-411C-A7CD-DEBD10A4AF06}'] + function GetDataTable: TDADataTable; safecall; + end; + + { IDARangeController } + IDARangeController = interface + ['{5A182854-B824-496F-80C2-6F8064003E13}'] + procedure ApplyRange; safecall; + procedure CancelRange; safecall; + procedure SetRange(const StartValues, EndValues: array of const); safecall; + procedure EditRangeEnd; safecall; + procedure EditRangeStart; safecall; + procedure SetRangeEnd; safecall; + procedure SetRangeStart; safecall; + end; + + { IDANativeDatasetStreaming } + TDANativeDataFormat = (ndfBinary, ndfXML); + IDANativeDatasetStreaming = interface + ['{00B37B20-23DA-49A5-BB5D-B96E50C210F4}'] + procedure NativeSaveToFile(const aFileName : string; DataFormat : TDANativeDataFormat = ndfBinary); + procedure NativeLoadFromFile(const aFileName : string); + procedure NativeSaveToStream(aStream : TStream; DataFormat : TDANativeDataFormat = ndfBinary); + procedure NativeLoadFromStream(aStream : TStream); + end; + + + { TDADataSource } + TDADataSource = class(TDABaseDataSource) + private + fDataTable: TDADataTable; + + function GetDataset: TDataset; + procedure SetDataTable(const Value: TDADataTable); + procedure SetDataset(const Value: TDataset); + function GetOpening: boolean; + function GetActive: boolean; + + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + + property Dataset: TDataset read GetDataset write SetDataset; // hide base class property + public + constructor Create(aOwner: TComponent); override; + destructor Destroy; override; + + property Opening: boolean read GetOpening; + property Active: boolean read GetActive; + published + property DataTable: TDADataTable read fDataTable write SetDataTable; + end; + + { TDADataTable } + TDASortDirection = (sdAscending, sdDescending); + TDAMasterMappingMode = (mmDataRequest, mmParams, mmWhere); + + TDASortDirectionArray = array of TDASortDirection; + TStringArray = array of string; + + IDADataTableScriptingProvider = interface(IDAScriptingProvider) + ['{E16B7359-C733-4F09-96A8-10527CFABB6D}'] + procedure RunDataTableScript(aDataTable: TDADataTable; const aScript: string; const aMethod: string; aLanguage:TROSEScriptLanguage); + end; + + TAutoIncArray = array of Int64; + + {$WARN SYMBOL_DEPRECATED OFF} + TDADataTable = class(TScriptableComponent, {$IFDEF MSWINDOWS}ISupportErrorInfo,{$ENDIF} IDADataTable, IDASQLCommand, IDADataset, IDAEditableDataset, IDADeltaOwner, IDADataReader, IDADatasetEx) + private + fCurrRecId: integer; + + fMasterLink: TMasterDataLink; + + fDelta: IDADelta; + fWhere: TDAWhere; + + fRecIDField: TIntegerField; + + fStreamedActive, + fRefreshing, + fOpening: boolean; + + fDataset: TDataset; + + fFields: TDAFieldCollection; + + fAfterEdit: TDADataTableNotifyEvent; + fAfterInsert: TDADataTableNotifyEvent; + fAfterDelete: TDADataTableNotifyEvent; + fBeforeScroll: TDADataTableNotifyEvent; + fAfterClose: TDADataTableNotifyEvent; + fBeforePost: TDADataTableNotifyEvent; + fAfterScroll: TDADataTableNotifyEvent; + fBeforeCancel: TDADataTableNotifyEvent; + fBeforeRefresh: TDADataTableNotifyEvent; + fBeforeOpen: TDADataTableNotifyEvent; + fAfterRefresh: TDADataTableNotifyEvent; + fAfterOpen: TDADataTableNotifyEvent; + fBeforeEdit: TDADataTableNotifyEvent; + fBeforeClose: TDADataTableNotifyEvent; + fBeforeDelete: TDADataTableNotifyEvent; + fAfterPost: TDADataTableNotifyEvent; + fOnCalcFields: TDADataTableNotifyEvent; + fOnNewRecord: TDADataTableNotifyEvent; + fAfterCancel: TDADataTableNotifyEvent; + fBeforeInsert: TDADataTableNotifyEvent; + fOnFilterRecord: TDADataTableFilterEvent; + fOnEditError: TDADataTableErrorEvent; + fOnDeleteError: TDADataTableErrorEvent; + fOnPostError: TDADataTableErrorEvent; + fBeforeFieldChange: TDADataTableDataChangeEvent; + fAfterFieldChange: TDADataTableDataChangeEvent; + fLogChanges: boolean; + + fRemoteFetchEnabled: boolean; + fSortDirections: TDASortDirectionArray; + fSortFieldNames: TStringArray; + fParams: TDAParamCollection; + + fFetchedMasters: TStringList; + + fMasterParamsMappings, + fMasterRequestMappings: TStringList; + fDynamicWhere: TDAWhereBuilder; + + fDetailOptions: TDADetailOptions; + fMasterOptions: TDAMasterOptions; + fLogicalName: string; + fClosing: boolean; + fFetching: boolean; + fStreaming: boolean; + fOnAfterSchemaCall: TDADataTableRemoteRequestEvent; + fOnAfterDataRequestCall: TDADataTableRemoteRequestEvent; + fOnBeforeSchemaCall: TDADataTableRemoteRequestEvent; + fOnBeforeDataRequestCall: TDADataTableRemoteRequestEvent; + fOnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent; + fOnAfterDataUpdateCall: TDADataTableRemoteRequestEvent; + //fOnApplyUpdatesError: TDAApplyUpdatesError; + fOnReceiveDataStream: TDADataRequestStreamEvent; + fStreamingOptions: TDAStreamingOptions; + fRemoteUpdateOptions: TDARemoteUpdatesOptions; + fLocalSchema: TDASchema; + fLocalConnection: string; + + fBusinessRulesID: string; + fBusinessRules: TDADataTableRules; + fFieldRules: TObjectList; + + fAutoIncs : TAutoIncArray; + fOnAfterApplyUpdates: TDADataTableNotifyEvent; + fOnBeforeApplyUpdates: TDABeforeApplyUpdatesEvent; + fMasterMappingMode: TDAMasterMappingMode; + fMaxRecords: integer; + fOnBeforeMergeDelta: TDADataTableNotifyEvent; + fOnAfterMergeDelta: TDADataTableNotifyEvent; + fStoreActive: boolean; + fScriptCode: TStrings; + fOnBeforeScriptCall: TDADataTableRemoteRequestEvent; + fOnAfterScriptCall: TDADataTableRemoteRequestEvent; + + fOpenTick: cardinal; + fAfterOpenIDataset: TDAAfterOpenDatasetEvent; + fBeforeOpenIDataset: TDABeforeOpenDatasetEvent; + + fRemoteDataAdapter: TDABaseRemoteDataAdapter; + fLocalDataStreamer: TDADataStreamer; + fCustomAttributes: TStrings; + fExpressionEvaluator: TDAStdExpressionEvaluator; + fHasReducedDelta: Boolean; + procedure SetLocalDataStreamer(const Value: TDADataStreamer); + procedure SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); + + procedure SetLogChanges(const Value: boolean); + function GetDataset: TDataset; safecall; + function GetFields: TDAFieldCollection; safecall; + procedure SetFields(const Value: TDAFieldCollection); + function GetActive: boolean; safecall; + procedure SetActive(Value: boolean); safecall; + function GetLogChanges: boolean; + procedure SetParams(const Value: TDAParamCollection); + function GetEditing: boolean; + function GetMasterRequestMappings: TStrings; + procedure SetMasterRequestMappings(const Value: TStrings); + + procedure TempSetRowRecIDValue(Sender: TDataset); + + procedure SetLocalSchema(const Value: TDASchema); + procedure LoadFromLocalSchema; + + procedure SetBusinessRulesID(const Value: string); + function GetHasDelta: boolean; + function GetHasDeltaRecursive: boolean; + function GetRecNo: integer; + procedure SetRecNo(const Value: integer); + + { published property accessors cannot be safecall, so we need wrappers: } + function GetFieldsProperty: TDAFieldCollection; + function GetActiveProperty: boolean; + procedure SetActiveProperty(const Value: boolean); + function GetParamsProperty: TDAParamCollection; + function GetMasterParamsMappings: TStrings; + procedure SetMasterParamsMappings(const Value: TStrings); + + procedure PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); + procedure OnWhereChange(Sender: TObject); + procedure SetScriptCode(const Value: TStrings); + function GetDeltaInitialized: boolean; + procedure SetCustomAttributes(const Value: TStrings); + function Local_ApplyUpdates(RefetchAll: boolean = FALSE): boolean; + procedure InternalCancelUpdateChange(Change: TDADeltaChange); + procedure ExpessionEvaluatorGetValue(Sender: TDAExpressionEvaluator; const aIdentifier: string; out aValue: Variant); + procedure DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); + protected + function CreateAutoIncArray: TAutoIncArray; + function GetAutoIncs: TAutoIncArray; virtual; + procedure SetAutoIncs(const Value: TAutoIncArray); virtual; + + property AutoIncs: TAutoIncArray read GetAutoIncs write SetAutoIncs; + + function GetCurrRecId: integer; virtual; + procedure SetCurrRecId(const Value: integer); virtual; + + procedure Loaded; override; + + // To override + function GetDatasetClass: TDatasetClass; virtual; abstract; + procedure CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); virtual; + procedure DoRefresh(aDataset: TDataset); + procedure DoSort(const FieldNames: array of string; const Directions: array of TDASortDirection); virtual; abstract; + + procedure SetMasterSource(const Value: TDADataSource); virtual; + function GetMasterSource: TDADataSource; virtual; abstract; + procedure SetDetailsFields(const Value: string); virtual; abstract; + procedure SetMasterFields(const Value: string); virtual; + function GetDetailFields: string; virtual; abstract; + function GetMasterFields: string; virtual; abstract; + + function GetFilter: string; virtual; abstract; + function GetFiltered: boolean; virtual; abstract; + procedure SetFilter(const Value: string); virtual; abstract; + procedure SetFiltered(const Value: boolean); virtual; abstract; + + function GetReadOnly: boolean; virtual; + procedure SetReadOnly(const Value: boolean); virtual; + + procedure AttachEventHooks(aDataset: TDataset); virtual; + procedure DetachEventHooks(aDataset: TDataset); virtual; + + // Internal + procedure DoBeforeOpenDataset; virtual; + procedure DoBeforeCloseDataset; virtual; + procedure DoAfterOpenDataset; virtual; + procedure DoAfterCloseDataset; virtual; + procedure DoOpen(IgnoreAutoFetchSettings: Boolean = False); virtual; + + // Internal TDataset event handler hooks + procedure InternalAfterInsert(Sender: TDataset); dynamic; + procedure InternalAfterEdit(Sender: TDataset); dynamic; + procedure InternalBeforePost(Sender: TDataset); dynamic; + procedure InternalBeforeCancel(Sender: TDataset); dynamic; + procedure InternalAfterDelete(Sender: TDataset); dynamic; + procedure InternalBeforeScroll(Sender: TDataset); dynamic; + procedure InternalAfterScroll(Sender: TDataset); dynamic; + procedure InternalBeforeRefresh(Sender: TDataset); dynamic; + procedure InternalAfterRefresh(Sender: TDataset); dynamic; + procedure InternalOnCalcFields(Sender: TDataset); dynamic; + procedure InternalOnNewRecord(Sender: TDataset); dynamic; + procedure InternalAfterCancel(Sender: TDataset); dynamic; + procedure InternalBeforeInsert(Sender: TDataset); dynamic; + procedure InternalBeforeDelete(Sender: TDataset); dynamic; + procedure InternalBeforeEdit(Sender: TDataset); dynamic; + procedure InternalAfterPost(Sender: TDataset); dynamic; + procedure InternalBeforeFieldUpdate(Sender: TDACustomField); + procedure InternalAfterFieldUpdate(Sender: TDACustomField); + + procedure InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); dynamic; + + procedure InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + procedure InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + procedure InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + + // IDASQLCommand + function GetParams: TDAParamCollection; safecall; + procedure RefreshParams; safecall; + function Execute: integer; safecall; + function GetText: string; safecall; + procedure SetText(const Value: string); safecall; + function GetName: string; safecall; + + // IDADeltaOwner + function GetDelta: IDADelta; safecall; + + // IDADataReader + function IDADataReader.First = DataReaderFirst; + function IDADataReader.Next = DataReaderNext; + function DataReaderFirst: boolean; safecall; + function DataReaderNext: boolean; safecall; + + function GetFieldNames(Index: integer): string; safecall; + function GetFieldIndexes(const aName: string): integer; safecall; + function GetAsBoolean(Index: integer): boolean; overload; safecall; + function GetAsCurrency(Index: integer): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsDateTime(Index: integer): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsFloat(Index: integer): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsInteger(Index: integer): integer; overload; safecall; + function GetAsString(Index: integer): string; overload; safecall; + function GetAsVariant(Index: integer): variant; overload; safecall; + function GetAsBoolean(const FieldName: string): boolean; overload; safecall; + function GetAsCurrency(const FieldName: string): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsDateTime(const FieldName: string): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsFloat(const FieldName: string): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsInteger(const FieldName: string): integer; overload; safecall; + function GetAsString(const FieldName: string): string; overload; safecall; + function GetAsVariant(const FieldName: string): variant; overload; safecall; + + // IDADataset + function GetIsEmpty: boolean; safecall; + function GetRecordCount: integer; safecall; + function GetFieldCount: integer; safecall; + function GetBOF: boolean; safecall; + function GetEOF: boolean; safecall; + function GetSQL: string; safecall; + procedure SetSQL(const Value: string); safecall; + function GetFieldValues(Index: integer): Variant; safecall; + function GetNames(Index: integer): string; safecall; + function GetWhere: TDAWhere; safecall; deprecated; + function GetDynamicWhere: TDAWhereBuilder; safecall; + procedure SetDynamicWhere(const Value: TDAWhereBuilder);safecall; + function GetPrepared: boolean; safecall; + procedure SetPrepared(Value: boolean); safecall; + function GetState: TDataSetState; safecall; + function GetLogicalName: string; safecall; + procedure SetLogicalName(aName : string); safecall; + + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + + procedure OnMasterChange(Sender: TObject); virtual; + procedure OnMasterDisable(Sender: TObject); virtual; + + function GetOnAfterOpen: TDAAfterOpenDatasetEvent; safecall; + function GetOnBeforeOpen: TDABeforeOpenDatasetEvent; safecall; + procedure SetOnAfterOpen(const Value: TDAAfterOpenDatasetEvent); safecall; + procedure SetOnBeforeOpen(const Value: TDABeforeOpenDatasetEvent); safecall; + + function GetOnAfterExecute: TDAAfterExecuteCommandEvent; safecall; + function GetOnBeforeExecute: TDABeforeExecuteCommandEvent; safecall; + procedure SetOnAfterExecute(const Value: TDAAfterExecuteCommandEvent); safecall; + procedure SetOnBeforeExecute(const Value: TDABeforeExecuteCommandEvent); safecall; + function GetOnExecuteError: TDAExecuteCommandErrorEvent; safecall; + procedure SetOnExecuteError(const Value: TDAExecuteCommandErrorEvent); safecall; + function GetOnOpenError: TDAOpenDatasetErrorEvent; safecall; + procedure SetOnOpenError(const Value: TDAOpenDatasetErrorEvent); safecall; + + procedure NotifyFieldsClear; + + // IInterface + function QueryInterface(const IID: TGUID; out Obj): HResult; override; + + property MasterLink: TMasterDataLink read fMasterLink; + + {$IFDEF MSWINDOWS} + protected + function InterfaceSupportsErrorInfo(const iid: TGUID): HResult; stdcall; + + public + function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override; + {$ENDIF} + + public { for Delta } + property RecIDField : TIntegerField read fRecIDField write fRecIDField; + function GetRowRecIDValue: integer; + + + procedure CallScript(const aEvent: string); + + procedure InitializeDataTable; + procedure DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); + procedure WriteDeltaToStream(aStreamer: TDADataStreamer); + procedure ReadDeltaFromStream(aStreamer: TDADataStreamer; aFailedDeltas:TList);overload; + procedure ReadDeltaFromStream(aStreamer: TDADataStreamer); overload; + + public + constructor Create(aOwner: TComponent); override; + destructor Destroy; override; + + procedure EnableConstraints; virtual; safecall; abstract; + procedure DisableConstraints; virtual; safecall; abstract; + + procedure LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); virtual; + procedure FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings : Boolean = False); dynamic; + procedure LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); + procedure LoadScript(aDatasetName : string = ''); + + function ApplyUpdates(RefetchAll: boolean = FALSE): boolean; dynamic; + procedure CancelUpdates(IncludeDetails : boolean = TRUE); + procedure CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); + + procedure Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); + procedure UnSort; + + procedure ClearFields; + procedure ClearRows; + + procedure CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); overload; + procedure CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); overload; + + procedure SaveToStream(aStream: TStream); + procedure LoadFromStream(aStream: TStream); + procedure SaveToFile(const aFileName: string); + procedure LoadFromFile(const aFileName: string); + + procedure MergeDelta; virtual; + + // Master detail + function GetDetailDataTables: TList; + function GetDetailTablesforApplyUpdate(aRecursive: boolean = True): TList; + procedure GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); + function GetMasterDataTable : TDADataTable; + + // Methods + procedure Open; safecall; + procedure Close; safecall; + + procedure EnableControls; safecall; + procedure DisableControls; safecall; + + procedure Next; safecall; + + procedure Edit; safecall; + procedure Insert; safecall; + procedure Post; safecall; + procedure Cancel; safecall; + procedure Append; safecall; + procedure Delete; safecall; + + procedure Prior; safecall; + procedure First; safecall; + procedure Last; safecall; + + procedure Refresh; safecall; + + function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; safecall; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; safecall; + + function FieldByName(const aName: string): TDAField; safecall; + function FindField(const aName: string): TDAField; safecall; + function ParamByName(const aName: string): TDAParam; safecall; + + function GetBookmark: pointer; safecall; + procedure GotoBookmark(Bookmark: TBookmark); safecall; + procedure FreeBookmark(Bookmark: TBookmark); safecall; + + procedure EnableEventHandlers; safecall; + procedure DisableEventHandlers; safecall; + + procedure InternalSetFetching(aFetching: boolean); + + procedure AddRecord(const FieldNames : array of string; const FieldValues : array of Variant); safecall; + + function GetCurrentRecIdValue: integer; + procedure SetCurrentRecIdValue(Value: integer); + + // Properties + property CurrRecId: integer read GetCurrRecId write SetCurrRecId; + property RecIDValue: integer read GetRowRecIDValue; + property Delta: IDADelta read GetDelta write fDelta; + property RecNo : integer read GetRecNo write SetRecNo; + + property BOF: boolean read GetBOF; + property EOF: boolean read GetEOF; + property RecordCount: integer read GetRecordCount; + property FieldCount: integer read GetFieldCount; + property FieldValues[Index: integer]: Variant read GetFieldValues; + property Names[Index: integer]: string read GetNames; + + property SortFieldNames: TStringArray read fSortFieldNames; + property SortDirections: TDASortDirectionArray read fSortDirections; + + property Opening: boolean read fOpening; + property Closing: boolean read fClosing; + property Editing: boolean read GetEditing; + property Fetching: boolean read fFetching; + + property State: TDataSetState read GetState; + property Dataset: TDataset read GetDataset; + + property IsEmpty : boolean read GetIsEmpty; + + property BusinessEventsObj: TDADataTableRules read fBusinessRules; + + property HasDelta: boolean read GetHasDelta; + property HasDeltaRecursive: boolean read GetHasDeltaRecursive; + property DeltaInitialized: boolean read GetDeltaInitialized; + + property Where : TDAWhere read GetWhere; + property DynamicWhere: TDAWhereBuilder read GetDynamicWhere write SetDynamicWhere; + procedure CheckProperties(ACheckRemoteFetching: Boolean=False); virtual; + property HasReducedDelta: boolean read fHasReducedDelta; + published + property Active: boolean read GetActiveProperty write SetActiveProperty stored fStoreActive default false; + property StoreActive: boolean read fStoreActive write fStoreActive default false; + + property RemoteUpdatesOptions: TDARemoteUpdatesOptions read fRemoteUpdateOptions write fRemoteUpdateOptions; + + property MaxRecords : integer read fMaxRecords write fMaxRecords default -1; + + property Fields: TDAFieldCollection read GetFieldsProperty write SetFields; + property Params: TDAParamCollection read GetParamsProperty write SetParams; + + property MasterMappingMode : TDAMasterMappingMode read fMasterMappingMode write fMasterMappingMode default mmParams; + property MasterParamsMappings : TStrings read GetMasterParamsMappings write SetMasterParamsMappings; + + property LogChanges: boolean read GetLogChanges write SetLogChanges default true; + property StreamingOptions: TDAStreamingOptions read fStreamingOptions write fStreamingOptions; + property RemoteFetchEnabled: boolean read fRemoteFetchEnabled write fRemoteFetchEnabled default true; + + property ScriptCode : TStrings read fScriptCode write SetScriptCode; + property CustomAttributes : TStrings read fCustomAttributes write SetCustomAttributes; + + property RemoteDataAdapter: TDABaseRemoteDataAdapter read fRemoteDataAdapter write SetRemoteDataAdapter; + + property BeforeOpen: TDADataTableNotifyEvent read fBeforeOpen write fBeforeOpen; + property AfterOpen: TDADataTableNotifyEvent read fAfterOpen write fAfterOpen; + property BeforeClose: TDADataTableNotifyEvent read fBeforeClose write fBeforeClose; + property AfterClose: TDADataTableNotifyEvent read fAfterClose write fAfterClose; + property BeforeInsert: TDADataTableNotifyEvent read fBeforeInsert write fBeforeInsert; + property AfterInsert: TDADataTableNotifyEvent read fAfterInsert write fAfterInsert; + property BeforeEdit: TDADataTableNotifyEvent read fBeforeEdit write fBeforeEdit; + property AfterEdit: TDADataTableNotifyEvent read fAfterEdit write fAfterEdit; + property BeforePost: TDADataTableNotifyEvent read fBeforePost write fBeforePost; + property AfterPost: TDADataTableNotifyEvent read fAfterPost write fAfterPost; + property BeforeCancel: TDADataTableNotifyEvent read fBeforeCancel write fBeforeCancel; + property AfterCancel: TDADataTableNotifyEvent read fAfterCancel write fAfterCancel; + property BeforeDelete: TDADataTableNotifyEvent read fBeforeDelete write fBeforeDelete; + property AfterDelete: TDADataTableNotifyEvent read fAfterDelete write fAfterDelete; + property BeforeScroll: TDADataTableNotifyEvent read fBeforeScroll write fBeforeScroll; + property AfterScroll: TDADataTableNotifyEvent read fAfterScroll write fAfterScroll; + property BeforeRefresh: TDADataTableNotifyEvent read fBeforeRefresh write fBeforeRefresh; + property AfterRefresh: TDADataTableNotifyEvent read fAfterRefresh write fAfterRefresh; + property OnCalcFields: TDADataTableNotifyEvent read fOnCalcFields write fOnCalcFields; + property OnNewRecord: TDADataTableNotifyEvent read fOnNewRecord write fOnNewRecord; + + property OnFilterRecord: TDADataTableFilterEvent read fOnFilterRecord write fOnFilterRecord; + + property ReadOnly : boolean read GetReadOnly write SetReadOnly; + + property OnDeleteError: TDADataTableErrorEvent read fOnDeleteError write fOnDeleteError; + property OnEditError: TDADataTableErrorEvent read fOnEditError write fOnEditError; + property OnPostError: TDADataTableErrorEvent read fOnPostError write fOnPostError; + + property LocalSchema: TDASchema read fLocalSchema write SetLocalSchema; + property LocalDataStreamer: TDADataStreamer read fLocalDataStreamer write SetLocalDataStreamer; + property LocalConnection: string read fLocalConnection write fLocalConnection; + + property MasterSource: TDADataSource read GetMasterSource write SetMasterSource; + property MasterFields: string read GetMasterFields write SetMasterFields; + property DetailFields: string read GetDetailFields write SetDetailsFields; + property MasterRequestMappings: TStrings read GetMasterRequestMappings write SetMasterRequestMappings; + + property DetailOptions: TDADetailOptions read fDetailOptions write fDetailOptions; + property MasterOptions: TDAMasterOptions read fMasterOptions write fMasterOptions; + + property Filtered: boolean read GetFiltered write SetFiltered default false; + property Filter: string read GetFilter write SetFilter; + + property LogicalName: string read fLogicalName write fLogicalName; + + //property OnApplyUpdatesError: TDAApplyUpdatesError read fOnApplyUpdatesError write fOnApplyUpdatesError; + + property OnAfterApplyUpdates : TDADataTableNotifyEvent read fOnAfterApplyUpdates write fOnAfterApplyUpdates; + property OnBeforeApplyUpdates : TDABeforeApplyUpdatesEvent read fOnBeforeApplyUpdates write fOnBeforeApplyUpdates; + property OnBeforeMergeDelta : TDADataTableNotifyEvent read fOnBeforeMergeDelta write fOnBeforeMergeDelta; + property OnAfterMergeDelta : TDADataTableNotifyEvent read fOnAfterMergeDelta write fOnAfterMergeDelta; + + property OnBeforeDataRequestCall: TDADataTableRemoteRequestEvent read fOnBeforeDataRequestCall write fOnBeforeDataRequestCall; + property OnAfterDataRequestCall: TDADataTableRemoteRequestEvent read fOnAfterDataRequestCall write fOnAfterDataRequestCall; + property OnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent read fOnBeforeDataUpdateCall write fOnBeforeDataUpdateCall; + property OnAfterDataUpdateCall: TDADataTableRemoteRequestEvent read fOnAfterDataUpdateCall write fOnAfterDataUpdateCall; + property OnBeforeSchemaCall: TDADataTableRemoteRequestEvent read fOnBeforeSchemaCall write fOnBeforeSchemaCall; + property OnAfterSchemaCall: TDADataTableRemoteRequestEvent read fOnAfterSchemaCall write fOnAfterSchemaCall; + property OnBeforeScriptCall: TDADataTableRemoteRequestEvent read fOnBeforeScriptCall write fOnBeforeScriptCall; + property OnAfterScriptCall: TDADataTableRemoteRequestEvent read fOnAfterScriptCall write fOnAfterScriptCall; + + property OnReceiveDataStream: TDADataRequestStreamEvent read fOnReceiveDataStream write fOnReceiveDataStream; + + property OnBeforeFieldChange: TDADataTableDataChangeEvent read fBeforeFieldChange write fBeforeFieldChange; + property OnAfterFieldChange: TDADataTableDataChangeEvent read fAfterFieldChange write fAfterFieldChange; + property BusinessRulesID: string read fBusinessRulesID write SetBusinessRulesID; + end; + + TDADataTableClass = class of TDADataTable; + {$WARN SYMBOL_DEPRECATED ON} + + { Exceptions } + EDABizValidationException = class(EROException); + + { TDABusinessRules } + TDABusinessRules = class(TDAEngineBaseObject) + private + protected + function _AddRef: Integer; override; + function _Release: Integer; override; + + public + constructor Create; virtual; + destructor Destroy; override; + + end; + + IDAStronglyTypedDataTable = interface + ['{4D4063AA-DFD0-4B4D-8CC2-FCE3BE1D2F87}'] + procedure Open; + procedure Close; + + function GetActive: boolean; + procedure SetActive(const Value: boolean); + + property Active: boolean read GetActive write SetActive; + + procedure Append; + procedure Cancel; + procedure Delete; + procedure Edit; + procedure First; + procedure Insert; + procedure Last; + procedure Next; + procedure Post; + procedure Prior; + + function Locate(const aKeyFields: string; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; + + function GetDataTable : TDADataTable; + + function GetState : TDatasetState; + function GetIsEmpty : boolean; + function GetRecNo : integer; + procedure SetRecNo(Value : integer); + function GetMasterOptions : TDAMasterOptions; + procedure SetMasterOptions(Value : TDAMasterOptions); + function GetDetailOptions : TDADetailOptions; + procedure SetDetailOptions(Value : TDADetailOptions); + + function IsFieldNull(const FieldIndexOrName : Variant) : boolean; + procedure ClearField(const FieldIndexOrName : Variant); + + function GetBOF: boolean; + function GetEOF: boolean; + function GetRecordCount: integer; + + property BOF: boolean read GetBOF; + property EOF: boolean read GetEOF; + property RecordCount: integer read GetRecordCount; + property RecNo : integer read GetRecNo write SetRecNo; + + property MasterOptions : TDAMasterOptions read GetMasterOptions write SetMasterOptions; + property DetailOptions : TDADetailOptions read GetDetailOptions write SetDetailOptions; + + property IsEmpty : boolean read GetIsEmpty; + property State : TDatasetState read GetState; + property DataTable : TDADataTable read GetDataTable; + end; + + { TDAFieldRules } + TDAFieldRules = class(TDABusinessRules) + private + fField : TDAField; + fDataTable : TDADataTable; + + protected + // Misc + procedure Attach(aDataTable: TDADataTable); virtual; + procedure Detach(aDataTable: TDADataTable); virtual; + + // Event handler hooks + procedure OnValidate(Sender: TDACustomField); virtual; + procedure OnChange(Sender: TDACustomField); virtual; + + property DataTable : TDADataTable read fDataTable; + + public + constructor Create(aField : TDAField; aDataTable : TDADataTable); reintroduce; virtual; + destructor Destroy; override; + end; + + TDAFieldRulesClass = class of TDAFieldRules; + + { TDADataTableRules } + TDADataTableRules = class(TDABusinessRules, IDAStronglyTypedDataTable, IDARangeController) + private + fDataTable: TDADataTable; + fDetails : TStringList; + + function GetDetails(Index: integer): TDADataTable; + function GetDetailsCount: integer; + + protected + // Misc + function GetDataTable: TDADataTable; + procedure Attach(aDataTable: TDADataTable); virtual; + procedure Detach(aDataTable: TDADataTable); virtual; + + procedure RefreshDetails; + + function FindDetail(const aLogicalName : string) : TDADataTable; + function DetailByName(const aLogicalName : string) : TDADataTable; + + // Business events + procedure BeforeOpen(Sender: TDADataTable); virtual; + procedure AfterOpen(Sender: TDADataTable); virtual; + procedure BeforeClose(Sender: TDADataTable); virtual; + procedure AfterClose(Sender: TDADataTable); virtual; + procedure BeforeInsert(Sender: TDADataTable); virtual; + procedure AfterInsert(Sender: TDADataTable); virtual; + procedure BeforeEdit(Sender: TDADataTable); virtual; + procedure AfterEdit(Sender: TDADataTable); virtual; + procedure BeforePost(Sender: TDADataTable); virtual; + procedure AfterPost(Sender: TDADataTable); virtual; + procedure BeforeCancel(Sender: TDADataTable); virtual; + procedure AfterCancel(Sender: TDADataTable); virtual; + procedure BeforeDelete(Sender: TDADataTable); virtual; + procedure AfterDelete(Sender: TDADataTable); virtual; + procedure BeforeScroll(Sender: TDADataTable); virtual; + procedure AfterScroll(Sender: TDADataTable); virtual; + procedure BeforeRefresh(Sender: TDADataTable); virtual; + procedure AfterRefresh(Sender: TDADataTable); virtual; + procedure OnCalcFields(Sender: TDADataTable); virtual; + procedure OnNewRecord(Sender: TDADataTable); virtual; + + procedure OnDeleteError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnEditError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnFilterRecord(DataTable: TDADataTable; var Accept : boolean); virtual; + + procedure OnAfterSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + + procedure OnAfterApplyUpdates(DataTable: TDADataTable); virtual; + procedure OnBeforeMergeDelta(DataTable: TDADataTable); virtual; + procedure OnAfterMergeDelta(DataTable: TDADataTable); virtual; + + procedure OnReceiveDataStream(DataTable: TDADataTable; Stream: TStream); virtual; + procedure OnBeforeApplyUpdates(DataTable: TDADataTable; const Delta: IDADelta); virtual; + + procedure Open; virtual; + procedure Close; virtual; + + function GetActive: boolean; + procedure SetActive(const Value: boolean); + + property Active: boolean read GetActive write SetActive; + + procedure Append; virtual; + procedure Cancel; virtual; + procedure Delete; virtual; + procedure Edit; virtual; + procedure First; virtual; + procedure Insert; virtual; + procedure Last; virtual; + procedure Next; virtual; + procedure Post; virtual; + procedure Prior; virtual; + + function GetBOF: Boolean; virtual; + function GetEOF: Boolean; virtual; + function GetRecordCount: Integer; virtual; + function Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; virtual; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; + + function GetMasterOptions : TDAMasterOptions; + procedure SetMasterOptions(Value : TDAMasterOptions); + function GetDetailOptions : TDADetailOptions; + procedure SetDetailOptions(Value : TDADetailOptions); + function GetRecNo : integer; + procedure SetRecNo(Value : integer); + function GetIsEmpty: boolean; + function GetState: TDatasetState; + + function IsFieldNull(const FieldIndexOrName : Variant) : boolean; + procedure ClearField(const FieldIndexOrName : Variant); + + property DataTable: TDADataTable read GetDataTable; + property Details[Index : integer] : TDADataTable read GetDetails; + property DetailCount : integer read GetDetailsCount; + property State : TDatasetState read GetState; + property IsEmpty : boolean read GetIsEmpty; + + { IDARangeController } + procedure ApplyRange; safecall; + procedure CancelRange; safecall; + procedure SetRange(const StartValues, EndValues: array of const); safecall; + procedure EditRangeEnd; safecall; + procedure EditRangeStart; safecall; + procedure SetRangeEnd; safecall; + procedure SetRangeStart; safecall; + + public + constructor Create(aDataTable: TDADataTable); reintroduce; virtual; + destructor Destroy; override; + end; + + TDADataTableRulesClass = class of TDADataTableRules; + + { TDADataTableList } + TDADataTableList = class(TList) + private + function GetItems(Index: integer): TDADataTable; + function GetPendingChangeCount: integer; + protected + public + constructor Create(aOwnerComponent : TComponent); + + function ScanAndAdd(aOwnerComponent : TComponent) : integer; + + function Add(aDataTable : TDADataTable) : integer; + procedure Remove(aDataTable : TDADataTable); + + property Items[Index : integer] : TDADataTable read GetItems; default; + property PendingChangeCount : integer read GetPendingChangeCount; + end; + +// Registration routines +procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); +function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; + +procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); +function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; + +// Helper functions +function NewDelta(aDataTable: TDADataTable): IDADelta; overload; + +function DatatableFromStream(aStream : TStream; + aDataTableClass : TDADataTableClass; + anAdapter : TDADataAdapter; + const aDatasetName : string = '') : TDADataTable; + +implementation + +uses + {$IFDEF DESIGNTIME} + {$IFDEF MSWINDOWS} + Dialogs, + {$ENDIF MSWINDOWS} + {$IFDEF LINUX} + QDialogs, + {$ENDIF LINUX} + {$ENDIF DESIGNTIME} + TypInfo, Variants, + uROClient, uROSessions, uROXMLIntf, + uDARegExpr, uDABusinessProcessor, + uDARemoteDataAdapter; + +var + _bizfields, + _bizdatatables: TStringList; + +type + TDataSetHack = class(TDataSet); + +function NewDelta(aDataTable: TDADataTable): IDADelta; +begin + result := TDADelta.Create(aDataTable); +end; + +procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); +var + idx: integer; +begin + idx := _bizdatatables.IndexOf(anID); + + if (idx >= 0) then + _bizdatatables.Objects[idx] := TObject(aDataTableRulesClass) + else + _bizdatatables.AddObject(anID, TObject(aDataTableRulesClass)); +end; + +function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; +var + idx: integer; +begin + result := FALSE; + idx := _bizdatatables.IndexOf(anID); + if (idx >= 0) then begin + aDataTableRulesClass := TDADataTableRulesClass(_bizdatatables.Objects[idx]); + result := TRUE; + end + else + aDataTableRulesClass := nil; +end; + +procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); +var + idx: integer; +begin + idx := _bizfields.IndexOf(anID); + + if (idx >= 0) then + _bizfields.Objects[idx] := TObject(aFieldRulesClass) + else + _bizfields.AddObject(anID, TObject(aFieldRulesClass)); +end; + +function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; +var + idx: integer; +begin + result := FALSE; + idx := _bizfields.IndexOf(anID); + if (idx >= 0) then begin + aFieldRulesClass := TDAFieldRulesClass(_bizfields.Objects[idx]); + result := TRUE; + end + else + aFieldRulesClass := nil; +end; + +function DatatableFromStream(aStream : TStream; + aDataTableClass : TDADataTableClass; + anAdapter : TDADataAdapter; + const aDatasetName : string = '') : TDADataTable; +begin + result := aDataTableClass.Create(NIL); + result.RemoteFetchEnabled := FALSE; + anAdapter.ReadDataset(aStream, result, TRUE, aDatasetName); + result.First; +end; + +{ TDADataTable } + +constructor TDADataTable.Create(aOwner: TComponent); +begin + inherited; + fHasReducedDelta := False; + fScriptCode := TStringList.Create; + fCustomAttributes := TStringList.Create; + fMaxRecords := -1; + + fMasterMappingMode := mmParams; + fMasterParamsMappings := TStringList.Create; + + fFieldRules := TObjectList.Create; + + fRemoteUpdateOptions := []; + fStreamingOptions := [soDisableEventsWhileStreaming]; + fDetailOptions := [dtCascadeOpenClose, + dtCascadeApplyUpdates, + dtAutoFetch, + dtCascadeDelete, + dtCascadeUpdate, + dtDisableLogOfCascadeDeletes, + dtDisableLogOfCascadeUpdates, + dtIncludeInAllInOneFetch // Done to avoid breaking existing apps + ]; + + fMasterOptions := [moCascadeOpenClose, + moCascadeApplyUpdates, + moCascadeDelete, + moCascadeUpdate, + moDisableLogOfCascadeDeletes, + moDisableLogOfCascadeUpdates]; + + fFetchedMasters := TStringList.Create; + fFetchedMasters.Duplicates := dupError; + fFetchedMasters.Sorted := TRUE; + + fMasterRequestMappings := TStringList.Create; + + fRemoteFetchEnabled := TRUE; + fStreaming := False; + + SetLength(fSortDirections, 0); + SetLength(fSortFieldNames, 0); + + fFields := TDAFieldCollection.Create(Self); + fFields.OnFieldBeforeUpdate := InternalBeforeFieldUpdate; + fFields.OnFieldAfterUpdate := InternalAfterFieldUpdate; + fParams := TDAParamCollection.Create(Self); + + fWhere := TDAWhere.Create(fFields, TRUE); + fWhere.OnChange := OnWhereChange; + + fDataset := GetDatasetClass.Create(Self); + fDataset.Name := 'Dataset'; + + fMasterLink := TMasterDataLink.Create(fDataset); + fMasterLink.OnMasterChange := OnMasterChange; + fMasterLink.OnMasterDisable := OnMasterDisable; + + fExpressionEvaluator := TDAStdExpressionEvaluator.Create; + fExpressionEvaluator.OnGetValue := ExpessionEvaluatorGetValue; + + fDynamicWhere := TDAWhereBuilder.Create; + fLogChanges := TRUE; +end; + +destructor TDADataTable.Destroy; +begin + fDynamicWhere.Free; + fExpressionEvaluator.Free; + fFields.Free; + fWhere.Free; + + fMasterLink.Free; + fMasterRequestMappings.Free; + fMasterParamsMappings.Free; + + fFetchedMasters.Free; + + if (fBusinessRules <> nil) then begin + fBusinessRules.Detach(Self); + fBusinessRules.Free; + end; + + fFieldRules.Free; + fParams.Free; + + fDelta := NIL; + fScriptCode.Free; + fCustomAttributes.Free; + + inherited; +end; + +procedure TDADataTable.OnWhereChange(Sender : TObject); +var + par : TRORequestParam; +begin + //TODO: par := DataRequestCall.FindParam(par_UserFilter); + //if (par<>NIL) then par.AsString := fWhere.Clause; + + if RemoteFetchEnabled and (RemoteDataAdapter <> nil) then + begin + par := (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall).FindParam('UserFilter'); + if (par <> NIL) then + par.AsString := fWhere.Clause; + end; +end; + +procedure TDADataTable.AttachEventHooks(aDataset: TDataset); +var i : integer; + lFieldRulesClass : TDAFieldRulesClass; + lFieldRules : TDAFieldRules; + lField : TDAField; +begin + if (csDesigning in ComponentState) then Exit; + + aDataset.BeforeInsert := InternalBeforeInsert; + aDataset.AfterInsert := InternalAfterInsert; + aDataset.BeforeEdit := InternalBeforeEdit; + aDataset.AfterEdit := InternalAfterEdit; + aDataset.BeforePost := InternalBeforePost; + aDataset.AfterPost := InternalAfterPost; + aDataset.BeforeCancel := InternalBeforeCancel; + aDataset.AfterCancel := InternalAfterCancel; + aDataset.BeforeDelete := InternalBeforeDelete; + aDataset.AfterDelete := InternalAfterDelete; + aDataset.BeforeScroll := InternalBeforeScroll; + aDataset.AfterScroll := InternalAfterScroll; + aDataset.BeforeRefresh := InternalBeforeRefresh; + aDataset.AfterRefresh := InternalAfterRefresh; + + aDataset.OnCalcFields := InternalOnCalcFields; + aDataset.OnNewRecord := InternalOnNewRecord; + + aDataset.OnFilterRecord := InternalOnFilterRecord; + + aDataset.OnDeleteError := InternalOnDeleteError; + aDataset.OnEditError := InternalOnEditError; + aDataset.OnPostError := InternalOnPostError; + + for i := 0 to (fFields.Count-1) do begin + lField := Fields[i]; + if (lField.BusinessClassID='') then Continue; + + Check(not FindFieldRules(lField.BusinessClassID, lFieldRulesClass), 'Invalid BusinessClassID "%s"', [lField.BusinessClassID]); + + lFieldRules := lFieldRulesClass.Create(lField, Self); + fFieldRules.Add(lFieldRules); + end; + + fFields.FieldEventsDisabled := FALSE; +end; + +procedure TDADataTable.DetachEventHooks(aDataset: TDataset); +begin + if (csDesigning in ComponentState) then Exit; + + aDataset.BeforeInsert := nil; + aDataset.AfterInsert := nil; + aDataset.BeforeEdit := nil; + aDataset.AfterEdit := nil; + aDataset.BeforePost := TempSetRowRecIDValue; // We still need to autoinc the RecID!!! + aDataset.AfterPost := nil; + aDataset.BeforeCancel := nil; + aDataset.AfterCancel := nil; + aDataset.BeforeDelete := nil; + aDataset.AfterDelete := nil; + aDataset.BeforeScroll := nil; + aDataset.AfterScroll := nil; + aDataset.BeforeRefresh := nil; + aDataset.AfterRefresh := nil; + if not Filtered then + aDataset.OnCalcFields := nil; + aDataset.OnNewRecord := nil; + + aDataset.OnFilterRecord := nil; + + aDataset.OnDeleteError := nil; + aDataset.OnEditError := nil; + aDataset.OnPostError := nil; + + fFields.FieldEventsDisabled := TRUE; + fFieldRules.Clear; // Destroyes them +end; + +procedure TDADataTable.InternalAfterDelete(Sender: TDataset); +begin + CallScript('AfterDelete'); + if Assigned(AfterDelete) then AfterDelete(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterDelete(Self); + + if (ruoOnPost in RemoteUpdatesOptions) then ApplyUpdates(); +end; + +procedure TDADataTable.InternalAfterEdit(Sender: TDataset); +begin + CallScript('AfterEdit'); + if Assigned(AfterEdit) then AfterEdit(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterEdit(Self); +end; + +procedure TDADataTable.InternalAfterInsert(Sender: TDataset); +var + i: integer; +begin + CallScript('AfterInsert'); + + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + // (autoinc) + for i := 0 to (fFields.Count-1) do + if (fFields[i].DataType=datLargeAutoInc) then begin + fFields[i].AsLargeInt := AutoIncs[i]; + AutoIncs[i] := AutoIncs[i]-1; + end else + if (fFields[i].DataType=datAutoInc) then begin + fFields[i].AsInteger := AutoIncs[i]; + AutoIncs[i] := AutoIncs[i]-1; + end; + end; + + if Assigned(AfterInsert) then AfterInsert(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterInsert(Self); +end; + +procedure TDADataTable.InternalAfterRefresh(Sender: TDataset); +begin + CallScript('AfterRefresh'); + if Assigned(AfterRefresh) then AfterRefresh(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterRefresh(Self); +end; + +procedure TDADataTable.InternalAfterScroll(Sender: TDataset); +begin + if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) + then Exit; + CallScript('AfterScroll'); + if Assigned(AfterScroll) then AfterScroll(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterScroll(Self); +end; + +procedure TDADataTable.InternalBeforeCancel(Sender: TDataset); +begin + CallScript('BeforeCancel'); + if Assigned(BeforeCancel) then BeforeCancel(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeCancel(Self); +end; + +procedure TDADataTable.InternalBeforeRefresh(Sender: TDataset); +begin + CallScript('BeforeRefresh'); + if Assigned(BeforeRefresh) then BeforeRefresh(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeRefresh(Self); + DoRefresh(fDataset); +end; + +procedure TDADataTable.InternalBeforeScroll(Sender: TDataset); +begin + if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) + then Exit; + CallScript('BeforeScroll'); + if Assigned(BeforeScroll) then BeforeScroll(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeScroll(Self); +end; + +procedure TDADataTable.InternalOnCalcFields(Sender: TDataset); +var + i: integer; +begin + CallScript('OnCalcFields'); + if Assigned(OnCalcFields) then OnCalcFields(Self); + if Assigned(fBusinessRules) then fBusinessRules.OnCalcFields(Self); + For i:= 0 to fFields.Count-1 do + With fFields[i] do + if Calculated and (Expression <> '') then Value:= fExpressionEvaluator.Evaluate(Expression); +end; + +procedure TDADataTable.InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + if Assigned(OnDeleteError) then OnDeleteError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnDeleteError(Self, Error, Action); +end; + +procedure TDADataTable.InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + if Assigned(OnEditError) then OnEditError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnEditError(Self, Error, Action); +end; + +procedure TDADataTable.InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); +begin + if Assigned(OnFilterRecord) then OnFilterRecord(Self, Accept); + if Assigned(fBusinessRules) then fBusinessRules.OnFilterRecord(Self, Accept); +end; + +procedure TDADataTable.InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + fDelta.RestoreLastChange; // ALEF: added as follow up to the Post errors (Jeff B.) + + if Assigned(OnPostError) then OnPostError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnPostError(Self, Error, Action); +end; + +procedure TDADataTable.SetLogChanges(const Value: boolean); +begin + fLogChanges := Value; +end; + +function TDADataTable.GetDataset: TDataset; +begin + result := fDataset // inherited Dataset; +end; + +function TDADataTable.GetFields: TDAFieldCollection; +begin + result := fFields; +end; + +procedure TDADataTable.SetFields(const Value: TDAFieldCollection); +begin + if Active then Close; + fFields.Assign(Value); +end; + +function TDADataTable.GetActive: boolean; +begin + result := fDataset.Active; +end; + +procedure TDADataTable.SetActive(Value: boolean); +begin + if (csLoading in ComponentState) then + fStreamedActive := Value + else begin + if (Value <> Active) then begin + if Value then + Open + else + Close + end; + end; +end; + +procedure TDADataTable.InternalOnNewRecord(Sender: TDataset); +var + i: integer; +begin + fFields.FieldEventsDisabled := TRUE; + try + try + for i := 0 to (fFields.Count - 1) do + if (fFields[i].DefaultValue <> '') then fFields[i].Value := fFields[i].DefaultValue; + + fFields.FieldEventsDisabled := FALSE; + + CallScript('OnNewRecord'); + if Assigned(OnNewRecord) then OnNewRecord(Self); + if Assigned(fBusinessRules) then fBusinessRules.OnNewRecord(Self); + except + fDelta.CancelChange; // OnNewRecord's exception put the dataset in read mode so we must cancel the change + raise; + end; + finally + fFields.FieldEventsDisabled := FALSE; // Just in case... + end; +end; + +procedure TDADataTable.DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); +var + i: integer; + details: TList; + dt: TDADataTable; + flag: boolean; +begin + if aOption = moAllInOneFetch then begin + DoCascadeRemoteAllInOneFetch(aStreamer); + exit; + end; + details := GetDetailDataTables; + try + for i := 0 to (details.Count - 1) do begin + dt := TDADataTable(details[i]); + flag := dt.LogChanges; + + case aOption of + moCascadeDelete: begin + if (dtDisableLogOfCascadeDeletes in dt.DetailOptions) then dt.LogChanges := FALSE; + + dt.ClearRows; + end; + + moCascadeOpenClose: begin + if (dtCascadeOpenClose in dt.DetailOptions) then begin + if Opening then + dt.DoOpen + else if Closing then + dt.Close; + end; + end; + + moCascadeUpdate: begin + end; + + moAllInOneFetch: begin + { + if (dtIncludeInAllInOneFetch in dt.DetailOptions) then try + dt.LogChanges := FALSE; + + if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then + begin + aStreamer.ReadDataset(dt.LogicalName, dt, TRUE, FALSE); + dt.InitializeDataTable; + end; + + aStreamer.ReadDataset(dt.LogicalName, dt); + dt.DoCascadeOperation(aStreamer, moAllInOneFetch); + finally + dt.LogChanges := flag; + end; } + end; + end; + + dt.LogChanges := flag; + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); +var + lFetchedMasters: TStringList; + + procedure ProcessDetailTable(aTable: TDADataTable); + begin + with aTable do begin + fFetchedMasters.Sorted:=False; + fFetchedMasters.AddStrings(lFetchedMasters); + fFetchedMasters.Sorted:=True; + DoCascadeRemoteAllInOneFetch(aStreamer); + end; + end; + +var + lLocalList, lRemoteList: TList; + ltbl: TDADataTable; + i: integer; + lflag: boolean; +begin + if moAllInOneFetch in fMasterOptions then begin + lRemoteList:= TList.Create; + lLocalList:= TList.Create; + try + GetDetailTablesforAllinOneFetch(lRemoteList,lLocalList, False); + if (lRemoteList.Count > 0) or (lLocalList.Count > 0) then begin + lFetchedMasters:= TStringList.Create; + try + First; + while not EOF do begin + lFetchedMasters.Add(IntToStr(GetRowRecIDValue)); + Next; + end; + lFetchedMasters.Sort; + + // these tables are read in RDA + for i := 0 to lRemoteList.Count - 1 do begin + ProcessDetailTable(TDADataTable(lRemoteList[i])); + end; + + // these tables we should read manually from streamer + for i := 0 to lLocalList.Count - 1 do begin + ltbl:= TDADataTable(lLocalList[i]); + if aStreamer.FindDatasetIndex(ltbl.LogicalName) = -1 then Continue; // may be to better raise an exception! + lflag := ltbl.LogChanges; + try + ltbl.LogChanges := False; + if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then begin + aStreamer.ReadDataset(ltbl.LogicalName, ltbl, TRUE, FALSE); + ltbl.InitializeDataTable; + end; + aStreamer.ReadDataset(ltbl.LogicalName, ltbl); + finally + ltbl.LogChanges := lflag; + end; + ProcessDetailTable(ltbl); + end; + finally + lFetchedMasters.Free; + end; + end; + finally + lRemoteList.Free; + lLocalList.Free; + end; + end; +end; + +procedure TDADataTable.TempSetRowRecIDValue(Sender: TDataset); +begin + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + fRecIDField.AsInteger := CurrRecId; + CurrRecId := CurrRecId + 1; + end; +end; + +procedure TDADataTable.CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); +var + i, cnt: integer; + fld: TFieldDef; + fldcls: TFieldClass; + realfld: TField; +begin + // Creates the RecID field + fld := aDataset.FieldDefs.AddFieldDef; + fld.DataType := ftInteger; + fld.Name := RecIDFieldName; + + // Creates the autoinc map (autoinc) + AutoIncs := CreateAutoIncArray; + + // Adds the data fields (non calculated) to the FieldDefs + for i := 0 to (Fields.Count - 1) do begin + if Fields[i].Calculated or Fields[i].Lookup then Continue; // Added as fields later + + fld := aDataset.FieldDefs.AddFieldDef; + + // (autoinc) + if (Fields[i].DataType=datLargeAutoInc) + then fld.DataType := ftLargeint + else + if (Fields[i].DataType=datAutoInc) + then fld.DataType := ftInteger + else fld.DataType := DATypeToVCLType(Fields[i].DataType); + + fld.Name := Fields[i].Name; + + {if not (fld.DataType in [ftFloat, ftCurrency, ftBlob, ftInteger]) + then fld.Size := Fields[i].Size;} + + if (fld.DataType = ftString) or (fld.DataType = ftWideString) then fld.Size := Fields[i].Size; + if (fld.DataType = ftGuid) then fld.Size := 38; + + fld.Required := Fields[i].Required; + end; + + // Creates the data fields + for i := 0 to (aDataset.FieldDefs.Count - 1) do begin + realfld := aDataset.FieldDefs[i].CreateField(aDataset); + realfld.DataSet := aDataset; // NEW + end; + + // Creates the calculated fields + for i := 0 to (Fields.Count - 1) do begin + if not Fields[i].Calculated then Continue; + + fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; + if fldcls = nil then fldcls := TStringField; + realfld := fldcls.Create(Self); + realfld.Name := aDataset.Name + Fields[i].Name; + realfld.FieldName := Fields[i].Name; + realfld.DataSet := aDataset; + + if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; + + realfld.Required := Fields[i].Required; + if Fields[i].Calculated then realfld.FieldKind := fkCalculated; + + realfld.DataSet := aDataset; + end; + + // Creates the lookup fields + for i := 0 to (Fields.Count - 1) do begin + if not Fields[i].Lookup then Continue; + + fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; + + if not Assigned(fldcls) then + RaiseError('No or invalid DataType specified for lookup field %s.%s',[self.Name, Fields[i].Name]); + + realfld := fldcls.Create(Self); + realfld.Name := aDataset.Name + Fields[i].Name; + realfld.FieldName := Fields[i].Name; + realfld.DataSet := aDataset; // NEW + + // Sets lookup properties + with Fields[i] do begin + {$IFDEF FPC} + realfld.FieldKind:=fkLookup; + {$ELSE} + realfld.Lookup := TRUE; + {$ENDIF} + if (LookupSource<>NIL) then + with TDADataSource(LookupSource) do + if Assigned(DataTable) + then realfld.LookupDataSet := DataTable.Dataset; + + realfld.LookupKeyFields := LookupKeyFields; + realfld.LookupCache := LookupCache; + realfld.LookupResultField := LookupResultField; + realfld.KeyFields := KeyFields; + end; + + if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; + + //realfld.DataSet := aDataset; + end; + + // Adjusts field positions (less intrusive than changing the code above) + cnt := Fields.Count-1; + for i := 0 to cnt do + aDataSet.FieldByName(Fields[i].Name).Index := i+1; +end; + +procedure TDADataTable.Loaded; +begin + inherited; + + if Assigned(fBusinessRules) + then fBusinessRules.Attach(Self); + + Active := fStreamedActive; + + AttachEventHooks(fDataset); +end; + +procedure TDADataTable.DoRefresh(aDataset: TDataset); +begin + if fRefreshing then Exit; + + fRefreshing := TRUE; + try + Close; + Open; + finally + fRefreshing := FALSE; + end; +end; + +procedure TDADataTable.InternalBeforeInsert(Sender: TDataset); +begin + CallScript('BeforeInsert'); + if Assigned(BeforeInsert) then BeforeInsert(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeInsert(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + fDelta.StartChange(ctInsert); +end; + +procedure TDADataTable.InternalBeforeDelete(Sender: TDataset); +begin + CallScript('BeforeDelete'); + if Assigned(BeforeDelete) then BeforeDelete(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeDelete(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + // Deletes the records from the detail tables + if (moCascadeDelete in MasterOptions) then DoCascadeOperation(nil, moCascadeDelete); + + // Logs the delete + fDelta.StartChange(ctDelete); + fDelta.EndChange; +end; + +procedure TDADataTable.InternalBeforeEdit(Sender: TDataset); +begin + CallScript('BeforeEdit'); + if Assigned(BeforeEdit) then BeforeEdit(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeEdit(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + fDelta.StartChange(ctUpdate); +end; + +procedure TDADataTable.InternalBeforePost(Sender: TDataset); +var details : TList; + key : string; + i : integer; +begin + CallScript('BeforePost'); + if Assigned(BeforePost) then BeforePost(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforePost(Self); + + for i := 0 to (fFields.Count - 1) do + if (fFields[i].RegExpression <> '') and not fFields[i].IsNull then begin + if not ExecRegExpr(fFields[i].RegExpression, fFields[i].AsString) then RaiseError('Invalid input value for field ' + fFields[i].Name); + end; + + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + fRecIDField.AsInteger := CurrRecId; + CurrRecId := CurrRecId + 1; + end; + + // This was originally in AfterPost. Moved here because after a post filters might step in and the current + // record can change resulting in half change from record X and the remaining from record Y + + if not LogChanges or (csDesigning in ComponentState) then Exit; + fDelta.EndChange; + + // Adds a reference to the RecID of this record to avoid double fetching records + // This is a new master record, so it means there are no details to fetch remotely + if (State=dsInsert) then begin + key := IntToStr(GetRowRecIDValue); + details := GetDetailDataTables; + try + for i := 0 to (details.Count-1) do begin + with TDADataTable(details[i]) do + if Active and (fFetchedMasters.IndexOf(key)<0) then fFetchedMasters.Add(key); + end; + finally + details.Free; + end; + end; + + if (ruoOnPost in RemoteUpdatesOptions) then try + ApplyUpdates(); + except + on E: Exception do + begin + fDelta.RestoreLastChange; + raise; + end; + end; +end; + +procedure TDADataTable.InternalAfterPost(Sender: TDataset); +begin + CallScript('AfterPost'); + if Assigned(AfterPost) then AfterPost(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterPost(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + +end; + +procedure TDADataTable.InternalAfterCancel(Sender: TDataset); +begin + CallScript('AfterCancel'); + if Assigned(AfterCancel) then AfterCancel(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterCancel(Self); + + fDelta.CancelChange; +end; + +function TDADataTable.GetLogChanges: boolean; +begin + result := fLogChanges; +end; + +procedure TDADataTable.DisableControls; +begin + fDataset.DisableControls; +end; + +procedure TDADataTable.EnableControls; +begin + fDataset.EnableControls; +end; + +function TDADataTable.GetBOF: boolean; +begin + result := fDataset.BOF +end; + +function TDADataTable.GetEOF: boolean; +begin + result := fDataset.EOF +end; + +function TDADataTable.GetFieldCount: integer; +begin + result := fFields.Count +end; + +function TDADataTable.GetFieldValues(Index: integer): Variant; +begin + result := Fields[Index].Value +end; + +function TDADataTable.GetNames(Index: integer): string; +begin + result := Fields[Index].Name +end; + +function TDADataTable.GetRecordCount: integer; +begin + result := fDataset.RecordCount; +end; + +function TDADataTable.GetSQL: string; +begin + // Not implemented in DataTables + result := ''; +end; + +function TDADataTable.Locate(const KeyFields: string; + const KeyValues: Variant; Options: TLocateOptions): Boolean; +begin + if VarIsArray(KeyValues) and (VarArrayHighBound(KeyValues, 1) = 0) + then result := fDataset.Locate(KeyFields, KeyValues[0], Options) + else result := fDataset.Locate(KeyFields, KeyValues, Options); +end; + +procedure TDADataTable.Next; +begin + fDataset.Next; +end; + +procedure TDADataTable.SetSQL(const Value: string); +begin + // Not implemented in DataTables +end; + +function TDADataTable.Execute: integer; +begin + // Not implemented in DataTables + result := -1; +end; + +function TDADataTable.GetParams: TDAParamCollection; +begin + // Not implemented in DataTables + result := fParams; +end; + +procedure TDADataTable.RefreshParams; +begin + // Not implemented in DataTables +end; + +procedure TDADataTable.Append; +begin + fDataset.Append; +end; + +procedure TDADataTable.Delete; +begin + fDataset.Delete; +end; + +procedure TDADataTable.Cancel; +begin + fDataset.Cancel; +end; + +procedure TDADataTable.Edit; +begin + fDataset.Edit; +end; + +procedure TDADataTable.Insert; +begin + fDataset.Insert; +end; + +procedure TDADataTable.Post; +begin + fDataset.Post; +end; + +{$WARN SYMBOL_DEPRECATED OFF} +function TDADataTable.GetWhere: TDAWhere; +begin + result := fWhere +end; +{$WARN SYMBOL_DEPRECATED ON} + +procedure TDADataTable.SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); +begin + if Value <> fRemoteDataAdapter then begin + fRemoteDataAdapter := Value; + if assigned(fRemoteDataAdapter) then fRemoteDataAdapter.FreeNotification(self); + end; +end; + +procedure TDADataTable.Close; +begin + if not Active then Exit; + + fClosing := TRUE; + try + DoBeforeCloseDataset; + if Assigned(BeforeClose) then BeforeClose(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeClose(Self); + + if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); + + Dataset.Close; + fFields.Unbind; + + //Dataset.Fields.Clear; + + fDelta := nil; + + fFetchedMasters.Clear; + + DoAfterCloseDataset; + if Assigned(AfterClose) then AfterClose(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterClose(Self); + finally + fClosing := FALSE; + end; +end; + +procedure TDADataTable.InitializeDataTable; +begin + fCurrRecId := 1; + + try + fDataset.Fields.Clear; + fDataset.FieldDefs.Clear; + finally + NotifyFieldsClear; + end; + try + // Creates the fields for the internal dataset + CreateInternalFields(fDataset, Fields); + finally + NotifyFieldsClear; + end; + + fRecIDField := fDataset.FieldByName(RecIDFieldName) as TIntegerField; + fRecIDField.Visible := FALSE; + + fFields.Bind(fDataset); + + // Prepares the delta + fDelta := TDADelta.Create(Self); + +(* + // Finishes to prepare the internal dataset (descendant might need additional customization and might not be open) + if RemoteFetchEnabled and + (RemoteDataAdapter<>nil) and + (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall.Default) then + LoadScript(); +*) + DoBeforeOpenDataset; + if not Dataset.Active then Dataset.Open; + DoAfterOpenDataset; +end; + +procedure TDADataTable.LoadFromLocalSchema; +var + lConnection: IDAConnection; + data: TStream; + gofirst, oldlog: boolean; + ds: IDADataset; + i: integer; + lDynFields: array of string; +begin + if (LocalSchema = nil) or (LogicalName = '') then begin + InitializeDataTable; + Exit; + end; + + // Local but from schema. Client/Server mode + CheckProperties; + + lConnection := LocalSchema.ConnectionManager.NewConnection(fLocalConnection); + try + SetLength(lDynFields, 0); + ds := LocalSchema.NewDataset(lConnection, fLogicalName,lDynFields,fDynamicWhere.Xml); + + oldlog := LogChanges; + fFetching := TRUE; + LogChanges := FALSE; +// book := nil; + + data := Binary.Create; + Binary(data).CapacityIncrement := LocalDataStreamer.BufferSize; + try + for i := 0 to (ds.Params.Count - 1) do + ds.Params[i].Value := ParamByName(ds.Params[i].Name).Value; + + LocalDataStreamer.WriteDataset(data, ds, [woRows, woSchema], -1); + + if Active then + gofirst := FALSE + else + gofirst := TRUE; + + if Assigned(fOnReceiveDataStream) then fOnReceiveDataStream(Self, data); + if Assigned(fBusinessRules) then fBusinessRules.OnReceiveDataStream(Self, data); + data.Position := 0; + + // Reads the data + LocalDataStreamer.Initialize(data, aiRead); + if (LocalDataStreamer.DatasetCount = 0) then RaiseError('Stream does not contain any dataset'); + + if Opening then begin + if not (soIgnoreStreamSchema in fStreamingOptions) then LocalDataStreamer.ReadDataset(LogicalName, Self, TRUE, FALSE); + + InitializeDataTable; + end; + + LocalDataStreamer.ReadDataset(LogicalName, Self, FALSE); + { + if (moAllInOneFetch in MasterOptions) then begin + DoCascadeOperation(LocalDataStreamer, moAllInOneFetch); + end;} + + LocalDataStreamer.Finalize; + + if gofirst then First; + finally + fFetching := FALSE; + data.Free; + LogChanges := oldlog; + end; + finally + lConnection := nil; + end; +end; + +procedure TDADataTable.DoOpen(IgnoreAutoFetchSettings: Boolean); +var i : integer; +begin + if Active or fOpening then Exit; + + fOpening := TRUE; + try + { Checks that all the lookup datasets are open. If not, we would get the error "Missing Data Provider"} + for i := 0 to (FieldCount-1) do + if Fields[i].Lookup and (Fields[i].LookupSource<>NIL) then begin + if (Fields[i].LookupSource is TDADataSource) then begin + if Assigned(TDADataSource(Fields[i].LookupSource).DataTable) + then TDADataSource(Fields[i].LookupSource).DataTable.Open; + end + else begin + if Assigned(Fields[i].LookupSource.DataSet) + then Fields[i].LookupSource.DataSet.Open; + end; + end; + + + if Assigned(BeforeOpen) then BeforeOpen(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeOpen(Self); + + try + if not fFetching then begin + if fMasterLink.Active then + FetchMastersDetails(nil, nil, IgnoreAutoFetchSettings) // This calls InitializeDataTable possibily applying a new schema + else + if RemoteFetchEnabled then LoadFromRemoteSource else LoadFromLocalSchema; + end; + + if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); + + if Assigned(AfterOpen) then AfterOpen(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterOpen(Self); + except + on E: Exception do begin + Close; + {$IFDEF DESIGNTIME} + if (csDesigning in ComponentState) then begin + SysUtils.Beep; + MessageDlg(E.Message, mtError, [mbOK], 0); + end + else + {$ENDIF DESIGNTIME} + raise; + end; + end; + finally + fOpening := FALSE; + end; +end; + +procedure TDADataTable.Open; +begin + DoOpen(True); +end; + + +procedure TDADataTable.OnMasterChange(Sender: TObject); +begin + if (MasterSource <> nil) and (MasterSource.DataTable <> nil) then begin + if MasterSource.DataTable.fFetching then + exit; + end; + + FetchMastersDetails; +end; + +procedure TDADataTable.OnMasterDisable(Sender: TObject); +begin + +end; + +procedure TDADataTable.LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); +begin + CheckProperties(True); + if Assigned(fOnBeforeDataRequestCall) then fOnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + RemoteDataAdapter.Fill([self], BookmarkPosition, FieldCount = 0); + if Assigned(fOnAfterDataRequestCall) then fOnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); +end; + +function TDADataTable.ApplyUpdates(RefetchAll: boolean = FALSE): boolean; +var + details: TList; + i: integer; + dt: TDADataTable; +begin + details:= GetDetailTablesforApplyUpdate; + try + // check RDA + CheckProperties; + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + {if dt.RemoteFetchEnabled then } dt.CheckProperties; + end; + + //fOnBeforeApplyUpdates + if Assigned(fOnBeforeApplyUpdates) then fOnBeforeApplyUpdates(Self, fDelta); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeApplyUpdates) then dt.fOnBeforeApplyUpdates(dt, fDelta); + end; + + //fBusinessRules.OnBeforeApplyUpdates + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeApplyUpdates(Self, fDelta); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeApplyUpdates(dt, fDelta); + end; + + if RemoteFetchEnabled then begin + + //fOnBeforeDataUpdateCall + if Assigned(fOnBeforeDataUpdateCall) then fOnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeDataUpdateCall) then dt.fOnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + //fBusinessRules.OnBeforeDataUpdateCall + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + result := RemoteDataAdapter.ApplyUpdates([self], RefetchAll); + + //fOnAfterDataUpdateCall + if Assigned(fOnAfterDataUpdateCall) then fOnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterDataUpdateCall) then dt.fOnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + //fBusinessRules.OnAfterDataUpdateCall + if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + end + else begin + result := Local_ApplyUpdates(RefetchAll); + end; + + //fOnAfterApplyUpdates + if Assigned(fOnAfterApplyUpdates) then fOnAfterApplyUpdates(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterApplyUpdates) then dt.fOnAfterApplyUpdates(dt); + end; + + //fBusinessRules.OnAfterApplyUpdates + if Assigned(fBusinessRules) then fBusinessRules.OnAfterApplyUpdates(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterApplyUpdates(dt); + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); +begin + CheckProperties(True); + if Assigned(fOnBeforeSchemaCall) then fOnBeforeSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); + RemoteDataAdapter.FillSchema([self], PreserveLookupFields, PreserveClientCalcFields); + if Assigned(fOnAfterSchemaCall) then fOnAfterSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); +end; + +procedure TDADataTable.LoadScript(aDatasetName : string = ''); +begin + CheckProperties(True); + if Assigned(fOnBeforeScriptCall) then fOnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + RemoteDataAdapter.FillScripts([self]); + if Assigned(fOnAfterScriptCall) then fOnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); +end; + +procedure TDADataTable.FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings: Boolean = False); + + procedure CombineDynamicWhere(aWhereExpression:TDAWhereExpression); + begin + if fMasterMappingMode = mmWhere then begin + if fDynamicWhere.Expression = nil then + fDynamicWhere.Expression:= aWhereExpression + else + fDynamicWhere.Expression:= fDynamicWhere.NewBinaryExpression(fDynamicWhere.Expression,aWhereExpression,dboAnd); + end; + end; + + procedure RevertDynamicWhere(aWhereExpression:TDAWhereExpression); + var + fUserWhereExpression: TDAWhereExpression; + begin + if fMasterMappingMode = mmWhere then begin + fUserWhereExpression:= nil; + if fDynamicWhere.Expression <> aWhereExpression then begin + fUserWhereExpression:= TDABinaryExpression(fDynamicWhere.Expression).Left; + TDABinaryExpression(fDynamicWhere.Expression).Left:=nil; + end; + fDynamicWhere.Clear; + fDynamicWhere.Expression:= fUserWhereExpression; + end; + end; + + + function GenerateWhereStatement: TDAWhereExpression; + var + lFieldName: string; + pos1, pos2: integer; + lfld1: TDAField; + lfld2: TDAField; + lExpression: TDAWhereExpression; + begin + //fDynamicWhere.Clear; + Pos1 := 1; + pos2 := 1; + Result:=nil; + while True do begin + if (Pos1 > Length(DetailFields)) and (Pos2 > Length(MasterFields)) then Break; + + if ((Pos1 > Length(DetailFields)) and (Pos2 <= Length(MasterFields))) or + ((Pos1 <= Length(DetailFields)) and (Pos2 > Length(MasterFields))) then + RaiseError('DetailFields should have same number of items as MasterFields'); + + {$WARN SYMBOL_DEPRECATED OFF} + lFieldName:= ExtractFieldName(DetailFields, Pos1); + {$WARN SYMBOL_DEPRECATED ON} + lfld1 := FindField(lFieldName); + if lfld1 = nil then RaiseError('Invalid field name %s in DetailFields', [lFieldName]); + {$WARN SYMBOL_DEPRECATED OFF} + lFieldName:= ExtractFieldName(MasterFields, Pos2); + {$WARN SYMBOL_DEPRECATED ON} + lfld2 := MasterSource.DataTable.Fields.FindField(lFieldName); + if lfld2 = nil then RaiseError('Invalid field name %s in MasterFields', [lFieldName]); + + lExpression := fDynamicWhere.NewBinaryExpression( + fDynamicWhere.NewField('',lfld1.Name), + fDynamicWhere.NewConstant(lfld2.Value,lfld2.DataType), + dboEqual); + + if Result <> nil then + Result:=fDynamicWhere.NewBinaryExpression(Result,lExpression,dboAnd) + else + Result:= lExpression; + end; + end; + +var + master: TDataset; + par: TDARemoteRequestParam; + fld: TDAField; + key: string; + i: integer; + dofetch: boolean; + mappings : TStrings; + detailparam : TDAParam; + lmmWhereExpression: TDAWhereExpression; +begin + if RemoteFetchEnabled then CheckProperties + else if not(Assigned(LocalSchema) and Assigned(LocalDataStreamer)) then begin + if fOpening then InitializeDataTable; + Exit; + end; + + // + // + // TODO: this doesnt properly use the new RDA's DMB yet. we need to discuss/rethink how to handle that! + // + // + + mappings := NIL; + + dofetch := (((dtAutoFetch in DetailOptions) or IgnoreAutoFetchSettings) {and RemoteFetchEnabled}) or (aMasterTable<>NIL); + + if (aRequestMappings<>NIL) then mappings := aRequestMappings + else begin + case fMasterMappingMode of + mmDataRequest : mappings := MasterRequestMappings; + mmParams : mappings := MasterParamsMappings; + end; + end; + + if (aMasterTable<>NIL) + then master := aMasterTable.Dataset + else master := fMasterLink.DataSet; + + if master = nil then exit; + + if (master.RecordCount = 0) then begin + if not Active then InitializeDataTable; // Master opened with 0 records and detail wasn't open yet + + Exit; + end + else if (MasterSource = nil) then Exit; + if (master.State=dsBrowse) and not MasterSource.DataTable.Delta.IsNewRecord then begin + if dofetch then begin + // Determines if the details for this master have been fetched + key := IntToStr(MasterSource.DataTable.GetRowRecIDValue); + if (fFetchedMasters.IndexOf(key) >= 0) then Exit; + if (fMasterMappingMode = mmWhere) or ((mappings<>NIL) and (mappings.Count > 0)) then begin + lmmWhereExpression:=nil; + if RemoteFetchEnabled then begin + // remotemode + + // If not, then assigns the param values from the current master record, + // invokes the remote call and loads the data + case MasterMappingMode of + mmWhere: begin + lmmWhereExpression:=GenerateWhereStatement; + end; + mmDataRequest : begin + for i := 0 to (mappings.Count - 1) do begin + par := nil; + if RemoteDataAdapter.Get_GetDataCall <> nil then + par := RemoteDataAdapter.Get_GetDataCall.Params.ParamByName(Trim(mappings.Names[i])); + if (par=NIL) then RaiseError('Invalid parameter name %s in master mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in master mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) + then par.AsVariant := fld.Value + end; + end; + mmParams : begin + // Fills it in + for i := 0 to (mappings.Count - 1) do begin + detailparam := Params.ParamByName(Trim(mappings.Names[i])); + if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) + then detailparam.Value := fld.Value + end; + end; + end; + + CombineDynamicWhere(lmmWhereExpression); + try + LoadFromRemoteSource; + finally + RevertDynamicWhere(lmmWhereExpression); + end; + + try + fFetchedMasters.Add(key); + except + raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); + end; + end { RemoteFetchEnabled }else begin + // localmode + + // If not, then assigns the param values from the current master record, + // invokes the remote call and loads the data + case MasterMappingMode of + mmWhere: begin + lmmWhereExpression := GenerateWhereStatement; + end; + mmParams: begin + // Fills it in + for i := 0 to (mappings.Count - 1) do begin + detailparam := Params.ParamByName(Trim(mappings.Names[i])); + if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then detailparam.Value := fld.Value + end; + end; + mmDataRequest: raise Exception.Create('mmDataRequest mode only supported in RemoteFetchEnabled mode'); + end; + + CombineDynamicWhere(lmmWhereExpression); + try + LoadFromLocalSchema; + finally + RevertDynamicWhere(lmmWhereExpression); + end; + + try + fFetchedMasters.Add(key); + except + raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); + end; + end; + end else begin + { ALEF: I removed the code below because it was never meant to be here to begin with. Very error prone. + Who added this??? + + // Automatics + for i := 0 to (DataRequestCall.Params.Count - 1) do begin + par := DataRequestCall.Params[i]; + fld := MasterSource.DataTable.Fields.FindField(par.Name); + + if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then par.Value := fld.Value; + end;} + + RaiseError('There are no mappings defined. Cannot fetch records for detail table '+Name); + end; + end; {dofetch} + end; +end; + +procedure TDADataTable.WriteDeltaToStream(aStreamer: TDADataStreamer); +var + i: integer; + details: TList; + lHasReducedDelta: Boolean; + oldMode: boolean; +begin + // And the details' updates (if specified) + details := GetDetailTablesforApplyUpdate; + try + lHasReducedDelta:= fHasReducedDelta; + if not aStreamer.SendReducedDelta then begin + if not lHasReducedDelta then + for i := 0 to (details.Count - 1) do begin + lHasReducedDelta:= TDADataTable(details[i]).fHasReducedDelta; + if lHasReducedDelta then Break; + end; + end; + oldMode:=aStreamer.SendReducedDelta; + if lHasReducedDelta then aStreamer.SendReducedDelta:=True; + try + // Writes its own updates + if self.HasDelta then aStreamer.WriteDelta(Self); + for i := 0 to (details.Count - 1) do + TDADataTable(details[i]).WriteDeltaToStream(aStreamer); + finally + aStreamer.SendReducedDelta := oldMode; + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer;aFailedDeltas:TList); +var + i: integer; + details: TList; +begin + // Reads its own updates + if aStreamer.FindDeltaIndex(Self.LogicalName) <> -1 then begin + Delta.Clear; + aStreamer.ReadDelta(Self); + if Delta.Count>0 then fHasReducedDelta := aStreamer.HasReducedDelta; + + For i := 0 to Delta.Count-1 do + if Delta.Changes[i].Status = csFailed then + aFailedDeltas.Add(Delta.Changes[i]); + end; + + // And the details' updates (if specified) + details := GetDetailTablesforApplyUpdate; + try + for i := 0 to (details.Count - 1) do + TDADataTable(details[i]).ReadDeltaFromStream(aStreamer, aFailedDeltas); + finally + details.Free; + end; +end; + +procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer); +var + List: TList; +begin + List:= TList.Create; + try + ReadDeltaFromStream(aStreamer,List); + finally + List.Free; + end; +end; + +procedure TDADataTable.MergeDelta; +var + i, k, x: integer; + details: TList; + dt: TDADataTable; +// ok : boolean; +// failed, pending, resolved : integer; + oldval, newval, val : Variant; + fld : TDAField; + pkfields : string; + oldopt : TDARemoteUpdatesOptions; + oldlog : boolean; + keyvals : array of variant; + oldmastersource : TDADataSource; + lhasDelta: Boolean; + pk_array: array of boolean; +begin + details:=GetDetailTablesforApplyUpdate; + try + //fOnBeforeMergeDelta + if Assigned(fOnBeforeMergeDelta) then fOnBeforeMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeMergeDelta) then dt.fOnBeforeMergeDelta(dt); + end; + + //fBusinessRules.OnBeforeMergeDelta + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeMergeDelta(dt); + end; + + oldopt := RemoteUpdatesOptions; + oldlog := LogChanges; + oldmastersource := MasterSource; + + lhasDelta := Delta.Count > 0; + if lhasDelta then begin + RemoteUpdatesOptions := RemoteUpdatesOptions-[ruoOnPost]; + LogChanges := FALSE; + // Disables the M/D relationship so that Locates can work in all cases (master or detail tables, regardless + // of their positioning) + MasterSource := NIL; + end; + + try + pkfields := ''; + for i := 0 to (Delta.KeyFieldCount-1) do + pkfields := pkfields+Delta.KeyFieldNames[i]+';'; + pkfields := Copy(pkfields, 1, Length(pkfields)-1); + + SetLength(keyvals, Delta.KeyFieldCount); + + // Merges the updates + if (Delta.Count>0) then begin + SetLength(pk_array, Delta.LoggedFieldCount); + for i := 0 to Delta.LoggedFieldCount - 1 do + pk_array[i]:=False; + + for i := 0 to Delta.KeyFieldCount - 1 do begin + x := Delta.IndexOfLoggedField(Delta.KeyFieldNames[i]); + if x <> -1 then pk_array[x]:=True; + end; + for i := (Delta.Count-1) downto 0 do begin + if (Delta[i].Status<>csResolved) + then Continue; + if (Delta[i].ChangeType<>ctDelete) then begin + if (Self.State in [dsEdit, dsInsert]) and (ruoOnPost in oldopt) then begin + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fld := FieldByName(Delta.LoggedFieldNames[x]); + + newval := Delta[i].NewValueByName[fld.Name]; + oldval := Delta[i].OldValueByName[fld.Name]; + if fHasReducedDelta then begin + if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; + end; + if fld.ServerAutoRefresh or (not VarIsArray(newVal) and not ROVariantsEqual(newval,oldval)) then begin + VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); + end; + end; + end + else begin + for k := 0 to (Delta.KeyFieldCount-1) do begin + val := Delta[i].OldValueByName[Delta.KeyFieldNames[k]]; + keyvals[k] := val; + end; + + // Locates the original record + First; + if not Locate(pkfields, keyvals, []) then Continue; + + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + + // Merges its own updates + Edit; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fld := FieldByName(Delta.LoggedFieldNames[x]); + + newval := Delta[i].NewValueByName[fld.Name]; + oldval := Delta[i].OldValueByName[fld.Name]; + if fHasReducedDelta then begin + if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; + end; + if fld.ServerAutoRefresh or (not VarIsArray(newVal) and (newval<>oldval)) then begin + VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); + end; + end; + Post; + end; + end; + // Removes this merged change + Delta.Delete(i); + end; + end + + // If there are no updates for this master, the children still need to be processed + else begin + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + end; + finally + if lhasDelta then begin + RemoteUpdatesOptions := oldopt; + LogChanges := oldlog; + + // Restores the M/D relationship + MasterSource := oldmastersource; + end; + //fOnAfterMergeDelta + if Assigned(fOnAfterMergeDelta) then fOnAfterMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterMergeDelta) then dt.fOnAfterMergeDelta(dt); + end; + + //fBusinessRules.OnAfterMergeDelta + if Assigned(fBusinessRules) then fBusinessRules.OnAfterMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterMergeDelta(dt); + end; + end; + finally + details.Free; + if Delta.Count = 0 then fHasReducedDelta:=False; + end; +end; + + +procedure TDADataTable.PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); +var outinfo : TDADatasetRequestInfo; + details : TList; + dt : TDADataTable; + i : integer; +begin + outinfo := outarray.Add; + outinfo.DatasetName := aDataTable.LogicalName; + outinfo.MaxRecords := aDataTable.MaxRecords; + outinfo.IncludeSchema := TRUE; + outinfo.Params := NIL; + + details := aDataTable.GetDetailDataTables; + try + for i := 0 to (details.Count - 1) do begin + dt := TDADataTable(details[i]); + + if (dtIncludeInAllInOneFetch in dt.DetailOptions) + then PackAllInOneFetchInfoArray(dt, OutArray); + end; + finally + details.Free; + end; +end; + +function TDADataTable.FieldByName(const aName: string): TDAField; +begin + result := fFields.FieldByName(aName) +end; + +function TDADataTable.ParamByName(const aName: string): TDAParam; +begin + result := fParams.ParamByName(aName) +end; + +procedure TDADataTable.First; +begin + fDataset.First +end; + +procedure TDADataTable.Last; +begin + fDataset.Last +end; + +procedure TDADataTable.Prior; +begin + fDataset.Prior +end; + +procedure TDADataTable.Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); +var + i: integer; +begin + DoSort(FieldNames, Directions); + + // Stores the new settings for convenience + SetLength(fSortDirections, Length(Directions)); + for i := 0 to Length(Directions) - 1 do + fSortDirections[i] := Directions[i]; + + SetLength(fSortFieldNames, Length(FieldNames)); + for i := 0 to Length(FieldNames) - 1 do + fSortFieldNames[i] := FieldNames[i]; +end; + +procedure TDADataTable.UnSort; +begin + Sort([], []); +end; + +procedure TDADataTable.LoadFromStream(aStream: TStream); +var + //remfetch, + oldlogchanges, oldcascadeopenclose: boolean; + lStreamer: TDADataStreamer; + i: integer; +begin + Check(RemoteFetchEnabled, Name+'. Cannot do this operation when RemoteFetchEnabled is set to TRUE'); + if RemoteDataAdapter <> nil then + lStreamer:=RemoteDataAdapter.DataStreamer + else + lStreamer:=LocalDataStreamer; + + Check(lStreamer = nil, Name+'. RemoteDataAdapter or LocalDataStreamer must be assigned.'); + + Close; + + oldlogchanges := LogChanges; +// remfetch := RemoteFetchEnabled; + oldcascadeopenclose := moCascadeOpenClose in fMasterOptions; + +// RemoteFetchEnabled := FALSE; + LogChanges := FALSE; + if oldcascadeopenclose + then fMasterOptions := fMasterOptions - [moCascadeOpenClose]; + try + fStreaming := True; + try + lStreamer.Initialize(aStream, aiRead); + + if not (soIgnoreStreamSchema in fStreamingOptions) then + lStreamer.ReadDataset(LogicalName, Self, TRUE) + else + lStreamer.ReadDataset(LogicalName, Self, FALSE); + + lStreamer.ReadDelta(Self); + if Delta <> nil then + For i:= 0 to Delta.Count-1 do + if fCurrRecId <= Delta.Changes[i].RecID then + fCurrRecId := Delta.Changes[i].RecID+1; + finally + fStreaming := False; + end; + finally + lStreamer.Finalize; + LogChanges := oldlogchanges; +// RemoteFetchEnabled := remfetch; + if oldcascadeopenclose then begin + fMasterOptions := fMasterOptions + [moCascadeOpenClose]; + fOpening := True; + try + DoCascadeOperation(nil, moCascadeOpenClose); + finally + fOpening := False; + end; + end; + if Active then First; + end; +end; + +procedure TDADataTable.SaveToStream(aStream: TStream); +var + lStreamer: TDADataStreamer; + OldMasterSource: TDADataSource; +begin + if (soDisableEventsWhileStreaming in fStreamingOptions) then DisableControls; + try + OldMasterSource := MasterSource; + MasterSource := nil; + fStreaming := True; + try + First; // Important! + if RemoteFetchEnabled then + lStreamer:= RemoteDataAdapter.DataStreamer + else + lStreamer:=LocalDataStreamer; + if lStreamer = nil then CheckProperties; + lStreamer.Initialize(aStream, aiWrite); + lStreamer.WriteDataset(Self, [woRows, woSchema]); + lStreamer.WriteDelta(Self); + lStreamer.Finalize; + finally + fStreaming := False; + MasterSource := OldMasterSource; + end; + finally + if (soDisableEventsWhileStreaming in fStreamingOptions) then EnableControls; + end; +end; + +procedure TDADataTable.LoadFromFile(const aFileName: string); +var + fs: TFileStream; + oldval : boolean; +begin + oldval := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + try + fs := TFileStream.Create(aFileName, fmOpenRead); + try + LoadFromStream(fs); + finally + fs.Free; + end; + finally + RemoteFetchEnabled := oldval; + end; +end; + +procedure TDADataTable.SaveToFile(const aFileName: string); +var + fs: TFileStream; +begin + fs := TFileStream.Create(aFileName, fmCreate); + try + SaveToStream(fs); + finally + fs.Free; + end; +end; + +procedure TDADataTable.SetParams(const Value: TDAParamCollection); +begin + fParams.Assign(Value); +end; + +procedure TDADataTable.ClearFields; +var + i: integer; +begin + for i := 0 to FieldCount - 1 do + Fields[i].Value := Null; +end; + +procedure TDADataTable.ClearRows; +var + CurChange: TDADeltaChange; +begin + while (RecordCount > 0) do begin + if (not LogChanges) and Assigned(Delta) then begin + CurChange := Delta.FindChange(RecIDValue); + if Assigned(CurChange) then + Delta.RemoveChange(CurChange); + end; + Delete; + end; +end; + +function TDADataTable.GetState: TDataSetState; +begin + result := fDataset.State +end; + +function TDADataTable.GetEditing: boolean; +begin + result := State in [dsEdit, dsInsert] +end; + +function TDADataTable.GetPrepared: boolean; +begin + result := FALSE +end; + +procedure TDADataTable.SetPrepared(Value: boolean); +begin + +end; + +function TDADataTable.GetText: string; +begin + result := '' +end; + +procedure TDADataTable.SetText(const Value: string); +begin + +end; + +procedure TDADataTable.Notification(AComponent: TComponent; + Operation: TOperation); +var + i: Integer; +begin + inherited; + + if (Operation = opRemove) then begin + if (AComponent = fLocalSchema) then fLocalSchema := nil; + if (AComponent = fRemoteDataAdapter) then fRemoteDataAdapter := nil; + if (AComponent = fLocalDataStreamer) then fLocalDataStreamer := nil; + if AComponent is TDataSource then begin + for i := 0 to Fields.Count - 1 do begin + if Fields[i].LookupSource = AComponent then + Fields[i].LookupSource := nil; + end; + end; + + end; + +end; + +procedure TDADataTable.SetMasterSource(const Value: TDADataSource); +begin + fMasterLink.DataSource := Value; +end; + +procedure TDADataTable.SetMasterFields(const Value: string); +begin + fMasterLink.FieldNames := Value; +end; + +function TDADataTable.GetMasterRequestMappings: TStrings; +begin + result := fMasterRequestMappings; +end; + +procedure TDADataTable.SetMasterRequestMappings(const Value: TStrings); +begin + fMasterRequestMappings.Assign(Value); +end; + +function TDADataTable.GetDetailDataTables: TList; +var + i: integer; + ownerdt: TDADataTable; + dtdataset: IDADataTableDataset; + tmplist: TList; +begin + // This function only returns the linked datatables and removes duplicates + // from the GetDetailDataSets call. I assume the duplicates are because of + // the masterlink TDADatatables create. + + result := TList.Create; + tmplist := TList.Create; + + try + {$IFNDEF FPC} + Dataset.GetDetailDataSets(tmplist); + {$ENDIF} + for i := 0 to (tmplist.Count - 1) do begin + if not Supports(TDataset(tmplist[i]), IDADataTableDataset, dtdataset) then Continue; + ownerdt := dtdataset.GetDataTable; + + if (result.IndexOf(ownerdt) < 0) then result.Add(ownerdt); + end; + finally + tmplist.Free; + end; +end; + +function TDADataTable.GetDelta: IDADelta; +begin + if (fDelta = nil) then raise Exception.Create('Delta has not yet been initialized by the datatable'); + result := fDelta; +end; + +function TDADataTable.GetName: string; +begin + if (LogicalName = '') then + result := Name + else + result := LogicalName; +end; + +procedure TDADataTable.DoAfterCloseDataset; +begin + CallScript('AfterClose'); +end; + +procedure TDADataTable.DoAfterOpenDataset; +begin + CallScript('AfterOpen'); + + if Assigned(fAfterOpenIDataset) then fAfterOpenIDataset(Self, '', ROGetTickCount-fOpenTick); +end; + +procedure TDADataTable.DoBeforeCloseDataset; +begin + CallScript('BeforeClose'); +end; + +procedure TDADataTable.CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); +begin + CloneSelectedRecord(Source as IDADataset, DoPost); +end; + +procedure TDADataTable.CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); +var + i: integer; + destfld, + srcfld: TDAField; + lreadonly: boolean; +begin + Insert; + for i := 0 to (Source.FieldCount - 1) do begin + srcfld := Source.Fields[i]; + destfld := Fields.FindField(srcfld.Name); + lreadonly := destfld.ReadOnly; + destfld.ReadOnly := False; + try + if destfld <> nil then destfld.Value := srcfld.Value; + finally + destfld.ReadOnly := lreadonly; + end; + end; + if DoPost then Post; +end; + +procedure TDADataTable.FreeBookmark(Bookmark: TBookmark); +begin + Dataset.FreeBookmark(Bookmark); +end; + +function TDADataTable.GetBookmark: pointer; +begin + result := Dataset.GetBookmark; +end; + +procedure TDADataTable.GotoBookmark(Bookmark: TBookmark); +begin + Dataset.GotoBookmark(Bookmark); +end; + +function TDADataTable.GetRowRecIDValue: integer; +begin + result := fRecIDField.AsInteger +end; + +procedure TDADataTable.DisableEventHandlers; +begin + DetachEventHooks(Dataset); +end; + +procedure TDADataTable.EnableEventHandlers; +begin + AttachEventHooks(Dataset); +end; + +procedure TDADataTable.Refresh; +begin + fDataset.Refresh; +end; + +procedure TDADataTable.SetLocalDataStreamer(const Value: TDADataStreamer); +begin + fLocalDataStreamer := Value; + if (fLocalDataStreamer <> nil) then + fLocalDataStreamer.FreeNotification(Self); +end; + +procedure TDADataTable.SetLocalSchema(const Value: TDASchema); +begin + fLocalSchema := Value; + if (fLocalSchema <> nil) then begin + fLocalSchema.FreeNotification(Self); + + RemoteFetchEnabled := FALSE; + end; +end; + +function TDADataTable.DataReaderFirst: boolean; +begin + result := RecordCount > 0; + if result then First; +end; + +function TDADataTable.DataReaderNext: boolean; +begin + result := not EOF; + if result then Next; +end; + +function TDADataTable.GetAsBoolean(Index: integer): boolean; +begin + result := fFields[Index].AsBoolean; +end; + +function TDADataTable.GetAsBoolean(const FieldName: string): boolean; +begin + result := FieldByName(FieldName).AsBoolean; +end; + +function TDADataTable.GetAsCurrency(Index: integer): Currency; +begin + Result:= fFields[Index].AsCurrency; +end; + +function TDADataTable.GetAsCurrency(const FieldName: string): currency; +begin + result := FieldByName(FieldName).AsCurrency; +end; + +function TDADataTable.GetAsDateTime(const FieldName: string): TDateTime; +begin + result := FieldByName(FieldName).AsDateTime; +end; + +function TDADataTable.GetAsDateTime(Index: integer): TDateTime; +begin + result := fFields[Index].AsDateTime; +end; + +function TDADataTable.GetAsFloat(const FieldName: string): double; +begin + result := FieldByName(FieldName).AsFloat; +end; + +function TDADataTable.GetAsFloat(Index: integer): double; +begin + result := fFields[Index].AsFloat; +end; + +function TDADataTable.GetAsInteger(Index: integer): integer; +begin + result := fFields[Index].AsInteger; +end; + +function TDADataTable.GetAsInteger(const FieldName: string): integer; +begin + result := FieldByName(FieldName).AsInteger; +end; + +function TDADataTable.GetAsString(const FieldName: string): string; +begin + result := FieldByName(FieldName).AsString; +end; + +function TDADataTable.GetAsString(Index: integer): string; +begin + result := fFields[Index].AsString; +end; + +function TDADataTable.GetAsVariant(const FieldName: string): variant; +begin + result := FieldByName(FieldName).Value; +end; + +function TDADataTable.GetAsVariant(Index: integer): variant; +begin + result := fFields[Index].Value +end; + +function TDADataTable.GetFieldIndexes(const aName: string): integer; +begin + result := fFields.FindItem(aName).Index +end; + +function TDADataTable.GetFieldNames(Index: integer): string; +begin + result := fFields[Index].Name +end; + +procedure TDADataTable.SetBusinessRulesID(const Value: string); +var + bizclass: TDADataTableRulesClass; +begin + if (Value = fBusinessRulesID) then Exit; + + if Assigned(fBusinessRules) then begin + fBusinessRules.Detach(Self); + FreeAndNIL(fBusinessRules); + end; + + fBusinessRulesID := Trim(Value); + + if (fBusinessRulesID <> '') and not (csDesigning in ComponentState) then begin + Check(not FindDataTableRules(Value, bizclass), 'Invalid BusinessRulesID "%s"', [Value]); + + fBusinessRules := bizclass.Create(Self); + fBusinessRules.Attach(Self); + end; +end; + +function TDADataTable.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + result := inherited QueryInterface(IID, Obj); + + if (result <> S_OK) and Assigned(fBusinessRules) then begin + // Users might introduce specific interfaces at the business rule level + // This allows to type cast the data table to any additional business oriented interface + // they decide to create. + result := fBusinessRules.QueryInterface(IID, Obj); + end; +end; + +function TDADataTable.GetHasDelta: boolean; +begin + result := Assigned(fDelta) and (fDelta.Count > 0); +end; + +function TDADataTable.GetHasDeltaRecursive: boolean; +var + lDetails: TList; + lTable: TDADataTable; + i: integer; +begin + result := Assigned(fDelta) and (fDelta.Count > 0); + if not result then begin + lDetails := nil; + if (moCascadeApplyUpdates in fMasterOptions) then try + lDetails := GetDetailDataTables; + for i := 0 to (lDetails.Count-1) do begin + lTable := TDADataTable(lDetails[i]); + if lTable.HasDeltaRecursive then begin + result := true; + exit; + end; + end; + finally + lDetails.Free; + end; + end; +end; + +function TDADataTable.GetMasterDataTable: TDADataTable; +var lDatatableDataset : IDADataTableDataset; +begin + if Supports(fMasterLink.DataSet, IDADataTableDataset, lDatatableDataset) + then result := lDatatableDataset.GetDataTable + else result := NIL; +end; + +function TDADataTable.GetRecNo: integer; +begin + result := fDataset.RecNo +end; + +procedure TDADataTable.SetRecNo(const Value: integer); +begin + fDataset.RecNo := Value +end; + +function TDADataTable.GetFieldsProperty: TDAFieldCollection; +begin + result := GetFields; +end; + +function TDADataTable.GetActiveProperty: boolean; +begin + result := GetActive(); +end; + +procedure TDADataTable.SetActiveProperty(const Value: boolean); +begin + SetActive(Value); +end; + +function TDADataTable.GetParamsProperty: TDAParamCollection; +begin + result := GetParams(); +end; + +{$IFNDEF LINUX} +function TDADataTable.InterfaceSupportsErrorInfo(const iid: TGUID): HResult; +begin + if GetInterfaceEntry(iid) <> nil then + Result := S_OK + else + Result := S_FALSE; +end; + +function TDADataTable.SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; +begin + Result := uDAEngine.DAHandleSafeCallException(self,ExceptObject, ExceptAddr); +end; +{$ENDIF} + +procedure TDADataTable.CancelUpdates(IncludeDetails: boolean); +var list : TList; + i, orignextinc : integer; + wasfiltered, + remotefetch : boolean; + lOldMasterFields: string; +begin + if Editing then Cancel; + if not LogChanges then Exit; + + DisableControls; + wasfiltered := Filtered; + Filtered := FALSE; + try + // Truns off the remote fetching for this datatable and its details + remotefetch := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + if IncludeDetails then list := GetDetailDataTables else list := TList.Create; + + // Disable the log of changes (we're about to make a bunch!) + LogChanges := FALSE; + + // Saves the current recinc (we'll change this during the restore) + orignextinc := CurrRecId; + try + lOldMasterFields := MasterFields; + MasterFields := ''; + try + // Reverts the records to the original state + for i := 0 to (Delta.Count-1) do + InternalCancelUpdateChange(Delta[i]); + finally + MasterFields := lOldMasterFields; + end; + + // Cancels the updates for the details + for i := 0 to list.Count-1 do begin + TDADataTable(list[i]).CancelUpdates(TRUE); + end; + + // Erases the delta + Delta.Clear; + + finally + fHasReducedDelta:=False; + list.Free; + CurrRecId := orignextinc; + LogChanges := TRUE; + RemoteFetchEnabled := remotefetch; + end; + finally + Filtered := wasfiltered; + EnableControls; + end; +end; + +procedure TDADataTable.DoBeforeOpenDataset; +begin + CallScript('BeforeOpen'); + + fOpenTick := ROGetTickCount; + if Assigned(fBeforeOpenIDataset) then fBeforeOpenIDataset(Self); +end; + +function TDADataTable.Lookup(const KeyFields: string; + const KeyValues: Variant; const ResultFields: string): Variant; +begin + result := fDataset.Lookup(KeyFields, KeyValues, ResultFields); +end; + +function TDADataTable.GetIsEmpty: boolean; +begin + result := fDataset.IsEmpty; +end; + +function TDADataTable.GetMasterParamsMappings: TStrings; +begin + result := fMasterParamsMappings +end; + +procedure TDADataTable.SetMasterParamsMappings(const Value: TStrings); +begin + fMasterParamsMappings.Assign(Value); +end; + +function TDADataTable.GetLogicalName: string; +begin + result := fLogicalName; +end; + +function TDADataTable.GetReadOnly: boolean; +begin + result := FALSE; +end; + +procedure TDADataTable.SetReadOnly(const Value: boolean); +begin + // By default this property cannot be set. Raising exceptions creates problems + // at design time and it's useless +end; + +procedure TDADataTable.SetScriptCode(const Value: TStrings); +begin + fScriptCode.Assign(Value); +end; + +procedure TDADataTable.CallScript(const aEvent: string); +begin + if Assigned(ScriptingProvider) and (ScriptCode.Count > 0) then begin + (ScriptingProvider as IDADataTableScriptingProvider).RunDataTableScript(self, ScriptCode.Text, aEvent, rslPascalScript); + end; +end; + +function TDADataTable.FindField(const aName: string): TDAField; +begin + result := fFields.FindField(aName); +end; + +procedure TDADataTable.AddRecord(const FieldNames: array of string; + const FieldValues: array of Variant); +var i : integer; +begin + Insert; + for i := 0 to Length(FieldNames)-1 do + FieldByName(FieldNames[i]).Value := FieldValues[i]; + Post; +end; + +procedure TDADataTable.SetLogicalName(aName: string); +begin + fLogicalName := aName; +end; + +function TDADataTable.GetDeltaInitialized: boolean; +begin + result := fDelta<>NIL +end; + +procedure TDADataTable.NotifyFieldsClear; +var + i, lLockCount: integer; +begin + // This method patches VCL issue with notification + // of datasources when clearing fields and controls is disabled + lLockCount := 0; + while DataSet.ControlsDisabled do begin + inc(lLockCount); + DataSet.EnableControls; + end; + TDataSetHack(DataSet).DataEvent(deFieldListChange, 0); + for i := 0 to lLockCount - 1 do begin + DataSet.DisableControls; + end; +end; + +function TDADataTable.GetOnAfterOpen: TDAAfterOpenDatasetEvent; +begin + result := fAfterOpenIDataset; +end; + +function TDADataTable.GetOnBeforeOpen: TDABeforeOpenDatasetEvent; +begin + result := fBeforeOpenIDataset; +end; + +procedure TDADataTable.SetOnAfterOpen( + const Value: TDAAfterOpenDatasetEvent); +begin + fAfterOpenIDataset := Value; +end; + +procedure TDADataTable.SetOnBeforeOpen( + const Value: TDABeforeOpenDatasetEvent); +begin + fBeforeOpenIDataset := Value; +end; + +function TDADataTable.GetOnAfterExecute: TDAAfterExecuteCommandEvent; +begin + NotSupported(); +end; + +function TDADataTable.GetOnBeforeExecute: TDABeforeExecuteCommandEvent; +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnAfterExecute( + const Value: TDAAfterExecuteCommandEvent); +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnBeforeExecute( + const Value: TDABeforeExecuteCommandEvent); +begin + NotSupported(); +end; + +function TDADataTable.GetOnExecuteError: TDAExecuteCommandErrorEvent; +begin + NotSupported(); +end; + +function TDADataTable.GetOnOpenError: TDAOpenDatasetErrorEvent; +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnExecuteError( + const Value: TDAExecuteCommandErrorEvent); +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnOpenError( + const Value: TDAOpenDatasetErrorEvent); +begin + NotSupported(); +end; + +function TDADataTable.GetCurrRecId: integer; +begin + result := fCurrRecId; +end; + +procedure TDADataTable.SetCurrRecId(const Value: integer); +begin + fCurrRecId := Value; +end; + +function TDADataTable.GetAutoIncs: TAutoIncArray; +begin + result := fAutoIncs; +end; + +procedure TDADataTable.SetAutoIncs(const Value: TAutoIncArray); +begin + fAutoIncs := Value; +end; + +function TDADataTable.CreateAutoIncArray: TAutoIncArray; +var i: integer; +begin + SetLength(result, Fields.Count); + for i := 0 to Fields.Count-1 do result[i] := -1; +end; + +function TDADataTable.GetCurrentRecIdValue: integer; +begin + result := fCurrRecId; +end; + +procedure TDADataTable.SetCurrentRecIdValue(Value: integer); +begin + fCurrRecId := Value; +end; + +procedure TDADataTable.InternalAfterFieldUpdate(Sender: TDACustomField); +begin + if assigned(fAfterFieldChange) and (Sender is TDAField) then + fAfterFieldChange(self, TDAField(Sender)); +end; + +procedure TDADataTable.InternalBeforeFieldUpdate(Sender: TDACustomField); +begin + if assigned(fBeforeFieldChange) and (Sender is TDAField) then + fBeforeFieldChange(self, TDAField(Sender)); +end; + +procedure TDADataTable.InternalSetFetching(aFetching: boolean); +begin + fFetching := aFetching; +end; + +procedure TDADataTable.SetCustomAttributes(const Value: TStrings); +begin + fCustomAttributes.Assign(Value); +end; + +function TDADataTable.Local_ApplyUpdates(RefetchAll: boolean): boolean; + + function UnpackDeltas(var lStruct: TDADeltaStruct): TDABusinessProcessor; + var + j: integer; + lBizProc: TDABusinessProcessor; + lDetails: TDADatasetRelationshipList; + lFound: boolean; + begin + result := nil; + lStruct := nil; + // Reads the deltas. + lFound := false; + { Tries to locate a user-defined business processor } + if LocalSchema.Owner <> nil then + for j := 0 to (LocalSchema.Owner.ComponentCount - 1) do begin + if (LocalSchema.Owner.Components[j] is TDABusinessProcessor) then begin + lBizProc := TDABusinessProcessor(LocalSchema.Owner.Components[j]); + if SameText(lBizProc.ReferencedDataset, Self.LogicalName) then begin + lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); + lFound := true; + Break; + end; + end; + end; + { Either creates one} + if not lFound then begin + lBizProc := TDABusinessProcessor.Create(nil); + lBizProc.ReferencedDataset := Self.LogicalName; + lBizProc.Schema := LocalSchema; + Result := lBizProc; + lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); + end; + + { Sets the master/detail relationships } + if (LocalSchema.RelationShips.Count > 0) then begin + lDetails := TDADatasetRelationshipList.Create; + try + LocalSchema.RelationShips.GetDetails(lStruct.BusinessProcessor.ReferencedDataset, lDetails); + if (lDetails.Count <> 0) then begin + { Prepares an array with the references to the detail deltas that will be used later on to adjust + autoincs, etc. } + for j := 0 to lDetails.Count - 1 do begin + if lDetails[j].DetailDatasetName = LogicalName then begin + lStruct.DetailDeltas.Add(lStruct.Delta); + lStruct.RelationShips.Add(lDetails[j]); + end; + end; + end; + finally + lDetails.Free; + end; + end; + end; + +var + FLocalConnection: IDAConnection; + lProcessedDeltas: TStringList; + lStruct: TDADeltaStruct; + lBizProc: TDABusinessProcessor; + i, j: integer; +begin + Result:=False; + CheckProperties; + FLocalConnection := LocalSchema.ConnectionManager.NewConnection(LocalConnection); + if (Delta = nil) or (Delta.Count = 0) then Exit; + lBizProc := UnpackDeltas(lStruct); + try + {if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then} FLocalConnection.BeginTransaction; + try + if (LocalSchema.UpdateRules.Count = 0) then begin + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); + end + else begin + lProcessedDeltas := TStringList.Create; + try + + for i := 0 to (LocalSchema.UpdateRules.Count - 1) do begin + // Processes them in the order defined in the schema + if LocalSchema.UpdateRules[i].DatasetName = LogicalName then begin + // Adds the dataset name to the list of processed deltas. Those that don't have update rules will be processed later + lProcessedDeltas.Add(LogicalName); + + // Processes the delta + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, LocalSchema.UpdateRules[i].ChangeTypes); + + if (ctInsert in LocalSchema.UpdateRules[i].ChangeTypes) then begin + for j := 0 to (lStruct.DetailDeltas.Count - 1) do + lStruct.BusinessProcessor.SynchronizeAutoIncs(lStruct.Delta, lStruct.DetailDeltas[j], lStruct.RelationShips[j]); + end; + end; + end; + // Processes the deltas for which update rules were not defined + if lProcessedDeltas.IndexOf(LogicalName) = -1 then + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); + finally + lProcessedDeltas.Free; + end; + end; + if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataCommitTransaction)} then FLocalConnection.CommitTransaction; + MergeDelta; + Result:=True; + except + on E: Exception do begin + if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction)} then FLocalConnection.RollbackTransaction; + raise; + end; + end; + finally + if lStruct <> nil then lStruct.Free; + if lBizProc <> nil then lBizProc.Free; + end; + if RefetchAll and result then begin + if Active then Close; + Open; + end; +end; + +procedure TDADataTable.GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); +var + i: integer; + dt: TDADataTable; + dtList: TList; + scc: IDASimpleClonedCursorsSupport; +begin + if (moAllInOneFetch in fMasterOptions) then begin + dtList:=GetDetailDataTables; + try + for i := 0 to dtList.Count-1 do begin + dt := TDADataTable(dtList[i]); + if (dtIncludeInAllInOneFetch in dt.DetailOptions) then begin + if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin + dt:= TDADatatable(scc.GetSimpleCloneSource); + end; + + if self.RemoteFetchEnabled and dt.RemoteFetchEnabled and (dt.RemoteDataAdapter = Self.RemoteDataAdapter) then begin + if aRemote.IndexOf(dt) = -1 then aRemote.Add(dt); + end + else begin + if aLocal.IndexOf(dt) = -1 then aLocal.Add(dt); + end; + if aRecursive then dt.GetDetailTablesforAllinOneFetch(aRemote,aLocal, aRecursive); + end; + end; + finally + dtList.Free; + end; + end +end; + +function TDADataTable.GetDetailTablesforApplyUpdate(aRecursive: boolean): TList; +var + i: integer; + dt: TDADataTable; + dtList, dtlist1: TList; + scc: IDASimpleClonedCursorsSupport; +begin + Result:= TList.Create; + if (moCascadeApplyUpdates in fMasterOptions) then begin + dtList:=GetDetailDataTables; + try + for i := 0 to dtList.Count-1 do begin + dt := TDADataTable(dtList[i]); + if dt.Active and (dtCascadeApplyUpdates in dt.DetailOptions) then begin + if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin + dt:= TDADatatable(scc.GetSimpleCloneSource); + end; + if Result.IndexOf(dt) = -1 then Result.Add(dt); + if aRecursive then begin + dtlist1:= dt.GetDetailTablesforApplyUpdate(aRecursive); + try + Result.Assign(dtlist1,laOr); + finally + dtlist1.Free; + end; + end; + end; + end; + finally + dtList.Free; + end; + end +end; + +procedure TDADataTable.CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); +var + orignextinc : integer; + wasfiltered, + remotefetch : boolean; + lOldMasterFields: string; + details: TList; + i,j,k: integer; + detailChange: TDADeltaChange; + ChangePKValueArray: array of Variant; + lNeedDeleteChange: boolean; + keyvalue: variant; +begin + if Editing then Cancel; + if not LogChanges then Exit; + + DisableControls; + wasfiltered := Filtered; + Filtered := FALSE; + try + // Truns off the remote fetching for this datatable and its details + remotefetch := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + + // Disable the log of changes (we're about to make a bunch!) + LogChanges := FALSE; + // Saves the current recinc (we'll change this during the restore) + orignextinc := CurrRecId; + try + lOldMasterFields := MasterFields; + MasterFields := ''; + try + // Reverts the records to the original state + + if IncludeDetails then begin + SetLength(ChangePKValueArray,Change.Delta.KeyFieldCount); + For i:=1 to Change.Delta.KeyFieldCount do begin + if Change.ChangeType = ctInsert then + keyvalue:=Change.NewValueByName[Change.Delta.KeyFieldNames[i-1]] + else + keyvalue:=Change.OldValueByName[Change.Delta.KeyFieldNames[i-1]]; + ChangePKValueArray[0]:=keyvalue; + end; + details:=GetDetailTablesforApplyUpdate; + try + for i:=0 to details.Count-1 do begin + for j:=0 to TDADataTable(details[i]).Delta.Count-1 do begin + detailChange :=TDADataTable(details[i]).Delta.Changes[j]; + if detailChange.Status <> csResolved then begin + lNeedDeleteChange:= True; + for k:=0 to Change.Delta.KeyFieldCount-1 do begin + if detailChange.ChangeType = ctInsert then + keyvalue:=detailChange.NewValueByName[Change.Delta.KeyFieldNames[k]] + else + keyvalue:=detailChange.oldValueByName[Change.Delta.KeyFieldNames[k]]; + if not VarSameValue(keyValue, ChangePKValueArray[k]) then begin + lNeedDeleteChange:= False; + Break; + end; + end; + if lNeedDeleteChange then TDADataTable(details[i]).CancelUpdateChange(detailChange,IncludeDetails); + end; + end; + end; + finally + details.Free; + end; + end; + InternalCancelUpdateChange(change); + Delta.RemoveChange(change); + finally + if Delta.Count = 0 then fHasReducedDelta:=False; + MasterFields := lOldMasterFields; + end; + finally + CurrRecId := orignextinc; + LogChanges := TRUE; + RemoteFetchEnabled := remotefetch; + end; + finally + Filtered := wasfiltered; + EnableControls; + end; +end; + +procedure TDADataTable.InternalCancelUpdateChange(Change: TDADeltaChange); +var + i, x : integer; + fldname : string; + fldvalue : Variant; + details: TList; + RecID:string; +begin + case Change.ChangeType of + ctDelete : begin + CurrRecId := change.RecID; // We want the same autoinc regenerated + RecID:=IntToStr(Change.RecID); + Insert; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fldname := Delta.LoggedFieldNames[x]; + fldvalue := change.OldValues[x]; + VariantToFieldValue(fldValue, FieldByName(fldname)); + end; + Post; + + details := GetDetailDataTables; + try + for x := 0 to (details.Count-1) do begin + i:=TDADataTable(details[x]).fFetchedMasters.IndexOf(RecID); + if i<>-1 then TDADataTable(details[x]).fFetchedMasters.Delete(i); + end; + finally + details.Free; + end; + + + end; + + else begin + if not Locate(RecIDFieldName, change.RecID, []) then RaiseError('Couldn''t find record #'+FormatRecIDString(change.RecID)); + + if (change.ChangeType=ctInsert) then Delete + else begin + Edit; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fldname := Delta.LoggedFieldNames[x]; + fldvalue := change.OldValues[x]; + if fHasReducedDelta and ROVariantsEqual(fldvalue, change.NewValues[x]) then Continue; + VariantToFieldValue(fldValue, FieldByName(fldname)); + end; + Post; + end; + end; + end; +end; + +procedure TDADataTable.CheckProperties(ACheckRemoteFetching: Boolean=False); +begin + if RemoteFetchEnabled or ACheckRemoteFetching then begin + Check(RemoteDataAdapter = nil, Name+'.RemoteDataAdapter must be assigned.'); + end + else begin + Check(LocalDataStreamer = nil , Name+'.LocalDataStreamer must be assigned.'); + Check(LocalSchema = nil, Name+'.LocalSchema must be assigned.'); + LocalSchema.CheckProperties; + end; +end; + + +procedure TDADataTable.ExpessionEvaluatorGetValue( + Sender: TDAExpressionEvaluator; const aIdentifier: string; + out aValue: Variant); +begin + aValue := Fields.FieldByName(aIdentifier).Value; +end; + +function TDADataTable.GetDynamicWhere: TDAWhereBuilder; +begin + Result := fDynamicWhere; +end; + +procedure TDADataTable.SetDynamicWhere(const Value: TDAWhereBuilder); +begin + if Value <> nil then + FDynamicWhere.Xml := Value.Xml + else + FDynamicWhere.Clear; +end; + +{ TDADataSource } + +constructor TDADataSource.Create(aOwner: TComponent); +begin + inherited; +end; + +destructor TDADataSource.Destroy; +begin + inherited; +end; + +function TDADataSource.GetActive: boolean; +begin + result := (fDataTable <> nil) and fDataTable.Active +end; + +function TDADataSource.GetDataset: TDataset; +begin + result := nil; +end; + +function TDADataSource.GetOpening: boolean; +begin + result := (fDataTable <> nil) and fDataTable.Opening +end; + +procedure TDADataSource.Notification(AComponent: TComponent; + Operation: TOperation); +begin + inherited; + + if (AComponent = fDataTable) then begin + fDataTable := nil; + inherited Dataset := nil; + end; +end; + +procedure TDADataSource.SetDataset(const Value: TDataset); +begin + +end; + +procedure TDADataSource.SetDataTable(const Value: TDADataTable); +begin + fDataTable := Value; + if (fDataTable <> nil) then begin + fDataTable.FreeNotification(Self); + inherited Dataset := fDataTable.Dataset; + end + else + inherited Dataset := nil; +end; + +{ TDABusinessRules } + +constructor TDABusinessRules.Create; +begin + inherited; +end; + +destructor TDABusinessRules.Destroy; +begin + inherited; +end; + +function TDABusinessRules._AddRef: Integer; +begin + result := -1; +end; + +function TDABusinessRules._Release: Integer; +begin + result := -1; +end; + +{ TDADataTableRules } + +constructor TDADataTableRules.Create(aDataTable: TDADataTable); +begin + inherited Create; + + Check(not Assigned(aDatatable), 'DataTable cannot be NIL'); + + fDetails := TStringList.Create; + fDetails.Sorted := TRUE; + fDetails.Duplicates := dupError; + + fDataTable := aDataTable; +end; + +destructor TDADataTableRules.Destroy; +begin + fDetails.Free; + + inherited; +end; + +procedure TDADataTableRules.AfterCancel(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterClose(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterDelete(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterEdit(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterInsert(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterOpen(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterPost(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterRefresh(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterScroll(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeCancel(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeClose(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeDelete(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeEdit(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeInsert(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeOpen(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforePost(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeRefresh(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeScroll(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnCalcFields(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnNewRecord(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnDeleteError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +procedure TDADataTableRules.OnEditError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +procedure TDADataTableRules.Attach(aDataTable: TDADataTable); +begin + RefreshDetails; +end; + +procedure TDADataTableRules.Detach(aDataTable: TDADataTable); +begin + fDetails.Clear; +end; + +procedure TDADataTableRules.Append; +begin + fDataTable.Append(); +end; + +procedure TDADataTableRules.Cancel; +begin + fDataTable.Cancel(); +end; + +procedure TDADataTableRules.Delete; +begin + fDataTable.Delete(); +end; + +procedure TDADataTableRules.Edit; +begin + fDataTable.Edit(); +end; + +procedure TDADataTableRules.First; +begin + fDataTable.First(); +end; + +procedure TDADataTableRules.Insert; +begin + fDataTable.Insert(); +end; + +procedure TDADataTableRules.Last; +begin + fDataTable.Last(); +end; + +procedure TDADataTableRules.Next; +begin + fDataTable.Next(); +end; + +procedure TDADataTableRules.Post; +begin + fDataTable.Post(); +end; + +procedure TDADataTableRules.Prior; +begin + fDataTable.Prior(); +end; + +function TDADataTableRules.GetBOF: Boolean; +begin + result := fDataTable.BOF; +end; + +function TDADataTableRules.GetEOF: Boolean; +begin + result := fDataTable.EOF; +end; + +function TDADataTableRules.GetRecordCount: Integer; +begin + result := fDataTable.RecordCount; +end; + +function TDADataTableRules.Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): boolean; +begin + result := fDataTable.Locate(aKeyFields, aKeyValues, aOptions); +end; + +function TDADataTableRules.GetDetails(Index: integer): TDADataTable; +begin + result := TDADataTable(fDetails[Index]) +end; + +function TDADataTableRules.GetDetailsCount: integer; +begin + result := fDetails.Count +end; + +function TDADataTableRules.FindDetail( + const aLogicalName: string): TDADataTable; +var i : integer; +begin + result := NIL; + i := fDetails.IndexOf(aLogicalName); + + if (i>=0) then result := TDADataTable(fDetails.Objects[i]); +end; + +function TDADataTableRules.DetailByName( + const aLogicalName: string): TDADataTable; +begin + result := FindDetail(aLogicalName); + if (result=NIL) + then raise Exception.CreateFmt('Cannot find the detail DataTable %s ', [aLogicalName]); +end; + +procedure TDADataTableRules.RefreshDetails; +var lList : TList; + i : integer; + lLogicalName : string; +begin + lList := DataTable.GetDetailDataTables; + fDetails.Clear; + try + for i := 0 to (lList.Count-1) do begin + lLogicalName := TDADataTable(lList[i]).LogicalName; + + if (lLogicalName<>'') + then fDetails.AddObject(lLogicalName, lList[i]); + end; + finally + lList.Free; + end; +end; + +function TDADataTableRules.GetDetailOptions: TDADetailOptions; +begin + result := DataTable.DetailOptions +end; + +function TDADataTableRules.GetMasterOptions: TDAMasterOptions; +begin + result := DataTable.MasterOptions +end; + +procedure TDADataTableRules.SetDetailOptions(Value: TDADetailOptions); +begin + DataTable.DetailOptions := Value +end; + +procedure TDADataTableRules.SetMasterOptions(Value: TDAMasterOptions); +begin + DataTable.MasterOptions := Value +end; + +function TDADataTableRules.GetRecNo: integer; +begin + result := fDataTable.RecNo +end; + +procedure TDADataTableRules.SetRecNo(Value: integer); +begin + fDataTable.RecNo := Value +end; + +procedure TDADataTableRules.OnFilterRecord(DataTable: TDADataTable; + var Accept: boolean); +begin + +end; + +procedure TDADataTableRules.OnPostError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +function TDADataTableRules.Lookup(const KeyFields: string; + const KeyValues: Variant; const ResultFields: string): Variant; +begin + result := fDataTable.Lookup(KeyFields, KeyValues, ResultFields); +end; + +function TDADataTableRules.GetIsEmpty: boolean; +begin + result := fDataTable.IsEmpty +end; + +function TDADataTableRules.GetState: TDatasetState; +begin + result := fDataTable.State +end; + +function TDADataTableRules.IsFieldNull( + const FieldIndexOrName: Variant): boolean; +var fld : TDAField; +begin + case VarType(FieldIndexOrName) of + varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); + else fld := DataTable.Fields[FieldIndexOrName]; + end; + + result := fld.IsNull; +end; + +procedure TDADataTableRules.ClearField(const FieldIndexOrName: Variant); +var fld : TDAField; +begin + case VarType(FieldIndexOrName) of + varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); + else fld := DataTable.Fields[FieldIndexOrName]; + end; + + fld.Clear; +end; + +function TDADataTableRules.GetDataTable: TDADataTable; +begin + result := fDataTable; +end; + +procedure TDADataTableRules.ApplyRange; +begin + (fDataTable as IDARangeController).ApplyRange +end; + +procedure TDADataTableRules.CancelRange; +begin + (fDataTable as IDARangeController).CancelRange +end; + +procedure TDADataTableRules.EditRangeEnd; +begin + (fDataTable as IDARangeController).EditRangeEnd +end; + +procedure TDADataTableRules.EditRangeStart; +begin + (fDataTable as IDARangeController).EditRangeStart +end; + +procedure TDADataTableRules.SetRange(const StartValues, + EndValues: array of const); +begin + (fDataTable as IDARangeController).SetRange(StartValues, EndValues); +end; + +procedure TDADataTableRules.SetRangeEnd; +begin + (fDataTable as IDARangeController).SetRangeEnd +end; + +procedure TDADataTableRules.SetRangeStart; +begin + (fDataTable as IDARangeController).SetRangeStart +end; + +procedure TDADataTableRules.Close; +begin + fDataTable.Close; +end; + +procedure TDADataTableRules.Open; +begin + fDataTable.Open; +end; + +function TDADataTableRules.GetActive: boolean; +begin + result := fDataTable.Active; +end; + +procedure TDADataTableRules.SetActive(const Value: boolean); +begin + fDataTable.Active := Value; +end; + +procedure TDADataTableRules.OnAfterApplyUpdates(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnAfterDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterDataUpdateCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterMergeDelta(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnAfterSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterScriptCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeApplyUpdates(DataTable: TDADataTable; + const Delta: IDADelta); +begin + +end; + +procedure TDADataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeDataUpdateCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeMergeDelta(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeScriptCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnReceiveDataStream(DataTable: TDADataTable; + Stream: TStream); +begin + +end; + +{ TDAFieldRules } +constructor TDAFieldRules.Create(aField : TDAField; aDataTable : TDADataTable); +begin + inherited Create; + + fDataTable := aDataTable; + + fField := aField; + fField.OnValidate := OnValidate; + fField.OnChange := OnChange; + + Attach(fDataTable); +end; + +destructor TDAFieldRules.Destroy; +begin + Detach(fDataTable); + inherited; +end; + +procedure TDAFieldRules.Attach(aDataTable: TDADataTable); +begin + +end; + +procedure TDAFieldRules.Detach(aDataTable: TDADataTable); +begin + +end; + +procedure TDAFieldRules.OnChange(Sender: TDACustomField); +begin +end; + +procedure TDAFieldRules.OnValidate(Sender: TDACustomField); +begin +end; + +{ TDADataTableList } +constructor TDADataTableList.Create(aOwnerComponent: TComponent); +begin + inherited Create; + + ScanAndAdd(aOwnerComponent); +end; + +function TDADataTableList.Add(aDataTable: TDADataTable): integer; +begin + result := inherited Add(aDataTable); +end; + +function TDADataTableList.GetItems(Index: integer): TDADataTable; +begin + result := TDADataTable(inherited Items[Index]); +end; + +procedure TDADataTableList.Remove(aDataTable: TDADataTable); +begin + inherited Remove(aDataTable); +end; + + +function TDADataTableList.ScanAndAdd(aOwnerComponent: TComponent): integer; +var i : integer; +begin + result := 0; + with aOwnerComponent do begin + for i := 0 to (Count-1) do + if (Components[i] is TDADataTable) then begin + Add(TDADataTable(Components[i])); + Inc(result); + end; + end; +end; + +function TDADataTableList.GetPendingChangeCount: integer; +var i : integer; +begin + result := 0; + for i := 0 to (Count-1) do + if Items[i].Active and Items[i].LogChanges + then Inc(result, Items[i].Delta.Count); +end; + +{ TDABaseRemoteDataAdapter } + +function TDABaseRemoteDataAdapter.Get_GetDataCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_GetSchemaCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_GetScriptsCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_UpdateDataCall: TDARemoteRequest; +begin + result := nil; +end; + +initialization + RegisterExceptionClass(EDABizValidationException); + + _bizfields := TStringList.Create; + _bizfields.Sorted := TRUE; + + _bizdatatables := TStringList.Create; + _bizdatatables.Sorted := TRUE; + +finalization + UnregisterExceptionClass(EDABizValidationException); + _bizdatatables.Free; + _bizfields.Free; + +end. From 11270e4550010b8b8d1edbba53d3ea0577d00140 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 10:56:47 +0000 Subject: [PATCH 02/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@23 1c943782-d109-9647-9548-93b3ac332352 --- Varela/Varela/Build/Build.fbl5 | Bin 0 -> 2621440 bytes Varela/Varela/Build/Build.fbp5 | 2825 +++++++ Varela/Varela/Build/Build.fbv | 1 + Varela/Varela/Build/Build.fbw | 0 Varela/Varela/Build/buildlog.html | 1298 ++++ Varela/Varela/Database/1 - tablas.sql | 878 +++ .../Database/2.1 - vistas inventario.sql | 1028 +++ .../Varela/Database/2.2 - vistas ventas.sql | 284 + Varela/Varela/Database/2.3 - vistas stock.sql | 579 ++ Varela/Varela/Database/3 - procedimientos.sql | 176 + .../Varela/Database/ANTERIOR/Script Datos.sql | 178 + .../Database/ANTERIOR/Script Tablas.sql | 519 ++ .../ANTERIOR/Script Vistas INVRPT.sql | 1156 +++ .../Database/ANTERIOR/Script Vistas STOCK.sql | 431 ++ .../Database/ANTERIOR/Script Vistas.sql | 302 + .../Varela/Database/SCRIPT MEJORAS TABLAS.SQL | 473 ++ Varela/Varela/Database/__Script mejoras.sql | 434 ++ Varela/Varela/Lib/midas.dll | Bin 0 -> 296448 bytes .../Informes/InformeReferenciaGenerica.fr3 | 27 + Varela/Varela/Resources/Iconos/CargaEDI.ico | Bin 0 -> 14846 bytes Varela/Varela/Resources/Iconos/Cliente.ico | Bin 0 -> 17542 bytes .../Iconos/Devoluciones/16x16/Remove.png | Bin 0 -> 420 bytes .../Iconos/Devoluciones/16x16/Thumbs.db | Bin 0 -> 9216 bytes .../Iconos/Devoluciones/24x24/Remove.png | Bin 0 -> 544 bytes .../Iconos/Devoluciones/24x24/Thumbs.db | Bin 0 -> 57856 bytes .../Iconos/Devoluciones/28x28/Remove.png | Bin 0 -> 605 bytes .../Iconos/Devoluciones/28x28/Thumbs.db | Bin 0 -> 7168 bytes .../Iconos/FicherosEDI/16x16/Delete.png | Bin 0 -> 734 bytes .../Iconos/FicherosEDI/16x16/History.png | Bin 0 -> 1034 bytes .../Iconos/FicherosEDI/16x16/Thumbs.db | Bin 0 -> 12800 bytes .../Iconos/FicherosEDI/16x16/Tick.png | Bin 0 -> 3254 bytes .../Iconos/FicherosEDI/16x16/carga.png | Bin 0 -> 3290 bytes .../Iconos/FicherosEDI/24x24/History.png | Bin 0 -> 1804 bytes .../Iconos/FicherosEDI/24x24/Thumbs.db | Bin 0 -> 10240 bytes .../Iconos/FicherosEDI/24x24/cargar.png | Bin 0 -> 3613 bytes .../Iconos/FicherosEDI/28x28/History.png | Bin 0 -> 2370 bytes .../Iconos/FicherosEDI/28x28/Thumbs.db | Bin 0 -> 10240 bytes .../Iconos/FicherosEDI/28x28/cargar.png | Bin 0 -> 3645 bytes .../Iconos/Generales/16x16/013422.bmp | Bin 0 -> 2360 bytes .../Iconos/Generales/16x16/09378.bmp | Bin 0 -> 916 bytes .../Iconos/Generales/16x16/09378.png | Bin 0 -> 420 bytes .../Iconos/Generales/16x16/About.png | Bin 0 -> 490 bytes .../Generales/16x16/Añadir-capítulo.png | Bin 0 -> 717 bytes .../Generales/16x16/Añadir-material.png | Bin 0 -> 685 bytes .../Resources/Iconos/Generales/16x16/Back.png | Bin 0 -> 909 bytes .../Iconos/Generales/16x16/Box-Closed.png | Bin 0 -> 400 bytes .../Iconos/Generales/16x16/Box-Open-2.png | Bin 0 -> 640 bytes .../Iconos/Generales/16x16/Card-Copy.png | Bin 0 -> 442 bytes .../Iconos/Generales/16x16/Cell-Format.png | Bin 0 -> 584 bytes .../Iconos/Generales/16x16/Clear.png | Bin 0 -> 440 bytes .../Resources/Iconos/Generales/16x16/Copy.png | Bin 0 -> 499 bytes .../Resources/Iconos/Generales/16x16/Cut.png | Bin 0 -> 709 bytes .../Iconos/Generales/16x16/Dates-Adjust.png | Bin 0 -> 473 bytes .../Generales/16x16/Debug-Breakpoint.png | Bin 0 -> 530 bytes .../Generales/16x16/Debug-Watch-Delete.png | Bin 0 -> 580 bytes .../Iconos/Generales/16x16/Debug-Watch.png | Bin 0 -> 427 bytes .../Iconos/Generales/16x16/Delete.png | Bin 0 -> 734 bytes .../Iconos/Generales/16x16/Details-Hide.png | Bin 0 -> 309 bytes .../Iconos/Generales/16x16/Details-Show.png | Bin 0 -> 379 bytes .../16x16/Distribute-Rows Evenly.png | Bin 0 -> 351 bytes .../Resources/Iconos/Generales/16x16/Edit.png | Bin 0 -> 496 bytes .../Resources/Iconos/Generales/16x16/Exit.png | Bin 0 -> 606 bytes .../Iconos/Generales/16x16/Filter.png | Bin 0 -> 488 bytes .../Iconos/Generales/16x16/Format-Font.png | Bin 0 -> 563 bytes .../Iconos/Generales/16x16/Forward.png | Bin 0 -> 896 bytes .../Generales/16x16/Grid-Select Column.png | Bin 0 -> 391 bytes .../Iconos/Generales/16x16/Group By.png | Bin 0 -> 261 bytes .../Resources/Iconos/Generales/16x16/Home.png | Bin 0 -> 454 bytes .../Iconos/Generales/16x16/Minus.png | Bin 0 -> 263 bytes .../Resources/Iconos/Generales/16x16/New.png | Bin 0 -> 350 bytes .../Generales/16x16/Outline-Collapse.png | Bin 0 -> 264 bytes .../Iconos/Generales/16x16/Outline-Expand.png | Bin 0 -> 343 bytes .../Generales/16x16/Outline-Move Down.png | Bin 0 -> 389 bytes .../Generales/16x16/Outline-Move Up.png | Bin 0 -> 380 bytes .../Iconos/Generales/16x16/Parcel.png | Bin 0 -> 561 bytes .../Iconos/Generales/16x16/Paste.png | Bin 0 -> 543 bytes .../Resources/Iconos/Generales/16x16/Plus.png | Bin 0 -> 343 bytes .../Iconos/Generales/16x16/Preview.png | Bin 0 -> 597 bytes .../Iconos/Generales/16x16/Print-Options.png | Bin 0 -> 446 bytes .../Iconos/Generales/16x16/Print.png | Bin 0 -> 484 bytes .../Iconos/Generales/16x16/Refresh.png | Bin 0 -> 486 bytes .../Resources/Iconos/Generales/16x16/Save.png | Bin 0 -> 482 bytes .../Iconos/Generales/16x16/Search.png | Bin 0 -> 441 bytes .../Iconos/Generales/16x16/Select All.png | Bin 0 -> 586 bytes .../Iconos/Generales/16x16/Speaking-Start.png | Bin 0 -> 407 bytes .../Iconos/Generales/16x16/Sum-2.png | Bin 0 -> 238 bytes .../Iconos/Generales/16x16/Table-Search.png | Bin 0 -> 651 bytes .../Iconos/Generales/16x16/Thumbs.db | Bin 0 -> 75264 bytes .../Iconos/Generales/16x16/Total-capítulo.png | Bin 0 -> 519 bytes .../Generales/16x16/Título-capítulo.png | Bin 0 -> 559 bytes .../Resources/Iconos/Generales/16x16/Undo.png | Bin 0 -> 682 bytes .../Iconos/Generales/16x16/View-One Page.png | Bin 0 -> 445 bytes .../Generales/16x16/View-Page Width.png | Bin 0 -> 476 bytes .../Iconos/Generales/16x16/Warning.png | Bin 0 -> 687 bytes .../Iconos/Generales/16x16/Zoom-In.png | Bin 0 -> 862 bytes .../Iconos/Generales/16x16/Zoom-Out.png | Bin 0 -> 848 bytes .../Iconos/Generales/16x16/db-Next-2.png | Bin 0 -> 289 bytes .../Iconos/Generales/16x16/db-Previous-2.png | Bin 0 -> 295 bytes .../Iconos/Generales/16x16/db-first-2.png | Bin 0 -> 327 bytes .../Iconos/Generales/16x16/db-last-2.png | Bin 0 -> 323 bytes .../Iconos/Generales/24x24/About.png | Bin 0 -> 1054 bytes .../Resources/Iconos/Generales/24x24/Back.png | Bin 0 -> 1488 bytes .../Iconos/Generales/24x24/Box-Open-2.png | Bin 0 -> 700 bytes .../Iconos/Generales/24x24/Card-Copy.png | Bin 0 -> 577 bytes .../Iconos/Generales/24x24/Cell-Format.png | Bin 0 -> 931 bytes .../Iconos/Generales/24x24/Clear.png | Bin 0 -> 958 bytes .../Resources/Iconos/Generales/24x24/Copy.png | Bin 0 -> 653 bytes .../Resources/Iconos/Generales/24x24/Cut.png | Bin 0 -> 1215 bytes .../Iconos/Generales/24x24/Dates-Adjust.png | Bin 0 -> 690 bytes .../Generales/24x24/Debug-Breakpoint.png | Bin 0 -> 732 bytes .../Generales/24x24/Debug-Watch-Delete.png | Bin 0 -> 1156 bytes .../Iconos/Generales/24x24/Debug-Watch.png | Bin 0 -> 983 bytes .../Iconos/Generales/24x24/Delete.png | Bin 0 -> 1170 bytes .../Iconos/Generales/24x24/Details-Hide.png | Bin 0 -> 319 bytes .../Iconos/Generales/24x24/Details-Show.png | Bin 0 -> 457 bytes .../24x24/Distribute-Rows Evenly.png | Bin 0 -> 401 bytes .../Resources/Iconos/Generales/24x24/Edit.png | Bin 0 -> 728 bytes .../Resources/Iconos/Generales/24x24/Exit.png | Bin 0 -> 1053 bytes .../Iconos/Generales/24x24/Filter.png | Bin 0 -> 761 bytes .../Iconos/Generales/24x24/Format-Font.png | Bin 0 -> 921 bytes .../Iconos/Generales/24x24/Forward.png | Bin 0 -> 1482 bytes .../Generales/24x24/Grid-Select Column.png | Bin 0 -> 486 bytes .../Iconos/Generales/24x24/Group By.png | Bin 0 -> 330 bytes .../Resources/Iconos/Generales/24x24/Home.png | Bin 0 -> 815 bytes .../Iconos/Generales/24x24/Minus.png | Bin 0 -> 264 bytes .../Generales/24x24/Outline-Collapse.png | Bin 0 -> 266 bytes .../Iconos/Generales/24x24/Outline-Expand.png | Bin 0 -> 391 bytes .../Generales/24x24/Outline-Move Down.png | Bin 0 -> 427 bytes .../Generales/24x24/Outline-Move Up.png | Bin 0 -> 430 bytes .../Iconos/Generales/24x24/Paste.png | Bin 0 -> 738 bytes .../Resources/Iconos/Generales/24x24/Plus.png | Bin 0 -> 423 bytes .../Iconos/Generales/24x24/Preview.png | Bin 0 -> 995 bytes .../Iconos/Generales/24x24/Print-Options.png | Bin 0 -> 823 bytes .../Iconos/Generales/24x24/Print.png | Bin 0 -> 802 bytes .../Iconos/Generales/24x24/Refresh.png | Bin 0 -> 756 bytes .../Resources/Iconos/Generales/24x24/Save.png | Bin 0 -> 667 bytes .../Iconos/Generales/24x24/Search.png | Bin 0 -> 631 bytes .../Iconos/Generales/24x24/Select All.png | Bin 0 -> 984 bytes .../Iconos/Generales/24x24/Speaking-Start.png | Bin 0 -> 514 bytes .../Iconos/Generales/24x24/Sum-2.png | Bin 0 -> 341 bytes .../Iconos/Generales/24x24/Table-Search.png | Bin 0 -> 1143 bytes .../Iconos/Generales/24x24/Thumbs.db | Bin 0 -> 76288 bytes .../Resources/Iconos/Generales/24x24/Undo.png | Bin 0 -> 1050 bytes .../Iconos/Generales/24x24/View-One Page.png | Bin 0 -> 570 bytes .../Generales/24x24/View-Page Width.png | Bin 0 -> 802 bytes .../Iconos/Generales/24x24/Warning.png | Bin 0 -> 1039 bytes .../Iconos/Generales/24x24/Zoom-In.png | Bin 0 -> 1411 bytes .../Iconos/Generales/24x24/Zoom-Out.png | Bin 0 -> 1390 bytes .../Iconos/Generales/24x24/db-First-2.png | Bin 0 -> 424 bytes .../Iconos/Generales/24x24/db-Last-2.png | Bin 0 -> 443 bytes .../Iconos/Generales/24x24/db-Next-2.png | Bin 0 -> 352 bytes .../Iconos/Generales/24x24/db-Previous-2.png | Bin 0 -> 342 bytes .../Iconos/Generales/28x28/Box-Open-2.png | Bin 0 -> 804 bytes .../Iconos/Generales/28x28/Card-Copy.png | Bin 0 -> 647 bytes .../Iconos/Generales/28x28/Cell-Format.png | Bin 0 -> 1127 bytes .../Iconos/Generales/28x28/Dates-Adjust.png | Bin 0 -> 773 bytes .../Generales/28x28/Debug-Watch-Delete.png | Bin 0 -> 1213 bytes .../Iconos/Generales/28x28/Debug-Watch.png | Bin 0 -> 1042 bytes .../Iconos/Generales/28x28/Details-Hide.png | Bin 0 -> 350 bytes .../Iconos/Generales/28x28/Details-Show.png | Bin 0 -> 500 bytes .../28x28/Distribute-Rows Evenly.png | Bin 0 -> 411 bytes .../Iconos/Generales/28x28/Filter.png | Bin 0 -> 763 bytes .../Iconos/Generales/28x28/Format-Font.png | Bin 0 -> 898 bytes .../Generales/28x28/Grid-Select Column.png | Bin 0 -> 711 bytes .../Iconos/Generales/28x28/Group By.png | Bin 0 -> 366 bytes .../Resources/Iconos/Generales/28x28/Home.png | Bin 0 -> 800 bytes .../Generales/28x28/Outline-Move Down.png | Bin 0 -> 434 bytes .../Generales/28x28/Outline-Move Up.png | Bin 0 -> 436 bytes .../Iconos/Generales/28x28/Speaking-Start.png | Bin 0 -> 512 bytes .../Iconos/Generales/28x28/Sum-2.png | Bin 0 -> 348 bytes .../Iconos/Generales/28x28/Table-Search.png | Bin 0 -> 1394 bytes .../Iconos/Generales/28x28/Thumbs.db | Bin 0 -> 37888 bytes .../Iconos/Generales/28x28/Warning.png | Bin 0 -> 1236 bytes .../Resources/Iconos/Generales/Thumbs.db | Bin 0 -> 8704 bytes .../Iconos/Recepciones/16x16/Insert.png | Bin 0 -> 3113 bytes .../Iconos/Recepciones/16x16/Thumbs.db | Bin 0 -> 8704 bytes .../Iconos/Recepciones/16x16/albaran.png | Bin 0 -> 3488 bytes .../Iconos/Recepciones/24x24/Insert.png | Bin 0 -> 3259 bytes .../Iconos/Recepciones/24x24/Thumbs.db | Bin 0 -> 58880 bytes .../Iconos/Recepciones/24x24/albaran.png | Bin 0 -> 3910 bytes .../Iconos/Recepciones/28x28/Insert.png | Bin 0 -> 3346 bytes .../Iconos/Recepciones/28x28/Thumbs.db | Bin 0 -> 14336 bytes .../Iconos/Recepciones/28x28/albaran.png | Bin 0 -> 3720 bytes .../16x16/Label-Edit.png | Bin 0 -> 531 bytes .../Referencias genéricas/16x16/Thumbs.db | Bin 0 -> 8192 bytes .../Referencias genéricas/16x16/enespera.png | Bin 0 -> 525 bytes .../Referencias genéricas/16x16/pendiente.png | Bin 0 -> 274 bytes .../Referencias genéricas/16x16/resuelto.png | Bin 0 -> 334 bytes .../24x24/Label-Edit.png | Bin 0 -> 693 bytes .../28x28/Label-Edit.png | Bin 0 -> 714 bytes Varela/Varela/Resources/Iconos/Servidor.ico | Bin 0 -> 22486 bytes .../Iconos/Servidor/16x16/Database.png | Bin 0 -> 749 bytes .../Resources/Iconos/Servidor/16x16/Thumbs.db | Bin 0 -> 44544 bytes .../Iconos/Servidor/24x24/Database.png | Bin 0 -> 1131 bytes .../Resources/Iconos/Servidor/24x24/Thumbs.db | Bin 0 -> 46080 bytes .../Iconos/Servidor/28x28/Database.png | Bin 0 -> 1317 bytes .../Resources/Iconos/Servidor/28x28/Thumbs.db | Bin 0 -> 15872 bytes .../Resources/Iconos/Stock/16x16/Task.png | Bin 0 -> 594 bytes .../Resources/Iconos/Stock/16x16/Thumbs.db | Bin 0 -> 5632 bytes .../Resources/Iconos/Stock/24x24/Task.png | Bin 0 -> 797 bytes .../Resources/Iconos/Stock/24x24/Thumbs.db | Bin 0 -> 5632 bytes .../Resources/Iconos/Stock/28x28/Task.png | Bin 0 -> 886 bytes .../Resources/Iconos/Stock/28x28/Thumbs.db | Bin 0 -> 7168 bytes Varela/Varela/Resources/Iconos/Thumbs.db | Bin 0 -> 19456 bytes .../Iconos/Traspasos/16x16/Entrada.png | Bin 0 -> 3035 bytes .../Iconos/Traspasos/16x16/Salida.png | Bin 0 -> 398 bytes .../Resources/Iconos/Traspasos/16x16/Swap.png | Bin 0 -> 476 bytes .../Iconos/Traspasos/16x16/Thumbs.db | Bin 0 -> 10240 bytes .../Resources/Iconos/Traspasos/24x24/Swap.png | Bin 0 -> 584 bytes .../Iconos/Traspasos/24x24/Thumbs.db | Bin 0 -> 57856 bytes .../Resources/Iconos/Traspasos/28x28/Swap.png | Bin 0 -> 586 bytes .../Iconos/Traspasos/28x28/Thumbs.db | Bin 0 -> 10240 bytes .../Resources/Iconos/Usuarios/16x16/Thumbs.db | Bin 0 -> 49152 bytes .../Iconos/Usuarios/16x16/User-Add.png | Bin 0 -> 832 bytes .../Iconos/Usuarios/16x16/User-Edit.png | Bin 0 -> 818 bytes .../Iconos/Usuarios/16x16/User-Password.png | Bin 0 -> 721 bytes .../Iconos/Usuarios/16x16/User-Remove.png | Bin 0 -> 773 bytes .../Resources/Iconos/Usuarios/16x16/User.png | Bin 0 -> 768 bytes .../Resources/Iconos/Usuarios/16x16/Users.png | Bin 0 -> 903 bytes .../Resources/Iconos/Usuarios/24x24/Thumbs.db | Bin 0 -> 55808 bytes .../Iconos/Usuarios/24x24/User-Add.png | Bin 0 -> 1345 bytes .../Iconos/Usuarios/24x24/User-Edit.png | Bin 0 -> 1385 bytes .../Iconos/Usuarios/24x24/User-Password.png | Bin 0 -> 1233 bytes .../Iconos/Usuarios/24x24/User-Remove.png | Bin 0 -> 1282 bytes .../Resources/Iconos/Usuarios/24x24/User.png | Bin 0 -> 1267 bytes .../Resources/Iconos/Usuarios/24x24/Users.png | Bin 0 -> 1555 bytes .../Resources/Iconos/Usuarios/28x28/Thumbs.db | Bin 0 -> 21504 bytes .../Iconos/Usuarios/28x28/User-Add.png | Bin 0 -> 1618 bytes .../Iconos/Usuarios/28x28/User-Edit.png | Bin 0 -> 1728 bytes .../Iconos/Usuarios/28x28/User-Password.png | Bin 0 -> 1563 bytes .../Iconos/Usuarios/28x28/User-Remove.png | Bin 0 -> 1581 bytes .../Resources/Iconos/Usuarios/28x28/User.png | Bin 0 -> 1525 bytes .../Resources/Iconos/Usuarios/28x28/Users.png | Bin 0 -> 1918 bytes .../Resources/Iconos/Usuarios/48x48/Thumbs.db | Bin 0 -> 5632 bytes .../Resources/Iconos/Usuarios/48x48/Users.png | Bin 0 -> 5154 bytes .../Iconos/Ventas en proceso/16x16/Thumbs.db | Bin 0 -> 5632 bytes .../16x16/Ventas en proceso.png | Bin 0 -> 3363 bytes .../Iconos/Ventas en proceso/24x24/Thumbs.db | Bin 0 -> 6144 bytes .../24x24/Venta en proceso.png | Bin 0 -> 3515 bytes .../16x16/Currency-Notes.png | Bin 0 -> 384 bytes .../Ventas terminadas/16x16/Currency.png | Bin 0 -> 477 bytes .../Iconos/Ventas terminadas/16x16/Report.png | Bin 0 -> 437 bytes .../Iconos/Ventas terminadas/16x16/Thumbs.db | Bin 0 -> 8704 bytes .../16x16/Venta terminada.png | Bin 0 -> 3180 bytes .../24x24/Currency-Notes.png | Bin 0 -> 676 bytes .../Ventas terminadas/24x24/Currency.png | Bin 0 -> 777 bytes .../Iconos/Ventas terminadas/24x24/Report.png | Bin 0 -> 489 bytes .../Iconos/Ventas terminadas/24x24/Thumbs.db | Bin 0 -> 12800 bytes .../24x24/Venta terminada.png | Bin 0 -> 3453 bytes .../28x28/Currency-Notes.png | Bin 0 -> 673 bytes .../Ventas terminadas/28x28/Currency.png | Bin 0 -> 887 bytes .../Iconos/Ventas terminadas/28x28/Report.png | Bin 0 -> 505 bytes .../Iconos/Ventas terminadas/28x28/Thumbs.db | Bin 0 -> 8192 bytes Varela/Varela/Resources/Imagenes/Cabecera.jpg | Bin 0 -> 18969 bytes Varela/Varela/Resources/Imagenes/Cabecera.psd | Bin 0 -> 337118 bytes Varela/Varela/Resources/Imagenes/Thumbs.db | Bin 0 -> 7680 bytes .../Resources/Imagenes/WaitProgress/1021.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1022.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1023.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1024.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1025.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1026.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1027.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1028.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1029.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1030.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1031.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1032.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/1033.BMP | Bin 0 -> 1550 bytes .../Resources/Imagenes/WaitProgress/Thumbs.db | Bin 0 -> 23552 bytes .../Resources/Imagenes/Watermark Ficheros.psd | Bin 0 -> 462918 bytes .../Resources/Imagenes/Watermark-Ficheros.png | Bin 0 -> 23588 bytes Varela/Varela/Source/AdminPVGroup.bdsgroup | 32 + .../Varela/Source/AdminPVGroup.bdsgroup.local | 6 + Varela/Varela/Source/AdminPVGroup.bpg | 72 + Varela/Varela/Source/Base/BaseD10.bdsproj | 673 ++ Varela/Varela/Source/Base/BaseD10.dpk | 112 + Varela/Varela/Source/Base/BaseD10.drc | 29 + Varela/Varela/Source/Base/BaseD10.identcache | Bin 0 -> 2882 bytes Varela/Varela/Source/Base/BaseD10.rc | 22 + Varela/Varela/Source/Base/BaseD10.res | Bin 0 -> 4748 bytes .../Varela/Source/Base/uBizInformesBase.pas | 14 + .../Source/Base/uConfigurarConexion.dfm | 113 + .../Source/Base/uConfigurarConexion.pas | 74 + .../Varela/Source/Base/uDBSelectionList.pas | 183 + Varela/Varela/Source/Base/uDataModuleBase.dfm | 1660 ++++ Varela/Varela/Source/Base/uDataModuleBase.pas | 254 + Varela/Varela/Source/Base/uDataTableUtils.pas | 324 + Varela/Varela/Source/Base/uEditorBase.dfm | 1622 ++++ Varela/Varela/Source/Base/uEditorBase.pas | 218 + Varela/Varela/Source/Base/uEditorDBBase.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Base/uEditorDBBase.dfm | 70 + Varela/Varela/Source/Base/uEditorDBBase.pas | 305 + Varela/Varela/Source/Base/uEditorDBItem.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Base/uEditorDBItem.dfm | 60 + Varela/Varela/Source/Base/uEditorDBItem.pas | 89 + Varela/Varela/Source/Base/uEditorGridBase.dfm | 1433 ++++ Varela/Varela/Source/Base/uEditorGridBase.pas | 194 + Varela/Varela/Source/Base/uEditorItem.dfm | 53 + Varela/Varela/Source/Base/uEditorItem.pas | 41 + .../Varela/Source/Base/uEditorPSPreview.dfm | 15 + .../Varela/Source/Base/uEditorPSPreview.pas | 24 + Varela/Varela/Source/Base/uEditorPreview.dfm | 937 +++ Varela/Varela/Source/Base/uEditorPreview.pas | 311 + Varela/Varela/Source/Base/uEditorUtils.pas | 108 + Varela/Varela/Source/Base/uExceptions.pas | 21 + Varela/Varela/Source/Base/uGridUtils.pas | 261 + Varela/Varela/Source/Base/uIntegerList.pas | 61 + Varela/Varela/Source/Base/uSysFunc.pas | 249 + .../Source/Base/uViewBarraSeleccion.dfm | 53 + .../Source/Base/uViewBarraSeleccion.pas | 37 + Varela/Varela/Source/Base/uViewBase.dfm | 14 + Varela/Varela/Source/Base/uViewBase.pas | 32 + Varela/Varela/Source/Base/uViewGrid.dfm | 79 + Varela/Varela/Source/Base/uViewGrid.pas | 86 + Varela/Varela/Source/Base/uViewGridBase.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Base/uViewGridBase.dfm | 10 + Varela/Varela/Source/Base/uViewGridBase.pas | 335 + Varela/Varela/Source/Base/uViewPreview.dfm | 10 + Varela/Varela/Source/Base/uViewPreview.pas | 43 + .../Varela/Source/CargaEDI/CargaEDI.bdsproj | 679 ++ Varela/Varela/Source/CargaEDI/CargaEDI.cfg | 46 + Varela/Varela/Source/CargaEDI/CargaEDI.dof | 480 ++ Varela/Varela/Source/CargaEDI/CargaEDI.dpr | 14 + Varela/Varela/Source/CargaEDI/CargaEDI.drc | 14 + .../Source/CargaEDI/CargaEDI.identcache | Bin 0 -> 239 bytes Varela/Varela/Source/CargaEDI/CargaEDI.rc | 23 + Varela/Varela/Source/CargaEDI/CargaEDI.res | Bin 0 -> 15548 bytes Varela/Varela/Source/CargaEDI/uCargaEDI.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/CargaEDI/uCargaEDI.dfm | 843 ++ Varela/Varela/Source/CargaEDI/uCargaEDI.pas | 163 + Varela/Varela/Source/ClearFiles.msbuild | 18 + Varela/Varela/Source/Cliente/AdminPV.bdsproj | 677 ++ Varela/Varela/Source/Cliente/AdminPV.cfg | 46 + Varela/Varela/Source/Cliente/AdminPV.dof | 480 ++ Varela/Varela/Source/Cliente/AdminPV.dpr | 25 + Varela/Varela/Source/Cliente/AdminPV.drc | 14 + .../Varela/Source/Cliente/AdminPV.identcache | Bin 0 -> 1038 bytes Varela/Varela/Source/Cliente/AdminPV.rc | 26 + Varela/Varela/Source/Cliente/AdminPV.res | Bin 0 -> 18368 bytes Varela/Varela/Source/Cliente/uAcercaDe.dfm | 959 +++ Varela/Varela/Source/Cliente/uAcercaDe.pas | 66 + Varela/Varela/Source/Cliente/uMenuUtils.pas | 263 + .../Source/Cliente/uPantallaPrincipal.ddp | Bin 0 -> 51 bytes .../Source/Cliente/uPantallaPrincipal.dfm | 441 ++ .../Source/Cliente/uPantallaPrincipal.pas | 569 ++ Varela/Varela/Source/Cliente/uSplash.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Cliente/uSplash.dfm | 935 +++ Varela/Varela/Source/Cliente/uSplash.pas | 56 + .../Configuracion/Configuracion.bdsproj | 677 ++ .../Source/Configuracion/Configuracion.cfg | 45 + .../Source/Configuracion/Configuracion.dof | 471 ++ .../Source/Configuracion/Configuracion.dpk | 35 + .../Source/Configuracion/Configuracion.drc | 14 + .../Source/Configuracion/Configuracion.rc | 22 + .../Source/Configuracion/Configuracion.res | Bin 0 -> 4748 bytes .../Source/Configuracion/uPanelControl.dfm | 262 + .../Source/Configuracion/uPanelControl.pas | 50 + .../Cliente/uDataModuleControles.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleControles.dfm | 172 + .../Cliente/uDataModuleControles.pas | 76 + .../ControlesBase/Cliente/uDateUtils.pas | 68 + .../Cliente/uEditorControlBase.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlBase.dfm | 1324 ++++ .../Cliente/uEditorControlBase.pas | 133 + .../Cliente/uEditorControlesBase.dfm | 1394 ++++ .../Cliente/uEditorControlesBase.dfm.cbk | 1394 ++++ .../Cliente/uEditorControlesBase.pas | 167 + .../Cliente/uFormPropiedadesControl.dfm | 384 + .../Cliente/uFormPropiedadesControl.pas | 117 + .../Cliente/uViewAgrupaciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewAgrupaciones.dfm | 135 + .../Cliente/uViewAgrupaciones.pas | 339 + .../ControlesBase/Cliente/uViewColumnas.ddp | Bin 0 -> 51 bytes .../ControlesBase/Cliente/uViewColumnas.dfm | 42 + .../ControlesBase/Cliente/uViewColumnas.pas | 113 + .../Cliente/uViewControlBase.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlBase.dfm | 616 ++ .../Cliente/uViewControlBase.pas | 179 + .../Cliente/uViewControlGrid.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlGrid.dfm | 149 + .../Cliente/uViewControlGrid.pas | 284 + .../Cliente/uViewControlesBase.dfm | 269 + .../Cliente/uViewControlesBase.dfm.cbk | 269 + .../Cliente/uViewControlesBase.pas | 210 + .../ControlesBase/Cliente/uViewFiltros.ddp | Bin 0 -> 51 bytes .../ControlesBase/Cliente/uViewFiltros.dfm | 115 + .../ControlesBase/Cliente/uViewFiltros.pas | 197 + .../Cliente/uViewParametrosControlGrid.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosControlGrid.dfm | 3 + .../Cliente/uViewParametrosControlGrid.pas | 82 + .../Cliente/uViewPeriodoFechas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewPeriodoFechas.dfm | 174 + .../Cliente/uViewPeriodoFechas.pas | 203 + .../ControlesBase/Cliente/uViewSumarios.ddp | Bin 0 -> 51 bytes .../ControlesBase/Cliente/uViewSumarios.dfm | 115 + .../ControlesBase/Cliente/uViewSumarios.pas | 325 + .../ControlesBase/ControlesBaseD10.bdsproj | 658 ++ .../Source/ControlesBase/ControlesBaseD10.dpk | 85 + .../Source/ControlesBase/ControlesBaseD10.drc | 14 + .../ControlesBase/ControlesBaseD10.identcache | Bin 0 -> 2239 bytes .../Source/ControlesBase/ControlesBaseD10.rc | 22 + .../Source/ControlesBase/ControlesBaseD10.res | Bin 0 -> 4748 bytes .../Reglas/schControlesClient_Intf.pas | 209 + .../Reglas/schControlesServer_Intf.pas | 235 + .../Reglas/uBizControlesBase.pas | 80 + .../Servidor/srvControles_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvControles_Impl.dfm | 264 + .../Servidor/srvControles_Impl.pas | 48 + .../Devoluciones/Cliente/Devoluciones.bdsproj | 677 ++ .../Devoluciones/Cliente/Devoluciones.cfg | 45 + .../Devoluciones/Cliente/Devoluciones.dof | 479 ++ .../Devoluciones/Cliente/Devoluciones.dpk | 77 + .../Devoluciones/Cliente/Devoluciones.drc | 14 + .../Cliente/Devoluciones.identcache | Bin 0 -> 947 bytes .../Devoluciones/Cliente/Devoluciones.rc | 22 + .../Devoluciones/Cliente/Devoluciones.res | Bin 0 -> 4748 bytes .../Devoluciones/Cliente/MPCommonLibD10.drc | 23 + .../Cliente/cxVerticalGridVCLD7.drc | 23 + .../Cliente/uDataModuleDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleDevoluciones.dfm | 1639 ++++ .../Cliente/uDataModuleDevoluciones.pas | 87 + .../Cliente/uEditorAjustarDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarDevoluciones.dfm | 944 +++ .../Cliente/uEditorAjustarDevoluciones.pas | 351 + .../Cliente/uEditorListaDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaDevoluciones.dfm | 1708 +++++ .../Cliente/uEditorListaDevoluciones.pas | 356 + .../Cliente/uPluginControllerDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerDevoluciones.dfm | 125 + .../Cliente/uPluginControllerDevoluciones.pas | 73 + .../Cliente/uViewListaDevoluciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaDevoluciones.dfm | 476 ++ .../Cliente/uViewListaDevoluciones.pas | 608 ++ .../Devoluciones/Reglas/uBizDevoluciones.pas | 77 + .../Servidor/srvDevoluciones_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvDevoluciones_Impl.dfm | 1505 ++++ .../Servidor/srvDevoluciones_Impl.pas | 51 + .../FicherosEDI/Cliente/FicherosEDI.bdsproj | 677 ++ .../FicherosEDI/Cliente/FicherosEDI.cfg | 45 + .../FicherosEDI/Cliente/FicherosEDI.dof | 474 ++ .../FicherosEDI/Cliente/FicherosEDI.dpk | 74 + .../FicherosEDI/Cliente/FicherosEDI.drc | 14 + .../Cliente/FicherosEDI.identcache | Bin 0 -> 1531 bytes .../FicherosEDI/Cliente/FicherosEDI.rc | 22 + .../FicherosEDI/Cliente/FicherosEDI.res | Bin 0 -> 4748 bytes .../Cliente/uAsistenteCargaFicheros.ddp | Bin 0 -> 51 bytes .../Cliente/uAsistenteCargaFicheros.dfm | 2769 +++++++ .../Cliente/uAsistenteCargaFicheros.pas | 344 + .../Cliente/uAsistenteEtiquetasMontajes.dfm | 6759 +++++++++++++++++ .../Cliente/uAsistenteEtiquetasMontajes.pas | 99 + .../FicherosEDI/Cliente/uCargarFicheros.pas | 258 + .../Cliente/uDataModuleFicherosEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleFicherosEDI.dfm | 192 + .../Cliente/uDataModuleFicherosEDI.dfm.cbk | 193 + .../Cliente/uDataModuleFicherosEDI.pas | 61 + .../Cliente/uEditorHistorialCargasEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorHistorialCargasEDI.dfm | 147 + .../Cliente/uEditorHistorialCargasEDI.pas | 76 + .../Cliente/uPluginControllerFicherosEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerFicherosEDI.dfm | 601 ++ .../Cliente/uPluginControllerFicherosEDI.pas | 76 + .../FicherosEDI/Cliente/uSubirFicheros.pas | 233 + .../Cliente/uViewHistorialCargasEDI.ddp | Bin 0 -> 51 bytes .../Cliente/uViewHistorialCargasEDI.dfm | 123 + .../Cliente/uViewHistorialCargasEDI.dfm.cbk | 123 + .../Cliente/uViewHistorialCargasEDI.pas | 72 + .../Reglas/schEDILogClient_Intf.pas | 154 + .../Reglas/schEDILogServer_Intf.pas | 167 + .../Modulos/FicherosEDI/Reglas/uBizEDILog.pas | 30 + .../Parametros/Cliente/Parametros.bdsproj | 677 ++ .../Modulos/Parametros/Cliente/Parametros.cfg | 45 + .../Modulos/Parametros/Cliente/Parametros.dof | 479 ++ .../Modulos/Parametros/Cliente/Parametros.dpk | 57 + .../Modulos/Parametros/Cliente/Parametros.drc | 14 + .../Parametros/Cliente/Parametros.identcache | Bin 0 -> 766 bytes .../Modulos/Parametros/Cliente/Parametros.rc | 22 + .../Modulos/Parametros/Cliente/Parametros.res | Bin 0 -> 5056 bytes .../Cliente/uDataModuleParametros.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleParametros.dfm | 214 + .../Cliente/uDataModuleParametros.pas | 78 + .../Cliente/uViewParametrosCentro.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosCentro.dfm | 36 + .../Cliente/uViewParametrosCentro.pas | 91 + .../Cliente/uViewParametrosColeccion.ddp | Bin 0 -> 51 bytes .../Cliente/uViewParametrosColeccion.dfm | 36 + .../Cliente/uViewParametrosColeccion.pas | 91 + .../Reglas/schParametrosClient_Intf.pas | 196 + .../Reglas/schParametrosServer_Intf.pas | 203 + .../Parametros/Reglas/uBizParametros.pas | 49 + .../Servidor/srvParametros_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvParametros_Impl.dfm | 155 + .../Servidor/srvParametros_Impl.pas | 48 + .../Recepciones/Cliente/Recepciones.bdsproj | 679 ++ .../Recepciones/Cliente/Recepciones.cfg | 45 + .../Recepciones/Cliente/Recepciones.dof | 479 ++ .../Recepciones/Cliente/Recepciones.dpk | 84 + .../Recepciones/Cliente/Recepciones.drc | 14 + .../Cliente/Recepciones.identcache | Bin 0 -> 1259 bytes .../Recepciones/Cliente/Recepciones.rc | 22 + .../Recepciones/Cliente/Recepciones.res | Bin 0 -> 4748 bytes .../Recepciones/Cliente/cxVerticalGridD10.drc | 23 + .../Cliente/cxVerticalGridVCLD7.drc | 22 + .../Cliente/dxLayoutControlD10.drc | 23 + .../Modulos/Recepciones/Cliente/rtl.drc | 10 + .../Cliente/uDataModuleRecepciones.dfm | 1830 +++++ .../Cliente/uDataModuleRecepciones.pas | 131 + .../Cliente/uEditorAjustarRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarRecepciones.dfm | 907 +++ .../Cliente/uEditorAjustarRecepciones.pas | 352 + .../Cliente/uEditorListaRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaRecepciones.dfm | 1715 +++++ .../Cliente/uEditorListaRecepciones.pas | 370 + .../uEditorListaRecepcionesAlbaran.ddp | Bin 0 -> 51 bytes .../uEditorListaRecepcionesAlbaran.dfm | 1576 ++++ .../uEditorListaRecepcionesAlbaran.pas | 184 + .../Cliente/uPluginControllerRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerRecepciones.dfm | 756 ++ .../Cliente/uPluginControllerRecepciones.pas | 94 + .../Cliente/uViewListaRecepciones.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaRecepciones.dfm | 513 ++ .../Cliente/uViewListaRecepciones.pas | 595 ++ .../Cliente/uViewListaRecepcionesAlbaran.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaRecepcionesAlbaran.dfm | 262 + .../Cliente/uViewListaRecepcionesAlbaran.pas | 111 + .../Recepciones/RecepcionesGroup.bdsgroup | 24 + .../RecepcionesGroup.bdsgroup.local | 6 + .../Recepciones/Reglas/uBizRecepciones.pas | 85 + .../Servidor/srvRecepciones_Impl.dfm | 2482 ++++++ .../Servidor/srvRecepciones_Impl.pas | 52 + .../Cliente/ReferenciaGenerica.bdsproj | 677 ++ .../Cliente/ReferenciaGenerica.cfg | 45 + .../Cliente/ReferenciaGenerica.dof | 479 ++ .../Cliente/ReferenciaGenerica.dpk | 75 + .../Cliente/ReferenciaGenerica.drc | 14 + .../Cliente/ReferenciaGenerica.identcache | Bin 0 -> 1360 bytes .../Cliente/ReferenciaGenerica.rc | 22 + .../Cliente/ReferenciaGenerica.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleReferenciaGenerica.dfm | 227 + .../Cliente/uDataModuleReferenciaGenerica.pas | 139 + .../uEditorCambioReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uEditorCambioReferenciaGenerica.dfm | 574 ++ .../uEditorCambioReferenciaGenerica.dfm_ | 144 + .../uEditorCambioReferenciaGenerica.pas | 314 + .../uEditorCambioReferenciaGenerica.pas_ | 210 + .../uEditorListaReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uEditorListaReferenciaGenerica.dfm | 1652 ++++ .../uEditorListaReferenciaGenerica.pas | 447 ++ .../uPluginControllerReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../uPluginControllerReferenciaGenerica.dfm | 132 + .../uPluginControllerReferenciaGenerica.pas | 72 + .../Cliente/uViewListaReferenciaGenerica.ddp | Bin 0 -> 51 bytes .../Cliente/uViewListaReferenciaGenerica.dfm | 140 + .../Cliente/uViewListaReferenciaGenerica.pas | 180 + .../schReferenciaGenericaClient_Intf.pas | 913 +++ .../schReferenciaGenericaServer_Intf.pas | 1045 +++ .../Reglas/uBizReferenciaGenerica.pas | 317 + .../Reglas/uBizReferenciaGenericaServer.pas | 145 + .../Servidor/srvReferenciaGenerica_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvReferenciaGenerica_Impl.dfm | 1302 ++++ .../Servidor/srvReferenciaGenerica_Impl.pas | 178 + .../Modulos/Stock/Cliente/Stock.bdsproj | 677 ++ .../Source/Modulos/Stock/Cliente/Stock.cfg | 45 + .../Source/Modulos/Stock/Cliente/Stock.dof | 479 ++ .../Source/Modulos/Stock/Cliente/Stock.dpk | 81 + .../Source/Modulos/Stock/Cliente/Stock.drc | 14 + .../Modulos/Stock/Cliente/Stock.identcache | Bin 0 -> 1499 bytes .../Source/Modulos/Stock/Cliente/Stock.rc | 22 + .../Source/Modulos/Stock/Cliente/Stock.res | Bin 0 -> 4748 bytes .../Stock/Cliente/cxVerticalGridD10.drc | 22 + .../Source/Modulos/Stock/Cliente/teedb.drc | 22 + .../Stock/Cliente/uDataModuleStock.ddp | Bin 0 -> 51 bytes .../Stock/Cliente/uDataModuleStock.dfm | 1209 +++ .../Stock/Cliente/uDataModuleStock.pas | 112 + .../Stock/Cliente/uEditorControlStockEDI.ddp | Bin 0 -> 51 bytes .../Stock/Cliente/uEditorControlStockEDI.dfm | 2230 ++++++ .../Stock/Cliente/uEditorControlStockEDI.pas | 242 + .../Cliente/uEditorControlStockVARELA.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlStockVARELA.dfm | 1716 +++++ .../Cliente/uEditorControlStockVARELA.pas | 134 + .../Stock/Cliente/uPluginControllerStock.dfm | 126 + .../Stock/Cliente/uPluginControllerStock.pas | 97 + .../Stock/Cliente/uViewControGridStockEDI.dfm | 609 ++ .../Stock/Cliente/uViewControGridStockEDI.pas | 220 + .../uViewControGridStockEDIInventario.dfm | 609 ++ .../uViewControGridStockEDIInventario.pas | 224 + .../uViewControGridStockPrendasCentros.dfm | 351 + .../uViewControGridStockPrendasCentros.pas | 199 + .../Cliente/uViewControGridStockVARELA.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridStockVARELA.dfm | 365 + .../Cliente/uViewControGridStockVARELA.pas | 187 + .../Stock/Cliente/uViewFiltrosStock.dfm | 72 + .../Stock/Cliente/uViewFiltrosStock.pas | 111 + .../Stock/Reglas/schStockClient_Intf.pas | 1684 ++++ .../Stock/Reglas/schStockServer_Intf.pas | 1991 +++++ .../Source/Modulos/Stock/Reglas/uBizStock.pas | 58 + .../Modulos/Stock/Servidor/srvStock_Impl.ddp | Bin 0 -> 51 bytes .../Modulos/Stock/Servidor/srvStock_Impl.dfm | 1389 ++++ .../Modulos/Stock/Servidor/srvStock_Impl.pas | 59 + .../Traspasos/Cliente/Traspasos.bdsproj | 677 ++ .../Modulos/Traspasos/Cliente/Traspasos.cfg | 45 + .../Modulos/Traspasos/Cliente/Traspasos.dof | 479 ++ .../Modulos/Traspasos/Cliente/Traspasos.dpk | 82 + .../Modulos/Traspasos/Cliente/Traspasos.drc | 14 + .../Modulos/Traspasos/Cliente/Traspasos.rc | 22 + .../Modulos/Traspasos/Cliente/Traspasos.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleTraspasos.dfm | 1406 ++++ .../Cliente/uDataModuleTraspasos.pas | 87 + .../Cliente/uEditorAjustarTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorAjustarTraspasos.dfm | 725 ++ .../Cliente/uEditorAjustarTraspasos.pas | 288 + .../Cliente/uEditorListaTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorListaTraspasos.dfm | 1607 ++++ .../Cliente/uEditorListaTraspasos.pas | 308 + .../Cliente/uPluginControllerTraspasos.ddp | Bin 0 -> 51 bytes .../Cliente/uPluginControllerTraspasos.dfm | 126 + .../Cliente/uPluginControllerTraspasos.pas | 72 + .../Traspasos/Cliente/uViewListaTraspasos.ddp | Bin 0 -> 51 bytes .../Traspasos/Cliente/uViewListaTraspasos.dfm | 514 ++ .../Traspasos/Cliente/uViewListaTraspasos.pas | 554 ++ .../Traspasos/Reglas/uBizTraspasos.pas | 77 + .../Traspasos/Servidor/srvTraspasos_Impl.ddp | Bin 0 -> 51 bytes .../Traspasos/Servidor/srvTraspasos_Impl.dfm | 1293 ++++ .../Traspasos/Servidor/srvTraspasos_Impl.pas | 51 + .../Cliente/VentasProceso.bdsproj | 677 ++ .../VentasProceso/Cliente/VentasProceso.cfg | 45 + .../VentasProceso/Cliente/VentasProceso.dof | 479 ++ .../VentasProceso/Cliente/VentasProceso.dpk | 74 + .../VentasProceso/Cliente/VentasProceso.drc | 14 + .../Cliente/VentasProceso.identcache | Bin 0 -> 1607 bytes .../VentasProceso/Cliente/VentasProceso.rc | 22 + .../VentasProceso/Cliente/VentasProceso.res | Bin 0 -> 4748 bytes .../Cliente/uDataModuleVentasProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleVentasProceso.dfm | 364 + .../Cliente/uDataModuleVentasProceso.pas | 113 + .../Cliente/uEditorControlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlVentaProceso.dfm | 1716 +++++ .../Cliente/uEditorControlVentaProceso.pas | 241 + .../Cliente/uEditorControlesVentaProceso.dfm | 154 + .../Cliente/uEditorControlesVentaProceso.pas | 40 + .../uPluginControllerVentasProceso.ddp | Bin 0 -> 51 bytes .../uPluginControllerVentasProceso.dfm | 284 + .../uPluginControllerVentasProceso.pas | 73 + .../Cliente/uViewControGridlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridlVentaProceso.dfm | 194 + .../Cliente/uViewControGridlVentaProceso.pas | 351 + .../Cliente/uViewControlVentaProceso.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlVentaProceso.dfm | 148 + .../Cliente/uViewControlVentaProceso.pas | 120 + .../Cliente/uViewControlesVentaProceso.dfm | 2 + .../Cliente/uViewControlesVentaProceso.pas | 24 + .../Reglas/schVentasEnProcesoClient_Intf.pas | 460 ++ .../Reglas/schVentasEnProcesoServer_Intf.pas | 541 ++ .../Reglas/uBizControlVentasProceso.pas | 69 + .../Reglas/uBizVentasProceso.pas | 88 + .../Servidor/srvVentasEnProceso_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvVentasEnProceso_Impl.dfm | 249 + .../Servidor/srvVentasEnProceso_Impl.pas | 135 + .../Cliente/VentasTerminadas.bdsproj | 677 ++ .../Cliente/VentasTerminadas.cfg | 45 + .../Cliente/VentasTerminadas.dof | 474 ++ .../Cliente/VentasTerminadas.dpk | 84 + .../Cliente/VentasTerminadas.drc | 14 + .../Cliente/VentasTerminadas.identcache | Bin 0 -> 2168 bytes .../Cliente/VentasTerminadas.rc | 22 + .../Cliente/VentasTerminadas.res | Bin 0 -> 4748 bytes ...uEditorControlVentasTerminadasCrossTab.dfm | 1611 ++++ ...iewControGridlVentasTerminadasCrossTab.dfm | 204 + .../Cliente/uDataModuleVentasTerminadas.ddp | Bin 0 -> 51 bytes .../Cliente/uDataModuleVentasTerminadas.dfm | 576 ++ .../Cliente/uDataModuleVentasTerminadas.pas | 127 + .../Cliente/uEditorControlResumenVentas.ddp | Bin 0 -> 51 bytes .../Cliente/uEditorControlResumenVentas.dfm | 1700 +++++ .../Cliente/uEditorControlResumenVentas.pas | 156 + .../uEditorControlVentasTerminadas.dfm | 1776 +++++ .../uEditorControlVentasTerminadas.pas | 241 + .../uEditorControlesVentasTerminadas.dfm | 176 + .../uEditorControlesVentasTerminadas.pas | 43 + .../uPluginControllerVentasTerminadas.ddp | Bin 0 -> 51 bytes .../uPluginControllerVentasTerminadas.dfm | 329 + .../uPluginControllerVentasTerminadas.pas | 96 + .../Cliente/uViewControGridResumenVentas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControGridResumenVentas.dfm | 211 + .../Cliente/uViewControGridResumenVentas.pas | 144 + .../uViewControGridlVentasTerminadas.ddp | Bin 0 -> 51 bytes .../uViewControGridlVentasTerminadas.dfm | 278 + .../uViewControGridlVentasTerminadas.pas | 385 + .../Cliente/uViewControlVentasTerminadas.ddp | Bin 0 -> 51 bytes .../Cliente/uViewControlVentasTerminadas.dfm | 248 + .../Cliente/uViewControlVentasTerminadas.pas | 148 + .../uViewControlesVentasTerminadas.dfm | 11 + .../uViewControlesVentasTerminadas.pas | 24 + .../Reglas/schVentasTerminadasClient_Intf.pas | 1331 ++++ .../Reglas/schVentasTerminadasServer_Intf.pas | 1598 ++++ .../Reglas/uBizControlVentasTerminadas.pas | 65 + .../Reglas/uBizInformesVentas.pas | 82 + .../VentasTerminadas/Reglas/uBizVentas.pas | 115 + .../Reglas/uBizVentasTerminadas.pas | 158 + .../Servidor/srvVentasTerminadas_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/srvVentasTerminadas_Impl.dfm | 445 ++ .../Servidor/srvVentasTerminadas_Impl.pas | 210 + .../Source/Servidor/AdminPV_Server.bdsproj | 678 ++ .../Varela/Source/Servidor/AdminPV_Server.cfg | 45 + .../Varela/Source/Servidor/AdminPV_Server.dof | 480 ++ .../Varela/Source/Servidor/AdminPV_Server.dpr | 73 + .../Varela/Source/Servidor/AdminPV_Server.drc | 2579 +++++++ .../Source/Servidor/AdminPV_Server.identcache | Bin 0 -> 7940 bytes .../Varela/Source/Servidor/AdminPV_Server.rc | 26 + .../Varela/Source/Servidor/AdminPV_Server.res | Bin 0 -> 23588 bytes .../Servidor/Configuracion/uConexionBD.ddp | Bin 0 -> 51 bytes .../Servidor/Configuracion/uConexionBD.dfm | 101 + .../Servidor/Configuracion/uConexionBD.pas | 90 + .../Configuracion/uConfFicherosEDI.ddp | Bin 0 -> 51 bytes .../Configuracion/uConfFicherosEDI.dfm | 129 + .../Configuracion/uConfFicherosEDI.pas | 102 + .../Servidor/Configuracion/uConfGeneral.ddp | Bin 0 -> 51 bytes .../Servidor/Configuracion/uConfGeneral.dfm | 39 + .../Servidor/Configuracion/uConfGeneral.pas | 52 + .../Servidor/Configuracion/uConfiguracion.ddp | Bin 0 -> 51 bytes .../Servidor/Configuracion/uConfiguracion.dfm | 214 + .../Servidor/Configuracion/uConfiguracion.pas | 105 + .../Configuracion/uFrameConfiguracion.dfm | 10 + .../Configuracion/uFrameConfiguracion.pas | 30 + .../Varela/Source/Servidor/EDI/EDI_INVRPT.pas | 195 + .../Source/Servidor/EDI/EDI_Log_Impl.ddp | Bin 0 -> 51 bytes .../Source/Servidor/EDI/EDI_Log_Impl.dfm | 169 + .../Source/Servidor/EDI/EDI_Log_Impl.pas | 73 + .../Varela/Source/Servidor/EDI/EDI_Reader.pas | 109 + .../Varela/Source/Servidor/EDI/EDI_SLSRPT.pas | 284 + .../Source/Servidor/EDI_Inventary_Impl.dfm | 7 + .../Source/Servidor/EDI_Inventary_Impl.pas | 52 + .../Varela/Source/Servidor/EDI_Log_Impl.dfm | 179 + .../Varela/Source/Servidor/EDI_Log_Impl.pas | 75 + .../Varela/Source/Servidor/EDI_Sales_Impl.dfm | 7 + .../Varela/Source/Servidor/EDI_Sales_Impl.pas | 52 + Varela/Varela/Source/Servidor/EDI_Utils.pas | 40 + .../Source/Servidor/RDX_VARELA.daConnections | 1 + .../Source/Servidor/RDX_VARELA.daDictionary | 1 + .../Source/Servidor/RDX_VARELA.daSchema | 35 + Varela/Varela/Source/Servidor/RODLFILE.res | Bin 0 -> 18469 bytes Varela/Varela/Source/Servidor/RegExpr.pas | 4042 ++++++++++ .../EDI_Inventary/EDI_Inventary_Impl.ddp | Bin 0 -> 51 bytes .../EDI_Inventary/EDI_Inventary_Impl.dfm | 16 + .../EDI_Inventary/EDI_Inventary_Impl.pas | 139 + .../schEDIInventaryClient_Intf.pas | 742 ++ .../schEDIInventaryServer_Intf.pas | 855 +++ .../EDI_Inventary/uBizEDIInventary.pas | 323 + .../uDataModuleEDI_Inventary.ddp | Bin 0 -> 51 bytes .../uDataModuleEDI_Inventary.dfm | 1061 +++ .../uDataModuleEDI_Inventary.pas | 318 + .../Services/EDI_Sales/EDI_Sales_Impl.ddp | Bin 0 -> 51 bytes .../Services/EDI_Sales/EDI_Sales_Impl.dfm | 17 + .../Services/EDI_Sales/EDI_Sales_Impl.pas | 143 + .../Services/EDI_Sales/EDI_Sales_Types.pas | 9 + .../EDI_Sales/schEDISalesClient_Intf.pas | 1948 +++++ .../EDI_Sales/schEDISalesServer_Intf.pas | 2329 ++++++ .../Services/EDI_Sales/uBizEDISales.pas | 476 ++ .../EDI_Sales/uDataModuleEDI_Sales.ddp | Bin 0 -> 51 bytes .../EDI_Sales/uDataModuleEDI_Sales.dfm | 2699 +++++++ .../EDI_Sales/uDataModuleEDI_Sales.pas | 483 ++ .../Servidor/Services/Login/srvLogin_Impl.ddp | Bin 0 -> 51 bytes .../Servidor/Services/Login/srvLogin_Impl.dfm | 99 + .../Servidor/Services/Login/srvLogin_Impl.pas | 135 + .../srvTransfereciaFicheros_Impl.ddp | Bin 0 -> 51 bytes .../srvTransfereciaFicheros_Impl.dfm | 6 + .../srvTransfereciaFicheros_Impl.pas | 104 + Varela/Varela/Source/Servidor/VARELA.RODL | 378 + Varela/Varela/Source/Servidor/VARELA_Intf.pas | 1079 +++ Varela/Varela/Source/Servidor/VARELA_Invk.pas | 707 ++ .../Source/Servidor/cxVerticalGridD10.drc | 23 + Varela/Varela/Source/Servidor/fServerForm.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Servidor/fServerForm.dfm | 1069 +++ Varela/Varela/Source/Servidor/fServerForm.pas | 103 + .../Source/Servidor/srvInformes_Impl.ddp | Bin 0 -> 51 bytes .../Source/Servidor/srvInformes_Impl.dfm | 331 + .../Source/Servidor/srvInformes_Impl.pas | 48 + Varela/Varela/Source/Servidor/uAcercaDe.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Servidor/uAcercaDe.dfm | 959 +++ Varela/Varela/Source/Servidor/uAcercaDe.pas | 47 + .../Source/Servidor/uDataModuleServer.ddp | Bin 0 -> 51 bytes .../Source/Servidor/uDataModuleServer.dfm | 96 + .../Source/Servidor/uDataModuleServer.pas | 364 + .../Source/Servidor/uSchemaUtilsServer.pas | 161 + .../Varela/Source/Usuarios/Usuarios.bdsproj | 677 ++ Varela/Varela/Source/Usuarios/Usuarios.cfg | 45 + Varela/Varela/Source/Usuarios/Usuarios.dof | 471 ++ Varela/Varela/Source/Usuarios/Usuarios.dpk | 50 + Varela/Varela/Source/Usuarios/Usuarios.drc | 14 + .../Source/Usuarios/Usuarios.identcache | Bin 0 -> 631 bytes Varela/Varela/Source/Usuarios/Usuarios.rc | 22 + Varela/Varela/Source/Usuarios/Usuarios.res | Bin 0 -> 4748 bytes .../Source/Usuarios/uCambiarPassword.dfm | 94 + .../Source/Usuarios/uCambiarPassword.pas | 41 + .../Source/Usuarios/uDataModuleUsuarios.ddp | Bin 0 -> 51 bytes .../Source/Usuarios/uDataModuleUsuarios.dfm | 132 + .../Source/Usuarios/uDataModuleUsuarios.pas | 117 + Varela/Varela/Source/Usuarios/uLoginForm.ddp | Bin 0 -> 51 bytes Varela/Varela/Source/Usuarios/uLoginForm.dfm | 784 ++ Varela/Varela/Source/Usuarios/uLoginForm.pas | 100 + Varela/Varela/Source/Usuarios/uUsuario.dfm | 123 + Varela/Varela/Source/Usuarios/uUsuario.pas | 39 + Varela/Varela/Source/Usuarios/uUsuarios.dfm | 119 + Varela/Varela/Source/Usuarios/uUsuarios.pas | 89 + Varela/Varela/Source/leeme.txt | 5 + Varela/Varela/Source/uDADataTable.pas | 4645 +++++++++++ 807 files changed, 167699 insertions(+) create mode 100644 Varela/Varela/Build/Build.fbl5 create mode 100644 Varela/Varela/Build/Build.fbp5 create mode 100644 Varela/Varela/Build/Build.fbv create mode 100644 Varela/Varela/Build/Build.fbw create mode 100644 Varela/Varela/Build/buildlog.html create mode 100644 Varela/Varela/Database/1 - tablas.sql create mode 100644 Varela/Varela/Database/2.1 - vistas inventario.sql create mode 100644 Varela/Varela/Database/2.2 - vistas ventas.sql create mode 100644 Varela/Varela/Database/2.3 - vistas stock.sql create mode 100644 Varela/Varela/Database/3 - procedimientos.sql create mode 100644 Varela/Varela/Database/ANTERIOR/Script Datos.sql create mode 100644 Varela/Varela/Database/ANTERIOR/Script Tablas.sql create mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql create mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql create mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas.sql create mode 100644 Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL create mode 100644 Varela/Varela/Database/__Script mejoras.sql create mode 100644 Varela/Varela/Lib/midas.dll create mode 100644 Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 create mode 100644 Varela/Varela/Resources/Iconos/CargaEDI.ico create mode 100644 Varela/Varela/Resources/Iconos/Cliente.ico create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/24x24/Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Delete.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/History.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/History.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/History.png create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/cargar.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/09378.bmp create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/09378.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/About.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Back.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Box-Open-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Card-Copy.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Cell-Format.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Clear.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Copy.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Cut.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Dates-Adjust.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Watch.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Delete.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Details-Hide.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Exit.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Format-Font.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Grid-Select Column.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Home.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/New.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Collapse.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Expand.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Up.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Plus.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Preview.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Print-Options.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Print.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Refresh.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Save.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Search.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Speaking-Start.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Título-capítulo.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/View-One Page.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/View-Page Width.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Warning.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-Out.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-Next-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-first-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-last-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/About.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Back.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Box-Open-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Card-Copy.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Cell-Format.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Cut.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Watch.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Delete.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Details-Hide.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Exit.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Filter.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Grid-Select Column.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Home.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Down.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Plus.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Print-Options.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Print.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Refresh.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Save.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Search.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Select All.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Speaking-Start.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Sum-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/View-Page Width.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Warning.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Next-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Previous-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Box-Open-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Card-Copy.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Filter.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Home.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Outline-Move Down.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Outline-Move Up.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Speaking-Start.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Sum-2.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Table-Search.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Warning.png create mode 100644 Varela/Varela/Resources/Iconos/Generales/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/Insert.png create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Label-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/24x24/Label-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Servidor.ico create mode 100644 Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png create mode 100644 Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png create mode 100644 Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Servidor/28x28/Database.png create mode 100644 Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Stock/16x16/Task.png create mode 100644 Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Stock/24x24/Task.png create mode 100644 Varela/Varela/Resources/Iconos/Stock/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Stock/28x28/Task.png create mode 100644 Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Entrada.png create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Swap.png create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/24x24/Swap.png create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png create mode 100644 Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/Users.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Password.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/Users.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Password.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/Users.png create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Usuarios/48x48/Users.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Currency-Notes.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Currency.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Report.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Venta terminada.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency-Notes.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Report.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Thumbs.db create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency-Notes.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png create mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db create mode 100644 Varela/Varela/Resources/Imagenes/Cabecera.jpg create mode 100644 Varela/Varela/Resources/Imagenes/Cabecera.psd create mode 100644 Varela/Varela/Resources/Imagenes/Thumbs.db create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1023.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1025.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1027.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1032.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP create mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db create mode 100644 Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd create mode 100644 Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png create mode 100644 Varela/Varela/Source/AdminPVGroup.bdsgroup create mode 100644 Varela/Varela/Source/AdminPVGroup.bdsgroup.local create mode 100644 Varela/Varela/Source/AdminPVGroup.bpg create mode 100644 Varela/Varela/Source/Base/BaseD10.bdsproj create mode 100644 Varela/Varela/Source/Base/BaseD10.dpk create mode 100644 Varela/Varela/Source/Base/BaseD10.drc create mode 100644 Varela/Varela/Source/Base/BaseD10.identcache create mode 100644 Varela/Varela/Source/Base/BaseD10.rc create mode 100644 Varela/Varela/Source/Base/BaseD10.res create mode 100644 Varela/Varela/Source/Base/uBizInformesBase.pas create mode 100644 Varela/Varela/Source/Base/uConfigurarConexion.dfm create mode 100644 Varela/Varela/Source/Base/uConfigurarConexion.pas create mode 100644 Varela/Varela/Source/Base/uDBSelectionList.pas create mode 100644 Varela/Varela/Source/Base/uDataModuleBase.dfm create mode 100644 Varela/Varela/Source/Base/uDataModuleBase.pas create mode 100644 Varela/Varela/Source/Base/uDataTableUtils.pas create mode 100644 Varela/Varela/Source/Base/uEditorBase.dfm create mode 100644 Varela/Varela/Source/Base/uEditorBase.pas create mode 100644 Varela/Varela/Source/Base/uEditorDBBase.ddp create mode 100644 Varela/Varela/Source/Base/uEditorDBBase.dfm create mode 100644 Varela/Varela/Source/Base/uEditorDBBase.pas create mode 100644 Varela/Varela/Source/Base/uEditorDBItem.ddp create mode 100644 Varela/Varela/Source/Base/uEditorDBItem.dfm create mode 100644 Varela/Varela/Source/Base/uEditorDBItem.pas create mode 100644 Varela/Varela/Source/Base/uEditorGridBase.dfm create mode 100644 Varela/Varela/Source/Base/uEditorGridBase.pas create mode 100644 Varela/Varela/Source/Base/uEditorItem.dfm create mode 100644 Varela/Varela/Source/Base/uEditorItem.pas create mode 100644 Varela/Varela/Source/Base/uEditorPSPreview.dfm create mode 100644 Varela/Varela/Source/Base/uEditorPSPreview.pas create mode 100644 Varela/Varela/Source/Base/uEditorPreview.dfm create mode 100644 Varela/Varela/Source/Base/uEditorPreview.pas create mode 100644 Varela/Varela/Source/Base/uEditorUtils.pas create mode 100644 Varela/Varela/Source/Base/uExceptions.pas create mode 100644 Varela/Varela/Source/Base/uGridUtils.pas create mode 100644 Varela/Varela/Source/Base/uIntegerList.pas create mode 100644 Varela/Varela/Source/Base/uSysFunc.pas create mode 100644 Varela/Varela/Source/Base/uViewBarraSeleccion.dfm create mode 100644 Varela/Varela/Source/Base/uViewBarraSeleccion.pas create mode 100644 Varela/Varela/Source/Base/uViewBase.dfm create mode 100644 Varela/Varela/Source/Base/uViewBase.pas create mode 100644 Varela/Varela/Source/Base/uViewGrid.dfm create mode 100644 Varela/Varela/Source/Base/uViewGrid.pas create mode 100644 Varela/Varela/Source/Base/uViewGridBase.ddp create mode 100644 Varela/Varela/Source/Base/uViewGridBase.dfm create mode 100644 Varela/Varela/Source/Base/uViewGridBase.pas create mode 100644 Varela/Varela/Source/Base/uViewPreview.dfm create mode 100644 Varela/Varela/Source/Base/uViewPreview.pas create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.cfg create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.dof create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.dpr create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.drc create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.identcache create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.rc create mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.res create mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.ddp create mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.dfm create mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.pas create mode 100644 Varela/Varela/Source/ClearFiles.msbuild create mode 100644 Varela/Varela/Source/Cliente/AdminPV.bdsproj create mode 100644 Varela/Varela/Source/Cliente/AdminPV.cfg create mode 100644 Varela/Varela/Source/Cliente/AdminPV.dof create mode 100644 Varela/Varela/Source/Cliente/AdminPV.dpr create mode 100644 Varela/Varela/Source/Cliente/AdminPV.drc create mode 100644 Varela/Varela/Source/Cliente/AdminPV.identcache create mode 100644 Varela/Varela/Source/Cliente/AdminPV.rc create mode 100644 Varela/Varela/Source/Cliente/AdminPV.res create mode 100644 Varela/Varela/Source/Cliente/uAcercaDe.dfm create mode 100644 Varela/Varela/Source/Cliente/uAcercaDe.pas create mode 100644 Varela/Varela/Source/Cliente/uMenuUtils.pas create mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp create mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm create mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.pas create mode 100644 Varela/Varela/Source/Cliente/uSplash.ddp create mode 100644 Varela/Varela/Source/Cliente/uSplash.dfm create mode 100644 Varela/Varela/Source/Cliente/uSplash.pas create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.bdsproj create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.cfg create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.dof create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.dpk create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.drc create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.rc create mode 100644 Varela/Varela/Source/Configuracion/Configuracion.res create mode 100644 Varela/Varela/Source/Configuracion/uPanelControl.dfm create mode 100644 Varela/Varela/Source/Configuracion/uPanelControl.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc create mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.res create mode 100644 Varela/Varela/Source/ControlesBase/Reglas/schControlesClient_Intf.pas create mode 100644 Varela/Varela/Source/ControlesBase/Reglas/schControlesServer_Intf.pas create mode 100644 Varela/Varela/Source/ControlesBase/Reglas/uBizControlesBase.pas create mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.ddp create mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm create mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.ddp create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm create mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas create mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.rc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.res create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/cxVerticalGridD10.drc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/cxVerticalGridVCLD7.drc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/dxLayoutControlD10.drc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/rtl.drc create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup create mode 100644 Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/cxVerticalGridD10.drc create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/teedb.drc create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.ddp create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas create mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uEditorControlVentasTerminadasCrossTab.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm create mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.cfg create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.dof create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.dpr create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.drc create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.identcache create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.rc create mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.res create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm create mode 100644 Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas create mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas create mode 100644 Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/EDI_Log_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/EDI_Utils.pas create mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daConnections create mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary create mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daSchema create mode 100644 Varela/Varela/Source/Servidor/RODLFILE.res create mode 100644 Varela/Varela/Source/Servidor/RegExpr.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas create mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/VARELA.RODL create mode 100644 Varela/Varela/Source/Servidor/VARELA_Intf.pas create mode 100644 Varela/Varela/Source/Servidor/VARELA_Invk.pas create mode 100644 Varela/Varela/Source/Servidor/cxVerticalGridD10.drc create mode 100644 Varela/Varela/Source/Servidor/fServerForm.ddp create mode 100644 Varela/Varela/Source/Servidor/fServerForm.dfm create mode 100644 Varela/Varela/Source/Servidor/fServerForm.pas create mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.ddp create mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.dfm create mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.pas create mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.ddp create mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.dfm create mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.pas create mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.ddp create mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.dfm create mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.pas create mode 100644 Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.bdsproj create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.cfg create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.dof create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.dpk create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.drc create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.identcache create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.rc create mode 100644 Varela/Varela/Source/Usuarios/Usuarios.res create mode 100644 Varela/Varela/Source/Usuarios/uCambiarPassword.dfm create mode 100644 Varela/Varela/Source/Usuarios/uCambiarPassword.pas create mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp create mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm create mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas create mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.ddp create mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.dfm create mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.pas create mode 100644 Varela/Varela/Source/Usuarios/uUsuario.dfm create mode 100644 Varela/Varela/Source/Usuarios/uUsuario.pas create mode 100644 Varela/Varela/Source/Usuarios/uUsuarios.dfm create mode 100644 Varela/Varela/Source/Usuarios/uUsuarios.pas create mode 100644 Varela/Varela/Source/leeme.txt create mode 100644 Varela/Varela/Source/uDADataTable.pas diff --git a/Varela/Varela/Build/Build.fbl5 b/Varela/Varela/Build/Build.fbl5 new file mode 100644 index 0000000000000000000000000000000000000000..dd58805fdeab2a06bd1ab29789e2cd5a94d5b18e GIT binary patch literal 2621440 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

t=9^YF>Vr;Ev|dim3FPk)bkGt4i5FB3--D6 z0f{8~ow#o103YArAia`IpM>b{j$;Jg*NWdI;bVjhr_at1-q#wRaN&I|eRQQH375B{ zzl!@>+P5mduYIogc|+~xP5hcwZf4Rn<1;8)kIxJhxs$|II>No=DsbERLq5-ZiQm~T z_m2drd7gQcwb*CzVbII{or|3888I1jXO(no&IJ14p6#udUy;vJ*nRGqJ_{^PNak2` zGI==7eC>BB{R%U&B~>_f)x3fx9f8hNy~V4QM0aih9k1*oq)AWvgvPJ;)e~Q zvv1eBKvvS&vc5J_=C_YzAU!9;k2hnG&#dj>|CR53oGi?sV8N7?X&`TdU9uXfE zPwz}~=sd<%dL7lT5ZkV68$Zt}JQzg#;~hTTFRx5QTH>tfnYmV7sy1RV<0=Jr__l{b z_G>3L`1*{RsxSEhqkim?U&d6=UE&MUwGg_5-M^Z#!3)2dfs4J;UL*UxOB}?gDVsuH z@=!_5$-K>2MTfBg!2;xfI;}M^9HCyZn!y zt}wH^j-JXecDWusm09lcJbEhA(B-$UzQWk$fAn;Pfs4H?me|CYPM^>XeYJ1aJAUQO_+05_ooR70Pv4>+EG@P;N}XGUHxRCbR^tsssgoDmOs<({q&tsOORf1D zI^?@}% z#WD$9{)eS5#&+KuMHd4Xdk0Y7Zxmh3?cO(vu7`H_8$}nB7u!sfct*xqQ_|=Zc3ybu zoH(oemadcUS`XJoDtb&K4!^D0ad~OhobFNL=JDbK)%3xC`=1TD%I|huTqEvz1MF&8 zx4oBiF|d2zmi>PUeerEsY+^cnm7#o3HMnTn-Jz4LS>mTy=-VaQhMJt2EiT{1S#5QN z-uGtxb8VIr+FGSl)(IDFE9vPVy)3a-x4lk2hFcl6|9 zW_KSwl|gK`96eoeZg(6#l}YIG-&eaB+kHn*E(R|4vRK|nPcG(m@6nU%q1}D-vq${sx#5icjWI!8~g$9CV*lZ%<%ee_fY zvE6d?bj7*dar9Isq04_??P6^A9X+`ixY)~Lc^^HwnA^QaPp*e{_tBG!$%}0!*UU50 zJx5Qr-*L4+a?&csuf8dJ^i-Kr|}9@~9KPp)Tn>lYnejP34&zA}jImV>@4&h3ta zzA_12{x2~u#&+L9pNoNuy_%QzL7$7c-FwjIdT4ha^tqV4*k*FgJR`4xgFbbRorWf6 z(+BeCuE&n2`i!!&$Errc%L#ss`gVxzzGGDvRlED3uMA?l<)H71bGzf9uS`Oh|4WRE zvE6sj=VIVuujb`_(C1=q_a5}Q9@^apeJ&<1wwYWr&qyZ+eSZFd{vmM1t-^|EK7@3%DO-oD&&r3~9w*9yJ@$<`bK)--drHHE&bmYqqrW{$Ha zCetl@wf=1L$i%cf>v;3zM7k|Va`#%*2U=%SRJy06xZ{Uae8J7!(;Pn}diW?yTvUR7 zBj$wg$oPbS?mh{0Tk7n@?Ab1E*H_}@k|ODqei*NtR?LZs>}j4G5)v62 z6dK{{9qk+H=k4no8Q^UR3XJyl@d@w=4f6L3^o?YHS zx2+|4hxD?1zWo=rvmIVy-@yYLU;}J`4X^<=zy{a=8(;%$fDNz#Hoykh02^QfY=8~0 z0XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=aJ3C=_}^zA9sDTmqb)~P9|<{WLf1tr*vB+^Nw=N9T^7GJN##-{QmKeBurc+dFLZu!Nz5hMpR7bV%-y+Y_@yB_VlzjJcuQ(i~Ca=p%XIMrc6hpO$*x4XApleSgc zZfw)Z+{C=Ibx5mDt@gF--y)>Nk>>rIg)}?Tv`N#dO*b|<)%a-R+{U{bZD|zQD4@}y z>y9@()G)1KLc{Y7PBm!KpkjmH>bI|7x4xYkC%Vobov8vCm_t#|DoT9yfZVd5rex?-Ah9-lMLE$>Xf)Gt++4 zZqr87y{3FqmMOtB$P{AgWNK(isADo6GNsdo5Ieg6;6~JbwdUeh;bFRtIu(O2R`_3R zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=zy{a=8(;%$ zfDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_U;}J`4X^<=@Lx8NPJdkN z=*a$!sXe`>_+J`tiZfj>h6=?;xJ2cy2AyZ*{#7md?qds<_3T@}MoFXRKl|0VKMouW zH@#?UFL;mo+^FCvKfmzcAn!n*;6U$y=zvh~5WmnsZ@;MMP~Xt- zK!4xh$eZNodMoB49*#rBPUlVaUcSq8`rw2C+dlPsVfkOvA9EbT*317palFVUTam9K zA(2lQ5v?4`I^WuQSry(}QE9*d_uw_eSJehi~195Lp&S@;qS{e3!fTN zVV7miiWw^wCD%UcIEJm4pZ=K5-|Mzk-S|_D`r)lkjPg}Z}l;+AfKGW#hfDFbw9RfHs?&2 zfloi?-Dlf{?XSwQ?A!dbw`}=tw6!8%O&USu6Hh47%E5Jiat@C9T2@&3-K?z#V%GmY zcF}8I$A6GxIkb;QC2Icm+FFsXHjN;1)zVuzep%=9nECO6J#XF_z4M+o{#^L|(Uo#J z_HF*N8*KSrw6!8%T|HMFy_Msab-sc(KAjr;%d(h<-nujDk4FEtlFPAg^9MGXr0xGU zbXVQzJWg8mQa6s{ssgEd51?k~#EKR7VZ->>NN zSFBUwR`@IMLj33|lY1%5y2&`ptP+Yel|>gv9!7ptrU$ zU48yK-@m-ps@1cVx2>^kw>+^e=HYc>cUF9ubJUh^=rOGoe`+HdOXQOeIgxAr#NJ-M z_FeQS{4FWGKJna|I?=b@cH-FGo=fM-1=(=iFbe zXN#dbcYiQ={g(QVAD{iri*h**?a>Rie90B3i1jSiZ!;P}No$Bh2O_`R39RjW8dbRn`^mD&)Qm%uZ5mVY_M0;-{N)Oe)G*cO$RROaV%(mzshgg z=Q94?W{54{8@5*D6Hj!JtEJw`am(6YorjOE8RXR^e6L44OKj(#H^}AKxA|YLvE|EM zYph>0jUe*1)>~?{p{(W@b!)e3XS#-@D29y4iBLJ`1<+yMf(N#1p0;qUjF`X?4}{V5B#a) zfCp2m&+NDO_-?rzhjyHwmd`ZL){1=X^<3@rR*vslKIhNhopZl_qUAkxB5&W4*tcP1 zBcY@C@XgIOe`js2$k&m^68<{qt(>T=k57-JG=F>k&HXIPUwZEBFQc9~B$s2~<{x>% z=I=LKEAn;Hb9w2l9KWpd-I)48>m7B^51JR6(dgEF!wG`Xm~pOo%D~tM-mALC)Wh6UF2|w$U{0F${79dxwIW|PJy%z~mE)K7^S9}d zTU$<9U3Ji^8$u@f_Udnu%dv0sf7z?$GA(@3$k$!Z<*m1J{IbsXdvr|ZzfJNZ7EG>_ zzkm80zsTj-xA~7$OBeo3KGn5W`18?o_0U^6ep%;xZgKqZl%cI+_qMC|Oy|lC`^)7x zv~_0N@-?=#BA=h0%U5sZ_#Nklga?HLga`O|2ZRUvc?U!W26~5w`}lhMg@if# zqQirW?*E+cUn2Iu75K+?uka?e=^D869G= zc!&B0M0p1U23Wi;5%iy+;HZ#5zexY6a7(fEOEWZvi~kn+3e#S@*K>T+{wrU<_s%C@ zOi49Hv-?N>zGb$2BTm{{nnf?-B44Q9%F${67Z~ju=@%H~9TXK#ufNegk=`NU(NW&v z!GZqazLeb(5iYksu{#rU5wAva)3VD~^}H#?GNE3#2RiiMG-pX$Yn2A#bX2h+zv~Or zwf&#Jtrf@j*V9;H&b{?kPSkO(Z%{a$#0c@Dqk@14?|>)^{VOum-$K|r>fetYwAZvY`_;F;9xj*T(0;R2%awn2pOG(GpL3+%%JECL{YB|hJKz4o zwkG#Z?zCgbo;7}NdyKpJZMhu#HvhNkdD`~ZCS7aADu~hN+)r=i_#Nl^hlED?2hv%! z0NT{N1A_d5==@r6w0C%PM3hfNh<|i=r1AU^F9%{Rh*u-=N+bry_4{agz>=^Diw16< zb@3i75nE{ea?gRR*qlR`{%6%KgaZmyEXc$h)v^~o&I@} zT#iGV-MW&u>YFwJiSj@nK)|x~}By zFQ;Q|ZTovnZ|Tn+t-NVJdAll@2k%*5)i>y99q|VhA3h&hM|*xuAEmXzUm}eq z@=erRYP6wr`NZZf=HfixlD<_goT!yPXzlo^CtBv+JJYrl$N%Pc*8+fibos3M)XwvLHn+y;1$SmzHl5toYv~YQ@wT@3aBxOl?fEflrmdxXDKwV&%O~rt zoTzm9rsz{U&zBoN@97;UXAOSF>N#%sH~-9&%dv0sJM^lj<*VD<)>6Ky`kci9t;i{d z(&d{*li~II!R}MFJ05NrzTP9W#`S>@w2{lPZ}TSw)YrDZ%7I!d)~`5_6?0D0TRDE| z@@42#JNNfuiyHTy`(IeU#Up1Q8h`(FAIjy}xA{3Y+w#@9#mJYX&pA_X<@lw`H(j6F zdA_)YU!NcQ*SP^N)ZN~r&Rbnh$mKY+b04tfYP`!E+2PK}LG`;>=18x0|`dn+p`kkTAIq!<{iQNU>{yuKn^qm94Cih?M zGcPy4@xnJ~f?`Ad^sNoG=Z9&Vt)+akX)H14S$ZocDxJSM`qa+-nJmZl?|<${^vc*8 z<~PHi{Yfszq20OgI?dmNMOrKT-Kfu5Trd$iSrwR3+RDo4(_yXnb+J0J1gKW;}Mb?e&~dIMC^#U<5+3Aj@e${TEKvd8mhh-3Z{OfRpMXHW zh>&0(J>=J#vPJCK(6h+K|+n;(8x z6V2b)^|qGs-K)>}9=(<0moDE*eQM|VYMlP=>*SP;kvrV%6FeW=T&+u$1h#J)%w)V&kxP~wBf0YKeA%iSL@$t=HksA<#HU_ia#|Mx$+lY z*Fxr7qtE$%y_MtB`3=ADpa?(TP&%O&L?>bV{r&0GWKe*2WOQVtZ)B7uA~Y~U?qAmG zQ&*!_WE2Da@%m7a&aZv8a!mU%kNzFAs#$X5sJ&j|v~uyG+1IvQZS|IBv5v+PTlNEb zD<>*lJ~`FJOb+?z{rTh_TW+!3R%ys{k0;-;z5BF7atix4{~b$9&EJQ%R{V(%(g-5o zdcBq7mvz1+t4}s;cxGz!?JtDq-#ovYI2~1N$d6p6CA_9@@m@q`zx z97^~6kW-0syW%-42Aa7(i1YVH&yGB_ymQZl0?8cO;g#BJ`I2kfTAIb9 zG=j*rNpI!&r8|DvtWWKH|1z@D%v|f8=VErmHXX5c{_=xzIreS-+IzKJ`Q7&$`L^nF z-lDg1d^-O}XY4Kh;`&EOWVm-gNJKbYUkJ6(=MzJs>64$9fPjE#`TTuMpSlLM)%97} z`J?CWu%@4lo9%yh_>7rH!?EV+u|1;N!Q<^=+G)C#Nz8~9KSrSPu-Z>M*1uq^HtbTaG>&g zXGJK+rxuGXzG$)k+r8+U z(eEZ78Tf+dO`i;#HK@e*NBI-$^w9FPOwn4A?`eI`Pw6c++EBWD;&4R#mCo~xTis`N z{;l=G*1!DS!BugdVs}=2cq}MT%eQ%}){3Xtvow~NvpC=utsFYe4UeR&TcJ_(sgkGw ze>y%5rz6#pHnLT#L_K&#ZpZD*3Cg^tY zcCq-dvO$pcyy!etYsLEALt}}2;)0lHipt}{DBKM ze79xt{at%Hj-mI?Rs8$BxW2Gtt=5WsFA)-Reo=4rF|)R3xd+ZfJXYAR zTJK%&{Z`@vb{sCy^4%8ouV_WSS7=0$?`6HE<_ZSq`G%eu_re#ocf~wXJ@v&s^W(({ zhhjs1`==}XCH$?dUQx6n-)l6M$oHz=7MrM41?TyW?SG=`U6ngTKiML3?XR~^=vUHg z^PlTlS>($9dA`<)eEalVuj_3|(_MbedA{9Gx4ZTH{GTj$9r?6N8`B$qhEynFt{*;I zuR!>#zQ@+mC~wk3_!B2=L@Nh+enf=^MMMW#ydy0>V*e6F*9Rk_BfJBn1ETx`LP8__ zf{oX=w`ejkbtQUK)Mr6|ygrEM$7?^nKXd8MyTg`ldAH)0eLF|>Eh*pOqqbaiJ~Q&Y zP4f_Q-mka%EK7O)=pB7(=lhp`HoiZ%|H4h-_fHu3RP1-ZO^hii-~Pe|!e9QLiVZc7 zG*@vTA@Uv2TWYkSbo-ZgX&NyX=lR-o^uG`{X6wLtryKnI!=`_t<4ekSUnebBeqL82 z-~0NU-_u)aw4rqQ#Nj&5H(Z~us?7*hgXy_ODxPnY;`v4^o^Ooe`Nk@qZ=B-!5){uj zUh#Z4D4tJz0zlDs(8L> ziswsHJYTxv`7#vGm#KKZEXDJQPvEIMh|lk-Jmjbxj?+q2pR-nZ$X7WWWxG}J zeDf5~H(&953lz_Ho8tLyS3KWB#q%vvJl|r)^WC9%z9ow1TdH`zI~C7Y;s@qG6yo^Orf`PM3) z?*Ya0ty4T-$zO<4C$#t;s>;I#mBUfChZN8Eu;Te1Q9R#9#q(`aJl~^==i97!zAcL9 z6W=3Od3a3aaFk7azg^`)d=FpcL43ns<>3jH!%;TzI|eEb;ujKB9>nh}s62?@flzr6 zzc8Wluv6u5lpeo;K%uZrjUP4RrcE1vHU#q<5Cc)s(B=le_Xe19vR?;pkU6)2wXU&ZqkDxU9x z;`!`u$Esvf4-X|{8KFEC&sRb5d=(YXS4r`Fl@-rdMe%%970*{q@qE=4&sRh7d^Hu% zS4;7HwH41-NAY}h70*{s@qG0a&(}cld<_-Pcb($-8Y!NyvEuofD4wsW;`y2>p0By$ z`C2HRuchMoS}C5dwc`2Aisx&ic)qrZ=WC~UzV?de>!5hPj*92=QaoQL#q)JmJYN^Z z^L14`UpK|`c`Kf;yW;tJD4x$p@qE6D=krrMpTFYy0u;{|sCd30#q$L#o-ai4e4&cx z>#2CYUW(`It$4oc70=g4@qB$1&lje6K8xb{!WGXKp?JPX#q&ieo-bPQeEk&9*I)5` zF^cCKpm@H4isu`oc)r1k=ZjT5-w?&~4OKkfFvau5DV{H0@qEJ-&o@Hxd?OXlH%jq* zqZQ9LM)7=O70)+L@q7u2=Nqqhz8e(JH$m}y6BW;wsCd3fiswsGJYTZn`K*fPo2+=g z6vgvRQ9NI&;`yd3o^P7s`O*~6m#%oe48`+hDxNP(@qE)2&zG%uz8uB#6wh~;;`#1YJl{Qv z=et+&d@B{tw@UGR_bHxlwc`2iS3IBbL->mRBZhLtj*jWygxZhS*g_7Y=ALCg2VT&J zKP$$WJZ*^o%Ldp08(;%$fDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_ zU;}J`4X^<=zy{a=8(;%$fDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_ zU;}J`4X^<=zy{a=8(;%$fDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2G{@_ zU;}J`4X^<=zy{a=8(;%$fDNz#Hoykh02^QfY=8~00XDz}*Z><~18jf|umLu}2H3#m z87MSaj_u$7+>z*&u{F$ZhClmL08Q7J9)%t=KR&SM%{!xa-t)$v3%@_QvZ?`AZhLok z^1SdJYhPaM@z+Po>Pb*xL&1T{@1=!pUR6IL;iLPSMoUm}?BCDtm{V=Y;x@acukDle zReK3)oc`|XL0(`zoar*~>BqeLY`d`i)yfhyJ#uTyDXXgvT6IInMBiTh zEn;kKik1~tem86DftdBbk6rYd*YO{!NYG~I*4cG7&K969IirY8sPe8hMExE)bDgCywo#}j$GDwqfFSzpyR=xCjU zt`hjHx#h#N@1BZUw{%f{Ox^n%h+DdAse;XKeYpIGL;dD|vhe#DkLp8eOAuClR>aD^ zZ$_+G-nGF)4c9g4Y=EuFy^}lb7_w)L-`gJJZhpJ11QGk+3jAZcSNM`mjiX{qS#uJ?W$B*D-#<6iip_O6&ms;9oVXMX(5!4eE>`q{YI{&$Dp7rL^|lYO(>MoAFY z@aywq|2j9|g}U2&)OoAR3110DR+^b>z4Khmj@YIn*3MskFj9iCn}+;8@TZOg9!#k| zv)|(5yXza^+?#`%f8Qcze#gXu^Q(pyO|_3xLH*9~nJz3ry!eRgd) z(Y*Tqv3DQvO;zvzz>`prA$uqa7(iJ5!qEe_=dFKx`nbE&HXk}*e@9^v76{+5C z%O5IS+ch%b!56<+@t2d-!pXP!oiUV=X}_u%a`-BSKgU^ z{IU}UPfUwU_V%9ne>{8kO(`oEO;i&$O}lr{vlaJETs8Nf zhp#(#{LTH;gv~|$m;ZReCuyrcxn|lsqq}}EKutKeV`Z~vPH#T((%+nq9_`s@eKR#- zYsK(W#?4(d>GDNqES&S|sfm5nge(61K4)zH^6VQjwj6oD=ie6}q9)wD^rLHgp3y#Y z6m))r7mMUYdC6o69C`?f>hIWviZFm!u}#)1%Fq-@P(! z{OTEtpF3((*B27hga>-{x~0Wco71jNyY{M_OU`fJCNklhXBV!$dBeE1+n$cw_R!5U z^VEdrZ~v@azZbitUtmpbGbZ`G-b2-d7p}f%;kvRJ*=rtK@YkhrRX2@N6J9Di@bMFt zjZZsm`)yzCn0f7UUDSkEyLW%$$!Vn%&PiAiJbu5EA0DPAy!qI*E!Vd=B>TD^ndknn zeD3(EYQkGf+sr!gRA1Vb53d@%HaBt5kjR9yjyU*;t-t4NJfLL1th@WC9Iht3yZPiB za+}?nw)ym`(^r+Wdo4~)`1t*UPJFt@fb^S(ztZ)K^EaNBtR{Rl^Rr)9XBp-kJFslh)bpNcx!E$*KB}9Vu;Z>(myb?9dBR=2=l!+u#CCHAsR=)2 z=lK5G|M-j(OWPm+*wGK~*k4Wf#rk&Y)=)Gl{pZKF+S7i~iOXcIa_o6s@Zgig^WbdENmOSB1H zqfO`*Z36Eha4*?E+Jx@WCL9oL!hz8y^oTa0XS4~uqD?p`+5~&F3B99D=o4*1-)IvK zjyB7=+Jqs|Cd5aZFf`hPglH2IqfJPPHepz_ z3B#jJNRBokCEA1$(I$+HHX$|Igi+BZjE*+puxJy;M4K=++JwWSO&Aw#LRz#5>Cq-+ zM4ONqZ9-PG3E9ymjE^>9LbM4v(I!lcHeph<36rBum=bNm)MyiOqfN+*Hep({3HdUC zUd(?c0h549z$9Q2FbS9hOadkWlYmLUBw!LS377;-0ww{IfJwk4U=lD1m;_7$CIORx zNx&pv5-IZ&{#ddLZQRyM0Ad+yQ%u6!8U$(tUnUxLhz);`Z6|{J!}vXE0DS!{K*% z97P4bkl*Pln&K-7d8l-r!|$kY1^x84z~!%Um-zfe0e@A5XFB{|TG}Z4%*2F*1be~a ziejI~-al)R%NYu~3Z_lY@KsdM;`-aU6|PFZ%jpQZO4_#mceZ=HD_GzxcU3sj0<)$} z{_iw;O2`v*S9)BTj-Vsp3I_foEw8tmWG(uSv^>M_qW!o|V=bd?aiOddchKjb9&~#G z@s*CifRyBc_6crpaFl&QQo@K4_8AUO$Ypl~0`4-etHd7k+56}9w|iYxF26k#;6tNc z6{)EM?fQW>EZLs#3Woe%dsVnHU#Yz`w9`csB zO5L=)NbPxkSC!kfFxd;h}H>IJ70^`|8jEDmH-yTZ#zOiF1qhfIe*+f9d`-c=~UEC9d9d>S)8$?e-Zie}H#|-9dZ*P-a^7ir36nr_YLBC++!qr&CjBer|Xu;B@hB;PX(gnBQ{l^W$KK<@rBMHy z?<%F9%~{j;M!J4D2cO1koxf_g%N_F>0M;H$d+KG%O&Xq9`(WBlr|sb>Ns$8}F+L@= z<^V`d9+@(-_5m;~MSc$-0FPPfY~OIZ=@P?9XO8gZO{SB!-T`QB&Ubk{F0aF%;V5=F zU4BQ7x0D7SG{$Pe$U_2_0Z3xXh-7srC&tsU8ab4Q(UCm7_L@X~uRfG5O*zLlb`Bg` zbH0{yB(0i#rrSF#DRQ>7(*Q7h+D;r9Pp555H#$~k&Fy=fjf$Zqkz12BJz5Rz-2B>A*DhDZr_!2A zGH4L(_w8h>>Qv?PxSZUTSJ!44(%^nn5cD}06v;N{e8Uh!Ln8e^WV|1dotj(Ab{8wE zzIT&0KSbjt|8A)(Jigh*n({oMGPhU8rF8pd7psem)po8PZG+dTz;d~@p?;_C1&F@u z)ScGAeh~Q#A(O_Z6+ZfefIn1ly5{CoRC;2XkFK-RiUUDET{R7BtV^j`TAjJ77BqEP z!((1n7LQU>hR3piEZQvs!9a{f{jTbQbZxK*ZmY=Zmiiav`RSH3T`GHgWwBJR=Ahe) z(a##S>-Uw>C3H+}r^@}#3_7{QTAJ<(#Mq1im&5NYZ_;|wjWND?Q+8&*pp7A5wj_wFHrR+?)8!!7^qxH_J@HC<7 z^a2{;gg>+3ZZ?+f9m?jq)oD?HU(ns0Q(I#Xd`UZ$I_eS*%ImqW7@`h4_hRBS7r z<1JY{f#zw#UYMWDGZkjknrCUl+hj&se%9o)n0wVo@dmqYb%VDkROb$F1M6NhPt84Y zWiic0V`aCOuXi0+oSLU)DBp5<{=(#MMSgoIJy|HY>yTMo3u z(M`EBI-KYe9{wPargNugr_W{h-qXZp^jVLiL_Vt=Wv7p6(x{(xSNZrue0yc}ypE!* zkl(eyK>^rPimGpHB_@nMctCn)!N4MqyI8%YlRJHy7f`=Wb{7}%4x`HE<>yY!$|x+z z%*h{ElwRqfax^%|Ee?M#!CsI#X`p;7A?k#p3~D^x8H-*ZKR0t$^r^h%3%riX=p|-T zqoYry+OsmEPcB$Ybq8FaK&CTPlo`%}`Wyd3pRa@xaPxX_lk94wqXhuHDAVue+lTe% zt64yvgKl_x>;+E0yD~ViDC&gjFMy0L97UnZ$2)X$h;9nGJibc$jG8{0NVQ#jiZ2zQi?p?Xxqn_yU- z4@DdNCI+>Dj#gKpkN-a#e;b2aSyO#d)X%;gA@$9e=(qCgEU#^AuADmOnms5n+Fea_ zIRwoKN=bFYXtkW<$CqHJ33lHMyqqHKfH+*GLq+K>du=i#?sl>Fm?R=Hd_qm;|6YP0Ww@(9Sqnh>R3hVXF7R#gBz8oGt^LI+aZ)&!G zQiGqBG|(SJcGqY%5074RlwGvZDwCskUUa?ct-j8!b4<5w-DtImiP3x5U8*;!&WWJG z^H`zUIPudfOXyTKJwQWEd^)3&^09rOW=q!l(vSLfQk`=|c#e7@!73ZxIT}9m;0mJ$ zO{cP`dmHu3S2o{M-@&FW%-@l51^A9)t*>84ri3Gl(%sfR3hU*%hrW6jY1-~+biJ-) zk9}`^7n@yuV8HJ4-TFM$3dyUBm%h=gbIEB07ltv;Wx z{wz$s@m8zPuAUO5uZFGNW1ZbDHdcl$(XPk#(4PE%pwZfwWy2ZDA5+nuQERto((vei zl6H&@uk~f_h6iE)+Ga-`>iv(7#wJHyGt7%}OXJ@ewcc!WA#1r|kN4H}zf@bR!_KdD zP}c0*G#HQzx~cSW3>uAry9uLk8QN!HM>Zo zcR%;=F}d^2-h18OPPSR^NB9qS|M$mZ6L#&IJw$Id>i+il*=CpH1{b@QtM+)G9r@N; zt-~>*b8Gb^HF58q@pbi=EcJdPERj27wHo_x>h_w{@S2qOcDJ|l&E9+6-p;pquMV(x zve|mKw>Nt0-O%j4(p&FxyHRg#Y0}@g?d;!wx7`hY@5A?!!=Gx_`PgD-|0*X^U&Egx zG|($(pSwmX8y5X@rG`F3sPz}vk;;be+y@d=8C{=Le?ihu?_7)cTax_Mh20%pYV?o1 z8d}?^&k;ChZ~Prjtxs5L-Q}h4EYGxe#%*_QvbxpQ`6^eN`EPA3=~t>8V>$ z(Z3)jf9nnYRIujHytA`1CZzE&jlN~>aV#!$EeiIJ`MDNN`J4IO_4k`w_QH8X-HfaK zX;1A3V5p}asHe=N*4oEw%^BXylj=MfLHptqolhHoiVOc`SoIl<|5V-+UVv%??>vda z>vVne=!Tj{CZ%P&oaJ=$r22_bUSH5&?x=FnqoZ72dQy@*NPkJ>UZOodO3sz_ma<2l zNfGn@7wuel-Co>Bzztiqqtu^NGvu&5A9Vb3>ylcJN(lGRb-w(l zZt67gIZXBH-A&_*diCz=$*Sh0U9ak0eh=zOS&f{(LzBdfuNu zNRRKd2g-dRPl>&P|Juy%q-$_~-k-xu-$156iL)1G&|g~nD#CyHBr|1%f^-2o#pMmv ze5XB;zd@}=Em0nTSbcjo&r#-@>Y!(fdTA)5e*rmEzm?USy3QqN!{1_zzOK}4b>^${ zti&h_PKx^2ome{E`jw`KfAgayNaK+s(tCIv+G!uHWOIed=SK zS{z(6 zaWwuEvzjk^ILqq~SF3OQ#Qe|;T7LaHn%<7^hsRA{ba=L=FRl8{W|mj(JvM#0bt>4| z7Sw!^wq6q~s~X#PY-xDjRu3uw%eiGH6<)w#)#QI>JtVMJQ z!OyOV?HMjqd-XFKXpSuY7Xln~xgO)XOrS@&(_i<+SUM-2o|fS9mpbT{K+Lnus?Mvr zyv0)0$hOGO&2U%JQ-~5{T7W7YTXU#1Kb9)S#&c6otZnJ^L?vtPNa6eh3MFZ6f@M zy|XgPBQLoWt$nRWM>SHm=8rEMuUa4G(gviOU$eyhAAO{Z#p1BURX;yvEc(ZfC&bq2~Cc&)^*NZ&en8qmLcm73J#Q)76pX(5+?aeBz@X+rBlmHd3I zrku)nD}}EXUHsIL$m1enTfJKIY7aQHSQa<3t>_%*tN0(Do-y#ctY*l@<$1+#ssf6ko+0bd9AAYsp)J^A5d)ywjQf|a4*o>)?DxMq4XTydz3 zmUW~hPR_}DU}04M|HUy!vlelI@Dpsc$YOoaVj?~4FTK`-7N-|v<%gf4Sm$|*b$;cM zu>SZ(y6l*eJ2gCGrn7Q14dq}H=%!WVk&N>D)GFCH?HFbS9hOadkWlYmLUBw!LS377;-0ww{IfJwk4U=lD1m;_7$CIORxNx&pv5-^m|yWiHR0p1Ec0_an20Z5s0QAnSn8Az$~s zqi=>t&gpj?EqUhTPIsPTWebjo6YvO^>^#f)*aSwtY26^v3_8E z$NGl#73&MuXRJ?HAF)1Q-EO_pdaLzD>$TP^ty`^^STC?{wr;d;u&%SNv97ePur9MM zu~u3ARzlve!A6`R!{G9(mqG+b4QC!Eta=PZPB*H$IZ7i>uUMLGTSo4 zl5d%6nP|zjq+7;XUOKwuXv@(TRSvIw%(u;F_g?1tb^bi}cjar#7nQfOylI(Fd&JaP z6EY8^*UvXs?;aiKX9o`aqfh!nvd&>ev(*q%g-|Z`!;ttqL zq=+w2lxVw7lMK@}D^(GyE<(BL5>X7iOmAyDEHiJaT{O ztlMmhrJp4(Kjh^O)2_PVd{-dc_ewnF5V06QX|D|H=WR_v&hQKDN={C zW|21Tj=rt2?Xxs4F2h&3*zYbY584Mf2ig-;M-CgDl#q}d>30i!rNM>NU(qJ?SNi-8 z?n>IW4)NG8yhg4W)D1cUg)V=E+v_NCNGCYZUTeggVxR7H2kresnQ7JQTr+>Yb5>(@ zkBC-xey*HPxO?|`sa^Hz-b4GG+O~DGD9U%0c^rYFP`Y~wPt!9=Ot4RJ13GR-6gJoy~^zmh8!MyMRjpsslAx480^8tm2^^}b17$8 z$fub6kjE9^&T!9O>+IrMRu5?Z53e9^53?EVjqRs2j>@#u>wi)c22(GTnrhGSR{Gtv zn``|}yxpGW@z}%NRlx3d1!(x_Dv7u3)&4x+<#bi@xyBWU^yivI`txYx&&K-bof!ih zW{IPr=PYWsye0J8@PvfK6npXFAayNHUx|yRCk&V0OK8`nJom&H z;{3gM&Movi0yH+K`!wo|8^SixHccmkI z3v57gQexDhc=cE!hAV~oRi}r7L7z8~wybjjo&2IKd}LD1vXc^1>3*KOimsUL0l5<= zm;Px^9^g!Ic|-l_J{-JKYukF*$YBZE!8L4n&A~M+WyFZoq*_PU@Pxz>>UfjmYnm<2 zPXE!E-^KSJ?WJ@I#5-FHpK+`AAXO8Mu6MSw>Z{HPw3a@)a`%K=$fNb0 ztuN0LDsy}3LWFJ+(Di&|Wp|;5zLQcrceEZGh2Q`PsURqq$7+otg37*?=OHGH$8 zdd0^3-6i3Pv8`21_2hV~_}YT*&F_|$<@sG+x<1LEI{98r;|EaVjhvB|pEWsc=c z9N~q;T!Zum0cUx5zUu8cH^&<+-PtPmlF8-Qs#s)2eN*_#ia*)N%5)Wn${JXjRx*dG zt=@!-t3L>do_X!Lrq0OED~xp+lYM1Psy*N3D52YjF}9_^LDy7Gs=r`zK@(a(J?Qqx z&SW1BOn zzx9=6`~0!4WagB-rmQD@0=S^MDHcmrBUuOL(!j+Zh;2_P4VMl$X`~awe#NB&ivxc8 z05aC%L7y+i!~=5|Rm9c`-b!>jiZN~Kda@Q(#&q0J_avt~SD;=OwW;CU`Bq83tJFoE zwbShw@AA6*Zl|NVsj-9=q9wZ)(HJg0GuGmzu?-p`J2fw&G~BY-Hg~vueTK)kQ|$El27gA_mcDjE zFMa7Jry2d<4*vYnQ9_>w(g#;mhHlcP`JLtNDj$F2!(Lfkm!l{v$a^6 z!@t^V3XEFZ@NrkG*J;wYG3Wo!QE$WjMpmXfkQR{Ppk-bo*=vVqBh}7y6&J=jq{>=E zcX;`>5FM1Ubfa1HRh=fB=dxzID`Tp5HXY=#6r=%tT3MOjRYv!>Vk{rItgu*CHJmY3 zp5>+c8L`&P!%OX~)$nGa%E$X1^c@UmQ)bDd3!Q~At|;9EsG^$|O)H(}C{w+DqwSXk z@GR;ZhA}V9?G0960aedou>>347PPCySUr_&+Ubt3Qs{$5w=<>%P+_`T8VIfvKY`Ek(in%X_IyoW z^|7-}sHve|8)*CA-N^R$SJCHq-T>b%pqmBiGCt-}7kx`R@;P8rW~!53 z(`T(&>zL;ar8!-Grz10_^Df^+p@C@R?rSVPxXcs#Rd1s=YAlvh8{U3&L0f%~V~WE| z=gXMxEzvx&k3YDu8ob4JWymwox9`K(l37)BspgWY}ySy-W0Tl*DS`ep^o#eYJeF6R&?BbZ3m!CVq z5h#zfXt2Uly`giwr44<^#)ZPCtPs^-SeQo_WtEPgGv?*cEHPhg(IWUp1}~-wJ7M)q zg&9qoXG#I>FG+I?C#P2@)~n%dQvGos-&B-O5gOig=gut;e~7%eD6NFP9GN#`u390w zjlL{#S(MN3BVpIfA6YPc&PM~!ot&9kt{VCkE(iY64W<0=^luZ zEWh99r{8;9;^-EX-{D_8m$rYoeT;q3ph0%8kG}svUt)LgZ}c}&!OBpOZo<(Ap6VME7E7}haRIu8Ei}*%mf!DFSQj|Xoj-*+^YQ z)q}G@lU9~)UeSF7dx6vMuH5C7jar$kY~d(6gyg&N^mSGGLYd3Me^g_aK`(vj)>*`T z4R-@|3THb4;lYSMXdlL9K#}=Q4}U~aR8oKL`Bl-Ujh~)FA4o)7Zl1R+(&j+4LgDIZ z*dG29u|VCXI~URL%fnwr3>GX7gjJqM(9|E=4WF3USl>D;{Y+nuiHcYMCX4IMUh_^JIh z?T55!+vca%kGDRgwaqf9S-)m|n)PaSK(lVmIyGz8taY;%&1}v7w*7AV*|x*>jqMBD zC$)RTfA+Mt)H!r zt(WZpTQ^%LTRU58TML`b_P6zS>(AC5)^Ds|SU<6TV138>hV>Qe3)W|>PgozZK49H$ zz0-QD^+xNp)+?=Bt(RCYux_?)v~IAjv#znOw63r&vo5h#S^ZY8b-uOKT5O$Too$_A z&9_dqPPArQ)2(BzqpT^`Bx}5NkhPz+kF}Te0BbjECu=)vYikRu&HA_HcgxR~9hPq_ zUsyh|d|-LU@`mLV%L|rgEKgV-u{>beZn@KPtK~+^wU#R_TP>GZF0gF2Y_x2!th21K zthB7KEVC@JR9XBMuVuca)KYAjW0`H4Vac~lwM?|kOZh7K_~fGG!-j85>XEp1=u<U`QCrq0To(1Tt--&}v^SRYqd7e`twl`ZSyF8}`C zKZn2f5C11M{rS&6yIkl0M-{wG>w2TjV#%Y|1L)^h`mu`TYBq-OdMY2%1@x+x(L#*NA4oquZyfz_eG}HSSqj+d|U+fQt!R&IZ>QhHU(?MCl;8O54$+u3;AtNOar zdtSy2dR6Pj$2%KuKUJ=$n2TQ3GJ1(kr&l%aL1NA6Rn2P`<8803w;1nV%J`Mr$GwWG zFNxmYLN;5ogT;=}Y#6=2naY*Zt7>0Au~}NV{$jj8sO1h2~%NQ=k`-qx1S&a7~RW3!$rP&BE-e1+cBgMLCmMX^kzbePa+3nO8 zK2DU47Av7wwcNwRj;2?&9%ID#m{H}%it+KJ>N{Mll3vxk9><9Q+zPbf=6%jn`Kh_j_#IAE{;V@y*8lmNM=e*!Xv4 zv&FbBW!wf{UtX3nUQagOMryg+=>0upydKIpb2dI!mGSms<9%1zaO!aHCgXil8ShVQ zv*}eWw^)qZu8jA0F30<>nzuXEXQz(yM>3VEi{7*Spcx;_Y|S;}et_)^dgXrfSNi#d ze%_#EY@%1S4DOS-+@r>_ar1x)X~yfx@vk zApLMwmx^(}uj~?f&+U7VUR8aUNjdIQlx-E`<6YV1V%#4o>reS@r}`FYb_Km>n@6u| zxmSwK)$A%U?iW;j-Kf5wY2LfZRL~^sh^s3gE z_X)0#w@Y98;ca;o{qT7;pI%jcchY+3E` znJt4})pB`zvGIPd+Q-|PEnO?e`xDzJ&G>x9mZlk>>(~nERn_;5*f@Gs%Y9btaLt|* z8>`v#Vq-LWLF_QiUKAUx*-K)nn*C14%n#H)?i1Cve1+b#aeuD%msiD>&}(1%;r;40 zF+LZla<7YVf2!(xLu`#!?oBa1->7-t5?f5KY8h{fteFTDgzuJ?C<+W;?`&(5ssF2eHAL{V2APURC>k5<65Y z_p{g_&AzAi+?GxBs@fdh2gwF#<$jZL{Wbette#_b~3fx zwqgfqHjL~QnwO6S)#mnMy|i-slJPQlKUL+LlW_*zkE>;L5-ZfKvsi&rL~raeu0o zVJG8xmyoIU^%dj3SlPj1L9M<+#CTb%TtBgen%T&Bzt17-OFzHTPe(G|zI>ih^BzdX zS!HVF28m^8cBmMin^i7@#nQEML&P4}%EgO4rrA(29w(^!62y2sp^UdR_v2~ws@5Zk z%CYe=sMezk8Skf@m9nv9*OGN3Q`;k1jQ3MjE=4R~vk_v`G#e?Fr&+34u4bderfN1? zY>H-wiA~n5lI$94b5}Ce=A+53ChMZv;bMFosdD4QCTaDhiA~fjU96KfZ-yA}FDjQz zv5s1~EU^h%xooixTDkFJ?KPVqHeQ=IN35MzZlYMWR&J75Tdmw=u`I3J6tR7^a#O{4 zA6M&^E7nFUmnX*iy(%|NthH7yUo2fKS0L6(D_1C%rj?s6)>11sLu{N@Zl>5iTDe(b zJZ4qxJ3_35R&KT!k7HH2BgMvORwUM3oA)R&9^0yU=ZM8=<>rcw*2>KjYo?WRh|%sF z*-wkbMrrdp#poqcu0$+VE9Vj$sadJm2+hjGQZy?UOV-RSHe9p$V#73BAeN+=M=VjZ z3b6#uykbK&^NGc4wt)h^l7ixKoyvY7mE%796wUl%50I&TG9b1_D;E@7t=UOrFHn8s z$W(t?CC2-evV~&zlc{Aa61z{c#bWnrwnU8gKULpSG2Z`_9V5p3nzGZ$o~QQlI7jts z%fxtJQ{|2m+fJt1cf1(ySE}4{v3s;~E5!IbsFrbp80W0)L@~}(*|}uTQTy)J>RTzs z`>9&)$zpuoSKD%x7;g_%-)b@5pVho;#O@+f>voFRotmu`yF;^6#rRlI^{o@*V?o(z zVtgzpyPxb?S~qU9YTtUXlgZS2Y|u=VJ41|*BURs-Vm!W5<<8Pf)wfaXByAaIi=C+1 zIa)bY-zKpWv~ruZc~!Y5$eyNkTcMRZPwaLwmGk*xeC(_BxIpYSt=xrT+#jfN7m3}f zmAhDs`v_I;60uvfa+iv6zoE)qCU&z{Zi^WAC92$3v75AVmy2=#qRMR(yHP85g&6la zs@#=gH)!Rq5*w_QyISmet=u(Yhic`n6}wI=cb(WEt=#ou*J|Z%5F4nKyHV^Kt=vsw z1GI8Ci(RdiyG5+OR_<1@ewy7Tc9k~o?P6DIc83`6%PPM+#SYf&E-@~n%H1v2N3(mx zdTX{_%&ytJVh3q@l%RHG5p_63xCLdxF~BgG{Z*w`7l#U96RRO6(%do))`MvuDJ3T~&S0idAUk zo)hCfLzR18%%hciL9Dx0?nSW$TDh0R_See2EH+;&_lnqlTDe!n+*-NU#Q1tfweNMY za;@AOVtfsu%DpMZ*AU9y660$KWp9h|wSlsC#P~Wu*}Gyq=2!Nf7?1gty)VY&du1Pp zwbkrHv3)iBNUV)!AB(lt>=Ut8ntdwPQnSy*cucL@^0^p~pOt+f)?BkM#b}5YDfg9F zGtIshqg^#pZZW-olz=8h>>Yal1KA?YZ1npM`r-Vz@A#E|zNeYk9-#N?T((1u&qv(v zaJe7EIA=BQk79i8R>%2IVw}Ay_p=yhuk07G`^nUDe--2Hq00RxcAr*`zUpfEj(+$& zsM_}jm1E;`p0Yp1czmGR_m>!-^HjON#rXWD>>sg{w0ZdkFfW78Z>pSCjL&7tI+1-# zKMTp!Hg6`z=Q33;PV7W7)xPFpd@fVvT8N#XmD@+GicBq|rPvCsTr07VR<0-6H}u0} zYL$H(v7lCNUojp7t8#6{c)Y8uofwZ{-NpD=P~{E~ z4>j+>VtgzpJ4CFxR$o6cK0Z{r{$g=jx#?tI&`&eX28!{RM&&X{>}WET!J%Ty$W#V{ z#rSwr%N-&{FOl_)7vu4UTEKjWQg(cp~_{7aX+c*%M#=L zMU~4Izxz%K!(hnaCD!(=K`zQ3n z`>wK?VwY<+OKd8cYTprJE;7}=*av1<}DU0*5-AJP1NQs5p!teTw*y|xl*xtTDdZ@30k>wvAJ3~x7c{C+>YZ4h}c@O3+Q*%ADk+7zGmyh&eQBPvA4-oeW#0^ ztCd?Xwpp`F$o8f7^(IsO)fr-&v~p*Py+x*$ahBLQTDgs4XKQx0n4L^5;~cR!$y9xt z#17KRT|?G}+II?BU;5$v&J|mu*?D5U$kZ~<7wf6n1!6rkyHJdCSMy#Z#=k4OSggBd zx0AJ|_Ps%-*5gvKjbv(DUM6-Tnc5Gwh^;15>$X+wEN$M)#a<^<%h)EiN}Klzu`{)K zuM|6hOfB~+u`{%CSBq`X>@BiZv~I7FspVcPwm+H5kqZu2gR0Y_K?`I znmsIbjAoCBE!FH%u_c;4Cbn3!$Hf+D_Jr6%&7Ksi((Ea*kY-Pd@fcIB+cRQ3##HvK z7>_ZPJtxLvOl8lD@fcIt3t~K;RQ946j~$i0B*xbP%3c=Z@x8KF#CSZe>{T%y$0~bG zjK{3XUKiu>sj@f3czmktO)(yeD*J@2IqlCb&E6I((d->Dr)KYp6>IjM7?0P~GTs-P zr`ZQ$JPuRkJ`|gy8J`!qeMf1=-~WlDpCZi;qTid*&ykvaO7pVK*6cH}BQ*P5Y?fwU zh|SdOOR*W6eI+(sv#-T?tfJQK8!;Z2DEn57#~{kS6XWrQvhT%sY@uw27+-5B`$3Ga z4V3*T#@7MLeiGyHy|SOhc-*e+7cm}>EBjT9$KJ|*6XS8VvfsscOs(t>F&;lF`%^4S zv%kbLHTzpEL$iOx(lz578@$bVY^#=G6&t6SO^nB^svOV9KVvoH{fuplX1qVL9i~|e zvC*3Gd4kK0(yXOes%Ctyf5fWdp=``zjkK#`}S?L1NrT z^rate^Pytr(|a{887#*8m74eT_VhPEZKmu*vF@6kAhy3|E5vx5 zsODWR)=jhH$VT{XLf-g6(#^{IXGa4N&Ll&mlP@HQGJb`QN*%SaRB@tP{f_4B;j zwQ?C^ydG*9ysljCUaj0+)V_T3eaY0mdnZ{QSsTsn5bHpu_Kn-cT5IKQ6Qh?%xm(3r zY2|JaYp0dFS*)#QH;J{>=DksDAI)wc%cVAVBbS}?*xGk#OMPi(@DtDn6FISbjK#a3e<<1x5WvFuJiE%Ef z+__@B3{`Hk7-yi$Z4%>UsB-6sHPgzSEyl}GM-t}TUhEujdjK?6#&JcTnOs&V6VlQfTme^2j-i=}}Y30rq+f3G% zez<+-h`p?p+eF4=%2zboEcU8q=ZYnesWzV{ww6q7-}A*z)$9VX*R=XB6kDg2yGV@3 zS85p-i=C#GyM&C#ysvBZT`Kk^nc8126MI7|w?*tLt=v|zuQj_|jQaz%ZrjA()atuJ z>>F*~r>Ji#BJZHh`y|^bR<8zd*9SJu>e-VtlSp z_1#T2g9>rquIvE%g|83znoebPH~r4W{jNG@?h)HU)|Y;Gzuzv#>!J3Id&NE^Q}f;@ z#(k$+?)_pT$<%Tm5Zg-DmwtE|4~lVqY8elSeMF{~@vs>8v1%EQi1G2Jmhq_AcuH&=Szr3$Wjrm$`-@t}Gh*Bqt7SYZ zb`F_Z#&cqPT&iU}FLni4U;5!?ydcK=sanR1V%)c@WxOQDeXLr>%VKYksb#z(b|qO~ z`r&1~D#pi$TE=T)d|pt?c%7^_{qT7~*&FnGANsk5tS|j=eQ%2KKG{#~EivAAmAx%S zFA;l3EKaj`#hPpOo>&Xb-WTJ2S1scMG2YjdeMojN{qVk_>?1MWmdZXB*S}#JXtqtyovhz7yl? zLA8wU#rD%|huHp_{UFv|vmeEHKU4MnB*y!SvY*BH`d8U6Vtk#f>{l_qo>umo7+-fQ z`(4bg*&kxPHTzSnk7j>~_0{ZeF+PUWGX4?cV?!A~NP+hu{#}_>tiNV9u>qPj6C0>m zoY)}Enu{H(Sqrhjn(af@kJ>UsvzB79;>MJXd}jB3uXI?@x2>mZN>PW zjIwrOd{0nWd$DBAI*6rc)=`YlTWa1;Wc_K~MrzhsELF2EVxu(cDmGfPZen~-RV`yb zu`!zMFE&=Q?qY{)c7WJ8%?=bx)2xSBx@JAe2GF`?Xx2+CQ?rA_vNW@cWoy=3Y`kWD z#3pFgS1d=fgT*Flb_m%(YTqQy`iV`}tiRY4%?5}~)oh?xu4aS8@-#bCY?@|+#qu>9 zLdN$G3p9%tE7WYL*mTVj#AaxgC^l2GB(YhV4HG*;v*BX1HA^NNOzk^TvlOu+%|?hF zrP)ZaIhv)4&DCs_*gVZfi#aqqOsrV5F=9^5#)_3_b~xD(S`U|Ix6$@#WCsw7|G_i%6<%=!StblANt;b@`3dNRaHeGC~W;4Y29} z)XYbgL~TAxvr4gznjI~6wq|~@b2JNxZPF|#wpp`~*twcjiJhm}Lb3BTTSPXD+I)d# zi^VR~Y>C)Knk^N(ShHiqF462*u}d{uCU%)-$BAvx?0B+dYTs7PmWy4k*$T03nw=na zg=Qy;U8&hgVpnOlQtWEYP8PdHvsGf(YPOmzh1z_bW^2T**X$Ir8#G%hcB5veiru8y zIi%~ou(N<|1a>yCbAW9Ewi(#Dz|I49KClabT?p(VU>5_s z1lXm(E(5j&*j8Yd1KS4d3Sd_Py9(IVz^(yyEwJl=T@UOAU^fE03E0iRZUJ^Hu-ky$ z4(twKcLKW$*xkVH0k$33y}<4Rc0aHOfISH8Az%*!dj!~{z#aqkIIt&xJqhe7U{3>k z2H3N}o&)wguor;62<#@8q#1A7P9yTIN9_CBx=fPDz; zBVZo``vlmhz&-=^Ij}E)eF^LupPjD0QMuWpMd=g>=$6a0{acv z@4)^5_9w8vfc*{ZA7J4Jd)FC+Sew@Y`qc)k8L&8D&4IN5whyqDz*+%o4Xh2YeSx(F z)(%*EU>$&U1l9>yXJB1`bp_T9*nYtF2i6_f0l*Ff)&p2iV7-7H1k4VsH?Tgy`T{!` z*df6B0qYNJ0I-3;1_3)1*kE8ofW-qF3M>IwBCsT2!+;G3mJBQf*a%=Ffu#Z)1#C31 z!+?zeHWt|7z{UYf1C|af16U@oEMVEd#sixGEC<*`V3UAN1~vuQRA9Nl@_l=AD+N{ttQ?pd*nD6M zfO&vb0P_O#0jmUdG%!D~0I(pi5U?s>3xO>HwiwtFU`v4=1MFB}%YYpR?08_yfvo^` z0w#?mb_TFBft>|xBe1i9odawW zu+6~E1$G{=^MPFe>_T7{0lOI3CBQBPb{ViOz_tRr9N0EsR{*;b*j2!;26hdwYk^${ z?0R4~0J{;`O~7sjb_=juf!zk|c3^h^yA#-5!0rZi53udP?ge%qu={~M0PI0v4*`1^ z*dxFm1@;)Q$ALWo>`7ox0ec$QGr*n&_8hS1fxQ6iMPM%hdl}d(z+MIR8nD-ay#ee^ zU~d6?8`wL*-Uap^u=jy|0PI6x9|8Lq*eAd~1@;-R&w+gb>`P!@0s9)*H^9CH_8qYA zf$aeH1F#=~{RHf1V7~zS71(dUeh2mkus?zQ1?+EN{{RbrS-Z~dK5L6Q!1w=vH3Jq0 ztU0h2!1e*w5?Cu>t%0=xwlA=@z}f+853B>Qj=(wr>kO<5u&%(m0oxDQ{=m8eI{?^$ zzWk~1nekabAZhSHV>Es zSTQgsuo7S{V5PvyfRzJt1Dg+Q0Wc4+3SeGfK46u=jt1rj7629m76MiUY$32kz!n2r z0&FR;V}KnCY#FfQfE^EPIj|MLP5^cyu#m8RlrsQTLbJAU~7S$3Tz#)(}0~0 zY(20Iz|H`6Ca|-BZ3K2UuycTI0=600xxmf?c0RBRfL#deB48H-y9C&!z%B!}1=v<# zmjl}d>)xfR+b}g{$fL#yl24FV=y9wCMz-|F{E3n&u-45&yV0Qw$3)tPj z?g6$P*uB8+19m^K2Y@{Y>>*$e1A7G6qre^m_BgO7fISK9DPT_ndj{CEz@7v4Jg^sl zy$I|jU@rrE1=y>=UIX?zus49c3G6LkZv%S=*t@{q1NJ_!4}g6L>?2?w1N#Knr@%e~ z_BpUGfPD$ z>>ps^2RPKZ-DlmW4)FayV9kKV0c#Gd1+aa9wFK4*SZiQyfb9#cEwFaL+5_tVtRt{a zz&Zo#0<0^rZou{fwm-1$zzzU*Ag~_5dIIYO>>yxvV7-C$0oE7T!N3jy)(=>JU;}^+ z1U3lRp}+U$Nfn@>91~wkp1YkM9CIXuTY%;JZz@`Gr1(pYF8nAp|1;7e{O$Rmu*i2xv zfE@vBHn1as6#+X6*c@PUfz1Qv09Fjl39JN|3s@=`IAF&ETMldmuoHlt2<#+aD}kL1 zY!$H8z}5ge1=w0(rvh6C>@;Af16vPl1F$oIoeAtLU>kv*4eT6Xn}BTwb}q2*cy9n6Dz%BuHDX`0cZ2`6w*yX^s0lNa&mB6k7b~UhTfL#mhI$+lWy8+mZz-|I| zGq78L-3shBV7CLi1K6Fw?gDl;Yg80(%J9!@wQ^_9(E&fISZE z31CkGdkWaoz@7p2EU@Q*JrC>!U@roD3E0cPUIF$hu-AaS4(ttJZvuM@*xSI~0roDi z_kg_*>;qsQ0{aNq$G|=T_9?K>fPD_^3t(RY`wH0Cz`g@Q${1N#S>yxvV7-C$ z0oE7T!N3jy)(=>JU;}^+1U3lRp}+U$Nfn@>91~wkp1YkM9CIXuTY%;JZz@`Gr1(pYF z8nAp|1;7e{O$Rmu*i2xvfE@vBHn1as6#+X6*c@PUfz1Qv09Fjl39JN|3s@=`IAF&E zTMldmuoHlt2<#+aD}kL1Y!$H8z}5ge1=w0(rvh6C>@;Af16vPl1F$oIoeAtLU>kv* z4eT6Xn}BTwb}q2*cy9n6Dz%BuHDX`0cZ2`6w*yX^s0lNa&mB6k7b~UhT zfL#mhI$+lWy8+mZz-|I|Gq78L-3shBV7CLi1K6Fw?gDl;Yg8 z0(%J9!@wQ^_9(E&fISZE31CkGdkWaoz@7p2EU@Q*JrC>!U@roD3E0cPUIF$hu-AaS z4(ttJZvuM@*xSI~0roDi_kg_*>;qsQ0{aNq$G|=T_9?K>fPD_^3t(RY`wH0Cz`g@Q${1N#S9_#cI-a|_Vgst)k? z|9~|E76+_3uol4f0oD>&D`2gGwE?y-u(rV30c#Je1F(+3IsxkptP8NNz`6n357_>| zx&u1^*nz-$0P6{?7qEkX*@5*2)(2Q$U{{ecYtHW1h#V21)53~UIncwj?; zB>+nVmIQ1Vu;IXxfu#T&0c<3&RA8fkjRtlYura{K0y`YoIACeO(t%|F%LJAMEF0K( zU=x7l0GkMG60pg@rU07?EEiZFuxY^ZffWEN1U4Pm3}7>X%>s4=u-U+l1Xcv>C}4Ad z%>_0Om;+cbFek7QU@l;#z{-G?19JnL4{QN253mYgUSK|8mB5Y$<_8u476cXoRt0P! zutmTY16u-YDX?RJ9Sdw3u;YLo4{SNG6~Imab|SEofUN{}GO$&^Rs&lD>=a;Yft?C$ z9kA1Yoepe0unoY@0Cpy@vw&>`b~dncfNcV{8Q8hN&I5KnunT})2<#$Y7X!Nl*rmWO z1GWX&R$!L{+Xn0kU{?aW3fR@at^sx}u<(ae z0=o;?-N5bvwjJ2L!0rQfKd=XYJqYX}U=IU(1lXg%9s~9`uqS{$3G69gPXl`f*t5W% z1NJ?L3?1A7J7tH53Z_ByaPfV~OqEnsg0dk5INz}^G)KClmfeF*F$U>^hf z1lXs*J_GhSurGjp3G6FiUjzFF*tfvG1NJ?z9l(A7_9L*Lfc*^Y7ht~v`wiId!2SUC zC$PVO{SE9NV3yYP@AX-M*?=_z76+_3uol4f0oD>&D`2gGwE?y-u(rV30c#Je1F(+3 zIsxkptP8NNz`6n357_>|x&u1^*nz-$0P6{?7qEkX*@5*2)(2Q$U{{ecYt zHW1h#V21)53~UIncwj?;B>+nVmIQ1Vu;IXxfu#T&0c<3&RA8fkjRtlYura{K0y`Yo zIACeO(t%|F%LJAMEF0K(U=x7l0GkMG60pg@rU07?EEiZFuxY^ZffWEN1U4Pm3}7>X z%>s4=u-U+l1Xcv>C}4Ad%>_0Om;+cbFek7QU@l;#z{-G?19JnL4{QN253mYgUSK|8 zmB5Y$<_8u476cXoRt0P!utmTY16u-YDX?RJ9Sdw3u;YLo4{SNG6~Imab|SEofUN{} zGO$&^Rs&lD>=a;Yft?C$9kA1Yoepe0unoY@0Cpy@vw&>`b~dncfNcV{8Q8hN&I5Kn zunT})2<#$Y7X!Nl*rmWO1GWX&R$!L{+Xn0kU{?aW3fR@at^sx}u<(ae0=o;?-N5bvwjJ2L!0rQfKd=XYJqYX}U=IU(1lXg%9s~9` zuqS{$3G69gPXl`f*t5W%1NJ?L3?1A7J7tH53Z_ByaPfV~OqEnsg0dk5IN zz}^G)KClmfeF*F$U>^hf1lXs*J_GhSurGjp3G6FiUjzFF*tfvG1NJ?z9l(A7_9L*L zfc*^Y7ht~v`wiId!2SUCC$PVO{SE9NV3s!E{vR+Kux7yGfHeo!0@yylS^{eYtTnJU z!1e{!7FauA?SXXw))81IV4Z<=0oD~*H(>h#+aFkWU z0P73vU|@#;>j$hqumQjZ0viPEP+)_B4FMJpY$&hRTcvDS`Q8%M0IBi7Cl^K-=7J7OIiv5tvBST{#3&=KqIhy^)f!H!rDN35qK7UGD7I$~jtST9Gcwf7fJ7NPI zv4M`*AV+MlBR0el8|sJ+bHs)_Vj~=}k&f6XM{KksHpUSf>xhkW#Kt>f6CAOLj@Tqe zY_cOZ#Sxq8h)r|EraNLY9I=^>*epkEwj(yj5u59X&2z-&J7NnQv4xJxiv$#MV1v8yvBXj@TwgY_lV_#Sz=;h;4Jk zwmV`w9I>5_*e*wGwsC?Q_KTJ7NbMv4f7-AxG@6BX-0QJL-rXbHt82VkaE2 zw;ZvPj@T(j?6f0x#t}Q~h@Er9&O2gnJ7VuRV(&U)7aXzo9I^Kuu@4-v4;`_Kj@Ttf z?6M{CbVGe_*UBX-9TyX%PEbHqM( z#J+IE?mJ>%I$~crVqZIA-#B95I%3~BVh5*ds^mM@Q@@N9?g9_QVnU z*%5o{h&^+}o;zZ{IASjxv6qfmggB1-e~wrrM=Y`<7R3>Z>WD>i#G*T5F&wd&j#w;5 zEVd&S#}SL`h{bcn;yYpq9I=FsSRzL(u_Knm5liZbC3D1*J7Osuv6PNjDn~4}BbLSy zOY4ZGbHvg+Vm^*o21hKTBbLb#%j}3{am2DZV%Z$A?2cFtM=Yl!mdg>#?TF=Z#PT{~ z`5dwQj#vRlte_)S$Pp{-h!t_fiaKJ&9I@h#SP4h0q$5_!5i9M8m2t$%I%4GW)|qN35nJR?88q?TFQJ#OgX?^&GMKj#vXntf3>; z$PsJoh&6G{JSUX3|&k<|yh;?wpIyz$h zj#wv0tg|E5#Ssf|#JW0S-5jw%N36Re7UYNpJ7PT?v7U}th$9y2h=n;~y&SRLj#wW@ ztgj>1&k^hIhz)SW20CJc9I?TU*bql-s3SJa5gYD^jc~+9I%1<7vC)p$7)NZZBR0+v z8}EosaKt7$Vv`)P$&T0*M{KGiHq8;6?ugBB#AZ5TvmCM6j@TSWY_20V&k>vNh%Io$ z7CK^!9I?fY*b+x)8b@rcBeu>FTknW%aKtt`Vw)VX z&5qa>M{KJjw#^aS?uhMh#CAGjyBx9Ij@aK`Nk)iJ2*J9|YgA8*|Gz)~)f{V*MTjtS za#{bEzy5P9PU8rXTp#vgUIx4jcp30A;AOzefR_O;16~Ha40svvGT>#v%Yc^wF9Ti% zybO35@G{_Kz{`M_0WSky2D}V-8SpaTWx&gTmjN#WUIx4jcp30A;AOzefR_O;16~Ha z40svvGT>#v%Yc^wF9Ti%ybO35@G{_Kz{`M_0WSky2D}V-8SpaTWx&gTmjN#WUIx4j zcp30A;AOzefR_O;16~Ha40svvGT>#v%Yc^wF9Ti%ybO35@G{_Kz{`M_0WSky2D}V- z8SpaTWx&gTmjN#WUIx4jcp30A;AOzefR};)pbWfNieFqhf(E6*zb}>p`xN^X2ZsIii(O#ips=3v>>k{pCZ4a zu%d{fsG^vnxT1ujB(WbY$gRkuXsl?WXsT$YXs&3XXsKvL96$@|D|{8L6$cbiutNyn z{LKQQDiSFYE0QP*69=&XKQ7v!y`qDnqhf_(rDC;Wjbbfv2=%m4v{kfI_^_eoGno{b z6B&lKsjp7g{K)H9Z|8H`hmS4>b$R7_G#R!kv| zVbMbrLlwgm!xbYGBNd|*qZMO_Vz6SCVzy$AVj*!F^?b*So(0}kyrXzm zaY6B(;(f&jiVqbR6_*s36;~8j71tEk6(1>XC_Yx)RNPX0qWDztnc}wMj^eK3p5k-G z7mE9eFBM-YzE*sr_?9?_)p(vb4;)vVP`sr$sW_!LtvI7Nt2jrzgGv`F7AY1hmME4g zmMNAiRwz~~Rw-61)+p90)+yF2HYheKHYqkMwkWnLwkftNb|`i#b}4o%_9*r$_9^x& z4k!*P4k->Rjwp^Qju98Iwx=nkD`qHWDrPBWE9NNXD&{HXD;5y%p*f=!V-#Z*;}qi+ z6BH8_lN6H`QxsE)_tBieiXn=jieZZ3iV=#Dic!P|sHeB0kD{-lpQ68FfMTFx5b+`E zdBDSmK^!efsK}uRQG_bO6upQ`SoCeyWAKIIzT!*8SBh^G-zvUS6x2!!5tmVEd_@99 zYDG>(E=6ud9z|Y7K1F^-0pbdp6G0JC5lssVJo=ttg`?OWZ*{ zQ9@BtQA$x-QASZ#QBF}_Q9)5rQAtr*QAJTzQB6@@QA1HvQA<&q_!<-G6zLT{iVTX3 zicE^kiY$t(ifoGP#5b5otVp6rsz|0tu1KLssYsQc1JjBHJ{EWdv z#Se-{iXRm}DIP1HD1KHvC4NAqmw7H`a7A%daZPbu@sZ+&;$y{4#RInB5h|U>5`+1Q z1&T$A#fl}0rHW;W<%(6rkEnF6VzXk4Vyj}CV!L98VyEJkA{le=6I!r|B?h|`<#_sK zO3EuLC@Lx{DJmWUhQnu=PA+KM`gy2KMyT2E15(Lm8q(MZu)(L~Wy z(Tw;Rl{QzjP_$IEQur!bE7~a963U5%ue6J?2IkG zSD4+WEirpC3$s(PFkf~H^M$f7-vRGd?E-5Z6t|+c5t|_i7 zK2qEu%=c}xVvAy{Vw+;SVuxarYNQ= zrYWWqX1^QA^F)InMX;iWB23X=F+dTSC#T{2cSTyl?CiVqGX}jBy%l{FeH9sWX&Dtg zvBdC$o>_E=B9t&km@q{zMQ=qPMPEffMSsNr#X!X%!W`BHD~2eBDuyYBD@G_rDn=53VOnTlD8*@`)exr%v&IX9TESfE&_ zSfp62SfW^}Sf*G`m~)U7ij|60iq(oWinWS$iuHs!quHR?sMw^~tk|O1s@SI3uGm4C zGpC)3U5ed`J&L`GeTw~x1B5xjO3ClG58%&TfI%lkXGIr9SH*6{9>re8KE-~;LB%1( zVZ{-}=Zd8I_as-OP^3~EWJ1iJeMoUwaYS)caZGVsaYFHy;-un~;iRdJ2TfQjowMofI9xS{x1aZ_Ta zisy=76fYDn73OV*@Y4vB_=t)~ipYv6il~Zcis(dEEINiFrXrRiwjz!qt|Fcyz9NAl zp&}8H4b4fcNTNupNTx`xNTEonNTo=vNTWzgWJhz-Dbg!^6d4p56`2&766jT&a6jl@=a-*K2ieif5iV}*Fic*TwiZY6_ zigH9Aw4l7Af}*0LlA^MrilVBbnxeX*29XynsHv!>sI91@sH>=_sIO?CXsBpJpDw-*pD_SU8Dq1Og6|ITmAVn}y5S8{&^i+f>LKR_(UW(p|K8n6XAynE=(O)q@F;Fo`F<3D~F_b8RdWI>6 zD@G_rDn=cmp1WX|OAYK_0B@`tUrWJO!(h5^ocu5sZ6ep@;!hFBOOAO3c&BA;IEX<~9 zVKy0y!V0sJZHY;~MKPi}Cd_UvyrecJdJuIn(Lm8q(MZu)(L~Wy(M-`?(L&Ku(MsW~ zXsu|YXsc+a@Kdx`bWn6u_$xXoIxD&;0u)^p-4ua}?usBqFi{T^^$9akO<`7L_-ZsI zH54@!wG?KJ+t1WdnALAfOvT|a+kn|L!(mqL0m7`$-HJVmy^4K`{e;;Db`fS9*r?c~ z*sR#1*s9p3*sj>2*h!epYXgx3w>IrWngz)1`E04Dgg9T3{==1q?yg`APt7-Y(o{p z6vGuG6eAV(l`OMp`%0F9eI?7lzHeq=-#0U`@0%Ie_stCK`(_6AeKQ05zL|l2-^^g0 zwr#y)gJPrN6UC>B&lKsnxtMy=D|{506qyxS6j>G7h(cI&8&+!2R?$x3r)aO}py;Sr zp;)O{tyrU2OB6qSD-oJc_)Ee2V;v!ipk_qKaaQ z;))WAl8RD_(uy*QvWjww@`?(Iii%2#%8DwAs)}lg>WUhQnu=PA+KM`gx{7*=28xD? zMnrk6)69x2imZxkitLIUikymEiUNv)ib6yMG$*+tg(9UQjUufgog%%$N0C91QIUzL zh~`99L{mgpBvd3-BvYhPq$Vn%9(>PVopBl9e}6$_MO;NZMSMj9MIxdymK#M8LlH|6 zM{!(nLh+X3BvBRh#8kvqBvvF*990}soKl=soKu`9s-Xp^6=xLhDBe|EP`syjU-5zB zL&Zg+I$H3y;*z2WR=3%LUzpj7DvBwJD@rIzDoQCz6E(2tGK#W_a*Fbb3W|z~N{Y&g zDvGK^O|+nzqPn7nqNbvjqPC)rqOPJIQ45vUS2R#GR5VgFRy0vGRWwsHCu*b87K)aN zRtjH5YegGHTSYsCA5jODwpVmebX52&Iw?9Ux+nsOdZ?$XqMIU6(OnUw2v+n^^duUg zo&bJJ8UxRXCO}U`h$2++Q1OG}k>W?iPm0GxGgR75aYu1iaZmBJ;(Nst#m|bTif4*n z6fYDn73TO6zC$ssj;OG2vzik7HmgAloz1?@YD(9rYNQ=rYWW?W)N*r&rHQE#cahK z#azWa#eBsA#X`j*q8(bWSg}O0RIyC4T(Ls2Qn5<0TCs-kLkrd_)+yF2HYheKHYqkM zwkWnLwh`^og6)bOik*sGirtDmioJ?`iv5ZMLiRdG#mUGb6PhT>zzO~nIE$oGneiXRk@6hA6{Qan~XQT(iUs(7Y&uJ}dqLh+Ia z!)i3QFv8DA4I(NcDIzPPD55H&DWWT4C}JvN5xp=GTMWu}bVMIaq*wSTGAJ@CGAS}EvM90=eKCm>jKqYgE4;+O{A)2vFF zbP4M6pz{OtD zC0C?Sq$JGIuP0#+c;yu36%`Z}6_pf~6;%{f71b2g6*Uw!6}1$#6?GJK74;PL6%7;( z6^#^)6-^XP70ndQ6)hAk6|EG$iq?uYinfY&3O_}AMF&Mkg}v7QCytpmwE21Q0iA;MgS zWL0ESWLM-+%MHWRJMO{TbMFT}cMI*voJXKLtRa8?{SJY6{RMb+` zCd{Q+DMe{T8AVw|IYoIz1w}-dU*W50tvH~Ff*nHmH_I#_sv?mhu_B40FkvpQ{kUj@ z_KFUQj*1nEm5SAhHHx)_xr}e4Xsc+a@L@yEXEG@=E3zoEDzXvgcELI>+F-q6gJPrN z6UC>B&lKsjp7eydEism}8H`hmS4>b$R7_G#R!kwxO^zXop^9OO;ffK8k&01@(TXvI zxtY>WF;Fo`F<3E6F!Q3D_&lZ>)WXBaJ6mKa`Do!a* zE6ym+D$Wt+-rGXOBE@3G62(%*GR1Pm3dKsrD#dEW8pT@0I>ma$2E|6jCdFpO7R6S@ zHpOre8KE-~;0mVVZA;n?E5yer(F~ZzWou-(sn4y@dn5CGln4_4h zn5USpSU|jo=8RU1QH)iLQ;b(kP)t-zQcPA%QA{PwJ>|iQA&Q}jVT$335sHzDQG~f& z-CNN|(O1z=(O)q@F;FpxFn7Wq@bF;}M@teaawtL+p^7j?FT&hczs-6KzEIp(e5v?K z@r~kJ#dnH=T4^D|+{}-!NT5iq$f?Ms$gRku$g9Yw$ge0sn8yhb6cH8C6wwti6fqUC z6tNX?74Zo34C5a2X7IJ*d&LvQ&x)stXNq4GFBC6{YpArF;*R33;-TUP#UsU!ik}pZ z3G;v^K+#hXq6k$?Q%qOPP|Q?3Cq6=@Qx%c87EDQYg-_&PuUJfp88a>X^2H#dB9p?5 zuVrV;LfpV-vMRDEvMbE^P2meLpD}|hS>#gWR^%bf2}MbT9jC;6#*R~BV8Irs_3Q&RCHGaDS{O}6g?Fo zicm$EqL-q#qK~4lqMxF_Vt`_xVvu66Vu)g>VwhsMVuWI(Vw7UEVvJ&}VjN)}Aymzc<*$f?Ms$gRku$g9Yw$ge1%D5xl;D6A-=D5@x? zD6S}>D5)r=D6J@?D61%^D6goXsHmusH&)@sII7?sHv!>s7-v0iFAte3LixV zMMgy?MP@}7MOH;NMRwvFOe9t$Q6yC)QzTcUP^46(QlwU-QKTil#YAjH97SA3JVks( z0!2baBH}wtL{>ymL{&snL|4R6#8kv09$?}b&qEBJD}GVDP`p$`(4|FGL?Rwy;(LC^ z;GyCN#UsU!ik}pZ6;BjDE1nWRpwi1c7c;n`xT?6OxUTp}aYOO3;-=yOTkr^#&SQze ze8mFABE@3G62(%*GR1PmD&j{}I#;n-u|=^}u}!gEu|u&_aZ8bmIrs@J*u)ZpU5au% zWiut^6%`a_e7f)xGc#Kyg&C~QmY9L(!tofh*#W%_s%eQGQp}XtA;k>rkYWaQNHGID zq?mynQp~^(DfR@gLy8%g5zE4xV_*lJGcW^=*%CYGoGGz`&KcN2=M2oaWcD+5(7B&c zVg@M-FEKC!j#-!i$1Loib7nR>=$wHabk4vII%i-9oqGnf zXG6B+D}_0x+7fd_voOaK3$xR=Fgs(5?-geEX-mwW%);zcEX8QW*h zl-NFV2DZ~;+*2V;%&t{igy(k z6z?hCSA3xOP;pUlNpV?mMR8SeO>tfEk>UnnzHgfqTNGOr+Z5XsI}|$=yA-<>dlY*K z^NnAjSgBa0Sgly2SgTm4Sg+Wi*r?bx zE7B5XXWyNlG3ce}t>~lZtH_{B%c$syC59jL%%VdSp@ccYg#8LEl>ZdRMBU~!s;9&M z-#6D2_-9QrjK(qf=E;}8{#v%Yc^wF9Ti%ybO35@G{_Kz{`M_ z0WSky2D}V-8SpaTWx&gTmjN#WUIx4jcp30A;AOzefR_O;16~Ha40svvGT>#v%Yc^w zF9Ti%ybO35@G{_Kz{`M_0WSky2D}V-8SpaTWx&gTmjN#WUIx4jcp30A;AOzefR_O; z16~Ha40svvGT>#v%Yc^wF9Ti%ybO35@G{_Kz{`M_0WSky2D}XXh77#87%M`ABUnKA zZ!cW}4*q>y#cX>y+cjX%Z@~>LAQgWK>L0{s_)I5O`Wo(_Bqf*j58?}arYAphAL!x1 z%fX+%9i)yOAwpShiD`f`e>Ae7(o6iBd5G}he;@}nuuk!-g0FV?ub~!7QnTcDL?hIb ziS;xFGXAM(gBBEG3)%t&{{VDGJy}@KYY0F|BbNMT1Y>EnxwPLAeNazj*7K)e7+O%0 zE%;L~0WHYG7QBW@C~3u#-x0G=Pkq)i8#wUyF$c31=7HrmV+oeFmX-cdSc^*AvC=nV z17^#{zw|d_86n<{!j|_{?`) za~FYcJ^Z)l;4xO?d9KDMz_~vf5#vONaEz6Di16ZnItSUXwij@1|M@70=1gUC{(O`{ zb4IZ_zay%kopL&WeeVnVVLbPXZy_; zxrwDf9%31gmsk$uBUS+UiIqSBVii!3SPc{+)&PZxwLlSK9Z-~54-_Ld0L6)oKnY?K zP?FdTlp?kOrHQRT8Dbkyme>xA$6clHrwBWMaUQ%J{AX0%%H%1ey_}fab(#pan4oXi1C(S`p&_Ut&Da znwS8zAtnNCiAg{^Vlv=IOaa;xQ-Kb|G@v6f9q=b+0G)`LKxbkW(1n-{1Q2t8uEboR z8!-|(fAaV-e9F3 zBE0w?$U)S2=t#+R`sX77nzM<``SXz)%~{Uo{EofDEjs5|ELo4D{p)Min50s0xG<)qpUfI?#)#0rVzn z0)2>DKwqLZ(2uAC^e5^91BiOSK%zb{h-d%|CK>`mh(^FrqA@UxXaWo;ngSz;X23|I zIWUT70gNVE0%M3)z*xc;7)P`Q#uIIT2}E09BGC?*MEC)diT1!0q609M=m<<$J`n^gAcBE~L=RvQ(GyrqgaAv3P+%z$ z1}r0b0n3TrzzU)du#)HttRngWtBL-=8e#yjmKX@EBL)HMiNU}IVhFI27z%76h5?(2 z;lLJR1hADD32Y-q0o#euzz$*zu#*@I>>|biyNU6@9%2HpmzW6bBPId+iOIkLVhUip z>rVwz@QeOGjam3h?K=-EfP+lPO5hN&3OG!x296MGfTP4(;25zEI8LkwP7oV_w}_3v zNn#Ulir5UCCbj@)h^@d`VjFOd*bba0b^vb^JArqIUBJ7@8gUG`P80e zAO`UOh)H}8#3CL7v56mmIK(3$F7YD}kN63QPdo+^5Kn-F#Lqw?;wg}rcm^aPo&!mV zUw~x93m`f15=cQrh>x8&5fMm5L;_M1k%2Ts6d)}T6-Y-!1JV=G0Usg;kb#H^WF%q% znTXgxW+D!dg@_AeCE@|ui13t zfpSDPpgfTss6gZZDiS$?N<=Q8GLajoLgWFe5_y4YL_VN8ksqi*6aZ=x1%X;bA)q!< z7^p)O0qPP(fqFzSpgvI?Xh4(z8WJUeMnox~F;N<5LX-iT5@msAL^+^2Q66YPQ~+8M z6@gYnCBT=c474Vy0Bwk>KwF|3(2l4M_z^XL_C!sf15pd;NYn=Wi8??hqAt*xs0VZ* z>H`5p1E4F>5a>oU0s@J~KzE`E5JWTuf{A885288HlV|~i5G{dFq7@KE_yWC%)Z3-l%00sRO+pg++b7(jFY1`-{CL4-drnCJuyAvyy?i7vn}A^;dpbOlBb-GGrq zATWyP4vZ#(fH6ccFqY^6j3asiphHvt9%gIF>I7)T5S%JPUl3@Aek2TBtofKtRrpd>L0C_#({ ziW6giV#HXWC@~HwLW~Cr6BB?!#6+MVF$pL@Oa}53Q-FNLR3I-g4d_8k2ZD(iKoBt# z=uXT60*To`H)0OZm6!_z5c7a8#C)JLu>j~qECl?CMLD#VjobQ*bh`A4ggh&gTMje5U`&( z4D2J00DFm}z#iflu$wpz>>^G8JBhb|9mGjsJ8=rwMw|w=5@&!d#93f7aSqr-oCh`% zZvz{M-O;5l=pMlCQ2r2*E1Tg|ANsI(a5u=%5k=FKzU+3P=S~LR3s(>m550|WnwZ= zg_r_VC8h$^h-pA|VmeTRm;uxzW&*W{SwL-KHc*F{1Jotv0`-V_Kz(99(12I~G$a-R zjfh1+V`4GTgjfPJC6)rsh-E-?VmZ))SOK&oRsyYvRe&$C8fZ>AmP7`I5K(}kL{wlH5e*nlL;? zfmuW|}bd`5HzZWCRAJ466*m*@)IBf0^f z6M?`NM0emm5d?fm1Os0YJ%F!?p1?Om2=FZt3VcU|0h@RP>;>32w|WCRS@Q42AS^l= zTksl&pyVbi{r?m*kb?)z&P?EYVixd_m<{|u%mE$|bAca;dB9J^eBd#$0C++y1b!wK z0Z)m=z%ybA@SIo*{6Z`PUJ%QHm&6LdjNX|B|My}g5Rq5~*f&#G1Cd#>28cqe1)>t` zfM~>eAUd%Dh(T-wViKDG`=;$?AT~?30C9+|KwM%Q5Rcdn#3yzD35cCQLSh$S-yGfz zBxcDTAPKP-NJ{Jjk`eoX4}g5chd_SfB2a+11QaAL1BHkyKw;u4P=vS!6eX?$#fXo9;=~Q01o1IYlDG+! zB5nbtiBEts#HT=6;xnKeaT_R4+yN>OcY%t;J)jctIZ&DS0;odV2dWZZ0@aAGfa=88 zKn>y>peFGxP>c8u_{-=JKpmER57Z?d0`-U=fcnHEpaJnC(2)2EXhb{)8WT?dI}XOr zfE^*@DbS3wJp-B(&w&=iFF;G;1<;Ck3HTBbFq(F2A|lX+hy=7HA_MJ+D1aXk6=+XH z13D1VfsRBBz@LZ-bRuE_or%~$7a|T2K*R;Q67hg;M0_BSNC0#v5&}U)A|RMZ4D=w9 z06mGMKnRfx2qlsOVMGd`7m*U^O{4<)5UGK_L>izUkrwDrqyq*J>4AZS4={+x01PHF z0z-&Qz)&JHFpS6o3@5SzBZzFkNFqBhipT+sCUOE}h+M!}A~!IO$ODWg@&XxoY|IB_ zAo2rg|7eszrC~hd`d3f}3$Sl)l>;X5FD(yDBq{)th>E~uq7pELs0>UcssPi7s=#!j z8Zd*X4$LHK0JDgiz-*!xFo&oO%q8jo^N6~@e4-w(fT#~FBpLvVh=#yoq7kr!XbdbR zngGj)roeKd8L)zA4y+_v0IP_Wz-pouu!isj))K9ObwnFrJ<%4}K(qrk5`MrYqCK#g z=m2aXIs#h>e_$KY3D{0_26hl#fSp7Du#4yl>?XPadx$__FVP*?M+5=;iD2LW(E~V0 z^aKtOA;4iG6gWbJ0Y`~mz%imXaGdA^oFMuFZxQ`~lSF^u6fpoeO$-Fi5QBiT#9-hY zF$6eI3x!xd_^n;z9yCd-w?}zZ;2Jacf?BI0kI1Bo>&b$B-Q{w z5Nm-)#5&+dVmp8YYy_SVn}DB*&A?M)3-FBC3Opya0lyI2ffvLM;3csWFb}K4 zFYa~$5sBSEBw`N`nb-?NA@%`LiTyw{;s6kxI0(cb4goQV!$2(J2oRe%3dA9f0da}r zKs@3E5TAGpNI;wf5)!9?M8s(zF>wY+LYxJX66b(q#Cae&@ivfxcn3&HybGivE&!>C z_kc9S`#@Ua10WsoA&{Q92-xmKmwP?<;uR3efC6^Rr;1tKL-o=63hBi{T|Nog@#Y0j1oC`F_PN)kRm z2_gefoX7|iBQgO+iOfI|;JnI7$=)k`Tp##6$@I|9f=+ zD~T!G0eFQ{fbHs38hDE(Wq=bzS>QNP4zOLS$^-a5y;@oY01sDRp(22HOO>e&jpzkb zC3*u@h(17NqAyU1=m%6J`U4e+0YG_TAW)7N1e7HP17(OIKxtwqP>L7^*q=%o4wPWY z2%tDI5-3KD0*Vr&fg;2hpfE8O$WM#|@)6^Kyu<_`4>1wQO-uq>5tD(I#1xx2@tOPm|tAGx~YM?!_2Jj=+0_})(KwDxx z(1zFmWaFQ(5y(nx051(?I${U#87tihd`j#BJ|T7k8;L!@ z24XL;p4bPhBlZJRhy%c6;vg`II0Q^24g(X2Bfxm#C@_vV28<<+17nC2z-ZzvU=(o@ z7)hK0Mi8fg;lvqW7;zRDN}L0R5a)rx#M{6i;vHZh@h;GhxBx69-UH?k?*p@m4}e+3 zhk$*)eG#xvzApjxnfPVEJ}tij*yre10sDmg8epHjUkB_{`Hz6lxl!Bz?hzjYcZr+8 z9pV;noA?CyjQAAzl=uwzgt!gdBJKdTXTn{;_F1?G*xn4E1Gb;T7r=Ec;68AT_!78E zd<9$~z6LH6-vF10Z-I-%cYy7;@c^(rI=%;NUyp}??FI4!aDfYW1iVZ92)sl51iVc= z2F?>tfOEvpz**ucaE5pWoF<+Fr-)yGlf(<)E#f6`f-q-t$BBr*F(MLhl!y!*A))|> ziKxIKA{uazhz=YeVgUPzn7}?F7O>v^V+lhq0HX;$Q zl}HS1A(8-_iKM_LA{nreNDgcuQUL3Tl)yS76|j~_4Xh#30IP|#z$zjgu#!j*tRQ@V z6EXkrh}-WCIou*@5{)4qzUU6PQcn0_G68f!RbJU>1=V zm`UUVW)S&-=|llw8u8k%BNal)6qXbQCKE+~Nkma#B2f&OKokeY6D5FgL`h&QQ3@DC zlmVHYh2`=DhanNbOLPpCx`kKB7I4m*@cG zAvyxN34b6L(Fw>&bOurrU4R5c01%((3dAG20da{yAU4q*h(!beF^OOx2GIkEPV@w# z5g|ZCA{2-~gaI#^w_d;tqBrmh(Fb@&^aY+0{eYi|{=gGr0PsCA5crxH1l%JA19yob zz#U>J(2W=dJSK(%KM^BA~2Jf z1k4~N1Jj8qz%*hiFqN1FMB-YQ4rC{006vj_y_T5?WFTe%8Hw3ICSnednV1V?A?5*D ziTOY_VgZnySP0}G76Cbl#Xv4%36Psu3gjV{0eOk#Kt5sxke^ry*ikiB0d~BN)qov| zV+~-(=vWKb(L2@wc3hA3fF1E;17ODj*$CKCLN)<*{E*Fn9a&@xV8+g0NrFq9>S zfFZn;fVc>BAua)(iOWDI;tJqTTm?E3 z*MJVhb)Y@*5#UGM0NN2B18s?$KpWx~(3E9y!PuzNl}uGCCPxSL~qffT%=q zAPP|eh)lfp>qwqJA~ z8qo;2N;C$p5KVx~L{nfD(F|BlGzXRuEr6v&OJE7n3Rq0|0*i>&zyhKTFrR1(%p=+X za|u5n857bTxW$qVz)qqgu!HaiwiBIzZA52aE71kmLIePtiLSsdq8qS@2n5RUq_I0t zo(KXe5Wzr2q6bik=m}INLVzknC}4-+3InRKq!(a^?dlEK0loSFcBrqufE@&^A7Fkrt0!v+9$NU?!{9c*k6V22?a4A=q6h5&ZxvY~(-)NB}FhdUb%*n!YS0CtG9k$@dM zZ4_XKRT~Z10oTR=b||*7fE}c59AJlU8xPol-6jBb$hV1r9Sm*~(2hx*4EPaKfcC^x zpaU@t=txWl{D~PrCt@bhnV1E1A!Y*s#2lb2F&F4Y%mV_6`9ODK0T4ti1cHf0Ko4Ru zV7n770c=O3rGV{%v<$GFla>Rv+tLcac4%4&*se~i0NV*_HDJ3(tpRMuskMOZQne1S zovqdbwj0(4z;@8u2-vP$n*iIXYcpWGdu;)1N3gAc?IN}fu${-Y1GZb)4#0Le+X>jN zXuAO0No_X}ok`pSL?iYBQHgy(6kQ25^#Ws4D2VO z0Q-ojz+NI6u!o2a>?UFWyNH;;P9hetgNO}mC*lCxh`7L3A|9}Xh!1Qg5&)Zsguq53 z5wL+s46G-T0PBdPz*-_1u!cwutR_+btB91qN+K1of=CT4C(;1Rh_t{`A|0@VNDnL~ ze1Jtn24EqP5m-QE0_GE$fq6t0U@nmrm_uX(W)s^!& zkr$Xk8}qACzdR0G0@ z>Oe1|2GE;Aff>ZlD^Gq)U8~vStH-jexYIh-3t{ocT`<*-wxe7 z=JoIEZ~6j8uId*UiYfC?)PKZ{Lwfx>dxR)v{`{{#YyKM%UEEB46+$|63FsXh>eJER zr$=pW)!#Mg9OGV@jr?$E2de^6Mck6%znpGN*+VF5v% zLw%cs_VNn}2==WLfTjF8OK_-f#o&;@@cF`ebqomhsUH&D)xSensBcrh5dT0w-|)rz z{Z7k$we-B5+V?2(H-GnE=P~pD)rJazfj&(_{X_5|rSShXA9GOIFYNVPhOf6u!9k(H zf#ItnI{F#DG4FO|bO`R=E66|8v>h8t^ZI$3*1)yypeRftrO58BsesU??_RHc_=f1y2(9dcjnTJCZ~u@!!NDC_p<+=+me}NI;K&YGH3$3;&)k zf5jew1tLVrTd7{1QhBR1uTm;+#R`o}<*ihwa;dycD>gF!L98YwYBs_|vqn|Tf2x~p zu5a<8+y*0~_huB>r>bA~fWUq}MSbc7ck~bRDNw|xQJ8;^9@s1S6wmEb%|EDDK#+fp zpfG=PD8w@C63qS&&fh72@n07j1zn5Z^u7Gs?=U|5+V?8l+)(kI$oOhsQLj>yI#mW2 zuzSc#_3BowQ4N8{{@r{0BlBRn_M2$F|M0JS8q@6PtmpsSFaLGh{*V37U$1*~vwc%e zxO@N0x3zshkZ;Eh9SRkEb+|%*-GA=0?L+?Z;UaJTtbXVI`U{Mn&2OyJ^*N2b_WiB$ z&n@Ro-&}OA{-@gWrY|izcAMq=TfTzm_4{vI7LVoidWH4q6^2creXq`Vy!^($xk|4P z|89P@gFE{awcAap%-JheZj{3}FrYmrYjp1s91<2v)(&XzTO+7rKkQD!=dItcUd<|% z8aJw3qhStT>`)MWeMRQ*Z4}%qq=Ww(3w$eKe}Ub@n`dZPuX6J@mzwq6D9EqJo9AeW zM!&ffORrMt&BcxSVcDUs=JT+UIXjP8$N-L#nX|vP2}%N-ao@@z0XXKF4F6U6Un+QQ zTg+h(XqmJBRl%>RZd?*c#d-_E`JsO()^2bAz~CM@eXP>AM~HuDs85Zc4!&khnxo=h z&0N(lG_0Y&S?4~5%sh@+x^@UOTZnJRzx{OA-fu3e)}%(G%C+89Z~dUow#}h$nkjto z_zS|fsL;P|dWXI^yad({2?z?q`A2x`U4P-L*^0cWj>hc^c4Had6N-{EXHK7>V4qNb zpI)JUK9K+K`f@Ej>PqlUd?&ek-TK}t|R}Y=Qw)r$GeVv{TbJ*dn3PIr+U|sk-g`U z-t)-Uo||~jBlXVpUq8;^C6m3J_nt@o<*BfD9VvYZ!k_V(M}p!1{QBJAdmiaMk9@r+ zf%iP}^?pv?^T_b0TE5=%$k!fTde0-h=aK(ZU&hz2^StMgzqw!QUtcHwy?(D=zt&g% z*ga<CwjDZJGBx z@^AY2d;MA+?>_v^cH;GG{hJ=?-gTsR9cka9FwYZzJpuNvBfaZL+oKk}fW3aL|J*xq z-gPAIUwi#py?(84xK^$8sSB__YZ<+r|x$&fZ{Ah@4dbCV|9|YA3w#^ZmH%gqBtsw}Jdzg5V-g;TLt-TP6+66S zOO8$aLb9Cz3T7mY?MWn!m>Jn|S}4#$2?e&W3vJoLwrpW3TWHH4Xv@E4Teh&2Ep*Ek zwy+CZ_!nB(!fw03wzQ@Hb4SmSbfwW)8e7}rPac-e%$?tS@9W%i@7x)i(l$efm11`5 z_CwEJwVCX}>`FanP5v$35B-NMb^qJcwzIrkK!j{tRVEZ`fT^|(E^d`BR(uMi)ar;z zkCZ?z<6d)B?KPLJE$R1EEPBs!r`G0Vm;dGOgF&fN@WRuo&(XGz%Wh$Qwz>23x1VEh zA9LNy2bgop^&OdaXcVlO*7qLpg1^P3QP^ka?_b57nA&?8HeMF?!D|=YjlZ6=( z9)Xd_M$FI_l-i%!%zI4o?yH=ptS>xN)BA>3DAqK+%p)MFJ(=s7cAy@*Az$kqcSXMm z{iZ*uSInT_RPDQ7YVJ4Hv#)%@ZYz9s$3(#A*WSue@CJ{9kI+ZxUg!aD0~#J3(N6S+ z6IH!4Dc_%8{FCbR)KW8tHIkN|hRnQ#q?%{xD=7?;hwZgjlhia-?R6$KO;LNnO083b zm#Wk>$=r)rGArm)uUo0+A~oIpfSQwCR>^owrx!FoX>8i4anppZ~3*I7wubk06 zd|b^dXK+kYI-Z+us2g`oQ^T0NWqUGVOuoX_rqFN~zGD=}mN>S=u_eAol=iMsn6s++ z*b-y%*)?kUqq5AdXZhdhMy6H16O`tr*K7}_L>l)j?71(k_UNy4!(j)kop3)gd=6~{lZ zyuD`g_YXHQ=~dBT$MH`!-f%^nIQ|i;8mrKvJsGzz^Pp5UnS|q?;P#0@c<(KF5ogfr za&9Y_Ic}W&0&x73sR)fb{`sewtb>ogAOR$R1dsp{Kmter2_OL^fCP{L5(4Z^i85?o#**;ZanAwbB;gf z<+C3=`_8kkIQx>b`LoYF`6NeQ9^Bd$_x!`}wW6Z9Q}A zi(Lo0)^)Ayda5nfwyy1Y_l@pB_Yv-AU7vNuT)SP}t`^rZu6LY2a(>tOHRl(cS2>eT z!Rd0YbG~`{x3}E8<+d%?ZxOegzh!Vs%a&udyt(kq77STC+WfBl*3x2!*Y{p;(VUw7xa;XVWoZL*A5#ztmCkE4!-%|!Gqa@zuA0A zb9eI}9N%@^?6}IoJI-@>9LGC;Yk%GTy#4$3d+oQ`ueYCXAGEKrzuNR{(_>8!Hr?2C zMbjls=QVkn)->6ho?`E0Z)UGz*RkJcZey-zE@fiOZf2O-!mNRJx<1+bc=Mypk2F8r z{801#&G$9m(|lL+9nH5l-`adj^G(e+G+*0%b@P?Ymo@Kio@uV{8OH#NWSc+c^! z=sJ>9jhEG91cg5<9+*k_IK^Sw!dY6!~UB675hu}7wpg3pRqq}f71TA z{ZacP_J{2c+3&aCXTQgOm;Da=?e<&kx7cs8-(bJiezpBd`(^h1_Bp$3kK6ayr|lv8 zMfMBqlXky-#D1>5-`;CK%id$}w7c!C_D%Lv?d$C)*pIcZwI69;WnW=;*qiL{+upOi zYx}kBE!!Km*KDuYUb4Mld(QTZ?P=SSw#RLc+8(hzY$Z{2wDjkX&f_|({^ z&iIt~+Fu;_$$}Q z^*L8Nuja01uKus9zIW9FSE*N>an;dRee2^Ff86%*2R=6Tu`@pAz4R9!`Qk@{A36FX zKlt!pe0c1`t3Uj2`+u`c%RzK7aE3(erQ5{cP?Vb9c|p&N=4}p8HMm7s+dq?a70azfpgo{zQF3{f7D(^>THi z`U54QaLTvjyXAk2ULH+EhoWahH%AYS{%r4$_kM5h1A9NS_nN)?_ImfW?`8IG7LOAT z6MsMZli4R`zcKrn*=uHlvqQ6o&Hi}i%QNFMznT8r^w9J#gdYoE6~=|t!V{6pBU>X( zI?8Vj8hIxO^i{t5o=sh>^#cox9>iAw{7M5?;?9X=KnP3( ze1Ua=BLZyTW&e--clvMk@Ah~2pFi)m^Ugf)#jyip>&8}&Jv9^?+C9`g)G~C;&^tSR zwBx%wzP95FJFeQ1+#&36?O3?BndD`W4@Cu~mEIQ8YlKhr)3`b&MUnuyTA93FBNU7JX*?_;OM8T{S|vv2 zV!cLNeKqpoz5I+&t;Q+6MtfZ~M#YfK%L~ACU8FKk-JJoZ1v6Cy{}sh`Oc@g4a61n6ikzv75_0aYf(I zpl@WnN{SFX(Q7=eo*J7yV`E;=xTla)#m{<;$JbNi;hv!(()N&nSO4IU;UWoPwtT2 zQ}h}))>EU|@yyA3jVGPj_DBEuU)piy>qq_S%{zbB50b0+sSr0a8}Qu=;}$rpZX6Hx%?a|n zBt?u#%O15;ud%hB8jncLySkmu&Z%C1UtgO$E2Hc$lX{J(*Hhz)oW`=63XKzbjm~;% zT$$5Ym2)<(*XXLJM#sDukBD+1riz~fdX1!n)UD1OO8mzv$6MqE{CbUT_0)JU(OC89 znqkhTYXQs2+iRijz|@i0p@n)4qIwNj%=|8a$d8qNBThghl6WIX&}3pJW; z!<#MCXtoV^Sg6r#8*aByquE%B%|eZ4V<`t&sL^aJrO85#D*_9OD#ZMfRK?^BI616^ z8V^lr^vdF#KzuI4KbC6r1p7fBRxXX=D$wCf-w5jb`ILuUp8`>{#I! z7HTv*R`|K48qJLrUejx=Yuj^pu3iuMCVfM2X+uB1hokb^$9DL5pzrb>pZNUG@1Fkb zX+4J0$R1RoUYlM2_?&)xP42C38qLOOPFhWex%oUUR^bsj8puRUL#rjUN??r;}k#CYpm;9SF>{;R{*%Y zHoUGH&CY#XZlT89+(%bca~~hIP-AZHqYJKT{O2+_)T+GB&3$xLHTQ9;g&NJq%|2qG zMze9V4_m3x;7g=SKr;#jcsbBkOa;?I-dW|GbT{n$p`)jhx zK_18HdTKN~&o!XeI8#rJX6Lzx*O13?ww@Zz&U29!j(HlzdTKN~&qW?=$kVu|o*K>0 zbCE|I@-*(Pr$)2$Tzz_t(fVpMH_z3p*BGm(#=}g`b9wX{<7K@VAo*(ppT3LD*gNp4#=xBb=9~wr_tl@8yFmijVdPmq-81p^B$P2{jHv3T{YUqs@nc2EA}@QYHS)c{Fqr*ANhssHj-B! z>&o%yk%{46pMPq!e=1vhjHrIsLXC$Gjcy+uNj+jn_!#|p2M)A~r2jb_K!vV|JWu8F(ELXBo) z00|2t2CM& zUz5oWt2CM&Uz15At2CM&Uz5oY2{U2dlz~Rx6s+JZqWRZte8qMxyM;6OirP1tOb{AWy(d=G!QxRcI0_{xhl9Sl4-1vp&U}7HTx>Q~c6Gjb?p{|Ill!>+{!#nOrmc zs)ZWOt{MKBl^RX1o%w$jYBal7{408mBpg|{HN$3O&1dU1{%t)qnvFG|rPui7dTKNq zYd%x2@!ooBG#hI^L$C3^dTKNqYu={U_?3EUG#hIsyAtI2JzuS-MzgWzZoS5@)l;L{ zSo2oB#{283(QK@lJRO^t*Z-%U8qLOdTKNq zYi`qP{CYh#nvFHP^%}oXPmN|{%`UyhZ`Mukqn}YBW3MI$f`kEU&2BI(xJ4 zs(ebn&i-5V)M)mdO+V0U{B~V6n%sx|AN3j^si#J>dyzb;*Z6n!)M$1ulJDy^ey5%q zb9<3gw-5UhdX3+$r^eh~B*c?3{__udjgP{ab!&Tady#Zj6}x|2ud%N2N3;8z9nR`} z+`7ii%xZiCGB?i;fAp;%&R_SyP3K&9_fxjJzxM!%L|5@sr+q%iAj>L^X7~BXqx2p4 zy{;V1?(;zg)K+mcyUzy+OjxDS>^>hPz+;_8bNhUdK$&G4O~&j=z|ks=W@GjwaBG=H zlQH{yEYxUrU#>4%sL|{`A9q`*(d<4Se`BFWv(F*jWuZp1&mrAup+>XMA$`$8jb@)i z`fCd{ntcxG4ofwfdk*OfdX04*E0~R?ylkaLld+VaTBy-%Eal%V)Mz%A@{)xbbFq}_ z_H}*HLXEjt3Yobw{_}5eXrBLA-+G;Wr(JdXy8f$$8qNBTFIcG2tpE7Dg&NKJk3X?c zqgns)Uo6yU)_;7?LXBqq$7e0nXx4xHv4tAV`j7u?sYY}D<1-d&H2WO;k1W(^_Br-{ zvQVShwS_;lP@~zkg-=_k(d^p7r!3THc5UGgEYxUrZQ(y!sL|}&!Y3`%Xm)Mk_bt?D zc5UGk7HTxRw(uV;)M$2X;o}x+G`qI&F$*=CU0e7)3pJWuTln`DYBamHkSy}BDo$Z` zZ6R4KW0gj;&zyb7LXBqEKmMJC8qKbMB#Ypz%4@UFv6IDwR%tZ*96MQ*X_ZE^&$0hs z3pJX3j-4zLwu+@M(Lmp@7p_>{4|zDsGL3=r163`=P2UQ6$ShA|UDrRFjX!?gLXBqQ zkAG#MMzit9+bz^+HvV{7ITd2`&{P7kGHJXh--fW>pv+>8juu!Af_~V~jsL^cv@g@s3nvFl+XrV^4@yAbD zsL^cv@y{&OXg2n0W@xG0F5mTpm9?JXgsX}G;VGHjawQ(V`~FwJiP%l zIvYTvs{u5+8$e@Q188h-0F50Dps}+7GzE zs{u5g-2fWTX#kC$2GH2s02=!mK%=(-H2NAqV}Ao^+};2h2O2=*U;}78w*fTnXaJ2v z4WMzj0W^*@fX2}V&^Xor8qaG0js6DE7-#^E;|-v3q5(8cHh{*R4WMyX186+I0W@CF z02(iB0FA*0(73w+G+xvI8mAgS>3REDY9E1Lv(Dedd=> z{la(Kb=O=zxcak4k#`7dbr21IGDygaj7#SEK{SJnX0X!?4w|8vW;mE;ID}?cK{ITo z8Me?2tu({wG=r07aM28InxTzmXr~!2q#1%V!)}`4BAQ`}X1JJU;Aw^s%@C#;A~b_Q zGfdMAGc?02%^=bYduWEeG((hTh|vsjnn9u&{+4F=GR<%=&2S&h@D-Zjt2D#cXomY~ zhW|q|JU}x%NHaV{Gkl$9_y*1J&5U8>K+{jvfBcWWd*0uE$Qchk{dPaiu$^WYpcw{f zhI46#zo8lKrWw9OGu%Tn{DfwBo@RJ~X82c{;ooS67iorcsIYc#{pX@+0W46oA+Z_o_?K{Nc4W_Xikc#CHEPnzMsXog?W48Nus{+nia zn`U^2W_Xuo_#c|#H#EaV`hTqW)zo!}gKr_5gGyIWeVA!-fSlGg`G(!{3a1hO4 zqZ#ZpgCk=&>D0DA`p^H;jw@e3>Q`^x`Mds2nfoX-oJKQr&N*V7C) z&xRGYKiDvk7n&B^KhMQ@ITWE$)(+r=X89qxh+)6Y2CC%_Tn&CE@;dYwg zuV{wP(+ppr8SbDN{+ebuF5^ZOHps_k43EC`!};qTxapkh?taR4_xB#y`FJL&Lc>4M z3{TJu-=`U#q#6E^X7~Zk@D$DPG|lisn&F>lh9A)k&(IA2Of&qLW_Xrnc#dZH7nJWP-xgrGYrrSgEYgrG{fJ} z40qEEU!ocAp&1^d8Gb@DJWn&cKr{R+&G2tD!;3V-OEkm3(+oeQ8D6FtvSF&iJkN%y z3JpJ_CG{%J@EXnVbDH57G{fsO!y7cif6xrsFje6VX2Vp4hHRLs(2xyN6&n7FcJW`) z4B0SMVN(B1JL7Gd;T@XcU7F#4Xola=48Nrr-lG|QM>G7MX7~fm@IKA(N17oUrYfYH z4O0~wvSF%1LpDrRXvl`C3JuvXRiPmprYbZv(^_gYypOCh-8L46B`pll*5D5kKmter z2_OL^fCP{L5Dz6A?AUrF?_y&|M ziwRX}INgMLLyGq8YY^EJi3l`uB{)NyeH>%+C*!2iyr`-vN$uVavQ@foU40l+h(`Z*}-L-ZfRPbhvu5=ljMXX^QtJtp+Sv`&*4pLdh6Qz2if|jCCXPvoWMWu|CpU1jVnk55IZ;-V ze3XO6pBy7ib0J8HQx_5fw36xMH{@N_7ZFuSF1~IX{kr{<91F}!^Tw_@ow@?Kq5SI- z%35zFWUsB=Z^31=om0~5Ns-E(SX`6J!N4m2+)vbwZg*nk^H_+zn*AY-Q1S=&5cs&1K~Zda5pW zL9)93x?*m2bhUF)F)k>ZIajN5E2juyDIS4OZdZ3lCl^{!p}dEsh_IRK&U}nOscL05 z=JLufD4J&kbuLv~Ic_qYNgb{2kV$KyUKbn_;YN3~R;ur}v9`QB?-!vj1aHgd9js+G z6((!G{OaM15aVhOH{f=4wsYXFihL*vjgbe+ zxR9=8;V3kV5iXQexwrt8h)XK)QH(>AH7%2Nu|(?OecNR*LX7>sz5x$$OGG6RDHBT{V}9(arN4{39@czMXSn>)+Mlm1VHxoY(}FC-!y><3 zhzqh9=CcK**pw|T4D%z#mS#N!tpQ)+SW;@*-5sfEa9N?a~?`g5u;dARVN!a^bpeY~J}q9GV%$F-7L zYj26vhqTA!cDnQW!8T`3eEU{cM@DR_A1n~x+EmnD8S_c=dN!{xCq5kEc1T}83vW2ah zzL3^#9aw^PE7Oa4B2e+iCZR==wf?IX_fyFaG&3%civ0*<_0qM~m1)PEt)1PureJF) zbdC8Qan?ajwPFktX|i$f17jC~#2LA17`k%nOT-KP!c3G`f=YNcH}psWo*Im+)2)$k za((N{6;&mc>=pOtQZtZ*U&uDId0kKTJCiBoHEVenFq>GaBl7G?LRTl(EWLEcw&+{c zb(7iDGJRI%Ow7BXYz`#HqRAOCo*q*}=p*l-6h(%)p=>$R`H;DEb8W2d00TLrJ3g17 z&f^mlozGYK-i;($naJ}5_H&`6V#nI_?dKAO_*89fKQGCeBv=C9PPSCLmz@;x z!JyHj#LA$~9qNmR<%NW5=-2^XnKgExB<(eH;1D05F?OK9?^TQ)30^wM0%HeDGsAqG zpMijrU|PGkD4{AC{$5$VHK4qZiW7GJLQQBi%d97aG-+I$@lI z2@ReyD)Zr}P&KeINl|AYE?0QsCnhDzqa zkQfT)N3SE{1Z6Nnj?C3|NVVL7c@@0kk%e`-!U+LY3X=}L+~vn*UV(wVM5C z@4v#|W8v=;EW?o1EGNU?OPUyFCH#L1{QclT4D+|}KUwZF2*1OLw!Wkckwlf7%f$WX z_$ZWC2zGD#pZ&Hj#Ae5`5BDr$P65-}Wbrw#7bB0A|v=o?3 z|TxYY5!IP?TUc5cVr>TKAcSFBu-QbtCHuyTfTcAf6*J{`{J;#{3QZJj+GU63uz zl_kr0wihl~*OJ$Pl=pT>lj{j7Dm090o8dmc@T@sQu4(>R?S`-ABk|47b|~_+ctRF} z4;&FiHPqq2p|YV~!{-%3$+Sbgt9%~#(DBcA{L2?SUjW)WA(L4Q6D!XaJo!H2XB#O7 znPdIqm{G^Cy!y$=>$Dr7l{(KE>SDQ}EezMhg1=#0$6LZ)z4=ZMh+FDnL%4_rel zYj7ttu_;N=BlLG5fORB$%=zM9drc5N81nz|~S zXX<(Z9zu1duBe?^{WWtQclB4zom+HW$lH4>FSwl>Vk zJAt{ee10Xtr4#l+>TQe)(UuA4`OJS_k^OK0!gAz!7=xD>ljdOsRit+To~RiO zX;13(CRNp#F9-LNdJu;UtW#^G4PI9F{Ep#sjAjXR%T>&`z+I&Jaf3Qi2j}IA7C&0K zVqA;~oG;2J$dXW}vq$^W+R+6*0mPTI;Rzpu)s<>ej>8ee<>w&0MAlz7IbdxsAAvQ4 z5Oad>U}>cXMiJtiM4oBl5@cw@$M~QxDGPgfaI(10U}|x<%eC#~jlJGLOE4;iQol|F ze17ksza^|GM;0Kmrlrs~Iy^i&qMhgsC$`ZfT~2 zg9G!`C3s-OT7THthPEKG{39n zDf;?qn`8iH51>v#DTN5XJTFO+mLPO7Rb7N+2$u;nF1CPD6EjghE2I@n`D{v6H#^2F zVR*785GIe0E%s)qiKTD0ASw@&szOwPj-Mk=1N7*y-aMQM(-(&D`*}s1u#r`+jT}=V z%D*QZB`sSpQak~$XO3>$J~0^Z?x0Rz>O)o)jR`>-{KJ$2|84qZ6(`9r>W$QKSt9`c9g z?>E10|Gs?<)5ILxw6^KUrd3TVnjB3{P4BbsvG20KX5V7pU|(ZjVP9fjV4q{3VV`E7 zWFKcAWglT5W*=hjXYXV0Veew^U~gw{Wp80`VsButWv^zhWG`d)vvaJ>#@RjWG#g?s zVlQAPSwB0%p3C;Lz3f?R58KJQ*;aNFdn&u0J%K%zUCSQHu3}fP4z`JXpLvgYm-#jG z7V`%48uJSC67vG{9P|v&v5OWc80W-I=GWWuH3^TH8z-QTaS;Yb2ap-@0-|EzX+`C6r1%XDjzR=N%=;n~8}Qh7Nw z7+0sw+&n$ufFREa@?sMvtxmcG7b;K5Wv*gNwX@{vVnmXI)AByAG83|;!taZ zGBENF?w91)gepcAgU4@|`NXUkuI7|6UQy-^CO;+%bI^%Yck~!PBN)}6z5qETAgH8c zOP|R+S3V!0=%w>fP>dCgEM_>>=N%l3&yjXWUNBZ-X=j_d_K-AV>Z)*_sp|!JXq!x3 zQ9HBxYmR|m5EG!ED8A}nmCx6t*VCI+pu#B1m@I|iKS?%H{NTJkK0Irvo{?j{0n){f z^P#BWQ^0Fcj1_FS07+dD)SXa26N1q@ASVS>Spas`oKnqQWbZoDdkcM}GY_laJEk~; zulb3Jd9-sDTrq?BvMUxf+&(3}y#erWH95qKF?5N3QrMt1m=!hcyP`ILt@B~`T*3x7_a4as?jiV)}+Vp8}d}@*|U1GhtKUT zllp{`ox&N7TQl~+F+{4(y$)MNe+;;LtNHfewxj1DxxSv;4 zzmSk*m1`r%5CH{;>~Im2QYT5f4t|TxYY3}FNT|hf)DkJbGJHMJDgqauGV%p!+e^tU6?zm zb;LK$X?1d5lJ{;ddCu;YEBd6wf-KI=!d3cOxZLS|k_@-WlLm=%JDnY^oF^LPv?CQz zs}Mgh0wdU!D^ki}d@HL$gmZSC?(9At&gkM?ojq+`J+7`+$gg)9+f>y*D_210vj>_X zZhc=*&?|+>U_n(lJ|5vReo8Q1G=jsT!bQ@DkfFH8%LUYAM3jQ*M3mqpFAGsVm?{S_ zCJ}hKAI9%WYfK4|>{t&B;LEu7B?mV&Bd8mdmX;oJo7o#phQopo(Qcj$-<{k}UXDZV z!jY*e?Bsm1EXmsEV;I}G7!x>OlusxGkF!Vn)9P$zKE&8S+6*+C08~xNaj=J_h`@0@ zoD-NeIc$D`k8qQGG%3J$z`!GiXT>=Q?o{9ssdM?DFDVOqdGJcOPAJV$@I+lMs2086 zKnp2}sb41oKEHR+-x3^zqA#mT=755aq}&h2BMVx^f)x5jhlfW;v=hDI#5S4)zYrS@ zk(^Sv0F>By01d&A+;`p`+_WTUH#y%L3&P!6HB?yi|RTm){!g)f93hs)!*aAvT z%tZODkXFzui*VCQRX3~aB^P_M)Wp&^ThJ%gzmLs!=X>Ug`roW=`@~?tyMxxZkHu%Q zet|+eNJ}2NKh2d;3j6->K5zk}W6;;DfdxhL5K4Iwslz&G*BB4E_hxL+NAx9Sh_|ZT z9C%V>paj1_f1p5z0DZ&^V++9uXDSj-OeJ`59nK`(M6J6@Xky@6>lhn!Co=fnnM-Zj zw26yLoFZ^Zh3DWC#LaCn5)2oV`b&a)my&8Csb=KV^3F%Kl%YQjC1>E?6O1jvhxfwx zq23qE#7Y_FLbzti|Ea?@;huQLmMX_}NIvakF?$)C<_vLBiH{H$7)Ik-e2JTur5N#H zH2)5q8yMFMq%g_C42(Es2uW|&zElRiJ=}-4ZuNF|cK5lq^t-yQG01`j~NB{{S0VIF~kN^@u0!RP}AOR$R1dsp{Kmter z2_OL^fCP{L5*vyZZmun)5jvG=q0vG=fdv3Ibyv$wLhus5+cu-CFzvsbd0vHRIM zR%YYu9(I}yu@|uyu#>Ex9bwO9``KRhEVhU3WZi5lyNNxOUC*At9?Py}k7QS|D_95H z#J^OLx+EL)kjthtZH9%1f;eH=#T6g@SXzyzkX{fE7rn)3Txxw z$16kyRgBMY(_&QM*7x#?5KK;r!u)nwjF3;Qk#KT->&g{n4<3_+IXI`xv3kVC&D$HrtSAqo*b zA}FSLlIq}@k&_86U(LWIDfCIvWGv37vx0HZ%0a0+Nu9412Xj305->|MFA35%RG%Fr zfqpRx_h+Iwl9R`HnU4wN{B%~D*D)r@q7;$(h45@9M@lwvl;TO$1d=fx5~<=|@@tFN z5WB`Gh#fQ0a2kgB1wUyNQ6Eo zUb2j3^2IMq3$g&+AirIRL%j&|*&Nn90WIC)gAC+&@kzm4Q7$$bE7N6UmrFb#$a8{R zslrrFoYbCT=>}i~R4KeSOIG_-^;vnf#bg4yj#WzooU-b56elz3@%x56sg&+3TizzY zx8oJ)n8Si19x6E&A}xj(k>sE+05w-o%k}iR zW5*W~Wj(~)kvoOZxFnSwujCHi7ZwsKbiYH=Oc~U<<97`Y^(Mt=M34;~eu0=UcHEE{ zGIHRwyw5W;BMURUnjXAeTAuN=G9^Yt#gGbetS|?yh@l+Oj^3A$1w{dVhQveq(=c{W zWK|W7o-iZxiCHmR)j47`!OM!VEF!ld!k}1&JAr?V%G#4=#N1n+zar0Ry}{IAEKzRA znJr;(!nn-G72-R9>(DQTX9e)gt2|#x@Je+jrD|}tm#F4?g_Ym%xklm;SumuNfIf9F zPD&^*FBr+G^f>_@#;~d5nS09TSJLb83tT{`I6qhJGG0feJEdirwXvvk}p1E)|7=_D6T+VIdJrFUBWo_Fh z1_Rz5K_U)f1%=kJ_)PX-g?5mZJoI}~QU+JMFp2O!2p&X908|YuC~d`wFpQV6x!XG0 zwsvq)5eEL7Id^AkcL%4Ch9?3a+q=3uobBygXaVkq3ri6J4ry=S>U5^Ria_0OWtfeO ztyhwxd_2N|)2PYehkOg(hx}IdN}U%UT%F~PtYrciMOgM95Dt2=-T5mN^n9+k|<7a zSX8)3`VfeBWaI|aWJHuWXdbj;7@Xu~A<72>+C2odm?il~i{>QuuIElaZ(EZsnR3BX z(NpN)Hg$J;NsxZ$XpUi%*qu-NpyF& zWQtr5x6|cp>j0E$QjT+TT4K^PH=T@!iHpc>2+T_JDGeLAm^d@5av_0B#v{TsFv+E! ziP{s1TiyEfT~2OTP-mqGw}FIFNs1e|S!f~^ZcdcdBp>A<6i4iEJ>x=?xsoSRovRjEiugq?(7B6MX~B@VKc7$Iikb!m|L%!2wBScrwBDDd}sQm5zQ zYH4xcH-^C*hwRU$PohS;z;-H^pr~a^s~)Nc`WRuKft!_!Qr<48`BwtaIu+UAI8o5$ zqzMp>UOSs!G?e)jt{2|hH!Fnq7G69X$<=PZy>eysz!?zyUC+ zo1kBaMuj*pk4rFvB`9Mesb}l^Suqf7=RQGQ`u*r#q_zOKukBA-}m9t(4+x~@mN?Nnz*ltfEkqaD~%dZ1Km zZWKYf+thBFjK-C`7;BD2KwW@_6kw3U;V|tpaRmsd%3`T)yGNT|v_dPi0pP2HE3+VL z?%u|53+L+Yc5WvBc5{RAge-!K)+fo}Q}M(}Y~?slG|Fj*E1WDSWJDVQKl;uk@S`)c zE~(OxnHk9RGrDhEBPlnVd4kFK+38Hy4ojb_wI>~rG5Iw=&!x@up?!QvfF&mUV4TGJ zpk`I!;ifN}c642xUD;8RtF?V=ZjjWr)#cU?k#e8Y<0GT}Pp$IUOxykMY*G2z+P2y4 zbarr=J~JRqtMlMz=a)06MY(3X#JpJz8-7aaHERDUsV}x0s0gQv-n@*%nkqr9+`dF& zCB#E>7l5^2VHgpRk&Z&f9uH^hRC>-ACLL09{+?(E7GK1*dev6Y1?1H$Q$t14I;U%q z+X+=A9cys4cDQo2sC}!e!>tQ6xLldfS}kgAT73D`&F|N+WEQ2nRo^n@T%GEClA?5L zR~n0w?xdH)fC_{33d8L2NKBU`6u(rl%Z|87A^ zCUUym%g96mJSuJ8wm~?j!{>qXhSHNi1-idl_x3v9x6!rKX#=IbCQi84dUzC=Q!P*p zQQi8s*5*YIC!?yEfRzWS7SQrW#H8|~a$Myn zIuowVtoum2Alf1ut4nrPq7mV`2``bG{!^!hK?x>tP-!p$%1ib&RjuKv$C!Hy#P>3f zdTJ9`=_kpwFdf9xO3xP=UNDe(FfB7Pkp5gawVpXlyDD{J+S3Qi9bu9s-7?S@pNvmy zDj!RvR0>3JWhY*xtX+v)an;V!9{+9>6C;ZtD>NgPujAjzF9s# zBSgx9aghjd>HP3iH-DD_Q@uQ<9%XPj#sAF2FXP2?gvRD@wsvQt^3K*SXD%w=)!v?2 z>X%ym*SR%+<=+QQ$K*Wg+Y^)RuTKE}ux=WX)*2SAaQoEn<*f&ff4#kn6w>+B zcWki8yG#Xj7IA~st(mSzU$@NWg4?Q@3pUe6oWa<@jcUvEbFhY^E7#ApJDsjh{p_Ye7ZR4)Z;ZS$W3i^H09#t8G+2TOL-#cA+JY!3W03LQ^px-Z|j5y zA<|1dx>`HCbCr!)x-)A#Qf_6t)76!!f9d*W#T;yQ`HL>lLR>AfEGECF%bSDEMYc$% zW&Nl>BaiIVp_?-c+1oqOGrr zCS@;O=V(%JQLEQDLxciD&Q$}D!sd)OqK zSX(UkpNZ_o5&YRos_xhdMbwW}>}Zl_=pmpmO&)#LW&=SuS)ABO^!-u0K1O(HM9 zES24KVk8+0!EToP!szt)tgurM_Eva&Tz@UHM@E&`BC|=e+SSe%$UYIJwz_b4Lue-Z zL=ikPl-;}p_BH9!N0~?tq_#3i7p!XfqE9YC8BA|plHJ7wwmr%eyP7=@YNl^7+Sk{r z|HgS{m$SNQ@DlUZIM1xxPsmKU$9d+(@2QlTV_M`4EOahB&NCNo&Qvs!ZhYRdn!eEN zcxq=2#w2-RV$HuUcvv~tOjft6NMW)ya@z}&UF-wAspWfxPj71=%4~w+YYA z<>Wsy-c9#&fk0JmZsEOUE|c5N!!y+D@q0$naoyC;Ce^K{Fk60KuE8D&+AgfMEV;P^ z3%vPURWPusC~sh$ORzSjH9eBjl1=X-t_?m4s#xA)qQ#b1SLfF3+_S6Ioi`|ey$cH$ zdbl$y98-e=Cu4)>-N{CSegSsQ2@5@3FqqmT5?&<%8|?{k*iJ>WM7ViTo#hw?&KVZN zusbenkil*Aw{WTBeQ|gZfRNq)(B0~6?QnLvyIR}b4D)Hmc46+M))C)0*H2!5F)zt` zH$V+ZUlfLcFbsx0bYn`0?0&tT+ep5QYhQA3Q!|1JJ9M`6 zkXub{pTXr0fNyDUIU>O%E#Ow+Wk|61Z+b5o?VUVjHb^BY!po3~gF=p-=ko-qg+@5TYWjZN-~Nbvoo+gNJ&1t2$WQiLnxvl!(k; zA_j$2k@8snE3Sa|`DJ*gv>1c!%k1o4ZqMRWzL1+UmMHA(D$EG7q1?-Cs96axdFY~- zmt|fn9AsOVijY&M7$_FxKyr7f6iIveC)CDv<=WWJo;FucM;B>hzr$GE#`-;8F16il zFx^lq1>4%kxjU%(;79?WD}T z+wf)1+qNlk_YV47f-vg= z`xz^#Z;L*XeZFBFv;bRuYp3;%4iArxXeWBZiEXgl-6Mx*#W{)WX3Qm0HGqfp_n95i zxy`bWLHYM!F6ueM1B7J#H8Kq-aij^uesinIiK#p-g5WC-U8DJr}vQ(bHUr6y*g zd{#&+=!IvmVC&tgh>r0}7%3N&22 z(?5C8P6_t&3Oq(e8YxbD8$gNI4(y@7uV8t<%OG`!saGC!&;X2w+1 z3Onqlca_(++E>7tfWC5uv4vp7GX*b-n1a`O%yMUPRX>wd+2w*Z2ClV^u|a=Ayp+tP zHf`Dj-VID*&hG#@!P;d!$;Y*|CeT99AeSv+BeTIFSeUg2geUyEK zeVBcSy`R00y@$Pvy@S1-y_LO%y@|bny_UV2y^_6*-OtXkG8t6(=3VC3%v;PG%xlam z%uCD*%yY~$%+t)1%;U_X%p=Uh%tOrm%zex~%w5bK%GgTMr^5fQ-wX zV+l!CmCQ#dM8Uy$WFd3xn1A$KU*CAZJLqo-_9mimoL`8IhO`361-v_2(#4Nz2=+-4 zVY?8gAK)ML?xI`0yvhgSe1d+&1t6Mkh17k0baP+<(pH2L2YAEDpjYGIn-k=DNs0gg zk=zH7#CbxBD)V7A4?xN9gI-yL^9kVsd+q{byb|W4Tp%oq2}qD?NY(Uh<2?Ws@-0q^ zodUT#Cq$)$AalNb30Y7SZZIAu&4DJr;NX5EF0Ve-p><|XWo-UrJPyq~mub%Z=^N$3keOmskXzwrBV#MF6L7@Nag$Jx zL@Ca7w6;5;zhP{BQer_CXJ%DyW4MKLb$2^AlYhIR2qa_?+WbCAhRo(wIIET8Jkcnp z9j1#!}(H*VFS5S>znxskC=DCCadq!{U-hQzqQ^>Ezj zz1;d*xAEy-E&!s%h$II+k(d}Co17wF0J=y*UeBF=9&>t*Ut06DBy&5(c$+(`o+I^< zV03M51&qx3O+_5HwrzGhogLY{3P{uHJao7DJXfypc?YKgJn2WF8I86kcx9t&YYVrN zmq|wVa64U2XD2ri7gcV9*8>fwqzc*%gaz%44IJs{1*o)PUKJuG6Lhy1BflL9AAbJNLqn6#cy-Le_k+Q-W?yxcEB zJ&`5&dIJ~J8sQK)+3|=l4ecP*<~lWjy--DiNmAIx`A}4tP{pXCwLM$A^mpUbH5I*s zBc2GKPzAYwjrBsi%eHCDNT{o=Q;)Q*lY>#0NVszwJpE!6a0-!3_Qxfao8{*OE+hzX zPK0(}#F1n8B!T->;@Pv!V&kjy~|1&4EkZ^YZWf!o4~GjR#-g9|NWJ4vlG z3Tj1uDBvF(PxWryt`=?p9Izg4!0qhn0vM#4@QMN{!1<~K)uhkUJLwyl@(X+fI%XKH zhQTK#uE7Q_4z8*U9^>TTddcjPpqJoHr%cegu0a4p!n*%vs?>l$onyq7~S`&KDAOF2E$yCDvRcl zqx82%6Qg=QCCXSC`bBO)Q6E)hURLsXjNTs<3qu}{(e#RL)Cm7}H?`Q7^ma8 zf<^U;VO~kKlhvhKp@FL|v7*{vvYD$cO#=hGsuMKSr%$-JWHwO;Vx7XQo%4=|ULKjn|h{3ob$k2Kc z*PbuecpKH=hS=FsYuIY0Bhh-s!I8=AFv)3v=Fs2>oML#Gl%G5ql~w`;qcF3{cL9US z$&ZX1Nk3a5z(Eq@K}DX^e#z@_3!VF_0;Uy{chmiz3gJ_R`G-8;hbG@mcg-OEGNFu$ z%By$!Dkj-c$T~Ot$vJ^VT~ftlT`qb&XHn^r1|fgAR(4E1o+(?csV;j$fhd3Jp*0*i z7>9X*m@aZ(2&bxoSTf1-g+n(VP(;0Sf^^X3N*l~^T-jtRo#G<=$i*aB+KV)wVo4uz zamkf%P^wL^jPqD+Qbqog!4gw8f6I-Ms})#zr2Lw#>M~e#*G4m?dY>`d%#F)@T$zTr zZaggV=@`F4dakS?@B3Uwwl%NMZ*Omd8Q3V94$aLUzingw?UZiZQ`vkG91zWxR>qUw#>KmfUtKll2J-rH&QqCHSIe`N zZb-@~+VJKyi*%T!ffIlpF>x*FI?J9B`9#mv(Gc577+swdLBD=SoM39R!wtkzN|nVIdKQ zJr`g%1+A>6pRMo&78OOk;*HScD!huQ~ z%=%CDk8f9{eEB#~=4CIP17%Y4QaeyJki8@h)S`8laG>hmJ=R3D^^LVj*-Pg>nG{^q zFBZ5@U#)vg#H8@0^`Fd(Uh4R^N##Z5q+zP$()drXmx%%ol)wUx{OD8m+bOgDQ{CI^ ztVAQimyi2oUiQ+tPbM{2aGx0F!MeBEHBi1J9@L_BFNFtH6VcW;*Cu5zod;!7a8b`# z;6W|d7JF$OD3h>3^in%eCY2WzlcE~Q{OxjWx0l9+3aCTMLC2{)}t-FNV2Wz#zT=(|6Cc=w4n&nzfmd^Dv z$+@Ucx7zhHse5T%Kl7rO+VwN3yr`HoOpR;+$Ir0;#4z>Wi*AgEcS8%Xt*<`pm;HL# zx~y4+MuZziUiXg1yzHfOSxstQYTvI0vX{j7TeR*HzTa{!*SRu6L|fm>m}E`$`@qM( z{-ApAMQ2iUQKxRT?`Kl?()xbpMK87QXHt1lF=?1uS`L2?@5kgC_%8InEP}a@yevCkqOB)F}em)`GT-mh`nE z+~|(h<8qqeT@#5}QKyt)u4Zf#3b~{7o5eZu<}R*><4*78*4ODFDeWB$~=akviTE`rqy|P z18zP;*eQ^7HQIym0+CU67saH1H2vHV!3xi2#MPo!vs8NJ-}6((l`EB4o7p!?l}fDL z+zW#M8$8o9EzTrmUWVUlAL?LbtjaA3J-ve z>7VK>N}^C%*|&uSW~KR*hSIMHOQ$|23v*D)QboU@V&;{uet4G{NzquznoeDq6kBa8 z(*>nJ84qjMaJehL+Rw|&>9-R3_Ca3(Z(u9{6Ua}n8|p*`tbRw-Xku8I=}k_jn>hNO zsL*MN*=rKTDgEBwK~;!pvfHWKu0ltZND7JykK|U`c{PnCoh%<#HTVkDP;oymryZ3I zP=3D7WXeyTgwDJ-59{x9F%satz_J(zQ<#v|7>ubvr-8 zme+tRrhCd>HB~K(uS;GRO1bW08m{bha~@Xq+S>gVTsFH|b<*oeotrzc$jz#lc;Tki znYT4oc0`y2jM+0em6M>??kZ^P^_yZFmrr~Y&y1W*@Tq52(yctTvGNSUo8a~tXe{NT zl%WjeUkMuO>|K&$``~$*Se#ch1^KUd)wh46X|_@OxjjbjD4U>Ph(?7tFON$qdENb(Ncw5| zwcX^c_xTm9tmgsUclzFTzzhCLdmm-4)s@%P)`*>(-ghpV-F7JY5_H;IVEmS;bEGuF zE*)eVBGpdhz4zH?QTf6pF2 z@gplbOIrQUTzPIL{adOFfD~NhH+bn#0$$NA3JUo&$w!ky-z*=W5hCTlXak5$^(@eq zs_FHY$9x0&U|M-`wdK`;0)fOOt*QyF2}0;agxpw$$TQp=j3i?r0bX>lFgiUxE9?}6 zy%m}S{k6!rsmf~&!@zb{yW05z89T(ZcvOhIb~GYPLr5sHa)rAaI=oB-t<~kqdASf< z>&iH_DJPfY!2kN#*?P}EiqZe(f&D|Ag1BAYz4pa&H~FJOuv`cUY1=03AKtI_Pb+phn9SiGy< zbI$zcobPy_M^QY|+1{SMVO2>nd{)=o_?qk3Uo6W`gd~?-H=lW(SH~m!VCWHL zM#Xt+LUb@cBC1|^*@&%6Kaqy_Xxn2?c~gx#(oQ@B8F8Gf7Eg8}Ig(Cz_Po$LPN3NF zb0URa_jqic&qm5r4X9nVmi+PRzuMH2qzJn9%if$gmKW$@y3B&%PYPM`D-FqukBPV2!m_3!?Cx(PKa(lQ1Eml+Iw@g3sTl5ZtQ{0tv zS`7%3hr<^NN7T*1w~urOEej+N2t-w*RWV}yrtP66<21i$;{G5%>)P=26?K!a{z2O* z+}X1~qG!Wea%`OG5r*YnF{B3S@m1TdN1i;Qyd8C4w~lw%aAY(4n{f*@EZrAV2Lwv$ z5twK`Dv;F9=DPVr!dZO0C&qpzC0s}cJ2PkHw}*Su@qChc%zF6LsE3{knxj-E&F&lS zXC71KEA>B?WNTL`KdZHcFA%q}T82=?JS898t|yK9h;{YInx{1`YD#&M>Di%sr zdbR`@O+AY&OVLS2TV=ndjDgB-gZ39(pKiu+eOVC1;eBj zYf+$JNLQe{LQ&11qA1V-lY_ez{VP|Ru0K;iH%^(~nukT649cgP=IqA*_G{NZ7JaKS zk49Q5*7Rd7OJ{2a_*PnW-~<1!Xp`!_vZ#`LcEDz({$J|MuCKCgotfjhOunDWIpVjZ zgKssYA!kjoEO1@XQrDV1yDgd=iNIqNjp9cVlt8YkE^>H1mCkui@Z*AKL=aLQF(u~6 zMjQsU+jZReYYtH^X1)HJ zDuZgE$Hu1hdVDqpUz1Ji^}2%fP1&Y{h`q@*M6nV`g zij`$H;HHD|c`Y=}f^;yK5%{Eg&=!NKriGO--)b{f;e-M`zfrI_uxwv~zAk*JBk}S=H&+1F^2KU z!85aQtw)NtX2e*VwK!MwW*t~CCYh>}leE(MDi;**hqAcLP1jHfUAY;oE--7SvBU@+ zSR)sncF`75-5JE>>6TJ{?Yhw=YV6Q~*wNTw7R+Rk2q}`uaW|~8O`~HRXrrrb43PX@ zQiU~t4ETzrc_OEq+6TYpp&#isP0v9VK=$Pv&XH+_O}wSY3_c^G?c6W#LxQ z_8^}a=QC7cMmZnM=Jy4oeq9zt4SBhNh&OC5l7B2@Q8RM2)f^uASWs0CN$={CLF)~u zk&s8xK>4FLXz?YvwX5_7>yh- zd&F48*NXPSnI`B1>Z*&4l0$0X7_GYuI|9p9t=^Na_x=H%GItUQo|3*(aq$$NkfvUg zwjp&d2!unP7b)?ZGKvKCK%}ALmA~uD(m6MoTs)uiWKX2?iBV6I&&5x8;yj(4L?FZOJUIS(RVoT4~s-@7Y`=YuB;g*7fVexmkHN2lBaGI_0COLxb>^tbkhLn7FO>(YDhV&R$-txV`FhvTQ8r(Wm{wrhz7g{ zW5y`E0^vxc%UtXg^!g&IeKXp+F~MfkS4w3BQc(}9pkd_%sswZA*GRjq^YTS~szOP% ze+JiAG^}MF$(}E*@K%`$+~2-Qiw6Hd00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1VG?_oWRfT@4o-w9)B-(Z|}YJwS~2_YvL#T z$DJRSRwq}*)t##kKPrFp+1-V^JMR9wyiqQe$I5->!XJeXeIHJ*jIF$~^5vC{J2&sV zd8hw_XFnKQKC;}k{NVQT?c(kAKNM~qxpjT%>{5QIbE$3V)AzT%U-*6Ky|(xIZ*<=1 zxKUm#Elw<6|J~ScZ@zox-Szof^KRWr? zDxID@EuP+a`eC75C=?z}#(q3KzJ6-&_w&N?YaQR?ht3_|IJm!idjCd53@mhR|JKgu zi=NdTh387otbKLjD}Vn|@e3WFUwo?Y)Pwfb_Qm$G_TKg#?F-w4C)%Dk)AnrJ99Q5v zxS!nTxZg-K;_!D5_Otxl&(7-;WE;1O-UR=-o4x+^IeNYOkFV3~u8rsE_36LR3;uxs z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x XfB*=900@8p2!H?xv=D)lbS?h@8ui%p literal 0 HcmV?d00001 diff --git a/Varela/Varela/Build/Build.fbp5 b/Varela/Varela/Build/Build.fbp5 new file mode 100644 index 0000000..f25caf3 --- /dev/null +++ b/Varela/Varela/Build/Build.fbp5 @@ -0,0 +1,2825 @@ + + + + + + base.fbz5 + + + 0 + + + + False + True + Main + {4C1B4E5D-F42F-4877-9F28-41B527858954} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + False + True + True + True + ftString + False + True + False + + 0 + smNone + %FBPROJECTDIR% + False + 0 + 1000 + False + project_path + + + + + 0 + {78526C82-A8E7-42B3-8C9D-1E229C79D915} + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + + True + True + + project_path + \Build + + False + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + + + True + True + False + False + True + + + True + False + + False + + True + False + True + + 0 + False + + + 0 + 0 + tpNormal + True + 1000 + rcEqualTo + 0 + %source_path% + False + True + 1 + True + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + search_path + False + True + False + + 0 + False + 0 + SOFTWARE\Borland\BDS\5.0\Library + -2147483647 + rtString + + + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + True + True + True + False + True + False + False + + 0 + False + 0 + 1000 + False + + + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Servidor + 0 + + Servidor + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\Servidor.ico + False + True + True + True + False + False + False + False + False + False + False + True + 3082 + + 1 + 0 + 2 + False + 0 + %source_path%\Servidor\AdminPV_Server.dpr + True + 5 + + + rcBorland + 1000 + %source_path%\Servidor\ + False + True + False + False + [usPackages,usVersionInfo] + False + True + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path%\Servidor + False + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;vclsmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclofficexp;cxlibraryvcld7;dxthemed7;cxtreelistvcld7;cxeditorsvcld7;cxdatad7;cxexteditorsvcld7;cxgridvcld7;cxpagecontrolvcld7;cxschedulervcld7;dxcomnd7;dxsbd7;dxbard7;dxbardbnavd7;dxbarextdbitemsd7;dxbarextitemsd7;dxdockingd7;dxlayoutcontrold7;dxnavbard7;dxpscored7;cxexportvcld7;cxintl5d7;cxintlprintsys3d7;cxintlschedulerd7;fsibx7;fs7;fqb70;frx7;frxado7;frxbde7;frxcs7;frxdb7;frxdbx7;frxe7;frxibx7;fsado7;fsbde7;fsdb7;cxverticalgridvcld7;easylistviewd7;remobjects_indy_d10;indyprotocols;indycore;indysystem;pascalscript_ro_d10;dataabstract_core_d10;dataabstract_scripting_d10;dataabstract_ide_d10 + False + fa8 + True + False + ..\Lib;..\Base + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + .\ + False + False + True + + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Base + 255 + + Base + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Base\BaseD10.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\ControlesBase\ControlesBaseD10.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Parametros\Cliente\Parametros.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + %search_path% + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Usuarios\Usuarios.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Configuracion\Configuracion.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + Módulos + 0 + + Módulos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Devoluciones\Cliente\Devoluciones.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk + True + 3 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Stock\Cliente\Stock.dpk + True + 2 + + + rcBorland + 1000 + + False + False + False + False + [usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + Cliente + 0 + + Cliente + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\Cliente.ico + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 1 + False + 0 + %source_path%\Cliente\AdminPV.dpr + True + 1 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + based10;configuracion;controlesbased10;usuarios;ficherosedi;ventasproceso;ventasterminadas;referenciagenerica + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + True + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\CargaEDI.ico + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 1 + False + 0 + %source_path%\CargaEDI\CargaEDI.dpr + True + 1 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usVersionInfo] + False + False + + + + False + False + False + True + True + True + False + False + + + + + False + + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + based10;configuracion;ficherosedi;rtl;dbrtl;vcldb;dataabstract_core_d10;dataabstract_ide_d10 + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + True + True + + + + + + + 0 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Servidor\FactuGES_Server.exe + + True + True + False + True + True + True + False + False + False + + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Cliente\FactuGES.exe + + True + True + False + True + True + True + False + False + False + + + + + + 0 + + True + False + True + efHTML + False + True + True + True + True + True + True + True + True + False + + 0 + False + + + %project_path%\Build\buildlog.html + 0 + 1000 + False + + + + + + True + False + OnFailure + {BA6B406D-5FE5-4FF9-8D33-0459EBECDF95} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + Project + + %project_path%\Output\Debug + True + False + False + output_path + vtProject + + + + + False + False + False + search_path + vtProject + + + + + + False + False + False + library_path + vtProject + + + %output_path%\Cliente + True + False + False + package_path + vtProject + + + + + False + True + False + project_path + vtProject + + + %source_path%\Lib + True + False + False + modules_dcp_path + vtProject + + + %source_path%\Lib + True + False + False + base_dcp_path + vtProject + + + %DELPHI2006% + False + False + False + DELPHI + vtProject + + + %project_path%\Source + True + False + False + source_path + vtProject + + + + diff --git a/Varela/Varela/Build/Build.fbv b/Varela/Varela/Build/Build.fbv new file mode 100644 index 0000000..bd99b75 --- /dev/null +++ b/Varela/Varela/Build/Build.fbv @@ -0,0 +1 @@ + diff --git a/Varela/Varela/Build/Build.fbw b/Varela/Varela/Build/Build.fbw new file mode 100644 index 0000000..e69de29 diff --git a/Varela/Varela/Build/buildlog.html b/Varela/Varela/Build/buildlog.html new file mode 100644 index 0000000..e6beb80 --- /dev/null +++ b/Varela/Varela/Build/buildlog.html @@ -0,0 +1,1298 @@ + + + + + + +FinalBuilder Log for Project Build.fbp5 + + +

FinalBuilder 5 LogFile for Build.fbp5

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Project File :C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build\Build.fbl5
Log Title :Build.fbp5
Date :06/09/2007
Start Time :12:09:00
End Time :12:09:45
Run Time :00:00:45

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusAction NameDescriptionStart TimeEnd TimeRun TimeOutput
Show All
Hide All
-Action ListAction List: Main12:09:0012:09:4500:00:45
CompletedSet VariableSet Variable project_path to [ C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build ]12:09:0012:09:0000:00:00
CompletedString ReplaceString Replace12:09:0012:09:0000:00:00View
+
+
CompletedAction GroupBorrar ficheros temporales12:09:0012:09:0000:00:00
CompletedRun DOS CommandRun DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ClearFiles.msbuild" /t:CleanFiles ]12:09:0012:09:0200:00:02View
+
+
CompletedRead Registry ValueLeer la ruta de búsqueda de Delphi desde el registro12:09:0212:09:0200:00:00View
+
+
CompletedLog Variable ValuesLog Variable Values12:09:0212:09:0200:00:00View
+
+
CompletedAction GroupServidor12:09:0212:09:0200:00:00
CompletedCompile Delphi Win32 ProjectCompile Servidor\AdminPV_Server.dpr12:09:0212:09:2200:00:19View
+
+
CompletedAction GroupBase12:09:2212:09:2200:00:00
CompletedCompile Delphi Win32 ProjectCompile Base\BaseD10.dpk12:09:2212:09:2400:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile ControlesBase\ControlesBaseD10.dpk12:09:2412:09:2500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Parametros\Cliente\Parametros.dpk12:09:2512:09:2700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Usuarios\Usuarios.dpk12:09:2712:09:2800:00:00View
+
+
CompletedCompile Delphi Win32 ProjectCompile Configuracion\Configuracion.dpk12:09:2812:09:2900:00:01View
+
+
CompletedAction GroupMódulos12:09:2912:09:2900:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\FicherosEDI\Cliente\FicherosEDI.dpk12:09:2912:09:3100:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk12:09:3112:09:3200:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasProceso\Cliente\VentasProceso.dpk12:09:3212:09:3400:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk12:09:3412:09:3500:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recepciones\Cliente\Recepciones.dpk12:09:3512:09:3700:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Devoluciones\Cliente\Devoluciones.dpk12:09:3712:09:3800:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Traspasos\Cliente\Traspasos.dpk12:09:3812:09:4000:00:02View
+
+
CompletedCompile Delphi Win32 ProjectCompile Modulos\Stock\Cliente\Stock.dpk12:09:4012:09:4200:00:01View
+
+
CompletedAction GroupCliente12:09:4212:09:4200:00:00
CompletedCompile Delphi Win32 ProjectCompile Cliente\AdminPV.dpr ]12:09:4212:09:4400:00:01View
+
+
CompletedCompile Delphi Win32 ProjectCompile CargaEDI\CargaEDI.dpr ]12:09:4412:09:4500:00:00View
+
+
CompletedExport LogExport Log12:09:4512:09:4500:00:00


+ + + diff --git a/Varela/Varela/Database/1 - tablas.sql b/Varela/Varela/Database/1 - tablas.sql new file mode 100644 index 0000000..b3035f6 --- /dev/null +++ b/Varela/Varela/Database/1 - tablas.sql @@ -0,0 +1,878 @@ +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CABINV] +GO + +CREATE TABLE [RDX_CABINV] ( + [NUMDOC] varchar(25) NOT NULL, + [TIPODOC] varchar(3) NULL, + [TIPOLIQ] varchar(3) NULL, + [FECHA] datetime NULL, + [FECHALIQ] datetime NULL, + [EMISOR] varchar(17) NULL, + [RECEPTOR] varchar(17) NULL, + [DPTO] varchar(3) NULL, + [CENTRO] varchar(17) NULL, + [FECHA_CARGA] datetime NULL, + [IGNORAR] varchar(1) NULL, + [CARGADO] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CABINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] + ([FECHALIQ]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx3] ON [RDX_CABINV] + ([IGNORAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LININV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LININV] +GO + +CREATE TABLE [RDX_LININV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [CODART] varchar(17) NULL, + [FAMILIA] varchar(17) NULL, + [BARRA] varchar(17) NULL, + [TALLA] varchar(17) NULL, + [MARCA] varchar(25) NULL, + [TAMANO] varchar(25) NULL, + [SERIE] varchar(25) NULL, + [COLOR] varchar(25) NULL, + [MODELO] varchar(25) NULL, + [DIBUJO] varchar(25) NULL, + [DESCRIP] varchar(70) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LININV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] + ([CODART]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CANTINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CANTINV] +GO + +CREATE TABLE [RDX_CANTINV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO] varchar(17) NULL, + [TMOV] varchar(3) NULL, + [FACT] varchar(12) NULL, + [DEPTO] varchar(3) NULL, + [IDVEN] varchar(10) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CANTINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] + ([IDVEN]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_CABVEN] +GO + +CREATE TABLE [RDX_CABVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [NUMINF] varchar(35) NULL, + [FUNCION] varchar(10) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [FECINF] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL, + [EANOFI] varchar(17) NULL, + [EANEMI] varchar(17) NULL, + [EANREC] varchar(17) NULL, + [EANVEN] varchar(17) NULL, + [EANALM] varchar(17) NULL, + [EANREP] varchar(17) NULL, + [EANPRO] varchar(17) NULL, + [EANADMSA] varchar(17) NULL, + [EANREPSR] varchar(17) NULL, + [ADMVENSA] varchar(35) NULL, + [REPDEPSR] varchar(35) NULL, + [EMAILSA] varchar(35) NULL, + [NUMFAXSA] varchar(35) NULL, + [NUMTELSA] varchar(35) NULL, + [NUMTLXSA] varchar(35) NULL, + [X400SA] varchar(35) NULL, + [EMAILSR] varchar(35) NULL, + [NUMFAXSR] varchar(35) NULL, + [NUMTELSR] varchar(35) NULL, + [NUMTLXSR] varchar(35) NULL, + [X400SR] varchar(35) NULL, + [NUMPRE] varchar(35) NULL, + [NUMINFSC] varchar(35) NULL, + [NUMCON] varchar(35) NULL, + [FECPRE] datetime NULL, + [FECINFSC] datetime NULL, + [FECCON] datetime NULL, + [DIVPED] varchar(3) NULL, + [DIVPRE] varchar(3) NULL, + [DIVPAG] varchar(3) NULL, + [DIVPEDF] varchar(3) NULL, + [DIVPREF] varchar(3) NULL, + [DIVPAGF] varchar(3) NULL, + [TASCAM] numeric(15, 3) NULL, + [FECTAS] datetime NULL, + [FECHA_CARGA] datetime NULL, + [IGNORAR] varchar(1) NULL, + [CARGADO] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_CABVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [RDX_CABVEN] + ([NUMINF]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [RDX_CABVEN] + ([IGNORAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LUGVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LUGVEN] +GO + +CREATE TABLE [RDX_LUGVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [EANLUG] varchar(17) NULL, + [LUGVEN] varchar(70) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [RDX_LUGVEN] + ([EANLUG]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_ARTVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_ARTVEN] +GO + +CREATE TABLE [RDX_ARTVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [NUMVAR] varchar(35) NULL, + [CODPRO] varchar(35) NULL, + [DESARTCO] varchar(35) NULL, + [DESART] varchar(70) NULL, + [NUMCON] varchar(35) NULL, + [NUMLIS] varchar(35) NULL, + [CONESP1] varchar(3) NULL, + [CONESP2] varchar(3) NULL, + [CONESP3] varchar(3) NULL, + [VALVEN] numeric(15, 3) NULL, + [PRENETCT] numeric(15, 3) NULL, + [PREBRUCT] numeric(15, 3) NULL, + [PREINFET] numeric(15, 3) NULL, + [PREINFFT] numeric(15, 3) NULL, + [PRECALCT] numeric(15, 3) NULL, + [PRENETCA] numeric(15, 3) NULL, + [PREBRUCA] numeric(15, 3) NULL, + [PREINFEA] numeric(15, 3) NULL, + [PREINFFA] numeric(15, 3) NULL, + [PRECALCA] numeric(15, 3) NULL, + [BAPRUN1] numeric(9, 0) NULL, + [UNIMED1] varchar(3) NULL, + [BAPRUN2] numeric(9, 0) NULL, + [UNIMED2] varchar(3) NULL, + [BAPRUN3] numeric(9, 0) NULL, + [UNIMED3] varchar(3) NULL, + [BAPRUN4] numeric(9, 0) NULL, + [UNIMED4] varchar(3) NULL, + [BAPRUN5] numeric(9, 0) NULL, + [UNIMED5] varchar(3) NULL, + [CANVEN] numeric(15, 3) NULL, + [EXIPRO] numeric(15, 3) NULL, + [DESEXI] numeric(15, 3) NULL, + [ESPMEDCV] varchar(3) NULL, + [ESPMEDEP] varchar(3) NULL, + [ESPMEDDE] varchar(3) NULL, + [CANDEV] numeric(15, 3) NULL, + [EANVEN] varchar(17) NULL, + [NOMVEN] varchar(70) NULL, + [NUMTALON] varchar(35) NULL, + [CANVENNET] numeric(15, 3) NULL, + [UMEDVENNET] varchar(3) NULL, + [CANESP] numeric(15, 3) NULL, + [UMEDESP] varchar(3) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [RDX_ARTVEN] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [RDX_ARTVEN] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [RDX_ARTVEN] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [RDX_ARTVEN] + ([EANVEN]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INFORMES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INFORMES] +GO + +CREATE TABLE [RDX_INFORMES] ( + [ID] smallint IDENTITY(1, 1) NOT NULL, + [CATEGORIA] varchar(15) NULL, + [ICONO] smallint NULL, + [NOMBRE] varchar(50) NULL, + [DESCRIPCION] varchar(255) NULL, + [ORDEN] smallint NULL, + [VISTA] text NULL, + [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL +) +ON [PRIMARY] +TEXTIMAGE_ON [PRIMARY] +GO + +ALTER TABLE [RDX_INFORMES] +ADD CONSTRAINT [RDX_INFORMES_pk] +PRIMARY KEY CLUSTERED ([ID]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [RDX_INFORMES] + ([CATEGORIA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INFORMES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LOG_CARGA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_LOG_CARGA] +GO + +CREATE TABLE [RDX_LOG_CARGA] ( + [ID] int IDENTITY(1, 1) NOT NULL, + [REPORT] varchar(10) NOT NULL, + [FECHA] datetime NOT NULL, + [OK] bit NOT NULL, + [ERROR_MSG] varchar(255) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LOG_CARGA] +ADD UNIQUE NONCLUSTERED ([ID]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LOG_CARGA] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_REFERENCIA_GENERICA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_REFERENCIA_GENERICA] +GO + +CREATE TABLE [RDX_REFERENCIA_GENERICA] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [FECHACAMBIO] datetime NOT NULL, + [ESTADO] char(1) NOT NULL, + [CODIGO_BARRA] varchar(25) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [NUMCON] smallint CONSTRAINT [DF__RDX_REFER__NUMCO__28C3F2C0] DEFAULT 0 NOT NULL, + [VALVEN] numeric(15, 3) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_REFERENCIA_GENERICA] +ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3], [NUMCON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [RDX_REFERENCIA_GENERICA] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [RDX_REFERENCIA_GENERICA] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [RDX_REFERENCIA_GENERICA] + ([ESTADO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_REFERENCIA_GENERICA] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_ALBARAN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_AJUSTES_ALBARAN] +GO + +CREATE TABLE [RDX_AJUSTES_ALBARAN] ( + [ALBARAN] char(7) NOT NULL, + [ESTADO] varchar(15) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_AJUSTES_ALBARAN] +ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] +PRIMARY KEY CLUSTERED ([ALBARAN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [RDX_AJUSTES_ALBARAN] + ([ESTADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [RDX_AJUSTES_ALBARAN] + ([CONTABILIZAR]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_ALBARAN] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_HOJA_DEVOLUCIONES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +GO + +CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( + [NUMHOJA] char(8) NOT NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] +PRIMARY KEY CLUSTERED ([NUMHOJA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_DEVOLUCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_DEVOLUCION_AJUSTES] +GO + +CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_DEVOLUCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [RDX_DEVOLUCION_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [RDX_DEVOLUCION_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_DEVOLUCION_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_RECEPCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_RECEPCION_AJUSTES] +GO + +CREATE TABLE [RDX_RECEPCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_RECEPCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [RDX_RECEPCION_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [RDX_RECEPCION_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_RECEPCION_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TRASPASOS_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_TRASPASOS_AJUSTES] +GO + +CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CENTRO2] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL, + [TIPOCANT] varchar(3) NOT NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_TRASPASOS_AJUSTES] +ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [RDX_TRASPASOS_AJUSTES] + ([APROBADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [RDX_TRASPASOS_AJUSTES] + ([ESTADO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [RDX_TRASPASOS_AJUSTES] + ([FECHACAMBIO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TRASPASOS_AJUSTES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_FILIALES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_FILIALES] +GO + +CREATE TABLE [RDX_FILIALES] ( + [CODFILIAL] char(6) NULL, + [CODBARRA] varchar(17) NULL +) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [RDX_FILIALES] + ([CODBARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [RDX_FILIALES] + ([CODFILIAL]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_FILIALES] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TALLAS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_TALLAS] +GO + +CREATE TABLE [RDX_TALLAS] ( + [TALLA] char(2) NOT NULL +) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [RDX_TALLAS] + ([TALLA]) +ON [PRIMARY] +GO + + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TALLAS] +TO [public] +GO + + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INVENTARIOEDI] +GO + +CREATE TABLE [RDX_INVENTARIOEDI] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [FECHA] datetime NULL, + [CENTRO] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [CODVEN] varchar(10) NULL, + [VENDEDOR] varchar(66) NULL, + [CODIGO_BARRA] varchar(17) NULL, + [CODIGO] varchar(12) NULL, + [PRODUCTO] varchar(40) NULL, + [COLOR] varchar(10) NULL, + [TALLA] varchar(8) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO2] varchar(17) NULL, + [FILIAL2] varchar(25) NULL, + [ULTIMO_INVENTARIO] char(1) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_INVENTARIOEDI] +ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] +PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] + ([FECHA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] + ([CODIGO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] + ([CENTRO2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] + ([ULTIMO_INVENTARIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] + ([CENTRO], [CODIGO], [COLOR], [TALLA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INVENTARIOEDI] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_VENTASEDI] +GO + +CREATE TABLE [RDX_VENTASEDI] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [PERVENINI] datetime NULL, + [NUMTALON] varchar(35) NULL, + [EANLUG] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [EANVEN] varchar(17) NULL, + [CODVEN] varchar(4) NULL, + [VENDEDOR] varchar(66) NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [PRODUTO] varchar(12) NULL, + [DESC_PRODUTO] varchar(40) NULL, + [COR_PRODUTO] varchar(10) NULL, + [GRADE] varchar(8) NULL, + [TIPO_PRODUTO] varchar(25) NULL, + [GRUPO_PRODUTO] varchar(25) NULL, + [DESC_COLECAO] varchar(40) NULL, + [VALVEN] numeric(15, 3) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANDEV] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_VENTASEDI] +ADD CONSTRAINT [RDX_VENTASEDI_pk] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] + ([EANVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] + ([PRODUTO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_VENTASEDI] +TO [public] +GO + +/* EOF */ + + diff --git a/Varela/Varela/Database/2.1 - vistas inventario.sql b/Varela/Varela/Database/2.1 - vistas inventario.sql new file mode 100644 index 0000000..8a62f8f --- /dev/null +++ b/Varela/Varela/Database/2.1 - vistas inventario.sql @@ -0,0 +1,1028 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2, + ULTIMO_INVENTARIO +FROM RDX_INVENTARIOEDI +WHERE FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND ((IGNORAR IS NULL) OR (IGNORAR <> 'S')) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_PESADA AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ULTIMO_INVENTARIO AS +SELECT FECHA, + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + SUM(CANTIDAD) AS CANTIDAD +FROM RDX_INVENTARIOEDI +WHERE (TIPOCANT = '145') AND + (ULTIMO_INVENTARIO IS NOT NULL) +GROUP BY FECHA, + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS +SELECT + CENTRO, + CODIGO, + COLOR, + TALLA, + FECHA = MAX(FECHA) +FROM RDX_INVENTARIOEDI +WHERE TIPOCANT = 145 + AND FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND (IGNORAR IS NULL) OR (IGNORAR <> 'S') +GROUP BY + CENTRO, + CODIGO, + COLOR, + TALLA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ + OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 46) or (TIPOCANT = 48) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_ORIGEN = CENTRO2, + FILIAL_ORIGEN = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_DESTINO = CENTRO2, + FILIAL_DESTINO = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASO_ENTRADA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) + +FROM + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASO_SALIDA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) +FROM + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASOS AS +SELECT + TIPO = 'S', + CENTRO_ORIGEN as CENTRO, + FILIAL_ORIGEN as FILIAL, + CENTRO_DESTINO as CENTRO2, + FILIAL_DESTINO as FILIAL2, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_SALIDA +UNION +SELECT + 'E', + CENTRO_DESTINO, + FILIAL_DESTINO, + CENTRO_ORIGEN, + FILIAL_ORIGEN, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_ENTRADA +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_TRASPASOS AS +SELECT + RDX_V_TRASPASOS.TIPO, + RDX_V_TRASPASOS.FECHA, + RDX_V_TRASPASOS.CENTRO, + RDX_V_TRASPASOS.FILIAL, + RDX_V_TRASPASOS.CENTRO2, + RDX_V_TRASPASOS.FILIAL2, + APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), + ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, + OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), + RDX_TRASPASOS_AJUSTES.FECHACAMBIO, + RDX_V_TRASPASOS.CODIGO, + RDX_V_TRASPASOS.PRODUCTO, + RDX_V_TRASPASOS.COLOR, + RDX_V_TRASPASOS.T38, + RDX_V_TRASPASOS.T40, + RDX_V_TRASPASOS.T42, + RDX_V_TRASPASOS.T44, + RDX_V_TRASPASOS.T46, + RDX_V_TRASPASOS.T48, + RDX_V_TRASPASOS.TOTAL, + TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), + TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), + TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), + TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), + TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), + TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), + TOTAL_RECT = + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) +FROM RDX_V_TRASPASOS +LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON + ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND + (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND + (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND + (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND + (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND + (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ALBARANES AS +SELECT + FATURAMENTO.NF_SAIDA AS ALBARAN, + FATURAMENTO.EMISSAO AS FECHA, + RDX_FILIALES.CODBARRA AS CENTRO, + FATURAMENTO.NOME_CLIFOR AS FILIAL, + PRODUTOS_BARRA.CODIGO_BARRA, + FATURAMENTO_PROD.PRODUTO AS CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN F1 + WHEN '40' THEN F2 + WHEN '42' THEN F3 + WHEN '44' THEN F4 + WHEN '46' THEN F5 + WHEN '48' THEN F6 + END, + RDX_AJUSTES_ALBARAN.ESTADO, + RDX_AJUSTES_ALBARAN.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') +FROM FATURAMENTO_PROD +INNER JOIN FATURAMENTO ON + ((FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) AND + (FATURAMENTO.SERIE_NF = FATURAMENTO_PROD.SERIE_NF)) +INNER JOIN FATURAMENTO_TIPO ON + (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) +LEFT OUTER JOIN FILIAIS ON + (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) +LEFT OUTER JOIN RDX_FILIALES ON + (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) +LEFT OUTER JOIN PRODUTOS_BARRA ON + (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON + (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) +WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ +AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ +AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_RECEPCION AS +SELECT + CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + + /* ALBARAN Y ESTADO */ + ALBARAN = RDX_V_ALBARANES.ALBARAN, + ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, + OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, + CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + ENVIADO = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ), + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) +FROM + RDX_V_ALBARANES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND + (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) +GROUP BY + ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + RDX_V_ALBARANES.ALBARAN, + RDX_V_ALBARANES.ESTADO, + RDX_V_ALBARANES.OBSERVACIONES, + ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_RECEPCION AS +SELECT + APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), + RDX_RECEPCION_AJUSTES.FECHACAMBIO, + + RDX_V_RECEPCION.CENTRO, + RDX_V_RECEPCION.FILIAL, + RDX_V_RECEPCION.CODIGO, + RDX_V_RECEPCION.PRODUCTO, + RDX_V_RECEPCION.COLOR, + RDX_V_RECEPCION.FECHA, + + /* ALBARAN Y ESTADO */ + RDX_V_RECEPCION.ALBARAN, + RDX_V_RECEPCION.ESTADO_ALBARAN, + RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, + RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, + + /* CANTIDADES RECIBIDAS RECTIFICADAS */ + RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), + RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), + RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), + RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), + RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), + RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), + + RECIBIDO_RECT = + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) + ) - ENVIADO +FROM + RDX_V_RECEPCION +LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON + ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND + (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND + (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND + (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_ALBARANES_PENDIENTES AS +SELECT DISTINCT ALBARAN, APROBADO +FROM RDX_V_CONTROL_RECEPCION +WHERE ALBARAN IS NOT NULL +AND APROBADO = 'N' +GO + +/*--------------- SQL ---------------*/GO + +CREATE VIEW RDX_V_CONTROL_RECEPCION_ALBARANES AS +select RDX_V_CONTROL_RECEPCION.ALBARAN +,ESTADOALBARAN = CASE + WHEN RDX_V_ALBARANES_PENDIENTES.ALBARAN is NULL THEN 'R' + ELSE 'P' + END +,ESTADOPRODUCTO = CASE RDX_V_CONTROL_RECEPCION.APROBADO + WHEN 'N' THEN 'PENDIENTE' + WHEN 'S' THEN 'APROBADO' + END +, CENTRO, FILIAL, FECHA, CODIGO, PRODUCTO, COLOR, E38, E40, E42, E44, E46, E48 +from RDX_V_CONTROL_RECEPCION +left join RDX_V_ALBARANES_PENDIENTES +on (RDX_V_CONTROL_RECEPCION.ALBARAN = RDX_V_ALBARANES_PENDIENTES.ALBARAN) +where RDX_V_CONTROL_RECEPCION.ALBARAN is not null +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END, + RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, + RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON + (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) +WHERE + LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_DEVOLUCIONES AS +SELECT + CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + SOLICITADO = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END + ), + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + + ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) +FROM + RDX_V_HOJAS_DEVOLUCIONES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON + ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) +GROUP BY + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS +SELECT + APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), + RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, + + RDX_V_DEVOLUCIONES.CENTRO, + RDX_V_DEVOLUCIONES.FILIAL, + RDX_V_DEVOLUCIONES.CODIGO, + RDX_V_DEVOLUCIONES.PRODUCTO, + RDX_V_DEVOLUCIONES.COLOR, + RDX_V_DEVOLUCIONES.FECHA, + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + RDX_V_DEVOLUCIONES.NUMHOJA, + RDX_V_DEVOLUCIONES.ESTADO_HOJA, + RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, + RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, + + /* CANTIDADES ENVIADAS RECTIFICADAS */ + ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), + ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), + ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), + ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), + ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), + ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), + + ENVIADO_RECT = + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) + ) - SOLICITADO +FROM + RDX_V_DEVOLUCIONES +LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON + ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND + (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND + (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND + (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) +GO + + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_RECEPCION_AJUSTES.FECHA, + RDX_RECEPCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), + RDX_RECEPCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_RECEPCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), + CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) +FROM + RDX_V_RECEPCION_AJUSTES_DESGLOSADO +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) +GROUP BY + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) +GO + + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_DEVOLUCION_AJUSTES.FECHA, + RDX_DEVOLUCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), + RDX_DEVOLUCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_DEVOLUCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_HOJAS_TRASPASOS AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS +SELECT + RDX_TRASPASOS_AJUSTES.FECHA, + RDX_TRASPASOS_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), + RDX_TRASPASOS_AJUSTES.CENTRO2, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), + TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, + RDX_TRASPASOS_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_TRASPASOS_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) +LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END IS NOT NULL +GO + +/* EOF */ diff --git a/Varela/Varela/Database/2.2 - vistas ventas.sql b/Varela/Varela/Database/2.2 - vistas ventas.sql new file mode 100644 index 0000000..d2edf4f --- /dev/null +++ b/Varela/Varela/Database/2.2 - vistas ventas.sql @@ -0,0 +1,284 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI, + NUMTALON, + EANLUG, + FILIAL, + EANVEN, + CODVEN, + VENDEDOR, + EANART, + CODCOM, + PRODUTO, + DESC_PRODUTO, + COR_PRODUTO, + GRADE, + TIPO_PRODUTO, + GRUPO_PRODUTO, + DESC_COLECAO, + VALVEN, + CANVEN, + CANDEV, + CANVENNET, + CANESP, + IGNORAR +FROM RDX_VENTASEDI +WHERE (IGNORAR IS NULL) OR (IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_PESADA +AS +SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP +FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) +WHERE (RDX_CABVEN.IGNORAR IS NULL) OR (RDX_CABVEN.IGNORAR <> 'S') +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS +AS +SELECT * +FROM RDX_REFERENCIA_GENERICA +WHERE ESTADO = 'R' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_RESUELTAS +AS +SELECT + RDX_V_VENTASEDI.NUMINF, + RDX_V_VENTASEDI.CLAVE1, + RDX_V_VENTASEDI.CLAVE2, + RDX_V_VENTASEDI.CLAVE3, + RDX_V_VENTASEDI.PERVENINI, + RDX_V_VENTASEDI.NUMTALON, + RDX_V_VENTASEDI.EANLUG, + RDX_V_VENTASEDI.FILIAL, + RDX_V_VENTASEDI.EANVEN, + RDX_V_VENTASEDI.CODVEN, + RDX_V_VENTASEDI.VENDEDOR, + EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), + RDX_V_VENTASEDI.CODCOM, + PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), + DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), + COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), + GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), + TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), + GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), + PRODUTOS.COLECAO, + DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), + RDX_V_VENTASEDI.VALVEN, + RDX_V_VENTASEDI.CANVEN, + RDX_V_VENTASEDI.CANDEV, + RDX_V_VENTASEDI.CANVENNET, + RDX_V_VENTASEDI.CANESP +FROM RDX_V_VENTASEDI +LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( + (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) +LEFT JOIN PRODUTOS_BARRA ON ( + (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) +LEFT JOIN PRODUTOS ON ( + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) +LEFT JOIN COLECOES ON ( + (COLECOES.COLECAO = PRODUTOS.COLECAO)) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASEDI_ERRONEAS +AS +SELECT +* +FROM + RDX_V_VENTASEDI +WHERE PRODUTO = '107CH.EN.01' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_REFERENCIA_GENERICA +AS +SELECT DISTINCT + VENTAS.NUMINF, + VENTAS.CLAVE1, + VENTAS.CLAVE2, + VENTAS.CLAVE3, + NUMCON = ISNULL(REF.NUMCON, 0), + VENTAS.PERVENINI AS FECHA, + VENTAS.EANLUG AS CODCENTRO, + VENTAS.FILIAL AS CENTRO, + VENTAS.EANVEN AS CODVENDEDOR, + VENTAS.VENDEDOR, + VENTAS.NUMTALON, + CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), + CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), + TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), + VTAPROCESO = ISNULL(REF.CANESP, VENTAS.CANESP), + VTAFINAL = ISNULL(REF.CANVENNET, VENTAS.CANVENNET), + VTATERM = ISNULL(REF.CANVEN, VENTAS.CANVEN), + VALTOT = ISNULL(REF.VALVEN, VENTAS.VALVEN), + REF.ESTADO, + REF.FECHACAMBIO +FROM RDX_V_VENTASEDI_ERRONEAS VENTAS +LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON + (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND + REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) +LEFT OUTER JOIN PRODUTOS_BARRA on + (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASPROCESO AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + CANESP AS INICIO, + CANVENNET AS FINAL, + VALVEN AS IMPORTE +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) +AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS +SELECT NUMTALON, + CODIGO, + COLOR, + TALLA, + SUM(ISNULL(INICIO, 0)) AS INICIO, + SUM(ABS(ISNULL(FINAL, 0))) AS FINAL +FROM RDX_V_VENTASPROCESO +GROUP BY NUMTALON, CODIGO, COLOR, TALLA +HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND + (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_VENTASTERMINADAS +AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + + VTATERMDEV = ISNULL(CANVEN, 0), + VTAFINALRESC = ISNULL(CANVENNET, 0), + + VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, + + DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, + + TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), + + VALTERMDEV = CASE WHEN (CANVEN <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, + VALFINALRESC = CASE WHEN (CANVENNET <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, + + VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, + VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, + VALTOT = VALVEN +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ +AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ +AND ((CANVENNET >= 0) OR (CANVENNET IS NULL)) /* IGNORAR LAS RESCISIONES DE V.PROCESO */ +GO + +/* EOF */ diff --git a/Varela/Varela/Database/2.3 - vistas stock.sql b/Varela/Varela/Database/2.3 - vistas stock.sql new file mode 100644 index 0000000..44cb859 --- /dev/null +++ b/Varela/Varela/Database/2.3 - vistas stock.sql @@ -0,0 +1,579 @@ +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_VARELA AS +SELECT ESTOQUE_PRODUTOS.FILIAL, + ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, + ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECCION = PRODUTOS.COLECAO, + ESTOQUE_PRODUTOS.ES1 as K38, + ESTOQUE_PRODUTOS.ES2 as K40, + ESTOQUE_PRODUTOS.ES3 as K42, + ESTOQUE_PRODUTOS.ES4 as K44, + ESTOQUE_PRODUTOS.ES5 as K46, + ESTOQUE_PRODUTOS.ES6 as K48, + ESTOQUE_PRODUTOS.ESTOQUE as KT + +FROM ESTOQUE_PRODUTOS +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) +WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_INVENTARIO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI.CENTRO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO))), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), + COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), + TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), + CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), + OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT + WHEN '194' THEN 'R' + WHEN '46' THEN 'E' + WHEN '145' THEN 'RM' + WHEN '48' THEN 'S' + WHEN '61' THEN 'D' + WHEN '65' THEN 'T' + ELSE + CASE + WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' + WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' + ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO + END + END +FROM RDX_V_INVENTARIOEDI +FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) +FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_VENTAS AS +SELECT + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + EANLUG AS CENTRO, + FILIAL AS FILIAL, + CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + COLECAO AS COLECCION, + COLOR = ISNULL(COR_PRODUTO, '300'), + GRADE AS TALLA, + CANTIDAD = ISNULL(CANVEN, 0) + + + CASE + WHEN ISNULL(CANVENNET, 0) < 0 THEN + ISNULL(CANVENNET, 0) + ELSE 0 + END + + + ISNULL(CANESP, 0) +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK AS +SELECT + CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + FILIAL = ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), + CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, + GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, + COLECCION = PRODUTOS.COLECAO, + COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), + E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN 0 + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END) +FROM + RDX_V_STOCK_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_VENTAS ON + (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) + AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) + AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) + AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) + AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) +GROUP BY + ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), + ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + PRODUTOS.COLECAO, + ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_CALCULADO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + E38, + E40, + E42, + E44, + E46, + E48, + TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), + S38, + S40, + S42, + S44, + S46, + S48, + TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), + K38 = ISNULL(E38, 0) + ISNULL(S38, 0), + K40 = ISNULL(E40, 0) + ISNULL(S40, 0), + K42 = ISNULL(E42, 0) + ISNULL(S42, 0), + K44 = ISNULL(E44, 0) + ISNULL(S44, 0), + K46 = ISNULL(E46, 0) + ISNULL(S46, 0), + K48 = ISNULL(E48, 0) + ISNULL(S48, 0), + KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + + ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + + ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) + +FROM RDX_V_STOCK +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_STOCK_CALCULADO_DESGLOSADO AS +SELECT CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_V_STOCK_CALCULADO.K38 + WHEN '40' THEN RDX_V_STOCK_CALCULADO.K40 + WHEN '42' THEN RDX_V_STOCK_CALCULADO.K42 + WHEN '44' THEN RDX_V_STOCK_CALCULADO.K44 + WHEN '46' THEN RDX_V_STOCK_CALCULADO.K46 + WHEN '48' THEN RDX_V_STOCK_CALCULADO.K48 + END + +FROM RDX_TALLAS, RDX_V_STOCK_CALCULADO +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_STOCK_DESGLOSADO AS +SELECT + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO, RDX_V_ULTIMO_INVENTARIO.FILIAL) as CENTRO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO, RDX_V_ULTIMO_INVENTARIO.CODIGO) as CODIGO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.PRODUCTO, RDX_V_ULTIMO_INVENTARIO.PRODUCTO) as PRODUCTO, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR, RDX_V_ULTIMO_INVENTARIO.COLOR) as COLOR, + ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA, RDX_V_ULTIMO_INVENTARIO.TALLA) as TALLA, + + RDX_V_STOCK_CALCULADO_DESGLOSADO.TIPO_PRODUCTO, + RDX_V_STOCK_CALCULADO_DESGLOSADO.GRUPO_PRODUCTO, + RDX_V_STOCK_CALCULADO_DESGLOSADO.COLECCION, + + RDX_V_STOCK_CALCULADO_DESGLOSADO.CANTIDAD as CANTIDAD_STOCK, + RDX_V_ULTIMO_INVENTARIO.CANTIDAD as CANTIDAD_INVENTARIO + +FROM RDX_V_ULTIMO_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_CALCULADO_DESGLOSADO ON +(RDX_V_ULTIMO_INVENTARIO.FILIAL = RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO) +AND (RDX_V_ULTIMO_INVENTARIO.CODIGO = RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO) +AND (RDX_V_ULTIMO_INVENTARIO.COLOR = RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR) +AND (RDX_V_ULTIMO_INVENTARIO.TALLA = RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA) +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_INVENTARIO_STOCK AS +select + CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + I38 = SUM(CASE TALLA + WHEN '38' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I40 = SUM(CASE TALLA + WHEN '40' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I42 = SUM(CASE TALLA + WHEN '42' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I44 = SUM(CASE TALLA + WHEN '44' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I46 = SUM(CASE TALLA + WHEN '46' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,I48 = SUM(CASE TALLA + WHEN '48' THEN + CANTIDAD_INVENTARIO + ELSE 0 + END) + + ,K38 = SUM(CASE TALLA + WHEN '38' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K40 = SUM(CASE TALLA + WHEN '40' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K42 = SUM(CASE TALLA + WHEN '42' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K44 = SUM(CASE TALLA + WHEN '44' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K46 = SUM(CASE TALLA + WHEN '46' THEN + CANTIDAD_STOCK + ELSE 0 + END) + + ,K48 = SUM(CASE TALLA + WHEN '48' THEN + CANTIDAD_STOCK + ELSE 0 + END) + +from RDX_V_INVENTARIO_STOCK_DESGLOSADO + +group by CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION +GO + +/*--------------- SQL ---------------*/ + +CREATE VIEW RDX_V_CONTROL_INVENTARIO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + COLOR, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + + I38, + I40, + I42, + I44, + I46, + I48, + TI = ISNULL(I38, 0) + ISNULL(I40, 0) + ISNULL(I42, 0) + ISNULL(I44, 0) + ISNULL(I46, 0) + ISNULL(I48, 0), + + K38, + K40, + K42, + K44, + K46, + K48, + TK = ISNULL(K38, 0) + ISNULL(K40, 0) + ISNULL(K42, 0) + ISNULL(K44, 0) + ISNULL(K46, 0) + ISNULL(K48, 0), + + D38 = ISNULL(I38, 0) - ISNULL(K38, 0), + D40 = ISNULL(I40, 0) - ISNULL(K40, 0), + D42 = ISNULL(I42, 0) - ISNULL(K42, 0), + D44 = ISNULL(I44, 0) - ISNULL(K44, 0), + D46 = ISNULL(I46, 0) - ISNULL(K46, 0), + D48 = ISNULL(I48, 0) - ISNULL(K48, 0), + DT = ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + + ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + + ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0) + +FROM RDX_V_INVENTARIO_STOCK +where ((ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + + ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + + ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0)) <> 0) + +GO +/* EOF */ diff --git a/Varela/Varela/Database/3 - procedimientos.sql b/Varela/Varela/Database/3 - procedimientos.sql new file mode 100644 index 0000000..11c1189 --- /dev/null +++ b/Varela/Varela/Database/3 - procedimientos.sql @@ -0,0 +1,176 @@ +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE crosstab + @select varchar(8000), + @sumfunc varchar(100), + @pivot varchar(100), + @table varchar(100) +AS + + DECLARE @sql varchar(8000), @delim varchar(1) + SET NOCOUNT ON + SET ANSI_WARNINGS OFF + + EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2') + EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' + @pivot + ' Is Not Null') + + SELECT @sql='', @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, ' END)' ) + + SELECT @delim=CASE Sign( CharIndex('char', data_type)+CharIndex('date', data_type) ) + WHEN 0 THEN '' ELSE '''' END + FROM tempdb.information_schema.columns + WHERE table_name='##pivot' AND column_name='pivot' + + SELECT @sql=@sql + '''' + convert(varchar(100), pivot) + ''' = ' + stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot + ' WHEN ' + @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', ' FROM ##pivot + + DROP TABLE ##pivot + + SELECT @sql=left(@sql, len(@sql)-1) + SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ', ' + @sql + ' ') + + EXEC (@select) + SET ANSI_WARNINGS ON +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI +AS +BEGIN + INSERT INTO RDX_INVENTARIOEDI ( + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, + VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, + CENTRO2, FILIAL2, IGNORAR ) + SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), + RDX_CABINV.IGNORAR + FROM RDX_CANTINV + INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) + INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) + LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) + LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) + LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) + LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) + WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND RDX_CABINV.CARGADO IS NULL + + UPDATE RDX_CABINV SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI +AS +BEGIN + INSERT INTO RDX_VENTASEDI ( + NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, + FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, + DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, + DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) + SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP + FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) + WHERE RDX_CABVEN.CARGADO IS NULL + + + UPDATE RDX_CABVEN SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +GO + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO +AS +BEGIN + DECLARE @CENTRO VARCHAR(17), + @CODIGO VARCHAR(12), + @COLOR VARCHAR(10), + @TALLA VARCHAR(8), + @FECHA DATETIME, + @UPDATECMD VARCHAR(255) + + DECLARE ASD CURSOR FOR + SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA + FROM RDX_V_INVENTARIO_MAXFECHAS + OPEN ASD + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + + IF @@ROWCOUNT >= 0 + BEGIN + WHILE @@FETCH_STATUS = 0 + BEGIN + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL + WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA + + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 + WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 + + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + END + END + CLOSE ASD + DEALLOCATE ASD +END +GO + +/* EOF */ \ No newline at end of file diff --git a/Varela/Varela/Database/ANTERIOR/Script Datos.sql b/Varela/Varela/Database/ANTERIOR/Script Datos.sql new file mode 100644 index 0000000..0a98c3d --- /dev/null +++ b/Varela/Varela/Database/ANTERIOR/Script Datos.sql @@ -0,0 +1,178 @@ +--------------- SQL --------------- +CREATE USER [usuario_gft] + FOR LOGIN [usuario_gft] + WITH DEFAULT_SCHEMA = [dbo] +GO + +COMMIT +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010082','8422416200065') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010083','8422416200058') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010086','8422416200041') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010089','8422416200102') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010090','8422416200126') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010091','8422416200133') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010092','8422416200188') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010244','8422416101256') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010094','8422416200959') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010096','8422416209068') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010088','8422416200089') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010103','8422416200140') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('010087','8422416200072') +GO + +INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) +VALUES + ('000001','8435159800003') +GO + +COMMIT +GO + + + +--------------- SQL --------------- +CREATE TABLE [RDX_TALLAS] ( + [TALLA] char(2) NOT NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TALLAS] +TO [public] +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('38') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('40') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('42') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('44') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('46') +GO + +INSERT INTO [RDX_TALLAS] ([TALLA]) +VALUES + ('48') +GO + +COMMIT +GO + + + + + +/* Códigos de barra de ECI que son referencias nulas */ + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61800000000','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001406','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001547','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001042','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('61810001141','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) +VALUES + ('8300733557232','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) +GO + +COMMIT +GO + + + + + + + + + + + diff --git a/Varela/Varela/Database/ANTERIOR/Script Tablas.sql b/Varela/Varela/Database/ANTERIOR/Script Tablas.sql new file mode 100644 index 0000000..2d1d3e9 --- /dev/null +++ b/Varela/Varela/Database/ANTERIOR/Script Tablas.sql @@ -0,0 +1,519 @@ +--------------- SQL --------------- +CREATE TABLE [RDX_CABINV] ( + [NUMDOC] varchar(25) NOT NULL, + [TIPODOC] varchar(3) NULL, + [TIPOLIQ] varchar(3) NULL, + [FECHA] datetime NULL, + [FECHALIQ] datetime NULL, + [EMISOR] varchar(17) NULL, + [RECEPTOR] varchar(17) NULL, + [DPTO] varchar(3) NULL, + [CENTRO] varchar(17) NULL, + [FECHA_CARGA] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +ALTER TABLE [RDX_CABINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] + ([FECHALIQ]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] + ([CENTRO]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_LININV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [CODART] varchar(17) NULL, + [FAMILIA] varchar(17) NULL, + [BARRA] varchar(17) NULL, + [TALLA] varchar(17) NULL, + [MARCA] varchar(25) NULL, + [TAMANO] varchar(25) NULL, + [SERIE] varchar(25) NULL, + [COLOR] varchar(25) NULL, + [MODELO] varchar(25) NULL, + [DIBUJO] varchar(25) NULL, + [DESCRIP] varchar(70) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +ALTER TABLE [RDX_LININV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] + ([CODART]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_CANTINV] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO] varchar(17) NULL, + [TMOV] varchar(3) NULL, + [FACT] varchar(12) NULL, + [DEPTO] varchar(3) NULL, + [IDVEN] varchar(10) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +ALTER TABLE [RDX_CANTINV] +ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] + ([IDVEN]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_CABVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [NUMINF] varchar(35) NULL, + [FUNCION] varchar(10) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [FECINF] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL, + [EANOFI] varchar(17) NULL, + [EANEMI] varchar(17) NULL, + [EANREC] varchar(17) NULL, + [EANVEN] varchar(17) NULL, + [EANALM] varchar(17) NULL, + [EANREP] varchar(17) NULL, + [EANPRO] varchar(17) NULL, + [EANADMSA] varchar(17) NULL, + [EANREPSR] varchar(17) NULL, + [ADMVENSA] varchar(35) NULL, + [REPDEPSR] varchar(35) NULL, + [EMAILSA] varchar(35) NULL, + [NUMFAXSA] varchar(35) NULL, + [NUMTELSA] varchar(35) NULL, + [NUMTLXSA] varchar(35) NULL, + [X400SA] varchar(35) NULL, + [EMAILSR] varchar(35) NULL, + [NUMFAXSR] varchar(35) NULL, + [NUMTELSR] varchar(35) NULL, + [NUMTLXSR] varchar(35) NULL, + [X400SR] varchar(35) NULL, + [NUMPRE] varchar(35) NULL, + [NUMINFSC] varchar(35) NULL, + [NUMCON] varchar(35) NULL, + [FECPRE] datetime NULL, + [FECINFSC] datetime NULL, + [FECCON] datetime NULL, + [DIVPED] varchar(3) NULL, + [DIVPRE] varchar(3) NULL, + [DIVPAG] varchar(3) NULL, + [DIVPEDF] varchar(3) NULL, + [DIVPREF] varchar(3) NULL, + [DIVPAGF] varchar(3) NULL, + [TASCAM] numeric(15, 3) NULL, + [FECTAS] datetime NULL, + [FECHA_CARGA] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +ALTER TABLE [RDX_CABVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_LUGVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [EANLUG] varchar(17) NULL, + [LUGVEN] varchar(70) NULL, + [FECINI] datetime NULL, + [FECFIN] datetime NULL, + [PERVENINI] datetime NULL, + [PERVENFIN] datetime NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] + ([PERVENINI]) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_LUGVEN] +ADD CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) + REFERENCES [RDX_CABVEN] ([CLAVE1]) + ON UPDATE CASCADE + ON DELETE CASCADE +GO + +ALTER TABLE [RDX_LUGVEN] +NOCHECK CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_ARTVEN] ( + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [NUMVAR] varchar(35) NULL, + [CODPRO] varchar(35) NULL, + [DESARTCO] varchar(35) NULL, + [DESART] varchar(70) NULL, + [NUMCON] varchar(35) NULL, + [NUMLIS] varchar(35) NULL, + [CONESP1] varchar(3) NULL, + [CONESP2] varchar(3) NULL, + [CONESP3] varchar(3) NULL, + [VALVEN] numeric(15, 3) NULL, + [PRENETCT] numeric(15, 3) NULL, + [PREBRUCT] numeric(15, 3) NULL, + [PREINFET] numeric(15, 3) NULL, + [PREINFFT] numeric(15, 3) NULL, + [PRECALCT] numeric(15, 3) NULL, + [PRENETCA] numeric(15, 3) NULL, + [PREBRUCA] numeric(15, 3) NULL, + [PREINFEA] numeric(15, 3) NULL, + [PREINFFA] numeric(15, 3) NULL, + [PRECALCA] numeric(15, 3) NULL, + [BAPRUN1] numeric(9, 0) NULL, + [UNIMED1] varchar(3) NULL, + [BAPRUN2] numeric(9, 0) NULL, + [UNIMED2] varchar(3) NULL, + [BAPRUN3] numeric(9, 0) NULL, + [UNIMED3] varchar(3) NULL, + [BAPRUN4] numeric(9, 0) NULL, + [UNIMED4] varchar(3) NULL, + [BAPRUN5] numeric(9, 0) NULL, + [UNIMED5] varchar(3) NULL, + [CANVEN] numeric(15, 3) NULL, + [EXIPRO] numeric(15, 3) NULL, + [DESEXI] numeric(15, 3) NULL, + [ESPMEDCV] varchar(3) NULL, + [ESPMEDEP] varchar(3) NULL, + [ESPMEDDE] varchar(3) NULL, + [CANDEV] numeric(15, 3) NULL, + [EANVEN] varchar(17) NULL, + [NOMVEN] varchar(70) NULL, + [NUMTALON] varchar(35) NULL, + [CANVENNET] numeric(15, 3) NULL, + [UMEDVENNET] varchar(3) NULL, + [CANESP] numeric(15, 3) NULL, + [UMEDESP] varchar(3) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_ARTVEN] +ADD CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] FOREIGN KEY ([CLAVE1], [CLAVE2]) + REFERENCES [RDX_LUGVEN] ([CLAVE1], [CLAVE2]) + ON UPDATE CASCADE + ON DELETE CASCADE +GO + +ALTER TABLE [RDX_ARTVEN] +NOCHECK CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_INFORMES] ( + [ID] smallint IDENTITY(1, 1) NOT NULL, + [CATEGORIA] varchar(15) NULL, + [ICONO] smallint NULL, + [NOMBRE] varchar(50) NULL, + [DESCRIPCION] varchar(255) NULL, + [ORDEN] smallint NULL, + [VISTA] text NULL, + [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL +) +ON [PRIMARY] +TEXTIMAGE_ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INFORMES] +TO [public] +GO + +ALTER TABLE [RDX_INFORMES] +ADD CONSTRAINT [RDX_INFORMES_pk] +PRIMARY KEY CLUSTERED ([ID]) +ON [PRIMARY] +GO + +--------------- SQL --------------- + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_ARTVEN] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABINV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CABVEN] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_CANTINV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LININV] +TO [public] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LUGVEN] +TO [public] +GO + + +--------------- SQL --------------- +CREATE TABLE [RDX_LOG_CARGA] ( + [ID] int IDENTITY(1, 1) NOT NULL, + [REPORT] varchar(10) NOT NULL, + [FECHA] datetime NOT NULL, + [OK] bit NOT NULL, + [ERROR_MSG] varchar(255) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_LOG_CARGA] +TO [public] +GO + +ALTER TABLE [RDX_LOG_CARGA] +ADD UNIQUE NONCLUSTERED ([ID]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_REFERENCIA_GENERICA] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [FECHACAMBIO] datetime NOT NULL, + [ESTADO] char(1) NOT NULL, + [CODIGO_BARRA] varchar(25) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_REFERENCIA_GENERICA] +TO [public] +GO + +ALTER TABLE [RDX_REFERENCIA_GENERICA] +ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_AJUSTES_ALBARAN] ( + [ALBARAN] char(7) NOT NULL, + [ESTADO] varchar(15) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_ALBARAN] +TO [public] +GO + +ALTER TABLE [RDX_AJUSTES_ALBARAN] +ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] +PRIMARY KEY CLUSTERED ([ALBARAN]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( + [NUMHOJA] char(8) NOT NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] +TO [public] +GO + +ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] +ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] +PRIMARY KEY CLUSTERED ([NUMHOJA]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_DEVOLUCION_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_DEVOLUCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_RECEPCION_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_RECEPCION_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_RECEPCION_AJUSTES] +ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) +ON [PRIMARY] +GO + +--------------- SQL --------------- +CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( + [FECHA] datetime NOT NULL, + [CENTRO] varchar(17) NOT NULL, + [CENTRO2] varchar(17) NOT NULL, + [CODIGO] varchar(12) NOT NULL, + [COLOR] varchar(10) NOT NULL, + [APROBADO] char(1) NULL, + [ESTADO] varchar(20) NULL, + [OBSERVACIONES] varchar(255) NULL, + [CONTABILIZAR] char(1) NULL, + [FECHACAMBIO] datetime NULL, + [CANT38] numeric(15, 0) NULL, + [CANT40] numeric(15, 0) NULL, + [CANT42] numeric(15, 0) NULL, + [CANT44] numeric(15, 0) NULL, + [CANT46] numeric(15, 0) NULL, + [CANT48] numeric(15, 0) NULL, + [TIPOCANT] varchar(3) NOT NULL +) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_TRASPASOS_AJUSTES] +TO [public] +GO + +ALTER TABLE [RDX_TRASPASOS_AJUSTES] +ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] +PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR], [TIPOCANT]) +ON [PRIMARY] +GO \ No newline at end of file diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql new file mode 100644 index 0000000..d2d4f7f --- /dev/null +++ b/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql @@ -0,0 +1,1156 @@ +-- +-- Definition for view RDX_V_ALBARANES : +-- + +CREATE VIEW RDX_V_ALBARANES AS +SELECT + FATURAMENTO.NF_SAIDA AS ALBARAN, + FATURAMENTO.EMISSAO AS FECHA, + RDX_FILIALES.CODBARRA AS CENTRO, + FATURAMENTO.NOME_CLIFOR AS FILIAL, + PRODUTOS_BARRA.CODIGO_BARRA, + FATURAMENTO_PROD.PRODUTO AS CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN F1 + WHEN '40' THEN F2 + WHEN '42' THEN F3 + WHEN '44' THEN F4 + WHEN '46' THEN F5 + WHEN '48' THEN F6 + END, + RDX_AJUSTES_ALBARAN.ESTADO, + RDX_AJUSTES_ALBARAN.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') +FROM FATURAMENTO_PROD +INNER JOIN FATURAMENTO ON + (FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) +INNER JOIN FATURAMENTO_TIPO ON + (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) +LEFT OUTER JOIN FILIAIS ON + (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) +LEFT OUTER JOIN RDX_FILIALES ON + (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) +LEFT OUTER JOIN PRODUTOS_BARRA ON + (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON + (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) +WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ +AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ +AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_ALBARANES] +TO [public] +GO + +-- +-- Definition for view RDX_V_HOJAS_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END, + RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, + RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON + (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) +WHERE + LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_HOJAS_DEVOLUCIONES] +TO [public] +GO + +-- +-- Definition for view RDX_V_HOJAS_TRASPASOS : +-- + +CREATE VIEW RDX_V_HOJAS_TRASPASOS AS +SELECT + LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, + LOJA_SAIDAS.EMISSAO AS FECHA, + RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, + LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, + RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, + LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, + PRODUTOS_BARRA.CODIGO_BARRA, + LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), + PRODUTOS_BARRA.COR_PRODUTO AS COLOR, + PRODUTOS_BARRA.GRADE AS TALLA, + CANTIDAD = CASE PRODUTOS_BARRA.GRADE + WHEN '38' THEN EN1 + WHEN '40' THEN EN2 + WHEN '42' THEN EN3 + WHEN '44' THEN EN4 + WHEN '46' THEN EN5 + WHEN '48' THEN EN6 + END +FROM LOJA_SAIDAS_PRODUTO +INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) +INNER JOIN PRODUTOS_BARRA on + (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND + (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND + ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR + (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) +INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) +INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) +INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) +WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ +AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_HOJAS_TRASPASOS] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIOEDI : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_CANTINV.IDVEN + '%') +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ + OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_RECEPCION : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_RECEPCION] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_ORIGEN = CENTRO2, + FILIAL_ORIGEN = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_SALIDA : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO_DESTINO = CENTRO2, + FILIAL_DESTINO = FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] +TO [public] +GO + +-- +-- Definition for view RDX_V_RECEPCION : +-- + +CREATE VIEW RDX_V_RECEPCION AS +SELECT + CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + + /* ALBARAN Y ESTADO */ + ALBARAN = RDX_V_ALBARANES.ALBARAN, + ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, + OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, + CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN + ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END), + ENVIADO = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ), + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) + END), + RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) + END + ) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) +FROM + RDX_V_ALBARANES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND + (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) +GROUP BY + ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), + ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), + ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), + ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), + ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), + ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), + RDX_V_ALBARANES.ALBARAN, + RDX_V_ALBARANES.ESTADO, + RDX_V_ALBARANES.OBSERVACIONES, + ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_RECEPCION] +TO [public] +GO + +-- +-- Definition for view RDX_V_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_DEVOLUCIONES AS +SELECT + CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END), + SOLICITADO = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END + ), + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) + END), + + ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), + + DIFERENCIA = SUM( + CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') + WHEN 'N' THEN 0 + ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) + END) - + SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) +FROM + RDX_V_HOJAS_DEVOLUCIONES +FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON + ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND + (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) +GROUP BY + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), + RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, + RDX_V_HOJAS_DEVOLUCIONES.ESTADO, + RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, + ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_DEVOLUCIONES] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_DEVOLUCIONES : +-- + +CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS +SELECT + APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), + RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, + + RDX_V_DEVOLUCIONES.CENTRO, + RDX_V_DEVOLUCIONES.FILIAL, + RDX_V_DEVOLUCIONES.CODIGO, + RDX_V_DEVOLUCIONES.PRODUCTO, + RDX_V_DEVOLUCIONES.COLOR, + RDX_V_DEVOLUCIONES.FECHA, + + /* HOJA DE MOVIMIENTOS Y ESTADO */ + RDX_V_DEVOLUCIONES.NUMHOJA, + RDX_V_DEVOLUCIONES.ESTADO_HOJA, + RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, + RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, + + /* CANTIDADES SOLICITADAS DESDE VARELA */ + S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, + + /* CANTIDADES ENVIADAS RECTIFICADAS */ + ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), + ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), + ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), + ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), + ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), + ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), + + ENVIADO_RECT = + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + + ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) + ) - SOLICITADO +FROM + RDX_V_DEVOLUCIONES +LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON + ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND + (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND + (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND + (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_DEVOLUCIONES] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_RECEPCION : +-- + +CREATE VIEW RDX_V_CONTROL_RECEPCION AS +SELECT + APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), + RDX_RECEPCION_AJUSTES.FECHACAMBIO, + + RDX_V_RECEPCION.CENTRO, + RDX_V_RECEPCION.FILIAL, + RDX_V_RECEPCION.CODIGO, + RDX_V_RECEPCION.PRODUCTO, + RDX_V_RECEPCION.COLOR, + RDX_V_RECEPCION.FECHA, + + /* ALBARAN Y ESTADO */ + RDX_V_RECEPCION.ALBARAN, + RDX_V_RECEPCION.ESTADO_ALBARAN, + RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, + RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, + + /* CANTIDADES ENVIADAS DESDE VARELA */ + E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, + + /* CANTIDADES RECIBIDAS EN EL CENTRO*/ + R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, + + /* CANTIDADES RECIBIDAS RECTIFICADAS */ + RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), + RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), + RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), + RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), + RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), + RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), + + RECIBIDO_RECT = + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), + + DIFERENCIA = + ( + ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + + ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) + ) - ENVIADO +FROM + RDX_V_RECEPCION +LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON + ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND + (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND + (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND + (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_RECEPCION] +TO [public] +GO + +-- +-- Definition for view RDX_V_CONTROL_TRASPASOS : +-- + +CREATE VIEW RDX_V_CONTROL_TRASPASOS AS +SELECT + RDX_V_TRASPASOS.TIPO, + RDX_V_TRASPASOS.FECHA, + RDX_V_TRASPASOS.CENTRO, + RDX_V_TRASPASOS.FILIAL, + RDX_V_TRASPASOS.CENTRO2, + RDX_V_TRASPASOS.FILIAL2, + APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), + ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, + OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, + CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), + RDX_TRASPASOS_AJUSTES.FECHACAMBIO, + RDX_V_TRASPASOS.CODIGO, + RDX_V_TRASPASOS.PRODUCTO, + RDX_V_TRASPASOS.COLOR, + RDX_V_TRASPASOS.T38, + RDX_V_TRASPASOS.T40, + RDX_V_TRASPASOS.T42, + RDX_V_TRASPASOS.T44, + RDX_V_TRASPASOS.T46, + RDX_V_TRASPASOS.T48, + RDX_V_TRASPASOS.TOTAL, + TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), + TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), + TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), + TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), + TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), + TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), + TOTAL_RECT = + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + + ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) +FROM RDX_V_TRASPASOS +LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON + ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND + (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND + (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND + (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND + (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND + (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_TRASPASOS] +TO [public] +GO + + + + + + + + + + + + +-- +-- Definition for view RDX_V_TRASPASO_SALIDA : +-- + +CREATE VIEW RDX_V_TRASPASO_SALIDA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) +FROM + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASO_SALIDA] +TO [public] +GO + + +-- +-- Definition for view RDX_V_TRASPASO_ENTRADA : +-- + +CREATE VIEW RDX_V_TRASPASO_ENTRADA AS +SELECT + CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + + CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + + CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, + + /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ + T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN + ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) + END), + + TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) + +FROM + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA +GROUP BY + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, + RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASO_ENTRADA] +TO [public] +GO + +-- +-- Definition for view RDX_V_TRASPASOS : +-- + +CREATE VIEW RDX_V_TRASPASOS AS +SELECT + TIPO = 'S', + CENTRO_ORIGEN as CENTRO, + FILIAL_ORIGEN as FILIAL, + CENTRO_DESTINO as CENTRO2, + FILIAL_DESTINO as FILIAL2, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_SALIDA +UNION +SELECT + 'E', + CENTRO_DESTINO, + FILIAL_DESTINO, + CENTRO_ORIGEN, + FILIAL_ORIGEN, + CODIGO, + PRODUCTO, + COLOR, + FECHA, + T38, + T40, + T42, + T44, + T46, + T48, + TOTAL +FROM RDX_V_TRASPASO_ENTRADA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASOS] +TO [public] +GO + + + + +-- +-- Definition for view RDX_V_RECEPCION_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_RECEPCION_AJUSTES.FECHA, + RDX_RECEPCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), + RDX_RECEPCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_RECEPCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_RECEPCION_AJUSTES_DESGLOSADO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_CONTROL_RECEPCION_DESGLOSADO : +-- + +CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), + CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) +FROM + RDX_V_RECEPCION_AJUSTES_DESGLOSADO +FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) +GROUP BY + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), + ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_CONTROL_RECEPCION_DESGLOSADO] +TO [public] +GO + + + + +-- +-- Definition for view RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS +SELECT + RDX_DEVOLUCION_AJUSTES.FECHA, + RDX_DEVOLUCION_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), + RDX_DEVOLUCION_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_DEVOLUCION_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 + WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 + WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 + WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 + WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 + WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] +TO [public] +GO + +-- +-- Definition for view RDX_V_INVENTARIO_MAXFECHAS : +-- + +CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS +SELECT + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + FECHA = MAX(FECHA) +FROM RDX_V_INVENTARIOEDI +WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 +GROUP BY + CENTRO, + FILIAL, + CODIGO, + PRODUCTO, + COLOR, + TALLA +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIO_MAXFECHAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_INVENTARIOEDI_TRASPASO : +-- + +CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS +SELECT + NUMDOC, + NUMLIN, + NUMCANT, + TIPOCANT, + FECHA, + CENTRO, + FILIAL, + CODVEN, + VENDEDOR, + CODIGO_BARRA, + CODIGO, + PRODUCTO, + COLOR, + TALLA, + CANTIDAD, + CENTRO2, + FILIAL2 +FROM RDX_V_INVENTARIOEDI +WHERE (TIPOCANT = 46) or (TIPOCANT = 48) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_INVENTARIOEDI_TRASPASO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_TRASPASOS_AJUSTES_DESGLOSADO : +-- + +CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS +SELECT + RDX_TRASPASOS_AJUSTES.FECHA, + RDX_TRASPASOS_AJUSTES.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), + RDX_TRASPASOS_AJUSTES.CENTRO2, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), + TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, + RDX_TRASPASOS_AJUSTES.CODIGO, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + RDX_TRASPASOS_AJUSTES.COLOR, + RDX_TALLAS.TALLA, + CANTIDAD = CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END +FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) +LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) +WHERE CASE RDX_TALLAS.TALLA + WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 + WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 + WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 + WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 + WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 + WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 + END IS NOT NULL +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] +TO [public] +GO + +-- +-- Definition for view RDX_V_ULTIMO_RECUENTOINVENTARIO : +-- + +CREATE VIEW RDX_V_ULTIMO_RECUENTOINVENTARIO AS +SELECT + RDX_V_INVENTARIOEDI.FECHA, + RDX_V_INVENTARIOEDI.CENTRO, + RDX_V_INVENTARIOEDI.FILIAL, + RDX_V_INVENTARIOEDI.CODIGO, + RDX_V_INVENTARIOEDI.PRODUCTO, + RDX_V_INVENTARIOEDI.COLOR, + RDX_V_INVENTARIOEDI.TALLA, + RDX_V_INVENTARIOEDI.CANTIDAD +FROM RDX_V_INVENTARIOEDI +INNER JOIN RDX_V_INVENTARIO_MAXFECHAS ON + (RDX_V_INVENTARIOEDI.FECHA = RDX_V_INVENTARIO_MAXFECHAS.FECHA AND + RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIO_MAXFECHAS.CENTRO AND + RDX_V_INVENTARIOEDI.CODIGO = RDX_V_INVENTARIO_MAXFECHAS.CODIGO AND + RDX_V_INVENTARIOEDI.COLOR = RDX_V_INVENTARIO_MAXFECHAS.COLOR AND + RDX_V_INVENTARIOEDI.TALLA = RDX_V_INVENTARIO_MAXFECHAS.TALLA) +WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_ULTIMO_RECUENTOINVENTARIO] +TO [public] +GO + diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql new file mode 100644 index 0000000..04deb77 --- /dev/null +++ b/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql @@ -0,0 +1,431 @@ +-- +-- Definition for view RDX_V_STOCK_VARELA : +-- + +CREATE VIEW RDX_V_STOCK_VARELA AS +SELECT ESTOQUE_PRODUTOS.FILIAL, + ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, + ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, + PRODUCTO = PRODUTOS.DESC_PRODUTO, + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECCION=COLECOES.DESC_COLECAO, + + ESTOQUE_PRODUTOS.ES1 as K38, + ESTOQUE_PRODUTOS.ES2 as K40, + ESTOQUE_PRODUTOS.ES3 as K42, + ESTOQUE_PRODUTOS.ES4 as K44, + ESTOQUE_PRODUTOS.ES5 as K46, + ESTOQUE_PRODUTOS.ES6 as K48, + ESTOQUE_PRODUTOS.ESTOQUE as KT + +FROM ESTOQUE_PRODUTOS +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) +LEFT OUTER JOIN COLECOES ON (PRODUTOS.COLECAO = COLECOES.COLECAO) + +WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' +GO + + + +-- +-- Definition for view RDX_V_STOCK_VENTAS : +-- + +CREATE VIEW RDX_V_STOCK_VENTAS AS +SELECT + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COLOR = ISNULL(COR_PRODUTO, '300'), + GRADE AS TALLA, + CANTIDAD = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_STOCK_VENTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_STOCK_INVENTARIO : +-- + +CREATE VIEW RDX_V_STOCK_INVENTARIO AS +SELECT + FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), + CENTRO = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), + CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), + PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), + COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), + TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), + CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), + /*RDX_V_INVENTARIOEDI.CANTIDAD, + RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, + RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, + RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD,*/ + OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT + WHEN '194' THEN 'R' + WHEN '46' THEN 'E' + WHEN '145' THEN 'RM' + WHEN '48' THEN 'S' + WHEN '61' THEN 'D' + WHEN '65' THEN 'T' + ELSE + CASE + WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' + WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' + ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO + END + END +FROM RDX_V_INVENTARIOEDI +FULL OUTER JOIN RDX_V_INVENTARIO_MAXFECHAS ON + (RDX_V_INVENTARIO_MAXFECHAS.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIO_MAXFECHAS.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_INVENTARIO_MAXFECHAS.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_INVENTARIO_MAXFECHAS.TALLA = RDX_V_INVENTARIOEDI.TALLA) +FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND + (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) +FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND + (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND + (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) +WHERE + ((RDX_V_INVENTARIO_MAXFECHAS.FECHA IS NULL) /* Puede haber prendas que no se hayan inventariado nunca */ + OR + (ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))) >= RDX_V_INVENTARIO_MAXFECHAS.FECHA)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_STOCK_INVENTARIO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_STOCK : +-- + +CREATE VIEW RDX_V_STOCK AS +SELECT + CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, + GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, + COLECCION = COLECOES.DESC_COLECAO, + COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), + E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '38' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '40' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '42' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '44' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '46' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END), + + S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) + WHEN '48' THEN + CASE RDX_V_STOCK_INVENTARIO.OPERACION + WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) + ELSE + 0 + END + + + CASE + WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN + RDX_V_STOCK_VENTAS.CANTIDAD * (-1) + ELSE + 0 + END + END) +FROM + RDX_V_STOCK_INVENTARIO +FULL OUTER JOIN RDX_V_STOCK_VENTAS ON + (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) + AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) + AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) + AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) + AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) +LEFT OUTER JOIN COLECOES ON + (COLECOES.COLECAO = PRODUTOS.COLECAO) + +GROUP BY + ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), + ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), + ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), + PRODUTOS.TIPO_PRODUTO, + PRODUTOS.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) +GO + +-- +-- Definition for view RDX_V_STOCK_CALCULADO : +-- + +CREATE VIEW RDX_V_STOCK_CALCULADO AS +SELECT + CENTRO, + CODIGO, + PRODUCTO, + TIPO_PRODUCTO, + GRUPO_PRODUCTO, + COLECCION, + COLOR, + E38, + E40, + E42, + E44, + E46, + E48, + TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), + S38, + S40, + S42, + S44, + S46, + S48, + TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), + K38 = ISNULL(E38, 0) + ISNULL(S38, 0), + K40 = ISNULL(E40, 0) + ISNULL(S40, 0), + K42 = ISNULL(E42, 0) + ISNULL(S42, 0), + K44 = ISNULL(E44, 0) + ISNULL(S44, 0), + K46 = ISNULL(E46, 0) + ISNULL(S46, 0), + K48 = ISNULL(E48, 0) + ISNULL(S48, 0), + KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + + ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + + ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) + +FROM RDX_V_STOCK +GO + + + + + + + + diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas.sql new file mode 100644 index 0000000..70c2461 --- /dev/null +++ b/Varela/Varela/Database/ANTERIOR/Script Vistas.sql @@ -0,0 +1,302 @@ +-- +-- Definition for view RDX_V_VENTASEDI : +-- + +CREATE VIEW RDX_V_VENTASEDI +AS +SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP +FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI] +TO [public] +GO + +-- +-- Definition for view RDX_V_REFERENCIAS_RESUELTAS : +-- + +CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS +AS +SELECT * +FROM RDX_REFERENCIA_GENERICA +WHERE ESTADO = 'R' +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_REFERENCIAS_RESUELTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASEDI_RESUELTAS : +-- + +CREATE VIEW RDX_V_VENTASEDI_RESUELTAS +AS +SELECT + RDX_V_VENTASEDI.NUMINF, + RDX_V_VENTASEDI.CLAVE1, + RDX_V_VENTASEDI.CLAVE2, + RDX_V_VENTASEDI.CLAVE3, + RDX_V_VENTASEDI.PERVENINI, + RDX_V_VENTASEDI.NUMTALON, + RDX_V_VENTASEDI.EANLUG, + RDX_V_VENTASEDI.FILIAL, + RDX_V_VENTASEDI.EANVEN, + RDX_V_VENTASEDI.CODVEN, + RDX_V_VENTASEDI.VENDEDOR, + EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), + RDX_V_VENTASEDI.CODCOM, + PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), + DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), + COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), + GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), + TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), + GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), + DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), + RDX_V_VENTASEDI.VALVEN, + RDX_V_VENTASEDI.CANVEN, + RDX_V_VENTASEDI.CANDEV, + RDX_V_VENTASEDI.CANVENNET, + RDX_V_VENTASEDI.CANESP +FROM RDX_V_VENTASEDI +LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( + (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND + (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) +LEFT JOIN PRODUTOS_BARRA ON ( + (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) +LEFT JOIN PRODUTOS ON ( + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) +LEFT JOIN COLECOES ON ( + (COLECOES.COLECAO = PRODUTOS.COLECAO)) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI_RESUELTAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASEDI_ERRONEAS : +-- + +CREATE VIEW RDX_V_VENTASEDI_ERRONEAS +AS +SELECT +* +FROM + RDX_V_VENTASEDI +WHERE PRODUTO = '107CH.EN.01' +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASEDI_ERRONEAS] +TO [public] +GO + +-- +-- Definition for view RDX_V_VENTASTERMINADAS : +-- + +CREATE VIEW RDX_V_VENTASTERMINADAS +AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, + VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, + + DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + + CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, + + TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), + VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, + VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, + VALTOT = VALVEN +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ +AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASTERMINADAS] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASPROCESO : +-- + +CREATE VIEW RDX_V_VENTASPROCESO AS +SELECT + NUMINF, + CLAVE1, + CLAVE2, + CLAVE3, + PERVENINI AS FECHA, + DAY(PERVENINI) AS DIA, + DATENAME(DW, PERVENINI) DIASEMANA, + DATENAME(MONTH, PERVENINI) AS MES, + YEAR(PERVENINI) AS ANO, + FILIAL AS CENTRO, + VENDEDOR, + NUMTALON, + PRODUTO AS CODIGO, + DESC_PRODUTO AS PRODUCTO, + GRUPO_PRODUTO AS GRUPOPRODUCTO, + TIPO_PRODUTO AS TIPOPRODUCTO, + DESC_COLECAO AS COLECCION, + COR_PRODUTO AS COLOR, + GRADE AS TALLA, + CANESP AS INICIO, + CANVENNET AS FINAL, + VALVEN AS IMPORTE +FROM + RDX_V_VENTASEDI_RESUELTAS +WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) +AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASPROCESO] +TO [public] +GO + + +-- +-- Definition for view RDX_V_VENTASPROCESOPENDIENTES : +-- + +CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS +SELECT NUMTALON, + CODIGO, + COLOR, + TALLA, + SUM(ISNULL(INICIO, 0)) AS INICIO, + SUM(ABS(ISNULL(FINAL, 0))) AS FINAL +FROM RDX_V_VENTASPROCESO +GROUP BY NUMTALON, CODIGO, COLOR, TALLA +HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND + (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_VENTASPROCESOPENDIENTES] +TO [public] +GO + + + +--------------- SQL --------------- + +-- +-- Definition for view RDX_V_REFERENCIA_GENERICA : +-- + +CREATE VIEW RDX_V_REFERENCIA_GENERICA +AS +SELECT DISTINCT + VENTAS.NUMINF, + VENTAS.CLAVE1, + VENTAS.CLAVE2, + VENTAS.CLAVE3, + VENTAS.PERVENINI AS FECHA, + VENTAS.EANLUG AS CODCENTRO, + VENTAS.FILIAL AS CENTRO, + VENTAS.EANVEN AS CODVENDEDOR, + VENTAS.VENDEDOR, + VENTAS.NUMTALON, + CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), + CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), + TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), + VENTAS.CANESP AS VTAPROCESO, + VENTAS.CANVENNET AS VTAFINAL, + VTATERM = VENTAS.CANVEN, + VALTOT = VENTAS.VALVEN, + REF.ESTADO, + REF.FECHACAMBIO +FROM RDX_V_VENTASEDI_ERRONEAS VENTAS +LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON + (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND + REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) +LEFT OUTER JOIN PRODUTOS_BARRA on + (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) +LEFT OUTER JOIN PRODUTOS ON + (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_V_REFERENCIA_GENERICA] +TO [public] +GO + + diff --git a/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL b/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL new file mode 100644 index 0000000..769a8be --- /dev/null +++ b/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL @@ -0,0 +1,473 @@ +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_LUGVE__CLAVE__4A59F0B5]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) + ALTER TABLE [RDX_LUGVEN] + DROP CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] +GO + +-- +-- Dropping foreign key FK__RDX_ARTVEN__56BFC79A : +-- + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_ARTVEN__56BFC79A]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) + ALTER TABLE [dbo].[RDX_ARTVEN] + DROP CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] +GO + +ALTER TABLE [RDX_CABINV] +ADD [CARGADO]char(1) NULL +GO + +ALTER TABLE [RDX_CABVEN] +ADD [CARGADO]char(1) NULL +GO + + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_INVENTARIOEDI] +GO + +CREATE TABLE [RDX_INVENTARIOEDI] ( + [NUMDOC] varchar(25) NOT NULL, + [NUMLIN] numeric(6, 0) NOT NULL, + [NUMCANT] numeric(6, 0) NOT NULL, + [TIPOCANT] varchar(3) NULL, + [FECHA] datetime NULL, + [CENTRO] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [CODVEN] varchar(10) NULL, + [VENDEDOR] varchar(66) NULL, + [CODIGO_BARRA] varchar(17) NULL, + [CODIGO] varchar(12) NULL, + [PRODUCTO] varchar(40) NULL, + [COLOR] varchar(10) NULL, + [TALLA] varchar(8) NULL, + [CANTIDAD] numeric(15, 0) NULL, + [CENTRO2] varchar(17) NULL, + [FILIAL2] varchar(25) NULL, + [ULTIMO_INVENTARIO] char(1) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_INVENTARIOEDI] +ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] +PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] + ([TIPOCANT]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] + ([FECHA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] + ([CENTRO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] + ([CODIGO_BARRA]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] + ([CODIGO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] + ([CENTRO2]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] + ([ULTIMO_INVENTARIO]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] + ([CENTRO], [CODIGO], [COLOR], [TALLA]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_INVENTARIOEDI] +TO [public] +GO + +/*--------------- SQL ---------------*/ + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [RDX_VENTASEDI] +GO + +CREATE TABLE [RDX_VENTASEDI] ( + [NUMINF] varchar(35) NOT NULL, + [CLAVE1] numeric(10, 0) NOT NULL, + [CLAVE2] numeric(5, 0) NOT NULL, + [CLAVE3] numeric(5, 0) NOT NULL, + [PERVENINI] datetime NULL, + [NUMTALON] varchar(35) NULL, + [EANLUG] varchar(17) NULL, + [FILIAL] varchar(25) NULL, + [EANVEN] varchar(17) NULL, + [CODVEN] varchar(4) NULL, + [VENDEDOR] varchar(66) NULL, + [EANART] varchar(17) NULL, + [CODCOM] varchar(35) NULL, + [PRODUTO] varchar(12) NULL, + [DESC_PRODUTO] varchar(40) NULL, + [COR_PRODUTO] varchar(10) NULL, + [GRADE] varchar(8) NULL, + [TIPO_PRODUTO] varchar(25) NULL, + [GRUPO_PRODUTO] varchar(25) NULL, + [DESC_COLECAO] varchar(40) NULL, + [VALVEN] numeric(15, 3) NULL, + [CANVEN] numeric(15, 3) NULL, + [CANDEV] numeric(15, 3) NULL, + [CANVENNET] numeric(15, 3) NULL, + [CANESP] numeric(15, 3) NULL, + [IGNORAR] char(1) NULL +) +ON [PRIMARY] +GO + +ALTER TABLE [RDX_VENTASEDI] +ADD CONSTRAINT [RDX_VENTASEDI_pk] +PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] + ([PERVENINI]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] + ([NUMTALON]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] + ([EANVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] + ([CODVEN]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] + ([EANART]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] + ([CODCOM]) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] + ([PRODUTO]) +ON [PRIMARY] +GO + +GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE +ON [RDX_VENTASEDI] +TO [public] +GO + + + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI +AS +BEGIN + INSERT INTO RDX_INVENTARIOEDI ( + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, + VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, + CENTRO2, FILIAL2, IGNORAR ) + SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), + RDX_CABINV.IGNORAR + FROM RDX_CANTINV + INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) + INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) + LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) + LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) + LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) + LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) + WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ + AND RDX_CABINV.CARGADO IS NULL + + UPDATE RDX_CABINV SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +go + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI +AS +BEGIN + INSERT INTO RDX_VENTASEDI ( + NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, + FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, + DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, + DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) + SELECT + RDX_CABVEN.NUMINF, + RDX_ARTVEN.CLAVE1, + RDX_ARTVEN.CLAVE2, + RDX_ARTVEN.CLAVE3, + RDX_LUGVEN.PERVENINI, + RDX_ARTVEN.NUMTALON, + RDX_LUGVEN.EANLUG, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), + RDX_ARTVEN.EANVEN, + LOJA_VENDEDORES.VENDEDOR AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), + RDX_ARTVEN.EANART, + RDX_ARTVEN.CODCOM, + produtos.PRODUTO, + ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, + PRODUTOS_BARRA.COR_PRODUTO, + PRODUTOS_BARRA.GRADE, + produtos.TIPO_PRODUTO, + produtos.GRUPO_PRODUTO, + COLECOES.DESC_COLECAO, + RDX_ARTVEN.VALVEN, + RDX_ARTVEN.CANVEN, + RDX_ARTVEN.CANDEV, + RDX_ARTVEN.CANVENNET, + RDX_ARTVEN.CANESP + FROM + RDX_ARTVEN + INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) + INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) + left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) + left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) + LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') + LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) + LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) + LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) + WHERE RDX_CABVEN.CARGADO IS NULL + + + UPDATE RDX_CABVEN SET + CARGADO = 1 + WHERE CARGADO IS NULL +END +go + +/*--------------- SQL ---------------*/ + +CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO +AS +BEGIN + DECLARE @CENTRO VARCHAR(17), + @CODIGO VARCHAR(12), + @COLOR VARCHAR(10), + @TALLA VARCHAR(8), + @FECHA DATETIME, + @UPDATECMD VARCHAR(255) + + DECLARE ASD CURSOR FOR + SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA + FROM RDX_V_INVENTARIO_MAXFECHAS + OPEN ASD + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + + IF @@ROWCOUNT >= 0 + BEGIN + WHILE @@FETCH_STATUS = 0 + BEGIN + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL + WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA + + UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 + WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 + + FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA + END + END + CLOSE ASD + DEALLOCATE ASD +END +go + + +/* borrar vistas */ + + +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES]')) +DROP VIEW [dbo].[RDX_V_ALBARANES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_HOJAS_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_HOJAS_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_DEVOLUCIONES]')) +DROP VIEW [dbo].[RDX_V_CONTROL_DEVOLUCIONES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_CONTROL_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VARELA]')) +DROP VIEW [dbo].[RDX_V_STOCK_VARELA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK]')) +DROP VIEW [dbo].[RDX_V_STOCK] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_CONTROL_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASTERMINADAS]')) +DROP VIEW [dbo].[RDX_V_VENTASTERMINADAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESO]')) +DROP VIEW [dbo].[RDX_V_VENTASPROCESO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESOPENDIENTES]')) +DROP VIEW [dbo].[RDX_V_VENTASPROCESOPENDIENTES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIA_GENERICA]')) +DROP VIEW [dbo].[RDX_V_REFERENCIA_GENERICA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS]')) +DROP VIEW [dbo].[RDX_V_TRASPASOS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VENTAS]')) +DROP VIEW [dbo].[RDX_V_STOCK_VENTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_STOCK_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES_PENDIENTES]')) +DROP VIEW [dbo].[RDX_V_ALBARANES_PENDIENTES] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ULTIMO_INVENTARIO]')) +DROP VIEW [dbo].[RDX_V_ULTIMO_INVENTARIO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_ERRONEAS]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_ERRONEAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_ENTRADA]')) +DROP VIEW [dbo].[RDX_V_TRASPASO_ENTRADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_SALIDA]')) +DROP VIEW [dbo].[RDX_V_TRASPASO_SALIDA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_RESUELTAS]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_RESUELTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO]')) +DROP VIEW [dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_MAXFECHAS]')) +DROP VIEW [dbo].[RDX_V_INVENTARIO_MAXFECHAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO]')) +DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_RECEPCION] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIAS_RESUELTAS]')) +DROP VIEW [dbo].[RDX_V_REFERENCIAS_RESUELTAS] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_RECEPCION]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_RECEPCION] +go +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_PESADA]')) +DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_PESADA] +GO +IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_PESADA]')) +DROP VIEW [dbo].[RDX_V_VENTASEDI_PESADA] +GO + + diff --git a/Varela/Varela/Database/__Script mejoras.sql b/Varela/Varela/Database/__Script mejoras.sql new file mode 100644 index 0000000..21f90d7 --- /dev/null +++ b/Varela/Varela/Database/__Script mejoras.sql @@ -0,0 +1,434 @@ +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [dbo].[RDX_FILIALES] + ([CODBARRA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [dbo].[RDX_FILIALES] + ([CODFILIAL]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [FILIAIS_idx] ON [dbo].[FILIAIS] + ([COD_FILIAL]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [LOJA_VENDEDORES_idx] ON [dbo].[LOJA_VENDEDORES] + ([RG]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx3] ON [dbo].[RDX_CANTINV] + ([TIPOCANT]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [dbo].[RDX_AJUSTES_ALBARAN] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [dbo].[RDX_AJUSTES_ALBARAN] + ([CONTABILIZAR]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [FATURAMENTO_TIPO_idx] ON [dbo].[FATURAMENTO_TIPO] + ([INDICADOR_TIPO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [dbo].[RDX_TALLAS] + ([TALLA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([ESTADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [dbo].[RDX_DEVOLUCION_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [dbo].[RDX_DEVOLUCION_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [PRODUTOS_idx] ON [dbo].[PRODUTOS] + ([DESC_PRODUTO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [dbo].[RDX_ARTVEN] + ([EANART]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [dbo].[RDX_ARTVEN] + ([CODCOM]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [dbo].[RDX_ARTVEN] + ([NUMTALON]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [dbo].[RDX_ARTVEN] + ([EANVEN]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [dbo].[RDX_CABVEN] + ([NUMINF]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [dbo].[RDX_CABVEN] + ([IGNORAR]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [dbo].[RDX_INFORMES] + ([CATEGORIA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [dbo].[RDX_LUGVEN] + ([EANLUG]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [dbo].[RDX_RECEPCION_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [dbo].[RDX_RECEPCION_AJUSTES] + ([APROBADO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [dbo].[RDX_REFERENCIA_GENERICA] + ([CODIGO_BARRA]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +GO + +CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [dbo].[RDX_TRASPASOS_AJUSTES] + ([FECHACAMBIO]) +WITH ( + PAD_INDEX = OFF, + DROP_EXISTING = OFF, + STATISTICS_NORECOMPUTE = OFF, + SORT_IN_TEMPDB = OFF, + ONLINE = OFF, + ALLOW_ROW_LOCKS = ON, + ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + + + + + + + + + + + + + +CREATE VIEW RDX_V_INVENTARIOEDI AS +SELECT + RDX_CANTINV.NUMDOC, + RDX_CANTINV.NUMLIN, + RDX_CANTINV.NUMCANT, + RDX_CANTINV.TIPOCANT, + RDX_CABINV.FECHALIQ AS FECHA, + RDX_CABINV.CENTRO, + FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), + RDX_CANTINV.IDVEN AS CODVEN, + VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), + RDX_LININV.CODART AS CODIGO_BARRA, + CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), + PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), + COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), + TALLA = PRODUTOS_BARRA.GRADE, + RDX_CANTINV.CANTIDAD, + CENTRO2 = RDX_CANTINV.CENTRO, + FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) +FROM RDX_CANTINV +INNER JOIN RDX_LININV ON + ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND + (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) +INNER JOIN RDX_CABINV ON + (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) +LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) +LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) +LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) +LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) +LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) +LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) +LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) +WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ +AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') +GO + + + +create table RDX_INVENTARIOEDI ( + [NUMDOC]numeric(10, 0) NOT NULL, + [NUMLIN]numeric(5, 0) NOT NULL, + [NUMCANT]varchar(17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIPOCANT]varchar(70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FECHA]datetime NULL, + [CENTRO]datetime NULL, + [FILIAL]datetime NULL, + [CODVEN]datetime NULL, + [VENDEDOR]datetime NULL, + [CODIGO_BARRA] + [CODIGO] + [PRODUCTO] + [COLOR] + [TALLA] + [CANTIDAD] + [CENTRO2] + [FILIAL2] + PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]), + CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) + REFERENCES [dbo].[RDX_CABVEN] ([CLAVE1]) + ON UPDATE CASCADE + ON DELETE CASCADE +) + + + + + + + + + + + + + + + + + diff --git a/Varela/Varela/Lib/midas.dll b/Varela/Varela/Lib/midas.dll new file mode 100644 index 0000000000000000000000000000000000000000..7b11def572d99fc4aa9fdca1f790becf1fca43f2 GIT binary patch literal 296448 zcmeFaePC3@^*4Suy9rAO>;e%(1dRxYfQmwqny7)zMj$M1vLpc&MH|)_6p`#A3W4CV z%H_I>N_=Ux+SayyEvB@E5?_$;QUca0`n4^Z@KQ_bU6;0KQwW%{zt3mp-py`;sJ}m+ zf1W3B@7_Ce=FFKhXU?2CGk3;wqgP2&6vd`Elz3cGn()lOLM2x|ob8T;uRE1~7i{YN zhYOo5GyZVlx^=Uv@2t&RwD_Jo7Tm4&0m~XdFR6MSN6>u ze%0B~{=c~Ya~$xx6=jB{m$Ln;S=X4k9#;BY*vFEtC>yPcvQLKYapIR(Gs2Wck9bD? z+hla&S8*a;h72TR*B=ryJ^sYcMw>F+f|nO<%CGJCZ3d?E8QbmeuuW;Zuq&+dmsTaa z>-GQl(`AAAO9M>JGLoPl^#D68jZUxkNKuG3p}#2Vov|$wCF`Oc&A;;eXeDmj52yVkgkP;_xcw)e;~}0M{tJFW*YL#>yrupc4G&6Sxc>d; zt;*|<;AI3b)(6sG-+<>b{powG%IxvY(Z>*aI-S5~+FbqTbylTJn>F07Z#|Kw+^BE+ zEKSj0$77A6|2501%&DFLc#-$RT?qr{N(^a%e)`?Ztjg~6!-!O3z2t)>bj_&QzXnMI zygwq5UZl_Q#?N73{WStKkgiWa!q6_8#H0kX_3_O6YUHh-1FG~7LGF$$CHgYR7~lM2 z9T4sO5sBD2?+wMf@l9X#t9=w@=W8zkuFu{;Y3LfVOR3FlI*kzh&+&L%#Ff_A^@``L zidTOH_dd`ycUnQ-g0XK^E0kBVVV6YdN{^bYEG#{B7k^e;G&O{QYz6}_RsHYiaAPZ*d^>`Ke z8PRL-9&Qd;cIthRM976#uVtEb>&msG@t`vv%!&u?dM{8m7hGE>!b7{>@l{l6L8ms? z-c#>ThwkWh?Pur{0Nfa!%Z>zh1Bh65{Dp`^P;xqwR_|w=>$G81dWN z#M~?}-{=!mYtxZ}kJ~W4RTmF`s6QJGEos)VXKOT@c^ zi)-&$oD5;cXEA>AtjXTVt`hgGGWX=7WT-AY8-^#tRhCVgm6{>sE_BVJ?PzkrzM*RZ z;=wk)IhNjp8dv7-Wc;pn%3qyR3xW;y@y!&Xc(9j{zS#8fAE@W5!4A~mVaNt+zTlL> z@4zrM*p7%}BBEWtC=t=S#oZ~GX;&}sX?^0QHqG6c#3r_f(60T=cWySaZt9@i--n7M z^WUJ{$LLzm~4?FZjiMU?d3=W=83G~{u z7SJ+hj+C?R{2R3!{JRSL|2qDy?80yI?-@vfe%+xn@oy;Nz6Jk2e)gO2&o1~UWuF|B zWoeqtA_P#qH8%ZM2NTqsCu{TdJ)+@4ff?25W_7wdwQ{?fHom#5!q^gR3hT;=cKG2% zjhPY6*)}%A59ApLN9kna3uM^C) ztNoi^<`a4N+9E!=?W!HGzIrKQ z^#6U59kyfjO;8}!>9|E2+E2&hWuO`{G9=7I-kNwM!l=?3+FVzxw<-~Lr#I5T$TIz} zc&8Ex_ODSQG6DPE4-i~q5uJ67QoRW|RzJ<#gSZ(v=~WoNg?0@QsV^~rt4{&|DLx_a z?+F}c-d_ExZourU0avsGa3gr@hnoqUc?RI>#{hs7O9(tS3HSgCZ;~+*WU#YlQLBGP z$e$%a{-zrwyI=vCwiA$_Btfbsq_>xRdp?YS$4_2V{RF^fDm4y5|X53#%Y$MlBqZ zwQwn7WJrX`N>K}8MtMao`~tC&^3JkIgkh!nTv40BYa;FruZD0fGhRAGb9clSWozXf z@x@Nf)8W@9=OPln({oDMm(4~Z{6djNiE3{GfnX9E z`1uJiQWAOcARx*BfwpQuTm%SNJrOMnH6alF$3S#X0*r_xm_#%JphScbNK#g2ZIG&K zB{F?X3WQk;BzG<#NN#Tlk;MCb;1jy3$W}hQ#dc6r6>&e~jR%M5=Nh#z5UEKEVj3o( z)s=zio@b=ozwkH)19f?dWA#LoL>LOtK$ZGW5f1CNMyb>fBLX&QrT#p^wEfmY)&GH9 zRO*ZH8VM62NUPLelVG8`Y$b5fZq#z8fSN84WfS6Q2{Hb7bQPYeZK#w=y`T$Ar9M;u zi(G5WTrWnL$hD7vKedj8Wf9-?5`=jT6mbVdoSkuFWE`7xO&S8K!MS?<`p19^W?wL` zCbRlV3WWu=brBxexGzU6e;xRRrmD+P0z-(rKp2=jwpyr@Dy?_cN#3cVF%B1j_Zj*4hLz0Iec!n!fXN(PEI5d+mB^Zb@} z>Uv};#z)=l)Mbf?Z*8Y$qjS^WJNET<*13s15_alRh?)N9Kc1_A3&)3QV4-QUQ@rqV=^w)V32(u9aZg8$;?vXrEyg8su;bHrzXuhhm77BpX?n@N ztBu3XrrE@?E)~c2FH&$k_;onu5yy;F9CfKUuKhY3)x=>>#qr%#9H-trQ(3yV`B7-~ z$$zuV#$^O{hwq^yOyNsHl8xtNy)r?WloSiS($(N@Ws69T?4IA*(u&ralo)jlH<-Qt z4$E~{>|N`a{C;$!a{cxHe&trfO{Q~T4DVQbi@O8KUPOQ0nO5izf3U))?TDpoJNzg1 zW8m!3F~&xGJ>rkWuk(kSS6m!(I<_^x-_d$^JN_Ts+gjKDvL$eIYU|y)@vZ}GWem9L zvJklcn(HoU^t9F?R_D-(*scS4FuClnaVAeIwq5Z-@8&@IiO8RB zvrvvJ_WI!#@T+fkZdkLc`H0OwEttOM@GCL3->Y1 zFn_4dsRSK<7}S{na^@-iw;T#X3zuXtpiuGW2c1i7e%O_3-A*ujO`7&DyasEgTIe;O zi$Mz-SC*EkdfK(=HkHG<>2^PSYZ~&^ym&1C1ZDojzv?gGzUn#b*W91@N5ofZl zH2zCbov%AR{u7`1pWNip>W-|vzSq9P$B+0e`~9I06x6@?QOghdwYr0T>uG;DUe_DR z_eYllA#(dz+}m&u#Rsf#_|>|$P|H8@^Ra*107X0GA2au$9}1=fx8*kN-w>;R`%fJ7 zuR2{caD~nPR?)x;{ht4V5fBc5)Hw|i`WzzVw;qi3>k_GU{}`eQZm!g?5h);fAE9uI zt=GrSiBzIyMkWW>T5jl~mV*{BrSYs_Ax*&)=9<=SYT1q0GEn|M~*yjG&y2r7l+?oIO3Ww&g z*H1GmAvVXc#qIPqT?b@0j@jYZ=K0vVUCNMkNB+)QI|e@``8yYPKxEpKfE_uv`Bk@* zLSE|fp+ZB=Xbyfz0^V?6MkHv$Dh#aFHvyaS>s#R=J4l(wO$Kk z{5puy7x390pKK`%4)lkp7FvDLk?MkG5snz`wLcxsVg_in&9iSf_Mu1-{ z|DsGkaf)&WDf%32ZT;@}W`n1+XV80222X`1VAVLi`dm)qXnV*Yq|fr_A6t>@*tXxX z?c{=Z-$=pMMd*Y4*6bGw5wr5|+74h7`inT`5=XXIA8g=w-J-;-{xSQt9aEr49os%% zaJ+A1!e)U&vpwY4cFeKm%ls3|+opqdzY666#g}Vhq-=C#1hPXN=>bQm!xqSd*ENtH z>afC3PwQ;%PIw9BT*y9VUzY<#+f@H&bdrC?bP^oI<@>79XcawY4|+v8%SI>d5joB9 z$zl|huVPlsbkg?rzhxOAY7b>mbF}gys&9~1GDuss8mLrjI3BQZb|rKgYBh8^Em#P} z9lBNtWY?@jF+$C~y%FEdW%`VIs}i&AcHOLK{X*MOP5Yq!RhO-PgFXDxGY-mqMV1sdGC*bsb7zFzFww)L7{j zbIW85%2PB?Ho83vXS_a4ofXMZ*xz!#Yr_9DdP-flEiAtCt^n3wiMcMwgJ_jE!@-oL z*RRA#9-de+mPa_MNc9ea$G9J2z4}EmN4S0Augx<2!%a=Bf_Z;QqYJvm>ecUGB#J|S zziDJie?RgnMa>DH6r=|Qb7?Mne34y$bP4JvmZqIB-d_(=EHRlGJPH;Jb!@39(qUkLXu8X@w~lx|!MEF^^E4T?r0Gm5%>_k_L|QPN|FT05?GC zYrncWO?mdjN$qWI`x_hJV0re$m)ghL&bKy0oS!{$TKmGWW%stbQD@Jdh-;^iqSQ<> z=g#JJ2={8+OJ9>IPtIA;Ty>-0y01*zS^Ap9aB>b79EdO=Dt%32Iyr|SQ=q-r?F7&B z$31vB9_)t}ZVT_loWZt*mYB_tjM2DGqf$5@U8$==6`{#wLzSNPtC_OMPSyb(^q5?* zL;WnDnH;+tTmCyTf`>HYgjc1^EJDf`2*X}qK^Zt4F5p-4czkg|lzz?Ot z3?#c&ofPRXRfVyHzXj{P{4JRDj}@_6>;E~C!ZF9MS{+-gckbi6wtdWw(%0sFMu}id zMk2;P=55E8j63%+4$pqoL9GTVggp9CH;!%FMnnsCxFI+x9rN?Ywgz1dM|TSLv( z?Hy_8#kcKzOJ;I<3}4=mS$t{TqirXN=K2Oy7_Bx)M5yE3`_Pr1%D=Cdf7QubKZD)Z zH2vZj+Fh3(a9g=n+cYL#$B1P$qx(V$%>Korm&2ThQehl4jduhad9B#`FJfFfdCUVM8 zm(j$W0s{ty$7xt1ox)5xWqmumcf}w!j8d@Y6xq{RrtgL+s_h3<2keaF)*X&5o_6bY zs~d|BmJExyk9rZ@e&^ddYv1ZQ#-zuYw4+RqA*t|x9`)%L<55i2iTNqe$)uzawHm+I z7QaHD41!3UNhp^x1ixfhJHn2G_ztw=qx$_Me2csNHD-xw21oDQ$7fPD=IzqtI1pk| zgL0iBah)WNEXdLygEpW_g`zg(I%q%O&eAK#!bOYX7Tc^ayKh1Jn;3&zcPUN21P?5)(;WZU=|9BX<29`_Rz^($HVn_UaLB< zYV^d1N566*p-YX;BhC0Gu8vQ2n&k~x{=ox@3h-(h6vA9kn$)~vX;d&95ifb{h zn{XlXDVh)67JB|{i#p3<6U%x;a7nS&A4AftG<8OrEqV$$oB{f;2xjxxpt?80qTb}! zO3sH=xQ0L$H0j=+wV%_1@d&5T%<+OrhOUV=#-HC*@OtmP}7JW_x`=*El%+#sQ zaN43_GZ@euKHK`MMg48DduuRrBgiI2);*>AGGHdpr!n5wA6hbkHlz=hpQ~lSljRm}^m? z7Du=dGijk^FrS7XgF%|lsb$s|Sd>6tfu~nIBf57A1p!7Ts(K-yS%Is%u+j4`T$ag=o=dN3 z^yJ|8CS2dg^%q=^A&l1^z~%sM0`Q=Qvb7Q?s%l%dQ*E%L4Yh`OPcWg)mU&=EX7pW{ z>j=x%Tu#l|Y6H`Znl$1Ylj9HcjDHmIG9%;&nTU8cl>#QmaIe+GfA zcW-FD`$Y~t*2C~DD}!u#p|#d~Q>y;g|AJV32Z+_J3P?sxHQ4Zb=vBUT5y%=g2zPAD z%2XqrP*$yB-VbiSUftS`2UK;q1HXq}<=a7MLPH`C3~@$3KqstjJxVZSaZG^m?TlG~ zHv%iCo{5!n{fA!VTQ{uB1=co#0qbD_#3YtVT-wvKUyZF@p15_M`ZA}ud6#4|?LElX4 z7opwh36aq#F&hlz8wGN{wPhSQALV|@hG33%W11Z1Q+%;aKmT4#l{cRbH!rt`h65BV;V8^+;B&1#BEVu9kqF=8R~Q^4vq?<1eDzC~h`=|}6+O=O4O6Kvi!+fR#hJz(jX;`jT3!G7| zFH6Wh%tLL!6j*A}A{i{Y?f$9tj;fXA&iiT@R<0#Ex|?iB1cyX3L<2sPZ0tym>?s>k z*q@gTS()muc*=UA+F1c8$Ek*T{*SU^WEzkJyp0OxQ^ob7s3>zKU3Vjh~xDd z;CL0gX}6_VG%up#X$|w95SX^HmIFg9(Ra`>2=22*wNjB7iqweTkQ{%YXZ$0G?@>wr zfxz~tpu-46kIeo!DmvbhG7bm47!IsY>0b0xe}lY_C*t>}1$ldmG+ zDa5H;R}%#YSR+vIErB4J09t%eU{WK?jRf@~0pGgWXV)^%KTl_&dklnzi97>D0kW40 z6nsm7Cg<5UJX7R&7r{Z|A_2~~ZaKb#Zh$!s6$7W_L75XiX$+jAyU|c-)!l_|Q;jUb zod~P=7OuuUsq2Jom=kFrV5)iehkpXB3pc#8Igto4B-;dK`p*ESZmlv%t`;QotxdqT z{gjA7tJ-igK|s z5u%lBdd`M`CG?YH3r){il)?r^;TwJbb)Y=F^LUg z%5iLqVS)z6Ncv+JC7L=lm@P9lAYl;Dv(S4QoFg|l!cSbu4$AIutX?CZoQ~Bi@B~7O zDB1&d+tMu2yAZN!nQavdwR#Op8Co_-2}~4S+c?0AuC0H4L7Eb{5KHEB1LxsBm~IZ+ zd319C8SOnHqno4a6`7Ax0+WDmxDvPmd8oi17$tBF6FBJc7_OC!(j@wn)E3QUyQYy; zJ-qh{;q!>1-}}X~M$aoV8a@BOHO|xMc@o#3aIKix==l|{Be>4Jq0uuPR~;_Gf7|Oh zr28|j0p3Q>BwRB~8$JJ9*60~HtI_jQTvwH&f5!Dmt;Bs(MWg3wTxLGcRyKOlah1*i zJ-A-Du`AAmF@HlhHF`eBb?eQIo+iVAZ*BDK!Zm&# z{5!Y?+=c~&xR&608P~_SvTm38U54KqafNU-;rctSLEi&BuD5Y{s(=fZ*AE*6*MD)n ze@COoS`GUGS2eC5;`$e^!aEy1kK_6T*MJ(}z-5-f{9S^u-{2a(pwSb+m2nqvBg!C1Q8$GqS*5UdD*EU?ai1XpvitEK-qvr?r zVfJNqqo@CpM$dDBM$hd_@r&zExGuT>%-6rclQUiQ;F%S1%W>JjtIfD3fnRHY|61Tb zjJ*Df-@Yh&E3Pdl_cWAw1j^eR^hPb0Cn*jMeoglt4X#bq{SMmiFt!7W2DhfCS%YU& z_3S#}-qYr87Hyl}%>zUFN8h@PDBz33K*X-W*+~@r&yHe#DvD*_8b$N|p<|bel`DaB zNmEcFWJgZ7*Jz0_VI*6kIc63#ibaw3$Rf#tx<(naH%r<@K|QHR|9GiU&~J!B^tVu} zq;GCB4F6zOOW2D5^ca{KV{rO76ym`1Qw^vQ^0iRBHn%;`2c%n)bHI%^LUH(z*@Y#c zWc^x%nEg<*(MwG_Ss@2({Y6c(fNewiBfXMF`magybk8KWeNB=ldnUQ8Tau3sC%8n>a3n|jLmVD;6<53m zu|^@5js+N^X^2svG37VbY)Y+3h+asxCeNWPB0hMI4Vus*WE3yt3plXp( z(ul6NzeR+iZ-fiXziJ2TzTs-XjXxe6fj&(7uOb{3{b_9$N+`!p10wW?{Ao>=v)G@% znRsjAm)XpOi}$8J@GKjH%iMC*)%ZtE3%4J3L&|JY=DLPv4bfbx8$=k=v76x&08Neq+WOUp_VMRlysy@aead?G>wP}~NVbxpS5 zmaupd5iA!XP)&m2U|DqkC}D=pQUbS!mfffXE(gb?xhbciX06S(tZDd;U`T2N>o9gH zxggk)%xnps8bM|!_$LcrG7Li|vLeYTY%!d|KflrBUr)6r_(%CPb*2?wrT z)rI1#`1kR}v|CZ^^LuiUg#fdnzXc34N@b-P`;5Qm$D*MIE!va-9K709ZuTe={C!NZ@**Cq<*a zDMkLXVfkdlx1uOFf$RC66g>r8->B9;tTcIa1}t7+fr>|aN>TCS_d+3+>KCAr5-KE; zjjsRQHMUHs`r4eue~4zEHEk5cpCPT8k?c9%tuMe5JS+ z$)6!SN#&{GaZ))96Dke!tona4MelYQ!pArJwFW-;^L;tBMUE{IzD%=3m?(CEW6M5G zJg#M#;C~Xn^(@SHA6t`sMPVYkzM#LL&Xu#6cAZqEf)CBRZD~q$0BPz{BWlAapcjpn zY63n){WeL{NQ93+9^cG(eJ3gez3?yzJ5lppZOn&bkSoWnnNV_;=%$MVCng90BFmP@ zh9jXrw3RrOKqU%FO#b`^1}wfFW#t3P%FI~S-I}0lZI+z6;JCP}+h(+Y6f^Sdyop|P z-aV?|A`ldbjK!34slK}$-)5s94Nt-=R=+e%#BUkw#tDo@_?1TZWk$G2mh80B=YIs3 z(0jvxGdzUA`eNV&CcY5UF#HnJ`6BYkkLiXR0^%YKIk*#IlmWqY*rb6AU&{2ofK2wf z#5WT@zL{zDc0@*RM5dG_R6ca~zVXds9M9zr!?fB_+QhY4{bFgq%3BjT7fE990PI%|}2|1qGU5@v#e~b-G6>brz z?emA4v9#y|$LcYltsBJJ?98hhNJd~+G^>kra?>OlyhMMitj)4ZUiOnjTN2y=za?K8 z6VMH|I#xdjOZjV=T3Bqr2eFK-2Rm6J!@J+5LbP}Nq1`CaUdQS=c|DX26yDVlLCLP@ z)ydJqXdER&q#2CKg9CH-AO~r#iq~e2zved|nA>!~-PAU8k{nIm*H63^%C}m2v62Rn z|9gR=AYL!XNK%!YC4U_eKreC|&}vIFbE6+gyo%i1-!8ZLMsDw>cgt>Se8Pd}vE3zfs+1j{92bKUH z2=m@GY`^_Ln1F4YMdb6`(cpmC>!7PH`kMh?Q5{7jS)|cl!LqW1#Ir_5Nve~)ii6A$ z(=`~i$&lokLLndn=t4Hkar8Alb6)zxp++rJ6Un*9F8BsIPK7>6z`t}h_~&}U2hIln z!=CU(XM=yCCw%tV;Ggdae`H8%c~79_8vNi??C+AJ52Xsdcui?y`-e_VYGV6`&Ny=u zTLh#O!;jLEDwKnvXoZ;_=LWtqJF|^_!|W_Zb~Qb+`}91c@Mq1=Y-HasyC;B@rTfy- zy>v@uc2b@=H4cO0pJ)@X8~CFH>Jp9Y5SkRVnbE?;D_EW666-BpVp6w#L()!QTUycn zdysYjF;D?zLBfUIXvafT-J{@|o0 zVXRP>XIRn)e4vVS+}RCwNew7Qke{EHP$Us`LJ=0G6B2m zsxff#h9`A$%9(dmtgw>%9~hDr{dbNiogBhqs!aFA)1-1|cHOi1U3cga$aR*I^Q|VYIj&xXra^?I+&);zE#x)(+8eDhc`Z+GqT39)u ztxT^tMB5ilXNn|JvfYdp-T>hVzsQVc0nKQk2SkrzGov|eU`C5Ew@Cdr>_I8Yn4DT@ zDv^4(8J(PZJ;(hb_0MIroE9N-jrCv|kqP~~3jk{Mqr+zqfxF(5b#arxWeB@m2_uD9 zh{G(1!@;Qjb1aH8t3)i_9Fdf20NR^bgNBQ$Eoo&O8~<^9h0e+o{wu-rTCso)5}VdV zu#~Ga3C^~6C9#bHk0B;0a|y$p2cAES8f?9EHb`!Z@Y$qT2vIGPa@J%&BGiU9+__|c zdpD_(4{=W#x???XP9#jg6eh=;@ zVSG+V9T(huJdnIG{F=~gf=^Hh1B7B~rdHtBGiVQx6@`;9FN+ig7c}8umcy$%v+M%= zeIXN&o!(p-cfSDd8bBl}Le!h6;qChGuvMTS%T)3%nMzg}#u-SJ(5|w!4{p~V>z=AF zQdQ6U6ZXDK@|ElF6pKyC#H<87?fl>;QDQ%e?9Y#gu%2$}=$iw8aK1n&JhU8Cmg&n< z5$=)*rT51`D8kNwZ~+n47!;b`Z+&zs!X0OzP=p!AgyH=WZ8et&@99qANA8p&H=lt* z5q1WId;0@npgY1fNeE5(kyA&{0v_@q`wD-uJoxkBfj`4s&>d$_(bL-<{SHz@8s0)F zutVJI_$iHq-^7nMk#T&2Qy;Y(vxs3rr8K<`Clha!i8nE^5GHn@Mq}51)&f^fxRDqm zkyi*332)$Ad@~d1@8Wx-Ln1x}^ACYJLBXMJ-Q+5f?Mp}wntvv7zD%5n6r?!-%#JM$ zj8GfKiq4mJlf_Op(W{6l@|;BRVk(M&6WyFs{~L-PX?O~8Sb+5mK_U&`=UaR;6X<!I|hCG3Z_mr~TL`;!262&8_D2%f87G--7aVXnE1c@}P=39I-6X;inY$A+N zBSS(eZYM}2Jdbbj%}l4a%1UJn zzDyF?@Sak(hmZ{d%r#pxGVN-_CO~;lDcen?C_I}PL>g|!56X5Uep1Wk7nz0`uZ9(Y ziT9MU^%rIHN))qFQ5a?0h7S}Y;pvD&*=74KrZz4KG65dnFcppF`;i=3h(ol>al(7gusbzdnWG=weaJ#@H z?upEkOwtj+7+SUvKB}dd%TKVu-+~!hC0@HwpMMoUb95onA6k)X3C>Rb7Cusl%xmC< zmcM75IUIehIa3pkN;jA=0G!Ao6BE}j^}!bA`w)Ry*j#&{7k>r^?@5^y8ID}yn|Y5! zCa}1=?@d@R#bPWn6Kh4)h9r>iD1dnNaR6z3mEf(fGDPfh61+2|h{%69@{jpa3Y7=w zq@q9-AOPuZfu3L-obI^mCD@%0!ykNOf&~sneHw*&FH=;hQP5C9rp2-P4TO=Q-tTay z0elne2(y2P{zSkURU-Kg9^7sT-b54aO4R=_>#^~1&eK+KYAk7fS25;yTkx%j_^c>+ zPWR%ufxWo?S|xa@_YqNJ#N$-#3k>X*2BwlZG)2orsG%_6^-0tWTiT@LNH|?nBF_`F zb*(9@Og@9iDPnCg`#9{EjOJntH#m?0O#&H!{a)3`QDD*V z&8-?ahNlBzzUu>%6Vi$Icyc<}wyj$a0}gBL&&PC7$q=X-zNdbN@(_+hh|U%X#n)b4 zsjzR>E>~l-i1#o2xNOO%?`xvEHd~>r48w35HEmJlxqDrxQfl zP+rKohV9P7e8vtBp{;xXao>)@b{0@FlCMJ*zd*b(2 z>mzpnbe9toi$*kohI}M(KT% zIST1*#*;Y?WT<|_(KH3$X5#TqahEP2ensCJ=DqDzf*p8%Bky6}^&v=-AcJw>(VF9dOjxLyx(kXudN+WRYMs+xA#@^q+VrXfsxa5EEMq~RGR!4$2)4qglNn4%T<^^sdKuR0(S zArw~5@Si>aVJ4?DHGzOb*+zT}!nQ|`lKd$5j!45AVvj@~W%5XP9ezOi6Eg5A8Ms~s zKEl8h(tik*48jB$2orE1OaSVaf@5lUH4?@88+7F+f)Ywl6A<)^Izb((Mh?VUZSY7e zN7@5n-sO<_!1Dn-o7HF0B7DV=9-mk8fnWIl9$%&iBrImDt^a}Ns}KdV6L*;3i}8cv zE#ljOFr)NL>^$hzH#EVd5X|FDd;{UgasqPRoXL?ci@|yabaR6KNI_;~GsDd<38#Sq zd_*D>%wvKcvUEZqFgg}3LLfRO98B3Ti%DQo5jzV{aJOEGxe&K}vM*62fpzVv8OpA$+r}@EjEZLM$Pw(87F9e7xJ` z{1G2CM2M>E>)(Xo!4Gb+HcxzTocOX=4bK2{^h?mEi5%WPg-?P%zzId)2CHGwbjSKr zU`^Bj3!^p^A~#g0bd|^ti3<>W zt~t1ZxE{xqkX|D@Ii(8oAv3yG7TWaN3Tk9GP2Xv3As8YIOgL?2oayrIAA_J9GHu3* zm1H8_#2)Fy6b>zxSZR`B@HWaD=`EWlz!w{UMC<@KAUC-23Sf9QtD(+dZL{&Sr? zFOcVd9DNy|d3bLNU{kV%#@@|hgEu>tGu>y`?`0veIoQAX^5P{%iG%+V+npQx$b@!% z*fe!Nc8A%I51^&JQj?`S9!S_ac?`@GyTR`r1r%{?`{_Bxz-$HE1;IWj#}1Wt)rn;L z?-$8vXozH!kgP+0A~o4qB%@hTj&lj@*wae$VBa+iRng$&NgVPl8kX-xmJj=`xtGrW zo-eR?{%v>5z1N`E#lCD)lj7ZX&A;0>KOg|Gw-3rC&)?XWOuTuDxdpF_ zL0t?Jr-aD;fUqYMzVsdJc=#O@5smff71*I=C3fV&Zw7w(oP}!ut{hzF;~I`@G_G;D zCgPfcYbvgpxMtyEnzLO6h$jy0v6NL9tME73l$h7wl%~X{i+hm>xz^ugS7MX=O~aJf zl?08A72zXAc%Hw>sl;*xe6|Sh=WoKQCoD+Du5-}ehMYn+V8!RAL$L6Zferoe(pT&GA#&p z$8+#$i_7+N!abJ~(MLo)!U$q#iayv9Hx$nd_C^W~VX?crLeoU(qYSNNXpVrDp)WIZ za#yIt@H2*v!8B2cEjHZ0D&ET(9O_>M?l}YJAcH3m?bnKDTAL|1Sp1J~B>;nJ*D7+# zD)m2ga?*-l16=7Vx~606M70Eikz(vS z=)wkq6#(^NzqFZ5mZRQdd!zb^g3dmr++G>uYSt$-VWU zI0m4v7Ce6t$>J0BH2EG_qFMc#H&^TD&o9lzmk(Ac@aJjR!u0`2F>qNbu@tP5R2J(W$JUWJO{}D_ATy!NO5U>dWf})G~ zK2d+kd>_b!1O3|cTx6L)HP^A4`!!(y$Ptd!e*yK9v`p-*D@f}T%&y5~)=wHaWJHG& zgCLhsq9g{?c>V4K9Vdtj4g7w{-%tros6M3j`UKSbgc?L<5K4d>P!shF6FL5ZP=a@a z65u(&l|x)#Vtgk!BsTSuM5hIpOYodvEukjre>9*nVz(nb3SY{!+sw4F8Gv5}&E&*( zq=Wpc9>7y@66jfVKf?x8_kur?DI#VHlt{vxaTE1>%{=6eaK>JUbM4jlV-hM}Tcu}> z;bd0eoazUSfG!r*bl7(ldt9NXiT1C?04A@+tpIo zFfJ^V0e}nJVq&k=Q2tm)_z3(6K5^P4Bq2C}+in8d-!gght(Qgbfis?|EI8GX8y6R& zakyqyuQf=UCrA^j;Zkrv8i%8@`Y|KYCF$;8-CzV<*#$j@(C-uaheqT%CiF{2fUOI9 zETMlw=td**(@V&c;6P}Gk%+{$<`6d}x{@%P449o=Fe8#+ZX(R<2Fwc*W|lb4=K^4Z z)c_M9Tlb$7Ed$$amxC8mz>8QfM8oJ3y3Z0Eh^<*1mHM?3&Jnf&Z5Q8;XCjkbMkZIw zOs*p%dy$bwIeW9LeB$oK!@JM*f>LyMbR!zj_85#L?|-)Eyl;lBdko!#)g zV&bbw!dF3j?-}^Me^z`8y5akUiSMo?d>O>|zXrbPUx805`i0%_Z7}iOE$|%^<^64M z;M;HDJ9Y7y%Pa9M>W1%C6W={a`256o$iVl?S@A9IhOg1YcW)BDLB#iW1K*7jUk>ZH zk5Rv6Egu0im}Umrx^Jcl zG#oM2|262V9?2SUgg-)Z^q9HmF>_6{u9v@*6=(B})(u#ic~=F#rb3qO(+@duOQx zz)S)NE5i|_qAomFryE6nc(`bCLZmZ1!pLOTaz`;4NncL`SGZ zKTii>wgLDZ0q6+x++I=j!J$BiW+dc|!&BEx8)Dq2?a?MAlyZ>_lbHgu-hk;7%mE%$ zm%w8-zi7~i&Joe*^+dGU=%N*j?xv2Vm?A=nUS*_~4GZPP9Gnp(8y546_BVo(>LMY2 zXe~L9U1T}dA4Y3Z`%&y=Egdb|a9~ve_ z^C1Jh$s?qpVUJ@xgrc|u(V_fY?A4w>CU^;vgVkU-TuJ%4YvR42#kr2~h0KJb57h_xH%lS5-oQ?QtJ6gE^5y4mLJ9EH|Oy?G0#yf zzj@rBUy+MbIgC~ra}?s^6s`QIKeT*pniBjoXKJ}OItG|6g*0e>Xw;d7iDVICF!hRO zf@EKAnf~ap#5e+m+ygI4`#21J2WqkftFXXZiJl_@l6Yqm0p~ly+|rIE6XIl>Mqu3t z65?dLmO=Ev5=w{@Z3iW~!w9l-5Q_%v2ya9PcqMe*OL!)i?_vAVZa|gHM3vmew^b`) zemcVJZ<4vJVZZDDggWewhqbBdRc4RN)a+ zA@9?Mt+MoVsqS_r>X69;cUCUkr3psiz%0ae| zNM`%$bMZ!mD}~^3JnzPM-i~hqF~A>&$G(p6zrhA@=12Hptt3=Ws|@!U;R%hkQ-;qp z!p+tnrM(3_HyYt)3m2y|gz^Uk?-5OsUH}}Y@tHj^-5-BDa2_7}25XV-$3{9c|JW@E zoMi->na8Ff@CGB$%sDmzf#uz@ja?ARcao`Sy2AW^%m7Fz6rOzRpdT*SJJG7eF%3>p zAsED(jZuX5g&o~HVPuEu+LeGXhSLH9z7HbJ(MYK7m=T%T6=@>F_@pwlqDDc{wTf!! z9t`PcVn~nqV~&7^sXk|H(AmfQs7xv^?CM`Z<#j#~ds9nRL-smkD z4$`#A!&KKO>X1q}5`2idfw>OXt}jM7La8oqM<`I2jDs=-Y8PB(m9(x#BK#JF--7UY z2%jg$A)~p`;`Cy*#(Ya*gCIHj9{8z4crF))MM18O%^Hw0hw zvlHd<9KPwGFSLE6ip8m5ljg;-18}*6o!aDVzf~kDid{m#2sT?kZG9i!k*DU<(dC*h zT_zCRDG*=oOriRUxR*RKUCc}qt6*|Pp4nhOeJO_W7yK&|F=JX>JmXYocxJ1*ss%o4 z`Ds#OEzO=n;#6;TES)shU|h_Dqqq+`56j33of_eI_!gjm<8$4U*i3vqwll)@A+Axl zuEbS2T))DVoNh7Rx8Z6^ z3U4)@cQafl@y#e|lQ8SpZkvRWNfpo}%tNZrCSlD|SvLuDD#RyR0(elBmim_MVM z^7wOM6RpQsZWAq`*ubVS{K;zKz#5y&(%7UcmOM}R)+c-fAL$Frv8_B#vxZl_FJ|B2 zL9f$=rmS)5Ew`okM2!Pw!r0c*JW$4%K~Q~mY%#9&QK#CFY@JNTc?59|4gBMnN0@0Q z%S+54s5q7bXUx0Cax41pDo_O2r+g{&N(N7-iH*`+V;x((8CKs|)i+5i!OLX3)iqXi zO@J4_c9Kt@2?oOHlYIJ1mu!g%gtxeQI`YsCl;7*qpBPMIDljMV)E)$s`SevXU~1&i zcMyOxX%@+Vt0E8WlSyus0V5+%eJGR6lmX{N9>ux{Cb>oiba`)h(1$6~!)M8Eh)i76$@$EsZf7H%h;e@+=$hWRAW0=Ls9 zx}7%C?X;oA%_Fjv@mN@rg(Wef5nl``U;D&OPxB~&hE@1cdiAo1Kl~^-RDjPJlx*>5 zNryaJ(=5RkFcb0pM$c^gc0P{=kL%$dV0seoPd^J~@JyrUe}D~Vwm7!jn`y0`P@#Wx zt`+7-bD>xN-8>`b<3}o{t2oF=BJjqSOh;-=&1P9kCY0*` zfr>?gjvj=*gItA{+AM*->>?hprD4kFcr5)b3LUkE`X`6(R4J~Ixspab{G|zhIr!1>$5){p5!)NW@1R@bWy`LoV zc{6+?h^)R@5Q(`;p(pp;jBJnTkD?L~0|m>nb$&Iw(=Q)i(+HZm5|*=<*bT3i9afw2iDU~74wKB~juBYKhwo+cM@Z<6yYHvOHy zGcKDPjt4gi77rF1b>>9>iEd8NyM|h3HTTe5(^a*17#?-^Ce4jtZzc+Z;|Dw1YvYCTBRNvdwv^O_R|eOmb=5URW&PPx}SKx%U0%Tok^cx{aSSyV2;hGPti z7tE1wx>4}v2r|rL`+o@;9?^NO2By|OjC($0;4>iq2(m3dqL!}?)jfh$b{dld_7R`{ ztdT=_In=Bs?l@ZtBa%&=hY1W7oReo5L_C{HHTNUjQvb2P3FgH&GgUmeTK_fjgv6p8 zXp@;r04EkcViZGlKO#)6@<+4?!67oRQQZ#;Qo=!mgz8pfLr$%HwOX+dM&E;Iy0>$o zllwuhe)nGliy&jSBv;i!^xtd^E*Kvad9g7*s^G_S1V;{=Rq!TCd05|r3Ki0_5mj)Q zRd6^(&xDr>x}>U++u<96JyUL#4~2pwwPxO;nUMXUN9Gwy>9^2g)Ou7(I3$gee%nOF z6i<)LoUY=?G&5CZ88wWtyZ>aT)iuGZ)2T=$b3dAkCEv-5os%G|DxPX`VqEV~&w$ zD2fF`5DamYwy>F{p(rTr&4Bx6rLc+vT2Wqcnw;uAALj;Yvj?ej&;)9fG9LDL$$GNi znJ6FWUCq3Qq|jTzH3NcP%G}!T%le1dt@|M#JvdvE<4X#K7)48&;5nD`C=-+KxMT7B zJ8lcimuszzGQP}wHZ44R8JmO!W$!BElfE;R5$8TS^B(#*-y!k{Ivqio1NK;mmCLo_kKnl3I z_Rt$7M+w|kb1e>vcHN8?e5Y8EsXfUEbWG?>OIB!tYFNuKaGzX*2u+jGli?x>J;(qP z9u6UmTnW{o<-seB6|+1qG7ZQL*_ER$@HEtHS6w3w<@Y_&!GKqlT1gg9dxJ?YmIR(Q zn7I~3mW$nv%Eij$>GsD((Pi%FcyO@K_2L_)8@Qi6r@k+TyBJM2He8kgDjG-g2h~o*qLg7q#$>VgGcM$_eJs=3BY0@jfdYINLcuW0XrD?wL@~(Tp&^$O`NmG_VW(q zx^02k-jUMZl7`Wf(9d8Ngap$9uogtj6u4Flm2T^)4iam9hOiwOixCZ(fDRjiO~-}O zvgymbNlI%WUqqt@Eb_ycMG0VGjW^RDFT}?^Z)=4%&9+7y9xHra!Y@H&!Q7f`y;m8M z^-;g~LJ8?biyiTF-cHDFmxn ziJY>vD&x5SQyeW9r`==OYtkRv9Iqii!;x@GA^aip14+^1@yEEEI5@3Vpv*`CK|LwF z+I~zNUZqQiDGK{J0yFRAznk%5;$&O_@=pFU>Du)oaTY0Z9qJ-Z{ipnq*kn9~fKC20 z@yz}a@k}-F%>N$OfF;B6Ihj{1XCcax{AZSP&HoVBtQ1^i8|9Ah-OEa6;WwdiU0o`T za?Ncr1z5Y>4cAxkts}Hi^37PEoQef?m4xSPb=o2LhB{50zx>s83fW_uKE^g}hw?dF ze_YimY?-dU>eCr)5nV=z*&m~uDu+_Z)^acpngMIh63gXtt-ZxUp^jx~N`Bgsj213` z!^)|o^J{t7HWv0_IW}xko3=Z4rRH0-YR4mh!&#|TZqg{+Ygj-K*=d1Bg-cCyElMYV zSAP!kh0?Fa(`H54j!Cy3QDWrMNvBP_R(Qsry%^fcR~34o z2oo*-x6(&P_ku)Z5NbLM040DgCadxvD5{+gBiM3%=#6zEv{EbzV|Ng7AM^4TRL6hK z3XA`SAo|$zf#w*FUv`A=14d4|FoTR?(Q3Rhl}K@zDS|oi+C}>9FA*$T31)&58Cpq| zc7KtW$dE^rQ@2@LNX?X@B|KUDVzIhaK%A$!sus*@nmSM`Ssq&c_=lDN0Magw{ukKA z((Hm7OT^vojsK<|A$rcK1Z|u~tFe%RU^^FST(ZO9v7me_Vq+PaI|p7K9+ykVb_`{+ zv7!&aYqk-4#&33UYPI7zHcau&naaXC1+!?r6g(=MrrVAppX9Z_~U>B*b=)>8yGJu zzyPSko?qgu#k)1`ofPZa;>t=N#;SdHBq-^UrF*fZnc#&(%#OjnY}e17PI=xf=Sp^D z8)r?2b_p3mf0`mgo_4GQgeNv3d>(8K)+IaJAUlsj`-D!%gS~_UEw(aAj%rzRi;HR( zfF+ho{oW< z3t?;WD2{~Zq&pg=Yb=ZASp6{a3oR>Dg6A7@Igiz$x(Y=glZ=Ssm{qi>dO%|6U0bM+ zfX@?Fm8i%(iX*sDNLgGYWW=d;;OKLFu!3ZcC@|5BHCFYgCI5#I5eCbN^NN#w0Jhph-ZJ2-G=_833F0%-1>UaK@6=i z)bHOk>j0iG&`&ds!g%_k?IMVy{YA;+Z)1Fiu@6?`O7*SPWrdb4LazAkVRW<>#fv;G z`-b=ai|gy)d$J9<h{GxJdnV*0YKZDAChi)(Q3+{pEO}2|ol*C2(<~tJE~+sZECF zq6*aWDitMvwk^mRY)p17yGsdRWbYF?@;Ly6mMs^9gXQ|dBJhVLSsq&E6=7a|x(Gu# zz0@CcgcRx%MHpGjCd{xReVCaR%^LgnBW#x5&rCZ@cuo3%ux?48El{+UPv}pcDlw{y>HjAJeB(2q&%XV z8>BJxun2w63=Iy#04bd#ayY&1W!Q+Ql+&So5z1u>1Dnzcm3j``XbRC50%#n=qC(r; z9X6w#%J03#vGV#*1z~`+#2zoPX|*=ER%^j?jF|AXmrv)G5A=M)!v|*wXVeuj>kCxE zZ^Ut==pf^mBwOUwobj?eO|%5{(cX{;%@t4|>dObJ9C4hy^f$q~*UInS3uU6=Jc?b) zmXAgxqs0*Z-0GvqQ!A_rH4pce>4)JRMq`a(v6FX^DEugSj5|t;vZ7#uoP=rTzb1Vc zOi>*99UF~x`Pk|e9)U3~XJNQ`B`hg5<9O(4;I9v4wZPS>)Z>e)LYi1fw33z&&_brN zF51Ddnhd0F2SS8?w22o40i3_{!zy=tS@5^3{ zDG{uPDVYIsrlOgUqBfj}Dsa{PF|@1zD7c<2UXmT17#;K)?(TfJ9aLlHVlC zfR80QnG4RxD8LzGLTMU#`mk7~q$j^UZ7nAHaL!>4dh+j?u&g zrC5*@a~j2xe85*nNu8Y5flf|1vP_xRMU8aT$I~a$6!M>Q_GscCz6HsUcKQyK3S{QH zsvN6-E0~2&xHtR1C#a_)9=%j_s-uL_XSd>uB2Q=NepqQ2g1FF9Jiv_ZM3seh49CaN zRi&CG4m}2`ohs~uDU5mmU|4$5_u^Q&nX0d$ZmMB#$MAt=m7alBE28SF`1Pc|#bPRT za zA}6^A`&MZAt|67BSTt>nof=3?neK&48eD=`3LR(UD8gh`6|j{D((ph9Yikdq4zQaF zVnIP9D??o`Uc>+hzRGMZ>%mBNhWdy&6-SsV7?S2_*{dWh=fVVyub}mZC*Tb-p?Sw? zj%i%Pv9HXeWUwBA_>KXCIH4#h656q70}514^Hbk>4ZC}HC-7sn{sIjX+sMtIP@^Alx?+5 z3UU*8TO_>3!Enm%n{%7z94C0$p$gLi9j(Y_Ri;c)QJH(YpmxfjY7hB;KF{}kla!0w z@4w@glDwDi<@r9}=l(ojqS;Te(^{trjetT|V|@ELfOy41v_+wFp*{ojtr&sfB2Oel zQZUiZT4q5z2!j(+8_e|&Vja@HO}3HJuAG=K^ZYjK!|`;X>4kG)K8M*5$=Y6<^EqVB z)JlUb}rr3b7y)Q7&cTjp0K@h;yGaZ1JPd3 zfGuU=$~ng2W9C)jz&(n75%8=Zjw#2)6C@;Shs#FPALJQOx5 zOk@aQJ{DwNfSvKI06QLmW#MjX<*NSq$_13X4%_2G}i8PBP43`q6=-8w2y zuu$~CKCbck35^zW+|YwrGoqoaBp|1yL3jcne3td}+QgPipU8M?J&UH7%uZX=gFDmK zRNYIhYfEZfyST0^Km^iy?fg5}wWa5}hF7RH-Eu>ZHDw;L+AsTdTKk2`#L4|)uIUC- zN93AD2A^|1Clj&_PnpYf>khR{W7EKXQ+h+^{mZ~LXOj-xw=hit*UFSOH;b1tjp#wE zC}gEJ*PlBfawozIOcoTGBZinOWjroH*2q|rrf#x0lY(()$C`k^k?yl$fe-Du5~3=^ zsdNcW5JH(L5|A3e}IajOxS0PY9$DzyzFWdbp3) zkrD16UxHG*OZ1sF(aiWa@bz|7KZpgof|dG^#CJ(`s417|^Hu4BOZB1}ZP`L_0o0gy zH-uk_nuW%JPep^!yZncQ#s0-VzbiZd%M(h}*BHOL2?vB_E^6vMGVVmq|7gM*z*hE6 z2r~g0(_3&ZFj_s6e=eC3zA}CTI_}lfYb4rU4bkArXpy_pco9LgiS_iH#fMk74bqEN zY6~}X{cn6=b^9QF=1Q$(b5{ns*_km~0wYCrP^^B* zHSjUm_q{c?@Bn>QjlZ}iJaEzT&dcLaqH5;oeG) zTzi2+f-Q2<9PTEdsi=nJS(^^vy4gZ+v=9p%HYE%g5k>mC95l1n<9G@&P{*}BOUl9R z$hmPjQIkVr{axy`2*n%@qaTN~X{%~;?Wz8wVFwFzAt2TfZjw#s`P#VN)cO!w|FYR9Xph!>WC+a4OD4qvZ0V2MQ0@7vs+)%p$^mZHb^fS#CVq?HNbTf}9CI2$Rno7|X2~AL?{Va7;oPa^vnqnq zXHG4hIW_6S7eztze+2v`r`4M%AD@wi?-g-?Phkkaf}v9dfJhIVA4JWzU}0jraQ}hzB?^O6&GtiT*gQ}rE z(^`Y@C6+}HqNZCfvZix8rz7^&2C?!N)#!8QqQ|SWol58!mi}JiX@Nnm^-}m|{fCq^ z8{dk&yyyjhbb6)UTe)E>jo15|R4Y%fv}72d!V8}K_(-!+*eTKnbMTuS3`m#08bh>{ z?fU^KF*tx=3J--2FZ37D(`oH;MNOM0)Ob@)dkQTk=|A;&bca9%?33`B_^>h!9|9d2 zFr1op{E(4}xxh(*2ejub42HIQH!+x88LT3SA?rB{Aru4kV&7zJ{d$*Z%C2~(a&W+p zgThzV{2oVFrg{s7&f(hFIu*L~zhcEI=|ZgU$J=m&ypN_RK$Id|!QWLsLg}u2sASzVWG$+vcHyaf zf7jCYWQDk&ZIK%mXB!V+c_xV!UGeh#vy#}FsJJ>C6ZKz1&91e(52K+nwWr`;Ye(y* z^)+KMgqLXG^+npM*KLt}C~(T535Jk(lKmTN@IcZuRR45;ylxzNR+2s>xI23K2OfYKO&`kH^r{cQ{&b*aiGyHazjK;%XX->z>Eo97wO^*_yXyIsZ)DSmfq7a13)DO zWUidGWS^kWnck(3z#L!-j`pUH77vKnB(i8Ua0<(L%I0b8hu0;O4F1?`NKVmAZB-5& zJo;2z$cbiX_quH1Z^cSG5ljw8@ltGjh-rugg{=N#Q0)`pff~Jm&T%ioeGBt~D>^_t zlsAY0W@Po2BbXLEetCL$(@}(~9tZs}E{F9Sa<@I=ji1L$PxB$%2pQo^&yEM{3^Y-_UwWFo0m0wL5IApkw{wbg zhookEsW(0tS3Nr#YIN+kQ2x@*4!bUbAuVYaf3o3+rYxR*aEqK)vNSk^WZ zkf!`ei!rz3vQakFtpw$~)viplv?Znb#3gPz$^8JG}0*L}i?Mjs2L0$CGHv>O52CaV2G*4cJ?S zp^{k?b$pmYI(-IqDyMkIWBdTyCY1aTmO!!u;+KBj*Cz z9gF8e#0Ov2H~Fwp5L2K#H?jcGiTJg$AF%O4!NmBdfSOcaKfae6kDlF;8?hHEx;Hql zuKpu%a-}|dL!Q0DExy0slT)rpv1-vic?)WYS z-FRa4uQ*47MitrX zT=B^#-{GvogK#wiS1Ho_rZ6n-F^!08Df1C_0_=2c^w}(QItY@u_t1_oXhq&O1{zi{W-cDy{PsamZ1&-Wn}H z>qC09u4EiocU6RAzy-Kms?QDTB|4GuEhAwBpb6ETI2BXDLaz1f4c6%&}&5t^{kHw32!@7F7`qM0-VfHw&~ zi5*~-57Ja;=`_HjL+6sg|%p&;bvMU|9l_dz zc$a~sPrztVPa$rfMvL;Am3NGM-V5!B4f%Ilyj`P1+-1|LXytbSu@kcSt|G z%44P7AaGugGx1H#W26uwPkPfEB5`7U;y%o{TPR(XQMgDbV7fZD6D^50Yj&CJ6I%v! z)AX_JefwPf(T;URdZ&w?cV8OMPDJp3IBTE;VAq5ERv8ZI+?U?@B z+_I_u3(!BAtEYh?01?a6@TPo2I2TjJD!OPxI1V07%iM7YB%tEr9x9Oto$+bVnq$FA z%n^cHtgbmQHPm()s!MsXI1#c0R0ePU55kW*r_&WfrI*W#_F$j~>m@E8FL82cZk+eRTFk_5~#l3n6 zL4G9!(Vdy)FUayVutXzp!3zI7_7>>2@vHX}36u7D8eRibP5R|&*oPm`zr`7vT|0^D ziy{OC*>L;#L!%;>qli9YB}l~l1+H4S$S?t9IYZSdMnw!0@eNrJ&em3(txbxWxN83U?E=;U*6-Pn61yeF!Q`b!bn z7QYAt^z1`es+@KcMf1vnuO*>TI!wWHCqN+ak`xk23js@W{^6-6RKk-|&p-Pn;7>OI z2_le&;8`og5h)$+O$_g1RfXivxfSi}Avl0tRB~O2Br!)2%JGNXxK`{&=>~PJ$2jQb zriPqs=_cvf6@`4_j?Q$71;rXfYGGVh7>1HXD*=%#m?&laa-v1vv~}NyrYui9=PV2z zou%{i_CKfbbZLYr6z&aQ{}IST=y664>>iPRWa_~zf2BJ-C;=M+miV{dktHTq>!lA6 z^Z+v|a4j`eZkQD=v6f3+nt)5^=|xWPC%w`QM@h)2p&v43DjUSvTagatI++nVA)^a% zv?d=78Q0-O6OyUt$d5xtyF4enJ7jozJU6acnI;4WRER+upM98tx>V(Lw39w4>h;6M0>UW+9BwT{hVz{}6lo6Z_ z1a6^mrHI0A|EjL=g?#g*VzQLT=HcBFfs@X#6U{mW3{Y&`8%q-#GE+#p1f#IPku;Gi zx~}Tliax)UIzapeI>j0I6PZ}G6`RSpFefSG(@UH3Iz6c9aZeFH8k$Faae=mC0m`ia zsDl!93leqnjH0_prI~kBynwKd6)ccxcmacXM$?_V3(`x%TWv-f+Ku_!5fIRY$7jbO z$@CCY=L9+bn$dVbUK%0oJg9mB9rG}T4|F=8x0}PeMa!iFr1!`<##Lw+06`^)bOpi$ z4daL)iHgs*{SE361+!*`W|z}qN{CoG0Oj?GwtW0e{YUb{&%qlhuNOj(Q17OmP~Ups zqA6h|X-fQ0;_a%17@mXmF0u!~a>#-fXCNjI2QSRQ(uzx61>3y^JkjofC+K|MpyQ`> zu>c!(4O3LQ)Z#=yAoagFls?i!x9{%kv9%|>F4haGi#>f_lmKWPM?Ky}O`gj;p2UpM zmiF8lPR$Hi{E@n7v9w{BQJSsr9cF}bHFSS23iAUsTKuBWyBdFQ2O zlzo>i3<;_W{wvy=EVM+z9b8TX0`}+{sH;>AJ?lnNXQ#7r4W%W=-76P!T1C%JJz zl+WBadwZhYkyp~tPBwRmOvV^=m7tE;z@g481YO+-OiP8HTDB!KP~KXf#P&2B%IafS z5AHNi<7Ma<_$Lk$6aTt_e_%o;{#8N*Od*Tl2eg^N3T2Re0X=XaT#9QZSoraV!ghaC z6P6S*Hkslsd_{{2FRG9+6~9IBL5zLjOH#--RHXa0yAR<7W?cv(UB?$LlbAB#T=!XU z4mD}iqi#H^aPA7=oVCKWR`eqY&)>-aY+Sq5e@0xD<# ztMx6LcpC=7@iq8YqJz#zMo@#e?`}NsG}~9Nnq&J}Z>+n5`qQ{4OQ_=7&eK+8+v*`* zE`)Fz-Nf~b6^}xYl}tZqQIg2LrnD*q%Mn3PlL+yzHCjSEN&!nch^mU^w&stl5ikl^ z@elwBV`>^EbjE=RB;s5w5OF-1Sj*KSiEUELLu;=Bi-~o`3xV2eIZ9bv>ImhAt^KTf z!Jr7wogmevkEKxo732N{`%fWyVFXVcPZA6D z#wffYQq@2`G|FGm4ahLQb5x=@D?PqYYk5Z8s7-B@p?;0M37!t02zPxub>IUs+%=da z6F7UipO@2I#D!5VH$>+_^FpO6q`RhE2OYE3Q&vJ(>mNuMk_lb+GZk8S3&h&hA4(Fn zI8P%&JZ$>{FX6Kv08Xlk)JUQgEgV}jmt_}++C*ae5(JDyq=nEtRZZ#gC07J6f5{oi z#NP~0LnBEAUU`N;!+p_kMn?=2gF*Q3gOjr2XeBE`;o5 zQT}OcCGk%nb!epmjLJve!L}JE;a?H%wX*Y5Q0U@!u ztZj40OQ-wflHvV|XCrPJCSBO2PplWuo@v{9UPz#);SB(wHPDTvvvq94AMOJsr&Jfa z5NDK!#IHj|DrB6}n<7ATCs!KVtGM7uOuGk3(oji8lC%YNSE6h@jOuF>nfWkLQpzYq z;Slx^_p^E9MBvLc;l9?j(TshjNCc@1ab`w+GpL8y1jJBqKFa#zXZ? zj;E3A#S)4slRQoKrRxXr*L2jzuQYpQSW3VA_W*{^o1ucxk9V3ZqgI^Qhr2dZAx_2jma%(RaxK0`H3T;)sbc2N#l4 zzU%ZfG~gLx@1a=fA;jXj^-Y^_g{eE@Qst}YjgJ z{Wx6)Y6aF{GxyJr=T{Ms(q50(?7IP%7GJF5C_r%peG5W;DX5YSvWSdJm5`p?@Y$wM zL)rLEDeZ(m;;XB}dU(0pHQ3`&G)i0R>rg3)yqlB9^c z-4fzeO-F!aEDSIm!#iXhFX1{KLQGf$?g03sm@Nw^ac^}S2kxbaoTcuMM%`S0pgVjK zu#h)HN`4lfdoO>$hciod;`pkJac}8+X$Dd5AGOzyfKR|Mi}lTuA#ur%YtNe`Y&a%F zH-7{aF;?m&9xzUlG{$8-b_c*GZX#|sjxFLgwjl?>+%4|`7~F7*+Yr~fgL-8yD{mOH z5wm7Kh8Jw(-hwYH(B10XN(dJCZ_BOiM3kwX$(-%C;zhB5fpt5E=m=D|EWBBYuW$(O ztt46)2q8dd!EI{WL^>;t$SQ269rw!>w2MihkVgUD_TTKTeQMlW{`tr20$3p3w>4UE zR9uNN!w*DeJX&cSxSjjp16Kq=aR|G{Vk0I3*Q)>#8F!?20UD{@DOwy@bhi=hM;2`{ zA8XAIH;s7@qVznV2?R-$OM32^51ur0YqR)`xwY)TWjv0#!^LQ^_-{gmmK-)DQ<_P) zXBIXBy5T(B5yzl5TK zPCk#av>Ipu7(sj#1DK1!Za0s*Fft_hBhMM>n;+GvyipV`$gO>Y2H40nE9Iz>a}64A z!9dJrA)jbuwLEA8%f#fWzw(@voUsihV}KAK|ivP29FoM@+n*`I>Xjdswz0i0S>m!$7PnSzejD9oC zOEu=D8l&s?=B2QCDQvt~Y+lNv?opR#Z10VMXiNhg4og0)IujG)w;TWSFqNCS+}ckP zbrX&I)iVnjgjWY7`Mx#JBetvuoqEQPxGsBs$Gme+D>Ag zd4pe#zgRbjI*f?k!Y|gTmBT<)QFL1cYh5jLi#cIOT_8ck55A!DOBCq_G>*s%OsWI3 zG(I08bL9&;c!7vycFnI+7mqO9Nz8%OH1RaQ7(eX=fDl25NYq_EMe)_tL8z7{=EOUU zjr5(rtrYQ2C^d9iY$O7mk~!qtC0qRG!-cLvsY=fw*R8An&pG7e3c?b`ov<*na+f$| zdihtZL^Vj%p@|RGcCNutc|u6RgcF4m5*MRpAj07-x_1I^n4Sj9{|LIrWN()4ZhW;K zCknXzuPkLcd%sw=%l}%PQ{OXoH^?t9^$AuQ0W@!==TPood|>`cJ-E^zbl35roVCl` z28;#u1N3R`S31gq#(8)J*k9ug8h!9Jm7^`WJ=lv_v{RtjQXk#1hiNGV6R@V`L8IV% zIH|2!l>Jkv`SBgR9z_Y@6}b>a*5L=<@oWoCqcE|pc$#BBP(v@sSMT;w?@H^auU?6I zCP4ZbV$sdhXRph{n{NIprhfvz0&eMCa0?ks6Lsg4s-@pOD5J1iLIm2xsPie=GEXjI zR41$Hxb4MmM&&4}Ok&CeHfPKGe~>g{5OLw$dH=Je4DeUy{hLw(c-Eb$s}6-Cc!Kvv%^E=Wk zTqEPd7T;TmC^IZUJzm2SsLRO9huE2x0|glvXZG2W=YB3otLuLNBJV;x)K4)-b2<1U2KF7;Z9=fZ{_%=8&G$9ncOrTtMstZS}KhU-G z2{0wp|L*o|d&52m9oer}YKK{0U&e23{+pZ7l?l@vM2z{jv=O{Wrp#r~$1+63@m5N7*xb)lR#@16<3L2m6z%$S#y2mBr`DB~^)wAnv zVnNyna?4$IMzO(zlr4fCeP4IIaSSgyD%|D9)39v|cKc@rYn#^YW8;;^ zLKy&68LRdLV=AmkhS4=GY3hFxIm*@6JFW3wg4b0dj}^PUwq*ilE!2|L%$gqOR(tGx zh7ee-4o9m@+WR8QbKeG#c2w^lcJhhRRroxF&m;JJr|XH*NAYRK=T&?@#>esb6QzUk zxg4KLe5&zTgHN9?a7r;g0etSl=V^S}@Oc}bPx0yVpymIs_D8X9z0y;X}tkK?(GBIyO8Fl+Bc@4nJt+gJpYY!fxfNj{*fn6a+2X2!euE z*KORmo&3-;Ya?q8M$c|o{b>(HB*`65@wSVC^=v(G0M2t;eX(9~K%av2rFQmw5b+Ig z5==%#xr0#jV!m=_*tuN9X=t!{2^Nx%&!R0O>`0Whqae6E@A3x@F8w{3@&O}D2H`?V zmEud`KB(_A1G7Q`1SammBstkW_*d8PtS#E7;|oaay!a{pRVt6&^WYxseS36h$2;ad z1OfmY%h1FD^Gb_6O+glLZPt$1(b9JF-eY`v%NjO6wBv{7#Vx#um^4pE)V#8mSF~n6 z)~6$EUZmBF&}b6}lP6Z%hJCcqcuk39dY}!@qQsGmIG+t{A(=xz^TN zSkIr5tF~}Q=QECeSKAn z9%$Z&RvLac9*;-}Y$#913grwAUjTbjvvJ>VvG)@8`u&*+R@vq*8gqLezQ>zhBtbZ<5vF2lc!%JDQz#Wx*MHZN}6NI@JE zy~cb79&{*+b6I5r#Pe%x`Fvc`nz;KJ^a~b+a#oVp7-dC=Zd}&aP-H_$b+Go29dTSB zI()zzq7PsQ@MFnE_!IzfDg}V}Zu25^LO|Rc$m8b4M|n}y1HAsQd6D9TF1i9AAAZ=;kY0C`v>!TzyDR&#^c|c%epXcW;^Y^dt?=$!uz~?AF-T3%$KNlZzN0XWrk4oB;-vV$q$d-JeI zq-o$NwLHdSFnt}R-))xi9oVT4|G&w>}#;)=*&HZ9wWG@-3t=g z8-IPt%eUb&bc5Q(i8+fC)%!{u1$jXTQBOAj_Qu;!fQ~kw0@*E-(2_hH#<+PB0(sQ% z7U?DHCYfK6H#jjeR*h6!xgj5(b@hr~xH-o^H3xhh1L9bQjqd2cSJ5G&4EV3!Us7fm zU0~_7yeBoD76Km-3!h(IfO>i&!`;?jgeofZ@1DR5)uG%H$#hs;0&3G`Oj7qHD<4D1 z#ExstCv&nzk$r)_#BRG%^#w6JpWao9?`7&mF%V?qK|TkQK&5faZT2|P_$GUd)=fm< zmAyC@`Db>K=R-!}deY?Z*TvaCDN*Ofu&7%h5bUTi`aY~vXd+IviWY7}pg-cQbG4P5 z5U%4(6z7JFK6sg6fsXeo#wn%~SS(z|sehn5TJ`<_#t2g!3?rBlip{xgIA^|K+R18Y zl`-%yI6d_h)5fyyPNyyWUpz;q0FwJLGFc;jjeo_oI-H3fIaXHT=cy+P$=VY(^ib4?ran_9c=CAk3&FhKlWzv2b*^()L*t zeVPx^g#gRS8%j+C@!ETVR(xc@i|sp3yjP(0m*MCu8@=NJz8g4RLMn*M z6Vzq>%USyTw%VuJ{Tox;^>#uvZ zRdhP`RJW;N=ish6W`B6y7|*&8By<=H)KIGTmN?)9G`7Mhj8%(g;m#YFwmUiP)#}cy z;>N^E*r`3SP3TAn2vdJy_`HB?aET(P=OMhWo(cvksR9?=;ktJxa<`1wRPLGkjj~ZbDq4 zj|)c$1MASaRh1ImuvaJEW^FO%mzueu3{$5a#jm!#8TVj{%Dsd{9WPjoqX71NY!vXEKf`j2 zK2Ze{Os^O6JfcHQ%c_!r6x{tm@6t?wwKr?eh(RfHhG$#Q?Fjl^eoQfyC(qn` z)N-eB9Z_;F;|R`(L42IbSWw1Y4$i9CtkziHKixmgTT5$U z-x<}f&g;3hzJx#RFNjtPcO?w7O%r9i|^C>Ntk9oJYz;_+Go-XPo=$|KAn!){EUd#`pHmw zSHwOuUmxV3l3V*{wnQEeOrWOfFl$gO2I@OHg~g^!4a<#oF$9 z`Fd@ZzbLoP+4$Dd7p&ygR6ax-!4vT{1&P;hVpF3}2D3`I1JDTuC9iIe2HF@9(C*Pb zN6XcF#RxkT;X3^F8h$-QzX3BBtMWnnj6cOm5~SKAk8Wii5iDmOq^P)w|F z(4XRMDW>H_i+agJxv;6x_iSep^6S8w11vmMh68T`W&saW)^_Qe#7OZl|Hg{#h#v=b zUA`4UZ}PF}2sa!XI52iEZ8->!IN(r+n(l);-wy473B?QTvWZ}@y9}|36$dV>XhRqa zwVwxa5ya5$S=R@v1Xl4n6l~BX6cCp+z*nNa#F%_c;C58I7viH&pT!gcn^aXfg=$nApw&sh3he^+$W$C4 zQ0*P0&mtxs92&U}zojIm#A;-+GAI`AczhX<)<-Oz2_+9W8tx78{doL#gwf{K{xyE{ zVx$?wDjLd-|Aws$lovv8W++zLP-bj@gmmsvcntB+LI#6KmccBek2D%!{+a$?_Ohvk*}fJ7NiX-!r* zfvyLbBh1IVZ+yN;5Z$VPawqP$2EgZ`peOJr_MJoc%Q(M8q;rn(?VEZ$P1%yW+FLg* z7C401p~Ki5zQp+N%ftUQm&kSqiZ+ZWfvm*%trFbx(|iz15VXSpUSj+Y`o?3KS{7g#>dt(t^%fAa41A=c`Fkty6iP1ex)9R1&dgN zkQ*S%7YrMOz85)a{PsiaS(C7mhatjFWHLtnTXgnZ--XVDIWUlvl%U%(+8q2bj5a4C z+1R>+l#v*F93;ONNWK~MVNc_+aTZ6_Z z3_b4L7ubpkpxVx5xNci|>v@+Lt-222}l!o0u=X4KON>RKT&E!I4(+ z+&GgXS!a+}9Mo1Fq#+G}=(qtS7ieono8x#FPa|!WT5E489c9L5t~~}Vf%ED(4;S8O z4IJPetZr3mUb|8Dr6NG{+p8YI*g{4n28Ku=A#(+JB&piolBy@=-VJBH*DUvjt9xv{ zwO|bQIN$rD+{@^3?_TrXVY&C=kIvR#T<+~Z+r8={8pZ1KLdNtjWbB|6U)FoU`gOR@ z7OpG&yuknEQXY%rj0`#b-v7$ISm{=fo_0uI3Vv=gm=Q38a&%B%FPwWV|Du_U$VF6v z;1iS5_lV_O+}nCHh{JGub3R=8OIriNe42RLm)7QtRkV~Zb_T0XU@~|g6o@s+v+*pR zhdLC}R@d0VV43cW@Kgj!`t_n3J>RXrw)=gD_}+Ba#ij1>#ZtUdLN{x?dcM;UXbW0{ z$yVWveGBj^1kKvtDdUNUBUc6;PeTTNjC-r&7>3E6ybH2Lxfy#u78@fPXcA{dG|(KY z*ah9Fdt9&r?_ih*8{tH z2@#CNcpYjzUjP7_6Hgt*^B4voYsTL1#1WbbBEt*x^^|e_b0Np}!W$xbKqAV*)6q;+ z4+@XqZVC^>QkvB+BaF1dl>UId$H1Xg2ZWHe8%y3JxoADZHIt0FKPp5+VuJx;NiI81 z=RZ)z4ysP0z6ASv8ao9lU64s>;8G_;>2tCYwI#+WKoSo>j5&ZDz;&x%1*8a}ik6Cm zMUcRbl3Tpd(qoLOW)wacgSXO{5+eSA=p%CsJnIX{)CXL{Ut>RE;jPb&|Ttgu?Jll;;u4-lMBJ$XnA;kuCO>2l#H5rs9DAeK9?|< zoux}Ex)Zes#Y6|eYdKdL4{{H(plEs}ZXX=!xN-3j0+M0OO5s!dXl=_;@IitQvDM@? zK)*T0cRs~h^4M6!8X!p<$&&p?cl-*FT*F|tizFC4G_jn0-hUhVlw55TR_jJ00^+M} zNlA+WPSB`=5u1`$2nRcl!WCd)f6tED1>Wd`jbrc|@v83HkEx=@mf)u}|2@7cJ?u~R zaDi|sBnox28o9Q2V#v67Ylf}EjV{&Z<9>@3OazO&K!!RvhGE8HY^%&T`7oZPwWZ1l zD@&}AGY=Z?;cAtK7rw^}<;L^4KrIh^W)Kv#nlaXmU*bmm>Z*Z!HpXYmjPK$SZDO53 z2e+}IR77QF^;i$wjR(x0Vroi84cniUl~_xIaja251T+)^HxV^ure-BJ@D}smuQ6YW z6;CWPu47x^&73$vKX5)lFEHs3n6$1T(Zv4&3*d*^Z{5&9tfIKwGD$sBPQnC}LnIiY z+ovql^Ia&)wDN}7_CRR2Z63zQnr~@iJZH_f?0>P%gI?8UDhASa&NfY0%svWOjDhn;!5elZNKG>!#?jLN zD_ALa`D73cxsIy)a@}cO2hPZK*f3M4LxWtv(8P71oiXduZKac^P7Tq>D19EHnXzdZ z``wOx4x;gml)>={c%^Sf&mo_-f;3An&Vt~ngiVZ)K{O!y-NsY*3EAf*7da)5`4HDh zU6rxeYNN_BTF&Jay%e?MDJt1W&=|9&wWQTDd5i-Z!2y9#_sqAA-?Mm$F^z4UA^QCf zcC{t?rE*hyFWL#?Cr&XyP%bQz-o&^{VC7u>w`&IBZ8A902pn&iJ-l(G^PYx_p|vWKh8RD{KW=>nR9HlzprCJFwBkT@ zY0IQCWAtH}L|b*BWs>*~+Kg@}dZ4xA68=>!b+=T%JIOJ>t@>n%BXU4*&0iFCRK`Nc zB02V5*mU%nIXG*06A zwZE!*1OPBH-s}NI#1nHhS2ijrB9<83387FG-9WTx5d7bz-IIm*O-|K*2`neC;-Fd~ z0zN8~sC}7b;6O|g1L#<UI#k&|>0lpK&+L)?`(%A;B&X^u|i}Aa_T`b;EkK zoQG(;V1v!s@P(@92~$frXbK=_q4kM45_c3Hj!w(>yb!t+&qT`#JueiD zk-O7y7cMs3Ex~UZnQ;hjU=Pk|mfH{nv$Wlr;PNhGjNqFq-d_PtAn3%J1YS+WPb=PT zo&!wp6+)P4$VaxRqcv!JPDrL%^KaBcPRARl$yRCXgLN6xmQ9C>8O}sqRi*I_brIi< z58vQA*Hzh9fKln!h_hT(cXLxL-HgUmf4p`L85k_h)uPlFjl=! ze`9ROrR~W?;?A$l-7K=sMM!a-q=ulQFs2(7d5m=*2@G4OI?02T?KZgVC}y>SpNMC-i3{&c)o{)n|G)5oy1`r-bd zYw0kC*g~Y)IEPMDw!qezSPhL*PKV-EC&f;#xMl!(+fi|@D8D; zKa&2%a6TMsM#K3y(plx7BB@I&v5QbrF;yT(6if@JkRfzq9=9~KtG7%9l5BBUiVxz< z*=P`FUBpojT`dUmfZI`S155Ix@mQBy5_udn^q?MuE2ll`ehS|c`D%goQJ-U!9?1Mb z@F$qMabb`sc&1W!41OKr?HO8}q8}#T20ZR3JQjoO&@+hRZk@ILn0GeH9CiqCUBpf2 zMzY3m9bp#!CYbq(*SJ8ZdlouQq?oyRBo2fDrfyskzs@u?x)bB(7&S6av-a49fCRxZ z5eHwo5(OwF0CNFoGb*OIqV_X`1g$x!b3=%FO^Y=L5TnXMDWCB zGzABN+SI)eux9rQv%A^EVXmtbWMB-$av_Fc9n~y@*;D+3YC-VbsG>U7p*3F(m-zh_ zM+XIqlmavbC|c##mS@{*Zvy3E;m*m<=OK^V;-f3|ebev?D+2(7QGm-u-NyY?95D(g zCyN(dOj<$*{=2j5Us1@T&SoU=P==WRLu{JUScUy1+${^vUaQ`zoOdKjI+`EiZ(Dkv zev3=b*7RCebl!UBG=E$D$CSW;1CYqb!vkJsj;+3sOb-!JEXgv(6$C$X%y8lS_oG4@ zEFL7x8B_tXi!r~5w{VIUb~h9pWZ$}ts|tC|iwJTF@24But?I?A8W*&;HFXjJc7o<0 zwZ@@;9i$TB<)`y7+9Gj$!=XPUNpz0M!#ovDu{<7m~~e9Zhq6kyJW znBL*P0#}>C(NInfJm*$zwbK?U08{Rhn$So!A=D^J)WV+8ZER6Ao|hqCS=k^no$|5@ zr5TI4qw;0F)A&MW;f*s#7JM{1h;A|ZTU~mkZ}Rfr3u8%OA1ulChZtXB3K zgGx|z#B_zxM#zExT$+YWz02-t*nzh&b@SHqa?5QRUVn&tvA{7n6FbZ2Abtot2rcqx zM%2L#0%#@1s^wsYQnTT1eN|_C5+LI?S_%X)VZ99ENn|t{>kv(#9=nuA)ntFmr9ZE_ z)en+Qrz3F8-&NZL1c;2FC%X$qbLGji#`wO#J(~v8#3rcSxx)=t^$v-CesFTGwGA;an1vLT-=W+1Pe?cHPgqhQ{$gp2D;a14vR#Ltw|D` z(EqYu#|P@mUHSRdW~soC{^UG!`Q z4}yCZj>p~9H5L59h+4UN? ze`a_RVqfE8;aLmscsz;0L@XYG0% zR&o&+eOPf zI1=h(`J%%p>!>_dIlBq`wJAv2v*3d?o(^7#U=r?l=x8hqNA6j&4mG^G2G;&vAQBCh zn93V`G?oy_cP#rDWK=9`(?T}xK;r=VZ3q)a zweOG>;*9JPVOS-`p;l}YGVqerDda734a`1hG4!W+CCSjOfHl$4C~Cc>A*g?dw(=+F zwr?W*6VxO@rv=)V18e`HawM&IW*Iblk09XN34)>5mQ)&JUnD~*kRkNAah|$?)6g+q zI52`j5FzuMr(Bz7f*%B$H?1TjK8K4*)UUo|qcfb*Qa6rt8_nS>ox-YmOk;Joaf{MM zOyZtYEW*?07_%TiC}&8%DpYe2Eov)&fGJ+A4m~02Cc;}?!n@R?@Mj#17XH+g=p&PF z142SWvG|$TEMQ!O?j-!|L@LtgGE*%&SKbn56L9Y~yugrpaz&?JxXzV|CzBcqbo?|u zPB46WM5HpPk6^NAu<>_5$@E!HeR3fWLk5$#k4~92JDPEKjuEsNH9`i{jGi4d6@p~W zG3sC$5ly_bH2|Gf1cMiTpM^05Lnj65Kc zekf6dJ$4W#2J!&xb$2v;AAlSe+w3(eEFpcECU3Rs&!ovY2MC_m-nH98bBsqh$4-4O zz#0u4f{O;mVTdVxL#SdR-Lkg}5~#pFgf`$m99ODu;1Kr9Z1nG8m)71iyR>2w8M_#8 zg@VRS=tQJi9@qwMW6lhBu16oBg%YnRv5xXQYo;fk&jdNflLcUjLN$d3D_e#3MG_G< znTSC7(bNzB1nf<=0#v6JEok_mHOZ+LsvYy$|2*rnxAu6}l)anvak3S0pdG|br}430 zarL?q6f1O+t3Un{yRU+KOZ>V6ZUo2CCptmda3eiGLIPCMr<{V^p= zBi@^+wG6H(kP~H#GwD3g#Zu5FTZ$X7<8-%7(l7I)3ENPod`iizDdL(@Fafa#iN8+N zo)NI};FueCBHZaTu7;yo%xfQ0*mv#079>4K#XDtQJFy#A#K3F9R+7tfhog1(5!f)c z?ZxdhlbT;2M2nh3ENaUSaedv==>>Yf-S0VIP=n=jh`P=WA7=B>I=3D54Y`QQhC+OS zU`pGa%kO~c#~U(MDU}R<{Bk4&F;z>6&tsVAS!wKnZ4Z6n1sH2EG)I9O2em~f@MyVW zS2Q!(JmDd_WFU(X&K74!P0XdJnHL%MpIDqVEM49=zk}g;i<+(&-SG>2(Qk22W5b91 z<5b8c4zjzC*8@JsKEGq>HDZK<`yaan9&RUsQjJ_SDjMG)9zo@G8oQCcib(xmg=sp_n51E(HRs?TF5v3pTMaQL^NjOId*`nlf z+RWUIFNQOau7LT?-^a7+O=J&p7{oFu>r6Ad$UWBEgA`l<^S=4<8GJ8Zi1!2{ z?fM?wNDF$cPSC)_+qrWPB=D z1omZ@>MhgXuC&hh)%tYRSDU`u?-k8%gpQ<&W`BGAz>V3xZ^*XG#mszv`_fOExbKKf zoJ*R-X-#IhYTg@lpiiJX+=6}c@i?c2e`Hb+)V$F_7`Oyl=(|(6DKblZC@4R$p~y{* z080xk;KNyVgmu7XbrkxN+5}Wy>R_P;YGTo6(#lfgOyW5uvLNiP&NRFS?qIK;2+xDf zd+FEp6|Pyk|LSn8aErq0qOyB0x>@X^qhXk88Ba#8Nff(KIH1lobN7c1N1dB$97YA@ zENDJnY5WbG76ZYPAh$dXrrq3fo4kP6zhZ-0HeT7FO!|ViQvU(gnmRKYBEDt%8<()E zSzLq^P~_A!plTf)4en@VR`fO>gPNDTKoZimlWP{gTrZliu`ny~*u|>$fW8L=-!}(5 zb@T5bSm0kS9iuJ*=#{mvs3g2FbQ4D;FFL=ANzP4qYzjwORdgku;&&tFLe8C}`yw2O z;a^PmjgNsKG@^R8HjSarFw#T!^Y9@#D?*-N{j|c`!^t$ht?^7?OC?Kv&E%osedZXi z@51Pre8b{F+QNTam!GcS%b2K#P#P)baGS(A0np2YryT~`VK~{G=uO5@*dj=caic`(4 zLmbSCuq|@sVz==wn>fQZAHn=BN4phc8Da^5fpb6t!^UphCt=5tOY-|8`3)PD6}0*T z^l_#!o|c?ctU@l%;K2DClS@jbOfD!E^Cf8{^{WXSvkhZT=etnw#4-ve2N#We*OJt@ zXQ4$Yn#Ha9RyaGAHrx6f=4kQG=lCN@H@N<pfg39Agq?DaVB*gx@51jhwCXZYW&yF{PqoIds?@>t|V2xW2wC5X{c z>4NOkuD1S6C-#lAc8`Unn21U5p@+qXpi%XXI@7xss*MEI8-F>s4DjDv*EEjYLk6f< z9Sek#G63ZD^UMLk2)yN4;zb<{wn--K25i#l(K%%+zmly|Yl|1t{xjEj9@jV<)GxWl z;$c^7YzbFuH{nI_OKk3qlKUTUwdN}iu3V%U{dA#A!H!7aX;_QbwViy^7M_hwIZ@xY z`$#Wc&R^A5X23ypnf}M!@Ac9(K7+C|PUHJvR5$Cd;}CUSP8R^uyA9{3rxHc}r#YJ1 zUFysLqlOOx5#?2pr(iF38#nW^g>5DLp;(JrQ?pP7L?Q}ny@Eyt@iA?oaHO}3(poR& z|NNt%h&2Ti;&NfMWoiVK#_j61IiPoUpsA=FXkcG~Es~PmQnjKJ>Kp|!8gbs;sU$dE zrndXTUJiMkgwWIQG-gXh*V91yo*2g?Ct1`rR{8}g667Ca!6&CwSgEJ6k584v%!Hi3%ROq=Dg`+Zn5#W5cRB6;^jY$p zEE?6@7d5^bDN-=OayVoyfov)@lxW9vP&e{Lg#(FF)a#xIHb+;-5>OF{DiHCjGGYEPVqus18*IO5LdqDS;v)Ub+dFDf)OX; zmHNBM1_Z6YhUhRUY=zjM35jdD^uY5!ATJxT`Dkq)k}vT4m-vkiP;m{=fzc5UdBGI% z2#p&9ruv_k-SY@`1QOkP?g<(*!&?p{MD_%C*c= zMr!Vk(oa!d6bS#RAbj9ceF*XpiSS*3A#XDoeuzE;2*0+=X~NL6ZUxsac~-FEd!j#C zBgZHwpFYYfv5Xm!%Xo$fBIm7T?2Tb__~rN)gU#l`U27}>vA0%i$LV}YqLEKjzjN{0 zy@x@>*T6tI47Qhfvdvvs@LqbshBXL3Kd0L-*jeX{zPeag~eS*9|!5a|;Rf!Km z*Mn*idgX4-V7>(#QiDKSYg=*vJ!So9>iz^w=wS>T{Z$;qcIWBmI4FTXTdcyTU)}|Q zY3CX=Bo)%#(JVRc3uv8YWBUut4J?brBoupo$Bp<2H`JP^h^G?zaF()Uzxofnb7onx zc8Z;Uds^N+kci;tLgR&R@KGsI)>lXJ3T*3UPp`pWgSsUWO!HgyQVR--s0f-wq{Z0K zCM19s&X7@!oD4H*;Rkq;lWprbfSDmh1cq@v(1wO$&U~c1u10w?n6_FF2Y)SemXOg8 zbArpU5hao7f^tRN`vQCIkaeOJyW;&e&U9@k-K+OT9tEQ}4sNX2t1=-Dgp9uMSu=88 z{3kVQR_(P%=Hgw19klStz}_J75f2_A6#1aG^9Xveg|CVQo&nQoO4dr>h59In^o^A^ zfeZ2(34B>O1AQGdCPSx41lkY9`n=k+9U?2234+K>H#F+AqL3(HzQsPnKMd2OEi{NcVKt z9@YboTZtaLh(r%QjZ7b~;Kwnoges7K2vK+D(!L;Yd0bnz((YN$>JXgMV;v2=OxVB# z@fcn8$uf3}iTaOnv2A8CI~LW(054PntoRv9u;~>)ldvfq@DX?vw{0@KceGWHQj7{b zu1+jU<(&ML1FCpz%3?cYnIM63`y&{5;4vVuJ`Ki+$2|8jk(w)}YK8^9{t7G_bNvaq z0u=GI=Yz%UJc!;YL zz^Nk-EFhL8(^w7|zkC9lOnzmWWv`L0%V<_KzW zxB!?m&Ck=wY!-S`#l==J0VB)Dbrr+T23f}|ed;x$rPvycGWuWR+#(g{@tpzS^Cc+rJ za-q5c(m6Gr7Z0g1C&KG;`Hhu|){c?nn9kτ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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 b/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 new file mode 100644 index 0000000..0de6515 --- /dev/null +++ b/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Varela/Varela/Resources/Iconos/CargaEDI.ico b/Varela/Varela/Resources/Iconos/CargaEDI.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c20b2333f8a3d199cd73895d18caf2cb04f54f8 GIT binary patch literal 14846 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 X=-n&wjCQU%>f*=;8 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 pk)4mwB_BL42b{{zB!H)a3; literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png b/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..332ae886bf386f9d15543de7506055920dd4dc61 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K;ba4!+xHV^zz5k&Ak)!qe*1s8fX6INreQkk3Y`OxS6ygU1!+dK{1JZs90-LqF{q%*#` zcTZ>0PZ>AoS6kK6do9!zh4)PB@?k|!PE49GKGZT+}J zDQ=HShX$vbs``8Z!JO{aN1kG{%c2So9y0e9TP}RDWn*mR2L2ll*}g^@M_8}CaerMw zfeXL;o;!*I`eSuyMof*W%;Y89^H4e|8}m{Q5lANCC9!$;m@~v z{Boza)@rV$jqmoBGHA?~|NQmy>Fn3C|9iepC^xBe-)yLK^glC$<<#l3rMJli14ER- M)78&qol`;+00U>FTL1t6 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8496f5f4e5d5e89acb706fb845f3e720ea8d1cc9 GIT binary patch literal 9216 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%0Dr|C-+uD2FgJNs03A@8q|PVPzUM(`dlAi z-w2vOGiU*=pbfNxkDvo|f-cYvdI0+G_Q8G|41hr}1U`XbFak!w7#If=;4_#6U%(WY z2I%w5!hQ~X1@mA5EP^F~1Sqf!R=_G)1M6S|Y=SL-J`W+(JlKVg_t3uvKL7;$9zG!< z0X_i%5i!{jB4Scv0)iuyM@Wy7Q&3P4l2B1ol2enBQ;`2K1ntGzh#KOkG#XF2o00-n9 zfeb$;<{>OhY-}vJXfd4N&kemgJ%3%*@e<2xs1x(h$)$`pnQ-54 z>q_T7K3^;(w=QMcKYrX!tG(#bMGIC9WW%vRmh6E~m#VbuR43DXpB4%+ z%Pzm9I#3Ph@W|JThfRj7h2!lOmV&64u2~9X;RX~{RpGjstfg@) zxwV~9e8~59w&}dOfabau&uID1*Y4f@3=xWuiMiVzGInL=Ym*fYHVgS9&t^6%VQ%%E zy*H&g`Y003ijc}tk`t`C3x|67N0XC3TX|HSyci=~C00pJ*RApqs+X18jxTv>6LpDR z9e3!r$kixx^_ZX@@FO&>sBZq4JR?rAm2o~NU2T6sL9RobLwy)suuL|ux^vyCuY7W( zz{%-6>j3kLXV>~2)CT$uvy~cpe$TygFF2lc^K%&}FjyKW#viQH9Y z_7jlP)!Pkjebs`+M855w%EM+V(g8>AUhlqp#jn4ziq?&n*f6flahkVQH%VM-K;o4L1Iy~?SyE<$ZW?cSA7V3Nd zrSqWv>%sWzFCKp>q=aXr-;XuwquTapu?e=B(N;?kQlglYbMB6&*YQ>!AujJ)vdSxt zmKNeaUdep*K@{o7Wmlw4U>~OIs~Bcf$cr_d!PJRvXIx~@WWF|87q#XbjXT3~8|_Qh zc3FWd__ZX%TJ3Ij^ivF{GlfTrC*3sLWZ$~9&IfM@C3(B)l=P}(Yu|TxvwIz7yMX!G z=4rJ8Ooqpp=`&d$*101{)#h{j!>vl!NXJU29fFBf>0=Vr zB$(Vr7^~myNu6Q|Y=j?ig(#s=8Jk#QRW3^JrPlJLMGa$X?ayZ5pT{k>UTM#-%p5Dkp9? zefPJ-1N|Q>TbM$f)?cpw!~(qmbWL@Hw@;)yjCd3wudIhK`NgORodNzHKTbl|;Nbb& z!SlDj@cG*wYaeUZ=f1VmYrZmCBDZq0@?6g59phs3jaKUpW}oA|e!2a9iZV^68^1~6 z0;i~Q$cE*8{jy9i)&R*$mT_fW8N{g>B6So_$~i3!t&;t&td1t5b)nMkKu6Lk6W0|I z-it+*ThCamXY46ZHd&co6*-Q2+1Ht&u^q?`XGJd!O*2~yVY}Y z+T}!+68y}?IRjQ(nk!kSZ#9t(Bo;V1X6gm)#qbYljQY~!6r5jtnye!`L3d@#bd@8X z)8-=`y=o;Qj&wz$cKl&*y8@J$Ce{;H%xvcxte9v^qg6b;T&Kpf{8Q0sbX@tip=;M6 zK8abNW6W)M+GGh&uPhOF|JPG2bUjrX^s)TNG;{{$3LI+(vFm&ML9gd~5PuHh&tDjS zwm+{2@5NfDikQh(>kwHDOKbOz>+r~zcPu0n3fOa&tB1O>52(nGx#4Fs5@%niXyr+B zl<3?Q#EDHcaXGS}Pnmk5van}OXn?r2wdmSYtVflYv)VCE$&ObyrBc2+6Ch`iW3ckKp-9w?&Sj>pgCRmyZ%< z-%P_Z?6=IDfa=nXs2KSkt_+4M-n>%220qEXWZh$K?@e7Y8;sd9yzcc&$tW0&+$zYl zeH48xgDFyx*@V@sghAKw&?ZLGE<@Mbic+YOq~k)ZF|_HrJbv@(x*abDsT&68B_nE_ zJBVvOao+1jT^?*~m(`e?BfrSYJhCLl{GXBWBP(kgTRZ#5Pu)E{pFQ{T4hVc56dV#779JP>HX$+TU2;lx z&aciA82?w9IMnjW>e~9o=GHbkuZaOARljdP{RjV#ye28+H4kC^lh;pS?aWO;-Ow5x z9iBU0KJ>_fR=HqBgT;uv{m6u%W?&9WBi!qw$>_Pb3LqzgQfC&Fh*VouuAkdM-;XVIgap}5Plycm8sAZ) z*U)0GC%}6fxWp??6BoF6#hW8oxg@K2NZ#Mqna)t>NLp zdUQQt_7RZGGw)YbpH&vo634Jnk-xfYECk--qKBpr?vn zWB8Xf9no6Oj3jxVn=7adhe~M><;%Peqa50 zu^L;{{EKAC*DLa zvf+M3mHRGgZ5E6EjsLtkwbhB$%!j2p1>L68xg~BQscN4M6W#6+2QU-zW=G?lczOA& zP6R_v5Y!7I5i^T9YR9*387)iU$Yg(WBIp6ZSk4-aV?bH$PrcBe;RuYcD%$=|C|;{4|do zV`XC@3OV|jr*719cAUZeG0bW8=&pTbq8^-X`_SUSi7lHt^N%$rG53+eBG(ZZQLR2P zt~vx48J*kUb4x2_9w+gLA>o{VgOL=uxwz3*5<+dHZ!vEX=0778=Z#paa6jWH;V;vd zxcPb;e~yYKUOI8m?(u~5b1qKD=SsRp_uMFLSCnlUwf*8x(UQwuV)&Jg%6 zHUu~1Kg=G9Ugjac@-me-`BBco{Mc!hBZ5{!JXL&9+KY2-iA=qJw7)8O=mV2Q_9qRm zjsY`%iK|~izYt!oFFH&8B?9bB-e?^PrZOkyu6NUTF*TS{!9iCsRMSW2lWtVZSTy z%bd@M&*~Z67Jl>MhW$&y?Q2cXT1DPpH)Wz_(><&Bo&tZSVUpT@UPslUP-O|2HUAROIht+KKD04q2NP60M>8n6QnzzMhjH{bzhz*&Gkj|A+` z0e&C=1c49`2IqkY5Cs>&MIZ()fy>|uxC*WTaezLb3+%50DR2WwgPY(MkO8vbHjo4I zKmjNMC7=vcfGR+rOC9zaKoe*IZJ-10fV)5!=z)7c9~gl9zz`S#V_*W%=Q4x6Ij{f^ zz(ZgO9sw(04QzldumkqsF>nBmzzH}5^tqnE{$T$9ua4~hQ~!03Y||BmG5@xxW7Q$Z zZT-Z>(PT3ftqW>bv2RzVe&T(pgvah(Ero$2G_{p^Ew>C6oVLBHeF|k0G*+UfnwsRD z$2<7;$xC^zK3r4w#~*}s&$uJhBT#`=`wYGN=QbC=Ds-G1zA~mg#1my}M4Opwv|f1Z zjtobgGmGIq>HCj))C-~_@s|Y$CJ9(<&T`-kKDbQq(qyH@+(>wW6({$FiE~@S;283( zq8`gyfUNlsh`!Z!g-t<}xh$D;clptda~E`K1?lNduCzHoJvg0_t9IgV>#j7MYl9hp zo+lPhP*fta)EII$p7q^?PCAL@(=Ya!M+El@KgG<7J4wjO^;EAk+YF3Ny;MZeX3hKG z-t0o=Oq|R?ovKqQCh;)mzaV(K(9MuLt}NGAmFq3(nIV>@8lvOG;&w1=NI%B+{B&sQ zScBpn$<`D#7t}Uea_}wp*I(q4Y=%Zl3TLMZ!yn%EO$*AOcPc=tjHPGR5a5)R8D{Rv z+0r+s)?zgrA|rW)bBPfHk#mGb;&v^9^vKV0r%k^xcZ$BT-21_w~JSL@}GQvL;HNtzVEm8 z&;1SUOG5ir-`a;O{b2qj%qzt>WD77!v9KA>;*edI!@c|PC=;(M9{H75u~}7znfc_A z6uOoj_>?T?##vER)W>K}o?<)A&MzSNx6QxY<3qK@+a}t%IKBP>pq|+BFZ<_EiRt4Gt(2Y3bu8eDUV=_Krf9(G}nk%Y&Pd8JS&F%>7 zj^W%MVHJC_upp{;H&JKvsd`~=ue8S3`!ugr9*XbBnBj)j4qUnRyesWFZ_`Z|A&%vW z4+eS0l9cf@egeLqlzKLdRQ$;%H8SJtyZU8j58CWV(iMzCqN)(~8($mQoARhmD?VCrfdxJuHu`vLrgJ!^ zci1zxC_o|2A_kw;C6bwK1K07KxFNMUqlwmwvz@129=prNB9OB5pedWuC+(Gc#D>Sy z6se^VqD{I92Y(8fd&*tWwV>L6Tv{*olV~SPjG?Dh2ybml0{t)^wx)nRHMOqy_WVfF zdY+wfowy+NkbX|j@KS~JP_v2)GX}*I_t-1jC5zieNwPJo0;?4RIg;6ZxeM|ewIeLO zgY{D)g$rxPpA(vKn$ioHy-amXqj*n!pIZ1BR-E_BY=;MhAqO2_GJDKXv0q8@pzmhC zvV9*vJvs+oc$dJ zvs`84iNFAB{ZfuiRtbuA*1%3)r%#- zq#O@vlT5b{0ZUVBwE5i}o`A8f%}h#2PMn9|X*nv7#>(ci2Ev?D~ZLSR2#SX@+6zAVpEpk41xCh|e~jF+)m)C<0x5M9+A!7tmr)_OGM8zt)&CZp{m zmZMq~V(AuvBSGB?PNr$O+4+rzxmx~Co46Clm&kXyy7=iNYzm7VBKiwTC>fbc!-e`D zk+r&uAJbL+%n~5QY8jKWQAdQU+MBn8VYocoscz>?&6-`5rNhlJ8OSAajd0~$xkjn; zJ&z5GP;*SnoSwR1Kk5v9>=GmNGip!?2?pXHh4NZI4lv1SI@&HFIG+OEuN&P4yLIt@xNabN&D0=$suqx5{Io$Vx zp4Y1)-O}{ssUyOq`OG=53*(A-vpack)Zbu7*{WM}3@IAbH4eo#@Y)q!g zV9jZCi#@^bv?&!>#1T6b6_O=K_OS$Z7+m_$x5&MC84HK&bVl zWpFP|b?0GkSxXm^D)A(V6VS@1uvJfvS=NP42FMa1mu_rYPsrkO%*pXD78z_Dn(7=? zF7x7I77XFQH z*S$`u!S$IE);&|m15|Q3@4)NC1m{{M<)Rk3qo=knEQ<)^g#=2xDDpBG^iB#4kRYTdVmgDDuwPGd^uMQ~PThY{bCuXB#N z!Rx_xn!~Vy`AbUf+>N&Fik45PnE92l(c_KpK513G8!)EwVtUa`BtOAyz7%lJ@50oH zq0n-C3Qnmz1HxN23Dwj6G3L;Bi{?S>(=^-+a00Nuj~(%sdaq?|t%N@zRUjioT=o2a^Gk=)zU% zy5--+TZIhBwx_qe??11|)XkH+*#7%FUl7#pqaz!v>Ihj-^as~yoVg&zSwaldgD3sE z!1Bi@|LD3Z_aHj{JTjtJdi);$3=iVpLHzrROvFcaPh-@E1E zt=fA0oi{%>zLF-ad?&ct-%l-kkq%k0Uj3|wp0DRz%yV_hg7M?_t;JXAS~u1c(!-i@ zLWj?#GczweKdUrwOfHg=WkZ`E+2)%zd-TFWWQcm?_V8MIiloCs^EBt72e#K4twxv? zI0#pp5fUpgQRRZWq#-qO!*<@%jr?LH;)I#3?hmG6Nk1B9=Ii@rwJ(p%*EzOGOh3dv z7S0p?;cO^PSj+nXpMYsgAB`!Q+1w&^bMD!9gT{T*!BQD&HdDj}-Fu10BZl*O{RFbh zdUw8BPh0mmdp9sOdCydJJYjFL#9Jd*sddTL+!sa4WG2pTaFI{fN({1e<`LW}pmB~e zWig1B^fw|q6GHt;E9VQ&9VsP_Q4hxp#zBnF-lecfHG~U(F|#q_*czPM5y%r3W|trh zx?WhsF|f4v`0J#glDgwQ+B^6&U{`A5bd{y(38#6Z6nfnISK9x45%`L}A2 ze~g0b1-%LU`SySJ{8v+GKk{4qf`3E%uF$^CxAuSfSNL;3qyOE%Z@>3U|KRzje`o*u z+2)V}Qp~-a(2yo0r?^?UXOUl3FMvyT;9ag-kFIZ5p^7*?bI(VlGV+2ld zr?K969SPcYX68u^v6M@_AD5$2FcH|*s<~yT%jjhpX;CuzXx9J8E+$ga+gfdnPV#0+ zz?=c+h)k+I)|~(~?*`hG)L_mAgnpRUWPr2b=3bhe#`=9!&uUit!|^CFh0b$@oGiSW z($k`kjBiOqf>aZ94xUyp0LrKvbHfynb zQ4*!HK$N*FiNr}7H!M|3H5pt?w=`WyGt&#BpQYD7OjhslG(=lqO(cJ}A($<$Lbb)% zT!#qKao_9zC;#m1UFHAYFj5$y|3nZQCzCQLE9K zkJ93lQmNY+Db6}QKP9DRO1&q%Ew#&1V&@#4dquf+_%`RZRi_J)Z86ESG@6uT$GBNn zqJ{HL7OD0Ji}8e+FC&~+n_5?-g4r@nJRWo#8^|S2q;<`d#>_mJ>Pg|`2;u7-opkh{ z$Q(Sbv*|xZBwO8Km#W;CH>^H6Fr+%zzmjIW$)NIbyY|EchPTV;ww0pnN z_dK;#y4gtjb{UCZEJ=p2;=8rwf2Bu%C2)QFZD#a-|9vSBWDQJz%ow0&DxlvB_<5#) z6AofQADQ;Cko#MH;iowb=y^bH&>wjU+<^!11kb>8;03(F3*ZBMfgkV(FTpDi0MO@o z4f`Mv3_?IC2m|3D0z`r+5Dj9$8xRZPKs=6_u)+;Ew&qOTR-6O3o! zTKVZ66Lj?j>u<9ze|}|szkeDZ+&}-3qAW#>3S}2cq)hcjxKaKZN0> zP^~;p9nw8}M9E&=NzYkJXCK@7Mbd}uP=Q!Fy0qc}v*SYr5o;G5#;Ck9cBK>Tau%q_ z+RgMbrHl+thD{lcQLZnNH!|}Tv@%ELFqFAIL15pXQ6G+}YS!Yp?q9QQ5Rn9nkW&_B z_bgg)Ydd&RvfA)nN^G^e86)PP}2?kz6guXOx*BYwP)oKKYA_`EhIawIhRFmh*v zPV9E@);!t#u?%f#wKt#iqxN+PUrm-Ey<8*N1H5NaJrb0OiPZNBMqtIUNRIBOWlLQ; z()31R?#@h`U3KNOPLkC}XY!T9%c5iXTiardn3%5eHr0?ewMgM#s*b+ihI5@QE~jeD taEx(&hJy#zfYk6SXR`B*Tu9RUdB^^H{CNf+{1f``cMx~}pQ?ZNe*n&fD;59% literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png b/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f4bb20c10c4704ee50bb951dcecbde679068ef GIT binary patch literal 605 zcmV-j0;2tiP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-(@8`@RCwCFmc2>?Q4oc{O%?(+T3JOzv=JM@LPSs@ zc?k;*1Nkm+2AQc;GWEP zXOc4;LqzybnE;P_V+Ej^;4SKSW{zL3q7Fr*_42Tr7tgaKN}gxQ>8hS5?lvOQ>JT88 zE8+W3Fn&;X=&@eR;HiszS{sJ$sU3 z@uT-Q2!ifHPU!YJ9vz_XS2(*{i8bqZl4OVok9%W<>*x4TFOO5y@eDNhY1dlM!3TKQ z%@@+FIJ1vXS0@kl$>mCs-?LRNR{=vGm=NluX$(I2DOOx2b*L57*r{2X!1uSmu((i1 zOk-|-8D=d>9efpR@n}_fe0j3T`W8a1Y^Z?6i;cr-HX+o?6$fmuO({RKur$prRu|L+ zXlKUIZB8|f`=?g`T(@-z+jg0p7zOBpntd#cVmoK;jMRVLcEU_Ei|Yl93=jQw3P#Vs z@HFO1NEFO*0zN(+Zg1+eIxO|oVWe!^1>nneX*xcR6Li3mR$C8R-#S?xbv}UqQ{Mvs%G2KCusV6`00000NkvXXu0mjffZ+W0 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..70502f6cac2358179b850367fcdab3088edd9344 GIT binary patch literal 7168 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 a=uIUI_g1+4TmL@%6~+12Gyj`<;Qs(oFU9Ww literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png b/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png new file mode 100644 index 0000000000000000000000000000000000000000..14a31e9e7cbadc3bf32ecd4e717dc49d0276c14e GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png b/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png new file mode 100644 index 0000000000000000000000000000000000000000..c115d914ddd925f1da2a4f51bcd9e4799ad320d4 GIT binary patch literal 3290 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 Bsg(c# literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png b/Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d3347c7d0582384305c7a12d922cdf30a55c10 GIT binary patch literal 3613 zcmV+&4&w2NP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C13F1WK~#9!l$Kv;6h|D#KPT51p9B>}6dx26BPd2gXeDs1 zf0Af=nkxPwXy`*8tkr^vRFKMHX^nbK6{Aoil0>iy22p~FMJk9ANvfx`YJ3PGR7KJT z3cX}!cW0&#m#jOto7{C^x!t+p`<>7CH#57D)9tr3d9=N|DkA{jBwOISEL&eiVk+u}Wc1GNGl_y?UI0e8o7*BlViV|+z zd!94%mwf|<_=E;y;s8Crb>~&o?#EBrSiRNg3mAO-Q?GYlmRSjTi5FLV!K~?pf&PHO z-MWRiQX!?{=$S5n3FC>!ij4oIl5}40@JOQBv8--+Wf1s<0Ma8igG2w)|9XgHr_NHo zDrp#YUhkl4<7ShkAOXV@1ScP48on8sTazMheL0%Qa^{CT=+@6N9e?p+|*BVj5`SXzIQ?Xb^l-@tG$s9Lz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ^xJg7oRCwBymU)a-)g8w_cYE8Nx6VA?%)A+fS(q7S zV1Qv*gsKSCE{Yn{Qe2ywE{P1|FD?Gg{rBx+6pwWNK0v@7EnYgP>X?? zVHOz%-fVB1dE0&W-gEm07MG-2PjZrzoRjY-zvbljmH2RTUSG zkSrlvj&1i_Wn++|p#*HOKTAsb)Z6Z-g1GF3VcmPf?6|+Ky&=-Pux(bY?)NIfk(tPr zwc(L;a%gm>elVc!;A1Ye|h?!x!h?OfXi5?DCSCE;<8e#>5+kdV7=U zna6XZ%C9-Kq5M&K<&!XU@%{Cy>o%@lU2ZXFJ>!|(eUP9($8^d~@6p*D-_^>2tsdg~ zdW^{+!^2rh22@8Y@ai5(5BlZmcqCfPmoLwjGD*w3@g$QwFV$B4Xc}D=(w*zCnEQ>( zR)yOKich)g8V=(1rkEIaGje1Z!I8^RQU-mw6Wsgl4LF*QfeD5Fb0yw*vyX=QFikDB zlq&sF&#HMr!?GV8^G-SGQ_inIay|}}Jv}Y)iW|SYwxy{z{kGevK8B;GnJP$3jm<_o zJD*TF!u%EWEa^q11w+JM$vFf9gCX%`CRE<|1Epp z7&Z#}kQE zjE#*`5F?bWJToPQY|cX=>%&_SqPB51k*X+)=EATgCJT@=;e2YEKfm}S`+xrg3ma9y zA(@y$cS{5!0m&QCzZ9~K~2wd=3?LaQ&CEvt#iDdgA%QiVLp84uHW7mn$} zrFy}mQipmtl*$ zc;IzarlJ&&ReC#vVZACjIVQb7afpI4LC%y(=iFoq8q=jRv-B7f1;KF2U^G=ES1dD= z$*||yUvTox{anB4eyW$OLDLlG#B}D)36nTCg{pua_ERXCigWo-mK;-RFd6tW7okg#nTJ7%Hz zU1Z42KvuPjze`q$Hg_Q$aH}9m5@V?n zWlO`dZB#`KtG1BKnVh9o&8Z{Od=ppAUCuK{?n7PNisKLBq-GHB4X{qXoyG0zP&;G} zyu6)PU)@b}&y{?0%e_dlif};l`2pDS;CD$EOokr+Cs|9vv<2moiEt?sDvszKO=PDU z=C@V^qjCJ92JT+5jmM5`hK@!!HOyMyZFF~BO>^fGBGq+tu3SepHASR$4vJex2(TTn z1-NDKC@_{Wn3^tAQlV@LOvA+SdIx2zYz&@xKRsxfmQzz3Wq2HxFa8>vR{ZoLEPM+~ zJHJA6=MpMw>e1Xj^hk_YQzwdB#}-`L5)jux;Ba~gog z(D4LnFi5s6D5SEWxyNkD-K)S($B5mKHcWFvQ%j9ES13z~i9Bts)ilSWRK;pg{gue7 z8|MR<_yo*xAmoO{F;ErQd2o~iCsU*(onom>VKRjr3jQN&*-yv-W`3q`XlP>J(D1m^ z+8(EWIK_eElav)74OIc^gKlK`Lzw*uSd9;sR)em==|q7Ye;Xz(>y%7EF+Gh?RBY7e z+1^vQIDiv-OuK4*e6Q3Q8Myo41d}N4B(IF7>Q5#T*`7Sm?Hkskw!^dfFt0(G( z)-be3F4k?|zovNTxqmYz`6=L{n4O_Cl@?NE<*ri3e3VnqT9+oi810%8b$%oZX2$!1*ugWZ4B0V(7_8f>AOkCNmh*c_9V-1Hz|o zwg(EYao{TJGkmEdHQv5=!A#zK#N~3Y2~|h5U^EP>ifKDowxDbYOj}@D0;6b9NM$Ky zW^gnYPB5?wRr{H_z32GnGQzQ2_vs;@ds)d8ca;pYTT+x7SyL5B)37W-xm3n183+)L z$2*C~^Ny{!o-6CdULIRn{QS=Qzgd3ZJ(p@&i?gZej#ANDAgOYr5ROa8a@myCbB?C< o3E6!zH|-qbw~O+hruClz08z3YuRpt&1poj507*qoM6N<$f+gN^>Hq)$ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..1414e12b6578a7cce920ba61a20b7494774997cb GIT binary patch literal 10240 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 P00000NkvXXu0mjf8k+Z< literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp b/Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp new file mode 100644 index 0000000000000000000000000000000000000000..315851d43e5ff2c79f09af5c353b9c81055169cc GIT binary patch literal 2360 zcmZ?rwcum`12Z700mKGCEC9re3=%++fq@AqFDMSdU;!ZUdK8cz042?%M4a)VE+rnaIEZ072j7XXUTG6T)6D2anX=T zx_CTY{y1xb@GFsvqN(k4xsOw&b47ahL=!JnXCa_&9nd!3s*yZF_M!}!tzj1UVG z0)!s)(+PMyK!`iSN763ba2yBx1P_&<#boGf3QR>oN|vGVJd{WTI&qbFit@T!Q&kw6 z22GuWqqMHUB5kRZ*HrSNyxWtaxpms7kO$=) zBL$QCO5ankei*bvBVQSgX}~6EG-LlNkss~*X}}`xSSFkU8@7Afqz^2FMzA6CWrNih~<%y;4Wja!~q!OK@J4*Ps$k%;oqiPeN4N(&3F z<@u+fM?JxT!R!9MK3B7)`0TVG2#KYoL&aISSE7MdG2ImdGF8zAlfA$*1*0Nes@`K9&Gf_m0Dghg}V z2pd3ObM_XFkEd8sW5qctYe<2x2>@HbjR2aaH#wBAMUhjTzF~E}CGM2Vk5kev5M#h> z$}kMHpWZR-?nx<$9Ljjqwo4U}xrmsEVkbsQ8U98{DI@LzW{&ufkb{BA`;uJ8gzp0) zazAqJ!(8^PfnxZvB|lQqoe&?!|gl|7@6KO36a*_4(VD-!bKtB(q z3LS!>Xz<~c_bULbD5>1pRUEc`3{mTub${K#6U*>RVZQ@snSUw!5Az6>1CH(^!n8#I O0000+5jntuob?#; z=Kf?b)?fikUb}D-O!G*ZGQ58Ok741SZwz;)vN9}Qw~s+VQ2`vVj4;hU_PPuu3xB~i zC)lvSUFVv+8RTbV0MmTx_7AWZ+NZ5yu(32sfyV$SbYH#u1P*QFD8v>M1x@qdF~Nu& zjUYdP{08!4hRt;p7tA=KiDEO>qz!Wk$QF=o0d3#FDG{5^cvB;?AtY(WW(Xn8jQ9)z gg$XFCaQYbt0GS|fm@h($07*qoM6N<$f}R@HF8}}l literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..16e9ab93e2523a1da2bb6f082ca1c54111b80edc GIT binary patch literal 717 zcmV;;0y6!HP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqLrFwIRCwBqlTAoeVHAd+@7_Cqq?wRtC5b{sKMNbE zHnS;WFv19I)1pO-7J-YPMF|}I-@gl zf4&x`IH=XT{myybbNJpPf`RT1;5C)H*4fqD&p#xkL<9rf@@9v#;^A3;`M)5$0=7VQ zRA*PO*Z^p|73~Dw30whK$xFgh7Li{z0MjB$-~Is(?yW^P3Pcxj+?Lk~2D;^+7Eu8R zPg#h3j$7V1ihz$xN#>ebcyRU#?@HrzJ$l83Jww#Z#`qLrg8MxvTiqA39=r`%6amt* zsFQ-CVUQzFezgd|KHFSxhN~4Tgr_VHx#pR$7BF=iSuPXGWLe$sKt*BAC_@h3kRZ`W z?8ONh?*+vHZL52GQa& z`wmrvkbnnkTM}iD9NvTlM7rd*$QMc&riJPd*j0RxeR6W6M)~WxIj9#VL~==Hm(w_$ zDoE;gjq)}rlz*g>`sBzwhHjzS3V5hEhTj7K`Ro^OC8U&<00000NkvXXu0mjfL`y52 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png new file mode 100644 index 0000000000000000000000000000000000000000..d43ef4ac1b5e30272d9cc99cfdbf16cc6276db2b GIT binary patch literal 685 zcmV;e0#f~nP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqBS}O-RCwB)lDTVCQ5eO4Z<&`jCOD>wSO`%RB!U@n z0SVCz60nG(SZJYWVUa>mtO9~qrLjmO>K|aCje>#@WC{_93P~VjR3^({GR~6lGH=$m zUyGS+P6ELLm-}7rIp@2}k%SPe;>B%geX#>9R${0d#W(IWlN`G-EU;H+3%-uk_vQZ; zNA}h^((_vgwSDKu_EzfR>Dd@S{R-EwHWO_NJ{xei)XKiy?U+uL-+v4SYtS+qqc{(ccV@oVmPe6mc7c558VuPR~%T*tnjL5|S9zl3n7JNUVM1{g<^X z+r?ITBJ~~f_Q#V(j#O!hkfz`YzXM2Yn}bb|ac1&4GclINHGPyohA_@X%HIJ1;(z|d TZuXkZ00000NkvXXu0mjf2~H@A literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Back.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Back.png new file mode 100644 index 0000000000000000000000000000000000000000..31194b5487e28e2006793b4d6559de85363b4b63 GIT binary patch literal 909 zcmV;819JR{P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<14%?dRCwBClU-{`gyup}TJWL}1hJsdOD_VwkgC)`s$y(u5|L^^ zEC$=Sn`HN#nK|doobjT`vg+J?49xR=@5j8a!~ahKc(}2-;r^zUhFrC(%F0)lfN5a0 z{-L!NukPNM$!7NV-E;e~{ztYKi#z+WZC$O-UyG$=W_nKkaA9`l+QRjdCNk%Na2;~i zYPO@RaD3p|-N%N82ik7CvkS)olO%*DVp&$0pI@-&KEH7N()nNB56W@^h^)1^0B+iS ze(=!VHxIw_V%r^k-K5+Uj^i?ZbP8!ggi+*rnw`fE_jhf3y!Tz;$#n%Tu=%0A+s9sb zd0(y}n_1K4@ZOPc0I0@-O6;>5`h=N?yN5P!>?{^e0G$A?m+_u{^r>B&n)8h$){+2Y zBVRFj_A~%zMz1nCzQpv&h)NWon+@#`w%vux0RXSPGylZ49ldE|6C7(8Kk{u2o;-UR zsUn1m8GiL`s!@Qi1=%ed8oVZNAMlCSertYfbD@dY#C-6^cQsgRL#z!##RwJOTqg?f zBY|l(c=^;;0ME;$JZ-fT#Ip9Ex&}tXIzgxifYs2)j{*WMoy1LA0NkZN%YQ7Dm+i8u zaA0&JgD;KLV4-3vzCzY12x5s}5>}V>3V?TGu{4;JhfmTSZ`1{jt04fK+$BzYmD3Cft zRuwCsRj=vGX1}#|)&+jL^7Yk;AHSRnmqmqTwMt2@AfKB7U`17_sDL0=2&M3+h17HA z6fj$F<&Jz$%c(8T^b8gHTQ?{#B#0GK%bQczCI=U#45y+q++Y+~vDVfa0Nj$!rAG?) z<%V-Rn>w9tHx*@KWK|)4S4PapMg6OpK=3h8T2G_%pD24k(MfaAYx9aui<8wA6C|bN jGMX=dp8-=J=YIwOdeNBT-uohq00000NkvXXu0mjfJY%Kx literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png new file mode 100644 index 0000000000000000000000000000000000000000..189b83f2890a119a53bb0e00fbca690b3fbf222c GIT binary patch literal 400 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 P00000NkvXXu0mjfPt?C$ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..464fcd71fe5bada44d33e974dbc055a8f3151a64 GIT binary patch literal 530 zcmV+t0`2{YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-h)G02RCwB?lQB*kK@^6+K@=1SOBM@}?rAb4x4bt9#3)qSjAQEVEgFQhSoEsp^9de9eXV>#4#b#k`uha0F(bLTT z{r~9AC~Gb6sbv7AROx0XaO;2%1T8+@BC(+S*rAOLO_CNT2m3?Kq&q7i{TZ+j|9 zIl#=XT5F7fM90K0S;E&VbOQIFS|Kz7!x4^|aW;|(i~SU!S|Qv!_5k?tE$rn7W}QXg zdHjSF080S-XOX)79s=BG9g`-S=kXJx;UnYGAH*&goX(iD4GuPqc8r&Rh5ntle^-QOw|_XjZ>>nr?s zjO~j^{k;1%CGHPm`h%EEaktaVzQ1|Nr*PstuiuP6j+Y2N?Jm7y2_NPm2Ax@?`dm3L_=O&-QKHGE7eM zy*N5N_SXH*61QWHv)z&S?a5PNHV_a?Ia^=%Z$i|@1S@65@IxkxZ{$3F*=_6?WBlO% z|3i*zq>lZ6s+IiR>d1%xsiJNFd#1gMyZl7;sd3^Y{`vNE^iE1Og92*`t$dD`K~EjKC#XC zTo07e*Zb0W;?HlD!qdTGZO(`ONK3}=6~8S0`2LrW?~7#vJ6|u}8*wJlvakQLq{N!U zB}Aba4!+xRvzh|9^XC)rQVSCj%ay0}OnO3;mgsC&hkTc`|!Og^`lt=l?(u82dm# z;8%!~gUhS0x5IaTko@rKAn#^%{rLtUut6dF-{;TmSGrg)OLFcMS|)ikP1-+xl2A+U z^7kO!#v3AbRr^jB5SW;hkdV;fapKSa4?hpT47zkm`r5hKd%7DN8x<`yufM%{c{k&y zNuOrkh&d=Ral+5~V=ZNE-1 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;R7pfZRCwB?lU+ztVHn4M=WJ@5qYqo^n$5NRz^uul zFqN{4D1-=ty03)7>?WwYf{40_5-eJ*3kP0wmlp*_5(QfsQCLw~URaifrTb`l+;)!V z?Cl~QQ!0ucc;S8F`Tw5(`@mlkLh#?!4aLuV?hB9Cmz@WsKlS!F?JalR_6J=ib_*de z2f^K3DL-+#tfiR}H~l8_lE&8~r+@|40^q3idOBrI*&q8dk&?g$z{4UgrRoqfUWC$I zD$<8{iLlqxk?W+_VQU@mI%1*HJaOAbqzf7Wgb+vpux>5mzH1o`ngK?>1zU}eH}Ah* z9(wiRw8yp7zdS#4FdA2+DV5Jrg_c$r%mU`@+3THzimcRV2Fzw8Y@RAcKTV7k=*hB# zqB5m2I!Ga&aUD$#Eb(Uk?G|-TsLnwwX3hm*<8J{6z!dUUT=h2j&Zc4!Su;S@ zAvKGk8IS?HN#>p(s(%SMURiQ+OG8cjXgDNk`cH8pP4Ih?rliK8s)L@vAwl02Si1nw zTWs04sjB$I*uV>>;?t-)Osj+^HQHL?Y1Ck|mZ1aCC2-|K-*s?i|NXJPe0W8n+4KD6 zFscqojmcP=x}z|jJIN2*B&#?Bu0sJlZTma?;*NQ9$SrQJwrvWpQ2!vY&bHw})Qg}D>(UGE)?2nn zv9soCYS{%adroVq`C~5_dQ{cTqHT|{NpwZ?jNfnFTpS-pb+zj>DjU=nxr9nGC-5-& z%${Y|z2edY&v^;WJ2pR9d#zSzqVWoe!z)*Aj69;qtNEFwAy!~>jcWiy>-+KzZ`W?$ x+p5T<&i+oS=Eb4!9Chmt*6&tW_r6AwVR27*@>7cmQ9x%ic)I$ztaD0e0sy_eY>WT^ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fc51737618e59cd3efd5d53c5b9b359664c92 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QEc;uunK>&WE2eoT%ct><5Cikw_4kv0FojbBVEE%(F?6b(&Wtd<&^gtRpE^@V@1 z>|rzbb3$j6{MEkAX-9pxeK0Yeyt8<}@%M8Q4xuH>x{PkB$hm7w-Js!nA>FvJ`s-@9 zg=eR~JaAM)&ei9dKTn*s%ipM#)r?#&RqVKW0M#xBH9kumoNxz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-W=TXrRCwBylFuu{VI0R_TU`7DqHj)9PMV82szog% zEor$(k%Nm1#YszYaB>);)V7O@SX&7>e&>RnSSuwCD+gt1dcM#1T-4=@tH~uK@sP-yjS~d2aFm0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-)Ja4^RCwBilf6$J7pz_`hvMkgV0vBb^As0oe6O(Zc43bKGE1VPcJ@Otk($Km-(oA%*J z?s7hU_k4P)isyN>OQkY342)!Ndir*!Lz{$ofu+6+BLMH;&aj_^d4W-(kL~)m46Ogl zVD9MgaeOaC0TGLc1J4KGOl5*|+b_A+e+vMuM?C&K&-9Z?{EQU%(O$4RL@lb)`e`LD zQ{8-k)+4;lVoTowIB_^;-bZnW``5WDfl-8`gdY#U`I{OCI)ZAz#q9AR+`o5zh;7W;eAp z_nKB;H&y?6g*XBaPVe7Fb-S?M$ewVNLYwa49kn} s_B|%A{hS8|COSZw)55}|+;jdr0HIg{q*(P~JOBUy07*qoM6N<$f+tN1od5s; literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a5e99258899a6fc97e0888cc928b6c7306e6ef GIT binary patch literal 488 zcmVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-UP(kjRCwB?(@!YFaTv$(_ixCN1LET1;-Kv3;zHVS z*-BBwMH`J=gv*p0yZDof8ks2hmkXs7H#e5wa*z^f&1RR0#3uDPuwUEkx1~Mxy*%GO zulhbuUqwU!P!t6KRdxO}08R5L7*sM>oZ3`Xr&z|^T$#%8pPiwCxHO-BKLme3Q)Xjf zEx_sa1ubz6m*%5mdX%Qx8kzwwNM4}3exJC_&E8-XfZ)n5Wx)t#22V)?Y<;b4G~Q6u zIYFtpj()G1%V2~@AZ7sQGnkrNm+A&9JSKxN=LCQwhX*@INV|jI zdFVjkI?UmC6|WzDX6846Q3A7Jzyb~n00TqAgkqnpYLn^fNUp^0@Q8@W%lntyJ;mkx z_Dw$r=g+cq9F^pn^;{}ogk*+u0+~p*a9$u4$rk<>kS&}Fm?*Gv0{78GVL+F4Bz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-sYygZRCwB?lRrzFQ5431uLK-ilu{5&@B_G*K{^zq zL(w8G9jb`Y$rfGg(nX4EKY@iT(zi(!Dx%RrN*AMIhl+!W;vX_Krjt}@s7da*_jG9U z8k+>PJ#gW2;Q2l0564qg{wG2J?~|r8tER> zx@zQ!%?ZNO;flOihY^br%jfMw04e}hE&hQ|CYNFDbPWKfO3_#fMG0OhDgeoJlIDhH z0Q>_Vr;5mxvk{Aks|}dinZob#X{>K#{$!qu%O8QTsWTqHssfI_ACbzWXrF24yl_s= zI%j~#ccK3NAKaTuqmGfwu?!0$nd#gw%WDt-3P_KEGr$Uggq zh@<1~eOemsk$T<7T)ZVHJ719ME%Yw;lDByxGZBnfp0AFOeKQF_-*A@Jp1Gifsui3J zr-NY?io)!x2Ymh5f3*Q)X?wbasWrs%72SE503iJM!!iaPm!0E(yGGCRqL2Dt-ufC}j1ESB4FC?EOM^9?HnIQ!002ovPDHLkV1kL5 B^UVMN literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png new file mode 100644 index 0000000000000000000000000000000000000000..2a17743d96ff4519fed2f71b76ca3c0165b49c92 GIT binary patch literal 896 zcmV-`1AqL9P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_DMuRRCwBClU-;WRTze!nVsG4CL1=pYksV@rY5#p z-Fng1U@KbDKy6+Bh!qhb;!UAaTU1aXf(FqW+Y3>GP%KywyzxTlg#>E}q#(wICJ|8s z(&A!TcC*=?Ip@sGIWu0k2^;&}96mVD_r2%vz7{uE0eGk*o4&uZE1hdLRZY3-GB5+I zwqK0n7^ki8NM%xohwj;WV))@*rP7|EOtHV)`lnKjW@i@UPZ#HBuPrTqVgfS-_-l~W zIy1ffg*Qf?*>_@eY@~Smo&8uAm?*+G0V}e>;^I<#{@lgo%TvF7+DyVuU|BX3uTLY5k1&edK-PNn=y3ne#|FoNC)O0$z_teu?0WCW zs|R!GOsb{J!nCw~`qmtc&}G$k@lyeJk8ZoAuT=N|=mT(^l=IXhhxTsC<~xYunD<}1 zu;E9)`}#A=FCL?GJfsnL=&YgVf#O}ui?t_#Gfq!m{_&l=2a_g_uwt_gwbwUap619a zC&`U@xLT0ezA5c=ItPI>cF%439oa%Bp$Spi-vDZDkSai^kk3zl$m-dxxPicQ8=QP% zN9zd*N5|UoLWys}4X{ulLIs36LZ|?MM&ROUX+?I_1>oHHyLRmkBCs>Rz<99x(?u6uhga&ul%`xaNib3XbHfxFCSl5^6|v@I_w1ksTJ;$ zFp(EuS~Jq_z2$q)kDT1!8zcfet&m#bg%Wvg5P(Yg0i}FmG(|&sc%eclg*zjpUNEPC`F1P!<_Ee?ZGU=T zv@qPgNjW}VsE}Izx3#s|yCkJQ9h~Jl?*jEWj@JhO+?vcKj}`9Ajpg=q_F0?lM34%R zO@;VN88Is>`VTXS;0vI-mPYG;QFefmmE<|6=#;E3E2A66i>lEans0$$0n;Ame+K}* W?uTl1G=)Y00000K|O^2F;Ok2f`K&fS&Du*WXoZ<{SoRkWFY z>i3RvfpYub`FpDqrgJBEaDIPae$0x0%{t|eQ(o+6T_iB$=SQdXP8Jp+#T8pP?B{v4 z3#?I)mYMK_L(tcTy_uu=p4mTrjf-dG^6$*3J84}W+8ea|v&SDnvtwzopr0EU;EM*si- literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47750f39cc83b336d67c85bf72b879238af8ac GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%~PaSW-rmGtNTe|u)thR#N(0~s&od2SIt_kPZ~4!vWC4jeczVg5`$@gJX`>mU9; zf4{`Ozdw$Cc>CMGP5*wqflc+_c@K{r6^`IdZ8R*C+wCz;JVF8p)coe3bO?3u+QGx@ zETOq|ChK&TjhW4?^IslW!rQg?fW?EIf(8sT`&@T^nwhKzbOwW`tDnm{r-UW|8kAmD literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Home.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Home.png new file mode 100644 index 0000000000000000000000000000000000000000..199e9cd5963d6cbad1e957fedd7d4ff6783b38c5 GIT binary patch literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lQB!fKorM+SNtA+gapB%gL@v@o*AS=t5=HBMHfMbLP0^A9FaIAjj^Vu(1RQ9-TVD{_rLcNP(VT=!1nOY9vsK(irARlo#p#3$OAqWYG@DJFR)kXemnY&cI5BCt??-nGi%OKz z0Iui;`PUF*g=3RqOv>eTpU<1UZx1?Q{-<86ogGx*qy3*P;vG&%ObWnpZ-WPYE0*@b zJTdTn0^cuVaS^YsMjf0~5@)lw{Dlkg+CHeh8DKhn=3Gq>HNv$5A2Y-0MO2>S_?^x5 wNBScejK=n1@>=ceY25qw6wXZ)tB&*60Ib2mExk<-9RL6T07*qoM6N<$f)mNS(EtDd literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8a7d0d9c5b55a08c2715a48ecd6f3c7336846b GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%{OaSW-r^=6VGSBrs&OZ*Y%Bi=jOi@xhsvv2*9aXVMk*F~wOn}ajw`TG?1x{uwJ z28SgC9T#&g&0|<`+MxH2B6?B{C2OjtN3(tS&$sVk z(wVlur}l*jNAx)NthH~Fh-SLWZgw>4&3_if59Lj(92sKr1sJM%{uF#%m?hM5*nYjj ou}QY^CV@v2_T9T2@}805RMaSW-r^=8s;PNqN+m-Dp|9lkSH{JqiC5thKeP0?(_iKecY`**i*FiKPU;b}H` zZibqr@xd7?zceleGc&lYPuyg|;UHuwuEb?2J}aY;|4#GiytH^mhR-j5yj-7mCH--Q zS4e5n?t6dY6gr<~{onZW8E&j$Xu0sw2t@k^=Z`ibD<2Sy{pv;NU6)d(*VND5{7p~nobgsGO>>rNg zg>4Je*n)p1ButOpSDW9iSne+V^+MoW#=o!HI!=}D*|B4lzSGUuPi*B2;obaF zKRZ^-m&-aJRyRfg{{r(;A{1a_97oLYlmo|#NEc-9& h@ZX+$F5`Aa2K942TUA;9>m$fWQC% literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png new file mode 100644 index 0000000000000000000000000000000000000000..09fdc6883db962d2032c3fcec4479045d336ec73 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QTh;uunK>&oPfUd)aHZTmSp*H6&f=%p-nP>IpeBUMqQS3qFn>FOn$wtQez$<=c7 znCR7Ql9V|)DCdaUh9_Nf?&oPfSxkWfuJ3gw#cvQeBCthJyW2r)Bc~a6m{ZX0$e*mg#eZ=}FWWFh zK|^I~%TcwtH%=Wotb4CII)=N~qa-|4Ti?g<@R>&I!yKL|6PtTZ@i3fp{xkhGtIuoo znLGu18~&|NTm1j5$$?1jb>biXuH_Ns>{@E`>aKs>-sZ=NTLnetbFH{07x=QLLhwNq zV{fOS#6O2z7A>KcQwOi-FfP{pwEiEbOW)pZ4u%Iy%~Lmj?Fq2#xTfuMtXRkX)~D^w z-RUN3ZYyM3ve>WOQj0SzUzd^Fld<>EVY~g32_-!zEBMyFRh*>q{Xh3i#@mbx+q|b3 UX;*{;JFVdQ&MBb@0JQaw#Q*>R literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0ef92f196bd544cb9e9323ea8c396fb21c9188 GIT binary patch literal 561 zcmV-10?z%3P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpr%6OXRCwB?lfO?CK@@<$x!hs`g(MUtkU)h$h=S2r zsSTwa|AdxaXKi6&3>_9{bqOsA{sDGJdj%^YQ3`^IMuH|HH@mnq^B%=4ce|I6kg(0} z&U@eY-kaSqs>*dPQ+?^KqrLR%@T<0(W);5uu*IDviz$~C0SVYYdwhC+i&m$@`|){_ z?Zbhjc>&*BX)}5E1@E?g41%v$XZg1I45QHMba*o{N76my(S7KBi8+n#I=Zm*@=_Q; zO@o7}$K33G2OvqPcd(zf*-zU%sm!Zk5uc$h1K{Le%=_;y5g-n6 zmf$nQokqBn0UZ5~X=!C28W)u{ID)eTZxPoYc2M*Q?i7G5huLYEnH~`!9`UxEJBxRp zqdqHzaRg%^2>d*P*2nl4H)H3O$|Vq=<3_5Ff*WJ->v#wc1itu-h8!vSNXSu_mm-UX zGYVG>K3^3EFrU}Pb@yv_rNc7{t19NY$N78!K1UT?!;v5H00000NkvXXu0mjfHGSrR literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cbee68f7c708feae0f6e6399824c5151f4e5a6 GIT binary patch literal 543 zcmV+)0^t3LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-l}SWFRCwBilRHQwQ51&1k!i%rYMTWMi|u?>QEX&D zZL)$|r~#QKXp9UIL1YVy1(&d}5XAVvMzCJ*J`m$K&+5MiMzbF zw#?VuGEkO*x-VJEGEn7WQk9EIWf}fvdVR9HoW{)NdAz#8j;(H2&hcSyvW zLPyYp50(;XZ~uL9jgLYr<*C7LuIUf2?m!%8dDS63R)ut1(;|;5n`MNvZ3XHMhRgBY>OkQfQ zm0r2A_9c6vg226MW6!ou2KLUjwfPFWmNLk_Srodvf9j#XKN6mc{Sf>wzQLvW?}6+a zvvXn?)507U74p8GbTc&6z~x51>HikZC&AM`%K0dYr`|m8xaP|A3syYQNvpm#bTTZ` zcxig(Q?U_4{sbnyc@r}3WN-IKbNQL6%OkjIm)yxl_BIYy!JgzBI*m;n({1E?H-$ea h*vGW}IqP)EL>d?}x?gPW{^1R>A^L^guQTQ7#W)^%} zh{t2MmB>T@I4OcV`CE?~3dLHf8ieP0;eTrK3I9S`0t8}F{{tAvWg8$`t70MC@OFPKnvV64fIYP1DGBCmG3Kk~vW1GfuynYYy1nIi#?-LhrRJ=&2+|9Nhgw z*4H-359BCX_VEtp-YnBIauv~*pd@0LZIJ7W;|sys*PrO7-h2w8?()lWP<4|t?J>G! z^>P({)HKwt6rOCsbG>K>fjD@qxTTcZa%BA%Gc12vr|)tvoHD4^!6}w0u6`${Z_>X%EpHD+ z0lW~BN|{tDH9mh_m1iGcQL(Ku@q;gz>0Oe8*O})%=iWv-aKk<5&UA+Jw;hLIi}$ul zyqlTA?inUstCP;(VDlyZe}I*5Tag=Sp1r`m$wg)-Zo-FQMp>d@k5w7~qYs{)wArBF jg^kygcgLA{{xIwg&d{pat0 zL-)-8AR9pdOecB$2dQU4*9@d8+&ono_MW(lVK{qaA;V8YMzGCBPvsdf3;==zpk^IG zJ}!n3H(iE5fB!K6Z3pAFKA>z_9|Jo~<d>oV3rGxEs75MzXD2Kna- z%ywj({{q<{{+~bp7}6`IGMMNqF-WT#F>GA3hGF%&Dh5W7%~zjXSVAbuw(LHMJr-(v z7W~HtK7ar7|Jl2r_+z22cOg*;2WKoa6~|*J{_^85!{_fn45YvO_y_RR!w6>h2ka?R(F{l**h(HemX)T{!)2l`#{n841X2o>%o0 ooDO`G+N6Q>6QV*9O*2&h0GKoIiDr{^lK=n!07*qoM6N<$g84wX2LJ#7 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Print.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..8f029d705285fd648303eddf2cf043efcbcff1c0 GIT binary patch literal 484 zcmVagaKGD3l`1MAkA)`stkgBTwt+3fB!N3{__`%Uwrz{ zP*O7iuAT*p<_eJJy(jKs*y?Pd%<%HVUl217tFu5(fA{h0e;5GT`2X9FU;jUT`Tidy ze)HM4|Gr6W|B>~upxN#Ma`u{CmoW^tH&q1M4$%uWWb5X6RX!|G%^-m*Ag6;sfU`E- z&wqjb2Zh0(KmQoId!{m&=qoWus~RzET(ia->;jO@SD#z}v30J_zJNE%478-cns1!h zh42DU^OC0Gc$}KP{P@f8`8yB;=`TP2F>F}3hCxx+f#K$ZO^7h4>s`n|2wb@K4DO2e z??0jjA~qMG+wAJ~kKyajzYNFrZe;lM`3qbf6EV)NJ?{h7eE-@hu>6}h?{FJ{uK6nv z3r%@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwBykiAPnQ5eR5hDd@=K}cg1eF$N+6f^}< zB7sXSIb^g1N#f8_leFg68iM){Xc1ULTRKS4>=3rOHk6)o?rFH)n-{;I;c(93eSYuz zye_RZ0EPRic^RVE-nz@WYpu;gYfZjX(ZiH4RrKo4sqO?!Fro~@03ef2(Ft*nY8KK2 zEX)STq*J6o1FpV+;>Qa&?`Z(ayJfst54o9FBC!icox7hoTHdnX-mC|J?TuypzB3x1 z4ekm>fbJbwW_cp{K57GSy%qsLNX5#0z){}?u*^alcIT_w!ymvvNHsV@>sav9k_f42 z?tdYqLP&*_idI`9!~lSh3LzA}+@zzZ9&RF}!O~NJ+GeAF1R<0?qLsVToCqcdM=-}V z9J%KnrvXR=lN|cbhXMYVR1Y_aza0P&nhM!wtHFQ?ls)$CV!{6FW$p4nQ=1 c$+-F*02@E=UZe<$eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-SV=@dRCwB)lPgFBK^TC)l?#V(hZigsK?Gk127~>& z2x1niK@kMOW-wSRo<%T-a=}Lslf`mHM9^Xo4Hmg3>dmq9xLMY)yWH*VJ;Z@whGD+% z|L6Z1$M=2KH=ca{Ia1MPZhnO0lNU~pX4_s=+CyrK(w5DwXC}ws?50HDU!pX_%2)t) zwhI8g1+B2E2ZG(byWWC!ur?k5H6gnTI>C`ZDbrcd4UTFcrHOYT8a21xfJ0E3c=SM^ zlY-@?aaPtIdv;|Y^Vwctt;gcRFj8uiGAL<~;i{BDN`t7nh^kHsto6c64Oj>noJBG> z0E5|510h_LGL)_lx~8A?XOPk)Gl-%Bl&=oS4dwZGyXUK__!gS?$`9w47gSyY*jlee z5WW{6J2=Wzegc48Hcc*@j#WQ`V*=TfL9w_`ra#4P`62OyW*ETneILhhm@cgT>r4L* Y07cC$DQasV3jhEB07*qoM6N<$f|t+2`v3p{ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Search.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a675863890e092903cd6d675fed1fa20c3abdf GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|`huba4!+xV2`otshgMNbCOP!M9#AEm2EkmU=9vq2tRYme{JYi*cjEOxB2u1&0oK zwKTDq&SWw<#=&UPa?s$!iDf zw^gV2t<2of;bUbW6sWbG_h0w_8<#f6%9MMozN#w3H_`ieh=5(ug5K4s{M#&d*F1S~ z<;kyAMxy^OGdifqB&Ak%-mloa;l1UDHdmKh)0B^T#cwOyv}xDODN_Q)?ES6>KWeQA zTE*Q^nV-zNPh+;}`M7;m?egIn-y}OL6d7$I*E8(7Va9N4(cxpatQ>0|C;4YCp71HH zeRg~Ls;_cKolfpffBRv)rE?FwgvCyE^m{uyKn!Zgngg0 gqixo;_kU~|{__81aa9g-1qL&Nr>mdKI;Vst03I-{8~^|S literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png new file mode 100644 index 0000000000000000000000000000000000000000..b3476eb3bbd41cf0da841d1f1d4c015638796c80 GIT binary patch literal 586 zcmV-Q0=4~#P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-z)3_wRCwB?lTApJaS+CTuM~l|C4`8=ONDe;T=3AT zQ&dQSEM(X&h#t!5&>^}A(amGgCA6S2G)YP~i0BX~_)(M}b&2#+7Fa>zTHEfvJM(|1 zgY4^?yP-6f8F*%%XP$xa%#8nuZ2-NgiG-Q;ZFSi5yd-AE-JvntY=}C`<_orx$yw~! zd8=B-80!ghrFwhAZA2ZD(;wC>{2exXZe1OiQ4mLFvJFv(U(gV*sx-LwcweY~Fh0oe z$VWsSk;C^<4ayS~R|WX;Jc*k*%bWf&=o&}V0ff1th3`u_u69o`Io=5NLY_DhT$*B+*b<{QvBLA`wn6doR2Ow6rlh0o>AzoC@ z`%<1@wJG3oYn0tJ)kK>gbLHlAh~<6d?Z64@TJ~(bfx3X~t9J4QA-X@p%s>;O4%Glr zhloSeQQz{Ew6c*v)KPut4glX?oMG3I2LQ~c;v8riTHSyS(h5Ja5IG&=x`JnB+#4RZ z_|b+nwKB?5g6%lDkL8E6bave;v7iC3-_398iGJt6D<0m==uJ%|Zglr=`5P~GB$9sy Y04JO(F~J6zd;kCd07*qoM6N<$fz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp4M{{nRCwClkv~g2#&+z+5yDHEe`7BKJUfPneHE)@Yn6lQ*DTK#hYocZPIW*+kqXMvgde1P=hi&ANC zo*Z%JaW3#MeAx*|7EN5=Jppiba>UGe9*3`-Ut9vv>ol`#T(9)@ex%M-U$uJUmm{mj z!a8J;-0L(Ga%efUnz+fFbwa+|wy3}#^$!5w0{~XM+sHM@ysQ8K002ovPDHLkV1me2 Br5ykO literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5d8e92634df72e667cb0b428e9a005f6daf980 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5b3mApeM<0Mpdd@S zqpu?a!^Xav-+_~Xe1&9>AYTTCDpdxChGqtapZ|gMO9qBg0|tgy2@DKYGZ+}e^C!h0 zbpxtR@pN$vskoK&=l_3uX4QtyMkj}jj5-Ev%F4=tbw7cE%6j4!3pPq_Ojx64q`hv-P%F)ge}(eGHzielF{r5}E)~O-UpG literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..be8bf80bfffff5b9a2e510743d5253d44c34b726 GIT binary patch literal 651 zcmV;60(AX}P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;0ZBwbRCwB?lTk=haTLaXx5P9kNEeC^4M80}#E=R~ z62^MyK`iX00v{p<83XAu3L&fz7LwtTFe-e|2zm%AAu7ly7&&O=@^K@`H66Q^yK^#a zyPKzn;c7I&@_YNA|HpT}!#STKB5VYk*dP=Du73J28*;^}l&wDc4>shB0vSU{E(xh+ zVIc*JOM;#hk|`l=6h&S&M#j4saZ0nvUWWll>-I2xDcBj-d!emekARh6pR7V6vD*|V#fp;w{8 z--+IC?v9KTk4<7f<|w@dkH>=+4b!^69$!qs(qy5*U;IpU*s+UyNH8XRF~#WHU{26^HOqGfXQxCV*GCK@X%< zC#H#KSep*;&^=rrJqVaNbM_=gHiu#4&=;4B1v-}8m~5TQJ%5bv!xjROUXJ%o6m^>W zwov+%XYU*mldTi&^*B%8l@W;encmv5u2Y_Rd0SCjT@GoioF}bi2}JyidSlAEv#^?E lSC>Ohx7Pl1phSdU0|4)G=nerk-Gu-E002ovPDHLkV1g|e5Oe?l literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..fa43abb5919994779f34e9614cc13064c99596f5 GIT binary patch literal 75264 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

T+wCOs4*C_irHwa zc6Z-yvhUx_>mlyeXUw`Da&Rv1!OVQV-}n8^n;FG%9LBPZV~m@sC`wiX+s-uZ1olUx z(UQ@|cuV{v1+s*{1WJ}Ii=vJbNXtZ+2Ex*jsb}I9xmrFwlS(Q2swh1-Ckwb!QPx{9 zRp}r<`3xpb8ws}zq;Qz7Xjr-+uFj;epcuziGuNQ)Oruj-9zqZM`RlsQ@pC3hxMKud zm^!wpBTbu}!33sZpc@8SJb~JJCHT>Wh{e$ogQ$)J>sHTm!P}dgs9yM#myd%ydgh^i%W|SU z0XoBznO_c9{r|GKEX;($0)%M}ix@hVkt7~Tpeb?2OELTfA3ASuZlbb0#6VYoM=z%0 znOQ-=*UgKthkQ?*ss)pS7OC9 zB2mp<?&4r{jl#I_@Urr}aL2q{^;;Sk-gOIf<8kXR_l z_LCMTF5LV04|mk7=(>TF^8biZAR(L)a3Lf@N*Z<_Z37G6=XfyKLd9_Y~ZgpB7MoH2n10%ju4~+9mvP=}yMURn_HL3cPc> zalib2$@cZ?2N9~VQTx#pcIC=iJb3QMk^=qqL z&cFYza#ZKpMx>@9dhob!Y>rHTnvMI$>`Yd^_*=z)0|3d$cBhz>dDs8|002ovPDHLk FV1kXVwi*Bc literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce31c8541c3e6ab43592269e5cc04e869851be9 GIT binary patch literal 958 zcmV;v13~z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ_hdIAY1&QJR;3_fYl~p2 zsaAsY?x6_cwH1p0KoN=;>A83-LJuBWirBj-y?gK`o4VPZ-JN~NK0iNYH`)0;%=|ng zB)e|fB!wOvn8OS+ug}cy_x;XqEMp9>bDQBcZ$SXdvW|Vj!za(a1a1M>$4>tR{Cem1 zjX%b(HO62WV~!oLhyVWd7i$<}(eCe{J)hQ=OFEs20?|9SZ+!Dg0ps}jH>Ro%3A1`t6Uv4>KplrP8=UF%pWAkhnt9AMTJY)adjE zgcbs9b(;WRy|hdZ!-dqiu43d$Mnd2U$w)|~^7!P#3!GY*BU@_F?(|;X2QR{fRQtQ! zKh}J@a)EYlKr&aw&ea(V)np$Wi3^QTW4JoNuU)xFyE`D7Dq!boB$Gup<3)hqfXOO4 z3YQaav5R;6L+osYNFq-nQ6dv{sOGAyuRorwqQh`k9AI(}c7?+8e6C%&NVBuWKZ!iC zY=ziHo>sB4k53HIVfe_E2jeaju8;_&(c0s)kKU)=?h#Lyv2#^yyGXZECmYXC;Nx>} z>*EjJB^+AZ>r9RNpC=beBc*0-^%C_~k660IM!JlXDpPd|QYqF}FVpD__&c7% zDKto>N;vB&8l@NG69F5kBK2mMx6UrHFh7Uq`3R-(J)gDJ%hZ}(>}-Wtx=g|@(k<4G z#K!|RTfO0X!;z%a=<)U&AzP zGodgu0gE&90nRNiVtm6=Xb~UCl_Hc;y zG+O%%wsuHHGBipJRz6=j)&lj*&)-{9>%qe(&%Ud*dOuaGRg_W~V=%@L`!jjs^*9oF gv>Wih{;T+R05+|S=yH#id;kCd07*qoM6N<$f-fM!q5uE@ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf2618a269df0e1bba70682ed5f750f6faf7543 GIT binary patch literal 653 zcmV;80&@L{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;14%?dRCwC7Ry#->Q4~G1t{8t+wM3NrSY_R|AcnCMG|f@ke>JZhbn%iU4SDACv66j+L~C;%IO3JMX0H+1Ql&b1mB)sywChHRx_7=hL+|xI5<2u zR6vY{t&2d3)}~)-nU{`6iHI13%?~w#pNId9vgl&~fg(nARV5TL3W|y=m~Vl9_-2-9 zaz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=HAzH4RCwC7lWlBMWfaH%&%L+z-nO$@yKZgSX2;kp zZti`)KuHFPAB+ixn3QZHnrWQ-fML;T6cXzQV_uciZ$@0`K;p>n0%9zV6mH03f?zW~HJKfQ+K(wOa85r_;%-CVuF|MVnR>-b*Bs zt2VG|F(Cw78*F>hy6WbY@*OUhO3icqTN-SJwU)dxK*_L#fNOeeqflxw^me#hs_ZA` zg#IOaqwQI>$U~v)1VlrU3Y3Tp!@%D7$aZtWu*Lxr{YSaoFyiNqv~jQ%c%qKN~?-+$%yx&Z(vlcLUR+q}N%eus#m01F7|059%?TH^(ld*VJof$^cv z=p6xtF$A9Ae8>}5c%J3B7vONP_a`zbqk zVJ{fA7=#Qwn3L^iUkAuR0H)HssH7L9(*b4Spl_%rzVy&OSPdvg06YW0571tW>~-Zd d+JAli8UQPB#r(LqP6z-1002ovPDHLkV1k_JKlcCt literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bf558eb7fce615e24e841c60cbd8d5a0f0d771 GIT binary patch literal 690 zcmV;j0!{siP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;C`m*?RCwC7mOW?_VHn4MCk@m%x%vg7Z3UsB>0mi0 zEfSa7NrytEf?x|moE!=&7^sVbr5zG<5Caa{&B3CG;BX{h+F+rnAEk>O3QDVzYtr83 zamd%*<>Fni`44yh=Y5}#d!F~ z=mjBPkjlF(>jfx&tJ@sn6na6}>iq0}$j7?6$*pKahQ@q3-!8)L{*&ZZG>)9Uie3;5 z)8&w>=m~}C359(-*9(Fk=p`6>$ajbHh5+|pefqzi>~vYHcG29Mth55tEJ<<4ki1@$ zUw^jc=Vo3ue*Bj8jV+mZ_FDQP6JqNkHz?QAHhJd!re_kD2G2Avkt?z(Qt@#H;#nTV z?y>$Qji%|SY7oH2XOr_7W~sHSA{8I6@u}D(hr8=vXysKn12kkXo1C{u2N{TGYf{(I z3rxk}^4K|>ji%}K0FE|tEz!-t<807*qoM6N<$f)MXDSO5S3 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..16e45420228784209968601101fdb1ef15cd0fe7 GIT binary patch literal 732 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 JS?83{1OSFPbmIU3 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..db15b5664a27bc19614a89f5de440424a5f99cc2 GIT binary patch literal 457 zcmV;)0XF`LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-KS@MERCwC#mOW0xKoEuBB3HhG`?MhicYuNu&`{?R zv_!NKH3bz1NN8xNQbZyZg++ywCMhT)|Ezarmm*rjI?K=Eq=>{wmOR$@&Ad-LmW43} zyNm?+&NqA`6;{uP#1i^jwlkEUQ^2TPkp z6Ky|cp~$u#{|@%hLFmN64dOTsYq0l!74HK8+}0h>XIO-g00000NkvXXu0mjfiSM;9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png new file mode 100644 index 0000000000000000000000000000000000000000..e18f1278ee3d9b2cc70ce0b48fba10613ce289f5 GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|?kTba4!+xb+F2|Us~Z@!pDD^QpY0lJ_(E5tJVpZ z{-1O4u&|Hl<{35e{{QaHh&&)9c61Kw`p@FR+yCDZ+kD&ix_o};?p=C1Z-3R4uQ(G^ z#^$_em!-3dd*Ra3;!<%22XB)u?f30}r+dV*GblU?jLAQs6FD)Xd~MI!m@I`!qOOXr z%*@|!D<}(z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;PDw;TRCwC7mQ6@hQ5462Gg!DN8Yp2Fg7mS8Toi@6 zkiHPyWTm*YMK1irT~MHlK^`KJi$t8VMTUyiF0Du;t*~JfBX?6siS($4D84{tV&>k{ zqGp;L=S#-}58i#8|L_0qIp@N4hzPqGIkAhO=hNGA>*{&L$1$%1VBzR38UNBr9XJ3G zk?1ox>X%GoaMUl8)AMqwyit5^MBQ!?X?95;2!JyiWym|YpVsRq0dOu3fX}A%xQjlJ z9T_O40r)igjMDR0;L;)R*#v^FXpVCyaHWL&m423O!LlrV)eJKt4(wH%senx#IC2sJ zF5F*CY2wN4q^PWr64Ot=AKY#?R)d#j!@$IJ#7$9bOx72~eG@GxErgY3`f&?IWraA+ zS$=FRQR2FX-)g`x4DwD?V4B{{N|X%#bLl%ldk(`exY_aGKbG13>Y5FWy&8R2{iSwUN)Uwkc{~u0?fs&+Q?s(=rg0(u~x&QA%^CV~rbU_p&e% zg!Nv!UtHwP`zO)7u-1QftkO03CmI`QBKYkCtAWET1atANTD14f#KB|VQyRpIh9@@o zI=_$4))F;UXK1V#Nea)P2b$`q%dE@?Xstg@@zt(qZ<4{&ItLNaP^AlX`7KJzw&7cj z>1NSR;9Kq>6#g^&T1niDYmtoL2}?BkdS-WS6#$jBZCSmx{2lz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZgw0#FyQRt?qQ&<<~@qV3WdT1O~3K~Gw2UG&eZg4cwQM*A*$WVVxLA=^B6&8^5u5m z*C~}}n4LR=>kb2oh(%Qq6*APbAAiKL?vK3XeMWJ71AG_Lb|kY3aD@O~VbeLu&&~&geu3F&oxFr>xkveB=sd7Ch=7MRPyrQ0_6d3t zi6NrMwfsBW(c@IyDmn4F>&$c8Sr|Yd3Mi_nBr2##>LAVVi3B1s1QghDPw|IylGrL8 z&EbnPsK{AiwdW#{1QkV*9ziFu#F`@#Lnsi6OQaBpA+#J^WNTwYG6y9roXB(j+&J^| zV3RJQ2~uvc-MCI@ErE?`2mes3U%`*Ngcd>>Kp?5^A{I9%ymYF}nKx&coAD5BVr_yd zto``~yRCH^t($CZU1H<*C)~e#iO@n|86c4e7zKnlw)|DyrBUBw?e{8CJcMe8TxW#c zy=7#5l;Ki=e13(=>5#uSzrnXI`Pok?4zj7i>Gi;GYc*6_1W_TKxVh8}Ew&ykQ<)m! z#bbi1GB#$}-noox6UGm0G*aiNMNq7`gmE$LVld8rcpO=xs7|N7MYj_X1~Hx+;h8FN zedRETOm94ZA(!)ToE%mx*%AnY1QBTL2Dq-n=#e4f*kTB@Mr zX1xH2WVVJzJwR14#t`^1QCK_JMZaEMVWWDTFzBT7$EL1IGwQQm<49;WLOSi3z)!Go z++U*A)te`P_mU+3>c-j?%A?~{Cg-S39i>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;Z%IT!RCwC#l+8;NVHm)FQz1eT5@OLm5Q>l^bm+s& zb_wl6AvzdRI0F@e5a>lpQDKQxx)fbzH$hgSP%yXEOY5P?=&-9$iXAFR7L+ulHe)}0 zI?T?xYooK4#~yf?cX;3V{pNXR-bWD;tWXpsJyuoiC~zMr10DjtaM&|R4w1>+Ww$_8 zwU@xF29I&7!DH+Lnt>}RDSq(zp(+=dvateH)dqo@29LquCkRYWuZstI=nQ)@pYJ~l zm$#|_5lLt2?WJ-+1l2H83z?}J;s;srcFAJbP4R<#1TjGD1XkK^Q6Lb8@^UjnA*8k( ze^{r&+eKnA!g%vNN>XcGfStsOJ)2Ev`5^$hn{;r^Q}yB?&rdf4q~TVSrX)Hj8##Ye zP+e1jmLKBSA%pG{It8`!z%aNBPWqq_2xhEb0Nw#Z^={`1+BZ{C;9&Y)kv0l?f+%=sML z?(UVA#yXX?wvjg_U_)Y4cNgQe^V>kT1`pee*2@cu##|u+qR00 z(caN3tFfefh^)%{FF$4Sb5w@jev=2I^K!1Q~i$@nkW rS%EkB)%m~w7r}Pn+ZJpW4)A*bQm>|Q=t%q&00000NkvXXu0mjf7HCcJ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa01b2d90d568cc8622b96905a9270d68abd13c GIT binary patch literal 921 zcmV;K17`e*P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<4@pEpRCwC7mS1QTR}{v7n*>_a2ZI!9gA%PMZN(=+ zM4@01L@oH>Q{1Sbi=}ANJouncL3}Y9q=AA)2)eBsN~yF#h(--mjXng;A2m&_BpClE zYV0POjT`5jiV=6}hz)y`=Hkn!MeFBFFE@sWhZM-sMn^Y> zs;^cfCMkjm;3A6S7>+28JI{$A+7l(RI6~x$2m^@$Vz*+bnGY(CN03J568$HEm{9*$ zJzGEDN@Q`wm&=b>6i3~Nbpny*K+xFN$jVPvGV8-xEGk??$($0po_5jP-;4ybw@Kil zHn|Qaj=Gz5wA^bU+7k_|*K{7_%h@Gp09@aax@%c?aQ)eJ;>kGnogo#%_;!bv-;7Z- zy@=LFm$>ot2BPL0Dr%f)>ZN$yZ$4p0g1ay75^fH&alyuvpc04gqj%j3}j z)CIrT@t8eFIskA)vYT9dteEbhZgySSMftgMKf-N)MyTnm2B2%GgSBT?;fT`rV3^v5 z9zXX*CQDS1UO-xz0`#iVli|k|N2pzX*q1=n7)gv%aiEQws->*iao#1EY;s@+>ENC` z>E?OhNk^zW&_-41XUzS0THyPPX__mzqspP5yIHcZkmXB03PdcbXeNnr0T)$Hw)9hX z@}E@kHS`1v^c`7L5O|mY+`I3%HN>xH@6h?nSLEk|N-ABKhEJ!m$jMS@PJqDNG)x&i zmK2&=?-M=M%i-P2$j<|DQac)Wmhi!D-y30m(TofpNLs{Rzj4W8O}*^=;VRvI|FZXJ zSD?YIue#uaeZ8-Z`-6!L5@qqAY~81nu9@fe`}B8P>sKRcq@V5m51+rg7oEP;J~fAa vC=?2pRql^@$K3lE<(oEy0YX##+wx`r;X^ruR2^=l00000NkvXXu0mjf9v7{) literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png new file mode 100644 index 0000000000000000000000000000000000000000..2ceec67ccbabf86f8ec28e00d2587677d3901165 GIT binary patch literal 1482 zcmV;*1vUDKP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>KuJVFRCwBymVazrWf{jm?>X=N(cAWR_qKOk*R^!4 zqtFgE(Xp8fq8q^tiVhtR;(&;Mm?(j0V$?qf2^y7PH2Y(T#)OFcG5=6AL}P-$wm>3r z8!Y2z8T;kBmb*?1z3n~c{p}z3c6PH(bizU9{TQtQp7&h~-szOJ@HYd)H-rLKB@ zYG!(B=H&Er?T|^#OTg>E++rZHi0W&klwTPf?z?Yz!{F7|tzVrRSlcUB^jFB`GtA8; zoIm>^WAB^^Zy!6Aj2%1m-sGu^&wB6o180G-&;xM=d{ep7@$kki>vr6J_sz?OH>{zf zvq%&RLI^nT@xh~7zOL78%A3gdC-}}X8w9^<2tz9i*D`>7N20 z%o~ZC-*;v*@$Rj+Z~DTnhi)tM5B7*Sjz9<+7eu1*>XYAojnrvUt4M50ielM7ySVZ0 z;o|Dey*q(>fOZxr&t)>v7jN7$y!%VLx3=~4R|KMAUH}L|h$3wBM|pnVUVi<9cd5IS zx=pCtl*B7qR^`Re9RuaAq0-lZZP18L1XPNh9Xmg>Wu&Wru!j%=A%tdF1R)aGC_+X5 zP1p1L_VU~lRZ`pZ#H1uHrFEc%%KB2DY?GtFG5{IJtn2RWylLIWwNWM~@xc=j@%Y0B zmfRrDdw&1S9(FzWC_~>;)SE_Z*3mK4Ci8#Ketve=jsS_1wh|#*Uxfu&#Shs9;b|bL}@Z+F7(W=%&$+ zpSkLC<)a5sMv*q*MqAQTD!6HX1kcMfxAXY))XZPrdF|x2mFvqb*>Z-|DU@p%GR;{z z18@mGKKgPa=1sVE7Ii_R#`H{>3x5QTEvyIEwU+WvZu;u_?bmF-O1i8UiJN!30oTq@ z_`|0GIJ4t#=;kxyZDX#PP(PSz{gU||n#X{13yj=%7Je<=8o?wh(|oAW|7 zJ<&}M3c#5iFQA=4HQ~k?bj^hHh&JY^IgI96U~;jF)=tDd<*SR2^xe`kT-j8Xq9oA4 zTuQuljl39d(B5KIq+v7U96%36oGBIQs!&rk&dm!;kH6-POG5D%#1zZ{z{#vfmeZKsggNAGQip>8{H*~ax~j1hcXq}7B7!u zS`qqV6Li&BJ7s6ww0}3$!hS5zHS4jxva1kFoXDctvaBTL1|hkgtSCnjIqyh<4pTUe k<9G|GHd~iP+m`@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwCdmd#4TKoH0O(O@4#0#dy8KD@dd=A z7kvP85T8Ku1cK5-D|oHFdJzu_VlG}Pg&y@Fh!U$MnVBBaG|48>w7PP?aOqDlF~n{O}_mj0Bg_THm`z)(?$Ozwp+HF+Hct|h&grM zTq#Um1$bI0Rd*tp(m`~1Z@!!ZC4)?fEZa>m0MN7w?Rh%UHx4okcJAXcImpyp)tN;v zgMe5sgMj`!gFm(P%f5ZT75lrDx~^Kz-BJ@~SX& cKU+ov0Ffs+H@Xh9Z2$lO07*qoM6N<$f)=X5a{vGU literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..70adc01c8c1dc321dbe3ce0b35f566218bbf2385 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zsy*Q8;uunK>&-MnE+#_(*ZOHPt{bifS1{@)E}xoy!7Jy8bw=vKoAW@Lc+Kf#x2y{p?#By+4}%Vz7^2ck;APt3C6z*}8Rcmye!n zTip5Ad6)R3r2fq(^~xrm_V?VC_jvg#5t|z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;rAb6VRCwC7mPM6#D!La zi7_#0jFFO{#T`qQ4I9`K7rJzXaYI-Vb%)P|#f52D7-D=3QAtgZPAi0#@@P6O4DCEz zOrO)~gG6RCll%Dod;WXQy(1Wg!AU+2PWTa888j2%G9X%-JyWx+0KC9$q*()C7nrW# zwzUfPdOcO`p^zxf1j-@+I-ngVf=YNKvV|-k0MOalL0{iFLLm{rb9UA(rdT5jB!S1R zL{JHrq&U%NqSUvyCnE>~UayBxNEGGMQ4TVY0Cp^#wr22kX`h%Br{5o>tE&ruR4PsQ z)ol#HX^J3{dcUk`N7Zx&uU)6#{{cyg6Nzk5 zNN2IYM6j-0lH&9Zy<~Lsep9%r>ZR}RpO=Wd_v3PP<8pPEQrJ=Hxw-PiW5YE~=c4BZ z?t6=7B+*nU5@9Al>9ia02OD}`4{pBA{_w9AHiES z?(|NL_*NR`manoZeiIs2a^Kt+*Jlnja@lgpbI&(|N} t*6-wzu?b^6y!_uT`(hmkC;i*DP#fr-ElL0Y002ovPDHLkV1i9vX^;Q_ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2257fa1a2a432cda4573926a64381c21be0d90 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%>MaSW-rmGtNTe|u(KMq%dOgDY4Uiv{pSNC3gJSKdLk#wzhO=Qy@EG&VLWTB=UX zYCAvISo$ivOQZaK35mKI*F_88%+Givf6u_cz+-|0`w^*skEJCi`gA>v&~e~h)OvP{ xr)x*Y#09%pdln!43Nrk{Jtm;d4FCT#Gh}B5-h8+ID$sQd44$rjF6*2UngGaOS2X|t literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7c2cc9dcf7172e4d694f4b156e5cea21ef9e3f GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs%`LeaSW-rmGtNTe|u(KMq%dOgDY4Ui}5gWM!85~1_Oqp$J@T!N9%gTe~DWM4f Dcm-VU literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png new file mode 100644 index 0000000000000000000000000000000000000000..c643a7c0cdd35604de00c74c5c1e727825a31366 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QNf;uunK>&n!Bg}~>G#4ZpV*H6e)M?O^Rs7mA6zQ*w`x*}CF911 z9WI-!c>7Ou8GFx=iYRaLeUEk>OPuQWtu$lK8N>N~@sD=D zU0OSF_B}C`)}Aba4!+xRvzh|9^XCT}EN%-h&smH?Yn;eBwmM!UId+E1mPW6}+T>A)~EdWJjT^ z-vq0+2!{hqmuegMYkvHh{P6gBdmj6`zo`-19`k&C%#ik@e|~+2@JWNi^?w#kWeosQ zf4u9o4oy!=X#4-;>+}g#Q>Gm4n6pMgQc_ZaC+$!C1`8q8GZT6L|NG2;_~-2J20pf1 zUkWlGZsl?NlG2sQ$jr>#e6Z)g@G{m!(?7p~cHOW0llbG`WB$Y2<@ZbO`&YqlE)#8c zK#pD9NP>IQwTU?vW({}Q4H66<*E{xdd$tLSyJSo|^7N*_+oDUl4N;F|)15*#BwW$| z|Nnn`@}2_;$Lcrl%Kb0NllCCABj+Aa)N=zv7N?@>3o(Pfu$hPNGaUd1r`8dE`FTJF O1B0ilpUXO@geCy^v#uWi literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc2673f686ddbd0a4700693a7b6639cd297f57b GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|>}7ba4!+xRvzh|9^XCT}EN%-h&smH$43R|9^oG$Br+tfBd^DfgJUFOw;#u|2Mb! z@p1magk$wVItp4HF~9Wwo#zZnulV{-x_Rb&8D>TA35?vDZU6s#ovwK0Xh$OuJQO+H z^PflDNJ4WH!`%<^`~MmJ`SG>=;Mthj8Qu{drhlIMbKH(`Z`JUgal-J=^Y`{V_v`;Js}f7h|om*~))InO`+h$MS;*B8l+tkXNUSscC>+%K{3|DV$z{vMZaQMtCkUw!?G2FZVa zpUdBx;%aa>u*M;jdqG>h@)~J0yYXc+0x|uA; U`aXP&28Jzzr>mdKI;Vst01BP7JOBUy literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4c3f0b6c40154f2d9b9a6536957f315743a2ad GIT binary patch literal 738 zcmV<80v-K{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;SV=@dRCwC7md|SwK@`WoTl)uyMKPe*N<|M96iTUj z4Hy&jB-$GMaS#cFYCtPJh*W86@CO)eBuEhv0!4Z#riT=~C=?Zi#;Rb!i-#6byxFvw z*?H5$c9-n#Om-D~mtA&eKJR_MZ)Rr=DJA}AwAwd@VJHU_&%swg>M4w{2@G4oyS#B2 zK&A2J+bWRC6&;+BsQ^Hwy?YoNJ2zXE52caH74YZB0&ZS@ z;0(Hc?;?^IL#a&2J-ZJnI7o0TFEUJx4_5%Ux<&aB18kXbj3jH7KLfDW05Kz zzDk5%nu90Xjiw5Gt3wh1;L3>|fn)DJ|Bkk3UjBZ0$pC$yGc7Ck_CIO9ib!y01KIas;LMch zk4CU*!+rq3)#98#feP-msBh%6HsP%cyKv}0H)h{_@GH>4y$U9-b@?jyUhQzLA|2e@ zgCKZg0-pjEyfJ|wAUUeHXz)}AYIUJcpn^*>9ry|(Jj(3xRm@C6olDf}BETXA-0r~& zBc&ZS+QBswUI19W^6%g(V6%*XFvE7)P8=$()ba4!+xOFCMckW>Wfm-nb4&MigHg2y(^g`2^&QB=OWQq`8;j>Uwhox=8ErS@T zb&u2@xKBSeMb%MB^C-)wUBZ3u?*{g}3mGe`u`mc+tT@JfOuORP3#aHE94jB`#+E)R zo%cAThQ0Jd!-*gDOkS@mn7pz*l9%n)V6pdd%;L4&$oz2YBhhJllpn;oGdP^#sZxCx zy|MrE(;{I*wr&;4Gn>Vp@lG!8ezmL3WLfY|)#*`>KNn;qT|LG9>!jVMvNcur_b}Bf z$_okn{VRRwa?wr2pDR|qH1oZjW0LuCM#Ap<=CKSM^IQ*^i>?*b-I*o7<;=!Bud4k@yV^ OR0dC1KbLh*2~7YHaiwGc literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4d185c12c186a8e62bc67669365dd1e5e027c3c3 GIT binary patch literal 995 zcmV<9104K`P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZTGE z1ec&I0iiy$eNd3RFGvNUf*^{Bf)6725+?jq%i!{dxKqJAUA~riXL=7iDN~4e{QaFVPILC4dkTfS~5v6yn;7 zxDYihuSeY!qB<3v%VbHXXUQ8T;fPKm5u>X;0>Bf=SDbZGvnZGqQl~DEH%vMQcGA)p zrMOyP^2{{hh|Z&l7;n7#Jm#87E|&w~=)?(UfPz_J;^TAl4EOWk{XO_JFN&fdrKD_@ zS@_{sCeKW>Z~q8BpNbIok~;g1bCXl2F3|NrFT?SEdV_w-ri&}r6y~#T*3jvB=sr4j zb&^icB7{T=+j*PLWwPWAlfI!oLT)!<1vH>gf?^r28DIz>(bzrY4U^?;0U_@KkWSCi zu`5bI_meTu-yj*6V~z2vST}QKQCbY-L{TQ&KoAJ13N*1--}SHfY%K> zGzfcZC(BmBR6+zI8dtCW*|-;X%s>c9IHFT6RRB;F@VKGX4-sz-)aHl&Ab6`~swInX zM0WHa!-XOrvVLP&zTkA3?`NPlsWykRnYU<85zmX?dmoc$hv zwd+4Ie}0+Q9$zF7PcnAyEsip@IiN0H2YEeiMn?zvBUfN<>c%XJKN3TAxj26KGt}a5 zT)tjm(3PTXZ;}+_bf3Nr;N~oZta-96q!Et~{A16OlBW*6$dMODfro(#d#n?*?M<@y zA$IqnFO}Pts4iYN{#Nn&`ssJhbL{2E8jwLX)qrdOtXrZnSA?{�?>7+f6eBHb8b; zC&^UXo0sU;iRd&&p8bgFBL^FhPjbz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;tw}^dRCwC7mQP4jQ5eO46Y30%6CpVg=|alXg*D2! zXc2C-G@=+VX_ug2g_TeX5h}08r z?$_ew=s3UE+ZD zYjE}!Oi$rHSc18>1&&qzQxjqhp7xIo&CLFi)t65x(Y-#=bdM}*y4-%$Cz=D%9EePO zHtvlzl6&B!A9PbV^~p(z{+bfOrv#-GN(nxt05G4q4uIR0ZA>gXAAl7X%KHLmI+5%F zpwNYR;0^APUc;KL$>9mss^8~K4^pm_pp@|V*%YMhgu-IXnVC>@7~&I_Etb-`!C->b z>esVn8C)sD=DgxlD=)vg6x6EgS>#MkN<@k9?&CyQdvdaN(bLvIRqY*$%PQELVWq39 zlloMzzg0~lg2`m!!i@*AJ136JtcGwUd*g4vd8PA{@n41fSRsY@(7x)&^(Hs{@1vRwi)euqzbny z8*_OLdH07&-JTXY2ho6QdW<=^c=KV*JEq;95`7LrS+t&VV=N304us4>*d#{-u6e@e zAR<8|@FiVwda(pta4%zq@1J^^_%V&mwi&C<#+R>?p$Vb^*E|ZX8Jgqs(JmWbv#>A^ zz~uBi-K}-O=YiL^3SbrZayqKeWfRwr<+U-xh$s0{{!#4&q5>S3Cd!002ovPDHLkV1m9I BY{&or literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Print.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6e3908b1aeaf495a86808bc2c6f8d6bfb4f158 GIT binary patch literal 802 zcmV+-1Ks?IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwC7R!e9TQ4~GXrb!_|v>1vaYN^^HZDVVS zxX|jx`svbEM9@Mu)|IFm3w2>#HlQm5(h{qiV4;{4MT+>TAetBtxc2n$*&}nKyTabIv>W&V3^=GuAVzu+Cuv06`FnK70^{)9gevhJXidH`Mkcoj`xelcBAh06?f(Nqr@@5D`8l<^cf8h9>m( zodYp29-1m?k=I@40x@GIHdof3Jv%qU9|+-ipAQFjJ25#qfvr255TE^FB^VkBa$9Q$ zy0Vt&L^$BtZs~EN!v5EE0ssqmehAEr;X4mm)$}!ugz9P=>bErl0G>R30RRY(UKeZt zplUj9UcFEjL{El2`;N_0WaF7H~jb4 zJURDwG($>Da5-It1f?u0r+g`!kG}~+lBCt02j#%W(}!^?x)HKsbW&OrAxRR_l30G4 zR-!x@j~nl*27xH1D%(M&w#WhC_GqVBz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;YDq*vRCwC7R!e9TQ4~Fq)Wnd`Xd1*11+gHlQlp|S zL@;3eP^p9pK?n$46cjfGEC?c!jVrS#)^4n{HK99&rXUIuaMh+@<3bS=G>d*rZJ>Tq z#LRuy#Wd4QCX-Ct_+S|3&b#N_cka2vn3x&=bD2vYq7zdaVte>#1T(J&O{FoVaAsDn zNNkeVyCShkj!&id$ocDBPQc9AQV$v2E(gM)Aj(MqY>t3P008VZi!O^3~dtFz}%t$y^c);M|@r+-ki6N5qOH z|8F?#H<4e-BbUno0G>w2jT1ciG>n(?&j0{TcG-zDKVoQo(XU8#;^1CLLV##LVs8@0 zPcXfhMDN=kP2AVw#qnMHFq_VRNUVYj2-1#GRTtf!3d;BP`&ha57rz33(B|~0_LPE? zVBBfz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;5lKWrRCwC7mOp3|K@`TnT`mf@NQxllNRdCnA!y(< zWgv|R$u;3x3+scV@D9Nuf~`R~OGP0~Agx#=opMd;q)E`&*k~mfdVapz3%>EAB@{?p;fm0fPP+gvObxl*Y!GlQ8U2e#P!_|vKDCyO^s zUaeN`h-~q^HZ|}~DGeEhP)b9E8cL-(0JK`iAR=sSwagmdm2aMSQh6a6tN9FXO5=jW6`~q4t zRH(7OeA9H7I*1%;%{_B$Hdzo2caXK770=?*-0vW_z|ONOrdRhabxqXf3UPrUh_)Nc z5lcZa(`ZpPPc~GTu^fI5!cc=qV&lcrOS!mRUb+}j)OE`6;NY!QM3R6M0we?^39L2u z0RZ2>wXJ(#&OsvH%Pg@;ygCHr~jZnBNx`1mc9O0$@sU$lx#8Z3|vKb@q3 zyCe}WmmgTgRi=O~{Om>5izpGFm?&Arr9*)N0JPrR^_q<%o|zr%L-gVO#)X|rBIx)I z$_tN~;dveapi-&-mlwd{;XCtB_D21x@G;`}Hvk!=UCp+d6zTu~002ovPDHLkV1jic BB-#J~ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Search.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..3af96da8d230999af504afa00b7129532de6ebf2 GIT binary patch literal 631 zcmV--0*L*IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-?MXyIRCwC#mO*P1K^TUgiAfLDi}fH%Nd*ro#juEw zpobzALQ~L-u!uq*km@zCb121Jd}h6 zlVVzX5c=I_=AHTYp6_L5gi?x=3=bz9|9=86fDmF}a%m;5&Q_iNIFU?|PQMW2YLrs@ z35Lb;qGP&DD5VAvEv>{AKt1~v+pgd^Zhx(ZprSG#;C>jYdb8!;gkhtfn z2;T*)j1Cm3*IWvPG5~WA?-348qZ?IpLn1EwdG+=a;_3}FVyc(KbFjJ5NQiK7dStnU zLYZuKd*piH=JliZ;8)kfwqY?b;T_+m%THb_fWXuwKHnMKMvHcP57R2+HrnKJCW>yK zt)|74-+zhu`P&E~=ybZYnm>__iz6G@wu5OE+1Pk4yaTp7z*IM?bj5jc8GYdJp4V?Z zh^uSCz#n@m-y~Ljzh|e{^=X2C_@V)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ{m6@)MrB@RsK&40z^)?m#Avpe+g_^ zR(SWTIiI7doM^hHvo#S>BckKB(a}fa8Xp3oa`m#*J+*KMPiM8QQ_o&Uwm1k(yCO3k4hVpq#px_BNNOV99eW4CXgZ49;% zY+EM$zaUUm#3RAp{x~n~ZKm>_Hdd`zNaXEY-+m(rWf{j$r6N^DI`?D5Lm*1YTbGIc z6a(Pc8!y0=%h8psC|wPCGZ#6KecT6bjBvB(fxCXEKhB#U-tYm8jN0zr4Mk^D%QV64 z1ves8Rb-Qq9wZ|@$g$6E@k(wcTQ{vBEzM%?V*%c;@5UJ6`{y#L?y8`3-OA)C5|552 zrKjx5Uqg7?)05YODA~_0@gHO&?*}3uP_ygxjPk{FvLz^C#WX^rv^`k>bQ5Yh^MwRxF7y} zx{zlInp{6xpGQ{lS*j<}q9a3StPkn!p}bE$E^D9+@>q;e5^2pKIn7bM;gx4(sPN15jIkjy)v>;g-guPKqqc`qzIE)lRbmpaNXLKL-F>Y`8>EExP*v0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpcu7P-RCwC#lrc-gKp2MK1Q$V97o8NbileLO(4nP6 zgm&)cSd5E&Gh1+t^ z^W9x|IU>R=GY0@1$3c>{1b{;Tg3rAL02i5byy!V35kZo*gd}TMcg7?6NzWWmrPiW7 z;pkS9wFD8tZP|iA@aLB%TU=qA%vS5O0-3SD4cV6w!8-4`Yle2uI zS~q;dyKj9cs@_N?V?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm_H=O!skrs#sx8+c2Z6SSq0( zXQp6b(6Z!4`u-d2U6eFfA7p>)s!+gn zb%nJvYq(EGtayQ-%TanXm@SmpQKn;bfx~HRE2~>%7>fQ2h0`zRlomj hGvWWj`0(|N3~kDXn3}5p>;ig=!PC{xWt~$(69634e6|1p literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..b145e046edca4bc37d1cd8329f5b1ef49a442d99 GIT binary patch literal 1143 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe4cc99e2b87e4f0fbb8cead659d4461345ed92 GIT binary patch literal 1050 zcmV+#1m*jQP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZUl0>ZFbpY3e34 z86t{^N_A4LX;C3AL==iY8yAAMT|~u=u0&L*RZGo6q|!wRS`(^Yh-kckgi#5@yKE5T#vsHkSkEe&0Rke&^iFhzQryIIgpaMu#!hHt>Zp z(uap|FLAkrbM00R@JcNRNK#gW^dnFAu|Jk$8>_;aoHhgpzOVJh*Xtk6&DXc*W_{r} z0i*=F3=Y%e*tE&CD>eD??zH*Zza|(vne^`}67a8?;ikL+AVv)1)I4XG)1eA;1j@1L3fSNJK+4sv#EBpa^h1 z!ike5Y)Bd}z4a~K*!B(ze)WgjdkXve#%RybQ1DpQk>eAm9T7-|a73V54p1ysP+BOU z?$r>ECSZiuK`92uQJA{u-Zq%B9tH4O%M2D=2``W@TKfEW%~1z`{iW0dp34?6ePIG+ zXYrWpRbQX^YvR~^Zi*BEq=3IKd5nM^Z8HD>5<0W(;PDebEkNjE1-y{AF>~o`A(q(q z^6?MuJ`4aG)1U5@YU)cP+_POb;;7aXTu=2jo_kdvc(po&E}Fn?yN=n*lf-$~Gt1xr zF#Y56u2S?#rIdpr0K~vRe%nSAjJBj~X_sUQT zU<}}b*&R!i$q}Stkbws)vZNBm#TnoC_qFPgx)anwhFp@X&LA|*cN`T$BV_Xdii-@k zEfMS15Q%RX7`SU>s1*T=YFz+>BEYgVxNb8+QwB405^mrCB$3Gm5U4`>E|gz0eXlk) z_|$i~-w!`@ym3#rnY@K-T~G?>j%x7gG~Je9ed^{=w5aLJety+?tHCPO5x*}K?S&#B znbajgodmSj1V?u<4}iDUNqNtn%ciumJDIS+7(-7&yL#?|H-kI%YcsCBV)hB$Ox&Rq zL#p3I)unIVdoq&isG_x6|FdV4nnCYyJ<1J(Bh_!zC(l>k?)V<8)dqL|X6d>*7z*E% z6dK3ygONZt_$wbi7r%H-2sAUa*9b))j>iPHrX#Q{{(fdkJJ3?bYk6=Q?SWl$n`7%} za&wg=(f=3&B~(xo&ke4`^XOKi$p^I`ig_EMz@K@j`9EdU&TKI0Jz(% U0Z)CITL1t607*qoM6N<$f;RByIRF3v literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png b/Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png new file mode 100644 index 0000000000000000000000000000000000000000..b66609e7e20872813dafa049c36f0913596f70c4 GIT binary patch literal 570 zcmV-A0>%A_P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-ut`KgRCwC7Ry|9@P!v6>rJ#R7XD1P%AXP+hsJK{k zX%P`c1gTWp;#392!CkRX1s5l&i@OK~7dIFGg-aKyB=5^1eaTDulE!}A<=rIY+;h&& zyDx?i0>g|r0OYFKB7o}wW0&fM=Nm%^fm}5!itB}*P&gPUw?McF!mW00VSk~F=6BPG z_d}5i8(4zMwOV`hTBM85Mk`{O5dfo@Nc}iPI(iTkh3(Z)XvPHyWth(#qcWRx6sQsF z)gB4{P=B-SQf!K>001s-8-dSG_U4>i?ZLkaTplfJnOlT{5au>~7z*;6NhdeiFNo-& zfK=dTZs)E72~M~tG{%+B(Q9>z{inWqQpP7W;~w>|(^l;NuO9;jd= zJ*oMMLM&3}3XlLH4CURFmbt$NT`lqtEg%tSi+bPvidrBV1u-21$D%Iagffpsa`0&t zNCxU|B!uDR^&`^gP^YT4fC?^ItnE~ykM8!nTrdDeX953AADj8Y!SuL&?VI~SxeX3| z5Bv(8wGZ$P1$XyPeVlJbXo1q<(&<1C{gv}{2>^^?|F--M0Dd41e-^;;e*gdg07*qo IM6N<$f}T(5eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwB~l21rfQ5431uV!P=R)~loTqw0j41x;8 zKx?6q3r9sn?B8JdFG-@vq>`YWY2Y6asZc2wF04gCh(-~SMIi{4AOwMfsnE=*bML#i z#hZD}n|w1b>%d){``z<>=Y02|wZ<*-0<-QQ!2aHpxYimUfWNz}3Fu4&=Vopa!(2(` zX7ZV)SNl)D*a&V0?iyNa%J2Dg)5&@pY3#_Pu`-LUk*|)5u4_RWJ2D-26~)=Kw)OFR zYzIO`kt&K%QO+E>$Z~Mm@FmN}$%8+AG*)NX_ciqcK#uh$cK>Zbv9!Fxm6mdfN*^)y zcpE}Rxz}^wuG^AGez;`TCI^`RE_nB8fvGq1f6O0T_F)(X0HIKrKwq`WObFr#U&PhSSK+;;WeT{5DJB@6Asfi_>AFUg-8-`SoD4(LU+q<8ru43 zI9E(}{}adKkCSTvT(~@B-_=$XFgP^9gZ90cpAF=m*X{xU_0`9zuLdKx&swz)0S8`J z1(1zWnyq>L3=U1OGF5{#O$sYo3EbJ~Zjob$lZX>TDUCE0fK5I!{t_VdA9xXolM89u ze!|E^s(BO6bU=$({`TRoGW zEIM&C%dw`ee_$zR*qvWGb;wiaA~s>#EwX?N)`fHwE2YwsCvK6_CSbT*6ff?2_|}s} z1qXMf#C^%5#XCD&mTPsL; z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZHib_xk2?+@yu|e_*sr&=1kN}maEuvLb zQ6W)Slr&D_#C~t)UKTb^oG8&Wb*j)J8fp=3InEBrUg#rTT?a0MWy?|~jy5QG^Z@}{pGjpbMW=v!SN5`D;)S5pR zz5tSk(PXtLIjjbo}@__;QJPb;-<)|x3!U~?}K`Dhwr2_UeI_)G`R%CHM7yAOft zIN8a)v)B``eASt4a_S*$au1BIBWZS`9J`d9upm;SsW2Uo{y8L@xT-e3XKoFHm z1t*;rKwL0uFe`ur_HcAKRWe@l10b@(3li-i@iyz?A{xVk&1j7<1u9 zgclL(-l|^ybKnB(;;T=Gc8II`Jk%MaxE+|!pGUBsWn=Znr-PYO6Kdn$wh*i0o~QB6 zw+iFbq9k$C&{?D!RT&RG=1tF4Qw<-h;{T{Ps@ zk9gk%fWPR`xqIJzahrMX4nuan5P*F;5(1;bbdH{+Z8^yJcL0kTEueW-mpT9d002ov JPDHLkV1jI7)lvWe literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..131feedfb73acbac46782838aac44f255e7021d8 GIT binary patch literal 1411 zcmV-}1$_F6P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=`AI}URCwB~RqanxR~&xMeQA690xcBU0!0La3KAo3 zB-6QQM3cG1EHS!2!0f}a#ZUV{_F|^Vl6^2)mKYPVC7QTT`ej)bvrHy}87c$EU@b+U zrP3BCw7u%{QuY|C z%Ihq(Am!xDl`HR+0GR7D$n#Qvezo5%X88RaXMK~gGDj>{wvJH5s+3h#ESBblZ2lXe zn7uU?pPm@Fd8N3PM?VkwwHrhA5-+^%u5n+e4SKt`@7Y${(%Hf_wgp*#lh5XKJ8P^Q z_XUUGAs;%f}fN5)6Q=MuQo`>j_hmfxxJdERY*c}M-ujz-GvbrXeHpqdPb#fD0s zhxmill*MZGE27q37NkO1Ql``CC-Rm8r%&IY{XXjTO0WC=c0o zK;<)8vI?vS1Vx>NuQ@=~H#P0H*_?0G)$OX>QXrqxo1K-;!!^NbT4q?1RR|;AukWvcG69R-MmUFq zBOr~N3Z&C8T3S`1EGxPyE1+l#E?+$J=X~$rBmis}0|2)LSXhwEQn9GYvPd=+7#O&q zy?XdsvXCn*7czp~Rp%g$`#hitP;CWz2cO2C>h?f40RuqM(2-APk&MTdrIN6)$00;q03MdF7gk@fznHrzs`AlfjcQD#>dOThnZV zM^nlE3b)JVt+f-?q@Wu>S8EGS9BBst>}=*>5ED6BF=OGVIecd@G4kN{t#o?+yT7&Q z;fKdwvv9^hv(18%O+;DY)yRWMb*E`E6#*|*W?1Yy&DJK4!=hPOe-=H=*7hqeKDRD48^b#O$9|6&~=Su zGX*mdUqtNJX>D}ie(K@S4|jil*mqNr<%a;o4LcbA;OHr5g?=f}d7#E&*T6@zFj6W? zLJ0+#zM76Dr)D2d9rgMHyL|P5DvOO}ihR*X%+2NE(dpUP?D$AHG4grZvBhE{zFX_oD4oPhUh$tXvT$!g#|1XvM0X0J#n|Kt!sOAAh4V0bc?Rbm71o3 z&u6lU_{>3;8RTWf1R#aO z!;=VO8UVZQH#Pt$0JLWd4m0|3_feaZ>TBrif`ijmS01M^m90i(eg@&x44;#efrBPg4b?rYfF4hP3PwS})*C103X=0&BaKg3_he*~3c+%PN-Cu!&UCkxl{f?!hFA}GU$ z`C=Nmr6&j_qsWW$+5S-eg~ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png new file mode 100644 index 0000000000000000000000000000000000000000..26cf347d4faf78cc4ffba3c5b91cc81bcbe0f29a GIT binary patch literal 1390 zcmV-!1(EuRP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=@1FPfd*0{yz0X7NuV9m}E?#R?N{%K=Q-ZoyZ?be< zFdbAuDXYZ`7e1~5u%Em^o|pRTOT#|7C>-Q@=X;Ekd5d*A+6YCQT3y%WYAqv`#P6kQ z>E>j5K00#kLUr>V{XFECuikA}1nC1`i|=e}BrvdZ|Blw4{vN)wH{u9&1v!t;)8gd$ zR~edp*~jx*urrd0PmRmZC2;QI4*{iG|Ii<7`l#=fUF~}gbW*N>k7$I2ZZjY(2XC;6 zgd)up>vV=R+32fFN~Nx7^D8Tl)ole%p1ewjg4EmIfbWw7hjz8~?r5QW3+r2rOy zW&pYYs5-DF5mZeFg56=Ny{l^<$9djuYuoGHRzNJ9-5#&!NK2%dRv8B=X#|Q1tknU< z05}?Gasoc*x_1Pbz~($8&>mnqBHc&){)XMmcIDA)YJ~G};Re5lh;<-Q2J8*r5qjN% zsA{_*|tEx=46c`yfYrKBs za;{RYtX7JWtD((JZd^b8OaYdd5LZgbrBka)O)4x0}%iAlg9=JPPiM) z?>hVUyF*PfU^`J%Krbz=nM>)CWNDU@7&<7*f@vD0RIJ$9^b%6P&l?jX_wu86f4Y5t zbm*F*u#l#)Aovi^En+s8fT(IV0A+f5YzEVq2jF;O8e0G~0LEVz4m0t^ zz){Xa4R!P%f}1ziGf&f)Ej1&aNnkpk5Xy>iW;iDNxVhE<=o{ympg0db)bUau+&uGV zSp@$&c_FbX$lBm=Ot^yo2rAF`V6kqLL5QM7sd8o wNvaNH%QYx&QzG literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png b/Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c36c2eab20d20acf28084901f064f8fca349873c GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K~+G4q53V$6v z!=K0g31fAg=QuHagNFJAw*I$216_dPuJe|@JScr<-OKN+@(;^|e=t2>Df(`QsDyvO z?h9Py(#sZ!jY9XuPCALsWunDobJze4BQ$Ny*ldEWG#kzvcskFWo}zLE|M ORR&L2KbLh*2~7ZKzNQ}l literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png b/Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png new file mode 100644 index 0000000000000000000000000000000000000000..97292c37b084de680702f4ccfb09f7e204296439 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|=-#ba4!+xb_g6k$}EKOjwvv63`T9*N$??)u%9)5O!y<9ZH&8%QjZ9%z4m_>KZ2e0pq3r-!Zo_=VfIKI&KeyM{^W3lhm%icBW%XM^Vt?!s4j9NJDKa;A?U6fd-Ou^|;X{vg z{2L_yJw0CE7Q8#%(B?+q0gpnNfFz5;LWjnOEKPUaa8@7MiXzK``pTmA2^{ky~#NdKEV%kDthkMHpzn;518WrGyu9~l2R&9C+2 zfkQjv<0jek4O0KUvQJg|c}Io&n6CTzWQl)MXHBfho5cEfqqle<&vGw;h0#UNAFA$n z7_yxq?c{R)aLIjtew_dC_<5z*&rkp@MEG0Ssn3xHY{3*6?t6=nev6k6O@xW!Md dfSZAtVT$Kw>q-qz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;nn^@KRCwCl)=x+jQ5?YW?<`ZTf6zSm2M9brFiL9XpAKC^`xqD)uCM5b+R+WiAqkNVE`I1cgE>vb(c0^WLn} zVgJp#GqZmp4?P%Wc)WR^`TgF!-;840Hb>b49C1@B4Vb#wWdnTQ+O8XU5i2^X-@vEi z*w;eWnVx<{U~qyPZE?@BLQ15_9zsYgX|W#PU}We5zdAeZXf&$$rZkJ)Enu3a)rEER z_Aqf(Asi0do)NlX>2$g#Z0O=yI(mB$hQKrh;{yT++o~UyId`AL{ytJl*9a>`mdAvV zJ)o&H!o!%RX@%&75G5<%g^i62(bC;shQ0aPMl>2#)M_wI(~wdE%@rf_!wPGd$L3~c znVMNGOPw@QNIivcoGl}T(36OC0--07O2##fiysz=I<`ds;K56jxtUoWO~0!Pd$u5m ze~G(dyQglKSDGhdC+)w%2E_`St)s*~#?VuG0o!aHEiY|u*nuT5Q+pW6Jq*X$Ozxs5 zcF+^Q(UUs`%rJBSwzjqrW)TYo*2+K?;NHW@x~k%!SmDa>B^KtFxN~NQ*Bhg-JnxAC zsE_CN6^InxR4Z}1YVvaEJbKyypsBf$P+*Ov9M;&>fN2Q#2%T;0)`%yN$sA<2f+-MY zc1s9T0uXEn(m&7#>uYp%x4U8$i+44c6ge<>0)YO3KD3mh3|e)7ewfIC>M@m|+s&yO z!Ah9SrPK}m@$DzH)ByTnhHhs2g)E&ghpw)y^SNc1NF<_E1v)W3U7TDBtN0L(m&Vza z7eBdTo?t#z`3e27!x6rJ8}r0mzxcIc(g9Y&T)}^dc}7?(22_Q)uHo}#HP_wXf9LVi i>uN9n<-h;){xblz?>NN4i+L*m0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-{YgYYRCwC7mOpP3K@i2Cqb>3UP*56zAU$+gN(WM^ z(BPheL`r8%Q7Rhv21yqwd<0vGs4QHg2nmT)QL4yA3d;!vR7jpTLviQ(=e=WXd{eE? z=lSiMoq2l=ocwtMpo{WoVSlxUC4~dfJ$hFDLZ?6M0%$A~7$v@}cxF^68%1j{ z@%+*N(7>k`itRNf>Y@#CF`${DHJG5v5O&XRG2DBQgDtEuJLOe|uyK0ldHNV=wt;5b ze1_n>t*?f<48axKUNvftx(vY;l}$UYE<*AqAo*l0OE%h?KP9783M&1%Cuyj24QAYgqri_N}$gWa;5abG&e5Ai=YzdGlZpm h2>Zfk2>%;@2LNu|5bz-9=nnt@002ovPDHLkV1krr6fyt+ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png new file mode 100644 index 0000000000000000000000000000000000000000..ab87664044d882096ca736e1d6e38727b20e027e GIT binary patch literal 1127 zcmV-t1ep7YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<-AP12RCwClmg{SqRUF4ZPm(5CFX{a@ky-`O7uBt` z%nN0<+KFyd6k$Sf2*VfRA5iN*Fnl#9ifo9CPN*pDHnlQm8@rC#GG%HvWZ2GZ>20yM zr%lr2$@83Ze32$?dP^d*7an*>a?W{vpM1Z+-{Jf;r4;va*to~Tp=nyioBO&x+7Ijj z-qm%zD&78HOU9VWonx2fL?g~|WC{BMsA_#ahv{h-i+U7Cjsv6xB8Ht9reR@)HE!Ad zWXdLZqP!s`j+O;%@R_}12uCgM+yHL38=K1srT{Anu@I;bA{-^O9K-J~;HG_+9%<25 z|8nLzTo3b9KEU9>?{uHJiN0t;VLm7eGqQp-4OG+w%fM}qQBxY=pwmPc3SGaQd>q-p z{KMy&UnpitmkbZj(ipQS+GXIhMKHoEC@YH13WF8Kh6`_UB@H zi1o1317#d~>3)hl4tjcgOx~K|$l+?J*3gzsY)XKNVVTQ>qe1dC3t>o1VXXlHUU{xA zg|iTtX5`}86xh&cAyt*d1fy=Gj8ao2S=J+be|dq&9uhoQ5(E`tMGp}ZLB=Pd-0_=O zC5rio1i)pNn=RcA=BeIIbHi@Veltl}pQXLc!-|nh*ZBqJW|k;xGRP&&-5CR6SKPSc zX6P3iV*i?fhOli0ZUt+7^Fx08`eUyCbc3pV6Gx$&>wo2tXOHnhT?F54KgZ83Vh3E# zT$Ig8z$nJd&qEk$-I1_uT{IhE1*KIq9ekV1eVu(XvEjrGTzW z8$*TS&m*;nPy#B@dizJ!`W(*Ro#MMs-vLO%q?8D$&}U~DzHpM2sR1g>-7GKo85^Hq z$XCmWQ+-V6(9!uG*RPyQp6`~<7UinQNiCYhP)bo)Ud`c-o+M=LQ;}a>L1XJ%{QLuy zIK3cknxzBGB%~id(5k)028p2pIu1V*#3GmQYyN?9NZMd?b^qEd-ri^#0U6z zwz+;4D0jXsfTW6}M_RX3_S&mWNGVr;E2L5gp%AP4gov+Yd>^K>F%y^&GPCICz?dzJxu@r002ovPDHLkV1g-@4}1Us literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png new file mode 100644 index 0000000000000000000000000000000000000000..15234454f4b7ae28bdc1c7a89234cba1ea94c7c0 GIT binary patch literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwCFmQQFCK@^9-*cMSQ^(NE`Qd(3{(Lz(w zn>FaACPEEP4v!cEtpefz>~ocYwH@rqqpmZ=?47T*T>qrM*H!xGMHT!P95qz!mWFc z8iHjFL6^g{oS5XN;ZuhI58i#&2QA!Hmg~t@~_Pfd3 z_shKa;t^6;(OmshW_x@tQ`drq2K)STSfgWkFJGW3{$m;}FQhXvtY&_1!k0smYwSZhsd53f=u~;(vApO&;E{mpZ z)7=>+J^``uH~^#32(j@v^D|-l94#J&rhg8dIXc_roud#DU{# z1mJ0JFS)$hy&P7O1uI@F_`krKZf({fT&WgUHmSMYRtRHlKqXuo9`ro%l`=7vxb4a$ z@A#L+TrupADS1^fyh`>au{g#RsZh*0S?YFWp#LZ00000NkvXXu0mjf DS%qh$ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png new file mode 100644 index 0000000000000000000000000000000000000000..faf46e86064195a8ee24aaa6962bbec30362ba98 GIT binary patch literal 1213 zcmV;u1Va0XP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=Gf6~2RCwClmR(F+Wf;f*?>VO*D@?*dD7Dow)-gWj zh6zk2pSl2L;=~WegD*zCVMVil@Ju?D8eptxiuCA@;`}&sBX4u``t(x)%YFHLmc!38m@VGZW zcd54RrAD*GqIsBv-aYl{xK7b5rYkA2oII(CFgevyEbQV19x)}-WXLOMH0e!%tPDRE ziani<*3t1!*4*7&`+0$1o#Rr$tX7+bk)_IzwCLgm9&%J}yE;5Hd=)_53ojo9a8|uV zV@L;_TDr}sgQ`tUL#$S-hRIs042g?wUf@AN4~-3fcX6fPBo>i;06-|jv<3ZpbC;3^ zt5u`gnqL(XLvCK+K@`&V!$AMQ%5w^UiV^V|BFaut;>OeQq@27B#^ToM-Jw#kS^I;* zpfdq;51qewe+7PZIu`&eBr;xENXp@Pc4w$&eEa|*sEoO&8H@|W^BLI|y)@(Mb^Ye|R3Zu$lDP)cVR4RZ~6r$6qrD@;2 ziC>C}l-i&a8y&bn5*ZSGVaYQD#03B*y$Jw5PHMhy%ATFK{Q`hX>)WuezO`Y-`)7Nh zVf%>?&O=(OW(5*9C(?7Xb8}I*nW{;Fkbl8JH7+ungSz%a6&v zZuo=ImfzfiBLL`;H+!CAsC+q{#y2fIZ+KEalE{!*534Kywxrl7Pd$-~-Cdt!!N(7k zmzN)W<;byBSUQaq7Dtj?>K=6i0CKg!Ob`ggQX8NmM<0JtRsEn^mwox)Xzu)RXU(Ou z60HL8lV1Y-E0ck6ye#1qr)A>QFzHQ5XbKN&kpp1*th7N>q?Yl0F~zJd?q;TD zN9pL#v+*7X%W+^Jye487)tCqf*tMs0=GL_z+qh`R0ssk3zXvd!u%Z5_Hc4}H{w_ue zMUa+G0P#2i0Iltv#YO4%3wB^RO`0s zoz=%rL&E~3N{hGcHu&tlIQNNyiGTpd*EL`c9fQx_i+&GqeErv{y1Ci>Uhik_+SV7T z(Yz<=YHaWD8cHgf0I=)(-_rSdX^3GhXz20R7`e@OzUp%=ACaN3n1O{T=|o8)pW+ zDWRFl?$xNpNWWkSbpY1;dzx`*)MBJAlZrZkFCS#2j6x^(ZKDo=I)JPPxi_Q06z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZO(%S;UC@!a#>?|k3y`<-)$X_|PJgTXT%|9?VawIC1(FuzVr zH?l0Q0f3s;TE4x|)ek^lEyYB4u*wN9!M<)~YEQ@PYpr8W93d>}SIc!=ALVl(e2YW!ISEIwh@!s6df6v;!5T<;^aq3($?e=j8OuR%~r; z9~Dmj5!pipnw{hFk@@`rJEJQ#vXTr@fkIE|zM;OJz99gOZyb3Czy;endxaHYbZ&yN ziTsM8A%4H#&J@no$Wk&)1qu`9>w|rlFD=%aq%|c50K|l3Y3Sc8r<8d8emlRutX7uf zFcm0>L44P*{BULQy9vOQH0d@pW2>Za!&ZDsap_aR;+Fhw<9W7lk0^@43|YA6;-x1Y z_&FGy1u&aYytt9Pk0wAsc!aOi70jdt%dlbjm7afR;se`|SyZZr{ z$KLOJl`-{RD@^R6@LI)-&i;%-W;t0+Ij}BIqrCJ&3AVR?j@cOPsjjZx|MszWvt(8n zMV0z)A<9iyV$w#quQo!o1>`r-(Vh$KUhksZlr1f+=wecd~q_N zF4&^xIW04%hRf-~YB7o`)n*m$-qv!@x!E&t^UsAE2=fczgt`P^lQxVb1XS+yOhs=0 zq@D1!NkdE7Ob~us{(EZ5)%*NyU=VvAds;a8s zcJHWjY;XqaJ~+1`MoDR&ndonk%*!HsJ=L|excAokzPvTm+pyeo0I1yQnHr0XzZZ*) zEWehRgU3%a%_oyTKDj=F8NEB&{MW?&aRA5?uDxm22-gVzbHaZH0JG<`zg7aaaR2}S M07*qoM6N<$g2EU8DgXcg literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png new file mode 100644 index 0000000000000000000000000000000000000000..84f6b2408ee39ce673c1f4376d21c1a4db34853a GIT binary patch literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs=ear;uunK>&-N8u0sw2F7e%~=NwD!$mV~*TQqHsLfnC^_ni7Cy6)?)5p&ut(Ifvz zU06nONrHrgMAoX^yCecbW0KmEE!5{QcX+J#?tXe~760*CjYX^Wa@wBXtfX@~s321+ z)KoPzBT{rl)ON?EAY7rhMV@n4v`Woxm;zl_;F o#+q|P{4RdGoFRNY{_kl9o|dhV^O_Bw0{zF}>FVdQ&MBb@0IC~+9smFU literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png new file mode 100644 index 0000000000000000000000000000000000000000..6b28c945093e0bce4171ed50c3bbff1cb1ff4ba5 GIT binary patch literal 500 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-YDq*vRCwC#ma$61P!xv$E1B{Nd4P`Eg72V%PvGL* zmvC^gxE37ipoDmfI9)S(TdP3-CQV+C(nhYkQM#-i9fN&o;vwDOj_ zt20%qX|h$@#2y~sj7K=B=TM0VTBj|^_MB#oz1>X%0ODqWf~>`0000zbxCDVclB?o)1Qvo2s=64Riya>ZrEz`&)d*Kf|e zDamzMs5$4YMCww7eJPdQ-~XoX-?~ZL*xB={#v1nr_h0-hO;fEf*4}^kl=WNPTlsdY zey`uM;tY>6!;e3=Vndg#Qb-bzU*G-pN#>hJ_r*VRIS6wwz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;aY;l$RCwC#)=x;2VI08m?<65V=!UcK@tfRK}LmUXy*R8Ux)X7 z=frpOb(KW)gNMC)|2&`lp6B^J?-UW?Fr$G(jw4nl6-6l@yWPGJ@YML)lS*k}yPaE& zo?>~@08Ol0ivTd>^P9Ky1X9{8@D}I?CW7$pm%vKw)gr{^=613k9Uzd>c0CgW#SVyw z>}f`J(lIK6JEAvVQg7~vs2~y!i-g0Xf-HcjAa?q$xoBds6tuSLEtw?S)`gn#6A0_m zI2;PmZrs}rSfRESO=b8TNqznTgER)-;N>#I!B82g3=_2)-hIpB+O13Y97)=mA`D&7 zF&GDL8n5cId}b1u>5d#c!`}X=IGbB=HiLIHTgGxZKSW(Lw%^684iXKf%UMnW^5Q)g zfiGKq=Flp(GmOQjiN&YsOn6XVF6_bp19dS~fyLs}WR~W+anpbBIee`>AXg}%O|6ib zjnjFj4}gwS=XQQn!UJ6%09;G+T=Dog?r2~mTdE3Ht;62_s64)RoAs@2@`Vz)qA)h| zjZd?2(jPLo&N^v2f0Y)eqkKJA6jnEiOgz^ZA9<)8c&9PZmGy$&VL`|jOU9>=GawVp ztQE>wwZgAihfnT%l}7{5IDO)1&6QW!W)D{P+rmW8oIGZEeKT8P`D@-5R!Dislt zx#b^{Ufh(#$L}(hSd*cN&vL!1Pi*&X7pz3ni<|pmzXdeWt^D@BSY4a<} literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ceec7e02147ad30d58de87cac5e7a3a4328d03 GIT binary patch literal 898 zcmV-|1AY97P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_(?=TRCwClmQP3&Q5?s=6ZQuRQoL!Dhd?MVdNd(H zN$FCCCtYd}8zd+T5n*7r!nI45kqen_VX<})5ep45)I>tp|GFBLxQAMEja_wDN9Vm? zhn=0>Vb^hn&_fR%49vXudB5N9`}@ulhzJKc4&i`DQsm)P$51&DweAN*5CqeWs~6q? z0Eh@ggqHR}`j^2tryYsWmbgQ~O_A1vTjXC0(W*a4*+mr;;pj@K>$eLj_7nufK*IN& z2%Hlb<6xY}JQLn_4j8Xt{dhh6q8|>o!w`&fZd^3Wp=FFNk0SYKGHfF@Fk-r4jFWMo zW6l9fmIapc7I;Hmw9dEg3X>!biOEw6PeVXP3{A65FrPESl4ViS%Xnl%rUEcIDlSLK zjHa~Xdk6B;@{oEg6`3iSC_G(=iIoX-FZL)YW1NFCN(kc#QktX%v`^d7>*bWuWF?T5AXPDhDnz6oPshN|eoXo%;$Y66A2?O)RA7wh6wT85 z5=`ADl%6dO*HT_AkN{KWbpSx+Kn1)(uLAq(Swqcpm+E`nZIRKOftl4AR1a0d{L!o| zzS(C%-B>LEVB9x`OCR#V8ONr`aOd$C1UDrBkkuL%l&%_*mEumyIN@2I9Zzx_qk@qY zdcV;MOsEzgq$eaOY%u2iK!ZzvGAr{gB}DnwozJ;5nUf+0DDHL$2}r2 zk9PwNPB)yj7gf>dwl*WMZHb}MHjIarIXH6okg5f=tW6c6UKryXw&p2}FZ@Bt?Y{Vu z#C)#_)C>DG>czrR0Q2o7Dj&@*>rzy@o3*Kd8Ze1*Y=m~u+3&&Yu5WlzlM5+wKt}kr z8dCOI@ryWlA}OJ@scINirrPl(Il7#(PTXs7!Mzy3(>Axt+Adc`Q~TiMbV68s4fpWH zskSS-n)Yx@k)~-Uj8F>}YXC<75E?ZkynFxoV6KURAef5F?(WMq(R!=gq;UTGoA=)V Y09JtJYB}|=rvLx|07*qoM6N<$g8HF|LjV8( literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png new file mode 100644 index 0000000000000000000000000000000000000000..5033d4ce33e08b2bdb991b742c7aba3a72553152 GIT binary patch literal 711 zcmV;&0yzDNP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;JxN4CRCwClmcMHhK@`WoCx@np)ip-Mq&R{RA)YAy z0Tvp_e~?NrkQ4_-B3dX!NFxds79N6+{PYAufGGQf{e{5Wv7Y)2jTH;AdZ$<0#m4|HeFq9jV506f+xDph!$zBBfwc=3p?g59H2q*($vyprfKuXKQj+MowW684 z=>jm7Hhelqy)wfJ$Bq#XB=tKbF#-yJcjKo`hC?esS#!YV{eW4=h=*?v0y~w>Lp5B| zIt;6iN3zKb#lkRZmnNfxoW8lNHT6DS%dnbRDw{X#s0<@?2z10!lfQ)IWrU#PLy2Gu${)%P^H)3V5+x#<1=9&lqeFHa|elJb@_c!l<0|0j4LFA(WwV?n2002ovPDHLkV1n6TF|+^x literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png new file mode 100644 index 0000000000000000000000000000000000000000..95af7df091cb5eac01a185bdb609ef0cd9b35e15 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(s?=;uunK>&-PsuBHG1wg>e`7PI8O7Lh%mcX6FrS=+6U)i3zAW<55H+V(~)(ZX2Q zghTtv$DaxX4mCD%bsz5i&|axk6UK1eqJR>>>>>;J9(V9C(Oz4&%oQo#YBe;GVo{an^L HB{Ts5E0L3K literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Home.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Home.png new file mode 100644 index 0000000000000000000000000000000000000000..f89327a0512c34e19100cc915859a3cf710d3844 GIT binary patch literal 800 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 XM(yr;*1ajH`{k3{_K1v*Be? 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 Sfc(MR$B5sR`M#b1E%_g7Ao#NY literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png b/Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb5501065324e7596ed437529633ec8775793fa GIT binary patch literal 3113 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 D42tY6 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..5c8b1074b993c0240004a6aa94b15f1f72d63549 GIT binary patch literal 8704 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 n@ODQ5Mg^6rt$v(>0J7u literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..6251fbf5e2636727a4fc75e83179e7e2d5e53308 GIT binary patch literal 3488 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..fd60ff3494e539a222ff9615141cf020da79c332 GIT binary patch literal 3910 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 UJ6!lszyJUM07*qoM6N<$f?dyFHvj+t literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png b/Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..2c075b694eb987686e305a0472e921ace17a7077 GIT binary patch literal 3346 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6418f7c507b6b19ec6dc11cffe54815d16f3b4e1 GIT binary patch literal 14336 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 O0ay1=hs(cU4g3d_^~d)B literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png new file mode 100644 index 0000000000000000000000000000000000000000..716a0280d6a3e4d65ce6151fb01d48d347f05c00 GIT binary patch literal 3720 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 VD~u+bwWa_7002ovPDHLkV1l;N+GhX& literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..3a5ac328a08c766ffd1b322be2ade38e4ec759a1 GIT binary patch literal 8192 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 P|KF{U|Fq{{iokyXp}Yj^ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png new file mode 100644 index 0000000000000000000000000000000000000000..618db415dfdea80261582f4e1f1903fec08e0ddf GIT binary patch literal 525 zcmV+o0`mQdP)r4=(0ffAGoa0%N80g6f6`B6f_hJ6g0eHW-7>IW*_NH zFFJahd%uxR#kKORC8Z2Cuz)U#F$QY{5vh1k)y*8IOxx`42dZcCDU($(BG|n_>d%c< z06HtG3P9h#(DyHhJYn}coV8F3Atd6I%hv>1%kbu50b>NS5#p3l&9sf9Z5^tRQbq*a z-rh;pH({-%Yb;Oo6X)fOY9!C#|3u8zV7EIEL6;8%dDaq+3AZqQzEB?*&5pBV!kENG`=XH$L?XY z(WR6$rIJsdQyMYDuD~Y literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png new file mode 100644 index 0000000000000000000000000000000000000000..d1992233c610f9c6a925925680e40f1faf696999 GIT binary patch literal 274 zcmV+t0qy>YP)VgZtuHhV_h@G;MaE%ICz_&*Y9 YU-gJr5IT;{X8-^I07*qoM6N<$f*@dZKmY&$ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png new file mode 100644 index 0000000000000000000000000000000000000000..230d9269350e5ae50e648f625cd57d02daf17fe5 GIT binary patch literal 334 zcmV-U0kQsxP)0$_zK9V- z1UomRm>$D2qN-?Cn#zA19_|4OxvJ|Ldp5;6ixdJGC=5~vNfU1EC*74jKwXAPHKBP6 zfQ*FHLP|;#o2_rcWYwbGoukh`nF~K?A8N;`qkUF3agDZ#cppxhSMv99cI5nO7jEOu zURJs)L=Mez@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;D@jB_RCwC#l|N`xQ5eO~eRLFbRLLY*5fq|>ic3KR zOAthH)4@eZD-{x?aq3_lf{R$*HJE)vA6XA?(J-Y z7Z3m-NJ0p)W%#kvhoCJ?AyPO20EiApk$#yrfVKj`aGX*pNU5Oeqf`<~DzxvOL<7E9 z{e-2N5nR0Og6C2IjWv;wPgrIU497{5QY!vjt8ry@jo+(3`1RWg(-AML3lF%Oy~6pF zhuMD6<#KWE<1$O-&n(U^@yMAD>kNY7I0N4EP>S_#Xmpi-_Rbjy#!t$XSR zOJQU*vmtmpc+GAXt#>j#vuFUf3jf1_nUlBg-f!zNY_a;$5ZUf+E1Z5Zn@ht#uKxm? b)~^8oqijoYVMm4a00000NkvXXu0mjfYMv)- literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..5305bccbead53172559b154ccab3969cd67b8184 GIT binary patch literal 714 zcmV;*0yX`KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;KuJVFRCwC#)=g;BU>FDR|62-P1U+j()Ts;{#34gv z;1I#O%Pw9wR6NYO9W3HRK|!4d59^`BIR;WXVL9xuD%g$5j4Y3B#) zsR+%R$AdN`HR<9=dfIb(Lq2}_zj^W|jEGRr@}SODcMxt)X-r@g6BrpRx4@Xdh(GKl zy0TM4iO8KP9T$fQ06Z(BK%%JKfGf{%TpXs>whruxBynfk1w11L0O*ka3>*ceNH_f` z5(^W+_o45>h~c=NPCv8k(r`3R8&z3RNs4q+DL+WR=FU@grk&;{)64<+K=hM_n$ zWYQ_@JJ5(=NCvlwRln!n>MqnLJud9kE>KoDUcO3b+nd2G7w<~aw{lj)^hr01nI<$# w`u^jxV_y_+t(_Ir$xj&D`c2#d|F?b*03#K5bgv~G3jhEB07*qoM6N<$f=0_OzyJUM literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor.ico b/Varela/Varela/Resources/Iconos/Servidor.ico new file mode 100644 index 0000000000000000000000000000000000000000..ff7c9cc3bb27014d4095afd93a3e812c3497ae15 GIT binary patch literal 22486 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png b/Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..badb104aa97c644b9d306698abdc46a020986c27 GIT binary patch literal 749 zcmV z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;V@X6oRCwBqlRIk^VHAd+Z)SIMS+iM=_=nh&3`^*05qHmpm)w7 z>R@0dQmih%qpQy%lRJqp1X0*TMFE?EkMwG|wF0tHA@m)D(ZQg*H^a!WDa`a?d_TZ0 zeM3400>45iZG;e{`*S1`8Yv=7ql1CoN`?@^VAt-0B$6p)W^V@r`F{o<-+y@UW94hS z69QgCQmO_|w`Z{(=j)dflM`pBuZ|v{Jm1}$KB59=KnRUnT_u$Dnq65fm5ce;Rw4iF f(M#U6uIASOrd@6EpSQ5-00000NkvXXu0mjfe?LME literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..57412b64200b947e09354cd83f7177d09d00156a GIT binary patch literal 44544 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png b/Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..cd859e172492b1f45af0c46c8a018e04bffd9640 GIT binary patch literal 1131 zcmV-x1eE)UP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<;Ymb6RCwCVmdk5gRUF4Z_s%nuWX6dzO_Q`u9~h-= z+W4YcL_`Wgvk{~Vw=M*sCI4h$dnxDCPHWrN&#&v%5%JR=chcEzb?ven<`Q)wacx7Pc zyIXd?yldUa3+d|64pNysjsw0@L-63tPc`JG!6XVm1i3ny#!`bV{L z{MEsO)~qo2^zFX)pBX>&-qzi(rPG-_OJ%JEt1!vJZE%1|{5vMg43+ShxN_c{K7H=U z>mQ3Z0o*0fx<~iCGy41+9dK(TM*3(`UtF@jOnYr@WF3^x`n5f7wbHwPiP1KgzWQ^n zHudXDxQ^R!BRq_(V?-SzJN2TO$AUl0AJ?1C5+}VR)(j4F?bH`sK2>CR+c?#M$8c$(DaT2XFO+c|a9tOf%_AcptRab$)sEj8@`I|j zLG9KRu3tWmHTvI?tVM{3An;I1b+)K7u$k`OJ}w;lnrvYW<-sv}`!?gc4q6GcPB1z_ zD~U>CL=+GP(}ck^acdqWLR`mCES5;mgm<68!~L774)4OIdI`f8-s~m9U<%RlP@;)S zTIeLgs2FP%t^+-#D&4(Bk~koV{KfgKHso|VPhbCf%4elRii)DH(9-~Gza$k<+|yEJ%DP?ZQ~XJ+lx zjmfDi6W(V|Xg+M;=I`H@ef!7`>Gac?Z1+n;!`pY3*KFF5%`oaXq;k0)w2le=n%^!;r{cT3^{o(Hr%fBsu4FDvrtE|zR_l5uf002ovPDHLkV1gEV7wP~2 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c75e445fa281d3337e67cb758aca08259adfb549 GIT binary patch literal 46080 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 b{yzf%hd^OX9!?AG00000NkvXXu0mjfi&16T literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8b1904795ef08a4857efc44f9211e843e6ba9070 GIT binary patch literal 15872 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 z z$}W|GGj=5dXgZS?SF)kVC~Dz6=9m}Hw;Z*~MLL*AZKJE|*G?bh=JOx&LUZBW(x!$< zRyD>w{1yxP?RDXY(6+9@aa{EC zksp^ZGba4Z5-TD;Va(HLJ#CARnqg zjGfiCdLY2F(it7{e3z;`Ij=#~&77NtL0Rf;%IN6J2;KLGm>RBFWQ!a~D4kgLuQ}j@ zZa{=7?Co4kzUi8Nwl6LJUYePyy>Dz%t;;^)VwKzIJE&;!?a{3JFnTo1^vCMgr)wow zH^#!5j;`7koV8EbACq?Wtewnbv9|P8=SAJUxpBhT9W8Nwj9MQt4``1S6gd`eo0j3O zi5(g-S=3&VDeBdYbI8q~8yREiT%jb=& zMd|YqAZMX$?-P2P<6iNPeEWNQ%^O*aqdnYj6)$R=C!k$2adZ9L4GAt4^UZpi@)HJ; zs@-yL`FeWK#2(w=>Jby}#Ojt_)ln5}=A77!H>1w+e_m-*m2PUkLV)P~96hZ)Ig}(s z004YqSgr0DhU^!a?N1HbN{|5fYX hPyP4nYp#F0|3CPt|9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-$Vo&&RCwB)lg~?3Q545N?=b{pp;92>rbVl8k&7%B zLBh1qHi8X^2=Nf2KzwDEivks8WFQ7?XlN#)X;t9#!&QHS1kt#N3X3L)oJA2$>U-~c z^|%;)%xi|R`oe{K?m6ef_a5#wLMsf;f_qN+$l2mxf0vGd2bZau9`=JR01 zQvi$)4zoBH1TLAeDDVssVQ~&|iz$Dlt#WKf5Icf=&)Z^0%4h3e6Y~4>tk@C6cL4DG zbq4^Y+)1o>iq+x=045SP&W{2Y`t~zEI85iYR~%jL^qqt%Z4I33Ad@Rw-qrM2(%&C) z;C3=gx`)~TfJ<4a8mOl<-|i)Fiz_U=QGuMv9`cmt%j78Q%kMaFWvVJ4`kQ9w{aX&E zaww&%YJ3Og&Rh62c9Hz)W4NnptUSESua_@qjz2(Y!K(+@eM~L=7H;7qg_|Q3XKv6u zc?TVC#8Vo#F2F1U_O+j)sds>%^I5{(eV8ZC_|3H(getG#?G!Z*jpCI`G+dntG}i?f zhQXSn@RVlb@Dak(_i>cQa}=)9Y;JDV9CX0J+5YSNt9(FL>l0dgGXDoyGGo!lBf;Oe gm)d$`QGo3M01&|3gJ>gnn*aa+07*qoM6N<$f(&v3T>t<8 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..a2ff4bed1dedb232e57a133642bb1274d6871078 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Stock/28x28/Task.png b/Varela/Varela/Resources/Iconos/Stock/28x28/Task.png new file mode 100644 index 0000000000000000000000000000000000000000..edfbc98d8d7555c00b880b5696e70258d4c7e733 GIT binary patch literal 886 zcmV-+1Bv{JP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>`6pHRCwCFmP>3*Q5eU6_jZV;2x-cq7Lr;KQi)0} zBuxZUS}To55tUGB>ronMNyIA@2{jZe(_j#y5s#<{jg?2zxCnwu8VlN@l?JW3=V383 z*G#9=OsCavbIv`l-}n9RcTPS-Yt3+)E7UOzBj%#BYl-RA#yVnd>?;@t_@st~KtmAk zEU+xi+UnXq4}5WD6PxELU6^l1!%%MEUQ8g+FnQJ<#!X3!SYTPD{A_&(z`pGs0FL-- zoiTvv1;^3SMoEEIHl1(Z)7tE7i10jU5w7)y)m4_VbnE7bvBG@Qfo0^BQJ8O1xn_$4 zQ_`lj*~fEB^{I*x()sBLLuW3prM@W(fUaw^S-g5l)Q05L$pCbJZ*j&xzq*a@mLhxG zvw$NXvUzSPioM$CPg2KLEXv~4_q$xbkQ;aQ%_wf5>upx~w9M*OJChdo-NIhK-6VvhA(wQHUqzQ-pe)pO$6-6YkEWtHvu9Kai`9TBQ zc9+pSErqTJcMyJ?FBL`Tv~(wMAq*FzH|&TB zODIc~_!EdQ?ElEIsU$C3&-lFMBxOvE2}=wpMPz0M!DGtzBc#G_i+?Xo0z}?(f(_mRcb8u!R?tZJb;j+I203abSuhwPLv;Y7A M07*qoM6N<$f@?FATmS$7 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0275ba67ed5962676924b890dbffde504ea3b227 GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Thumbs.db b/Varela/Varela/Resources/Iconos/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..b783c8d2539ccdba48b395c449d4be61c82863d7 GIT binary patch literal 19456 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 dnJO394*;p3gEH@$002ovPDHLkV1l!R#Iyha literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png b/Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png new file mode 100644 index 0000000000000000000000000000000000000000..1779d0d54016de6e878960050e52ae6e802fb4f8 GIT binary patch literal 398 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..2c5ec159a0f15f51845a69395d38ffe77cf2e015 GIT binary patch literal 57856 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 z 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png b/Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png new file mode 100644 index 0000000000000000000000000000000000000000..2e23a78da239f1b72cb4c3b383ab3fa609ece00f GIT binary patch literal 586 zcmV-Q0=4~#P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpz)3_wRCwC#mcL5^VI0Pv*912qoT8)%m)xWvB*;+P z`Ue`sKqOBr4L@3&t+O0vMY;#H-B9M|0w4po8AH%oB6Fv3r^$H>AfrI1T z&ppq3-22?UjEFEvnE@alwfg|v=&*hs#uf_8P)3; zo6)O9SMODz)#^9;RL!1;;R$RuMI;_JG+`b_PmG9=kJ^3dl6I**^YHU9|Hc0={@*XY zX`s|I;s`y1#I>Ebkme7S~-^o2_C6;-*7+Vk50t1wl$4cp=j+@1R=Cot|n$_b3QMB3W% z0>IE9MM{{$8G6FrQ1|*0vYEnACKyh3&lS$_J5(=u^$O%+Oh*1`T0wdooAl1xgbC|= Y0QQeYt(hT9rvLx|07*qoM6N<$f@G)uxc~qF literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..972a0818dd2ce88a0f0e4149ff465a05d424b1b7 GIT binary patch literal 10240 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 UaP~O{PB)~SHiY_K{l6~%KTO2c4*&oF literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..a4ab3cef5192c68594aabfdf696a680d1bae07f6 GIT binary patch literal 49152 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⋘rA=xl{z?G|qXSSM0yNUEHedbx+A1TD> z;?||*A&Y%r@7lQQ`0jh*Weh=&@Oya~i~Pq)oRcTE_WBD>U3Xa>XiiZ~+R{fqSo0!? z!NfMi;*(BbmbJZ5!b|xZy444sml5wEtUmKvsL>)n`^-sBmcnSxt0^?Z)kDL$VvFfv z3z0`l4(KT*RWv7S;I|8fZeP7KujH#O5yF!&&5zBAL!7t&$s8r zUV$oMSB;nzK1PD*e$R3_H~6Ku5p;zHWEb_T&xob-Ol-UB>^9lZbIG*05L>j&m4?j*v8I(h~0Sy_4p*;EXPqNiO?p4EQ42;GQHKMMYyjHx8_D` zC*6*g)_TU~=u=o1W1^S%PVQB{cO-*%d#d|E{(!)^6o5Kj;?^HdV4dn_fKI2Cw?{XURfI7|j0&ToRP$J*;#N5)%u}fr<;n5~WCL4o zij<|t6kZJfzdrxq&vgjRW!ZJ zc?g912e2h(TFV-5=LHTEbt`vgjqaNyy7^RODt18Zm~FoS0qIhJ(mEcs62x}$MN+PK54lbSD~?|!UdipZ^DIC<;?`MYCk^r5w9QMAy^TknN{lk}c zN;fjxCq5N&HadubyixS=yq@l9I&}wUHk`T)ws1v71?RXbkM&-m-A{^R`Wl~^93yKJ zM$#=G&5HB{leMW;w^lyVC%LXFIQynjEfWW7jS?eXf=SWE2KEcL z?tMX}Z7X==d1P>#P+ewvOonZ6saf&Sv33coIudE6ZP-&YBsBkr`$I$MsQvBljJ=MtRIHWv+@Y&SfBRW-h-?_UoUr8%2MU^ftZ!J4 z+RkKW2FzC3)XDNxzg}h3O5e*UbU@s^h&02~G`^!od~cU|4`nfjx$tu*FZtW)f}y0N zhi0`D?$=ogJTN`b6tmK^m-bjVFZ9JQhkM+3_qR6l8t zLVbzP+G$H~Ud&Vgr7W@i1zy=k38S1;3F;MIC^Um{?&vjV2abf%Q&Vf(*~rGAC}?NB zeHfNWPt`oP#=eN#%b1^2vKH3aR$a+NCgHcj`t*f#O~y;Z1FzMRSjB>f7grD1%d*@dV@Zh=~ z!CIjGjq+aRwmjpe?KnYAdTHwFoh)yaM*F;|#H#Df(j6QE)bmj?(>HB0Q>D+Zbbg(-wjliI)SPJ7;L2I?5ns(ng zG17YYq;yR2F*b>PY<84=MoG`HE;dP>k&*yM8Ur_!6X$MMKynFCfn zV?xIhF=iDGGu0;3tf$|agbSZsK9rHfz^9D!S<8jdlWy6lkIMV8ld2R};K69yI?DK+ zU7hTuw28%(&#E$swIKx&ks>Cn%r~!;J+sx$y646cp}jgTY`OY)k%u<=+;cnK>73Rs zm3;Mg>}@DoP{1oh29<^1CoohN=It5;`wq9<*Gg)cr22pjn9fU zxB)(v%Nk0=sO+BLcm_MT{+*WjAGLKqbdU0WaKH6BSYOELooAa#>$Mo_Bt-!|Erq*a z#UGmumQ=;%dD9sLFSN#eNSTrGJ!xrVwnvkTt2f3&eFnWuzC^~=gznWOwfSI{q4w2n$6 zMT}zgaKbL$th||$*PmmZBDEie>z&aVKfjJD&z+{Ie&Z|d_ZHWH*C|Erc}t;c3R^B! zig4!;^KG?g`uA3BJCb9UNGpqlv#`$7vuhM2lKY1?mO?GRVaU{A~ z_Dh5~mh2Mq;I_16&THu>wIqu@q~*XVTdT99T*UD1m9}Cf0k0?5eG*fn2kgs*lcU=& zCbb`)I5i}8pkU&t4NjxWyk|$9QtXUKPV#B(58Ac|4XrQEG*Qo_ zG3+W%QKcn5DVlaM{9@}c+q;iXs<;?p8c2p{v@bu}m;11|Rl{n6iR1z!vpdy<^`$gC z+kFkal(_@suSIv)yNJc@YhRJTkiHUUf6+efCfCQ-tfC;*=j%84!6{uk_Cy3x;E`hi zGtxmA*-8^-icVXvUB2_Q62_%sW!B&dx)}!2yY5>FlnzZkQtB|$X<6HgwXI%Ky!P0< zc>naO--1KD`;d0sK!u7LtC8OLrDrpwF>=GAuW9CaHJ=^DYwc5AM{PX|?K9GlIuX~M zzPA<%bJtM}Olu#UrLeZ>eXB7N*=(y1iYeAnugst=;THyf9<)vPhAoh0SgkeAiq{XW zCcjyo?BQ`}aO@9gek-PhK5E-vYZ0}^oH4!VCA2N|TqaiM*^OR|e&}99jktx@2jTnf zg=?AC%dhPa2;N}QwTLi=Le!9rf5x}rA!;RH$Ml;?Wm22q4nlHOI$HH}%S0%f%k zy^#v4d6O5Xtf!d_<+rKu2e+yyeFn#0LoHz?YR@+9cWv!WCecnjxVdi1L?~ewI$mbX z49pFf7ArNU_iy(-ugk;4E!v;s;frl7k1ioA6y6btX7Y7h3VwFwDb8xDHMOLl1Y7U? z$*Io5kl6**JZIewH;LARkJ!eQCiWS33bgEK=Ig?rawNv8s5o!wvhTUzkS!jdjhCrF6t5ZNSNLeDAz8EO6Vb)Cn`u0RdF&{ zJ}=nC^1|ej`(y7QJ61}X!x0yh?o}nPZBJQ8y=FAkd-Xn+vM5#GU}Xo>O4uAvd6D#( z+O+;Xd%MgsTaK6_ZdURa6+!qKc_W zVB&~W(A~wTOuM55720{Bf<-FJ$L~nzWW9`?_&78~&|OSxMEFqnybizjYuxQ0hEauW z1#dXd_4_3Y*Qs!Qyo(N3QJkpVZzrKxR@T?2(|KyYNOsYuqDxDAVG~d}&$_2YC8aJx zyjixEB2z0cXH;M?o&2Ic`}A6b|MX&&3+XF)hr6_?D;9$4Gm4dpL&pVe!f6Og%NQ!w z{3H%yeU%unerQs^RQhUhM$C?vS5mcPOvIxPsyx)AprR#|^*t+xT1k$pDmfz7SQk9EV#Dblq!`uNkiMM-1Y2Br0q?W!$S=L>V< z*C;I4bTeMqS*F?@FGpQIPVge#OOvwU<*iKXHQjd|3#%XFSw|Q-wdAxXJjEoa>(k#< zVR@E0oYFk0%F#W6!Y)cT>~)Chbh=sOMU#9cjQwkDUT2(0y?65_4ew`H^xi5r`Az&Ru+ltsOv42o^wj}q${)?>nKcZX_Flfxdo$m^SsUkz9n5-!;ov9>z&(d z9~ggk>6b*F?lKW$XV|*GQ;4N|q+vfhTbE@eYsfvV9Bn86YE8KC#dj`r{M5)7GRp8@ z9yZrM{_y(8wzPvnDIMtM)Q8~;;*HY2Q_6ADSLi?Urtrkj-FlIGTv_eh z{4)~Og#e83^)+@Uqw>Qc*;Z*nHFMT1HQ6s7#C2Oup4WOxPkmV@eMV>tItV=SS>M^ylXv;p~R< zVg$Z-{?j7J8h@Eif;_{4|DWXQ`#(bVzd`iEI*{+yzZKTKp8Bev@86`K`A_Jl0{whn z_4EIm^zZo-`dLB$#{S31V-vOjxBwo2tQ*FMm;fLIwgKA#B7hhm0d@eS02x3IPyk4} zT@X_OyZ|*o1JD9=06o9}>;@PCc)kIO8Q24`07!Z^h}nU?00*!S*bf{4IDvxz7r+hh z07x2bi1`5lKoAfD4gtb|2p|d^295w?z)=86Cjs#>;5Z-&NC78+lYlfJ1IPk$z$ri; zK+-8dtOzIp%D@>w1yBXlfU|%)paEzCS^$zx2VzG+56}k;fOCK$a2_xMi~$qC6fgrW z0OkOa-U8xFfF)oBSOb@VD}W7P3)lhnfCGS}c>u99-~zY;Zh$-B0eAvefz9W4Y(Br^ z51vf&ulB$CzVi1NgMmEHXkyUdkOh3RyD(q^B{eXp@7dpbkXODwJJLV{SXnrvaL zIO}wLfKWF<1zj-A6mL-tp=PPS|$en^a6Ml?C21#Xj2Sdw}NY z)J{iQ3CBCe=`99Q^-qFB4)7(@?YI*%rR2KQGyI3mOQ_ZSt3ZJWd^49AnPqGEWriyk z>Nw0^HU7=)RY4Hm`F}}q66DR{2;a_lMdsxq^Xvb)mTx7I`LkaZ7NkBMK<2KVg_*l1 zFn9G^8DvH>vReYGKA2d4Y{P%BZ~BkFWc|y3@%o45_=TH=Z6~zP2H&et&$oYd%FJAN z_nSlg*V<8YZ1zu(8A(!SqRU-!33&u0t9k&*PCgUr%8CN-V-L<_XF>Z@arz`KblsR6|Y|n%} z$$dU*y3x^^S>AkxFIR?PlEJd(6JHSBXYI?6vz*lm1}}Cw^OROE+gxw1J4m$6hZlqwRxQoM{U*+vrmV59C0Qu8Hm8SEJ*P0b*InVX7?mpRtn_l{(rAz3 z@b9{okTo8^lu`WuP)Z^D+MqH^*i$F}M@rx~QU`yvKmN_~>u*_p3H+P-pO6(>(B<%5 z>o57B-vMbaApu!A^fO_j|Bn?8^1b@SLI1}7+d@CD|BGHkHxj-lFQ-Aj%GdlK`g#30 z$Z9O4PW!$3bwU66uloPS&ky}K_+R>kY)o~9j#ALV0@3}^Xnn%x0koFk%^y{_j%Auk zJG0V$*k+6?X4xQGld-%LTZg8_tfk%`bzywM1L&F zJfpjxUYPAvOvv)nXRNPu&09>*NgXU{==w0c*8S*EW~0#`)L%CD@7=7w{HNr zC;AUK(2ZUmLSwKv3s<|#!p3|?_NGoYo%(aJ#}84`8Tndd2}V)DH#pb?hb>*X8+x0|K0y9 z{de-{^y?l1V;%w+f{qFMmzUyBc)jaun)m#0l5C4ma9iUbE5q$C1J}MsOG1V)c|l@0 zu9of(om!OJxxxHi2D|a4RPS2!G$kB=#6n5Jd{E-@edEid_4;Yl+)unxR8n5o5BKfv0LV)8OR%Q=mwf^@>|cG;{{NQk zm%nlSb&+(ZM>7+-r^!?ZU2uHGP<(|x*}DPfXK52G+v60cqF<|AesBpj5ES~Vi^EBb(UUot0R1|Vd+g3{C z^i-#ljWJO^WtW~XxrI$gY!fHP4li89TxVo_ zn`VMZer2iHmwVivpKH-?;L^Q*5iLWGsjX#rlSKEr*49zHOLzAzi`X1I6)}MJj6+;Db*0`4D2aCpwS4sa>sk~u-yEpCcFR?%2e?$8dX?G%{ z8sFRgya?^j{a@RkBL61+9DhQ;6X@6fs$cZqq<_nw(C-WSH=cjaixPm8KOUg}<4^ZL zM1X$$ulfHk9{*T96Mn+?P`ET<0FeM+DaxL$Jy;9dqm6AxcN{F-@5mk2>&|^SZ)u!$ zr$KE3Q&y=`xBi{@G(ucF%z)=EF$oMmX`r@W`6_`{>(rbzb%JWWqiw#Sp%sI_N%x{M zO6!!Jdq&6r)6*5!J_Ui&k8~|_yBT}NJMDuc_uUdT`jEwhHf75&s$sj;R@51>|J;7* zbpE?TMIUSIEyeSic=j$c@ZC+Rsj6o$xwDR9{X;iug);kc^B^OS$R6ORlY6?58jl)` zVj7_=e$!iv>;{DFQ-&()qCjLMp|*7m?gcNv8@LYm0La`SKZtJt{y+c_2m}GaKnM^D z+yugaaNrhzq>F?&3Wx@712I4>a0j>x+yml(c;G&Oq6bW0$D&dkOSlbdB6+cC6Esk0EIviPz;m+NcwJwUjgMn1yBi80oA~3 zpa!S~>VP*uJaVt@1Ng4X>t(jj_1wr8zP7@|*k}Gg$LYbdd5)lU zRGmc_PUG$ODy%%$8Em@zhdcQU5)@ zX@7r7{rA7P{<91_0AD%In3JMtIUcKC{JvQid%j=u{KK~Q*KTV%pR=+qY8SH;8unnv zm}c}&QDHf>-ZJL~G%TxUzO@(9kqN;PXqD!`qdo72>bE!Nze^?kcaE zMRT5{t8l!?yPae#yw!KmvTU}1fO)aro+;~H_XI3&cjq7aJQ$f&P!irf*g)6%vB5IP zy)d1va&Y3a!=%LZkq-pkvXNJknCW>tdxbL5=S+C0)7KqMk=;4Dpe_CFOvi&@Wysnflve3W zq`jdG?F}24TWNzb{B@4yhW%~s|NYmDfAakW{SObJ?Xj`{H~(LtKNIwy{M!E^@E7PW z`$oUuU!cDc^viGd|14!Kgkt+J2ECz`yIFMZ^bmfMz|V0AdFzzBSl;du6f4xf^{o7K z^z?yp*5ON|hn|>d;7-L`V;!wA+exHU#rfLBIMF05@~-BB1tmL1H0bQ&4EaBg9kl7z z<=oqo6=8o_&K&2A4_B{2j(Q-*2t6E5E)jyJaGV}`m(6JZ%67Av7Mi!`m7#IH@;dDicFwW)AnhLt1^mFmwn{h;M^wY zuR<&!a?pf%Uq=+`hpIkb>OdR)MM_2t7#1zSU;n+f~2J zt4I9zw>}=}_eIuTqQZ3B5Ff7!BWsrbP!b?B=$R3zw7Z%o;plR3Oa~|p%zy2F5Z!G5 zY_@;?!_QyQ?mtakyg$Y=+f}|TWI>Bt413-rCb5<0?1}4|y0R%Z2+gRJa1 zv6?)&Adi2?I-&6jI-NA1#`(zW&KO2SN4l;B~_bP9FS zX-3o;*|S>j4K(L$W4@5V_`sHhs(V-Ht~(sj7W?rCR9kKh8KJ3t=X=PVB$QfmCa5MI zFx=M|4#m2+UV6jYnwMoM`|!+K!Nc_PO17G35(6|V2J34aR#H<#V~aG=YB~-Db7R(6 zE11z+94GUm9>D19IQWJiKz5ej^NpoSf;}69{UbZ;|K9FdKyIV{wrRhAP5te^x&Pw- z8~a7-1t=1HA*o|H~K*X|hgrgTqG^-Ik(r9B<^<8jGt zh4ht7+r)V;?!;!cjg`6tSwHKkvp-;do2s-R`3Pgim2`EtCY9#KgYd14C;Gk(|lhmX+y+}MBR(9i4t)AJw3LBHzP_OI|?pnnPU zBmG@S5cv!A6F^@#vfcm*yS_WDm!ilC;mJQ_o6leQ|Ks^9%Nz?qFWS=GB9yg#eA5-_R4O1pWNO^Kk$DQzd`7x4-A_hX0iTd)OTR z*&P4*PmcfmEBlLoWsuG2H(lMA7RD1||3uHDb>We+UH4#@UuXE6j!!h7&jn>svh61v zbW`oO4i+;MuF^AfQ%b(r_K_hwR{jX--l|DWiY*Qaqg+jKl8Wu@Qsl3z@Cj6x`7iLh zoyH90EmivnSqi^mq?JvY9;eGzVSbU{Al`AAP1*SNR#m!N%f+-;uh96RA23`Jkjvjc z)38(&nYy?jpR%`2DDlvISFBh4k|E7?B0YMI2OD42 zSyIg<-D1#eFZlLczUyvrp%Bf9$^x>K!}-${(*xn|BDh=H%Nsj6HLzyAB;vI-6ZTF) z&z_h+uCZln^Utl%o22@5+D53g02g;3i-Zt!mm53~Ew0p%v+z}pYq3UR;oQpMJ1Z>c18T6XY6yRP~D(&M|~KLt1a=U?JKH|^(-+Yhr6glqLZ3W#^uYX43p(zkrIUAWX`4rl5Z755 zim}z!1Xn&!Q&d`X!o__jalT|HwsuOfO_0Pc7$?ow0ct7wXGanM#R-U`yaR8kSQb`Mr3UH&qKdMZ~JQg*`8p?6Mm8BexpL}kN#HrmnRI{!gGU>*)G4`eGFNbh>Vz`3Yx}# Vn+kc>uO*~#_}zF6BK*G@{tr0(J^=s# literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..1649f3864a3970a2b3cd5aa73f1557dda67fb387 GIT binary patch literal 832 zcmV-G1Hb%z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;wn;=mRCwBSl3j?DRT#&A=bU$TX2+dfXJ^yh!QFJ# zv?$0Z`oLmKBnZ3_^-56uN-x!$z33`0Du{xjP!!z2o02f7AOs;QbSVnkMG|&(SNvFU zW}SCuoO$1K&ilTn3)^v4?YTM!p8xOp^M4-UoI?n~d|f`hZ#%??D}Hs!o$}np@hdY& z-a9cq3cyZWvvC9gAZe-bQ#*Ed=d)jB(y8Y&ZC-IvyLxA3U+1}ZH?7(@-*fcn&Q=ND z{NtO0ue8T5`oQg~_x0rwfds)lCz?;h&jrASBS18+YpT z7P{!j0N3tM4ve8xtFd=@h`<<5eRBQ*psy!CFgvHQks!aglQ&-~B9aKBLjd;g9|2(R z@DRs8{JA-|nL*mafAQ&lUVmW)&khz)!VxDiNs@4BXtUcgxoj6exmJ4+;s~M%xL&$@ zUWb7-I>hJ@YYmaL#BoHUq2mkxl%@dAeDUXk5Jl@6|2nbx>#kgO8-Pm^;yA)u%jnq6 z%X>ck{SBbRL$zRyW0!6ns#I&Ytqw6pW3*han)vK-;sp-Y4i^imSp2eEh^+_p zDv`sdR2O_+nRfoN%xExi_rUbA>AxTA;JM*}e7bw}FEW?iR_=FVeEAxB-~Ncn*IuUb zRz`SB7QNc_)bd{kcMNWL7~lbT-ijkawLg=%1~|cY*&i{X;al%}pbZ>ImCkkcJ$aJc z)pgXEUEn~)*-au+Nb4cBN07vv_J61o8R5vaygi)XzBm$`wvMx#Hv?)(qA1nQF z`?vqQgPzQQx2B^vJ3zbYa0$}s$VQ=UM6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;s7XXYRCwBilU+!YQ5eVn=Y8Mlwzlb}rVcl-ggGgh z^npQLL_`!yVAe$hhLP1p7uL-#yi=?o5KKZyf}n2d!h#%i(M>^m6>GyjbYkGlk2&|@ zKHm2|?|V)cwV{~xTs;TQ|HuD1&;Jn4IS3&r)VCKsmjL~CBAMR3x|Rxt=a%~W#==wB zp@hwc@YAj<4!ik@vDDx*mPpQBCh^SPTHCv8?F}dY3wYk!YSOuOCz(tO8<{NfvVv4b zfgljG*IhOY!18Ygw7cUe z1ym!jm)mgskQ0PyP!$E;o?o40>AspM*>9$ z=lVV@eHyD8FSGIs0Kgf8u4|x_;`3}QvKUvUr$)hF?+IZo^bA4}0Ql)GYYa{Qyp>3A zEK@~>swz+w1@S~$ee`B_cxn`@&21w%Ao;PJF#!O20742uYVt=twQQ8%{}O@u%t2#SO})8Ptv z0bq;R*>xDzEtMy>=YR^jAWIPP28bd9VZR;vx-|qJOXwV^L(TOT2q_6nlPWd?2`c(&#s0d6Txm!gtq|xeCJA|Tk=?H%x;)O w3uh3xqEStzIW11pxkY^mz&wEDW(U6p05XnB6LaUlIsgCw07*qoM6N<$f)`_8cmMzZ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d89420380b48e68b47f719f7cd36bdf1c9838c GIT binary patch literal 721 zcmV;?0xtcDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;M@d9MRCwBilTBz7K^(>3%ZM5apa=0*~$v$GLfIBD&G! zo=u#KD!!+(N7^lSiAld#7}=f(y}2+tFuWz;`Q!nw?OL}qO{dkGfku;|Qe&W$_%iA6 z41hrA1d*;oHN%LP*D5HMD=4f~5DbKoO2iQf$%6x_&`>*o*xDpwO1fNO;1+=r3E|kj zB#2|dWKD$R9&$Ld(py;8HwSn`XnQj$h>`>Vuq_MRvEeul2wb;Xx6v`da&hflObKzv zu_XX-90wNXux$(VI}YJtuFYaBx4=<1!Ju{X^lMeRKU2{U_Qc z*mLdZU7~m|aitDRX+ZV>Bk^HmOJmqdA^-@sZ`8FYC>KGQh=#;4tGz@PV>mm01cqV2 z@Av<=PF;VpULvP9ZHk}`2|~>SQI{d9J^=XVP&-cnfN7;0Ts6wHN?oDqfuMOIt^+pS z*v^v;-#I3y#lb+2FAc8{a2?QlS6@H)vhb~A2Y&_tsO=E#uU-wU00000NkvXXu0mjf DN{2q# literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5edbd1da7184451a0f9266aacd2554a6309e4e9a GIT binary patch literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwBil1oTbVI0NJ_n3#HGdkmBI^<;bu!0ss z(SsJ1i&oJhY83w}_I5W<5bnd<1 z{qFs~79tpqc2@th`EfYsPqfw`gkVYE`_G*Qyo*Jn)G(8u`ePrLS2dD^{d7$qtk3Ck9kTM(d>gaDxP&Lt24 zq&NeT9R>OF7JZ+WC#druTqu{c{}Qc4VG za$}PPF}fxI07gdtTqu_2r=_srIE$b{vE)2_leq;TR|!Ct9%*}bqMjuZcVmQ{>=Ii@ z7zT1>g4@NcHZ}wYt<3ECY+rV`VuD@W$!H+9^&Jg|PUV|5Nw>72@#uAo9oUQFks#p> z)%$C=wG6bLY3-<3BIlcW39H(vvIjF;-TwcEdAdLKF=7w)D>We`K2yqy|G@uBmV4!6RH7A^WW@04wY5IM|6#&G8 zN#0h|7)qjw)o2B(g)3cKnr=as%t>zwz&HS7IpFUAdAlgQ4e)El00000NkvXXu0mjf Dp=d`~ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6f2a7b82fdb6371b42f0983eb8b346852c8c0a GIT binary patch literal 768 zcmV+b1ONPqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;c1c7*RCwBal21sJVI0T5&!2by+@_n;+;GdxGJ_zY zD5DM~5d@y1PJxG@=xAL$c*;WroeY8~h@evv1r>DZl2JmJbV$Kg3Tj5%+`H-C?RlT~ zeVz^?_-E~V`@!$`;mh~?BU)%a&z149C+TTy(dHe+ z4yB(DUyDWp&wO6vsL#U_O@4N9e?0u*#!%0B)X_G;i;+MNApk9&)9aN=TVb_?T%m;QQVF48Gm`N(w1j=VJ<0IEP5|FJ#AA_Ep(G$3 zf=EjkXOAa9lmlDT5cYMDGkr^)*~Rkz0bUOCSYHy{FaQ9q<3K7GN+}R%y=J*+=wLCo z`Z*Q}OQl=`0F+X2q=f4_uq@$z`JS6^n8Bs7sTH$ad1VU$TL?%Y;7A)%O3Y+(+2w+m zYaAkg*}31hisiLGQq*AE8=yk5Y(IXVnE;U6xlgt}(xK5rD@!CEMhUq*B6>&&CUO;m z2gL<#cKW8Pnbn&Mj}~U?KGKoVRKy!S@R5cBSMo_s(p|mixNr~IQzuY7=OetmX`uOF z*Hrg#_h8)+Io~%UKpYAWizN5-#|C%TD5*z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;{YgYYRCwB?lS^n^RRD&+bI-Z+er6gnlb8h4HV>^u znwZjs;6_mB#zjFAaO0|rcH>4@E(Aev<61=p7uHP?L8_$?+!)JHp=JyP)7aRilg?x^ znVCEHdCql}EQ;X5fAz!v*!=v0|G@q4FTbUO=-t+Sx7^%oul>5Q``$;_?)`P7TTl7L z)$@!kE@A`Jzg&GIDXlMrU_nW$$%K4!e!6_?R5dqx6p%;c+e;^3TRmI3S{?cf#9T$9das0wmsdz(L@J8e1%!u41$%3pLfy0oT7?el>NhMefpk-L%9LLBP3OA2EH0fspFQ{SOm?j1 z`7zn&6ycL3v-jqBHkzQ+FHxW0XWKkNx(Sq%L^?^7ldB>(D!h-0sHU@%@J0s{{Rid#i}! dnE!)+1^}~(b}S0I7AF7z002ovPDHLkV1lw4r!xQm literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..79aece3460dcbe147cc31cd1721f7031866a8806 GIT binary patch literal 55808 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..3616f187179dff8ea71aa49b90ce86e145f22cea GIT binary patch literal 1345 zcmV-H1-|-;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=w@E}nRCwBylv{|ERTRg6dw<_KXD;VBqjS_59d$HO zp&YUD!5f-%MH37Hdk}g{1fz$1hzNs9MCd7lq=W(SsZ25hwTLb%sWg~onoih^GwO_& zX3os{F8kY;9?mzZGwRTS1)IIsTK~P)`mZINa|j_ADPMoMdTR5e;v3G{Rbd#_mxhAt zy*CDr96fz?_h*MXy6?7aZ7aIr^O;v~-V@B{K5}yRh7~iW7r&5#;!rst&hamSE&YSBh?FK!4sAWAOd8MXm%Ha;9%!uzXnS3MF-tptZ)NYKK9LVQ?tYKc4P81w;VH z_gosArT`Z@ufP9fb?*60)~^dndR~5{{m|cB$)TcnmNj*TX{xZNs)-+B-UX z-%V6(^>C>Y^6Nb%CTqgBGJM; z8R5tJN@>@%gMVxt_>KNCSH+ySX3VRqZ$3g@cACj5TrIS>^s)Altz;Hoe}wwq_~0vo8;vj4wa1M6)+f7*|s@W53Mir#aFcDIM3EZ*%O{&&;1c zA2lW9%i4pG6(Af=RP1tf6Q5{a_SjzXOnhJlwfUJFeOWipxCG%ug*sLsgvZ{(=d_$?)%#laf$r^q9+iP_>(&V?5k?@4L}(AGJVfka@i^;s zV2ngYJ~HtUiI>`?KGtJgL(@yZg!}iv_>Dq)2<;&fgH#?)`gj7YkqFNM0-+^Rc}V3W zl#d+tF%nPa8i69vHyS{jE|GXGQhDI{IO&jpvjUOvaMFRJ@>}g8V;>p&2$g1b=WXK)@ zuB5HM|DdHQRsjW|Ha+|4y-inhlBxp2RO9r0l>9pYc|4hMa3cXH00000NkvXXu0mjf DW@u{S literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..1af01adc08792cc3ec4086340d1526267be64391 GIT binary patch literal 1385 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b50a9daa5740c56ddb70ea1aa36adb2bf7b83768 GIT binary patch literal 1282 zcmV+d1^xPoP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=cu7P-RCwBymP>3^MHt6_Gw0k#Z|`kOZz-j;wkQ!2 zB?OHN5M#nZV@NQXXySsE8i|R#~Y?rz_IvSmd_Ys)*{yUmqKwW&}n zkB&{up6EGqeeajY`i59w6ZZoAws+gpT@SQ;BLywRQki0@OtDydPE5^Cp6ngnzUOG) zLBP%j2=DIrZr3xbT3YJA#ru4uHO5%1bvRdxbW-Lwu3NhA`puGlzUU7v8j#O7ePoTv z7fU6qbwrUuDTUSsV+_uFvgxpX<0H#9>|F`JVcb{lm zzpC?UCX-G}A+XM&wWb;=#-~aQjaOKJu|{LGs#y|;wKj&-K+al!<$7TdC@mQ9=I4Kn&&-yN8&fMuqcz4DY#iQgo+}rj?en{d-}!- ztHVD4wW!N(^^Sad*xL1l$k#pRl1e;#v6~Iqkd&Jy(vE>bimzrbQC*)UA;QQE7WRxB zIlpt}Pp0QB(}&;dT9a<-I6-5w(_Z&7%+1bgs$-g;UvNegp~*rAXR{f0vrKngFdX4$ZCkxAwmc7 zyg0`NG~}1R2sGb&4{X>bOn@)}LR+K?@G>M2;H*Rh4iE?28*fo)ue^38Q#J)PT^^emm_9f8lP@~ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ddb1dd69331d62266d693421ce4f7b2a18bd656e GIT binary patch literal 1267 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 FV1kHF1ET-{ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..7f04aaaf3fb4cc010bc5bc7463ce87a583ef7e82 GIT binary patch literal 21504 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 OK=j{Rq4Kv)#s3dU;s411 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..76459dc67af9152e9c910c8eb764d663cb3e004a GIT binary patch literal 1618 zcmV-Y2CeytP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>$Vo&&RCwB)mR)QdR~5&9_uiRZuf2}Fj@>4~j$1<7 z5SNIwfCMGP2xukRsznqCNJuCT^h-SO5EZFZJb*yrLr6qI0wge$Dr%ytRFsDbNXtXh zN})7tK@JH?lMsK@cCy)B@668JFCJ$7nYEMlN=GxAxpRK^ocW(~ukhX@grMCx{P?GP zw!E+Zp?s+BPE-A!`9@r?)*9od&RstA?cbdE3!vM5w`;85FWi^EHn+mLSPOXUS6{jF zron+jxttn`qL@b1B#L7iQB1ua`SVlNzdd{O>_dMo&z%PRYT%>$?&aZ!$6$;V&Skq5 zzVO4(esE|@-wXMCFl3CuI)`hScMd5LoBHyj_kCjcxsl=G4xoLC+Kj7!hrfW@d}H75 zym!4(91}Ma(p003!5E9R4r?7A7#t|1OYTwlmP12WK(HAcSCeQ#YGRdA@TltbBg#<@^@1%RSjUKR=ajt{PJ~llIXIv7HbX8 z8muu`yI^*y9{o~XPF`wMf%@_WaO|nm*H;$RTK)M_PuCtVrEqd-J$_m7J8Ls@4(BYV zC+ZWx>{{(?-NGL~IsHr{itE1=c7-i~<2bcP-Gu<)=n# zZ;WBNS<^~$E7itmPMp3pdHhu6rB+JcIS}Bfr^`Q@p1bm@HJTM>m%v7AE?WGHT^^;@m^4MFDV2KczyGK4lmEI{f987A*>-!{@mTjp zHMI4|^cTOHYou!b>{f2SA*C}X@ZOPX%YSDb2glDbJ5nIu9lX^%JNM*UKfibcNZ%1~ z$G5iL5pLZ4oG2BBTp`64G$UsQxu^GT;>vlVMvcUGa#Bq4>TsD{R~M=oBIcz}FU&mq zza!(1HO{Ud?IQ5~j}Pz8_YNOrL$22rQe3CT6*Q`;c_M#+y&w4`N-5rMOtJspU#G4N zDhiQtF1tn{&B^Ik#(!P@BA1w4_a6>^lR_>(bXW#my~|&E0coG-Q2h`|nh=Qw2hJRz z+TH4t3x7fYLeNyY(l)hIRMDQf}w|oZ7g}c?}MP7vKcK3WSx651wOR`Af_f zB9ab=Oag?H*&LV6#e?ut6bEj4uxHnWBh_;Jhjz-90DM4kp>7Y5k@V|wb=qfQ4C5qZ+Z~uS~Egv!{J4M$s9@TKzb11oj_=prOpY2 zmdG?frV6?6%>vX)g0ORYE3NhRz0^?`Mj?ztXoplDCq06U>5arI*HW2Sj9jEaD_Yfx zI5TfhKyJ+lQ+wsbQ1|Z^N(rGHQu?g%JMdQEgI2U;kF#tjM5?kVQ-#nO7~_0>dUgtE zt_hs{`|Cd#xFy}z*>}VJN_6ERKzadAX3+&6gkRiVg%ugl$PAVQkQyIX=jNwR{O9=0 zYcszE=B`!v1v=Q>v%TZa&Ko!E42p%#vLh(ToXVrTLLj{L4(F^h-uT37m-y7i$-J&L zFGVx)M0`Py1OEU{t#vAIck&iM2y_7XmZ_GaeM{;VFw0E0%&b0zuO9y&0McJ|>29a! Q*Z=?k07*qoM6N<$g0q(i?EnA( literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..139ec635691d96ff80aaa57fd20275b2b002cd44 GIT binary patch literal 1728 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 N002ovPDHLkV1kx6|D6B; literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b046745f0687f41cd2ae091bba653ae48da16f98 GIT binary patch literal 1581 zcmV+|2GaS7P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>qe(ax(PxkD1 zPv2vOoW4Iz&AS#GNxinv7(H`g{>V3faq3Ti;RZ$s0oe%n^3z|s_m;u_Bl)}@isOVv z+$2sC8gW9s9*6O%+FxHdasIJCSLV(FVY9$!y&sN$@6+!e+OhR`p%9ggF*xt>Z3XX9 z3K`g1*#DW24Zk>DYaTc~zBu;G-T}V}rmO)T{TzDx&0BvJf-lEOg0+q`H5hBL*5RDT zIZprv`-^)X_|VS7r^nxT7~qjdzq+!}m07s(MyA>v&zb>%wGMN4ed?inBzMMff{5Up z!x&4NrWlif7aA#%3TQ2iyt`-r-dlSf1bFtDr`ItR0RyY9R*gcWzSwNF#25o2c<-^+ zlBR~*Vw2JF1^RnSbQU$OR)emB*7uC`fBDhlZ*BwTuNBWn)&m-2KN`mgN+}Q_cuze} zIXBrrM|nQ+!CmzA;p-Glvls@fuMI_})j#g6`N zig}Iq9_Jjcov9%N2%wcvF6DAS36Se;kyXG`Co9$c9~nt*A1W7=(uh*ai4(jhc()Am z-V;K0-fG!R7XWqj#m`>Fv|6U(oWnVbcNS+Y&MnEU?8mUOFDEZIYCwH61wj4(joL!} zC1-7L)?%&2T9ZMS_mM6n7v_#0Hb5m&o|Q1~i z{TeXyj)0H<^j{N~rm8=(#ss_UGLy6IFtM(!%abS1RR7Wr>5T&ce*IkK`_pq* zUUAm2N^S*gjbZ*u-1_lLW4{Mp2K+k){-*MFBs{_clGW^9S^mzLIaG`rzzN?z$#d($ItHXS)DQ3Y#?HHQ+qSWmin`od#bt=%(SR z!XfUv=i_LtdAl*i!P8%(t}Qywp^|)djB_+6r~fwk^UCMB%;ZKu1u*z^iuuCOQ5AKS zS4|K|w+4>XkI+h6#M0otRRB@w zdk8O*Eug?D#3{ro#As9+F<)wuMuKYPkTgP!Labhy>#`TfNh#{Rb>INdwV^}ha>L62 zn=Pb_2NggdctMQMLgxiB3YA8vRHK%jS%Nx6l08_CAtj=aNQkx4P{(Q?O_tzoEm_UHN0q^z9R^MYKn$kQIIp!3iO1yCu7wMMER0 z&RnJ%F&P-^Lw$O73TSQ!oczbD-|fFG-PO7ErU$ij6(B+d0k1N5Q2+_c?Nyv)K&vuX zD}vO9q&BxWed<3aXZ}9(OJMGLm8M7s`+9bF+}nBcmOW9axLtKby(+H@=%5iKxZv^L zc^hnKIpbR)bxCW{EHp32Gs#49(ToEB1kSAYRld=ew*Wby11Pkm+Zi3&sqO%Kl}uaq fT1_~F!2bpS=B0X~@=}?n00000NkvXXu0mjf!_xs} literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png new file mode 100644 index 0000000000000000000000000000000000000000..e389c2a1bd24629b7531a91ecfb397179902264d GIT binary patch literal 1525 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>Ye_^wRCwB)mRoEbR~g5D-#N3hUV9y1Vz)`K}S7}y zAk>!)OKD)Bub2Bjyr1FzGI)oz77<}=S1-E;%Jf%C@v+}eR&Us0BS`6WNUcOz%!?7^}`<@PwyD*FDs=Hr4SLE za|Oh^Rhajl5Q_UOvu0aa`t#Q?S!Qa^Ih?b2XK~iz+=|@Vehh2-a{6kk0W>#qw`rC( zmYOd(YlE{EYc1BA0=gpS@GJ5j?;Yo+np431wzkE@ zy*~RoFt;t>6F+-n>dH+0$JUr&S6vozwiD(~sI4`eId^sX^x68~Iw8GrAi!^*sr_Jf z;o2+C8m^OD16yNQyq07?d13O8z{`N&Ht=_~cUn)sS^LhLv-Q-icWDeZ&oOyUy_tsZ z{%Km&1fx%;M^?pO%HlN-ld^PXc97nvWg zQ0|T1ZeLjV_S-+bauUdIs2(2p=H7csJ9j@X1C>!<$#E6K`1uhY?0DL>9W4 zlxbcWs}c9~pxY&6S%v)a+;jguIq_uc!kXJnfggBk>`=LX>=ZlVepkuy-3DJV=(geM z@=@-;_fu%Cd8akQk$-=krncy$gi7P$nv`fy&%QMA%i5z{WqQ*BJn{`Hae4HFih8a) z@q<7<7&zWMPL^jR(&Fg(qcnPx&PrLkiqJhU`mx);aL12;9h)9)1M$HlvEI4Q2Lm1? z2zWu9AWktca*;399%H$Zkac-f79n00V|+1|01}i`hi`eL@2<-y8@2Qg>ofN{hfx@M z7%x&xpuj1_Da0zoXjC4tSZ$L>g33xr9w9~{RfYZ8YxCW!g{LW2Bi19vqjbQlfKV`l zRRrxj*(R&bC6798b;og`V9`Llp~Ku=`*X<*9TKfYv`48>9Q+=F6GGH+OYyjfhDLH- zxXd+T3NY4(=Is0o(B2R@{g2naH+*}(uY2&OhqUyRAwmTKuL^fj012z*Rh$$+s|r{a zL2g6ZSXiDt^Pkgmug?7%SlH^MsnErtzWrVIb>F<>U{tN_R$bA6igg(sG=c;dJl;ER zgAJK8J`1@^vt_f?zM9OXQ|Vz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ?^hrcPRCwCFmTia~R~^QG=bV|jZ#(ziy}Q{>c9Y%g zMw&F#q{iB`iMH5UErhDYA{A^Ap~Wv!f*+)m(vS9of+7f3N}&NOh-eX7lF(w)ciJSh zc`Iu-$!0e%o4dPrU+&w?dGo`)o5m)HRdL{97-r`D=KuWXobw3pJ^#-`{5LPZ@!JQ# z8TVu!Ns@HSN~76csMU{tbf)^ulh1wl7T~V;j`~kPPd$Zv=EslxdgF$HpGTqEECm&T z9|#rOi-q9fZJSD^SC7oT4w(N5@ac!Xw|B6=^n`U*rims=QqnXfNm8^gT zZ=IYw^yx~2>kYW~HgZEfz4zs!U}xe`3$66TnT4fSet(S9zuS9TC6kd)HkwU=htwF7 zG$lj((ANb%_pPD3$9ntz zB8BK_X^j#BDFhNks8mqNWqvSqY{Cro_fYJ~0?HK7?Kw}Jx%gy#L z|8!~}aOBhTTmo3<)+E+)c5()trWm~{jWHT$Y{yz_F~)FqY8E^ko2k)mC+M`Zw53U# znfV4!96n<&-&O7@eYq5V8rZ4Onqo7B>B)0`u684pVpeo~qxg-55JKmWJxaGi<2Z7qA8_qS@T z(N6f$4Sk|xXU9fs3|4Ej*1Y-lDQb�M2eLP#M30Z-0F+8*jdcWVFPe`wt*9A;Kz@ z%vW-8?*q}GpIAD!^bz0{z)b^Wt>fOsgz57W!R&^ixGyeBxoV-&8m&{_e1Cx>$1meU zjRQ_^?`L{+mM?`nu(9Ux3s2GtG*T;M8X$Fmve_t`Eq<-lxO_0Vs4uQ=z~Za%$n6jG z-SYI7-htg0qN;Rv%rH>S5-M0~q#Qf7LVSE9o3n!)%Ae=uTc=5PMfi$EIfsiJ4uNci zsAhz0M5smv)re5_h^5KN7bf-{|6u^|i#7Lc8mUzF_2u*9nLsh_*Ya^=foNTh`Q-#B z1l#JvtS=9tt>fO-7~^mB^6bzgD>;FSEIw68E0KvpqzY*i!pM%CB$F@i0tVzyxTmnT zSbi~%GUK9~IkGAsI9FzPT_3k?A7OKOh|%RCln_@k$!HSu@CzFWPs?sK5vmy?TOl$D z5lMj53SksNE2Iy5fRfy_zV}CkD7w+F{*{3D&_7q9w&Ka->yyenbk7wC+leoQFsRLUHe#_;<{SB z{$!=O)LQha1!HOql9R zzzM*9*5s{#ED!^QZZuepAg&u~bysbm**)9Ol4<`j02MekoqKKa^Z)<=07*qoM6N<$ Ef)!=4#Q*>R literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c827026b6e070a5a8bfb9f3d6d8e4a9728fbcb6f GIT binary patch literal 5632 zcmeI0c{o*D8^G6b4l;EdbCfAVLS#(WP=x5>ibz6oCAwxphSQ+9A(=0VO42|l^B9$x zN~VM|N2YR$<2X3`Tf1BL>*;%Xp6-3Vf4=YO-RF1Kdf&Cy-s^qewbwrTJZmEiUCkF9 z249IbzydnL0+_zAV_+TSqi_Pi04u0YM-b#sBLJ}aL;i;%unOmj<_`r2lgJ1`bIuG| z17U%nZ9nAyGXi^oCp`RsD9{HUu=D{zFyr4Zd~n5lj?7kV%n`^{iVfzF2 zKRa#xM&Iu>;{XE&y*|1Zq2>3EllydiJ>Uqvb_Bn{D7bv@;4k`d!d(!(?q~U;>6=y5 zXRmLz{{4o}*G9{~I~vUy8ap&6-@5-_LpDH!AtDe_h!{j1vJoNyk%UM=q#>IiGLX#>S%@4&9aF>dY(xT|Y6>gGS>-P=AVp?uiqGz%*qzrZ>{ zNh#?~GMiOY)zr6XY}ebRZ(z9F$k@VipOy7~n*&b2Iv;U4>gwj}=YKpPFzCdY@U!P4 zB7Z+0pOBc8obpF%+O@3f**9`--nv~-SX5k6T2@~1sJ5=Yp|PpCrK7W}`+3ic-oD|H z(XrR#6K^J`$nQVQFHjb#OElCk48Z>B)?c1|p0?+}gBILGM`FSmh;*?s2-zY<%IVg7_%-8UoslA`pQ6Xt7VA;OHO1GKUYk)Zy3n1xme)d}cpzQlLMj_pDZP-?6k3 zhYZJ|seScDDVYfPZQJuKtAqD)NUaEn+Zs{tuCA9ki>Njc|FX<@k-Kj@Jjnq|+$t*#ihD7yi=&5kT`lm!=aV)E zHuv0^Y%WQzDD1u?=#!!;n)N22Gz`=AOtrfqM{p|Qtv){uuCY`8q;hS-bWgPe)%@zz z_9%&zjsr@MC)-om#B`{$A+EQk<5I=KTTYKp?eugPQnZlEdvq$(H#0l5c*u-HglR>q zQ^jY*u&AhSW;?&ekyRs7uoxviJ2IW>PVLPQc51pLUMe+cKs)m|>oMtMd8UjuO}$Il zSvpm}HZi~Y-om-Is48v*ILg$_pBpdMY-#8g3W(O^{cNf5BCXzzSPhAwr*I|urChI( zGRhL6=2clKM^8ONz$9;W*zpka_Q9c=S+Nm!ThpG|6+Ks?vTAqUJ+W(68e8)z8NVSHb>%vioC#x77>n6f|URo~r`;MvmT`=+@)=Z+orIq@vU z#q@r9lvTm&ZinZ6_j?9novD{|sR4DuqEWxh(Ifr#$okbOHp|2<3g`MhqaCh3vwD$u z^s=Evb;5(Rh1!9QJ7#lUHud_6aydztH5!j`Qv|88eo+%IT?xvV%EcM4;GWwn_|+H} zs>6s5)mZh3n`~?A{$JnAyK{zHiAEQ4Cp5a%vYn|nKWm(nk*8x)DUTnoN@q+r+^|sP z6p-+IHuSk&h45m{Kn#7s7R`B!M_6-{&4AX?4_Z^DsfIA`7YoOOpPPJeX|QJ#Ss^TIxwmt^RO9j$Gfb@*{kJ$z|C;nbz8;xPIr>p(sxxu;&K1($qcU!R=mSa!bV-Z*3ds>>~4U1Et3uv>b4@G-$gJvJL?bAJCOw?>{uS zY%lUDL_d$Z!HKiiNGVO0P&*q$D4ZW1zwN1X+o43$eFOo^YxLokXVtYzU)Z)t?{`>% z{X0@S4b-#obB*uyW0hi+?s#So9#mHwlM6}=O0p&17kX3XlN{2b*^*Z?kP;T$?(M^; z2{lp`t-U%b_G13{zGDHeMr)X2X<_gQxBIS4K<0sS^@XE@ObFa+(861 z4fet9B{L2I4^oyAJXJhY@f4RR;v2JSXsOhp>ll8ec9Co5@fHYRY+H$#JxXkALcq|T zmF7}G^|Xj(<@%a==|SR<9gLDl)>rCO;2@3p76MLB(0Bghk-C&3ory8xoFx6%{upJG z->3+9IJmG37tTuyokC4p1n7n?(iwXZK&I6U6WOWf-!*KPoTWslB^=AyBVXI<>y3T) z3Kz#{zWzeMksU$6(e~1i@Jl8(L2{zdRh7h{ey?~V8L57ETPMMVo10bT_bR*!wRRaN zBE6q~V1HS1!hed;U*3nl0M#F;8)c#I`oUl)PytHtC1Mv)2f9EFzQO4O4Or8FH5F)8 jgst*WSBE{(Rwb|v9;m(*T6TTZbzvz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Q*m`OxIRCwCdnpv!6*O}LU-&%X`GoL%(TZ5}?r^@9i zP8=K3nbZ){4XB}oAT%HZ3Thf89%zZ?q5A=N-~kDV2Oi)F2?YrO5)vq#w1K80brLIs zlh|=Q#CEw{W!H3lhjY)ohqc!C@o=u4L@GlB0f{XwZE5SAv)4EMzyJSRN6d`>pD+0b zpB((ugR)6{{L&6}h=e5UFJ=sjj5m*u`OwA=&Kph~WmKXG@6MNe_mu@-ec`vc`oo*= z|4yMTj+Z9{t+=xGN6x%?_l-Z56~(U(dfDev(Dh|mQ8$663C(D_e6HiuAO7CAZvDsq z{LR~MADmPZ=Y*fdwb{?Z3wsyf^H=^UfAV)8WpT2k&^FJ?>->vf`MbO|zD82r4=W;Rf1IDj)vXm8}nd@*`V+QIPzL|K-}3fr*Iw ze`i2vqsw$WVV+7px$y}upWXT8-Qn)%gR5v_1cR6aHA4Xs7=|jum{3!kxpPlnTL1O& zr!LIC_R{{BPG;ffXn@fLT0j?QR$E{UXm=y$OaJg${>E>8fm=6j^29@zfAxXA&3{4` zc4y5ALt45bK0F2q}@Gl0qOx z#ZbI}LqQ-#B_t)n6Wi;>XMktAoecTkHK0l9^0;dL%oBUNA02c$PnxFni0yf&vjFw3 zb>3)scW^jfe!DHa*e=>%?`(E2^?R*f5F%9*snnwyQF9~>ID;ZHQViTaoG=>KL=*aj zAfgO9kg8tSW(4OjGfWLHhWCzcyA3Y;W24!8KH8)O{%(H^3)#APno#o*R+w@wV<2wgjeeG=y?i_J+0{QTSTQ~1e z&L3uTZ;x!POL#Y6$tZ~!iX{VK3=u(`peCmd`(Q$pRY}=sff{rzd#X%I9TKR3 zUp-edP^C6U(`uueZQ5%+w$ASGkw-7^$i*S+?Tj0@x5>L5eESAP`xbS8H?O|Ui$C}g zTm77~YMhK0WSM~KicUzx0`D84X5<1QFqzdHjjN-&iQ^A6pp5FC*y`!+S+&vaw$5uv zR8>VN174sE$~Y;r0J1%#JzV4d$IfzQd%))IkYTTd6Jt>}v|66WAG?pWev2Qyn)Ab# zuCtiK2t;+YkdN4Dbci@!$gX-}5t@+I++GJkF z58y&6nKuwMKV8;Y2iQBa#ib{&Aa%(`zfG^xVx!xp$P7YazF1HyG)+QvMTaG^LX(g% zRn~`nHrM;)1uW(j%VkYdH)JUxCInkW%uWqbGYkb$I+;?Ec>db)8{dCx{2k!dqE7cV zKvs+#hx1W!-i%hP*~^tY%jg%zVlihlpRK|zf;)XFrtd@G%A2b;XJ$;M3!BVKNJ!>A zDJ4=!I9maPsG@4`qfatJRB-}#M>Af%F**6(8>8<4S5JH7JuerXBRQ8v=Z6?=O%aU| zMaVLt$Q&Xd4iG`aP)nE^L09O6>gh%jA}iF=5Q!n8K<-Rx+I}VWUOn z1+#=Ehq#1l`f;(rX)19_-V85-2`rW+lj$6vK~=-isAM^xajxrV@Mz&d!TE%RhFvdQ zzq#bA*G~BT>D0+b)^eJI#UsD@7~}6v2;+z)R`1qT-@qW#6j7xR(+!u=TU3GZ=oV+r zuJh2jA>wml6Ue;70+<-s$|$kb&?9JCMItC(gp?X?-9F^tE(|j`>^D3+I>C+ar?G=lT=v-3QNa{>sItwzkGE9RH_{$GR^8vk%}xE7~iH zcOno2%SB>*Jl2EJQr5Q{vzVO8YF1;XytjGUvIWQ9QcNgZJf|!+Gm7Zf)%|bgviX-7 zq~%YeQ5KV-o}MIje8yUe0c&77I(Byt?r{FTp|rahg0P$ia0Vjp<2WhNM5Etw47)kw z@szu_-{tstN&)0R%3$1HazjhX{zdNJeVXmQa5x`vE}i2>bHcao{w^=(FR*uRi>E{Qw108%P@RP`{kz`zwZr}Y`tFLP0shIefYDKS%;2M@bkxBzHucFUrXp{< z&5gF?KBI1$6<}(5f29-=R^G3w$cwMvde>N|OKXy&bt29bnv9|t40^l0Khe9??Hqn{|M})H zEZ(nyoh|?)5pEi697mXXxOKqm+&r*ieSQ1l1MTzcLyx44Dn#n|UiUQGnP+1loGfZy zKb-RQYqz+5Fe55FBG8+{+8i`xyxFv??$FCcUjXe16oWs61O*%>mOcc z`S2E_2j+y%l5#nvSi(!y5BcKBzv4?rU!l~Jb9Mn2fW{%oA<-kjK{R~qkZCW^x;&xT z{I%H|%WFjN7axT0z6N(EOm9y4_W5-7tq0@f{FjHn@W-FpdGNwncGt)AN)B~G*;~*o zl>#Hg04m%b&3XCmF;`!T*zGl*UOd7h>lfHeXL)(YbM=9Ocb;yswl`of9O6aTPX~M_ zev5A`zsc>iPs{fiGQ>4GB*8}y>aoV-)nO{QkRd_vhEI!nTHPt%jLUeE{o0Fvg}?5U zk6qm63pc*ZA1yxe)Wi9iN1q(rzgu*S>AQh?KXGR`p}DwZ*ALMS_?`_qh$pa3{}CB z;G!TRn64s#85$g|wT)qaXZOz*-J`FURClwJ;+QHXX7lOxKfChTe>`Zl|4vbO4&6Q} z8N+su`v*hBZ?aI>*y!UWXBjJ+UdeWBu_b5N9iC-*l8kP zs}6Yk@sdHi#o5+H?#nL#j+6{*loSm~9+w0O4pE0hfdo!H#FYr5aaeGDRW^WrCgM3~ z{o$3~`rqH{4u8W=)sPa&OlTDzPeyZ`W7C|$`5t@cy7Y>QYAZ)>704UwbVqBncRVRe z6fq+?q3sH~dBM{+Hqmb+s_c-vAFpYPqnkWpkz|fc9Tq`?Ulp%;TyUTu(PO8=hX}r% zlV_bBk$e~EW}!)IVUYe>)zROXTeG4A!SLSWosn`SWk$Z=BfA6cp)O~x^w=4!Gi#O{ zKA&*2Ax1`-DuNiQMs1PQHl*vg|K@<<^95x}Jkx&{wlbt&KyBn0a+)?0vXueBVnQ3q?=Li zXH4FNSc2~vA`VP31E+$Rtp>F{!3`X{2OZA8TF^T7G#;ceEC^ORTqCPoj}C%^##Sj5 zfFO`EytMJI0B=qN0VLZQc7M&2|0VAnDJeL`;VBRjP)S0Pu`7M1Gh=jX!u5j%55_L( zdK-P&lUfcPMp6?|m6cd$r5%zQb$f;9kKPz?RBZA5pyb9w#=y66ILs?fJmOB_Q&*iI zE%3R+Cvde#tA^tn?{M_SwQns)i&ueJ7Ark(SzHU=Be|W56(gDA%@blG6X*>*m1V@c z*wKrLVP1BMgIBM8|M>O0&xEPI3`{fUM~crfkxWUNNUX*p$ySW@GzQzA8FH3tnE`; zCL>8ClA5GSAf+Ea265?s(IQ2e8JdNf`Hybj@NETCdb@WO&zVV&I z-ZZ*iwqzbNutpoL%}i6Hjn<*mIxOmGItX*-RJ;w0fTN!l_2SxyTd`qNlC7{eJFNjH zs}&N630_3J&sh;{krWe2Prs+D2)wu9WQrIhOQd9UyB&J7!ZS)&xouw@$;k}i2(>jJ zikT{6rq&1~62YLRLm;ERmom;=a$n7HAM!<(6|%}V5d(8Ld2bdiq#$G&I4AhNliWZN zVv1l6WW}@1ZD)>O=f?Na-6GD@3qW-kPmuqcK8=Y2}U>s3I&wVi^;4Y>3GSDG`&>q(n-POi8C> zLNQOvIWqIyEyui39ldevsyRS?yT*6j|Ix{)pT_E~*Xwt$O=H#7q=lFpnyL5Z$i&eS zPi{GF%W09*!qdi+Cr_acAtN`x8hq$#mKvfFVq)6VEJDS#a#X&!xOMxPlOKKWJLUC% zbEJ!J0LK7v63K_zs?+}XH1t&At#0_!^H9CVeKC_m0e{ta3+k-4W zSGc^@$y%G4;0tj+6Yoq`T1b^BqC_mHCF(>}(-+ZEr3IgrZ&t*SxDCmA7pn4kg^b_~@R(<-cmeXwbd0+oy0QX9H$R}H+ QzW@LL07*qoM6N<$f)ttjA^-pY literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..56e3ebd786ae4b93de41bf3dc964efb217aced50 GIT binary patch literal 5632 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 F_%A9qx#Iu; literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png b/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png new file mode 100644 index 0000000000000000000000000000000000000000..9299fe2622be39291f905cedf048c4318da99558 GIT binary patch literal 3363 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png b/Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png new file mode 100644 index 0000000000000000000000000000000000000000..b12113796ebdb8a55f86fdc76043f8b409151c56 GIT binary patch literal 3515 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 KMNUMnLSTY^94nCk literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png new file mode 100644 index 0000000000000000000000000000000000000000..af28329ecc21e96d0d1ed4e2f92a938480889f7a GIT binary patch literal 777 zcmV+k1NQuhP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;e@R3^RCwCdmQP3&aTLctv#SRsP_cucL7Rvz9?F(l z_7qrG#2jlyEhe+uH!U z$=(lOrF@Le*Y}V!3K2o~>re-50Ck}Ib(B&pS1r^2wuM+iw~0Ff(g_BLm%dCwM5z6B zoF8>RS#SH!x0*Goz8=9e%?$BGhnc<5{?0+#oA<@fx&7iPy%lwiC;iiN?Xk8uAnkp+ zO3hSdEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Ur9tkRCwCdRxwV)KoFcm`AjP00`UPPBubhHI#-B} zf-lfhhAOUtXec7V1L%MPsM6*EM2h10lw59aDH03c`D_Qm6-<-WDcafDv2QGx86mNQ zz-R%$?c-|@87D`30?ds5!wdfwnur%lvz#kVvpG+ulE;&bqr-D%=9K~$;zr=O-S$qE zDur~hz)UI33ian{1|kD8jQ-%sUXc&?!{LwCkvG?5${x7jvu{g8EGnDIu39xNG^b4n zEV7>M|8zNp)DlulZ*wv=1a;GHiqX}$UO_(b$6bWo&ReN2!aWzUfYuEwik~9@z(qw} zgzub)>j`@M>#0YPx3&~G=Sf#Io4l<8ZOlJc&`7YYf~6)uL7of2JXo%u-(Vi(ulTkK z+<RZod5gpeeQRkvywM6d-m+vd(F&x*UZ{^KgPJ4_l6S* z{6U}qDS#(X0jK|=oCM4h@ry73z$q|8JjN3UgkK8*0L=a^|3*D<0zNC{Z(~RXrsN=q zV@?5r3IuU%slk-yxBM9}r2|0^0-OQ>BM2rC%ph1mu!3L%aTWye+P~%h?H(`&?t-6t zzZmHJC}`=2Wl^(Qt(wA(+c zKhZ`X{iZ+hS|X1V$K;RpPviw62mEgTv|#?9*+0?NiT1Aq;&=OJ2lE^tI6-iMI0u3o z1P=&a5a&T$0C5on9|(RB0w6Ad5ClPNQy5G|K!}1610fDV0t5uaWe~*qL+nFo5HcWS zLCArS2cZB$5d^UvWiVCwEl=#Hzvb5+AdV?<4m<=0pD;^U1sHTSbuJF$ zLt|5OXIFPmZ(skw;P}Mk)bz~k+&mJsw*GNr^V8=qnBBeo?+1t2qaQ@QNC47b)%s7( z{-75lsMjenGEy=MqFyAY0zi;5l96AKJk6wTL}BO6d{OEFCCk;Myf^Qt_@s@|tap4q zP_yyNAO$c))qc_J&nXu1U()P975g80%>%TgB;eqYG6HJAag{L^8JyqaFk_@rwBaJo zTCtxiduH;rhEhktQjCPTLx%{BZ@8D+_m!T|JM%vXfMLS2@>}y>W^eBzt9P#Ai{9aM zH$+P^Hu(Sv15N298$0pO30+-3V9`B=MKvV?%~pNTjJsYbG8q9z{k#2`8ljs{A4G(n zdXd~TfKgM==$WUBAREn0^(T3ixuP4f89HgCRBgp&A#iq^A?9QQ*)$kSCMAU%<&!#K zkDW-}QUsb3bgbVcwN#a;(O% zZr8E}NLxP2%am`A8+E$Hwqckl_cXcC_s}=IBe~5Fn}Sg~HbB3fiVJ)^JR`B~`OTbC z#u|RR9#SlJFcB2@;ANKYYmxX_kub-3+UU?rh6I2*Fu)|svPHR|t~yv#-){#o^8L0n z#6!RSDAWH_U3Dne&dSip2?a*9WByxV`GBh{ddzmpLws(WYf0XG+~b17-ewXRT$F=_ zJeQ37=ciDUI!lzzCtKznS!>u$oEk=F%H!g$_;-#v`ZFVb=K}d$o~O2-f3Y`ea6eP1 zg6Aylrbt5ahUfOORof5g@f_Q$K0a_5emhYJ1NqvsmTlZ+oV?J%Bb;T?n1Jr{Erlz| zL~k@c9@fWa^89Y??y z^dnwi>91a&=v#<>5cnt8{bOCCk0T}472JaT&YvNF^XK3E`Oh4~{~`X|>)~aq!b#mN z$~>DqK5x#X11}0fvB)!b@f^qt`ShON^pv_Xs?DO-BYsC!ckD*s#m5${QHFPm49^r; z_*|k|ybyX_?TT+7yW%JK7*t^Xi$7lc_0+wsEJLZ$&)=9vckz@L)7IKsZ;w_q|Hb`&}G zx+GKG_QI24OrYC@vA%}x(2|aIvj_aB@_V!1rhwS!TW3Qmoxu@X$Krd-i4$SRNyYqAACDAX%*w=K^KvfF<(kHx-lKjDR zjblKb%Ny4KMr%tq3rV3k=Hfo`8e{?8L_eFX_ea6SYoq>ow$@#ik2apUrHS5Z99*ic zwKbF*_G*mxjSMW&rTgKl(feh{G}Fpv^V9Sjv@P=RQJwM=Ju|dmOr5GGvSB13D1Tu{ ztTNs)`)RTlg^3Lfh6X7ZTbr$AT!$8n_^wKCkm;Y%kAD8a!+oPON^4|bk8x0Fk&)Gh zVp%03Zgu#w%$|tulOU++PX19)u5(Pc9+kY3tL<>syY@Feg`<%O)U8&CkFoZSte!fu zpsBg#+0)&E4Bw&iq2r#5o&02MlyA=DQ43X~pIKS5D+T%uX0`1gK6A`es@!NQYpMB* zq)Fti--Nhs{#OLtfBfbBj}Ul6M~EYVt2N^RL|hcmH+kZ~yhT|N6h|zc68ffzjz|qPnf^m)ISGWKI}Hm}-;wv#xQ~ z@rSRKu*`wyU&;uCNLTiUQapTv+YucO6MzX+#fXKB2+PW*_xEjRbFn!rxCZ8m_MgY) zKb2ZN7h%>kcJ>;ITSASt4+)`IaGTff92NJhycg_oRk{AGFXhPo_{W##(c*`I{k(JP zdeB9-qZgj8D$q-n?8O2!9z&t-2M59McIo4>a#qT@VpOz)` zwzL=C{YdVZxvAxKsN@oD|DZ@C^NRV#wbb~Q2esek5(Tp6Z?5xt1lf;R+`|M^mv`Awyn> zU~-&a$wU=fnTFhtIoqAOF{f1F@rrUEVc8Gm#p5H;CoTesUrowpt<_n=#LyG9io2VQ zXs>i6^iJ1dyW5$khGh2a?5E;{US&$(;~UW7Z%rlu7e!2>t&+*l242z1_SD#2ay6p6xYFs z&s8w;BM!zf6~UY$n3DlZFN0^r!DD%_Ch@Ek7!^|Zk9mIRZY7ddgnMalE50F9| zIX+3whNgKz@30@N;Y9b8+UJj6iPUsXt;h4PIR?AT!_2D?)6;r$Pi{bYB;%3(ckBKu-?3HSPg_>`jB{*Iq@{3e)}|zOI>XB$4=slNhvr7@7A3@El^r}MGuW|v+k*HrGGlnX{68F5U4xra zxHv6=Di^}9Q*dQLAMzs2z6K`Z!}Rl}L9AAQFG{L`2 zrKa*Zr39}y`pR4I4Pl>A@^dUG-zNb5atnolz4^lR`a%2KT-wbI@4w0%XSLVr_;^aH zHfzHobXiFDB#~E)a=dK@D&*+9^WyP13<2=ka@%XPAD20y=@JPM^V_yCOZahh#WS5r zCBFWB2^W9WAVB(5)fdL$>s9z9R}He`SoS?>ZR6l$O#PvGJHH)Hfit7KMQ`XWpC)>> zw&v;eJ$>zII8oPOn& z6>D)+tzPI|?bo3OFsX0KADbL+J~NHKVc8NCTgyN)W~1S^QbWm@`Lk#9ihNvBr?R_V z*mJ`}aq1j?A-sWlv<=9{8WrV}+D&1=4-UX?qXWOq=PV~Qd za>!KfY%lzIBIjjmfa#>Hhq6t^b;RkQOoJnzJn3{>zCD~7JHOq6^?u^_>taS zzI|Ca=vk`+(m0LR1=VEnv0?ag9||VYHlhrDSP~d%2xV>73$;2#9;5_*;oxhZlE`x+ zdrEocJih~P|BNWcX06+n%0o<|Dnt$0lBJjKr{g|<)b0K=_bV$ipkBvl)W4z75$BKI ziBnO#@R^mE&l!`Y&$< zrsL;PUtKvzld1>aN$L5D=q3w!MZFZUOS}mSR2=bX9a+8^pZRgm`GJau-*(VMBE%-^ z1#bfW5;jYHVnd$i+=L9K#AVlZ*6rpszlgA2LG$lZxgm;Wj!X7b#=#o+{sA+AW1d^?zAh`W&02Siy6p@@hvv{{GY@wT6Vj?m&oa4 zt|jS9ee-m2{r38%;J)bP?P7UuIW)~D^-?(r8rFla_V{O#LayYRzQ;+fx{8HOIF@u~mSt!_ z9cUVT5`(cG4V6?pFPj^K}9GYoK#ZaldNV&S9qW*A@c9Pe+p5paGQTHQ`<74 zBT-qAX&F+Oqd!=&;_UZS#a+RqgP*67TQQV+w#@R23={%~oCxPEd+Urcz>h4}AM;Wd zPx(RE18wxqXmkpE#5GSkt@GKGF9^=fbzPQ1X{3dd)F)G5jUYu(Z`m zTa9V_s9CG}+o)U*bEx0U0y}-WDU)EzMo>_S*O0xqVPZRV?Qvq=+!oKp35g5+x5Oa@ z@vj2a{3leYxPvE(Px4e4{n8TqmgScX{GT{^W1YX&t%yB7Yi4qg6p-lDni$^gI3-EP zl>IIDi08ra^}sxtTt?V}HLOoC;m(Y>L~T^ulBa|*iA#h+D!DtU7e|zHvbFy>JM-RH zc-`>|Q^+-RG`=txnja+iLU`}5-S-|FH>toOGabB~STkF$ zXVHZA`1S2lz2E@3an`Vbz0z*WqX!ft+#O>kn0Ay!)VDf$a1Ipraqe_gvFO)qD_O*R z%$DzZT{gh~ruWNn_)QDN&Z)>zc4s+B;*(JW<#0^$bf5#XX8mQhnur+@-)v18GojIX*jsSFfkg6-$6tuBm z5h$1~EOX*3n{QoC>08!(2B2Kb;kKr3^#0A$3RSQ0EVE0lHcVIn`%t*-lkK|fR_Xc0 z3py8)?vclrpP^7F^7#rO6Fu1_TiHjXKtXUylP)REvr~^X~$&>X6q&}y(kMc&W!jN zEPC&b>+lLX7n^4q-e(?379W3-Fx?D#rXp)Yev`n5+Ht0Ls<`@pE+>tkl=AZZsVHX_ z`xs?J0E~hWCwz6~7MZ8?R>v4^KZo&7$Re0TzZg1lZ@0P&Hr^`QO`1(xeQh*Er<_o? zugI#P`%2EYElr>Xz6~AT9Og$-dx##FZihWu<`EyKzzsLcpWqGgin<}z1&oPUoqKnW zak)63HVC%-SSN6A^{4v^n3YZh#iwz%2;1uF-V~~MYn4tiW9VW~>|tV!njLzv26JJeb_cOX{_b4Z*Q*|}a!qns1IA zgchI7js1*zV~c{8a2O_`t~3txJ(@|xMgFv(ugj7b2A}g7S(qFzlA3T^3PyB53wB=_ zAP}b!Td@QHRZ1J6$lD(7JI^^U+ z2E&8GQEhgPWA2f_uq2FqkFnd2;3506&jUP#j+jxuD0)8r zHtt*0<k5?kCKDNiG=#*4- zgL|lQiR_ZM1-?3{{$WX>d$1ZHAmiwf0Lf2DqtdX7-0GA4E~dbpwTZ-oR=YchgZrDs z?>%0Q`&lPJVs4~2=+nZ_>~G&2>-qgZrQA&Gh;NlMJZ{9C=w@u2oPx>xu%=1H}ERk_xo zzGaS@CM+LnNqqwy_`)S)r+UY@QC~}x6afPxg+(0uBRXyr_+$sb6IzFXrZ9g{ZC~K_bxx8F#4e9nctNWo@)G%8RHgMJWP<#c}l0z%JwuQ3S%xtwfQBG|&#S5ZyABJ$0+F*BXHB9-5 z9+$&MM7B&CpANoUrWb1?y9B&BIE#i5b|pB{2Fq&MNv;-Zc<$an2!<(`ptEoN^Q_q>0Ub9QTA zSo1}ClEvYqmD||cL#?#MC7gbS!KBP*zbcX;yOL4QoeQ=M4Le0*>}@-*KL(j8kkN_Y za+$;Av_SHNL}Z;T!3^=U7S`Z@P3Xa(z`kw>$oSE%1OS(%g%eT(V-6pLF=}|WJp!=n zai8V$`eZipd-R0%%pB}h_QLVpn%R(~U$RN%R6DB2Gx-xPV}EYF`Je`4VT47LW91gi z(a||iN-TexWsiB~Fq^_xzU$t=+t#;3*UAXn>C$`j4dEiLX<2Z~9?CR{{?rk9yrkS% zxq`hJ#!CQRnxGIk@l7yZGCzmT?b1V>a+ANG9*J(TuAAJf&M-XIUy1G6m@N<*J~eW0 z)iFPQ9SAcT@f+`PoD~z-Ww)FT`A}_;Z2`ZOY?1J2KEc{XA@Q#9OOKY8QAp*!MfHk9 z!2NFzD;E=K;7Vuea}mKsSJtiEERwCX1hY6VoS-y>*|`!I6+6y3^NkwDw7Y1sdtB?( zXm6F}P=g#%%;e7n=Jxofn;&d;a7G>(m3eZeJsUkOjcQPA^r6!In{!J*Q&WWgJ7oIh#~)jm=2CgCu$ylxPz;Wg zSA_n=ts*XbTz7Hh+a^o0+jf(NMAYresc54rV*}wq$hO8(?Xet!FlSHsQvQy$RAfIX z_2MS*EK}yAn7}z!#X8P6DQ}fx`7>KQjr8);I0iIpw+5AZ3U@TNoag?9_vrtwZv_4W DM^Wc} literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png new file mode 100644 index 0000000000000000000000000000000000000000..6d04f299bb9a13d2225776909885283a4336573c GIT binary patch literal 3453 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 Hu0mjfY8W9W literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7259ccbef18d789f14487057c836e9cf75c571 GIT binary patch literal 887 zcmV--1Bm>IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;?MXyIRCwC#mQ6@hQ5c4wJL4jMD$R{BEt-Cak_a18 zY$-vcLPMlcflvx9TGlFm3V+(PtXTw_P>^V0noPDDs70Z2nKVR{>INxJi&D^NymP;E zTa2SKspBN#BKqKR&*9v2p6|Qwd(OR@ZQE>RIN0L&58U)f1L*J%*;@((xKMU{Lkn19 zBciZGA&Zx#;@YARu@R*>f3;y52yl6zAZ3u)Hl_%sWkv6QUP>*E_ZLoJe4R?HFc$4a z!341Ddl`+Vo7My?rBF&CB9wQRU}k;6REiOAh`pUTm?BuBlAETzD7YrK`>SzG5Ig2pQ6A$_o9fm;`E8^2~JNHq>lAe}Q zf4L9calnJ%dFY8&`_KbN1mT`oO7NKMno$QAZXkU9N!3;GfaNO+}5U20^%prIccPd6bV%!fufHc^jFDeMP+0)hI3 z`4b@>bBC}{W1&6JqCk}d7=y(!{E+dCvOp)M2+c!KTwM!!ZU`9wgpHQ~%o@`Gobo$p ztvv~WGVBAT06d=_Cq2it5*XVKYn>h+hmK$vW4QCGF^n4kgpAomV}+L138!yMNW$NC zj&rx(tpvV$^FFC}rt)q=;0`TyzE#JkXTsd~T_Gx6R??Is&xTmc*LgnwH+mwm|sl zs-{ULQq?gofi6JXD6q1n&UX=f-ZjR1s;f_UgU0L%4S}eJnwHudecSA=C@wzK^%wd9 z^Z>Wp0^#9}RM^Ggv+L^D76@zWe(^U`zm$G4HcLO?cCrPufBw(=_W%q^%4FTviC6#t N002ovPDHLkV1m+ji0S|U literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png new file mode 100644 index 0000000000000000000000000000000000000000..36a49f11c768c157591d22d339c661ae9797e6e3 GIT binary patch literal 505 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Z%IT!RCwClma$I5Fc5}+qr6Nfl%e7kP)8QjZkbq_ zcmQ622?-X;0*DR_l|amh1u-C|E)48+1Ee#)i{hgijDG|Xc zZ38Q|ARS!YJue-#+i9yH_oDV>ECOZ$5rdeGvEXv}fU}Dsx}7!x*CgsxVW-tXOoW&S zv*Z~QVaAM!)|e7OGh?dt+}9f8-ghR(%*83S+0AHFnbs5|7Jot6liF!a#fT~rX6cQT zGyZuzf!1?jVgV<@#5Dz_|4U2EATlVJtzul3(lU~&_ICJDPH57+UWeG+eX;tc_e*@!ieg^BMSsg6dJmocAHrPh{6zWv7EKarO>0j0zxI%m%eYBGXK72T zLX(8fN|Uap(NpRoObcz3gw__rT+Ko~y)W^7V+(sog7MK;VZ|@HA(+JLhOl;RwvU?< vE7(K9;P!DfZ6W|{_YRicm#VezynhA&No3TzWrWA$00000NkvXXu0mjfm<-e2 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6c6799f67aa39a97987c7ab02170625b365573b3 GIT binary patch literal 8192 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 apaos~vNEJO^{Z?EwPGNzf6@Q74EzTf?(1Lx literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/Cabecera.jpg b/Varela/Varela/Resources/Imagenes/Cabecera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce37d1a97993fbc86699c5ff7aed7def7b6344e5 GIT binary patch literal 18969 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/Cabecera.psd b/Varela/Varela/Resources/Imagenes/Cabecera.psd new file mode 100644 index 0000000000000000000000000000000000000000..e3bd135617cf987c6aa263a4cf8a4a9da5e284c0 GIT binary patch literal 337118 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�B$XLmOD7ca2Uj$Q+| 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

{`GeX)DD8{%7!^XH3^@1J3*}&hdQNFGy$f2kk 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/Thumbs.db b/Varela/Varela/Resources/Imagenes/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0e88c293897a8289f8e969db5a4097de08964c08 GIT binary patch literal 7680 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 BWXk{m literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP new file mode 100644 index 0000000000000000000000000000000000000000..e24987644cfe4b7840bb9cc120a5a9f60102e056 GIT binary patch literal 1550 zcmeH{u?@m75Jf))G?6H%GC~?!2B2pTHgE-zmw_Vb+clzo?9*85+5gYYn>9v&(9ONiUN{?y2-N$PS;rpCs7{ub7d$$wr6haWi7!4y; zm-)gVUc)%5Gc1On!0_iN^{}_%(+?l&)>{Ao literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP new file mode 100644 index 0000000000000000000000000000000000000000..b792f59ad5736a64abe0f0eeb14abfff4b9dde58 GIT binary patch literal 1550 zcmc(fAr8V&42FvULxMnY1Pl^_#&eGaMKDhR*&W~tAT~F@j6;whK_UnV7kGT5frRR9 z?@!yMd!k?Z+Bci`I`YwkIK)SI7jMacC~|3w^!ZWxS6=)fN!Ocg6hhQJCMgWU$2s>5 zC#us3fhf;&#qf%t)1hH}7gdKJbLEPW)#Dg*`vhChz|eP>MTt!_(W^>Qq(kuj|| zJ&%pm%VC;98lWHClNk!}@0#3wz25y>?NUKr*5It-HN1%Dq{1n(&x@1^#QwHOqPgb}hNDgvM%{(yqd|B$ zj&seq{rKoiixe=@@X)x2gnpc*&B u0sU2n&S^X!x-XxV(HCi+ly+TL*j+Xll9kbnAPBh0BCayJ0?*3g`}7Ga{ECSH literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP new file mode 100644 index 0000000000000000000000000000000000000000..798cb413bb05b6e856796c12abe8cc3af271870b GIT binary patch literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9!fK8iR~YW@Cf&yZ2jz^zx-J zNKa<0;9<_k^mA&^mp5A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z4AOUp9m8Ti ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88%~~rHvj+t literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP new file mode 100644 index 0000000000000000000000000000000000000000..63b1f2fc25d115559c28de3314ea2c61b85ab498 GIT binary patch literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&Wh8te}euai0hFtr0 z6%9ee4}Lm;hJfNgrvTkRkvs1ExPyiu_U-(z0}VmMr@owmhN$C?b6?M*A&7l*Ud=*7 z5b>-B8EA+)?m!C+AQxgET3`UV5OK7?0CKUo0~k*b)x?u%i37-m=tWB$KrTcaEpY(3 zkaP-4ACUY4&oU4RdXhk^8yg!LfO!{~gMplZ0>Hr7ym>RQB>N96%7CE)0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`?q{R$013}5qh zH5vkn1DyhN15Mm<=f@p11aU{v!vZu!TX&rMdKL{q++lIm6b;eV9cY08@4g QuqXqD3Xnfg092j=08JLGLjV8( literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP new file mode 100644 index 0000000000000000000000000000000000000000..c9266e2f1726c55f27f807699bdf5f715cbb3586 GIT binary patch literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`Q@yBZBa3_tkk z02%^{1DyhN15Mmf^soR8LEJI*-KFrFZ) zDJRhq2apRf6D@H7xsY@UN*|E?0?#rK33`%1s~Z~|8Gv~gn1g|wfdat5*t~f&uq68r PEXshP0^|=A0F|czs+*fv literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP new file mode 100644 index 0000000000000000000000000000000000000000..a8a7b404516ba3ecf52f2130bfa56801d85a54e5 GIT binary patch literal 1550 zcmc(fuWrI{5XTPzh6I7)5im#=^gQoDPz$CCNZ(;dkeg^-)h3$lAqGg0gb>KYZ26RL zn7B+VKR3pB*L$Uz_Z{QhuIe(^JRAdeI@T%}{M zesWN~$>!NX`S-({!)`QAStbMOl8H9swE< BiroMJ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP new file mode 100644 index 0000000000000000000000000000000000000000..97e45215bc13b13201e50e9a5d60a7ebb300893d GIT binary patch literal 1550 zcmc(fF-rqM6oj9JHiCtfKf%T_!P?&c5v;`KDh>A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z(np^o!(u*mhaH3VJ$ULFq@P!32I=>cJHui= ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88(Ri~Hvj+t literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP new file mode 100644 index 0000000000000000000000000000000000000000..3f7eb1e5210728067f9d148abb3868deae460771 GIT binary patch literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9yHV3WJQ@z26$7PiA9-^yaHE zNKa<0;9<_k(bJ(pUk;zo4AO7jt_{+spHoB9fy9K5-SM_TTMr%w2I&{gxk38qy1$kPXvx?X7BA$~9r^q%hQYMi2%VLSgp5N*AT3Hx%C!UW6 z;o&&WF*~C=jSv)tVW=|Vznj)YgYY+02O1XVxq%AXT-OE~kM5Dd4D zcXpZ@Xnc3u8Kk45y>A(4-cd9((D>@IG)PB>X$DmDnr1*XZkhp2K?ncI3$<}3vcZt7jAjHuz)co&mC+S=R+ikS54Opp{Qv*} literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP new file mode 100644 index 0000000000000000000000000000000000000000..bc8fdfacfaf3fd00c06f444cede2a9cf50846655 GIT binary patch literal 1550 zcmc(fp$@`842FvULxMo@2pA*;jpsd(1TzI>F9Tw8^LqnuOAs^IB?Lu6f;hgTfrRR9 z_owaBo#>ZddyD0uCm+p-V|;@5@s5m$BA2enkRRT^a^en2y4~$pAw=C{lENT-qA0qD z6V+*iK$PdXVz}0&bzu;0LpfkbZ;3Glt6r6{8i7H9;g4f;T^rMS<+C)_EXTZ<8q<2` z$H`c;9Htqh0s6r`nc*N+4l^92b@fB%)X#_R%Wq}$pv_3>IF5zgWrImViDqP3#!KdS M%IFGtDEasF4HBfRLjV8( literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db b/Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..68464d9b5f1c683f8a020a9a5a23114951d0c6d9 GIT binary patch literal 23552 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd b/Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd new file mode 100644 index 0000000000000000000000000000000000000000..f89490a9b04e5554ed48c9e4538377bbd8538122 GIT binary patch literal 462918 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

V4vpR|XSqeN=ks0c1)*P|W|Dub#P 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≥ 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png b/Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png new file mode 100644 index 0000000000000000000000000000000000000000..99b4ed0bd1d46ea7a297f1a1f58adad1ac3c3a88 GIT binary patch literal 23588 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/AdminPVGroup.bdsgroup b/Varela/Varela/Source/AdminPVGroup.bdsgroup new file mode 100644 index 0000000..3a0016c --- /dev/null +++ b/Varela/Varela/Source/AdminPVGroup.bdsgroup @@ -0,0 +1,32 @@ + + + + + + + + + + + Base\BaseD10.bdsproj + ControlesBase\ControlesBaseD10.bdsproj + Modulos\Parametros\Cliente\Parametros.bdsproj + Usuarios\Usuarios.bdsproj + Configuracion\Configuracion.bdsproj + Modulos\FicherosEDI\Cliente\FicherosEDI.bdsproj + Modulos\VentasTerminadas\Cliente\VentasTerminadas.bdsproj + Modulos\VentasProceso\Cliente\VentasProceso.bdsproj + Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.bdsproj + Modulos\Recepciones\Cliente\Recepciones.bdsproj + Modulos\Devoluciones\Cliente\Devoluciones.bdsproj + Modulos\Traspasos\Cliente\Traspasos.bdsproj + Modulos\Stock\Cliente\Stock.bdsproj + Cliente\AdminPV.bdsproj + Servidor\AdminPV_Server.bdsproj + CargaEDI\CargaEDI.bdsproj + BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe + + + + diff --git a/Varela/Varela/Source/AdminPVGroup.bdsgroup.local b/Varela/Varela/Source/AdminPVGroup.bdsgroup.local new file mode 100644 index 0000000..235eceb --- /dev/null +++ b/Varela/Varela/Source/AdminPVGroup.bdsgroup.local @@ -0,0 +1,6 @@ + + + + + + diff --git a/Varela/Varela/Source/AdminPVGroup.bpg b/Varela/Varela/Source/AdminPVGroup.bpg new file mode 100644 index 0000000..722af4b --- /dev/null +++ b/Varela/Varela/Source/AdminPVGroup.bpg @@ -0,0 +1,72 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = DataAbstract_D7.bpl BaseD7.bpl ControlesBaseD7.bpl Parametros.bpl \ + Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl \ + VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl \ + Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + + +AdminPV_Server.exe: Servidor\AdminPV_Server.dpr + $(DCC) + +BaseD7.bpl: Base\BaseD7.dpk + $(DCC) + +Usuarios.bpl: Usuarios\Usuarios.dpk + $(DCC) + +AdminPV.exe: Cliente\AdminPV.dpr + $(DCC) + +Configuracion.bpl: Configuracion\Configuracion.dpk + $(DCC) + +DataAbstract_D7.bpl: DataAbstract_D7\DataAbstract_D7.dpk + $(DCC) + +FicherosEDI.bpl: Modulos\FicherosEDI\Cliente\FicherosEDI.dpk + $(DCC) + +ControlesBaseD7.bpl: ControlesBase\ControlesBaseD7.dpk + $(DCC) + +VentasProceso.bpl: Modulos\VentasProceso\Cliente\VentasProceso.dpk + $(DCC) + +VentasTerminadas.bpl: Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk + $(DCC) + +CargaEDI.exe: CargaEDI\CargaEDI.dpr + $(DCC) + +ReferenciaGenerica.bpl: Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk + $(DCC) + +Recepciones.bpl: Modulos\Recepciones\Cliente\Recepciones.dpk + $(DCC) + +Devoluciones.bpl: Modulos\Devoluciones\Cliente\Devoluciones.dpk + $(DCC) + +Traspasos.bpl: Modulos\Traspasos\Cliente\Traspasos.dpk + $(DCC) + +Stock.bpl: Modulos\Stock\Cliente\Stock.dpk + $(DCC) + +Parametros.bpl: Modulos\Parametros\Cliente\Parametros.dpk + $(DCC) + + diff --git a/Varela/Varela/Source/Base/BaseD10.bdsproj b/Varela/Varela/Source/Base/BaseD10.bdsproj new file mode 100644 index 0000000..cf4977f --- /dev/null +++ b/Varela/Varela/Source/Base/BaseD10.bdsproj @@ -0,0 +1,673 @@ + + + + + + + + + + + + BaseD10.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + + + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 2.0.0.0 + + + + + + 1.0.0.0 + + + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + + + + diff --git a/Varela/Varela/Source/Base/BaseD10.dpk b/Varela/Varela/Source/Base/BaseD10.dpk new file mode 100644 index 0000000..a568907 --- /dev/null +++ b/Varela/Varela/Source/Base/BaseD10.dpk @@ -0,0 +1,112 @@ +package BaseD10; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + vcldb, + GUISDK_D10, + vcljpg, + dbrtl, + dsnap, + vcldb, + PNG_D10, + PngComponentsD10, + JvCoreD10R, + JvStdCtrlsD10R, + JvPageCompsD10R, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + tb2k_D10, + tbx_D10, + vclx, + vclactnband, + designide, + cxExportD10, + adortl, + JvSystemD10R, + dxPSCoreD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + cxIntlPrintSys3D10, + dxBarD10, + dxBarExtItemsD10, + cxIntl5D10, + dxPsPrVwAdvD10, + ccpack10, + JvMMD10R, + JvCtrlsD10R, + tee, + frx10, + fs10, + frxe10, + dxLayoutControlD10, + dxComnD10, + Jcl, + JclVcl, + JvAppFrmD10R, + dxPSLnksD10, + vclshlctrls, + dclcxLibraryD10, + teeui, + fsTee10, + frxTee10, + RemObjects_Core_D10, + DataAbstract_Core_D10; + +contains + uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule}, + uEditorBase in 'uEditorBase.pas' {fEditorBase}, + uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase}, + uEditorItem in 'uEditorItem.pas' {fEditorItem}, + uDataTableUtils in 'uDataTableUtils.pas', + uEditorUtils in 'uEditorUtils.pas', + uEditorPreview in 'uEditorPreview.pas' {fEditorPreview}, + uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, + uViewBase in 'uViewBase.pas' {frViewBase: TCustomView}, + uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TCustomView}, + uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor}, + uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, + uExceptions in 'uExceptions.pas', + uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, + uDBSelectionList in 'uDBSelectionList.pas', + uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion}, + uBizInformesBase in 'uBizInformesBase.pas', + uSysFunc in 'uSysFunc.pas', + VARELA_Intf in '..\Servidor\VARELA_Intf.pas', + uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView}, + uIntegerList in 'uIntegerList.pas', + schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', + schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', + uGridUtils in 'uGridUtils.pas'; + +end. diff --git a/Varela/Varela/Source/Base/BaseD10.drc b/Varela/Varela/Source/Base/BaseD10.drc new file mode 100644 index 0000000..edfdcdc --- /dev/null +++ b/Varela/Varela/Source/Base/BaseD10.drc @@ -0,0 +1,29 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* uConfigurarConexion.dfm */ +/* uDataModuleBase.DFM */ +/* uViewBase.dfm */ +/* uEditorBase.dfm */ +/* uEditorItem.dfm */ +/* uEditorDBBase.dfm */ +/* uViewGridBase.dfm */ +/* uEditorGridBase.dfm */ +/* uViewPreview.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorPreview.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorDBItem.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewBarraSeleccion.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewGrid.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.drf */ diff --git a/Varela/Varela/Source/Base/BaseD10.identcache b/Varela/Varela/Source/Base/BaseD10.identcache new file mode 100644 index 0000000000000000000000000000000000000000..cb0bec11a290610b8aca1302a62aaa07fac4972d GIT binary patch literal 2882 zcmcguL2kk@5aby><^_E~Z-mea2_%GplcmbFH^E?Rw6-bjrC+a2svd$lF1aL8B28v? zW;Rcw(Wsle@W#n_1RH!Mtg0A*#z%qL@rCx4`g_HBz8W_b3sI#fOLTjX!Sk&^ zFoH7|Q39`p2Og(N2Zyr&$LEvq3F`mQ#F$N8LN#QlP0he09kjD^?Zc4njtqFK;d6;_ zPNyO0fef?}K`fk#2J)PTxYT|sVbXG4iw^^vpp74L{UOl!s%%Ob3r-&R3OXY^_i}f= zXMktG_n8gt@LTBIUF+|eZ55D4a-?d3D6Wx~Dbhow2_1fs zaLO%mh zTTm;9d^=uE=i_1>(iOzS*;aQE1*R*w6bfQbrgA^sI~$*NxY<&VOKi5&Jrh5C>rRYL JKgUIz{Q{K0;&1=} literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Base/BaseD10.rc b/Varela/Varela/Source/Base/BaseD10.rc new file mode 100644 index 0000000..d9bfd1d --- /dev/null +++ b/Varela/Varela/Source/Base/BaseD10.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "2.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Base/BaseD10.res b/Varela/Varela/Source/Base/BaseD10.res new file mode 100644 index 0000000000000000000000000000000000000000..45dc55f7e508c2aadceb4f8bfc5080153c1b52cf GIT binary patch literal 4748 zcmbW5&1)oO5XLJepe&2#;C*uNAUVh=d+&(4um?YIom`vX7lLeHS8qb+Kbagvr2mJd z=PWtqD9j$byGIXV`~0fj>YkZQVq!y0y&v_~^Hja{zSFds*@2|*L)2V*e%;UcUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1kx1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8r6~2;>lIU&LZsTwze(H0n{VM+hwDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BZ13A6`$Y1AeJY*L>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDUkC$M)E2{eEPhtM$kcYR7x1HqZ0DKmWm>*(=^pU6tOR?fGo!x;ppY z$M%CgweReSeQOV;zqhaD`H6jFr<(uCZKjH9stBj{KpbE+wb$e??T@wQsXf!`Q?2BA z&)$(uifIk@pULXfzOoDW%RDv?HJW^XAbvoADzBGhMMej=|U KhkN(`*!vewsZSLE literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Base/uBizInformesBase.pas b/Varela/Varela/Source/Base/uBizInformesBase.pas new file mode 100644 index 0000000..3a96c41 --- /dev/null +++ b/Varela/Varela/Source/Base/uBizInformesBase.pas @@ -0,0 +1,14 @@ +unit uBizInformesBase; + +interface + +type + IBizInformesAware = interface + ['{98AD6541-199F-4155-B394-ED0316298759}'] + procedure Preview; + procedure Print; + end; + +implementation + +end. diff --git a/Varela/Varela/Source/Base/uConfigurarConexion.dfm b/Varela/Varela/Source/Base/uConfigurarConexion.dfm new file mode 100644 index 0000000..5a266e8 --- /dev/null +++ b/Varela/Varela/Source/Base/uConfigurarConexion.dfm @@ -0,0 +1,113 @@ +object fConfigurarConexion: TfConfigurarConexion + Left = 663 + Top = 468 + ActiveControl = edtServer + AutoScroll = False + Caption = 'Configuraci'#243'n de la conexi'#243'n' + ClientHeight = 149 + ClientWidth = 392 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object bProbar: TButton + Left = 8 + Top = 113 + Width = 121 + Height = 25 + Caption = '&Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 97 + Caption = 'Servidor' + TabOrder = 0 + DesignSize = ( + 375 + 97) + object Label1: TLabel + Left = 18 + Top = 28 + Width = 97 + Height = 13 + Caption = 'Nombre del servidor:' + end + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object edtServer: TEdit + Left = 136 + Top = 24 + Width = 223 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPort: TEdit + Left = 136 + Top = 56 + Width = 108 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 1 + Text = '8099' + end + end + object bAceptar: TButton + Left = 219 + Top = 113 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 2 + end + object bCancelar: TButton + Left = 307 + Top = 113 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 3 + end + object HTTPChannel: TROWinInetHTTPChannel + ServerLocators = <> + DispatchOptions = [] + ProbeServers = False + ProbeFrequency = 60000 + UserAgent = 'AdminPV' + TargetURL = 'http://localhost:8099/BIN' + Left = 120 + Top = 112 + end + object ROBinMessage: TROBinMessage + Left = 152 + Top = 112 + end + object CoService: TRORemoteService + ServiceName = 'srvLogin' + Message = ROBinMessage + Channel = HTTPChannel + Left = 184 + Top = 112 + end +end diff --git a/Varela/Varela/Source/Base/uConfigurarConexion.pas b/Varela/Varela/Source/Base/uConfigurarConexion.pas new file mode 100644 index 0000000..035d05a --- /dev/null +++ b/Varela/Varela/Source/Base/uConfigurarConexion.pas @@ -0,0 +1,74 @@ +unit uConfigurarConexion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, + uROServiceComponent, uRORemoteService, uROBinMessage; + +type + TfConfigurarConexion = class(TForm) + bProbar: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + edtServer: TEdit; + edtPort: TEdit; + bAceptar: TButton; + bCancelar: TButton; + HTTPChannel: TROWinInetHTTPChannel; + ROBinMessage: TROBinMessage; + CoService: TRORemoteService; + procedure bProbarClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + function GetTargetURL: String; + procedure SetTargetURL(const Value: String); + { Private declarations } + public + property TargetURL : String read GetTargetURL write SetTargetURL; + end; + +var + fConfigurarConexion: TfConfigurarConexion; + +implementation + +uses + StrUtils, JclStrings, uDataModuleBase, VARELA_Intf; + +{$R *.dfm} + +{ TfConfigurarConexion } + +function TfConfigurarConexion.GetTargetURL: String; +begin + Result := 'http://' + edtServer.Text + ':' + edtPort.Text + '/bin'; +end; + +procedure TfConfigurarConexion.SetTargetURL(const Value: String); +var + s : String; +begin + s := StrAfter('http://', Value); + s := StrBefore(':', s); + edtServer.Text := s; + + s := StrAfter(edtServer.Text + ':', Value); + s := StrBefore('/bin', s); + edtPort.Text := s; +end; + +procedure TfConfigurarConexion.bProbarClick(Sender: TObject); +begin + if dmBase.HayConexion(TargetURL) then + Application.MessageBox('Conexión válida con el servidor.', 'Información', MB_OK); +end; + +procedure TfConfigurarConexion.FormCreate(Sender: TObject); +begin + HTTPChannel.OnFailure := dmBase.ROChannelFailure; +end; + +end. diff --git a/Varela/Varela/Source/Base/uDBSelectionList.pas b/Varela/Varela/Source/Base/uDBSelectionList.pas new file mode 100644 index 0000000..b5b88b8 --- /dev/null +++ b/Varela/Varela/Source/Base/uDBSelectionList.pas @@ -0,0 +1,183 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDBSelectionList; + +interface + +uses + Classes, DB, cxGridTableView, uDADataTable, uIntegerList, cxGridCustomView; + +type + TRecID = Integer; + TSelectedRowList = class; + + ISelectedRowList = interface + ['{1886B04A-DB0D-40AE-BCAE-DA57CD4CD582}'] + function GetSelectedRows : TSelectedRowList; + property SelectedRows : TSelectedRowList read GetSelectedRows; + end; + + TSelectedRowList = class + private + FDataTable: TDADataTable; + FListRecID : TIntegerList; + function GetCount: Integer; + function GetCurrentRowSelected: Boolean; + function GetItem(Index: Integer): TRecID; + procedure SetCurrentRowSelected(Value: Boolean); + protected + function CurrentRow: TRecID; + function Compare(const Item1, Item2: TRecID): Boolean; + public + constructor Create(ADataTable : TDADataTable); + destructor Destroy; override; + procedure Clear; // free all bookmarks + function Find(const Item: TRecID; var Index: Integer): Boolean; + function IndexOf(const Item: TRecID): Integer; + property Count: Integer read GetCount; + property CurrentRowSelected: Boolean read GetCurrentRowSelected + write SetCurrentRowSelected; + property Items[Index: Integer]: TRecID read GetItem; default; + function LocateItem(const Index : Integer) : Boolean; + end; + + + procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; + var ASelectedRowList : ISelectedRowList); + + +implementation + +uses + DBConsts, cxGridCustomTableView, cxControls, Math, Variants, Dialogs; + +{ TSelectedRowList } + +constructor TSelectedRowList.Create(ADataTable : TDADataTable); +begin + inherited Create; + FListRecID := TIntegerList.Create; + + FDataTable := ADataTable; +end; + +destructor TSelectedRowList.Destroy; +begin + Clear; + FListRecID.Free; + FDataTable := NIL; + inherited Destroy; +end; + +procedure TSelectedRowList.Clear; +begin + if FListRecID.Count = 0 then + Exit; + FListRecID.Clear; +end; + +function TSelectedRowList.Compare(const Item1, Item2: TRecID): Boolean; +begin + Result := (Item1 = Item2); +end; + +function TSelectedRowList.CurrentRow: TRecID; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.RecIDValue; +end; + +function TSelectedRowList.GetCurrentRowSelected: Boolean; +var + Index: Integer; +begin + Result := Find(CurrentRow, Index); +end; + +function TSelectedRowList.Find(const Item: TRecID; var Index: Integer): Boolean; +begin + Result := FListRecID.Find(Item, Index) +end; + +function TSelectedRowList.GetCount: Integer; +begin + Result := FListRecID.Count; +end; + +function TSelectedRowList.GetItem(Index: Integer): TRecID; +begin + Result := FListRecID.Integers[Index]; +end; + +function TSelectedRowList.IndexOf(const Item: TRecID): Integer; +var + AIndex : Integer; +begin + Result := -1; + if FListRecID.Find(Item, AIndex) then + Result := AIndex +end; + +procedure TSelectedRowList.SetCurrentRowSelected(Value: Boolean); +var + Index: Integer; + Current: TRecID; +begin + Current := CurrentRow; + if (Find(Current, Index) = Value) then + Exit; + if Value then + FListRecID.Add(Current) + else + FListRecID.Delete(Index); +end; + + + +procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; + var ASelectedRowList : ISelectedRowList); +var + ADataTable : TDADataTable; + ABookmark : Pointer; + ARecord: TcxCustomGridRecord; + i : Integer; +begin + ADataTable := ASelectedRowList.SelectedRows.FDataTable; + AView.BeginUpdate; + ShowHourglassCursor; + ABookmark := ADataTable.GetBookMark; + try + ASelectedRowList.SelectedRows.Clear; + for i := 0 to TcxCustomGridTableController(AView.Controller).SelectedRecordCount-1 do + begin + ARecord := TcxCustomGridTableController(AView.Controller).SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + ASelectedRowList.SelectedRows.CurrentRowSelected := True; + end; + end; + ADataTable.GotoBookmark(ABookmark); + finally + AView.EndUpdate; + ADataTable.FreeBookmark(ABookmark); + HideHourglassCursor; + end; +end; + + +function TSelectedRowList.LocateItem(const Index: Integer) : Boolean; +begin + if not FDataTable.Active then + raise EDatabaseError.Create(sDataSetClosed); + Result := FDataTable.Locate('RecID', Items[Index], []); +end; + +end. diff --git a/Varela/Varela/Source/Base/uDataModuleBase.dfm b/Varela/Varela/Source/Base/uDataModuleBase.dfm new file mode 100644 index 0000000..5f633ba --- /dev/null +++ b/Varela/Varela/Source/Base/uDataModuleBase.dfm @@ -0,0 +1,1660 @@ +object dmBase: TdmBase + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 352 + Width = 518 + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002224944415478DA + 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 + DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 + D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 + 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 + 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 + 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 + DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 + 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 + DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 + C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B + 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 + 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD + ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 + F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 + C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 + F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F + A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E + 182A98A90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011F4944415478DA + 63FCFFFF3F03258091620390394975ABC1A6BD79FB8561D3D4444642E220CB31 + 0C985113C8A0E6D6C4F0E040132321711403408A40367CFCF28DE1E1C3970C7A + DA8A60DB708963350064CBF6938F18966C3EC770FAD425B06DB8C409BA000440 + B68908F330A08B631800D23CB73184E1D9CB4F0C775EFD6598B2641FD8A68208 + 2F864BCF1E33A0CB71BF7AC2B0604101380619571EBDFB7FE7CE730CD9518E60 + D3F79CB8C770E6DA23B0013017609373501062983F3F9F111E4820F0F8C52730 + FDFEED5B30CDC2FC91C1CEDA860197FCFDFD8D8CF040DA77EE39C395DBAF182E + DF7DC370F0C051ACD188AE66901A70F2F27D94B8C666004C0DDC801F3F7F323C + 7DF191E1D78F9F0CCF5F7E40896B9801D8D4800DA0343702001BEF6EF0E3CC7C + BD0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000002234944415478DA + A5934F4814511CC7BF6BBAB0AD97225B2A2B4B88ECB014861241ED2190FE9017 + 2D15843A74E8E0A14D3282608935920E092D7A10A44C25A843497FEDA0EB422D + 2DE6A2F647ADA5C542A6DD76DB6CC79979F3DE34F3CA99C4BAB40F1EEF0DEF7D + 3FDFEFFC783F9BA669C865D8EE0FBDCE89C001473D3BF8473631861FB36FF9BE + 7063199C45BBCC8B4C4FAAAA0C44A5E6ACAA3F67010CF19748000BDF0984440A + C2FC1CF61F0F605DE91EA894E17CAFB2C4B9246F18DD7D03BF0087F76E46FCB9 + 1FDF3EC640A97EAA5164321924A5146A5A22A6A391C0E971724097F7B1053858 + B90633835E40B461A5C38115A010B322C6E2D3A83E1BE6E24B7781D676070A1A + 9A40FAAFA3270A74569D5E04B8F039E4835D96757740210A24710173EA6A941F + BBC69D676E3BF169EB3892E37DC86B6EE3294C805103E1553FB21F9EE800BD58 + 84605E54C04AAA515A51CBC5EE230108D38F7073A402EB7D3EC83D7FFC820108 + C506111BEEC07666D713C81895800DBB1BB0E94D9D2936668DBF180F9E85118A + 4C5880E23205CD431791FA1AC749D70130C2702B1944A73DBA4CECA96BE5F12B + DD6B2D4098DEC1C3A91148ABD228CC1640AF223A94977F7526BFDFC2E8C43B0B + 7043F023369B002D92A0E48BF0CA67B09334C2B5EDD032E7C5B1244153B016E9 + B4601E5E75B7E344633DA2DDF95C3CF0F40577A54CE32BD3D7C9A9F716605FF9 + 16F4DE0B9A80B60BA7CC7DCBE5AE7FF68109F05D09FC7F33E5DACE3F0109DB53 + BED36F80890000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 24 + Top = 16 + Bitmap = {} + end + object TBXSwitcher: TTBXSwitcher + Theme = 'Default' + Left = 24 + Top = 80 + end + object StyleManager: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -13 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -13 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [fsBold] + Theme = nptCustom + Left = 104 + Top = 80 + end + object ROChannel: TROWinInetHTTPChannel + OnFailure = ROChannelFailure + OnException = ROChannelFailure + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Login.Username = 'zvg' + Login.Password = 'zeus' + KeepConnection = True + OnProgress = ROChannelProgress + ServerLocators = <> + DispatchOptions = [] + Left = 330 + Top = 24 + end + object cxIntl: TcxIntl + Connected = True + cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' + PageControl2.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' + PageControl2.NoBaseImages = 'BaseImages no est'#225' asignado' + PageControl2.NoRegisteredStyles = 'No hay estilos registrados' + PageControl2.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' + PageControl2.PainterClassError = 'La clase PCPainter es nula' + PageControl2.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' + PageControl2.StyleNameError = '%s es un nombre de estilo no registrado' + PageControl2.TabCountEqualsZero = 'Tabs.Count = 0' + PageControl2.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' + PageControl2.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' + PageControl2.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' + QuantumGrid5.GridRecursiveLevels = 'No se pueden crear niveles recursivos' + QuantumGrid5.GridDeletingConfirmationCaption = 'Confirmar' + QuantumGrid5.GridDeletingFocusedConfirmationText = #191'Borrar registro?' + QuantumGrid5.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' + QuantumGrid5.GridNoDataInfoText = '' + QuantumGrid5.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' + QuantumGrid5.GridFilterIsEmpty = '' + QuantumGrid5.GridCustomizationFormCaption = 'Personalizaci'#243'n' + QuantumGrid5.GridCustomizationFormColumnsPageCaption = 'Columnas' + QuantumGrid5.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' + QuantumGrid5.GridFilterCustomizeButtonCaption = 'Personalizar...' + QuantumGrid5.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' + QuantumGrid5.GridCustomizationFormBandsPageCaption = 'Bandas' + QuantumGrid5.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' + QuantumGrid5.GridCustomizationFormRowsPageCaption = 'Rows' + QuantumGrid5.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' + QuantumGrid5.GridConverterNotExistGrid = 'cxGrid no existe' + QuantumGrid5.GridConverterNotExistComponent = 'El componente no existe' + QuantumGrid5.ImportErrorCaption = 'Error al importar' + QuantumGrid5.NotExistGridView = 'No existe la vista del grid' + QuantumGrid5.NotExistGridLevel = 'No existe un nivel de grid activo' + QuantumGrid5.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' + QuantumGrid5.EditRepositoryExtLookupComboBoxItem = + 'ExtLookupComboBox|Representa un ultra avanzado control de busque' + + 'da (lookup) usando el QuantumGrid como su control de despliegue' + Navigator.NavigatorHint_First = 'Primer registro' + Navigator.NavigatorHint_Prior = 'Registro anterior' + Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior' + Navigator.NavigatorHint_Next = 'Siguiente registro' + Navigator.NavigatorHint_NextPage = 'Siguiente p'#225'gina' + Navigator.NavigatorHint_Last = #218'ltimo registro' + Navigator.NavigatorHint_Insert = 'Insertar registro' + Navigator.NavigatorHint_Delete = 'Borrar registro' + Navigator.NavigatorHint_Edit = 'Editar registro' + Navigator.NavigatorHint_Post = 'Grabar edici'#243'n' + Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n' + Navigator.NavigatorHint_Refresh = 'Actualizar datos' + Navigator.NavigatorHint_SaveBookmark = 'Guardar Marca' + Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca' + Navigator.NavigatorHint_Filter = 'Filtrar datos' + Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?' + Editors5.EditDateConvertError = 'El valor no se puede convertir a fecha' + Editors5.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' + Editors5.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' + Editors5.EditPopupCircularReferencingError = 'Referencia circular no permitida' + Editors5.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' + Editors5.EditTimeConvertError = 'No se puede convertir a valor de tiempo' + Editors5.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' + Editors5.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' + Editors5.EditCheckBoxChecked = 'True' + Editors5.EditCheckBoxUnchecked = 'False' + Editors5.TextTrue = 'True' + Editors5.TextFalse = 'False' + Editors5.BlobButtonOK = '&Aceptar' + Editors5.BlobButtonCancel = '&Cancelar' + Editors5.BlobButtonClose = '&Cerrar' + Editors5.BlobMemo = '(MEMO)' + Editors5.BlobMemoEmpty = '(memo)' + Editors5.BlobPicture = '(IM'#193'GEN)' + Editors5.BlobPictureEmpty = '(im'#225'gen)' + Editors5.MenuItemCaptionCut = 'Cor&tar' + Editors5.MenuItemCaptionCopy = '&Copiar' + Editors5.MenuItemCaptionPaste = '&Pegar' + Editors5.MenuItemCaptionDelete = '&Borrar' + Editors5.MenuItemCaptionLoad = '&Leer...' + Editors5.MenuItemCaptionSave = 'Guardar &Como...' + Editors5.DatePopupClear = 'Limpiar' + Editors5.DatePopupNow = 'Ahora' + Editors5.DatePopupOK = 'Aceptar' + Editors5.DatePopupToday = 'Hoy' + Editors5.DateError = 'Fecha inv'#225'lida' + Editors5.DateToday = 'hoy' + Editors5.DateYesterday = 'ayer' + Editors5.DateTomorrow = 'ma'#241'ana' + Editors5.DateSunday = 'Domingo' + Editors5.DateMonday = 'Lunes' + Editors5.DateTuesday = 'Martes' + Editors5.DateWednesday = 'Mi'#233'rcoles' + Editors5.DateThursday = 'Jueves' + Editors5.DateFriday = 'Viernes' + Editors5.DateSaturday = 'S'#225'bado' + Editors5.DateFirst = 'Primero' + Editors5.DateSecond = 'segundo' + Editors5.DateThird = 'tercero' + Editors5.DateFourth = 'Cuarto' + Editors5.DateFifth = 'Quinto' + Editors5.DateSixth = 'sexto' + Editors5.DateSeventh = 's'#233'ptimo' + Editors5.DateBOM = 'bom' + Editors5.DateEOM = 'eom' + Editors5.DateNow = 'ahora' + Editors5.CalcError = 'Error' + Editors5.HyperLinkPrefix = 'http://' + Editors5.HyperLinkDoubleSlash = '//' + Editors5.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' + Editors5.EditRepositoryButtonItem = + 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + + 'tados' + Editors5.EditRepositoryCalcItem = + 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + + 'culadora desplegable' + Editors5.EditRepositoryCheckBoxItem = + 'CheckBox|Representa un control de caja de marca que permite sele' + + 'ccionar una opci'#243'n' + Editors5.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' + Editors5.EditRepositoryCurrencyItem = + 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + + 'ores monetarios' + Editors5.EditRepositoryDateItem = + 'DateEdit|Representa un control de edici'#243'n con un calendario desp' + + 'legable' + Editors5.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' + Editors5.EditRepositoryImageComboBoxItem = + 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + + 'enes y texto en la ventana desplegable' + Editors5.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' + Editors5.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' + Editors5.EditRepositoryMemoItem = + 'Memo|Representa un control de edici'#243'n que permite editar datos m' + + 'emo' + Editors5.EditRepositoryMRUItem = + 'MRUEdit|Representa un editor de texto mostrando la lista de los ' + + 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + + 'ble' + Editors5.EditRepositoryPopupItem = + 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + + 'able' + Editors5.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' + Editors5.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' + Editors5.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' + Editors5.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' + Editors5.RegExprLine = 'L'#237'nea' + Editors5.RegExprChar = 'Char' + Editors5.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' + Editors5.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' + Editors5.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 + Editors5.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' + Editors5.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' + Editors5.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 + Editors5.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 + Editors5.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' + Editors5.RegExprIllegalIntegerValue = 'Valor entero no permitido' + Editors5.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' + Editors5.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' + Editors5.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' + Editors5.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' + Editors5.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 + Editors5.RegExprMissing = 'Falta '#39'%s'#39 + Editors5.RegExprUnnecessary = 'Innecesario '#39'%s'#39 + Editors5.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 + Editors5.RegExprNotCompiled = 'Expresi'#243'n regular no compila' + Editors5.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' + Editors5.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' + Editors5.MaskEditRegExprError = 'Errores en expresiones regulares:' + Editors5.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' + Editors5.MaskEditNoMask = 'Ninguno' + Editors5.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' + Editors5.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' + Editors5.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' + Editors5.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido' + Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos' + Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)' + Datacontroller.DataItemExistError = 'El elemento ya existe' + Datacontroller.DataRecordIndexError = #205'ndice de registro fuera de rango' + Datacontroller.DataItemIndexError = #205'ndice de elemento fuera de rango' + Datacontroller.DataProviderModeError = 'La operaci'#243'n no es soportada en modo de proveedor (provider)' + Datacontroller.DataInvalidStreamFormat = 'Origen de datos (Stream) inv'#225'lido' + Datacontroller.DataRowIndexError = #205'ndice del elemento de fila fuera de rango' + Datacontroller.DataCustomDataSourceInvalidCompare = 'Instrucci'#243'n GetInfoForCompare no implementada' + Datacontroller.DBDetailFilterControllerNotFound = 'DetailFilterController no encontrado' + Datacontroller.DBNotInGridMode = 'La controladora de datos no est'#225' en modo de Grid' + Datacontroller.DBKeyFieldNotFound = 'Campo llave no encontrado' + Filter.FilterOperatorEqual = 'igual' + Filter.FilterOperatorNotEqual = 'no es igual' + Filter.FilterOperatorLess = 'es menor que' + Filter.FilterOperatorLessEqual = 'es menor o igual que' + Filter.FilterOperatorGreater = 'es mayor que' + Filter.FilterOperatorGreaterEqual = 'es mayor o igual que' + Filter.FilterOperatorLike = 'como' + Filter.FilterOperatorNotLike = 'no es como' + Filter.FilterOperatorBetween = 'entre' + Filter.FilterOperatorNotBetween = 'no entre' + Filter.FilterOperatorInList = 'en' + Filter.FilterOperatorNotInList = 'no en' + Filter.FilterOperatorYesterday = 'es ayer' + Filter.FilterOperatorToday = 'es hoy' + Filter.FilterOperatorTomorrow = 'es ma'#241'ana' + Filter.FilterOperatorLastWeek = 'es '#250'ltima semana' + Filter.FilterOperatorLastMonth = 'es '#250'ltimo mes' + Filter.FilterOperatorLastYear = 'es a'#241'o pasado' + Filter.FilterOperatorThisWeek = 'es esta semana' + Filter.FilterOperatorThisMonth = 'es este mes' + Filter.FilterOperatorThisYear = 'es este a'#241'o' + Filter.FilterOperatorNextWeek = 'es semana siguiente' + Filter.FilterOperatorNextMonth = 'es mes siguiente' + Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo' + Filter.FilterAndCaption = 'y' + Filter.FilterOrCaption = 'o' + Filter.FilterNotCaption = 'no' + Filter.FilterBlankCaption = 'vac'#237'o' + Filter.FilterOperatorIsNull = 'es vac'#237'o' + Filter.FilterOperatorIsNotNull = 'no es vac'#237'o' + Filter.FilterOperatorBeginsWith = 'comienza con' + Filter.FilterOperatorDoesNotBeginWith = 'no comienza con' + Filter.FilterOperatorEndsWith = 'termina con' + Filter.FilterOperatorDoesNotEndWith = 'no termina con' + Filter.FilterOperatorContains = 'contiene' + Filter.FilterOperatorDoesNotContain = 'no contiene' + Filter.FilterBoxAllCaption = '(Todos)' + Filter.FilterBoxCustomCaption = '(Personalizado...)' + Filter.FilterBoxBlanksCaption = '(Vac'#237'os)' + Filter.FilterBoxNonBlanksCaption = '(No vac'#237'os)' + Filter.FilterBoolOperatorAnd = 'AND' + Filter.FilterBoolOperatorOr = 'OR' + Filter.FilterBoolOperatorNotAnd = 'NOT AND' + Filter.FilterBoolOperatorNotOr = 'NOT OR' + Filter.FilterRootButtonCaption = 'Filtro' + Filter.FilterAddCondition = 'Agregar &Condici'#243'n' + Filter.FilterAddGroup = 'Agregar &Grupo' + Filter.FilterRemoveRow = '&Remover Fila' + Filter.FilterClearAll = 'Limpiar &Todo' + Filter.FilterFooterAddCondition = 'Agregar una nueva condici'#243'n' + Filter.FilterGroupCaption = 'aplica a las siguientes condiciones' + Filter.FilterRootGroupCaption = '' + Filter.FilterControlNullString = '' + Filter.FilterErrorBuilding = 'No se puede construir filtro desde el or'#237'gen' + Filter.FilterDialogCaption = 'Filtro Personalizado' + Filter.FilterDialogInvalidValue = 'Valor inv'#225'lido' + Filter.FilterDialogUse = 'Usar' + Filter.FilterDialogSingleCharacter = 'para representar un caracter sencillo' + Filter.FilterDialogCharactersSeries = 'para representar cualquier serie de caracteres' + Filter.FilterDialogOperationAnd = 'Y' + Filter.FilterDialogOperationOr = 'O' + Filter.FilterDialogRows = 'Mostrar filas donde:' + Filter.FilterControlDialogCaption = 'Constructor de Filtro' + Filter.FilterControlDialogNewFile = 'sinnombre.flt' + Filter.FilterControlDialogOpenDialogCaption = 'Abrir un filtro existente' + Filter.FilterControlDialogSaveDialogCaption = 'Grabar el filtro activo a archivo' + Filter.FilterControlDialogActionSaveCaption = '&Guardar...' + Filter.FilterControlDialogActionOpenCaption = '&Abrir...' + Filter.FilterControlDialogActionApplyCaption = '&Aplicar' + Filter.FilterControlDialogActionOkCaption = 'Aceptar' + Filter.FilterControlDialogActionCancelCaption = 'Cancelar' + Filter.FilterControlDialogFileExt = 'flt' + Filter.FilterControlDialogFileFilter = 'Filtros (*.flt)|*.flt' + GridPopupMenu.GridNone = 'Ninguno' + GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente' + GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente' + GridPopupMenu.GridClearSorting = 'Clear Sorting' + GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo' + GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo' + GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"' + GridPopupMenu.GridAlignmentSubMenu = 'Alineaci'#243'n' + GridPopupMenu.GridAlignLeft = 'Alineaci'#243'n Izquierda' + GridPopupMenu.GridAlignRight = 'Alineaci'#243'n Derecha' + GridPopupMenu.GridAlignCenter = 'Alineaci'#243'n Centrada' + GridPopupMenu.GridRemoveColumn = 'Remover esta columna' + GridPopupMenu.GridFieldChooser = 'Selector de campos' + GridPopupMenu.GridBestFit = 'Mejor distribuci'#243'n' + GridPopupMenu.GridBestFitAllColumns = 'Mejor distribuci'#243'n (Todas las columnas)' + GridPopupMenu.GridShowFooter = 'Pie' + GridPopupMenu.GridShowGroupFooter = 'Pies de grupo' + GridPopupMenu.GridSumMenuItem = 'Sumar' + GridPopupMenu.GridMinMenuItem = 'M'#237'nimo' + GridPopupMenu.GridMaxMenuItem = 'M'#225'ximo' + GridPopupMenu.GridCountMenuItem = 'Contar' + GridPopupMenu.GridAvgMenuItem = 'Promedio' + GridPopupMenu.GridNoneMenuItem = 'Ninguno' + GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1' + GridExport.StyleManagerKill = + 'El administrador de estilo esta siendo utilizado y no puede ser ' + + 'liberado en este momento' + GridExport.StyleManagerCreate = 'No se puede crear administrador de estilo' + GridExport.ExportToHtml = 'Exportar a p'#225'gina Web (*.html)' + GridExport.ExportToXml = 'Exportar a documento XML (*.xml)' + GridExport.ExportToText = 'Exportar a formato de texto (*.txt)' + GridExport.EmptyExportCache = 'Cache de exportaci'#243'n vac'#237'o' + GridExport.IncorrectUnion = 'Uni'#243'n de celdas incorrecta' + GridExport.IllegalWidth = 'Ancho de columna ilegal' + GridExport.InvalidColumnRowCount = 'Conteo de columna o fila inv'#225'lido' + GridExport.IllegalHeight = 'Alto de fila ilegal' + GridExport.InvalidColumnIndex = 'El '#237'ndice de columna %d fuera de l'#237'mites' + GridExport.InvalidRowIndex = 'El '#237'ndice de fila %d est'#225' fuera de l'#237'mites' + GridExport.InvalidStyleIndex = #205'ndice de estilo %d inv'#225'lido' + GridExport.ExportToExcel = 'Exportar a MS Excel (*.xls)' + GridExport.WorkbookWrite = 'Error al escribir el archivo XLS' + GridExport.InvalidCellDimension = 'Dimensi'#243'n de celda inv'#225'lida' + GridExport.BoolTrue = 'True' + GridExport.BoolFalse = 'False' + Translate.cxLibrary = True + Translate.PageControl2 = False + Translate.QuantumGrid5 = True + Translate.Editors5 = True + Translate.Datacontroller = True + Translate.Filter = True + Translate.GridPopupMenu = True + Translate.GridExport = True + Translate.Navigator = True + Version = '5.0' + Left = 104 + Top = 16 + end + object cxIntlPrintSys3: TcxIntlPrintSys3 + Connected = True + Version = '3.0' + BtnOK = 'Aceptar' + BtnOKAccelerated = '&Aceptar' + BtnCancel = 'Cancelar' + BtnClose = 'Cerrar' + BtnApply = '&Aplicar' + BtnHelp = 'A&yuda' + BtnFix = '&Arreglar' + BtnNew = '&Nuevo...' + BtnIgnore = '&Ignorar' + BtnYes = '&S'#237 + BtnNo = '&No' + BtnEdit = '&Editar...' + BtnReset = '&Restaurar' + BtnAdd = '&A'#241'adir' + BtnAddComposition = 'A'#241'adir &Comparativa' + BtnDefault = '&Defecto...' + BtnDelete = '&Borrar...' + BtnDescription = '&Descripci'#243'n...' + BtnCopy = '&Copiar...' + BtnYesToAll = 'S'#237' a &Todos' + BtnRestoreDefaults = '&Rest.Defecto' + BtnRestoreOriginal = 'Restaurar &Original' + BtnTitleProperties = 'Prop. del T'#237'tulo...' + BtnProperties = 'P&ropiedades...' + BtnNetwork = 'R&ed...' + BtnBrowse = '&Hojear...' + BtnPageSetup = 'Config. P'#225'&gina...' + BtnPrintPreview = 'Vista Pre&via...' + BtnPreview = '&Ver...' + BtnPrint = 'Imprimir...' + BtnOptions = '&Opciones...' + BtnStyleOptions = 'Opciones de estilo...' + BtnDefinePrintStyles = '&Definir Estilos...' + BtnPrintStyles = 'Estilos de Imp.' + BtnBackground = 'Fondo' + BtnShowToolBar = 'Mostrar &Herramientas' + BtnDesign = 'D&ise'#241'o...' + BtnMoveUp = 'Mover &Arriba' + BtnMoveDown = 'Mover Aba&jo' + BtnMoreColors = '&M'#225's Colores...' + BtnFillEffects = 'Efectos de &Relleno...' + BtnNoFill = '&Sin Relleno' + BtnAutomatic = '&Autom'#225'tico' + BtnNone = '&Ninguno' + BtnOtherTexture = 'Otras Te&xturas...' + BtnInvertColors = 'I&nvertir Colores' + BtnSelectPicture = 'Se&leccionar Imagen...' + EditReports = 'Editar Informes' + Composition = 'Composici'#243'n' + ReportTitleDlgCaption = 'T'#237'tulo del Informe' + Mode = '&Modo:' + Text = '&Texto' + Properties = '&Propiedades' + AdjustOnScale = '&Ajustar Escala' + TitleModeNone = 'Ninguno' + TitleModeOnEveryTopPage = 'En Cada P'#225'gina' + TitleModeOnFirstPage = 'En Primera P'#225'gina' + EditDescription = 'Editar Descripci'#243'n' + Rename = 'Reno&mbrar' + SelectAll = 'Seleccionar Todo' + AddReport = 'A'#241'adir Informe' + AddAndDesignReport = 'A'#241'adir y D&ise'#241'ar Informe...' + NewCompositionCaption = 'Nueva Composici'#243'n' + Name0 = '&Nombre:' + Caption = '&T'#237'tulo:' + AvailableSources = '&Fuente(s) Disponible(s)' + OnlyComponentsInActiveForm = 'S'#243'lamente Componentes en Formulario &Activo' + OnlyComponentsWithoutLinks = 'S'#243'lamente Componentes &sin Enlaces Existentes' + ItemName = 'Nombre' + ItemDescription = 'Descripci'#243'n' + ConfirmDeleteItem = 'Quiere borrar los siguientes elementos: %s ?' + AddItemsToComposition = 'A'#241'adir Elementos a la Composici'#243'n' + HideAlreadyIncludedItems = 'Ocultar Elementos Ya &Incluidas' + AvailableItems = 'Elementos D&isponibles' + Items = '&Elementos' + Enable = '&Habilitar' + Options = 'Opciones' + Show = 'Mostrar' + PaintItemsGraphics = '&Pintar Elementos Gr'#225'ficos' + Description = 'Descripci'#243'n:' + NewReport = 'Nuevo Informe' + OnlySelected = 'S'#243'lo &Seleccionados' + ExtendedSelect = 'Selecci'#243'n &Extendida' + IncludeFixed = '&Incluir Fijos' + Fonts = 'Fuentes' + BtnFont = 'Fue&nte...' + BtnEvenFont = 'Fuente &Par...' + BtnOddFont = 'Fuente &Impar...' + BtnFixedFont = 'Fuente F&ijo...' + BtnGroupFont = 'Fuente de Gru&po...' + BtnChangeFont = 'Cambiar Fue&nte...' + Font = 'Fuente' + OddFont = 'Fuente Impar' + EvenFont = 'Fuente Par' + PreviewFont = 'Fuente Vista Prev.' + CaptionNodeFont = 'Fuente T'#237'tulo del Nivel' + GroupNodeFont = 'Fuente T'#237'tulos de Grupo' + GroupFooterFont = 'Fuente Pies de Grupo' + HeaderFont = 'Fuente Cabecera' + FooterFont = 'Fuente Pie' + BandFont = 'Fuente Groups' + Transparent = '&Transparente' + FixedTransparent = 'Transparente Fijo' + CaptionTransparent = 'T'#237'tulo Transparente' + GroupTransparent = 'Grupo Transparente' + GraphicAsTextValue = '(GRAPHIC)' + Colors = 'Colores' + Color = 'Co&lor:' + OddColor = 'Co&lor Impar:' + EvenColor = 'Color Par:' + PreviewColor = 'Color V.&Previa:' + BandColor = 'Color &Grupos:' + LevelCaptionColor = 'Color T'#237'tulo Ni&vel:' + HeaderColor = 'Color Cab&ecera:' + GroupNodeColor = 'Color &Nodo Grupo:' + GroupFooterColor = 'Color Pie &Grupo:' + FooterColor = 'Color P&ie:' + FixedColor = 'Color F&ijo:' + GroupColor = 'Color Gru&po:' + CaptionColor = 'Color T'#237'tulo:' + GridLinesColor = 'Color L'#237'nea &Rejilla:' + Bands = '&Grupos' + LevelCaptions = 'T'#237'tulo Niveles' + Headers = 'Cab&eceras' + Footers = 'P&ies&' + GroupFooters = 'Pies de &Grupos' + Preview = 'Vista Pre&via' + PreviewLineCount = 'N'#250'm.L'#237'neas V.Previa:' + AutoCalcPreviewLineCount = 'A&uto-Calcular L'#237'neas V.Previa' + Grid = 'Re&jilla&' + NodesGrid = '&Nodos de Rejilla' + GroupFooterGrid = 'Rejilla de Gru&pos Pie' + StateImages = 'Imagenes de E&stado' + Images = '&Imagenes' + TextAlign = '&Alineaci'#243'n Texto' + TextAlignHorz = 'Hori&zontal' + TextAlignVert = '&Vertical' + TextAlignLeft = 'Izquierda' + TextAlignCenter = 'Centrado' + TextAlignRight = 'Derecha' + TextAlignTop = 'Superior' + TextAlignVCenter = 'Centrado' + TextAlignBottom = 'Inferior' + BorderLines = 'L'#237'neas de &Borde' + HorzLines = 'L'#237'neas Hori&zontales' + VertLines = 'L'#237'neas &Verticales' + FixedHorzLines = 'L'#237'neas Horizontales Fi&jas' + FixedVertLines = 'L'#237'neas Verticales Fij&as' + FlatCheckMarks = 'Cajas de Verificaci'#243'n P&lanas' + CheckMarksAsText = '&Mostrar Cajas Verificaci'#243'n como Text' + RowAutoHeight = 'Altura &Fila Auto.' + EndEllipsis = '&Puntos Suspens.' + DrawBorder = '&Dibujar Borde' + FullExpand = '&Expandir Todo' + BorderColor = 'Color &Borde:' + AutoNodesExpand = 'Expandir N&odos' + ExpandLevel = 'Expandir &Niveles:' + FixedRowOnEveryPage = 'Filas Fijas en &Cada P'#225'gina' + DrawMode = '&Modo Dibujo:' + DrawModeStrict = 'Estricto' + DrawModeOddEven = 'Modo Filas Par/Impar' + DrawModeChess = 'Modo '#39'Ajedrez'#39 + DrawModeBorrow = 'Prestar de Fuente' + ThreeDEffects = 'Efectos 3D' + Use3DEffects = 'Usar Efectos &3D' + Soft3D = '3D "Suave"' + Behaviors = 'Comportamiento' + Miscellaneous = 'Miscelaneo' + OnEveryPage = 'En Cada P'#225'gina' + NodeExpanding = 'Expansi'#243'n de Nodos' + Selection = 'Selecci'#243'n' + NodeAutoHeight = 'Altura &Nodo Auto.' + TransparentGraphics = 'Gr'#225'ficos &Transparentes' + AutoWidth = 'An&chura Auto.' + DisplayGraphicsAsText = 'Mostrar Gr'#225'fico Como &Texto' + TransparentColumnGraphics = '&Gr'#225'ficos Transparentes' + BandsOnEveryPage = 'Grupos En C&ada P'#225'gina' + HeadersOnEveryPage = 'Cabeceras en Cada &P'#225'gina' + FootersOnEveryPage = 'Pies en Ca&da P'#225'gina' + Graphics = 'Gr'#225'ficos' + OutOfResources = 'Out of Resources' + FileAlreadyExists = 'Fichero "%s" Ya Existe.' + ConfirmOverWrite = 'Fichero "%s" ya existe. '#191'Sobreescribir?' + InvalidFileName = 'Nombre No V'#225'lido "%s"' + RequiredFileName = 'Entrar nombre de fichero.' + OutsideMarginsMessage = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + OutsideMarginsMessage2 = + 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + + 'a.' + InvalidMarginsMessage = 'Uno o m'#225's margenes tiene valores no v'#225'lidos.' + InvalidMargins = 'Uno o m'#225's valores de los margenes no es v'#225'lido' + OutsideMargins = + 'Uno o m'#225's margenes se ha establecido fuera del area de impresi'#243'n' + + ' de la p'#225'gina' + ThereAreNowItemsForShow = 'No existen elementos en '#233'sta vista' + PageBackground = 'Fondo de P'#225'gina' + PenColor = 'Color del L'#225'piz' + FontColor = 'Color del Fuente' + BrushColor = 'Color de la Brocha' + HighLight = 'HighLight' + ColorBlack = 'Negro' + ColorDarkRed = 'Rojo Oscuro' + ColorRed = 'Rojo' + ColorPink = 'Rosa' + ColorRose = 'Rosado' + ColorBrown = 'Marr'#243'n' + ColorOrange = 'Naranja' + ColorLightOrange = 'Naranja Claro' + ColorGold = 'Oro' + ColorTan = 'Dorado' + ColorOliveGreen = 'Verde Oliva' + ColorDrakYellow = 'Amarillo Oscuro' + ColorLime = 'Lima' + ColorYellow = 'Amarillo' + ColorLightYellow = 'Amarillo Claro' + ColorDarkGreen = 'Verde Oscuro' + ColorGreen = 'Verde' + ColorSeaGreen = 'Verde Mar' + ColorBrighthGreen = 'Verde Florecente' + ColorLightGreen = 'Verde Claro' + ColorDarkTeal = 'VerdeAzul Oscuro' + ColorTeal = 'VerdeAzul' + ColorAqua = 'Aqua' + ColorTurquoise = 'Turquesa' + ColorLightTurquoise = 'Turquesa Claro' + ColorDarkBlue = 'Azul Oscuro' + ColorBlue = 'Azul' + ColorLightBlue = 'Azul Claro' + ColorSkyBlue = 'Azul Cielo' + ColorPaleBlue = 'Azul P'#225'lido' + ColorIndigo = 'Indigo' + ColorBlueGray = 'Azul Gris' + ColorViolet = 'Violeta' + ColorPlum = 'Granate' + ColorLavender = 'Lav'#225'nder' + ColorGray80 = 'Gris-80%' + ColorGray50 = 'Gris-50%' + ColorGray40 = 'Gris-40%' + ColorGray25 = 'Gris-25%' + ColorWhite = 'Blanco' + Texture = '&Textura' + Pattern = '&Dibujo' + Picture = '&Im'#225'gen' + Foreground = '&Primer Plano' + Background = '&Fondo' + Sample = 'Ejemplo:' + FEFCaption = 'Efectos de Relleno' + PaintMode = '&Modo Pintar' + PaintModeCenter = 'Centrar' + PaintModeStretch = 'Estirar' + PaintModeTile = 'Mosaico' + PaintModeProportional = 'Proporcional' + PatternGray5 = '5%' + PatternGray10 = '10%' + PatternGray20 = '20%' + PatternGray25 = '25%' + PatternGray30 = '30%' + PatternGray40 = '40%' + PatternGray50 = '50%' + PatternGray60 = '60%' + PatternGray70 = '70%' + PatternGray75 = '75%' + PatternGray80 = '80%' + PatternGray90 = '90%' + PatternLightDownwardDiagonal = 'Light downward diagonal' + PatternLightUpwardDiagonal = 'Light upward diagonal' + PatternDarkDownwardDiagonal = 'Dark downward diagonal' + PatternDarkUpwardDiagonal = 'Dark upward diagonal' + PatternWideDownwardDiagonal = 'Wide downward diagonal' + PatternWideUpwardDiagonal = 'Wide upward diagonal' + PatternLightVertical = 'Light vertical' + PatternLightHorizontal = 'Light horizontal' + PatternNarrowVertical = 'Narrow vertical' + PatternNarrowHorizontal = 'Narrow horizontal' + PatternDarkVertical = 'Dark vertical' + PatternDarkHorizontal = 'Dark horizontal' + PatternDashedDownward = 'Dashed downward' + PatternDashedUpward = 'Dashed upward' + PatternDashedVertical = 'Dashed vertical' + PatternDashedHorizontal = 'Dashed horizontal' + PatternSmallConfetti = 'Small confetti' + PatternLargeConfetti = 'Large confetti' + PatternZigZag = 'Zig zag' + PatternWave = 'Wave' + PatternDiagonalBrick = 'Diagonal brick' + PatternHorizantalBrick = 'Horizontal brick' + PatternWeave = 'Weave' + PatternPlaid = 'Plaid' + PatternDivot = 'Divot' + PatternDottedGrid = 'Dottedgrid' + PatternDottedDiamond = 'Dotted diamond' + PatternShingle = 'Shingle' + PatternTrellis = 'Trellis' + PatternSphere = 'Sphere' + PatternSmallGrid = 'Small grid' + PatternLargeGrid = 'Large grid' + PatternSmallCheckedBoard = 'Small checked board' + PatternLargeCheckedBoard = 'Large checked board' + PatternOutlinedDiamond = 'Outlined diamond' + PatternSolidDiamond = 'Solid diamond' + TextureNewSprint = 'Newsprint' + TextureGreenMarble = 'Green marble' + TextureBlueTissuePaper = 'Blue tissue paper' + TexturePapyrus = 'Papyrus' + TextureWaterDroplets = 'Water droplets' + TextureCork = 'Cork' + TextureRecycledPaper = 'Recycled paper' + TextureWhiteMarble = 'White marble' + TexturePinkMarble = 'Pink marble' + TextureCanvas = 'Canvas' + TexturePaperBag = 'Paper bag' + TextureWalnut = 'Walnut' + TextureParchment = 'Parchment' + TextureBrownMarble = 'Brown marble' + TexturePurpleMesh = 'Purple mesh' + TextureDenim = 'Denim' + TextureFishFossil = 'Fish fossil' + TextureOak = 'Oak' + TextureStationary = 'Stationary' + TextureGranite = 'Granite' + TextureBouquet = 'Bouquet' + TextureWonenMat = 'Woven mat' + TextureSand = 'Sand' + TextureMediumWood = 'Medium wood' + FSPCaption = 'Vista de Im'#225'gen' + Width = 'Altura' + Height = 'Altura' + BrushDlgCaption = 'Propiedades de la Brocha' + Style = 'E&stilo:' + ENFNCaption = 'Escoge Nombre de Fichero' + EnterNewFileName = 'Introduzca Nuevo Nombre de Fichero' + DefinePrintStylesCaption = 'Definir Estilos de Impresi'#243'n' + DefinePrintStylesTitle = 'E&stilos de Impresi'#243'n' + DefinePrintStylesWarningDelete = #191' Desea borrar "%s" ?' + DefinePrintStylesWarningClear = #191'Desea borrar todos los estilos existentes?' + Clear = 'E&liminar...' + CustomSize = 'Tama'#241'o Personalizado' + DefaultTray = 'Bandeja de Entrada' + InvalidPrintDevice = 'La impresora seleccionada no es v'#225'lida' + NotPrinting = 'La impresora no est'#225' imprimiendo' + Printing = 'Imprimiendo' + DeviceOnPort = '%s en %s' + PrinterIndexError = #205'ndice de Impresora fueera de rango' + NoDefaultPrintDevice = 'No hay ninguna impresora seleccionada' + AutoTextDialogCaption = 'Editar Entidades AutoTexto' + EnterAutoTextEntriesHere = 'Entrar Entidades A&utoTexto Aqu'#237':' + PrintDialogCaption = 'Imprimir' + PrintDialogPrinter = 'Impresora' + PrintDialogName = '&Nombre:' + PrintDialogStatus = 'Estado:' + PrintDialogType = 'Tipo:' + PrintDialogWhere = 'D'#243'nde:' + PrintDialogComment = 'Comentario:' + PrintDialogPrintToFile = 'A &Fichero' + PrintDialogPageRange = 'Rango de P'#225'g.' + PrintDialogAll = '&Todas' + PrintDialogCurrentPage = 'P'#225'g. A&ctual' + PrintDialogSelection = '&Selecci'#243'n' + PrintDialogPages = '&P'#225'ginas:' + PrintDialogRangeLegend = 'Entre el n'#250'mero de p'#225'gina o un rango de p'#225'ginas' + PrintDialogCopies = 'Copias' + PrintDialogNumberOfPages = 'N&'#250'mero de P'#225'g.:' + PrintDialogNumberOfCopies = 'N'#250'mero de &Copias:' + PrintDialogCollateCopies = 'In&tercalar Copias' + PrintDialogAllPages = 'Todas' + PrintDialogEvenPages = 'Pares' + PrintDialogOddPages = 'Impares' + PrintDialogPrintStyles = 'Est&ilos Impresi'#243'n' + PrintDialogOpenDlgTitle = 'Elije un Fichero' + PrintDialogOpenDlgAllFiles = 'Todos los Ficheros' + PrintDialogOpenDlgPrinterFiles = 'Ficheros de Impresora' + PrintDialogPageNumbersOutOfRange = 'N'#250'mero de p'#225'gina fuera de rango (%d - %d)' + PrintDialogInvalidPageRanges = 'Rango de p'#225'ginas no v'#225'lido' + PrintDialogRequiredPageNumbers = 'Introduzca n'#250'meros de p'#225'ginas' + PrintDialogNoPrinters = 'No printers are installed.' + PrintDialogInPrintingState = 'La impresora est'#225' ocupado.' + PrintDialogPSPaused = 'Pausado' + PrintDialogPSPendingDeletion = 'Pendiente Borrar' + PrintDialogPSBusy = 'Ocupado' + PrintDialogPSDoorOpen = 'Puerta Abierta' + PrintDialogPSError = 'Error' + PrintDialogPSInitializing = 'Inicializando' + PrintDialogPSIOActive = 'E/S Activo' + PrintDialogPSManualFeed = 'Alimentaci'#243'n Manual' + PrintDialogPSNoToner = 'Toner Terminado' + PrintDialogPSNotAvailable = 'No Disponible' + PrintDialogPSOFFLine = 'Fuera de L'#237'nea' + PrintDialogPSOutOfMemory = 'Memoria Agotada' + PrintDialogPSOutBinFull = 'Bandeja de Salida Llena' + PrintDialogPSPagePunt = 'Page Punt' + PrintDialogPSPaperJam = 'Papel Enganchado' + PrintDialogPSPaperOut = 'Sin Papel' + PrintDialogPSPaperProblem = 'Problema de Papel' + PrintDialogPSPrinting = 'Imprimiendo' + PrintDialogPSProcessing = 'Procesando' + PrintDialogPSTonerLow = 'Toner Bajo' + PrintDialogPSUserIntervention = 'Intervenci'#243'n del Usuario' + PrintDialogPSWaiting = 'Esperando' + PrintDialogPSWarningUp = 'Precalientamiento' + PrintDialogPSReady = 'Lista' + PrintDialogPSPrintingAndWaiting = 'Imprimiendo: %d documento(s) esperando' + LeftMargin = 'Margen Izquierdo' + TopMargin = 'Margin Superior' + RightMargin = 'Margin Derecho' + BottomMargin = 'Margin Inferior' + GutterMargin = 'Gutter' + HeaderMargin = 'Cabecera' + FooterMargin = 'Pie' + UnitsInches = '"' + UnitsCentimeters = 'cm' + UnitsMillimeters = 'mm' + UnitsPoints = 'pt' + UnitsPicas = 'pi' + UnitsDefaultName = 'Predeterminada' + UnitsInchesName = 'Pulgadas' + UnitsCentimetersName = 'Centimetros' + UnitsMillimetersName = 'Milimetros' + UnitsPointsName = 'Puntos' + UnitsPicasName = 'Picas' + PrintPreview = 'Vista Previa' + ReportDesignerCaption = 'Dise'#241'ador de Informes' + CompositionDesignerCaption = 'Dise'#241'ador de Composici'#243'n' + ComponentNotSupportedByLink = 'Component "%s" not supported by TdxComponentPrinter' + ComponentNotSupported = 'Component "%s" not supported by TdxComponentPrinter' + PrintDeviceNotReady = 'La impresora no est'#225' instalada o no est'#225' preparada' + UnableToGenerateReport = 'No se ha podido generar el informe' + PreviewNotRegistered = 'There is no registered preview form' + ComponentNotAssigned = '%s' + PrintDeviceIsBusy = 'Impresora ocupada' + PrintDeviceError = #161'La impresora ha encontrado un error!' + MissingComponent = 'Missing "Component" property' + DataProviderDontPresent = 'There are no Links with Assigned Component in Composition' + BuildingReport = 'Generando informe: Completado %d%%' + PrintingReport = + 'Imprimiendo Informe: Completado %d p'#225'gina(s). Pulse ESC to abort' + + 'ar...' + DefinePrintStylesMenuItem = 'Definir E&stilos de Impresi'#243'n...' + AbortPrinting = #191'Abortar impresi'#243'n?' + StandardStyle = 'Estilo Estandar' + FontStyleBold = 'Negrita' + FontStyleItalic = 'It'#225'lica' + FontStyleUnderline = 'Subrayado' + FontStyleStrikeOut = 'Tachado' + Pt = 'pt.' + NoPages = '[No p'#225'ginas]' + PageWidth = 'Anchura P'#225'g' + WholePage = 'Pag. Completa' + TwoPages = 'Dos P'#225'ginas' + FourPages = 'Cuatro P'#225'ginas' + WidenToSourceWidth = 'Ajustar a Anchura' + MenuBar = 'MenuBar' + StandardBar = 'Standard' + HeaderFooterBar = 'Header and Footer' + ShortcutMenusBar = 'Shortcut Menus' + AutoTextBar = 'AutoTexto' + MenuFile = '&Ficheros' + MenuFileDesign = '&Dise'#241'o...' + MenuFilePrint = '&Imprimir...' + MenuFilePageSetup = 'Con&fig. P'#225'gina...' + MenuPrintStyles = 'Estilos Impresi'#243'n' + MenuFileExit = '&Cerrar' + MenuEdit = '&Editar' + MenuEditCut = 'Cor&tar' + MenuEditCopy = '&Copiar' + MenuEditPaste = '&Pegar' + MenuEditDelete = '&Borrar' + MenuEditFind = '&Buscar...' + MenuEditFindNext = 'Buscar Si&guiente' + MenuEditReplace = '&Reemplazar...' + MenuLoad = '&Cargar...' + MenuPreview = 'V. Pre&via...' + MenuInsert = '&Insertar' + MenuInsertAutoText = '&AutoTexto' + MenuInsertEditAutoTextEntries = 'AutoTe&xto...' + MenuInsertAutoTextEntries = '&(Lista de Entradas AutoTexto)' + MenuInsertAutoTextEntriesSubItem = 'In&sertar AutoTexto' + MenuInsertPageNumber = 'N'#250'm &P'#225'g.' + MenuInsertTotalPages = '&N'#250'm. de P'#225'g.' + MenuInsertPageOfPages = 'N'#250'm de P'#225'&g. de P'#225'ginas' + MenuInsertDateTime = 'Fechay Hora' + MenuInsertDate = '&Fecha' + MenuInsertTime = '&Hora' + MenuInsertUserName = 'Nombre &Usuario' + MenuInsertMachineName = 'Nombre &Maquina' + MenuView = '&Vista' + MenuViewMargins = '&Margenes' + MenuViewFlatToolBarButtons = 'Botones &Planos' + MenuViewLargeToolBarButtons = 'Botones &Grandes' + MenuViewMarginsStatusBar = 'Barra de M&argenes' + MenuViewPagesStatusBar = 'Barra de E&stado' + MenuViewToolBars = '&Herramientas' + MenuViewPagesHeaders = '&Cabeceras de P'#225'gina' + MenuViewPagesFooters = '&Pies de P'#225'ginas' + MenuViewSwitchToLeftPart = 'Switch to Left Part' + MenuViewSwitchToRightPart = 'Switch to Right Part' + MenuViewSwitchToCenterPart = 'Switch to Center Part' + MenuViewHFSwitchHeaderFooter = 'Mo&strar Cabecera/Pie' + MenuViewHFClose = '&Cerrar' + MenuZoom = '&Aumentar' + MenuZoomPercent100 = 'Porcien &100' + MenuZoomPageWidth = '&Anchura P'#225'gina' + MenuZoomWholePage = 'P'#225'gina C&ompleta' + MenuZoomTwoPages = '&Dos P'#225'ginas' + MenuZoomFourPages = '&Cuatro P'#225'ginas' + MenuZoomMultiplyPages = 'P'#225'ginas &M'#250'ltiples' + MenuZoomWidenToSourceWidth = 'Aju&star a Anchura' + MenuZoomSetup = '&Config...' + MenuPages = '&P'#225'ginas' + MenuGotoPage = '&Saltar' + MenuGotoPageFirst = '&Primera P'#225'g.' + MenuGotoPagePrev = 'P'#225'g. &Anteror' + MenuGotoPageNext = 'Pr'#243'&xima P'#225'g.' + MenuGotoPageLast = #218'l&tima P'#225'g.' + MenuActivePage = 'P'#225'g. Acti&va:' + MenuFormat = 'F&ormato' + MenuFormatHeaderAndFooter = '&Cabeceras y Pies' + MenuFormatAutoTextEntries = 'Entradas &AutoTexto...' + MenuFormatDateTime = 'Fecha y &Hora...' + MenuFormatPageNumbering = '&Numeraci'#243'n P'#225'ginas...' + MenuFormatPageBackground = 'Fon&do...' + MenuFormatShrinkToPage = '&Reducir a P'#225'g.' + MenuShowEmptyPages = 'Mostrar P'#225'g. &Vacias' + MenuFormatHFBackground = 'Fondo de Cabecera/Pie...' + MenuFormatHFClear = 'Vaciar Texto' + MenuTools = '&Herramientas' + MenuToolsCustomize = '&Personalizar...' + MenuToolsOptions = '&Opciones...' + MenuHelp = 'A&yuda' + MenuHelpTopics = '&Temas de Ayuda...' + MenuHelpAbout = '&Acerca de...' + MenuShortcutPreview = 'V.Previa' + MenuShortcutAutoText = 'AutoTexto' + MenuBuiltInMenus = 'Men'#250's Incorporados' + MenuShortCutMenus = 'Men'#250's de Atajos' + MenuNewMenu = 'Men'#250' Nuevo' + HintFileDesign = 'Dise'#241'ar Informe' + HintFilePrint = 'Imprimir' + HintFilePrintDialog = 'Configuarar la Impresora' + HintFilePageSetup = 'Configurar la P'#225'gina' + HintFileExit = 'Cerrar Vista Previa' + HintEditFind = 'Buscar' + HintEditFindNext = 'Buscar Siguiente' + HintEditReplace = 'Reemplazar' + HintInsertEditAutoTextEntries = 'Editar Entradas AutoTexto' + HintInsertPageNumber = 'Insertar N'#250'mero P'#225'gina' + HintInsertTotalPages = 'Insertar N'#250'mero de P'#225'ginas' + HintInsertPageOfPages = 'Insertar P'#225'gina N'#250'mero de P'#225'ginas' + HintInsertDateTime = 'Insertar Fecha y Hora' + HintInsertDate = 'Insertar Fecha' + HintInsertTime = 'Insert Hora' + HintInsertUserName = 'Insertar Nombre Usuario' + HintInsertMachineName = 'Insertar Nombre Maquina' + HintViewMargins = 'Ver Margenes' + HintViewLargeButtons = 'Ver Botones Grandes' + HintViewMarginsStatusBar = 'Ver Barra de Esatdo de Margenes' + HintViewPagesStatusBar = 'Ver Barra de Estado de P'#225'gina' + HintViewPagesHeaders = 'Vee Cabecera de P'#225'gina' + HintViewPagesFooters = 'Ver Pie de P'#225'gina' + HintViewSwitchToLeftPart = 'Cambiar a Cabecera/Pie Izquierda' + HintViewSwitchToRightPart = 'Cambiar a Cabecera/Pie Derecha' + HintViewSwitchToCenterPart = 'Cambiar a Cabecera/Pie Centrada' + HintViewHFSwitchHeaderFooter = 'Cambiar a Cabecera y Pie' + HintViewHFClose = 'Cerrar' + HintViewZoom = 'Aumentar' + HintZoomPercent100 = 'Aumentar al 100%' + HintZoomPageWidth = 'Aumentar a Anchura de P'#225'gina' + HintZoomWholePage = 'P'#225'gina Completa' + HintZoomTwoPages = 'Dos P'#225'ginas' + HintZoomFourPages = 'Cuatro P'#225'ginas' + HintZoomMultiplyPages = 'P'#225'ginas M'#250'ltiples' + HintZoomWidenToSourceWidth = 'Ajustar a la Anchura' + HintZoomSetup = 'Introducir Factor de Aumento' + HintFormatDateTime = 'Formato de Fecha y Hora' + HintFormatPageNumbering = 'Formato de N'#250'mero de P'#225'gina' + HintFormatPageBackground = 'Fondo' + HintFormatShrinkToPage = 'Reducir a P'#225'gina' + HintFormatHFBackground = 'Fondo de Cabecera/Pie' + HintFormatHFClear = 'Vaciar Texto Cabecera/Pie' + HintGotoPageFirst = 'Primera P'#225'gina' + HintGotoPagePrev = 'P'#225'gina Anterior' + HintGotoPageNext = 'Pr'#243'xima P'#225'gina' + HintGotoPageLast = #218'ltima P'#225'gina' + HintActivePage = 'P'#225'gina Activa' + HintToolsCustomize = 'Personalizar Herramientas' + HintToolsOptions = 'Opciones' + HintHelpTopics = 'Temas de Ayuda' + HintHelpAbout = 'Acerca de' + PopupMenuLargeButtons = 'Botones &Grandes' + PopupMenuFlatButtons = 'Botones &Planos' + PaperSize = 'Tama'#241'o Papel' + Status = 'Estado' + StatusReady = 'Lista' + StatusPrinting = 'Imprimiendo. %d p'#225'gina(s) terminada(s)' + StatusGenerateReport = 'Generando Informe. %d%% completado.' + HintDoubleClickForChangePaperSize = 'Doble Clic para Cambiar el Tama'#241'o de P'#225'gina' + HintDoubleClickForChangeMargins = 'Doble Clic para Cambiar Margenes' + DTFormatsCaption = 'Fecha y Hora' + DTFormatsAvailableDateFormats = 'Formatos de &Fecha Disponibes:' + DTFormatsAvailableTimeFormats = 'Formatos de &Hora Disponibles:' + DTFormatsAutoUpdate = 'Act. &Autom'#225'tica' + DTFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de fecha y hora al "%s" -' + + ' "%s" ?' + PNFormatsCaption = 'Formato de N'#250'mero de P'#225'gina' + PageNumbering = 'Numeraci'#243'n de P'#225'ginas' + PNFormatsNumberFormat = '&Format N'#250'mero:' + PNFormatsContinueFromPrevious = '&Continuar desde '#218'ltima Secci'#243'n' + PNFormatsStartAt = 'Empezar &En:' + PNFormatsChangeDefaultFormat = + 'Confirme que desea cambiar el formato de numeraci'#243'n de p'#225'ginas a' + + 'l "%s" ?' + ZoomDlgCaption = 'Aumentar' + ZoomDlgZoomTo = 'Aumentar a' + ZoomDlgPageWidth = '&Ancho P'#225'g.' + ZoomDlgWholePage = 'P'#225'g.C&ompleta' + ZoomDlgTwoPages = '&Dos P'#225'ginas' + ZoomDlgFourPages = '&Cuatro P'#225'g.' + ZoomDlgManyPages = '&Varias P'#225'g.:' + ZoomDlgPercent = 'P&orcien:' + ZoomDlgPreview = 'Vista' + ZoomDlgFontPreview = '10pt Times New Romam' + ZoomDlgFontPreviewString = 'AaBbCcDdEeXxYyZz' + Pages = 'P'#225'ginas' + Cancel = 'Cancelar' + PreferenceDlgCaption = 'Opciones' + PreferenceDlgTab1 = '&General' + PreferenceDlgShow = '&Mostrar' + PreferenceDlgMargins = '&Margenes' + PreferenceDlgMarginsHints = 'A&yudas Margenes' + PreferenceDlgMargingWhileDragging = 'Ayudas Margins con A&rrastre' + PreferenceDlgLargeBtns = 'Botones &Grandes para Barras' + PreferenceDlgFlatBtns = 'Botones &Planos para Barras' + PreferenceDlgMarginsColor = '&Color Margenes:' + PreferenceDlgMeasurementUnits = '&Unidades de Medida:' + PreferenceDlgSaveForRunTimeToo = 'Gua&rdar en Ejecucci'#243'n tambien' + PreferenceDlgZoomScroll = 'Despla&zamiento con IntelliMouse' + PreferenceDlgZoomStep = 'Au&mento:' + CloneStyleCaptionPrefix = 'Copia (%d) de' + InvalideStyleCaption = 'Nombre de estilo "%s" existente. Por favor, introduzca otro.' + PageSetupCaption = 'Configuraci'#243'n de la P'#225'gina' + StyleName = '&Nombre Estilo:' + Page = '&P'#225'gina' + Margins = '&Margenes' + HeaderFooter = '&Cabecera\Pie' + Scaling = '&Escala' + Paper = 'Papel' + PaperType = 'T&ipo' + PaperDimension = 'Dimensi'#243'nes' + PaperWidth = '&Anchura:' + PaperHeight = 'A<ura:' + PaperSource = 'Bande&ja' + Orientation = 'Orientaci'#243'n' + Portrait = 'N&ormal' + Landscape = '&Apaisado' + PrintOrder = 'Orden de Impresi'#243'n' + DownThenOver = '&Abajo, derecha' + OverThenDown = '&Derecha, abajo' + Shading = 'Sombreado' + PrintUsingGrayShading = 'Imprimir usando sombreado &gris' + CenterOnPage = 'Centrar' + Horizontally = 'Hori&zontal' + Vertically = '&Vertical' + Header = 'Cabecera' + BtnHeaderFont = '&Fuente...' + BtnHeaderBackground = '&Fondo' + Footer = 'Pie' + BtnFooterFont = 'Fue&nte...' + BtnFooterBackground = 'F&ondo' + CaptionTop = '&Sup.:' + CaptionLeft = '&Izqu.:' + CaptionRight = '&Derecha:' + CaptionBottom = '&Inferior:' + Header2 = '&Cabec.:' + Footer2 = '&Pie:' + Alignment = 'Alineamiento' + VertAlignment = 'Alineamiento Vertical' + ReverseOnEvenPages = 'Al &rev'#233's en p'#225'ginas pares' + AdjustTo = '&Ajustar a:' + FitTo = 'P'#225'&ginas:' + PercentOfNormalSize = '% tama'#241'o normal' + PagesWideBy = 'p'#225'g(s) de &ancho' + Tall = 'de a<o' + XOfY = 'De' + LastPrinted = #218'ltima Impresi'#243'n' + FileName = 'Fichero' + FileNameAndPath = 'Fichero y camino' + PrintedBy = 'Impreso por' + PrintedOn = 'Impreso el' + CreatedBy = 'Creado por' + CreatedOn = 'Creado el' + Confidential = 'Confidencial' + HFFunctionNameUnknown = 'Desconocido' + HFFunctionNamePageNumber = 'N'#250'm. P'#225'gina' + HFFunctionNameTotalPages = 'P'#225'g. Totales' + HFFunctionNamePageOfPages = 'P'#225'g. # de P'#225'gs. #' + HFFunctionNameDateTime = 'Fecha y Hora' + HFFunctionNameDate = 'Fecha' + HFFunctionNameTime = 'Hora' + HFFunctionNameUserName = 'Nombre Usuario' + HFFunctionNameMachineName = 'Nombre Maquina' + HFFunctionHintPageNumber = 'Page Number' + HFFunctionHintTotalPages = 'Total Pages' + HFFunctionHintPageOfPages = 'Page # of Pages #' + HFFunctionHintDateTime = 'Date and Time Printed' + HFFunctionHintDate = 'Date Printed' + HFFunctionHintTime = 'Time Printed' + HFFunctionHintUserName = 'User Name' + HFFunctionHintMachineName = 'Machine Name' + HFFunctionTemplatePageNumber = 'Page #' + HFFunctionTemplateTotalPages = 'Total Pages' + HFFunctionTemplatePageOfPages = 'Page # of Pages #' + HFFunctionTemplateDateTime = 'Date & Time Printed' + HFFunctionTemplateDate = 'Date Printed' + HFFunctionTemplateTime = 'Time Printed' + HFFunctionTemplateUserName = 'User Name' + HFFunctionTemplateMachineName = 'Machine Name' + January = 'Enero' + February = 'Febrero' + March = 'Marzo' + April = 'Abril' + May = 'Mayo' + June = 'Junio' + July = 'Julio' + August = 'Agosto' + September = 'Septiembre' + October = 'Octubre' + November = 'Noviembre' + December = 'Diciembre' + East = 'Este' + West = 'Oeste' + South = 'Sur' + North = 'Norte' + Total = 'Total' + Plan = 'Plan' + SwimmingPool = 'Swimming-pool' + Administration = 'Administration' + Park = 'Park' + CarParking = 'Car-Parking' + CorporateHeadquarters = 'Corporate' + SalesAndMarketing = 'Sales and' + Engineering = 'Engineering' + FieldOfficeCanada = 'Field Office:' + OrderNoCaption = 'OrderNo' + NameCaption = 'Name' + CountCaption = 'Count' + CompanyCaption = 'Company' + AddressCaption = 'Address' + PriceCaption = 'Price' + CashCaption = 'Cash' + Name1 = 'Jennie Valentine' + Name2 = 'Sam Hill' + Company1 = 'Jennie Inc.' + Company2 = 'Daimler-Chrysler AG' + Address1 = '123 Home Lane' + Address2 = '9333 Holmes Dr.' + CountIs = 'Count is: %d' + Regular = 'Regular' + Irregular = 'Irregular' + TLBand = 'Item Data' + TLColumnName = 'Name' + TLColumnAxisymmetric = 'Axisymmetric' + TLColumnItemShape = 'Shape' + ItemShapeAsText = '(Graphic)' + Item1Name = 'Cone' + Item2Name = 'Cylinder' + Item3Name = 'Pyramid' + Item4Name = 'Box' + Item5Name = 'Free Surface' + Item2Description = 'Axisymmetric geometry figure' + Item3Description = 'Axisymmetric geometry figure' + Item4Description = 'Acute-angled geometry figure' + Item7Description = 'Simple extrusion surface' + PatternIsNotRegistered = 'Pattern "%s" is not registered' + SolidEdgePattern = 'Solid' + ThinSolidEdgePattern = 'Medium Solid' + MediumSolidEdgePattern = 'Medium Solid' + ThickSolidEdgePattern = 'Thick Solid' + DottedEdgePattern = 'Dotted' + DashedEdgePattern = 'Dashed' + DashDotDotEdgePattern = 'Dash Dot Dot' + DashDotEdgePattern = 'Dash Dot' + SlantedDashDotEdgePattern = 'Slanted Dash Dot' + MediumDashDotDotEdgePattern = 'Medium Dash Dot Dot' + HairEdgePattern = 'Hair' + MediumDashDotEdgePattern = 'Medium Dash Dot' + MediumDashedEdgePattern = 'Medium Dashed' + DoubleLineEdgePattern = 'Double Line' + SolidFillPattern = 'Solid' + Gray75FillPattern = '75% Gray' + Gray50FillPattern = '50% Gray' + Gray25FillPattern = '25% Gray' + Gray125FillPattern = '12.5% Gray' + Gray625FillPattern = '6.25% Gray' + HorizontalStripeFillPattern = 'Horizontal Stripe' + VerticalStripeFillPattern = 'Vertical Stripe' + ReverseDiagonalStripeFillPattern = 'Reverse Diagonal Stripe' + DiagonalStripeFillPattern = 'Diagonal Stripe' + DiagonalCrossHatchFillPattern = 'Diagonal Cross Hatch' + ThickCrossHatchFillPattern = 'Thick Cross Hatch' + ThinHorizontalStripeFillPattern = 'Thin Horizontal Stripe' + ThinVerticalStripeFillPattern = 'Thin Vertical Stripe' + ThinReverseDiagonalStripeFillPattern = 'Thin Reverse Diagonal Stripe' + ThinDiagonalStripeFillPattern = 'Thin Diagonal Stripe' + ThinHorizontalCrossHatchFillPattern = 'Thin Horizontal Cross Hatch' + ThinDiagonalCrossHatchFillPattern = 'Thin Diagonal Cross Hatch' + ShowRowAndColumnHeadings = '&Row and column headings' + ShowGridLines = 'GridLines' + SuppressSourceFormats = '&Suppress Source Formats' + RepeatHeaderRowAtTop = 'Repeat header row at top' + DataToPrintDoesnotExist = + 'Can not activate ReportLink because PrintingSystem did not find ' + + 'anything to print.' + JanuaryShort = 'Ene' + FebruaryShort = 'Feb' + MarchShort = 'Mar' + AprilShort = 'Abril' + MayShort = 'Mayo' + JuneShort = 'Jun' + JulyShort = 'Jul' + AugustShort = 'Ago' + SeptemberShort = 'Sept' + OctoberShort = 'Oct' + NovemberShort = 'Nov' + DecemberShort = 'Dic' + TechnicalDepartment = 'Technical Department' + SoftwareDepartment = 'Software Department' + SystemProgrammers = 'System Programmers' + EndUserProgrammers = 'EndUser Programmers' + BetaTesters = 'Beta Testers' + HumanResourceDepartment = 'Human Resource Department' + TreeLines = '&L'#237'neas'#193'rbol' + TreeLinesColor = 'Colore L'#237'neas '#193'rbol:' + ExpandButtons = 'Botones E&xpansi'#243'n' + CheckMarks = 'Cajas Verificaci'#243'n' + TreeEffects = 'Efectos '#193'rbol' + Appearance = 'Apariencia' + CarLevelCaption = 'Coches' + ManufacturerBandCaption = 'Manufacturer Data' + ModelBandCaption = 'Car Data' + ManufacturerNameColumnCaption = 'Name' + ManufacturerLogoColumnCaption = 'Logo' + ManufacturerCountryColumnCaption = 'Country' + CarModelColumnCaption = 'Model' + CarIsSUVColumnCaption = 'SUV' + CarPhotoColumnCaption = 'Photo' + CarManufacturerName1 = 'BMW' + CarManufacturerName2 = 'Ford' + CarManufacturerName3 = 'Audi' + CarManufacturerName4 = 'Land Rover' + CarManufacturerCountry1 = 'Germany' + CarManufacturerCountry2 = 'United States' + CarManufacturerCountry3 = 'Germany' + CarManufacturerCountry4 = 'United Kingdom' + CarModel1 = 'X5 4WD' + CarModel2 = 'Excursion' + CarModel3 = 'S8 Quattro' + CarModel4 = 'G4 Challenge' + True = 'True' + False = 'False' + Auto = 'Auto' + Custom = 'Personal.' + Env = 'Env' + LookAndFeelFlat = 'Plano' + LookAndFeelStandard = 'Estandar' + LookAndFeelUltraFlat = 'UltraPlano' + ViewTab = 'Vista' + BehaviorsTab = 'Comportamiento' + PreviewTab = 'Vista Previa' + CardsTab = 'Fichas' + Formatting = 'Formato' + LookAndFeel = 'Aspecto' + LevelCaption = '&T'#237'tulo' + FilterBar = 'Barra de &Filtro' + Refinements = 'Perfeccionamiento' + ProcessSelection = 'Procesar &Selecci'#243'n' + ProcessExactSelection = 'Procesar Selecci'#243'n E&xacta' + Expanding = 'Despliege' + Groups = '&Grupos' + Details = '&Detalles' + StartFromActiveDetails = 'Empieza desde Detalles Activas' + OnlyActiveDetails = 'S'#243'lo Detalles Activos' + Visible = '&Visible' + PreviewAutoHeight = 'Altura A&utom'#225'tica' + PreviewMaxLineCount = 'L'#237'neas &M'#225'ximas:' + Sizes = 'Tama'#241'os' + KeepSameWidth = 'Manten.Misma Anchura' + KeepSameHeight = 'Manten.Misma Altura' + Framing = 'Marco' + Spacing = 'Espacios' + Shadow = 'Sombra' + Depth = '&Profundidad:' + Position = '&Posici'#243'n' + Positioning = 'Posicionando' + Horizontal = 'H&orizontal:' + Vertical = 'V&ertical:' + SummaryFormat = 'Recuento = 0' + CannotUseOnEveryPageMode = 'Cannot Use OnEveryPage Mode' + IncorrectBandHeadersState = 'Cannot Use BandHeaders OnEveryPage Mode' + IncorrectHeadersState = 'Cannot Use Headers OnEveryPage Mode' + IncorrectFootersState = 'Cannot Use Footers OnEveryPage Mode' + TPicture = 'TPicture' + Copy = '&Copiar' + Save = '&Salvar...' + BaseStyle = 'Estilo Base' + Rectangle = 'Rectangle' + Square = 'Square' + Ellipse = 'Ellipse' + Circle = 'Circle' + RoundRect = 'RoundRect' + RoundSquare = 'RoundSquare' + HorizontalFillPattern = 'Horizontal' + VerticalFillPattern = 'Vertical' + FDiagonalFillPattern = 'FDiagonal' + BDiagonalFillPattern = 'BDiagonal' + CrossFillPattern = 'Cross' + DiagCrossFillPattern = 'DiagCros' + CyclicIDReferences = 'Cyclic ID references %s and %s' + LoadReportDataToFileTitle = 'Cargar Informe' + SaveReportDataToFileTitle = 'Salvar Informe Como' + InvalidExternalStorage = 'Almacenamiento Externo No V'#225'lido' + LinkIsNotIncludedInUsesClause = 'ReportFile contains ReportLink "%0:s"' + InvalidStorageVersion = 'Versi'#243'n de Almacenamiento no V'#225'lido: %d' + PSReportFiles = 'Ficheros de Informes' + ReportFileLoadError = 'No se pudo cargar el informe "%s".' + None = '(Ninguno)' + ReportDocumentIsCorrupted = '(El fichero no es un informe o esta corrupto)' + CloseExplorerHint = 'Cerrar Explorador' + ExplorerCaption = 'Explorador' + ExplorerRootFolderCaption = 'Ra'#237'z' + NewExplorerFolderItem = 'Nueva Carpeta' + CopyOfItem = 'Copia de' + ReportExplorer = 'Explorer de Informes' + DataLoadErrorText = 'No se pudo cargar los datos del informe' + DBBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + FileBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' + DeleteNonEmptyFolderMessageText = 'La carpeta "%s" no est'#225' vacia. A'#250'n as'#237' '#191'desea eliminarlo?' + DeleteFolderMessageText = 'Borrar Carpeta "%s" ?' + DeleteItemMessageText = 'Borrar elemento "%s" ?' + CannotRenameFolderText = + 'Cannot rename folder "%s". A folder with name "%s" already exist' + + 's. Specify a different name.' + CannotRenameItemText = + 'Cannot rename item "%s". An item with name "%s" already exists. ' + + 'Specify a different name.' + OverwriteFolderMessageText = 'This folder "%s" already contains folder named "%s".' + OverwriteItemMessageText = 'This Folder "%s" already contains item named "%s".' + SelectNewRoot = 'Select new Root Directory where the Reports will be stored' + InvalidFolderName = 'Nombre de Carpeta no V'#225'lida "%s"' + InvalidReportName = 'Nombre de Informe no V'#225'lido "%s"' + ExplorerBar = 'Explorador' + MenuFileSave = '&Salvar' + MenuFileSaveAs = 'S&alvar Como...' + MenuFileLoad = '&Cargar' + MenuFileClose = '&Descargar' + HintFileSave = 'Salvar Informe' + HintFileSaveAs = 'Salvar Informe Como' + HintFileLoad = 'Cargar Informe' + HintFileClose = 'Descargar Informe' + MenuExplorer = 'E&xplorador' + MenuExplorerCreateFolder = 'Crear &Carpeta' + MenuExplorerDelete = '&Borrar...' + MenuExplorerRename = 'Reno&mbrar' + MenuExplorerProperties = '&Propiedades...' + MenuExplorerRefresh = 'Refrescar' + MenuExplorerChangeRootPath = 'Cambiar Ra'#237'z...' + MenuExplorerSetAsRoot = 'Establecer Como Ra'#237'z' + MenuExplorerGoToUpOneLevel = 'Subir Un Nivel' + HintExplorerCreateFolder = 'Crear Nueva Carpeta' + HintExplorerDelete = 'Borrar' + HintExplorerRename = 'Renombrar' + HintExplorerProperties = 'Propiedades' + HintExplorerRefresh = 'Refrescar' + HintExplorerChangeRootPath = 'Cambiar Ra'#237'z' + HintExplorerSetAsRoot = 'Establecder Carpeta Actual Como Ra'#237'z' + HintExplorerGoToUpOneLevel = 'Subir Un Nivel' + MenuViewExplorer = 'E&xplorador' + HintViewExplorer = 'Mostar Explorador' + Summary = 'Resumen' + Creator = 'Creado&r:' + CreationDate = 'Crea&do:' + MenuViewThumbnails = 'Miniat&uras' + HintViewThumbnails = 'Mostar Miniaturas' + MenuFormatTitle = 'T&'#237'tulo...' + HintFormatTitle = 'Formatear T'#237'tulo del Informe' + Half = 'Medio' + PredefinedFunctions = 'Funciones Predefinidos' + ZoomParameters = '&Par'#225'metros de Aumento' + WrapData = 'Doblar Datos' + MenuShortcutExplorer = 'Explorador' + ExplorerToolBar = 'Explorador' + MenuThumbnailsSmall = 'Miniaturas &Peque'#241'as' + MenuThumbnailsLarge = 'Miniaturas &Grandes' + MenuShortcutThumbnails = 'Miniaturas' + Buttons = 'Botones' + BtnHeadersFont = 'Fuente &Cabeceras...' + HeadersTransparent = 'Cabeceras Transparentes' + HintListViewDesignerMessage = 'Most Options Are Being Taken Into Account Only In Detailed View' + ColumnHeaders = 'Cabeceras de &Columnas' + ReportGroupNullLookAndFeel = 'Null' + ReportGroupStandardLookAndFeel = 'Standard' + ReportGroupOfficeLookAndFeel = 'Office' + ReportGroupWebLookAndFeel = 'Web' + LayoutGroupDefaultCaption = 'Layout Group' + LayoutItemDefaultCaption = 'Layout Item' + CarManufacturerName5 = 'Volkswagen' + CarManufacturerCountry5 = 'Germany' + CarModel5 = 'Golf GTI' + LuxurySedans = 'Luxury Sedans' + CarManufacturer = 'Manufacturer' + CarModel = 'Model' + CarEngine = 'Engine' + CarTransmission = 'Transmission' + CarTires = 'Tires' + Volvo760V12Manufacturer = 'BMW' + Volvo760V12Model = '760Li V12' + Volvo760V12Engine = + '6.0L DOHC V12 438 HP 48V DI Valvetronic 12-cylinder engine with ' + + '6.0-liter displacement, dual overhead cam valvetrain' + Volvo760V12Transmission = 'Elec 6-Speed Automatic w/Steptronic' + Volvo760V12Tires = + 'P245/45R19 Fr - P275/40R19 Rr Performance. Low Profile tires wit' + + 'h 245mm width, 19.0" rim' + BandHeaderStyle = 'CabeceraGrupo' + CaptionStyle = 'T'#237'tulo' + CardCaptionRowStyle = 'T'#237'tulo Fila Fichas' + CardRowCaptionStyle = 'T'#237'tulo Fila Fichas' + CategoryStyle = 'Categor'#237'a' + ContentStyle = 'Contenido' + ContentEvenStyle = 'Contenido Filas Pares' + ContentOddStyle = 'Contenido Filas Impares' + FilterBarStyle = 'Barra de Filto' + FooterStyle = 'Pie' + FooterRowStyle = 'Pie de Fila' + GroupStyle = 'Grupo' + HeaderStyle = 'Cabecera' + IndentStyle = 'Indentaci'#243'n' + PreviewStyle = 'Vista Previa' + SelectionStyle = 'Selecci'#243'n' + Styles = 'Estilos' + StyleSheets = 'Hojas de Estilos' + BtnTexture = '&Textura...' + BtnTextureClear = 'Elimin&ar' + BtnColor = 'Co&lor...' + BtnSaveAs = 'Salvar &Como...' + BtnRename = '&Renombrar...' + LoadBitmapDlgTitle = 'Cargar Imagen' + DeleteStyleSheet = 'Borrar Hoja de Estilos con Nombre "%s"?' + UnnamedStyleSheet = 'SinNombre' + CreateNewStyleQueryNamePrompt = 'Entre un Nombre de Hoja de Estilo:' + StyleSheetNameAlreadyExists = 'Hoja de Estilo "%s" Ya Existe' + CannotLoadImage = 'No se pudo cargar el imagen "%s"' + UseNativeStyles = '&Usar Estilo Nativo' + SuppressBackgroundBitmaps = '&Suprimir Texturas de Fondo' + ConsumeSelectionStyle = 'Consumir Estilos de Selecci'#243'n' + Size = 'Tama'#241'o' + Levels = 'Niveles' + Unwrap = '&Desdoblar' + UnwrapTopLevel = 'Desdoblar Nivel Superior' + RiseActiveToTop = 'Subir Nivel Activo al Princ'#237'pio' + CannotUseOnEveryPageModeInAggregatedState = 'No se puede usar modo "EnCadaP'#225'gina"' + Pagination = 'Paginaci'#243'n' + ByBands = 'Por Grupos' + ByColumns = 'Por Columnas' + ByRows = 'Por Filas' + ByTopLevelGroups = 'Por Grupos de Primer Nivel' + OneGroupPerPage = 'Un Grupo por P'#225'gina' + Borders = 'Margenes' + ExplicitlyExpandNodes = 'Expandir Expl'#237'citamente los Nodos' + Nodes = '&Nodos' + Separators = 'Separadores' + Thickness = 'Grueso' + TLIncorrectHeadersState = 'No se puede usar el modo EnCadaP'#225'gina' + Rows = '&Filas' + BestFit = 'Ajuste &'#211'ptimo' + KeepSameRecordWidths = '&Mantaner Anchuras Iguales' + WrapRecords = '&Doblar Registros' + ByWrapping = 'Doblando' + OneWrappingPerPage = 'Doblando Uno por P'#225'gina' + PaginateByControlDetails = 'Detalles de Controles' + PaginateByControls = 'Controles' + PaginateByGroups = 'Grupos' + PaginateByItems = 'Elementos' + ControlsPlace = 'Enplazamiento de Controles' + ExpandHeight = 'Expandir Altura' + ExpandWidth = 'Expandir Anchura' + ShrinkHeight = 'Contraer Altura' + ShrinkWidth = 'Contraer Anchura' + CheckAll = 'Check &All' + CheckAllChildren = 'Check All &Children' + ControlsTab = 'Controls' + ExpandAll = 'E&xpand All' + HiddenControlsTab = 'Hidden Controls' + ReportLinksTab = 'Aggregated Designers' + Transparents = 'Transparents' + UncheckAllChildren = 'Uncheck &All Children' + Root = '&Ra'#237'z' + RootBorders = 'Root &Borders' + Controls = '&Controls' + Containers = 'C&ontainers' + HideCustomContainers = '&Hide Custom Containers' + Bytes = 'Bytes' + KiloBytes = 'KB' + MegaBytes = 'MB' + GigaBytes = 'GB' + Left = 184 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 329 + Top = 88 + end + object DABINAdapter: TDABINAdapter + IsCompatibleV4 = False + Left = 424 + Top = 24 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 184 + Top = 80 + end + object RORemoteService: TRORemoteService + Message = ROMessage + Channel = ROChannel + ServiceName = 'srvLogin' + Left = 424 + Top = 92 + end +end diff --git a/Varela/Varela/Source/Base/uDataModuleBase.pas b/Varela/Varela/Source/Base/uDataModuleBase.pas new file mode 100644 index 0000000..ee02d51 --- /dev/null +++ b/Varela/Varela/Source/Base/uDataModuleBase.pas @@ -0,0 +1,254 @@ +unit uDataModuleBase; + +interface + +uses + Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, + TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage, + uROServiceComponent, uRORemoteService, uROWinInetHttpChannel, + DataAbstract3_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3, + JvAppStorage, JvAppRegistryStorage, SysUtils, + JvComponentBase, uDADataStreamer; + +type + TdmBase = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + SmallImages: TPngImageList; + StyleManager: TJvNavPaneStyleManager; + TBXSwitcher: TTBXSwitcher; + cxIntl: TcxIntl; + cxIntlPrintSys3: TcxIntlPrintSys3; + ROMessage: TROBinMessage; + DABINAdapter: TDABINAdapter; + JvAppRegistryStorage: TJvAppRegistryStorage; + RORemoteService: TRORemoteService; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure ROChannelProgress(iSender: TObject; iType: TProgressType; + iDirection: TProgressDirection; iTransferred, iTotal: Integer); + private + FOnThemeChange: TNotifyEvent; + function GetAdapter: TDABINAdapter; + function GetChannel: TROWinInetHTTPChannel; + function GetCodigoEmpresa: Integer; + function GetMessage: TROBinMessage; + procedure InitStyleManager; + procedure OnTBXThemeChange(Sender: TObject); + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + public + function DarVersion : String; + procedure ConfigurarConexion; + function HayConexion(const ATargetURL : String = ''): Boolean; + property Adapter: TDABINAdapter read GetAdapter; + property Channel: TROWinInetHTTPChannel read GetChannel; + property CodigoEmpresa: Integer read GetCodigoEmpresa; + property Message: TROBinMessage read GetMessage; + property OnThemeChange: TNotifyEvent read FOnThemeChange write + FOnThemeChange; + end; + +var + dmBase: TdmBase; + +implementation + +{$R *.DFM} + +uses + Dialogs, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows, + JclFileUtils, VARELA_Intf, cxControls; + +const + SERVER_URL = 'http://localhost:8099/bin'; + IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)'; + +{ +*********************************** TdmBase ************************************ +} +procedure TdmBase.ConfigurarConexion; +begin + with TfConfigurarConexion.Create(NIL) do + try + TargetURL := ROChannel.TargetURL; + if ShowModal = mrOk then + begin + ROChannel.TargetURL := TargetURL; + ROChannel.Connected := False; + ROChannel.Connected := True; + SalvarConfiguracion; + end; + finally + Free; + end; +end; + +procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); +begin + TBXSwitcher.OnThemeChange := OnTBXThemeChange; + TBXSetTheme('Office2003'); + + LeerConfiguracion; +end; + +function TdmBase.GetAdapter: TDABINAdapter; +begin + Result := DABinAdapter; +end; + +function TdmBase.GetChannel: TROWinInetHTTPChannel; +begin + Result := ROChannel; +end; + +function TdmBase.GetCodigoEmpresa: Integer; +begin + Result := 1; +end; + +function TdmBase.GetMessage: TROBinMessage; +begin + Result := ROMessage; +end; + +procedure TdmBase.InitStyleManager; +begin + if not USE_THEMES then + begin + TBXSwitcher.EnableXPStyles := False; + StyleManager.Theme := nptStandard; + end + else begin + TBXSwitcher.EnableXPStyles := True; + with StyleManager do + begin + if CurrentTheme is TTBXOffice2003Theme then + begin + case GetOffice2003Scheme of + osBlue : Theme := nptXPBlue; + osMetallic : Theme := nptXPSilver; + osGreen : Theme := nptXPOlive; + else + Theme := nptStandard; + end; + end; + end; + end; +end; + + +procedure TdmBase.LeerConfiguracion; +begin + ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL); +end; + +procedure TdmBase.OnTBXThemeChange(Sender: TObject); +begin + InitStyleManager; + + if Assigned(FOnThemeChange) then + FOnThemeChange(Sender); +end; + +procedure TdmBase.SalvarConfiguracion; +begin + JvAppRegistryStorage.BeginUpdate; + try + JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL); + finally + JvAppRegistryStorage.EndUpdate; + end; +end; + +procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); +begin + if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then + begin + // Preguntar al usuario si se quiere conectar + if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then + Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación + else + Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo + end + else + Retry := True; +// raise Exception.Create(anException.Message); +end; + +procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType; + iDirection: TProgressDirection; iTransferred, iTotal: Integer); +begin +{ if iType = ptInProgress then + begin + if not Form1.Visible then + Form1.Show; + end + else + Form1.Hide;} +end; + +function TdmBase.DarVersion: String; +var + Obj : TJclFileVersionInfo; +begin + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := 'v' + Obj.FileVersion; + finally + FreeAndNil(Obj); + end; +end; + +function TdmBase.HayConexion(const ATargetURL: String): Boolean; +var + AHTTPChannel: TROWinInetHTTPChannel; + AROBinMessage: TROBinMessage; + ACoService: TRORemoteService; +begin + AHTTPChannel := TROWinInetHTTPChannel.Create(Self); + AROBinMessage := TROBinMessage.Create(Self); + ACoService := TRORemoteService.Create(Self); + + ShowHourglassCursor; + try + with AHTTPChannel do + begin + Name := 'HTTPChannel'; + UserAgent := 'AdminPV'; + if Length(ATargetURL) > 0 then + TargetURL := ATargetURL + else + TargetURL := ROChannel.TargetURL; + end; + + with ACoService do + begin + ServiceName := 'srvLogin'; + Message := AROBinMessage; + Channel := AHTTPChannel; + end; + + try + (ACoService as IsrvLogin).Ping; + Result := True; + except + Result := False; + end; + finally + AHTTPChannel.Connected := False; + FreeAndNil(AHTTPChannel); + FreeAndNil(ACoService); + FreeAndNil(AROBinMessage); + HideHourglassCursor; + end; +end; + +initialization + dmBase := TdmBase.Create(NIL); + +finalization + dmBase.Free; + +end. diff --git a/Varela/Varela/Source/Base/uDataTableUtils.pas b/Varela/Varela/Source/Base/uDataTableUtils.pas new file mode 100644 index 0000000..9bbb7b1 --- /dev/null +++ b/Varela/Varela/Source/Base/uDataTableUtils.pas @@ -0,0 +1,324 @@ +unit uDataTableUtils; + +interface + +uses + uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta; + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; + RemoteUpdate: Boolean = True); + +procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); +procedure DeleteAllTable(const ADataTable : TDADataTable); +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; + +implementation + +uses + uDAClasses, SysUtils, uDABINAdapter, uROTypes, uDBSelectionList, cxControls, + Dialogs, Variants, uDADataStreamer; + + +{procedure EliminarNoSeleccionados(const ASource : IDADataset; + var ATarget : TDADataTable); +var + AObj : ISelectedRowList; + i : Integer; +begin + if not Supports(ASource, ISelectedRowList, aObj) then + Exit; + +// ATarget.DisableControls; +// ATarget.DisableEventHandlers; + ShowHourglassCursor; + try + ATarget.Open; + ATarget.Last; + while ATarget.RecordCount > AObj.SelectedRows.Count do + begin + if AObj.SelectedRows.IndexOf(ATarget.RecIDValue) < 0 then + ATarget.Delete + else + ATarget.Prior; + end; + finally +// ATarget.EnableControls; +// ATarget.EnableControls; + HideHourglassCursor; + end; +end;} + + +procedure DeleteAllTable(const ADataTable : TDADataTable); +begin + ADataTable.ClearRows; +end; + + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; +var + i, x : integer; + OldNewAreDifferent: boolean; +begin + OldNewAreDifferent := FALSE; + for i := 0 to (aDelta.Count-1) do + begin + for x := 0 to (aDelta.LoggedFieldCount-1) do + begin + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + result := OldNewAreDifferent; +end; + + +procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); +var + DABin: Binary; + DAAdapter : TDABINAdapter; + AFilter : String; + AFiltered : Boolean; + AObj : ISelectedRowList; + i : Integer; +begin + DABin := Binary.Create; + DAAdapter := TDABINAdapter.Create(nil); + AFilter := ''; + + if OnlySelectedRows then + begin + if not Supports(ASource, ISelectedRowList, aObj) then + raise Exception.Create('El origen de datos no soporta la interfaz ISelectedRowList (CopyDataTable)'); + + if ASource.Dataset.Filtered then + begin + AFiltered := True; + AFilter := ASource.Dataset.Filter; + ASource.Dataset.Filtered := False; + end; + + ASource.Dataset.Filter := ''; + for i := 0 to AObj.SelectedRows.Count - 1 do + begin + if (i > 0) then + ASource.Dataset.Filter := ASource.Dataset.Filter + ' or '; + ASource.Dataset.Filter := ASource.Dataset.Filter + '(RecID = ' + IntToStr(AObj.SelectedRows.Items[i]) + ')'; + end; + + ASource.Dataset.Filtered := True; + end; + + try + ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName + + if not ASource.Active then + ASource.Open; + ASource.Dataset.First; + + DAAdapter.WriteDataset(DABin, ASource, [woRows, woSchema], -1); + DAAdapter.Initialize(DABin, aiReadFromBeginning); + DAAdapter.ReadDataset(ATarget.LogicalName, ATarget, True, True); + DAAdapter.Finalize; + + if OnlySelectedRows then + begin + ASource.Dataset.Filtered := False; + ASource.Dataset.Filter := AFilter; + if AFiltered then + ASource.Dataset.Filtered := True; + end; + + finally + FreeAndNil(DABin); + FreeAndNil(DAAdapter); + end; +end; + + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + RemoteDataAdapter := ASource.RemoteDataAdapter; + + BusinessRulesID := ASource.BusinessRulesID; + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + LogicalName := ASource.LogicalName; + + Params.AssignParamCollection(ASource.Params); + + if Assigned(ASource.LocalSchema) then + LocalSchema := ASource.LocalSchema + else + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + + +end. + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + // ****** Inicio migración DA 5 + + //RemoteService := ASource.GetRemoteService; + //Adapter := ASource.GetAdapter; + RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); + // ****** Fin migración DA 5 + + BusinessRulesID := ASource.BusinessRulesID; + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + LogicalName := ASource.LogicalName; + + Params.AssignParamCollection(ASource.Params); + + if Assigned(ASource.LocalSchema) then + LocalSchema := ASource.LocalSchema + else begin + // ****** Inicio migración DA 5 + { + with SchemaCall do + begin + MethodName := ASource.SchemaCall.MethodName; + for i := 0 to ASource.SchemaCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.SchemaCall.Params[i].Name; + ParamType := ASource.SchemaCall.Params[i].ParamType; + DataType := ASource.SchemaCall.Params[i].DataType; + Value := ASource.SchemaCall.Params[i].Value; + UserClassName := ASource.SchemaCall.Params[i].UserClassName; + end; + end; + end; + } + // ****** Fin migración DA 5 + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; + end; + + // ****** Inicio migración DA 5 + { + with DataUpdateCall do + begin + MethodName := ASource.DataUpdateCall.MethodName; + for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.DataUpdateCall.Params[i].Name; + ParamType := ASource.DataUpdateCall.Params[i].ParamType; + DataType := ASource.DataUpdateCall.Params[i].DataType; + Value := ASource.DataUpdateCall.Params[i].Value; + UserClassName := ASource.DataUpdateCall.Params[i].UserClassName; + end; + end; + end; + + with ScriptCall do + begin + MethodName := ASource.ScriptCall.MethodName; + for i := 0 to ASource.ScriptCall.Params.Count - 1 do + begin + with Params.Add do begin + Name := ASource.ScriptCall.Params[i].Name; + ParamType := ASource.ScriptCall.Params[i].ParamType; + DataType := ASource.ScriptCall.Params[i].DataType; + Value := ASource.ScriptCall.Params[i].Value; + UserClassName := ASource.ScriptCall.Params[i].UserClassName; + end; + end; + end; + + with DataRequestCall do + begin + MethodName := ASource.DataRequestCall.MethodName; + for i := 0 to ASource.DataRequestCall.Params.Count - 1 do + begin + with Params.Add do begin + begin + Name := ASource.DataRequestCall.Params[i].Name; + ParamType := ASource.DataRequestCall.Params[i].ParamType; + DataType := ASource.DataRequestCall.Params[i].DataType; + Value := ASource.DataRequestCall.Params[i].Value; + UserClassName := ASource.DataRequestCall.Params[i].UserClassName; + end; + end; + end; + end; + } + // ****** Fin migración DA 5 + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + + + diff --git a/Varela/Varela/Source/Base/uEditorBase.dfm b/Varela/Varela/Source/Base/uEditorBase.dfm new file mode 100644 index 0000000..9848171 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorBase.dfm @@ -0,0 +1,1622 @@ +object fEditorBase: TfEditorBase + Left = 222 + Top = 127 + Width = 662 + Height = 496 + Caption = 'EditorBase' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + KeyPreview = True + OldCreateOrder = False + Position = poDefault + OnCloseQuery = FormCloseQuery + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object JvNavPanelHeader: TJvNavPanelHeader + Left = 0 + Top = 49 + Width = 654 + Align = alTop + Caption = 'Editor' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + object Image1: TImage + Left = 627 + Top = 0 + Width = 27 + Height = 27 + Align = alRight + Center = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F + 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601 + 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF + 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301 + BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A + 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741 + EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD + 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D + 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C + D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361 + F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38 + 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3 + 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6 + C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1 + BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805 + 00F0E629EF34B079A30000000049454E44AE426082} + Transparent = True + end + end + object TBXDock: TTBXDock + Left = 0 + Top = 0 + Width = 654 + Height = 49 + AllowDrag = False + object tbxMain: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + DragHandleStyle = dhNone + Images = SmallImages + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actNuevo + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem29: TTBXItem + Action = actGuardarCerrar + DisplayMode = nbdmImageAndText + end + object TBXItem27: TTBXItem + Action = actGuardar + end + object TBXItem5: TTBXItem + Action = actModificar + DisplayMode = nbdmImageAndText + end + object TBXItem4: TTBXItem + Action = actEliminar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem23: TTBXItem + Action = actPrevisualizar + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + object TBXItem24: TTBXItem + Action = actConfPagina + Visible = False + end + object TBXItem3: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem10: TTBXSeparatorItem + end + object TBXItem26: TTBXItem + Action = actAnterior + end + object TBXItem25: TTBXItem + Action = actSiguiente + end + object TBXItem6: TTBXItem + Action = actRefrescar + end + object TBXSeparatorItem11: TTBXSeparatorItem + end + object TBXItem28: TTBXItem + Action = actCerrar + end + end + object tbxMenu: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'Menu' + CloseButton = False + DragHandleStyle = dhNone + FullSize = True + Images = SmallImages + MenuBar = True + ProcessShortCuts = True + ShrinkMode = tbsmWrap + TabOrder = 1 + object TBXSubmenuItem4: TTBXSubmenuItem + Caption = '&Archivo' + object TBXItem8: TTBXItem + Action = actNuevo + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object TBXItem30: TTBXItem + Action = actGuardar + end + object TBXItem10: TTBXItem + Action = actModificar + end + object TBXSeparatorItem12: TTBXSeparatorItem + end + object TBXItem11: TTBXItem + Action = actEliminar + end + object TBXSeparatorItem6: TTBXSeparatorItem + end + object TBXItem21: TTBXItem + Action = actConfPagina + end + object TBXItem22: TTBXItem + Action = actPrevisualizar + end + object TBXItem9: TTBXItem + Action = actImprimir + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object TBXItem1: TTBXItem + Action = actCerrar + end + end + object TBXSubmenuItem5: TTBXSubmenuItem + Caption = '&Edici'#243'n' + object TBXItem16: TTBXItem + Action = actDeshacer + end + object TBXSeparatorItem8: TTBXSeparatorItem + end + object TBXItem15: TTBXItem + Action = actCortar + end + object TBXItem14: TTBXItem + Action = actCopiar + end + object TBXItem13: TTBXItem + Action = actPegar + end + object TBXSeparatorItem7: TTBXSeparatorItem + end + object TBXItem12: TTBXItem + Action = actLimpiar + end + object TBXSeparatorItem9: TTBXSeparatorItem + end + object TBXItem17: TTBXItem + Action = actSeleccionarTodo + end + end + object TBXSubmenuItem1: TTBXSubmenuItem + Caption = '&Buscar' + object TBXItem32: TTBXItem + Action = actAnterior + end + object TBXItem31: TTBXItem + Action = actSiguiente + end + object TBXSeparatorItem13: TTBXSeparatorItem + end + object TBXItem20: TTBXItem + Action = actBuscar + end + end + object TBXSubmenuItem6: TTBXSubmenuItem + Caption = '&Ver' + object TBXItem18: TTBXItem + Action = actRefrescar + end + end + object TBXSubmenuItem7: TTBXSubmenuItem + Caption = 'Ay&uda' + object TBXItem19: TTBXItem + Action = actAcercaDe + end + end + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 443 + Width = 654 + Height = 19 + Panels = < + item + Width = 50 + end> + Visible = False + end + object EditorActionList: TActionList + Images = SmallImages + Left = 16 + Top = 144 + object actNuevo: TAction + Category = 'Archivo' + Caption = 'Nuevo' + ShortCut = 45 + end + object actModificar: TAction + Category = 'Archivo' + Caption = 'Modificar' + ImageIndex = 18 + end + object actGuardarCerrar: TAction + Category = 'Archivo' + Caption = 'G&uardar y cerrar' + ImageIndex = 17 + OnExecute = actGuardarCerrarExecute + end + object actGuardar: TAction + Category = 'Archivo' + Caption = '&Guardar' + ImageIndex = 17 + end + object actEliminar: TAction + Category = 'Archivo' + Caption = 'Eliminar' + ImageIndex = 4 + ShortCut = 16430 + end + object actConfPagina: TAction + Category = 'Archivo' + Caption = '&Configurar p'#225'gina' + ImageIndex = 8 + end + object actPrevisualizar: TAction + Category = 'Archivo' + Caption = '&Previsualizar' + ImageIndex = 6 + end + object actImprimir: TAction + Category = 'Archivo' + Caption = 'Imprimir' + ImageIndex = 7 + ShortCut = 16464 + end + object actDeshacer: TEditUndo + Category = 'Edici'#243'n' + Caption = 'Deshacer' + Hint = 'Undo|Reverts the last action' + ImageIndex = 12 + ShortCut = 16474 + end + object actCortar: TEditCut + Category = 'Edici'#243'n' + Caption = 'Cortar' + Hint = 'Cortar|Corta la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 3 + ShortCut = 16472 + end + object actCerrar: TAction + Category = 'Archivo' + Caption = 'Cerrar' + OnExecute = actCerrarExecute + end + object actCopiar: TEditCopy + Category = 'Edici'#243'n' + Caption = 'Copiar' + Hint = 'Copiar|Copia la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 2 + ShortCut = 16451 + end + object actPegar: TEditPaste + Category = 'Edici'#243'n' + Caption = 'Pegar' + Hint = 'Pegar|Inserta el contenido del portapapeles' + ImageIndex = 5 + ShortCut = 16470 + end + object actSeleccionarTodo: TEditSelectAll + Category = 'Edici'#243'n' + Caption = 'Seleccionar todo' + Hint = 'Seleccionar todo' + ImageIndex = 11 + ShortCut = 16449 + end + object actLimpiar: TEditDelete + Category = 'Edici'#243'n' + Caption = '&Limpiar' + Hint = 'Limpiar|Borra el texto seleccionado' + ImageIndex = 1 + ShortCut = 46 + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Refrescar' + ImageIndex = 9 + ShortCut = 116 + end + object actAcercaDe: TAction + Category = 'Ayuda' + Caption = 'Acerca de...' + ImageIndex = 0 + end + object actBuscar: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actAnterior: TAction + Category = 'Ver' + Caption = 'Anterior' + ImageIndex = 15 + end + object actSiguiente: TAction + Category = 'Ver' + Caption = 'Siguiente' + ImageIndex = 16 + end + object actCancelarCambios: TAction + Category = 'Archivo' + Caption = 'Cancelar cambios' + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 427 + Top = 80 + Bitmap = {} + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fEditorBase\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 392 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 424 + Top = 120 + end +end diff --git a/Varela/Varela/Source/Base/uEditorBase.pas b/Varela/Varela/Source/Base/uEditorBase.pas new file mode 100644 index 0000000..ef16e4f --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorBase.pas @@ -0,0 +1,218 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls, + JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList, + PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, TB2Dock, TB2Toolbar; + +type + IEditorBase = interface(ICustomEditor) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + function ShowModal : Integer; + end; + + TfEditorBase = class(TCustomEditor, IEditorBase) + actAcercaDe: TAction; + actAnterior: TAction; + actBuscar: TAction; + actCancelarCambios: TAction; + actCerrar: TAction; + actConfPagina: TAction; + actCopiar: TEditCopy; + actCortar: TEditCut; + actDeshacer: TEditUndo; + actEliminar: TAction; + actGuardar: TAction; + actGuardarCerrar: TAction; + actImprimir: TAction; + actLimpiar: TEditDelete; + actModificar: TAction; + actNuevo: TAction; + actPegar: TEditPaste; + actPrevisualizar: TAction; + actRefrescar: TAction; + actSeleccionarTodo: TEditSelectAll; + actSiguiente: TAction; + EditorActionList: TActionList; + JvNavPanelHeader: TJvNavPanelHeader; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBXDock: TTBXDock; + TBXItem1: TTBXItem; + TBXItem10: TTBXItem; + TBXItem11: TTBXItem; + TBXItem12: TTBXItem; + TBXItem13: TTBXItem; + TBXItem14: TTBXItem; + TBXItem15: TTBXItem; + TBXItem16: TTBXItem; + TBXItem17: TTBXItem; + TBXItem18: TTBXItem; + TBXItem19: TTBXItem; + TBXItem2: TTBXItem; + TBXItem20: TTBXItem; + TBXItem21: TTBXItem; + TBXItem22: TTBXItem; + TBXItem23: TTBXItem; + TBXItem24: TTBXItem; + TBXItem25: TTBXItem; + TBXItem26: TTBXItem; + TBXItem27: TTBXItem; + TBXItem28: TTBXItem; + TBXItem29: TTBXItem; + TBXItem3: TTBXItem; + TBXItem30: TTBXItem; + TBXItem31: TTBXItem; + TBXItem32: TTBXItem; + TBXItem4: TTBXItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem8: TTBXItem; + TBXItem9: TTBXItem; + tbxMain: TTBXToolbar; + tbxMenu: TTBXToolbar; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem10: TTBXSeparatorItem; + TBXSeparatorItem11: TTBXSeparatorItem; + TBXSeparatorItem12: TTBXSeparatorItem; + TBXSeparatorItem13: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem4: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXSeparatorItem7: TTBXSeparatorItem; + TBXSeparatorItem8: TTBXSeparatorItem; + TBXSeparatorItem9: TTBXSeparatorItem; + TBXSubmenuItem1: TTBXSubmenuItem; + TBXSubmenuItem4: TTBXSubmenuItem; + TBXSubmenuItem5: TTBXSubmenuItem; + TBXSubmenuItem6: TTBXSubmenuItem; + TBXSubmenuItem7: TTBXSubmenuItem; + StatusBar: TStatusBar; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Image1: TImage; + procedure actCerrarExecute(Sender: TObject); + procedure actGuardarCerrarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + protected + function ModifiedQuery : Boolean; + procedure CreateParams(var Params: TCreateParams); override; + public + constructor Create(AOwner: TComponent); override; + published + procedure FormShow(Sender: TObject); virtual; + end; + + TfEditorBaseClass = class of TfEditorBase; + +implementation + +{$R *.dfm} + +uses + Menus, uDataModuleBase, cxControls; + +{ +********************************* TfEditorBase ********************************* +} +procedure TfEditorBase.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + if actGuardar.Execute then + actCerrar.Execute; + finally + HideHourglassCursor; + end; +end; + +constructor TfEditorBase.Create(AOwner: TComponent); +var + APath : String; +begin + inherited; + with JvFormStorage do + begin + if Pos('_', Self.Name) = 0 then + APath := Self.Name + else + APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); + AppStoragePath := APath; + end; + JvNavPanelHeader.StyleManager := dmBase.StyleManager; +end; + +procedure TfEditorBase.CreateParams(var Params: TCreateParams); +begin + inherited; +end; + +procedure TfEditorBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + if Valid then + CanClose := ModifiedQuery + else + CanClose := False; +end; + +procedure TfEditorBase.FormShow(Sender: TObject); +begin +{ if Assigned(Parent) then + begin + StatusBar.Visible := False; + actCerrar.ShortCut := 0 + end + else begin + StatusBar.Visible := True; + actCerrar.ShortCut := ShortCut(VK_ESCAPE, []); + end;} +end; + +function TfEditorBase.ModifiedQuery: Boolean; +var + Respuesta: Integer; +begin + Result := True; + if Modified then + begin + Respuesta := Application.MessageBox('Se han producido cambios.' + #10#13 + + '¿Desea guardarlos antes de salir?', 'Atención', MB_YESNOCANCEL); + case Respuesta of + IDYES : actGuardar.Execute; + IDNO : actCancelarCambios.Execute; + else + Result := False; + end; + end +{ else + actCancelarCambios.Execute;} +end; + +initialization + RegisterClass(TfEditorBase); + +finalization + UnRegisterClass(TfEditorBase); + +end. diff --git a/Varela/Varela/Source/Base/uEditorDBBase.ddp b/Varela/Varela/Source/Base/uEditorDBBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Base/uEditorDBBase.dfm b/Varela/Varela/Source/Base/uEditorDBBase.dfm new file mode 100644 index 0000000..317e217 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorDBBase.dfm @@ -0,0 +1,70 @@ +inherited fEditorDBBase: TfEditorDBBase + Left = 295 + Top = 247 + Caption = 'fEditorDBBase' + ClientHeight = 460 + ClientWidth = 652 + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 652 + ExplicitWidth = 652 + inherited Image1: TImage + Left = 625 + Picture.Data = {00} + ExplicitLeft = 625 + end + end + inherited TBXDock: TTBXDock + Width = 652 + ExplicitWidth = 652 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 652 + end + end + inherited StatusBar: TStatusBar + Top = 441 + Width = 652 + ExplicitTop = 441 + ExplicitWidth = 652 + end + inherited EditorActionList: TActionList + inherited actModificar: TAction + OnUpdate = actModificarUpdate + end + inherited actGuardar: TAction + OnExecute = actGuardarExecute + end + inherited actEliminar: TAction + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + inherited actPrevisualizar: TAction + OnUpdate = actPrevisualizarUpdate + end + inherited actImprimir: TAction + OnUpdate = actImprimirUpdate + end + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + OnUpdate = actRefrescarUpdate + end + inherited actAnterior: TAction + OnExecute = actAnteriorExecute + OnUpdate = actAnteriorUpdate + end + inherited actSiguiente: TAction + OnExecute = actSiguienteExecute + OnUpdate = actSiguienteUpdate + end + inherited actCancelarCambios: TAction + OnExecute = actCancelarCambiosExecute + end + end + object dsDataTable: TDADataSource + Left = 40 + Top = 88 + end +end diff --git a/Varela/Varela/Source/Base/uEditorDBBase.pas b/Varela/Varela/Source/Base/uEditorDBBase.pas new file mode 100644 index 0000000..667d42c --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorDBBase.pas @@ -0,0 +1,305 @@ +unit uEditorDBBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, uDAInterfaces; + +type + IEditorDBBase = interface(IEditorBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBBase = class(TfEditorBase, IEditorDBBase) + dsDataTable: TDADataSource; + procedure actRefrescarExecute(Sender: TObject); + procedure actAnteriorExecute(Sender: TObject); + procedure actSiguienteExecute(Sender: TObject); + procedure actAnteriorUpdate(Sender: TObject); + procedure actSiguienteUpdate(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure actCancelarCambiosExecute(Sender: TObject); + procedure actGuardarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual; + procedure actEliminarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + private + { Private declarations } + protected + function GetModified: Boolean; override; + published + end; + +var + fEditorDBBase: TfEditorDBBase; + +implementation + +uses + uExceptions, uDataTableUtils, uBizInformesBase, + cxControls, uDADelta; + +{$R *.dfm} + +procedure TfEditorDBBase.actRefrescarExecute(Sender: TObject); +var + ABookmark : TBookmark; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then + Exit; // No continuar con el refresco + + ABookmark := dsDataTable.DataTable.GetBookMark; +// dsDataTable.DataTable.DisableControls; <- No descomentar + + ShowHourglassCursor; + try + dsDataTable.DataTable.Refresh; + + if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + finally + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableControls; <- No descomentar + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Prior; + end; +end; + +procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Next; + end; +end; + +procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.BOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.EOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.Fetching + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actCancelarCambiosExecute(Sender: TObject); +var + dtDetails : TList; + i : integer; + ABookmark : TBookmark; +begin + inherited; + + if Assigned(dsDataTable.DataTable) then + begin + ABookmark := dsDataTable.DataTable.GetBookMark; + dsDataTable.DataTable.DisableControls; +// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar + + ShowHourglassCursor; + { No lo pongo en try..finally para ver posibles errores } + //try + dsDataTable.DataTable.Cancel; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + (TDADataTable(dtDetails.Items[i])).Cancel; + end; + + dsDataTable.DataTable.CancelUpdates; + + { Comprobar si el bookmark no es válido cuando estamos cancelando la + inserción de una fila nueva. + CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!} + try + if (Assigned(ABookmark)) and + (dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + except + end; + + //finally + dsDataTable.DataTable.EnableControls; + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar + HideHourglassCursor + //end; + end; +end; + +procedure TfEditorDBBase.actGuardarExecute(Sender: TObject); +var + dtDetails : TList; + i : integer; +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if dsDataTable.DataTable.Editing then + dsDataTable.DataTable.Post; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + if (TDADataTable(dtDetails.Items[i])).Editing then + (TDADataTable(dtDetails.Items[i])).Post; + + dsDataTable.DataTable.ApplyUpdates; + Modified := False; + end; +end; + +function TfEditorDBBase.GetModified: Boolean; +var + dtDetails : TList; + i : integer; + bCambiado : Boolean; +begin + bCambiado := False; + if Assigned(dsDataTable.DataTable) then + begin + bCambiado := (dsDataTable.DataTable.State = dsEdit) or + DeltaValuesAreDifferent(dsDataTable.DataTable.Delta); + + if (not bCambiado) then + begin + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + bCambiado := bCambiado or + ((TDADataTable(dtDetails.Items[i])).State = dsEdit) or + DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta); + if bCambiado then + Break; + end; + end; + end; + + if (not bCambiado) then + bCambiado := inherited GetModified; + + Result := bCambiado; +end; + +procedure TfEditorDBBase.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + { Para resetear el estado de la tabla en el caso de hacer un insert + sin meter ningún dato. } + if Assigned(dsDataTable.DataTable) and (not Modified) then + dsDataTable.DataTable.Cancel; + inherited; +end; + +procedure TfEditorDBBase.actEliminarExecute(Sender: TObject); +var + aObj : IApplyUpdateFailedException; +begin + inherited; + ShowHourglassCursor; + try + if dsDataTable.DataTable.State in dsEditModes then + dsDataTable.DataTable.Cancel; + dsDataTable.DataTable.Delete; + try + dsDataTable.DataTable.ApplyUpdates; + Modified := False; + except + on E: EDAApplyUpdateFailed do + begin + dsDataTable.DataTable.CancelUpdates; + actRefrescar.Execute; + if Supports(dsDataTable.DataTable, IApplyUpdateFailedException, aObj) then + aObj.ShowApplyUpdateFailed(E); + end + else + raise; // Generic exception + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + else + (Sender as TAction).Enabled := False; +end; + +end. diff --git a/Varela/Varela/Source/Base/uEditorDBItem.ddp b/Varela/Varela/Source/Base/uEditorDBItem.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Base/uEditorDBItem.dfm b/Varela/Varela/Source/Base/uEditorDBItem.dfm new file mode 100644 index 0000000..fe0bcb2 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorDBItem.dfm @@ -0,0 +1,60 @@ +inherited fEditorDBItem: TfEditorDBItem + Left = 450 + Top = 321 + Caption = 'fEditorDBItem' + ClientHeight = 465 + ClientWidth = 656 + ExplicitWidth = 664 + ExplicitHeight = 499 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 656 + ExplicitWidth = 656 + inherited Image1: TImage + Left = 629 + ExplicitLeft = 629 + end + end + inherited TBXDock: TTBXDock + Width = 656 + ExplicitWidth = 656 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 548 + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 656 + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + end + end + inherited StatusBar: TStatusBar + Top = 446 + Width = 656 + ExplicitTop = 446 + ExplicitWidth = 656 + end + inherited EditorActionList: TActionList + Top = 112 + inherited actEliminar: TAction + ShortCut = 0 + end + inherited actPrevisualizar: TAction + OnExecute = actPrevisualizarExecute + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + end + inherited dsDataTable: TDADataSource + Left = 48 + Top = 112 + end +end diff --git a/Varela/Varela/Source/Base/uEditorDBItem.pas b/Varela/Varela/Source/Base/uEditorDBItem.pas new file mode 100644 index 0000000..d902c74 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorDBItem.pas @@ -0,0 +1,89 @@ +unit uEditorDBItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, + uViewBase, JvAppStorage, JvAppRegistryStorage, + JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, uDAInterfaces; + +type + IEditorDBItem = interface(IEditorDBBase) + ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] + end; + + TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) + procedure actEliminarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fEditorDBItem: TfEditorDBItem; + +implementation + +uses + uBizInformesBase; + +{$R *.dfm} + +procedure TfEditorDBItem.actEliminarExecute(Sender: TObject); +begin + inherited; + actCerrar.Execute; +end; + +procedure TfEditorDBItem.actPrevisualizarExecute(Sender: TObject); +var + Respuesta: Integer; + aInf : IBizInformesAware; +begin + inherited; +{ if Modified then + begin + if (Application.MessageBox('Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + + '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then + actGuardar.Execute + else begin + Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); + Exit; + end; + end;} + + if Assigned(dsDataTable.DataTable) and + Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then + aInf.Preview; +end; + +procedure TfEditorDBItem.actImprimirExecute(Sender: TObject); +var + Respuesta: Integer; + aInf : IBizInformesAware; +begin + inherited; +{ if Modified then + begin + if (Application.MessageBox('Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 + + '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then + actGuardar.Execute + else begin + Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); + Exit; + end; + end;} + + if Assigned(dsDataTable.DataTable) and + Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then + aInf.Print; +end; + +end. diff --git a/Varela/Varela/Source/Base/uEditorGridBase.dfm b/Varela/Varela/Source/Base/uEditorGridBase.dfm new file mode 100644 index 0000000..2329822 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorGridBase.dfm @@ -0,0 +1,1433 @@ +inherited fEditorGridBase: TfEditorGridBase + Left = 441 + Top = 354 + Caption = 'fEditorGridBase' + ClientHeight = 446 + ClientWidth = 703 + ExplicitWidth = 711 + ExplicitHeight = 480 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + Width = 703 + ExplicitTop = 0 + ExplicitWidth = 703 + inherited Image1: TImage + Left = 676 + ExplicitLeft = 676 + end + end + inherited TBXDock: TTBXDock + Top = 27 + Width = 703 + ExplicitTop = 27 + ExplicitWidth = 703 + inherited tbxMain: TTBXToolbar + DefaultDock = TBXDock + ExplicitWidth = 442 + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem33: TTBXItem [7] + Action = actDuplicar + DisplayMode = nbdmImageAndText + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + ExplicitWidth = 703 + inherited TBXSubmenuItem4: TTBXSubmenuItem + object TBXItem34: TTBXItem [7] + Action = actDuplicar + end + object TBXSeparatorItem15: TTBXSeparatorItem [8] + end + end + end + object tbxFiltro: TTBXToolbar + Left = 442 + Top = 23 + Align = alRight + CloseButton = False + DefaultDock = TBXDock + DockMode = dmCannotFloatOrChangeDocks + DockPos = 392 + DockRow = 1 + DragHandleStyle = dhNone + Images = SmallImages + ParentShowHint = False + Resizable = False + ShowHint = True + ShrinkMode = tbsmNone + TabOrder = 2 + object TBXLabelItem1: TTBXLabelItem + Caption = 'Filtrar:' + end + object tbxEditFiltro: TTBXEditItem + EditWidth = 150 + ImageIndex = 10 + EditorFontSettings.Italic = tsTrue + ExtendedAccept = True + Images = SmallImages + ShowImage = True + OnChange = tbxEditFiltroChange + end + object TBXItem7: TTBXItem + Action = actQuitarFiltro + Images = SmallImages + end + end + end + inherited StatusBar: TStatusBar + Top = 427 + Width = 703 + ExplicitTop = 427 + ExplicitWidth = 703 + end + inherited EditorActionList: TActionList + Left = 72 + Top = 120 + inherited actGuardarCerrar: TAction + Enabled = False + end + inherited actGuardar: TAction + Enabled = False + end + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + inherited actPrevisualizar: TAction + OnExecute = actPrevisualizarExecute + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + inherited actCerrar: TAction + Enabled = False + end + inherited actAnterior: TAction + Enabled = False + end + inherited actSiguiente: TAction + Enabled = False + end + inherited actCancelarCambios: TAction + Enabled = False + end + object actQuitarFiltro: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltroExecute + end + object actDuplicar: TAction + Category = 'Archivo' + Caption = 'Duplicar' + ImageIndex = 20 + OnUpdate = actDuplicarUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage + OnSavePlacement = JvFormStorageSavePlacement + OnRestorePlacement = JvFormStorageRestorePlacement + end + object GridPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Duplicar1: TMenuItem + Action = actDuplicar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Previsualizar1: TMenuItem + Action = actPrevisualizar + end + object Imprimir1: TMenuItem + Action = actImprimir + end + end +end diff --git a/Varela/Varela/Source/Base/uEditorGridBase.pas b/Varela/Varela/Source/Base/uEditorGridBase.pas new file mode 100644 index 0000000..673bc61 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorGridBase.pas @@ -0,0 +1,194 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase, + uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, uDAInterfaces; + +type + IEditorGridBase = interface(IEditorDBBase) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + end; + + TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase) + tbxEditFiltro: TTBXEditItem; + tbxFiltro: TTBXToolbar; + TBXItem7: TTBXItem; + GridPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + TBXLabelItem1: TTBXLabelItem; + actQuitarFiltro: TAction; + N2: TMenuItem; + Previsualizar1: TMenuItem; + Imprimir1: TMenuItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem33: TTBXItem; + actDuplicar: TAction; + TBXSeparatorItem15: TTBXSeparatorItem; + TBXItem34: TTBXItem; + Duplicar1: TMenuItem; + procedure tbxEditFiltroChange(Sender: TObject; const Text: String); + procedure FormShow(Sender: TObject); override; + procedure actPrevisualizarExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actQuitarFiltroExecute(Sender: TObject); + procedure actDuplicarUpdate(Sender: TObject); + procedure JvFormStorageSavePlacement(Sender: TObject); + procedure JvFormStorageRestorePlacement(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + private + FViewGrid : IViewGridBase; + protected + procedure SetViewGrid(const Value : IViewGridBase); virtual; + function GetViewGrid: IViewGridBase; + public + property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; + constructor Create(AOwner : TComponent); override; + + destructor Destroy; override; + end; + +implementation + +uses + uDataModuleBase, uCustomEditor, cxGridTableView; + +{$R *.dfm} + +{ +********************************* TfEditorGridBase ***************************** +} +destructor TfEditorGridBase.Destroy; +begin + FViewGrid := NIL; + inherited; +end; + +function TfEditorGridBase.GetViewGrid: IViewGridBase; +begin + Result := FViewGrid; +end; + +procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); +begin + FViewGrid := Value; + if Assigned(FViewGrid) then + begin + FViewGrid.PopupMenu := GridPopupMenu; + FViewGrid.OnDblClick := actModificar.OnExecute; + end; +end; + +procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String); +begin + if Assigned(ViewGrid) then + ViewGrid.Filter := Text; +end; + +procedure TfEditorGridBase.FormShow(Sender: TObject); +begin + inherited; + ViewGrid.ShowEmbedded(Self); +end; + +procedure TfEditorGridBase.actPrevisualizarExecute(Sender: TObject); +begin + inherited; + ViewGrid.Preview; +end; + +procedure TfEditorGridBase.actConfPaginaExecute(Sender: TObject); +begin + inherited; + ViewGrid.PrintSetup; +end; + +procedure TfEditorGridBase.actImprimirExecute(Sender: TObject); +begin + inherited; + ViewGrid.Print; +end; + +procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + begin + tbxEditFiltro.Text := ''; + ViewGrid.Filter := ''; + end; +end; + +constructor TfEditorGridBase.Create(AOwner: TComponent); +begin + inherited; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject); +begin + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and not (dsDataTable.DataTable.State = dsInsert) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root); +end; + +procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject); +begin + inherited; + if Assigned(ViewGrid) then + begin + ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root); + end; +end; + +procedure TfEditorGridBase.actRefrescarExecute(Sender: TObject); +var + FocusedRow, TopRow : Integer; +begin + TopRow := ViewGrid._FocusedView.Controller.TopRowIndex; + FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex; + ViewGrid._FocusedView.BeginUpdate; + try + inherited; + finally + ViewGrid._FocusedView.EndUpdate; + ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow; + ViewGrid._FocusedView.Controller.TopRowIndex := TopRow; + end; +end; + +initialization + RegisterClass(TfEditorGridBase); + +finalization + UnRegisterClass(TfEditorGridBase); + +end. + diff --git a/Varela/Varela/Source/Base/uEditorItem.dfm b/Varela/Varela/Source/Base/uEditorItem.dfm new file mode 100644 index 0000000..106f387 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorItem.dfm @@ -0,0 +1,53 @@ +inherited fEditorItem: TfEditorItem + Left = 423 + Top = 273 + Width = 686 + Height = 535 + Caption = 'fEditorItem' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 678 + Visible = False + inherited Image1: TImage + Left = 651 + end + end + object pgPaginas: TPageControl [1] + Left = 0 + Top = 76 + Width = 678 + Height = 406 + ActivePage = pagGeneral + Align = alClient + TabOrder = 1 + object pagGeneral: TTabSheet + Caption = 'General' + end + end + inherited TBXDock: TTBXDock + Width = 678 + inherited tbxMain: TTBXToolbar + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + end + end + end + inherited StatusBar: TStatusBar + Top = 482 + Width = 678 + end + inherited EditorActionList: TActionList + Top = 104 + inherited actEliminar: TAction + ShortCut = 0 + end + end +end diff --git a/Varela/Varela/Source/Base/uEditorItem.pas b/Varela/Varela/Source/Base/uEditorItem.pas new file mode 100644 index 0000000..50461c5 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorItem.pas @@ -0,0 +1,41 @@ + +unit uEditorItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ActnList, JvExControls, JvComponent, + JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, JvFormAutoSize, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase; + +type + IEditorItem = interface(IEditorBase) + ['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}'] + end; + + TfEditorItem = class(TfEditorBase, IEditorItem) + pagGeneral: TTabSheet; + pgPaginas: TPageControl; + end; + +var + fEditorItem: TfEditorItem; + +implementation + +uses uDataModuleBase; + +{$R *.dfm} + +initialization + RegisterClass(TfEditorItem); + +finalization + + UnRegisterClass(TfEditorItem); + + +end. diff --git a/Varela/Varela/Source/Base/uEditorPSPreview.dfm b/Varela/Varela/Source/Base/uEditorPSPreview.dfm new file mode 100644 index 0000000..a3f98e6 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorPSPreview.dfm @@ -0,0 +1,15 @@ +object Form1: TForm1 + Left = 580 + Top = 506 + Width = 320 + Height = 240 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Varela/Varela/Source/Base/uEditorPSPreview.pas b/Varela/Varela/Source/Base/uEditorPSPreview.pas new file mode 100644 index 0000000..683b402 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorPSPreview.pas @@ -0,0 +1,24 @@ +unit uEditorPSPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxPSPrVw; + +type + TForm1 = class(TCustomdxPSPreviewWindow) + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/Varela/Varela/Source/Base/uEditorPreview.dfm b/Varela/Varela/Source/Base/uEditorPreview.dfm new file mode 100644 index 0000000..af16215 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorPreview.dfm @@ -0,0 +1,937 @@ +inherited fEditorPreview: TfEditorPreview + Left = 521 + Top = 340 + Caption = 'Previsualizar' + WindowState = wsMaximized + OnDestroy = FormDestroy + OnResize = FormResize + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 75 + Visible = False + ExplicitTop = 75 + end + inherited TBXDock: TTBXDock + Height = 75 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + Top = 49 + DefaultDock = TBXDock + Visible = False + ExplicitTop = 49 + ExplicitWidth = 191 + end + inherited tbxMenu: TTBXToolbar + DockPos = -24 + inherited TBXSubmenuItem5: TTBXSubmenuItem + Visible = False + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + Visible = False + end + object TBXSubmenuItem2: TTBXSubmenuItem [3] + Caption = '&Ir' + object TBXItem47: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem43: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem44: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem45: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + end + inherited TBXSubmenuItem6: TTBXSubmenuItem + Caption = '&Zoom' + inherited TBXItem18: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXItem38: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object TBXSeparatorItem19: TTBXSeparatorItem + end + object TBXItem48: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXItem46: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + end + object TBXSubmenuItem3: TTBXSubmenuItem [5] + Caption = '&Herramientas' + object TBXItem49: TTBXItem + Action = actToolHand + Checked = True + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXItem50: TTBXItem + Action = actToolZoom + GroupIndex = 1 + Images = PreviewSmallImageList + end + end + end + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 23 + Caption = 'TBXToolbar1' + DefaultDock = TBXDock + DragHandleStyle = dhNone + ParentShowHint = False + ShowHint = True + TabOrder = 2 + object TBXItem39: TTBXItem + Action = actImprimir + DisplayMode = nbdmImageAndText + Images = SmallImages + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object tbxMano: TTBXItem + Action = actToolHand + Checked = True + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXSeparatorItem14: TTBXSeparatorItem + end + object tbxZoom: TTBXItem + Action = actToolZoom + DisplayMode = nbdmImageAndText + GroupIndex = 1 + Images = PreviewSmallImageList + end + object TBXItem42: TTBXItem + Action = actTodaPagina + Images = PreviewSmallImageList + end + object TBXItem41: TTBXItem + Action = actAnchoPagina + Images = PreviewSmallImageList + end + object TBXItem40: TTBXItem + Action = actZoomOut + Images = PreviewSmallImageList + end + object cbZoom: TTBXComboBoxItem + Caption = 'Zoom' + ReadOnly = True + OnItemClick = cbZoomItemClick + end + object TBXItem37: TTBXItem + Action = actZoomIn + Images = PreviewSmallImageList + end + object TBXSeparatorItem17: TTBXSeparatorItem + end + object TBXSeparatorItem16: TTBXSeparatorItem + end + object TBXItem35: TTBXItem + Action = actPrimeraPagina + Images = PreviewSmallImageList + end + object TBXItem34: TTBXItem + Action = actPaginaAnterior + Images = PreviewSmallImageList + end + object TBXItem33: TTBXItem + Action = actPaginaSiguiente + Images = PreviewSmallImageList + end + object TBXItem36: TTBXItem + Action = actUltimaPagina + Images = PreviewSmallImageList + end + object TBXSeparatorItem15: TTBXSeparatorItem + end + object TBXItem7: TTBXItem + Action = actCerrar + Images = SmallImages + end + end + end + inherited StatusBar: TStatusBar + Panels = < + item + Width = 150 + end + item + Width = 50 + end> + Visible = True + end + inherited EditorActionList: TActionList + Top = 104 + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Enabled = False + Visible = False + end + inherited actGuardarCerrar: TAction + Enabled = False + Visible = False + end + inherited actGuardar: TAction + Enabled = False + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actConfPagina: TAction + Enabled = False + Visible = False + end + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + OnExecute = actImprimirExecute + end + inherited actDeshacer: TEditUndo + Enabled = False + Visible = False + end + inherited actCortar: TEditCut + Enabled = False + Visible = False + end + inherited actCopiar: TEditCopy + Enabled = False + Visible = False + end + inherited actPegar: TEditPaste + Enabled = False + Visible = False + end + inherited actSeleccionarTodo: TEditSelectAll + Enabled = False + Visible = False + end + inherited actLimpiar: TEditDelete + Enabled = False + Visible = False + end + inherited actBuscar: TAction + Enabled = False + Visible = False + end + inherited actCancelarCambios: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList + Left = 43 + Top = 104 + end + inherited LargeImages: TPngImageList + Left = 75 + Top = 104 + end + inherited JvFormStorage: TJvFormStorage + Left = 376 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 408 + Top = 136 + end + object PreviewActionList: TActionList + Images = PreviewSmallImageList + Left = 344 + Top = 104 + object actPrimeraPagina: TAction + Category = 'Ver' + Caption = 'Primera p'#225'gina' + ImageIndex = 0 + OnExecute = actPrimeraPaginaExecute + end + object actUltimaPagina: TAction + Category = 'Ver' + Caption = #218'ltima p'#225'gina' + ImageIndex = 3 + OnExecute = actUltimaPaginaExecute + end + object actPaginaAnterior: TAction + Category = 'Ver' + Caption = 'P'#225'gina anterior' + ImageIndex = 1 + OnExecute = actPaginaAnteriorExecute + end + object actPaginaSiguiente: TAction + Category = 'Ver' + Caption = 'P'#225'gina siguiente' + ImageIndex = 2 + OnExecute = actPaginaSiguienteExecute + end + object actZoomIn: TAction + Category = 'Ver' + Caption = 'M'#225's zoom' + ImageIndex = 8 + OnExecute = actZoomInExecute + end + object actZoomOut: TAction + Category = 'Ver' + Caption = 'Menos zoom' + ImageIndex = 9 + OnExecute = actZoomOutExecute + end + object actTodaPagina: TAction + Category = 'Ver' + Caption = 'Toda la p'#225'gina' + GroupIndex = 1 + ImageIndex = 4 + OnExecute = actTodaPaginaExecute + end + object actAnchoPagina: TAction + Category = 'Ver' + Caption = 'Ancho de p'#225'gina' + GroupIndex = 1 + ImageIndex = 5 + OnExecute = actAnchoPaginaExecute + end + object actToolHand: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Mano' + GroupIndex = 1 + ImageIndex = 10 + OnExecute = actToolHandExecute + end + object actToolZoom: TAction + Category = 'Herramientas' + AutoCheck = True + Caption = 'Zoom' + GroupIndex = 1 + ImageIndex = 6 + OnExecute = actToolZoomExecute + end + end + object PreviewSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0 + 1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770 + CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405 + C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC + D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01 + 3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D + 657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617 + 93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A34944415478DA + 63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38 + C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6 + 071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5 + 8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100 + CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A + E13771044B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A44944415478DA + 63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC + 240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F + E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A + 7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207 + B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22 + A8E18A4EF6A30000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000EC4944415478DA + C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850 + 2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49 + 127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085 + 84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124 + F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440 + 42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2 + EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42 + E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000017E4944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E + AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092 + 144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0 + 062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363 + B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C + 7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07 + 080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0 + AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC + 6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB + E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C + 0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7 + 0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001714944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19 + 64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF + A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76 + 631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58 + 0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006 + 0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60 + B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1 + BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE + FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6 + 11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277 + 35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37 + 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4 + 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF + 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C + 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187 + 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF + 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0 + 0AF3B40000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000714944415478DA + 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7 + 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF + 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974 + DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C74944415478DA + A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456 + 5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8 + E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D + 5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456 + B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155 + 0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C + A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F + 232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184 + F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA + CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D + A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E + 3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C + 0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266 + C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A + 04D7A238F0C903C3480000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 371 + Top = 104 + Bitmap = {} + end + object PreviewLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001894944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB + 1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683 + D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF + 3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E + B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693 + 8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348 + B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0 + 1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B + BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3 + 5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE + FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92 + 77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580 + 200000A0D9B0E00198A13A0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000FA4944415478DA + 63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F + 5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752 + D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33 + 6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5 + 3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B + 1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F + 6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4 + D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000012E4944415478DA + 63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF + F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F + 10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D + 688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1 + F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1 + C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC + 4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B + 1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74 + FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5 + 0135C0A80504010058FB49E08BBA20470000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001C24944415478DA + 63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB + 7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C + E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960 + 5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1 + DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07 + E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778 + AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD + FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832 + 93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459 + 60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E + 06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0 + EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F + 48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370 + 8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0 + E6ADB53E0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002344944415478DA + 63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372 + C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105 + 7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173 + 397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7 + 0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932 + 2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06 + 5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6 + C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418 + 761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE + 868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4 + 43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124 + 8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2 + 30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544 + 7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12 + A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633 + 18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314 + 1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A + DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42 + 6082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003154944415478DA + B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2 + 0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8 + 544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39 + CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62 + 4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA + 0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96 + 425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428 + 914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51 + 5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401 + 8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73 + 80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748 + BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580 + 5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499 + 20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E + 02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058 + D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6 + D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A + 530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE + 646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6 + 1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8 + 04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068 + E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B + A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890 + 30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA + 8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE + 426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001324944415478DA + 63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D + C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E + 15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E + 1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384 + 8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172 + 28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0 + 6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8 + A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB + 0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7 + 002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000007C4944415478DA + 63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20 + 751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21 + F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A + B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000 + 000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002E84944415478DA + A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022 + 4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B + C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3 + CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0 + 373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707 + 057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071 + 2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658 + B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC + 4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07 + DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB + 516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A + D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092 + AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B + 1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF + BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8 + F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2 + 328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686 + 84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187 + E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E + 5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC + 59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240 + 09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492 + 085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05 + FC0592430CFE3F77C7A70000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 403 + Top = 104 + Bitmap = {} + end + object frxReport1: TfrxReport + Version = '3.23.7' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + ReportOptions.CreateDate = 38658.858023541660000000 + ReportOptions.LastChange = 38658.858023541660000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 16 + Top = 200 + Datasets = <> + Variables = <> + Style = <> + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 16 + Top = 240 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 240 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 272 + end + object frxCrossObject1: TfrxCrossObject + Left = 80 + Top = 240 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 80 + Top = 272 + end + object frxGradientObject1: TfrxGradientObject + Left = 16 + Top = 304 + end + object frxDotMatrixExport1: TfrxDotMatrixExport + UseFileCache = True + ShowProgress = True + EscModel = 0 + GraphicFrames = False + SaveToFile = False + UseIniSettings = True + Left = 48 + Top = 304 + end + object frxDialogControls1: TfrxDialogControls + Left = 80 + Top = 304 + end + object frxTIFFExport1: TfrxTIFFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 240 + end + object frxPDFExport1: TfrxPDFExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + PrintOptimized = False + Outline = False + Author = 'FastReport'#174 + Subject = 'FastReport'#174' PDF export' + Background = False + Creator = 'FastReport'#174' (http://www.fast-report.com)' + HTMLTags = False + Left = 144 + Top = 280 + end + object frxBMPExport1: TfrxBMPExport + ShowDialog = False + UseFileCache = True + ShowProgress = True + Monochrome = True + Left = 144 + Top = 320 + end +end diff --git a/Varela/Varela/Source/Base/uEditorPreview.pas b/Varela/Varela/Source/Base/uEditorPreview.pas new file mode 100644 index 0000000..0197134 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorPreview.pas @@ -0,0 +1,311 @@ +unit uEditorPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview, + JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, + frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + ExtCtrls, JvComponentBase; + +type + IEditorPreview = interface(IEditorBase) + ['{7E79BEFC-C817-43D9-A60F-9573D1777068}'] + function GetReport: TfrxReport; + property Report: TfrxReport read GetReport; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + + TfEditorPreview = class(TfEditorBase, IEditorPreview) + TBXToolbar1: TTBXToolbar; + TBXItem7: TTBXItem; + TBXItem33: TTBXItem; + TBXItem34: TTBXItem; + TBXItem39: TTBXItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXSeparatorItem15: TTBXSeparatorItem; + TBXSeparatorItem16: TTBXSeparatorItem; + cbZoom: TTBXComboBoxItem; + PreviewActionList: TActionList; + PreviewSmallImageList: TPngImageList; + PreviewLargeImageList: TPngImageList; + actPrimeraPagina: TAction; + actUltimaPagina: TAction; + actPaginaAnterior: TAction; + actPaginaSiguiente: TAction; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + actZoomIn: TAction; + actZoomOut: TAction; + actTodaPagina: TAction; + actAnchoPagina: TAction; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem37: TTBXItem; + TBXItem40: TTBXItem; + TBXItem41: TTBXItem; + TBXItem42: TTBXItem; + frxReport1: TfrxReport; + actToolHand: TAction; + actToolZoom: TAction; + tbxZoom: TTBXItem; + tbxMano: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + frxDotMatrixExport1: TfrxDotMatrixExport; + frxDialogControls1: TfrxDialogControls; + frxTIFFExport1: TfrxTIFFExport; + frxPDFExport1: TfrxPDFExport; + frxBMPExport1: TfrxBMPExport; + TBXItem38: TTBXItem; + TBXSeparatorItem19: TTBXSeparatorItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXItem45: TTBXItem; + TBXItem46: TTBXItem; + TBXItem47: TTBXItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXItem48: TTBXItem; + TBXSubmenuItem3: TTBXSubmenuItem; + TBXItem49: TTBXItem; + TBXItem50: TTBXItem; + procedure FormShow(Sender: TObject); + procedure actPrimeraPaginaExecute(Sender: TObject); + procedure actUltimaPaginaExecute(Sender: TObject); + procedure actPaginaAnteriorExecute(Sender: TObject); + procedure actPaginaSiguienteExecute(Sender: TObject); + procedure actZoomInExecute(Sender: TObject); + procedure actTodaPaginaExecute(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actAnchoPaginaExecute(Sender: TObject); + procedure actZoomOutExecute(Sender: TObject); + procedure cbZoomItemClick(Sender: TObject); + procedure actToolHandExecute(Sender: TObject); + procedure actToolZoomExecute(Sender: TObject); + private + FPreview : TfrViewPreview; + function GetReport: TfrxReport; + procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); + procedure UpdateZoom; + public + constructor Create(AOwner: TComponent); override; + property Report: TfrxReport read GetReport; + procedure Print; + procedure LoadFromStream(AStream : TStream); + function ExportToFile : String; + end; + +var + fEditorPreview: TfEditorPreview; + +implementation + +uses + frxRes, frxUtils, frxPrinter, uCustomEditor, uSysFunc, frxFormUtils; + +{$R *.dfm} + +{ TfEditorBase1 } + +function TfEditorPreview.GetReport: TfrxReport; +begin + Result := frxReport1; +end; + + +procedure TfEditorPreview.FormShow(Sender: TObject); +begin + inherited; + UpdateZoom; + actPrimeraPagina.Execute; + FPreview.ShowEmbedded(Self); + Report.ShowPreparedReport; + actAnchoPagina.Execute; +end; + +procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.First; +end; + +procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Last; +end; + +procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Prior; +end; + +procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Next; +end; + +procedure TfEditorPreview.actZoomInExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.UpdateZoom; +begin + cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%'; +end; + +procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmWholePage; + UpdateZoom; +end; + +procedure TfEditorPreview.FormDestroy(Sender: TObject); +begin + inherited; + FPreview.Free; +end; + +procedure TfEditorPreview.FormResize(Sender: TObject); +begin + inherited; + UpdateZoom; +end; + +procedure TfEditorPreview.actImprimirExecute(Sender: TObject); +begin + inherited; + if not frxPrinters.HasPhysicalPrinters then + frxErrorMsg(frxResources.Get('clNoPrinters')) + else + FPreview.Preview.Print; + Enabled := True; +end; + +procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.ZoomMode := zmPageWidth; + UpdateZoom; +end; + +procedure TfEditorPreview.actZoomOutExecute(Sender: TObject); +begin + inherited; + FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25; + UpdateZoom; +end; + +procedure TfEditorPreview.cbZoomItemClick(Sender: TObject); +var + s: String; +begin + FPreview.Preview.SetFocus; + + if cbZoom.ItemIndex = 6 then + actAnchoPagina.Execute + else if cbZoom.ItemIndex = 7 then + actTodaPagina.Execute + else + begin + s := cbZoom.Text; + + if Pos('%', s) <> 0 then + s[Pos('%', s)] := ' '; + while Pos(' ', s) <> 0 do + Delete(s, Pos(' ', s), 1); + + if s <> '' then + FPreview.Preview.Zoom := frxStrToFloat(s) / 100; + end; + + UpdateZoom; +end; + +procedure TfEditorPreview.actToolHandExecute(Sender: TObject); +begin + if tbxMano.Checked then + FPreview.Preview.Tool := ptHand +end; + +procedure TfEditorPreview.actToolZoomExecute(Sender: TObject); +begin + if tbxZoom.Checked then + FPreview.Preview.Tool := ptZoom; +end; + +procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview; + PageNo: Integer); +begin + StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'), + [PageNo, Sender.PageCount]); +end; + +constructor TfEditorPreview.Create(AOwner: TComponent); +begin + inherited; + + with cbZoom.Strings do + begin + Clear; + Add('25%'); + Add('50%'); + Add('75%'); + Add('100%'); + Add('150%'); + Add('200%'); + Add(frxResources.Get('zmPageWidth')); + Add(frxResources.Get('zmWholePage')); + end; + + FPreview := TfrViewPreview.Create(Self); + Report.Preview := FPreview.Preview; + FPreview.Preview.OnPageChanged := OnPageChanged; +end; + +procedure TfEditorPreview.Print; +begin + actImprimir.Execute; +end; + +function TfEditorPreview.ExportToFile: String; +var + AFile : String; +begin + Result := ''; + AFile := DarFicheroTIFFTemporal; + frxTIFFExport1.SeparateFiles := False; + frxTIFFExport1.DefaultPath := ExtractFilePath(AFile); + frxTIFFExport1.FileName := ExtractFileName(AFile); + try + if Report.Export(frxTIFFExport1) then + Result := AFile; + finally + frxTIFFExport1.DefaultPath := ''; + frxTIFFExport1.FileName := ''; + end; +end; + +procedure TfEditorPreview.LoadFromStream(AStream: TStream); +begin + Report.PreviewPages.LoadFromStream(AStream); +end; + +end. diff --git a/Varela/Varela/Source/Base/uEditorUtils.pas b/Varela/Varela/Source/Base/uEditorUtils.pas new file mode 100644 index 0000000..68b4b86 --- /dev/null +++ b/Varela/Varela/Source/Base/uEditorUtils.pas @@ -0,0 +1,108 @@ +unit uEditorUtils; + +interface + +uses + uEditorItem, uDADataTable, Controls; + +type + TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult; + TProcItemEditor = procedure(ABizObject : TDADataTableRules); + TFuncGetEditor = function : IEditorItem; + + TEditorType = (etItem, etItems, etSelectItems); + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; + + +implementation + +uses + Dialogs, Classes, ComObj, SysUtils; + +var + FBizEditorsList : TList; + +type + PBizEditorsRec = ^TBizEditorsRec; + TBizEditorsRec = record + IID : String; + ItemEditor : TFuncItemEditor; + ItemsEditor : TFuncItemEditor; + SelectItemsEditor : TFuncItemEditor; + end; + + +function FindBizEditors(const IID : TGUID) : PBizEditorsRec; +var + P: PBizEditorsRec; + I: Integer; + AIID : String; +begin + Result := NIL; + AIID := GUIDToString(IID); + if FBizEditorsList <> nil then + for I := 0 to FBizEditorsList.Count-1 do + begin + P := FBizEditorsList[I]; + if (AIID = P^.IID) then + begin + Result := P; + Break; + end; + end; +end; + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); +var + P: PBizEditorsRec; +begin + P := NIL; + if FBizEditorsList = nil then + FBizEditorsList := TList.Create; + + P := FindBizEditors(IID); + if not Assigned(P) then + New(P); + try + P^.IID := GUIDToString(IID); + case AType of + etItem : P^.ItemEditor := AFuncItemEditor; + etItems : P^.ItemsEditor := AFuncItemEditor; + etSelectItems : P^.SelectItemsEditor := AFuncItemEditor; + end; + FBizEditorsList.Insert(0, P); + except + on E: EConvertError do + ShowMessage(E.Message); + end; +end; + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; +var + P: PBizEditorsRec; +begin + P := FindBizEditors(IID); + + if Assigned(P) then + case AType of + etItem : Result := P.ItemEditor(ABizObject); + etItems : Result := P.ItemsEditor(ABizObject); + etSelectItems : Result := P.SelectItemsEditor(ABizObject); + end; +end; + + +initialization + FBizEditorsList := TList.Create; + +finalization + FBizEditorsList.Free; + +end. diff --git a/Varela/Varela/Source/Base/uExceptions.pas b/Varela/Varela/Source/Base/uExceptions.pas new file mode 100644 index 0000000..a8f8b26 --- /dev/null +++ b/Varela/Varela/Source/Base/uExceptions.pas @@ -0,0 +1,21 @@ +unit uExceptions; + +interface + +uses + uDADelta; + +const + AUF_FKVIOLATION = 'violation of FOREIGN KEY'; + AUF_HAVEVALUE = 'must have a value'; + +type + IApplyUpdateFailedException = interface + ['{B090A762-3D65-405E-A810-14DB4F6E8F82}'] + procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); + end; + +implementation + +end. + diff --git a/Varela/Varela/Source/Base/uGridUtils.pas b/Varela/Varela/Source/Base/uGridUtils.pas new file mode 100644 index 0000000..40b8e6d --- /dev/null +++ b/Varela/Varela/Source/Base/uGridUtils.pas @@ -0,0 +1,261 @@ +unit uGridUtils; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid; + +type + TRecordInfo = class + KeyValues: Variant; + ALevel: Integer; + end; + + TRecordInfos = class(TList) + private + function GetItem(Index: Integer): TRecordInfo; + protected + procedure Notify(Ptr: Pointer; Action: TListNotification); override; + public + property Items[Index: Integer]: TRecordInfo read GetItem; Default; + end; + + TcxGridStatus = class + protected + GroupRecords: TRecordInfos; + SelectedRecords: TRecordInfos; + SelStartItem: Integer; + SelEndItem: Integer; + AFocusedRow: TRecordInfo; + TopRow: TRecordInfo; + + function SaveRecord(AView: TcxGridDBTableView; GridRecord: + TcxCustomGridRecord): TRecordInfo; + function FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; + + procedure SaveGridViewSelection(AView: TcxGridDBTableView); + procedure LoadGridViewSelection(AView: TcxGridDBTableView); + procedure SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); + procedure SaveGridViewExpanded(AView: TcxGridDBTableView); + procedure LoadGridViewExpanded(AView: TcxGridDBTableView); + public + constructor Create(AGridView: TcxGridDBTableView); + destructor Destroy; override; + procedure Restore(AGridView: TcxGridDBTableView); + end; + +implementation + + +uses + cxVariants; + + +procedure TRecordInfos.Notify(Ptr: Pointer; Action: TListNotification); +begin + if Action in [lnExtracted, lnDeleted] then + FreeAndNil(TRecordInfo(Ptr)); +end; + +function TRecordInfos.GetItem(Index: Integer): TRecordInfo; +begin + Result := TRecordInfo(inherited Items[Index]); +end; + +function TcxGridStatus.SaveRecord(AView: TcxGridDBTableView; + GridRecord: TcxCustomGridRecord): TRecordInfo; +begin + Result := TRecordInfo.Create; + Result.KeyValues := + AView.DataController.GetRecordId(GridRecord.RecordIndex); + Result.ALevel := GridRecord.Level; +end; + +function TcxGridStatus.FindRecordEx(AView: TcxGridDBTableView; RecordInfo: + TRecordInfo): TcxCustomGridRecord; +var + I, ARecordIndex: Integer; + AList: TList; + AKeyValue: Variant; +begin + I := 0; + ARecordIndex := AView.DataController.FindRecordIndexByKey(RecordInfo.KeyValues); + Result := nil; + AList := TList.Create; + try + while I < AView.ViewData.RowCount do + begin + if AView.ViewData.Rows[I] is TcxGridGroupRow then + begin + AList.Clear; + AView.DataController.Groups.LoadRecordIndexesByRowIndex(AList, I); + if AList.IndexOf(Pointer(ARecordIndex)) <> -1 then + begin + if AView.ViewData.Rows[I].Level < RecordInfo.ALevel then + AView.ViewData.Rows[I].Expand(False) + else + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + end + else + begin + AKeyValue := AView.DataController.GetRecordId(AView.ViewData.Rows[I].RecordIndex); + if VarEquals(AKeyValue, RecordInfo.KeyValues) then + begin + Result := AView.ViewData.Rows[I]; + Break; + end; + end; + Inc(I); + end; + finally + FreeAndNil(AList); + end; +end; + +procedure TcxGridStatus.SaveGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + SelectRecordInfo: TRecordInfo; +begin + with AView.DataController, AView.Controller do + begin + for i := 0 To SelectedRecordCount - 1 do + begin + SelectRecordInfo := SaveRecord(AView, SelectedRecords[i]); + Self.SelectedRecords.Add(SelectRecordInfo); + end; + if SelectedColumnCount = 0 then + begin + SelStartItem := -1; + SelEndItem := -1; + end + else + begin + SelStartItem := SelectedColumns[0].Index; + SelEndItem := SelectedColumns[SelectedColumnCount - 1].Index; + end; + end; +end; + +procedure TcxGridStatus.LoadGridViewSelection( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + AView.Controller.ClearSelection; + + for i := 0 To SelectedRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, SelectedRecords[i]); + if Assigned(ARecord) then + ARecord.Selected := True; + end; + + if SelStartItem <> -1 then + AView.Controller.SelectColumns(AView.Columns[SelStartItem], + AView.Columns[SelEndItem]); +end; + +procedure TcxGridStatus.SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); +begin + if AView.Controller.FocusedRow = nil then + AFocusedRow := nil + else + AFocusedRow := SaveRecord(AView, AView.Controller.FocusedRow); + TopRow := nil; + if (AView.Controller.TopRowIndex <> -1) and + (AView.Controller.TopRowIndex < AView.ViewData.RecordCount) then + TopRow := SaveRecord(AView, AView.ViewData.Records[AView.Controller.TopRowIndex]); +end; + +procedure TcxGridStatus.LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); +var + ARecord: TcxCustomGridRecord; +begin + ARecord := FindRecordEx(AView, AFocusedRow); + if Assigned(ARecord) then + ARecord.Focused := True; + ARecord := FindRecordEx(AView, TopRow); + if Assigned(ARecord) then + AView.Controller.TopRowIndex := ARecord.Index; +end; + +type + TcxDataControllerGroupsAccess = class(TcxDataControllerGroups); + TcxDataGroupsAccess = class(TcxDataGroups); + +procedure TcxGridStatus.SaveGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + GroupRecordInfo: TRecordInfo; +begin + for i := 0 To AView.DataController.RowCount - 1 do + with AView.ViewData.Records[i] do + if Expanded then + begin + GroupRecordInfo := SaveRecord(AView, AView.ViewData.Records[i]); + GroupRecords.Add(GroupRecordInfo); + end; +end; + +procedure TcxGridStatus.LoadGridViewExpanded( + AView: TcxGridDBTableView); +var + i: Integer; + ARecord: TcxCustomGridRecord; +begin + for i := 0 to GroupRecords.Count - 1 do + begin + ARecord := FindRecordEx(AView, GroupRecords[i]); + if Assigned(ARecord) then + ARecord.Expand(False); + end; +end; + +constructor TcxGridStatus.Create(AGridView: TcxGridDBTableView); +begin + inherited Create; + GroupRecords := TRecordInfos.Create; + SelectedRecords := TRecordInfos.Create; + SaveGridViewSelection(AGridView); + SaveGridViewExpanded(AGridView); + SaveGridViewTopFocusedRecords(AGridView); +end; + +destructor TcxGridStatus.Destroy; +begin + FreeAndNil(GroupRecords); + FreeAndNil(SelectedRecords); + inherited; +end; + +procedure TcxGridStatus.Restore(AGridView: TcxGridDBTableView); +begin + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 0, 0); + try + AGridView.ViewData.Collapse(True); + LoadGridViewExpanded(AGridView); + LoadGridViewSelection(AGridView); + LoadGridViewTopFocusedRecords(AGridView); + finally + SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 1, 0); + RedrawWindow(AGridView.Site.Handle, Nil, 0, RDW_FRAME Or RDW_NOFRAME Or + RDW_ALLCHILDREN Or RDW_INVALIDATE); + end; +end; + + +end. diff --git a/Varela/Varela/Source/Base/uIntegerList.pas b/Varela/Varela/Source/Base/uIntegerList.pas new file mode 100644 index 0000000..93d40db --- /dev/null +++ b/Varela/Varela/Source/Base/uIntegerList.pas @@ -0,0 +1,61 @@ +unit uIntegerList; + +interface + +uses + Classes; + +type + TIntegerList = class(TList) + private + function GetInteger(Index: integer): integer; + procedure SetInteger(Index: integer; Value: integer); + public + procedure Add(Value: integer); reintroduce; + function Find(Value: integer; var Index: Integer): Boolean; + property Integers[index: integer]: integer read GetInteger write SetInteger; default; + end; + +implementation + +function TIntegerList.GetInteger(Index: integer): integer; +begin + result := Integer(Items[index]); +end; + +procedure TIntegerList.SetInteger(Index: integer; Value: integer); +begin + Items[index] := Pointer(Value); +end; + +procedure TIntegerList.Add(Value: integer); +var + Index: integer; +begin + if not Find(Value, Index) then + Insert(Index, Pointer(Value)); +end; + +function TIntegerList.Find(Value: integer; var Index: Integer): Boolean; +var + L, H, I, C: Integer; +begin + Result := False; + L := 0; + H := Count - 1; + while L <= H do + begin + I := (L + H) shr 1; + C := Integers[I] - Value; + if C < 0 then + L := I + 1 + else begin + H := I - 1; + if C = 0 then + Result := True; + end; + end; + Index := L; +end; + +end. diff --git a/Varela/Varela/Source/Base/uSysFunc.pas b/Varela/Varela/Source/Base/uSysFunc.pas new file mode 100644 index 0000000..f4c26f4 --- /dev/null +++ b/Varela/Varela/Source/Base/uSysFunc.pas @@ -0,0 +1,249 @@ +{ +=============================================================================== + Copyright (©) 2002. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 01-11-2002 + Versión actual: 1.0.0 + Fecha versión actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uSysFunc; + +interface + +{ Funciones del sistema } +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; +function DarRutaTemporal : String; +function DarFicheroTemporal : String; +function DarFicheroBMPTemporal : String; +function DarFicheroTIFFTemporal : String; +function DarFicheroExportar (var Fichero : String) : Boolean; +function DarVersionFichero (Executable : String) : String; +function DarFechaFichero (Executable : String) : String; +procedure CopiarFichero(const Origen, Destino: string); +procedure DoDelTree( TheDir : String); +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); + + +implementation + +uses + SysUtils, Windows, Dialogs, + + Messages, Classes, Graphics, Controls, Forms, + StdCtrls; + +function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean; +var + StartupInfo : TStartupInfo; + ProcessInfo : TProcessInformation; +begin + {setup the startup information for the application } + FillChar(StartupInfo, SizeOf(TStartupInfo), 0); + with StartupInfo do + begin + cb := SizeOf(TStartupInfo); + dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; + if Oculto then + wShowWindow:= SW_HIDE + else + wShowWindow:= SW_SHOWNORMAL; + end; + + Result := CreateProcess(nil,PChar(LineaComando), nil, nil, False, + NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo); + if Esperar then + if Result then + begin + WaitForInputIdle(ProcessInfo.hProcess, INFINITE); + WaitForSingleObject(ProcessInfo.hProcess, INFINITE); + end; +end; + +function DarRutaTemporal: String; +var + nBufferLength : DWORD; // size, in characters, of the buffer + lpBuffer : PChar; // address of buffer for temp. path +begin + nBufferLength := MAX_PATH + 1; // initialize + GetMem( lpBuffer, nBufferLength ); + try + if GetTempPath( nBufferLength, lpBuffer ) <> 0 then + Result := StrPas( lpBuffer ) + else + Result := ''; + finally + FreeMem( lpBuffer ); + end; +end; + +function DarFicheroTemporal : String; +var + Buf: array [0..MAX_PATH] of Char; + RutaTmp : string; +begin + RutaTmp := DarRutaTemporal; + if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then + SetString(Result, Buf, StrLen(Buf)) + else + Result := ''; +end; + +function DarFicheroTIFFTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif'; +end; + +function DarFicheroBMPTemporal : String; +var + Cadena : String; +begin + Cadena := DarFicheroTemporal; + Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; +end; + +function DarFicheroExportar (var Fichero : String) : Boolean; +var + DialogoSalvar : TSaveDialog; +begin + Result := False; + DialogoSalvar := TSaveDialog.Create(NIL); + try + with DialogoSalvar do + begin + DefaultExt := 'doc'; + Filter := 'Documento de Word (*.doc)|*.doc'; + 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; +var + Size, Size2: DWord; + Pt, Pt2: Pointer; +begin + Size := GetFileVersionInfoSize(PChar (Executable), Size2); + if Size > 0 then + begin + GetMem (Pt, Size); + try + GetFileVersionInfo (PChar (Executable), 0, Size, Pt); + VerQueryValue (Pt, '\', Pt2, Size2); + with TVSFixedFileInfo (Pt2^) do + begin + Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' + + IntToStr (LoWord (dwFileVersionMS)) + '.' + + IntToStr (HiWord (dwFileVersionLS)) + '.' + + IntToStr (LoWord (dwFileVersionLS)); + end; + finally + FreeMem (Pt); + end; + end; +end; + +function DarFechaFichero (Executable : String) : String; +var + FileTime, LocalFileTime : TFileTime; + SystemTime : TSystemTime; + hFile : Integer; +begin + hFile := FileOpen(Executable, fmShareDenyNone); + try + if hFile <> -1 then + begin + Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime + // Change the file time to local time + FileTimeToLocalFileTime( FileTime, LocalFileTime ); + if FileTimeToSystemTime(LocalFileTime, SystemTime) then + Result := DateTimeToStr(SystemTimeToDateTime(SystemTime)); + end; // if hFile <> 0 + finally + FileClose( hFile ); + end; // try +end; + + +procedure CopiarFichero(const Origen, Destino: string); +var + lpMsgBuf : pchar; +begin + CopyFile(PChar(Origen), PChar(Destino), FALSE); +end; + +procedure DoDelTree(TheDir : String); + Var + Search : TSearchRec; + rec : word; +Begin + If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\'; + rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search); + While rec = 0 Do + Begin + If Search.Name[1] <> '.' Then + Begin +// Is this a directory? + If (Search.Attr And faDirectory) = faDirectory Then + Begin +// If so, lets call DelTree again using this new +// directory as the TheDir parameter. + DoDelTree(TheDir + Search.Name); +// Not that all of the files are gone from this directoy, +// we can remove the directory. + RmDir(TheDir + Search.Name); + End + Else + Begin +// We found a file. +// Now lets reset its attributes so we don't have any problems +// deleting them. + SysUtils.FileSetAttr(TheDir + Search.Name, 0); + SysUtils.DeleteFile(TheDir + Search.Name); + Application.ProcessMessages; + End; + End; + rec := SysUtils.FindNext(Search); + End; + SysUtils.FindClose(Search); +End; + +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); +begin +{$I-} + DoDelTree(DirToKill); +// If we want to delete the choosen directory. + If KillChoosenDir Then + RmDir(DirToKill); + //modified + if IOResult <> 0 then + ShowMessage('Could not delete ' + DirToKill); +//{$I} +end; + + +end. + \ No newline at end of file diff --git a/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm b/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm new file mode 100644 index 0000000..cf83624 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm @@ -0,0 +1,53 @@ +inherited frViewBarraSeleccion: TfrViewBarraSeleccion + Width = 439 + Height = 19 + Align = alBottom + AutoScroll = False + Visible = False + object pnlSeleccion: TPanel + Left = 0 + Top = -18 + Width = 439 + Height = 37 + Align = alBottom + BevelOuter = bvNone + ParentBackground = True + TabOrder = 0 + DesignSize = ( + 439 + 37) + object bSeleccionar: TButton + Left = 264 + Top = 7 + Width = 74 + Height = 23 + Action = actSeleccionar + Anchors = [akRight] + Default = True + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 343 + Top = 7 + Width = 74 + Height = 23 + Action = actCancelar + Anchors = [akRight] + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + end + object ActionListSeleccion: TActionList + Left = 8 + Top = 5 + object actSeleccionar: TAction + Caption = '&Seleccionar' + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end +end diff --git a/Varela/Varela/Source/Base/uViewBarraSeleccion.pas b/Varela/Varela/Source/Base/uViewBarraSeleccion.pas new file mode 100644 index 0000000..b09d87f --- /dev/null +++ b/Varela/Varela/Source/Base/uViewBarraSeleccion.pas @@ -0,0 +1,37 @@ +unit uViewBarraSeleccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls; + +type + TfrViewBarraSeleccion = class(TfrViewBase) + pnlSeleccion: TPanel; + bSeleccionar: TButton; + bCancelar: TButton; + ActionListSeleccion: TActionList; + actSeleccionar: TAction; + actCancelar: TAction; + procedure actCancelarExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frViewBarraSeleccion: TfrViewBarraSeleccion; + +implementation + +{$R *.dfm} + +procedure TfrViewBarraSeleccion.actCancelarExecute(Sender: TObject); +begin + inherited; + // +end; + +end. diff --git a/Varela/Varela/Source/Base/uViewBase.dfm b/Varela/Varela/Source/Base/uViewBase.dfm new file mode 100644 index 0000000..6b80b72 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewBase.dfm @@ -0,0 +1,14 @@ +object frViewBase: TfrViewBase + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False +end diff --git a/Varela/Varela/Source/Base/uViewBase.pas b/Varela/Varela/Source/Base/uViewBase.pas new file mode 100644 index 0000000..16962ed --- /dev/null +++ b/Varela/Varela/Source/Base/uViewBase.pas @@ -0,0 +1,32 @@ +unit uViewBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize; + +type + IViewBase = interface(ICustomView) + ['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}'] + procedure Refresh; + end; + + TfrViewBase = class(TCustomView, IViewBase) + public + procedure Refresh; virtual; + end; + +implementation + +{$R *.dfm} + + +{ TfrViewBase } + +procedure TfrViewBase.Refresh; +begin + // +end; + +end. diff --git a/Varela/Varela/Source/Base/uViewGrid.dfm b/Varela/Varela/Source/Base/uViewGrid.dfm new file mode 100644 index 0000000..211269d --- /dev/null +++ b/Varela/Varela/Source/Base/uViewGrid.dfm @@ -0,0 +1,79 @@ +inherited frViewGrid: TfrViewGrid + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 441 + Height = 268 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfOffice11 + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = dsDataSource + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + Styles.Inactive = cxStyleSelection + Styles.Selection = cxStyleSelection + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object dxComponentPrinter: TdxComponentPrinter + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint] + PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins] + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 368 + Top = 128 + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 336 + Top = 128 + end + object cxStyleRepository1: TcxStyleRepository + Left = 296 + Top = 128 + object cxStyleEven: TcxStyle + end + object cxStyleOdd: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaptionText + end + object cxStyleSelection: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clHighlight + TextColor = clHighlightText + end + object cxStyleSinOrden: TcxStyle + end + object cxStyleConOrden: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + end +end diff --git a/Varela/Varela/Source/Base/uViewGrid.pas b/Varela/Varela/Source/Base/uViewGrid.pas new file mode 100644 index 0000000..c644770 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewGrid.pas @@ -0,0 +1,86 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, uDAInterfaces; + +type + IViewGrid = interface(IViewGridBase) + ['{7EA40980-AD73-4590-A53A-932316C7B121}'] + end; + + TfrViewGrid = class(TfrViewGridBase, IViewGrid) + cxGrid: TcxGrid; + cxGridLevel: TcxGridLevel; + cxGridView: TcxGridDBTableView; + dxComponentPrinter: TdxComponentPrinter; + dxPSEngineController1: TdxPSEngineController; + cxStyleRepository1: TcxStyleRepository; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + cxStyleSinOrden: TcxStyle; + cxStyleConOrden: TcxStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + end; + +implementation + +uses + uDataModuleBase, uDBSelectionList; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +function TfrViewGrid.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewGrid.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +procedure TfrViewGrid.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(AItem) then + begin + if AItem.SortOrder = soNone then + AStyle := cxStyleSinOrden + else + AStyle := cxStyleConOrden; + end; +end; + +end. + diff --git a/Varela/Varela/Source/Base/uViewGridBase.ddp b/Varela/Varela/Source/Base/uViewGridBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Base/uViewGridBase.dfm b/Varela/Varela/Source/Base/uViewGridBase.dfm new file mode 100644 index 0000000..5695879 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewGridBase.dfm @@ -0,0 +1,10 @@ +inherited frViewGridBase: TfrViewGridBase + Width = 441 + Height = 268 + ExplicitWidth = 441 + ExplicitHeight = 268 + object dsDataSource: TDADataSource + Left = 8 + Top = 16 + end +end diff --git a/Varela/Varela/Source/Base/uViewGridBase.pas b/Varela/Varela/Source/Base/uViewGridBase.pas new file mode 100644 index 0000000..d1c5818 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewGridBase.pas @@ -0,0 +1,335 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uDAInterfaces; + +type + IViewGridBase = interface(IViewBase) + ['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure Preview; + procedure Print; + procedure PrintSetup; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure GotoFirst; + procedure GotoLast; + + function GetFocusedView : TcxGridDBTableView; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetGrid : TcxGrid; + property _Grid : TcxGrid read GetGrid; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + procedure SetDblClick(const Value: TNotifyEvent); + function GetDblClick: TNotifyEvent; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + + procedure SetPopupMenu(const Value: TPopupMenu); + function GetPopupMenu: TPopupMenu; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + + function GetMultiSelect: Boolean; + procedure SetMultiSelect(const Value: Boolean); + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + procedure SetFilter(const Value: string); + function GetFilter: string; + property Filter: string read GetFilter write SetFilter; + + function GetFilterAsSQL: string; + end; + + + TfrViewGridBase = class(TfrViewBase, IViewGridBase) + dsDataSource: TDADataSource; + private + FFilter: string; + FOnFilterChanged : TNotifyEvent; + FPopupMenu: TPopupMenu; + procedure FiltrarGrid(TextoFiltro : String); + protected + FGridStatus : TcxGridStatus; + FOnDblClick: TNotifyEvent; + function GetMultiSelect: Boolean; virtual; + procedure SetMultiSelect(const Value: Boolean); virtual; + procedure SetPopupMenu(const Value: TPopupMenu); virtual; + function GetPopupMenu: TPopupMenu; virtual; + procedure SetDblClick(const Value: TNotifyEvent); virtual; + function GetDblClick: TNotifyEvent; virtual; + function GetGrid : TcxGrid; virtual; abstract; + function GetFocusedView : TcxGridDBTableView; virtual; abstract; + procedure SetFilter(const Value: string); virtual; + function GetFilter: string; virtual; + procedure FilterChanged(Sender : TObject); virtual; + public + constructor Create(AOwner: TComponent); override; + + procedure ShowEmbedded(const AParent : TWinControl); override; + + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + + procedure SaveGridStatus; + procedure RestoreGridStatus; + + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + + procedure GotoFirst; + procedure GotoLast; + + procedure StoreToRegistry (const Path : String); + procedure RestoreFromRegistry (const Path : String); + + function GetFilterAsSQL: string; + + property Filter: string read GetFilter write SetFilter; + property _FocusedView : TcxGridDBTableView read GetFocusedView; + property _Grid : TcxGrid read GetGrid; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + destructor Destroy; override; + end; + +procedure Register; + +implementation + +uses + CCReg, uDataModuleBase, uDBSelectionList; + +{$R *.dfm} + +procedure Register; +begin + RegisterCustomContainer(TfrViewGridBase); +end; + +{ TfrViewGrid } + +procedure TfrViewGridBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewGridBase.ContraerTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewGridBase.Create(AOwner: TComponent); +begin + inherited; + FGridStatus := nil; + FFilter := ''; + FOnFilterChanged := FilterChanged; + FPopupMenu := nil; + FOnDblClick := nil; +end; + +procedure TfrViewGridBase.ExpandirTodo; +begin + if Assigned(_FocusedView) then + _FocusedView.ViewData.Expand(True); +end; + +function TfrViewGridBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewGridBase.GetFilter: string; +begin + Result := FFilter; +end; + +function TfrViewGridBase.GetMultiSelect: Boolean; +begin + Result := _FocusedView.OptionsSelection.MultiSelect; +end; + +function TfrViewGridBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +procedure TfrViewGridBase.GotoFirst; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewGridBase.GotoLast; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoLast; +end; + +procedure TfrViewGridBase.Preview; +begin + +end; + +procedure TfrViewGridBase.Print; +begin + +end; + +procedure TfrViewGridBase.PrintSetup; +begin + +end; + +procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewGridBase.SetFilter(const Value: string); +begin + if FFilter <> Value then + begin + FFilter := Value; + FiltrarGrid(FFilter); + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); + end; +end; + +procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean); +begin + _FocusedView.OptionsSelection.MultiSelect := True; +// _FocusedView..OnSelectionChanged := SelectionChanged; +end; + +procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; + _FocusedView.PopupMenu := FPopupMenu; +end; + +procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl); +begin + inherited; + + // No activar la tabla ya por si acaso tuviera parámetros +{ if not DADataSource.DataTable.Active then + DADataSource.DataTable.Active := True;} + GotoFirst; + _FocusedView.Focused := True; + if _FocusedView.ViewData.RecordCount > 0 then + begin + _FocusedView.ViewData.Records[0].Selected := True; + _FocusedView.ViewData.Records[0].Focused := True; + end; +end; + +procedure TfrViewGridBase.StoreToRegistry(const Path : String); +begin + if Assigned(_FocusedView) then + _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); +end; + +procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String); +var + Columna: TcxGridDBColumn; + i: Integer; + AItemList: TcxFilterCriteriaItemList; +begin + with _FocusedView.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if Length(TextoFiltro) > 0 then + begin + AItemList := Root.AddItemList(fboAnd); + AItemList.BoolOperatorKind := fboOr; + for i:=0 to (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (_FocusedView as TcxGridDBTableView).Columns[i]; + if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then + AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); + end; + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + + +procedure TfrViewGridBase.FilterChanged(Sender: TObject); +begin + +end; + +destructor TfrViewGridBase.Destroy; +begin + FOnFilterChanged := Nil; + FreeAndNIL(FGridStatus); + inherited; +end; + +procedure TfrViewGridBase.RestoreGridStatus; +begin + if Assigned(FGridStatus) then + FGridStatus.Restore(_FocusedView); +end; + +procedure TfrViewGridBase.SaveGridStatus; +begin + FreeAndNIL(FGridStatus); + FGridStatus := TcxGridStatus.Create(_FocusedView); +end; + +function TfrViewGridBase.GetFilterAsSQL: string; +begin + with _FocusedView.DataController.Filter do + Result := FilterText; +end; + +end. + diff --git a/Varela/Varela/Source/Base/uViewPreview.dfm b/Varela/Varela/Source/Base/uViewPreview.dfm new file mode 100644 index 0000000..52e3be3 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewPreview.dfm @@ -0,0 +1,10 @@ +inherited frViewPreview: TfrViewPreview + object frxPreview: TfrxPreview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + OutlineVisible = False + end +end diff --git a/Varela/Varela/Source/Base/uViewPreview.pas b/Varela/Varela/Source/Base/uViewPreview.pas new file mode 100644 index 0000000..c16f376 --- /dev/null +++ b/Varela/Varela/Source/Base/uViewPreview.pas @@ -0,0 +1,43 @@ +unit uViewPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, frxClass, frxPreview, JvComponent, JvFormAutoSize; + +type + IViewPreview = interface(IViewBase) + ['{F9A96948-4005-4E9B-8045-7B4874A05D19}'] + function GetPreview: TfrxPreview; + property Preview : TfrxPreview read GetPreview; + end; + + TfrViewPreview = class(TfrViewBase, IViewPreview) + frxPreview: TfrxPreview; + private + function GetPreview: TfrxPreview; + public + property Preview : TfrxPreview read GetPreview; + end; + +implementation + +{$R *.dfm} + +{ TfrViewPreview } + +function TfrViewPreview.GetPreview: TfrxPreview; +begin + Result := frxPreview; +end; + +initialization + RegisterClass(TfrViewPreview); + +finalization + UnRegisterClass(TfrViewPreview); + +end. + + diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj b/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj new file mode 100644 index 0000000..3437b92 --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj @@ -0,0 +1,679 @@ + + + + + + + + + + + + CargaEDI.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + BaseD10;Configuracion;FicherosEDI;rtl;dbrtl;vcldb;DataAbstract_Core_D10;DataAbstract_IDE_D10 + + + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 2.0.0.0 + + + + + + 1.0.0.0 + + + Internet Direct Version 9 (Indy) Property and Component Editors + + + + diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.cfg b/Varela/Varela/Source/CargaEDI/CargaEDI.cfg new file mode 100644 index 0000000..d4335d6 --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.cfg @@ -0,0 +1,46 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Cliente" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-LUBaseD7;Configuracion;FicherosEDI +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.dof b/Varela/Varela/Source/CargaEDI/CargaEDI.dof new file mode 100644 index 0000000..75a90da --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Cliente +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=BaseD7;Configuracion;FicherosEDI +Conditionals= +DebugSourceDirs= +UsePackages=1 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=1 +Release=1 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.1.1.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.dpr b/Varela/Varela/Source/CargaEDI/CargaEDI.dpr new file mode 100644 index 0000000..44e0fec --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.dpr @@ -0,0 +1,14 @@ +program CargaEDI; + +uses + Forms, + uCargaEDI in 'uCargaEDI.pas' {fCargaEDI}; + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'Carga automática EDI'; + Application.CreateForm(TfCargaEDI, fCargaEDI); + Application.Run; +end. diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.drc b/Varela/Varela/Source/CargaEDI/CargaEDI.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.identcache b/Varela/Varela/Source/CargaEDI/CargaEDI.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2895ca953b309136dd0fab9d7ba78e0e49cf873c GIT binary patch literal 239 zcmcJ|JqiLb5C!1iNpgZcfSqi%un@$c)igsA)`(`7`MJL-G&k5+J$MhkgLCdVA0be( zPiZP1TlTT2*0u`V#gHq(rHaqL3klp#!AG^+mn+k&Bo%ldmp4Kr<5XZqUU3QMQKr0c Qw?^uosQvkALm6Z*Uwzw8I{*Lx literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.rc b/Varela/Varela/Source/CargaEDI/CargaEDI.rc new file mode 100644 index 0000000..ab63d7e --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/CargaEDI.rc @@ -0,0 +1,23 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\CargaEDI.ico" +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "2.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.res b/Varela/Varela/Source/CargaEDI/CargaEDI.res new file mode 100644 index 0000000000000000000000000000000000000000..5c6d4bd5049f3e4d0f72eec13a7aa979b5041874 GIT binary patch literal 15548 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.ddp b/Varela/Varela/Source/CargaEDI/uCargaEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm b/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm new file mode 100644 index 0000000..1a08cf1 --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm @@ -0,0 +1,843 @@ +object fCargaEDI: TfCargaEDI + Left = 470 + Top = 409 + BorderIcons = [] + BorderStyle = bsDialog + Caption = 'Monitor de carga autom'#225'tica' + ClientHeight = 324 + ClientWidth = 367 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label13: TLabel + Left = 40 + Top = 118 + Width = 204 + Height = 14 + Caption = 'Carga autom'#225'tica de ficheros EDI' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Image1: TImage + Left = 0 + Top = 0 + Width = 367 + Height = 100 + Align = alTop + AutoSize = True + Picture.Data = { + 0A544A504547496D616765194A0000FFD8FFE000104A46494600010201004800 + 480000FFE106744578696600004D4D002A000000080007011200030000000100 + 010000011A00050000000100000062011B0005000000010000006A0128000300 + 00000100020000013100020000001B0000007201320002000000140000008D87 + 69000400000001000000A4000000D00000004800000001000000480000000141 + 646F62652050686F746F73686F702043532057696E646F777300323030363A30 + 373A30372031323A35323A3237000000000003A00100030000000100010000A0 + 0200040000000100000177A00300040000000100000064000000000000000601 + 0300030000000100060000011A0005000000010000011E011B00050000000100 + 00012601280003000000010002000002010004000000010000012E0202000400 + 0000010000053E0000000000000048000000010000004800000001FFD8FFE000 + 104A46494600010201004800480000FFED000C41646F62655F434D0001FFEE00 + 0E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B + 11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E + 0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200 + 021101031101FFDD0004000AFFC4013F00000105010101010101000000000000 + 00030001020405060708090A0B01000105010101010101000000000000000100 + 02030405060708090A0B1000010401030204020507060805030C330100021103 + 04211231054151611322718132061491A1B14223241552C16233347282D14307 + 259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3 + D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6 + 37475767778797A7B7C7D7E7F711000202010204040304050607070605350100 + 021103213112044151617122130532819114A1B14223C152D1F0332462E17282 + 92435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2 + B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6 + E6F62737475767778797A7B7C7FFDA000C03010002110311003F00ED3D34BD35 + 6762AF9E0B711EF05CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F6636065 + 6DDD6B9B5B7F79C4347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC3 + 1EB3673EA3C6F7FF00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C78 + 80B90AD698F1E58642447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D + 8971AB85AFE9A5E9AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB + 1B12D89712B85AFE9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C82 + 8BA5B58B4B46C2247BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E + 9A2D2EAEFA9B7547731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F4 + 4D8839741BB1ADC76C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C122410 + 5A4B5C08E1CC7B7DCC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA + 07B59DBE97E916DF4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB + 7DFF00F411EFE8E6E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A + 194E3B0574D6218C1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C7885 + 63888FE7F597CCD235F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CE + F4FAB78E27DD6FF7A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBA + DFEF4FE9F55FDEC4FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE + 9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75B + FDEB47625B12BF12AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325 + A3B12D897D4FDAAA732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C0 + 7716309E3FD2B7D8B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB4235 + 5F8E5C3D1A1D09B3D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6 + EF8408FD8B25A927B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB4 + 47B0F8A5B0F8FE0A69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA + 91EC3E296C3E2A6925AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325 + AA986C3E3F82635CA2A64B55300C8007825B54D3A5AA9FFFD9FFED0B4A50686F + 746F73686F7020332E30003842494D0425000000000010000000000000000000 + 000000000000003842494D03ED00000000001000480000000100020048000000 + 0100023842494D042600000000000E000000000000000000003F800000384249 + 4D040D000000000004000000783842494D04190000000000040000001E384249 + 4D03F3000000000009000000000000000001003842494D040A00000000000100 + 003842494D271000000000000A000100000000000000023842494D03F5000000 + 000048002F66660001006C66660006000000000001002F6666000100A1999A00 + 06000000000001003200000001005A0000000600000000000100350000000100 + 2D000000060000000000013842494D03F80000000000700000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF03E800003842494D040000000000000200023842494D04020000000000 + 0A000000010001000100013842494D0408000000000029000000010000024000 + 000240000000050000072001000006500000002B60000000072001000008E001 + 003842494D041E000000000004000000003842494D041A000000000345000000 + 0600000000000000000000006400000177000000080043006100620065006300 + 6500720061000000010000000000000000000000000000000000000001000000 + 0000000000000001770000006400000000000000000000000000000000010000 + 000000000000000000000000000000000010000000010000000000006E756C6C + 0000000200000006626F756E64734F626A630000000100000000000052637431 + 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 + 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 + 0000017700000006736C69636573566C4C73000000014F626A63000000010000 + 00000005736C6963650000001200000007736C69636549446C6F6E6700000000 + 0000000767726F757049446C6F6E6700000000000000066F726967696E656E75 + 6D0000000C45536C6963654F726967696E0000000D6175746F47656E65726174 + 65640000000054797065656E756D0000000A45536C6963655479706500000000 + 496D672000000006626F756E64734F626A630000000100000000000052637431 + 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 + 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 + 000001770000000375726C54455854000000010000000000006E756C6C544558 + 54000000010000000000004D7367655445585400000001000000000006616C74 + 546167544558540000000100000000000E63656C6C54657874497348544D4C62 + 6F6F6C010000000863656C6C546578745445585400000001000000000009686F + 727A416C69676E656E756D0000000F45536C696365486F727A416C69676E0000 + 000764656661756C740000000976657274416C69676E656E756D0000000F4553 + 6C69636556657274416C69676E0000000764656661756C740000000B6267436F + 6C6F7254797065656E756D0000001145536C6963654247436F6C6F7254797065 + 000000004E6F6E6500000009746F704F75747365746C6F6E6700000000000000 + 0A6C6566744F75747365746C6F6E67000000000000000C626F74746F6D4F7574 + 7365746C6F6E67000000000000000B72696768744F75747365746C6F6E670000 + 0000003842494D042800000000000C000000013FF00000000000003842494D04 + 140000000000040000000D3842494D040C00000000055A00000001000000A000 + 00002B000001E0000050A00000053E00180001FFD8FFE000104A464946000102 + 01004800480000FFED000C41646F62655F434D0001FFEE000E41646F62650064 + 8000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518 + 131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14 + 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200021101031101FFDD + 0004000AFFC4013F000001050101010101010000000000000003000102040506 + 0708090A0B010001050101010101010000000000000001000203040506070809 + 0A0B1000010401030204020507060805030C3301000211030421123105415161 + 1322718132061491A1B14223241552C16233347282D14307259253F0E1F16373 + 3516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A4 + 85B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7 + B7C7D7E7F7110002020102040403040506070706053501000211032131120441 + 51617122130532819114A1B14223C152D1F0332462E1728292435315637334F1 + 250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F346 + 94A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747576777 + 8797A7B7C7FFDA000C03010002110311003F00ED3D34BD356762AF9E0B711EF0 + 5CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F66360656DDD6B9B5B7F79C4 + 347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC31EB3673EA3C6F7FF + 00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C7880B90AD698F1E586 + 42447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D8971AB85AFE9A5E9 + AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB1B12D89712B85AFE + 9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C828BA5B58B4B46C224 + 7BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E9A2D2EAEFA9B7547 + 731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F44D8839741BB1ADC7 + 6C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C1224105A4B5C08E1CC7B7D + CC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA07B59DBE97E916DF + 4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB7DFF00F411EFE8E6 + E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A194E3B0574D6218C + 1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C788563888FE7F597CCD2 + 35F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CEF4FAB78E27DD6FF7 + A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBADFEF4FE9F55FDEC4 + FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE9F56F1C4FBADFEF5 + A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75BFDEB47625B12BF12 + AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325A3B12D897D4FDAAA + 732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C07716309E3FD2B7D8 + B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB42355F8E5C3D1A1D09B3 + D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6EF8408FD8B25A927 + B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB447B0F8A5B0F8FE0A + 69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA91EC3E296C3E2A69 + 25AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325AA986C3E3F82635C + A2A64B55300C8007825B54D3A5AA9FFFD93842494D0421000000000053000000 + 01010000000F00410064006F00620065002000500068006F0074006F00730068 + 006F00700000001200410064006F00620065002000500068006F0074006F0073 + 0068006F007000200043005300000001003842494D0406000000000007000500 + 0100010100FFE11934687474703A2F2F6E732E61646F62652E636F6D2F786170 + 2F312E302F003C3F787061636B657420626567696E3D27EFBBBF272069643D27 + 57354D304D7043656869487A7265537A4E54637A6B633964273F3E0A3C783A78 + 6D706D65746120786D6C6E733A783D2761646F62653A6E733A6D6574612F2720 + 783A786D70746B3D27584D5020746F6F6C6B697420332E302D32382C20667261 + 6D65776F726B20312E36273E0A3C7264663A52444620786D6C6E733A7264663D + 27687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264 + 662D73796E7461782D6E73232720786D6C6E733A69583D27687474703A2F2F6E + 732E61646F62652E636F6D2F69582F312E302F273E0A0A203C7264663A446573 + 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 + 382D306461362D313164622D393366622D616463643939616537623064270A20 + 20786D6C6E733A657869663D27687474703A2F2F6E732E61646F62652E636F6D + 2F657869662F312E302F273E0A20203C657869663A436F6C6F7253706163653E + 313C2F657869663A436F6C6F7253706163653E0A20203C657869663A50697865 + 6C5844696D656E73696F6E3E3337353C2F657869663A506978656C5844696D65 + 6E73696F6E3E0A20203C657869663A506978656C5944696D656E73696F6E3E31 + 30303C2F657869663A506978656C5944696D656E73696F6E3E0A203C2F726466 + 3A4465736372697074696F6E3E0A0A203C7264663A4465736372697074696F6E + 207264663A61626F75743D27757569643A38643632323166382D306461362D31 + 3164622D393366622D616463643939616537623064270A2020786D6C6E733A70 + 64663D27687474703A2F2F6E732E61646F62652E636F6D2F7064662F312E332F + 273E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A4465 + 736372697074696F6E207264663A61626F75743D27757569643A386436323231 + 66382D306461362D313164622D393366622D616463643939616537623064270A + 2020786D6C6E733A70686F746F73686F703D27687474703A2F2F6E732E61646F + 62652E636F6D2F70686F746F73686F702F312E302F273E0A20203C70686F746F + 73686F703A486973746F72793E3C2F70686F746F73686F703A486973746F7279 + 3E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A446573 + 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 + 382D306461362D313164622D393366622D616463643939616537623064270A20 + 20786D6C6E733A746966663D27687474703A2F2F6E732E61646F62652E636F6D + 2F746966662F312E302F273E0A20203C746966663A4F7269656E746174696F6E + 3E313C2F746966663A4F7269656E746174696F6E3E0A20203C746966663A5852 + 65736F6C7574696F6E3E37322F313C2F746966663A585265736F6C7574696F6E + 3E0A20203C746966663A595265736F6C7574696F6E3E37322F313C2F74696666 + 3A595265736F6C7574696F6E3E0A20203C746966663A5265736F6C7574696F6E + 556E69743E323C2F746966663A5265736F6C7574696F6E556E69743E0A203C2F + 7264663A4465736372697074696F6E3E0A0A203C7264663A4465736372697074 + 696F6E207264663A61626F75743D27757569643A38643632323166382D306461 + 362D313164622D393366622D616463643939616537623064270A2020786D6C6E + 733A7861703D27687474703A2F2F6E732E61646F62652E636F6D2F7861702F31 + 2E302F273E0A20203C7861703A437265617465446174653E323030362D30372D + 30375431323A35323A32372B30313A30303C2F7861703A437265617465446174 + 653E0A20203C7861703A4D6F64696679446174653E323030362D30372D303754 + 31323A35323A32372B30313A30303C2F7861703A4D6F64696679446174653E0A + 20203C7861703A4D65746164617461446174653E323030362D30372D30375431 + 323A35323A32372B30313A30303C2F7861703A4D65746164617461446174653E + 0A20203C7861703A43726561746F72546F6F6C3E41646F62652050686F746F73 + 686F702043532057696E646F77733C2F7861703A43726561746F72546F6F6C3E + 0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A44657363 + 72697074696F6E207264663A61626F75743D27757569643A3864363232316638 + 2D306461362D313164622D393366622D616463643939616537623064270A2020 + 786D6C6E733A73745265663D27687474703A2F2F6E732E61646F62652E636F6D + 2F7861702F312E302F73547970652F5265736F7572636552656623270A202078 + 6D6C6E733A7861704D4D3D27687474703A2F2F6E732E61646F62652E636F6D2F + 7861702F312E302F6D6D2F273E0A20203C7861704D4D3A446572697665644672 + 6F6D207264663A7061727365547970653D275265736F75726365273E0A202020 + 3C73745265663A696E7374616E636549443E757569643A38643632323166342D + 306461362D313164622D393366622D6164636439396165376230643C2F737452 + 65663A696E7374616E636549443E0A2020203C73745265663A646F63756D656E + 7449443E61646F62653A646F6369643A70686F746F73686F703A633838336237 + 36382D306461322D313164622D393366622D6164636439396165376230643C2F + 73745265663A646F63756D656E7449443E0A20203C2F7861704D4D3A44657269 + 76656446726F6D3E0A20203C7861704D4D3A446F63756D656E7449443E61646F + 62653A646F6369643A70686F746F73686F703A38643632323166372D30646136 + 2D313164622D393366622D6164636439396165376230643C2F7861704D4D3A44 + 6F63756D656E7449443E0A203C2F7264663A4465736372697074696F6E3E0A0A + 203C7264663A4465736372697074696F6E207264663A61626F75743D27757569 + 643A38643632323166382D306461362D313164622D393366622D616463643939 + 616537623064270A2020786D6C6E733A64633D27687474703A2F2F7075726C2E + 6F72672F64632F656C656D656E74732F312E312F273E0A20203C64633A666F72 + 6D61743E696D6167652F6A7065673C2F64633A666F726D61743E0A203C2F7264 + 663A4465736372697074696F6E3E0A0A3C2F7264663A5244463E0A3C2F783A78 + 6D706D6574613E0A202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020200A20202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020200A2020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020200A202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020200A20202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 0A20202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020200A2020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020200A202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020200A20202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020200A2020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020200A202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020200A20 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020200A20202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020200A2020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020200A202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020200A20202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020200A2020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020202020200A202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 200A202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020200A20202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020200A2020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020200A202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020200A20202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020202020200A2020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020202020202020202020200A + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020200A202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020200A20202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020200A2020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020200A202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020200A20202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020202020202020202020202020200A2020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20200A2020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020200A202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020200A20202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020202020202020202020202020200A2020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020202020202020202020202020200A202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020200A20202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 0A20202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 20202020200A2020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020202020200A202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 2020202020202020202020202020200A20202020202020202020202020202020 + 2020202020202020202020202020202020202020202020202020202020202020 + 202020202020200A3C3F787061636B657420656E643D2777273F3EFFE20C5849 + 43435F50524F46494C4500010100000C484C696E6F021000006D6E7472524742 + 2058595A2007CE00020009000600310000616373704D53465400000000494543 + 20735247420000000000000000000000000000F6D6000100000000D32D485020 + 2000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000011637072740000015000000033646573 + 63000001840000006C77747074000001F000000014626B707400000204000000 + 147258595A00000218000000146758595A0000022C000000146258595A000002 + 4000000014646D6E640000025400000070646D6464000002C400000088767565 + 640000034C0000008676696577000003D4000000246C756D69000003F8000000 + 146D6561730000040C0000002474656368000004300000000C72545243000004 + 3C0000080C675452430000043C0000080C625452430000043C0000080C746578 + 7400000000436F70797269676874202863292031393938204865776C6574742D + 5061636B61726420436F6D70616E790000646573630000000000000012735247 + 422049454336313936362D322E31000000000000000000000012735247422049 + 454336313936362D322E31000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000058595A + 20000000000000F35100010000000116CC58595A200000000000000000000000 + 000000000058595A200000000000006FA2000038F50000039058595A20000000 + 00000062990000B785000018DA58595A2000000000000024A000000F840000B6 + CF64657363000000000000001649454320687474703A2F2F7777772E6965632E + 636800000000000000000000001649454320687474703A2F2F7777772E696563 + 2E63680000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000064657363000000000000002E494543 + 2036313936362D322E312044656661756C742052474220636F6C6F7572207370 + 616365202D207352474200000000000000000000002E4945432036313936362D + 322E312044656661756C742052474220636F6C6F7572207370616365202D2073 + 5247420000000000000000000000000000000000000000000064657363000000 + 000000002C5265666572656E63652056696577696E6720436F6E646974696F6E + 20696E2049454336313936362D322E3100000000000000000000002C52656665 + 72656E63652056696577696E6720436F6E646974696F6E20696E204945433631 + 3936362D322E3100000000000000000000000000000000000000000000000000 + 0076696577000000000013A4FE00145F2E0010CF140003EDCC0004130B00035C + 9E0000000158595A2000000000004C09560050000000571FE76D656173000000 + 0000000001000000000000000000000000000000000000028F00000002736967 + 20000000004352542063757276000000000000040000000005000A000F001400 + 19001E00230028002D00320037003B00400045004A004F00540059005E006300 + 68006D00720077007C00810086008B00900095009A009F00A400A900AE00B200 + B700BC00C100C600CB00D000D500DB00E000E500EB00F000F600FB0101010701 + 0D01130119011F0125012B01320138013E0145014C0152015901600167016E01 + 75017C0183018B0192019A01A101A901B101B901C101C901D101D901E101E901 + F201FA0203020C0214021D0226022F02380241024B0254025D02670271027A02 + 84028E029802A202AC02B602C102CB02D502E002EB02F50300030B0316032103 + 2D03380343034F035A03660372037E038A039603A203AE03BA03C703D303E003 + EC03F9040604130420042D043B0448045504630471047E048C049A04A804B604 + C404D304E104F004FE050D051C052B053A05490558056705770586059605A605 + B505C505D505E505F6060606160627063706480659066A067B068C069D06AF06 + C006D106E306F507070719072B073D074F076107740786079907AC07BF07D207 + E507F8080B081F08320846085A086E0882089608AA08BE08D208E708FB091009 + 25093A094F09640979098F09A409BA09CF09E509FB0A110A270A3D0A540A6A0A + 810A980AAE0AC50ADC0AF30B0B0B220B390B510B690B800B980BB00BC80BE10B + F90C120C2A0C430C5C0C750C8E0CA70CC00CD90CF30D0D0D260D400D5A0D740D + 8E0DA90DC30DDE0DF80E130E2E0E490E640E7F0E9B0EB60ED20EEE0F090F250F + 410F5E0F7A0F960FB30FCF0FEC1009102610431061107E109B10B910D710F511 + 131131114F116D118C11AA11C911E81207122612451264128412A312C312E313 + 03132313431363138313A413C513E5140614271449146A148B14AD14CE14F015 + 12153415561578159B15BD15E0160316261649166C168F16B216D616FA171D17 + 411765178917AE17D217F7181B18401865188A18AF18D518FA19201945196B19 + 9119B719DD1A041A2A1A511A771A9E1AC51AEC1B141B3B1B631B8A1BB21BDA1C + 021C2A1C521C7B1CA31CCC1CF51D1E1D471D701D991DC31DEC1E161E401E6A1E + 941EBE1EE91F131F3E1F691F941FBF1FEA20152041206C209820C420F0211C21 + 48217521A121CE21FB22272255228222AF22DD230A23382366239423C223F024 + 1F244D247C24AB24DA250925382568259725C725F726272657268726B726E827 + 182749277A27AB27DC280D283F287128A228D429062938296B299D29D02A022A + 352A682A9B2ACF2B022B362B692B9D2BD12C052C392C6E2CA22CD72D0C2D412D + 762DAB2DE12E162E4C2E822EB72EEE2F242F5A2F912FC72FFE3035306C30A430 + DB3112314A318231BA31F2322A3263329B32D4330D3346337F33B833F1342B34 + 65349E34D83513354D358735C235FD3637367236AE36E937243760379C37D738 + 143850388C38C839053942397F39BC39F93A363A743AB23AEF3B2D3B6B3BAA3B + E83C273C653CA43CE33D223D613DA13DE03E203E603EA03EE03F213F613FA23F + E24023406440A640E74129416A41AC41EE4230427242B542F7433A437D43C044 + 034447448A44CE45124555459A45DE4622466746AB46F04735477B47C0480548 + 4B489148D7491D496349A949F04A374A7D4AC44B0C4B534B9A4BE24C2A4C724C + BA4D024D4A4D934DDC4E254E6E4EB74F004F494F934FDD5027507150BB510651 + 50519B51E65231527C52C75313535F53AA53F65442548F54DB5528557555C256 + 0F565C56A956F75744579257E0582F587D58CB591A596959B85A075A565AA65A + F55B455B955BE55C355C865CD65D275D785DC95E1A5E6C5EBD5F0F5F615FB360 + 05605760AA60FC614F61A261F56249629C62F06343639763EB6440649464E965 + 3D659265E7663D669266E8673D679367E9683F689668EC6943699A69F16A486A + 9F6AF76B4F6BA76BFF6C576CAF6D086D606DB96E126E6B6EC46F1E6F786FD170 + 2B708670E0713A719571F0724B72A67301735D73B87414747074CC7528758575 + E1763E769B76F8775677B37811786E78CC792A798979E77A467AA57B047B637B + C27C217C817CE17D417DA17E017E627EC27F237F847FE5804780A8810A816B81 + CD8230829282F4835783BA841D848084E3854785AB860E867286D7873B879F88 + 04886988CE8933899989FE8A648ACA8B308B968BFC8C638CCA8D318D988DFF8E + 668ECE8F368F9E9006906E90D6913F91A89211927A92E3934D93B69420948A94 + F4955F95C99634969F970A977597E0984C98B89924999099FC9A689AD59B429B + AF9C1C9C899CF79D649DD29E409EAE9F1D9F8B9FFAA069A0D8A147A1B6A226A2 + 96A306A376A3E6A456A4C7A538A5A9A61AA68BA6FDA76EA7E0A852A8C4A937A9 + A9AA1CAA8FAB02AB75ABE9AC5CACD0AD44ADB8AE2DAEA1AF16AF8BB000B075B0 + EAB160B1D6B24BB2C2B338B3AEB425B49CB513B58AB601B679B6F0B768B7E0B8 + 59B8D1B94AB9C2BA3BBAB5BB2EBBA7BC21BC9BBD15BD8FBE0ABE84BEFFBF7ABF + F5C070C0ECC167C1E3C25FC2DBC358C3D4C451C4CEC54BC5C8C646C6C3C741C7 + BFC83DC8BCC93AC9B9CA38CAB7CB36CBB6CC35CCB5CD35CDB5CE36CEB6CF37CF + B8D039D0BAD13CD1BED23FD2C1D344D3C6D449D4CBD54ED5D1D655D6D8D75CD7 + E0D864D8E8D96CD9F1DA76DAFBDB80DC05DC8ADD10DD96DE1CDEA2DF29DFAFE0 + 36E0BDE144E1CCE253E2DBE363E3EBE473E4FCE584E60DE696E71FE7A9E832E8 + BCE946E9D0EA5BEAE5EB70EBFBEC86ED11ED9CEE28EEB4EF40EFCCF058F0E5F1 + 72F1FFF28CF319F3A7F434F4C2F550F5DEF66DF6FBF78AF819F8A8F938F9C7FA + 57FAE7FB77FC07FC98FD29FDBAFE4BFEDCFF6DFFFFFFEE000E41646F62650064 + 4000000001FFDB00840004030303030304030304060403040607050404050708 + 0606070606080A0809090909080A0A0C0C0C0C0C0A0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C010405050807080F0A0A0F140E0E0E14140E0E0E0E14 + 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C + 0C0C0C0C0C0C0C0C0C0C0CFFC00011080064017703011100021101031101FFDD + 0004002FFFC400B2000101000105010000000000000000000000010203040607 + 0805010101000203010000000000000000000000010405020306071000010205 + 020109050505040B01000000010002120313040511215131416191D114D40607 + 812255951771A1B13252F13324154542722325C16282A2B273A3549465851611 + 010100020004030407050607000000000011010212031304216105314151A171 + 81C12232B20691D172A2D2F0B142529214C2E2F22333B334FFDA000C03010002 + 110311003F00F4B525ECEBCFC292948535690A4A5214D291292BC442994A4292 + 711169A94894D5A429A5214D290A694819494853D1290A4948534A429A5214D2 + 90A69429EE948534A42994A429A52148FB5290A7D6948534A42994A429A52149 + 290A65290A65290A6948534A42927110A453888534A42994A42994A404B29485 + 34A429A522534A45A69C44291294852E64A429A523FFD0F50535EB6B45169A52 + 14D2AC4A4948196948534A90A7EC1D2956235AD700E690E69E42370948B48254 + 8534AB0A695214D5AB0A6A548534AB0A7FB1290A695214D28532948534A429A5 + 214D28534A429A5214928534AB0A695214FA128534A429A5214D5A2534A45A69 + 5614F82548535290A6AD214D290A6948534A429A944A6AD22996944A6948534A + 2D3D5290A694894D290A6948FFD1F55D25EA389A68524A429A506CADC0E3CFB9 + FC352B8EDBCC672B8D6E6387CFF3D58CE7D2C4D9DE5F4C047BB2A506EBA6FB3B + FC43BF26F2D62E3B8DB6FC3877E797A69F8F6C6194A67A8B990458E2A5D95BB8 + ED3AF2706BDBEC6161FF00A653A9B63DB97567B8EDF1ECCD695DF907CD53C479 + AF30B1846F059B093F646699EB056472A6CC2E77AA6BA7E1D7EC6DBD3833A45C + 79870B3A7BE78C7DEEB2CCC3A9826C401E888CB2E3D2564F331C3965E37EA69A + EFFE6C39E53DD75548534A44A6948534A45A6948534A90A695529A711169A521 + 4F44A910CB4AAA25A522532948534A4532D2A2534A2D3D12AC29F3A5214C2711 + 129A5429EC948534AB169A522524A8534AA534E20A652A429A55853EA5690A6A + 5214D290A695214D28534A429A5214D2AC2925214CA5214D2A3FFFD2F5AD35E8 + EB530A7D0945A69462E0F960CC943598C11307170DC299F1C45C7878B82E1AE5 + B6136E2C4681B69713A4B34D8402612C3ED690B6BDAE9C7C8C793C6FAAFF00DB + EEF6F39B7C9CC2DB350B0089746FDB5CBA74EE3C1B4C865C3DA7572EEE576F1D + 5CDE7D70AF244D6B7CFDE65B7076BBB7B6B860E34B50E3D7314EF74E18F5BE9B + CCE3ED75CFC2E3E6ECBA656B6B3CA6948534A42994A14CA50A69404B4A14D285 + 34A429A5214FA129129A522D34A429A5214D290A65290A69429F4250A69429A5 + 214D289014A45A7FB128534A429A5214FA12894D29169A5129F42522D34A2534 + A1068354A46CE5E46D2792DB3AB7B09D1C6CA44EBB6B4F268E3218F03DAB036F + 50E463338AFF000E33BFE4C6CC8C76DCCCFBA7D3F77FBD8CDC9DB48DEE245E49 + 6F3BA6D8DDCB68FB4BA5003DABA33EAFDAE3DBB671F4EBBEBF9B573FF65CDF85 + FAF1FBDAF6B73677F2ABD94F9771275D2394F0F6EA3947BA7956C795CFE5F375 + E2D36C6D8F8EB9AC6DF97B6999B6265AF4CAEEAE2535290A6528534A47FFD3F5 + FC0B7D5AC29A52065A50A694751F99677F29F355FC91A319384A9ED68E4DD907 + 37F702F4BE91AF1E9B6BF0CBC67EA5C70EDCBE67C719D7FD3FF524BCE68DFCCB + 6B9ED9E571DC346E737AB4FBCB9E9DB386FDC365E49C837EA75B02ED3BF63E7D + B81C5CC2277E12D6ABD63978D74C671EECBDE7E9CDF6DBB6DAE33F8BC3E89877 + 8535E62BD214D284094204A429A950A695481290A69429AB48532A5214FA15A2 + 534A2D3528197A250A6AD214FA14A14D290A6AD214D28533C1290814A40CB4A4 + 29A52025AB48534A841D095614D4A253569081291604A44A6948F91E6564C18B + 6B658639D32EEC65964E05D29EC9979258E63DA08D5AE692D70FD2569BD67999 + D3B5DB38F8EBF9F5B8FAF1E0CDECB5C679D8BE7F972E59333D91B6B16C5849D2 + 98C01B1DA3E44D9000D80602F973341FF282D0EDDD733A775D33F549F667F95B + 2C72F5E2F1D9C03CC3E709AC8F4B3BA277D440D67FC6E6AF1BDF73B9FB7BB2DC + F235D31EF713F23E76E32DE7E9D20C912249C65C4C9835D5EF74BB8B66B0BF4D + BDD0F769F9B488EEB61FA3BA9AF77CCC6D9F6E9ECF77E2D589EB3C39E4EB9C63 + FC5F665DAD0742FACD7928409420E84A14D2A3FFD4F64C0B755AF20294203A72 + 252102523A5FD58B3C83BCCB622CADCCE9D712A1952E434BA6386849886FF960 + 7127920FB1CBD47A0F3B4D37DB8F38C627BDE67F5276BBF3FB5C74F5CEDB6BB6 + 3C35F1CF8FDD70D9AE18FB775C5FDC4665EB1DBD80EF6F04687474C61A4DE5DF + FC4739BCEC5E8399EA1CBCEDC3CBC5CFC76FB9AFCFEF7F2FD6F33D97E98EE799 + 8BCECE3978F87E2DFF00A7F9BEA70BCBF9D728F8998CB3EE968D04BE7CC35EE3 + 400F26DA6BC21682B1BB8DB99D3DB6CE7C718F663C35FEAF9BD9767E89DA7233 + 8FBBC59FF36FF7BFE5F93B7BCA779E43F2CCC9796B6C4E6EFB2E587FCCEEF179 + 89D3747B74743FC0C2D041FEC8E45E079BDE6FCCFC55BFCE3DCE6D6FEA7E0A6C + D6B2E24DDE3E41D4BAEB216391B290DD012019971692DBA93B0116AB51DF7A86 + 7B6E5F1E34DB7F1935C6D9FCBAED9F93B791DBE399B4B8C7ECFDEDBC9F5630B3 + E54B9B2F1D947B6600E6BA5E2B2D35875FD2F65916B87483A2CCE5F719DB5C6D + 9D738B8F63AB6E5CCE71599F5530EDD4BB1B9601A3524E1F31A01FF82BB3ABE5 + 971E0691F577CBE06BDCF27F29CBF8157ABE49C0C59EB0601E746E3F2A4F461B + 33E014EAF92F03703D52C4BB718CCB1FFE3E63C0A75BCB2701F54B123FA5E5BE + 4F98F029D5F2C9C09F54F103FA665BE4F98F02A75BCB27007D55C3FC372DF27C + C7814EB7964E04FAAB87F86E5BE4F98F02AF5BCB2702FD55C39E4C6E5BE4F98F + 02A75BCB2701F55311F0CCB7C9F31E053ADE59380FAA788F8665BE4F98F02AF5 + BCB2702FD52C4FC332DF27CC7814EB7964E03EA9627E1996F93E63C0A75BCB27 + 02FD51C4FC332DF27CC7814EAF964E04FAA589F8665BE4F97F029D5F2C9C01F5 + 4B13F0CCB7C9F31E053ADE593813EA9E23E1996F93E63C0A75BCB2701F55311F + 0CCB7C9F31E053ADE593813EAAE1FE1B96F93E63C0A75BCB2701F5570FF0CCB7 + C9F31E053ADE59383CCFAAB87F86E5BE4F98F029D5F2C9C0A3D54C41FE9996F9 + 3E63C0A757CB2702FD52C49FE9996F93E63C0A75BCB270317FAAB88672E2F2FE + CC3664FE16054EB7964E062CF5630EF3A0C5E5FDB85CD0FC6C0275BCB27079B3 + FAA988E7C665BE4F98F02AF5BCB270327FAA7E5F956D367CF97736F318E96D95 + 6973677F6F733AA3A1264C99B6AD99321E781AE5ACE7FA96DCAE7E9CAC72F6CE + 37FF0014DB875FA73C3C3FEADB564F2FB6C6DA676E2C627BBC3F7B1FAA788E4F + E5996D47FE9F31E056CFADE596374D0FAA988D5A3F9665BDE3A0FF0027CC7302 + 7FEC7A13ADE59381B7BDF3CD879865DBE2AD2D725693E75ED843713F1B90B663 + 0B2F64BB5A975692E583B6D13B7E95A5F5AE671769B62671E3A7FECD59BD96B3 + 9D8FAFF2E5D9F33F9DCAC569FC2DD0E671A96C7939C01381FB96AF97D4C727DD + 9F97F53336E1E3753F9ADD927548D922572EED7BE6FDC5AC5E6BBDE2F26CF931 + C6FD2C64CFA8B3EA3E371C4DDF2085A3F89B4E41B9FBD647E94FFECDFF00833F + 9B574FAB7FE1D7F8BECCBBD202BEA35E5A10742521074252102548FFD5F6940B + 6B58508129081291B0CCDD4CC7E32E6EE5E8264B6FBAE2356B4B886C6E1B6CDD + 623D0172C2E31E293FCA7E51CC48B67E62C197B36D5C664A7CE2E313DC002660 + 0407EBA0FCE1C16169DD7374BC399595C3871BF38E32C26583254892C9522D1E + D7325CB686B1B2F585E001A0003493EC5D9DAF376C732DF69B63C1D239AF269C + 7B321A334EECD9A5A74E660241FB97A9C77FC7ACF8BA381DA9E9D7996E266627 + F94EE1C66C9976C6EECDC773298C7B65BA5EBFA7DE05A3FB3F668B53CFD71899 + 4DB5F7BB3605875C2102B48B029484094840948900E0AD22C0A52241CC948B07 + 32521025224015A4204A4204A45814A44815A42052908355691605291201AA52 + 100E0948B025210251205690A7D094806252102952102B561025210746C94840 + 14A4205691F07CE32E51C13DD7061B665D58CC9F3222C8254BBD92E7BCB8105A + 1AD05C5DAFBA044B4DEB3AE76ED36C63E3AFCB7D73966765E1CDC7D7FDD97DC7 + 59DF33121D6B9274C9446AD1712D93806E9B68E65327ED7172D472F4DBA3E1B7 + EDFED866ED9C71F8E1D51E6B917C6A55BB1CFF00BA94187FDE73D79AEF71B7BF + 2D9F27387C0F496DDDF512EE634BE6365E2AE1B3661DC35D32E6D4B01D3605C1 + 8ED38C2EE0B23F4AEB9FF77BE7DDC1FF0016AE9F55CE3A5AE3CFECCBBE20E85F + 4DAF310812AC204A9081291FFFD6F6DD35B1AC48401290A695634E7DAC9B9913 + 2DAE25B66C89CD74B9B2DE226B98E1A39A41E50414C6C91C3AEB1BE6EC007330 + EC6E7712DFDD5BCD9D42FE53799A263F564E0398BCCB7FEA73CEEB8EDCBD36F1 + F667E4EED77714CBF9A32643ED2F3CA5E6089ED2D98D958F7DCB3476C454B774 + C69EB5D9A7271AF8F161CAD7C09B8FF50BCE0F2DB5C05DC8913340E9D9B12EC2 + 580069ACC92C151FC9B83EE9FD2B275CF2F4F1F7B8E5D91E40F4EE5F93DB717F + 7D75FCC3CC57E00BCBCD2163583712E53799A0F5AEAE67373BE5D79CD7378174 + D71840948534A429A50A652908129129A522D34A40CB4A429A5214D29081290A + 694894D290A69429A5214D290A6948534A4583A129129A522C0944A612908128 + 40948B4D2894D290A69429A5210250A6944328105A46A0EC41E4D1291F23FF00 + C9E198C74AB69536CA4BB7749B0B9B8B1944F12CB6992DBAF4E8B0F6ED3939F7 + 4FE1CE75FCB1DF8E76F8F7FDAD9DC7A7FE5ABB24DCC9BA9BA8D087E42F9C08FB + 0CFD163E7D2FB6DBDBADFAF6FDEECC775CDC7B33F2C3EBE33098BC35BF74C4D9 + 49B2B7D7532E431B2C177244ED00D4F49DD67F2B95A72B5E1D318D71E4C7DF7D + B7CDDB35BDA6BB6B8429EE94204A429A523FFFD7F71C0B36B1C8129080AB442D + 00124E806E4A946DDDDE267EECD3673123571F67204B82341F6AFF00CCE9F375 + E87C3F868AD1A70DDC83EECD711C2668FF00BC6EB9782C6F2DA75605AE6C335B + F99BFE90B8E52371074294204A1074250812840950812A9014A44815A2C0A508 + 3A12840AD080A50814A102510315A2C0A51204A102A101E0A50812A420554814 + A2C0952240AD520528B004A24094205684078252018A521014A2C1EC4A8D38D9 + CA0977F74177E014E2C3946266CA1CBA8FF65DD8A71E0E16A36078D58438710B + 95C245815A10250812A10A557FFFD0F7542B2ABA610A5210A08F971348E29443 + 03408B6D5069CC68D3A0A61636CE6C5AEDCBAAE68D7916F0BCCD239B40B8E723 + 71070528B0A108529121E84A10A508529085290852841D094842128409421421 + 0F425085284294843A25210A50850214210A50850214A4204A108E094204A421 + 4210A5210A5210A508529087A128C26B019641E4D46BF66A171DB3E0B8584C3A + 06EDD4A0DBCC964F285D7972636D2A19C4FF00AA75EB0AE9ED36F63790AEE708 + 4294842128429523FFD1F7940BBABAE1004A4481291604A4694C95AB874705CB + 194CB132470EAD95A98AC0DB704E25C3544961DB520F0D4F6AE1557BBB7A4F41 + 24A672A7766E9CA7ACA5487771C4F59ED4A44EECDE9EB3DAAD0EECDE627ACF6A + 945EEE389EB3DAAD2140713D67B5290EEEDE27ACF6A521DDDBD3D654A43BBB78 + 9EB3DA94877768E73D65287771C4F59ED4A1DDC713D65287776F17759ED4A43B + B8E27ACAB487776F13D67B54A1DDDBC4F594A1DDDBC4F59ED4A43BBB78BBACF6 + AB489DDDBC5DD67B5287771C4F59ED4A45EEEDE27ACF6A521DDC7313D67B5289 + DDDBC4F59ED4A1DDDBCFAF59ED4A43BB8E27ACF6A521DDC713D67B528BDDDBC5 + DD67B54A1DDDBCFBFDA4EA81DDDBC4F59ED4A27771C49F69ED4A42801B8D79B9 + CA672ACCB0E9B689460E9479C6AB8892E510FD74E64C196AC0B9D420E8D52841 + C12840947FFFD2F7C68B9B890A042810A5210A5080252100E094842129085021 + 4A10A5085284294842810A5210A50850842810A50852842810A042810A50D102 + 14A10A508502140852868810A042810A042942140852885A94585289084A2C28 + 2421003420B0A042942141214A3FFFD3F7E6CAA2EC81B7B504D9053A22A2228D + 1036413640D903DD40D914F7510D914DB5441036D514DB9D10DBF6A29B7372A2 + 1B7ED4536F6221B73206DED45364436453644364536E640D910D91536D505DB4 + ED40D910DB440D90364542886DCCAAAEDCEA06C8E27BBCE8A185041A2AA6CA0B + B73A227BA83FFFD9} + end + object Bevel1: TBevel + Left = 0 + Top = 100 + Width = 367 + Height = 6 + Align = alTop + Shape = bsTopLine + end + object JvAnimate1: TJvAnimate + Left = 16 + Top = 118 + Width = 16 + Height = 16 + CommonAVI = aviFindComputer + StopFrame = 8 + end + object Button1: TButton + Left = 276 + Top = 287 + Width = 75 + Height = 25 + Caption = 'Cerrar' + Enabled = False + TabOrder = 1 + OnClick = Button1Click + end + object ListView1: TListView + Left = 16 + Top = 144 + Width = 335 + Height = 129 + Columns = < + item + Caption = 'Hora' + Width = 75 + end + item + Caption = 'Mensaje' + Width = 255 + end> + ReadOnly = True + RowSelect = True + SmallImages = ImageList1 + TabOrder = 2 + ViewStyle = vsReport + end + object TimerCuentaAtrasCerrar: TTimer + Enabled = False + OnTimer = TimerCuentaAtrasCerrarTimer + Left = 16 + Top = 288 + end + object TimerCuentaAtrasCargar: TTimer + Enabled = False + Interval = 10 + OnTimer = TimerCuentaAtrasCargarTimer + Left = 56 + Top = 288 + end + object XPManifest1: TXPManifest + Left = 96 + Top = 288 + end + object ImageList1: TImageList + Left = 144 + Top = 288 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008599CD00102890008B99CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007088E0001048FF0010289000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000E1E7E0009EC39500B0DCAD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ADB9DD007088E000ABB5D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000709F5E003F81200065B25900CEE4CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000092A0CA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000D8E0D4005999 + 3B0065CD50005CC7400042AA300083C87A00E0E6DF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004050B00000000000000000000000 + 00000000000000000000000000000000000000000000D8E0D4005094300065CD + 500079EA600082E077006AD0600057B24700A2C7990000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000929CC3000038F000848EAE00000000000000 + 000000000000000000000000000000000000000000004F9D3B006AD9500079EA + 6000A3ED9600D9E7D8009DED8E006AD060004CAE3B00D5DED200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002040C0000038F0000E339500000000000000 + 00000000000000000000000000000000000000000000AAEB9B00A7EC900090ED + 87000000000000000000E3E9E10097E28E006AD0600059A24700D1EAC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A7B1D8005070E0000040FF000030D000BFC3CE000000 + 00000000000000000000000000000000000000000000E1EDDD00CAEBC3000000 + 0000000000000000000000000000E3E9E10082E0770065CD50005EB35900D5EA + CD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007688CB005078E0001048FF000040F0007581A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000E3E9E10082E077004CBE400085C1 + 7700D5EACD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005068D0007090FF001050FF001040F0000E33A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000E3EAE10089E07F004CBE + 400094D08600D8E5D30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000006078D0008098FF003060FF001050FF001D43C3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000E3EAE100B0ED + A10064BE5000C7DFC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007088E00090A8F00080A0FF006080F0003955A9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000E4EB + E200CBEAC10096CF8A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D4D8E3007088E0006078D0005068D000D6DBE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 + FE3FFFFF00000000FE3FF1FF00000000FE3FF0FF00000000FF7FC07F00000000 + FF7F807F00000000FE3F803F00000000FE3F8C1F00000000FC1F9E0F00000000 + FC1FFF0700000000FC1FFF8300000000FC1FFFC300000000FC1FFFE300000000 + FC1FFFFF00000000FFFFFFFF00000000} + end +end diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.pas b/Varela/Varela/Source/CargaEDI/uCargaEDI.pas new file mode 100644 index 0000000..748bddb --- /dev/null +++ b/Varela/Varela/Source/CargaEDI/uCargaEDI.pas @@ -0,0 +1,163 @@ +unit uCargaEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, jpeg, ComCtrls, StdCtrls, JvExComCtrls, JvAnimate, + pngimage, XPMan, ImgList; + +type + TIconoEstado = (ieOK, ieMAL, ieNada); + + TfCargaEDI = class(TForm) + Label13: TLabel; + JvAnimate1: TJvAnimate; + Button1: TButton; + TimerCuentaAtrasCerrar: TTimer; + ListView1: TListView; + Image1: TImage; + Bevel1: TBevel; + TimerCuentaAtrasCargar: TTimer; + XPManifest1: TXPManifest; + ImageList1: TImageList; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure TimerCuentaAtrasCerrarTimer(Sender: TObject); + procedure TimerCuentaAtrasCargarTimer(Sender: TObject); + private + FNumCargasError : Integer; + FNumCargasOK : Integer; + FCuentaAtras : Integer; + procedure OnLoadSuccess(Sender: TObject); + procedure OnLoadError(Sender : TObject); + procedure AnadirMensaje(const aMensaje : String; Icono : TIconoEstado = ieNada); + procedure LanzarCargas; + public + { Public declarations } + end; + +var + fCargaEDI: TfCargaEDI; + +implementation + +{$R *.dfm} + +uses + uCargarFicheros, uDataModuleBase; + +procedure TfCargaEDI.FormShow(Sender: TObject); +begin + FNumCargasOK := 0; + FNumCargasError := 0; + TimerCuentaAtrasCargar.Enabled := True; +end; + +procedure TfCargaEDI.OnLoadError(Sender: TObject); +begin + Beep; + AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': ' + (Sender as TCargarFicherosThread).ErrorText, ieMAL); + + FNumCargasError := FNumCargasError + 1; + if (FNumCargasError = 2) or + ((FNumCargasError = 1) and (FNumCargasOK = 1)) then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + TimerCuentaAtrasCerrar.Enabled := True; + end; +end; + +procedure TfCargaEDI.OnLoadSuccess(Sender: TObject); +begin + Beep; + AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': Ficheros cargados', ieOK); + + FNumCargasOK := FNumCargasOK + 1; + if (FNumCargasOK = 2) or + ((FNumCargasError = 1) and (FNumCargasOK = 1)) then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + TimerCuentaAtrasCerrar.Enabled := True; + end; +end; + +procedure TfCargaEDI.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfCargaEDI.FormCreate(Sender: TObject); +begin + FCuentaAtras := 5; + FNumCargasError := 0; + FNumCargasOK := 0; +end; + +procedure TfCargaEDI.Button1Click(Sender: TObject); +begin + Close; +end; + +procedure TfCargaEDI.AnadirMensaje(const aMensaje: String; + Icono : TIconoEstado = ieNada); +var + AItem : TListItem; +begin + AItem := ListView1.Items.Add; + case Icono of + ieOK : AItem.ImageIndex := 1; + ieMAL : AItem.ImageIndex := 0; + else + AItem.ImageIndex := -1; + end; + AItem.Caption := TimeToStr(Now); + AItem.SubItems.Add(aMensaje); +end; + +procedure TfCargaEDI.LanzarCargas; +begin + if not dmBase.HayConexion then + begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + AnadirMensaje('No se encuentra el servidor', ieMAL); + TimerCuentaAtrasCerrar.Enabled := True; + end + else begin + JvAnimate1.Active := True; + AnadirMensaje('Cargando ficheros de ventas'); + TCargarVentasThread.Create('CABVEN.TXT', 'LUGVEN.TXT', + 'ARTVEN.TXT', OnLoadSuccess, OnLoadError); + + AnadirMensaje('Cargando ficheros de inventario'); + TCargarInventarioThread.Create('CABINV.TXT', 'LININV.TXT', + 'CANTINV.TXT', OnLoadSuccess, OnLoadError); + end; +end; + +procedure TfCargaEDI.TimerCuentaAtrasCerrarTimer(Sender: TObject); +begin + Button1.Enabled := True; + TimerCuentaAtrasCerrar.Enabled := False; + if FCuentaAtras = 0 then + Close; + Button1.Caption := 'Cerrar (' + IntToStr(FCuentaAtras) + ')'; + Update; + Application.ProcessMessages; + FCuentaAtras := FCuentaAtras - 1; + TimerCuentaAtrasCerrar.Enabled := True; +end; + +procedure TfCargaEDI.TimerCuentaAtrasCargarTimer(Sender: TObject); +begin + TimerCuentaAtrasCargar.Enabled := False; + Update; + LanzarCargas; +end; + +end. diff --git a/Varela/Varela/Source/ClearFiles.msbuild b/Varela/Varela/Source/ClearFiles.msbuild new file mode 100644 index 0000000..30f4b9d --- /dev/null +++ b/Varela/Varela/Source/ClearFiles.msbuild @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Varela/Varela/Source/Cliente/AdminPV.bdsproj b/Varela/Varela/Source/Cliente/AdminPV.bdsproj new file mode 100644 index 0000000..e3cd3af --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + AdminPV.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica + EUREKALOG;EUREKALOG_VER6 + + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 2.0.0.0 + Administración de puntos de venta + + + + Administración de puntos de venta + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Cliente/AdminPV.cfg b/Varela/Varela/Source/Cliente/AdminPV.cfg new file mode 100644 index 0000000..e4b793b --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.cfg @@ -0,0 +1,46 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Cliente" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-LUBaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Cliente/AdminPV.dof b/Varela/Varela/Source/Cliente/AdminPV.dof new file mode 100644 index 0000000..105bdb6 --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Cliente +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=BaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica +Conditionals= +DebugSourceDirs= +UsePackages=1 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=1 +Release=1 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName=Rodax Software S.L. +FileDescription= +FileVersion=1.1.1.0 +InternalName=Administración de puntos de venta +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName=Administración de puntos de venta +ProductVersion=1.0.6 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Cliente/AdminPV.dpr b/Varela/Varela/Source/Cliente/AdminPV.dpr new file mode 100644 index 0000000..9946450 --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.dpr @@ -0,0 +1,25 @@ +program AdminPV; + +uses + ExceptionLog, + Forms, + uLoginForm, + uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, + uMenuUtils in 'uMenuUtils.pas', + uSplash in 'uSplash.pas' {SplashScreen}, + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + uIntegerList in '..\Base\uIntegerList.pas', + schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas'; + +{$R *.res} + +begin + Application.Initialize; + + Application.Title := 'Administración de puntos de venta'; + Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); + Application.Run; + Application.Terminate; +end. + diff --git a/Varela/Varela/Source/Cliente/AdminPV.drc b/Varela/Varela/Source/Cliente/AdminPV.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Cliente/AdminPV.identcache b/Varela/Varela/Source/Cliente/AdminPV.identcache new file mode 100644 index 0000000000000000000000000000000000000000..576f2d8b4225c10a95d7a124e4bb9d9c8f65b60c GIT binary patch literal 1038 zcmd6mL2AS>3`NsjkC7A10lG^kn?eJj?qp>s!qy}z9y^un-lX@fpd|~_t)X5SWc>A? zzV5rOyPhBHm|VGG%+f>jy}_I*u3|4zfGOFDr1!s1lGvAF>`g9SD>J8ebXn{Ii~+1k zg&o>+ApH$(F?#^nPCJMy9fw*#l+9lza)wWKq8$ugEuw;6Wkbs@AQz ztuFn*d3%caTDSPopu=MpGiZw;z|0gK?GS49{{qM$ea9nIzX- dT5ibTH8AsX@;e{vp_djuk01;V*};gl&u>E~Y25$- literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Cliente/AdminPV.rc b/Varela/Varela/Source/Cliente/AdminPV.rc new file mode 100644 index 0000000..3c6d592 --- /dev/null +++ b/Varela/Varela/Source/Cliente/AdminPV.rc @@ -0,0 +1,26 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Cliente.ico" +1 VERSIONINFO +FILEVERSION 2,0,0,0 +PRODUCTVERSION 2,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "2.0.0.0\0" + VALUE "InternalName", "Administración de puntos de venta\0" + VALUE "ProductName", "Administración de puntos de venta\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Cliente/AdminPV.res b/Varela/Varela/Source/Cliente/AdminPV.res new file mode 100644 index 0000000000000000000000000000000000000000..2d5243fce9ca0ce2c3af7a0a118215f8640cbd1b GIT binary patch literal 18368 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 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Cliente/uAcercaDe.dfm b/Varela/Varela/Source/Cliente/uAcercaDe.dfm new file mode 100644 index 0000000..f4ef396 --- /dev/null +++ b/Varela/Varela/Source/Cliente/uAcercaDe.dfm @@ -0,0 +1,959 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Varela/Varela/Source/Cliente/uAcercaDe.pas b/Varela/Varela/Source/Cliente/uAcercaDe.pas new file mode 100644 index 0000000..693ee22 --- /dev/null +++ b/Varela/Varela/Source/Cliente/uAcercaDe.pas @@ -0,0 +1,66 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls, + uHostManager; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Image1: TImage; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + procedure FormShow(Sender: TObject); + private + FHostManager: THostManager; + public + property HostManager : THostManager read FHostManager write FHostManager; + end; + +var + fAcercaDe: TfAcercaDe; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + i : integer; + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); + end; + finally + FreeAndNil(Obj); + end; + + if Assigned(FHostManager) then + begin + memModulos.Lines.Add(''); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Módulos disponibles:'); + for i := 0 to (HostManager.ModulesCount - 1) do + memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName + + ' - v. ' + FHostManager.Modules[i].Module.Version); + end; +end; + +end. diff --git a/Varela/Varela/Source/Cliente/uMenuUtils.pas b/Varela/Varela/Source/Cliente/uMenuUtils.pas new file mode 100644 index 0000000..8333cce --- /dev/null +++ b/Varela/Varela/Source/Cliente/uMenuUtils.pas @@ -0,0 +1,263 @@ +unit uMenuUtils; + +interface + +uses + Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus, + Controls; + + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +procedure SortMenuByTag(Menu : TMainMenu); + +function CreatePageNavPane(const APageList : TJvCustomPageList; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; + +procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); overload; + +function getSubMenu(Const pMenu: TMainMenu; Const pCaption: String): TMenuItem; +procedure copiarItemsMenu(MenuDestino: TMenuItem; pMenu: TMenuItem); + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); overload; + + + + + +implementation + +uses + ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils, + ExtCtrls, Graphics; + +type + TAssignCallback = procedure(Source, Dest: TMenuItem); + + +procedure AssignMenus(Source, Dest: TMenuItem; AImageIndex : Integer; + AssignProc: TAssignCallback); +var + I: Integer; + Item: TMenuItem; +begin + for I := 0 to Source.Count - 1 do + begin + Item := Dest.Find(Source.Items[I].Caption); + if Item = NIL then + begin + Item := TMenuItem.Create(Dest); + Dest.Add(Item); + if Assigned(AssignProc) then + begin + AssignProc(Source.Items[I], Item); + if (Source.Items[I].ImageIndex >= 0) then + Item.ImageIndex := Source.Items[I].ImageIndex + AImageIndex; + end; + end; + AssignMenus(Source.Items[I], Item, AImageIndex, AssignProc); + end; +end; + +procedure AssignMenuItem(Source, Dest: TMenuItem); +begin + Dest.Caption := Source.Caption; + Dest.Hint := Source.Hint; + Dest.Checked := Source.Checked; + Dest.GroupIndex := Source.GroupIndex; + Dest.Tag := Source.Tag; + Dest.Action := Source.Action; + Dest.ImageIndex := Source.ImageIndex; + Dest.ShortCut := Source.ShortCut; + Dest.RadioItem := Source.RadioItem; + Dest.AutoCheck := Source.AutoCheck; + Dest.AutoHotkeys := Source.AutoHotkeys; + Dest.AutoLineReduction := Source.AutoLineReduction; + Dest.Break := Source.Break; + Dest.Default := Source.Default; + Dest.Enabled := Source.Enabled; + Dest.HelpContext := Source.HelpContext; + Dest.Visible := Source.Visible; +end; + +procedure SortMenuItems(MenuItems : TMenuItem); + + function CompareTags(Item1, Item2: Pointer): Integer; + begin + Result := CompareValue(TMenuItem(Item1).Tag, TMenuItem(Item2).Tag); + end; + +var + I: Integer; + AList : TList; +begin + AList := TList.Create; + + try + for I := 0 to MenuItems.Count - 1 do + begin + SortMenuItems(MenuItems.Items[i]); + AList.Add(Pointer(MenuItems.Items[i])); + end; + + AList.Sort(@CompareTags); + + for i := 0 to AList.Count - 1 do + TMenuItem(AList.Items[i]).MenuIndex := i; + + finally + AList.Free; + end; +end; + +procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); +begin + AssignMenus(Source.Items, Dest.Items, ImageIndex, AssignMenuItem); +end; + +procedure SortMenuByTag(Menu : TMainMenu); +begin + SortMenuItems(Menu.Items); +end; + +function CreatePageNavPane(const APageList : TJvCustomPageList; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; +var + APanePage: TJvNavPanelPage; +begin + Result := 0; + APanePage := TJvNavPanelPage.Create(Application); + with APanePage do + begin + Caption := StringReplace(ACaption, '&', '', []); + Action := AAction; + PageList := APageList; + Iconic := False; + ImageIndex := AImageIndex; + Result := PageIndex; + end; +end; + +procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); +var + APanel : TScrollBox; + ItemIndex : Integer; +begin + with TJvNavPanelDivider.Create(APanePage) do + begin + Caption := AMenuItem.Caption; + Parent := APanePage; + Top := 100; + Align := alTop; + Enabled := false; + Cursor := crDefault; + end; + + APanel := TScrollBox.Create(APanePage); + with APanel do + begin + Top := 200; + Align := alTop; + Font.Style := []; + BorderStyle := bsNone; + Parent := APanePage; + BevelEdges := []; + BorderStyle := bsNone; + //ParentColor := True; + ParentFont := True; + Color := clRed; + end; + + for ItemIndex := 0 to (AMenuItem.Count - 1) do + begin + if AMenuItem[ItemIndex].Caption <> '-' then + with TTBXLink.Create(Application) do + begin + Parent := APanePage; + Align := alTop; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + {if ItemIndex = 0 then + Margins.Top := 20 + else + Margins.Top := 14; + Margins.Bottom := 14; + Margins.Left := 10; + Margins.Right := 10;} + //Invalidate; + end; + end; +end; + +function getSubMenu(const pMenu: TMainMenu; const pCaption: String): TMenuItem; +var + i: Integer; +begin + i:=0; + while ((i < pMenu.Items.Count) and (StringReplace(pMenu.Items[i].Caption,'&','',[]) <> pCaption)) do + inc(i); + Result := pMenu.Items[i]; +end; + +procedure copiarItemsMenu(MenuDestino, pMenu: TMenuItem); +var + i: Integer; + Item: TMenuItem; +begin + for i := 0 to (pMenu.Count - 1) do + begin + Item := TMenuItem.Create(MenuDestino); + Item.Caption := pMenu.Items[i].Caption; + Item.Action := pMenu.Items[i].Action; + MenuDestino.Add(Item); + end; +end; + +procedure PopulateNavPagePane(AParentControl : TWinControl; + AMenuItem: TMenuItem; AImageList : TCustomImageList; + AStyleManager : TJvNavPaneStyleManager); +var + ItemIndex : Integer; + AHeight : Integer; +begin + AHeight := 0; + for ItemIndex := 0 to (AMenuItem.Count - 1) do + begin + if AMenuItem[ItemIndex].Caption <> '-' then + with TTBXLink.Create(Application) do + begin + Parent := AParentControl;//APanel; + Align := alTop; + ParentFont := True; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + if ItemIndex = 0 then + Margins.Top := 15 + else + Margins.Top := 8; + Margins.Bottom := 8; + Margins.Left := 10; + Margins.Right := 10; + Height := 18; + Invalidate; + AHeight := AHeight + Margins.Top + Margins.Bottom + Height; + end; + end; + AParentControl.Height := AHeight; + AParentControl.Invalidate; +end; + + +end. + diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp b/Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm b/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm new file mode 100644 index 0000000..7f7fe90 --- /dev/null +++ b/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm @@ -0,0 +1,441 @@ +object fPantallaPrincipal: TfPantallaPrincipal + Left = 358 + Top = 250 + Caption = 'Pantalla principal' + ClientHeight = 599 + ClientWidth = 771 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Menu = HostMenu + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 13 + object pnlContenido: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 771 + Height = 580 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Margins.Bottom = 5 + ParentColor = True + Align = alClient + TabOrder = 0 + object JvSyncSplitter1: TJvSyncSplitter + Left = 210 + Top = 5 + Width = 5 + Height = 570 + ResizeStyle = rsPattern + end + object JvNavigationPane: TJvNavigationPane + Left = 5 + Top = 5 + Width = 205 + Height = 570 + ActivePage = pagInicio + Align = alLeft + AutoHeaders = True + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + ButtonHeight = 32 + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + LargeImages = ModulesLargeImageList + MaximizedCount = 0 + NavPanelFont.Charset = DEFAULT_CHARSET + NavPanelFont.Color = clWindowText + NavPanelFont.Height = -13 + NavPanelFont.Name = 'Tahoma' + NavPanelFont.Style = [] + NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + NavPanelHotTrackFont.Color = clWindow + NavPanelHotTrackFont.Height = -13 + NavPanelHotTrackFont.Name = 'Tahoma' + NavPanelHotTrackFont.Style = [] + SmallImages = ModulesSmallImageList + object pagInicio: TJvNavPanelPage + Left = 0 + Top = 0 + Width = 203 + Height = 497 + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + Caption = 'Men'#250' principal' + Iconic = True + ImageIndex = 0 + end + end + object pnlBorde: TJvXPContainer + Left = 215 + Top = 5 + Width = 551 + Height = 570 + BoundColor = clActiveCaption + BoundLines = [blLeft, blTop, blRight, blBottom] + Caption = 'pnlBorde' + Align = alClient + object pnlMain: TTBXAlignmentPanel + Left = 1 + Top = 1 + Width = 549 + Height = 568 + Align = alClient + Color = clWindow + TabOrder = 0 + object lblBienvenido: TLabel + Left = 8 + Top = 8 + Width = 210 + Height = 54 + Caption = 'Bienvenido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -43 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + object Label22: TLabel + Left = 116 + Top = 52 + Width = 247 + Height = 22 + Caption = 'Administraci'#243'n de puntos de venta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clGray + Font.Height = -16 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + end + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 580 + Width = 771 + Height = 19 + Panels = <> + end + object XPManifest1: TXPManifest + Left = 248 + Top = 48 + end + object GeneralActionList: TActionList + Left = 248 + Top = 149 + object actSalir: TAction + Category = 'Archivo' + Caption = '&Salir' + OnExecute = actSalirExecute + end + object actLogin: TAction + Category = 'Archivo' + Caption = 'Login' + OnExecute = actLoginExecute + end + object actAdministracion: TAction + Category = 'Archivo' + Caption = 'Panel de administraci'#243'n' + end + object actCambiarPass: TAction + Category = 'Archivo' + Caption = 'Cambiar mi contrase'#241'a' + Enabled = False + OnExecute = actCambiarPassExecute + end + object actConexion: TAction + Category = 'Archivo' + Caption = 'Configurar conexi'#243'n' + OnExecute = actConexionExecute + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object ModulesSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000001504944415478DA + 63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24 + 7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0 + E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B + 28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1 + 1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF + 314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533 + 5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8 + 0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022 + DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3 + 9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3 + 0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001DD4944415478DA + 63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7 + EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B + F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6 + 032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0 + E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377 + DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3 + CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62 + 3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6 + A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057 + FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD + 6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218 + 2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9 + 3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069 + 7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3 + 82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000 + 00000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 43 + Top = 493 + Bitmap = {} + end + object ModulesActionList: TActionList + Left = 11 + Top = 492 + end + object ModulesLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA + B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0 + 87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5 + 6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF + F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B + 3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168 + CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B + D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF + 17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890 + E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC + C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7 + 5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748 + 6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889 + 4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021 + 2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410 + D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684 + CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C + 10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A + D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C + DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76 + 199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D + 9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75 + 3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE + FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003E74944415478DA + D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB + 065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4 + A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78 + E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580 + 8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B + 774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF + 220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9 + 89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726 + F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464 + 80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01 + 2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50 + CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D + 9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF + 7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC + F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE + B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914 + 91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA + 9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8 + B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753 + 2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F + 35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2 + 4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF + 4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C + 15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96 + 73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F + 83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0 + 6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593 + 03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC + 363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D + 0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368 + E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8 + 1B2694FBE012B66F2C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 75 + Top = 493 + Bitmap = {} + end + object HostManager: THostManager + OnAfterLoad = HostManagerAfterLoad + Left = 276 + Top = 47 + end + object StyleManagerButtons: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWindow + Colors.ButtonColorTo = clWindow + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.ButtonSeparatorColor = clWindow + Colors.SplitterColorFrom = clWindow + Colors.SplitterColorTo = clWindow + Colors.DividerColorFrom = clWindow + Colors.DividerColorTo = clWindow + Colors.HeaderColorFrom = clWindow + Colors.HeaderColorTo = clWindow + Colors.FrameColor = clWindow + Colors.ToolPanelHeaderColorFrom = clWindow + Colors.ToolPanelHeaderColorTo = clWindow + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -11 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -11 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [] + Theme = nptCustom + Left = 176 + Top = 504 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fPantallaPrincipal\' + VersionCheck = fpvcNocheck + StoredValues = <> + Left = 472 + Top = 120 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 504 + Top = 128 + end + object ApplicationEvents: TApplicationEvents + OnActionExecute = ApplicationEventsActionExecute + Left = 248 + Top = 190 + end + object HostMenu: TJvMainMenu + Images = ModulesSmallImageList + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + ItemPainter = JvXPMenuItemPainter1 + Left = 384 + Top = 256 + object Archivo2: TMenuItem + Tag = -9000 + Caption = 'Archivo' + object Cambiarmicontrasea2: TMenuItem + Tag = 1 + Action = actCambiarPass + end + object N3: TMenuItem + Tag = 2 + Caption = '-' + end + object Configurarconexin2: TMenuItem + Tag = 3 + Action = actConexion + end + object Paneldeadministracin2: TMenuItem + Tag = 4 + Action = actAdministracion + Visible = False + end + object N4: TMenuItem + Tag = 5 + Caption = '-' + end + object Salir2: TMenuItem + Tag = 6 + Action = actSalir + end + end + object Ayuda2: TMenuItem + Tag = 10000 + Caption = 'Ayuda' + object Acercade2: TMenuItem + Action = actAcerca + end + end + end + object JvXPMenuItemPainter1: TJvXPMenuItemPainter + SelectionFrameBrush.Color = 13811126 + SelectionFramePen.Color = 6956042 + Left = 424 + Top = 256 + end +end diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas b/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas new file mode 100644 index 0000000..4408715 --- /dev/null +++ b/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas @@ -0,0 +1,569 @@ + +unit uPantallaPrincipal; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, XPMan, uGUIBase, uCustomEditor, + JvNavigationPane, JvExExtCtrls, JvComponent, Menus, ImgList, + PngImageList, ActnList, uHostManager, JvExControls, JvPageList, JvPanel, + TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, TBXToolPals, TBXLists, + TBXExtItems, TB2ExtItems, TBXMDI, TBXDkPanels, JvSplitter, JvSyncSplitter, + JvXPBar, JvXPCore, JvXPContainer, JvLookOut, JvOutlookBar, Buttons, + JvExButtons, JvBitBtn, JvSpeedButton, JvExStdCtrls, JvButton, JvCtrls, + JvStartMenuButton, JvTransparentButton, JvExComCtrls, JvListView, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvBaseDlg, + JvJVCLAboutForm, AppEvnts, JvWaitingGradient, JvGradient, + cxControls, JvComponentBase, JvMenus; + +type + TfPantallaPrincipal = class(TForm, IHostForm) + GeneralActionList: TActionList; + ModulesSmallImageList: TPngImageList; + XPManifest1: TXPManifest; + actSalir: TAction; + ModulesActionList: TActionList; + ModulesLargeImageList: TPngImageList; + pnlContenido: TTBXAlignmentPanel; + JvNavigationPane: TJvNavigationPane; + pnlMain: TTBXAlignmentPanel; + JvSyncSplitter1: TJvSyncSplitter; + StatusBar: TStatusBar; + HostManager: THostManager; + actLogin: TAction; + pagInicio: TJvNavPanelPage; + StyleManagerButtons: TJvNavPaneStyleManager; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + actAdministracion: TAction; + ApplicationEvents: TApplicationEvents; + actCambiarPass: TAction; + actConexion: TAction; + actAcerca: TAction; + pnlBorde: TJvXPContainer; + HostMenu: TJvMainMenu; + JvXPMenuItemPainter1: TJvXPMenuItemPainter; + Archivo2: TMenuItem; + Ayuda2: TMenuItem; + Cambiarmicontrasea2: TMenuItem; + N3: TMenuItem; + Configurarconexin2: TMenuItem; + Paneldeadministracin2: TMenuItem; + N4: TMenuItem; + Salir2: TMenuItem; + Acercade2: TMenuItem; + lblBienvenido: TLabel; + Label22: TLabel; + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure HostManagerAfterLoad(Sender: TObject; AModuleInfo: TModuleInfo); + procedure Salir1Click(Sender: TObject); + procedure actSalirExecute(Sender: TObject); + procedure actLoginExecute(Sender: TObject); + procedure ApplicationEventsActionExecute(Action: TBasicAction; + var Handled: Boolean); + procedure actCambiarPassExecute(Sender: TObject); + procedure actAcercaExecute(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure actConexionExecute(Sender: TObject); + private + FContenido : TCustomEditor; + FStartDefaultAction : TBasicAction; + + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure AplicarPerfil; + function FindNavPanePage(ACaption : String) : Integer; + procedure InitializeUI; + procedure OnThemeChange(Sender: TObject); + procedure CopyImages(const SrcList: TPngImageList; var DstList: TPngImageList; + out Index, Count: Integer); + procedure RegisterModule(AModuleInfo : TModuleInfo); + procedure ExecuteActionMenu(Sender : TObject); + protected + function GetWorkPanel : TWinControl; + public + function IsShortcut(var Message: TWMKey): Boolean; override; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + property WorkPanel : TWinControl read GetWorkPanel; + constructor Create(AOwner: TComponent); override; + end; + +var + fPantallaPrincipal: TfPantallaPrincipal; + +implementation + +uses + PNGImage, uModuleController, uDataModuleBase, Math, uMenuUtils, + uPanelControl, uDataModuleUsuarios, uSplash, uAcercaDe, + uViewBase,UxTheme, Themes; + + +{$R *.dfm} + +function OpenThemeData(hwnd: HWND; pszClassList: LPCWSTR): THandle; stdcall; + external 'uxtheme.dll'; + +function CloseThemeData(hTheme: THandle): HRESULT; stdcall; + external 'uxtheme.dll'; + +function DrawThemeBackground(hTheme: THandle; hdc: HDC; iPartId, iStateId: +Integer; const pRect: TRect; + pClipRect: PRECT): HRESULT; stdcall; + external 'uxtheme.dll'; + +{ +***************************** TfPantallaPrincipal ****************************** +} + +procedure TfPantallaPrincipal.CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); +begin + Index := -1; + Count := 0; + + if not Assigned(SrcList) or not Assigned(DstList) then + Exit; + + DstList.BeginUpdate; + try + Index := DstList.Count; + DstList.AddImages(SrcList); + Count := SrcList.Count; + finally + DstList.EndUpdate; + end; +end; + +procedure TfPantallaPrincipal.FormCreate(Sender: TObject); +begin + Caption := Application.Title + ' - ' + dmBase.DarVersion; + SplashScreen := TSplashScreen.Create(Application) ; + SplashScreen.Show; + + JvNavigationPane.StyleManager := dmBase.StyleManager; + dmBase.OnThemeChange := Self.OnThemeChange; + Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo + + with HostManager do + begin + BPLPath := ExtractFilePath(Application.ExeName) + '\'; + MainForm := Self; + end; + + actLogin.Execute; +end; + +procedure TfPantallaPrincipal.FormDestroy(Sender: TObject); +begin + HostManager.UnloadModules; +end; + +procedure TfPantallaPrincipal.HostManagerAfterLoad(Sender: TObject; + AModuleInfo: TModuleInfo); +begin + RegisterModule(AModuleInfo); +end; + +procedure TfPantallaPrincipal.RegisterModule(AModuleInfo : TModuleInfo); +var + AModule: TModuleController; + AModuleMenu : TMainMenu; + AIndex: Integer; + ACount: Integer; +begin + AModule := AModuleInfo.Module; + SplashScreen.Texto := 'Cargando ''' + AModule.ModuleName + '''...'; + + CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(ModulesSmallImageList), AIndex, ACount); + CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(ModulesLargeImageList), AIndex, ACount); + + if Assigned(AModule.ModuleMenu) then + begin + AModuleMenu := AModule.ModuleMenu; + MergeMenus(AModuleMenu, Self.Menu, AIndex); + end; +end; + +procedure TfPantallaPrincipal.Salir1Click(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.actSalirExecute(Sender: TObject); +begin + Close; +end; + +procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject); +begin + LockWindowUpdate(Handle); + try + Color := dmBase.StyleManager.Colors.DividerColorTo; + //pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor; + pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor; + with StyleManagerButtons do + begin + Colors.ButtonColorFrom := clWindow; + Colors.ButtonColorTo := clWindow; + Colors.ButtonSeparatorColor := clWindow; + Colors.SplitterColorFrom := clWindow; + Colors.SplitterColorTo := clWindow; + Colors.DividerColorFrom := clWindow; + Colors.DividerColorTo := clWindow; + Colors.HeaderColorFrom := clWindow; + Colors.HeaderColorTo := clWindow; + Colors.FrameColor := clWindow; + Colors.ToolPanelHeaderColorFrom := clWindow; + Colors.ToolPanelHeaderColorTo := clWindow; + + Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom; + Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo; + + Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom; + Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo; + end; + lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo; +{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom; + JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;} + finally + LockWindowUpdate(0); + Refresh; + end; +end; + +function TfPantallaPrincipal.GetWorkPanel: TWinControl; +begin + Result := pnlMain; +end; + +procedure TfPantallaPrincipal.InitializeUI; + + function EsUnModulo(AMenuItem : TMenuItem) : Boolean; + begin + Result := (AMenuItem.Tag >= 0) and (AMenuItem.Tag < 9000) + end; + +var + i : Integer; + AMenuItem : TMenuItem; + APageIndex : Integer; + AStringList : TStringList; + APanel : TScrollBox; +begin + SortMenuByTag(Menu); + + AStringList := TStringList.Create; + AStringList.Duplicates := dupIgnore; + try + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + AStringList.Add(StringReplace(AMenuItem.Caption, '&', '', [])) + end; + + for i := 0 to AStringList.Count - 1 do + begin + with TJvNavPanelDivider.Create(Self) do + begin + Parent := pagInicio; + Top := 100 * i; + Align := alTop; + Caption := AStringList[i]; + ParentFont := True; + if i = 0 then + begin + Enabled := false; + Cursor := crDefault; + end + else + Cursor := crSizeNS; + end; + + APanel := TScrollBox.Create(Self); + with APanel do + begin + Parent := pagInicio; + Top := 101 * i; + if i = AStringList.Count - 1 then + Align := alClient + else + Align := alTop; + BorderStyle := bsNone; + end; + AStringList.Objects[i] := APanel; + end; + + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + if not Assigned(FStartDefaultAction) then + FStartDefaultAction := AMenuItem[0].Action; + + APageIndex := AStringList.IndexOf(StringReplace(AMenuItem.Caption, '&', '', [])); + PopulateNavPagePane(TScrollBox(AStringList.Objects[APageIndex]), AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + // Elimino la imagen que tiene el menú porque queda feo. + AMenuItem.ImageIndex := -1; + end; + finally + AStringList.Free; + end; + + ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; +end; + + +{ var + i : Integer; + AMenuItem : TMenuItem; + APageIndex : Integer; +begin + SortMenuByTag(Menu); + + for i := 0 to Menu.Items.Count - 1 do + begin + AMenuItem := Menu.Items[i]; + if not EsUnModulo(AMenuItem) then + Continue; + + if Pos('Ficheros', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlEDI, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Inventario', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlInventario, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Ventas', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlVentas, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + if Pos('Stock', AMenuItem.Caption) > 0 then + PopulateNavPagePane(pnlStock, AMenuItem, ModulesLargeImageList, StyleManagerButtons); + + // Elimino la imagen que tiene el menú porque queda feo. + AMenuItem.ImageIndex := -1; + end; + JvNavigationPane.ActivePage := pagInicio; + ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; +end;} + + +procedure TfPantallaPrincipal.actLoginExecute(Sender: TObject); +begin + HostManager.UnloadModules; + + if dmUsuarios.Login then + begin + ShowHourglassCursor; + SplashScreen.Update; + Application.ProcessMessages; + try + HostManager.LoadModule('FicherosEDI.bpl'); + HostManager.LoadModule('VentasTerminadas.bpl'); + HostManager.LoadModule('VentasProceso.bpl'); + HostManager.LoadModule('ReferenciaGenerica.bpl'); + HostManager.LoadModule('Recepciones.bpl'); + HostManager.LoadModule('Devoluciones.bpl'); + HostManager.LoadModule('Traspasos.bpl'); + HostManager.LoadModule('Stock.bpl'); + + InitializeUI; + Application.ProcessMessages; + Visible := True; + AplicarPerfil; + finally + SplashScreen.Update; + SplashScreen.Hide; + SplashScreen.Free; + HideHourglassCursor; + end; + end + else + Application.Terminate; +end; + +function TfPantallaPrincipal.FindNavPanePage(ACaption: String): Integer; +var + i : integer; +begin + Result := -1; + for i := 0 to JvNavigationPane.PageCount - 1 do + if JvNavigationPane.NavPages[i].Caption = ACaption then + begin + Result := i; + break; + end; +end; + +procedure TfPantallaPrincipal.ExecuteActionMenu(Sender: TObject); +var + i : integer; +begin + for i := 0 to JvNavigationPane.PageCount - 1 do + begin + if JvNavigationPane.NavPages[i].Caption = (Sender as TAction).Caption then + begin + JvNavigationPane.ActivePageIndex := i; + Break; + end; + end; +end; + +procedure TfPantallaPrincipal.AplicarPerfil; +begin + actAdministracion.Visible := dmUsuarios.EsAdmin; +end; + +procedure TfPantallaPrincipal.ApplicationEventsActionExecute( + Action: TBasicAction; var Handled: Boolean); +var + APageIndex : Integer; +begin + if (Action is TAction) then + begin + APageIndex := FindNavPanePage((Action as TAction).Category); + if APageIndex > 0 then + JvNavigationPane.ActivePageIndex := APageIndex; + end; +end; + +procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor); +begin + ShowHourglassCursor; + LockWindowUpdate(Handle); + try + if Assigned(FContenido) then + FContenido.Release; + + FContenido := AEditor.GetInstance as TCustomEditor; + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +constructor TfPantallaPrincipal.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; +end; + +procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); +begin + dmUsuarios.CambiarPassword; +end; + +procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + HostManager := Self.HostManager; + ShowModal; + finally + Free; + end; +end; + +function TfPantallaPrincipal.IsShortcut(var Message: TWMKey): Boolean; +Var + ctrl: TWinControl; + comp: TComponent; + i: Integer; + Begin + ctrl := ActiveControl; + If ctrl <> Nil Then Begin + Repeat + ctrl := ctrl.Parent + Until (ctrl = nil) or (ctrl Is TCustomForm); + // Note: replace TCustomFrame with TForm, check if the found form is + // self, if not, execute the following block of code. + If ctrl <> nil Then Begin + For i:= 0 To ctrl.componentcount-1 Do Begin + comp:= ctrl.Components[i]; + If comp Is TCustomActionList Then Begin + result := TCustomActionList(comp).IsShortcut( message ); + If result Then + Exit; + End; + End; + End; + End; + //Result := inherited IsShortCut(Message); +end; + + +procedure TfPantallaPrincipal.Button1Click(Sender: TObject); +var + i : integer; + AModule : TModuleInfo; +{ lCLG: TdxLayoutGroup; + lLI: TdxLayoutItem;} +begin + { + for i := 0 to HostManager.ModulesCount -1 do + begin + AModule := HostManager.Modules[i]; + if Supports(AModule.Module, IViewInicio, AVista) then + begin + Exit; + lLI := dxLayoutControl1.CreateItemForControl(Button2); + lLI.Caption := 'Hello World'; + lCLG := dxLayoutControl1.CreateGroup; + lCLG.Caption := 'Test this'; + lCLG.Parent := dxLayoutControl1.Items; + lLI.Parent := lCLG; + dxLayoutControl1.Customization := True; + end; + end; + } +end; + +{procedure TfPantallaPrincipal.JvPanel1Paint(Sender: TObject); +var + PS: PAINTSTRUCT; +begin + BeginPaint(JvPanel1.Canvas.Handle, PS); + ThemeServices.DrawElement(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel1.BoundsRect); +// ThemeServices.DrawText(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tspUserPane), 'Hola', JvPanel1.Canvas.ClipRect, 0, 0); + EndPaint(JvPanel1.Canvas.Handle, PS); + +end; + +procedure TfPantallaPrincipal.JvPanel2Paint(Sender: TObject); +var + PS: PAINTSTRUCT; +begin + BeginPaint(JvPanel2.Canvas.Handle, PS); + ThemeServices.DrawElement(JvPanel2.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel2.BoundsRect); + EndPaint(JvPanel2.Canvas.Handle, PS); +end;} + +procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject); +begin + dmBase.ConfigurarConexion; +end; + +end. diff --git a/Varela/Varela/Source/Cliente/uSplash.ddp b/Varela/Varela/Source/Cliente/uSplash.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Cliente/uSplash.dfm b/Varela/Varela/Source/Cliente/uSplash.dfm new file mode 100644 index 0000000..664f75c --- /dev/null +++ b/Varela/Varela/Source/Cliente/uSplash.dfm @@ -0,0 +1,935 @@ +object SplashScreen: TSplashScreen + Left = 507 + Top = 382 + BorderStyle = bsNone + Caption = 'SplashScreen' + ClientHeight = 275 + ClientWidth = 452 + Color = clBlack + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + Scaled = False + PixelsPerInch = 96 + TextHeight = 13 + object lblTexto: TLabel + Left = 11 + Top = 256 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 452 + Height = 252 + AutoSize = True + BevelOuter = bvNone + BorderWidth = 1 + Color = clBlack + TabOrder = 0 + object Image1: TImage + Left = 1 + Top = 1 + Width = 450 + Height = 250 + AutoSize = True + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end +end diff --git a/Varela/Varela/Source/Cliente/uSplash.pas b/Varela/Varela/Source/Cliente/uSplash.pas new file mode 100644 index 0000000..7f951a8 --- /dev/null +++ b/Varela/Varela/Source/Cliente/uSplash.pas @@ -0,0 +1,56 @@ +unit uSplash; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, JvGIF, StdCtrls; + +type + TSplashScreen = class(TForm) + Image1: TImage; + Panel1: TPanel; + lblTexto: TLabel; + procedure Image1Click(Sender: TObject); + private + function GetTexto: String; + procedure SetTexto(const Value: String); + { Private declarations } + public + property Texto : String read GetTexto write SetTexto; + procedure ShowAsAbout; + end; + +var + SplashScreen: TSplashScreen; + +implementation + +{$R *.dfm} + +{ TSplashScreen } + +procedure TSplashScreen.ShowAsAbout; +begin + Image1.OnClick := Image1Click; + ShowModal; +end; + +procedure TSplashScreen.Image1Click(Sender: TObject); +begin + Close; +end; + +function TSplashScreen.GetTexto: String; +begin + Result := lblTexto.Caption; + +end; + +procedure TSplashScreen.SetTexto(const Value: String); +begin + lblTexto.Caption := Value; + Self.Update; +end; + +end. diff --git a/Varela/Varela/Source/Configuracion/Configuracion.bdsproj b/Varela/Varela/Source/Configuracion/Configuracion.bdsproj new file mode 100644 index 0000000..3e6bdf5 --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Configuracion.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Configuracion/Configuracion.cfg b/Varela/Varela/Source/Configuracion/Configuracion.cfg new file mode 100644 index 0000000..96c8d0b --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\Output\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Configuracion/Configuracion.dof b/Varela/Varela/Source/Configuracion/Configuracion.dof new file mode 100644 index 0000000..38d0745 --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.dof @@ -0,0 +1,471 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\Output\Cliente +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=1 +Item0=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=1 +Item0=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=1 +Item0=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Configuracion/Configuracion.dpk b/Varela/Varela/Source/Configuracion/Configuracion.dpk new file mode 100644 index 0000000..e59d02e --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.dpk @@ -0,0 +1,35 @@ +package Configuracion; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + JvGlobusD10R, + BaseD10, + Usuarios; + +contains + uPanelControl in 'uPanelControl.pas' {fPanelControl}; + +end. diff --git a/Varela/Varela/Source/Configuracion/Configuracion.drc b/Varela/Varela/Source/Configuracion/Configuracion.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Configuracion/Configuracion.rc b/Varela/Varela/Source/Configuracion/Configuracion.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Configuracion/Configuracion.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Configuracion/Configuracion.res b/Varela/Varela/Source/Configuracion/Configuracion.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm new file mode 100644 index 0000000..f615384 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm @@ -0,0 +1,172 @@ +object dmControles: TdmControles + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 300 + Width = 300 + object RemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvControles' + Left = 56 + Top = 16 + end + object ds_Controles: TDADataSource + DataSet = tbl_Controles.Dataset + DataTable = tbl_Controles + Left = 176 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'ListaControlesPorCategoria' + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = True + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer1 + Left = 56 + Top = 80 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 56 + Top = 152 + end + object tbl_Controles: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + DefaultValue = 'S' + end + item + Name = 'ICONO' + DataType = datSmallInt + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'ORDEN' + DataType = datSmallInt + end + item + Name = 'VISTA' + DataType = datMemo + end> + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Value = 'vebyas' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaControlesPorCategoria' + IndexDefs = <> + Left = 176 + Top = 16 + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas new file mode 100644 index 0000000..9fbe2d4 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas @@ -0,0 +1,76 @@ +unit uDataModuleControles; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uROClient, uROServiceComponent, uRORemoteService, + uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer, uDABinAdapter, + uDAMemDataTable; + +type + TdmControles = class(TDAClientDataModule) + RemoteService: TRORemoteService; + ds_Controles: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + tbl_Controles: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems (const ACategoria : String): TDACDSDataTable; + end; + +var + dmControles: TdmControles; + +implementation + +{$R *.DFM} + +uses + Forms, Controls, + schControlesClient_Intf, + uDataModuleBase, uDataTableUtils, DataAbstract3_Intf, cxControls; + +procedure TdmControles.DAClientDataModuleCreate(Sender: TObject); +begin + RemoteService.Channel := dmBase.Channel; + RemoteService.Message := dmBase.Message; +end; + +function TdmControles.GetItems (const ACategoria : String): TDACDSDataTable; +var + dtControles: TDACDSDataTable; + //AParams : TDADatasetParamArray; +begin + ShowHourglassCursor; + try + dtControles := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Controles, dtControles); + + // Begin adaptación DA5 + {AParams := TDADatasetParamArray.Create; + with AParams.Add do begin + Name := fld_ListaControlesPorCategoriaCATEGORIA; + Value := ACategoria; + end;} + //dtControles.DataRequestCall.ParamByName(par_Params).AsComplexType := AParams; + + dtControles.ParamByName(fld_ListaControlesPorCategoriaCATEGORIA).AsString := ACategoria; // adaptación + // End adaptación DA5 + Result := dtControles; + finally + HideHourglassCursor; + end; +end; + +initialization + dmControles := TdmControles.Create(nil); + +finalization + FreeAndNil(dmControles); + +end. + diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas b/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas new file mode 100644 index 0000000..d46a72b --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas @@ -0,0 +1,68 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDateUtils; + +interface + +function NumberDayOfTheWeek(const ADay : String) : Word; +function NumberMonthOfTheYear(const AMonth : String) : Word; + +implementation + +uses + DateUtils; + +function NumberDayOfTheWeek(const ADay : String) : Word; +begin + if (ADay = 'Monday') or (ADay = 'Lunes') then + Result := DayMonday; + if (ADay = 'Tuesday') or (ADay = 'Martes') then + Result := DayTuesday; + if (ADay = 'Wednesday') or (ADay = 'Miercoles') or (ADay = 'Miércoles') then + Result := DayWednesday; + if (ADay = 'Thursday') or (ADay = 'Jueves') then + Result := DayThursday; + if (ADay = 'Friday') or (ADay = 'Viernes') then + Result := DayFriday; + if (ADay = 'Saturday') or (ADay = 'Sabado') or (ADay = 'Sábado') then + Result := DaySaturday; + if (ADay = 'Sunday') or (ADay = 'Domingo') then + Result := DaySunday; +end; + +function NumberMonthOfTheYear(const AMonth : String) : Word; +begin + if (AMonth = 'January') or (AMonth = 'Enero') then + Result := 1; + if (AMonth = 'February') or (AMonth = 'Febrero') then + Result := 2; + if (AMonth = 'March') or (AMonth = 'Marzo') then + Result := 3; + if (AMonth = 'April') or (AMonth = 'Abril') then + Result := 4; + if (AMonth = 'May') or (AMonth = 'Mayo') then + Result := 5; + if (AMonth = 'June') or (AMonth = 'Junio') then + Result := 6; + if (AMonth = 'July') or (AMonth = 'Julio') then + Result := 7; + if (AMonth = 'August') or (AMonth = 'Agosto') then + Result := 8; + if (AMonth = 'September') or (AMonth = 'Septiembre') or (AMonth = 'Setiembre') then + Result := 9; + if (AMonth = 'October') or (AMonth = 'Octubre') then + Result := 10; + if (AMonth = 'November') or (AMonth = 'Noviembre') then + Result := 11; + if (AMonth = 'December') or (AMonth = 'Diciembre') then + Result := 12; +end; + +end. + \ No newline at end of file diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm new file mode 100644 index 0000000..0aa84fd --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm @@ -0,0 +1,1324 @@ +inherited fEditorControlBase: TfEditorControlBase + Left = 499 + Top = 302 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 523 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + object tbxiPropiedades: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem14: TTBXSeparatorItem [8] + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + object TBXSeparatorItem15: TTBXSeparatorItem [6] + end + object tbxiPropiedades2: TTBXItem [7] + Action = actPropiedades + end + end + end + end + inherited EditorActionList: TActionList + inherited actGuardarCerrar: TAction + OnUpdate = actGuardarCerrarUpdate + end + inherited actGuardar: TAction + OnUpdate = actGuardarUpdate + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas new file mode 100644 index 0000000..ee7b12f --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas @@ -0,0 +1,133 @@ +unit uEditorControlBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uBizControlesBase, schControlesClient_Intf, uViewControlBase, uDAInterfaces; + +type + IEditorControlBase = interface(IEditorDBItem) + ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + end; + + + TfEditorControlBase = class(TfEditorDBItem, IEditorControlBase) + actPropiedades: TAction; + TBXSeparatorItem14: TTBXSeparatorItem; + tbxiPropiedades: TTBXItem; + TBXSeparatorItem15: TTBXSeparatorItem; + tbxiPropiedades2: TTBXItem; + procedure actPropiedadesExecute(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FControl : IBizControlBase; + FViewControl : IViewControlBase; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + procedure RefrescarTituloEditor; virtual; + function GetModified: Boolean; override; + procedure RellenarCabeceraInforme; virtual; + public + property Control: IBizControlBase read GetControl write SetControl; + end; + +implementation + +uses uEditorDBBase, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlBase } + +function TfEditorControlBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfEditorControlBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := FControl.DataTable; + if Assigned(FViewControl) then + FViewControl.Control := FControl; +end; + +procedure TfEditorControlBase.actPropiedadesExecute(Sender: TObject); +begin + inherited; + try + FControl.VerPropiedades; + finally + RefrescarTituloEditor; + FViewControl.Modificable := FControl.EsModificable; + inherited actGuardarExecute(Sender); + end; +end; + +procedure TfEditorControlBase.RefrescarTituloEditor; +begin + if Assigned(FControl) and (Length(FControl.NOMBRE) > 0) then + begin + Caption := FControl.NOMBRE; + JvNavPanelHeader.Caption := FControl.NOMBRE; + end; +end; + +function TfEditorControlBase.GetModified: Boolean; +begin + Result := inherited GetModified and + (Assigned(FControl) and FControl.EsModificable); +end; + +procedure TfEditorControlBase.actGuardarCerrarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); +end; + +procedure TfEditorControlBase.actGuardarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); +end; + +procedure TfEditorControlBase.actPrevisualizarExecute(Sender: TObject); +begin + RellenarCabeceraInforme; + inherited; +end; + +procedure TfEditorControlBase.RellenarCabeceraInforme; +begin + inherited; + // +end; + +procedure TfEditorControlBase.actImprimirExecute(Sender: TObject); +begin + RellenarCabeceraInforme; + inherited; +end; + + +procedure TfEditorControlBase.actEliminarExecute(Sender: TObject); +begin + if not FControl.EsModificable then + ShowMessage('Este control no se puede eliminar') + else + inherited +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm new file mode 100644 index 0000000..941ccbd --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm @@ -0,0 +1,1394 @@ +inherited fEditorControlesBase: TfEditorControlesBase + Left = 385 + Top = 375 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + ExplicitTop = 0 + end + inherited TBXDock: TTBXDock + Top = 27 + ExplicitTop = 27 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 386 + inherited TBXItem2: TTBXItem + ImageIndex = 0 + Images = pngImageNuevo + end + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + end + end + inherited EditorActionList: TActionList + Left = 72 + Top = 128 + inherited actNuevo: TAction + Caption = 'Nuevo control...' + OnExecute = actNuevoExecute + end + inherited actModificar: TAction + Caption = 'Abrir control' + OnExecute = actModificarExecute + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + OnUpdate = actPropiedadesUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + object ViewPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Propiedades1: TMenuItem + Action = actPropiedades + end + end + object pngImageNuevo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 224 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk new file mode 100644 index 0000000..941ccbd --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk @@ -0,0 +1,1394 @@ +inherited fEditorControlesBase: TfEditorControlesBase + Left = 385 + Top = 375 + Caption = '' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 0 + ExplicitTop = 0 + end + inherited TBXDock: TTBXDock + Top = 27 + ExplicitTop = 27 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 386 + inherited TBXItem2: TTBXItem + ImageIndex = 0 + Images = pngImageNuevo + end + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem14: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actPropiedades + DisplayMode = nbdmImageAndText + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXItem26: TTBXItem + Visible = False + end + inherited TBXItem25: TTBXItem + Visible = False + end + inherited TBXSeparatorItem11: TTBXSeparatorItem + Visible = False + end + inherited TBXItem28: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + Visible = False + end + end + inherited EditorActionList: TActionList + Left = 72 + Top = 128 + inherited actNuevo: TAction + Caption = 'Nuevo control...' + OnExecute = actNuevoExecute + end + inherited actModificar: TAction + Caption = 'Abrir control' + OnExecute = actModificarExecute + end + object actPropiedades: TAction + Category = 'Archivo' + Caption = 'Propiedades' + ImageIndex = 20 + OnExecute = actPropiedadesExecute + OnUpdate = actPropiedadesUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end> + Bitmap = {} + end + object ViewPopupMenu: TPopupMenu + Images = SmallImages + Left = 72 + Top = 88 + object Modificar1: TMenuItem + Action = actModificar + end + object Eliminar1: TMenuItem + Action = actEliminar + end + object N1: TMenuItem + Caption = '-' + end + object Nuevo1: TMenuItem + Action = actNuevo + end + object N2: TMenuItem + Caption = '-' + end + object Propiedades1: TMenuItem + Action = actPropiedades + end + end + object pngImageNuevo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F84944415478DA + 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA + 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 + 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F + FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF + 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 + BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 + 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B + 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 224 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas new file mode 100644 index 0000000..3817fac --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas @@ -0,0 +1,167 @@ +unit uEditorControlesBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, pngimage, uBizControlesBase, uEditorBase, + uViewControlesBase, uDAInterfaces; + +type + IEditorControlesBase = interface(IEditorDBBase) + ['{9B15BCEA-4C31-442A-89EC-773B66460A3B}'] + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + end; + + TfEditorControlesBase = class(TfEditorDBBase, IEditorControlesBase) + ViewPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + pngImageNuevo: TPngImageList; + actPropiedades: TAction; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem7: TTBXItem; + N2: TMenuItem; + Propiedades1: TMenuItem; + procedure actNuevoExecute(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPropiedadesExecute(Sender: TObject); + procedure actPropiedadesUpdate(Sender: TObject); + protected + FControl : IBizControlBase; + FViewControl : IViewControlesBase; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + public + destructor Destroy; override; + property Control: IBizControlBase read GetControl write SetControl; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +{ TfEditorControlesBase } + +function TfEditorControlesBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfEditorControlesBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := FControl.DataTable; + if Assigned(FViewControl) then + begin + FViewControl.Control := FControl; + end; +end; + +procedure TfEditorControlesBase.actNuevoExecute(Sender: TObject); +begin + inherited; + try + FControl.Insert; + FControl.Show; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actModificarExecute(Sender: TObject); +begin + inherited; + try + FControl.Show; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewControl) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Control) then + raise Exception.Create('No hay ningún control asignado'); + + FViewControl.OnDblClick := actModificar.OnExecute; + FViewControl.PopupMenu := ViewPopupMenu; + + Control.DataTable.Active := True; + + FViewControl.Refresh; +end; + +destructor TfEditorControlesBase.Destroy; +begin + FViewControl := NIL; + FControl := NIL; + inherited; +end; + +procedure TfEditorControlesBase.actEliminarExecute(Sender: TObject); +begin + try + if not FControl.EsModificable then + ShowMessage('Este control no se puede borrar') + else + if (Application.MessageBox('¿Desea borrar este control?', 'Atención', MB_YESNO) = IDYES) then + inherited; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actRefrescarExecute(Sender: TObject); +begin + inherited; + if Assigned(FViewControl) then + FViewControl.Refresh; +end; + +procedure TfEditorControlesBase.actPropiedadesExecute(Sender: TObject); +begin + inherited; + if Assigned(FControl) then + try + FControl.VerPropiedades; + actGuardar.Execute; + finally + FViewControl.Refresh; + end; +end; + +procedure TfEditorControlesBase.actPropiedadesUpdate(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and not (dsDataTable.DataTable.State = dsInsert) + else + (Sender as TAction).Enabled := False; +end; + +constructor TfEditorControlesBase.Create(AOwner: TComponent); +begin + inherited; + actModificar.ShortCut := ShortCut(VK_RETURN, []); +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm new file mode 100644 index 0000000..9180b16 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm @@ -0,0 +1,384 @@ +object frPropiedadesControl: TfrPropiedadesControl + Left = 569 + Top = 354 + ActiveControl = edtNombre + BorderStyle = bsDialog + Caption = 'Propiedades del informe' + ClientHeight = 418 + ClientWidth = 378 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnCloseQuery = FormCloseQuery + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 15 + Top = 84 + Width = 92 + Height = 13 + Caption = '&Nombre del control:' + FocusControl = edtNombre + end + object Label2: TLabel + Left = 48 + Top = 112 + Width = 59 + Height = 13 + Caption = '&Descripci'#243'n:' + FocusControl = memDescripcion + end + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 378 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Propiedades del control') + Comments.Strings = ( + 'Introduca los datos del control') + Gradient.FromColor = clGradientActiveCaption + Gradient.ToColor = clGradientInactiveCaption + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Label3: TLabel + Left = 77 + Top = 272 + Width = 30 + Height = 13 + Caption = '&Icono:' + end + object Bevel1: TBevel + Left = 8 + Top = 360 + Width = 361 + Height = 10 + Shape = bsBottomLine + end + object memDescripcion: TcxMemo + Left = 120 + Top = 112 + Lines.Strings = ( + '') + Properties.ScrollBars = ssVertical + Properties.WantReturns = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 105 + Width = 241 + end + object edtNombre: TcxTextEdit + Left = 120 + Top = 80 + Style.Color = 14745599 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 241 + end + object bAceptar: TButton + Left = 296 + Top = 384 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 2 + end + object cbModificable: TCheckBox + Left = 120 + Top = 232 + Width = 234 + Height = 17 + Caption = 'No &permitir realizar cambios en este control' + TabOrder = 3 + end + object btnIcono: TJvImgBtn + Left = 120 + Top = 272 + Width = 60 + Height = 60 + TabOrder = 4 + DropDownMenu = JvPopupMenu1 + DropArrow = True + Flat = True + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'MS Sans Serif' + HotTrackFont.Style = [] + Images = ReportImages + ImageIndex = 1 + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 27 + Top = 216 + Bitmap = {} + end + object JvPopupMenu1: TJvPopupMenu + Images = ReportImages + OnPopup = JvPopupMenu1Popup + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + Left = 192 + Top = 288 + object N11: TMenuItem + Caption = '1' + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas new file mode 100644 index 0000000..22d8afa --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas @@ -0,0 +1,117 @@ +unit uFormPropiedadesControl; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, StdCtrls, + JvExControls, JvComponent, JvgWizardHeader, ExtCtrls, ImgList, + PngImageList, JvExStdCtrls, JvButton, JvCtrls, Menus, JvMenus, ActnList; + +type + TfrPropiedadesControl = class(TForm) + edtNombre: TcxTextEdit; + Label1: TLabel; + Label2: TLabel; + bAceptar: TButton; + memDescripcion: TcxMemo; + JvgWizardHeader1: TJvgWizardHeader; + cbModificable: TCheckBox; + Label3: TLabel; + Bevel1: TBevel; + btnIcono: TJvImgBtn; + ReportImages: TPngImageList; + JvPopupMenu1: TJvPopupMenu; + N11: TMenuItem; + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure JvPopupMenu1Popup(Sender: TObject); + private + procedure SetDescripcion(const Value: String); + procedure SetNombre(const Value: String); + function GetDescripcion: String; + function GetNombre: String; + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + function GetIcono: Integer; + procedure SetIcono(const Value: Integer); + procedure OnMenuItemClick(Sender: TObject); + public + property Nombre : String read GetNombre write SetNombre; + property Descripcion : String read GetDescripcion write SetDescripcion; + property Modificable : Boolean read GetModificable write SetModificable; + property Icono : Integer read GetIcono write SetIcono; + end; + + +implementation + +{$R *.dfm} + +procedure TfrPropiedadesControl.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := Length(edtNombre.Text) > 0; + if not CanClose then + ShowMessage('Debe indicar al menos el nombre de este control.'); +end; + +function TfrPropiedadesControl.GetDescripcion: String; +begin + Result := memDescripcion.Lines.Text; +end; + +function TfrPropiedadesControl.GetIcono: Integer; +begin + Result := btnIcono.ImageIndex; +end; + +function TfrPropiedadesControl.GetModificable: Boolean; +begin + Result := not cbModificable.Checked; +end; + +function TfrPropiedadesControl.GetNombre: String; +begin + Result := edtNombre.Text; +end; + +procedure TfrPropiedadesControl.SetDescripcion(const Value: String); +begin + memDescripcion.Lines.Text := Value; +end; + +procedure TfrPropiedadesControl.SetIcono(const Value: Integer); +begin + btnIcono.ImageIndex := Value; +end; + +procedure TfrPropiedadesControl.SetModificable(const Value: Boolean); +begin + cbModificable.Checked := not Value; +end; + +procedure TfrPropiedadesControl.SetNombre(const Value: String); +begin + edtNombre.Text := Value; +end; + +procedure TfrPropiedadesControl.JvPopupMenu1Popup(Sender: TObject); +var + AItem : TMenuItem; + i : integer; +begin + JvPopupMenu1.Items.Clear; + for i := 0 to ReportImages.Count - 1 do + begin + AItem := TMenuItem.Create(JvPopupMenu1); + AItem.OnClick := OnMenuItemClick; + AItem.ImageIndex := i; + JvPopupMenu1.Items.Add(AItem); + end; +end; + +procedure TfrPropiedadesControl.OnMenuItemClick(Sender: TObject); +begin + btnIcono.ImageIndex := (Sender as TMenuItem).ImageIndex; +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm new file mode 100644 index 0000000..20e4854 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm @@ -0,0 +1,135 @@ +inherited frViewAgrupaciones: TfrViewAgrupaciones + Width = 228 + Height = 396 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 228 + Height = 29 + Align = alTop + Caption = 'Agrupaciones' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 0 + Top = 29 + Width = 228 + Height = 77 + Align = alTop + AutoSize = True + TabOrder = 1 + DesignSize = ( + 228 + 77) + object Label3: TLabel + Left = 7 + Top = 60 + Width = 74 + Height = 13 + Caption = 'y por '#250'ltimo por:' + Transparent = True + end + object Label2: TLabel + Left = 7 + Top = 32 + Width = 61 + Height = 13 + Caption = 'despu'#233's por:' + Transparent = True + end + object Label1: TLabel + Left = 7 + Top = 4 + Width = 95 + Height = 13 + Caption = 'Agrupar primero por:' + Transparent = True + end + object TBXButton1: TTBXButton + Tag = 1 + Left = 111 + Top = 0 + Width = 111 + Height = 21 + Action = actBoton1 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu1 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ImageIndex = 0 + ParentFont = False + TabOrder = 0 + Wrapping = twEndEllipsis + end + object TBXButton3: TTBXButton + Tag = 3 + Left = 111 + Top = 56 + Width = 111 + Height = 21 + Action = actBoton3 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu3 + ImageIndex = 0 + TabOrder = 1 + Wrapping = twEndEllipsis + end + object TBXButton2: TTBXButton + Tag = 2 + Left = 111 + Top = 28 + Width = 111 + Height = 21 + Action = actBoton2 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DropDownMenu = PopupMenu2 + ImageIndex = 0 + TabOrder = 2 + Wrapping = twEndEllipsis + end + end + object PopupMenu1: TPopupMenu + Left = 32 + Top = 136 + end + object PopupMenu2: TPopupMenu + Left = 64 + Top = 136 + end + object PopupMenu3: TPopupMenu + Left = 96 + Top = 136 + end + object ActionList1: TActionList + Left = 32 + Top = 168 + object actBoton2: TAction + OnExecute = actBoton2Execute + OnUpdate = actBoton2Update + end + object actBoton3: TAction + OnExecute = actBoton3Execute + OnUpdate = actBoton3Update + end + object actBoton1: TAction + OnExecute = actBoton1Execute + end + object actMenuClick: TAction + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas new file mode 100644 index 0000000..ff987e2 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas @@ -0,0 +1,339 @@ +unit uViewAgrupaciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ActnList, Menus, dxLayoutLookAndFeels, dxLayoutControl, uViewBase, + TBXDkPanels, cxControls, StdCtrls, ImgList, uViewControlGrid, + PngImageList, uViewParametrosControlGrid, JvExControls, JvComponent, + JvArrowButton, cxLookAndFeelPainters, cxButtons; + +type + IViewAgrupaciones = interface(IViewParametrosControlGrid) + ['{42030B8F-B12D-43D2-AEB2-F642F11D78DA}'] + function GetAgrupaciones: TStringList; + end; + + TfrViewAgrupaciones = class(TfrViewParametrosControlGrid, IViewAgrupaciones) + TBXButton1: TTBXButton; + TBXButton2: TTBXButton; + TBXButton3: TTBXButton; + PopupMenu1: TPopupMenu; + PopupMenu2: TPopupMenu; + PopupMenu3: TPopupMenu; + ActionList1: TActionList; + actBoton2: TAction; + actBoton3: TAction; + actBoton1: TAction; + actMenuClick: TAction; + TBXLabel1: TTBXLabel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + procedure actBoton2Update(Sender: TObject); + procedure actBoton3Update(Sender: TObject); + procedure actBoton2Execute(Sender: TObject); + procedure actBoton3Execute(Sender: TObject); + procedure actBoton1Execute(Sender: TObject); + procedure AMenuItemClick(Sender: TObject); + protected + FColumns : TStringList; + + FBotonPulsado : TTBXButton; + procedure MarcarItem(AMenuItem : TMenuItem); overload; + procedure MarcarItem(AMenu : TPopupMenu; const ACaption : String); overload; + procedure DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); + procedure DesmarcarItems(AMenu : TPopupMenu); + + procedure OnButtonPopup(Sender: TTBXCustomButton; var AllowDropDown: Boolean); + procedure RellenarListaColumnas; + procedure RellenarAgrupaciones; + procedure SetModificable(const Value: Boolean); override; + public + function GetAgrupaciones: TStringList; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Refresh; override; + procedure Execute; override; + end; + +implementation + +uses + cxGridDBTableView, JclStrings; + +{$R *.dfm} + +const + SIN_AGRUPACION = '(Quitar agrupación)'; + +{ TfrAgrupaciones } + +procedure TfrViewAgrupaciones.MarcarItem(AMenuItem : TMenuItem); +var + AItem : TMenuItem; +begin + AMenuItem.Checked := True; + + AItem := PopupMenu1.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; + + AItem := PopupMenu2.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; + + AItem := PopupMenu3.Items.Find(AMenuItem.Caption); + if Assigned(AItem) then + AItem.Enabled := False; +end; + +procedure TfrViewAgrupaciones.MarcarItem(AMenu : TPopupMenu; const ACaption : String); +var + AItem : TMenuItem; +begin + AItem := AMenu.Items.Find(ACaption); + if Assigned(AItem) then + MarcarItem(AItem); +end; + +procedure TfrViewAgrupaciones.DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); +var + AItem : TMenuItem; +begin + AItem := AMenu.Items.Find(ACaption); + if Assigned(AItem) then + begin + AItem.Enabled := True; + AItem.Checked := False; + end; +end; + +procedure TfrViewAgrupaciones.DesmarcarItems(AMenu : TPopupMenu); +var + i : integer; +begin + for i := 0 to AMenu.Items.Count - 1 do + begin + AMenu.Items[i].Enabled := True; + AMenu.Items[i].Checked := False; + end; +end; + + +function TfrViewAgrupaciones.GetAgrupaciones: TStringList; +var + aux : String; + AIndex : Integer; +begin + Result := TStringList.Create; + if actBoton1.Enabled then + begin + aux := TBXButton1.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + + if actBoton2.Enabled then + begin + aux := TBXButton2.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + + if actBoton3.Enabled then + begin + aux := TBXButton3.Caption; + aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); + if Length(Trim(aux)) > 0 then + Result.Add(aux); + end; + end; + end; +end; + +procedure TfrViewAgrupaciones.actBoton2Update(Sender: TObject); +begin + (Sender as TAction).Enabled := Length(TBXButton1.Caption) > 0; +end; + +procedure TfrViewAgrupaciones.actBoton3Update(Sender: TObject); +begin + (Sender as TAction).Enabled := Length(TBXButton2.Caption) > 0; +end; + +procedure TfrViewAgrupaciones.actBoton2Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.actBoton3Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.actBoton1Execute(Sender: TObject); +begin + // +end; + +procedure TfrViewAgrupaciones.AMenuItemClick(Sender: TObject); +var + i : integer; +begin + if (Sender as TMenuItem).MenuIndex > 0 then // El 0 es 'Sin agrupacion' + begin + DesmarcarItem(PopupMenu1, FBotonPulsado.Caption); + DesmarcarItem(PopupMenu2, FBotonPulsado.Caption); + DesmarcarItem(PopupMenu3, FBotonPulsado.Caption); + FBotonPulsado.Caption := (Sender as TMenuItem).Caption; + MarcarItem(Sender as TMenuItem); + end + else begin + DesmarcarItems(PopupMenu1); + DesmarcarItems(PopupMenu2); + DesmarcarItems(PopupMenu3); + // Anular los botones que estén por debajo del actual + for i := 3 downto FBotonPulsado.Tag do + TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; + end; +end; + +constructor TfrViewAgrupaciones.Create(AOwner: TComponent); +begin + inherited; + FColumns := TStringList.Create; + + TBXButton1.OnDropDown := OnButtonPopup; + TBXButton2.OnDropDown := OnButtonPopup; + TBXButton3.OnDropDown := OnButtonPopup; +end; + +procedure TfrViewAgrupaciones.OnButtonPopup(Sender: TTBXCustomButton; + var AllowDropDown: Boolean); +begin + FBotonPulsado := (Sender as TTBXButton); +end; + +procedure TfrViewAgrupaciones.Execute; +var + AgrBotones : TStringList; + i : Integer; +begin + AgrBotones := GetAgrupaciones; + for i := 0 to FColumns.Count - 1 do + (FColumns.Objects[i] as TcxGridDBColumn).GroupIndex := AgrBotones.IndexOf(FColumns.Strings[i]); +end; + +procedure TfrViewAgrupaciones.Refresh; +begin + RellenarListaColumnas; + RellenarAgrupaciones; +end; + +procedure TfrViewAgrupaciones.RellenarListaColumnas; +var + i : integer; + + function DarItem (const ACaption : string):TMenuItem; + begin + Result := NewItem(ACaption, 0, false, true, AMenuItemClick, 0, ''); + end; + +begin + PopupMenu1.Items.Clear; + PopupMenu2.Items.Clear; + PopupMenu3.Items.Clear; + + PopupMenu1.Items.Add(DarItem(SIN_AGRUPACION)); + PopupMenu2.Items.Add(DarItem(SIN_AGRUPACION)); + PopupMenu3.Items.Add(DarItem(SIN_AGRUPACION)); + + for i := 0 to ViewControlGrid.ColumnCount - 1 do + begin + FColumns.AddObject(ViewControlGrid.Columns[i].Caption, ViewControlGrid.Columns[i]); + PopupMenu1.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + PopupMenu2.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + PopupMenu3.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); + end; +end; + +destructor TfrViewAgrupaciones.Destroy; +begin + FreeAndNIL(FColumns); + inherited; +end; + +procedure TfrViewAgrupaciones.RellenarAgrupaciones; +var + i : integer; + AList : TStringList; +begin + AList := TStringList.Create; + + try + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + AList.Add(ViewControlGrid.GroupedColumns[i].Caption); + end; + + if AList.Count > 0 then + begin + DesmarcarItems(PopupMenu1); + DesmarcarItems(PopupMenu2); + DesmarcarItems(PopupMenu3); + + // Anular los botones que estén por debajo del actual + for i := 1 to 3 do + TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; + + TBXButton1.Caption := AList.Strings[0]; + MarcarItem(TBXButton1.DropDownMenu, AList.Strings[0]); + + if AList.Count > 1 then + begin + TBXButton2.Caption := AList.Strings[1]; + MarcarItem(TBXButton2.DropDownMenu, AList.Strings[1]); + + if AList.Count > 2 then + begin + TBXButton3.Caption := AList.Strings[2]; + MarcarItem(TBXButton3.DropDownMenu, AList.Strings[2]); + end; + end; + end; + finally + FreeAndNil(AList); + end; +end; + +procedure TfrViewAgrupaciones.SetModificable(const Value: Boolean); +begin + inherited; + pnlAgrupaciones.Enabled := Value; + + if pnlAgrupaciones.Enabled then + begin + Label1.Font.Color := clWindowText; + Label2.Font.Color := clWindowText; + Label3.Font.Color := clWindowText; + TBXButton1.Font.Color := clWindowText; + TBXButton2.Font.Color := clWindowText; + TBXButton3.Font.Color := clWindowText; + end + else begin + Label1.Font.Color := clBtnShadow; + Label2.Font.Color := clBtnShadow; + Label3.Font.Color := clBtnShadow; + TBXButton1.Font.Color := clBtnShadow; + TBXButton2.Font.Color := clBtnShadow; + TBXButton3.Font.Color := clBtnShadow; + end +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm new file mode 100644 index 0000000..ecbb78b --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm @@ -0,0 +1,42 @@ +inherited frViewColumnas: TfrViewColumnas + Width = 316 + Height = 350 + object lbColumnas: TcxCheckListBox + Left = 0 + Top = 29 + Width = 316 + Height = 321 + Align = alClient + Items = <> + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clWindow + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + OnClickCheck = lbColumnasClickCheck + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 316 + Height = 29 + Align = alTop + Caption = 'Columnas' + FocusControl = lbColumnas + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas new file mode 100644 index 0000000..ccba0d7 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas @@ -0,0 +1,113 @@ +unit uViewColumnas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, + TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, + JvExControls, JvComponent, JvxCheckListBox, uViewControlGrid, + cxCheckListBox, cxCheckBox, uViewParametrosControlGrid; + +type + IViewColumnas = interface(IViewParametrosControlGrid) + ['{FD33275B-6875-421A-ABAC-595982ACDDDB}'] + function GetCheckedColumns : TStringList; + end; + + TfrViewColumnas = class(TfrViewParametrosControlGrid, IViewColumnas) + lbColumnas: TcxCheckListBox; + TBXLabel1: TTBXLabel; + procedure lbColumnasClickCheck(Sender: TObject; AIndex: Integer; + APrevState, ANewState: TcxCheckBoxState); + protected + procedure RellenarListaColumnas; + procedure SetModificable(const Value : Boolean); override; + public + procedure Refresh; override; + procedure Execute; override; + function GetCheckedColumns : TStringList; + end; + +implementation + +{$R *.dfm} + +{ TfrViewColumnas } + +procedure TfrViewColumnas.Refresh; +begin + inherited; + RellenarListaColumnas; +end; + +procedure TfrViewColumnas.RellenarListaColumnas; +var + i : integer; + AIndex : Integer; +begin + with lbColumnas do + begin + Items.BeginUpdate; + Items.Clear; + try + for i := 0 to ViewControlGrid.ColumnCount - 1 do + begin + AddItem(ViewControlGrid.Columns[i].Caption); + AIndex := Items.Count - 1; + Items[AIndex].Checked := ViewControlGrid.Columns[i].Visible; + Items[AIndex].ItemObject := ViewControlGrid.Columns[i]; + end; + finally + Items.EndUpdate; + end; + end; +end; + +procedure TfrViewColumnas.lbColumnasClickCheck(Sender: TObject; + AIndex: Integer; APrevState, ANewState: TcxCheckBoxState); +var + i : integer; +begin + inherited; + { No hacer nada por que el cambio en las columnas se debe ver cuando + el usuario pulse sobre el botón 'Refrescar'. } +{ with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + (ItemObject as TcxGridDBColumn).Visible := (ANewState = cbsChecked);} +end; + +procedure TfrViewColumnas.Execute; +var + AIndex : integer; +begin + inherited; + for AIndex := 0 to lbColumnas.Items.Count - 1 do + with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + (ItemObject as TcxGridDBColumn).Visible := (State = cbsChecked); +end; + +function TfrViewColumnas.GetCheckedColumns: TStringList; +var + AIndex : integer; +begin + result := TStringList.Create; + for AIndex := 0 to lbColumnas.Items.Count - 1 do + if (lbColumnas.Items[AIndex].State = cbsChecked) then + with lbColumnas.Items[AIndex] do + if Assigned(ItemObject) then + Result.Add((ItemObject as TcxGridDBColumn).DataBinding.FieldName); +end; + +procedure TfrViewColumnas.SetModificable(const Value: Boolean); +begin + inherited; + lbColumnas.ReadOnly := not Value; + if lbColumnas.ReadOnly then + lbColumnas.Style.TextColor := clBtnShadow + else + lbColumnas.Style.TextColor := clWindowText; +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm new file mode 100644 index 0000000..916411a --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm @@ -0,0 +1,616 @@ +inherited frViewControlBase: TfrViewControlBase + Width = 699 + Height = 607 + ExplicitWidth = 699 + ExplicitHeight = 607 + object TBXMultiDock1: TTBXMultiDock + Left = 0 + Top = 0 + Width = 222 + Height = 607 + Position = dpLeft + object pnlParametros: TTBXDockablePanel + Left = 0 + Top = 0 + Caption = 'Par'#225'metros del informe' + CloseButton = False + CloseButtonWhenDocked = False + DockedWidth = 218 + DockedHeight = 185 + DockMode = dmCannotFloat + DockPos = 0 + ParentShowHint = False + ShowHint = False + SplitHeight = 261 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object TBXAlignmentPanel2: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 218 + Height = 67 + Margins.Left = 4 + Margins.Top = 4 + Margins.Right = 4 + Margins.Bottom = 4 + Align = alTop + AutoSize = True + TabOrder = 0 + object TBXLink1: TTBXLink + Left = 4 + Top = 4 + Width = 210 + Height = 19 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 29 + ParentColor = True + ParentFont = False + TabOrder = 0 + Wrapping = twPathEllipsis + end + object TBXLink5: TTBXLink + Left = 4 + Top = 23 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actColumnas + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 3 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 1 + Wrapping = twPathEllipsis + end + object TBXLink2: TTBXLink + Left = 4 + Top = 43 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actAgrupaciones + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 0 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 2 + Wrapping = twPathEllipsis + end + end + object pcParametros: TPageControl + Left = 0 + Top = 67 + Width = 218 + Height = 169 + ActivePage = tsAgrupacion + Align = alClient + Style = tsFlatButtons + TabOrder = 1 + object TabSheet5: TTabSheet + Caption = 'TabSheet5' + TabVisible = False + end + object tsColumnas: TTabSheet + Caption = 'tsColumnas' + ImageIndex = 1 + TabVisible = False + inline frViewColumnas1: TfrViewColumnas + Left = 0 + Top = 0 + Width = 210 + Height = 159 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 159 + inherited lbColumnas: TcxCheckListBox + Width = 210 + Height = 130 + ExplicitWidth = 210 + ExplicitHeight = 130 + end + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + end + end + object tsAgrupacion: TTabSheet + Caption = 'tsAgrupacion' + ImageIndex = 2 + TabVisible = False + inline frViewAgrupaciones1: TfrViewAgrupaciones + Left = 0 + Top = 0 + Width = 210 + Height = 159 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 159 + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 210 + ExplicitWidth = 210 + DesignSize = ( + 210 + 77) + inherited Label3: TLabel + Width = 74 + ExplicitWidth = 74 + end + inherited Label2: TLabel + Width = 61 + ExplicitWidth = 61 + end + inherited Label1: TLabel + Width = 95 + ExplicitWidth = 95 + end + inherited TBXButton1: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + inherited TBXButton3: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + inherited TBXButton2: TTBXButton + Width = 97 + ExplicitWidth = 97 + end + end + inherited PopupMenu1: TPopupMenu + Left = 24 + Top = 120 + end + inherited PopupMenu2: TPopupMenu + Left = 56 + Top = 120 + end + inherited PopupMenu3: TPopupMenu + Left = 88 + Top = 120 + end + end + end + end + object TBXAlignmentPanel3: TTBXAlignmentPanel + Left = 0 + Top = 236 + Width = 218 + Height = 30 + Align = alBottom + TabOrder = 2 + object bRefrescar: TButton + Left = 2 + Top = 4 + Width = 100 + Height = 21 + Action = actRefrescar + TabOrder = 0 + end + end + end + object pnlTareas: TTBXDockablePanel + Left = 0 + Top = 288 + Caption = 'Modificar el informe' + CloseButton = False + CloseButtonWhenDocked = False + DockedWidth = 218 + DockMode = dmCannotFloat + DockPos = 288 + FloatingWidth = 128 + FloatingHeight = 128 + SplitHeight = 276 + SplitWidth = 3 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 1 + object TBXPageScroller1: TTBXPageScroller + Left = 0 + Top = 0 + Width = 218 + Height = 281 + Align = alClient + DoubleBuffered = False + Range = 0 + TabOrder = 0 + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 218 + Height = 48 + Margins.Left = 4 + Margins.Top = 4 + Margins.Right = 4 + Margins.Bottom = 4 + Align = alTop + AutoSize = True + TabOrder = 0 + object bFiltros: TTBXLink + Left = 4 + Top = 24 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actFiltros + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 1 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 0 + end + object bSumarios: TTBXLink + Left = 4 + Top = 4 + Width = 210 + Height = 20 + Cursor = crHandPoint + Margins.Top = 2 + Margins.Bottom = 2 + Action = actSumarios + Align = alTop + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ImageIndex = 2 + Images = SmallImages + ParentColor = True + ParentFont = False + TabOrder = 1 + end + end + object pcTareas: TPageControl + Left = 0 + Top = 48 + Width = 218 + Height = 233 + ActivePage = tsFiltros + Align = alClient + Style = tsButtons + TabOrder = 1 + object tsSumarios: TTabSheet + Caption = 'tsSumarios' + ImageIndex = 2 + TabVisible = False + inline frViewSumarios1: TfrViewSumarios + Left = 0 + Top = 0 + Width = 210 + Height = 223 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 223 + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited vgSumarios: TcxVerticalGrid + Width = 210 + Height = 194 + ExplicitWidth = 210 + ExplicitHeight = 194 + end + end + end + object tsFiltros: TTabSheet + Caption = 'tsFiltros' + ImageIndex = 1 + TabVisible = False + inline frViewFiltros1: TfrViewFiltros + Left = 0 + Top = 0 + Width = 210 + Height = 223 + Align = alClient + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 210 + ExplicitHeight = 223 + inherited vgFiltros: TcxVerticalGrid + Width = 196 + Height = 0 + ExplicitWidth = 196 + ExplicitHeight = 0 + inherited vgFiltrosEditorRow1: TcxEditorRow + Properties.EditProperties.OnEditValueChanged = nil + end + end + inherited TBXLabel1: TTBXLabel + Width = 210 + ExplicitWidth = 210 + end + inherited cxFilterControl1: TcxFilterControl + Width = 210 + Height = 164 + ExplicitWidth = 210 + ExplicitHeight = 164 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 193 + Width = 210 + ExplicitTop = 193 + ExplicitWidth = 210 + end + end + end + end + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000794944415478DA + 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 + E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 + E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 + E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 + 454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001574944415478DA + 63FCFFFF3F0308303232826943C3648800109C3F3F9791010780EB433600A4D9 + B1A892E1129300C399C38719144F6E61483F3F17AE2903A88CA001E7053C1918 + B8B9197C448E33F82C68620868296078346B2503EBA3E70C27910CC169809AC5 + 578685FA3718FEE99A332CB29EC9602427C9C00FD4CC0A54B38B9001B53D0BFE + 57F34C60600E2E6160E27AC6F07BF1328605191718D480F27C407C069F0175BD + 0BFF4BE87832243F7067604F2F61F839B38781D53E8AE1D9C5DD0C5B237683D5 + 6C4D6A03D34FCEDF6538776E0E238A017EC9EDFF37CDAD64F8F4FD2F43CFB425 + 60B10BD79EA1847C4A4626C39377BF18E65456611A00F2826F521BDC90379FFE + 30BCFDFC07AEF9F9FBDF70CDA0E8C51A062080CD1074CD38031106900D3970E5 + 3386668206201B326DE72B0CCD2419606494823549D3C780096D450C219ED9E4 + 1B004A30B8722451066C9E5745303B030083AA15F0BB1362F30000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA + 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 + BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 + 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 + 82} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001534944415478DA + 63542C3BFB9F8102C00832A0CE570F43E2E76F06864F5FFF337CFCF20F4C7FFA + FE9FE11750ECF3B7FF0C5FBE41E87FD74BB11B804D334C13CC001060B9033580 + 5CE70B5C9CC3C0B866CDEAFFC1C1217815FEFDF79FE1F79FBF402FFC61F8FDFB + 2F98BD66FB3186794B37611AC0987812CE6E50D881D5C0C4B43C864D7B4EE236 + E044860183C58C0B0C5247F318562FD8CF109AE008A6ADACB8181A1B1B196292 + 7218B61F388D6A0048026CEB030FB861475375C19A4100640008ECDEDDCD101E + 97C9B0E7C8394C03EAEBEB198E1DFB06B60944C334C30C80B9C03F3C85E1C8E9 + CB9806B8BA96E20CC8CBD6DC70B6E1A5870CA72E5C23EC02647A26232343FAD9 + B30C338D8D1974CEDE63387FF526F630C005241A1AE06CF593B719AEDCBC8330 + C0D73F101EBFBF40348CFDE72F5671104031C0C3CB8F61FE9A7D24A744B801AD + B349D70C4F37FFFF53949B1900BA770EC0E001FEA50000000049454E44AE4260 + 82} + Name = 'PngImage29' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 368 + Top = 32 + Bitmap = {} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000CA4944415478DA + 63FCFFFF3F032D01E3D0B7A0A0730DD56C98501EC288D5020375151441908D7F + FFFE63F8FBEF1FC33F10FDF72F980D11FB0F66FF0189FD05D110F68EED9B19CE + EF9C4ED802720C07B177EFDA4AD802720D07D1FBF7EEC06F012586FF03CA1FDC + BF13B705FA400BEE3D7E497464A21B0E02782D38B86F2F555211560B88D50C73 + 083643F00192149363094916906309C916906A095916906209232ECDE45A4CB4 + 05D42A9F88B28092F289A00594964F782DA046F984D3026A954F382DA056F934 + F42B7D00F75AE9FD6BE4FF8E0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022F4944415478DA + 63FCFFFF3F030C303232C2D98686C9FA406A0A101B00F174205E7AFEFCDC8B0C + 44001433B1590034FC30C8E0ECB9737840FCA9C92920AA1F8817822CD902B40C + C85EE6C3C0B095640B8086AF033203818633ACBBCFC0B0EDFA7584AFD6F63234 + 9F9F8B6C16C89268522DF82F593387615B0BD4202323087DEE1CC396F3290CB6 + F3BA19FEBC7DC670BCB49F410B28BC0F8881FE6324C982F346D908D54083FFF7 + A4306C7566C0301C06D02D21CA82648E7360B11EAB140681A8974053C4C19680 + 00B2E120F00A88AF205982D782C6A605FF1FBDFCC3602A3187215CE904C47086 + CD60F90FCB52186E46430C7342337C63521BC3E67955F82D686A5EF85F4C531D + CCCE10B2049A826AB880E51C86F3FB52187EA5400CD5811AFE7BF571B09A6DDB + F783E94D732B19715AF0878B81E1C2B567508562D040069AA83807AE0E64C9B9 + 14081B6438C860032D2906091D4F861DABE6E2B7A0AC2296E1D79FFF0CBF8178 + E2ACA508CB6AC4E086D71F6B83EB01196C62E70F663F79F70BBF05A038A8ED59 + F0BF2A2F96E1EB8F7F0CBFFFFE67F803C4207AFEE21560CB4006FA0784A0C87D + FEFE0F6E38281E08E66498251FBEFE851B8242FF41B0DF7DF98B6238C1540403 + A0D4040AAE379FFEE0B4E0D5C73F1886136D01B225CFDFFFC6B0E0E9BBDF580D + 27C902644B1EBFF905B7E0C1AB5F380D27D902644BEEBDFC09B6E0C88D2F380D + 27CB02644BE6ED7B83D7F0510B86B80522669E040DA7C882330F9E11349C220B + EAEB12081A8E6E01002A731EEF226ACE030000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000000DB4944415478DA + 63FCFFFF3F032D01E3A805245BC0C8C848B68D40B31889B16002908A066211A8 + 9003101FC463AE3D10EB03F144622D0051CD405C0315DA09C4ED4458D20034CB + 91580B40603E102740D97B80B88580250CD8E2139F0520D007C48550F62520CE + 43B304A49805887F936B01084C841A0C02A780B80C974FC8B500045600713894 + BD05887BB0F8E43F29168035A0A96D00E27A28FB3210E7A2FB84121FB001F12F + 205E0EC41150B11D40DC01C42780F827A916D0DD07548F036440D35444937CC0 + 0AD540D39C4CD3B288E6A5296DEB036A83A16F01003B61B4D1E99D5171000000 + 0049454E44AE426082} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001AD4944415478DA + 63FCFFFF3F032D0123C882A55B4ED2C496681F7346B805400E5986FC03EAFFF7 + EF3FC3DFBFFF20F81F88FECFE01456CC706EC734540BE44BCFA168BEA5928C61 + A0DA9DB9782D3C5FA3C1B06CD32186794B3761B7E07E97215CF1EF59460C0C1E + 6F802C1606862FEC0C0B7A6E32A4CEFB0797572C3B8FA21EC43F53A5C6B072CB + 11522CF800369CE1051BC3822597095A70B25C9561CDF6A3245860F31D6C38C3 + 1D668605272E10B4E058A932C3FA9DC7715B8011070F24E0FC052F7630B4899C + C51B07878B141936ED3949BB383858A0C0B065DF29DAC5C1DE5C39861D07CFD0 + 2E0E7666C930EC39728E7671B02D5D8A61FFF10BB48B83CDA9120C874E5EA25D + 1C6C481263387AE60AEDE2606DBC28C389F357312D88F436032BA0340E56440B + 319CBD7C03D382704F5306E58A0B14C7C1D24801860B576F615A10E46AC4A051 + 7399E2385814C6C770F9C61D4C0BFC9D0C18B4EBAF521C070B43F918AEDCC462 + 818F833E835EE3358C3800198A0C08C5014E0B3C6D75E1B51184FE07A9A9D0C4 + 20B5D67F863F2835D83F06E4AA1DAB056ED6DAE08A825A00C382DE290BA96638 + 0CC02DA02500004F8255EF277FDA8C0000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022E4944415478DA + 63FCFFFF3F032D0123DD2C60646404D351F98B2700A97C209EB86C626C013186 + E0D203321B9B05FF974E886130F2C86238BF733A23911660D583628152F93930 + C3F2E735063B4D558699EB17327CD04F212A1870E9B9D769C48862419DAF1EC3 + EE352BC0FCEB378E31E4D54C4231E8DB8FFF0C5F81184243F8DF80F4CF3B6BE0 + 7AB8F47BC0E21F386E62B7E0E6C5730C3B372F6070F74D6050D7372268F8F79F + 0C0C7FDF5C60B8737E11838C761CC3933FBA0C7FFE32307CE1C661013680CF70 + 30FBE77F381B64380860B580DCA4880BA058B076F7C5FFC1AEFA446BFEF70FE4 + DA7F0C7F804E86D040FC17C25EB7F338C3BCA59B18CEED9886DF02C6C49328FC + C94EEF095AECE76CCEB069EF49122CB87082E1C48C0C068B191718A48EE6313C + BD7592E1D8B16F0C56565C6035C8EC298B7730783998326C3B709A780B4E6418 + 80D9200B1678BC60A8AA6D6358BD603FD850693573381B66819BAD31C3AEC367 + 715B00520403B9FB04512C3C9AAACB70FBF16EB0253000B20006CEDD3DC4E064 + 69C0B0EFF805FC16E4C47A60781F990D7239B205C83EB033D3633874EA12F916 + 201B8ECD020B432D8613E7AFE1B7C048D98EE8E47AD99A1B85AF7FFE3EC399CB + 37280B2264F64C60297C0648CF3E7B9661A6B13183F699BB0C17AEDDA2AE05E9 + 40C3C16CA005EA276F335CB97987B854440C608DF344E1E3B5C0DF511792DDC1 + D9FE1F1A1BA938C0210F03382DF0B6D36298B36A2F493EC005B05AD0DA3B932A + 86C3008A05B40200F47739EF77A04B0C0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 328 + Top = 32 + Bitmap = {} + end + object EditorActionList: TActionList + Images = SmallImages + Left = 288 + Top = 32 + object actAgrupaciones: TAction + Category = 'Tareas' + Caption = 'Agrupaciones' + ImageIndex = 0 + OnExecute = actAgrupacionesExecute + end + object actColumnas: TAction + Category = 'Tareas' + Caption = 'Columnas' + ImageIndex = 3 + OnExecute = actColumnasExecute + end + object actSumarios: TAction + Category = 'Tareas' + Caption = 'Res'#250'menes' + ImageIndex = 2 + OnExecute = actSumariosExecute + end + object actFiltros: TAction + Category = 'Tareas' + Caption = 'Filtros' + ImageIndex = 1 + OnExecute = actFiltrosExecute + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Refrescar' + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas new file mode 100644 index 0000000..6104911 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas @@ -0,0 +1,179 @@ +unit uViewControlBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, TBXDkPanels, StdCtrls, ComCtrls, TB2Dock, + uViewAgrupaciones, uCustomView, uViewColumnas, ImgList, PngImageList, + ActnList, uViewControlGrid, uBizControlesBase, uViewSumarios, + uViewParametrosControlGrid, uViewFiltros, cxStyles; + +type + IViewControlBase = interface(IViewBase) + ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + property Modificable : Boolean read GetModificable write SetModificable; + + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + + function GetOnViewChanged : TNotifyEvent; + procedure SetOnViewChanged(const Value : TNotifyEvent); + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + end; + + TfrViewControlBase = class(TfrViewBase, IViewControlBase) + TBXMultiDock1: TTBXMultiDock; + pnlParametros: TTBXDockablePanel; + TBXAlignmentPanel2: TTBXAlignmentPanel; + TBXLink1: TTBXLink; + TBXLink5: TTBXLink; + TBXLink2: TTBXLink; + pcParametros: TPageControl; + TabSheet5: TTabSheet; + tsColumnas: TTabSheet; + tsAgrupacion: TTabSheet; + TBXAlignmentPanel3: TTBXAlignmentPanel; + bRefrescar: TButton; + pnlTareas: TTBXDockablePanel; + TBXPageScroller1: TTBXPageScroller; + TBXAlignmentPanel1: TTBXAlignmentPanel; + bFiltros: TTBXLink; + bSumarios: TTBXLink; + pcTareas: TPageControl; + tsSumarios: TTabSheet; + tsFiltros: TTabSheet; + frViewColumnas1: TfrViewColumnas; + frViewAgrupaciones1: TfrViewAgrupaciones; + SmallImages: TPngImageList; + LargeImages: TPngImageList; + EditorActionList: TActionList; + actAgrupaciones: TAction; + actColumnas: TAction; + actSumarios: TAction; + actFiltros: TAction; + frViewSumarios1: TfrViewSumarios; + actRefrescar: TAction; + frViewFiltros1: TfrViewFiltros; + procedure actColumnasExecute(Sender: TObject); + procedure actSumariosExecute(Sender: TObject); + procedure actFiltrosExecute(Sender: TObject); + procedure actAgrupacionesExecute(Sender: TObject); + protected + FControl : IBizControlBase; + FOnViewChanged : TNotifyEvent; + FModificable : Boolean; + procedure ActivarTarea (const ATarea : Integer); virtual; + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + function GetOnViewChanged : TNotifyEvent; virtual; + procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; + function GetModificable: Boolean; virtual; + procedure SetModificable(const Value: Boolean); virtual; + public + property Modificable : Boolean read GetModificable write SetModificable; + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + property Control: IBizControlBase read GetControl write SetControl; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +const + COLUMNAS = 1; + AGRUPACIONES = 2; + SUMARIOS = 3; + FILTROS = 4; + + +procedure TfrViewControlBase.actColumnasExecute(Sender: TObject); +begin + inherited; + ActivarTarea(COLUMNAS); + frViewColumnas1.Refresh; +end; + +procedure TfrViewControlBase.ActivarTarea(const ATarea: Integer); +begin + case ATarea of + COLUMNAS : pcParametros.ActivePage := tsColumnas; + AGRUPACIONES : pcParametros.ActivePage := tsAgrupacion; + SUMARIOS : pcTareas.ActivePage := tsSumarios; + FILTROS : pcTareas.ActivePage := tsFiltros; + end; +end; + +function TfrViewControlBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +procedure TfrViewControlBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + frViewColumnas1.Refresh; + frViewAgrupaciones1.Refresh; + + // ¿Es modificable el control? + Self.Modificable := FControl.EsModificable; +end; + +procedure TfrViewControlBase.actSumariosExecute(Sender: TObject); +begin + inherited; + ActivarTarea(SUMARIOS); + frViewSumarios1.Refresh; +end; + +procedure TfrViewControlBase.actFiltrosExecute(Sender: TObject); +begin + inherited; + ActivarTarea(FILTROS); + frViewFiltros1.Refresh; + end; + +procedure TfrViewControlBase.actAgrupacionesExecute(Sender: TObject); +begin + inherited; + ActivarTarea(AGRUPACIONES); + frViewAgrupaciones1.Refresh; +end; + +function TfrViewControlBase.GetOnViewChanged: TNotifyEvent; +begin + Result := FOnViewChanged; +end; + +procedure TfrViewControlBase.SetOnViewChanged(const Value: TNotifyEvent); +begin + FOnViewChanged := Value; +end; + +constructor TfrViewControlBase.Create(AOwner: TComponent); +begin + inherited; + FModificable := False; + pcParametros.ActivePage := tsColumnas; + pcTareas.ActivePage := tsSumarios; + FOnViewChanged := nil; +end; + +function TfrViewControlBase.GetModificable: Boolean; +begin + Result := FModificable; +end; + +procedure TfrViewControlBase.SetModificable(const Value: Boolean); +begin + FModificable := Value; + + frViewColumnas1.Modificable := FModificable; + frViewAgrupaciones1.Modificable := FModificable; +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm new file mode 100644 index 0000000..60e526d --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm @@ -0,0 +1,149 @@ +inherited frViewControlGrid: TfrViewControlGrid + object dxPrintStyleManager1: TdxPrintStyleManager + CurrentStyle = dxPrintStyleManager1Style1 + PageSetupDialog = dxPageSetupDialog1 + Version = 0 + Left = 16 + Top = 16 + object dxPrintStyleManager1Style1: TdxPSPrintStyle + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 20000 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 20000 + PrinterPage.PageFooter.CenterTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + '') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + BuiltInStyle = True + end + end + object dxPageSetupDialog1: TdxPageSetupDialog + ButtonsVisible = [psbStyleOptions] + Left = 48 + Top = 16 + end + object dxPSEngineController1: TdxPSEngineController + LookAndFeel = pslfOffice11 + UseNativeLookAndFeel = False + Left = 80 + Top = 16 + end + object dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxPrinterLinkcxGrid + PreviewOptions.ShowExplorer = True + PreviewOptions.WindowState = wsMaximized + Version = 0 + Left = 112 + Top = 16 + object dxPrinterLinkcxGrid: TdxGridReportLink + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.GrayShading = True + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + StyleManager = dxPrintStyleManager1 + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas new file mode 100644 index 0000000..4303660 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas @@ -0,0 +1,284 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewControlGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, dxPScxCommon, dxPScxGridLnk, + dxPgsDlg; + +type + IViewControlGrid = interface(IViewBase) + ['{566F315A-70A6-4BCE-8A02-0C7E10FF311A}'] + procedure ExpandirTodo; + procedure ContraerTodo; + procedure AjustarAncho; + procedure Preview; + procedure Print; + procedure PrintSetup; + procedure GotoFirst; + procedure GotoLast; + + function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; + + function GetFocusedView : TcxGridDBTableView; + property FocusedView : TcxGridDBTableView read GetFocusedView; + + function GetColumnCount: Integer; + function GetColumns(Index: Integer): TcxGridDBColumn; + property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; + property ColumnCount : Integer read GetColumnCount; + + function GetGroupedColumnCount: Integer; + function GetGroupedColumns(index: Integer): TcxGridColumn; + property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; + property GroupedColumnCount : Integer read GetGroupedColumnCount; + + function GetOnViewChanged : TNotifyEvent; + procedure SetOnViewChanged(const Value : TNotifyEvent); + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + + function GetViewProperties: String; + procedure SetViewProperties(const Value: String); + property ViewProperties: String read GetViewProperties write SetViewProperties; + + function GetFilterValueList(index: Integer) : TStringList; + property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; + + function GetOnFilterChanged: TNotifyEvent; + procedure SetOnFilterChanged(const Value: TNotifyEvent); + property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; + end; + + TfrViewControlGrid = class(TfrViewBase, IViewControlGrid) + dxPrintStyleManager1: TdxPrintStyleManager; + dxPrintStyleManager1Style1: TdxPSPrintStyle; + dxPageSetupDialog1: TdxPageSetupDialog; + dxPSEngineController1: TdxPSEngineController; + dxComponentPrinter: TdxComponentPrinter; + dxPrinterLinkcxGrid: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + private + protected + FOnViewChanged : TNotifyEvent; + FOnFilterChanged : TNotifyEvent; + function GetColumnCount: Integer; + function GetColumns(Index: Integer): TcxGridDBColumn; + function GetGroupedColumnCount: Integer; + function GetGroupedColumns(Index: Integer): TcxGridColumn; + function GetFocusedView : TcxGridDBTableView; virtual; abstract; + function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; + function GetOnViewChanged : TNotifyEvent; virtual; + procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; + function GetOnFilterChanged: TNotifyEvent; virtual; + procedure SetOnFilterChanged(const Value: TNotifyEvent); virtual; + function GetViewProperties: String; virtual; + procedure SetViewProperties(const Value: String); virtual; + function GetFilterValueList(index: Integer) : TStringList; virtual; + procedure ActivarEventos; virtual; + procedure DesactivarEventos; virtual; + public + procedure Preview; virtual; + procedure Print; virtual; + procedure PrintSetup; virtual; + procedure GotoFirst; virtual; + procedure GotoLast; virtual; + procedure ExpandirTodo; virtual; + procedure ContraerTodo; virtual; + procedure AjustarAncho; virtual; + property FocusedView : TcxGridDBTableView read GetFocusedView; + property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; + property ColumnCount : Integer read GetColumnCount; + property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; + property GroupedColumnCount : Integer read GetGroupedColumnCount; + property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; + property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; + property ViewProperties: String read GetViewProperties write SetViewProperties; + property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +{$R *.dfm} + +{ TfrViewControlGrid } + +procedure TfrViewControlGrid.ActivarEventos; +begin + // +end; + +procedure TfrViewControlGrid.AjustarAncho; +begin + FocusedView.ApplyBestFit; +end; + +procedure TfrViewControlGrid.ContraerTodo; +begin + FocusedView.ViewData.Collapse(True); +end; + +constructor TfrViewControlGrid.Create(AOwner: TComponent); +begin + inherited; + FOnViewChanged := nil; +end; + +procedure TfrViewControlGrid.DesactivarEventos; +begin + // +end; + +procedure TfrViewControlGrid.ExpandirTodo; +begin + FocusedView.ViewData.Expand(True); +end; + +function TfrViewControlGrid.GetColumnByCaption( + const ACaption: String): TcxGridDBColumn; +var + i : integer; +begin + Result := NIL; + for i := 0 to FocusedView.ColumnCount - 1 do + if FocusedView.Columns[i].Caption = ACaption then + begin + Result := FocusedView.Columns[i]; + Break; + end; +end; + +function TfrViewControlGrid.GetColumnCount: Integer; +begin + Result := FocusedView.ColumnCount; +end; + +function TfrViewControlGrid.GetColumns(Index: Integer): TcxGridDBColumn; +begin + Result := FocusedView.Columns[Index]; +end; + +function TfrViewControlGrid.GetFilterValueList( + index: Integer): TStringList; +var + AValueList : TcxDataFilterValueList; + i : Integer; +begin + Result := TStringList.Create; + AValueList := TcxDataFilterValueList.Create(FocusedView.DataController.Filter); + try + AValueList.Load(Columns[Index].Index); + for i := 0 to AValueList.Count - 1 do + Result.Add(AValueList[i].DisplayText); + finally + FreeAndNil(AValueList); + end; +end; + +function TfrViewControlGrid.GetGroupedColumnCount: Integer; +begin + Result := FocusedView.GroupedColumnCount; +end; + +function TfrViewControlGrid.GetGroupedColumns( + Index: Integer): TcxGridColumn; +begin + Result := FocusedView.GroupedColumns[Index]; +end; + +function TfrViewControlGrid.GetOnFilterChanged: TNotifyEvent; +begin + Result := FOnFilterChanged; +end; + +function TfrViewControlGrid.GetOnViewChanged: TNotifyEvent; +begin + Result := FOnViewChanged; +end; + +function TfrViewControlGrid.GetViewProperties: String; +var + AStream : TStringStream; +begin + DesactivarEventos; + AStream := TStringStream.Create(''); + try + FocusedView.StoreToStream(AStream, [gsoUseFilter,gsoUseSummary], FocusedView.Name); + Result := AStream.DataString; + finally + AStream.Free; + ActivarEventos; + end; +end; + +procedure TfrViewControlGrid.GotoFirst; +begin + FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewControlGrid.GotoLast; +begin + FocusedView.DataController.GotoLast; +end; + +procedure TfrViewControlGrid.Preview; +begin + dxPrinterLinkcxGrid.Preview; +end; + +procedure TfrViewControlGrid.Print; +begin + dxPrinterLinkcxGrid.Print(True, nil); +end; + +procedure TfrViewControlGrid.PrintSetup; +begin + dxPrinterLinkcxGrid.PageSetup; +end; + +procedure TfrViewControlGrid.SetOnFilterChanged(const Value: TNotifyEvent); +begin + FOnFilterChanged := Value; +end; + +procedure TfrViewControlGrid.SetOnViewChanged(const Value: TNotifyEvent); +begin + FOnViewChanged := Value; +end; + +procedure TfrViewControlGrid.SetViewProperties(const Value: String); +var + AStream : TStringStream; +begin + DesactivarEventos; + AStream := TStringStream.Create(Value); + try + AStream.Position := 0; + FocusedView.RestoreFromStream(AStream, True, True, [gsoUseFilter,gsoUseSummary], + FocusedView.Name); + finally + AStream.Free; + ActivarEventos; + end; +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm new file mode 100644 index 0000000..0afad52 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm @@ -0,0 +1,269 @@ +inherited frViewControlesBase: TfrViewControlesBase + object EasyListview: TEasyListview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + BevelKind = bkTile + CacheDoubleBufferBits = False + CellSizes.List.AutoSize = True + EditManager.Font.Charset = DEFAULT_CHARSET + EditManager.Font.Color = clWindowText + EditManager.Font.Height = -11 + EditManager.Font.Name = 'Tahoma' + EditManager.Font.Style = [] + UseDockManager = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + GroupFont.Charset = DEFAULT_CHARSET + GroupFont.Color = clWindowText + GroupFont.Height = -11 + GroupFont.Name = 'Tahoma' + GroupFont.Style = [] + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + ImagesLarge = ReportImages + PaintInfoGroup.BandColor = clGradientActiveCaption + PaintInfoGroup.BandThickness = 2 + PaintInfoGroup.CaptionIndent = 5 + PaintInfoGroup.Expandable = False + PaintInfoGroup.MarginBottom.CaptionIndent = 4 + ParentFont = False + Selection.AlphaBlend = True + TabOrder = 0 + View = elsTile + OnItemContextMenu = EasyListviewItemContextMenu + OnItemDblClick = EasyListviewItemDblClick + OnItemSelectionChanged = EasyListviewItemSelectionChanged + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 115 + Top = 96 + Bitmap = {} + end + object dsDataTable: TDADataSource + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk new file mode 100644 index 0000000..0afad52 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk @@ -0,0 +1,269 @@ +inherited frViewControlesBase: TfrViewControlesBase + object EasyListview: TEasyListview + Left = 0 + Top = 0 + Width = 294 + Height = 214 + Align = alClient + BevelKind = bkTile + CacheDoubleBufferBits = False + CellSizes.List.AutoSize = True + EditManager.Font.Charset = DEFAULT_CHARSET + EditManager.Font.Color = clWindowText + EditManager.Font.Height = -11 + EditManager.Font.Name = 'Tahoma' + EditManager.Font.Style = [] + UseDockManager = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + GroupFont.Charset = DEFAULT_CHARSET + GroupFont.Color = clWindowText + GroupFont.Height = -11 + GroupFont.Name = 'Tahoma' + GroupFont.Style = [] + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + ImagesLarge = ReportImages + PaintInfoGroup.BandColor = clGradientActiveCaption + PaintInfoGroup.BandThickness = 2 + PaintInfoGroup.CaptionIndent = 5 + PaintInfoGroup.Expandable = False + PaintInfoGroup.MarginBottom.CaptionIndent = 4 + ParentFont = False + Selection.AlphaBlend = True + TabOrder = 0 + View = elsTile + OnItemContextMenu = EasyListviewItemContextMenu + OnItemDblClick = EasyListviewItemDblClick + OnItemSelectionChanged = EasyListviewItemSelectionChanged + end + object ReportImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002024944415478DA + BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 + 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 + B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E + E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 + AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 + FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 + 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE + B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 + C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 + 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A + 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D + C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C + 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 + 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 + 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 + 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 + A47A98E90000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002CB4944415478DA + BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C + 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 + 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 + E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 + 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 + 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 + A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 + 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 + E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 + 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D + 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 + 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD + 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE + 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 + FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 + 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 + A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 + DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D + 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 + 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC + CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E + 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 + 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002B14944415478DA + BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 + D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 + DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 + 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 + DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 + 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E + 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 + B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 + 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 + 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D + 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD + D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 + 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF + CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D + 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB + 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 + C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 + 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C + F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A + BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC + 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 + F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002E14944415478DA + 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 + 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A + 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 + 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD + 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC + 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 + F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F + DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 + B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 + 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 + 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF + 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E + C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E + 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 + 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 + 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 + C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 + 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 + 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 + 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B + 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF + 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 + 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 + 7DF1720000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001C64944415478DA + 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 + F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 + 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC + 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A + 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 + 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 + 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 + D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 + 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 + CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 + 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB + 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 + 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 + 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 + BE8AE7E7F700C7D10000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020E4944415478DA + 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF + 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF + E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 + 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 + C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 + 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 + C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 + E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C + 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 + 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 + 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 + B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F + 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F + DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD + D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 + CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 + 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000003474944415478DA + BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 + CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 + 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 + 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D + D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 + 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F + 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A + E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D + 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 + F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 + E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 + 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 + E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 + C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD + 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 + DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 + D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 + 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 + 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F + A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 + 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 + 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 + 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C + C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 + 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 + 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 + 5FA7D4B1F664B3FE1D0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001084944415478DA + 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 + 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D + 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 + CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 + BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 + BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED + C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 + D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF + 42005A1A11E70A945A890000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 115 + Top = 96 + Bitmap = {} + end + object dsDataTable: TDADataSource + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas new file mode 100644 index 0000000..4c6cddb --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas @@ -0,0 +1,210 @@ +unit uViewControlesBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, cxInplaceContainer, cxDBTL, + cxControls, cxTLData, Menus, uBizControlesBase, DB, uDADataTable, + ImgList, PngImageList, uDAInterfaces, MPCommonObjects, MPCommonUtilities, + EasyListview; + +type + IViewControlesBase = interface(IViewBase) + ['{D991FCEC-08DB-4F77-BD57-FA04B3C88788}'] + function GetDblClick: TNotifyEvent; + procedure SetDblClick(const Value: TNotifyEvent); + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + + function GetPopupMenu: TPopupMenu; + procedure SetPopupMenu(const Value: TPopupMenu); + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + + function GetControl: IBizControlBase; + procedure SetControl(const Value: IBizControlBase); + property Control: IBizControlBase read GetControl write SetControl; + + procedure Refresh; + end; + + TfrViewControlesBase = class(TfrViewBase, IViewControlesBase) + ReportImages: TPngImageList; + dsDataTable: TDADataSource; + EasyListview: TEasyListview; +{ procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; + Button: TEasyMouseButton; MousePos: TPoint; + HitInfo: TEasyHitInfoItem);} + + procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; + Button: TCommonMouseButton; MousePos: TPoint; HitInfo: TEasyHitInfoItem); + + procedure EasyListviewItemContextMenu(Sender: TCustomEasyListview; + HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu; + var Handled: Boolean); + + procedure EasyListviewItemSelectionChanged(Sender: TCustomEasyListview; + Item: TEasyItem); + protected + FControl : IBizControlBase; + FOnDblClick: TNotifyEvent; + FPopupMenu: TPopupMenu; + + function GetDblClick: TNotifyEvent; virtual; + procedure SetDblClick(const Value: TNotifyEvent); virtual; + + function GetPopupMenu: TPopupMenu; virtual; + procedure SetPopupMenu(const Value: TPopupMenu); virtual; + + function GetControl: IBizControlBase; virtual; + procedure SetControl(const Value: IBizControlBase); virtual; + public + procedure Refresh; override; + property Control: IBizControlBase read GetControl write SetControl; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + end; + +implementation + +{$R *.dfm} + +{ TfrViewControlesBase } + +function TfrViewControlesBase.GetControl: IBizControlBase; +begin + Result := FControl; +end; + +function TfrViewControlesBase.GetDblClick: TNotifyEvent; +begin + Result := FOnDblClick; +end; + +function TfrViewControlesBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +procedure TfrViewControlesBase.Refresh; +var + GroupNoModificable: TEasyGroup; + GroupModificable: TEasyGroup; + AItem : TEasyItem; + i: Integer; + IDSelected : string; +begin + inherited; + + if not Assigned(FControl) then + Exit; + + EasyListview.BeginUpdate; + try + IDSelected := ''; + if EasyListview.Groups.Count > 0 then + begin + for i := 0 to EasyListview.Items.Count - 1 do + if EasyListview.Items[i].Selected then + IDSelected := EasyListview.Items[i].Captions[3]; // Columna ID + EasyListview.Groups.Clear; + end; + + GroupNoModificable := EasyListview.Groups.Add; + GroupNoModificable.Caption := 'Controles generales'; + GroupNoModificable.Bold := True; + + GroupModificable := EasyListview.Groups.Add; + GroupModificable.Caption := 'Controles personalizados'; + GroupModificable.Bold := True; + + with FControl do + begin + FControl.First; + for i := 0 to (FControl.RecordCount - 1) do + begin + if EsModificable then + AItem := GroupModificable.Items.Add(NIL) + else + AItem := GroupNoModificable.Items.Add(NIL); + + AItem.ImageIndex := ICONO; + AItem.Captions[0] := NOMBRE; + AItem.Captions[1] := DESCRIPCION; + AItem.Captions[3] := IntToStr(ID); + AItem.Captions[4] := MODIFICABLE; + AItem.DetailCount := 2; + AItem.Details[0] := 0; // Columna NOMBRE; + AItem.Details[1] := 1; // Columna DESCRIPCION; + + AItem.Selected := (IDSelected = AItem.Captions[3]); + FControl.Next; + end; + end; + finally + EasyListview.Sort.SortAll; + EasyListview.EndUpdate; + + if (Length(IDSelected) = 0) and (EasyListview.Items.Count > 0) then + EasyListview.Items[0].Selected := True; + + for i := 0 to EasyListview.Items.Count - 1 do + if EasyListview.Items[i].Selected then + begin + FControl.First; + FControl.Locate('ID', StrToInt(EasyListview.Items[i].Captions[3]), []); + Break; + end; + + EasyListview.ShowGroupMargins := True; + end +end; + +procedure TfrViewControlesBase.SetControl(const Value: IBizControlBase); +begin + FControl := Value; + dsDataTable.DataTable := Value.DataTable; +end; + +procedure TfrViewControlesBase.SetDblClick(const Value: TNotifyEvent); +begin + FOnDblClick := Value; +end; + +procedure TfrViewControlesBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; +end; + +procedure TfrViewControlesBase.EasyListviewItemContextMenu( + Sender: TCustomEasyListview; HitInfo: TEasyHitInfoItem; + WindowPoint: TPoint; var Menu: TPopupMenu; var Handled: Boolean); +begin + inherited; + if Assigned(FPopupMenu) then + Menu := FPopupMenu; +end; + +procedure TfrViewControlesBase.EasyListviewItemDblClick( + Sender: TCustomEasyListview; Button: TCommonMouseButton; MousePos: TPoint; + HitInfo: TEasyHitInfoItem); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Self); +end; + +procedure TfrViewControlesBase.EasyListviewItemSelectionChanged( + Sender: TCustomEasyListview; Item: TEasyItem); +begin + inherited; + if not Item.Destroying then + begin + FControl.First; + FControl.Locate('ID', StrToInt(Item.Captions[3]), []); + end; +end; + +end. + + diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm new file mode 100644 index 0000000..2599dfe --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm @@ -0,0 +1,115 @@ +inherited frViewFiltros: TfrViewFiltros + Width = 209 + Height = 462 + object vgFiltros: TcxVerticalGrid + Left = 0 + Top = 229 + Width = 216 + Height = 233 + Enabled = False + Images = PngImageList1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + OptionsView.CellAutoHeight = True + OptionsView.CellEndEllipsis = True + OptionsView.ScrollBars = ssVertical + OptionsView.RowHeaderWidth = 97 + OptionsView.GridLines = vglVertical + OptionsView.ValueMinWidth = 75 + TabOrder = 0 + Visible = False + object vgFiltrosEditorRow1: TcxEditorRow + Properties.EditPropertiesClassName = 'TcxComboBoxProperties' + Properties.EditProperties.OnEditValueChanged = vgFiltrosEditorRow1EditPropertiesEditValueChanged + Properties.DataBinding.ValueType = 'String' + Properties.Value = Null + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 209 + Height = 29 + Align = alTop + Caption = 'Filtros' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object cxFilterControl1: TcxFilterControl + Left = 0 + Top = 29 + Width = 209 + Height = 403 + Align = alClient + Color = clWindow + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + TabOrder = 2 + TabStop = True + end + object TBXAlignmentPanel3: TTBXAlignmentPanel + Left = 0 + Top = 432 + Width = 209 + Height = 30 + Align = alBottom + Margins.Left = 3 + Margins.Top = 3 + Margins.Right = 3 + Margins.Bottom = 3 + TabOrder = 3 + object bRefrescar: TButton + Left = 4 + Top = 5 + Width = 100 + Height = 21 + Caption = 'Aplicar filtro' + TabOrder = 0 + OnClick = bRefrescarClick + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 216 + Top = 104 + object cxStyleNombreColumna: TcxStyle + AssignedValues = [svTextColor] + TextColor = clActiveCaption + end + object cxStyleCategoria: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clHighlight + end + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 88 + Top = 104 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas new file mode 100644 index 0000000..88da478 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas @@ -0,0 +1,197 @@ +unit uViewFiltros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewParametrosControlGrid, cxStyles, cxGraphics, cxEdit, + TBXDkPanels, cxControls, cxInplaceContainer, cxVGrid, cxDropDownEdit, + ImgList, PngImageList, cxFilterControl, uViewControlGrid, + cxDBFilterControl, StdCtrls; + +type + IViewFiltros = interface(IViewParametrosControlGrid) + ['{92FA8AF8-D0D8-4BC6-9611-CF3094CD4385}'] + end; + + TfrViewFiltros = class(TfrViewParametrosControlGrid, IViewFiltros) + vgFiltros: TcxVerticalGrid; + TBXLabel1: TTBXLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyleNombreColumna: TcxStyle; + cxStyleCategoria: TcxStyle; + PngImageList1: TPngImageList; + vgFiltrosEditorRow1: TcxEditorRow; + cxFilterControl1: TcxFilterControl; + TBXAlignmentPanel3: TTBXAlignmentPanel; + bRefrescar: TButton; + procedure vgFiltrosEditorRow1EditPropertiesEditValueChanged( + Sender: TObject); + procedure bRefrescarClick(Sender: TObject); + protected + procedure RellenarFiltros; + procedure SetViewControlGrid(const Value: IViewControlGrid); override; + procedure SetModificable(const Value: Boolean); override; + public + procedure Execute; override; + procedure Refresh; override; + end; + +implementation + +{$R *.dfm} + +uses + cxCustomData, cxFilter, cxGridDBDataDefinitions, + cxGridDBTableView, cxGridCustomTableView, cxFilterConsts, cxClasses, + cxDBData; + +{ TfrViewFiltros } + +procedure TfrViewFiltros.Execute; +begin + inherited; + cxFilterControl1.ApplyFilter; + FViewControlGrid.FocusedView.DataController.Filter.Active := True; +end; + +procedure TfrViewFiltros.Refresh; +begin + inherited; + cxFilterControl1.UpdateFilter; + SetModificable(Modificable); + //RellenarFiltros; +end; + +procedure TfrViewFiltros.RellenarFiltros; +var + i : Integer; + ACaption : String; + ARow : TcxEditorRow; + AColumn : TcxGridDBColumn; + AValueList : TcxDataFilterValueList; + + procedure GetFilterStrings(AStrings: TStrings; + AValueList: TcxDataFilterValueList); + var + I: Integer; + S: string; + begin + AStrings.BeginUpdate; + try + AStrings.Clear; + for I := 0 to AValueList.Count - 1 do + begin + S := AValueList[I].DisplayText; + AStrings.AddObject(S, TObject(AValueList[I])); + end; + finally + AStrings.EndUpdate; + end; + end; + + procedure AddRow; + begin + ARow := vgFiltros.Add(TcxEditorRow) as TcxEditorRow; + ARow.Parent := NIL; + ARow.Properties.Caption := AColumn.Caption; + ARow.Properties.EditPropertiesClassName := 'TcxComboBoxProperties'; + with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do + begin + ARow.Properties.ImageIndex := 0; + ImmediateDropDown := True; + ImmediatePost := True; + ImmediateUpdateText := True; + PostPopupValueOnTab := True; + OnEditValueChanged := vgFiltrosEditorRow1EditPropertiesEditValueChanged; + GetFilterStrings(Items, AValueList); + end; + end; + +begin +{ vgFiltros.BeginUpdate; + try + vgFiltros.ClearRows; + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[i]); + AValueList := ViewControlGrid.FilterValueList[AColumn.Index]; + AddRow; + end; + finally + vgFiltros.EndUpdate; + end;} +end; + +procedure TfrViewFiltros.SetViewControlGrid(const Value: IViewControlGrid); +begin + inherited; + cxFilterControl1.LinkComponent := FViewControlGrid.FocusedView; +end; + +procedure TfrViewFiltros.vgFiltrosEditorRow1EditPropertiesEditValueChanged( + Sender: TObject); +var + ARow : TcxEditorRow; + AColumn : TcxGridDBColumn; + AItemIndex : Integer; +begin +{ ARow := TcxEditorRow(vgFiltros.FocusedRow); + + if not Assigned(ARow) then + Exit; + + with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do + AItemIndex := Items.IndexOf(ARow.Properties.Value); + + AColumn := ViewControlGrid.GetColumnByCaption(ARow.Properties.Caption); + + if Assigned(AColumn) and (AItemIndex <> -1) then + begin + AColumn.DataBinding.Filter.BeginUpdate; + try + with ViewControlGrid.FilterValueList[AColumn.Index][AItemIndex]^ do + begin + if not (Kind in [fviAll, fviCustom]) then + AColumn.DataBinding.Filter.Active := True; + case Kind of + fviAll: + begin + AColumn.Filtered := False; + ARow.Properties.Value := ''; + end; + fviCustom: + ViewControlGrid.FocusedView.Filtering.RunCustomizeDialog(AColumn); + fviBlanks: + AColumn.DataBinding.AddToFilter(nil, foEqual, Value, + cxGetResourceStringNet(cxSFilterBlankCaption)); + fviNonBlanks: + AColumn.DataBinding.AddToFilter(nil, foNotEqual, Value, + cxGetResourceStringNet(cxSFilterBlankCaption)); + fviValue, fviMRU: + begin + AColumn.DataBinding.AddToFilter(nil, foEqual, Value, DisplayText); + AColumn.DataBinding.FilterMRUValueItems.Add(Value, DisplayText); + end; + end; + end; + finally + AColumn.DataBinding.Filter.EndUpdate; + end; + end;} +end; + +procedure TfrViewFiltros.bRefrescarClick(Sender: TObject); +begin + inherited; + Execute; +end; + +procedure TfrViewFiltros.SetModificable(const Value: Boolean); +begin + inherited; + vgFiltros.Enabled := Value; +end; + +end. + diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm new file mode 100644 index 0000000..e4accb4 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm @@ -0,0 +1,3 @@ +inherited frViewParametrosControlGrid: TfrViewParametrosControlGrid + ParentFont = True +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas new file mode 100644 index 0000000..94dc1b7 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas @@ -0,0 +1,82 @@ +unit uViewParametrosControlGrid; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uViewControlGrid; + +type + IViewParametrosControlGrid = interface(IViewBase) + ['{A060605B-AFB1-4F6F-8273-7739C4C4905B}'] + function GetModificable: Boolean; + procedure SetModificable(const Value: Boolean); + property Modificable : Boolean read GetModificable write SetModificable; + + procedure SetViewControlGrid (const Value : IViewControlGrid); + function GetViewControlGrid : IViewControlGrid; + property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; + + procedure Execute; + procedure Refresh; + end; + + TfrViewParametrosControlGrid = class(TfrViewBase, IViewParametrosControlGrid) + protected + FViewControlGrid : IViewControlGrid; + FModificable : Boolean; + function GetModificable: Boolean; virtual; + procedure SetModificable(const Value: Boolean); virtual; + procedure SetViewControlGrid (const Value : IViewControlGrid); virtual; + function GetViewControlGrid : IViewControlGrid; virtual; + public + property Modificable : Boolean read GetModificable write SetModificable; + property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; + procedure Execute; virtual; + procedure Refresh; override; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewParametrosControlGrid } + + +procedure TfrViewParametrosControlGrid.Execute; +begin + if not Assigned(ViewControlGrid) then + raise Exception.Create('Vista para el control no asignada (Execute)'); +end; + +function TfrViewParametrosControlGrid.GetModificable: Boolean; +begin + Result := FModificable; +end; + +function TfrViewParametrosControlGrid.GetViewControlGrid: IViewControlGrid; +begin + Result := FViewControlGrid; +end; + +procedure TfrViewParametrosControlGrid.Refresh; +begin + inherited; + if not Assigned(ViewControlGrid) then + raise Exception.Create('Vista para el control no asignada (Refresh)'); +end; + +procedure TfrViewParametrosControlGrid.SetModificable( + const Value: Boolean); +begin + FModificable := Value; +end; + +procedure TfrViewParametrosControlGrid.SetViewControlGrid( + const Value: IViewControlGrid); +begin + FViewControlGrid := Value; +end; + +end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm new file mode 100644 index 0000000..03232be --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm @@ -0,0 +1,174 @@ +inherited frViewPeriodoFechas: TfrViewPeriodoFechas + Width = 253 + Height = 351 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 50 + Width = 253 + Height = 29 + Align = alTop + Caption = 'Rango de fechas' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object TBXLabel2: TTBXLabel + Left = 0 + Top = 0 + Width = 253 + Height = 29 + Align = alTop + Caption = 'Periodo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object TBXAlignmentPanel1: TTBXAlignmentPanel + Left = 0 + Top = 29 + Width = 253 + Height = 21 + Align = alTop + AutoSize = True + Margins.Left = 5 + Margins.Right = 5 + TabOrder = 2 + DesignSize = ( + 253 + 21) + object cbPeriodo: TcxComboBox + Left = 8 + Top = 0 + RepositoryItem = cxRepositoryPeriodos + Anchors = [akLeft, akTop, akRight] + Properties.OnChange = cbPeriodoPropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Text = 'Este mes' + Width = 209 + end + end + object TBXAlignmentPanel2: TTBXAlignmentPanel + Left = 0 + Top = 79 + Width = 253 + Height = 48 + Align = alTop + AutoSize = True + Margins.Left = 5 + Margins.Right = 5 + TabOrder = 3 + object Label1: TLabel + Left = 9 + Top = 4 + Width = 34 + Height = 13 + Caption = 'Desde:' + Transparent = True + end + object Label2: TLabel + Left = 14 + Top = 31 + Width = 29 + Height = 13 + Caption = 'hasta:' + Transparent = True + end + object edtFechaIni: TcxDateEdit + Left = 48 + Top = 0 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaIni2PropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsDefault + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 170 + end + object edtFechaFin: TcxDateEdit + Left = 48 + Top = 27 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaFinPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + end + object cxRepository: TcxEditRepository + Left = 184 + Top = 32 + object cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem + Properties.BeepOnError = True + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 10 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.Items.Strings = ( + 'Hoy' + 'Ayer' + 'Esta semana' + 'Este mes' + 'Este a'#241'o' + #218'ltimos 7 d'#237'as' + #218'ltimos 30 d'#237'as' + #218'ltimos 3 meses' + 'Mes anterior' + 'A'#241'o anterior' + 'Personalizado') + Properties.PostPopupValueOnTab = True + Properties.ReadOnly = False + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas new file mode 100644 index 0000000..a3dc473 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas @@ -0,0 +1,203 @@ +unit uViewPeriodoFechas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, + cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, + cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, + Mask, JvExMask, JvToolEdit, uViewParametrosControlGrid; + +type + IViewPeriodoFechas = interface(IViewParametrosControlGrid) + ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] + end; + + TfrViewPeriodoFechas = class(TfrViewParametrosControlGrid, IViewPeriodoFechas) + cbPeriodo: TcxComboBox; + edtFechaIni: TcxDateEdit; + edtFechaFin: TcxDateEdit; + cxRepository: TcxEditRepository; + cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; + TBXLabel1: TTBXLabel; + TBXLabel2: TTBXLabel; + TBXAlignmentPanel1: TTBXAlignmentPanel; + TBXAlignmentPanel2: TTBXAlignmentPanel; + Label1: TLabel; + Label2: TLabel; + procedure cbPeriodoPropertiesChange(Sender: TObject); + procedure edtFechaIni2PropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure edtFechaFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + private + function GetFechaFinal: TDateTime; + function GetFechaInicial: TDateTime; + procedure SetFechaFinal(const Value: TDateTime); + procedure SetFechaInicial(const Value: TDateTime); + public + procedure Hoy; + procedure Ayer; + procedure EstaSemana; + procedure EsteMes; + procedure EsteAno; + procedure Ultimos7dias; + procedure Ultimos30dias; + procedure Ultimos3meses; + procedure MesAnterior; + procedure AnoAnterior; + procedure Personalizado; + property FechaInicial : TDateTime read GetFechaInicial write SetFechaInicial; + property FechaFinal : TDateTime read GetFechaFinal write SetFechaFinal; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses DateUtils; + +{$R *.dfm} + +procedure TfrViewPeriodoFechas.AnoAnterior; +begin + edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Ayer; +begin + edtFechaIni.Date := Yesterday; + edtFechaFin.Date := Yesterday; +end; + +procedure TfrViewPeriodoFechas.EstaSemana; +begin + edtFechaIni.Date := StartOfTheWeek(Today); + edtFechaFin.Date := EndOfTheWeek(Today); +end; + +procedure TfrViewPeriodoFechas.EsteAno; +begin + edtFechaIni.Date := StartOfTheYear(Today); + edtFechaFin.Date := EndOfTheYear(Today); +end; + +procedure TfrViewPeriodoFechas.EsteMes; +begin + edtFechaIni.Date := StartOfTheMonth(Today); + edtFechaFin.Date := EndOfTheMonth(Today); +end; + +function TfrViewPeriodoFechas.GetFechaFinal: TDateTime; +begin + Result := DateOf(edtFechaFin.Date); +end; + +function TfrViewPeriodoFechas.GetFechaInicial: TDateTime; +begin + Result := DateOf(edtFechaIni.Date); +end; + +procedure TfrViewPeriodoFechas.Hoy; +begin + edtFechaIni.Date := Today; + edtFechaFin.Date := Today; +end; + +procedure TfrViewPeriodoFechas.MesAnterior; +begin + edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Personalizado; +begin + edtFechaIni.SetFocus; +end; + +procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: TDateTime); +begin + edtFechaFin.Date := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: TDateTime); +begin + edtFechaIni.Date := Value; +end; + +procedure TfrViewPeriodoFechas.Ultimos30dias; +begin + edtFechaIni.Date := IncDay(Today, -30); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos3meses; +begin + edtFechaIni.Date := IncMonth(Today, -3); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos7dias; +begin + edtFechaIni.Date := IncDay(Today, -7); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : Hoy; + 1 : Ayer; + 2 : EstaSemana; + 3 : EsteMes; + 4 : EsteAno; + 5 : Ultimos7dias; + 6 : Ultimos30dias; + 7 : Ultimos3meses; + 8 : MesAnterior; + 9 : AnoAnterior; + else + Personalizado; + end; +end; + +constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); +begin + inherited; + cbPeriodo.ItemIndex := 3; + EsteMes; +end; + +procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaIni.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue > edtFechaFin.Date then + begin + edtFechaFin.EditText := DisplayValue; + edtFechaFin.ValidateEdit(True); + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaFin.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue < edtFechaIni.Date then + begin + edtFechaIni.EditText := DisplayValue; + edtFechaIni.ValidateEdit(True); + end; +end; + +end. + diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm new file mode 100644 index 0000000..d5abe2c --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm @@ -0,0 +1,115 @@ +inherited frViewSumarios: TfrViewSumarios + Width = 344 + Height = 472 + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 344 + Height = 29 + Align = alTop + Caption = 'Res'#250'menes' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Margins.Top = 5 + Margins.Bottom = 10 + ParentColor = True + ParentFont = False + Underline = True + end + object vgSumarios: TcxVerticalGrid + Left = 0 + Top = 29 + Width = 344 + Height = 443 + Styles.Category = cxStyleCategoria + Align = alClient + Images = PngImageList1 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + OptionsView.CellAutoHeight = True + OptionsView.CellEndEllipsis = True + OptionsView.ScrollBars = ssVertical + OptionsView.RowHeaderWidth = 133 + OptionsView.GridLines = vglVertical + OptionsView.ValueMinWidth = 75 + TabOrder = 1 + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA + 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 + BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 + 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000794944415478DA + 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 + E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 + E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 + E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 + 454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000011E4944415478DA + 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F + 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F + E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E + 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C + 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD + A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 + 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B + 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA + CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 + 0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end> + Left = 88 + Top = 104 + Bitmap = {} + end + object cxStyleRepository1: TcxStyleRepository + Left = 216 + Top = 104 + object cxStyleNombreColumna: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = clActiveCaption + end + object cxStyleCategoria: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clHighlight + end + object cxStyleNombreColumnaInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = cl3DDkShadow + end + object cxStyleCategoriaInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15329769 + TextColor = clBtnShadow + end + object cxStyleContentInactivo: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clWindow + TextColor = clBtnShadow + end + end +end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas new file mode 100644 index 0000000..85f31f9 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas @@ -0,0 +1,325 @@ +unit uViewSumarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, + TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, + cxGraphics, cxStyles, cxTL, cxTextEdit, cxDropDownEdit, ImgList, + PngImageList, ComCtrls, JvExComCtrls, JvComCtrls, cxInplaceContainer, + ExtCtrls, cxEdit, cxVGrid, TBXToolPals, uViewControlGrid, + uViewParametrosControlGrid; + +type + IViewSumarios = interface(IViewParametrosControlGrid) + ['{4AEE3447-C6A4-491F-87E7-02CD255A7695}'] + end; + + TfrViewSumarios = class(TfrViewParametrosControlGrid, IViewSumarios) + PngImageList1: TPngImageList; + vgSumarios: TcxVerticalGrid; + TBXLabel1: TTBXLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyleNombreColumna: TcxStyle; + cxStyleCategoria: TcxStyle; + cxStyleNombreColumnaInactivo: TcxStyle; + cxStyleCategoriaInactivo: TcxStyle; + cxStyleContentInactivo: TcxStyle; + procedure vgSumariosEditorRowInitPopup(Sender: TObject); + procedure vgSumariosEditorRowEditValueChanged( + Sender: TObject); + protected + procedure RellenarArbolTotales; + + function AnadirSumario(const ACaption : String; + const AKind : TcxSummaryKind) : TcxEditorRow; + + procedure RellenarTotalesPie; + procedure RellenarTotalesGrupo(const AGroupName : String); + procedure RellenarCategorias; + procedure RellenarCategoria(const APosition : TcxSummaryPosition; + const AGroupName : String = ''); + + procedure AplicarSumarioVista(const APosition : TcxSummaryPosition; + const AColumnCaption : String; const AKind : TcxSummaryKind); + procedure SetModificable(const Value: Boolean); override; + public + procedure Execute; override; + procedure Refresh; override; + end; + +implementation + +{$R *.dfm} + +uses + DB, cxGridPopupMenuConsts; + +var + SumaryKindStrArray : array[skNone..skAverage] of String + = ('', 'Sumar', 'Mínimo', 'Máximo', 'Contar', 'Promedio'); + +procedure TfrViewSumarios.Refresh; +begin + RellenarCategorias; +end; + +procedure TfrViewSumarios.RellenarArbolTotales; +var + i : Integer; +begin + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); + end; +end; + +function TfrViewSumarios.AnadirSumario(const ACaption : String; + const AKind : TcxSummaryKind) : TcxEditorRow; +begin + Result := vgSumarios.Add(TcxEditorRow) as TcxEditorRow; + with Result do + begin + Properties.Caption := ACaption; + Properties.Value := SumaryKindStrArray[AKind]; + Properties.ImageIndex := 2; + Properties.EditPropertiesClass := TcxComboBoxProperties; + with TcxComboBoxProperties(Properties.EditProperties) do + begin + ImmediateDropDown := True; + DropDownListStyle := lsFixedList; + ImmediatePost := True; + ImmediateUpdateText := True; + PostPopupValueOnTab := True; + OnInitPopup := vgSumariosEditorRowInitPopup; + OnEditValueChanged := vgSumariosEditorRowEditValueChanged; + end; + end; +end; + +procedure TfrViewSumarios.AplicarSumarioVista ( + const APosition: TcxSummaryPosition; const AColumnCaption: String; + const AKind: TcxSummaryKind); +const + MASK_MONEDA = ',0.## €;-,0.## €'; + MASK_NUMERO = '#,##0'; +var + AColumn : TcxGridDBColumn; +begin + AColumn := ViewControlGrid.GetColumnByCaption(AColumnCaption); + if APosition = spFooter then + begin + AColumn.Summary.FooterKind := AKind; + if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then + AColumn.Summary.FooterFormat := MASK_MONEDA + else + AColumn.Summary.FooterFormat := MASK_NUMERO; + end + else begin + AColumn.Summary.GroupFooterKind := AKind; + if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then + AColumn.Summary.GroupFooterFormat := MASK_MONEDA + else + AColumn.Summary.GroupFooterFormat := MASK_NUMERO; + end; +end; + +procedure TfrViewSumarios.RellenarTotalesPie; +var + i, j: Integer; + ASummary: TcxDataFooterSummaryItems; + AClase : TcxSummaryKind; + ACaption : String; + ACategory : TcxCategoryRow; + ARow : TcxEditorRow; +begin + vgSumarios.BeginUpdate; + try + ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); + with ACategory.Properties do + begin + ASummary := ViewControlGrid.FocusedView.DataController.Summary.FooterSummaryItems; + ImageIndex := 0; + Caption := 'Resúmenes totales' + end; + + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; + AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.FooterKind; + ARow := AnadirSumario(ACaption, AClase); + ARow.Parent := ACategory; + end; + finally + vgSumarios.EndUpdate; + end; +end; + + +procedure TfrViewSumarios.RellenarCategoria( + const APosition: TcxSummaryPosition; const AGroupName: String); +begin + if APosition = spFooter then + RellenarTotalesPie + else + RellenarTotalesGrupo(AGroupName); +end; + +procedure TfrViewSumarios.RellenarCategorias; +var + i : Integer; +begin + vgSumarios.ClearRows; + RellenarCategoria(spFooter); + + // Recuperar las agrupaciones del grid + for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do + begin + if i = 3 then + Break; // Sólo meter las 3 primera agrupaciones + RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); + end; +end; + +procedure TfrViewSumarios.vgSumariosEditorRowInitPopup(Sender: TObject); +var + AColumn: TcxGridDBColumn; + ARow : TcxEditorRow; +const + NumberFieldTypes = + [ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, + ftDateTime, ftAutoInc]; + TimeFieldTypes = [ftDate, ftTime, ftDateTime]; + +begin + inherited; + + ARow := TcxEditorRow(vgSumarios.FocusedRow); + AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[ARow.Index]); + + if Assigned(AColumn.DataBinding.Field) then + with TcxComboBoxProperties(TcxPopupEdit(Sender).Properties) do + begin + Items.Clear; + BeginUpdate; + try + Items.Add(SumaryKindStrArray[skNone]); + Items.Add(SumaryKindStrArray[skCount]); + + if AColumn.DataBinding.Field.DataType in NumberFieldTypes then + begin + Items.Add(SumaryKindStrArray[skMax]); + Items.Add(SumaryKindStrArray[skMin]); + if not (AColumn.DataBinding.Field.DataType in TimeFieldTypes) then + begin + Items.Add(SumaryKindStrArray[skSum]); + Items.Add(SumaryKindStrArray[skAverage]); + end; + end; + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewSumarios.vgSumariosEditorRowEditValueChanged( + Sender: TObject); +var + AColumn : String; + ARow : TcxEditorRow; + AKind : TcxSummaryKind; + + function DarSummaryKind(AKind : String) : TcxSummaryKind; + var + i : TcxSummaryKind; + begin + if Length(AKind) = 0 then + Result := skNone + else + for i := skSum to skAverage do + if SumaryKindStrArray[i] = AKind then + begin + Result := i; + Break; + end; + end; + +begin + inherited; + + ARow := TcxEditorRow(vgSumarios.FocusedRow); + AColumn := ARow.Properties.Caption; + AKind := DarSummaryKind(VarToStr(ARow.Properties.Value)); + + if Assigned(ARow.Parent) then + begin + if(ARow.Parent.Index = 0) then + AplicarSumarioVista(spFooter, AColumn, AKind) + else + AplicarSumarioVista(spGroup, AColumn, AKind) + end; +end; + +procedure TfrViewSumarios.RellenarTotalesGrupo(const AGroupName: String); +var + i, j: Integer; + ASummary: TcxDataSummaryGroup; + AClase : TcxSummaryKind; + ACaption : String; + ACategory : TcxCategoryRow; + ARow : TcxEditorRow; + +begin + ASummary := ViewControlGrid.FocusedView.DataController.Summary.SummaryGroups.FindByItemLink(ViewControlGrid.GetColumnByCaption(AGroupName)); + + vgSumarios.BeginUpdate; + try + ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); + with ACategory.Properties do + begin + ImageIndex := 1; + Caption := 'Totales de ' + AGroupName; + end; + + for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do + begin + ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; + AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.GroupFooterKind; + ARow := AnadirSumario(ACaption, AClase); + ARow.Parent := ACategory; + end; + finally + vgSumarios.EndUpdate; + end; +end; + +procedure TfrViewSumarios.Execute; +begin + inherited; + // +end; + +procedure TfrViewSumarios.SetModificable(const Value: Boolean); +begin + inherited; + vgSumarios.Enabled := Value; + if Value then + begin + vgSumarios.Styles.Category := cxStyleCategoria; + vgSumarios.Styles.Header := cxStyleNombreColumna; + vgSumarios.Styles.Content := nil; + end + else begin + vgSumarios.Styles.Category := cxStyleCategoriaInactivo; + vgSumarios.Styles.Header := cxStyleNombreColumnaInactivo; + vgSumarios.Styles.Content := cxStyleContentInactivo; + end; +end; + +end. + + diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj new file mode 100644 index 0000000..be74bb3 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj @@ -0,0 +1,658 @@ + + + + + + + + + + + + ControlesBaseD10.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk new file mode 100644 index 0000000..be08d8a --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk @@ -0,0 +1,85 @@ +package ControlesBaseD10; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + PngComponentsD10, + PNG_D10, + BaseD10, + dbrtl, + dsnap, + adortl, + JvGlobusD10R, + cxTreeListD10, + vclactnband, + vclx, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + dxLayoutControlD10, + dxComnD10, + cxVerticalGridD10, + dxPSCoreD10, + VclSmp, + bdertl, + EasyListviewD10; + +contains + uEditorControlesBase in 'Cliente\uEditorControlesBase.pas' {fEditorControlesBase: TCustomEditor}, + schControlesClient_Intf in 'Reglas\schControlesClient_Intf.pas', + uBizControlesBase in 'Reglas\uBizControlesBase.pas', + uDataModuleControles in 'Cliente\uDataModuleControles.pas' {dmControles: TDAClientDataModule}, + uEditorControlBase in 'Cliente\uEditorControlBase.pas' {fEditorControlBase: TCustomEditor}, + uViewAgrupaciones in 'Cliente\uViewAgrupaciones.pas' {frViewAgrupaciones: TCustomView}, + uViewColumnas in 'Cliente\uViewColumnas.pas' {frViewColumnas: TCustomView}, + uViewSumarios in 'Cliente\uViewSumarios.pas' {frViewSumarios: TCustomView}, + uViewControlGrid in 'Cliente\uViewControlGrid.pas' {frViewControlGrid: TCustomView}, + uViewControlBase in 'Cliente\uViewControlBase.pas' {frViewControlBase: TCustomView}, + uViewParametrosControlGrid in 'Cliente\uViewParametrosControlGrid.pas' {frViewParametrosControlGrid: TCustomView}, + uFormPropiedadesControl in 'Cliente\uFormPropiedadesControl.pas' {frPropiedadesControl}, + uViewFiltros in 'Cliente\uViewFiltros.pas' {frViewFiltros: TCustomView}, + uViewPeriodoFechas in 'Cliente\uViewPeriodoFechas.pas' {frViewPeriodoFechas: TCustomView}, + uViewControlesBase in 'Cliente\uViewControlesBase.pas' {frViewControlesBase: TCustomView}, + uDateUtils in 'Cliente\uDateUtils.pas'; + +end. diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache new file mode 100644 index 0000000000000000000000000000000000000000..e66917df4222bf5ff05cc111810e1d061fdbc29e GIT binary patch literal 2239 zcmc(h-AcnS6vyiu_y~OhAHch9wc^E~tZY{SIV8s}k|rf5VK`6`1z+2g)#9?@-O}Eb zg!1G6aZazZEPGwtvchoRqIQ&n7I}@%N!<`zlLspeTT05saK#W?&5FEsUWAj%nrGyW z*aj>rV72j2ltWijFpzx+-_%<@Xk+>U<`h%MeC;*JlG$i*{ikRdrttPX^`VP1> z8YxEkxJt)zC!{m>$h;V5pN{5`7Uf$FC#rlWRHf&rz(R{5(=@1aE;TP{wJD|QfntZ= z(^6CzCWJ60^6jZjmv8h68wJGtT<-tPZOR%I;9zNlS2!ZYCMB*>?c08kPnngY*>Z0B ze1!-S0_<`z~4^CChgKSDMSX>PO2##`m>!6i#yii^YRW2btb+Yt8@5!czn?A HDF*rh2i6y6 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.res b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm new file mode 100644 index 0000000..b5cd583 --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm @@ -0,0 +1,264 @@ +object srvControles: TsrvControles + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schControles + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schControles: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Value = 'vebyas' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + + 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES'#10' WHERE CATEGORIA = :CA' + + 'TEGORIA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'ICONO' + TableField = 'ICONO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ORDEN' + TableField = 'ORDEN' + end + item + DatasetField = 'VISTA' + TableField = 'VISTA' + end + item + DatasetField = 'MODIFICABLE' + TableField = 'MODIFICABLE' + end> + end> + Name = 'ListaControlesPorCategoria' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + Required = True + ServerAutoRefresh = True + InPrimaryKey = True + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + DefaultValue = 'S' + end + item + Name = 'ICONO' + DataType = datSmallInt + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'ORDEN' + DataType = datSmallInt + end + item + Name = 'VISTA' + DataType = datMemo + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + + 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + + 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ControlesPorCategoria' + end + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + Value = '' + ParamType = daptInput + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + + 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + + 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + + 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ControlesPorCategoria' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object bpControles: TDABusinessProcessor + Schema = schControles + InsertCommandName = 'Insert_ControlesPorCategoria' + UpdateCommandName = 'Update_ControlesPorCategoria' + ReferencedDataset = 'ListaControlesPorCategoria' + ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 144 + Top = 24 + end + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas new file mode 100644 index 0000000..c4dbf0b --- /dev/null +++ b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas @@ -0,0 +1,48 @@ +unit srvControles_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvControles } + TsrvControles = class(TDARemoteService, IsrvControles) + bpControles: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schControles: TDASchema; + private + protected + { IsrvControles methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvControles(out anInstance : IUnknown); +begin + anInstance := TsrvControles.Create(NIL); +end; + +{ srvControles } +initialization + TROClassFactory.Create('srvControles', Create_srvControles, TsrvControles_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj new file mode 100644 index 0000000..099c4ad --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Devoluciones.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof new file mode 100644 index 0000000..e3c2ef2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk new file mode 100644 index 0000000..21fec2e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk @@ -0,0 +1,77 @@ +package Devoluciones; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxLayoutControlD10, + Parametros; + +contains + uPluginControllerDevoluciones in 'uPluginControllerDevoluciones.pas' {ModuleDevoluciones: TModuleController}, + uBizDevoluciones in '..\Reglas\uBizDevoluciones.pas', + uDataModuleDevoluciones in 'uDataModuleDevoluciones.pas' {dmDevoluciones: TDAClientDataModule}, + uViewListaDevoluciones in 'uViewListaDevoluciones.pas' {frViewListaDevoluciones: TCustomView}, + uEditorListaDevoluciones in 'uEditorListaDevoluciones.pas' {fEditorListaDevoluciones: TCustomEditor}, + uEditorAjustarDevoluciones in 'uEditorAjustarDevoluciones.pas' {fEditorAjustarRecepciones}; + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache new file mode 100644 index 0000000000000000000000000000000000000000..9ba82d175d5a5848a111324125584d3fad5111d2 GIT binary patch literal 947 zcmc)JJ!->H3m2_&E)+MaS#-X$<#%SKNwvL4%m{+ZgI{SJdqsepc>z7sEx2PV^h}j#J10 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res new file mode 100644 index 0000000000000000000000000000000000000000..1641339fcc482e7e3492d1b45813a86619622c33 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm new file mode 100644 index 0000000..72e2fe3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm @@ -0,0 +1,1639 @@ +object dmDevoluciones: TdmDevoluciones + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvDevoluciones' + Left = 40 + Top = 32 + end + object tbl_Devoluciones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Devoluciones' + IndexDefs = <> + Left = 160 + Top = 96 + end + object ds_Devoluciones: TDADataSource + DataSet = tbl_Devoluciones.Dataset + DataTable = tbl_Devoluciones + Left = 160 + Top = 32 + end + object tbl_DevolucionesAprobadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DevolucionesAprobadas' + IndexDefs = <> + Left = 320 + Top = 96 + end + object ds_DevolucionesAprobadas: TDADataSource + DataSet = tbl_DevolucionesAprobadas.Dataset + DataTable = tbl_DevolucionesAprobadas + Left = 320 + Top = 32 + end + object tbl_DevolucionesPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_NUMHOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_S48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SOLICITADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_SOLICITADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ER48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Devoluciones_ER48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Devoluciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DevolucionesPendientes' + IndexDefs = <> + Left = 480 + Top = 96 + end + object ds_DevolucionesPendientes: TDADataSource + DataSet = tbl_DevolucionesPendientes.Dataset + DataTable = tbl_DevolucionesPendientes + Left = 480 + Top = 32 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas new file mode 100644 index 0000000..7809dc3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas @@ -0,0 +1,87 @@ +unit uDataModuleDevoluciones; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizDevoluciones, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmDevoluciones = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Devoluciones: TDACDSDataTable; + ds_Devoluciones: TDADataSource; + tbl_DevolucionesAprobadas: TDACDSDataTable; + ds_DevolucionesAprobadas: TDADataSource; + tbl_DevolucionesPendientes: TDACDSDataTable; + ds_DevolucionesPendientes: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems : IBizDevoluciones; overload; + function GetItems(const AEstado : TInvDevolucionEstado) : IBizDevoluciones; overload; + end; + +var + dmDevoluciones: TdmDevoluciones; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmDevoluciones.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmDevoluciones.GetItems: IBizDevoluciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Devoluciones, dtLista); + dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; + Result := (dtLista as IBizDevoluciones); + finally + HideHourglassCursor; + end; +end; + +function TdmDevoluciones.GetItems( + const AEstado: TInvDevolucionEstado): IBizDevoluciones; +var + dtLista: TDACDSDataTable; + AStr : String; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + tidPendiente : CloneDataTable(tbl_DevolucionesPendientes, dtLista); + tidAprobado : CloneDataTable(tbl_DevolucionesAprobadas, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; + Result := (dtLista as IBizDevoluciones); + finally + HideHourglassCursor; + end; +end; + +initialization + dmDevoluciones := TdmDevoluciones.Create(nil); + +finalization + FreeAndNil(dmDevoluciones); + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm new file mode 100644 index 0000000..1ef1479 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm @@ -0,0 +1,944 @@ +object fEditorAjustarDevoluciones: TfEditorAjustarDevoluciones + Left = 445 + Top = 219 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de devoluciones de productos' + ClientHeight = 536 + ClientWidth = 753 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 753 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de devoluciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 222 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label1: TLabel + Left = 22 + Top = 258 + Width = 92 + Height = 13 + Caption = 'Cantidad solicitada:' + end + object Label2: TLabel + Left = 22 + Top = 333 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 362 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object edtEnv40: TcxDBMaskEdit + Left = 223 + Top = 256 + DataBinding.DataField = 'S40' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 25 + end + object edtEnv38: TcxDBMaskEdit + Left = 120 + Top = 256 + DataBinding.DataField = 'S38' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 25 + end + object edtEnv42: TcxDBMaskEdit + Left = 326 + Top = 256 + DataBinding.DataField = 'S42' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 25 + end + object edtEnv44: TcxDBMaskEdit + Left = 429 + Top = 256 + DataBinding.DataField = 'S44' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 25 + end + object edtEnv46: TcxDBMaskEdit + Left = 532 + Top = 256 + DataBinding.DataField = 'S46' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 25 + end + object edtEnv48: TcxDBMaskEdit + Left = 635 + Top = 256 + DataBinding.DataField = 'S48' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 25 + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 331 + DataBinding.DataField = 'E38' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 331 + DataBinding.DataField = 'E40' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 331 + DataBinding.DataField = 'E42' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 331 + DataBinding.DataField = 'E44' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 20 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 331 + DataBinding.DataField = 'E46' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 331 + DataBinding.DataField = 'E48' + DataBinding.DataSource = dsDataSource + Enabled = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 24 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 25 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 23 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 19 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 358 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 144 + Top = 28 + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 108 + end + object edtCentro: TcxDBLabel + Left = 344 + Top = 28 + DataBinding.DataField = 'FILIAL' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 481 + end + object edtProducto: TcxDBLabel + Left = 144 + Top = 51 + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 420 + end + object edtColor: TcxDBLabel + Left = 613 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 118 + end + object edtHoja: TcxDBLabel + Left = 144 + Top = 104 + DataBinding.DataField = 'NUMHOJA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 140 + end + object cbEstadoHoja: TcxComboBox + Left = 144 + Top = 127 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otras incidencias') + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + 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 = 5 + Text = 'cbEstadoHoja' + Width = 166 + end + object memEstadoHoja: TcxMemo + Left = 22 + Top = 172 + Lines.Strings = ( + 'memEstadoHoja') + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + 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 = 7 + Height = 44 + Width = 709 + end + object cbContabilizarHoja: TcxCheckBox + Left = 231 + Top = 127 + Caption = 'Contabilizar esta hoja de movimiento' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + 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 = 6 + Width = 708 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales' + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro de origen:' + Control = edtCentro + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + Caption = 'Datos de la hoja de movimientos' + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'N'#250'mero de hoja:' + Control = edtHoja + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado de la devoluci'#243'n:' + Control = cbEstadoHoja + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizarHoja + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Observaciones sobre la hoja:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memEstadoHoja + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv48 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de recepci'#243'n del env'#237'o' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + DataTable = dmDevoluciones.tbl_Devoluciones + Left = 200 + Top = 496 + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas new file mode 100644 index 0000000..f117ee0 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas @@ -0,0 +1,351 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizDevoluciones, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarDevoluciones = interface + ['{F75441C6-D0D4-42AF-ABB7-FC531222F0DD}'] + function GetItems : IBizDevoluciones; + procedure SetItems (const AValue : IBizDevoluciones); + property Items : IBizDevoluciones read GetItems write SetItems; + end; + + TfEditorAjustarDevoluciones = class(TForm, IEditorAjustarDevoluciones) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + edtEnv40: TcxDBMaskEdit; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item11: TdxLayoutItem; + edtEnv38: TcxDBMaskEdit; + dxLayoutControl1Item12: TdxLayoutItem; + edtEnv42: TcxDBMaskEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtEnv44: TcxDBMaskEdit; + dxLayoutControl1Item14: TdxLayoutItem; + edtEnv46: TcxDBMaskEdit; + dxLayoutControl1Item15: TdxLayoutItem; + edtEnv48: TcxDBMaskEdit; + dxLayoutControl1Item16: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtCentro: TcxDBLabel; + dxLayoutControl1Item17: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + edtHoja: TcxDBLabel; + dxLayoutControl1Item1: TdxLayoutItem; + cbEstadoHoja: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memEstadoHoja: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizarHoja: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizDevoluciones; + FHayErrores : Boolean; + FAlbaranModificado : Boolean; + procedure CargarValores; + procedure SalvarValores; + procedure ModificarAlbaran; + protected + function GetItems : IBizDevoluciones; + procedure SetItems (const AValue : IBizDevoluciones); + public + property Items : IBizDevoluciones read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleDevoluciones, + uDAInterfaces; + +{$R *.dfm} + +function ShowEditorAjustarDevoluciones (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarDevoluciones; +begin + AEditor := TfEditorAjustarDevoluciones.Create(Application); + try + AEditor.Items := (ABizObject as IBizDevoluciones); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarDevoluciones.FormShow(Sender: TObject); +begin + FHayErrores := False; + FItems.DataTable.Open; + + cbEstadoHoja.Enabled := Length(FItems.DataTable.FieldByName('NUMHOJA').AsString) > 0; + cbContabilizarHoja.Enabled := cbEstadoHoja.Enabled; + memEstadoHoja.Enabled := cbEstadoHoja.Enabled; + + CargarValores;; +end; + +function TfEditorAjustarDevoluciones.GetItems: IBizDevoluciones; +begin + Result := FItems; +end; + +procedure TfEditorAjustarDevoluciones.SetItems( + const AValue: IBizDevoluciones); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarDevoluciones.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarDevoluciones.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + ModificarAlbaran; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarDevoluciones.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('E38').AsInteger <> FieldByName('ER38').AsInteger then + edtRecR38.Value := FieldByName('ER38').AsInteger + else + edtRecR38.Value := FieldByName('E38').AsInteger; + + if FieldByName('E40').AsInteger <> FieldByName('ER40').AsInteger then + edtRecR40.Value := FieldByName('ER40').AsInteger + else + edtRecR40.Value := FieldByName('E40').AsInteger; + + if FieldByName('E42').AsInteger <> FieldByName('ER42').AsInteger then + edtRecR42.Value := FieldByName('ER42').AsInteger + else + edtRecR42.Value := FieldByName('E42').AsInteger; + + if FieldByName('E44').AsInteger <> FieldByName('ER44').AsInteger then + edtRecR44.Value := FieldByName('ER44').AsInteger + else + edtRecR44.Value := FieldByName('E44').AsInteger; + + if FieldByName('E46').AsInteger <> FieldByName('ER46').AsInteger then + edtRecR46.Value := FieldByName('ER46').AsInteger + else + edtRecR46.Value := FieldByName('E46').AsInteger; + + if FieldByName('E48').AsInteger <> FieldByName('ER48').AsInteger then + edtRecR48.Value := FieldByName('ER48').AsInteger + else + edtRecR48.Value := FieldByName('E48').AsInteger; + + if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then + cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0]; + + if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then + cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0] + else + cbEstadoHoja.Text := FieldByName('ESTADO_HOJA').AsString; + + cbContabilizarHoja.Checked := (FieldByName('CONTABILIZAR_HOJA').AsString = 'S'); + memEstadoHoja.Lines.Clear; + if Length(FieldByName('OBSERVACIONES_HOJA').AsString) > 0 then + memEstadoHoja.Lines.Add(FieldByName('OBSERVACIONES_HOJA').AsString) + end; +end; + +procedure TfEditorAjustarDevoluciones.SalvarValores; +var + aux : String; +begin + FAlbaranModificado := False; + with FItems.DataTable do + begin + Edit; + FieldByName('ER38').AsFloat := edtRecR38.Value; + FieldByName('ER40').AsFloat := edtRecR40.Value; + FieldByName('ER42').AsFloat := edtRecR42.Value; + FieldByName('ER44').AsFloat := edtRecR44.Value; + FieldByName('ER46').AsFloat := edtRecR46.Value; + FieldByName('ER48').AsFloat := edtRecR48.Value; + + if cbEstadoHoja.Text = cbEstadoHoja.Properties.Items[0] then + aux := '' + else + aux := cbEstadoHoja.Text; + + if FieldByName('ESTADO_HOJA').AsString <> aux then + FieldByName('ESTADO_HOJA').AsString := aux; + + if cbContabilizarHoja.Checked then + aux := 'S' + else + aux := 'N'; + + if FieldByName('CONTABILIZAR_HOJA').AsString <> aux then + FieldByName('CONTABILIZAR_HOJA').AsString := aux; + + FieldByName('OBSERVACIONES_HOJA').AsString := memEstadoHoja.Lines.Text; + Post; + end; +end; + +procedure TfEditorAjustarDevoluciones.ModificarAlbaran; +var + bm : TBookMark ; + AHoja : String; + AEstado : String; + AContabilizar : String; +begin + { Si se ha cambiado el albarán, hay + que cambiarlo en el resto de filas en las que aparezca } + + AHoja := FItems.DataTable.FieldByName('NUMHOJA').AsString; + AEstado := FItems.DataTable.FieldByName('ESTADO_HOJA').AsString; + AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString; + + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + FItems.DataTable.DisableEventHandlers; + FItems.DataTable.LogChanges := False; + try + FItems.DataTable.Filter := 'NUMHOJA = ''' + AHoja + ''''; + FItems.DataTable.Filtered := True; + FItems.DataTable.First; + + repeat + FItems.Edit; + FItems.DataTable.FieldByName('ESTADO_HOJA').AsString := AEstado; + FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString := AContabilizar; + FItems.Post; + FItems.DataTable.Next + until FItems.DataTable.EOF; + + try + FItems.DataTable.GotoBookMark(bm); + except + // No hacer nada + end; + finally + FItems.DataTable.Filter := ''; + FItems.DataTable.Filtered := False; + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.LogChanges := True; + FItems.DataTable.EnableEventHandlers; + FItems.DataTable.EnableControls; + end; +end; + +initialization + RegisterEditor(IBizDevoluciones, ShowEditorAjustarDevoluciones, etItem); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm new file mode 100644 index 0000000..c37762d --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm @@ -0,0 +1,1708 @@ +inherited fEditorListaDevoluciones: TfEditorListaDevoluciones + Left = 403 + Top = 247 + Caption = 'Control de devoluciones' + ClientHeight = 637 + ClientWidth = 901 + ExplicitWidth = 909 + ExplicitHeight = 671 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de devoluciones' + ExplicitWidth = 901 + inherited Image1: TImage + Left = 874 + ExplicitLeft = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + ExplicitWidth = 901 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 583 + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 901 + end + inherited tbxFiltro: TTBXToolbar + Left = 583 + ExplicitLeft = 583 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 901 + ExplicitTop = 618 + ExplicitWidth = 901 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 204 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaDevoluciones1: TfrViewListaDevoluciones [4] + Left = 0 + Top = 233 + Width = 901 + Height = 385 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 233 + ExplicitWidth = 901 + ExplicitHeight = 385 + inherited cxGrid: TcxGrid + Width = 901 + Height = 385 + ExplicitWidth = 901 + ExplicitHeight = 385 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA + end> + inherited cxGridViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + object TBXDockablePanel1: TTBXDockablePanel [5] + Left = 0 + Top = 76 + MaxClientHeight = 61 + Align = alTop + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + inline frViewParametrosCentro1: TfrViewParametrosCentro + Left = 0 + Top = 19 + Width = 425 + Height = 109 + Align = alLeft + TabOrder = 0 + ReadOnly = False + ExplicitTop = 19 + ExplicitWidth = 425 + ExplicitHeight = 109 + inherited dxLayoutControl1: TdxLayoutControl + Width = 425 + ExplicitWidth = 425 + inherited ccbCentro: TJvCheckedComboBox + Width = 392 + ExplicitWidth = 392 + end + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 901 + Height = 19 + Margins.Left = 5 + Margins.Top = 5 + Align = alTop + Caption = 'Par'#225'metros de consulta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 425 + Top = 19 + Width = 476 + Height = 109 + Align = alClient + AutoSize = True + TabOrder = 2 + object TBXButton3: TTBXButton + Tag = 3 + Left = 8 + Top = 10 + Width = 90 + Height = 21 + Action = actRefrescar + AutoSize = False + Caption = 'Consultar' + ImageIndex = 0 + TabOrder = 0 + Wrapping = twEndEllipsis + end + end + end + inherited EditorActionList: TActionList [6] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar devoluci'#243'n' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + inherited dsDataTable: TDADataSource [11] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas new file mode 100644 index 0000000..2b65b96 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas @@ -0,0 +1,356 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizDevoluciones, uViewListaDevoluciones, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, TBXDkPanels, + uViewParametrosControlGrid, uViewParametrosCentro, uDAInterfaces; + + +type + IEditorListaDevoluciones = interface(IEditorGridBase) + ['{F7023263-A26E-4C09-87AF-02275AD594C4}'] + function GetItems: IBizDevoluciones; + procedure SetItems(const Value: IBizDevoluciones); + property Items: IBizDevoluciones read GetItems + write SetItems; + end; + + TfEditorListaDevoluciones = class(TfEditorGridBase, IEditorListaDevoluciones) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaDevoluciones1: TfrViewListaDevoluciones; + TBXDockablePanel1: TTBXDockablePanel; + frViewParametrosCentro1: TfrViewParametrosCentro; + TBXLabel1: TTBXLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + TBXButton3: TTBXButton; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizDevoluciones; + function GetItems: IBizDevoluciones; + procedure SetItems(const Value: IBizDevoluciones); + procedure CambiarEstado(const NuevoEstado: TInvDevolucionestado); + function GetModified: Boolean; override; + public + property Items: IBizDevoluciones read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, + cxGridDBDataDefinitions, uDataModuleDevoluciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaDevoluciones.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaDevoluciones1; +end; + +function TfEditorListaDevoluciones.GetItems: IBizDevoluciones; +begin + Result := FItems; +end; + +procedure TfEditorListaDevoluciones.SetItems( + const Value: IBizDevoluciones); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaDevoluciones1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaDevoluciones.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + frViewParametrosCentro1.Refresh; + + with (ViewGrid as IViewListaDevoluciones) do + VerPendientes; +end; + +procedure TfEditorListaDevoluciones.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + + Items.DataTable.Active := False; + + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmDevoluciones.GetItems(tidPendiente); + (ViewGrid as IViewListaDevoluciones).VerPendientes; + end; + + 1 : begin + Items := dmDevoluciones.GetItems(tidAprobado); + (ViewGrid as IViewListaDevoluciones).VerAprobados; + end; + + 2 : begin + Items := dmDevoluciones.GetItems; + (ViewGrid as IViewListaDevoluciones).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaDevoluciones.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaDevoluciones.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaDevoluciones.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaDevoluciones.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaDevoluciones.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaDevoluciones.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaDevoluciones.actRefrescarExecute( + Sender: TObject); +var + ACentrosList : TStringList; + AWhere : String; + i : integer; +begin + // BEGIN Adaptación a DA5 + {case (ViewGrid as IViewListaDevoluciones).VistaActiva of + tdvaPendiente, + tdvaAprobado : AWhere := ' and' + else + AWhere := ''; + end;} + AWhere := ''; + // END Adaptación a DA5 + + AWhere := AWhere + ' CENTRO in ('; + + Items.DataTable.Active := False; + ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; + + ShowHourglassCursor; + try + if ACentrosList.Count = 0 then + ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') + else begin + with Items.DataTable.Where do + begin + Clear; + for i := 0 to ACentrosList.Count - 1 do + begin + if i > 0 then + AWhere := AWhere + ', '; + AWhere := AWhere + '''' + ACentrosList[i] + ''''; + end; + AWhere := AWhere + ')'; + + AddText(AWhere); + end; + Items.DataTable.Active := True; + end; + finally + HideHourglassCursor; + FreeAndNIL(ACentrosList); + end; + + inherited; + + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaDevoluciones.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(tidPendiente); +end; + +procedure TfEditorListaDevoluciones.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tidPendiente); +end; + +procedure TfEditorListaDevoluciones.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(tidAprobado); +end; + +procedure TfEditorListaDevoluciones.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tidAprobado); +end; + +procedure TfEditorListaDevoluciones.CambiarEstado( + const NuevoEstado: TInvDevolucionestado); +var + ARecord: TcxCustomGridRecord; + i : Integer; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + //ViewGrid._FocusedView.BeginUpdate; + FItems.DataTable.DisableControls; + + Application.ProcessMessages; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + Application.ProcessMessages; + end; + FItems.DataTable.ApplyUpdates; + finally + //ViewGrid._FocusedView.EndUpdate; + FItems.DataTable.EnableControls; + ViewGrid._FocusedView.Controller.ClearSelection; + HideHourglassCursor; + Application.ProcessMessages; + end; + end; +end; + +procedure TfEditorListaDevoluciones.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaDevoluciones.GetModified: Boolean; +begin + Result := False; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm new file mode 100644 index 0000000..aac76d2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm @@ -0,0 +1,125 @@ +object ModuleDevoluciones: TModuleDevoluciones + OldCreateOrder = True + DefaultAction = actDevolucion + Description = 'Control de devoluci'#243'n de prendas' + ModuleMenu = MainMenu + ModuleName = 'Control de devoluci'#243'n de prendas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.1' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000019B4944415478DA + 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B + 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 + 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 + 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F + 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF + 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 + 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 + 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 + 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 + 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC + 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 + 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 + 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 + 0049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actDevolucion: TAction + Category = 'Inventario' + Caption = 'Control de devoluci'#243'n' + ImageIndex = 0 + OnExecute = actDevolucionExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 210 + Action = actDevolucion + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F64944415478DA + 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A + 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 + 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 + F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 + DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 + B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E + BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E + C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001F14944415478DA + BDD64D4B02511406E03328F8270A83DA549BA09508B55082D6AD5A8414942615 + ADC2A0458BC016D1A68D21951014F8075AF4014A1FB4B05A5442216119481018 + EA980331796F3A36E39DB9F74EE60151F1CC79668EBE83822CCBD0CA121078BF + D8EEAABC3EA2F4BA597A7A5733C77A1F22AB06CA9DCB4B60B379898DE5F2266C + 8FAFC0C40EBDC7BF9F1198C09EE00B3E4855853C7E84E30EB01C4CC2F41EBDC7 + 3C581D84875D0D9141428F39F0D7203CEC61A411D4E9E1073583A05880F0AB47 + 0D1AF4F081EF6B0D83A0588470CE5F07293D7CE063004092548340AC9CBDB450 + 07293DCC208A45386AD7EBC5C3502C683DACA02B96360EF5A01DDC2C3D4D0DBE + D1D9B31477F01178176863BA0D92AE943BF85590BA8D90CF07F31110D8418350 + 2390B68DAF93610E90126A22A8D9063BC810EA0690B08DD9F534C08D8F016408 + B50AD4D946E4AC031297B106943BF82AB0BA0D677094D83F37D6059E992D15CA + 1D7CF45357C0EA369C1B537838A942D173B8882715540105813DCFB558D4B681 + D687C0442A8BDF974A127ECEE74B60B55A20F5F4A6A06641D76136A36C63D796 + 54402D56FA94401425C87D881895AFBD0237A8AD7E6F5246E0E9EDB32166FA0A + 8D4084A1122B575A14CB18FCF3774802710434E518E856614D0389D517FAF977 + AD97C37F018DEE34ADAC6FE2EA02F65CB3A8E60000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas new file mode 100644 index 0000000..29ba2d3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas @@ -0,0 +1,73 @@ +unit uPluginControllerDevoluciones; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCDevoluciones = interface(IInterface) + ['{46008D56-3823-4F95-8D22-89130764307B}'] + end; + + TModuleDevoluciones = class(TModuleController, IMCDevoluciones) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actDevolucion: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actDevolucionExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uBizDevoluciones, + uDataModuleDevoluciones, uEditorListaDevoluciones; + + +function GetModule : TModuleController; +begin + Result := TModuleDevoluciones.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleDevoluciones.actDevolucionExecute(Sender: TObject); +var + aControl: IBizDevoluciones; + aObj: IEditorListaDevoluciones; +begin + aControl := dmDevoluciones.GetItems(tidPendiente); + aObj := TfEditorListaDevoluciones.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleDevoluciones); + +finalization + UnRegisterModuleClass(TModuleDevoluciones); + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm new file mode 100644 index 0000000..b599fa6 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm @@ -0,0 +1,476 @@ +inherited frViewListaDevoluciones: TfrViewListaDevoluciones + Width = 466 + Height = 477 + inherited cxGrid: TcxGrid + Width = 466 + Height = 477 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'Centro;Codigo;Color;Fecha' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = cxGridViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = cxGridViewDIFERENCIA + end> + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewOBSERVACIONES_HOJA + Preview.Visible = True + Styles.Footer = cxStyleFooter + OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell + object cxGridViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 15 + IsCaptionAssigned = True + end + object cxGridViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + end + object cxGridViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Visible = False + GroupIndex = 0 + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridViewCODIGOGetDataText + OnGetDisplayText = cxGridViewCODIGOGetDisplayText + GroupIndex = 1 + SortIndex = 1 + SortOrder = soAscending + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + SortIndex = 2 + SortOrder = soAscending + end + object cxGridViewESTADO_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_HOJA' + Visible = False + end + object cxGridViewNUMHOJA: TcxGridDBColumn + Caption = 'Hoja' + DataBinding.FieldName = 'NUMHOJA' + OnGetDisplayText = cxGridViewNUMHOJAGetDisplayText + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + end + object cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR_HOJA' + Visible = False + end + object cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES_HOJA' + PropertiesClassName = 'TcxMemoProperties' + end + object cxGridViewS38: TcxGridDBColumn + DataBinding.FieldName = 'S38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS40: TcxGridDBColumn + DataBinding.FieldName = 'S40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS42: TcxGridDBColumn + DataBinding.FieldName = 'S42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS44: TcxGridDBColumn + DataBinding.FieldName = 'S44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS46: TcxGridDBColumn + DataBinding.FieldName = 'S46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewS48: TcxGridDBColumn + DataBinding.FieldName = 'S48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle + Width = 42 + end + object cxGridViewSOLICITADO: TcxGridDBColumn + Caption = 'Solicitado' + DataBinding.FieldName = 'SOLICITADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 43 + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewENVIADO: TcxGridDBColumn + DataBinding.FieldName = 'ENVIADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + end + object cxGridViewER38: TcxGridDBColumn + Caption = 'E38' + DataBinding.FieldName = 'ER38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR38GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle + Width = 41 + end + object cxGridViewER40: TcxGridDBColumn + Caption = 'E40' + DataBinding.FieldName = 'ER40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR40GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle + Width = 41 + end + object cxGridViewER42: TcxGridDBColumn + Caption = 'E42' + DataBinding.FieldName = 'ER42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR42GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle + Width = 41 + end + object cxGridViewER44: TcxGridDBColumn + Caption = 'E44' + DataBinding.FieldName = 'ER44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR44GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle + Width = 41 + end + object cxGridViewER46: TcxGridDBColumn + Caption = 'E46' + DataBinding.FieldName = 'ER46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR46GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle + Width = 41 + end + object cxGridViewER48: TcxGridDBColumn + Caption = 'E48' + DataBinding.FieldName = 'ER48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR48GetDisplayText + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle + Width = 41 + end + object cxGridViewENVIADO_RECT: TcxGridDBColumn + Caption = 'Enviado' + DataBinding.FieldName = 'ENVIADO_RECT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDataText = cxGridViewENVIADO_RECTGetDataText + Styles.Content = cxStyleSubtotal + Width = 42 + end + object cxGridViewDIFERENCIA: TcxGridDBColumn + Caption = 'Diferencia' + DataBinding.FieldName = 'DIFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDataText = cxGridViewDIFERENCIAGetDataText + HeaderAlignmentHorz = taRightJustify + Width = 42 + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE DEVOLUCI'#211'N') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas new file mode 100644 index 0000000..09bf22b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas @@ -0,0 +1,608 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaDevoluciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizDevoluciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + TvDevolucionesVistaActiva = (tdvaPendiente, tdvaAprobado, tdvaTodos); + + IViewListaDevoluciones = interface(IViewGrid) + ['{2179BA33-B039-4CC9-A423-F50FD2C7B880}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + + function GetVistaActiva : TvDevolucionesVistaActiva; + property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; + end; + + TfrViewListaDevoluciones = class(TfrViewGrid, IViewListaDevoluciones) + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxGridViewAPROBADO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewNUMHOJA: TcxGridDBColumn; + cxGridViewESTADO_HOJA: TcxGridDBColumn; + cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn; + cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn; + cxGridViewS38: TcxGridDBColumn; + cxGridViewS40: TcxGridDBColumn; + cxGridViewS42: TcxGridDBColumn; + cxGridViewS44: TcxGridDBColumn; + cxGridViewS46: TcxGridDBColumn; + cxGridViewS48: TcxGridDBColumn; + cxGridViewSOLICITADO: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + cxGridViewENVIADO: TcxGridDBColumn; + cxGridViewER38: TcxGridDBColumn; + cxGridViewER40: TcxGridDBColumn; + cxGridViewER42: TcxGridDBColumn; + cxGridViewER44: TcxGridDBColumn; + cxGridViewER46: TcxGridDBColumn; + cxGridViewER48: TcxGridDBColumn; + cxGridViewENVIADO_RECT: TcxGridDBColumn; + cxGridViewDIFERENCIA: TcxGridDBColumn; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewNUMHOJAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewNUMHOJAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewENVIADO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetVistaActiva : TvDevolucionesVistaActiva; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; + end; + + +implementation + +uses + uDataModuleDevoluciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaDevoluciones.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaDevoluciones.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaDevoluciones.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaDevoluciones.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewE48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaDevoluciones.cxGridViewCustomDrawGroupCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridViewFILIAL then + begin + ARecIndex := AViewInfo.GridRecord.RecordIndex; + Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridViewFILIAL.Index]; + AViewInfo.Text := 'Centro: ' + Val1; + end; +end; + + +procedure TfrViewListaDevoluciones.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaDevoluciones.cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1: string; +begin + inherited; + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := AText + '-' + Val1; + +end; + +procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + if Length(VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index])) > 0 then + AText := AText + ' (' + VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index]) + ')'; +end; + +procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + + if VarToStr(ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]) = 'N' then + AStyle := cxStyle1; +end; + +procedure TfrViewListaDevoluciones.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaDevoluciones.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaDevoluciones.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup +end; + +procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaDevoluciones.cxGridViewENVIADO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaDevoluciones.cxGridViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + with Sender.GridView.DataController do + begin + Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewENVIADO_RECT.Index], 0); + Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewSOLICITADO.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaDevoluciones.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyle1.Font.Style; + AnItem.Font.Color := cxStyle1.Font.Color; + end; + end; +end; + +procedure TfrViewListaDevoluciones.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +function TfrViewListaDevoluciones.GetVistaActiva: TvDevolucionesVistaActiva; +begin + if FTipo = 'N' then + Result := tdvaPendiente + else if FTipo = 'S' then + Result := tdvaAprobado + else + Result := tdvaTodos; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas new file mode 100644 index 0000000..ba34a6a --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas @@ -0,0 +1,77 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizDevoluciones; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_DEVOLUCIONES = 'Client.Devoluciones'; + +type + TInvDevolucionEstado = (tidPendiente, tidAprobado); + + IBizDevoluciones = interface(IDAStronglyTypedDataTable) //IRecepciones) + ['{E7196FF3-EFC9-45FC-AA50-C0C79F567ECA}'] + procedure Show; + procedure SetEstado(const AValue : TInvDevolucionEstado); + function GetEstado : TInvDevolucionEstado ; + property Estado : TInvDevolucionEstado read GetEstado write SetEstado; + end; + + + TBizDevolucionesDataTableRules = class(TDADataTableRules, IBizDevoluciones) + protected + procedure SetEstado(const AValue : TInvDevolucionEstado); + function GetEstado : TInvDevolucionEstado ; + public + procedure Show; + property Estado : TInvDevolucionEstado read GetEstado write SetEstado; + end; + + +implementation + +uses + uEditorUtils, uDataModuleDevoluciones; + +{ TBizDevolucionesDataTableRules } + +function TBizDevolucionesDataTableRules.GetEstado: TInvDevolucionEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := tidAprobado + else + Result := tidPendiente +end; + +procedure TBizDevolucionesDataTableRules.SetEstado( + const AValue: TInvDevolucionEstado); +begin + case AValue of + tidPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + tidAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizDevolucionesDataTableRules.Show; +begin + ShowEditor(IBizDevoluciones, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_DEVOLUCIONES, TBizDevolucionesDataTableRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm new file mode 100644 index 0000000..647da8b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm @@ -0,0 +1,1505 @@ +object srvDevoluciones: TsrvDevoluciones + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schDevoluciones + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schDevoluciones: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'Devoluciones' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' *'#10'FROM RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROBADO' + + ' = '#39'N'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'DevolucionesPendientes' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROB' + + 'ADO = '#39'S'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'NUMHOJA' + TableField = 'NUMHOJA' + end + item + DatasetField = 'ESTADO_HOJA' + TableField = 'ESTADO_HOJA' + end + item + DatasetField = 'OBSERVACIONES_HOJA' + TableField = 'OBSERVACIONES_HOJA' + end + item + DatasetField = 'CONTABILIZAR_HOJA' + TableField = 'CONTABILIZAR_HOJA' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'SOLICITADO' + TableField = 'SOLICITADO' + end + item + DatasetField = 'ER38' + TableField = 'ER38' + end + item + DatasetField = 'ER40' + TableField = 'ER40' + end + item + DatasetField = 'ER42' + TableField = 'ER42' + end + item + DatasetField = 'ER44' + TableField = 'ER44' + end + item + DatasetField = 'ER46' + TableField = 'ER46' + end + item + DatasetField = 'ER48' + TableField = 'ER48' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'DevolucionesAprobadas' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_APROBADO' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHACAMBIO' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Devoluciones_CENTRO' + InPrimaryKey = True + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Devoluciones_FILIAL' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Devoluciones_CODIGO' + InPrimaryKey = True + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Devoluciones_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Devoluciones_COLOR' + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Devoluciones_FECHA' + InPrimaryKey = True + end + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + DictionaryEntry = 'Devoluciones_NUMHOJA' + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + DictionaryEntry = 'Devoluciones_ESTADO_HOJA' + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' + end + item + Name = 'S38' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S38' + end + item + Name = 'S40' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S40' + end + item + Name = 'S42' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S42' + end + item + Name = 'S44' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S44' + end + item + Name = 'S46' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S46' + end + item + Name = 'S48' + DataType = datInteger + DictionaryEntry = 'Devoluciones_S48' + end + item + Name = 'SOLICITADO' + DataType = datInteger + DictionaryEntry = 'Devoluciones_SOLICITADO' + end + item + Name = 'E38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E38' + end + item + Name = 'E40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E40' + end + item + Name = 'E42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E42' + end + item + Name = 'E44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E44' + end + item + Name = 'E46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E46' + end + item + Name = 'E48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_E48' + end + item + Name = 'ENVIADO' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO' + end + item + Name = 'ER38' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER38' + end + item + Name = 'ER40' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER40' + end + item + Name = 'ER42' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER42' + end + item + Name = 'ER44' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER44' + end + item + Name = 'ER46' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER46' + end + item + Name = 'ER48' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ER48' + end + item + Name = 'ENVIADO_RECT' + DataType = datFloat + DictionaryEntry = 'Devoluciones_ENVIADO_RECT' + end + item + Name = 'DIFERENCIA' + DataType = datFloat + DictionaryEntry = 'Devoluciones_DIFERENCIA' + end> + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'SELECT '#10' ENVIADO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL' + + '_DEVOLUCIONES'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = ' + + ':CENTRO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ENVIADO_RECT' + TableField = 'ENVIADO_RECT' + end> + end> + Name = 'RefreshDevoluciones' + Fields = < + item + Name = 'ENVIADO_RECT' + DataType = datFloat + end + item + Name = 'DIFERENCIA' + DataType = datFloat + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'NUMHOJA' + DataType = datString + Size = 8 + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO_HOJA' + DataType = datString + Size = 20 + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'ER38' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER40' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER42' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER44' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER46' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'ER48' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' + SQL = + 'begin'#10#9'declare @rowcount_var int'#10#10' declare @NUMHOJA char(8)'#10' ' + + ' declare @ESTADO_HOJA varchar(20)'#10' declare @OBSERVACIONES_H' + + 'OJA varchar(255)'#10' declare @CONTABILIZAR_HOJA char(1)'#10#10' dec' + + 'lare @ER38 numeric(15,0)'#10' declare @ER40 numeric(15,0)'#10' dec' + + 'lare @ER42 numeric(15,0)'#10' declare @ER44 numeric(15,0)'#10' dec' + + 'lare @ER46 numeric(15,0)'#10' declare @ER48 numeric(15,0)'#10#10' de' + + 'clare @APROBADO char(1)'#10' declare @FECHA datetime'#10' declare ' + + '@CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' declare ' + + '@COLOR varchar(10)'#10#10' set @NUMHOJA = :NUMHOJA'#10' set @ESTADO_' + + 'HOJA = :ESTADO_HOJA'#10' set @OBSERVACIONES_HOJA = :OBSERVACIONES' + + '_HOJA'#10' set @CONTABILIZAR_HOJA = :CONTABILIZAR_HOJA'#10#10' set @' + + 'ER38 = :ER38'#10' set @ER40 = :ER40'#10' set @ER42 = :ER42'#10' set' + + ' @ER44 = :ER44'#10' set @ER46 = :ER46'#10' set @ER48 = :ER48'#10#10' ' + + 'set @APROBADO = :APROBADO'#10' set @FECHA = :FECHA'#10' set @CENTR' + + 'O = :CENTRO'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10#10' ' + + ' /* *********************************** */'#10' if @NUMHOJA <> ' + + #39#39#10' begin'#10#9' update RDX_AJUSTES_HOJA_DEVOLUCIONES set'#10#9' ' + + ' ESTADO = @ESTADO_HOJA,'#10#9#9' OBSERVACIONES = @OBSERVA' + + 'CIONES_HOJA,'#10#9#9' CONTABILIZAR = @CONTABILIZAR_HOJA'#10#9' wh' + + 'ere RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = @NUMHOJA'#10#10#9#9' select ' + + '@ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9' if @ROWCOUNT_VAR = 0'#10#9#9' begin'#10 + + #9' insert into RDX_AJUSTES_HOJA_DEVOLUCIONES'#10#9' ' + + ' (NUMHOJA, ESTADO, OBSERVACIONES, CONTABILIZAR)'#10#9#9' va' + + 'lues (@NUMHOJA, @ESTADO_HOJA,'#10#9' @OBSERVACIONES_' + + 'HOJA, @CONTABILIZAR_HOJA)'#10#9' end'#10' end'#10#10#10' /* ***********' + + '************************ */'#10#9'update RDX_DEVOLUCION_AJUSTES set'#10#9 + + ' CANT38 = @ER38,'#10#9' CANT40 = @ER40,'#10#9' ' + + ' CANT42 = @ER42,'#10#9' CANT44 = @ER44,'#10#9' CANT4' + + '6 = @ER46,'#10#9' CANT48 = @ER48,'#10' APROBADO =' + + ' @APROBADO,'#10' FECHACAMBIO = CURRENT_TIMESTAMP'#10#9'wher' + + 'e'#10' (RDX_DEVOLUCION_AJUSTES.CENTRO = @CENTRO and'#10#9' ' + + ' RDX_DEVOLUCION_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_DEVOLU' + + 'CION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_DEVOLUCION_AJUSTES.FE' + + 'CHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT' + + '_VAR = 0'#10' begin'#10' insert into RDX_DEVOLUCION_AJUSTES'#10' ' + + ' (FECHA, CENTRO, CODIGO, COLOR,'#10' A' + + 'PROBADO, FECHACAMBIO,'#10' CANT38, CANT40, CANT42,'#10' ' + + ' CANT44, CANT46, CANT48)'#10' values ('#10' ' + + ' @FECHA, @CENTRO, @CODIGO,'#10' @COLOR, @A' + + 'PROBADO, CURRENT_TIMESTAMP,'#10' @ER38, @ER40, @ER42' + + ','#10' @ER44, @ER46, @ER48)'#10' end'#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Devoluciones' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object bpDevoluciones: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'Devoluciones' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpDevolucionesAprobadas: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'DevolucionesAprobadas' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpDevolucionesPendientes: TDABusinessProcessor + Schema = schDevoluciones + UpdateCommandName = 'Update_Estado_Devoluciones' + RefreshDatasetName = 'RefreshDevoluciones' + ReferencedDataset = 'DevolucionesPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Devoluciones_APROBADO' + DataType = datString + Size = 1 + DisplayLabel = 'APROBADO' + end + item + Name = 'Devoluciones_FECHACAMBIO' + DataType = datDateTime + DisplayLabel = 'FECHACAMBIO' + end + item + Name = 'Devoluciones_CENTRO' + DataType = datString + Size = 17 + DisplayLabel = 'CENTRO' + ReadOnly = True + end + item + Name = 'Devoluciones_FILIAL' + DataType = datString + Size = 25 + DisplayLabel = 'FILIAL' + ReadOnly = True + end + item + Name = 'Devoluciones_CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'CODIGO' + ReadOnly = True + end + item + Name = 'Devoluciones_PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'PRODUCTO' + ReadOnly = True + end + item + Name = 'Devoluciones_COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'COLOR' + ReadOnly = True + end + item + Name = 'Devoluciones_FECHA' + DataType = datDateTime + DisplayLabel = 'FECHA' + ReadOnly = True + end + item + Name = 'Devoluciones_NUMHOJA' + DataType = datString + Size = 8 + DisplayLabel = 'NUMHOJA' + end + item + Name = 'Devoluciones_ESTADO_HOJA' + DataType = datString + Size = 20 + DisplayLabel = 'ESTADO_HOJA' + end + item + Name = 'Devoluciones_OBSERVACIONES_HOJA' + DataType = datString + Size = 255 + DisplayLabel = 'OBSERVACIONES_HOJA' + end + item + Name = 'Devoluciones_CONTABILIZAR_HOJA' + DataType = datString + Size = 1 + DisplayLabel = 'CONTABILIZAR_HOJA' + end + item + Name = 'Devoluciones_S38' + DataType = datInteger + DisplayLabel = 'S38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S40' + DataType = datInteger + DisplayLabel = 'S40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S42' + DataType = datInteger + DisplayLabel = 'S42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S44' + DataType = datInteger + DisplayLabel = 'S44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S46' + DataType = datInteger + DisplayLabel = 'S46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_S48' + DataType = datInteger + DisplayLabel = 'S48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_SOLICITADO' + DataType = datInteger + DisplayLabel = 'SOLICITADO' + ReadOnly = True + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_E38' + DataType = datFloat + DisplayLabel = 'E38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E40' + DataType = datFloat + DisplayLabel = 'E40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E42' + DataType = datFloat + DisplayLabel = 'E42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E44' + DataType = datFloat + DisplayLabel = 'E44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E46' + DataType = datFloat + DisplayLabel = 'E46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_E48' + DataType = datFloat + DisplayLabel = 'E48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ENVIADO' + DataType = datFloat + DisplayLabel = 'ENVIADO' + ReadOnly = True + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_ER38' + DataType = datFloat + DisplayLabel = 'ER38' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER40' + DataType = datFloat + DisplayLabel = 'ER40' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER42' + DataType = datFloat + DisplayLabel = 'ER42' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER44' + DataType = datFloat + DisplayLabel = 'ER44' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER46' + DataType = datFloat + DisplayLabel = 'ER46' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ER48' + DataType = datFloat + DisplayLabel = 'ER48' + Alignment = taRightJustify + end + item + Name = 'Devoluciones_ENVIADO_RECT' + DataType = datFloat + DisplayLabel = 'ENVIADO_RECT' + Alignment = taRightJustify + ServerAutoRefresh = True + end + item + Name = 'Devoluciones_DIFERENCIA' + DataType = datFloat + DisplayLabel = 'DIFERENCIA' + Alignment = taRightJustify + ServerAutoRefresh = True + end> + Left = 48 + Top = 120 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 184 + end +end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas new file mode 100644 index 0000000..e52bb6e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas @@ -0,0 +1,51 @@ +unit srvDevoluciones_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvDevoluciones } + TsrvDevoluciones = class(TDARemoteService, IsrvDevoluciones) + bpDevoluciones: TDABusinessProcessor; + bpDevolucionesAprobadas: TDABusinessProcessor; + bpDevolucionesPendientes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schDevoluciones: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvDevoluciones methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvDevoluciones(out anInstance : IUnknown); +begin + anInstance := TsrvDevoluciones.Create(NIL); +end; + +{ srvDevoluciones } +initialization + TROClassFactory.Create('srvDevoluciones', Create_srvDevoluciones, TsrvDevoluciones_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj new file mode 100644 index 0000000..3469638 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + FicherosEDI.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg new file mode 100644 index 0000000..396e927 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof new file mode 100644 index 0000000..c912ddd --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof @@ -0,0 +1,474 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=2 +Item0=..\..\..\..\Output\Cliente +Item1=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk new file mode 100644 index 0000000..7b45b1e --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk @@ -0,0 +1,74 @@ +package FicherosEDI; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + vcl, + rtl, + PluginSDK_D10R, + GUISDK_D10, + PNG_D10, + PngComponentsD10, + BaseD10, + JvWizardD10R, + dbrtl, + vclx, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + vclactnband, + tb2k_D10, + tbx_D10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R; + +contains + uPluginControllerFicherosEDI in 'uPluginControllerFicherosEDI.pas' {ModuleFicherosEDI: TModuleController}, + uAsistenteCargaFicheros in 'uAsistenteCargaFicheros.pas' {fAsistenteCargaFicheros}, + uSubirFicheros in 'uSubirFicheros.pas', + uCargarFicheros in 'uCargarFicheros.pas', + uEditorHistorialCargasEDI in 'uEditorHistorialCargasEDI.pas' {fEditorHistorialCargasEDI: TCustomEditor}, + uViewHistorialCargasEDI in 'uViewHistorialCargasEDI.pas' {frViewHistorialCargasEDI: TCustomView}, + uDataModuleFicherosEDI in 'uDataModuleFicherosEDI.pas' {dmFicherosEDI: TDAClientDataModule}, + schEDILogClient_Intf in '..\Reglas\schEDILogClient_Intf.pas', + uBizEDILog in '..\Reglas\uBizEDILog.pas', + schEDILogServer_Intf in '..\Reglas\schEDILogServer_Intf.pas'; + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache new file mode 100644 index 0000000000000000000000000000000000000000..41c8bfd3281985188a26730d4a3619ceb8bd58eb GIT binary patch literal 1531 zcmd7S!AiqG5C-6Q^(pcMK7coyR4iC1hW4}|V=|^A>rR>3Rq*6R4}v22!fsQOLn!pt zbq{+Q*pGkM|1`_8?~~%(lw5~LbY63CO-+K^|tB8@kJEkIh>PMmE(BWgJB zNpu}YdidD%lf<;Jp(R(a^TO8RpxYDLXA)ou9=e@lAKV_=TM}9o?q~>Xyw2BSl5ViI zpe9V{C8l%D?O5}XK%@0~huMA4+nMwCW7pR)T|-T*2%is^MAFPElqZybl-Y&GR^7I2 L*JAx&9PjfN!Xp}# literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm new file mode 100644 index 0000000..f8be239 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm @@ -0,0 +1,2769 @@ +object fAsistenteCargaFicheros: TfAsistenteCargaFicheros + Left = 494 + Top = 309 + ActiveControl = JvWizardWelcomePage1 + BorderStyle = bsDialog + Caption = 'Asistente para la carga de ficheros EDI' + ClientHeight = 399 + ClientWidth = 608 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object JvWizard1: TJvWizard + Left = 0 + Top = 0 + Width = 608 + Height = 399 + ActivePage = JvWizardWelcomePage1 + ButtonBarHeight = 42 + ButtonStart.Caption = 'To &Start Page' + ButtonStart.NumGlyphs = 1 + ButtonStart.Width = 85 + ButtonLast.Caption = 'To &Last Page' + ButtonLast.NumGlyphs = 1 + ButtonLast.Width = 85 + ButtonBack.Caption = '< &Atr'#225's' + ButtonBack.NumGlyphs = 1 + ButtonBack.Width = 75 + ButtonNext.Caption = '&Siguiente >' + ButtonNext.NumGlyphs = 1 + ButtonNext.Width = 75 + ButtonFinish.Caption = '&Finalizar' + ButtonFinish.NumGlyphs = 1 + ButtonFinish.Width = 75 + ButtonCancel.Caption = 'Cancelar' + ButtonCancel.NumGlyphs = 1 + ButtonCancel.ModalResult = 2 + ButtonCancel.Width = 75 + ButtonHelp.Caption = '&Ayuda' + ButtonHelp.NumGlyphs = 1 + ButtonHelp.Width = 75 + ShowRouteMap = False + OnFinishButtonClick = JvWizard1FinishButtonClick + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + DesignSize = ( + 608 + 399) + object JvWizardWelcomePage1: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Carga de datos de ficheros EDI' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = 'Bienvenido al asistente de carga de ficheros de datos EDI.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + WaterMark.Image.Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 + 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 + 74455874536F6674776172650041646F626520496D616765526561647971C965 + 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 + ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 + 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF + C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE + FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 + B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD + 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 + FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 + B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 + 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 + FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 + BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 + 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 + D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 + A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 + 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 + EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 + 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 + 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 + F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB + B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB + 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD + FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 + D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 + 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF + B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C + 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF + 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E + 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 + 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F + 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 + DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 + A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 + D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 + F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 + CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 + E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 + 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F + EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 + F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 + B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 + 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 + 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B + 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 + 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 + 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B + 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 + 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 + 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 + 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 + 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB + 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 + 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C + B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F + C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 + 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E + B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 + 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 + 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A + E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA + DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B + 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 + 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD + A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 + CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B + FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A + EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 + 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C + 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 + EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F + B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 + 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB + E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 + C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D + 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 + 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 + E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED + 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 + 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A + 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 + 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 + B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 + 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC + 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 + 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 + 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 + 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF + C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A + A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 + 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E + 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD + 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C + 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 + 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 + 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA + C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 + 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 + BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A + E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 + F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED + 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE + 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 + 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F + 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC + 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 + 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 + E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A + 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 + 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 + 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C + 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 + 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF + D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 + 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 + 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 + AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE + 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 + 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 + 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 + 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB + 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 + 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F + CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E + 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 + 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA + A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 + 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A + 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 + DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 + 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 + 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 + D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F + D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 + 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 + BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 + F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 + EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 + 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 + 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED + 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 + 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A + 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 + FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 + 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 + E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 + 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 + 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F + 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 + B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B + D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B + B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 + 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB + 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA + 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 + FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F + 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 + 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 + A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC + 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD + 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 + E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 + D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 + A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 + DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED + 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 + 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 + 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF + F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B + 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 + 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B + BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 + 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B + 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 + 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 + 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 + AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 + 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 + E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 + 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC + D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B + 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 + 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C + E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 + DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F + DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF + 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 + D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 + 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF + 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 + 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 + 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 + D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 + 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA + 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 + 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 + E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D + DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 + ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A + 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 + 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C + C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 + 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E + 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 + F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C + F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 + 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C + AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB + E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 + 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 + 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA + E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E + 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 + BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 + 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D + 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 + 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F + 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC + 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 + F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 + 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 + 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C + 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 + BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F + 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 + B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD + 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF + FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 + 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 + C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A + 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 + 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 + 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 + 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 + 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 + 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 + 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C + 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE + 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC + 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC + E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 + 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 + 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 + 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F + 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C + 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 + 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 + 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 + 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 + 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E + 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A + 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE + DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 + 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 + 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 + 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E + 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 + 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 + DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 + 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 + 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC + D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 + 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 + BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C + F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 + E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 + 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 + 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 + DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 + C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 + 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 + 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 + E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 + A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 + CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD + 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C + 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 + 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 + D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB + 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 + 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 + 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 + A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 + 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 + C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 + A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 + E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E + 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 + 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 + 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 + 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 + C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 + 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 + 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E + 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 + 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 + E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 + C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 + 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E + D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 + 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D + 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C + BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 + F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 + 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 + E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 + 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 + 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C + 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 + 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 + CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 + 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E + 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 + D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD + 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 + B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A + 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C + C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 + ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F + 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C + E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 + 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD + 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 + 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 + 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C + A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 + A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB + DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 + 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 + D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 + 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 + 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F + E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 + 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF + 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E + 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 + 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 + 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 + A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A + B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F + 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 + BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 + F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 + E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 + 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC + DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 + F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 + 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 + A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D + 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 + 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D + 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 + EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 + EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 + 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D + A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 + D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 + C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 + C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 + A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 + 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 + 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C + A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 + 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 + 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB + CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D + 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 + B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E + 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 + 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 + 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B + A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 + C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 + 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 + A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 + 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 + 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A + 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 + 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 + F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 + BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B + F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD + 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 + 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 + CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 + 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC + BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE + AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 + 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF + 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 + 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 + 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 + 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 + A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 + 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 + A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 + DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 + 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D + 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 + 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 + D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 + 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 + 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 + BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 + 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 + 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A + 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF + 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 + 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 + B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D + 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 + ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 + 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F + 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 + 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C + 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 + 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 + ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 + 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F + 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD + 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 + 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 + 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 + 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 + 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 + 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D + D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 + D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 + 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB + 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 + B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 + 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 + 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F + 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 + B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB + 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 + C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 + 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 + F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 + 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 + 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 + 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 + 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF + 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 + 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A + 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 + 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 + 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 + 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE + BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF + 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 + A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB + 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 + F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 + 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C + 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 + F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A + 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 + 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 + 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 + 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 + 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 + 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 + BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 + EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 + C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC + 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 + C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 + 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B + 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 + BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 + 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 + 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 + CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 + A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D + F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 + 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD + 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 + 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E + 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 + 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC + AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB + 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 + 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D + 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D + 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 + 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C + FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 + 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 + BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 + B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF + 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 + 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 + 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 + B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 + FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A + 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 + FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 + 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC + 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A + B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 + 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 + 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F + DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED + 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 + 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B + 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 + 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA + 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 + 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 + 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 + 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 + 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 + A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 + FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 + E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 + 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 + 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC + DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C + 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D + 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 + DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 + F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 + B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 + 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 + 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F + 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 + 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A + CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B + 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF + 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB + 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D + F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 + 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 + 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 + AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 + 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF + 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 + A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 + B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B + 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 + 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 + 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA + 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 + 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 + 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C + BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 + BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC + E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD + 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 + 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC + 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 + 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 + 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 + 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 + 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C + 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 + C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F + 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 + 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB + FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F + 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 + 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 + FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 + 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 + 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 + F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C + DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 + E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 + 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC + 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF + 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 + 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 + 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 + 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 + 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 + F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 + 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E + 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 + B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C + 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 + 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 + F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 + A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 + A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 + 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA + EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 + 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F + A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 + 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 + C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 + 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB + 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 + 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF + FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC + 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A + 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 + DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 + 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD + 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 + 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 + A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 + 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 + F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B + 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF + CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 + 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA + DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 + 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A + 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC + 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 + 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 + 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 + 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A + C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 + 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F + 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 + 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A + 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB + BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 + B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB + 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC + 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 + 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 + 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 + 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 + EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF + 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 + B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 + 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 + A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 + 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F + D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C + 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 + 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B + 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 + A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 + 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 + 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF + 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 + 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 + C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B + 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 + A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 + 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 + AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 + 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB + 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 + ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 + 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 + D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 + 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C + A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB + C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 + 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 + 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 + E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 + 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F + FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 + A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 + 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C + 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE + F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F + 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A + F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 + 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB + EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 + A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 + 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 + 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 + 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A + 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F + 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 + AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 + 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 + 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 + 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 + D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 + BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 + 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF + A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 + 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A + 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA + E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 + 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 + 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 + 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 + D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B + 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD + B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 + E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 + F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 + D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 + 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 + 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F + 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F + 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 + 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F + E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 + FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C + 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 + 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 + 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE + B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 + 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 + ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 + A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF + 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B + 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 + 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 + 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 + 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 + AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C + 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC + 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB + 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A + 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 + F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 + 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B + A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 + 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB + A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 + 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 + 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 + 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 + A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 + E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF + FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 + 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 + 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C + C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 + 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 + 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD + 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D + 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C + B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 + 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC + 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E + 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 + 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 + 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 + E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 + D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 + AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF + D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 + E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 + EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 + 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 + 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 + 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 + 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 + CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 + 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA + 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 + 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E + C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E + E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 + 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 + 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 + 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 + D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C + D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D + 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC + 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 + E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 + D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 + C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 + 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C + 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 + 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E + 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 + BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 + A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B + 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A + 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 + 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C + EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E + BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 + E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 + D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 + 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 + CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 + 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE + 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A + 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 + 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 + 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E + 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 + D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 + DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 + B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 + D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D + 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 + FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D + 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 + 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B + 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 + E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 + B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 + 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 + E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F + DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 + E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 + 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 + BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F + 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE + 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 + 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E + 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 + 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 + 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B + 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 + 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 + F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 + 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 + 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 + 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A + 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B + D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 + 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA + 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 + A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 + D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A + 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 + 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 + B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 + 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 + A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 + AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D + 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC + 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F + EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE + 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA + 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 + ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A + BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 + 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 + 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE + DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 + 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 + 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B + 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 + 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD + 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E + 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 + 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 + 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F + 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 + 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 + D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 + 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 + 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC + EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 + 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 + DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 + 056401991B159005646E54401690B951015940E646056401991B159005646E54 + 401690B951015940E646056401991B159005646E54401690B951015940E64605 + 6401991B159005646E54401690B951015940E646056401991B159005646E5440 + 1690B951015940E646056401991B159005646E54401690B951015940E6460564 + 01991B159005646E54401690B951015940E646056401991B159005646E544016 + 90B951015940E646056401991B159005646E54401690B951015940E646056401 + 991B159005646E54401690B951015940E646056401991B159005646E54401690 + B951015940E646056401991B159005646E54401690B951015940E64605640199 + 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 + 51015940E646056401991B159005646E54401690B951015940E646056401991B + 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 + AE426082} + WaterMark.Image.Layout = ilTile + object Label1: TLabel + Left = 168 + Top = 344 + Width = 186 + Height = 13 + Caption = 'Haga click en Siguiente para continuar.' + end + object Label3: TLabel + Left = 168 + Top = 72 + Width = 364 + Height = 32 + Caption = + 'Este asistente le ayudar'#225' a cargar datos de ventas e inventario ' + + #13#10'desde ficheros EDI.' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + end + object pageRutas: TJvWizardInteriorPage + Header.Title.Color = clNone + Header.Title.Text = 'Opciones de carga' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -16 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'Indique cu'#225'les son los datos que desea cargar y el nombre y la r' + + 'uta de los ficheros EDI.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.AnchorPlacement = 8 + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -11 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + EnabledButtons = [bkStart, bkLast, bkBack, bkFinish, bkCancel, bkHelp] + object cxGroupBox1: TcxGroupBox + Left = 15 + Top = 84 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 121 + Width = 585 + object Label5: TLabel + Left = 28 + Top = 84 + Width = 103 + Height = 13 + Caption = 'Fichero ARTVEN.TXT:' + end + object Label4: TLabel + Left = 29 + Top = 57 + Width = 102 + Height = 13 + Caption = 'Fichero LUGVEN.TXT:' + end + object Label2: TLabel + Left = 28 + Top = 31 + Width = 103 + Height = 13 + Caption = 'Fichero CABVEN.TXT:' + end + object edtARTVEN: TJvFilenameEdit + Left = 140 + Top = 80 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 2 + OnChange = edtARTVENChange + end + object edtLUGVEN: TJvFilenameEdit + Left = 140 + Top = 53 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 1 + OnChange = edtLUGVENChange + end + object edtCABVEN: TJvFilenameEdit + Left = 140 + Top = 27 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + DirectInput = False + TabOrder = 0 + OnChange = edtCABVENChange + end + end + object cbVentas: TCheckBox + Left = 28 + Top = 82 + Width = 229 + Height = 17 + Caption = 'Cargar ficheros de datos relativos a ventas' + Checked = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + State = cbChecked + TabOrder = 0 + OnClick = cbVentasClick + end + object cxGroupBox2: TcxGroupBox + Left = 15 + Top = 219 + 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 + Height = 121 + Width = 585 + object Label8: TLabel + Left = 28 + Top = 84 + Width = 103 + Height = 13 + Caption = 'Fichero ARTVEN.TXT:' + Visible = False + end + object Label9: TLabel + Left = 29 + Top = 57 + Width = 102 + Height = 13 + Caption = 'Fichero LUGVEN.TXT:' + Visible = False + end + object Label10: TLabel + Left = 28 + Top = 31 + Width = 103 + Height = 13 + Caption = 'Fichero CABVEN.TXT:' + Visible = False + end + object JvFilenameEdit1: TJvFilenameEdit + Left = 140 + Top = 80 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 2 + Visible = False + end + object JvFilenameEdit2: TJvFilenameEdit + Left = 140 + Top = 53 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 1 + Visible = False + end + object JvFilenameEdit3: TJvFilenameEdit + Left = 140 + Top = 27 + Width = 420 + Height = 21 + AddQuotes = False + Filter = 'Ficheros de texto (*.TXT)|*.TXT' + DialogTitle = 'Buscar fichero de datos' + TabOrder = 0 + Visible = False + end + end + object cbInventario: TCheckBox + Left = 28 + Top = 218 + Width = 243 + Height = 17 + Caption = 'Cargar ficheros de datos relativos a inventario' + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + end + end + object pagFinal: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Fin del asistente de carga de ficheros' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'A continuaci'#243'n, el asistente copiar'#225' los ficheros en el servidor' + + ' y realizar'#225' la carga de los datos.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + EnabledButtons = [bkStart, bkLast, bkBack, bkNext, bkCancel, bkHelp] + VisibleButtons = [bkBack, bkFinish, bkCancel] + OnEnterPage = pagFinalEnterPage + OnPage = pagFinalPage + WaterMark.Image.Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 + 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 + 74455874536F6674776172650041646F626520496D616765526561647971C965 + 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 + ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 + 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF + C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE + FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 + B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD + 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 + FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 + B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 + 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 + FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 + BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 + 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 + D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 + A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 + 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 + EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 + 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 + 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 + F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB + B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB + 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD + FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 + D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 + 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF + B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C + 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF + 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E + 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 + 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F + 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 + DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 + A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 + D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 + F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 + CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 + E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 + 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F + EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 + F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 + B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 + 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 + 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B + 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 + 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 + 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B + 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 + 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 + 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 + 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 + 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB + 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 + 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C + B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F + C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 + 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E + B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 + 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 + 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A + E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA + DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B + 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 + 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD + A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 + CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B + FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A + EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 + 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C + 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 + EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F + B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 + 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB + E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 + C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D + 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 + 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 + E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED + 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 + 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A + 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 + 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 + B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 + 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC + 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 + 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 + 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 + 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF + C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A + A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 + 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E + 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD + 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C + 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 + 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 + 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA + C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 + 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 + BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A + E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 + F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED + 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE + 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 + 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F + 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC + 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 + 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 + E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A + 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 + 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 + 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C + 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 + 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF + D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 + 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 + 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 + AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE + 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 + 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 + 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 + 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB + 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 + 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F + CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E + 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 + 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA + A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 + 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A + 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 + DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 + 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 + 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 + D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F + D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 + 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 + BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 + F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 + EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 + 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 + 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED + 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 + 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A + 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 + FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 + 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 + E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 + 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 + 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F + 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 + B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B + D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B + B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 + 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB + 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA + 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 + FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F + 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 + 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 + A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC + 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD + 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 + E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 + D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 + A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 + DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED + 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 + 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 + 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF + F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B + 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 + 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B + BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 + 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B + 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 + 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 + 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 + AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 + 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 + E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 + 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC + D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B + 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 + 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C + E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 + DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F + DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF + 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 + D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 + 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF + 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 + 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 + 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 + D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 + 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA + 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 + 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 + E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D + DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 + ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A + 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 + 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C + C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 + 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E + 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 + F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C + F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 + 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C + AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB + E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 + 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 + 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA + E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E + 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 + BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 + 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D + 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 + 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F + 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC + 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 + F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 + 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 + 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C + 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 + BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F + 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 + B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD + 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF + FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 + 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 + C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A + 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 + 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 + 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 + 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 + 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 + 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 + 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C + 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE + 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC + 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC + E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 + 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 + 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 + 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F + 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C + 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 + 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 + 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 + 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 + 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E + 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A + 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE + DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 + 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 + 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 + 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E + 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 + 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 + DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 + 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 + 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC + D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 + 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 + BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C + F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 + E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 + 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 + 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 + DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 + C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 + 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 + 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 + E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 + A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 + CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD + 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C + 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 + 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 + D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB + 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 + 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 + 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 + A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 + 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 + C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 + A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 + E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E + 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 + 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 + 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 + 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 + C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 + 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 + 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E + 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 + 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 + E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 + C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 + 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E + D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 + 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D + 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C + BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 + F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 + 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 + E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 + 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 + 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C + 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 + 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 + CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 + 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E + 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 + D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD + 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 + B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A + 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C + C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 + ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F + 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C + E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 + 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD + 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 + 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 + 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C + A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 + A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB + DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 + 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 + D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 + 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 + 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F + E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 + 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF + 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E + 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 + 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 + 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 + A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A + B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F + 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 + BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 + F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 + E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 + 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC + DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 + F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 + 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 + A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D + 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 + 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D + 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 + EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 + EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 + 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D + A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 + D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 + C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 + C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 + A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 + 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 + 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C + A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 + 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 + 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB + CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D + 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 + B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E + 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 + 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 + 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B + A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 + C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 + 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 + A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 + 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 + 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A + 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 + 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 + F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 + BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B + F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD + 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 + 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 + CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 + 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC + BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE + AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 + 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF + 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 + 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 + 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 + 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 + A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 + 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 + A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 + DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 + 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D + 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 + 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 + D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 + 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 + 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 + BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 + 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 + 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A + 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF + 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 + 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 + B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D + 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 + ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 + 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F + 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 + 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C + 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 + 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 + ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 + 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F + 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD + 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 + 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 + 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 + 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 + 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 + 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D + D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 + D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 + 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB + 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 + B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 + 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 + 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F + 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 + B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB + 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 + C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 + 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 + F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 + 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 + 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 + 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 + 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF + 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 + 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A + 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 + 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 + 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 + 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE + BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF + 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 + A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB + 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 + F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 + 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C + 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 + F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A + 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 + 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 + 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 + 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 + 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 + 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 + BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 + EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 + C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC + 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 + C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 + 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B + 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 + BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 + 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 + 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 + CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 + A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D + F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 + 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD + 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 + 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E + 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 + 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC + AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB + 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 + 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D + 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D + 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 + 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C + FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 + 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 + BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 + B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF + 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 + 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 + 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 + B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 + FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A + 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 + FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 + 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC + 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A + B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 + 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 + 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F + DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED + 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 + 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B + 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 + 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA + 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 + 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 + 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 + 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 + 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 + A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 + FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 + E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 + 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 + 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC + DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C + 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D + 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 + DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 + F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 + B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 + 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 + 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F + 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 + 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A + CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B + 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF + 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB + 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D + F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 + 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 + 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 + AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 + 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF + 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 + A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 + B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B + 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 + 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 + 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA + 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 + 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 + 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C + BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 + BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC + E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD + 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 + 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC + 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 + 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 + 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 + 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 + 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C + 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 + C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F + 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 + 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB + FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F + 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 + 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 + FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 + 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 + 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 + F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C + DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 + E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 + 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC + 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF + 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 + 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 + 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 + 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 + 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 + F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 + 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E + 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 + B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C + 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 + 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 + F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 + A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 + A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 + 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA + EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 + 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F + A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 + 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 + C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 + 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB + 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 + 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF + FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC + 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A + 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 + DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 + 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD + 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 + 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 + A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 + 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 + F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B + 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF + CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 + 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA + DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 + 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A + 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC + 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 + 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 + 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 + 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A + C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 + 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F + 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 + 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A + 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB + BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 + B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB + 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC + 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 + 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 + 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 + 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 + EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF + 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 + B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 + 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 + A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 + 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F + D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C + 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 + 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B + 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 + A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 + 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 + 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF + 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 + 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 + C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B + 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 + A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 + 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 + AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 + 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB + 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 + ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 + 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 + D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 + 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C + A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB + C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 + 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 + 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 + E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 + 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F + FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 + A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 + 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C + 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE + F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F + 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A + F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 + 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB + EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 + A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 + 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 + 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 + 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A + 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F + 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 + AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 + 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 + 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 + 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 + D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 + BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 + 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF + A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 + 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A + 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA + E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 + 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 + 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 + 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 + D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B + 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD + B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 + E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 + F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 + D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 + 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 + 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F + 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F + 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 + 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F + E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 + FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C + 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 + 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 + 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE + B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 + 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 + ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 + A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF + 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B + 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 + 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 + 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 + 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 + AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C + 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC + 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB + 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A + 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 + F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 + 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B + A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 + 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB + A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 + 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 + 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 + 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 + A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 + E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF + FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 + 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 + 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C + C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 + 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 + 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD + 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D + 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C + B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 + 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC + 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E + 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 + 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 + 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 + E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 + D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 + AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF + D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 + E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 + EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 + 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 + 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 + 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 + 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 + CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 + 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA + 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 + 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E + C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E + E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 + 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 + 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 + 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 + D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C + D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D + 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC + 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 + E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 + D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 + C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 + 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C + 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 + 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E + 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 + BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 + A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B + 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A + 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 + 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C + EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E + BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 + E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 + D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 + 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 + CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 + 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE + 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A + 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 + 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 + 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E + 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 + D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 + DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 + B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 + D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D + 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 + FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D + 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 + 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B + 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 + E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 + B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 + 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 + E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F + DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 + E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 + 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 + BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F + 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE + 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 + 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E + 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 + 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 + 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B + 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 + 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 + F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 + 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 + 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 + 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A + 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B + D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 + 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA + 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 + A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 + D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A + 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 + 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 + B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 + 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 + A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 + AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D + 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC + 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F + EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE + 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA + 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 + ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A + BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 + 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 + 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE + DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 + 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 + 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B + 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 + 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD + 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E + 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 + 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 + 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F + 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 + 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 + D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 + 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 + 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC + EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 + 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 + DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 + 056401991B159005646E54401690B951015940E646056401991B159005646E54 + 401690B951015940E646056401991B159005646E54401690B951015940E64605 + 6401991B159005646E54401690B951015940E646056401991B159005646E5440 + 1690B951015940E646056401991B159005646E54401690B951015940E6460564 + 01991B159005646E54401690B951015940E646056401991B159005646E544016 + 90B951015940E646056401991B159005646E54401690B951015940E646056401 + 991B159005646E54401690B951015940E646056401991B159005646E54401690 + B951015940E646056401991B159005646E54401690B951015940E64605640199 + 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 + 51015940E646056401991B159005646E54401690B951015940E646056401991B + 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 + AE426082} + WaterMark.Image.Layout = ilTile + object lblFinalizar: TLabel + Left = 168 + Top = 344 + Width = 219 + Height = 13 + Caption = 'Haga click en Finalizar para salir del asistente.' + Visible = False + end + object Label7: TLabel + Left = 224 + Top = 86 + Width = 254 + Height = 14 + Caption = 'Copiando fichero CABVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 224 + Top = 136 + Width = 252 + Height = 14 + Caption = 'Copiando fichero LUGVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 224 + Top = 185 + Width = 254 + Height = 14 + Caption = 'Copiando fichero ARTVEN en el servidor...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 224 + Top = 296 + Width = 223 + Height = 14 + Caption = 'Cargando datos desde los ficheros...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object imgOK1: TImage + Left = 200 + Top = 87 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgOK2: TImage + Left = 200 + Top = 137 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgOK3: TImage + Left = 200 + Top = 186 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object Bevel1: TBevel + Left = 200 + Top = 236 + Width = 404 + Height = 10 + Shape = bsBottomLine + end + object imgBAD1: TImage + Left = 198 + Top = 87 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgBAD2: TImage + Left = 198 + Top = 137 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgBAD3: TImage + Left = 198 + Top = 186 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object imgOK4: TImage + Left = 200 + Top = 296 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 + 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C + 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F + BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F + A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 + 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 + 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD + 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 + 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 + 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF + E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC + 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C + FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 + FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B + F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF + 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} + Visible = False + end + object imgBAD4: TImage + Left = 198 + Top = 296 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D + 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 + 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 + 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C + 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 + FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F + F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 + 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F + 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 + 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 + 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 + 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE + C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D + 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 + 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 + 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 + 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 + 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 + A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 + 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 + 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 + 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 + 5B380000000049454E44AE426082} + Visible = False + end + object lblError: TLabel + Left = 225 + Top = 316 + Width = 127 + Height = 13 + Caption = 'Mensaje de error al cargar' + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Transparent = True + Visible = False + end + object pbarCABVEN: TProgressBar + Left = 224 + Top = 104 + Width = 344 + Height = 17 + TabOrder = 0 + end + object pbarLUGVEN: TProgressBar + Left = 224 + Top = 154 + Width = 344 + Height = 17 + TabOrder = 1 + end + object pbarARTVEN: TProgressBar + Left = 224 + Top = 203 + Width = 344 + Height = 17 + TabOrder = 2 + end + object JvAnimate1: TJvAnimate + Left = 200 + Top = 296 + Width = 16 + Height = 16 + CommonAVI = aviFindComputer + StopFrame = 8 + Visible = False + end + object bCargar: TButton + Left = 200 + Top = 253 + Width = 97 + Height = 25 + Caption = '&Cargar ficheros' + Enabled = False + TabOrder = 4 + OnClick = bCargarClick + end + end + end + object RORemoteService: TRORemoteService + ServiceName = 'srvTransfereciaFicheros' + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + Left = 80 + Top = 256 + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas new file mode 100644 index 0000000..c2d2d34 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas @@ -0,0 +1,344 @@ +unit uAsistenteCargaFicheros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + cxGraphics, cxDropDownEdit, Mask, JvExMask, JvToolEdit, cxGroupBox, + ComCtrls, uROClient, SyncObjs, VARELA_Intf, + uROServiceComponent, uRORemoteService, uDataModuleBase, pngimage, + ExtCtrls, JvExComCtrls, JvAnimate; + +type + TfAsistenteCargaFicheros = class(TForm) + JvWizard1: TJvWizard; + JvWizardWelcomePage1: TJvWizardWelcomePage; + Label1: TLabel; + pageRutas: TJvWizardInteriorPage; + Label3: TLabel; + pagFinal: TJvWizardWelcomePage; + lblFinalizar: TLabel; + cbVentas: TCheckBox; + cbInventario: TCheckBox; + Label2: TLabel; + Label4: TLabel; + Label5: TLabel; + edtCABVEN: TJvFilenameEdit; + edtLUGVEN: TJvFilenameEdit; + edtARTVEN: TJvFilenameEdit; + cxGroupBox1: TcxGroupBox; + cxGroupBox2: TcxGroupBox; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + JvFilenameEdit1: TJvFilenameEdit; + JvFilenameEdit2: TJvFilenameEdit; + JvFilenameEdit3: TJvFilenameEdit; + Label7: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + pbarCABVEN: TProgressBar; + pbarLUGVEN: TProgressBar; + pbarARTVEN: TProgressBar; + RORemoteService: TRORemoteService; + imgOK1: TImage; + imgOK2: TImage; + imgOK3: TImage; + Bevel1: TBevel; + imgBAD1: TImage; + imgBAD2: TImage; + imgBAD3: TImage; + imgOK4: TImage; + imgBAD4: TImage; + lblError: TLabel; + JvAnimate1: TJvAnimate; + bCargar: TButton; + procedure JvWizard1FinishButtonClick(Sender: TObject); + procedure cbVentasClick(Sender: TObject); + procedure edtCABVENChange(Sender: TObject); + procedure edtLUGVENChange(Sender: TObject); + procedure edtARTVENChange(Sender: TObject); + procedure pagFinalEnterPage(Sender: TObject; + const FromPage: TJvWizardCustomPage); + procedure bCargarClick(Sender: TObject); + procedure pagFinalPage(Sender: TObject); + private + { Private declarations } + FCritical: TCriticalSection; + FFileService: IsrvTransfereciaFicheros; + procedure ActualizarBotonesNav; + procedure OnUploadAborted(Sender: TObject); + procedure OnUploadError(Sender: TObject); + procedure OnUploadFinished(Sender: TObject); + procedure OnUploadProgress(Sender: TObject); + procedure OnUploadStarted(Sender: TObject); + procedure OnLoadSuccess(Sender: TObject); + procedure OnLoadError(Sender : TObject); + procedure CargarFicherosEDI; + procedure SubirFicheros; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + procedure VerAsistenteEtiquetasMontajes; + +implementation + +uses + uSubirFicheros, uCargarFicheros; + +{$R *.dfm} + +procedure VerAsistenteEtiquetasMontajes; +var + fAsistenteCargaFicheros: TfAsistenteCargaFicheros; +begin + with TfAsistenteCargaFicheros.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + + +procedure TfAsistenteCargaFicheros.JvWizard1FinishButtonClick( + Sender: TObject); +begin + Close; +end; + +procedure TfAsistenteCargaFicheros.cbVentasClick(Sender: TObject); +begin + edtCABVEN.Enabled := (Sender as TCheckBox).Checked; + edtLUGVEN.Enabled := (Sender as TCheckBox).Checked; + edtARTVEN.Enabled := (Sender as TCheckBox).Checked; + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.ActualizarBotonesNav; +var + bActivarNext : Boolean; +begin + bActivarNext := True; + if JvWizard1.ActivePageIndex = 1 then // Rutas de ficheros + begin + bActivarNext := bActivarNext and (cbVentas.Checked or cbInventario.Checked); + + bActivarNext := bActivarNext and + ((Length(edtCABVEN.Text) > 0) and + (Length(edtLUGVEN.Text) > 0) and + (Length(edtARTVEN.Text) > 0)); + pageRutas.EnableButton(bkNext, bActivarNext); + end; +end; + +procedure TfAsistenteCargaFicheros.edtCABVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.edtLUGVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.edtARTVENChange(Sender: TObject); +begin + ActualizarBotonesNav; +end; + +procedure TfAsistenteCargaFicheros.OnUploadAborted(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + imgBAD1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgBAD2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgBAD3.Visible := True; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadError(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + imgBAD1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgBAD2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgBAD3.Visible := True; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadFinished(Sender: TObject); +begin + fCritical.Enter; + with Sender as TSubirFicheroThread do + try + if UploadOK then + begin + if Pos(FileName, edtCABVEN.Text) > 0 then + imgOK1.Visible := True; + if Pos(FileName, edtLUGVEN.Text) > 0 then + imgOK2.Visible := True; + if Pos(FileName, edtARTVEN.Text) > 0 then + imgOK3.Visible := True; + end; + finally + fCritical.Leave; + end; + if imgOK1.Visible and imgOK2.Visible and imgOK3.Visible then + bCargar.Enabled := True; +end; + +procedure TfAsistenteCargaFicheros.OnUploadProgress(Sender: TObject); +begin + FCritical.Enter; + try + with Sender as TSubirFicheroThread do + begin + if Pos(FileName, edtCABVEN.Text) > 0 then + pbarCABVEN.Position := CurrentBytePos; + if Pos(FileName, edtLUGVEN.Text) > 0 then + pbarLUGVEN.Position := CurrentBytePos; + if Pos(FileName, edtARTVEN.Text) > 0 then + pbarARTVEN.Position := CurrentBytePos; + end; + finally + fCritical.Leave; + end; +end; + +procedure TfAsistenteCargaFicheros.OnUploadStarted(Sender: TObject); +begin + FCritical.Enter; + with Sender as TSubirFicheroThread do + try + if Pos(FileName, edtCABVEN.Text) > 0 then + pbarCABVEN.Max := FileSize; + if Pos(FileName, edtLUGVEN.Text) > 0 then + pbarLUGVEN.Max := FileSize; + if Pos(FileName, edtARTVEN.Text) > 0 then + pbarARTVEN.Max := FileSize; + finally + FCritical.Leave; + end; +end; + +constructor TfAsistenteCargaFicheros.Create(AOwner: TComponent); +begin + inherited; + FCritical := TCriticalSection.create; + FFileService := RORemoteService as IsrvTransfereciaFicheros; +end; + +destructor TfAsistenteCargaFicheros.Destroy; +begin + FFileService := nil; + FCritical.Free; + inherited; +end; + +procedure TfAsistenteCargaFicheros.pagFinalEnterPage( + Sender: TObject; const FromPage: TJvWizardCustomPage); +begin + SubirFicheros; +end; + +procedure TfAsistenteCargaFicheros.CargarFicherosEDI; +begin + JvAnimate1.Visible := True; + JvAnimate1.Active := True; + Label13.Visible := True; + pagFinal.EnableButton(bkBack, False); + pagFinal.EnableButton(bkCancel, False); + imgBAD4.Visible := False; + imgOK4.Visible := False; + lblError.Visible := False; + + TCargarVentasThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), + ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError); + +{ TCargarInventarioThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), + ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError);} +end; + +procedure TfAsistenteCargaFicheros.SubirFicheros; +begin + TSubirFicheroThread.Create(edtCABVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); + + TSubirFicheroThread.Create(edtLUGVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); + + TSubirFicheroThread.Create(edtARTVEN.Text, OnUploadStarted, OnUploadProgress, + OnUploadFinished, OnUploadAborted, OnUploadError); +end; + +procedure TfAsistenteCargaFicheros.OnLoadError(Sender: TObject); +begin + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + imgBAD4.Visible := True; + lblError.Caption := (Sender as TCargarFicherosThread).ErrorText; + lblError.Visible := True; + pagFinal.EnableButton(bkBack, True); + pagFinal.EnableButton(bkCancel, True); +end; + +procedure TfAsistenteCargaFicheros.OnLoadSuccess(Sender: TObject); +begin + Beep; + JvAnimate1.Visible := False; + JvAnimate1.Active := False; + imgOK4.Visible := True; + Label13.Caption := 'Ficheros cargados correctamente'; + lblFinalizar.Visible := True; + pagFinal.EnableButton(bkFinish, True); +end; + +procedure TfAsistenteCargaFicheros.bCargarClick(Sender: TObject); +begin + bCargar.Enabled := False; + CargarFicherosEDI; +end; + +procedure TfAsistenteCargaFicheros.pagFinalPage(Sender: TObject); +begin + bCargar.Enabled := False; + imgOK1.Visible := False; + imgOK2.Visible := False; + imgOK3.Visible := False; + imgOK4.Visible := False; + imgBAD1.Visible := False; + imgBAD2.Visible := False; + imgBAD3.Visible := False; + imgBAD4.Visible := False; + pbarCABVEN.Position := 0; + pbarLUGVEN.Position := 0; + pbarARTVEN.Position := 0; + JvAnimate1.Visible := False; + lblFinalizar.Visible := False; + lblError.Visible := False; + Label13.Visible := False; + Label13.Caption := 'Cargando datos desde los ficheros...'; + pagFinal.EnableButton(bkBack, True); + pagFinal.EnableButton(bkCancel, True); + pagFinal.EnableButton(bkFinish, False); +end; + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm new file mode 100644 index 0000000..cd43bed --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm @@ -0,0 +1,6759 @@ +object fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes + Left = 159 + Top = 496 + ActiveControl = bImprimir + BorderStyle = bsDialog + Caption = 'Asistente para la impresi'#243'n de etiquetas' + ClientHeight = 376 + ClientWidth = 520 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object JvWizard1: TJvWizard + Left = 0 + Top = 0 + Width = 520 + Height = 376 + ActivePage = JvWizardWelcomePage2 + ButtonBarHeight = 42 + ButtonStart.Caption = 'To &Start Page' + ButtonStart.NumGlyphs = 1 + ButtonStart.Width = 85 + ButtonLast.Caption = 'To &Last Page' + ButtonLast.NumGlyphs = 1 + ButtonLast.Width = 85 + ButtonBack.Caption = '< &Atr'#225's' + ButtonBack.NumGlyphs = 1 + ButtonBack.Width = 75 + ButtonNext.Caption = '&Siguiente >' + ButtonNext.NumGlyphs = 1 + ButtonNext.Width = 75 + ButtonFinish.Caption = '&Finalizar' + ButtonFinish.NumGlyphs = 1 + ButtonFinish.Width = 75 + ButtonCancel.Caption = 'Cancelar' + ButtonCancel.NumGlyphs = 1 + ButtonCancel.ModalResult = 2 + ButtonCancel.Width = 75 + ButtonHelp.Caption = '&Ayuda' + ButtonHelp.NumGlyphs = 1 + ButtonHelp.Width = 75 + ShowRouteMap = False + OnFinishButtonClick = JvWizard1FinishButtonClick + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + DesignSize = ( + 520 + 376) + object JvWizardWelcomePage1: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Impresi'#243'n de etiquetas' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = 'Bienvenido al asistente de impresi'#243'n de etiquetas para montajes.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + WaterMark.Image.Picture.Data = { + 07544269746D617082960100424D82960100000000003204000028000000A400 + 000074020000010008000000000050920100120B0000120B0000FF000000FF00 + 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 + 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 + 07005B2509005923090057230900552309005D270B005B250B0059250B005222 + 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C + 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 + 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 + 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 + 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 + 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 + 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A + 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 + 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 + 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F + 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F + 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C + 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D + 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 + 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 + 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E + 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F + 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 + 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F + 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F + 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A + 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 + 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 + C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED + DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC + FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF + DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 + F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 + B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020203110311110303030303030303030303030303030303030303 + 0303030303030303030303030303030303111103111111111111111111321132 + 3232321132111111111111111111111111111111111111111111111111111111 + 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E + 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031111111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111031111111111111111321616161616321111111103030303030E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1111111103031111111111111111111111321616161632111111110303030303 + 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111110111111111111 + 1111111111111111030311111103111111111111113216161616321111110303 + 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111111111111111111111111111110303111111111111111132161616163211 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311030311111111111111323216 + 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311110303031111111111111111 + 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111111111111111111111111111111103110303030303031111 + 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111111111111111111111111111110303030303 + 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111103 + 0303030303030311111111111111113232111111111103030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111030303030303030311111111111111113232111111111103030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311111111111111111111111111111111111111111111111111111111 + 1111111111031103030303030303111111111111111111323211111111110303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303031111111111111111111111111111111111111111111111111111 + 1111111111111111110303030303030303030303111111111111111111111111 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303111111111111111111111111111111111111111111 + 1111111111111111111111111103030303030303030303031111111111111111 + 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031103111111111111111111111111111111 + 1111111111111111111111111111031111030303030303030303030311111111 + 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111103030303030303030303030303 + 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111111111111111111031103030303030303 + 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111103031103030303 + 0303030303030303031111111111111111111111110303030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111111111111110303 + 030303030303030303030303031111111111111111111111110303030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111030303030303030303030303030303031111111111111111111111030303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111103030303030303030303030303030303030311111111111111111111 + 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303111111111111111111111111111111111111 + 1111111111111111030303030303030303030303030303030303111111111111 + 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111110311030303030303030303030303030303030303031111 + 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111030303030303030303030303030303030303 + 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111110303030303030303030303030303 + 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111103030303030303030303 + 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303111111111111111111111111111111111111111111110303030303030303 + 0303030303030303030303030303031111111111111111110303030303030E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111110311030303 + 0303030303030303030303030303030303030311111111111111110303030303 + 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030311110303111111111111111111111111111111111103 + 0303030303030303030303030303030303030303030303031111111111110303 + 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 0311110303030303030303030303030303030303030303030303030303111111 + 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111111111111111111 + 1111111111111103030303030303030303030303030303030303030303030303 + 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031103111111111111 + 1111111111111111111111030303030303030303030303030303030303030303 + 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030311031111 + 0311111111111111031103110303030303030303030303030303030303030303 + 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303110303030303 + 0303111111111111111111111111111103030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303110311110311110311111111111103110303030303030303030303 + 03030303030303030303030303030303030303030303030303030303030E0E0E + 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111030303030303030303 + 0303030303030303030303030303030303030303030311110303030303030303 + 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111110311111103110303030303 + 0303030303030303030303030303030303030303030303030311111111110303 + 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111103111103 + 0303030303030303030303030303030303030303030303030303030303031111 + 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303110303031111111111 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 1111031103030303030303030303030303030303030303030303030303030303 + 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311030303030303030303030303030303030303030303030303030303 + 03030303030303030303111103030303030303030303030E0E03030E030E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303110311030303030303030303030303 + 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111111111110303030303030303 + 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311030311110303030303030303 + 0303030303030303030303030303030303030303031111111111111103030303 + 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303110303031103110303030303 + 0303030303030303030303030303030303030303030303030311111111111103 + 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111031103030303111111111111 + 0303030303030303030303030303030303030303030303030303030303031111 + 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111111110311 + 1111031103030303030303030303030303030303030303030303030303030311 + 111111111111111103030303030303030303030303030303030303030303030E + 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031103030303030303030311110311 + 1103111111030303030303030303030303030303030303030303030303030303 + 0303031111111111111111110303030303030303030303030303030303030303 + 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 + 03036A6AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311110311110311031103031103111111030303030303030303030303030303 + 0311030303111111111111111111111111110303030303030303030303030303 + 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E + 0303030303036A6AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303110303030303111103110303031111111103030303030303030303030303 + 0303030303030303030311111111111111111111111103030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036A6AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030311110303111111111103030303030303030303 + 0303030303030303030303030303111111111111111111111103030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303036A6AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031111111111111111110303110311111111 + 0303111111030303030303030303030303110311111111111111111111110303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303036AA2B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111030311030303030303030303111111111111111111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303030303030303036A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111110303031103030303030303031111111111111111 + 1111111111030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303036A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311031111111111111111111111111111 + 1111111111111111111111111111111111111103031103030311031103111111 + 1111113211111111111111030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303036A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111111111103111103031103031111 + 1111111111111132111111111111110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03036AA2B4C40203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1103111111111111111111113211111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303036AA2B4C402030303030303030303030303030303030303030303 + 0303030303030303110303030303030303030303030303030303030303111111 + 1111111111111111111110113232111110111132111111111010111111111111 + 1111111111111111111111113232113210321011111111111111030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036AA2B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303031103111111 + 1111111111111110111111101010103210101111111010111010101032111111 + 1111111111111111111111111111111111323210101010321111111103030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303A2A2B4C40203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111110101010101010321010101010101010101010101010 + 1010101010111111111111111111111111111111113210321010101111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303031230A2A2B4C402030303030303030303 + 0303030303030303030303030303030303030303030303030303030303031111 + 1111111111111111101111111010101010101010101010101010101010101010 + 10101010101010111010101011111111111110111110113211110D1111113232 + 1011111111110311111111111103110303030303030303030303030303030303 + 03030303030303030303030303030303030303030303A2A2B4C4020303030303 + 0303030303030303030303030303030303030303030303030303111111111111 + 1111111111111111111111111010111010101010101010101010101010101010 + 1032321111113232101010101010101010101010113210323211111112121313 + 0D340D1111111111111111111111111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030311110311A2A2B4C40203 + 0303030303030303030303030303030303030303030303030303031111111111 + 1111111111111111111111111111111011111010101010101010101010101010 + 10101032101112120D0D11111111321010101010101010321010103211111213 + 0F0F0F171713130D121111111111111111111111111111111111110303030303 + 030303030303030303030303030303030303030303030303030311111111A2A2 + B4C4020303030303030303030303030303030303030303110311111111111111 + 1111111111111111111111111111111110101010101010101010101010101010 + 10101010101010160D121213130E13130D0D1111323210101010101010321111 + 12130F0F17021917191717171313121212111111111111111111111111111111 + 1103030303030303030303030303030303030303030303031103030311111111 + 1111A2B4B4C40203030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111010101010101010101010101010101010 + 1010101010101010101616121317170F1719170F0F1312121111113232101032 + 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 + 1111111111110311111103030303110311110303030303030311030311111111 + 111111111111A2A2B4C402030303030303030303030303030303111111111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 + 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 + 1011101011111111111111111111110303111111111111031111111111110311 + 11111111111111111132A2A2C3C4020303030303030303031103030303111111 + 1111111111111111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010160D12131719192A62626262622A1D191919 + 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 + 1212111132101010111011111111111111111111111111111111111111111111 + 1111111111111111111111113232A2A2C3C40203030303030303030311111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 10101010101010101010101010101010161612131717191D6262622D66626262 + 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D + 190219020F0F1312111132101010103232323211111111111111111111111111 + 111111111111111111111111111132323216A2A2C3C402030303030303030311 + 1111111111111111111111111132111010101010101010101010101010101010 + 101010101010101010101010101010101010101012121317191D6262622D67D2 + 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 + 6441622A2A2A191902020F131312111132101010103211111111111111111111 + 11111111111111111111111111111111323232161616A2A2C3C4020303030303 + 0303031111111111111111321132321032101010101010101010101010101010 + 1010101010101010101010101010101014141414101532121317171962626263 + 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 + B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 + 1111111111111111111111111111111111113232323216101010A2B4B4C40203 + 0303030303031111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010101010101414141010101634131717192A62 + 626265D2686868686766666666666666652D63626262622A622A6465669F6566 + 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 + 101032323232323232323232321132113211323232321010101010101010A2A2 + C3C4020303030303031111111111111132101010101010101010101010101010 + 101010101010101010101010101410101010141414141414101515160D131719 + 1D62636264D268686868D26867666666666666666666666563622A622D656566 + 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D + 1611113210101010101010101010103232323211321616101010101010101010 + 1010A2A2C3C40203030303031111111111113232321010101010101010101010 + 1010101010101010101010101410101010141414141414141414141515160D13 + 17171D6262632D676868686868686868676766666666666666666666662D2D65 + 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 + 1919171713120D0D0D1610101010101010101010323216103210101010101010 + 101010101010A2B4C3C402030303031103111111113210321010101010101010 + 1010101010101010101010101014141414141414141414141414141414141516 + 0D0D17171D6262622D6668686868686868686868676666666666666666666666 + 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 + 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 + 10101010101010101010A2B4B5C4020303031111111111321110101010101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 151016341317172A6262636668686868686868686868D2686766666666666666 + 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 + B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 + 1010101010101010101010101515A2B4C3C40203030311111111113210101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 1414141516161317172A62626265686868686868686868686868686867676666 + 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 + 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 + 101010101010101010101010151015153515B4A2C3C402030311111111321010 + 1010101010101010101010101414141414141414141414141414141414141414 + 14141414141515163417173F626263646868B368686868686868686868686868 + 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 + 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 + 10101010101010101010101010101010351414141414B4B4C3C4020311111111 + 1110101010101010101010101014141414141414141414141414141414141414 + 1414141414141414151634180F1C6262622D6768686868686868686868686868 + 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D + 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 + 1717121616101010101010101010101010101014351414141414A2B4B5C50203 + 0311111011101010101010101010101014141414141414141414141414141414 + 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 + 6868686868686868676666666666666666666666652D6363636363632D632D63 + 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 + 6262622A1D17171216101010101010101010151510101414141414141414B4B4 + C3C4020311111111101010101010101010101014141414141414141414141414 + 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 + 686868686868686868686868676666666666666666666666652D2D6363636363 + 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 + B3B3B3B36865622A622A17123410101510101510151415141514141414141414 + 1414B4B4C3C50211111110101010101010101010101414141414141414141414 + 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 + 68686868686868686868686868686868676666666666666666666666652D2D62 + 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 + 666666676868686868B36866636263130D151415151515101514151414141414 + 141414141414B4B4B5C502111111101010101010101010141414141414141414 + 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 + 68686868686868686868686868686868686867D2666666656666666666666666 + 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 + 66666666666666676667D268B368B368682A62130D1015101514101515141414 + 14141414141414141414B4B4B5C5021111101010101010101010141414141414 + 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 + 686868686868686868686868686868686868686867D267676565646565656566 + 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 + 6565656566656666666666666766676767686868682A2A130D10101414101414 + 141414141414141414141414141AB4B4B5C50211111010101010101010141414 + 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 + B368B368B36868686868686868686868686868686868D2D26767666664646464 + 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E + 64646464656565656566656666666666666766666766676868622A1316151414 + 141414141414141414141414141414141414B4B4B5C502111010101010101010 + 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 + 636568686868686868686868686868686868686868686868D267676666656464 + 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C + 2F2F632D2D646464656565656566666666666667666667676767676665622A34 + 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 + 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F + 6362626468686868686868686868686868686868686868686868686767676665 + 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C + 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 + 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 + 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 + 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 + 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 + 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D + 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 + B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 + 383838381A143C632D6868686868686868686868686868686868686868686867 + D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C + 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 + 2D622A626262621C131615141414141414141414141414141414141414141A1A + 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 + 3838383838383838381A3C622D68686868686868686868686868686868686868 + 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C + 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 + 656464622A622D656763621C3416351414141414141414141414141414141A14 + 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 + 383838383838383836363838381A3C632D686868686868686868686868686868 + 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 + 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C + 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 + 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 + 38383838383838383838363836363638381A3C632D6868686868686868686868 + 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 + E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 + 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 + 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A + 1A38383838383838383836383939393639393938381A3C638568686868686868 + 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 + F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 + 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 + 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 + 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 + 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 + EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 + 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 + 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 + 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 + 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C + 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 + 101414141414141A1A1A33383838383836393939393939393939393939393939 + 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 + F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 + 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E + 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 + C7C602101010141414141A1A1A1A383838383838363939393939393939393939 + 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF + F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 + 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 + 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A + 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 + 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE + EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 + DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 + 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A + 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 + 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE + FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 + E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 + E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A + 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 + 3939393939393939393B393939393939393841872D6868676767666564642E2F + 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 + F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 + F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 + 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 + 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 + 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 + F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD + FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 + 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 + 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 + 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC + DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 + 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 + 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 + 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 + 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 + F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 + 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 + 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 + E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB + 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE + EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 + C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B + 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF + F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD + DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 + E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 + 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B + 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 + F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 + E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 + E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 + 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B + 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 + F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB + FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A + 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B + 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC + F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 + F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 + F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A + 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 + 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF + DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 + F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 + 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A + 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 + 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 + 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 + FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE + EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 + 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 + 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE + 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 + E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 + E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C + 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 + 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 + 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 + F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 + E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA + E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 + B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D + 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF + EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 + E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA + EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 + 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D + 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 + F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 + E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 + DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 + 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D + 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE + FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 + E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 + 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B + 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC + F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 + F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 + E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 + 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B + 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF + DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 + F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED + EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 + 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 + 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 + 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 + E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE + EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 + 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 + 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE + 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 + E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC + F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C + 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 + 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D + 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 + EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA + E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 + C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 + 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB + FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA + EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 + 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 + 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 + E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC + FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 + E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D + 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 + 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 + E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 + FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 + E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B + 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 + 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB + E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB + E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE + FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B + 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D + 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 + F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 + F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 + 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B + 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB + FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB + EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 + F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B + 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 + 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE + FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB + EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA + FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B + 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 + 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 + 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB + E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 + FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE + E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 + C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 + 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF + F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 + DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E + 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F + 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED + EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 + E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 + 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 + 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 + F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 + F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 + 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 + 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC + DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 + E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D + 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E + 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF + DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 + E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B + 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 + 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 + FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF + EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D + 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B + 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE + 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 + F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 + FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B + 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B + 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 + 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA + E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 + F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 + E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 + B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C + 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 + E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 + F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 + E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E + 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 + 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 + E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 + F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 + EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A + 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C + 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 + E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 + F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 + E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 + 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 + 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 + E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC + DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 + F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 + 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 + 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA + E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 + DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF + EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D + 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E + 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F + F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 + DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF + EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 + 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 + 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D + 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC + F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 + EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B + 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D + 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 + 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB + ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 + F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE + 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 + 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 + 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A + 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 + F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 + DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 + 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 + 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 + 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 + F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE + F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D + 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 + 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 + E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC + ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 + F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 + 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 + 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 + 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE + EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 + F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 + 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C + 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B + 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 + E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF + F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 + 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 + 454556747D818A8A83838390899089898989898989897C907C83838379585858 + 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 + E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE + EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 + 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E + 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 + 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC + DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 + ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 + 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 + 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 + 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE + FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 + EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 + 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A + CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 + 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC + DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA + EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 + 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 + 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 + 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC + B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 + E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 + 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E + 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 + 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC + ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC + ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 + D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 + 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 + 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 + 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD + DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E + 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 + 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D + 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E + 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 + D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F + 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 + 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 + 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 + 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC + EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 + 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E + 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C + 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F + 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 + 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 + 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 + 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 + DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E + 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA + C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C + 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 + 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 + 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C + 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 + CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B + 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 + 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C + 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 + 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 + 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E + 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 + 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 + 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF + D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B + A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 + 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D + 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E + 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C + 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A + 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 + 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 + 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 + 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 + 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E + 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C + 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 + 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 + 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 + 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C + 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF + D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF + D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 + 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 + C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C + 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 + CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 + CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 + 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C + 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C + 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 + D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D + 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D + 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C + 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 + D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C + 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 + 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 + 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 + 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 + ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C + 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D + 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C + 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 + D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F + 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 + 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 + 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C + 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C + 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E + 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E + 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 + 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 + 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E + 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 + 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C + 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 + 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 + 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB + CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB + A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA + D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA + D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 + 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D + 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB + A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA + DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 + 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E + 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C + ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 + D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B + 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C + 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 + 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 + 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA + DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE + 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A + 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D + 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 + 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 + 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B + 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 + 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B + A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 + 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E + 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E + 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B + 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C + 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E + 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 + 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA + A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B + 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E + 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC + CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA + AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 + D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 + 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D + 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF + DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD + DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A + 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 + B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 + 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF + DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF + DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 + 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D + 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB + 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 + DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF + DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF + 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 + 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 + 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 + B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 + 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 + A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D + 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 + 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 + 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 + DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 + 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E + 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B + 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 + A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 + D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C + 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E + 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E + 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 + B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 + D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 + 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E + 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC + CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE + AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 + 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 + 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 + 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 + 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE + AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D + 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F + 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D + 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 + 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 + AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 + 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A + 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB + 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E + B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 + BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F + 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 + 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF + 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 + 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 + A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 + A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 + 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 + AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D + 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 + 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 + A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 + 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 + 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E + 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 + 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD + ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D + 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C + 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A + 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 + 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD + BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C + 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E + 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E + 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD + CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF + B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F + 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 + 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B + 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A + 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF + BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F + 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 + 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D + 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 + 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B + B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 + 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 + 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C + 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 + B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF + BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F + 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 + 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF + 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 + 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA + BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 + A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 + 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF + 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D + 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C + 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD + ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 + 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 + 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A + 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B + 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC + B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F + 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C + 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A + 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 + 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 + C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C + 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 + 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A + 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD + CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 + C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C + 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 + 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 + 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 + 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 + C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F + 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 + 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F + 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E + 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 + C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 + 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 + 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C + 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 + B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B + BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F + 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 + 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF + 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 + 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 + B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 + A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 + 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD + B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 + 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 + 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD + ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 + 545554545555505055595555505550505559555554205420206D4C4C716F7375 + 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A + 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C + 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC + BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 + 202054545454556E6E555055505550505055555055505555555554204F4F4F4C + 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 + 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 + 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 + C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 + 6D4F6D20205454555454545555555550505550505055505055506E5555545420 + 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 + 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC + CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 + C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C + 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 + 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E + 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 + 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 + C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F + 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 + 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 + 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D + 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 + C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 + 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 + 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 + 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 + B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD + BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 + 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 + 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE + 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A + 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 + B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 + A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 + 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B + B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 + 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 + 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD + ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 + 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 + 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A + 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 + 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC + BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 + 4F5520555555555550505050505059505050505950555055555554546E6D4F4C + 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 + 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 + 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 + BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D + 4F2020546E5555555455505555505950505050505050505050505550556E5554 + 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A + 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC + CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 + C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D + 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 + 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E + 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 + 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 + C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F + 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 + 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 + 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 + AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 + C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 + 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 + 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 + 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 + B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD + BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F + 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 + 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE + 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C + 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC + B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 + A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 + 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 + B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F + 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 + 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD + ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 + 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 + 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A + 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 + 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC + BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 + 54205455555555595059595050502450525050505050505555556E54204F6D4C + 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 + 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 + 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 + C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 + 2054545455555554555050595950505052507452742448505959505055556E54 + 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 + 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC + CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 + C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C + 4C2020205555545454546E555555555059505050247450272424245024595050 + 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A + 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 + 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 + C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F + 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 + 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B + 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB + 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 + C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 + 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 + 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 + 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E + 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD + B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F + 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 + 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 + AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D + 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC + B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 + A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 + 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 + B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F + 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 + 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD + ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 + 505050505959502474242424247452242424505059555454204F4C4C716F7375 + A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A + 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 + 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC + BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 + 55505555505050505050245924525224242424745250505050555554204F4C4C + 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 + 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 + 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 + BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 + 20205554556E5555595959502450505924245224502452522448245050505555 + 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 + 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC + CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 + C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F + 6D6D205420205420555455555050505024747424242424525252522424505050 + 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A + 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A + 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 + C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 + 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 + 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 + 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 + 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 + C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 + 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 + 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 + 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D + 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE + BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 + 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 + 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 + AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E + C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC + B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 + A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 + 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 + B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 + 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F + 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD + A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 + 505059505052522448521E214821522724242450505555544F204C4C6F6F737B + 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A + 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 + 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD + BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 + 55555055505050245024244848521E52481E48524852505050505555204F6D4C + 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 + 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A + 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC + BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E + 6E556E555050505050505059272424522748212752481E521E74245050555555 + 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 + 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC + CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 + C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F + 202054546E555555555555505050507424242427522152525221525248525C59 + 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 + 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 + 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 + BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C + 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 + 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 + 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 + 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF + BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F + 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 + 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 + 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C + 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE + BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 + 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 + 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 + 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D + CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA + BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 + A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 + 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 + B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 + 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 + 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 + A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 + 505024745252212174481E5622527452525274242450555555544F4C716F737B + 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A + 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 + 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD + ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 + 555050505274242424522121564B524852522224212124245950555554204F4C + 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 + 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 + 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD + BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 + 205555555950502424242452245252272752487474272152521E522424505555 + 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 + 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC + CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC + BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F + 545555545555555050505024502424521E5274564848562752212152521E5224 + 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 + 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F + 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF + BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C + 6D4F20206E545455555550505024245050747452747448564B744856524B5622 + 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A + 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A + 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF + BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F + 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 + 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C + 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 + 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE + BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B + 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 + 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC + AB89815957535E492877777760888888515188886060827A5E919495989C9D9D + 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA + 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 + A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 + 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 + B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 + 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D + 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 + A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 + 27484821484856527452222174484B524852487424505055556D4F4C716F757B + A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A + 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 + 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD + ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 + 50502424245227525652525248484B22224B5674522148742424505555544F4C + 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 + 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 + 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD + BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 + 5559505024747424525221485221214B22214A22224822275648525252505555 + 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 + 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC + CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD + BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 + 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 + 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 + 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 + 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD + BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F + 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 + 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A + 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D + 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE + BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F + 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 + 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C + 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 + 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF + BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 + 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E + 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 + 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C + 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 + AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 + A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E + 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 + B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 + 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C + 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 + A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 + 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 + A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A + 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 + 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF + ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 + 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F + 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 + 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 + 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD + AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 + 5024507424525252522127524B222223224B4B22234D222222484B4852505050 + 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 + 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC + CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE + BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 + 5555505559505050244852485622272122221E4A575722222257222256224B1E + 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 + 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C + 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE + BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E + 545454555555555050502424745252524822221E22224A22224A234A4B232222 + 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 + 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C + 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE + BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 + 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 + 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 + 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A + 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE + AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 + 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A + 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B + 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 + 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 + AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 + 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 + 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 + 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 + 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 + 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 + A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 + 224A4A22225622222323226C7023232223564A48482450505555204F716F757F + A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E + 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A + 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 + B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 + 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F + 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 + 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 + 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 + A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 + 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 + 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 + 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC + CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE + AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 + 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 + 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 + 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 + 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE + AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E + 545555555550505024244821221E52564A2256232222232323235723564B5723 + 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 + 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C + 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE + AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F + 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 + 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 + 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E + 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB + B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 + 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 + 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C + 835F27267E7A777788888585858686868685868588827A7E9194959898989896 + 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 + A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 + 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D + 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 + BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 + 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 + 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 + A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 + 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F + A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E + 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 + 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB + A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 + 564A56232356564D232329232323575D572257222223221E74524850556E544F + 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 + 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 + 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 + B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 + 52565648224A22232322222323572323232323572323292223224A224B482450 + 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 + 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB + CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 + B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 + 505252522722272221224D57574A2323235723292323235B5B29232357572222 + 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 + 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 + 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 + B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 + 5050595950247474222152224B4A225622232223232325235323252323232329 + 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 + 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 + 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 + B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F + 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 + 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E + 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C + 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC + BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F + 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 + 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 + 815C535E7A82608885858686868787868686868888827A918494959696959090 + 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 + ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B + 758C736F7171584F545550555050597452527474524B2222704D22222357235B + 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B + AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 + 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 + 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA + 7F808BA5A573897C71784F545455555550592474745252522222222222222323 + 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 + A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E + 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 + 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC + A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 + 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F + 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 + 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 + 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B + 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 + 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 + 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB + CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB + ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 + 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 + 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 + 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 + 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB + ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 + 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 + 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 + 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 + 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC + BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E + 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B + 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 + 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 + 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA + BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 + 714F796E6E505059747452212756224A22222223232229252353235B5B53535B + 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A + 5F575E7A286088858686878787878787878686858860825E6193939595938A8D + 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 + B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 + 6F7C6F717879546E5550505074525656225622225623235723232323535B535B + 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE + 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 + 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E + 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 + 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 + 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 + A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 + 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 + 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 + A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 + 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 + 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 + 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 + 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA + AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 + 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 + 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 + 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB + CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA + BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 + 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 + 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 + 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B + 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA + BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 + 5674222223224B572357235B5B295B53535B2626262626252626262626262626 + 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 + 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 + 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA + BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D + 50747452525222224A4B232323232323535B5B5B262626262626262626262626 + 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 + 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 + 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 + A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 + 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 + 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E + 765E7A827788858687878787878787878787868588827E918F949393938F8F5C + 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A + 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C + 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 + 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE + AC8B897D765E7E827788858687878787878787878787868560827E916194938D + 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A + 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 + B88C7C897C787879545450507448485648222323235753535B5B23255B262626 + 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 + A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 + 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 + 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB + A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 + 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 + 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 + 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 + 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB + A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 + 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 + 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 + 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB + CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 + A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 + 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 + 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 + 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 + 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 + 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 + 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 + 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 + 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B + 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 + 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 + 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 + 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 + 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B + 5B5B5B5B2626265B2626C2CBCBCB} + WaterMark.Image.Layout = ilTile + object Label1: TLabel + Left = 176 + Top = 312 + Width = 186 + Height = 13 + Caption = 'Haga click en Siguiente para continuar.' + end + object Label3: TLabel + Left = 168 + Top = 72 + Width = 346 + Height = 32 + Caption = + 'Este asistente le ayudar'#225' a imprimir el n'#250'mero de etiquetas '#13#10'qu' + + 'e desee para el montaje de:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblNombreCliente: TLabel + Left = 169 + Top = 112 + Width = 353 + Height = 49 + Alignment = taCenter + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + Layout = tlCenter + end + end + object JvWizardInteriorPage1: TJvWizardInteriorPage + Header.Title.Color = clNone + Header.Title.Text = 'Opciones de impresi'#243'n' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -16 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = + 'Indique el n'#250'mero de etiquetas a imprimir y la impresora a utili' + + 'zar.' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.AnchorPlacement = 8 + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -11 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + object Label2: TLabel + Left = 24 + Top = 96 + Width = 152 + Height = 13 + Caption = 'N'#250'mero de etiquetas a imprimir:' + end + object Label4: TLabel + Left = 24 + Top = 144 + Width = 146 + Height = 13 + Caption = #191'Qu'#233' impresora desea utilizar?' + end + object Label5: TLabel + Left = 248 + Top = 96 + Width = 259 + Height = 13 + Caption = '(En cada hoja se imprimir'#225'n como m'#225'ximo 4 etiquetas)' + end + object edtLabelCount: TcxSpinEdit + Left = 182 + Top = 92 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Value = 4 + Width = 57 + end + object cbImpresoras: TcxComboBox + Left = 24 + Top = 161 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = 'cbImpresoras' + Width = 273 + end + end + object JvWizardWelcomePage2: TJvWizardWelcomePage + Header.Height = 80 + Header.Title.Color = clNone + Header.Title.Text = 'Fin del asistente de impresi'#243'n' + Header.Title.Anchors = [akLeft, akTop, akRight] + Header.Title.Font.Charset = DEFAULT_CHARSET + Header.Title.Font.Color = clWindowText + Header.Title.Font.Height = -19 + Header.Title.Font.Name = 'Tahoma' + Header.Title.Font.Style = [fsBold] + Header.Subtitle.Color = clNone + Header.Subtitle.Text = ' ' + Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] + Header.Subtitle.Font.Charset = DEFAULT_CHARSET + Header.Subtitle.Font.Color = clWindowText + Header.Subtitle.Font.Height = -13 + Header.Subtitle.Font.Name = 'Tahoma' + Header.Subtitle.Font.Style = [] + Header.ShowDivider = False + VisibleButtons = [bkBack, bkFinish] + WaterMark.Image.Picture.Data = { + 07544269746D617082960100424D82960100000000003204000028000000A400 + 000074020000010008000000000050920100120B0000120B0000FF000000FF00 + 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 + 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 + 07005B2509005923090057230900552309005D270B005B250B0059250B005222 + 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C + 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 + 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 + 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 + 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 + 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 + 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A + 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 + 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 + 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F + 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F + 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C + 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D + 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 + 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 + 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E + 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F + 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 + 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F + 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F + 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A + 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 + 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 + C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED + DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC + FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF + DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 + F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 + B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020202020202020202020202020202020202020202020202020202 + 0202020202020203110311110303030303030303030303030303030303030303 + 0303030303030303030303030303030303111103111111111111111111321132 + 3232321132111111111111111111111111111111111111111111111111111111 + 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E + 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031111111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111031111111111111111321616161616321111111103030303030E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1111111103031111111111111111111111321616161632111111110303030303 + 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111110111111111111 + 1111111111111111030311111103111111111111113216161616321111110303 + 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111111111111111111111111111110303111111111111111132161616163211 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311030311111111111111323216 + 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111111111111111111111 + 1111111111111111111111111111111111110311110303031111111111111111 + 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111111111111111111111111111111103110303030303031111 + 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111111111111111111111111111110303030303 + 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111103 + 0303030303030311111111111111113232111111111103030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111111111111111111111111 + 111111030303030303030311111111111111113232111111111103030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311111111111111111111111111111111111111111111111111111111 + 1111111111031103030303030303111111111111111111323211111111110303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303031111111111111111111111111111111111111111111111111111 + 1111111111111111110303030303030303030303111111111111111111111111 + 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303111111111111111111111111111111111111111111 + 1111111111111111111111111103030303030303030303031111111111111111 + 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031103111111111111111111111111111111 + 1111111111111111111111111111031111030303030303030303030311111111 + 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111103030303030303030303030303 + 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111111111111111111031103030303030303 + 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111111111111111111111111111111111103031103030303 + 0303030303030303031111111111111111111111110303030303030E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311111111111111111111111111111111111111111111111111111111110303 + 030303030303030303030303031111111111111111111111110303030303030E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303111111111111111111111111111111111111111111111111111111 + 1111030303030303030303030303030303031111111111111111111111030303 + 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111111111111111 + 1111111103030303030303030303030303030303030311111111111111111111 + 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303111111111111111111111111111111111111 + 1111111111111111030303030303030303030303030303030303111111111111 + 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111110311030303030303030303030303030303030303031111 + 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303031111111111111111111111 + 1111111111111111111111111111030303030303030303030303030303030303 + 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E6969B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111110303030303030303030303030303 + 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030311 + 1111111111111111111111111111111111111111111103030303030303030303 + 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303111111111111111111111111111111111111111111110303030303030303 + 0303030303030303030303030303031111111111111111110303030303030E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303031111111111111111111111111111111111110311030303 + 0303030303030303030303030303030303030311111111111111110303030303 + 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030311110303111111111111111111111111111111111103 + 0303030303030303030303030303030303030303030303031111111111110303 + 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 0311110303030303030303030303030303030303030303030303030303111111 + 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111111111111111111 + 1111111111111103030303030303030303030303030303030303030303030303 + 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303031103111111111111 + 1111111111111111111111030303030303030303030303030303030303030303 + 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030311031111 + 0311111111111111031103110303030303030303030303030303030303030303 + 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303110303030303 + 0303111111111111111111111111111103030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303110311110311110311111111111103110303030303030303030303 + 03030303030303030303030303030303030303030303030303030303030E0E0E + 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303031111111111111111111111030303030303030303 + 0303030303030303030303030303030303030303030311110303030303030303 + 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111110311111103110303030303 + 0303030303030303030303030303030303030303030303030311111111110303 + 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111103111103 + 0303030303030303030303030303030303030303030303030303030303031111 + 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303110303031111111111 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 1111031103030303030303030303030303030303030303030303030303030303 + 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030311030303030303030303030303030303030303030303030303030303 + 03030303030303030303111103030303030303030303030E0E03030E030E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303110311030303030303030303030303 + 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311111111111111110303030303030303 + 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311030311110303030303030303 + 0303030303030303030303030303030303030303031111111111111103030303 + 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303110303031103110303030303 + 0303030303030303030303030303030303030303030303030311111111111103 + 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111031103030303111111111111 + 0303030303030303030303030303030303030303030303030303030303031111 + 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E + 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030311111103111111110311 + 1111031103030303030303030303030303030303030303030303030303030311 + 111111111111111103030303030303030303030303030303030303030303030E + 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031103030303030303030311110311 + 1103111111030303030303030303030303030303030303030303030303030303 + 0303031111111111111111110303030303030303030303030303030303030303 + 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 + 03036A6AB4C30203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0311110311110311031103031103111111030303030303030303030303030303 + 0311030303111111111111111111111111110303030303030303030303030303 + 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E + 0303030303036A6AB4C302030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303110303030303111103110303031111111103030303030303030303030303 + 0303030303030303030311111111111111111111111103030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036A6AB4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030311110303111111111103030303030303030303 + 0303030303030303030303030303111111111111111111111103030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303036A6AB4C30203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303031111111111111111110303110311111111 + 0303111111030303030303030303030303110311111111111111111111110303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303036AA2B4C302030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303031111111111111111111111111111 + 1111111111111111030311030303030303030303111111111111111111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303030303030303036A6AB4C3020303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111110303031103030303030303031111111111111111 + 1111111111030303030303030303030303030303030303030303030303030303 + 03030303030303030303030303030303030303030303030303036A6AB4C30203 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030311031111111111111111111111111111 + 1111111111111111111111111111111111111103031103030311031103111111 + 1111113211111111111111030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303036A6A + B4C3020303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030311111111111111111111111111 + 1111111111111111111111111111111111111111111103111103031103031111 + 1111111111111132111111111111110303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 03036AA2B4C40203030303030303030303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030311111111111111 + 1111111111111111111111111111111111111111111111111111111111111111 + 1103111111111111111111113211111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303036AA2B4C402030303030303030303030303030303030303030303 + 0303030303030303110303030303030303030303030303030303030303111111 + 1111111111111111111110113232111110111132111111111010111111111111 + 1111111111111111111111113232113210321011111111111111030303030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 030303030303030303036AA2B4C3020303030303030303030303030303030303 + 0303030303030303030303030303030303030303030303030303031103111111 + 1111111111111110111111101010103210101111111010111010101032111111 + 1111111111111111111111111111111111323210101010321111111103030303 + 0303030303030303030303030303030303030303030303030303030303030303 + 0303030303030303030303030303A2A2B4C40203030303030303030303030303 + 0303030303030303030303030303030303030303030303030303030303111111 + 1111111111111111111110101010101010321010101010101010101010101010 + 1010101010111111111111111111111111111111113210321010101111111111 + 1103030303030303030303030303030303030303030303030303030303030303 + 030303030303030303030303030303031230A2A2B4C402030303030303030303 + 0303030303030303030303030303030303030303030303030303030303031111 + 1111111111111111101111111010101010101010101010101010101010101010 + 10101010101010111010101011111111111110111110113211110D1111113232 + 1011111111110311111111111103110303030303030303030303030303030303 + 03030303030303030303030303030303030303030303A2A2B4C4020303030303 + 0303030303030303030303030303030303030303030303030303111111111111 + 1111111111111111111111111010111010101010101010101010101010101010 + 1032321111113232101010101010101010101010113210323211111112121313 + 0D340D1111111111111111111111111111111103030303030303030303030303 + 0303030303030303030303030303030303030303030311110311A2A2B4C40203 + 0303030303030303030303030303030303030303030303030303031111111111 + 1111111111111111111111111111111011111010101010101010101010101010 + 10101032101112120D0D11111111321010101010101010321010103211111213 + 0F0F0F171713130D121111111111111111111111111111111111110303030303 + 030303030303030303030303030303030303030303030303030311111111A2A2 + B4C4020303030303030303030303030303030303030303110311111111111111 + 1111111111111111111111111111111110101010101010101010101010101010 + 10101010101010160D121213130E13130D0D1111323210101010101010321111 + 12130F0F17021917191717171313121212111111111111111111111111111111 + 1103030303030303030303030303030303030303030303031103030311111111 + 1111A2B4B4C40203030303030303030303030303030303111111111111111111 + 1111111111111111111111111111111010101010101010101010101010101010 + 1010101010101010101616121317170F1719170F0F1312121111113232101032 + 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 + 1111111111110311111103030303110311110303030303030311030311111111 + 111111111111A2A2B4C402030303030303030303030303030303111111111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 + 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 + 1011101011111111111111111111110303111111111111031111111111110311 + 11111111111111111132A2A2C3C4020303030303030303031103030303111111 + 1111111111111111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010160D12131719192A62626262622A1D191919 + 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 + 1212111132101010111011111111111111111111111111111111111111111111 + 1111111111111111111111113232A2A2C3C40203030303030303030311111111 + 1111111111111111111111111011101010101010101010101010101010101010 + 10101010101010101010101010101010161612131717191D6262622D66626262 + 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D + 190219020F0F1312111132101010103232323211111111111111111111111111 + 111111111111111111111111111132323216A2A2C3C402030303030303030311 + 1111111111111111111111111132111010101010101010101010101010101010 + 101010101010101010101010101010101010101012121317191D6262622D67D2 + 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 + 6441622A2A2A191902020F131312111132101010103211111111111111111111 + 11111111111111111111111111111111323232161616A2A2C3C4020303030303 + 0303031111111111111111321132321032101010101010101010101010101010 + 1010101010101010101010101010101014141414101532121317171962626263 + 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 + B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 + 1111111111111111111111111111111111113232323216101010A2B4B4C40203 + 0303030303031111111111111111113210101010101010101010101010101010 + 1010101010101010101010101010101010101414141010101634131717192A62 + 626265D2686868686766666666666666652D63626262622A622A6465669F6566 + 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 + 101032323232323232323232321132113211323232321010101010101010A2A2 + C3C4020303030303031111111111111132101010101010101010101010101010 + 101010101010101010101010101410101010141414141414101515160D131719 + 1D62636264D268686868D26867666666666666666666666563622A622D656566 + 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D + 1611113210101010101010101010103232323211321616101010101010101010 + 1010A2A2C3C40203030303031111111111113232321010101010101010101010 + 1010101010101010101010101410101010141414141414141414141515160D13 + 17171D6262632D676868686868686868676766666666666666666666662D2D65 + 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 + 1919171713120D0D0D1610101010101010101010323216103210101010101010 + 101010101010A2B4C3C402030303031103111111113210321010101010101010 + 1010101010101010101010101014141414141414141414141414141414141516 + 0D0D17171D6262622D6668686868686868686868676666666666666666666666 + 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 + 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 + 10101010101010101010A2B4B5C4020303031111111111321110101010101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 151016341317172A6262636668686868686868686868D2686766666666666666 + 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 + B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 + 1010101010101010101010101515A2B4C3C40203030311111111113210101010 + 1010101010101010101010101414141414141414141414141414141414141414 + 1414141516161317172A62626265686868686868686868686868686867676666 + 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 + 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 + 101010101010101010101010151015153515B4A2C3C402030311111111321010 + 1010101010101010101010101414141414141414141414141414141414141414 + 14141414141515163417173F626263646868B368686868686868686868686868 + 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 + 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 + 10101010101010101010101010101010351414141414B4B4C3C4020311111111 + 1110101010101010101010101014141414141414141414141414141414141414 + 1414141414141414151634180F1C6262622D6768686868686868686868686868 + 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D + 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 + 1717121616101010101010101010101010101014351414141414A2B4B5C50203 + 0311111011101010101010101010101014141414141414141414141414141414 + 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 + 6868686868686868676666666666666666666666652D6363636363632D632D63 + 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 + 6262622A1D17171216101010101010101010151510101414141414141414B4B4 + C3C4020311111111101010101010101010101014141414141414141414141414 + 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 + 686868686868686868686868676666666666666666666666652D2D6363636363 + 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 + B3B3B3B36865622A622A17123410101510101510151415141514141414141414 + 1414B4B4C3C50211111110101010101010101010101414141414141414141414 + 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 + 68686868686868686868686868686868676666666666666666666666652D2D62 + 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 + 666666676868686868B36866636263130D151415151515101514151414141414 + 141414141414B4B4B5C502111111101010101010101010141414141414141414 + 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 + 68686868686868686868686868686868686867D2666666656666666666666666 + 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 + 66666666666666676667D268B368B368682A62130D1015101514101515141414 + 14141414141414141414B4B4B5C5021111101010101010101010141414141414 + 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 + 686868686868686868686868686868686868686867D267676565646565656566 + 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 + 6565656566656666666666666766676767686868682A2A130D10101414101414 + 141414141414141414141414141AB4B4B5C50211111010101010101010141414 + 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 + B368B368B36868686868686868686868686868686868D2D26767666664646464 + 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E + 64646464656565656566656666666666666766666766676868622A1316151414 + 141414141414141414141414141414141414B4B4B5C502111010101010101010 + 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 + 636568686868686868686868686868686868686868686868D267676666656464 + 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C + 2F2F632D2D646464656565656566666666666667666667676767676665622A34 + 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 + 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F + 6362626468686868686868686868686868686868686868686868686767676665 + 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C + 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 + 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 + 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 + 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 + 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 + 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D + 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 + B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 + 383838381A143C632D6868686868686868686868686868686868686868686867 + D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C + 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 + 2D622A626262621C131615141414141414141414141414141414141414141A1A + 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 + 3838383838383838381A3C622D68686868686868686868686868686868686868 + 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C + 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 + 656464622A622D656763621C3416351414141414141414141414141414141A14 + 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 + 383838383838383836363838381A3C632D686868686868686868686868686868 + 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 + 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C + 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 + 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 + 38383838383838383838363836363638381A3C632D6868686868686868686868 + 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 + E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 + 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 + 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A + 1A38383838383838383836383939393639393938381A3C638568686868686868 + 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 + F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 + 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 + 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 + 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 + 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 + EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 + 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 + 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 + 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 + 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C + 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 + 101414141414141A1A1A33383838383836393939393939393939393939393939 + 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 + F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 + 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E + 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 + C7C602101010141414141A1A1A1A383838383838363939393939393939393939 + 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF + F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 + 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 + 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A + 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 + 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE + EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 + DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 + 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A + 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 + 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE + FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 + E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 + E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A + 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 + 3939393939393939393B393939393939393841872D6868676767666564642E2F + 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 + F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 + F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 + 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 + 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 + 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 + F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD + FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 + 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 + 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 + 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB + E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC + DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 + 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 + 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 + 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 + E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 + 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 + F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 + 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 + 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 + E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB + 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE + EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 + C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B + 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF + F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD + DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 + E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 + 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B + 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 + F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 + E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 + E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 + 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B + 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 + F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB + FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A + 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B + 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC + F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 + F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 + F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A + 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 + 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF + DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 + F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 + 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A + 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 + 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 + 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 + FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE + EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 + 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 + 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE + 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 + E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 + E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C + 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 + 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 + 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 + F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 + E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA + E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 + B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D + 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF + EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 + E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA + EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 + 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D + 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 + F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 + E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 + DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 + 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D + 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 + F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE + FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 + E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 + 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B + 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC + F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 + F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 + E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 + 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B + 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF + DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 + F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED + EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 + 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 + 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 + 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 + E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE + EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 + 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 + 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE + 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 + E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC + F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C + 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 + 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D + 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 + EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA + E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 + C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 + 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB + FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA + EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 + 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 + 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 + E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC + FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 + E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D + 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 + 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 + E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 + FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 + E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B + 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 + 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB + E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB + E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE + FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B + 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D + 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 + F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 + F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 + 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B + 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB + FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB + EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 + F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B + 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 + 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE + FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB + EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA + FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B + 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 + 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 + 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB + E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 + FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE + E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 + C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 + 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF + F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 + DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E + 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F + 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED + EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 + E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 + 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 + 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 + E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 + F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 + F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 + 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 + 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC + DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 + E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D + 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E + 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF + DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 + E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B + 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 + 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA + EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 + FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF + EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D + 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B + 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE + 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 + F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 + FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B + 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B + 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 + 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA + E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 + F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 + E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 + B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C + 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 + E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 + F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 + E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E + 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 + 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 + E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 + F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 + EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A + 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C + 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 + E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 + F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 + E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 + 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 + 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 + E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC + DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 + F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 + 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 + 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA + E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 + DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF + EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D + 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E + 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F + F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 + DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF + EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 + 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 + 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D + 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC + F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 + EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B + 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D + 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 + 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB + ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 + F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE + 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 + 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 + 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A + 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 + F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 + DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 + 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 + 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 + 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 + F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE + F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D + 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 + 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 + E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC + ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 + F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 + 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 + 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 + 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE + EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 + F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 + 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C + 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B + 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 + E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF + F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 + 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 + 454556747D818A8A83838390899089898989898989897C907C83838379585858 + 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 + E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE + EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 + 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E + 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 + 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC + DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 + ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 + 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 + 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 + 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE + FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 + EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 + 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A + CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 + 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC + DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA + EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 + 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 + 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 + 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC + B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 + E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 + 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E + 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 + 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC + ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC + ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 + D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 + 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 + 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 + 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD + DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E + 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 + 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D + 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E + 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 + D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F + 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 + 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 + 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 + 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC + EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 + 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E + 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C + 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F + 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 + 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 + 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 + 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 + DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E + 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA + C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C + 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 + D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 + 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 + 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C + 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 + CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B + 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 + 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C + 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 + 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 + D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 + 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E + 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 + 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 + 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF + D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B + A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 + 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D + 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E + 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C + 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A + 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 + 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 + 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 + 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 + 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E + 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C + 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF + CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 + 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 + 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 + 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C + 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF + D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF + D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 + 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 + C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C + 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 + CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 + CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 + 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C + 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C + 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 + D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D + 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D + 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C + 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 + D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C + 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 + 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 + 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 + 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 + D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 + ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C + 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D + 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C + 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 + D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F + 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 + 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 + 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C + 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C + 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E + 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E + 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 + 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 + 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E + 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 + 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C + 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 + D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 + 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 + 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB + CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB + A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA + D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA + D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 + 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D + 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB + A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA + DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 + 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E + 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C + ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 + D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA + DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B + 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C + 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 + 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 + 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA + DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE + 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A + 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D + 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 + 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 + 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B + 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 + 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B + A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 + 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E + 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E + 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B + 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 + D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C + 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E + 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 + 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA + A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B + 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E + 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC + CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA + AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD + DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 + D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 + 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D + 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF + DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD + DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A + 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 + B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 + 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF + DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF + DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 + 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D + 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB + 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 + DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF + DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF + 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 + 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 + 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 + B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 + 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 + A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D + 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 + 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 + 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 + DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 + 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E + 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B + 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 + A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 + D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C + 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E + 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E + 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 + B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 + D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 + 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E + 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC + CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE + AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 + 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 + 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 + 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 + 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE + AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D + 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F + 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D + 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 + 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 + AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 + 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A + 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB + 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E + B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 + BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F + 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 + 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF + 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 + 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 + A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 + A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 + 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 + AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D + 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 + 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 + A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 + 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 + 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E + 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 + 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD + ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D + 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C + 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A + 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 + 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD + BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C + 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E + 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E + 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD + CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF + B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F + 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 + 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B + 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A + 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF + BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F + 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 + 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D + 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 + 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B + B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 + 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 + 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C + 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 + B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF + BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F + 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 + 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF + 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 + 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA + BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 + A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 + 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF + 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D + 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C + 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD + ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 + 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 + 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A + 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B + 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC + B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F + 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C + 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A + 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 + 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 + C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C + 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 + 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A + 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD + CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 + C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C + 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 + 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 + 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 + 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 + C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F + 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 + 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F + 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E + 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 + C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 + 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 + 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C + 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 + B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B + BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F + 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 + 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF + 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 + 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 + B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 + A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 + 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD + B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 + 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 + 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD + ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 + 545554545555505055595555505550505559555554205420206D4C4C716F7375 + 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A + 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C + 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC + BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 + 202054545454556E6E555055505550505055555055505555555554204F4F4F4C + 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 + 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 + 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 + C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 + 6D4F6D20205454555454545555555550505550505055505055506E5555545420 + 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 + 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC + CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 + C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C + 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 + 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E + 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 + 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 + C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F + 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 + 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 + 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D + 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 + C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 + 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 + 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 + 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 + B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD + BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 + 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 + 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE + 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A + 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 + B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 + A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 + 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B + B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 + 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 + 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD + ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 + 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 + 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A + 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 + 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC + BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 + 4F5520555555555550505050505059505050505950555055555554546E6D4F4C + 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 + 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 + 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 + BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D + 4F2020546E5555555455505555505950505050505050505050505550556E5554 + 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A + 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC + CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 + C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D + 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 + 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E + 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 + 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 + C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F + 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 + 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 + 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 + AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 + C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 + 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 + 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 + 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 + B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD + BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F + 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 + 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE + 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C + 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC + B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 + A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 + 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 + B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F + 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 + 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD + ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 + 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 + 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A + 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 + 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC + BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 + 54205455555555595059595050502450525050505050505555556E54204F6D4C + 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 + 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 + 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 + C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 + 2054545455555554555050595950505052507452742448505959505055556E54 + 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 + 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC + CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 + C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C + 4C2020205555545454546E555555555059505050247450272424245024595050 + 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A + 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 + 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 + C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F + 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 + 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B + 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB + 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 + C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 + 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 + 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 + 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E + 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD + B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F + 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 + 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 + AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D + 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC + B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 + A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 + 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 + B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F + 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 + 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD + ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 + 505050505959502474242424247452242424505059555454204F4C4C716F7375 + A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A + 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 + 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC + BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 + 55505555505050505050245924525224242424745250505050555554204F4C4C + 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 + 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 + 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 + BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 + 20205554556E5555595959502450505924245224502452522448245050505555 + 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 + 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC + CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 + C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F + 6D6D205420205420555455555050505024747424242424525252522424505050 + 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A + 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A + 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 + C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 + 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 + 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 + 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 + 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 + C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 + 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 + 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 + 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D + 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE + BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 + 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 + 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 + AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E + C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC + B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 + A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 + 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 + B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 + 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F + 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD + A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 + 505059505052522448521E214821522724242450505555544F204C4C6F6F737B + 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A + 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 + 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD + BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 + 55555055505050245024244848521E52481E48524852505050505555204F6D4C + 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 + 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A + 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC + BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E + 6E556E555050505050505059272424522748212752481E521E74245050555555 + 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 + 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC + CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 + C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F + 202054546E555555555555505050507424242427522152525221525248525C59 + 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 + 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 + 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 + BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C + 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 + 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 + 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 + 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF + BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F + 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 + 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 + 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C + 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE + BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 + 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 + 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 + 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D + CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA + BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 + A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 + 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 + B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 + 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 + 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 + A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 + 505024745252212174481E5622527452525274242450555555544F4C716F737B + 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A + 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 + 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD + ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 + 555050505274242424522121564B524852522224212124245950555554204F4C + 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 + 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 + 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD + BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 + 205555555950502424242452245252272752487474272152521E522424505555 + 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 + 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC + CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC + BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F + 545555545555555050505024502424521E5274564848562752212152521E5224 + 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 + 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F + 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF + BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C + 6D4F20206E545455555550505024245050747452747448564B744856524B5622 + 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A + 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A + 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF + BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F + 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 + 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C + 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 + 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE + BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B + 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 + 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC + AB89815957535E492877777760888888515188886060827A5E919495989C9D9D + 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA + 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 + A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 + 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 + B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 + 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D + 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 + A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 + 27484821484856527452222174484B524852487424505055556D4F4C716F757B + A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A + 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 + 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD + ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 + 50502424245227525652525248484B22224B5674522148742424505555544F4C + 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 + 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 + 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD + BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 + 5559505024747424525221485221214B22214A22224822275648525252505555 + 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 + 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC + CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD + BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 + 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 + 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 + 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 + 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD + BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F + 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 + 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A + 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D + 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE + BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F + 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 + 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C + 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 + 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF + BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 + 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E + 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 + 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C + 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 + AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 + A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E + 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 + B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 + 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C + 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 + A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 + 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 + A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A + 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 + 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF + ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 + 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F + 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 + 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 + 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD + AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 + 5024507424525252522127524B222223224B4B22234D222222484B4852505050 + 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 + 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC + CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE + BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 + 5555505559505050244852485622272122221E4A575722222257222256224B1E + 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 + 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C + 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE + BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E + 545454555555555050502424745252524822221E22224A22224A234A4B232222 + 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 + 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C + 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE + BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 + 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 + 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 + 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A + 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE + AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 + 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A + 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B + 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 + 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 + AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 + 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 + 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 + 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 + 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 + 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 + A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 + 224A4A22225622222323226C7023232223564A48482450505555204F716F757F + A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E + 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A + 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 + B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 + 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F + 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 + 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 + 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 + A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 + 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 + 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 + 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC + CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE + AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 + 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 + 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 + 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 + 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE + AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E + 545555555550505024244821221E52564A2256232222232323235723564B5723 + 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 + 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C + 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE + AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F + 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 + 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 + 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E + 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB + B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 + 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 + 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C + 835F27267E7A777788888585858686868685868588827A7E9194959898989896 + 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 + A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 + 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D + 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 + BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 + 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 + 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 + A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 + 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F + A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E + 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 + 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB + A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 + 564A56232356564D232329232323575D572257222223221E74524850556E544F + 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 + 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 + 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 + B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 + 52565648224A22232322222323572323232323572323292223224A224B482450 + 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 + 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB + CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 + B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 + 505252522722272221224D57574A2323235723292323235B5B29232357572222 + 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 + 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 + 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 + B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 + 5050595950247474222152224B4A225622232223232325235323252323232329 + 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 + 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 + 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 + B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F + 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 + 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E + 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C + 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC + BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F + 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 + 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 + 815C535E7A82608885858686868787868686868888827A918494959696959090 + 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 + ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B + 758C736F7171584F545550555050597452527474524B2222704D22222357235B + 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B + AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 + 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 + 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA + 7F808BA5A573897C71784F545455555550592474745252522222222222222323 + 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 + A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E + 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 + 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC + A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 + 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F + 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 + 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 + 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B + 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 + 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 + 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB + CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB + ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 + 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 + 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 + 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 + 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB + ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 + 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 + 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 + 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 + 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC + BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E + 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B + 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 + 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 + 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA + BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 + 714F796E6E505059747452212756224A22222223232229252353235B5B53535B + 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A + 5F575E7A286088858686878787878787878686858860825E6193939595938A8D + 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 + B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 + 6F7C6F717879546E5550505074525656225622225623235723232323535B535B + 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE + 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 + 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E + 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 + 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 + 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 + A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 + 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 + 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 + A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 + 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 + 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 + 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 + 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA + AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 + 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 + 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 + 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB + CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA + BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 + 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 + 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 + 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B + 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA + BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 + 5674222223224B572357235B5B295B53535B2626262626252626262626262626 + 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 + 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 + 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA + BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D + 50747452525222224A4B232323232323535B5B5B262626262626262626262626 + 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 + 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 + 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 + A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 + 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 + 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E + 765E7A827788858687878787878787878787868588827E918F949393938F8F5C + 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A + 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C + 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 + 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE + AC8B897D765E7E827788858687878787878787878787868560827E916194938D + 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A + 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 + B88C7C897C787879545450507448485648222323235753535B5B23255B262626 + 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 + A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 + 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 + 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB + A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 + 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 + 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 + 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 + 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB + A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 + 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 + 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 + 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB + CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 + A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 + 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 + 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 + 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 + 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 + 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 + 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 + 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 + 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B + 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 + 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 + 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 + 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 + 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B + 5B5B5B5B2626265B2626C2CBCBCB} + WaterMark.Image.Layout = ilTile + object Label6: TLabel + Left = 176 + Top = 312 + Width = 219 + Height = 13 + Caption = 'Haga click en Finalizar para salir del asistente.' + end + object Label7: TLabel + Left = 168 + Top = 88 + Width = 155 + Height = 16 + Caption = 'Por favor, elija una opci'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object bImprimir: TButton + Left = 352 + Top = 112 + Width = 150 + Height = 25 + Caption = '&Imprimir las etiquetas' + TabOrder = 0 + OnClick = bImprimirClick + end + object Button2: TButton + Left = 184 + Top = 112 + Width = 150 + Height = 25 + Caption = '&Vista previa de las etiquetas' + TabOrder = 1 + OnClick = Button2Click + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas new file mode 100644 index 0000000..cdd1671 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas @@ -0,0 +1,99 @@ +unit uAsistenteEtiquetasMontajes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + uBizMontajes, cxGraphics, cxDropDownEdit, uCustomView, uViewBase, + uViewPreview; + +type + TfAsistenteEtiquetasMontajes = class(TForm) + JvWizard1: TJvWizard; + JvWizardWelcomePage1: TJvWizardWelcomePage; + Label1: TLabel; + JvWizardInteriorPage1: TJvWizardInteriorPage; + edtLabelCount: TcxSpinEdit; + Label2: TLabel; + Label3: TLabel; + lblNombreCliente: TLabel; + Label4: TLabel; + cbImpresoras: TcxComboBox; + Label5: TLabel; + JvWizardWelcomePage2: TJvWizardWelcomePage; + Label6: TLabel; + Label7: TLabel; + bImprimir: TButton; + Button2: TButton; + procedure FormCreate(Sender: TObject); + procedure bImprimirClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure JvWizard1FinishButtonClick(Sender: TObject); + private + FMontaje : IBizMontaje; + procedure SetMontaje(const Value: IBizMontaje); + public + property Montaje : IBizMontaje read FMontaje write SetMontaje; + end; + + procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); + +implementation + +uses Printers; + +{$R *.dfm} + +procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); +var + fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes; +begin + if not Assigned(AMontaje) then + raise Exception.Create('Montaje no asignado (VerAsistenteEtiquetasMontajes)'); + + with TfAsistenteEtiquetasMontajes.Create(NIL) do + try + Montaje := AMontaje; + ShowModal; + finally + Free; + end; +end; + + +procedure TfAsistenteEtiquetasMontajes.FormCreate(Sender: TObject); +begin + cbImpresoras.Properties.Items := Printer.Printers; + Printer.PrinterIndex := -1; + cbImpresoras.Text := Printer.Printers.Strings[Printer.PrinterIndex]; +end; + +procedure TfAsistenteEtiquetasMontajes.bImprimirClick(Sender: TObject); +begin + FMontaje.LabelCount := edtLabelCount.Value; + FMontaje.PrintLabels; +end; + +procedure TfAsistenteEtiquetasMontajes.SetMontaje( + const Value: IBizMontaje); +begin + FMontaje := Value; + if Assigned(FMontaje) then + lblNombreCliente.Caption := FMontaje.Cliente.NOMBRE; +end; + +procedure TfAsistenteEtiquetasMontajes.Button2Click(Sender: TObject); +begin + FMontaje.LabelCount := edtLabelCount.Value; + FMontaje.PreviewLabels; +end; + +procedure TfAsistenteEtiquetasMontajes.JvWizard1FinishButtonClick( + Sender: TObject); +begin + Close; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas new file mode 100644 index 0000000..5fd37ac --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas @@ -0,0 +1,258 @@ +unit uCargarFicheros; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, + uROClient, uROClientIntf, uRORemoteService, uROBinMessage, + uROServiceComponent, uROWinInetHttpChannel, Forms, + VARELA_Intf, uROTypes, uROEventRepository; + +type + TCargarFicherosThread = class(TThread) + private + FROMessage: TROBinMessage; + fROChannel: TROWinInetHTTPChannel; + fRORemoteService: TRORemoteService; + FEventReceiver : TROEventReceiver; + + fOnSuccess: TNotifyEvent; + fOnError: TNotifyEvent; + + fLoadOK: Boolean; + fTimeStarted: TDateTime; + fErrorText: string; + fInfoStr: string; + + FMaxConnectionErrors : Integer; + FChannelErrorscount: Integer; + + procedure Run; + protected + FNombre : String; + procedure CargarFicheros; virtual; abstract; + procedure OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure OnLoadSuccess; virtual; + procedure OnLoadError(const ErrorMsg: String); virtual; + public + property Nombre : string read FNombre; + property LoadOK: Boolean read floadOK; + property TimeStarted: TDateTime read fTimeStarted; + property ErrorText: string read fErrortext; + property InfoStr: string read fInfoStr; + destructor Destroy; override; + procedure Execute; override; + constructor Create; + end; + + + { TCargarVentasThread } + TCargarVentasThread = class(TCargarFicherosThread) + private + fEDISalesService: IEDI_Sales; + + FFicheroCAB : String; + FFicheroLUG : String; + FFicheroART : String; + protected + procedure CargarFicheros; override; + public + destructor Destroy; override; + constructor Create(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); + end; + + + { TCargarInventarioThread } + TCargarInventarioThread = class(TCargarFicherosThread) + private + fEDIInventaryService: IEDI_Inventary; + + FFicheroCAB : String; + FFicheroLIN : String; + FFicheroCANT : String; + + protected + procedure CargarFicheros; override; + public + destructor Destroy; override; + constructor Create(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); + end; + + +implementation + +uses + uDataModuleBase, cxControls; + +{ TROThread } + + +destructor TCargarFicherosThread.Destroy; +begin + fROChannel.OnFailure := NIL; + + FreeAndNil(fRORemoteService); + FreeAndNil(fROChannel); + FreeAndNil(fROMessage); + inherited; +end; + +procedure TCargarFicherosThread.Run; +begin + ShowHourglassCursor; + try + CargarFicheros; + finally + HideHourglassCursor; + end; +end; + +procedure TCargarFicherosThread.Execute; +begin + try + Run; + finally + Self.Destroy; + end; +end; + +procedure TCargarFicherosThread.OnLoadError(const ErrorMsg: String); +begin + FErrorText := ErrorMsg; + if assigned(FOnError) then + FOnError(Self); +end; + +procedure TCargarFicherosThread.OnLoadSuccess; +begin + fLoadOK := True; + if assigned(FOnSuccess) then + FOnSuccess(Self); +end; + +procedure TCargarFicherosThread.OnChannelFailure( + Sender: TROTransportChannel; anException: Exception; var Retry: Boolean); +begin + if FChannelErrorsCount > FMaxConnectionErrors then + begin + FErrorText := anException.Message; + Self.Terminate; + end + else + begin + Inc(FChannelErrorsCount); + Sleep(1000); + Retry := true; + end; +end; + +constructor TCargarFicherosThread.Create; +begin + inherited Create(True); + FMaxConnectionErrors := 5; //try 5 times on channel-error + fLoadOK := False; + + fROMessage := TROBinMessage.Create(nil); + fROChannel := TROWinInetHTTPChannel.Create(NIL); + fROChannel.OnFailure := OnChannelFailure; + fROChannel.TargetURL := dmBase.Channel.TargetURL; +end; + +{ TCargarVentasThread } + +procedure TCargarVentasThread.CargarFicheros; +var + MsgError : String; +begin + try + if not fEDISalesService.CargarFicheroEDI(FFicheroCAB, FFicheroLUG, + FFicheroART, MsgError) then + OnLoadError(MsgError) + else + OnLoadSuccess; + except + on e: Exception do + OnLoadError(e.Message); + end; +end; + +constructor TCargarVentasThread.Create(const FicheroCAB, FicheroLUG, + FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); +begin + inherited Create; + FNombre := 'SLSRPT'; + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'EDI_Sales'; + fEDISalesService := fRORemoteService as IEDI_Sales; + + FFicheroCAB := FicheroCAB; + FFicheroLUG := FicheroLUG; + FFicheroART := FicheroART; + + if assigned(aOnLoadSuccess) then + fOnSuccess := aOnLoadSuccess; + if assigned(aOnLoadError) then + fOnError := aOnLoadError; + Resume; +end; + +destructor TCargarVentasThread.Destroy; +begin + FEDISalesService := NIL; + inherited; +end; + +{ TCargarInventarioThread } + +procedure TCargarInventarioThread.CargarFicheros; +var + MsgError : String; +begin + inherited; + try + if not fEDIInventaryService.CargarFicheroEDI(FFicheroCAB, FFicheroLIN, + FFicheroCANT, MsgError) then + OnLoadError(MsgError) + else + OnLoadSuccess; + except + on e: Exception do + OnLoadError(e.Message); + end; +end; + +constructor TCargarInventarioThread.Create(const FicheroCAB, FicheroLIN, + FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); +begin + inherited Create; + FNombre := 'INVRPT'; + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'EDI_Inventary'; + fEDIInventaryService := fRORemoteService as IEDI_Inventary; + + FFicheroCAB := FicheroCAB; + FFicheroLIN := FicheroLIN; + FFicheroCANT := FicheroCANT; + + if assigned(aOnLoadSuccess) then + fOnSuccess := aOnLoadSuccess; + if assigned(aOnLoadError) then + fOnError := aOnLoadError; + Resume; +end; + +destructor TCargarInventarioThread.Destroy; +begin + fEDIInventaryService := nil; + inherited; +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm new file mode 100644 index 0000000..ad25fb4 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm @@ -0,0 +1,192 @@ +object dmFicherosEDI: TdmFicherosEDI + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 186 + Width = 300 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'EDI_Log' + Left = 40 + Top = 16 + end + object tbl_EDILog: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'EDILog' + IndexDefs = <> + Left = 152 + Top = 24 + end + object ds_EDILog: TDADataSource + DataSet = tbl_EDILog.Dataset + DataTable = tbl_EDILog + Left = 152 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk new file mode 100644 index 0000000..d10077e --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk @@ -0,0 +1,193 @@ +object dmFicherosEDI: TdmFicherosEDI + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 186 + Width = 300 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'EDI_Log' + Left = 40 + Top = 16 + end + object tbl_EDILog: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'EDILog' + IndexDefs = <> + Left = 152 + Top = 24 + end + object ds_EDILog: TDADataSource + DataSet = tbl_EDILog.Dataset + DataTable = tbl_EDILog + Left = 152 + Top = 80 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas new file mode 100644 index 0000000..c21f9ad --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas @@ -0,0 +1,61 @@ +unit uDataModuleFicherosEDI; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, + schEDILogClient_Intf, uBizEDILog, uDARemoteDataAdapter, uDAInterfaces; + +type + TdmFicherosEDI = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_EDILog: TDACDSDataTable; + ds_EDILog: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems : IBizEDILog; + end; + +var + dmFicherosEDI: TdmFicherosEDI; + +implementation + +{$R *.DFM} + +uses + uDataTableUtils, Forms, Controls, cxControls; + +procedure TdmFicherosEDI.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmFicherosEDI.GetItems: IBizEDILog; +var + dtLog: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLog := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_EDILog, dtLog); + dtLog.BusinessRulesID := BIZ_EDILOG; + Result := (dtLog as IBizEDILog); + finally + HideHourglassCursor; + end; +end; + +initialization + dmFicherosEDI := TdmFicherosEDI.Create(nil); + +finalization + FreeAndNil(dmFicherosEDI); + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm new file mode 100644 index 0000000..5f3fd16 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm @@ -0,0 +1,147 @@ +inherited fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI + Left = 525 + Top = 313 + Caption = 'fEditorHistorialCargasEDI' + ClientHeight = 451 + ClientWidth = 660 + OnCreate = CustomEditorCreate + ExplicitWidth = 668 + ExplicitHeight = 485 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 660 + Caption = 'Historial de cargas de ficheros EDI' + ExplicitWidth = 660 + inherited Image1: TImage + Left = 633 + ExplicitLeft = 633 + end + end + inherited TBXDock: TTBXDock + Width = 660 + Visible = False + ExplicitWidth = 660 + inherited tbxMain: TTBXToolbar + Visible = False + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 660 + end + inherited tbxFiltro: TTBXToolbar + Visible = False + end + end + inherited StatusBar: TStatusBar + Top = 432 + Width = 660 + ExplicitTop = 432 + ExplicitWidth = 660 + end + inline frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI [3] + Left = 0 + Top = 76 + Width = 660 + Height = 356 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 660 + ExplicitHeight = 356 + inherited cxGrid: TcxGrid + Width = 660 + Height = 356 + ExplicitWidth = 660 + ExplicitHeight = 356 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewOK: TcxGridDBColumn + IsCaptionAssigned = True + end + inherited cxGridViewFECHA: TcxGridDBColumn + Width = 92 + end + inherited cxGridViewREPORT: TcxGridDBColumn + Width = 54 + end + inherited cxGridViewERROR_MSG: TcxGridDBColumn + Width = 492 + end + end + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + Enabled = False + end + inherited actModificar: TAction + Enabled = False + end + inherited actEliminar: TAction + Enabled = False + end + inherited actDeshacer: TEditUndo + Enabled = False + end + inherited actCortar: TEditCut + Enabled = False + end + inherited actCopiar: TEditCopy + Enabled = False + end + inherited actPegar: TEditPaste + Enabled = False + end + inherited actSeleccionarTodo: TEditSelectAll + Enabled = False + end + inherited actLimpiar: TEditDelete + Enabled = False + end + inherited actDuplicar: TAction + Enabled = False + end + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited GridPopupMenu: TPopupMenu + inherited Modificar1: TMenuItem + Visible = False + end + inherited Duplicar1: TMenuItem + Visible = False + end + inherited Eliminar1: TMenuItem + Visible = False + end + inherited N1: TMenuItem + Visible = False + end + inherited Nuevo1: TMenuItem + Visible = False + end + inherited N2: TMenuItem + Visible = False + end + inherited Previsualizar1: TMenuItem + Visible = False + end + inherited Imprimir1: TMenuItem + Visible = False + end + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas new file mode 100644 index 0000000..1daa18b --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas @@ -0,0 +1,76 @@ +unit uEditorHistorialCargasEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uBizEDILog, uCustomView, uViewBase, + uViewHistorialCargasEDI, uViewGrid, uViewGridBase, StdCtrls, uDAInterfaces; + +type + IEditorHistorialCargasEDI = interface(IEditorGridBase) + ['{6C84E101-C4FB-48F9-A9A9-93F8606DF4FF}'] + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + TfEditorHistorialCargasEDI = class(TfEditorGridBase, IEditorHistorialCargasEDI) + frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI; + procedure CustomEditorCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + protected + FEDILog : IBizEDILog; + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + public + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + +var + fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI; + +implementation + +{$R *.dfm} + +{ TfEditorHistorialCargasEDI } + +function TfEditorHistorialCargasEDI.GetEDILog: IBizEDILog; +begin + Result := FEDILog; +end; + +procedure TfEditorHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); +begin + FEDILog := Value; + dsDataTable.DataTable := FEDILog.DataTable; + if Assigned(ViewGrid) then + (ViewGrid as IViewHistorialCargasEDI).EDILog := FEDILog; +end; + +procedure TfEditorHistorialCargasEDI.CustomEditorCreate(Sender: TObject); +begin + inherited; + ViewGrid := frViewHistorialCargasEDI1; +end; + +procedure TfEditorHistorialCargasEDI.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(FEDILog) then + raise Exception.Create('No hay ningún control asignado'); + + FEDILog.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm new file mode 100644 index 0000000..b83f315 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm @@ -0,0 +1,601 @@ +object ModuleFicherosEDI: TModuleFicherosEDI + OldCreateOrder = True + Description = 'Gesti'#243'n de ficheros EDI' + ModuleMenu = MainMenu + ModuleName = 'Ficheros EDI' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.4' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003954944415478DA95967B48145114 + C6BF6D6975FB472AA2C28AA03F2203234B24437C656A98665A6996424F94A428 + 0B212289DE490F2ACB34D135B32CCB16297B10F6C4324CEDA9926CF6B0D53202 + AD7DCE76EF9DE6EE8E6EBBEB81D93B7367F6FB9DEF9CBB7747715273CB060F22 + 3B3D5641C75DF9A51E3D4F63CFB60C85820236AD8E71F9E0A9F23A9454681117 + 1544BFC4E77F1B050C18AD1830D05160D7D2DCEBE606F4FFD48303A888ABE8E9 + D17371B3D5260A19AC30596C4EC5552A2F682E5C91039C3911041BF28E699C8A + 0FB091089B44719345E0E2DEDE6A9C2BD6B80648E273E7047A54F3F79D5D5C9C + 864B80243E9C686C6A4142E2727EED14105ED8C61F08E96F9035D55504C46461 + FC586FF7009AB9C52AC04A8E03A72F3280B6FEED7F85E3C3FCD8FDBC83A71820 + 2E2109B537AA196808202B2D1A9145ED431C50012A4463E08F09BD7DFDD07DE9 + C3A11305A829CDC7ED27EF39800685284728ED808DA95128ACBC8B0D29512C73 + C9C1D1A22A0E385354ECD44145E1613C7ED1CE01E1910B59A347AA54385F5221 + 02D62447A0E4EA7DAC5D168945659D6E7B60254BD548D6BFC12CC068B6A1B1A5 + 8303E68784E1C9A37A44C72EB6FF0E562F094579CD03642C0D777060C5E9B2EB + 6E7BE0EF370DAD6F3FC84A44212AE2E052955604A4C485E052ED23AC4A084562 + 65D7B07A70FCF07EB4757472C0ACD97399383DAED5D48980A4986054D73D0505 + D1CC2DA404564140F145ADDB1E1CDAB7173A9D8E0366CCF4C7BB37AD080C0A46 + EDCDFB22207E4110B4F79E61596C3052AABB8738185C73A3E348E6BB3F7F9495 + 8842A8833BF71E8B00BA53AE498B47E2C2792C73D607B2AF9457DFC4EE2DE92E + C5E9FC4FFD270EF0F59D029517D92ED46AD43F7C0E8594ADE44412A78DAE2435 + CCC95C8515EBB773578101B3B0243199895390816C74A65F5F3860DCB8F16C99 + 524843E32B0990673BA909627BBE63D0FD3F7BDD4A51C822CF5C12A70E46FCEE + E6001F9FD1FF9AEC85A6D6763B801C8AC10DA4FF5E1B3252B17E73AECC4144CC + 522E4E416AF3370E50AB47890E0864EAE4098E00E493D15E0B32B72B7F2AD2D3 + 5638CDFCB2290CA5CDCD289DDE8BD1E8E100A552C900BACF7D68AA2B50488023 + E423470E6150BCEEDA819CDC9D320701216441BC1C03E880B3117A4C1CF95DB6 + 8AF43F0C4C9C9E3B94854378F86C4DC6AFA357F1B46D9BACE6ECDC2C9E93B580 + 495E7680A3F820C0E0101D50F1DEAF5D70171440C351DC03409E627674A647AF + 29FFDE3886E8FD050279B575ACF985ED0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000006BD4944415478DA + 8D566B5054E7197ECEEED91BBBB2ECCAB20A2C4210B0108C012A511062443183 + 522BE3C4D814C6361D4D26924B53E35012A74D676A5A6352C7A989D30495C48C + 284AA8C6A891315A85AE82B05111D95D592EBBEB72D95DF6BE67CF39FD58B4A6 + 4D4D7366BE3FDFE5799EEF7DDFE7FD0E85FFF7157FAA42249C2DA0058F49C5F4 + 0CF01C1561797F98633B11085F47E726F7F71DA71E3A5FB83F2F7161F38EC7D3 + B9B2FB939C5C11495116B27324CF72E661976BC032366CB8693BE9980C34E142 + 4DEF0F235874302136F9FA6FE4190DAF6BD385884879D82D5E78DD2168A9240C + 3A075153B6070B9237231C6278CBD078E4F2E5BEE1DBB7EDEFF95C9E83FF7DA3 + FF2428F858975274EA8850FB5561D1121D7AFBC7C058E2B1B56C2BCEE969F87B + CC5015AC4480A3A1D5C661D66C35385A8C7142DED5690A765FBBD37877C25F87 + AF7F36F65D02A23C297DF8AF91B43F56AD5A3D0FA15008174FBAB17EDE1E94E5 + 162056C663D3863AB45CFC103D662F2E748D61F8AE07293A3512E7CC86D5C5C2 + 60B0B05DFABEFDA356DF6BD0FF7CF2DB04145D72706BF9DAC33B325706A3E07D + BD362CD76CC16B4B6BC15314BC81108E1E69C3BAEAA7E10D030344A32FC0A0ED + D200B941000B0A32D06B0DA1FBAA8919E81F7EDDD6BC66F70382C2FDF9E54B52 + 1A0CF29FE656D72C46381C86BEC38C3D15A790199F15DDC4DE1B11321C7EC01F + 0204645FDBE953B007D470314A2466A4E2B63580AE8E5B76DE1F5CD9FFC9CA1E + 2A7D8736673632AE4FF1D8D08F0DCF3D112530F65971F5BC0B6A311FD5F0B72D + 67A09B990517516FF702816008FF683E80F61387F1AB37DF43BB5104914C0607 + AF80C9E4E087FA47F6591A576CA690FF617CEEAA3DA36B7E9909590C0D966511 + 669828C9D438D16A80C22343E31B1604887C3F030409785BD37EE84F1FC7BA97 + EAB0A274098CA361341C3140959602A33D08E33766BB36217E014592FBD44BD5 + 05FB9A0797A63FFF4231143324D3E084E444EBB5A96BE1E0560B9C24242C87E8 + 5A14FCCB63A8D8B40D190525982513402906FEF2D937E065E4061E1AC61B038C + 5C26FA0525283AF0EB9D75E56F597D54EC17C61C543D571A25B9D66546DF792B + 0E11E5E341A29A8960B0EF263ACFB6A2FBE259AC7DE56DCCCD2F06C70B409324 + FD58037CF6F530F4BD4E38C52A988D36DEE570FE89923ED9F8DBF77F5F59DF69 + 189446FA2EE15C423D2A2AF2D071FC163EAFB7C0E2218925CACD377A70E8775B + B0666D153A6F1A9192574AB22C8462E62CCCC95D84BE638731429498D86488D2 + 32601A98807BD87E86129736BEF9EEF6D575DD3786A4DEDE763C313F01BB076B + 71E50F160C1170D7BDD05C39FB77B4ECAA437945252EB7778092C781A204D065 + E7E3A98DDB603C7E186E5F1897C635A05333611D71223836A127F5DFF872FDCB + CBDEB1793809825EBCF26C1614B269E0B100514F6A9323041EB713AD1FBC03C7 + A00925CF6C46EA638B4978C81A25044DDCBC5C079C338C626FAB194EA99AEC73 + 20C2445A28143714D5AC2B3C96949698D0D569446DF5E388570AE063A7433305 + CEF2538327BD271CAD209154118D7D749EACC791042F4902761DBB8DAF6EFAE0 + E064181FB0F2B442B173AA4C95254F669F5B5E9E9777FE422F55B9EC112CCE56 + 212C40D4B1D3E0D340DF1EF789A7125CA005A4420EAFEEBE8A5E7F0CDC010EEE + 117B3846ABD9187572C2AAA6ED3FA95A544FC241BBC69CD8FC4C0E92E304B091 + 1005D887834F1DCE8C03B2D4408BDE8EF79B4978C471981C73211408DDE555CA + BCE9565172E047F3B3755F2C5DBE20B5A7FB0EE667C56343990E9A180A03DE07 + 89E6EE93DC539E4380E72801E35810B53BF5B0D22AF8822C3C23760894CABDFE + 8F17BFF8EF6E2A5F76A8B6B068DE9F331F4D155F69EF43FEA30958B72C05696A + 1A0C01B5139696A36DA85CFF74D45489724042F3B8629EC4DB1F1930C4CD4080 + 17C23B6C43442436314AF90AEC5D687ED0AEF39B941A1DFD6E6EFEDC8D49295A + C1AD1B83901280D282242CCA51414D87F042D5ABF8B2BD81988E43EFE0244EEB + 6D38F9CFBBF04A9488104FF8EC0E300CEB42AC6A13D350D8F4DD07A7F8238D66 + A67A876E6E6275D223B3E949B71F0EDB04782604955C0057C7296455AE87CDE1 + 81C3CD202094123FC849FB8810F0D1A9D0B978A5EAAD082DFC00FB0A98FFFD64 + 2E6C8C9D95AC7C9E9689DFD0246B340AB5920A937A0D04C3C413A4541996B46D + 0A1C511C0E45E077BA117079480F8A3151B2986D6111FDF97DF0EF7BF4915E73 + 3A9F84E2458A16AD164A242A21F9A5A0C42212020E417F908C0031121BE184A2 + 09C8E54783427A170136FDD0BF8A07A9D97E3D65D2E52B778E7B728935B288E1 + 24BC90F6B112E91D4864D742ACF04C706FEED0C3CEFF0B07FB54E0B6F6EF4600 + 00000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actCargarFicheros: TAction + Category = 'Ficheros' + Caption = 'Cargar ficheros...' + ImageIndex = 0 + OnExecute = actCargarFicherosExecute + end + object actHistorial: TAction + Category = 'Ficheros' + Caption = 'Historial de cargas' + ImageIndex = 1 + OnExecute = actHistorialExecute + end + end + object MainMenu: TMainMenu + Tag = 100 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 10 + Caption = '&Ficheros' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actCargarFicherosExecute + object Ficheros1: TMenuItem + Tag = 100 + Action = actCargarFicheros + end + object Historialdecargas1: TMenuItem + Tag = 200 + Action = actHistorial + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002284944415478DA635CB2F9C47F06 + 2C20C6D7821144D7F62CC02A0F038C2003A27DCCE1024BB79C6470B2D066D877 + E22AC3CD9B37189A8AE3E1726F3EFD6178F5F13790FECBB067C75A862DBB4F22 + 0C0069440684344BC9AB33CC9AB308D500984BEA7A173298189B6275F299B3A7 + C19A41006E40889B31C39A5D67C1068034E3027FFEFC659053D682F3E106F83A + E8336C3E70116E00B2D39181914716434C5430C3EE9D5B19FC03C31006B85969 + 33EC3A769501E492D6C94BC1067CFDFE8BE1F5BB2F0C0F9EBE63D877F8284369 + 560C837D602E83B8300783ABBB3703171737C2007B13758683676E32805CD233 + 7325D80074AF64244632F844153078B8DA329C3F771A6CC892656B2106CC59BA + 832125DA8301E492C9F3D7A278E1F3F7BF60FC0988A3928BC12E30343205BB60 + DDC61D0C8C30853097CC5ABA11AB177CFD4318D2734A194C8D34191E3DBC0F36 + 64C7EEC3A806805C626BA2C050931FCBD03271318A179C3C82188A8ACBC12E90 + 935764E0E4E4623874F42C03A38147C2FF0B3B16C00D0225DDFCB468864FDF20 + CEFEF5E73FC3D79FFF18BEFCF8CB50575DC5A0A220C6C001D4CCC9C9C970FADC + 75EC0624C64430CC5FB202CCB77109041A0232E01F4357730D83B4380FD8F63B + 0F5E319CDB318D1164C077A0BA5B4043F44186F9BA3830040787426D85D81C7C + 418861B6CA2B8669DDF5602FBC7CFB03AC199C994004D4100E982BA64E980CD7 + 0CC1FFC0E273FA1BC0344C33DC001880B90094CB700164CD2000002110375C5F + 4EB13C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000003824944415478DA + 5D530D4C94751C7EFEF70177AF1EBC753B4EA0B8148EEB0E439423CE4411B58D + 0C0DC92648AECC465B6DCD4D572BC714AA4DDB4CD7206DB38F65E55C6B358A8C + 8D558640C725C981E7D9911D1F1EDC07C7DD61F7F5BEF7FE7BA11CCCDFF66CFF + FDF67B9EFD7FBF3D0FC1BD653A9A06812D351566ADD7E76B8A922948DC13332E + F7B8BF3B7675661068E1978E93C52725283AF598A52A713AB0A2DDCCC725A09C + D8CA7E969AF20ED2E04C3CD67FD96E730DFFF53A3FF4AA6D9EB0448012B6ECEC + DE271B979D0869DB730DEB54B874D10DCD7533D4F90F034229F28ACD80428581 + 3E4768B8D7DE74A7FFC5AF16058CEF6F6C38A0BE10D0B5E63E52FCE002F99D92 + D3B08F4CA0EEB95A38A72518724531EE892023EF21F4FC3C1271D95D8FC77A9E + 1F20F33B576D2AFF9ED77FB9ADAC669ACC93DF341E87656305EED36A11E680BF + 83220607D0DF3F84045B8E884283AB97AF0D78BCCA0DC4D85A40EF5E61F77E13 + 7CBE107EEDF4201A4B8051A6E3585D1FC64647F1C3B99338FCD649F43A388CCE + 4A607706F9E098670759BDFDBD1329CB07AF556D2F40AE2E03F1781CDD5D3710 + F250EC54BD01814861EBFE0EB587DF854EB70A2C8DE3F8A776DC4E2EC7A4DD79 + 966C7BF9D2F9070A358DD6483DA9ACCE4728740743BF79B14324DFB2DB10F0FB + 51B4E909A8F30CD0EAD7823AACB8D81B46586D847BF086955434757E5EB0D6B0 + 573A7E85F429DF5E58E5A9CC2322A110DFB6B520430EC464AA857EF5A136B01E + 073EFB6516538C1E813F6F39897EE785239B9FDED2CA858392BAAD6A8CFC6183 + 82CD42B6B114419F17A19900D43A13784102B904A8CCE1D1D0DC8389F8324426 + A7BA88ACB8AD7CCF4B353F4D8EFB98832FAC8372B914B371801344889EE352FF + 4110B13E0770386FA3F9BC1BC1609426F954ABE883A3B2C2FAB26E83D9589921 + 4BE2953D060445077AFF59245351AC4403642979EC3B760537430A443D9E2861 + B31E5D30D2FC2F4AB698BBE40C9399CB02FB7719B08295E3E30FBF46E381DDD0 + 3014635311349FB986EBC13444A7BD3425959FA23FD61CBA9B05A2B07CF4CCAA + 35FA730A9655CDF9035899CDC06BEDC4E6FA06D86F06303C16434CCA20E1F7D3 + 14641D94B97F1F3A2AE6C8D26429377C6261D8CC76558E760D49534893BC8064 + 92176F419188CC21110E47693A7386A6F32DE8A89DBB278DFF57D3EF72B5D753 + CD71A95D0291AC1604CA709CE043BAD2CAA529BEC03755234BC7FF05ED0D8747 + EEB393300000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003AF4944415478DABDD75B48145118 + 07F0FF28AC094550425174A1B21B1474A33B5694EC8369B1565A59D44B11F550 + BDD44377ACEC4A37CB5CCBB4B5581575B5DA4A532B53D36C230ABA41D7070D83 + C03477D6DDCE37DB9C9D19B77136A20F86B33AEEF9EDFF3B676656C1E7F3E17F + 967026E7962171738A59F867209B4CF78FCEE63A71C9E64093335D85EE3E7E25 + A4F6ECDFBE56E0204D1A4A52C2D804AA73ED6E2F3A3ABD68A7C3ED1F3B7E8FED + DF3E63EFE1B350814693C62D9A8E50B1C6270D28BB5BDF1D9C9FF1AA1B54B961 + 0CBC5E2FD26D77D0D2D2FC57D8A0616370D19A632C216161616182B68D62978F + 4F2C7A7CBA1895219030D1E345EA191BA64E9916CA1E51617F0483B5746E5B5D + 48905C0D4DCF90B074B93EA84D268A5D3872E17AB775D32B377BDF8CB8CD18D0 + BF97049614D9A591831B921721E3DA5D0E2A31D1D38593D67C097454BDEC1133 + CF198B2C7B3932738A25904A4EC9C1F5890B70A9E09E6E4B65307EDE78FEFB1F + 1D6E7CFDD6861676B4B3D769A7D261B71EC5D5A20A0E066D69CA9218E4165783 + 92CAA9A4841EFF6B6B9E8383E733ADBA09732FA421BFB4928371F11694390AD5 + 2D4D8A9B8BEB650F4049B598871DD9F61BBA6B486BD629FAD0C946371B4B9C55 + AA96121A1E1E1E002DE65928743E02255D92F751B7A53DD5847123E1ACA8E660 + CCFC58444444C0643221EBB2CD0FC62F9C0E47793D28A93299BC71ECA5770CAF + E1B143A9B8FFF0010767CE8E416D4D3562CD8B916BCBF783747F5CBF2A1E9454 + 8BD1CF45B72A0CAF61EA8103A8AFAB51B59450932902F6020704F901CCAE439E + 545BCAFB6797D7C7D68CAD971858371ADDF21AB2734F1B1F7170C2C449126662 + 6D2D76DC5683943458C94F0723181D2F5CB51C1C153D16919191127AF3765500 + D42BBA69EFD9BAC61046E7DFBEA8E7E0D06123A40D43687965AD7170E79614EC + 389881D76FDEA8CE8D8E8E46F2CA94C08761E3A7578F393870E060A99D84D6D4 + B9FCA020EC63C31E410FDCB671D51F93D1A348BE06096C7DDFC8C17EFDA2F81A + 3634BD340E6E5C978CB4D35941139A1392394629DBBE3471B077EF3E7E901D43 + 06450540F6DE448616CA13293F0481EB562705D249EBA5BEBB14FB1620DBE542 + E6A81688CD4F3948AD24ECDD87AFD2973019B4B0790B94E8EF0F0142095C99B4 + 9C5D83D94113CE8E5D8115CFFB03EF8173F39A21B4BA54D76173EB4FFE8D8F6F + 1A05CAABEFB6447C3F51805DC786C36259163459A762B3D079692E05A8C454A0 + B6B409172724A2F1714D8F3B5A2E02A9B4DF657541E5469A6CDE14F2FF045A8C + EA17B3DA9C7AF449C9A20000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 94000000097048597300000E9C00000E9C01079453DD0000091A4944415478DA + 9596097054F51DC7BFEFDA3B7B41D8DD64D71C24241009844024014492101014 + D4160A28D8B18E38C5BBD45A5B6B6BE980B6D57A0D18A8022A6D119C16396A51 + 4A0847249098262CB903B93661B3F7BEDD7DBB6FDFEB3F412A9DE2D137F36667 + 67DFFE3FEFFBFB7D7F07856F7315BFC581D158C024B3398ECA6159460159A244 + 8916E564B25D8C0B5D386B74012B93DF7414F5B5BFCED866802239CDA455DF75 + 537A8A3D3FC33C715ADE84346D8A9A91641A570271AEA7D7E7E9EE0FB5F7BA82 + 8D1E3FBF2FC1C7DA707E7DE4FF0312459C4E33236B3CFBD2F442ED6C45865321 + 1B6A21533CC4483E287E06D2B58530181DD0684DA0295A760D78C4DA339D818E + CEA18F433E614BE24C9713F895F4CDC0C2DD5A8551FEE1EC69B6B565B7C993C3 + E6AD6CFAE423308E4F201167202758F8878D387B220DDEE1A55898BB06068B1D + B4420D7F302A77760C49276B5B5B3DBED06BE17E66279C2BE35F0D243068A5C7 + EE2AB7AFBCA554C80D99DFD65A0A8F43A3F4C2EF55A2E3733BFAEAACE8DA1FC1 + D4F23B31C2EB2151139039291F45337241A934084424B886FCF267A7DB026DAD + FDCF4487B877AE8752D78751A1D33C71E7ADD9F796CE31E57746B729ED257FC2 + 04EB08DCC34AF4D69540DF3B0FE11E011F7FD488F70EBC0699D3A0F30A83F6BE + 182E76F990E130213B270D03210A235E5E3E55D3121E1A18D9E83BB4623B41C9 + FF0D9CB5AB744AAEFEE5271F2A2B68F57D96E2B5BE88ECC99F816124B83B7290 + A8A9842D3E11F69B1CE0230CEE5EB30432C3A1D74B8117806058C0917F762221 + 4AB8A52C0F1707E3E81FF4A3FEE4857642B9BBF7FD25CE2F8125EFEA53F474F5 + 0B8FCFAF12947193D3B30396791F40ABEF06CFABD15B9B0D7B77154AF3E723AF + B000A9361B18A512BC48E14A185093537CBE104E1E3B0A97604338A1417E6116 + 9C2E11BD9786E5F67F751F94786995EBE0B2C855E0BCDD6577CFCFDC5D75FBCC + 9BDABA9AB87EE64DA4CF390656338250400FD7F11C4C13EEC092797722232B1B + 0A8D0602290B170F8488BA783888E37BB6A1BEE61F58FDD4669C6AE7909AAA47 + 5869C2803B820B0D1D7105850A67F5829314A6EC558CCF4CFEFA178F2D581B94 + 54D6E68BB5943CED1528D3CE13153262211DC2A7F351422F45E582E59890E640 + 9C56C01F030411E043211CFCE31F70EE9303D8F0EC26DC726B259C8351ECDAD7 + 8CE925B96819242A7B8689B33DFBBBECF42A0A25BBB30AF2F4AF3FFD4845D5E7 + AD03DC69E7DB485D7C189C79001258C4790DF83A07D6A43E0CEBCD25D09AAD90 + 69962483418C8FE0F0CED7D17CEA532C7EE049CC2C5F821C2387404CC69E436D + 0812F5018511C39E08717847B7232BFD1E0AA55B17D92AB6FCFDFAEAC89E2342 + 65023100B963444D970AFEBE2F9B87ABFF325E5D558BD61335A83FFA572CDFF0 + 7314DE7607690C0C8C0A20470F1C6FF162CFC15618B333D1EF13D1D5D4195769 + 94EB28BAB4FAD1DB2B06B71CEAFFA526A7C24C14A8C0722C24994152A2904CD2 + 044C214678814B3C02ED839895A884CECB2274E50AEE796A1326975582A239F2 + 3CC01057CCB6006DC3023657D7C3929B81F69124FA5A7BE5444CF80DA59CBFEB + 918DEB6EDED4D45F6338D8F314B2AAD2C1EA75489252250EBF0A26D0982B025F + 53370ABD73801E2F56AC5885CEEE6E98F34BA050EBC873407ADE74D8720B51B7 + BD1AD1848C86010653AA2AD07245C6F0A5214851FE6FA3C0479F595FF64284A6 + 8C1FEEF829BAEC1FC0343B1394210549F1AA4271248C584B272A35EB90B8EC07 + 3FD08D6577DD83C686F37007A3A059EE6A752D5B87A2C56B70764735F926A3AE + 9785A9B80C83310EEECB2EB049F104C5CE7B77FD86B5337F373ED3AE3BB0FF28 + A6E5766347CB46B0459320A718207B43905A5A51A92587E55782A568D4FCA51A + 8948101367CE47C5FD3F22E164C714729A9431B5E576529791047EF25A3D026A + 33DC02992C9DFD6015CC3E8A9DBB6BFEF285793BE72C9C9579F8F0394CCD240E + 144FE295BAC781295980B307159AB5282E58848905C5305BED10222497DE1198 + D33249E9682191D027097034871AF2F70A07D0D817C6CFDE38871871F5A85BDD + ED97C11AF52F92B2A8B617163876DEF7FDF2F2E60B0354C8E7C3AA4A2B6A1B77 + E1CDBA675161BA17B3729622ABA008E36C0EF2966AE2467AEC70E90BC835E068 + 17C9310093CC32FE5C33806D1FF5206E4C4598F4BE409F4B54DB2C0F9267F632 + D665F40BDF5B39FB69558A8E3D76AC050FAF9E8A346D14EEA14B70F9C2449503 + 464B3A38029308EC1A40BA0E36FA69D59019401CEA8F8978EEAD46B48595F090 + 71161A1E21A32DD9AF48B57C77ACB571B7EE292A2C4C3B5A5955646E6EE9A38C + 5A062B1665C2AE4B22144F22282B49B17363CAA41B2893C96D20F537CB0A2849 + 48777FDA8B3D9FF462446146241A47A8CF0566FCB8036130ABA92F4693C66431 + 6DAF5C347D55BA23953E79C289B9250EAC586087554BC14F4AA49FF4CD44F2C6 + 301B5156301ED012B3360F46F0E357EBE166F4E0650EBCDB8B7854006D1AF79D + 6875F187FF194F5CE9EE9BAD0ED3DECA25C59325D068A8EFC0DC59762C2E4D43 + BE45018626A122C9BF44464E43BD13F316968D19640281D9B4408CD03F6D1AC1 + 1B7B2FC2051DA29402D14008D1E11189B658F60B81E4FDF8A02C7ADDC47F9ED6 + 2DCA7B2823D3F66271E9E494585CA49C4D3DB05B75A89A9B81E26C1DD28D0C2E + 3638F1DC93BFC7D1BA77C86BC9A4C0250C90101C3A3388FDC7FBE0A3344892C9 + 2FF0514406864869E93A6030AC4E6C2D3EFFBF2B06991C6AABF88023DBF2DBBC + A9593AA5568DCB5D2E621E1F8C7A25F2B38CD027DC38FBFE2E3CF8F216787C11 + 34B57BD0D8EE434064A11C6786C43088FA8288BA3D802EC525E9B43F486E2F39 + F2D54B14819AB2A907546AF5467B4E5AB631D5488DE62AE0E3E1F70448CB2371 + 8D8548C2CC24A724914A15D96554C4540C849880A8C70F21C84B943EA553D268 + 1F4F76463E41CD02F11BF65299CA5A77646A884FBCA45028CB8D5633674825E3 + 8365094486484071D2684781A32B85404C11F10610F387C89E437664837E1F99 + 009B13D5331BBEDD5EFAC565B9EF63AD51A32C8925A42762426206C530369A63 + 198AE32012503C1627E34BC058A5A8D46EA854E7928CE2EDB856388257CAA237 + 3AF3EB37EF6B517EBE45C10A6251C01B9C128B8A532996CE92245921D1743C41 + B37D32C7B549B4B2391C94CFE3BDE9FCD79DF56F9BAC2EA7B114766B00000000 + 49454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas new file mode 100644 index 0000000..5aa8a3d --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas @@ -0,0 +1,76 @@ +unit uPluginControllerFicherosEDI; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCFicherosEDI = interface(IInterface) + ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] + end; + + TModuleFicherosEDI = class(TModuleController, IMCFicherosEDI) + actCargarFicheros: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Ficheros1: TMenuItem; + SmallImages: TPngImageList; + actHistorial: TAction; + Historialdecargas1: TMenuItem; + procedure actCargarFicherosExecute(Sender: TObject); + procedure actHistorialExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uAsistenteCargaFicheros, + uEditorHistorialCargasEDI, uBizEDILog, uDataModuleFicherosEDI; + +function GetModule : TModuleController; +begin + Result := TModuleFicherosEDI.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TModuleFicherosEDI.actCargarFicherosExecute(Sender: TObject); +begin + VerAsistenteEtiquetasMontajes; +end; + +procedure TModuleFicherosEDI.actHistorialExecute(Sender: TObject); +var + aControl: IBizEDILog; + aObj: IEditorHistorialCargasEDI; +begin + aControl := dmFicherosEDI.GetItems; + aObj := TfEditorHistorialCargasEDI.Create(Application); + try + with aObj do + begin + EDILog := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleFicherosEDI); + +finalization + UnRegisterModuleClass(TModuleFicherosEDI); + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas new file mode 100644 index 0000000..ad5180a --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas @@ -0,0 +1,233 @@ +unit uSubirFicheros; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, + uROClient, uROClientIntf, uRORemoteService, uROBinMessage, + uROServiceComponent, uROWinInetHttpChannel, + VARELA_Intf, uROTypes; + +type + + { TROThread } + TSubirFicheroThread = class(TThread) + private + fROMessage: TROBinMessage; + fROChannel: TROWinInetHTTPChannel; + fRORemoteService: TRORemoteService; + fOnAbort: TNotifyEvent; + fOnFinished: TNotifyEvent; + fOnProgress: TNotifyEvent; + fOnStartUpload: TNotifyEvent; + fOnError: TNotifyEvent; + fFileName: string; + fUploadOK: Boolean; + fFileSize: Int64; + fCurrentBytePos: Int64; + fTimeStarted: TDateTime; + fFileService: IsrvTransfereciaFicheros; + fErrorText: string; + fInfoStr: string; + fMaxConnectionErrors, fChannelErrorscount: Integer; + procedure RunUpload; + function GetUploadChunk(FileMemStream: TMemoryStream; aSize: Int64; + const Sequence: Integer): Binary; + procedure OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure Run; + protected + public + property UploadOK: Boolean read fUploadOK; + property FileSize: Int64 read fFileSize; + property CurrentBytePos: Int64 read fCurrentBytePos; + property TimeStarted: TDateTime read fTimeStarted; + property ErrorText: string read fErrortext; + property Filename: string read fFilename; + property InfoStr: string read fInfoStr; + constructor Create(aFileName: string; aOnStartUpload, aOnProgress, + aOnFinished, aOnAbort, aOnError: TNotifyEvent); + destructor Destroy; override; + + procedure Execute; override; + end; + +implementation + +uses + uDataModuleBase; + +{ TROThread } + +constructor TSubirFicheroThread.Create(aFileName: string; aOnStartUpload, aOnProgress, + aOnFinished, aOnAbort, aOnError: TNotifyEvent); +begin + inherited Create(TRUE); + fFilename := aFilename; + fmaxconnectionerrors := 5; //try 5 times on channel-error + + fROMessage := TROBinMessage.Create(nil); + fROChannel := TROWinInetHTTPChannel.Create(NIL); + fROChannel.OnFailure := OnChannelFailure; + fROChannel.TargetURL := dmBase.Channel.TargetURL; + + fRORemoteService := TRORemoteService.Create(nil); + fRORemoteService.Channel := fROChannel; + fRORemoteService.Message := fROMessage; + fRORemoteService.ServiceName := 'srvTransfereciaFicheros'; + fFileService := fRORemoteService as IsrvTransfereciaFicheros; + + if assigned(aOnAbort) then + fOnAbort := aOnAbort; + if assigned(aOnFinished) then + fOnFinished := aOnFinished; + if assigned(aOnProgress) then + fOnProgress := aOnProgress; + if assigned(aOnStartUpload) then + fOnStartUpload := aOnStartUpload; + if assigned(aOnError) then + fOnError := aOnError; + Resume; +end; + +destructor TSubirFicheroThread.Destroy; +begin + fFileService := nil; + fROChannel.OnFailure := NIL; + + FreeAndNil(fRORemoteService); + FreeAndNil(fROChannel); + FreeAndNil(fROMessage); + inherited; +end; + +procedure TSubirFicheroThread.Run; +begin + try + RunUpload; + finally + if assigned(fOnFinished) then + fOnFinished(Self); + end; +end; + +procedure TSubirFicheroThread.Execute; +begin + try + Run; + finally + Self.Destroy; + end; +end; + +function TSubirFicheroThread.GetUploadChunk(FileMemStream: TMemoryStream; aSize: + Int64; const Sequence: Integer): Binary; +const + Block: Integer = 65536; +var + Position: Int64; +begin + Result := Binary.Create; + Position := Block * (Sequence - 1); + if Position <= aSize then + begin + FileMemStream.Position := Position; + if Position + Block > aSize then + Result.CopyFrom(FileMemStream, aSize - Position) + else + Result.CopyFrom(FileMemStream, Block); + end; +end; + +procedure TSubirFicheroThread.RunUpload; +var + FileMemStream: TMemoryStream; + Chunk: Binary; + Sequence: Int64; + isfirst: Boolean; +begin + fErrorText := ''; + fUploadOK := false; + fChannelErrorscount := 0; + fCurrentBytePos := 0; + Sequence := 1; + fTimeStarted := Now; + FileMemStream := nil; + isfirst := true; + try + if FileExists(fFilename) then + begin + try + FileMemStream := TMemoryStream.Create; + FileMemStream.LoadFromFile(fFileName); + fFileName := ExtractFileName(fFileName); + fFileSize := FileMemStream.Size; + + fInfoStr := DateTimetoStr(fTimeStarted) + ' ' + + fFileName + ' ' + + FloatToStrF(Filesize / 1024, fffixed, 15, 1) + ' KB'; + + if assigned(fOnStartUpload) then + fOnStartUpload(Self); + Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); + try + while Chunk.Size > 0 do + begin + if Terminated then + begin + if assigned(fOnAbort) then + fOnAbort(Self); + exit; + end; + fFileService.uploadChunk(isfirst, fFileName, Chunk); + isfirst := false; + + Inc(fCurrentBytePos, Chunk.Size); + FreeAndNil(Chunk); + + Inc(Sequence); + if assigned(fOnProgress) then + fOnProgress(Self); + Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); + end; + fUploadOK := (FileSize > 0) and (FileSize = CurrentBytePos); + finally + FreeAndNil(Chunk); + end; + finally + FileMemStream.Free; + end; + end + else begin + fErrorText := 'No existe el fichero ' + fFileName; + if assigned(fOnError) then + fOnError(Self); + end; + except + on e: Exception do + begin + fErrorText := e.Message; + if assigned(fOnError) then + fOnError(Self); + end; + end; +end; + +procedure TSubirFicheroThread.OnChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); +begin + if FChannelErrorsCount > FMaxConnectionErrors then + begin + FErrorText := anException.Message; + Self.Terminate; + end + else + begin + Inc(FChannelErrorsCount); + Sleep(1000); + Retry := true; + end; +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm new file mode 100644 index 0000000..0432b04 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm @@ -0,0 +1,123 @@ +inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGrid: TcxGrid + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnGrouping = True + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewOK: TcxGridDBColumn + DataBinding.FieldName = 'OK' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Glyph.Data = { + 36090000424D3609000000000000360000002800000030000000100000000100 + 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 + 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE + E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 + B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 + 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B + 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 + E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 + 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD + CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 + 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 + 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 + A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA + C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} + Properties.GlyphCount = 3 + Width = 20 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.Alignment.Vert = taVCenter + OnGetDisplayText = cxGridViewFECHAGetDisplayText + SortIndex = 0 + SortOrder = soDescending + Width = 61 + end + object cxGridViewREPORT: TcxGridDBColumn + Caption = 'Report' + DataBinding.FieldName = 'REPORT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 35 + end + object cxGridViewERROR_MSG: TcxGridDBColumn + Caption = 'Error' + DataBinding.FieldName = 'ERROR_MSG' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 323 + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk new file mode 100644 index 0000000..0432b04 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk @@ -0,0 +1,123 @@ +inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGrid: TcxGrid + Width = 736 + Height = 430 + ExplicitWidth = 736 + ExplicitHeight = 430 + inherited cxGridView: TcxGridDBTableView + OptionsCustomize.ColumnGrouping = True + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewOK: TcxGridDBColumn + DataBinding.FieldName = 'OK' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Glyph.Data = { + 36090000424D3609000000000000360000002800000030000000100000000100 + 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 + 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE + E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 + B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 + 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B + 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 + E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 + 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD + CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 + 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 + 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 + A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA + C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB + EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} + Properties.GlyphCount = 3 + Width = 20 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.Alignment.Vert = taVCenter + OnGetDisplayText = cxGridViewFECHAGetDisplayText + SortIndex = 0 + SortOrder = soDescending + Width = 61 + end + object cxGridViewREPORT: TcxGridDBColumn + Caption = 'Report' + DataBinding.FieldName = 'REPORT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 35 + end + object cxGridViewERROR_MSG: TcxGridDBColumn + Caption = 'Error' + DataBinding.FieldName = 'ERROR_MSG' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Vert = taVCenter + Width = 323 + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas new file mode 100644 index 0000000..1324623 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas @@ -0,0 +1,72 @@ +unit uViewHistorialCargasEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGridBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, uBizEDILog, cxCheckBox, + uViewGrid, cxCalendar, cxTextEdit, uDataModuleFicherosEDI, uDAInterfaces; + +type + IViewHistorialCargasEDI = interface(IViewGrid) + ['{556EBF85-7F86-49CB-A8BF-EBF299AAF9E5}'] + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + TfrViewHistorialCargasEDI = class(TfrViewGrid, IViewHistorialCargasEDI) + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewOK: TcxGridDBColumn; + cxGridViewERROR_MSG: TcxGridDBColumn; + cxGridViewREPORT: TcxGridDBColumn; + procedure cxGridViewFECHAGetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + protected + FEDILog : IBizEDILog; + function GetEDILog: IBizEDILog; + procedure SetEDILog(const Value: IBizEDILog); + public + property EDILog: IBizEDILog read GetEDILog write SetEDILog; + end; + + +implementation + +uses DateUtils; + + + +{$R *.dfm} + +{ TfrViewHistorialCargasEDI } + +function TfrViewHistorialCargasEDI.GetEDILog: IBizEDILog; +begin + Result := FEDILog; +end; + +procedure TfrViewHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); +begin + FEDILog := Value; + dsDataSource.DataTable := FEDILog.DataTable; +end; + +procedure TfrViewHistorialCargasEDI.cxGridViewFECHAGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + ADate : TDateTime; +begin + inherited; +{ ADate := ARecord.Values[Sender.Index]; + if DaysBetween(ADate, Now) = 0 then + AText := FormatDateTime('hh:mm', ADate)} +end; + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas new file mode 100644 index 0000000..80f2f87 --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas @@ -0,0 +1,154 @@ +unit schEDILogClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EDILog = '{301F7728-2A2A-465E-89CD-4D36F00E1B31}'; + + { Data table names } + nme_EDILog = 'EDILog'; + + { EDILog fields } + fld_EDILogID = 'ID'; + fld_EDILogREPORT = 'REPORT'; + fld_EDILogFECHA = 'FECHA'; + fld_EDILogOK = 'OK'; + fld_EDILogERROR_MSG = 'ERROR_MSG'; + + { EDILog field indexes } + idx_EDILogID = 0; + idx_EDILogREPORT = 1; + idx_EDILogFECHA = 2; + idx_EDILogOK = 3; + idx_EDILogERROR_MSG = 4; + +type + { IEDILog } + IEDILog = interface(IDAStronglyTypedDataTable) + ['{7B8F10CA-504A-4F10-ADA7-4B805DB211FE}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetREPORTValue: String; + procedure SetREPORTValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetOKValue: Boolean; + procedure SetOKValue(const aValue: Boolean); + function GetERROR_MSGValue: String; + procedure SetERROR_MSGValue(const aValue: String); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REPORT: String read GetREPORTValue write SetREPORTValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property OK: Boolean read GetOKValue write SetOKValue; + property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; + end; + + { TEDILogDataTableRules } + TEDILogDataTableRules = class(TDADataTableRules, IEDILog) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREPORTValue: String; virtual; + procedure SetREPORTValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetOKValue: Boolean; virtual; + procedure SetOKValue(const aValue: Boolean); virtual; + function GetERROR_MSGValue: String; virtual; + procedure SetERROR_MSGValue(const aValue: String); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property REPORT: String read GetREPORTValue write SetREPORTValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property OK: Boolean read GetOKValue write SetOKValue; + property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TEDILogDataTableRules } +constructor TEDILogDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEDILogDataTableRules.Destroy; +begin + inherited; +end; + +function TEDILogDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EDILogID].AsInteger; +end; + +procedure TEDILogDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EDILogID].AsInteger := aValue; +end; + +function TEDILogDataTableRules.GetREPORTValue: String; +begin + result := DataTable.Fields[idx_EDILogREPORT].AsString; +end; + +procedure TEDILogDataTableRules.SetREPORTValue(const aValue: String); +begin + DataTable.Fields[idx_EDILogREPORT].AsString := aValue; +end; + +function TEDILogDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_EDILogFECHA].AsDateTime; +end; + +procedure TEDILogDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EDILogFECHA].AsDateTime := aValue; +end; + +function TEDILogDataTableRules.GetOKValue: Boolean; +begin + result := DataTable.Fields[idx_EDILogOK].AsBoolean; +end; + +procedure TEDILogDataTableRules.SetOKValue(const aValue: Boolean); +begin + DataTable.Fields[idx_EDILogOK].AsBoolean := aValue; +end; + +function TEDILogDataTableRules.GetERROR_MSGValue: String; +begin + result := DataTable.Fields[idx_EDILogERROR_MSG].AsString; +end; + +procedure TEDILogDataTableRules.SetERROR_MSGValue(const aValue: String); +begin + DataTable.Fields[idx_EDILogERROR_MSG].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_EDILog, TEDILogDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas new file mode 100644 index 0000000..e0b923b --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas @@ -0,0 +1,167 @@ +unit schEDILogServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDILogClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EDILogDelta = '{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'; + +type + { IEDILogDelta } + IEDILogDelta = interface(IEDILog) + ['{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldREPORTValue : String; + function GetOldFECHAValue : DateTime; + function GetOldOKValue : Boolean; + function GetOldERROR_MSGValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldREPORT : String read GetOldREPORTValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldOK : Boolean read GetOldOKValue; + property OldERROR_MSG : String read GetOldERROR_MSGValue; + end; + + { TEDILogBusinessProcessorRules } + TEDILogBusinessProcessorRules = class(TDABusinessProcessorRules, IEDILog, IEDILogDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetOldIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetREPORTValue: String; virtual; + function GetOldREPORTValue: String; virtual; + procedure SetREPORTValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetOKValue: Boolean; virtual; + function GetOldOKValue: Boolean; virtual; + procedure SetOKValue(const aValue: Boolean); virtual; + function GetERROR_MSGValue: String; virtual; + function GetOldERROR_MSGValue: String; virtual; + procedure SetERROR_MSGValue(const aValue: String); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property OldID : Integer read GetOldIDValue; + property REPORT : String read GetREPORTValue write SetREPORTValue; + property OldREPORT : String read GetOldREPORTValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OK : Boolean read GetOKValue write SetOKValue; + property OldOK : Boolean read GetOldOKValue; + property ERROR_MSG : String read GetERROR_MSGValue write SetERROR_MSGValue; + property OldERROR_MSG : String read GetOldERROR_MSGValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TEDILogBusinessProcessorRules } +constructor TEDILogBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEDILogBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEDILogBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID]; +end; + +function TEDILogBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogID]; +end; + +procedure TEDILogBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetREPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT]; +end; + +function TEDILogBusinessProcessorRules.GetOldREPORTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogREPORT]; +end; + +procedure TEDILogBusinessProcessorRules.SetREPORTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA]; +end; + +function TEDILogBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogFECHA]; +end; + +procedure TEDILogBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetOKValue: Boolean; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK]; +end; + +function TEDILogBusinessProcessorRules.GetOldOKValue: Boolean; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogOK]; +end; + +procedure TEDILogBusinessProcessorRules.SetOKValue(const aValue: Boolean); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK] := aValue; +end; + +function TEDILogBusinessProcessorRules.GetERROR_MSGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG]; +end; + +function TEDILogBusinessProcessorRules.GetOldERROR_MSGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogERROR_MSG]; +end; + +procedure TEDILogBusinessProcessorRules.SetERROR_MSGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_EDILogDelta, TEDILogBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas new file mode 100644 index 0000000..3c79abf --- /dev/null +++ b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas @@ -0,0 +1,30 @@ +unit uBizEDILog; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schEDILogClient_Intf; + +const + BIZ_EDILOG = 'Client.EDILog'; + + +type + IBizEDILog = interface(IEDILog) + ['{EED6A5BD-DC2A-4233-8097-5D212264CA22}'] + end; + + TBizEDILogDataTableRules = class(TEDILogDataTableRules, IBizEDILog) + end; + + +implementation + +initialization + RegisterDataTableRules(BIZ_EDILOG, TBizEDILogDataTableRules); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj new file mode 100644 index 0000000..954f701 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Parametros.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg new file mode 100644 index 0000000..53e7995 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof new file mode 100644 index 0000000..454c088 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk new file mode 100644 index 0000000..5242dc8 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk @@ -0,0 +1,57 @@ +package Parametros; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + dbrtl, + dsnap, + cxLibraryD10, + dxThemeD10, + adortl, + BaseD10, + ControlesBaseD10, + dxLayoutControlD10, + dxComnD10, + JvCoreD10R, + vcldb, + vcljpg, + vclx, + Jcl, + JclVcl, + JvStdCtrlsD10R, + JvSystemD10R, + tbx_D10, + tb2k_D10; + +contains + uDataModuleParametros in 'uDataModuleParametros.pas' {dmParametros: TDAClientDataModule}, + schParametrosClient_Intf in '..\Reglas\schParametrosClient_Intf.pas', + uBizParametros in '..\Reglas\uBizParametros.pas', + uViewParametrosCentro in 'uViewParametrosCentro.pas' {frViewParametrosCentro: TCustomView}, + uViewParametrosColeccion in 'uViewParametrosColeccion.pas' {frViewParametrosColeccion: TCustomView}; + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache new file mode 100644 index 0000000000000000000000000000000000000000..cb628def9d1344ab9cc475e22333f2707cdefcda GIT binary patch literal 766 zcmc)Iu?oU45C-5n_#S-%AHdOeaVQjvoetzk&l*W{l1mU=9YvqnP>Yp+WioDmh71&BZrx^+@X){DvV8zb#IUgF$Y3cY#$_v!!$RJc4 zoFXW=2_~jXbl8!1@w%bbpn#~u_?Q_TKi;ja-!D!mQS?5KAJSe7f>3KZf9TkdQkw15 lcKe4dM~{82GzzD%>knbWJi|&~zJvbK)MScr!yHeWdICAN5dr`J literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc new file mode 100644 index 0000000..153736a --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res new file mode 100644 index 0000000000000000000000000000000000000000..ea6f55be3be373bb77635abcf5cb62b4a1d7e3e8 GIT binary patch literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!`F$75hlhW6Znuj?mK*AD#yu zyD#i}D-7Op{Esw$$7f;tP&`q4$G+Cec!K8`_qihW>`Se?FaOBC5tDo(_GZaJ)xb^O z^u`KAjXqWE17-V8+7DJ3nreye<(O6VtJ+_8T~T|`s6jHk=0ta$cd{CH)9g(@388Rb PtL`asx)+zP{Bh}DvbcG> literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm new file mode 100644 index 0000000..4d5c1f1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm @@ -0,0 +1,214 @@ +object dmParametros: TdmParametros + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvParametros' + Left = 40 + Top = 32 + end + object tbl_ListaCentros: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CODFILIAL' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODBARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaCentros' + IndexDefs = <> + Left = 160 + Top = 96 + end + object ds_ListaCentros: TDADataSource + DataSet = tbl_ListaCentros.Dataset + DataTable = tbl_ListaCentros + Left = 160 + Top = 32 + end + object tbl_ListaColecciones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'COLECAO' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_COLECAO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ListaColecciones' + IndexDefs = <> + Left = 296 + Top = 96 + end + object dsListaColecciones: TDADataSource + DataSet = tbl_ListaColecciones.Dataset + DataTable = tbl_ListaColecciones + Left = 296 + Top = 32 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas new file mode 100644 index 0000000..c2f730f --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas @@ -0,0 +1,78 @@ +unit uDataModuleParametros; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizParametros, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmParametros = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_ListaCentros: TDACDSDataTable; + ds_ListaCentros: TDADataSource; + tbl_ListaColecciones: TDACDSDataTable; + dsListaColecciones: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetCentros : IBizCentros; + function GetColecciones : IBizColecciones; + end; + +var + dmParametros: TdmParametros; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmParametros.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmParametros.GetCentros: IBizCentros; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ListaCentros, dtLista); + dtLista.BusinessRulesID := BIZ_CENTROS; + Result := (dtLista as IBizCentros); + finally + HideHourglassCursor; + end; +end; + +function TdmParametros.GetColecciones: IBizColecciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ListaColecciones, dtLista); + dtLista.BusinessRulesID := BIZ_COLECCIONES; + Result := (dtLista as IBizColecciones); + finally + HideHourglassCursor; + end; +end; + +initialization + dmParametros := TdmParametros.Create(nil); + +finalization + FreeAndNil(dmParametros); + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm new file mode 100644 index 0000000..5c280e3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm @@ -0,0 +1,36 @@ +inherited frViewParametrosCentro: TfrViewParametrosCentro + Width = 587 + Height = 42 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 587 + Height = 42 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object ccbCentro: TJvCheckedComboBox + Left = 49 + Top = 10 + Width = 392 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 0 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Centro:' + Control = ccbCentro + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas new file mode 100644 index 0000000..55d2ffe --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas @@ -0,0 +1,91 @@ +unit uViewParametrosCentro; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, + JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, + uBizParametros; + +type + IViewParametrosCentro = interface(IViewParametrosControlGrid) + ['{AE4FC794-6D44-40A0-A138-09286870CBB0}'] + + function GetCentrosSeleccionados: TStringList; + property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; + end; + + TfrViewParametrosCentro = class(TfrViewParametrosControlGrid, IViewParametrosCentro) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + ccbCentro: TJvCheckedComboBox; + private + FCentros : IBizCentros; + procedure RellenarListaCentros; + function GetCentrosSeleccionados: TStringList; + public + procedure Execute; override; + procedure Refresh; override; + property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; + end; + +implementation + +uses + uDataModuleParametros, uDADataTable; + +{$R *.dfm} + +{ TfrViewParametrosCentro } + +procedure TfrViewParametrosCentro.Execute; +begin + // inherited; <- no descomentar +end; + +function TfrViewParametrosCentro.GetCentrosSeleccionados: TStringList; +var + i : integer; +begin + Result := TStringList.Create; + + FCentros.DataTable.First; + for i := 0 to ccbCentro.Items.Count - 1 do + begin + if ccbCentro.Checked[i] then + Result.Add(FCentros.CODBARRA); + FCentros.DataTable.Next; + end; +end; + +procedure TfrViewParametrosCentro.Refresh; +begin + // inherited; <- no descomentar + RellenarListaCentros; +end; + +procedure TfrViewParametrosCentro.RellenarListaCentros; +var + i : Integer; +begin + FCentros := dmParametros.GetCentros; + ccbCentro.Items.BeginUpdate; + + ShowHourglassCursor; + try + ccbCentro.Items.Clear; + FCentros.DataTable.Active := True; + for i := 0 to FCentros.DataTable.RecordCount - 1 do + begin + ccbCentro.Items.Add(FCentros.FILIAL); + FCentros.DataTable.Next; + end; + finally + ccbCentro.Items.EndUpdate; + HideHourglassCursor; + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm new file mode 100644 index 0000000..d268eee --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm @@ -0,0 +1,36 @@ +inherited frViewParametrosColeccion: TfrViewParametrosColeccion + Width = 587 + Height = 42 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 587 + Height = 42 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object ccbColeccion: TJvCheckedComboBox + Left = 65 + Top = 10 + Width = 512 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 0 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Colecci'#243'n:' + Control = ccbColeccion + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas new file mode 100644 index 0000000..f8ee182 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas @@ -0,0 +1,91 @@ +unit uViewParametrosColeccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, + JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, + uBizParametros; + +type + IViewParametrosColeccion = interface(IViewParametrosControlGrid) + ['{5523284E-4445-4026-AFAC-B243C19F0DA7}'] + + function GetColeccionesSeleccionadas: TStringList; + property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; + end; + + TfrViewParametrosColeccion = class(TfrViewParametrosControlGrid, IViewParametrosColeccion) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + ccbColeccion: TJvCheckedComboBox; + dxLayoutControl1Item1: TdxLayoutItem; + private + FColecciones : IBizColecciones; + procedure RellenarListaColecciones; + function GetColeccionesSeleccionadas: TStringList; + public + procedure Execute; override; + procedure Refresh; override; + property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; + end; + +implementation + +uses + uDataModuleParametros, uDADataTable; + +{$R *.dfm} + +{ TfrViewParametrosColeccion } + +procedure TfrViewParametrosColeccion.Execute; +begin + // inherited; <- no descomentar +end; + +function TfrViewParametrosColeccion.GetColeccionesSeleccionadas: TStringList; +var + i : integer; +begin + Result := TStringList.Create; + + FColecciones.DataTable.First; + for i := 0 to ccbColeccion.Items.Count - 1 do + begin + if ccbColeccion.Checked[i] then + Result.Add(FColecciones.COLECAO); + FColecciones.DataTable.Next; + end; +end; + +procedure TfrViewParametrosColeccion.Refresh; +begin + // inherited; <- no descomentar + RellenarListaColecciones; +end; + +procedure TfrViewParametrosColeccion.RellenarListaColecciones; +var + i : Integer; +begin + FColecciones := dmParametros.GetColecciones; + ccbColeccion.Items.BeginUpdate; + + ShowHourglassCursor; + try + ccbColeccion.Items.Clear; + FColecciones.DataTable.Active := True; + for i := 0 to FColecciones.DataTable.RecordCount - 1 do + begin + ccbColeccion.Items.Add(FColecciones.DESC_COLECAO); + FColecciones.DataTable.Next; + end; + finally + ccbColeccion.Items.EndUpdate; + HideHourglassCursor; + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas new file mode 100644 index 0000000..fb835f0 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas @@ -0,0 +1,196 @@ +unit schParametrosClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaCentros = '{CE7EAA4D-6A5B-418E-931E-61BC59E87921}'; + RID_ListaColecciones = '{30AF285C-6577-445D-A759-78E8EC8275BF}'; + + { Data table names } + nme_ListaCentros = 'ListaCentros'; + nme_ListaColecciones = 'ListaColecciones'; + + { ListaCentros fields } + fld_ListaCentrosCODFILIAL = 'CODFILIAL'; + fld_ListaCentrosCODBARRA = 'CODBARRA'; + fld_ListaCentrosFILIAL = 'FILIAL'; + + { ListaCentros field indexes } + idx_ListaCentrosCODFILIAL = 0; + idx_ListaCentrosCODBARRA = 1; + idx_ListaCentrosFILIAL = 2; + + { ListaColecciones fields } + fld_ListaColeccionesCOLECAO = 'COLECAO'; + fld_ListaColeccionesDESC_COLECAO = 'DESC_COLECAO'; + + { ListaColecciones field indexes } + idx_ListaColeccionesCOLECAO = 0; + idx_ListaColeccionesDESC_COLECAO = 1; + +type + { IListaCentros } + IListaCentros = interface(IDAStronglyTypedDataTable) + ['{FF4F6460-CEBC-40C5-A2B9-7ED81AE90A7A}'] + { Property getters and setters } + function GetCODFILIALValue: String; + procedure SetCODFILIALValue(const aValue: String); + function GetCODBARRAValue: String; + procedure SetCODBARRAValue(const aValue: String); + function GetFILIALValue: String; + procedure SetFILIALValue(const aValue: String); + + + { Properties } + property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; + property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; + property FILIAL: String read GetFILIALValue write SetFILIALValue; + end; + + { TListaCentrosDataTableRules } + TListaCentrosDataTableRules = class(TDADataTableRules, IListaCentros) + private + protected + { Property getters and setters } + function GetCODFILIALValue: String; virtual; + procedure SetCODFILIALValue(const aValue: String); virtual; + function GetCODBARRAValue: String; virtual; + procedure SetCODBARRAValue(const aValue: String); virtual; + function GetFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + + { Properties } + property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; + property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; + property FILIAL: String read GetFILIALValue write SetFILIALValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IListaColecciones } + IListaColecciones = interface(IDAStronglyTypedDataTable) + ['{6EACE103-97D5-4D08-9BA5-DC24826BD4C8}'] + { Property getters and setters } + function GetCOLECAOValue: String; + procedure SetCOLECAOValue(const aValue: String); + function GetDESC_COLECAOValue: String; + procedure SetDESC_COLECAOValue(const aValue: String); + + + { Properties } + property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; + property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + end; + + { TListaColeccionesDataTableRules } + TListaColeccionesDataTableRules = class(TDADataTableRules, IListaColecciones) + private + protected + { Property getters and setters } + function GetCOLECAOValue: String; virtual; + procedure SetCOLECAOValue(const aValue: String); virtual; + function GetDESC_COLECAOValue: String; virtual; + procedure SetDESC_COLECAOValue(const aValue: String); virtual; + + { Properties } + property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; + property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TListaCentrosDataTableRules } +constructor TListaCentrosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaCentrosDataTableRules.Destroy; +begin + inherited; +end; + +function TListaCentrosDataTableRules.GetCODFILIALValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString; +end; + +procedure TListaCentrosDataTableRules.SetCODFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString := aValue; +end; + +function TListaCentrosDataTableRules.GetCODBARRAValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosCODBARRA].AsString; +end; + +procedure TListaCentrosDataTableRules.SetCODBARRAValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosCODBARRA].AsString := aValue; +end; + +function TListaCentrosDataTableRules.GetFILIALValue: String; +begin + result := DataTable.Fields[idx_ListaCentrosFILIAL].AsString; +end; + +procedure TListaCentrosDataTableRules.SetFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_ListaCentrosFILIAL].AsString := aValue; +end; + + +{ TListaColeccionesDataTableRules } +constructor TListaColeccionesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TListaColeccionesDataTableRules.Destroy; +begin + inherited; +end; + +function TListaColeccionesDataTableRules.GetCOLECAOValue: String; +begin + result := DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString; +end; + +procedure TListaColeccionesDataTableRules.SetCOLECAOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString := aValue; +end; + +function TListaColeccionesDataTableRules.GetDESC_COLECAOValue: String; +begin + result := DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString; +end; + +procedure TListaColeccionesDataTableRules.SetDESC_COLECAOValue(const aValue: String); +begin + DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString := aValue; +end; + + +initialization + RegisterDataTableRules(RID_ListaCentros, TListaCentrosDataTableRules); + RegisterDataTableRules(RID_ListaColecciones, TListaColeccionesDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas new file mode 100644 index 0000000..9bd380b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas @@ -0,0 +1,203 @@ +unit schParametrosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schParametrosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_ListaCentrosDelta = '{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'; + RID_ListaColeccionesDelta = '{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'; + +type + { IListaCentrosDelta } + IListaCentrosDelta = interface(IListaCentros) + ['{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'] + { Property getters and setters } + function GetOldCODFILIALValue : String; + function GetOldCODBARRAValue : String; + function GetOldFILIALValue : String; + + { Properties } + property OldCODFILIAL : String read GetOldCODFILIALValue; + property OldCODBARRA : String read GetOldCODBARRAValue; + property OldFILIAL : String read GetOldFILIALValue; + end; + + { TListaCentrosBusinessProcessorRules } + TListaCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaCentros, IListaCentrosDelta) + private + protected + { Property getters and setters } + function GetCODFILIALValue: String; virtual; + function GetOldCODFILIALValue: String; virtual; + procedure SetCODFILIALValue(const aValue: String); virtual; + function GetCODBARRAValue: String; virtual; + function GetOldCODBARRAValue: String; virtual; + procedure SetCODBARRAValue(const aValue: String); virtual; + function GetFILIALValue: String; virtual; + function GetOldFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + + { Properties } + property CODFILIAL : String read GetCODFILIALValue write SetCODFILIALValue; + property OldCODFILIAL : String read GetOldCODFILIALValue; + property CODBARRA : String read GetCODBARRAValue write SetCODBARRAValue; + property OldCODBARRA : String read GetOldCODBARRAValue; + property FILIAL : String read GetFILIALValue write SetFILIALValue; + property OldFILIAL : String read GetOldFILIALValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IListaColeccionesDelta } + IListaColeccionesDelta = interface(IListaColecciones) + ['{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'] + { Property getters and setters } + function GetOldCOLECAOValue : String; + function GetOldDESC_COLECAOValue : String; + + { Properties } + property OldCOLECAO : String read GetOldCOLECAOValue; + property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; + end; + + { TListaColeccionesBusinessProcessorRules } + TListaColeccionesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaColecciones, IListaColeccionesDelta) + private + protected + { Property getters and setters } + function GetCOLECAOValue: String; virtual; + function GetOldCOLECAOValue: String; virtual; + procedure SetCOLECAOValue(const aValue: String); virtual; + function GetDESC_COLECAOValue: String; virtual; + function GetOldDESC_COLECAOValue: String; virtual; + procedure SetDESC_COLECAOValue(const aValue: String); virtual; + + { Properties } + property COLECAO : String read GetCOLECAOValue write SetCOLECAOValue; + property OldCOLECAO : String read GetOldCOLECAOValue; + property DESC_COLECAO : String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; + property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TListaCentrosBusinessProcessorRules } +constructor TListaCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaCentrosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaCentrosBusinessProcessorRules.GetCODFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldCODFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODFILIAL]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetCODFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL] := aValue; +end; + +function TListaCentrosBusinessProcessorRules.GetCODBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldCODBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODBARRA]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetCODBARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA] := aValue; +end; + +function TListaCentrosBusinessProcessorRules.GetFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL]; +end; + +function TListaCentrosBusinessProcessorRules.GetOldFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosFILIAL]; +end; + +procedure TListaCentrosBusinessProcessorRules.SetFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL] := aValue; +end; + + +{ TListaColeccionesBusinessProcessorRules } +constructor TListaColeccionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TListaColeccionesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TListaColeccionesBusinessProcessorRules.GetCOLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO]; +end; + +function TListaColeccionesBusinessProcessorRules.GetOldCOLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesCOLECAO]; +end; + +procedure TListaColeccionesBusinessProcessorRules.SetCOLECAOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO] := aValue; +end; + +function TListaColeccionesBusinessProcessorRules.GetDESC_COLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO]; +end; + +function TListaColeccionesBusinessProcessorRules.GetOldDESC_COLECAOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesDESC_COLECAO]; +end; + +procedure TListaColeccionesBusinessProcessorRules.SetDESC_COLECAOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_ListaCentrosDelta, TListaCentrosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ListaColeccionesDelta, TListaColeccionesBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas new file mode 100644 index 0000000..b7ec883 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas @@ -0,0 +1,49 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2007 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizParametros; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, + schParametrosClient_Intf; + + +const + BIZ_CENTROS = 'Client.Centros'; + BIZ_COLECCIONES = 'Client.Colecciones'; + +type + IBizCentros = interface(IListaCentros) + ['{1B5A35E8-1243-4222-BB86-558574C0F2AE}'] + end; + + IBizColecciones = interface(IListaColecciones) + ['{BF62BD66-69B4-4134-954E-724C7C65CB5C}'] + end; + + TBizCentrosDataTableRules = class(TListaCentrosDataTableRules, IBizCentros) + end; + + TBizColeccionesDataTableRules = class(TListaColeccionesDataTableRules, IBizColecciones) + end; + +implementation + +uses + uDataModuleParametros; + +{ TBizCentrosDataTableRules } + +initialization + RegisterDataTableRules(BIZ_CENTROS, TBizCentrosDataTableRules); + RegisterDataTableRules(BIZ_COLECCIONES, TBizColeccionesDataTableRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm new file mode 100644 index 0000000..fb27827 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm @@ -0,0 +1,155 @@ +object srvParametros: TsrvParametros + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schParametros + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schParametros: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT'#10' RDX_FILIALES.CODFILIAL, RDX_FILIALES.CODBARRA, FILI' + + 'AIS.FILIAL'#10'FROM'#10' RDX_FILIALES INNER JOIN FILIAIS ON (RDX_FILI' + + 'ALES.CODFILIAL = FILIAIS.COD_FILIAL)'#10'WHERE'#10' RDX_FILIALES.COD' + + 'FILIAL <> '#39'000001'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODFILIAL' + TableField = 'CODFILIAL' + end + item + DatasetField = 'CODBARRA' + TableField = 'CODBARRA' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end> + end> + Name = 'ListaCentros' + Fields = < + item + Name = 'CODFILIAL' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODBARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT'#10' COLECOES.COLECAO, COLECOES.DESC_COLECAO'#10'FROM'#10' CO' + + 'LECOES'#10'WHERE'#10' COLECOES.COLECAO NOT IN ('#39'IND'#39', '#39'PRI'#39', '#39'009'#39')'#10 + + 'ORDER BY COLECOES.COLECAO DESC' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'COLECAO' + TableField = 'COLECAO' + end + item + DatasetField = 'DESC_COLECAO' + TableField = 'DESC_COLECAO' + end> + end> + Name = 'ListaColecciones' + Fields = < + item + Name = 'COLECAO' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_COLECAO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas new file mode 100644 index 0000000..3cc706d --- /dev/null +++ b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas @@ -0,0 +1,48 @@ +unit srvParametros_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; + + +type + { TsrvParametros } + TsrvParametros = class(TDARemoteService, IsrvParametros) + DABINAdapter: TDABINAdapter; + schParametros: TDASchema; + private + protected + { IsrvParametros methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvParametros(out anInstance : IUnknown); +begin + anInstance := TsrvParametros.Create(NIL); +end; + +{ srvParametros } +initialization + TROClassFactory.Create('srvParametros', Create_srvParametros, TsrvParametros_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj new file mode 100644 index 0000000..6072fed --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj @@ -0,0 +1,679 @@ + + + + + + + + + + + + Recepciones.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + Intraweb 8.0 Design Package for Borland Development Studio 2006 + + + + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof new file mode 100644 index 0000000..a44450d --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk new file mode 100644 index 0000000..76a3206 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk @@ -0,0 +1,84 @@ +package Recepciones; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + Parametros, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxPScxGridLnkD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dclcxLibraryD10; + +contains + uPluginControllerRecepciones in 'uPluginControllerRecepciones.pas' {ModuleRecepciones: TModuleController}, + uDataModuleRecepciones in 'uDataModuleRecepciones.pas' {dmRecepciones: TDAClientDataModule}, + uBizRecepciones in '..\Reglas\uBizRecepciones.pas', + uViewListaRecepciones in 'uViewListaRecepciones.pas' {frViewListaRecepciones: TCustomView}, + uEditorListaRecepciones in 'uEditorListaRecepciones.pas' {fEditorListaRecepciones: TCustomEditor}, + uEditorAjustarRecepciones in 'uEditorAjustarRecepciones.pas' {fEditorAjustarRecepciones}, + uViewListaRecepcionesAlbaran in 'uViewListaRecepcionesAlbaran.pas' {frViewListaRecepcionesAlbaran: TCustomView}, + uEditorListaRecepcionesAlbaran in 'uEditorListaRecepcionesAlbaran.pas' {fEditorListaRecepcionesAlbaran: TCustomEditor}; + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache new file mode 100644 index 0000000000000000000000000000000000000000..ce259cdd7a176e6b3112cfa48d7eed0ccdb01a48 GIT binary patch literal 1259 zcmc(eK}rKb5JktG$Cwj%0C&m6oq>>GR<$X+i=jf>6{@-r+`CIe5bx^{B*+kFneO$6 ze!O4*wrQHLo9-SK68wd7u@-Y|H&hDe-r&g`l?9e;ZTyXh!CW+*a>XM{yHeRvC*S2MP9alL^�Kk*LJ+7v-2DlSn#wLnsE1B S1?}<>{;_wcf_SOkaj!oRx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Recepciones' + IndexDefs = <> + Left = 208 + Top = 32 + end + object ds_Recepciones: TDADataSource + DataSet = tbl_Recepciones.Dataset + DataTable = tbl_Recepciones + Left = 208 + Top = 88 + end + object tbl_RecepcionesAprobadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesAprobadas' + IndexDefs = <> + Left = 352 + Top = 32 + end + object ds_RecepcionesAprobadas: TDADataSource + DataSet = tbl_RecepcionesAprobadas.Dataset + DataTable = tbl_RecepcionesAprobadas + Left = 352 + Top = 88 + end + object tbl_RecepcionesPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + ReadOnly = True + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + ServerAutoRefresh = True + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesPendientes' + IndexDefs = <> + Left = 488 + Top = 32 + end + object ds_RecepcionesPendientes: TDADataSource + DataSet = tbl_RecepcionesPendientes.Dataset + DataTable = tbl_RecepcionesPendientes + Left = 488 + Top = 88 + end + object tbl_RecepcionesAlbaran: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOPRODUCTO' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'RecepcionesAlbaran' + IndexDefs = <> + Left = 208 + Top = 192 + end + object ds_RecepcionesAlbaran: TDADataSource + DataSet = tbl_RecepcionesAlbaran.Dataset + DataTable = tbl_RecepcionesAlbaran + Left = 208 + Top = 248 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 64 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas new file mode 100644 index 0000000..1216728 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas @@ -0,0 +1,131 @@ +unit uDataModuleRecepciones; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizRecepciones, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmRecepciones = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Recepciones: TDACDSDataTable; + ds_Recepciones: TDADataSource; + tbl_RecepcionesAprobadas: TDACDSDataTable; + ds_RecepcionesAprobadas: TDADataSource; + tbl_RecepcionesPendientes: TDACDSDataTable; + ds_RecepcionesPendientes: TDADataSource; + tbl_RecepcionesAlbaran: TDACDSDataTable; + ds_RecepcionesAlbaran: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + function GetItems : IBizRecepciones; overload; + function GetItems(const AEstado : TInvRecepcionEstado) : IBizRecepciones; overload; + function GetItemsAlbaran : IBizRecepcionesAlbaran; overload; + function GetItemsAlbaran(const AEstado : TInvRecepcionAlbaranEstado) : IBizRecepcionesAlbaran; overload; + end; + +var + dmRecepciones: TdmRecepciones; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + + +procedure TdmRecepciones.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmRecepciones.GetItems: IBizRecepciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Recepciones, dtLista); + dtLista.BusinessRulesID := BIZ_RECEPCIONES; + Result := (dtLista as IBizRecepciones); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItems( + const AEstado: TInvRecepcionEstado): IBizRecepciones; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + tirPendiente : CloneDataTable(tbl_RecepcionesPendientes, dtLista); + tirAprobado : CloneDataTable(tbl_RecepcionesAprobadas, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_RECEPCIONES; + Result := (dtLista as IBizRecepciones); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItemsAlbaran: IBizRecepcionesAlbaran; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_RecepcionesAlbaran, dtLista); + dtLista.BusinessRulesID := BIZ_RECEPCIONESALBARAN; + Result := (dtLista as IBizRecepcionesAlbaran); + finally + HideHourglassCursor; + end; +end; + +function TdmRecepciones.GetItemsAlbaran(const AEstado: TInvRecepcionAlbaranEstado): IBizRecepcionesAlbaran; +var + dtLista: IBizRecepcionesAlbaran; +begin + ShowHourglassCursor; + try + dtLista := GetItemsAlbaran; + + with dtLista.DataTable.Where do + begin + Clear; + case AEstado of + tiraPendiente : AddCondition('ESTADOALBARAN', cEqual, 'P'); + tiraRecibido : AddCondition('ESTADOALBARAN', cEqual, 'R'); + end; + end; + + Result := dtLista; + finally + HideHourglassCursor; + end; +end; + +initialization + dmRecepciones := TdmRecepciones.Create(nil); + +finalization + FreeAndNil(dmRecepciones); + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm new file mode 100644 index 0000000..1bfb8a8 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm @@ -0,0 +1,907 @@ +object fEditorAjustarRecepciones: TfEditorAjustarRecepciones + Left = 490 + Top = 337 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de recepciones de productos' + ClientHeight = 536 + ClientWidth = 753 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 753 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de recepciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 224 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label1: TLabel + Left = 22 + Top = 260 + Width = 86 + Height = 13 + Caption = 'Cantidad enviada:' + end + object Label2: TLabel + Left = 22 + Top = 335 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 364 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object edtEnv40: TcxDBMaskEdit + Left = 218 + Top = 258 + DataBinding.DataField = 'E40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 25 + end + object edtEnv38: TcxDBMaskEdit + Left = 114 + Top = 258 + DataBinding.DataField = 'E38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 25 + end + object edtEnv42: TcxDBMaskEdit + Left = 322 + Top = 258 + DataBinding.DataField = 'E42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 25 + end + object edtEnv44: TcxDBMaskEdit + Left = 426 + Top = 258 + DataBinding.DataField = 'E44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 25 + end + object edtEnv46: TcxDBMaskEdit + Left = 530 + Top = 258 + DataBinding.DataField = 'E46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 25 + end + object edtEnv48: TcxDBMaskEdit + Left = 634 + Top = 258 + DataBinding.DataField = 'E48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 25 + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 333 + DataBinding.DataField = 'R38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 333 + DataBinding.DataField = 'R40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 333 + DataBinding.DataField = 'R42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 18 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 333 + DataBinding.DataField = 'R44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 20 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 333 + DataBinding.DataField = 'R46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 22 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 333 + DataBinding.DataField = 'R48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 24 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 25 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 23 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 21 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 19 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 133 + Top = 28 + AutoSize = True + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtCentro: TcxDBLabel + Left = 185 + Top = 28 + AutoSize = True + DataBinding.DataField = 'FILIAL' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtProducto: TcxDBLabel + Left = 133 + Top = 51 + AutoSize = True + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object edtColor: TcxDBLabel + Left = 613 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 118 + end + object edtAlbaran: TcxDBLabel + Left = 133 + Top = 104 + AutoSize = True + DataBinding.DataField = 'ALBARAN' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + end + object cbEstadoAlbaran: TcxComboBox + Left = 133 + Top = 127 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otros') + 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 = 5 + Text = 'cbEstadoAlbaran' + Width = 156 + end + object memEstadoAlbaran: TcxMemo + Left = 22 + Top = 172 + Lines.Strings = ( + 'memEstadoAlbaran') + 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 = 7 + Height = 46 + Width = 708 + end + object cbContabilizarAlbaran: TcxCheckBox + Left = 348 + Top = 127 + Caption = 'Contabilizar este albar'#225'n' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + 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 = 6 + Width = 319 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales' + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item17: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro:' + Control = edtCentro + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group4: TdxLayoutGroup + Caption = 'Datos del albar'#225'n de env'#237'o' + object dxLayoutControl1Group8: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Albar'#225'n de env'#237'o:' + Control = edtAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado del env'#237'o' + Control = cbEstadoAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizarAlbaran + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Observaciones sobre el albar'#225'n:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memEstadoAlbaran + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group9: TdxLayoutGroup + Caption = 'New Group' + ShowCaption = False + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item16: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item14: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtEnv48 + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Datos de recepci'#243'n del env'#237'o' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + Left = 200 + Top = 496 + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas new file mode 100644 index 0000000..633791b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas @@ -0,0 +1,352 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizRecepciones, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarRecepciones = interface + ['{549191AB-7CF0-464A-872B-ECBCD0088A25}'] + function GetItems : IBizRecepciones; + procedure SetItems (const AValue : IBizRecepciones); + property Items : IBizRecepciones read GetItems write SetItems; + end; + + TfEditorAjustarRecepciones = class(TForm, IEditorAjustarRecepciones) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group2: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Group8: TdxLayoutGroup; + dxLayoutControl1Item10: TdxLayoutItem; + edtEnv40: TcxDBMaskEdit; + dxLayoutControl1Group9: TdxLayoutGroup; + dxLayoutControl1Item11: TdxLayoutItem; + edtEnv38: TcxDBMaskEdit; + dxLayoutControl1Item12: TdxLayoutItem; + edtEnv42: TcxDBMaskEdit; + dxLayoutControl1Item13: TdxLayoutItem; + edtEnv44: TcxDBMaskEdit; + dxLayoutControl1Item14: TdxLayoutItem; + edtEnv46: TcxDBMaskEdit; + dxLayoutControl1Item15: TdxLayoutItem; + edtEnv48: TcxDBMaskEdit; + dxLayoutControl1Item16: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtCentro: TcxDBLabel; + dxLayoutControl1Item17: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + edtAlbaran: TcxDBLabel; + dxLayoutControl1Item1: TdxLayoutItem; + cbEstadoAlbaran: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memEstadoAlbaran: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizarAlbaran: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizRecepciones; + FHayErrores : Boolean; + FAlbaranModificado : Boolean; + procedure CargarValores; + procedure SalvarValores; + procedure ModificarAlbaran; + protected + function GetItems : IBizRecepciones; + procedure SetItems (const AValue : IBizRecepciones); + public + property Items : IBizRecepciones read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleRecepciones; + +{$R *.dfm} + +function ShowEditorAjustarRecepciones (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarRecepciones; +begin + AEditor := TfEditorAjustarRecepciones.Create(Application); + try + AEditor.Items := (ABizObject as IBizRecepciones); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarRecepciones.FormShow(Sender: TObject); +begin + FHayErrores := False; + FAlbaranModificado := False; + FItems.DataTable.Open; + + cbEstadoAlbaran.Enabled := Length(FItems.DataTable.FieldByName('ALBARAN').AsString) > 0; + cbContabilizarAlbaran.Enabled := cbEstadoAlbaran.Enabled; + memEstadoAlbaran.Enabled := cbEstadoAlbaran.Enabled; + + CargarValores; +end; + +function TfEditorAjustarRecepciones.GetItems: IBizRecepciones; +begin + Result := FItems; +end; + +procedure TfEditorAjustarRecepciones.SetItems( + const AValue: IBizRecepciones); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarRecepciones.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarRecepciones.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + Application.ProcessMessages; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + if FAlbaranModificado then + ModificarAlbaran; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarRecepciones.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('R38').AsInteger <> FieldByName('RR38').AsInteger then + edtRecR38.Value := FieldByName('RR38').AsInteger + else + edtRecR38.Value := FieldByName('R38').AsInteger; + + if FieldByName('R40').AsInteger <> FieldByName('RR40').AsInteger then + edtRecR40.Value := FieldByName('RR40').AsInteger + else + edtRecR40.Value := FieldByName('R40').AsInteger; + + if FieldByName('R42').AsInteger <> FieldByName('RR42').AsInteger then + edtRecR42.Value := FieldByName('RR42').AsInteger + else + edtRecR42.Value := FieldByName('R42').AsInteger; + + if FieldByName('R44').AsInteger <> FieldByName('RR44').AsInteger then + edtRecR44.Value := FieldByName('RR44').AsInteger + else + edtRecR44.Value := FieldByName('R44').AsInteger; + + if FieldByName('R46').AsInteger <> FieldByName('RR46').AsInteger then + edtRecR46.Value := FieldByName('RR46').AsInteger + else + edtRecR46.Value := FieldByName('R46').AsInteger; + + if FieldByName('R48').AsInteger <> FieldByName('RR48').AsInteger then + edtRecR48.Value := FieldByName('RR48').AsInteger + else + edtRecR48.Value := FieldByName('R48').AsInteger; + + if Length(FieldByName('ESTADO_ALBARAN').AsString) = 0 then + cbEstadoAlbaran.Text := cbEstadoAlbaran.Properties.Items[0] + else + cbEstadoAlbaran.Text := FieldByName('ESTADO_ALBARAN').AsString; + + cbContabilizarAlbaran.Checked := (FieldByName('CONTABILIZAR_ALBARAN').AsString = 'S'); + memEstadoAlbaran.Lines.Clear; + if Length(FieldByName('OBSERVACIONES_ALBARAN').AsString) > 0 then + memEstadoAlbaran.Lines.Add(FieldByName('OBSERVACIONES_ALBARAN').AsString) + end; +end; + +procedure TfEditorAjustarRecepciones.SalvarValores; +var + aux : String; +begin + FAlbaranModificado := False; + with FItems.DataTable do + begin + Edit; + FieldByName('RR38').AsVariant := edtRecR38.Value; + FieldByName('RR40').AsVariant := edtRecR40.Value; + FieldByName('RR42').AsVariant := edtRecR42.Value; + FieldByName('RR44').AsVariant := edtRecR44.Value; + FieldByName('RR46').AsVariant := edtRecR46.Value; + FieldByName('RR48').AsVariant := edtRecR48.Value; + + if cbEstadoAlbaran.Text = cbEstadoAlbaran.Properties.Items[0] then + aux := '' + else + aux := cbEstadoAlbaran.Text; + + if FieldByName('ESTADO_ALBARAN').AsString <> aux then + begin + FAlbaranModificado := True; + FieldByName('ESTADO_ALBARAN').AsString := aux; + end; + + if cbContabilizarAlbaran.Checked then + aux := 'S' + else + aux := 'N'; + + if FieldByName('CONTABILIZAR_ALBARAN').AsString <> aux then + begin + FAlbaranModificado := True; + FieldByName('CONTABILIZAR_ALBARAN').AsString := aux; + end; + + FieldByName('OBSERVACIONES_ALBARAN').AsString := memEstadoAlbaran.Lines.Text; + + Post; + end; +end; + +procedure TfEditorAjustarRecepciones.ModificarAlbaran; +var + bm : TBookMark ; + AAlbaran : String; + AEstado : String; + AContabilizar : String; +begin + { Si se ha cambiado el albarán, hay + que cambiarlo en el resto de filas en las que aparezca } + + AAlbaran := FItems.DataTable.FieldByName('ALBARAN').AsString; + AEstado := FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString; + AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString; + + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + FItems.DataTable.DisableEventHandlers; + FItems.DataTable.LogChanges := False; + try + FItems.DataTable.Filter := 'ALBARAN = ''' + AAlbaran + ''''; + FItems.DataTable.Filtered := True; + FItems.DataTable.First; + + repeat + FItems.Edit; + FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString := AEstado; + FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString := AContabilizar; + FItems.Post; + FItems.DataTable.Next + until FItems.DataTable.EOF; + + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.Filter := ''; + FItems.DataTable.Filtered := False; + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.LogChanges := True; + FItems.DataTable.EnableEventHandlers; + FItems.DataTable.EnableControls; + end; +end; + +initialization + RegisterEditor(IBizRecepciones, ShowEditorAjustarRecepciones, etItem); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm new file mode 100644 index 0000000..f42f185 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm @@ -0,0 +1,1715 @@ +inherited fEditorListaRecepciones: TfEditorListaRecepciones + Left = 448 + Top = 221 + Caption = 'Control de recepciones' + ClientHeight = 664 + ClientWidth = 816 + ExplicitWidth = 824 + ExplicitHeight = 698 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 816 + Caption = 'Control de recepciones' + ExplicitWidth = 816 + inherited Image1: TImage + Left = 789 + ExplicitLeft = 789 + end + end + inherited TBXDock: TTBXDock + Width = 816 + ExplicitWidth = 816 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 578 + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 816 + end + inherited tbxFiltro: TTBXToolbar + Left = 578 + ExplicitLeft = 578 + end + end + inherited StatusBar: TStatusBar + Top = 645 + Width = 816 + ExplicitTop = 645 + ExplicitWidth = 816 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 204 + Width = 816 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaRecepciones1: TfrViewListaRecepciones [4] + Left = 0 + Top = 233 + Width = 816 + Height = 412 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 233 + ExplicitWidth = 816 + ExplicitHeight = 412 + inherited cxGrid: TcxGrid + Width = 816 + Height = 412 + ExplicitWidth = 816 + ExplicitHeight = 412 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA + end> + inherited cxGridBandedViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + object TBXDockablePanel1: TTBXDockablePanel [5] + Left = 0 + Top = 76 + MaxClientHeight = 61 + Align = alTop + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 5 + inline frViewParametrosCentro1: TfrViewParametrosCentro + Left = 0 + Top = 19 + Width = 425 + Height = 109 + Align = alLeft + TabOrder = 0 + ReadOnly = False + ExplicitTop = 19 + ExplicitWidth = 425 + ExplicitHeight = 109 + inherited dxLayoutControl1: TdxLayoutControl + Width = 425 + ExplicitWidth = 425 + inherited ccbCentro: TJvCheckedComboBox + Width = 392 + ExplicitWidth = 392 + end + end + end + object TBXLabel1: TTBXLabel + Left = 0 + Top = 0 + Width = 816 + Height = 19 + Margins.Left = 5 + Margins.Top = 5 + Align = alTop + Caption = 'Par'#225'metros de consulta' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = True + ParentFont = False + Underline = True + end + object pnlAgrupaciones: TTBXAlignmentPanel + Left = 425 + Top = 19 + Width = 391 + Height = 109 + Align = alClient + AutoSize = True + TabOrder = 2 + object TBXButton3: TTBXButton + Tag = 3 + Left = 8 + Top = 10 + Width = 90 + Height = 21 + Action = actRefrescar + AutoSize = False + Caption = 'Consultar' + ImageIndex = 0 + TabOrder = 0 + Wrapping = twEndEllipsis + end + end + end + inherited EditorActionList: TActionList [6] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar recepci'#243'n' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Left = 331 + Bitmap = {} + end + inherited LargeImages: TPngImageList [8] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Left = 251 + Top = 88 + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [9] + Left = 416 + Top = 224 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + Left = 368 + Top = 168 + end + inherited dsDataTable: TDADataSource [11] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas new file mode 100644 index 0000000..008f4a6 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas @@ -0,0 +1,370 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizRecepciones, uViewListaRecepciones, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, StdCtrls, TBXDkPanels, + uViewParametrosCentro, uViewParametrosControlGrid, uDAInterfaces; + +const + CM_SETFOCUSEDRECORD = WM_USER + 1002; + +type + IEditorListaRecepciones = interface(IEditorGridBase) + ['{5CF9C341-A9BB-4A42-A132-0145827FBD9C}'] + function GetItems: IBizRecepciones; + procedure SetItems(const Value: IBizRecepciones); + property Items: IBizRecepciones read GetItems + write SetItems; + end; + + TfEditorListaRecepciones = class(TfEditorGridBase, IEditorListaRecepciones) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaRecepciones1: TfrViewListaRecepciones; + TBXDockablePanel1: TTBXDockablePanel; + frViewParametrosCentro1: TfrViewParametrosCentro; + TBXLabel1: TTBXLabel; + pnlAgrupaciones: TTBXAlignmentPanel; + TBXButton3: TTBXButton; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizRecepciones; + function GetItems: IBizRecepciones; + procedure SetItems(const Value: IBizRecepciones); + procedure CambiarEstado(const NuevoEstado: TInvRecepcionEstado); + function GetModified: Boolean; override; + procedure CMSetFocusedRecord(var Msg: TMessage); message CM_SETFOCUSEDRECORD; + public + property Items: IBizRecepciones read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleRecepciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaRecepciones.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaRecepciones1; +end; + +function TfEditorListaRecepciones.GetItems: IBizRecepciones; +begin + Result := FItems; +end; + +procedure TfEditorListaRecepciones.SetItems( + const Value: IBizRecepciones); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaRecepciones1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaRecepciones.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + //FItems.DataTable.Active := True; + + frViewParametrosCentro1.Refresh; + with (ViewGrid as IViewListaRecepciones) do + VerPendientes; +end; + +procedure TfEditorListaRecepciones.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + + Items.DataTable.Active := False; + + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmRecepciones.GetItems(tirPendiente); + (ViewGrid as IViewListaRecepciones).VerPendientes; + end; + + 1 : begin + Items := dmRecepciones.GetItems(tirAprobado); + (ViewGrid as IViewListaRecepciones).VerAprobados; + end; + + 2 : begin + Items := dmRecepciones.GetItems; + (ViewGrid as IViewListaRecepciones).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaRecepciones.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepciones.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaRecepciones.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaRecepciones.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaRecepciones.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaRecepciones.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaRecepciones.actRefrescarExecute( + Sender: TObject); +var + ACentrosList : TStringList; + AWhere : String; + i : integer; +begin + AWhere := ''; + + {case (ViewGrid as IViewListaRecepciones).VistaActiva of + trvaPendiente, + trvaAprobado : AWhere := ' and' + else + AWhere := ''; + end;} + + AWhere := AWhere + ' CENTRO in ('; + + Items.DataTable.Active := False; + ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; + + ShowHourglassCursor; + try + if ACentrosList.Count = 0 then + ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') + else begin + with Items.DataTable.Where do + begin + Clear; + for i := 0 to ACentrosList.Count - 1 do + begin + if i > 0 then + AWhere := AWhere + ', '; + AWhere := AWhere + '''' + ACentrosList[i] + ''''; + end; + AWhere := AWhere + ')'; + AddText(AWhere, False); + end; + Items.DataTable.Active := True; + end; + finally + HideHourglassCursor; + FreeAndNIL(ACentrosList); + end; + + inherited; + + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaRecepciones.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(tirPendiente); +end; + +procedure TfEditorListaRecepciones.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tirPendiente); +end; + +procedure TfEditorListaRecepciones.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(tirAprobado); +end; + +procedure TfEditorListaRecepciones.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = tirAprobado); +end; + +procedure TfEditorListaRecepciones.CambiarEstado( + const NuevoEstado: TInvRecepcionEstado); +var + ARecord: TcxCustomGridRecord; + i : Integer; + bm : TBookMark ; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + bm := FItems.DataTable.GetBookMark; + //FItems.DataTable.DisableControls; <- No descomentar + ViewGrid._FocusedView.BeginUpdate; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + if (ARecord as TcxGridDataRow).CanFocus then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + end; + FItems.DataTable.ApplyUpdates; + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.FreeBookMark(BM); + //FItems.DataTable.EnableControls; <- No descomentar + ViewGrid._FocusedView.EndUpdate; + ViewGrid._FocusedView.Controller.ClearSelection; + PostMessage(Handle, CM_SETFOCUSEDRECORD, Integer(ViewGrid._FocusedView), + MakeLParam(ViewGrid._FocusedView.Controller.FocusedRowIndex, + ViewGrid._FocusedView.Controller.TopRowIndex)); + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepciones.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaRecepciones.GetModified: Boolean; +begin + Result := False; +end; + +procedure TfEditorListaRecepciones.CMSetFocusedRecord(var Msg: TMessage); +begin + TcxGridDBTableView(msg.WParam).Controller.FocusedRowIndex := Msg.LParamLo; + TcxGridDBTableView(msg.WParam).Controller.TopRowIndex := Msg.LParamHi; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm new file mode 100644 index 0000000..04d1789 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm @@ -0,0 +1,1576 @@ +inherited fEditorListaRecepcionesAlbaran: TfEditorListaRecepcionesAlbaran + Left = 286 + Top = 168 + Width = 850 + Height = 671 + Caption = 'Control de '#225'lbaranes' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 842 + Caption = 'Control de albaranes' + inherited Image1: TImage + Left = 815 + end + end + inherited TBXDock: TTBXDock + Width = 842 + inherited tbxMain: TTBXToolbar + object TBXSeparatorItem16: TTBXSeparatorItem [7] + end + object tbxiExpandir: TTBXItem [15] + Action = actExpandir + end + object tbxiContraer: TTBXItem [16] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [17] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + Left = 344 + DockPos = 344 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 842 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 76 + Width = 842 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran [4] + Left = 0 + Top = 105 + Width = 842 + Height = 513 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 842 + Height = 513 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewESTADOPRODUCTO: TcxGridDBColumn + Caption = 'Situaci'#243'n' + end + inherited cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + end + inherited cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + end + inherited cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar recepci'#243'n' + Visible = False + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas new file mode 100644 index 0000000..b6218d1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas @@ -0,0 +1,184 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaRecepcionesAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizRecepciones, uEditorGridBase, JvTabBar, uCustomView, uViewBase, + uViewGridBase, uViewGrid, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, StdCtrls, + uViewListaRecepcionesAlbaran; + + +type + IEditorListaRecepcionesAlbaran = interface(IEditorGridBase) + ['{143EEF14-E999-4570-85A6-3F06F0F22044}'] + function GetItems: IBizRecepcionesAlbaran; + procedure SetItems(const Value: IBizRecepcionesAlbaran); + property Items: IBizRecepcionesAlbaran read GetItems write SetItems; + end; + + TfEditorListaRecepcionesAlbaran = class(TfEditorGridBase, IEditorListaRecepcionesAlbaran) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + TBXSeparatorItem16: TTBXSeparatorItem; + frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + protected + FItems : IBizRecepcionesAlbaran; + function GetItems: IBizRecepcionesAlbaran; + procedure SetItems(const Value: IBizRecepcionesAlbaran); + public + property Items: IBizRecepcionesAlbaran read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleRecepciones, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaRecepcionesAlbaran.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaRecepcionesAlbaran1; +end; + +function TfEditorListaRecepcionesAlbaran.GetItems: IBizRecepcionesAlbaran; +begin + Result := FItems; +end; + +procedure TfEditorListaRecepcionesAlbaran.SetItems(const Value: IBizRecepcionesAlbaran); +begin + FItems := Value; + if Assigned(FItems) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FItems.DataTable; + frViewListaRecepcionesAlbaran1.dsDataSource.DataTable := FItems.DataTable; + + if not FItems.DataTable.Active then + FItems.DataTable.Active := True; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + with (ViewGrid as IViewListaRecepcionesAlbaran) do + begin + AjustarAncho; + ContraerTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + Items.DataTable.Active := False; + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmRecepciones.GetItemsAlbaran(tiraPendiente); + end; + + 1 : begin + Items := dmRecepciones.GetItemsAlbaran(tiraRecibido); + end; + + 2 : begin + Items := dmRecepciones.GetItemsAlbaran; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + with (ViewGrid as IViewListaRecepcionesAlbaran) do + begin + ExpandirTodo; + AjustarAncho; + ContraerTodo; + _FocusedView.EndUpdate; + GotoFirst; + end; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaRecepcionesAlbaran.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaRecepcionesAlbaran.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaRecepcionesAlbaran.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; + ViewGrid.GotoFirst; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm new file mode 100644 index 0000000..f7f43f4 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm @@ -0,0 +1,756 @@ +object ModuleRecepciones: TModuleRecepciones + OldCreateOrder = True + DefaultAction = actRecepcion + Description = 'Control de recepci'#243'n de prendas' + ModuleMenu = MainMenu + ModuleName = 'Control de recepci'#243'n de prendas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001CC4944415478DA63FCFFFF3F032D + 0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B66C17FE5861A06 + 76F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD06A7F0C560C073F + 7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE410C38E584690116 + 79E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F3E405CF82A0561 + 011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF92C79A06410680 + 52113E794216381F7C883B9DDBCB33B81092A7381F6073212140523E0059805C + AC1093FB8166EE253A1FA05B303D4AF63FBEDC7DB7A18501682623D1F9009B05 + 59D76B187EEC78CFC0C0C109C41C703990A54033B15840209D235BC06838F3BF + B1B93DC3D1C279100B0484E096E0B680403A87590032BCBC328061CFBEF72841 + 73B47327D812AC1610CA07300B40865BDA6932648459A1A899B4F80EC3D1CAE5 + 609FB0F3E7635840301F80D3B9C10CB0E1C24A926071111E5606715E4E062D69 + 61880599532116C837A25AC0C8485C1247F601B2258E1A32600B12AC1F80C552 + C31EA2A622522C80C501C892E387AEC3E540119EFCC915C5D7F07C40AC052800 + 185C60FA4206238AE54866C173325916C02C41B200DD1CB805B40434B7000019 + B523EF6A240B860000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000004FB4944415478DA9D957B50547514 + C7BFF7B54F6079DC85856569C1911115F101E1F8C8473435E334D51F65FED38C + 4EE6A4A533CDD41F0565A6D230E39868F218922173CAD2EC9D35D604BE928780 + 4248C28ABB8AC0E2021BCBB2F7D9EFAE3BC60CF888737FBFFB9BFD3DCEE777CE + D97B0EA5AA2A2EECA30015064541148850E467681CB872955D6C309BAA199A02 + CDD0100591ACA9E8EB0FFCA93361FDAA3C20184258281A32280CE56F533151A8 + 08C048069B2C228380C2807102E8E98DCA4B74A617732C039D9E41E09F20B988 + 80AEBFBA3A141AAFAF5A44F60911450C42A43711407012A0BE942B63B8D825D1 + C973E6317A725B42181B95D0D6E4C2DA9D1FC2D5D886AEBF6F63E59AA5A083D7 + F0C5EE1DF0B34EAC7D310BBE811168E60B237E84463BCB176E165F9D04683C18 + 25C424E7729905AF01EC28409B517BB80A09BC01B37373B0BFF8083CAD2EBCB9 + 6F0B0C7A16DD4DB53877DE8B27376EC6CC2C2BA4E101B4FF7214AE8E0EF1B912 + 513709D05C69F65AD317F0E319DBD1E93142A9DF86B414E091393990C5107A3D + 5E58628DB024392004FCE038153DCD75A8FDC30BE7332588776441AE7D1C9DED + 18DC54A35A27015A2A4D04309FEF892B069FB4180D75C7106CD80A451234EBC1 + 720C28D6005992C85C8804940123CBE406EB70D29D8D817E0FB6E77E048F4B1C + 7CA9E23E80EBF1BB90E6588C14AB11474EFC0685FCADEE6EA4EEC4868AF490A8 + 6059DE5C74B86EA2A4F413BC9F5F819B3DF28301A9F67CA4D94CB89FC83209AA + 2811E3289CAC6B4169C5A728CA3D387DC048F7598C36550192198A4A6BC7A02A + 01283A1DDC010BDEFD690C458B3E9E3EA0EDE712E8E93ED81CCB8962ED90161A + 15FE2BDFC0773B80ADA752A70FD0D67F3DB411E3FC7CAC591D073ADA00853C2C + 66C377F60C86AF3660C30FE6E901C8122449C67B7B8E2323DE8B975734039638 + 4831D1A04DCB31547B053ED765BCF22387C2E900044146E9E71DA8AE65F0EC5C + 370A52CE21A48B8573C63866E5CCC7EDBAEBF0756B00F67F00520920C91476CD + DE9A669CEE12B172590E3ADD21083207DF0885998693D8B98DC6687D3F863B1B + B1E17B230A173E0C206117EC291AC0881DE54D38D13484ECEC34F0B106449938 + E8F51C4CC482D6DFBFC3BA471BE110AF41F04B78E394FD01808A0880DF85A4C4 + 5C3888055B8A4FE352BF8A34270F867CB92623516E36C2694B45DFD92A2CCBE8 + 039F988E5E3F8BF2E3E7F1CEC203F706345718BD7C5A36EFE17723C19A17FE92 + 87FD41EC3ED4827AB704DE1A0D2924C36864614B4A874DB88835AB66123752E8 + 76DF44F5675F3D1890E0981D06C426E4C36ED5933C2F223826E18343AD3876CA + 8DA7972491E09B21CA34B266A5223399D4179AC635CFC300CA0D0490C5BB490C + AC29CB11635010088A90640523A321ECA969C3534B529035C342E66492A3D470 + 67190637FA07505573146F2FD87F3F80DE1B6FCFE46FD8F6A2BBCF8EE6D6168C + 9152459152A93D5AD35E5464BCD3282DD18263599C397F01254B4B09409A1A70 + B1CCE0B52467F2BA394538FC6D3B7C837DE4204DD2824CFC2CDF19235DCB15AA + ACCD2BE14AA689D9C0A280FF1AAE2E69707DE51480C6B298718B7D9E3E2ED10E + 65A81D2C4B45942BFF298F80886F48D34679422A27F5DB3D844B9795D0A66AD5 + 301970802BD499A256F4DE100A6EB9C74881892CDE7D4D3C31750A67751013E2 + B1E3892275E72440C37EFA059663575EEF919FBFD5AB10F7DC5BD154202D67E9 + F518723A51F8D85BEA9713B7FD0B5B96F1EFAB7DEF880000000049454E44AE42 + 6082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRecepcion: TAction + Category = 'Inventario' + Caption = 'Control de recepci'#243'n' + ImageIndex = 0 + OnExecute = actRecepcionExecute + end + object actRecepcionAlbaranes: TAction + Category = 'Inventario' + Caption = 'Control de albaranes' + ImageIndex = 1 + OnExecute = actRecepcionAlbaranesExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 110 + Action = actRecepcion + end + object Controldealbaranes1: TMenuItem + Tag = 600 + Action = actRecepcionAlbaranes + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000013A4944415478DA63BC5A21F39F81 + 48A0DDF1841199FFFFFF7F06469001CA0D3510911F3F18181EDC6198D7B98121 + 693EA658D6727C064015CEBEE4CDC0BC3D1562009A186E032A4AC00A196E5C65 + 98FDAB0C62C0744C31DC064404806D8101B001E59862380D38F890B840C41F06 + 04020C1BC01B882003400A40E05AA52CD6A8D66A7FCC883310910D981E25FB1F + 14260C0A2A0C0C1C1C60B1BB0D2D480644600F3098018C8633FF4F2E926748D5 + DB0A3704C5006C81083300A4D9D8DC9E21C1FA01432A5B1703838636D890BB1D + 3D1003F08692C18CFFFDAD910C42FC5C0C9316DF810B1FCD9CCA7077C5060206 + 00354747D980352BC908836910001994FCC995C15E9E81381778F9183128CB8A + 304C9EBE0B2C04F2CE99191A707D04E31A640898BE90C1088B7BB046A0DDE030 + 226800CC10240318A10E07B101D716EAE1AF47BD0C0000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000030F4944415478DA85D35F6C53551C + C0F1EFBDB7F7AEAEAD5BB775CA836E14D6CE2CCCCA26B39B1A9CBEB820E3C168 + 4C7C20C1277DF0C527252EFA26181CC14C08983461C4E1BF88C1180631FC892B + 0ECB4A906D256066270E57D6F5CFD6BBDDF6DEE35D595089915F72929393733E + F99DFC7E3FE97C3F080BA554C4AB4858A939C9359B711FAAAE713F61168DE54C + 66512FE84BAF758618312D5CB24A4192D13BDE14267648E7FB95EDB2A37293A7 + AE31A4B99CD6AF13B30E5FCB932D8B8B92BBBAA686627A8273277EBCD2D3BB21 + 5DD273CE4266EE8659CC9D6C7B431F2803B10157DCED0B3E5AFFD44EF2A94932 + 89B3F85B9BF9EEB333843A36D0B0D6CDE96F86A96D798EE0C676E247DFE3CFE4 + F4A517F7885019B8F269C588B32E10CE068698BE7C81A5F1F7512B34244942D1 + EEC3B2FF26F479AEEACF30AD3D4E77F12D8C8C117D794074DE01546F53B8D07C + 187F63888B1747595A365014194950866487466DFD43ECFE783FCF3BFAA81444 + 7BF7DC052C06223437B5E1D428C7ADB12F2195C0141E8459A0602C707C3449BD + 3188B324A2DBFAEF01C43E7F9D86D62EDC2E3796A930FFD35724A6F3CCDEFCFA + DE80690A3ED8DDCF8E2D0B3C10B0ABA585499D1CE7DAB5297EBBBEEF7F80800D + A8B02B32C985A493CD6BE2B8DC697A7BAA90E34926C6934C5DDFFBDFC04230C2 + 23EBDBF8301223362308B5FA592879C8DE9CA7DB374858BB4462CA20FDC7D1BB + 80432BC0FA70DECEC0DFB891BE4FA28C671CF8EA3C786BAAA82C59B4F3050F3E + 1CE4D8F0393AD84545F11FC0E583DA885ABD369C6F8AB0CEBF895251A7EFC018 + 3F8CA5E80856D9908FAD9D6EBB9432834347D86CEEFC7706BF1C54CAC09CFF08 + 866820974B93CA189C199DA1EB311FAAA6A0C81292E2E0C4F071B6686FDB8015 + DDF6D12A103FA0FEECF135B5A5D6BCCBB1530996F51CF67D8428816595274D58 + A6DD503624F27469432C658DD84BFB44FBED59D85FF56DC5FDF5DD8A5AED2AA4 + 7F2F77E0CA83DBAB74676F8BA8AACC8D9902D9ACF5FD2B7B45CFEA30C92F80FC + F4D549F3D5F95B4272A80824FE0E6975514EC8595BCB88D7CBD0B3EF88C32B67 + 7F01C53983F0FCEC7FE90000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002334944415478DABDD4CD4B14611C + 07F0EF20CCBAA38B422042E5128BA2D641F3105628A4F50F04DEC4378636A14B + 88B8D0C18390872EBD1CD6160A111204CF42E42141BC847852B084243D0641AE + B08B31CDEF7166765E9E99791E151F186661BEF3FB3C0CFB7D14C33070994B21 + 703B77BDCFFCFD2526DB2F92B9397BB01AF6902C1B3432D32F90483CE1064BA5 + 397C1899C1E8C7F8CCF8E2812204B6BFFCC55EF2ACA3BFEC2AAC75A36A45C7D3 + 4FF199B383D620366CF3111FE464CE06BA06B161BB8F836048461EF40D42F108 + 85C3212F189191037FBF0A0C42B188C29FF10A18939103BF4F01E5B267108ECD + DD97272B604C4618A45A1496D26159368C6A11971105FBBEEE4797BA378D7E91 + CC85163F6AF7224BBAF804F2CE5ED1A3D13456A58A1F06BE1E518C6C3E1FF985 + F6A667601A8A54F1A3C0AA072BD07B3680DAD4E9E55AB411D30801634A1D09DE + FE5C015D683828506A1EA874CE196F9FA7A1B72C7B410B0D07054AED0709EBBA + D38BE17B3FA15F9D076A6A0328171429BE1F246CFEDD18DE2CFCE0BEB39E5B3C + 05AF4C0440A1E253A96D90B0EE9E366407EE72F3B489F567EF015545A279D60B + 2A8A789F59DEC232371A7072F20FA954923D4B265576EFCA3432903E332D7D60 + DF5B0B19101D7986D5D769D03415C96A3580DAE060A9CD79ED61E3B54AF1A540 + 01F4FEAD26067ECBB73A83C9708E3669D0851258A325A0599F93503F68CF3F1F + E84237D676028FA82A04BA679F1FB45076DFCA3A439C7FB26FEEC58036EA0379 + 331DF032D77F05B2A7E7C969F3360000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000003C64944415478DABD967B4C53571C + C7BFF7D25ADAF14644C40EB48A0614182A746ADC5466073EC77CA3A6262693A8 + 2B3A3715A73173260CFD07B486A9F3B5B06C3EA395971A256AA2F808C5075A10 + 6696A8640E1519D0C77D78EFA1B71115466BE73739F99D73EEEF9ECFF99D9CDF + 2F87E2791EEF539404A428AA4BA7423DBADCD5D2FDE8F2C7B705E30256E6533A + C19439A75D0E66330F7DAEF1AD0B56FFBE0245260E9953E93761E03E4F31F0E5 + DD01F9E8919B103428AC93C3FEB5CB3033FB6BD2FFE19B0262F38A8CF8B7D182 + FA8A1D04987B301F3CEB00C732E039079EDDAD45E3FD22241B58AA5B60E25C63 + 9730092846A3F974B96B4E826ED9934B609C00B694FC882A3387AFF6F1FF0D3C + 76631419BF389C8CC90BA7BD7154CAD06862DB9B1EB8E61EDD3A45A0DA5557C9 + 5853A7750F382F7D1476FC5A06F65C1A7A2ABFF4F330FE7288F40BD37E761F28 + 4A847672166EB2D868C9D294738EC6AC342D0E1EAFC0DEA2939E03BB13C7F160 + 580E0CC33A2D87DF4C17FE1FE0AB30BBD50EBB737CACFCB21781825F63453E98 + BA6238986011DB314D3E35818E4E43F1D378EF01198715BB7334F862DD11F40D + 11735549703C58A14C38505FB008A5C11BBD07B459DB51F85D1234BA0D989270 + 0556FF7E80AF52C8BD5628957A34EC5C8912FFC5DE018A17A2B9A50D9F2DDE0B + 63961C1F4709F9E61F013E301436B90CBE8A2FD160CC4649C09277078AB0C74F + 5A31677D25DA646A18922F604448356CAA300485FBE1438D1D8A804502D0E01D + E08387CD98BBE61C3217A4C2F2A71DCF5A85B2CCF9A0A51D50D86A71D4B00708 + FF1EF53BD7A0D45FEF39508CACA9D98A8CD567E11BDE071FC546A277B08A24BB + 0F4D23C82F00C565379135D68C786D0CEC7FE4E0C4076B3D03CE9A3442C82B16 + 63F42628FA8441DD3FD8556554AA5EF091C91017ADC619D369A4B2ABA10CB022 + 297E212A19AD7BC084D9DB71BC2A05D3C72790E4BE76E76F2CCDBB0AF5E04804 + 06AAE0A752402EF7412F851C4943A270B1FC1296658493D3E02839CC35B5EE01 + 87676CC3895BE33079DC70B28818E58D9A2758995F85BE0322D0D2DC468E5326 + A331B05F081E3F0FC596F98E8EAA23B4DB96FBEE01E3A6E7C2543301BAD17104 + 26D5C8AA7BFF202BEF3A6C2FDA60C88C15A2E7C00A2D521D81615134F113E536 + 3076EA669CBAA7C3C494A12E98B4FB6A4B137E3A701BBBD66B5D9B916AAA24B7 + 8143D337A2A46E0A3E1919430AB127720B38449783D28619D85AB0CF2398A41E + 036352BF256F129E633AEC6BFD0EFBCA37675F70EAB4E8D3BFAEF70C38687C36 + EACF17BC5374927A0224EF52B3D92B3C2426A2FB77E9FBD24BF00815F6456737 + F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas new file mode 100644 index 0000000..808042e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas @@ -0,0 +1,94 @@ +unit uPluginControllerRecepciones; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uBizRecepciones; + +type + IMCRecepciones = interface(IInterface) + ['{3BA48DD2-A9D3-4168-9507-84065E8F839B}'] + end; + + TModuleRecepciones = class(TModuleController, IMCRecepciones) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actRecepcion: TAction; + Controldeventasenproceso1: TMenuItem; + actRecepcionAlbaranes: TAction; + Controldealbaranes1: TMenuItem; + procedure actRecepcionExecute(Sender: TObject); + procedure actRecepcionAlbaranesExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleRecepciones, + uEditorListaRecepciones, uEditorListaRecepcionesAlbaran; + +function GetModule : TModuleController; +begin + Result := TModuleRecepciones.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleRecepciones.actRecepcionExecute(Sender: TObject); +var + aControl: IBizRecepciones; + aObj: IEditorListaRecepciones; +begin + aControl := dmRecepciones.GetItems(tirPendiente); + aObj := TfEditorListaRecepciones.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleRecepciones.actRecepcionAlbaranesExecute(Sender: TObject); +var + aControl: IBizRecepcionesAlbaran; + aObj: IEditorListaRecepcionesAlbaran; +begin + aControl := dmRecepciones.GetItemsAlbaran(tiraPendiente); + aObj := TfEditorListaRecepcionesAlbaran.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleRecepciones); + +finalization + UnRegisterModuleClass(TModuleRecepciones); + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm new file mode 100644 index 0000000..cfce401 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm @@ -0,0 +1,513 @@ +inherited frViewListaRecepciones: TfrViewListaRecepciones + Width = 695 + Height = 477 + ExplicitWidth = 695 + ExplicitHeight = 477 + inherited cxGrid: TcxGrid + Width = 695 + Height = 477 + ExplicitWidth = 695 + ExplicitHeight = 477 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0;-,0' + Kind = skSum + Position = spFooter + Column = cxGridBandedViewDIFERENCIA + end + item + Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' + Kind = skSum + Column = cxGridBandedViewDIFERENCIA + end> + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewColumnOBSERVACIONES + Preview.Visible = True + Styles.Footer = cxStyleFooter + OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell + object cxGridBandedViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 15 + IsCaptionAssigned = True + end + object cxGridBandedViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + Width = 44 + end + object cxGridBandedViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Visible = False + GroupIndex = 0 + SortIndex = 0 + SortOrder = soAscending + Width = 64 + end + object cxGridBandedViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridBandedViewCODIGOGetDataText + OnGetDisplayText = cxGridBandedViewCODIGOGetDisplayText + GroupIndex = 1 + SortIndex = 1 + SortOrder = soAscending + Width = 32 + end + object cxGridBandedViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + Width = 76 + end + object cxGridBandedViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + Width = 49 + end + object cxGridBandedViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + SortIndex = 2 + SortOrder = soAscending + Width = 49 + end + object cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_ALBARAN' + Visible = False + Width = 94 + end + object cxGridBandedViewALBARAN: TcxGridDBColumn + Caption = 'Albar'#225'n' + DataBinding.FieldName = 'ALBARAN' + OnGetDisplayText = cxGridBandedViewALBARANGetDisplayText + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 71 + end + object cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR_ALBARAN' + Visible = False + Width = 20 + end + object cxGridBandedViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 36 + end + object cxGridBandedViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 34 + end + object cxGridBandedViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 35 + end + object cxGridBandedViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEnviado + Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle + Width = 36 + end + object cxGridBandedViewENVIADO: TcxGridDBColumn + Caption = 'Enviado' + DataBinding.FieldName = 'ENVIADO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 36 + end + object cxGridBandedViewR38: TcxGridDBColumn + DataBinding.FieldName = 'R38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR40: TcxGridDBColumn + DataBinding.FieldName = 'R40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR42: TcxGridDBColumn + DataBinding.FieldName = 'R42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR44: TcxGridDBColumn + DataBinding.FieldName = 'R44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR46: TcxGridDBColumn + DataBinding.FieldName = 'R46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewR48: TcxGridDBColumn + DataBinding.FieldName = 'R48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewRECIBIDO: TcxGridDBColumn + DataBinding.FieldName = 'RECIBIDO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Visible = False + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + object cxGridBandedViewRR38: TcxGridDBColumn + Caption = 'R38' + DataBinding.FieldName = 'RR38' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR38GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle + Width = 34 + end + object cxGridBandedViewRR40: TcxGridDBColumn + Caption = 'R40' + DataBinding.FieldName = 'RR40' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR40GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR42: TcxGridDBColumn + Caption = 'R42' + DataBinding.FieldName = 'RR42' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR42GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR44: TcxGridDBColumn + Caption = 'R44' + DataBinding.FieldName = 'RR44' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR44GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR46: TcxGridDBColumn + Caption = 'R46' + DataBinding.FieldName = 'RR46' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR46GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRR48: TcxGridDBColumn + Caption = 'R48' + DataBinding.FieldName = 'RR48' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + OnGetDisplayText = cxGridBandedViewRR48GetDisplayText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleRecibido + Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle + Width = 35 + end + object cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn + Caption = 'Recibido' + DataBinding.FieldName = 'RECIBIDO_RECT' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridBandedViewRECIBIDO_RECTGetDataText + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleSubtotal + Width = 20 + end + object cxGridBandedViewDIFERENCIA: TcxGridDBColumn + Caption = 'Diferencia' + DataBinding.FieldName = 'DIFERENCIA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridBandedViewDIFERENCIAGetDataText + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Width = 50 + end + object cxGridViewColumnOBSERVACIONES: TcxGridDBColumn + Caption = 'OBSERVACIONES' + DataBinding.FieldName = 'OBSERVACIONES_ALBARAN' + PropertiesClassName = 'TcxMemoProperties' + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE RECEPCI'#211'N') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas new file mode 100644 index 0000000..080d655 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas @@ -0,0 +1,595 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaRecepciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo, uDAInterfaces; + +type + TvRecepcionVistaActiva = (trvaPendiente, trvaAprobado, trvaTodos); + + IViewListaRecepciones = interface(IViewGrid) + ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + + function GetVistaActiva : TvRecepcionVistaActiva; + property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; + end; + + TfrViewListaRecepciones = class(TfrViewGrid, IViewListaRecepciones) + cxGridBandedViewCENTRO: TcxGridDBColumn; + cxGridBandedViewFILIAL: TcxGridDBColumn; + cxGridBandedViewCODIGO: TcxGridDBColumn; + cxGridBandedViewPRODUCTO: TcxGridDBColumn; + cxGridBandedViewCOLOR: TcxGridDBColumn; + cxGridBandedViewFECHA: TcxGridDBColumn; + cxGridBandedViewALBARAN: TcxGridDBColumn; + cxGridBandedViewE38: TcxGridDBColumn; + cxGridBandedViewE40: TcxGridDBColumn; + cxGridBandedViewE42: TcxGridDBColumn; + cxGridBandedViewE44: TcxGridDBColumn; + cxGridBandedViewE46: TcxGridDBColumn; + cxGridBandedViewE48: TcxGridDBColumn; + cxGridBandedViewENVIADO: TcxGridDBColumn; + cxGridBandedViewR38: TcxGridDBColumn; + cxGridBandedViewR40: TcxGridDBColumn; + cxGridBandedViewR42: TcxGridDBColumn; + cxGridBandedViewR44: TcxGridDBColumn; + cxGridBandedViewR46: TcxGridDBColumn; + cxGridBandedViewR48: TcxGridDBColumn; + cxGridBandedViewRECIBIDO: TcxGridDBColumn; + cxGridBandedViewDIFERENCIA: TcxGridDBColumn; + cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn; + cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn; + cxGridBandedViewRR38: TcxGridDBColumn; + cxGridBandedViewRR40: TcxGridDBColumn; + cxGridBandedViewRR42: TcxGridDBColumn; + cxGridBandedViewRR44: TcxGridDBColumn; + cxGridBandedViewRR46: TcxGridDBColumn; + cxGridBandedViewRR48: TcxGridDBColumn; + cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn; + cxGridBandedViewAPROBADO: TcxGridDBColumn; + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewColumnOBSERVACIONES: TcxGridDBColumn; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewALBARANGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridBandedViewALBARANStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridBandedViewRECIBIDO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridBandedViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetVistaActiva : TvRecepcionVistaActiva; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; + end; + + +implementation + +uses + uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaRecepciones.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaRecepciones.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaRecepciones.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaRecepciones.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridBandedViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewALBARANGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + if Length(VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index])) > 0 then + AText := AText + ' (' + VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index]) + ')'; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewALBARANStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + + if VarToStr(ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]) = 'N' then + AStyle := cxStyle1; +end; + +procedure TfrViewListaRecepciones.cxGridViewCustomDrawGroupCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridBandedViewFILIAL then + begin + ARecIndex := AViewInfo.GridRecord.RecordIndex; + Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridBandedViewFILIAL.Index]; + AViewInfo.Text := 'Centro: ' + Val1; + end; +end; + + +procedure TfrViewListaRecepciones.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := AText + ' ' + Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaRecepciones.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaRecepciones.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaRecepciones.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewRECIBIDO_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaRecepciones.cxGridBandedViewDIFERENCIAGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + with Sender.GridView.DataController do + begin + Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRECIBIDO_RECT.Index], 0); + Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewENVIADO.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaRecepciones.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyle1.Font.Style; + AnItem.Font.Color := cxStyle1.Font.Color; + end; + end; +end; + +procedure TfrViewListaRecepciones.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridBandedViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +function TfrViewListaRecepciones.GetVistaActiva: TvRecepcionVistaActiva; +begin + if FTipo = 'N' then + Result := trvaPendiente + else if FTipo = 'S' then + Result := trvaAprobado + else + Result := trvaTodos; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm new file mode 100644 index 0000000..8d07c37 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm @@ -0,0 +1,262 @@ +inherited frViewListaRecepcionesAlbaran: TfrViewListaRecepcionesAlbaran + Width = 695 + Height = 477 + inherited cxGrid: TcxGrid + Width = 695 + Height = 477 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.KeyFieldNames = 'Albaran;Codigo;Color' + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupRowStyle = grsOffice11 + Preview.Visible = True + Styles.Footer = cxStyleFooter + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ALBARAN' + Visible = False + OnGetDataText = cxGridViewALBARANGetDataText + GroupIndex = 0 + Width = 63 + end + object cxGridViewESTADOALBARAN: TcxGridDBColumn + DataBinding.FieldName = 'ESTADOALBARAN' + Visible = False + Width = 21 + end + object cxGridViewFILIAL: TcxGridDBColumn + DataBinding.FieldName = 'FILIAL' + Visible = False + Width = 111 + end + object cxGridViewESTADOPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'ESTADOPRODUCTO' + Width = 35 + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Width = 43 + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Width = 143 + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Width = 35 + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + Width = 38 + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + Width = 38 + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + Width = 36 + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + Width = 39 + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + Width = 37 + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + Width = 37 + end + end + end + inherited dsDataSource: TDADataSource + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE ALBARANES') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Informe nuevo' + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleEnviado: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleRecibido: TcxStyle + AssignedValues = [svColor] + Color = 16119285 + end + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas new file mode 100644 index 0000000..0ef731b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas @@ -0,0 +1,111 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaRecepcionesAlbaran; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + IViewListaRecepcionesAlbaran = interface(IViewGrid) + ['{F0B4B97B-158B-4FD8-B3F1-8ECAC7AE40D5}'] + end; + + TfrViewListaRecepcionesAlbaran = class(TfrViewGrid, IViewListaRecepcionesAlbaran) + cxStyleEnviado: TcxStyle; + cxStyleRecibido: TcxStyle; + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyle1: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewALBARAN: TcxGridDBColumn; + cxGridViewESTADOALBARAN: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewESTADOPRODUCTO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + procedure cxGridViewALBARANGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + end; + + +implementation + +uses + uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} +procedure TfrViewListaRecepcionesAlbaran.Preview; +begin + inherited; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaRecepcionesAlbaran.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaRecepcionesAlbaran.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaRecepcionesAlbaran.cxGridViewALBARANGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + ARecIndex: Integer; + Val1: string; +begin + inherited; + + if Assigned(Sender) then + begin + Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewALBARAN.Index]; + AText := Val1; + Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewFILIAL.Index]; + AText := AText + ' - Destino: ' + Val1; + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup new file mode 100644 index 0000000..bb8123f --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\BaseD10.bdsproj + ..\..\ControlesBase\ControlesBaseD10.bdsproj + ..\Parametros\Cliente\Parametros.bdsproj + ..\..\Usuarios\Usuarios.bdsproj + ..\..\Configuracion\Configuracion.bdsproj + Cliente\Recepciones.bdsproj + ..\..\Cliente\AdminPV.bdsproj + ..\..\Servidor\AdminPV_Server.bdsproj + BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl Recepciones.bpl AdminPV.exe AdminPV_Server.exe + + + + diff --git a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local new file mode 100644 index 0000000..b451b7b --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local @@ -0,0 +1,6 @@ + + + + + + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas new file mode 100644 index 0000000..b9531a4 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas @@ -0,0 +1,85 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizRecepciones; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_RECEPCIONES = 'Client.Recepciones'; + BIZ_RECEPCIONESALBARAN = 'Client.RecepcionesAlbaran'; + +type + TInvRecepcionEstado = (tirPendiente, tirAprobado); + TInvRecepcionAlbaranEstado = (tiraPendiente, tiraRecibido); + + IBizRecepciones = interface(IDAStronglyTypedDataTable) //IRecepciones) + ['{51AA574C-78B9-43B7-B278-CDD95B729F60}'] + procedure Show; + procedure SetEstado(const AValue : TInvRecepcionEstado); + function GetEstado : TInvRecepcionEstado ; + property Estado : TInvRecepcionEstado read GetEstado write SetEstado; + end; + + IBizRecepcionesAlbaran = interface(IDAStronglyTypedDataTable) //IRecepcionesAlbaran) + ['{167478EB-ECE5-48D6-A0F2-66F07B62CA3F}'] + end; + + TBizRecepcionesDataTableRules = class(TDADataTableRules, IBizRecepciones) //TRecepcionesDataTableRules, IBizRecepciones, + protected + procedure SetEstado(const AValue : TInvRecepcionEstado); + function GetEstado : TInvRecepcionEstado ; + public + procedure Show; + property Estado : TInvRecepcionEstado read GetEstado write SetEstado; + end; + + TBizRecepcionesAlbaranDataTableRules = class(TDADataTableRules, IBizRecepcionesAlbaran) //TRecepcionesAlbaranDataTableRules, IBizRecepcionesAlbaran, + end; + +implementation + +uses + uEditorUtils, uDataModuleRecepciones; + +{ TBizRecepcionDataTableRules } + +function TBizRecepcionesDataTableRules.GetEstado: TInvRecepcionEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := tirAprobado + else + Result := tirPendiente +end; + +procedure TBizRecepcionesDataTableRules.SetEstado( + const AValue: TInvRecepcionEstado); +begin + case AValue of + tirPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + tirAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizRecepcionesDataTableRules.Show; +begin + ShowEditor(IBizRecepciones, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_RECEPCIONES, TBizRecepcionesDataTableRules); + RegisterDataTableRules(BIZ_RECEPCIONESALBARAN, TBizRecepcionesAlbaranDataTableRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm new file mode 100644 index 0000000..538d1bc --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm @@ -0,0 +1,2482 @@ +object srvRecepciones: TsrvRecepciones + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schRecepciones + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object schRecepciones: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION_ALBARANES' + SQL = + 'SELECT ALBARAN, ESTADOALBARAN, FILIAL, ESTADOPRODUCTO, CODIGO, P' + + 'RODUCTO, COLOR, E38,'#10'E40, E42, E44, E46, E48'#10'FROM RDX_V_CONTROL_' + + 'RECEPCION_ALBARANES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'ESTADOALBARAN' + TableField = 'ESTADOALBARAN' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'ESTADOPRODUCTO' + TableField = 'ESTADOPRODUCTO' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end> + end> + Name = 'RecepcionesAlbaran' + Fields = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADOPRODUCTO' + DataType = datString + Size = 9 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'Recepciones' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT'#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO ' + + '= '#39'N'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'RecepcionesPendientes' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO' + + ' = '#39'S'#39')' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'ALBARAN' + TableField = 'ALBARAN' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'ENVIADO' + TableField = 'ENVIADO' + end + item + DatasetField = 'R38' + TableField = 'R38' + end + item + DatasetField = 'R40' + TableField = 'R40' + end + item + DatasetField = 'R42' + TableField = 'R42' + end + item + DatasetField = 'R44' + TableField = 'R44' + end + item + DatasetField = 'R46' + TableField = 'R46' + end + item + DatasetField = 'R48' + TableField = 'R48' + end + item + DatasetField = 'RECIBIDO' + TableField = 'RECIBIDO' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'ESTADO_ALBARAN' + TableField = 'ESTADO_ALBARAN' + end + item + DatasetField = 'OBSERVACIONES_ALBARAN' + TableField = 'OBSERVACIONES_ALBARAN' + end + item + DatasetField = 'CONTABILIZAR_ALBARAN' + TableField = 'CONTABILIZAR_ALBARAN' + end + item + DatasetField = 'RR38' + TableField = 'RR38' + end + item + DatasetField = 'RR40' + TableField = 'RR40' + end + item + DatasetField = 'RR42' + TableField = 'RR42' + end + item + DatasetField = 'RR44' + TableField = 'RR44' + end + item + DatasetField = 'RR46' + TableField = 'RR46' + end + item + DatasetField = 'RR48' + TableField = 'RR48' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end> + end> + Name = 'RecepcionesAprobadas' + Fields = < + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CENTRO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CODIGO' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_COLOR' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_FECHA' + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_E48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_ENVIADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'R48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_R48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_RECIBIDO_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DictionaryEntry = 'Recepciones_DIFERENCIA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'SELECT '#10' RECIBIDO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL_R' + + 'ECEPCION'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = :CENT' + + 'RO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'RECIBIDO_RECT' + TableField = 'RECIBIDO_RECT' + end> + end> + Name = 'RefreshRecepciones' + Fields = < + item + Name = 'RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR38' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR40' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR42' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR44' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR46' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RR48' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_RECEPCION' + SQL = + 'begin'#10' declare @rowcount_var int'#10' declare @ALBARAN char(7)' + + #10' declare @ESTADO_ALBARAN varchar(20)'#10' declare @OBSERVACIO' + + 'NES_ALBARAN varchar(255)'#10' declare @CONTABILIZAR_ALBARAN char(' + + '1)'#10#10' declare @RR38 numeric(15,0)'#10' declare @RR40 numeric(15' + + ',0)'#10' declare @RR42 numeric(15,0)'#10' declare @RR44 numeric(15' + + ',0)'#10' declare @RR46 numeric(15,0)'#10' declare @RR48 numeric(15' + + ',0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA datetime'#10' ' + + ' declare @CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' ' + + ' declare @COLOR varchar(10)'#10#10' set @ALBARAN = :ALBARAN'#10' s' + + 'et @ESTADO_ALBARAN = :ESTADO_ALBARAN'#10' set @OBSERVACIONES_ALBA' + + 'RAN = :OBSERVACIONES_ALBARAN'#10' set @CONTABILIZAR_ALBARAN = :CO' + + 'NTABILIZAR_ALBARAN'#10#10' set @RR38 = :RR38'#10' set @RR40 = :RR40'#10 + + ' set @RR42 = :RR42'#10' set @RR44 = :RR44'#10' set @RR46 = :RR4' + + '6'#10' set @RR48 = :RR48'#10#10' set @APROBADO = :APROBADO'#10' set @' + + 'FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CODIGO = :CODI' + + 'GO'#10' set @COLOR = :COLOR'#10#10#10' /* ****************************' + + '******* */'#10' if @ALBARAN <> '#39#39#10' begin'#10' update RDX_A' + + 'JUSTES_ALBARAN set'#10#9' ESTADO = @ESTADO_ALBARAN,'#10#9' OBS' + + 'ERVACIONES = @OBSERVACIONES_ALBARAN,'#10#9' CONTABILIZAR = @CON' + + 'TABILIZAR_ALBARAN'#10' where RDX_AJUSTES_ALBARAN.ALBARAN = @' + + 'ALBARAN'#10#10#9' select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10' if @ROWCO' + + 'UNT_VAR = 0'#10#9' begin'#10' insert into RDX_AJUSTES_ALBARAN' + + #10' (ALBARAN, ESTADO, OBSERVACIONES, CONTABILIZ' + + 'AR)'#10' values (@ALBARAN, @ESTADO_ALBARAN,'#10' ' + + ' @OBSERVACIONES_ALBARAN, @CONTABILIZAR_ALBARAN)'#10#10' ' + + ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10' end'#10#10' ' + + ' /* *********************************** */'#10#9'update RDX_RECEPCI' + + 'ON_AJUSTES set'#10#9' CANT38 = @RR38,'#10#9' CANT40 = ' + + '@RR40,'#10#9' CANT42 = @RR42,'#10#9' CANT44 = @RR44,'#10#9 + + ' CANT46 = @RR46,'#10#9' CANT48 = @RR48,'#10' ' + + ' APROBADO = @APROBADO,'#10' FECHACAMBIO = CURRENT' + + '_TIMESTAMP'#10#9'where'#10' (RDX_RECEPCION_AJUSTES.CENTRO = @' + + 'CENTRO and'#10#9' RDX_RECEPCION_AJUSTES.CODIGO = @CODIGO and'#10#9' ' + + ' RDX_RECEPCION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_RECEPCIO' + + 'N_AJUSTES.FECHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9 + + 'if @ROWCOUNT_VAR = 0'#10' begin'#10' insert into RDX_RECE' + + 'PCION_AJUSTES'#10' (FECHA, CENTRO, CODIGO, COLOR,'#10' ' + + ' APROBADO, FECHACAMBIO,'#10' CANT38, CA' + + 'NT40, CANT42,'#10' CANT44, CANT46, CANT48)'#10' ' + + 'values ('#10' @FECHA, @CENTRO, @CODIGO,'#10' ' + + ' @COLOR, @APROBADO, CURRENT_TIMESTAMP,'#10' @RR3' + + '8, @RR40, @RR42,'#10' @RR44, @RR46, @RR48)'#10#10' ' + + ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10'end'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Recepciones' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object bpRecepciones: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'Recepciones' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpRecepcionesAprobadas: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'RecepcionesAprobadas' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpRecepcionesPendientes: TDABusinessProcessor + Schema = schRecepciones + UpdateCommandName = 'Update_Estado_Recepciones' + RefreshDatasetName = 'RefreshRecepciones' + ReferencedDataset = 'RecepcionesPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Recepciones_APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'APROBADO' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHACAMBIO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CENTRO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'FILIAL' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CODIGO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'PRODUCTO' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'COLOR' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'FECHA' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_ALBARAN' + DataType = datString + Size = 7 + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'ALBARAN' + ReadOnly = True + Alignment = taLeftJustify + end + item + Name = 'Recepciones_ESTADO_ALBARAN' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'ESTADO_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_OBSERVACIONES_ALBARAN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'OBSERVACIONES_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_CONTABILIZAR_ALBARAN' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'CONTABILIZAR_ALBARAN' + Alignment = taLeftJustify + end + item + Name = 'Recepciones_E38' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E40' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E42' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E44' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E46' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_E48' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'E48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_ENVIADO' + DataType = datInteger + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'ENVIADO' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R38' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R38' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R40' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R40' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R42' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R42' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R44' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R44' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R46' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R46' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_R48' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'R48' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_RECIBIDO' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'RECIBIDO' + ReadOnly = True + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR38' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR40' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR42' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR44' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR46' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'RR48' + Alignment = taRightJustify + end + item + Name = 'Recepciones_RECIBIDO_RECT' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'RECIBIDO_RECT' + Alignment = taRightJustify + end + item + Name = 'Recepciones_DIFERENCIA' + DataType = datFloat + BlobType = dabtUnknown + LogChanges = False + DisplayWidth = 0 + DisplayLabel = 'DIFERENCIA' + Alignment = taRightJustify + end> + Left = 48 + Top = 104 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 48 + Top = 168 + end +end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas new file mode 100644 index 0000000..0e9d902 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas @@ -0,0 +1,52 @@ +unit srvRecepciones_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + uDAScriptingProvider, uDABusinessProcessor, + {Generated:} VARELA_Intf, uDAClasses, + uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvRecepciones } + TsrvRecepciones = class(TDARemoteService, IsrvRecepciones) + bpRecepciones: TDABusinessProcessor; + bpRecepcionesAprobadas: TDABusinessProcessor; + bpRecepcionesPendientes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schRecepciones: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvRecepciones methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, Variants; + +procedure Create_srvRecepciones(out anInstance : IUnknown); +begin + anInstance := TsrvRecepciones.Create(NIL); +end; + +{ srvRecepciones } +initialization + TROClassFactory.Create('srvRecepciones', Create_srvRecepciones, TsrvRecepciones_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj new file mode 100644 index 0000000..d5c0d3d --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + ReferenciaGenerica.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk new file mode 100644 index 0000000..041fc26 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk @@ -0,0 +1,75 @@ +package ReferenciaGenerica; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R; + +contains + uPluginControllerReferenciaGenerica in 'uPluginControllerReferenciaGenerica.pas' {ModuleReferenciaGenerica: TModuleController}, + uDataModuleReferenciaGenerica in 'uDataModuleReferenciaGenerica.pas' {dmReferenciaGenerica: TDAClientDataModule}, + uBizReferenciaGenerica in '..\Reglas\uBizReferenciaGenerica.pas', + schReferenciaGenericaClient_Intf in '..\Reglas\schReferenciaGenericaClient_Intf.pas', + uEditorListaReferenciaGenerica in 'uEditorListaReferenciaGenerica.pas' {fEditorListaReferenciaGenerica: TCustomEditor}, + uViewListaReferenciaGenerica in 'uViewListaReferenciaGenerica.pas' {frViewListaReferenciaGenerica: TCustomView}, + uEditorCambioReferenciaGenerica in 'uEditorCambioReferenciaGenerica.pas' {fEditorCambioReferenciaGenerica}, + schReferenciaGenericaServer_Intf in '..\Reglas\schReferenciaGenericaServer_Intf.pas'; + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache new file mode 100644 index 0000000000000000000000000000000000000000..5cbf90e3bbf830a342122ca0bd172835e3c64e30 GIT binary patch literal 1360 zcmd6lJx&8b4274DW9$hy0A)4^ArUEJMJh|k%s7kDWQ=SNNL+)CpMsmR3Wy>>TDpl# z`xT$xd&f=Fd>nPBFqcp^l-*j)vF*v7^I&jo1(gLBY;F9Jh`~%WZFOEEOS@FLr{D%F zR7wcF6b%Fmi6xEdD_WCM4vgoNNjc!S8WI{rRG7unY*4`?Id@4VDQEi-=J zXWa#SuK?I39)lw&XOUg>lFf0N^w3iO{^HNn-)fpVN5^fE=`cOrNx#F*Ez30OYfVpA YOi%x;>1R#OWhw*bPO__{L^^Hj7v@RmPyhe` literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm new file mode 100644 index 0000000..fa19a3d --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm @@ -0,0 +1,227 @@ +object dmReferenciaGenerica: TdmReferenciaGenerica + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 298 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvReferenciaGenerica' + Left = 40 + Top = 32 + end + object ds_ReferenciaGenerica: TDADataSource + Left = 192 + Top = 96 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'ReferenciaGenerica' + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = False + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 40 + Top = 96 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 40 + Top = 160 + end + object tbl_ReferenciaGenerica: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'NUMCON' + DataType = datInteger + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + end + item + Name = 'CENTRO' + DataType = datString + Size = 45 + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 86 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'VTAPROCESO' + DataType = datFloat + end + item + Name = 'VTAFINAL' + DataType = datFloat + end + item + Name = 'VTATERM' + DataType = datFloat + end + item + Name = 'VALTOT' + DataType = datFloat + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ReferenciaGenerica' + IndexDefs = <> + Left = 192 + Top = 40 + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas new file mode 100644 index 0000000..2615ede --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas @@ -0,0 +1,139 @@ +unit uDataModuleReferenciaGenerica; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, + uBizReferenciaGenerica, uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer; + +type + TdmReferenciaGenerica = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + ds_ReferenciaGenerica: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + tbl_ReferenciaGenerica: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + private + { Private declarations } + public + procedure Print(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); + procedure Preview(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); + function GetItems : IBizReferenciaGenerica; + function GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GetSelectedItems(const AItems : IBizReferenciaGenerica): IBizReferenciaGenerica; + end; + +var + dmReferenciaGenerica: TdmReferenciaGenerica; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmReferenciaGenerica.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmReferenciaGenerica.GetItems: IBizReferenciaGenerica; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ReferenciaGenerica, dtLista); + dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; + Result := (dtLista as IBizReferenciaGenerica); + finally + HideHourglassCursor; + end; +end; + +function TdmReferenciaGenerica.GetProducto(const Codigo, Talla, + Color: String; out CodigoBarras, Descripcion: String): Boolean; +begin + Result := (RORemoteService as IsrvReferenciaGenerica).GetProducto(Codigo, + Talla, Color, CodigoBarras, Descripcion); +end; + +function TdmReferenciaGenerica.GetSelectedItems( + const AItems: IBizReferenciaGenerica): IBizReferenciaGenerica; +var + dtLista : TDACDSDataTable; + ATarget : TDADataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_ReferenciaGenerica, dtLista, False); + CopyDataTable(AItems.DataTable, dtLista, True); + dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; + dtLista.LogChanges := True; // Para guardar los cambios + dtLista.RemoteFetchEnabled := True; // Para guardar los cambios + Result := (dtLista as IBizReferenciaGenerica); + finally + HideHourglassCursor; + end; +end; + +procedure TdmReferenciaGenerica.Preview(const Centro, Vendedor: String; const Estado : String; + const AFiltro : String); +var + AStream: TROBinaryMemoryStream; + AEditorPreview : TfEditorPreview; +begin + AEditorPreview := TfEditorPreview.Create(Application); + try + ShowHourglassCursor; + try + AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); + AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); + finally + HideHourglassCursor; + end; + AEditorPreview.ShowModal; + finally + AEditorPreview.Release; + AStream.Free; + end; +end; + +procedure TdmReferenciaGenerica.Print(const Centro, Vendedor: String; const Estado : String; + const AFiltro : String); +var + AStream: TROBinaryMemoryStream; + AEditorPreview : TfEditorPreview; +begin + AEditorPreview := TfEditorPreview.Create(Application); + try + ShowHourglassCursor; + try + AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); + AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); + finally + HideHourglassCursor; + end; + AEditorPreview.Print; + finally + AEditorPreview.Release; + AStream.Free; + end; +end; + +initialization + dmReferenciaGenerica := TdmReferenciaGenerica.Create(nil); + +finalization + FreeAndNil(dmReferenciaGenerica); + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm new file mode 100644 index 0000000..9562cb5 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm @@ -0,0 +1,574 @@ +object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica + Left = 418 + Top = 278 + BorderIcons = [biSystemMenu, biMaximize] + Caption = 'Rectificar referencia gen'#233'rica de producto' + ClientHeight = 535 + ClientWidth = 759 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + DesignSize = ( + 759 + 535) + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 759 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Rectificar referencia gen'#233'rica de producto') + Comments.Strings = ( + + 'Indique el c'#243'digo de producto, el color y la talla que correspon' + + 'de a la referencia gen'#233'rica.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 16 + Top = 483 + Width = 730 + Height = 4 + Anchors = [akLeft, akRight, akBottom] + Shape = bsBottomLine + end + object lblImporteTotal: TLabel + Left = 85 + Top = 460 + Width = 5 + Height = 13 + Anchors = [akLeft, akBottom] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object bAceptar: TButton + Left = 577 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 671 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object bComprobar: TButton + Left = 17 + Top = 496 + Width = 152 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Comprobar todos los c'#243'digos' + TabOrder = 2 + OnClick = bComprobarClick + end + object cxGrid: TcxGrid + Left = 16 + Top = 88 + Width = 729 + Height = 385 + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 3 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.DataSource = dsDataSource + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0.##' + Kind = skSum + Column = cxGridViewVALTOT + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.AlwaysShowEditor = True + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsData.Deleting = False + OptionsData.Inserting = False + OptionsSelection.InvertSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.Navigator = True + OptionsView.ScrollBars = ssVertical + OptionsView.ShowEditButtons = gsebAlways + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.GridLines = glNone + OptionsView.GroupByBox = False + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + OptionsView.BandHeaders = False + Bands = < + item + Width = 667 + end> + object cxGridViewRecID: TcxGridDBBandedColumn + DataBinding.FieldName = 'RecID' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewOperacion: TcxGridDBBandedColumn + OnGetProperties = cxGridViewOperacionGetProperties + Options.ShowEditButtons = isebAlways + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 26 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridViewNUMINF: TcxGridDBBandedColumn + DataBinding.FieldName = 'NUMINF' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 1 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE1: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE1' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 2 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE2: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE2' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 3 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCLAVE3: TcxGridDBBandedColumn + DataBinding.FieldName = 'CLAVE3' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 4 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewNUMCON: TcxGridDBBandedColumn + DataBinding.FieldName = 'NUMCON' + Visible = False + SortIndex = 5 + SortOrder = soAscending + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewFECHA: TcxGridDBBandedColumn + Caption = 'Fecha venta' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxTextEditProperties' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + SortIndex = 0 + SortOrder = soAscending + Styles.Content = cxStyleNoEditable + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridViewCODCENTRO: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODCENTRO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCENTRO: TcxGridDBBandedColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 304 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridViewCODVENDEDOR: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODVENDEDOR' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Width = 348 + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewVENDEDOR: TcxGridDBBandedColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 173 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridViewNUMTALON: TcxGridDBBandedColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleNoEditable + Width = 87 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 1 + end + object cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn + DataBinding.FieldName = 'CODIGO_BARRA' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewCODIGO: TcxGridDBBandedColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + Styles.Content = cxStyleEditable + Width = 114 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 1 + end + object cxGridViewPRODUCTO: TcxGridDBBandedColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Styles.Content = cxStyleProductor + Styles.OnGetContentStyle = cxGridViewPRODUCTOStylesGetContentStyle + Width = 300 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 1 + end + object cxGridViewCOLOR: TcxGridDBBandedColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + Styles.Content = cxStyleEditable + Width = 60 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 1 + end + object cxGridViewTALLA: TcxGridDBBandedColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + Styles.Content = cxStyleEditable + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 1 + end + object cxGridViewVTAPROCESO: TcxGridDBBandedColumn + Caption = 'Proceso' + DataBinding.FieldName = 'VTAPROCESO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 49 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridViewVTAFINAL: TcxGridDBBandedColumn + Caption = 'Final/Resc.' + DataBinding.FieldName = 'VTAFINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object cxGridViewVTATERM: TcxGridDBBandedColumn + Caption = 'Term./Dev.' + DataBinding.FieldName = 'VTATERM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taCenter + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Styles.Content = cxStyleEditable + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object cxGridViewVALTOT: TcxGridDBBandedColumn + Caption = 'Importe' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + HeaderGlyphAlignmentHorz = taRightJustify + Options.Moving = False + Styles.Content = cxStyleEditable + Width = 90 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 1 + end + object cxGridViewESTADO: TcxGridDBBandedColumn + DataBinding.FieldName = 'ESTADO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Width = 144 + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + object cxGridViewFECHACAMBIO: TcxGridDBBandedColumn + DataBinding.FieldName = 'FECHACAMBIO' + Visible = False + Options.Editing = False + Options.Focusing = False + Options.Grouping = False + Options.Moving = False + Position.BandIndex = -1 + Position.ColIndex = -1 + Position.RowIndex = -1 + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + object dsDataSource: TDADataSource + Left = 200 + Top = 496 + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + Top = 272 + object cxStyleEditable: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleNoEditable: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6250335 + end + object cxStyleProductor: TcxStyle + AssignedValues = [svTextColor] + TextColor = 14898176 + end + object cxStyleNoEncontrado: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end + object cxEditRepository1: TcxEditRepository + Left = 240 + Top = 272 + object cxEditButtonDesglosar: TcxEditRepositoryButtonItem + Properties.Buttons = < + item + Caption = '+' + Default = True + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000AF4F1F00A9471700A33F0F000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000B5572600FDA66A00A94717000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000BA5F2D00FCB07600AF4F1F000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00CE794700C9724000C46C3A00BF653300FBB98200B5572600AF4F + 1F00A9471700A33F0F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D3804E00F8DAA900F9D29F00F9C99500FAC18B00FBB98200FCB0 + 7600FDA66A00A9471700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400D3804E00CE794700C9724000F9C99500BF653300BA5F + 2D00B5572600AF4F1F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000CE794700F9D29F00C46C3A000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000D3804E00F8DAA900C97240000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00000000000000000000000000D8865400D3804E00CE7947000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} + Kind = bkText + Stretchable = False + end> + Properties.ViewStyle = vsButtonsOnly + Properties.OnButtonClick = cxEditButtonDesglosarPropertiesButtonClick + end + object cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem + Properties.Buttons = < + item + Caption = '-' + Default = True + Glyph.Data = { + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D7855300CF7A4800C7703E00BF653300B85B2A00AE4E1D00A441 + 10009B34040098300000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400F8E0B000F8E0B000F8E0B000F9D3A100FAC18B00FCAE + 7300FE9859009B340400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00D8865400D8865400D7855300CF7A4800C7703E00BF653300B85B + 2A00AE4E1D00A4411000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} + Kind = bkText + Stretchable = False + end> + Properties.ViewStyle = vsButtonsOnly + Properties.OnButtonClick = cxEditButtonEliminarDesglosePropertiesButtonClick + end + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ new file mode 100644 index 0000000..d9923d1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ @@ -0,0 +1,144 @@ +object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica + Left = 421 + Top = 281 + Width = 767 + Height = 569 + BorderIcons = [biSystemMenu, biMaximize] + Caption = 'Rectificar referencia gen'#233'rica de producto' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + DesignSize = ( + 759 + 535) + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 759 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Rectificar referencia gen'#233'rica de producto') + Comments.Strings = ( + + 'Indique el c'#243'digo de producto, el color y la talla que correspon' + + 'de a la referencia gen'#233'rica.') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 16 + Top = 483 + Width = 730 + Height = 4 + Anchors = [akLeft, akBottom] + Shape = bsBottomLine + end + object Label1: TLabel + Left = 16 + Top = 460 + Width = 61 + Height = 13 + Anchors = [akLeft, akBottom] + Caption = 'Importe total:' + end + object lblImporteTotal: TLabel + Left = 85 + Top = 460 + Width = 5 + Height = 13 + Anchors = [akLeft, akBottom] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object bAceptar: TButton + Left = 577 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 671 + Top = 496 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object bComprobar: TButton + Left = 17 + Top = 496 + Width = 152 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Comprobar todos los c'#243'digos' + TabOrder = 2 + OnClick = bComprobarClick + end + object dsDataSource: TDADataSource + DataTable = dmReferenciaGenerica.tbl_ReferenciaGenerica + Left = 200 + Top = 496 + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + Top = 272 + object cxStyleEditable: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleNoEditable: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6250335 + end + object cxStyleProductor: TcxStyle + AssignedValues = [svTextColor] + TextColor = 14898176 + end + object cxStyleNoEncontrado: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas new file mode 100644 index 0000000..3740253 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas @@ -0,0 +1,314 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorCambioReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, + cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit, cxButtonEdit, + cxTextEdit, cxEditRepositoryItems, uDAInterfaces; + +type + IEditorCambioReferenciaGenerica = interface + ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + bComprobar: TButton; + dsDataSource: TDADataSource; + cxStyleRepository1: TcxStyleRepository; + cxStyleEditable: TcxStyle; + cxStyleNoEditable: TcxStyle; + cxStyleProductor: TcxStyle; + cxStyleNoEncontrado: TcxStyle; + cxGrid: TcxGrid; + cxGridView: TcxGridDBBandedTableView; + cxGridViewRecID: TcxGridDBBandedColumn; + cxGridViewNUMINF: TcxGridDBBandedColumn; + cxGridViewCLAVE1: TcxGridDBBandedColumn; + cxGridViewCLAVE2: TcxGridDBBandedColumn; + cxGridViewCLAVE3: TcxGridDBBandedColumn; + cxGridViewFECHA: TcxGridDBBandedColumn; + cxGridViewCODCENTRO: TcxGridDBBandedColumn; + cxGridViewCENTRO: TcxGridDBBandedColumn; + cxGridViewCODVENDEDOR: TcxGridDBBandedColumn; + cxGridViewVENDEDOR: TcxGridDBBandedColumn; + cxGridViewNUMTALON: TcxGridDBBandedColumn; + cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn; + cxGridViewCODIGO: TcxGridDBBandedColumn; + cxGridViewPRODUCTO: TcxGridDBBandedColumn; + cxGridViewCOLOR: TcxGridDBBandedColumn; + cxGridViewTALLA: TcxGridDBBandedColumn; + cxGridViewVTAPROCESO: TcxGridDBBandedColumn; + cxGridViewVTAFINAL: TcxGridDBBandedColumn; + cxGridViewVTATERM: TcxGridDBBandedColumn; + cxGridViewVALTOT: TcxGridDBBandedColumn; + cxGridViewESTADO: TcxGridDBBandedColumn; + cxGridViewFECHACAMBIO: TcxGridDBBandedColumn; + cxGridLevel: TcxGridLevel; + lblImporteTotal: TLabel; + cxGridViewOperacion: TcxGridDBBandedColumn; + cxEditRepository1: TcxEditRepository; + cxEditButtonDesglosar: TcxEditRepositoryButtonItem; + cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem; + cxGridViewNUMCON: TcxGridDBBandedColumn; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bComprobarClick(Sender: TObject); + procedure cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure bAceptarClick(Sender: TObject); + procedure cxGridViewOperacionGetProperties( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); + procedure cxEditButtonDesglosarPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxEditButtonEliminarDesglosePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); + private + FItems : IBizReferenciaGenerica; + FCodigoBarras : String; + FHayErrores : Boolean; + FItemsErroneos : Integer; + procedure DesglosarReferencia; + protected + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + public + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, + schReferenciaGenericaClient_Intf, Math; + +{$R *.dfm} + +function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorCambioReferenciaGenerica; +begin + AEditor := TfEditorCambioReferenciaGenerica.Create(Application); + try + AEditor.Items := (ABizObject as IBizReferenciaGenerica); + Result := AEditor.ShowModal; + if Result = mrOk then + begin + {(ABizObject as IBizReferenciaGenerica).Edit; + (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; + (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; + (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; + (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; + (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; + (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; + (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; + (ABizObject as IBizReferenciaGenerica).Post; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} + end; + +{ if Result = mrIgnore then + begin + (ABizObject as IBizReferenciaGenerica).Delete; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; + end;} + + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); +begin + FCodigoBarras := ''; + FHayErrores := False; + FItemsErroneos := 0; + FItems.DataTable.Open; + cxGridView.DataController.GotoFirst; +end; + +function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorCambioReferenciaGenerica.SetItems( + const AValue: IBizReferenciaGenerica); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if VarToStrDef(AViewInfo.GridRecord.Values[cxGridViewNUMCON.Index], '0') <> '0' then + ACanvas.Brush.Color := clInfoBk; + + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + + if (AViewInfo.Item.Index = cxGridViewCOLOR.Index) or + (AViewInfo.Item.Index = cxGridViewTALLA.Index) or + (AViewInfo.Item.Index = cxGridViewCODIGO.Index) or + (AViewInfo.Item.Index = cxGridViewVALTOT.Index) then + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]) + else + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end + else + if (AViewInfo.Item.Index = cxGridViewVTAPROCESO.Index) or + (AViewInfo.Item.Index = cxGridViewVTAFINAL.Index) or + (AViewInfo.Item.Index = cxGridViewVTATERM.Index) then + begin + ADone := True; + with AViewInfo do + begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]); + end; + end; +end; + +procedure TfEditorCambioReferenciaGenerica.bComprobarClick( + Sender: TObject); +var + Descripcion : String; + CodigoBarras : String; + bEncontrado : Boolean; + i : Integer; + ABookmark : Pointer; +begin + FHayErrores := False; + FItemsErroneos := 0; + FItems.DataTable.DisableControls; + ABookmark := FItems.DataTable.GetBookMark; + try + FItems.First; + for i := 0 to FItems.RecordCount - 1 do + begin + bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, + FItems.COLOR, CodigoBarras, Descripcion); + FItems.Edit; + if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then + begin + FItems.PRODUCTO := Descripcion; + FItems.CODIGO_BARRA := CodigoBarras; + FItems.Estado := rgResuelto; + FItems.FECHACAMBIO := Now; + end + else begin + FHayErrores := True; + FItemsErroneos := FItemsErroneos + 1; + FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; + end; + FItems.Post; + FItems.Next; + end; + finally + FItems.DataTable.EnableControls; + FItems.DataTable.GotoBookmark(ABookmark); + FItems.DataTable.FreeBookmark(ABookmark); + end; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then + AStyle := cxStyleNoEncontrado; +end; + +procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); +begin + bComprobar.Click; + if FHayErrores then + if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + + '¿Desea guardar los cambios de solamente aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then + Exit; + + // Adaptación a DA5 + // Sólo guardar en el caso de que haya algún item correcto. Si todos están mal da una excepción el servidor + // porque no hay filas a actualizar. + if FItemsErroneos < FItems.DataTable.RecordCount then + FItems.DataTable.ApplyUpdates; + Close; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewOperacionGetProperties( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AProperties: TcxCustomEditProperties); +begin + if Assigned(ARecord) then + begin + // Sólo aparecerá el botón '+' si alguna cantidad es mayor que 1 + if (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAPROCESO.Index], 0)) > 1) or + (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAFINAL.Index], 0)) > 1) or + (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTATERM.Index], 0)) > 1) then + AProperties := cxEditButtonDesglosar.Properties + else + if (StrToIntDef(ARecord.DisplayTexts[cxGridViewNUMCON.Index], 0) > 0) then + AProperties := cxEditButtonEliminarDesglose.Properties + end; +end; + +procedure TfEditorCambioReferenciaGenerica.DesglosarReferencia; +begin + FItems.DesglosarReferencia; +end; + +procedure TfEditorCambioReferenciaGenerica.cxEditButtonDesglosarPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + DesglosarReferencia; +end; + +procedure TfEditorCambioReferenciaGenerica.cxEditButtonEliminarDesglosePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + FItems.Delete; +end; + +initialization + RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ new file mode 100644 index 0000000..833fcb5 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ @@ -0,0 +1,210 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorCambioReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, + cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit; + +type + IEditorCambioReferenciaGenerica = interface + ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + bComprobar: TButton; + dsDataSource: TDADataSource; + cxStyleRepository1: TcxStyleRepository; + cxStyleEditable: TcxStyle; + cxStyleNoEditable: TcxStyle; + cxStyleProductor: TcxStyle; + cxStyleNoEncontrado: TcxStyle; + Label1: TLabel; + lblImporteTotal: TLabel; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bComprobarClick(Sender: TObject); + procedure cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizReferenciaGenerica; + FCodigoBarras : String; + FHayErrores : Boolean; + protected + function GetItems : IBizReferenciaGenerica; + procedure SetItems (const AValue : IBizReferenciaGenerica); + public + property Items : IBizReferenciaGenerica read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, + schReferenciaGenericaClient_Intf; + +{$R *.dfm} + +function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorCambioReferenciaGenerica; +begin + AEditor := TfEditorCambioReferenciaGenerica.Create(Application); + try + AEditor.Items := (ABizObject as IBizReferenciaGenerica); + Result := AEditor.ShowModal; + if Result = mrOk then + begin + {(ABizObject as IBizReferenciaGenerica).Edit; + (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; + (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; + (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; + (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; + (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; + (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; + (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; + (ABizObject as IBizReferenciaGenerica).Post; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} + end; + +{ if Result = mrIgnore then + begin + (ABizObject as IBizReferenciaGenerica).Delete; + (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; + end;} + + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); +begin + FCodigoBarras := ''; + FHayErrores := False; + FItems.DataTable.Open; + cxGridView.DataController.GotoFirst; +end; + +function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorCambioReferenciaGenerica.SetItems( + const AValue: IBizReferenciaGenerica); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorCambioReferenciaGenerica.bComprobarClick( + Sender: TObject); +var + Descripcion : String; + CodigoBarras : String; + bEncontrado : Boolean; + i : Integer; + ABookmark : Pointer; +begin + FHayErrores := False; + FItems.DataTable.DisableControls; + ABookmark := FItems.DataTable.GetBookMark; + try + FItems.First; + for i := 0 to FItems.RecordCount - 1 do + begin + bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, + FItems.COLOR, CodigoBarras, Descripcion); + FItems.Edit; + if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then + begin + FItems.PRODUCTO := Descripcion; + FItems.CODIGO_BARRA := CodigoBarras; + FItems.Estado := rgResuelto; + FItems.FECHACAMBIO := Now; + end + else begin + FHayErrores := True; + FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; + end; + FItems.Post; + FItems.Next; + end; + finally + FItems.DataTable.EnableControls; + FItems.DataTable.GotoBookmark(ABookmark); + FItems.DataTable.FreeBookmark(ABookmark); + end; +end; + +procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then + AStyle := cxStyleNoEncontrado; +end; + +procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); +begin + bComprobar.Click; + if FHayErrores then + if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + + '¿Desea guardar los cambios de aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then + Exit; + FItems.DataTable.ApplyUpdates; + Close; +end; + +initialization + RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm new file mode 100644 index 0000000..4f2abe1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm @@ -0,0 +1,1652 @@ +inherited fEditorListaReferenciaGenerica: TfEditorListaReferenciaGenerica + Left = 301 + Top = 227 + Caption = 'Control de referencias gen'#233'ricas' + ClientHeight = 637 + ClientWidth = 901 + ExplicitWidth = 909 + ExplicitHeight = 671 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de referencias gen'#233'ricas' + ExplicitWidth = 901 + inherited Image1: TImage + Left = 874 + ExplicitLeft = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + ExplicitWidth = 901 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 691 + object TBXSubmenuItem2: TTBXSubmenuItem [7] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actEspera + end + object TBXItem35: TTBXItem + Action = actResuelto + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 901 + end + inherited tbxFiltro: TTBXToolbar + Left = 691 + ExplicitLeft = 691 + end + end + inherited StatusBar: TStatusBar + Top = 618 + Width = 901 + ExplicitTop = 618 + ExplicitWidth = 901 + end + inline frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica [3] + Left = 0 + Top = 105 + Width = 901 + Height = 513 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 105 + ExplicitWidth = 901 + ExplicitHeight = 513 + inherited cxGrid: TcxGrid + Width = 901 + Height = 513 + ExplicitWidth = 901 + ExplicitHeight = 513 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'N'#186' de ventas: 0' + Kind = skCount + FieldName = 'NUMTALON' + Column = frViewListaReferenciaGenerica1.cxGridViewNUMTALON + end> + end + end + end + object JvTabBar1: TJvTabBar [4] + Left = 0 + Top = 76 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'En espera' + ImageIndex = 24 + end + item + Caption = 'Resueltos' + ImageIndex = 25 + end> + OnTabSelected = JvTabBar1TabSelected + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Rectificar referencia' + Hint = 'Asocia un producto con'#13#10'la venta de referencia gen'#233'rica' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Caption = 'Eliminar rectificaci'#243'n' + Hint = + 'Elimina la asociaci'#243'n de un producto'#13#10'con esta venta con referen' + + 'cia gen'#233'rica' + end + inherited actPrevisualizar: TAction + Caption = '&Previsualizar formulario' + Hint = 'Previsualizar el formulario '#13#10'para indicar los productos' + end + inherited actImprimir: TAction + Caption = 'Imprimir formulario' + Hint = 'Imprimir el formulario'#13#10'para indicar los productos' + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actEspera: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'En espera' + GroupIndex = 1 + ImageIndex = 24 + OnExecute = actEsperaExecute + OnUpdate = actEsperaUpdate + end + object actResuelto: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Resuelto' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actResueltoExecute + OnUpdate = actResueltoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actEspera + AutoCheck = True + GroupIndex = 1 + end + object Resuelto1: TMenuItem + Action = actResuelto + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas new file mode 100644 index 0000000..d4e4299 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas @@ -0,0 +1,447 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, + JvNavigationPane, uBizReferenciaGenerica, uCustomView, uViewBase, + uViewControlGrid, uViewListaReferenciaGenerica, uViewGridBase, uViewGrid, + JvTabBar, Grids, DBGrids, StdCtrls, Buttons, uDAInterfaces; + +type + IEditorListaReferenciaGenerica = interface(IEditorGridBase) + ['{875E6A40-3243-4325-A28B-D415BEC291BF}'] + function GetItems: IBizReferenciaGenerica; + procedure SetItems(const Value: IBizReferenciaGenerica); + property Items: IBizReferenciaGenerica read GetItems + write SetItems; + end; + + TfEditorListaReferenciaGenerica = class(TfEditorGridBase, IEditorListaReferenciaGenerica) + frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica; + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + Resuelto1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actEspera: TAction; + actResuelto: TAction; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actEsperaExecute(Sender: TObject); + procedure actEsperaUpdate(Sender: TObject); + procedure actResueltoUpdate(Sender: TObject); + procedure actResueltoExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizReferenciaGenerica; + function GetItems: IBizReferenciaGenerica; + procedure SetItems(const Value: IBizReferenciaGenerica); + procedure CambiarEstado (const NuevoEstado : TRefGenEstado); + public + property Items: IBizReferenciaGenerica read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, uDataModuleReferenciaGenerica, cxGridDBTableView, + cxGridDBDataDefinitions; + + +{$R *.dfm} + +{ TfEditorListaReferenciaGenerica } + +constructor TfEditorListaReferenciaGenerica.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaReferenciaGenerica1; +end; + +function TfEditorListaReferenciaGenerica.GetItems: IBizReferenciaGenerica; +begin + Result := FItems; +end; + +procedure TfEditorListaReferenciaGenerica.SetItems( + const Value: IBizReferenciaGenerica); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaReferenciaGenerica1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaReferenciaGenerica.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + FItems.DataTable.Active := True; + Items.VerPendientes; + with (ViewGrid as IViewListaReferenciaGenerica) do + begin + VerPendientes; + ExpandirTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaReferenciaGenerica.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + case Item.Index of + 0 : begin + Items.VerPendientes; + (ViewGrid as IViewListaReferenciaGenerica).VerPendientes; + end; + + 1 : begin + Items.VerEnEspera; + (ViewGrid as IViewListaReferenciaGenerica).VerEnEspera; + end; + + 2 : begin + Items.VerResueltos; + (ViewGrid as IViewListaReferenciaGenerica).VerResueltos + end; + end; + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaReferenciaGenerica.actModificarExecute( + Sender: TObject); +var + AObj : IBizReferenciaGenerica; + ASelectedRowList : ISelectedRowList; +begin + inherited; + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + try + ViewGrid._FocusedView.BeginUpdate; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + AObj := dmReferenciaGenerica.GetSelectedItems(Items); + finally + ViewGrid._FocusedView.EndUpdate; + end; + AObj.Show; + finally + AObj := nil; + ASelectedRowList := nil; + actRefrescar.Execute; + HideHourglassCursor + end; + end; +end; + +procedure TfEditorListaReferenciaGenerica.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaReferenciaGenerica.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaReferenciaGenerica.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaReferenciaGenerica.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaReferenciaGenerica.actEliminarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index = 2); + +end; + +procedure TfEditorListaReferenciaGenerica.actPrevisualizarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index < 2) and + (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) +end; + +procedure TfEditorListaReferenciaGenerica.actImprimirUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (JvTabBar1.SelectedTab.Index < 2) and + (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) +end; + +procedure TfEditorListaReferenciaGenerica.actPrevisualizarExecute( + Sender: TObject); +var + ACentro : String; + AVendedor : String; + AGroupIndexInicial : Integer; + AEstado : TRefGenEstado; + AFiltro : String; +begin + // inherited; + AGroupIndexInicial := 0; + + while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); + ViewGrid._FocusedView.Controller.GoToNext(True); + AGroupIndexInicial := AGroupIndexInicial + 1; + end; + + ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; + if AGroupIndexInicial < 2 then + AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; + + case JvTabBar1.SelectedTab.Index of + 0 : AEstado := rgPendiente; + 1 : AEstado := rgEnEspera; + 2 : AEstado := rgResuelto; + else + AEstado := rgPendiente; + end; + + AFiltro := ViewGrid.GetFilterAsSQL; + + Items.Preview(ACentro, AVendedor, AEstado, AFiltro); +end; + +procedure TfEditorListaReferenciaGenerica.actImprimirExecute( + Sender: TObject); +var + ACentro : String; + AVendedor : String; + AGroupIndexInicial : Integer; + AString : String; + AEstado : TRefGenEstado; + AFiltro : String; +begin + // inherited; + AGroupIndexInicial := 0; + + while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); + ViewGrid._FocusedView.Controller.GoToNext(True); + AGroupIndexInicial := AGroupIndexInicial + 1; + end; + + ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; + if AGroupIndexInicial < 2 then + AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; + + case JvTabBar1.SelectedTab.Index of + 0 : AEstado := rgPendiente; + 1 : AEstado := rgEnEspera; + 2 : AEstado := rgResuelto; + else + AEstado := rgPendiente; + end; + + AFiltro := ViewGrid.GetFilterAsSQL; + + Items.Print(ACentro, AVendedor, AEstado, AFiltro); + + AString := '¿Desea que las ventas del centro ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CENTRO').Index]; + if Length(AVendedor) > 0 then + AString := AString + #10#13 + 'y del vendedor ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('VENDEDOR').Index]; + + AString := AString + #10#13 + 'pasen a espera de la rectificación?'; + + if (Application.MessageBox(PAnsiChar(AString), 'Atención', MB_YESNO) = IDYES) then + CambiarEstado(rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount > 0) +end; + +procedure TfEditorListaReferenciaGenerica.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaReferenciaGenerica.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(rgPendiente); +end; + +procedure TfEditorListaReferenciaGenerica.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgPendiente); +end; + +procedure TfEditorListaReferenciaGenerica.actEsperaExecute( + Sender: TObject); +begin + CambiarEstado(rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actEsperaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgEnEspera); +end; + +procedure TfEditorListaReferenciaGenerica.actResueltoUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = rgResuelto); +end; + +procedure TfEditorListaReferenciaGenerica.actResueltoExecute( + Sender: TObject); +begin + CambiarEstado(rgResuelto); +end; + +procedure TfEditorListaReferenciaGenerica.CambiarEstado( + const NuevoEstado: TRefGenEstado); +var + ASelectedRowList : ISelectedRowList; + i : Integer; +begin + inherited; + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + FItems.DataTable.DisableControls; + + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + try + for i := 0 to ASelectedRowList.SelectedRows.Count - 1 do + begin + FItems.First; + if FItems.Locate('RecID', ASelectedRowList.SelectedRows[i]) then + begin + FItems.Edit; + FItems.FECHACAMBIO := Now; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + FItems.DataTable.ApplyUpdates; + ViewGrid._FocusedView.Controller.ClearSelection; + except + FItems.DataTable.CancelUpdates; + end; + finally + FItems.DataTable.EnableControls; + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaReferenciaGenerica.actEliminarExecute( + Sender: TObject); +var + AObj : IBizReferenciaGenerica; + ASelectedRowList : ISelectedRowList; + i : integer; +begin +// inherited; + if Supports(FItems, ISelectedRowList, ASelectedRowList) then + begin + ShowHourglassCursor; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); + AObj := dmReferenciaGenerica.GetSelectedItems(Items); + while not AObj.DataTable.EOF do + AObj.Delete; + AObj.DataTable.ApplyUpdates; + finally + AObj := nil; + ASelectedRowList := nil; + HideHourglassCursor; + actRefrescar.Execute; + end; + end; +end; + + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm new file mode 100644 index 0000000..872b578 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm @@ -0,0 +1,132 @@ +object ModuleReferenciaGenerica: TModuleReferenciaGenerica + OldCreateOrder = True + DefaultAction = actRefGenericas + Description = 'Control de referencia gen'#233'rica' + ModuleMenu = MainMenu + ModuleName = 'Control de referencia gen'#233'rica' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002024944415478DA + 63FCFFFF3F0323232303B5C04603C6FF40AAC2FFC2FF4E109F919A16800CF789 + CA61607AB89861D3D18F604BA866C19A1533FFB3766430F859F333301CFBC0B0 + E93FD8CC16AA580032DCC6C19FE1C58B170CEB162D6430DE3781E1F985FF0C19 + C010A2D882030B32FEDFF861C0606161C1F0E0C103B0252B96AF603870F00023 + C5710032DCCC458781E9C9198605172CC062C88613B4A063FABAFF7FFFFD63F8 + FBF71FC33F28FDF7DF5F867F40DA43E23803CCF0E7DF5E31BCBCB58D21A44586 + C12BBA9C01A667415F21EE2002195E9E110834F83F54C37FB8C6F36B0BB11A7E + E8F805B0BA3F403551590D0CE7774EC76E01A586EF397A8E61DED24DD82DA0D4 + 7090BAFD272E60B7009FE1A797A432EC7FE2C750EBBB0DAFE17F80EA0F9FBA84 + 6901BAE1E63EB90C87D74F8046F07F86964C6D869A684B869E63010CBEB26138 + 0D07D1C7CE5E41B5A073C67AAC86CF5FB38F21C6DF9E61E7E22C86D3C70E3264 + 1B2932F46EBDC7B0F1F61F9C8683F8A72E5CC3F481A17BE6FFBEA622060B7D05 + B02530C341ECE4E424867BB7AF33B8E97E61C8EB3E0B0F3E6C8683E8B3976F60 + 8F039825465A3248F1F08FC1C5D19A4149559361D2E419040D07E10BD76EE14E + 45304B74D524A1190B622072C4E3331CC4BE72F30E6E0B902D51571425D97010 + 206801B22520C5E4008216C02C21CB7428805B404B306AC1C05B000079BE9B8D + E3C07E050000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actRefGenericas: TAction + Category = 'Ventas' + Caption = 'Control de referencias gen'#233'ricas' + ImageIndex = 0 + OnExecute = actRefGenericasExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 110 + Action = actRefGenericas + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63642011FC3060F80FA2392E30308268465235B346E532FC5E369961D1050686 + 34A07EA20D383183E1FF13A54B0C6F2E2D65602AE9048B116D0048B39ECF1486 + 97B7B6312C3C64C620D5D000D68CD50B7D7337FFFFF3E72FC39F3F7F1840B41B + 7B38034C330887B4C830F8C65781E5FEFEFD8B6A00487361920FC3BFFFFF810A + FE319C9FC782A1F9C8C94B60CDBF81B86DD2128401A46ABEFFE41DC3A2959B20 + 06A06B9EBF783983C1EF580671352FAC9A7F01F1D3171F19E62E5DC7C008D2EC + E960CAA0A628C6E01A59C1B0797E33C3E2E5AB18126223192E005D814DF39FDF + FF185EBEFDCC3063E12A880BDAA6AEF91FE861C3202729C8F0E7EF3F066D4D55 + 78B860D30CA2DF7FFCC63079CE324418D4F52DFB1FE9EFC4202AC403F6C61F60 + 08FFF9FB1FAB6610FFCBD79F0C7D3316A1C64269DBFCFF49E19EE0002206744E + 9E87990E72EB66FE07DB0E8DE7DFBFFF40F01F28FE8D4A33FEFFFF9F94EC8001 + 06DE00000C3C25BBC192F80F0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD2520000020F4944415478DA + 63FCFFFF3F033D01E3C8B09091919126866F346004FBC6FFC27FB00560BB6865 + 21C8329FA81C06A6878B19361DFD08B6946616AE5931F33F6B4706839F353F03 + C3B10F0C9B201E64F03BFF8F91EA16822CB371F06778F1E205C3BA450B198CF7 + 4D6080052BD57D786041C6FF1B3F0C182C2C2C181E3C7800B674C5F2150C070E + 1EA07E1C822C3373D161607A728661C1050BB018B26544593879D176A2F28CEE + BF8D0C30CB9E7F7BC5F0F2D6368690161986F2B6D928EA72623D70C721C832A0 + 02BC16FDF9FB9FE1E8922CAC961D3B7599E1EFBF7F4035FF18FE0271646603C3 + B91DD3B05B486DCB761F39C7306FE926EC1652DB3210BDFFF805EC16D2C2B2DF + BFFF321C397319D34264CB2E5C7FCA9054D8CA30AFBF9AC140531AC5B28A3865 + 060EC54E865ADF6D445906A24F9CBF8A6AE194C53B507C66E4910592048933C0 + C44196810CAA4E5465A889B664E83916C0E02B1B46D03210FFF4A5EB983E3474 + CFFCDFD754C4E060A602F62128186C4C74C13E8459B661760AC3E9630719B28D + 14197AB7DE63D878FB0F41CB40F4F9AB37B1C721B2A5C8C108D3181D13C370EF + F6750637DD2F0C45FD17C0E2842C03E1CB376EE34EA5C896225B06A26DAC4C19 + 94543519A64D9F4DB46520F3AFDCBC83DB42644B2D0D14E106FCFEF317C57262 + 2D03018216225B6AA4254B9165445B886C294803A580280B6196526C1B14C02D + A42718B570E85B0800B34ACDE7425C769D0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas new file mode 100644 index 0000000..6a7c6fc --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas @@ -0,0 +1,72 @@ +unit uPluginControllerReferenciaGenerica; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCReferenciaGenerica = interface(IInterface) + ['{11391827-E14C-449B-AA0A-56193B945226}'] + end; + + TModuleReferenciaGenerica = class(TModuleController, IMCReferenciaGenerica) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actRefGenericas: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actRefGenericasExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uEditorListaReferenciaGenerica, + uBizReferenciaGenerica, uDataModuleReferenciaGenerica; + +function GetModule : TModuleController; +begin + Result := TModuleReferenciaGenerica.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleReferenciaGenerica.actRefGenericasExecute(Sender: TObject); +var + aControl: IBizReferenciaGenerica; + aObj: IEditorListaReferenciaGenerica; +begin + aControl := dmReferenciaGenerica.GetItems; + aObj := TfEditorListaReferenciaGenerica.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleReferenciaGenerica); + +finalization + UnRegisterModuleClass(TModuleReferenciaGenerica); + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm new file mode 100644 index 0000000..dc062a3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm @@ -0,0 +1,140 @@ +inherited frViewListaReferenciaGenerica: TfrViewListaReferenciaGenerica + Width = 504 + ExplicitWidth = 504 + inherited cxGrid: TcxGrid + Width = 504 + ExplicitWidth = 504 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.Filter.Options = [] + DataController.KeyFieldNames = 'RecID' + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'N'#186' de ventas: 0' + Kind = skCount + FieldName = 'NUMTALON' + Column = cxGridViewNUMTALON + end> + OptionsSelection.MultiSelect = True + OptionsSelection.UnselectFocusedRecordOnExit = True + OptionsView.GridLines = glVertical + OptionsView.GroupRowStyle = grsOffice11 + object cxGridViewColumn1: TcxGridDBColumn + DataBinding.FieldName = 'RECID' + Visible = False + end + object cxGridViewFECHACAMBIO: TcxGridDBColumn + Caption = 'Cambiado' + DataBinding.FieldName = 'FECHACAMBIO' + Visible = False + end + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha venta' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCODCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CODCENTRO' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODVENDEDOR: TcxGridDBColumn + DataBinding.FieldName = 'CODVENDEDOR' + Visible = False + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxTextEditProperties' + Visible = False + GroupIndex = 1 + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewVTAPROCESO: TcxGridDBColumn + Caption = 'Proceso' + DataBinding.FieldName = 'VTAPROCESO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTAFINAL: TcxGridDBColumn + Caption = 'Final/Resc' + DataBinding.FieldName = 'VTAFINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTATERM: TcxGridDBColumn + Caption = 'Term/Dev' + DataBinding.FieldName = 'VTATERM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALTOT: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleResuelto: TcxStyle + AssignedValues = [svTextColor] + TextColor = 5921370 + end + object cxStyleEnEspera1semana: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleResueltoRectificado: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas new file mode 100644 index 0000000..5150184 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas @@ -0,0 +1,180 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaReferenciaGenerica; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizReferenciaGenerica, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, uDAInterfaces; + +type + IViewListaReferenciaGenerica = interface(IViewGrid) + ['{2D43B302-DAA6-45FE-BC72-BAD3591CCE67}'] + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + end; + + TfrViewListaReferenciaGenerica = class(TfrViewGrid, IViewListaReferenciaGenerica) + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewVTAPROCESO: TcxGridDBColumn; + cxGridViewVTAFINAL: TcxGridDBColumn; + cxGridViewVTATERM: TcxGridDBColumn; + cxGridViewVALTOT: TcxGridDBColumn; + cxGridViewCODCENTRO: TcxGridDBColumn; + cxGridViewCODVENDEDOR: TcxGridDBColumn; + cxGridViewFECHACAMBIO: TcxGridDBColumn; + cxStyleResuelto: TcxStyle; + cxStyleEnEspera1semana: TcxStyle; + cxStyleResueltoRectificado: TcxStyle; + cxGridViewColumn1: TcxGridDBColumn; + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + FEstado : TRefGenEstado; + public + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + end; + + +implementation + +uses uDataModuleReferenciaGenerica, DateUtils, cxGridDBDataDefinitions; + +{$R *.dfm} + +procedure TfrViewListaReferenciaGenerica.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaReferenciaGenerica.VerEnEspera; +begin + cxGridViewFECHACAMBIO.Visible := True; + cxGridViewFECHACAMBIO.Caption := 'En espera desde'; + FEstado := rgEnEspera; +end; + +procedure TfrViewListaReferenciaGenerica.VerPendientes; +begin + cxGridViewFECHACAMBIO.Visible := False; + FEstado := rgPendiente; +end; + +procedure TfrViewListaReferenciaGenerica.VerResueltos; +begin + cxGridViewFECHACAMBIO.Visible := True; + cxGridViewFECHACAMBIO.Caption := 'Fecha de rectificación'; + FEstado := rgResuelto; +end; + +procedure TfrViewListaReferenciaGenerica.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo + if ARecord.Expandable then + Exit; + + if FEstado = rgResuelto then + begin + if AItem.Index in [cxGridViewPRODUCTO.Index, cxGridViewCOLOR.Index, + cxGridViewTALLA.Index] then + AStyle := cxStyleResueltoRectificado + else + AStyle := cxStyleResuelto; + Exit; + end; + + if FEstado = rgEnEspera then + begin + AColumn := cxGridViewFECHACAMBIO; + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + AFecha := Now; + end; + + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleEnEspera1semana + end; + end; +end; + +procedure TfrViewListaReferenciaGenerica.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ARecord: TcxCustomGridRecord; + AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas new file mode 100644 index 0000000..9210b56 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas @@ -0,0 +1,913 @@ +unit schReferenciaGenericaClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID__ExisteFilaReferenciaGenerica = '{D1595576-9979-4EBB-840B-FF8B69E9AF21}'; + RID_InformeRefGenerica = '{C8CFA7EB-16B5-4AB4-A583-3EBD915B44B8}'; + RID_GetProducto = '{5D97B590-D22E-4D97-AFC6-400986B4D9FA}'; + RID_ReferenciaGenerica = '{A40BCD4C-E370-497D-8C28-118CBC1A3664}'; + + { Data table names } + nme__ExisteFilaReferenciaGenerica = '_ExisteFilaReferenciaGenerica'; + nme_InformeRefGenerica = 'InformeRefGenerica'; + nme_GetProducto = 'GetProducto'; + nme_ReferenciaGenerica = 'ReferenciaGenerica'; + + { _ExisteFilaReferenciaGenerica fields } + fld__ExisteFilaReferenciaGenericaNUMINF = 'NUMINF'; + fld__ExisteFilaReferenciaGenericaCLAVE1 = 'CLAVE1'; + fld__ExisteFilaReferenciaGenericaCLAVE2 = 'CLAVE2'; + fld__ExisteFilaReferenciaGenericaCLAVE3 = 'CLAVE3'; + fld__ExisteFilaReferenciaGenericaNUMCON = 'NUMCON'; + + { _ExisteFilaReferenciaGenerica field indexes } + idx__ExisteFilaReferenciaGenericaNUMINF = 0; + idx__ExisteFilaReferenciaGenericaCLAVE1 = 1; + idx__ExisteFilaReferenciaGenericaCLAVE2 = 2; + idx__ExisteFilaReferenciaGenericaCLAVE3 = 3; + idx__ExisteFilaReferenciaGenericaNUMCON = 4; + + { InformeRefGenerica fields } + fld_InformeRefGenericaCODCENTRO = 'CODCENTRO'; + fld_InformeRefGenericaCENTRO = 'CENTRO'; + fld_InformeRefGenericaCODVENDEDOR = 'CODVENDEDOR'; + fld_InformeRefGenericaVENDEDOR = 'VENDEDOR'; + fld_InformeRefGenericaFECHA = 'FECHA'; + fld_InformeRefGenericaNUMTALON = 'NUMTALON'; + fld_InformeRefGenericaCANTIDAD = 'CANTIDAD'; + fld_InformeRefGenericaVALTOT = 'VALTOT'; + + { InformeRefGenerica field indexes } + idx_InformeRefGenericaCODCENTRO = 0; + idx_InformeRefGenericaCENTRO = 1; + idx_InformeRefGenericaCODVENDEDOR = 2; + idx_InformeRefGenericaVENDEDOR = 3; + idx_InformeRefGenericaFECHA = 4; + idx_InformeRefGenericaNUMTALON = 5; + idx_InformeRefGenericaCANTIDAD = 6; + idx_InformeRefGenericaVALTOT = 7; + + { GetProducto fields } + fld_GetProductoCODIGO_BARRA = 'CODIGO_BARRA'; + fld_GetProductoCOR_PRODUTO = 'COR_PRODUTO'; + fld_GetProductoDESC_PRODUTO = 'DESC_PRODUTO'; + fld_GetProductoPRODUTO = 'PRODUTO'; + fld_GetProductoGRADE = 'GRADE'; + + { GetProducto field indexes } + idx_GetProductoCODIGO_BARRA = 0; + idx_GetProductoCOR_PRODUTO = 1; + idx_GetProductoDESC_PRODUTO = 2; + idx_GetProductoPRODUTO = 3; + idx_GetProductoGRADE = 4; + + { ReferenciaGenerica fields } + fld_ReferenciaGenericaNUMINF = 'NUMINF'; + fld_ReferenciaGenericaCLAVE1 = 'CLAVE1'; + fld_ReferenciaGenericaCLAVE2 = 'CLAVE2'; + fld_ReferenciaGenericaCLAVE3 = 'CLAVE3'; + fld_ReferenciaGenericaNUMCON = 'NUMCON'; + fld_ReferenciaGenericaFECHA = 'FECHA'; + fld_ReferenciaGenericaCODCENTRO = 'CODCENTRO'; + fld_ReferenciaGenericaCENTRO = 'CENTRO'; + fld_ReferenciaGenericaCODVENDEDOR = 'CODVENDEDOR'; + fld_ReferenciaGenericaVENDEDOR = 'VENDEDOR'; + fld_ReferenciaGenericaNUMTALON = 'NUMTALON'; + fld_ReferenciaGenericaCODIGO_BARRA = 'CODIGO_BARRA'; + fld_ReferenciaGenericaCODIGO = 'CODIGO'; + fld_ReferenciaGenericaPRODUCTO = 'PRODUCTO'; + fld_ReferenciaGenericaCOLOR = 'COLOR'; + fld_ReferenciaGenericaTALLA = 'TALLA'; + fld_ReferenciaGenericaVTAPROCESO = 'VTAPROCESO'; + fld_ReferenciaGenericaVTAFINAL = 'VTAFINAL'; + fld_ReferenciaGenericaVTATERM = 'VTATERM'; + fld_ReferenciaGenericaVALTOT = 'VALTOT'; + fld_ReferenciaGenericaESTADO = 'ESTADO'; + fld_ReferenciaGenericaFECHACAMBIO = 'FECHACAMBIO'; + + { ReferenciaGenerica field indexes } + idx_ReferenciaGenericaNUMINF = 0; + idx_ReferenciaGenericaCLAVE1 = 1; + idx_ReferenciaGenericaCLAVE2 = 2; + idx_ReferenciaGenericaCLAVE3 = 3; + idx_ReferenciaGenericaNUMCON = 4; + idx_ReferenciaGenericaFECHA = 5; + idx_ReferenciaGenericaCODCENTRO = 6; + idx_ReferenciaGenericaCENTRO = 7; + idx_ReferenciaGenericaCODVENDEDOR = 8; + idx_ReferenciaGenericaVENDEDOR = 9; + idx_ReferenciaGenericaNUMTALON = 10; + idx_ReferenciaGenericaCODIGO_BARRA = 11; + idx_ReferenciaGenericaCODIGO = 12; + idx_ReferenciaGenericaPRODUCTO = 13; + idx_ReferenciaGenericaCOLOR = 14; + idx_ReferenciaGenericaTALLA = 15; + idx_ReferenciaGenericaVTAPROCESO = 16; + idx_ReferenciaGenericaVTAFINAL = 17; + idx_ReferenciaGenericaVTATERM = 18; + idx_ReferenciaGenericaVALTOT = 19; + idx_ReferenciaGenericaESTADO = 20; + idx_ReferenciaGenericaFECHACAMBIO = 21; + +type + { I_ExisteFilaReferenciaGenerica } + I_ExisteFilaReferenciaGenerica = interface(IDAStronglyTypedDataTable) + ['{98972C64-DAD7-4646-90BE-053EFD062BBF}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetNUMCONValue: Integer; + procedure SetNUMCONValue(const aValue: Integer); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + end; + + { T_ExisteFilaReferenciaGenericaDataTableRules } + T_ExisteFilaReferenciaGenericaDataTableRules = class(TDADataTableRules, I_ExisteFilaReferenciaGenerica) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IInformeRefGenerica } + IInformeRefGenerica = interface(IDAStronglyTypedDataTable) + ['{6AFE9984-0F66-4AC2-B5E7-87F3C48B81B9}'] + { Property getters and setters } + function GetCODCENTROValue: String; + procedure SetCODCENTROValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODVENDEDORValue: String; + procedure SetCODVENDEDORValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCANTIDADValue: String; + procedure SetCANTIDADValue(const aValue: String); + function GetVALTOTValue: Float; + procedure SetVALTOTValue(const aValue: Float); + + + { Properties } + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + end; + + { TInformeRefGenericaDataTableRules } + TInformeRefGenericaDataTableRules = class(TDADataTableRules, IInformeRefGenerica) + private + protected + { Property getters and setters } + function GetCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANTIDADValue: String; virtual; + procedure SetCANTIDADValue(const aValue: String); virtual; + function GetVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + + { Properties } + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { + Datos de una prenda + } + { IGetProducto } + IGetProducto = interface(IDAStronglyTypedDataTable) + ['{66AEFCA5-9C07-41F0-A81B-9A0965270310}'] + { Property getters and setters } + function GetCODIGO_BARRAValue: String; + procedure SetCODIGO_BARRAValue(const aValue: String); + function GetCOR_PRODUTOValue: String; + procedure SetCOR_PRODUTOValue(const aValue: String); + function GetDESC_PRODUTOValue: String; + procedure SetDESC_PRODUTOValue(const aValue: String); + function GetPRODUTOValue: String; + procedure SetPRODUTOValue(const aValue: String); + function GetGRADEValue: String; + procedure SetGRADEValue(const aValue: String); + + + { Properties } + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; + property GRADE: String read GetGRADEValue write SetGRADEValue; + end; + + { TGetProductoDataTableRules } + TGetProductoDataTableRules = class(TDADataTableRules, IGetProducto) + private + protected + { Property getters and setters } + function GetCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCOR_PRODUTOValue: String; virtual; + procedure SetCOR_PRODUTOValue(const aValue: String); virtual; + function GetDESC_PRODUTOValue: String; virtual; + procedure SetDESC_PRODUTOValue(const aValue: String); virtual; + function GetPRODUTOValue: String; virtual; + procedure SetPRODUTOValue(const aValue: String); virtual; + function GetGRADEValue: String; virtual; + procedure SetGRADEValue(const aValue: String); virtual; + + { Properties } + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; + property GRADE: String read GetGRADEValue write SetGRADEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IReferenciaGenerica } + IReferenciaGenerica = interface(IDAStronglyTypedDataTable) + ['{0D8DB24C-6B9C-4DBA-8B26-D007BD14ED85}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetNUMCONValue: Integer; + procedure SetNUMCONValue(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetCODCENTROValue: String; + procedure SetCODCENTROValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODVENDEDORValue: String; + procedure SetCODVENDEDORValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCODIGO_BARRAValue: String; + procedure SetCODIGO_BARRAValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetVTAPROCESOValue: Float; + procedure SetVTAPROCESOValue(const aValue: Float); + function GetVTAFINALValue: Float; + procedure SetVTAFINALValue(const aValue: Float); + function GetVTATERMValue: Float; + procedure SetVTATERMValue(const aValue: Float); + function GetVALTOTValue: Float; + procedure SetVALTOTValue(const aValue: Float); + function GetESTADOValue: String; + procedure SetESTADOValue(const aValue: String); + function GetFECHACAMBIOValue: DateTime; + procedure SetFECHACAMBIOValue(const aValue: DateTime); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; + property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + property ESTADO: String read GetESTADOValue write SetESTADOValue; + property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + end; + + { TReferenciaGenericaDataTableRules } + TReferenciaGenericaDataTableRules = class(TDADataTableRules, IReferenciaGenerica) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetVTAPROCESOValue: Float; virtual; + procedure SetVTAPROCESOValue(const aValue: Float); virtual; + function GetVTAFINALValue: Float; virtual; + procedure SetVTAFINALValue(const aValue: Float); virtual; + function GetVTATERMValue: Float; virtual; + procedure SetVTATERMValue(const aValue: Float); virtual; + function GetVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + function GetESTADOValue: String; virtual; + procedure SetESTADOValue(const aValue: String); virtual; + function GetFECHACAMBIOValue: DateTime; virtual; + procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; + property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; + property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; + property ESTADO: String read GetESTADOValue write SetESTADOValue; + property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ T_ExisteFilaReferenciaGenericaDataTableRules } +constructor T_ExisteFilaReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor T_ExisteFilaReferenciaGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger := aValue; +end; + +function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; +begin + result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger; +end; + +procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); +begin + DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger := aValue; +end; + + +{ TInformeRefGenericaDataTableRules } +constructor TInformeRefGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TInformeRefGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function TInformeRefGenericaDataTableRules.GetCODCENTROValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCODCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCODVENDEDORValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime; +end; + +procedure TInformeRefGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetCANTIDADValue: String; +begin + result := DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString; +end; + +procedure TInformeRefGenericaDataTableRules.SetCANTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString := aValue; +end; + +function TInformeRefGenericaDataTableRules.GetVALTOTValue: Float; +begin + result := DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat; +end; + +procedure TInformeRefGenericaDataTableRules.SetVALTOTValue(const aValue: Float); +begin + DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat := aValue; +end; + + +{ TGetProductoDataTableRules } +constructor TGetProductoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TGetProductoDataTableRules.Destroy; +begin + inherited; +end; + +function TGetProductoDataTableRules.GetCODIGO_BARRAValue: String; +begin + result := DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString; +end; + +procedure TGetProductoDataTableRules.SetCODIGO_BARRAValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetCOR_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetCOR_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetDESC_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetDESC_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetPRODUTOValue: String; +begin + result := DataTable.Fields[idx_GetProductoPRODUTO].AsString; +end; + +procedure TGetProductoDataTableRules.SetPRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoPRODUTO].AsString := aValue; +end; + +function TGetProductoDataTableRules.GetGRADEValue: String; +begin + result := DataTable.Fields[idx_GetProductoGRADE].AsString; +end; + +procedure TGetProductoDataTableRules.SetGRADEValue(const aValue: String); +begin + DataTable.Fields[idx_GetProductoGRADE].AsString := aValue; +end; + + +{ TReferenciaGenericaDataTableRules } +constructor TReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TReferenciaGenericaDataTableRules.Destroy; +begin + inherited; +end; + +function TReferenciaGenericaDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime; +end; + +procedure TReferenciaGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODCENTROValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODVENDEDORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODIGO_BARRAValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODIGO_BARRAValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTAPROCESOValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTAPROCESOValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTAFINALValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTAFINALValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVTATERMValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVTATERMValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetVALTOTValue: Float; +begin + result := DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat; +end; + +procedure TReferenciaGenericaDataTableRules.SetVALTOTValue(const aValue: Float); +begin + DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetESTADOValue: String; +begin + result := DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString; +end; + +procedure TReferenciaGenericaDataTableRules.SetESTADOValue(const aValue: String); +begin + DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString := aValue; +end; + +function TReferenciaGenericaDataTableRules.GetFECHACAMBIOValue: DateTime; +begin + result := DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime; +end; + +procedure TReferenciaGenericaDataTableRules.SetFECHACAMBIOValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID__ExisteFilaReferenciaGenerica, T_ExisteFilaReferenciaGenericaDataTableRules); + RegisterDataTableRules(RID_InformeRefGenerica, TInformeRefGenericaDataTableRules); + RegisterDataTableRules(RID_GetProducto, TGetProductoDataTableRules); + RegisterDataTableRules(RID_ReferenciaGenerica, TReferenciaGenericaDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas new file mode 100644 index 0000000..725953b --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas @@ -0,0 +1,1045 @@ +unit schReferenciaGenericaServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schReferenciaGenericaClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID__ExisteFilaReferenciaGenericaDelta = '{4C9816CA-AD0C-473A-B192-0F3331601D04}'; + RID_InformeRefGenericaDelta = '{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'; + RID_GetProductoDelta = '{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'; + RID_ReferenciaGenericaDelta = '{C8170A4A-6B29-465D-99F4-773795682573}'; + +type + { I_ExisteFilaReferenciaGenericaDelta } + I_ExisteFilaReferenciaGenericaDelta = interface(I_ExisteFilaReferenciaGenerica) + ['{4C9816CA-AD0C-473A-B192-0F3331601D04}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldNUMCONValue : Integer; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldNUMCON : Integer read GetOldNUMCONValue; + end; + + { T_ExisteFilaReferenciaGenericaBusinessProcessorRules } + T_ExisteFilaReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, I_ExisteFilaReferenciaGenerica, I_ExisteFilaReferenciaGenericaDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + function GetOldNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : Integer read GetOldNUMCONValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IInformeRefGenericaDelta } + IInformeRefGenericaDelta = interface(IInformeRefGenerica) + ['{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'] + { Property getters and setters } + function GetOldCODCENTROValue : String; + function GetOldCENTROValue : String; + function GetOldCODVENDEDORValue : String; + function GetOldVENDEDORValue : String; + function GetOldFECHAValue : DateTime; + function GetOldNUMTALONValue : String; + function GetOldCANTIDADValue : String; + function GetOldVALTOTValue : Float; + + { Properties } + property OldCODCENTRO : String read GetOldCODCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCANTIDAD : String read GetOldCANTIDADValue; + property OldVALTOT : Float read GetOldVALTOTValue; + end; + + { TInformeRefGenericaBusinessProcessorRules } + TInformeRefGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeRefGenerica, IInformeRefGenericaDelta) + private + protected + { Property getters and setters } + function GetCODCENTROValue: String; virtual; + function GetOldCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + function GetOldCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANTIDADValue: String; virtual; + function GetOldCANTIDADValue: String; virtual; + procedure SetCANTIDADValue(const aValue: String); virtual; + function GetVALTOTValue: Float; virtual; + function GetOldVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + + { Properties } + property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CANTIDAD : String read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : String read GetOldCANTIDADValue; + property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; + property OldVALTOT : Float read GetOldVALTOTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IGetProductoDelta } + IGetProductoDelta = interface(IGetProducto) + ['{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'] + { Property getters and setters } + function GetOldCODIGO_BARRAValue : String; + function GetOldCOR_PRODUTOValue : String; + function GetOldDESC_PRODUTOValue : String; + function GetOldPRODUTOValue : String; + function GetOldGRADEValue : String; + + { Properties } + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; + property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; + property OldPRODUTO : String read GetOldPRODUTOValue; + property OldGRADE : String read GetOldGRADEValue; + end; + + { TGetProductoBusinessProcessorRules } + TGetProductoBusinessProcessorRules = class(TDABusinessProcessorRules, IGetProducto, IGetProductoDelta) + private + protected + { Property getters and setters } + function GetCODIGO_BARRAValue: String; virtual; + function GetOldCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCOR_PRODUTOValue: String; virtual; + function GetOldCOR_PRODUTOValue: String; virtual; + procedure SetCOR_PRODUTOValue(const aValue: String); virtual; + function GetDESC_PRODUTOValue: String; virtual; + function GetOldDESC_PRODUTOValue: String; virtual; + procedure SetDESC_PRODUTOValue(const aValue: String); virtual; + function GetPRODUTOValue: String; virtual; + function GetOldPRODUTOValue: String; virtual; + procedure SetPRODUTOValue(const aValue: String); virtual; + function GetGRADEValue: String; virtual; + function GetOldGRADEValue: String; virtual; + procedure SetGRADEValue(const aValue: String); virtual; + + { Properties } + property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property COR_PRODUTO : String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; + property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; + property DESC_PRODUTO : String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; + property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; + property PRODUTO : String read GetPRODUTOValue write SetPRODUTOValue; + property OldPRODUTO : String read GetOldPRODUTOValue; + property GRADE : String read GetGRADEValue write SetGRADEValue; + property OldGRADE : String read GetOldGRADEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IReferenciaGenericaDelta } + IReferenciaGenericaDelta = interface(IReferenciaGenerica) + ['{C8170A4A-6B29-465D-99F4-773795682573}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldNUMCONValue : Integer; + function GetOldFECHAValue : DateTime; + function GetOldCODCENTROValue : String; + function GetOldCENTROValue : String; + function GetOldCODVENDEDORValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGO_BARRAValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldVTAPROCESOValue : Float; + function GetOldVTAFINALValue : Float; + function GetOldVTATERMValue : Float; + function GetOldVALTOTValue : Float; + function GetOldESTADOValue : String; + function GetOldFECHACAMBIOValue : DateTime; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldNUMCON : Integer read GetOldNUMCONValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; + property OldVTAFINAL : Float read GetOldVTAFINALValue; + property OldVTATERM : Float read GetOldVTATERMValue; + property OldVALTOT : Float read GetOldVALTOTValue; + property OldESTADO : String read GetOldESTADOValue; + property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; + end; + + { TReferenciaGenericaBusinessProcessorRules } + TReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IReferenciaGenerica, IReferenciaGenericaDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetNUMCONValue: Integer; virtual; + function GetOldNUMCONValue: Integer; virtual; + procedure SetNUMCONValue(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetCODCENTROValue: String; virtual; + function GetOldCODCENTROValue: String; virtual; + procedure SetCODCENTROValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODVENDEDORValue: String; virtual; + function GetOldCODVENDEDORValue: String; virtual; + procedure SetCODVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGO_BARRAValue: String; virtual; + function GetOldCODIGO_BARRAValue: String; virtual; + procedure SetCODIGO_BARRAValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetVTAPROCESOValue: Float; virtual; + function GetOldVTAPROCESOValue: Float; virtual; + procedure SetVTAPROCESOValue(const aValue: Float); virtual; + function GetVTAFINALValue: Float; virtual; + function GetOldVTAFINALValue: Float; virtual; + procedure SetVTAFINALValue(const aValue: Float); virtual; + function GetVTATERMValue: Float; virtual; + function GetOldVTATERMValue: Float; virtual; + procedure SetVTATERMValue(const aValue: Float); virtual; + function GetVALTOTValue: Float; virtual; + function GetOldVALTOTValue: Float; virtual; + procedure SetVALTOTValue(const aValue: Float); virtual; + function GetESTADOValue: String; virtual; + function GetOldESTADOValue: String; virtual; + procedure SetESTADOValue(const aValue: String); virtual; + function GetFECHACAMBIOValue: DateTime; virtual; + function GetOldFECHACAMBIOValue: DateTime; virtual; + procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : Integer read GetOldNUMCONValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; + property OldCODCENTRO : String read GetOldCODCENTROValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; + property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; + property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property VTAPROCESO : Float read GetVTAPROCESOValue write SetVTAPROCESOValue; + property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; + property VTAFINAL : Float read GetVTAFINALValue write SetVTAFINALValue; + property OldVTAFINAL : Float read GetOldVTAFINALValue; + property VTATERM : Float read GetVTATERMValue write SetVTATERMValue; + property OldVTATERM : Float read GetOldVTATERMValue; + property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; + property OldVALTOT : Float read GetOldVALTOTValue; + property ESTADO : String read GetESTADOValue write SetESTADOValue; + property OldESTADO : String read GetOldESTADOValue; + property FECHACAMBIO : DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; + property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ T_ExisteFilaReferenciaGenericaBusinessProcessorRules } +constructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3] := aValue; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; +end; + +function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; +end; + +procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON] := aValue; +end; + + +{ TInformeRefGenericaBusinessProcessorRules } +constructor TInformeRefGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TInformeRefGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODCENTRO]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCENTRO]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODVENDEDOR]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVENDEDOR]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaFECHA]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaNUMTALON]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetCANTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldCANTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCANTIDAD]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetCANTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD] := aValue; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT]; +end; + +function TInformeRefGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVALTOT]; +end; + +procedure TInformeRefGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT] := aValue; +end; + + +{ TGetProductoBusinessProcessorRules } +constructor TGetProductoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TGetProductoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TGetProductoBusinessProcessorRules.GetCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA]; +end; + +function TGetProductoBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCODIGO_BARRA]; +end; + +procedure TGetProductoBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetCOR_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldCOR_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCOR_PRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetCOR_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetDESC_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldDESC_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoDESC_PRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetDESC_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetPRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO]; +end; + +function TGetProductoBusinessProcessorRules.GetOldPRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoPRODUTO]; +end; + +procedure TGetProductoBusinessProcessorRules.SetPRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO] := aValue; +end; + +function TGetProductoBusinessProcessorRules.GetGRADEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE]; +end; + +function TGetProductoBusinessProcessorRules.GetOldGRADEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoGRADE]; +end; + +procedure TGetProductoBusinessProcessorRules.SetGRADEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE] := aValue; +end; + + +{ TReferenciaGenericaBusinessProcessorRules } +constructor TReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TReferenciaGenericaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMINF]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE1]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE2]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE3]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMCON]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODCENTRO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCENTRO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODVENDEDOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVENDEDOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMTALON]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaPRODUCTO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCOLOR]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaTALLA]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTAPROCESOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTAPROCESOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAPROCESO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTAPROCESOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTAFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTAFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAFINAL]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTAFINALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVTATERMValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVTATERMValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTATERM]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVTATERMValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVALTOT]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetESTADOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldESTADOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaESTADO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetESTADOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO] := aValue; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetFECHACAMBIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO]; +end; + +function TReferenciaGenericaBusinessProcessorRules.GetOldFECHACAMBIOValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHACAMBIO]; +end; + +procedure TReferenciaGenericaBusinessProcessorRules.SetFECHACAMBIOValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID__ExisteFilaReferenciaGenericaDelta, T_ExisteFilaReferenciaGenericaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_InformeRefGenericaDelta, TInformeRefGenericaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_GetProductoDelta, TGetProductoBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_ReferenciaGenericaDelta, TReferenciaGenericaBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas new file mode 100644 index 0000000..811e49d --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas @@ -0,0 +1,317 @@ +unit uBizReferenciaGenerica; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, + schReferenciaGenericaClient_Intf; + +const + BIZ_REFERENCIAGENERICA = 'Client.ReferenciaGenerica'; + +type + TRefGenEstado = (rgPendiente, rgEnEspera, rgResuelto); + + IBizReferenciaGenerica = interface(IReferenciaGenerica) + ['{31C0DE0B-9B92-43A6-810D-7E94F5FF12FE}'] + procedure VerTodos; + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + procedure DesglosarReferencia; + procedure Show; + procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure SetEstado(const AValue : TRefGenEstado); + function GetEstado : TRefGenEstado ; + property Estado : TRefGenEstado read GetEstado write SetEstado; + end; + + TBizReferenciaGenericaDataTableRules = class(TReferenciaGenericaDataTableRules, + IBizReferenciaGenerica, ISelectedRowList) + private + FSelectedRows : TSelectedRowList; + protected + procedure SetEstado(const AValue : TRefGenEstado); + function GetEstado : TRefGenEstado ; + function GetSelectedRows : TSelectedRowList; + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure VerTodos; + procedure VerPendientes; + procedure VerEnEspera; + procedure VerResueltos; + procedure DesglosarReferencia; + procedure Show; + procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); + property Estado : TRefGenEstado read GetEstado write SetEstado; + property SelectedRows : TSelectedRowList read GetSelectedRows; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + end; + +implementation + +uses + uEditorUtils, uDataModuleReferenciaGenerica, uDataTableUtils, uDACDSDataTable; + + +{ TBizReferenciaGenericaDataTableRules } + +constructor TBizReferenciaGenericaDataTableRules.Create( + aDataTable: TDADataTable); +begin + inherited; + FSelectedRows := TSelectedRowList.Create(aDataTable); +end; + +procedure TBizReferenciaGenericaDataTableRules.DesglosarReferencia; +var + ADataTable : TDACDSDataTable; + AEstado : TRefGenEstado; + i : integer; +begin + + if (Abs(VTAPROCESO) < 2) and + (Abs(VTAFINAL) < 2) and + (Abs(VTATERM) < 2) then + Exit; // No se puede desglosar si la cantidad es menor que 2. + + AEstado := Estado; + DataTable.Edit; + try + if (VTAPROCESO <> 0) then + begin + if (VTAPROCESO > 0) then + VTAPROCESO := VTAPROCESO - 1 + else + VTAPROCESO := VTAPROCESO + 1 + end + else begin + if (VTAFINAL <> 0) then + begin + if (VTAFINAL > 0) then + VTAFINAL := VTAFINAL - 1 + else + VTAFINAL := VTAFINAL + 1 + end + else begin + if (VTATERM <> 0) then + begin + if (VTATERM > 0) then + VTATERM := VTATERM - 1 + else + VTATERM := VTATERM + 1 + end + end; + end; + finally + DataTable.Post; + end; + + SelectedRows.Clear; + SelectedRows.CurrentRowSelected := True; + ADataTable := TDACDSDataTable.Create(nil); + try + ADataTable.RemoteFetchEnabled := False; + ADataTable.LogChanges := False; + CopyDataTable(DataTable, ADataTable, True); + + // Duplicar el registro + DataTable.Next; + if not DataTable.EOF then + DataTable.Insert + else + DataTable.Append; + for i := 0 to DataTable.FieldCount - 1 do + DataTable.Fields[i].Value := ADataTable.Fields[i].Value; + DataTable.Post; + + finally + ADataTable.Free; + end; + + DataTable.Edit; + Estado := AEstado; + FECHACAMBIO := Now; + + { Todavía no sé el valor que va a tener asi que le asigno uno cualquiera para + que en el cliente pueda diferenciar la fila nueva } + NUMCON := 99; + + + try + if (VTAPROCESO <> 0) then + begin + if (VTAPROCESO > 0) then + VTAPROCESO := 1 + else + VTAPROCESO := -1 + end + else begin + if (VTAFINAL <> 0) then + begin + if (VTAFINAL > 0) then + VTAFINAL := 1 + else + VTAFINAL := -1 + end + else begin + if (VTATERM <> 0) then + begin + if (VTATERM > 0) then + VTATERM := 1 + else + VTATERM := -1 + end + end; + end; + finally + DataTable.Post; + end; +end; + +destructor TBizReferenciaGenericaDataTableRules.Destroy; +begin + FreeAndNil(FSelectedRows); + inherited; +end; + +function TBizReferenciaGenericaDataTableRules.GetEstado: TRefGenEstado; +var + aux : String; +begin + aux := GetESTADOValue; + Result := rgPendiente; + if aux = 'E' then + Result := rgEnEspera + else + if aux = 'R' then + Result := rgResuelto; +end; + +function TBizReferenciaGenericaDataTableRules.GetSelectedRows: TSelectedRowList; +begin + Result := FSelectedRows; +end; + +procedure TBizReferenciaGenericaDataTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + ESTADO := rgPendiente; + FECHACAMBIO := Now; +end; + +procedure TBizReferenciaGenericaDataTableRules.Preview(const Centro, + Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); +var + AEstado : String; +begin + case Estado of + rgPendiente : AEstado := 'P'; + rgEnEspera : AEstado := 'E'; + rgResuelto : AEstado := 'R'; + else + AEstado := ''; + end; + + dmReferenciaGenerica.Preview(Centro, Vendedor, AEstado, AFiltro); +end; + +procedure TBizReferenciaGenericaDataTableRules.Print(const Centro, + Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); +var + AEstado : String; +begin + case Estado of + rgPendiente : AEstado := 'P'; + rgEnEspera : AEstado := 'E'; + rgResuelto : AEstado := 'R'; + else + AEstado := ''; + end; + + dmReferenciaGenerica.Print(Centro, Vendedor, AEstado, AFiltro); +end; + +procedure TBizReferenciaGenericaDataTableRules.SetEstado( + const AValue: TRefGenEstado); +begin + case AValue of + rgPendiente : SetESTADOValue('P'); + rgEnEspera : SetESTADOValue('E'); + rgResuelto : SetESTADOValue('R'); + else + SetESTADOValue('P'); + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.Show; +begin + ShowEditor(IBizReferenciaGenerica, Self, etItem); +end; + +procedure TBizReferenciaGenericaDataTableRules.VerEnEspera; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''E'')'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerPendientes; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''P'') OR ' + + '(' + fld_ReferenciaGenericaESTADO + ' IS NULL)'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerResueltos; +begin + with Self.DataTable do + begin + DisableControls; + DisableEventHandlers; + try + Filtered := False; + Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''R'')'; + Filtered := True; + finally + EnableEventHandlers; + EnableControls; + end; + end; +end; + +procedure TBizReferenciaGenericaDataTableRules.VerTodos; +begin + Self.DataTable.Filtered := False; +end; + +initialization + RegisterDataTableRules(BIZ_REFERENCIAGENERICA, TBizReferenciaGenericaDataTableRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas new file mode 100644 index 0000000..0604d66 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas @@ -0,0 +1,145 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizReferenciaGenericaServer; + +interface + +uses + Classes, SysUtils, + uDADataTable, + uDAInterfaces, schReferenciaGenericaServer_Intf, + uDABusinessProcessor, uDADelta; + +const + BIZ_SERVER_REFERENCIA_GENERICA = 'Server.ReferenciaGenerica'; + +type + { TBizReferenciaGenericaServerRules } + TBizReferenciaGenericaServerRules = class(TReferenciaGenericaBusinessProcessorRules) + private + function GetConnection: IDAConnection; + function GetSchema: IDASchema; + function GetDataSet(const AName : String) : IDADataset; + function GetCommand(const AName : String) : IDASQLCommand; + protected + function ExisteFila: Boolean; + function InsertarFila: Boolean; + procedure BeforeProcessChange(Sender: TDABusinessProcessor; + aChangeType: TDAChangeType; aChange: TDADeltaChange; + var ProcessChange: Boolean); override; + end; + +implementation + +uses + Dialogs, Variants, uDAClasses; + + +{ TBizReferenciaGenericaServerRules } + +procedure TBizReferenciaGenericaServerRules.BeforeProcessChange( + Sender: TDABusinessProcessor; aChangeType: TDAChangeType; + aChange: TDADeltaChange; var ProcessChange: Boolean); +begin + inherited; + if aChangeType = ctUpdate then + begin + if not ExisteFila then + InsertarFila; + end; +end; + +function TBizReferenciaGenericaServerRules.ExisteFila: Boolean; +var + Connection : IDAConnection; + ADataSet: IDADataSet; +begin + Result := True; + Connection := GetConnection; + ADataSet := GetDataSet('_ExisteFilaReferenciaGenerica'); + with ADataSet do + begin + ParamByName('NUMINF').AsString := NUMINF; + ParamByName('CLAVE1').AsFloat := CLAVE1; + ParamByName('CLAVE2').AsInteger := CLAVE2; + ParamByName('CLAVE3').AsInteger := CLAVE3; + ParamByName('NUMCON').AsInteger := NUMCON; + end; + Connection.BeginTransaction; + try + ADataSet.Open; + Result := not ADataSet.IsEmpty; + ADataSet.Close; + finally + Connection.RollbackTransaction; + ADataSet := nil; + Connection := nil; + end; +end; + +function TBizReferenciaGenericaServerRules.GetCommand( + const AName: String): IDASQLCommand; +begin + Result := GetSchema.NewCommand(GetConnection, AName); +end; + +function TBizReferenciaGenericaServerRules.GetConnection: IDAConnection; +begin + Result := BusinessProcessor.Schema.ConnectionManager.NewConnection(BusinessProcessor.Schema.ConnectionManager.GetDefaultConnectionName); +end; + +function TBizReferenciaGenericaServerRules.GetDataSet( + const AName: String): IDADataset; +begin + Result := GetSchema.NewDataset(GetConnection, AName); +end; + +function TBizReferenciaGenericaServerRules.GetSchema: IDASchema; +begin + Result := BusinessProcessor.Schema; +end; + +function TBizReferenciaGenericaServerRules.InsertarFila: Boolean; +var + Connection : IDAConnection; + ACommand: IDASQLCommand; +begin + Result := False; + Connection := GetConnection; + ACommand := GetCommand(BusinessProcessor.InsertCommandName); + with ACommand do + begin + ParamByName('NUMINF').AsString := NUMINF; + ParamByName('CLAVE1').AsFloat := CLAVE1; + ParamByName('CLAVE2').AsInteger := CLAVE2; + ParamByName('CLAVE3').AsInteger := CLAVE3; + ParamByName('FECHACAMBIO').AsDateTime := Now; + ParamByName('ESTADO').AsString := 'P'; // Pendiente por defecto + ParamByName('VTATERM').AsVariant := Null; + ParamByName('VTAPROCESO').AsVariant := Null; + ParamByName('VTAFINAL').AsVariant := Null; + ParamByName('VALTOT').AsVariant := Null; + ParamByName('CODIGO_BARRA').AsVariant := Null; + end; + + Connection.BeginTransaction; + try + ACommand.Execute; + Connection.CommitTransaction; + Result := True; + except + Connection.RollbackTransaction; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_REFERENCIA_GENERICA, TBizReferenciaGenericaServerRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm new file mode 100644 index 0000000..6095da5 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm @@ -0,0 +1,1302 @@ +object srvReferenciaGenerica: TsrvReferenciaGenerica + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schReferenciaGenerica + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 362 + Width = 469 + object schReferenciaGenerica: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'NUMINF' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE1' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON'#10'FROM RDX_REFERENCI' + + 'A_GENERICA'#10'WHERE NUMINF = :NUMINF AND'#10' CLAVE1 = :CLAVE1 AND' + + #10' CLAVE2 = :CLAVE2 AND'#10' CLAVE3 = :CLAVE3 AND'#10' NUM' + + 'CON = :NUMCON' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end> + end> + Name = '_ExisteFilaReferenciaGenerica' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' CODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = ' + + 'CENTRO) THEN'#10' CENTRO'#10' ELS' + + 'E'#10' CODCENTRO + '#39' - '#39' + CENTRO'#10' ' + + ' END,'#10' CODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVE' + + 'NDEDOR = VENDEDOR) THEN'#10' VENDEDOR'#10' ' + + ' ELSE'#10' CODVENDEDOR + '#39' - '#39' + VENDE' + + 'DOR'#10' END,'#10' FECHA,'#10' NUMTALON,'#10' ' + + ' CANTIDAD ='#10' CASE WHEN (VTAPROCESO <> 0) THEN'#10' ' + + ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (ve' + + 'nta proceso)'#39#10' ELSE'#10' CASE WHEN (VTAFINAL' + + ' <> 0) THEN'#10' REPLACE(CAST(VTAFINAL AS VARCHAR' + + '), '#39'.000'#39', '#39#39') + '#39' (venta final/resc.)'#39#10' ELSE'#10' ' + + ' CASE WHEN (VTATERM <> 0) THEN'#10' ' + + ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (venta te' + + 'rm./dev.)'#39#10' ELSE'#10' '#39'0'#39#10' ' + + ' END'#10' END'#10' END,'#10' VALTOT' + + #10'FROM RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDEDOR, FECHA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'CODCENTRO' + TableField = 'CODCENTRO' + end + item + DatasetField = 'CODVENDEDOR' + TableField = 'CODVENDEDOR' + end> + end> + Name = 'InformeRefGenerica' + Fields = < + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datString + Size = 8000 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = < + item + Name = 'CODIGO' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TALLA' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' PRODUTOS_BARRA.CODIGO_BARRA,'#10' PRODUTOS_BARRA.COR_PRODU' + + 'TO,'#10' PRODUTOS.DESC_PRODUTO,'#10' PRODUTOS.PRODUTO,'#10' PRODUTOS_BARR' + + 'A.GRADE'#10'FROM'#10' PRODUTOS'#10' INNER JOIN PRODUTOS_BARRA ON (PRODUTOS' + + '.PRODUTO = PRODUTOS_BARRA.PRODUTO)'#10'WHERE PRODUTOS_BARRA.PRODUTO ' + + '= :CODIGO'#10'AND PRODUTOS_BARRA.GRADE = :TALLA'#10'AND PRODUTOS_BARRA.C' + + 'OR_PRODUTO = :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODIGO_BARRA' + TableField = 'CODIGO_BARRA' + end + item + DatasetField = 'COR_PRODUTO' + TableField = 'COR_PRODUTO' + end + item + DatasetField = 'DESC_PRODUTO' + TableField = 'DESC_PRODUTO' + end + item + DatasetField = 'PRODUTO' + TableField = 'PRODUTO' + end + item + DatasetField = 'GRADE' + TableField = 'GRADE' + end> + end> + Name = 'GetProducto' + Description = 'Datos de una prenda' + Fields = < + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COR_PRODUTO' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESC_PRODUTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUTO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRADE' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_REFERENCIA_GENERICA' + SQL = + 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON, FECHA,'#10' C' + + 'ODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN'#10' ' + + ' CENTRO'#10' ELSE'#10' ' + + ' CODCENTRO + '#39' - '#39' + CENTRO'#10' END,'#10' C' + + 'ODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR)' + + ' THEN'#10' VENDEDOR'#10' ELSE'#10' ' + + ' CODVENDEDOR + '#39' - '#39' + VENDEDOR'#10' ' + + ' END,'#10' NUMTALON, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TA' + + 'LLA, VTAPROCESO,'#10' VTAFINAL, VTATERM, VALTOT, ESTADO, FECHACAM' + + 'BIO'#10' FROM'#10' RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDED' + + 'OR, FECHA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CODCENTRO' + TableField = 'CODCENTRO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'CODVENDEDOR' + TableField = 'CODVENDEDOR' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO_BARRA' + TableField = 'CODIGO_BARRA' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'VTAPROCESO' + TableField = 'VTAPROCESO' + end + item + DatasetField = 'VTAFINAL' + TableField = 'VTAFINAL' + end + item + DatasetField = 'VTATERM' + TableField = 'VTATERM' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end + item + DatasetField = 'ESTADO' + TableField = 'ESTADO' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end> + end> + Name = 'ReferenciaGenerica' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODCENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 45 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODVENDEDOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 86 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMCON' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'UPDATE RDX_REFERENCIA_GENERICA'#10' SET '#10' ESTADO = :ESTADO,'#10' ' + + 'FECHACAMBIO = :FECHACAMBIO,'#10' CODIGO_BARRA = :CODIGO_BARRA,'#10' ' + + ' CANESP = :VTAPROCESO,'#10' CANVENNET = :VTAFINAL,'#10' CANVEN = ' + + ':VTATERM,'#10' VALVEN = :VALTOT'#10' WHERE'#10' (NUMINF = :OLD_NUMINF' + + ') AND'#10' (CLAVE1 = :OLD_CLAVE1) AND'#10' (CLAVE2 = :OLD_CLAVE2) ' + + 'AND'#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = :OLD_NUMCON)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ReferenciaGenerica' + end + item + Params = < + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'INSERT INTO RDX_REFERENCIA_GENERICA'#10'(NUMINF, CLAVE1, CLAVE2, CLA' + + 'VE3, ENESPERA, FECHACAMBIO)'#10'SELECT V.NUMINF, V.CLAVE1, V.CLAVE2,' + + ' V.CLAVE3, :ESTADO, CURRENT_TIMESTAMP'#10'FROM RDX_V_REFERENCIA_GENE' + + 'RICA V' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'CambiarEstado' + end + item + Params = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESTADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO_BARRA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTATERM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAPROCESO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VTAFINAL' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALTOT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'begin'#10' declare @NUMINF varchar(35)'#10' declare @CLAVE1 nume' + + 'ric(10, 0)'#10' declare @CLAVE2 numeric(5, 0)'#10' declare @CLAV' + + 'E3 numeric(5, 0)'#10' declare @ESTADO char(1)'#10' declare @FECH' + + 'ACAMBIO datetime'#10' declare @CODIGO_BARRA varchar(25)'#10' dec' + + 'lare @VTATERM numeric(15, 3)'#10' declare @VTAPROCESO numeric(15' + + ', 3)'#10' declare @VTAFINAL numeric(15, 3)'#10' declare @NUMCON ' + + 'smallint'#10' declare @VALTOT numeric(15, 3)'#10#10' set @NUMINF =' + + ' :NUMINF'#10' set @CLAVE1 = :CLAVE1'#10' set @CLAVE2 = :CLAVE2'#10' ' + + ' set @CLAVE3 = :CLAVE3'#10' set @ESTADO = :ESTADO'#10' set @F' + + 'ECHACAMBIO = :FECHACAMBIO'#10' set @CODIGO_BARRA = :CODIGO_BARRA' + + #10' set @VTATERM = :VTATERM'#10' set @VTAPROCESO = :VTAPROCESO' + + #10' set @VTAFINAL = :VTAFINAL'#10' set @VALTOT = :VALTOT'#10#10' ' + + ' set @NUMCON = 0'#10#10' select @NUMCON = isnull(max(NUMCON) + 1, ' + + '0)'#10' from RDX_REFERENCIA_GENERICA'#10' where (NUMINF = @NUMIN' + + 'F) and'#10' (CLAVE1 = @CLAVE1) and'#10' (CLAVE2 = @C' + + 'LAVE2) and'#10' (CLAVE3 = @CLAVE3)'#10#10' INSERT INTO RDX_R' + + 'EFERENCIA_GENERICA'#10' (NUMINF, CLAVE1, CLAVE2, CLAVE3,'#10' ' + + ' ESTADO, FECHACAMBIO, CODIGO_BARRA,'#10' CANVEN, CANESP, CANV' + + 'ENNET, VALVEN, NUMCON)'#10' VALUES'#10' (@NUMINF, @CLAVE1, @CLA' + + 'VE2, @CLAVE3,'#10' @ESTADO, @FECHACAMBIO, @CODIGO_BARRA,'#10' ' + + '@VTATERM, @VTAPROCESO, @VTAFINAL, @VALTOT, @NUMCON)'#10#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ReferenciaGenerica' + end + item + Params = < + item + Name = 'OLD_NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_NUMCON' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_REFERENCIA_GENERICA' + SQL = + 'DELETE '#10' FROM'#10' RDX_REFERENCIA_GENERICA'#10' WHERE'#10' (NUMINF =' + + ' :OLD_NUMINF) AND '#10' (CLAVE1 = :OLD_CLAVE1) AND '#10' (CLAVE2 =' + + ' :OLD_CLAVE2) AND '#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = ' + + ':OLD_NUMCON)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_ReferenciaGenerica' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 32 + end + object bpReferenciaGenerica: TDABusinessProcessor + Schema = schReferenciaGenerica + InsertCommandName = 'Insert_ReferenciaGenerica' + DeleteCommandName = 'Delete_ReferenciaGenerica' + UpdateCommandName = 'Update_ReferenciaGenerica' + ReferencedDataset = 'ReferenciaGenerica' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 208 + Top = 32 + end + object frxDBCabecera: TfrxDBDataset + UserName = 'frxReferenciasGenericas' + CloseDataSource = False + DataSource = dsReferenciasGenericas + Left = 120 + Top = 128 + end + object dsReferenciasGenericas: TDADataSource + DataSet = tbl_ReferenciasGenericas.Dataset + DataTable = tbl_ReferenciasGenericas + Left = 120 + Top = 176 + end + object frxReport1: TfrxReport + Version = '3.23.7' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.OutlineWidth = 180 + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.Description.Strings = ( + 'Demonstrates how to create simple list report.') + ReportOptions.LastChange = 38902.414757476900000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 40 + Top = 128 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxReferenciasGenericas' + end> + Variables = <> + Style = < + item + Name = 'Concepto normal' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + end + item + Name = 'Concepto subtotal' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end + item + Name = 'Cabecera de columna' + Color = 15790320 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] + end + item + Name = 'Concepto titulo' + Color = clNone + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + end> + end + object tbl_ReferenciasGenericas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 120 + Top = 232 + end + object ADOConnection1: TADOConnection + ConnectionString = + 'Provider=SQLNCLI.1;Password=123456;Persist Security Info=True;Us' + + 'er ID=usuario_gft;Initial Catalog=gft_varela;Data Source=localho' + + 'st' + Provider = 'SQLNCLI.1' + Left = 344 + Top = 136 + end + object ADOQuery1: TADOQuery + Connection = ADOConnection1 + CursorType = ctStatic + Parameters = <> + SQL.Strings = ( + 'SELECT' + ' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN' + ' CENTRO' + ' ELSE' + ' CODCENTRO + '#39' - '#39' + CENTRO' + ' END,' + ' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR) THEN' + ' VENDEDOR' + ' ELSE' + ' CODVENDEDOR + '#39' - '#39' + VENDEDOR' + ' END,' + ' FECHA,' + ' NUMTALON,' + ' CANTIDAD =' + ' CASE WHEN (VTAPROCESO <> 0) THEN' + + ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39')' + + ' + '#39' (venta proceso)'#39 + ' ELSE' + ' CASE WHEN (VTAFINAL <> 0) THEN' + + ' REPLACE(CAST(VTAFINAL AS VARCHAR), '#39'.000'#39', '#39 + + #39') + '#39' (venta final/resc.)'#39 + ' ELSE' + ' CASE WHEN (VTATERM <> 0) THEN' + + ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39 + + ', '#39#39') + '#39' (venta term./dev.)'#39 + ' ELSE' + ' '#39'0'#39 + ' END' + ' END' + ' END,' + ' VALTOT' + 'FROM RDX_V_REFERENCIA_GENERICA' + 'ORDER BY CENTRO, VENDEDOR, FECHA') + Left = 344 + Top = 200 + end + object DataSource1: TDataSource + DataSet = ADOQuery1 + Left = 240 + Top = 144 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 336 + Top = 32 + end +end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas new file mode 100644 index 0000000..47b0d33 --- /dev/null +++ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas @@ -0,0 +1,178 @@ +unit srvReferenciaGenerica_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDACDSDataTable, frxClass, DB, + frxDBSet, ADODB, uDAInterfaces, uROClient, uROEventRepository, + uDABINAdapter, uDADataStreamer; + +type + { TsrvReferenciaGenerica } + TsrvReferenciaGenerica = class(TDARemoteService, IsrvReferenciaGenerica) + bpReferenciaGenerica: TDABusinessProcessor; + frxDBCabecera: TfrxDBDataset; + dsReferenciasGenericas: TDADataSource; + tbl_ReferenciasGenericas: TDACDSDataTable; + ADOConnection1: TADOConnection; + ADOQuery1: TADOQuery; + DataSource1: TDataSource; + frxReport1: TfrxReport; + DABINAdapter: TDABINAdapter; + schReferenciaGenerica: TDASchema; + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + function GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; + const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + schReferenciaGenericaClient_Intf, uBizReferenciaGenericaServer, Dialogs; + +procedure Create_srvReferenciaGenerica(out anInstance : IUnknown); +begin + anInstance := TsrvReferenciaGenerica.Create(NIL); +end; + +{ srvReferenciaGenerica } +{ TsrvReferenciaGenerica } + +function TsrvReferenciaGenerica.GenerateReport(const Centro, + Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; +var + ds: IDADataset; + AStream: TMemoryStream; + AWhere : String; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + AWhere := ''; + try + ds := schReferenciaGenerica.NewDataset(Connection, 'InformeRefGenerica'); + + if Length(Centro) > 0 then + begin + AWhere := 'CODCENTRO = ''' + Centro + ''''; + end; + + if Length(Vendedor) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + 'CODVENDEDOR = ''' + Vendedor + ''''; + end; + + if Length(Estado) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + '((ESTADO = ''' + Estado + ''') '; + if Estado = 'P' then + AWhere := AWhere + 'OR (ESTADO is null)'; + AWhere := AWhere + ')'; + end; + + if Length(FiltroUsuario) > 0 then + begin + if Length(AWhere) > 0 then + AWhere := AWhere + ' AND '; + AWhere := AWhere + '(' + FiltroUsuario + ')'; + end; + + ds.Where.AddText(AWhere); + + AStream.Clear; + ServiceAdapter.WriteDataset(AStream, ds, [woRows, woSchema], -1); + ServiceAdapter.ReadDataset(AStream, tbl_ReferenciasGenericas, TRUE, '', TRUE, TRUE); + + frxReport1.LoadFromFile(DarRutaInformes + 'InformeReferenciaGenerica.fr3', True); + frxReport1.PrepareReport; + frxReport1.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + end; +end; + + +function TsrvReferenciaGenerica.GetProducto(const Codigo: String; const Talla: String; + const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; +var + ds : IDADataset; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + ds := schReferenciaGenerica.NewDataset(conn, nme_GetProducto); + + ds.ParamByName('CODIGO').AsString := Codigo; + ds.ParamByName('TALLA').AsString := Talla; + ds.ParamByName('COLOR').AsString := Color; + try + ds.Open; + Result := not ds.IsEmpty; + if Result then + begin + Descripcion := ds.FieldValues[idx_GetProductoDESC_PRODUTO]; + CodigoBarras := ds.FieldValues[idx_GetProductoCODIGO_BARRA]; + end; + finally + ds.Close; + ds := nil; + conn := nil; + end; +end; + +procedure TsrvReferenciaGenerica.PasarProductosAEspera(const Centro, + Vendedor: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schReferenciaGenerica.NewCommand(conn, 'CambiarEstado'); + try + if Length(Centro) > 0 then + begin + cmd.Where.AddText('V.CODCENTRO = ''' + Centro + ''''); + if Length(Vendedor) > 0 then + cmd.Where.AddText('AND V.CODVENDEDOR = ''' + Vendedor + ''''); + end; + cmd.Execute; + conn.CommitTransaction; + except + conn.RollbackTransaction; + end; +end; + +procedure TsrvReferenciaGenerica.DARemoteServiceCreate(Sender: TObject); +begin + bpReferenciaGenerica.BusinessRulesID := BIZ_SERVER_REFERENCIA_GENERICA; +end; + +initialization + TROClassFactory.Create('srvReferenciaGenerica', Create_srvReferenciaGenerica, TsrvReferenciaGenerica_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj new file mode 100644 index 0000000..3e22257 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Stock.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 2 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.2.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg new file mode 100644 index 0000000..53e7995 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof new file mode 100644 index 0000000..326e1c7 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=2 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.2.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk new file mode 100644 index 0000000..1626dfe --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk @@ -0,0 +1,81 @@ +package Stock; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + PluginSDK_D10R, + GUISDK_D10, + BaseD10, + ControlesBaseD10, + dbrtl, + dsnap, + adortl, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxGridLnkD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dclcxLibraryD10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + Parametros; + +contains + uPluginControllerStock in 'uPluginControllerStock.pas' {ModuleStock: TModuleController}, + uDataModuleStock in 'uDataModuleStock.pas' {dmStock: TDAClientDataModule}, + uBizStock in '..\Reglas\uBizStock.pas', + uViewControGridStockPrendasCentros in 'uViewControGridStockPrendasCentros.pas' {frViewControlGridStockPrendasCentros: TCustomView}, + uViewControGridStockEDI in 'uViewControGridStockEDI.pas' {frViewControlGridStockEDI: TCustomView}, + uEditorControlStockEDI in 'uEditorControlStockEDI.pas' {fEditorControlStockEDI: TCustomEditor}, + uEditorControlStockVARELA in 'uEditorControlStockVARELA.pas' {fEditorControlStockVARELA: TCustomEditor}, + uViewFiltrosStock in 'uViewFiltrosStock.pas' {frViewFiltrosStock: TCustomView}, + uViewControGridStockVARELA in 'uViewControGridStockVARELA.pas' {frViewControlGridStockVARELA: TCustomView}, + uViewControGridStockEDIInventario in 'uViewControGridStockEDIInventario.pas' {frViewControlGridStockEDIInventario: TCustomView}; + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b248b7d82e8a0520c82914518fd632def94ab3c7 GIT binary patch literal 1499 zcmc)Ku};J=3VK(N6JlPf2Nk~z&9 zEBfU8_IXhhA7|C2s%Z!h;JlRDnX&`#(T$>RC1^%cTa?nAN=Ve2*iLmm7^Jdgx`V-s z>NSJas-wUIs4babV|C|gxL1|M_&%u681%#yInQLLyMDE6ZdMnMS|aD~yk~ax2!~(Q zHKUneO}&|`-ZHCN8%A`eZdu^THAlT31Q?dCC%~9gJ3s3Tu2$D!wx}C6S+& z!5J-83_g?0f9-2|U<~-i?IZ6v<#XTX^1k$D$UTGqH&$XXye`nKE40U8CFB1C8qyOg literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc new file mode 100644 index 0000000..f4e84f6 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,2,0 +PRODUCTVERSION 1,0,2,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.2.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res new file mode 100644 index 0000000000000000000000000000000000000000..31c891c793c14bddb38063f7b351f28a1e100258 GIT binary patch literal 4748 zcmbW5J8vXa5QWRw5@@vo2jt^`06AC_-nK+c8)h~|7%x4LJ>V`I}+x$dKGol|w|-f6X&*@2|*L)2V*e%a6YUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1k zY~p)gcb)%sB*tXC|GfUxCnpH}xWDj4T*U6&6gxT0So2x1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8b6~2;>lIU&LZsTwze(H0n{VKl$wDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BWbfHy`&jb6eIlLD>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDV9S$M(c({r}KDQ|qxK)Q;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm new file mode 100644 index 0000000..2f888c3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm @@ -0,0 +1,1209 @@ +object dmStock: TdmStock + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 322 + Width = 267 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvStock' + Left = 48 + Top = 20 + end + object tbl_StockEDI: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockEDI' + IndexDefs = <> + Left = 184 + Top = 16 + end + object tbl_StockVARELA: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockVARELA' + IndexDefs = <> + Left = 184 + Top = 72 + end + object tbl_StockPrendasCentros: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Producto' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Colecci'#243'n' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '38' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '40' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '42' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '44' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '46' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '48' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockPrendasCentros' + IndexDefs = <> + Left = 48 + Top = 176 + end + object ds_StockPrendasCentros: TDADataSource + DataSet = tbl_StockPrendasCentros.Dataset + DataTable = tbl_StockPrendasCentros + Left = 48 + Top = 232 + end + object tbl_StockEDIInventario: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TK' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'StockEDIInventario' + IndexDefs = <> + Left = 185 + Top = 136 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 48 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas new file mode 100644 index 0000000..0e5ed7c --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas @@ -0,0 +1,112 @@ +unit uDataModuleStock; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + uBizStock, uDARemoteDataAdapter, uDAInterfaces; + +type + TdmStock = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_StockEDI: TDACDSDataTable; + tbl_StockVARELA: TDACDSDataTable; + tbl_StockPrendasCentros: TDACDSDataTable; + ds_StockPrendasCentros: TDADataSource; + tbl_StockEDIInventario: TDACDSDataTable; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItemsStockVarela : IBizStockVARELA; + function GetItemsStockEDI : IBizStockEDI; + function GetItemsStockEDIInventario : IBizStockEDIInventario; + function GetItemsStockPrendasCentros : IBizStockPrendasCentros; + end; + +var + dmStock: TdmStock; + +implementation + +{$R *.DFM} + +uses + uDataModuleBase, Controls, Forms, cxControls, uDataTableUtils; + + +procedure TdmStock.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmStock.GetItemsStockEDI: IBizStockEDI; +var + dtItemsStockEDI: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockEDI := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockEDI, dtItemsStockEDI); + dtItemsStockEDI.BusinessRulesID := BIZ_STOCK_EDI; + Result := (dtItemsStockEDI as IBizStockEDI); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockEDIInventario: IBizStockEDIInventario; +var + dtItemsStockEDIInventario: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockEDIInventario := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockEDIInventario, dtItemsStockEDIInventario); + dtItemsStockEDIInventario.BusinessRulesID := BIZ_STOCK_EDIINVENTARIO; + Result := (dtItemsStockEDIInventario as IBizStockEDIInventario); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockPrendasCentros: IBizStockPrendasCentros; +var + dtItemsStock: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStock := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockPrendasCentros, dtItemsStock); + dtItemsStock.BusinessRulesID := BIZ_STOCK_PRENDAS_CENTROS; + Result := (dtItemsStock as IBizStockPrendasCentros); + finally + HideHourglassCursor; + end; +end; + +function TdmStock.GetItemsStockVarela: IBizStockVARELA; +var + dtItemsStockVARELA: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtItemsStockVARELA := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_StockVARELA, dtItemsStockVARELA); + dtItemsStockVARELA.BusinessRulesID := BIZ_STOCK_VARELA; + Result := (dtItemsStockVARELA as IBizStockVARELA); + finally + HideHourglassCursor; + end; +end; + +initialization + dmStock := TdmStock.Create(nil); + +finalization + FreeAndNil(dmStock); + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm new file mode 100644 index 0000000..ee5fffe --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm @@ -0,0 +1,2230 @@ +inherited fEditorControlStockEDI: TfEditorControlStockEDI + Left = 467 + Top = 265 + Width = 687 + Height = 607 + Caption = 'Control de stock de centros' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + inherited TBXItem33: TTBXItem + Visible = False + end + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object TBXItem39: TTBXItem [14] + Action = actExpandir + end + object TBXItem38: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 350 + DockPos = 304 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + object PageControl1: TPageControl [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + ActivePage = tabResumen + Align = alClient + TabOrder = 3 + OnChange = PageControl1Change + object tabResumen: TTabSheet + Caption = 'Resumido por prendas' + inline frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 407 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = frViewControlGridStockPrendasCentros1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridView48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockPrendasCentros1.cxGridViewTOTAL + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 249 + end + end + end + inherited dsDataSource: TDADataSource + Left = 16 + Top = 152 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38966.445252812500000000 + ReportDocument.IsCaptionAssigned = True + BuiltInReportLink = True + end + end + end + end + object tabDesglose: TTabSheet + Caption = 'Detallado por centros' + ImageIndex = 1 + inline frViewControlGridStockEDI1: TfrViewControlGridStockEDI + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 401 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDI1.cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDI1.cxGridViewKT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 249 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38965.499016562500000000 + BuiltInReportLink = True + end + end + end + end + object tabInventario: TTabSheet + Caption = 'Diferencias con '#250'ltimo inventario' + ImageIndex = 2 + inline frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario + Left = 0 + Top = 0 + Width = 671 + Height = 450 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 671 + Height = 401 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockEDIInventario1.cxGridViewDT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockEDIInventario1.cxGridViewDT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 671 + inherited dxLayoutControl1: TdxLayoutControl + Width = 671 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 65 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38993.574718599530000000 + BuiltInReportLink = True + end + end + end + end + end + inherited EditorActionList: TActionList + Top = 208 + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited dsDataTable: TDADataSource [8] + Left = 8 + Top = 208 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited GridPopupMenu: TPopupMenu + Left = 40 + Top = 208 + inherited Duplicar1: TMenuItem + Visible = False + end + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas new file mode 100644 index 0000000..74a8780 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas @@ -0,0 +1,242 @@ +unit uEditorControlStockEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, + uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, + + uBizStock,uViewControGridStockEDI, uViewControGridStockPrendasCentros, + uViewControGridStockEDIInventario; + +type + IEditorControlStockEDI = interface(IEditorGridBase) + ['{8CDABF14-FD43-48BF-8B33-B6B5A9B03CEB}'] +{ function GetItems: IBizStockEDI; + procedure SetItems(const Value: IBizStockEDI); + property Items: IBizStockEDI read GetItems write SetItems;} + end; + + TfEditorControlStockEDI = class(TfEditorGridBase, IEditorControlStockEDI) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + TBXItem38: TTBXItem; + TBXItem39: TTBXItem; + frViewControlGridStockEDI1: TfrViewControlGridStockEDI; + PageControl1: TPageControl; + tabResumen: TTabSheet; + tabDesglose: TTabSheet; + frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros; + tabInventario: TTabSheet; + frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); override; + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure PageControl1Change(Sender: TObject); + protected + FDesglose : IBizStockEDI; + FInventario : IBizStockEDIInventario; + FResumen : IBizStockPrendasCentros; + + function GetItemsDesglose: IBizStockEDI; + procedure SetItemsDesglose(const Value: IBizStockEDI); + + function GetItemsInventario: IBizStockEDIInventario; + procedure SetItemsInventario(const Value: IBizStockEDIInventario); + + function GetItemsResumen: IBizStockPrendasCentros; + procedure SetItemsResumen(const Value: IBizStockPrendasCentros); + public + property ItemsDesglose: IBizStockEDI read GetItemsDesglose write SetItemsDesglose; + property ItemsInventario: IBizStockEDIInventario read GetItemsInventario write SetItemsInventario; + property ItemsResumen: IBizStockPrendasCentros read GetItemsResumen write SetItemsResumen; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase, + uDataModuleStock, uDAInterfaces; + +{$R *.dfm} + +{ TfEditorControlStockEDI } + +procedure TfEditorControlStockEDI.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + case PageControl1.ActivePageIndex of + 0 : frViewControlGridStockPrendasCentros1.AjustarAncho; + 1 : frViewControlGridStockEDI1.AjustarAncho; + 2 : frViewControlGridStockEDIInventario1.AjustarAncho; + end; +end; + +procedure TfEditorControlStockEDI.FormShow(Sender: TObject); +begin +// inherited; <- No descomentar + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + case PageControl1.ActivePageIndex of + 0 : ViewGrid.ShowEmbedded(tabResumen); + 1 : ViewGrid.ShowEmbedded(tabDesglose); + 2 : ViewGrid.ShowEmbedded(tabInventario); + end; + + ViewGrid.ExpandirTodo; +end; + +constructor TfEditorControlStockEDI.Create(AOwner: TComponent); +begin + inherited; + FResumen := nil; + FDesglose := nil; + FInventario := nil; + + Self.Caption := 'Control de stock en centros'; + JvNavPanelHeader.Caption := Self.Caption; + PageControl1.ActivePageIndex := 0; + + if not Assigned(FResumen) then + ItemsResumen := dmStock.GetItemsStockPrendasCentros; + + ViewGrid := frViewControlGridStockPrendasCentros1; +end; + +procedure TfEditorControlStockEDI.actExpandirExecute(Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockEDI.actContraerExecute(Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +function TfEditorControlStockEDI.GetItemsDesglose: IBizStockEDI; +begin + Result := FDesglose; +end; + +function TfEditorControlStockEDI.GetItemsResumen: IBizStockPrendasCentros; +begin + Result := FResumen; +end; + +procedure TfEditorControlStockEDI.SetItemsDesglose(const Value: IBizStockEDI); +begin + FDesglose := Value; + if Assigned(FDesglose) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FDesglose.DataTable; + frViewControlGridStockEDI1.dsDataSource.DataTable := FDesglose.DataTable; + + if not FDesglose.DataTable.Active then + FDesglose.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorControlStockEDI.SetItemsResumen( + const Value: IBizStockPrendasCentros); +begin + FResumen := Value; + if Assigned(FResumen) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FResumen.DataTable; + frViewControlGridStockPrendasCentros1.dsDataSource.DataTable := FResumen.DataTable; + + if not FResumen.DataTable.Active then + FResumen.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorControlStockEDI.PageControl1Change(Sender: TObject); +begin + inherited; + Self.Update; + + //Quitamos el filtro que hubiera + actQuitarFiltro.Execute; + + case PageControl1.ActivePageIndex of + 0 : begin + ViewGrid := frViewControlGridStockPrendasCentros1; + if not Assigned(FResumen) then + ItemsResumen := dmStock.GetItemsStockPrendasCentros; + end; + 1 : begin + ViewGrid := frViewControlGridStockEDI1; + if not Assigned(FDesglose) then + ItemsDesglose := dmStock.GetItemsStockEDI; + end; + 2 : begin + ViewGrid := frViewControlGridStockEDIInventario1; + if not Assigned(FInventario) then + ItemsInventario := dmStock.GetItemsStockEDIInventario; + end; + end; + + ViewGrid.Refresh; +end; + +function TfEditorControlStockEDI.GetItemsInventario: IBizStockEDIInventario; +begin + Result := FInventario; +end; + +procedure TfEditorControlStockEDI.SetItemsInventario(const Value: IBizStockEDIInventario); +begin + FInventario := Value; + if Assigned(FInventario) then + begin + ShowHourglassCursor; + try + dsDataTable.DataTable := FInventario.DataTable; + frViewControlGridStockEDIInventario1.dsDataSource.DataTable := FInventario.DataTable; + + if not FInventario.DataTable.Active then + FInventario.DataTable.Active := True; + + actAnchoAuto.Execute; + finally + HideHourglassCursor; + end; + end; +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm new file mode 100644 index 0000000..089709c --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm @@ -0,0 +1,1716 @@ +inherited fEditorControlStockVARELA: TfEditorControlStockVARELA + Left = 408 + Top = 342 + Width = 687 + Height = 607 + Caption = 'Stock VARELA' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + Caption = 'Control de stock de almac'#233'n' + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + inherited TBXItem33: TTBXItem + Visible = False + end + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 350 + DockPos = 350 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + inline frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 679 + Height = 435 + inherited cxGridView: TcxGridDBTableView + PopupMenu = GridPopupMenu + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = frViewControlGridStockVARELA1.cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = frViewControlGridStockVARELA1.cxGridViewKT + end> + end + end + inherited frViewFiltrosStock1: TfrViewFiltrosStock + Width = 679 + inherited dxLayoutControl1: TdxLayoutControl + Width = 679 + inherited cbColeccion: TcxComboBox + Width = 242 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 354 + Width = 191 + end + end + end + inherited dsDataSource: TDADataSource + Top = 48 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38965.703007268520000000 + ReportDocument.IsCaptionAssigned = True + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [4] + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited dsDataTable: TDADataSource + Left = 32 + Top = 136 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited GridPopupMenu: TPopupMenu + Left = 64 + Top = 152 + inherited Duplicar1: TMenuItem + Visible = False + end + inherited N2: TMenuItem + Visible = False + end + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas new file mode 100644 index 0000000..13a247e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas @@ -0,0 +1,134 @@ +unit uEditorControlStockVARELA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, + uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, + uBizStock, uViewControGridStockVARELA, uViewControlGrid; + +type + IEditorControlStockVARELA = interface(IEditorGridBase) + ['{E73FFD61-E345-43EF-A3D1-56B8A5D3DA8B}'] + function GetItems: IBizStockVARELA; + procedure SetItems(const Value: IBizStockVARELA); + property Items: IBizStockVARELA read GetItems write SetItems; + end; + + TfEditorControlStockVARELA = class(TfEditorGridBase, IEditorControlStockVARELA) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + private + property ViewGrid; + protected + FItems : IBizStockVARELA; + function GetItems: IBizStockVARELA; + procedure SetItems(const Value: IBizStockVARELA); + public + property Items: IBizStockVARELA read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlStockEDI } + +procedure TfEditorControlStockVARELA.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlGridStockVARELA1.AjustarAncho; +end; + +procedure TfEditorControlStockVARELA.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockVARELA.actImprimirExecute(Sender: TObject); +begin + frViewControlGridStockVARELA1.Print; +end; + +constructor TfEditorControlStockVARELA.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewControlGridStockVARELA1; + Self.Caption := 'Control de stock de almacén'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +function TfEditorControlStockVARELA.GetItems: IBizStockVARELA; +begin + Result := FItems; +end; + +procedure TfEditorControlStockVARELA.SetItems(const Value: IBizStockVARELA); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewControlGridStockVARELA1.dsDataSource.DataTable := FItems.DataTable; + + if not FItems.DataTable.Active then + FItems.DataTable.Active := True; + + actAnchoAuto.Execute; + end; +end; + +procedure TfEditorControlStockVARELA.actPrevisualizarExecute(Sender: TObject); +begin + frViewControlGridStockVARELA1.Preview; +end; + +procedure TfEditorControlStockVARELA.actExpandirExecute(Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorControlStockVARELA.actContraerExecute(Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm new file mode 100644 index 0000000..467f3e3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm @@ -0,0 +1,126 @@ +object ModuleStock: TModuleStock + OldCreateOrder = True + Description = 'Control de stock' + ModuleMenu = MainMenu + ModuleName = 'Control de stock' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.6' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002B14944415478DA + B5955B48145118C7FFB30B65F89219452F1148588AB60F5A5B123E58ED6E6896 + 1015DB4314515426B8043E54A25DB044D844CB2EB6661962B5586EE9166B6D58 + A829AE6D7941B3EC8658544850BA33679A736C366FEBCEAAFDE1F0CDF966CEEF + 370387399C288AA0E1380EBE52B40BE2D8DEFE12F85C203319579E349CE37452 + A919FB70BD4B82E5148EEAB596A7A2AC8AC098A41A0F07D1AF4A13ED130944CD + F6D1A0A28C830CFEB3AF13D9A67C6FFF78DE61BC7952C02439A566888207441A + B4DE3C99897D1691F329B036C7B279FFAD950CFEE5B51DBEF2D96D63126D7A23 + 9B877569D1E222FE053B36C6A2E07A0D845A03FC25D8E08031792DE292D35064 + B8A85C404325234337828A0E956AF85AC5317871850357CBEE052E982C3C4FE0 + 110456AF591FCFAC40860F3C7762C061833D5C3F7382218F00CFE010FACCD918 + ECEEC0BCB316DCB6D74F5F4088085E200CFE21D50822ADA370E96350F9689A82 + 91F0773BF510D56ACCBF606570DAB7D5364E5D30F6CD7FB7B76241F95390A060 + D6A7A3C6D914B8A0DF52888F678E62C9652B66C7C4A12F2F13DF8BCD5878C301 + 2E2CC20BF7F0021CCF5AA62028BB82DE237B1114B102A1A613F8B46713E69A4E + 618EF180173E38C43341DD0BB73241F456332A5D6BB04D1FC300BDE9BBF1E34E + 29D421A1502F5A8C909287E0A59F28DBA612581E0D2D6DCA045129B9B8EB8EC7 + E6040D83FCEAE942AF2E8ADD0FB954059566F538389D37BB3B940922934FA3AA + 6D1D12E3A3A5851240FA8AAF596998B57E8B4F38AD2FDBBB94092212B360EB34 + 401F17C9E0FC5F084F884F38DD65AF3ABB950996198EE141771212B4CB5171BF + CEEFFF68641409C23764A0FA6D0A72F32D01C1E5F8152C4D30FD3B9D08EF3DA5 + 862B3FEA5ABE479F93F3ED7DD3E482B0F843E8719E9FD2DBCB994CA073B9C61F + FA8146A3C1C487FEFFCA1F9AC3C3EF68FFCFAC0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actStockEdi: TAction + Category = 'Stock' + Caption = 'Control de stock de centros' + ImageIndex = 0 + OnExecute = actStockEdiExecute + end + object actStockVarela: TAction + Category = 'Stock' + Caption = 'Control de stock de almac'#233'n' + ImageIndex = 0 + OnExecute = actStockVarelaExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 8000 + Caption = '&Stock' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actStockEdiExecute + object Stock1: TMenuItem + Tag = 100 + Action = actStockEdi + end + object Stock2: TMenuItem + Tag = 500 + Action = actStockVarela + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001D34944415478DA + 63FCFFFF3F03232323033A9891C0F01F999FB180014311582F889835B92D58FF + 5FF51A64C90B171818123AA682D965D1D90C51BEA89A2F32B586A4E556AD051B + 707222E37F8388A970C90515D960CD208D2050D79BC7D0543C89A16BE954867F + 7F7E30FCFDFD93A13AA58A61E29EFF8C7003EEA99E022BFEB4DA0CACF9CB8B9B + 604D20CDDFDF3E607879632FC3A2755F192C8A4E3128DFB66058BAF91FA60191 + 5EA60C33131919AE3D66C00A84BF33306CE0CD6498E13913B701D8C0CF5F7F18 + 9E4DEF65F8F1E23943F4F95FA41900D2FCB0BE90E1F7E7CF0C7C351318FC13AA + 883700A6F9FB8DAB0C42535733FCFAF39F2134AD0EBB010FD44E33847B9A30DC + 2D4E65F87CF20883C68E330C2F96CC66783DBD87416CD521863F9C7C60036372 + 9AB01BF050FD0C43988731C3E7534719AE0639300804C5327C58BB984178F20A + 0626137BB0E61F409C52D486DD80479A671942DD8CC00AEF1526813573798731 + F0D44F856B06D1D9155DD80D78A2758EC1C75E17ACE8F3CDEB0CAF2734327097 + 7531FC063A1DA619848BEAFAB01BF054FB3C8383A91A5C21320619F0F7EF3F70 + C0E234E0B9CE0586A6EE990CC400AC06A8BB9533DCDAD54D9401208062002837 + 5EDD889A1B09016D7F486E0400CE5079F0BCD676180000000049454E44AE4260 + 82} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas new file mode 100644 index 0000000..17b42d8 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas @@ -0,0 +1,97 @@ +unit uPluginControllerStock; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCStock = interface(IInterface) + ['{52C5C467-6FBE-476C-BE2A-A97D2752526C}'] + end; + + TModuleStock = class(TModuleController, IMCStock) + actStockEdi: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Stock1: TMenuItem; + SmallImages: TPngImageList; + actStockVarela: TAction; + Stock2: TMenuItem; + procedure actStockEdiExecute(Sender: TObject); + procedure actStockVarelaExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uEditorControlesBase, + uDataModuleStock, uEditorControlStockEDI, uBizStock, cxControls, + uEditorControlStockVARELA; + +function GetModule : TModuleController; +begin + Result := TModuleStock.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleStock.actStockEdiExecute(Sender: TObject); +var + aControl: IBizStockEDI; + aObj: IEditorControlStockEDI; +begin + //aControl := dmStock.GetItemsStockEDI; + aObj := TfEditorControlStockEDI.Create(Application); + + try + with aObj do + begin + //Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleStock.actStockVarelaExecute(Sender: TObject); +var + aControl: IBizStockVARELA; + aObj: IEditorControlStockVARELA; +begin + aControl := dmStock.GetItemsStockVARELA; + aObj := TfEditorControlStockVARELA.Create(Application); + + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleStock); + +finalization + UnRegisterModuleClass(TModuleStock); + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm new file mode 100644 index 0000000..53bd0f2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm @@ -0,0 +1,609 @@ +inherited frViewControlGridStockEDI: TfrViewControlGridStockEDI + Width = 553 + Height = 477 + inherited cxGrid: TcxGrid + Top = 49 + Width = 553 + Height = 428 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewE48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTE + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewS48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTS + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewKT + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Visible = False + GroupIndex = 1 + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewE38: TcxGridDBColumn + DataBinding.FieldName = 'E38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE40: TcxGridDBColumn + DataBinding.FieldName = 'E40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE42: TcxGridDBColumn + DataBinding.FieldName = 'E42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE44: TcxGridDBColumn + DataBinding.FieldName = 'E44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE46: TcxGridDBColumn + DataBinding.FieldName = 'E46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewE48: TcxGridDBColumn + DataBinding.FieldName = 'E48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewTE: TcxGridDBColumn + DataBinding.FieldName = 'TE' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle + end + object cxGridViewS38: TcxGridDBColumn + DataBinding.FieldName = 'S38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS40: TcxGridDBColumn + DataBinding.FieldName = 'S40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS42: TcxGridDBColumn + DataBinding.FieldName = 'S42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS44: TcxGridDBColumn + DataBinding.FieldName = 'S44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS46: TcxGridDBColumn + DataBinding.FieldName = 'S46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewS48: TcxGridDBColumn + DataBinding.FieldName = 'S48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewTS: TcxGridDBColumn + DataBinding.FieldName = 'TS' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewKT: TcxGridDBColumn + DataBinding.FieldName = 'KT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridViewE38GetDataText + HeaderAlignmentHorz = taRightJustify + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 553 + Height = 49 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 553 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 121 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 284 + Width = 191 + OnChange = frViewFiltrosStock1ccbCentroChange + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 72 + Top = 88 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39129.445520289350000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsOnEveryPage.Footers = False + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas new file mode 100644 index 0000000..cce71fc --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas @@ -0,0 +1,220 @@ +unit uViewControGridStockEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; + +type + IViewControlGridStockEDI = interface(IViewGrid) + ['{9342442A-28CD-4EA9-95C3-79B1B5302BCE}'] + end; + + TfrViewControlGridStockEDI = class(TfrViewGrid, IViewControlGridStockEDI) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewE38: TcxGridDBColumn; + cxGridViewE40: TcxGridDBColumn; + cxGridViewE42: TcxGridDBColumn; + cxGridViewE44: TcxGridDBColumn; + cxGridViewE46: TcxGridDBColumn; + cxGridViewE48: TcxGridDBColumn; + cxGridViewTE: TcxGridDBColumn; + cxGridViewS38: TcxGridDBColumn; + cxGridViewS40: TcxGridDBColumn; + cxGridViewS42: TcxGridDBColumn; + cxGridViewS44: TcxGridDBColumn; + cxGridViewS46: TcxGridDBColumn; + cxGridViewS48: TcxGridDBColumn; + cxGridViewTS: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewKT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewE38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockEDI.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockEDI.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockEDI.cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockEDI.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; +end; + +procedure TfrViewControlGridStockEDI.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + // + if Assigned(AItem) then + if (AItem.Index = cxGridViewTE.Index) or + (AItem.Index = cxGridViewTS.Index) or + (AItem.Index = cxGridViewKT.Index) then + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewE38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockEDI.cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDI.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + + +procedure TfrViewControlGridStockEDI.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockEDI.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockEDI.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm new file mode 100644 index 0000000..e5c482c --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm @@ -0,0 +1,609 @@ +inherited frViewControlGridStockEDIInventario: TfrViewControlGridStockEDIInventario + Width = 553 + Height = 477 + inherited cxGrid: TcxGrid + Top = 49 + Width = 553 + Height = 428 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewDT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewI48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTI + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTK + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewD48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewDT + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + Visible = False + GroupIndex = 1 + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewI38: TcxGridDBColumn + DataBinding.FieldName = 'I38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI40: TcxGridDBColumn + DataBinding.FieldName = 'I40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI42: TcxGridDBColumn + DataBinding.FieldName = 'I42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI44: TcxGridDBColumn + DataBinding.FieldName = 'I44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI46: TcxGridDBColumn + DataBinding.FieldName = 'I46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewI48: TcxGridDBColumn + DataBinding.FieldName = 'I48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleEntrada + end + object cxGridViewTI: TcxGridDBColumn + DataBinding.FieldName = 'TI' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.Content = cxStyleSalida + end + object cxGridViewTK: TcxGridDBColumn + DataBinding.FieldName = 'TK' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD38: TcxGridDBColumn + DataBinding.FieldName = 'D38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD40: TcxGridDBColumn + DataBinding.FieldName = 'D40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD42: TcxGridDBColumn + DataBinding.FieldName = 'D42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD44: TcxGridDBColumn + DataBinding.FieldName = 'D44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD46: TcxGridDBColumn + DataBinding.FieldName = 'D46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewD48: TcxGridDBColumn + DataBinding.FieldName = 'D48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDT: TcxGridDBColumn + DataBinding.FieldName = 'DT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + OnCustomDrawCell = cxGridViewDTCustomDrawCell + OnGetDataText = cxGridViewI38GetDataText + HeaderAlignmentHorz = taRightJustify + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 553 + Height = 49 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 553 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 145 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 257 + Width = 184 + OnChange = frViewFiltrosStock1ccbCentroChange + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 72 + Top = 88 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39129.445522280090000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsOnEveryPage.Footers = False + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Selection = cxStyleSelectionInforme + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas new file mode 100644 index 0000000..cb8e1b5 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas @@ -0,0 +1,224 @@ +unit uViewControGridStockEDIInventario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; + +type + IViewControlGridStockEDIInventario = interface(IViewGrid) + ['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}'] + end; + + TfrViewControlGridStockEDIInventario = class(TfrViewGrid, IViewControlGridStockEDIInventario) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewI38: TcxGridDBColumn; + cxGridViewI40: TcxGridDBColumn; + cxGridViewI42: TcxGridDBColumn; + cxGridViewI44: TcxGridDBColumn; + cxGridViewI46: TcxGridDBColumn; + cxGridViewI48: TcxGridDBColumn; + cxGridViewTI: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewTK: TcxGridDBColumn; + cxGridViewD38: TcxGridDBColumn; + cxGridViewD40: TcxGridDBColumn; + cxGridViewD42: TcxGridDBColumn; + cxGridViewD44: TcxGridDBColumn; + cxGridViewD46: TcxGridDBColumn; + cxGridViewD48: TcxGridDBColumn; + cxGridViewDT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewI38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses + uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockEDIInventario.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockEDIInventario.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockEDIInventario.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; +end; + +procedure TfrViewControlGridStockEDIInventario.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + // + if Assigned(AItem) then + if (AItem.Index = cxGridViewTI.Index) or + (AItem.Index = cxGridViewTK.Index) or + (AItem.Index = cxGridViewDT.Index) then + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewI38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockEDIInventario.cxGridViewTEStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockEDIInventario.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockEDIInventario.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : Integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + ShowHourglassCursor; + try + AItemList := cxGridView.DataController.Filter.Root; + AItemList.Clear; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + finally + cxGridView.DataController.Filter.EndUpdate; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm new file mode 100644 index 0000000..2f3e4dd --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm @@ -0,0 +1,351 @@ +inherited frViewControlGridStockPrendasCentros: TfrViewControlGridStockPrendasCentros + Width = 621 + Height = 459 + inherited cxGrid: TcxGrid + Top = 43 + Width = 621 + Height = 416 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridView48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewTOTAL + end> + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + end + object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUCTO' + Visible = False + end + object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUCTO' + Visible = False + end + object cxGridViewCOLECCION: TcxGridDBColumn + DataBinding.FieldName = 'COLECCION' + Visible = False + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + end + object cxGridView38: TcxGridDBColumn + DataBinding.FieldName = 'T38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView40: TcxGridDBColumn + DataBinding.FieldName = 'T40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView42: TcxGridDBColumn + DataBinding.FieldName = 'T42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView44: TcxGridDBColumn + DataBinding.FieldName = 'T44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView46: TcxGridDBColumn + DataBinding.FieldName = 'T46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridView48: TcxGridDBColumn + DataBinding.FieldName = 'T48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTOTAL: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,###' + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridView38GetDataText + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewCOLUMN7StylesGetContentStyle + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 621 + Height = 43 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 621 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 161 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 273 + OnChange = frViewFiltrosStock1ccbCentroChange + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + end + end + end + inherited dsDataSource: TDADataSource [2] + Left = 24 + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + Left = 184 + Top = 120 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 39129.445565682870000000 + ReportDocument.IsCaptionAssigned = True + ReportTitle.AdjustOnReportScale = True + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + SupportedCustomDraw = True + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + Left = 96 + Top = 104 + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas new file mode 100644 index 0000000..3a06f07 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas @@ -0,0 +1,199 @@ +unit uViewControGridStockPrendasCentros; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, + uViewParametrosControlGrid, uViewFiltrosStock, Grids, DBGrids; + +type + IViewControlGridStockPrendasCentros = interface(IViewGrid) + ['{E6251B25-10FE-4D0C-94CD-0E554F88B54D}'] + end; + + TfrViewControlGridStockPrendasCentros = class(TfrViewGrid, IViewControlGridStockPrendasCentros) + dxComponentPrinterLink1: TdxGridReportLink; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridView38: TcxGridDBColumn; + cxGridView40: TcxGridDBColumn; + cxGridView42: TcxGridDBColumn; + cxGridView44: TcxGridDBColumn; + cxGridView46: TcxGridDBColumn; + cxGridView48: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewCOLUMN7StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridView38GetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: String); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockPrendasCentros.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockPrendasCentros.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridViewKTCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockPrendasCentros.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.CentroColumnIndex := -1; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; +end; + +function TfrViewControlGridStockPrendasCentros.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridStockPrendasCentros.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridViewCOLUMN7StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockPrendasCentros.Refresh; +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockPrendasCentros.cxGridView38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockPrendasCentros.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : Integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm new file mode 100644 index 0000000..bbfa397 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm @@ -0,0 +1,365 @@ +inherited frViewControlGridStockVARELA: TfrViewControlGridStockVARELA + Width = 621 + Height = 459 + inherited cxGrid: TcxGrid + Top = 43 + Width = 621 + Height = 416 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Position = spFooter + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Position = spFooter + Column = cxGridViewKT + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 referencias' + Kind = skCount + Column = cxGridViewPRODUCTO + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK38 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK40 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK42 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK44 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK46 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewK48 + end + item + Format = '#,##0' + Kind = skSum + Column = cxGridViewKT + end> + OptionsView.GridLineColor = clDefault + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.GroupRowStyle = grsOffice11 + Preview.AutoHeight = False + Styles.Footer = cxStyleEven + object cxGridViewRecID: TcxGridDBColumn + DataBinding.FieldName = 'RecID' + Visible = False + end + object cxGridViewFILIAL: TcxGridDBColumn + DataBinding.FieldName = 'FILIAL' + Visible = False + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'C'#243'digo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewTIPO_PRODUTO: TcxGridDBColumn + DataBinding.FieldName = 'TIPO_PRODUTO' + Visible = False + end + object cxGridViewGRUPO_PRODUTO: TcxGridDBColumn + DataBinding.FieldName = 'GRUPO_PRODUTO' + Visible = False + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Colecci'#243'n' + DataBinding.FieldName = 'COLECCION' + Visible = False + GroupIndex = 0 + end + object cxGridViewK38: TcxGridDBColumn + DataBinding.FieldName = 'K38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK40: TcxGridDBColumn + DataBinding.FieldName = 'K40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK42: TcxGridDBColumn + DataBinding.FieldName = 'K42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK44: TcxGridDBColumn + DataBinding.FieldName = 'K44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK46: TcxGridDBColumn + DataBinding.FieldName = 'K46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewK48: TcxGridDBColumn + DataBinding.FieldName = 'K48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewKT: TcxGridDBColumn + DataBinding.FieldName = 'KT' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = '#,##0' + Properties.ValueType = vtInt + OnCustomDrawCell = cxGridViewKTCustomDrawCell + OnGetDataText = cxGridViewK38GetDataText + HeaderAlignmentHorz = taRightJustify + Styles.OnGetContentStyle = cxGridViewKTStylesGetContentStyle + end + end + end + inline frViewFiltrosStock1: TfrViewFiltrosStock [1] + Left = 0 + Top = 0 + Width = 621 + Height = 43 + Align = alTop + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 1 + inherited dxLayoutControl1: TdxLayoutControl + Width = 621 + inherited cbColeccion: TcxComboBox + Left = 64 + Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged + Width = 177 + end + inherited ccbCentro: TJvCheckedComboBox + Left = 289 + Width = 191 + OnChange = frViewFiltrosStock1ccbCentroChange + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Item3: TdxLayoutItem + Visible = False + end + end + end + end + inherited dsDataSource: TDADataSource [2] + end + inherited dxComponentPrinter: TdxComponentPrinter [3] + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + Left = 184 + Top = 120 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.LeftTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 39141.797618263890000000 + ReportDocument.IsCaptionAssigned = True + ReportTitle.AdjustOnReportScale = True + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.FilterBar = False + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + SupportedCustomDraw = True + BuiltInReportLink = True + end + end + inherited dxPSEngineController1: TdxPSEngineController [4] + Left = 96 + Top = 104 + end + inherited cxStyleRepository1: TcxStyleRepository + inherited cxStyleEven: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleEntrada: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + object cxStyleSalida: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleTotales: TcxStyle + AssignedValues = [svColor, svFont] + Color = 13619151 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 296 + Top = 168 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas new file mode 100644 index 0000000..26f5667 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas @@ -0,0 +1,187 @@ +unit uViewControGridStockVARELA; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, + uViewParametrosControlGrid, uViewFiltrosStock; + +type + IViewControlGridStockVARELA = interface(IViewGrid) + ['{19831B1A-1D3B-4352-A848-52B00BFEF4EF}'] + end; + + TfrViewControlGridStockVARELA = class(TfrViewGrid, IViewControlGridStockVARELA) + dxComponentPrinterLink1: TdxGridReportLink; + cxGridViewRecID: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewTIPO_PRODUTO: TcxGridDBColumn; + cxGridViewGRUPO_PRODUTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewK38: TcxGridDBColumn; + cxGridViewK40: TcxGridDBColumn; + cxGridViewK42: TcxGridDBColumn; + cxGridViewK44: TcxGridDBColumn; + cxGridViewK46: TcxGridDBColumn; + cxGridViewK48: TcxGridDBColumn; + cxGridViewKT: TcxGridDBColumn; + frViewFiltrosStock1: TfrViewFiltrosStock; + cxStyleEntrada: TcxStyle; + cxStyleSalida: TcxStyle; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxStyleTotales: TcxStyle; + procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure cxGridViewK38GetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewKTStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); + procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); + protected + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure ShowEmbedded(const AParent : TWinControl); override; + procedure Preview; override; + procedure Print; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation +{$R *.dfm} + +uses uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridStockVARELA.Preview; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridStockVARELA.Print; +begin + inherited; + dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; + dxComponentPrinterLink1.Print(True, Nil); +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewKTCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + inherited; + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +constructor TfrViewControlGridStockVARELA.Create(AOwner: TComponent); +begin + inherited; + frViewFiltrosStock1.FocusedView := cxGridView; + frViewFiltrosStock1.CentroColumnIndex := cxGridViewFILIAL.Index; + frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; +end; + +function TfrViewControlGridStockVARELA.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridStockVARELA.ShowEmbedded( + const AParent: TWinControl); +begin + inherited; + frViewFiltrosStock1.Refresh; +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewK38GetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +begin + inherited; + ShowMessage(AText); + if AText = '0' then + AText := ''; +end; + +procedure TfrViewControlGridStockVARELA.cxGridViewKTStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + AStyle := cxStyleTotales; +end; + +procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewControlGridStockVARELA.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; + i : integer; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + FNivelFiltrado := AItemList.AddItemList(fboAnd); + + if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); + + if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and + (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then + begin + FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); + for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do + if frViewFiltrosStock1.ccbCentro.IsChecked(i) then + FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); + end; + + if cxGridView.DataController.Filter.IsEmpty then + cxGridView.DataController.Filter.Active := False + else + cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1ccbCentroChange( + Sender: TObject); +begin + inherited; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm new file mode 100644 index 0000000..e2ead5c --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm @@ -0,0 +1,72 @@ +object frViewFiltrosStock: TfrViewFiltrosStock + Left = 0 + Top = 0 + Width = 537 + Height = 105 + Color = clWindow + ParentBackground = False + ParentColor = False + TabOrder = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 537 + Height = 41 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + object cbColeccion: TcxComboBox + Left = 64 + Top = 10 + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 18 + Properties.ReadOnly = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 168 + end + object ccbCentro: TJvCheckedComboBox + Left = 280 + Top = 10 + Width = 191 + Height = 21 + CapSelectAll = '&Select all' + CapDeSelectAll = '&Deselect all' + NoFocusColor = clWindow + QuoteStyle = qsSingle + DropDownLines = 20 + TabOrder = 1 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Colecci'#243'n:' + Control = cbColeccion + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Centro:' + Control = ccbCentro + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas new file mode 100644 index 0000000..c7f43ba --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas @@ -0,0 +1,111 @@ +unit uViewFiltrosStock; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxLayoutControl, cxControls, uViewControlGrid, + cxGraphics, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, DB, cxDBData, + cxGridLevel, cxClasses, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, cxCheckComboBox, StdCtrls, + Mask, JvExMask, JvToolEdit, JvCombobox; + +type + IViewFiltrosStock = interface + ['{ABC745C3-64F0-44E4-AF4B-118AE5060150}'] + procedure SetFocusedView (const Value : TcxGridDBTableView); + function GetFocusedView : TcxGridDBTableView; + property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; + procedure Refresh; + end; + + TfrViewFiltrosStock = class(TFrame, IViewFiltrosStock) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + cbColeccion: TcxComboBox; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + ccbCentro: TJvCheckedComboBox; + private + FFocusedView : TcxGridDBTableView; + function GetFilterValueList(AColumnIndex: Integer): TStringList; + protected + procedure RellenarFiltros; + procedure SetFocusedView (const Value : TcxGridDBTableView); + function GetFocusedView : TcxGridDBTableView; + public + CentroColumnIndex : Integer; + ColeccionColumnIndex : Integer; + property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; + procedure Refresh; + end; + + +implementation + +{$R *.dfm} + +{ TfrViewFiltrosStock } + +function TfrViewFiltrosStock.GetFilterValueList(AColumnIndex: Integer): TStringList; +var + AValueList : TcxDataFilterValueList; + i : Integer; +begin + Result := TStringList.Create; + + if AColumnIndex < 0 then + Exit; + + AValueList := TcxDataFilterValueList.Create(FFocusedView.DataController.Filter); + try + AValueList.Load(AColumnIndex); + for i := 0 to AValueList.Count - 1 do + Result.Add(AValueList[i].DisplayText); + finally + FreeAndNil(AValueList); + end; +end; + +function TfrViewFiltrosStock.GetFocusedView: TcxGridDBTableView; +begin + Result := FFocusedView; +end; + +procedure TfrViewFiltrosStock.Refresh; +begin + inherited; + RellenarFiltros; +end; + +procedure TfrViewFiltrosStock.RellenarFiltros; +begin + if ColeccionColumnIndex >= 0 then + with cbColeccion.Properties do + begin + Items.Clear; + Items.AddStrings(GetFilterValueList(ColeccionColumnIndex)); + Items.Delete(1); + Items.Strings[0] := 'Todos'; + cbColeccion.Text := 'Todos'; + end; + + if CentroColumnIndex >= 0 then + with ccbCentro do + begin + Items.Clear; + Items.AddStrings(GetFilterValueList(CentroColumnIndex)); + Items.Delete(1); + Items.Strings[0] := 'Todos'; + Checked[0] := True; + end; +end; + +procedure TfrViewFiltrosStock.SetFocusedView( + const Value: TcxGridDBTableView); +begin + FFocusedView := Value; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas new file mode 100644 index 0000000..e984ff2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas @@ -0,0 +1,1684 @@ +unit schStockClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_StockPrendasCentros = '{A01C38D3-19DC-42D1-A0CB-6ABF3E9D5507}'; + RID_StockEDI = '{0CB949AB-F343-4ECF-9163-69234641CEB1}'; + RID_StockVARELA = '{DFB28AB8-F8C4-4AAD-AA73-8015541091D0}'; + RID_StockEDIInventario = '{5496215D-7A4A-43E1-929A-D0538C931177}'; + + { Data table names } + nme_StockPrendasCentros = 'StockPrendasCentros'; + nme_StockEDI = 'StockEDI'; + nme_StockVARELA = 'StockVARELA'; + nme_StockEDIInventario = 'StockEDIInventario'; + + { StockPrendasCentros fields } + fld_StockPrendasCentrosCODIGO = 'CODIGO'; + fld_StockPrendasCentrosPRODUCTO = 'PRODUCTO'; + fld_StockPrendasCentrosTIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockPrendasCentrosGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockPrendasCentrosCOLECCION = 'COLECCION'; + fld_StockPrendasCentrosCOLOR = 'COLOR'; + fld_StockPrendasCentrosT38 = 'T38'; + fld_StockPrendasCentrosT40 = 'T40'; + fld_StockPrendasCentrosT42 = 'T42'; + fld_StockPrendasCentrosT44 = 'T44'; + fld_StockPrendasCentrosT46 = 'T46'; + fld_StockPrendasCentrosT48 = 'T48'; + fld_StockPrendasCentrosTOTAL = 'TOTAL'; + + { StockPrendasCentros field indexes } + idx_StockPrendasCentrosCODIGO = 0; + idx_StockPrendasCentrosPRODUCTO = 1; + idx_StockPrendasCentrosTIPO_PRODUCTO = 2; + idx_StockPrendasCentrosGRUPO_PRODUCTO = 3; + idx_StockPrendasCentrosCOLECCION = 4; + idx_StockPrendasCentrosCOLOR = 5; + idx_StockPrendasCentrosT38 = 6; + idx_StockPrendasCentrosT40 = 7; + idx_StockPrendasCentrosT42 = 8; + idx_StockPrendasCentrosT44 = 9; + idx_StockPrendasCentrosT46 = 10; + idx_StockPrendasCentrosT48 = 11; + idx_StockPrendasCentrosTOTAL = 12; + + { StockEDI fields } + fld_StockEDICENTRO = 'CENTRO'; + fld_StockEDICODIGO = 'CODIGO'; + fld_StockEDIPRODUCTO = 'PRODUCTO'; + fld_StockEDITIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockEDIGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockEDICOLECCION = 'COLECCION'; + fld_StockEDICOLOR = 'COLOR'; + fld_StockEDIE38 = 'E38'; + fld_StockEDIE40 = 'E40'; + fld_StockEDIE42 = 'E42'; + fld_StockEDIE44 = 'E44'; + fld_StockEDIE46 = 'E46'; + fld_StockEDIE48 = 'E48'; + fld_StockEDITE = 'TE'; + fld_StockEDIS38 = 'S38'; + fld_StockEDIS40 = 'S40'; + fld_StockEDIS42 = 'S42'; + fld_StockEDIS44 = 'S44'; + fld_StockEDIS46 = 'S46'; + fld_StockEDIS48 = 'S48'; + fld_StockEDITS = 'TS'; + fld_StockEDIK38 = 'K38'; + fld_StockEDIK40 = 'K40'; + fld_StockEDIK42 = 'K42'; + fld_StockEDIK44 = 'K44'; + fld_StockEDIK46 = 'K46'; + fld_StockEDIK48 = 'K48'; + fld_StockEDIKT = 'KT'; + + { StockEDI field indexes } + idx_StockEDICENTRO = 0; + idx_StockEDICODIGO = 1; + idx_StockEDIPRODUCTO = 2; + idx_StockEDITIPO_PRODUCTO = 3; + idx_StockEDIGRUPO_PRODUCTO = 4; + idx_StockEDICOLECCION = 5; + idx_StockEDICOLOR = 6; + idx_StockEDIE38 = 7; + idx_StockEDIE40 = 8; + idx_StockEDIE42 = 9; + idx_StockEDIE44 = 10; + idx_StockEDIE46 = 11; + idx_StockEDIE48 = 12; + idx_StockEDITE = 13; + idx_StockEDIS38 = 14; + idx_StockEDIS40 = 15; + idx_StockEDIS42 = 16; + idx_StockEDIS44 = 17; + idx_StockEDIS46 = 18; + idx_StockEDIS48 = 19; + idx_StockEDITS = 20; + idx_StockEDIK38 = 21; + idx_StockEDIK40 = 22; + idx_StockEDIK42 = 23; + idx_StockEDIK44 = 24; + idx_StockEDIK46 = 25; + idx_StockEDIK48 = 26; + idx_StockEDIKT = 27; + + { StockVARELA fields } + fld_StockVARELAFILIAL = 'FILIAL'; + fld_StockVARELACODIGO = 'CODIGO'; + fld_StockVARELACOLOR = 'COLOR'; + fld_StockVARELAPRODUCTO = 'PRODUCTO'; + fld_StockVARELATIPO_PRODUTO = 'TIPO_PRODUTO'; + fld_StockVARELAGRUPO_PRODUTO = 'GRUPO_PRODUTO'; + fld_StockVARELACOLECCION = 'COLECCION'; + fld_StockVARELAK38 = 'K38'; + fld_StockVARELAK40 = 'K40'; + fld_StockVARELAK42 = 'K42'; + fld_StockVARELAK44 = 'K44'; + fld_StockVARELAK46 = 'K46'; + fld_StockVARELAK48 = 'K48'; + fld_StockVARELAKT = 'KT'; + + { StockVARELA field indexes } + idx_StockVARELAFILIAL = 0; + idx_StockVARELACODIGO = 1; + idx_StockVARELACOLOR = 2; + idx_StockVARELAPRODUCTO = 3; + idx_StockVARELATIPO_PRODUTO = 4; + idx_StockVARELAGRUPO_PRODUTO = 5; + idx_StockVARELACOLECCION = 6; + idx_StockVARELAK38 = 7; + idx_StockVARELAK40 = 8; + idx_StockVARELAK42 = 9; + idx_StockVARELAK44 = 10; + idx_StockVARELAK46 = 11; + idx_StockVARELAK48 = 12; + idx_StockVARELAKT = 13; + + { StockEDIInventario fields } + fld_StockEDIInventarioCENTRO = 'CENTRO'; + fld_StockEDIInventarioCODIGO = 'CODIGO'; + fld_StockEDIInventarioPRODUCTO = 'PRODUCTO'; + fld_StockEDIInventarioCOLOR = 'COLOR'; + fld_StockEDIInventarioTIPO_PRODUCTO = 'TIPO_PRODUCTO'; + fld_StockEDIInventarioGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; + fld_StockEDIInventarioCOLECCION = 'COLECCION'; + fld_StockEDIInventarioI38 = 'I38'; + fld_StockEDIInventarioI40 = 'I40'; + fld_StockEDIInventarioI42 = 'I42'; + fld_StockEDIInventarioI44 = 'I44'; + fld_StockEDIInventarioI46 = 'I46'; + fld_StockEDIInventarioI48 = 'I48'; + fld_StockEDIInventarioTI = 'TI'; + fld_StockEDIInventarioK38 = 'K38'; + fld_StockEDIInventarioK40 = 'K40'; + fld_StockEDIInventarioK42 = 'K42'; + fld_StockEDIInventarioK44 = 'K44'; + fld_StockEDIInventarioK46 = 'K46'; + fld_StockEDIInventarioK48 = 'K48'; + fld_StockEDIInventarioTK = 'TK'; + fld_StockEDIInventarioD38 = 'D38'; + fld_StockEDIInventarioD40 = 'D40'; + fld_StockEDIInventarioD42 = 'D42'; + fld_StockEDIInventarioD44 = 'D44'; + fld_StockEDIInventarioD46 = 'D46'; + fld_StockEDIInventarioD48 = 'D48'; + fld_StockEDIInventarioDT = 'DT'; + + { StockEDIInventario field indexes } + idx_StockEDIInventarioCENTRO = 0; + idx_StockEDIInventarioCODIGO = 1; + idx_StockEDIInventarioPRODUCTO = 2; + idx_StockEDIInventarioCOLOR = 3; + idx_StockEDIInventarioTIPO_PRODUCTO = 4; + idx_StockEDIInventarioGRUPO_PRODUCTO = 5; + idx_StockEDIInventarioCOLECCION = 6; + idx_StockEDIInventarioI38 = 7; + idx_StockEDIInventarioI40 = 8; + idx_StockEDIInventarioI42 = 9; + idx_StockEDIInventarioI44 = 10; + idx_StockEDIInventarioI46 = 11; + idx_StockEDIInventarioI48 = 12; + idx_StockEDIInventarioTI = 13; + idx_StockEDIInventarioK38 = 14; + idx_StockEDIInventarioK40 = 15; + idx_StockEDIInventarioK42 = 16; + idx_StockEDIInventarioK44 = 17; + idx_StockEDIInventarioK46 = 18; + idx_StockEDIInventarioK48 = 19; + idx_StockEDIInventarioTK = 20; + idx_StockEDIInventarioD38 = 21; + idx_StockEDIInventarioD40 = 22; + idx_StockEDIInventarioD42 = 23; + idx_StockEDIInventarioD44 = 24; + idx_StockEDIInventarioD46 = 25; + idx_StockEDIInventarioD48 = 26; + idx_StockEDIInventarioDT = 27; + +type + { IStockPrendasCentros } + IStockPrendasCentros = interface(IDAStronglyTypedDataTable) + ['{9147A7A9-8562-4C08-8D0F-4E08050ED78D}'] + { Property getters and setters } + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetT38Value: Float; + procedure SetT38Value(const aValue: Float); + function GetT40Value: Float; + procedure SetT40Value(const aValue: Float); + function GetT42Value: Float; + procedure SetT42Value(const aValue: Float); + function GetT44Value: Float; + procedure SetT44Value(const aValue: Float); + function GetT46Value: Float; + procedure SetT46Value(const aValue: Float); + function GetT48Value: Float; + procedure SetT48Value(const aValue: Float); + function GetTOTALValue: Float; + procedure SetTOTALValue(const aValue: Float); + + + { Properties } + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property T38: Float read GetT38Value write SetT38Value; + property T40: Float read GetT40Value write SetT40Value; + property T42: Float read GetT42Value write SetT42Value; + property T44: Float read GetT44Value write SetT44Value; + property T46: Float read GetT46Value write SetT46Value; + property T48: Float read GetT48Value write SetT48Value; + property TOTAL: Float read GetTOTALValue write SetTOTALValue; + end; + + { TStockPrendasCentrosDataTableRules } + TStockPrendasCentrosDataTableRules = class(TDADataTableRules, IStockPrendasCentros) + private + protected + { Property getters and setters } + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetT38Value: Float; virtual; + procedure SetT38Value(const aValue: Float); virtual; + function GetT40Value: Float; virtual; + procedure SetT40Value(const aValue: Float); virtual; + function GetT42Value: Float; virtual; + procedure SetT42Value(const aValue: Float); virtual; + function GetT44Value: Float; virtual; + procedure SetT44Value(const aValue: Float); virtual; + function GetT46Value: Float; virtual; + procedure SetT46Value(const aValue: Float); virtual; + function GetT48Value: Float; virtual; + procedure SetT48Value(const aValue: Float); virtual; + function GetTOTALValue: Float; virtual; + procedure SetTOTALValue(const aValue: Float); virtual; + + { Properties } + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property T38: Float read GetT38Value write SetT38Value; + property T40: Float read GetT40Value write SetT40Value; + property T42: Float read GetT42Value write SetT42Value; + property T44: Float read GetT44Value write SetT44Value; + property T46: Float read GetT46Value write SetT46Value; + property T48: Float read GetT48Value write SetT48Value; + property TOTAL: Float read GetTOTALValue write SetTOTALValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockEDI } + IStockEDI = interface(IDAStronglyTypedDataTable) + ['{759266B9-20F4-4F29-9B8B-96F6E62E2560}'] + { Property getters and setters } + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetE38Value: Float; + procedure SetE38Value(const aValue: Float); + function GetE40Value: Float; + procedure SetE40Value(const aValue: Float); + function GetE42Value: Float; + procedure SetE42Value(const aValue: Float); + function GetE44Value: Float; + procedure SetE44Value(const aValue: Float); + function GetE46Value: Float; + procedure SetE46Value(const aValue: Float); + function GetE48Value: Float; + procedure SetE48Value(const aValue: Float); + function GetTEValue: Float; + procedure SetTEValue(const aValue: Float); + function GetS38Value: Float; + procedure SetS38Value(const aValue: Float); + function GetS40Value: Float; + procedure SetS40Value(const aValue: Float); + function GetS42Value: Float; + procedure SetS42Value(const aValue: Float); + function GetS44Value: Float; + procedure SetS44Value(const aValue: Float); + function GetS46Value: Float; + procedure SetS46Value(const aValue: Float); + function GetS48Value: Float; + procedure SetS48Value(const aValue: Float); + function GetTSValue: Float; + procedure SetTSValue(const aValue: Float); + function GetK38Value: Float; + procedure SetK38Value(const aValue: Float); + function GetK40Value: Float; + procedure SetK40Value(const aValue: Float); + function GetK42Value: Float; + procedure SetK42Value(const aValue: Float); + function GetK44Value: Float; + procedure SetK44Value(const aValue: Float); + function GetK46Value: Float; + procedure SetK46Value(const aValue: Float); + function GetK48Value: Float; + procedure SetK48Value(const aValue: Float); + function GetKTValue: Float; + procedure SetKTValue(const aValue: Float); + + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property E38: Float read GetE38Value write SetE38Value; + property E40: Float read GetE40Value write SetE40Value; + property E42: Float read GetE42Value write SetE42Value; + property E44: Float read GetE44Value write SetE44Value; + property E46: Float read GetE46Value write SetE46Value; + property E48: Float read GetE48Value write SetE48Value; + property TE: Float read GetTEValue write SetTEValue; + property S38: Float read GetS38Value write SetS38Value; + property S40: Float read GetS40Value write SetS40Value; + property S42: Float read GetS42Value write SetS42Value; + property S44: Float read GetS44Value write SetS44Value; + property S46: Float read GetS46Value write SetS46Value; + property S48: Float read GetS48Value write SetS48Value; + property TS: Float read GetTSValue write SetTSValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property KT: Float read GetKTValue write SetKTValue; + end; + + { TStockEDIDataTableRules } + TStockEDIDataTableRules = class(TDADataTableRules, IStockEDI) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetE38Value: Float; virtual; + procedure SetE38Value(const aValue: Float); virtual; + function GetE40Value: Float; virtual; + procedure SetE40Value(const aValue: Float); virtual; + function GetE42Value: Float; virtual; + procedure SetE42Value(const aValue: Float); virtual; + function GetE44Value: Float; virtual; + procedure SetE44Value(const aValue: Float); virtual; + function GetE46Value: Float; virtual; + procedure SetE46Value(const aValue: Float); virtual; + function GetE48Value: Float; virtual; + procedure SetE48Value(const aValue: Float); virtual; + function GetTEValue: Float; virtual; + procedure SetTEValue(const aValue: Float); virtual; + function GetS38Value: Float; virtual; + procedure SetS38Value(const aValue: Float); virtual; + function GetS40Value: Float; virtual; + procedure SetS40Value(const aValue: Float); virtual; + function GetS42Value: Float; virtual; + procedure SetS42Value(const aValue: Float); virtual; + function GetS44Value: Float; virtual; + procedure SetS44Value(const aValue: Float); virtual; + function GetS46Value: Float; virtual; + procedure SetS46Value(const aValue: Float); virtual; + function GetS48Value: Float; virtual; + procedure SetS48Value(const aValue: Float); virtual; + function GetTSValue: Float; virtual; + procedure SetTSValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetKTValue: Float; virtual; + procedure SetKTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property E38: Float read GetE38Value write SetE38Value; + property E40: Float read GetE40Value write SetE40Value; + property E42: Float read GetE42Value write SetE42Value; + property E44: Float read GetE44Value write SetE44Value; + property E46: Float read GetE46Value write SetE46Value; + property E48: Float read GetE48Value write SetE48Value; + property TE: Float read GetTEValue write SetTEValue; + property S38: Float read GetS38Value write SetS38Value; + property S40: Float read GetS40Value write SetS40Value; + property S42: Float read GetS42Value write SetS42Value; + property S44: Float read GetS44Value write SetS44Value; + property S46: Float read GetS46Value write SetS46Value; + property S48: Float read GetS48Value write SetS48Value; + property TS: Float read GetTSValue write SetTSValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property KT: Float read GetKTValue write SetKTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockVARELA } + IStockVARELA = interface(IDAStronglyTypedDataTable) + ['{29240A98-CF0E-4E1C-AE1B-17DE8E33837F}'] + { Property getters and setters } + function GetFILIALValue: String; + procedure SetFILIALValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetTIPO_PRODUTOValue: String; + procedure SetTIPO_PRODUTOValue(const aValue: String); + function GetGRUPO_PRODUTOValue: String; + procedure SetGRUPO_PRODUTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetK38Value: Integer; + procedure SetK38Value(const aValue: Integer); + function GetK40Value: Integer; + procedure SetK40Value(const aValue: Integer); + function GetK42Value: Integer; + procedure SetK42Value(const aValue: Integer); + function GetK44Value: Integer; + procedure SetK44Value(const aValue: Integer); + function GetK46Value: Integer; + procedure SetK46Value(const aValue: Integer); + function GetK48Value: Integer; + procedure SetK48Value(const aValue: Integer); + function GetKTValue: Integer; + procedure SetKTValue(const aValue: Integer); + + + { Properties } + property FILIAL: String read GetFILIALValue write SetFILIALValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property K38: Integer read GetK38Value write SetK38Value; + property K40: Integer read GetK40Value write SetK40Value; + property K42: Integer read GetK42Value write SetK42Value; + property K44: Integer read GetK44Value write SetK44Value; + property K46: Integer read GetK46Value write SetK46Value; + property K48: Integer read GetK48Value write SetK48Value; + property KT: Integer read GetKTValue write SetKTValue; + end; + + { TStockVARELADataTableRules } + TStockVARELADataTableRules = class(TDADataTableRules, IStockVARELA) + private + protected + { Property getters and setters } + function GetFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUTOValue: String; virtual; + procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUTOValue: String; virtual; + procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetK38Value: Integer; virtual; + procedure SetK38Value(const aValue: Integer); virtual; + function GetK40Value: Integer; virtual; + procedure SetK40Value(const aValue: Integer); virtual; + function GetK42Value: Integer; virtual; + procedure SetK42Value(const aValue: Integer); virtual; + function GetK44Value: Integer; virtual; + procedure SetK44Value(const aValue: Integer); virtual; + function GetK46Value: Integer; virtual; + procedure SetK46Value(const aValue: Integer); virtual; + function GetK48Value: Integer; virtual; + procedure SetK48Value(const aValue: Integer); virtual; + function GetKTValue: Integer; virtual; + procedure SetKTValue(const aValue: Integer); virtual; + + { Properties } + property FILIAL: String read GetFILIALValue write SetFILIALValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property K38: Integer read GetK38Value write SetK38Value; + property K40: Integer read GetK40Value write SetK40Value; + property K42: Integer read GetK42Value write SetK42Value; + property K44: Integer read GetK44Value write SetK44Value; + property K46: Integer read GetK46Value write SetK46Value; + property K48: Integer read GetK48Value write SetK48Value; + property KT: Integer read GetKTValue write SetKTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IStockEDIInventario } + IStockEDIInventario = interface(IDAStronglyTypedDataTable) + ['{ECFA34AB-357B-4817-BB85-10D0BF34884F}'] + { Property getters and setters } + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTIPO_PRODUCTOValue: String; + procedure SetTIPO_PRODUCTOValue(const aValue: String); + function GetGRUPO_PRODUCTOValue: String; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetI38Value: Float; + procedure SetI38Value(const aValue: Float); + function GetI40Value: Float; + procedure SetI40Value(const aValue: Float); + function GetI42Value: Float; + procedure SetI42Value(const aValue: Float); + function GetI44Value: Float; + procedure SetI44Value(const aValue: Float); + function GetI46Value: Float; + procedure SetI46Value(const aValue: Float); + function GetI48Value: Float; + procedure SetI48Value(const aValue: Float); + function GetTIValue: Float; + procedure SetTIValue(const aValue: Float); + function GetK38Value: Float; + procedure SetK38Value(const aValue: Float); + function GetK40Value: Float; + procedure SetK40Value(const aValue: Float); + function GetK42Value: Float; + procedure SetK42Value(const aValue: Float); + function GetK44Value: Float; + procedure SetK44Value(const aValue: Float); + function GetK46Value: Float; + procedure SetK46Value(const aValue: Float); + function GetK48Value: Float; + procedure SetK48Value(const aValue: Float); + function GetTKValue: Float; + procedure SetTKValue(const aValue: Float); + function GetD38Value: Float; + procedure SetD38Value(const aValue: Float); + function GetD40Value: Float; + procedure SetD40Value(const aValue: Float); + function GetD42Value: Float; + procedure SetD42Value(const aValue: Float); + function GetD44Value: Float; + procedure SetD44Value(const aValue: Float); + function GetD46Value: Float; + procedure SetD46Value(const aValue: Float); + function GetD48Value: Float; + procedure SetD48Value(const aValue: Float); + function GetDTValue: Float; + procedure SetDTValue(const aValue: Float); + + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property I38: Float read GetI38Value write SetI38Value; + property I40: Float read GetI40Value write SetI40Value; + property I42: Float read GetI42Value write SetI42Value; + property I44: Float read GetI44Value write SetI44Value; + property I46: Float read GetI46Value write SetI46Value; + property I48: Float read GetI48Value write SetI48Value; + property TI: Float read GetTIValue write SetTIValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property TK: Float read GetTKValue write SetTKValue; + property D38: Float read GetD38Value write SetD38Value; + property D40: Float read GetD40Value write SetD40Value; + property D42: Float read GetD42Value write SetD42Value; + property D44: Float read GetD44Value write SetD44Value; + property D46: Float read GetD46Value write SetD46Value; + property D48: Float read GetD48Value write SetD48Value; + property DT: Float read GetDTValue write SetDTValue; + end; + + { TStockEDIInventarioDataTableRules } + TStockEDIInventarioDataTableRules = class(TDADataTableRules, IStockEDIInventario) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetI38Value: Float; virtual; + procedure SetI38Value(const aValue: Float); virtual; + function GetI40Value: Float; virtual; + procedure SetI40Value(const aValue: Float); virtual; + function GetI42Value: Float; virtual; + procedure SetI42Value(const aValue: Float); virtual; + function GetI44Value: Float; virtual; + procedure SetI44Value(const aValue: Float); virtual; + function GetI46Value: Float; virtual; + procedure SetI46Value(const aValue: Float); virtual; + function GetI48Value: Float; virtual; + procedure SetI48Value(const aValue: Float); virtual; + function GetTIValue: Float; virtual; + procedure SetTIValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetTKValue: Float; virtual; + procedure SetTKValue(const aValue: Float); virtual; + function GetD38Value: Float; virtual; + procedure SetD38Value(const aValue: Float); virtual; + function GetD40Value: Float; virtual; + procedure SetD40Value(const aValue: Float); virtual; + function GetD42Value: Float; virtual; + procedure SetD42Value(const aValue: Float); virtual; + function GetD44Value: Float; virtual; + procedure SetD44Value(const aValue: Float); virtual; + function GetD46Value: Float; virtual; + procedure SetD46Value(const aValue: Float); virtual; + function GetD48Value: Float; virtual; + procedure SetD48Value(const aValue: Float); virtual; + function GetDTValue: Float; virtual; + procedure SetDTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property I38: Float read GetI38Value write SetI38Value; + property I40: Float read GetI40Value write SetI40Value; + property I42: Float read GetI42Value write SetI42Value; + property I44: Float read GetI44Value write SetI44Value; + property I46: Float read GetI46Value write SetI46Value; + property I48: Float read GetI48Value write SetI48Value; + property TI: Float read GetTIValue write SetTIValue; + property K38: Float read GetK38Value write SetK38Value; + property K40: Float read GetK40Value write SetK40Value; + property K42: Float read GetK42Value write SetK42Value; + property K44: Float read GetK44Value write SetK44Value; + property K46: Float read GetK46Value write SetK46Value; + property K48: Float read GetK48Value write SetK48Value; + property TK: Float read GetTKValue write SetTKValue; + property D38: Float read GetD38Value write SetD38Value; + property D40: Float read GetD40Value write SetD40Value; + property D42: Float read GetD42Value write SetD42Value; + property D44: Float read GetD44Value write SetD44Value; + property D46: Float read GetD46Value write SetD46Value; + property D48: Float read GetD48Value write SetD48Value; + property DT: Float read GetDTValue write SetDTValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TStockPrendasCentrosDataTableRules } +constructor TStockPrendasCentrosDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockPrendasCentrosDataTableRules.Destroy; +begin + inherited; +end; + +function TStockPrendasCentrosDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString; +end; + +procedure TStockPrendasCentrosDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT38Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT40Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT42Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT44Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT46Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetT48Value: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetT48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat := aValue; +end; + +function TStockPrendasCentrosDataTableRules.GetTOTALValue: Float; +begin + result := DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat; +end; + +procedure TStockPrendasCentrosDataTableRules.SetTOTALValue(const aValue: Float); +begin + DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat := aValue; +end; + + +{ TStockEDIDataTableRules } +constructor TStockEDIDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockEDIDataTableRules.Destroy; +begin + inherited; +end; + +function TStockEDIDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_StockEDICENTRO].AsString; +end; + +procedure TStockEDIDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICENTRO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockEDICODIGO].AsString; +end; + +procedure TStockEDIDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICODIGO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIPRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIPRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString; +end; + +procedure TStockEDIDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockEDICOLECCION].AsString; +end; + +procedure TStockEDIDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICOLECCION].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockEDICOLOR].AsString; +end; + +procedure TStockEDIDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDICOLOR].AsString := aValue; +end; + +function TStockEDIDataTableRules.GetE38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetE48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIE48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetE48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIE48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetTEValue: Float; +begin + result := DataTable.Fields[idx_StockEDITE].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetTEValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDITE].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetS48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIS48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetS48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIS48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetTSValue: Float; +begin + result := DataTable.Fields[idx_StockEDITS].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetTSValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDITS].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK38].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK38].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK40].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK40].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK42].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK42].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK44].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK44].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK46].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK46].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetK48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIK48].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetK48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIK48].AsFloat := aValue; +end; + +function TStockEDIDataTableRules.GetKTValue: Float; +begin + result := DataTable.Fields[idx_StockEDIKT].AsFloat; +end; + +procedure TStockEDIDataTableRules.SetKTValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIKT].AsFloat := aValue; +end; + + +{ TStockVARELADataTableRules } +constructor TStockVARELADataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockVARELADataTableRules.Destroy; +begin + inherited; +end; + +function TStockVARELADataTableRules.GetFILIALValue: String; +begin + result := DataTable.Fields[idx_StockVARELAFILIAL].AsString; +end; + +procedure TStockVARELADataTableRules.SetFILIALValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAFILIAL].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockVARELACODIGO].AsString; +end; + +procedure TStockVARELADataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACODIGO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockVARELACOLOR].AsString; +end; + +procedure TStockVARELADataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACOLOR].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELAPRODUCTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAPRODUCTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetTIPO_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetTIPO_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetGRUPO_PRODUTOValue: String; +begin + result := DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString; +end; + +procedure TStockVARELADataTableRules.SetGRUPO_PRODUTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockVARELACOLECCION].AsString; +end; + +procedure TStockVARELADataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockVARELACOLECCION].AsString := aValue; +end; + +function TStockVARELADataTableRules.GetK38Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK38].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK38Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK38].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK40Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK40].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK40Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK40].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK42Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK42].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK42Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK42].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK44Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK44].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK44Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK44].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK46Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK46].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK46Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK46].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetK48Value: Integer; +begin + result := DataTable.Fields[idx_StockVARELAK48].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetK48Value(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAK48].AsInteger := aValue; +end; + +function TStockVARELADataTableRules.GetKTValue: Integer; +begin + result := DataTable.Fields[idx_StockVARELAKT].AsInteger; +end; + +procedure TStockVARELADataTableRules.SetKTValue(const aValue: Integer); +begin + DataTable.Fields[idx_StockVARELAKT].AsInteger := aValue; +end; + + +{ TStockEDIInventarioDataTableRules } +constructor TStockEDIInventarioDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TStockEDIInventarioDataTableRules.Destroy; +begin + inherited; +end; + +function TStockEDIInventarioDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTIPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetGRUPO_PRODUCTOValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString; +end; + +procedure TStockEDIInventarioDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetI48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioI48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetI48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioI48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTIValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioTI].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetTIValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioTI].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetK48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioK48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetK48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioK48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetTKValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioTK].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetTKValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioTK].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD38Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD38].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD38Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD38].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD40Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD40].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD40Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD40].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD42Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD42].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD42Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD42].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD44Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD44].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD44Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD44].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD46Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD46].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD46Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD46].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetD48Value: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioD48].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetD48Value(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioD48].AsFloat := aValue; +end; + +function TStockEDIInventarioDataTableRules.GetDTValue: Float; +begin + result := DataTable.Fields[idx_StockEDIInventarioDT].AsFloat; +end; + +procedure TStockEDIInventarioDataTableRules.SetDTValue(const aValue: Float); +begin + DataTable.Fields[idx_StockEDIInventarioDT].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_StockPrendasCentros, TStockPrendasCentrosDataTableRules); + RegisterDataTableRules(RID_StockEDI, TStockEDIDataTableRules); + RegisterDataTableRules(RID_StockVARELA, TStockVARELADataTableRules); + RegisterDataTableRules(RID_StockEDIInventario, TStockEDIInventarioDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas new file mode 100644 index 0000000..a732519 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas @@ -0,0 +1,1991 @@ +unit schStockServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schStockClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_StockPrendasCentrosDelta = '{161451C4-A2CF-4468-A880-DBA417307512}'; + RID_StockEDIDelta = '{F20A87B8-0277-4819-B7A6-667A9904EFA9}'; + RID_StockVARELADelta = '{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'; + RID_StockEDIInventarioDelta = '{11EC9F46-F7DD-486E-ACD2-5873746C963D}'; + +type + { IStockPrendasCentrosDelta } + IStockPrendasCentrosDelta = interface(IStockPrendasCentros) + ['{161451C4-A2CF-4468-A880-DBA417307512}'] + { Property getters and setters } + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldT38Value : Float; + function GetOldT40Value : Float; + function GetOldT42Value : Float; + function GetOldT44Value : Float; + function GetOldT46Value : Float; + function GetOldT48Value : Float; + function GetOldTOTALValue : Float; + + { Properties } + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldT38 : Float read GetOldT38Value; + property OldT40 : Float read GetOldT40Value; + property OldT42 : Float read GetOldT42Value; + property OldT44 : Float read GetOldT44Value; + property OldT46 : Float read GetOldT46Value; + property OldT48 : Float read GetOldT48Value; + property OldTOTAL : Float read GetOldTOTALValue; + end; + + { TStockPrendasCentrosBusinessProcessorRules } + TStockPrendasCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IStockPrendasCentros, IStockPrendasCentrosDelta) + private + protected + { Property getters and setters } + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetT38Value: Float; virtual; + function GetOldT38Value: Float; virtual; + procedure SetT38Value(const aValue: Float); virtual; + function GetT40Value: Float; virtual; + function GetOldT40Value: Float; virtual; + procedure SetT40Value(const aValue: Float); virtual; + function GetT42Value: Float; virtual; + function GetOldT42Value: Float; virtual; + procedure SetT42Value(const aValue: Float); virtual; + function GetT44Value: Float; virtual; + function GetOldT44Value: Float; virtual; + procedure SetT44Value(const aValue: Float); virtual; + function GetT46Value: Float; virtual; + function GetOldT46Value: Float; virtual; + procedure SetT46Value(const aValue: Float); virtual; + function GetT48Value: Float; virtual; + function GetOldT48Value: Float; virtual; + procedure SetT48Value(const aValue: Float); virtual; + function GetTOTALValue: Float; virtual; + function GetOldTOTALValue: Float; virtual; + procedure SetTOTALValue(const aValue: Float); virtual; + + { Properties } + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property T38 : Float read GetT38Value write SetT38Value; + property OldT38 : Float read GetOldT38Value; + property T40 : Float read GetT40Value write SetT40Value; + property OldT40 : Float read GetOldT40Value; + property T42 : Float read GetT42Value write SetT42Value; + property OldT42 : Float read GetOldT42Value; + property T44 : Float read GetT44Value write SetT44Value; + property OldT44 : Float read GetOldT44Value; + property T46 : Float read GetT46Value write SetT46Value; + property OldT46 : Float read GetOldT46Value; + property T48 : Float read GetT48Value write SetT48Value; + property OldT48 : Float read GetOldT48Value; + property TOTAL : Float read GetTOTALValue write SetTOTALValue; + property OldTOTAL : Float read GetOldTOTALValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockEDIDelta } + IStockEDIDelta = interface(IStockEDI) + ['{F20A87B8-0277-4819-B7A6-667A9904EFA9}'] + { Property getters and setters } + function GetOldCENTROValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldE38Value : Float; + function GetOldE40Value : Float; + function GetOldE42Value : Float; + function GetOldE44Value : Float; + function GetOldE46Value : Float; + function GetOldE48Value : Float; + function GetOldTEValue : Float; + function GetOldS38Value : Float; + function GetOldS40Value : Float; + function GetOldS42Value : Float; + function GetOldS44Value : Float; + function GetOldS46Value : Float; + function GetOldS48Value : Float; + function GetOldTSValue : Float; + function GetOldK38Value : Float; + function GetOldK40Value : Float; + function GetOldK42Value : Float; + function GetOldK44Value : Float; + function GetOldK46Value : Float; + function GetOldK48Value : Float; + function GetOldKTValue : Float; + + { Properties } + property OldCENTRO : String read GetOldCENTROValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldE38 : Float read GetOldE38Value; + property OldE40 : Float read GetOldE40Value; + property OldE42 : Float read GetOldE42Value; + property OldE44 : Float read GetOldE44Value; + property OldE46 : Float read GetOldE46Value; + property OldE48 : Float read GetOldE48Value; + property OldTE : Float read GetOldTEValue; + property OldS38 : Float read GetOldS38Value; + property OldS40 : Float read GetOldS40Value; + property OldS42 : Float read GetOldS42Value; + property OldS44 : Float read GetOldS44Value; + property OldS46 : Float read GetOldS46Value; + property OldS48 : Float read GetOldS48Value; + property OldTS : Float read GetOldTSValue; + property OldK38 : Float read GetOldK38Value; + property OldK40 : Float read GetOldK40Value; + property OldK42 : Float read GetOldK42Value; + property OldK44 : Float read GetOldK44Value; + property OldK46 : Float read GetOldK46Value; + property OldK48 : Float read GetOldK48Value; + property OldKT : Float read GetOldKTValue; + end; + + { TStockEDIBusinessProcessorRules } + TStockEDIBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDI, IStockEDIDelta) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetE38Value: Float; virtual; + function GetOldE38Value: Float; virtual; + procedure SetE38Value(const aValue: Float); virtual; + function GetE40Value: Float; virtual; + function GetOldE40Value: Float; virtual; + procedure SetE40Value(const aValue: Float); virtual; + function GetE42Value: Float; virtual; + function GetOldE42Value: Float; virtual; + procedure SetE42Value(const aValue: Float); virtual; + function GetE44Value: Float; virtual; + function GetOldE44Value: Float; virtual; + procedure SetE44Value(const aValue: Float); virtual; + function GetE46Value: Float; virtual; + function GetOldE46Value: Float; virtual; + procedure SetE46Value(const aValue: Float); virtual; + function GetE48Value: Float; virtual; + function GetOldE48Value: Float; virtual; + procedure SetE48Value(const aValue: Float); virtual; + function GetTEValue: Float; virtual; + function GetOldTEValue: Float; virtual; + procedure SetTEValue(const aValue: Float); virtual; + function GetS38Value: Float; virtual; + function GetOldS38Value: Float; virtual; + procedure SetS38Value(const aValue: Float); virtual; + function GetS40Value: Float; virtual; + function GetOldS40Value: Float; virtual; + procedure SetS40Value(const aValue: Float); virtual; + function GetS42Value: Float; virtual; + function GetOldS42Value: Float; virtual; + procedure SetS42Value(const aValue: Float); virtual; + function GetS44Value: Float; virtual; + function GetOldS44Value: Float; virtual; + procedure SetS44Value(const aValue: Float); virtual; + function GetS46Value: Float; virtual; + function GetOldS46Value: Float; virtual; + procedure SetS46Value(const aValue: Float); virtual; + function GetS48Value: Float; virtual; + function GetOldS48Value: Float; virtual; + procedure SetS48Value(const aValue: Float); virtual; + function GetTSValue: Float; virtual; + function GetOldTSValue: Float; virtual; + procedure SetTSValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + function GetOldK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + function GetOldK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + function GetOldK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + function GetOldK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + function GetOldK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + function GetOldK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetKTValue: Float; virtual; + function GetOldKTValue: Float; virtual; + procedure SetKTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property E38 : Float read GetE38Value write SetE38Value; + property OldE38 : Float read GetOldE38Value; + property E40 : Float read GetE40Value write SetE40Value; + property OldE40 : Float read GetOldE40Value; + property E42 : Float read GetE42Value write SetE42Value; + property OldE42 : Float read GetOldE42Value; + property E44 : Float read GetE44Value write SetE44Value; + property OldE44 : Float read GetOldE44Value; + property E46 : Float read GetE46Value write SetE46Value; + property OldE46 : Float read GetOldE46Value; + property E48 : Float read GetE48Value write SetE48Value; + property OldE48 : Float read GetOldE48Value; + property TE : Float read GetTEValue write SetTEValue; + property OldTE : Float read GetOldTEValue; + property S38 : Float read GetS38Value write SetS38Value; + property OldS38 : Float read GetOldS38Value; + property S40 : Float read GetS40Value write SetS40Value; + property OldS40 : Float read GetOldS40Value; + property S42 : Float read GetS42Value write SetS42Value; + property OldS42 : Float read GetOldS42Value; + property S44 : Float read GetS44Value write SetS44Value; + property OldS44 : Float read GetOldS44Value; + property S46 : Float read GetS46Value write SetS46Value; + property OldS46 : Float read GetOldS46Value; + property S48 : Float read GetS48Value write SetS48Value; + property OldS48 : Float read GetOldS48Value; + property TS : Float read GetTSValue write SetTSValue; + property OldTS : Float read GetOldTSValue; + property K38 : Float read GetK38Value write SetK38Value; + property OldK38 : Float read GetOldK38Value; + property K40 : Float read GetK40Value write SetK40Value; + property OldK40 : Float read GetOldK40Value; + property K42 : Float read GetK42Value write SetK42Value; + property OldK42 : Float read GetOldK42Value; + property K44 : Float read GetK44Value write SetK44Value; + property OldK44 : Float read GetOldK44Value; + property K46 : Float read GetK46Value write SetK46Value; + property OldK46 : Float read GetOldK46Value; + property K48 : Float read GetK48Value write SetK48Value; + property OldK48 : Float read GetOldK48Value; + property KT : Float read GetKTValue write SetKTValue; + property OldKT : Float read GetOldKTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockVARELADelta } + IStockVARELADelta = interface(IStockVARELA) + ['{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'] + { Property getters and setters } + function GetOldFILIALValue : String; + function GetOldCODIGOValue : String; + function GetOldCOLORValue : String; + function GetOldPRODUCTOValue : String; + function GetOldTIPO_PRODUTOValue : String; + function GetOldGRUPO_PRODUTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldK38Value : Integer; + function GetOldK40Value : Integer; + function GetOldK42Value : Integer; + function GetOldK44Value : Integer; + function GetOldK46Value : Integer; + function GetOldK48Value : Integer; + function GetOldKTValue : Integer; + + { Properties } + property OldFILIAL : String read GetOldFILIALValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; + property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldK38 : Integer read GetOldK38Value; + property OldK40 : Integer read GetOldK40Value; + property OldK42 : Integer read GetOldK42Value; + property OldK44 : Integer read GetOldK44Value; + property OldK46 : Integer read GetOldK46Value; + property OldK48 : Integer read GetOldK48Value; + property OldKT : Integer read GetOldKTValue; + end; + + { TStockVARELABusinessProcessorRules } + TStockVARELABusinessProcessorRules = class(TDABusinessProcessorRules, IStockVARELA, IStockVARELADelta) + private + protected + { Property getters and setters } + function GetFILIALValue: String; virtual; + function GetOldFILIALValue: String; virtual; + procedure SetFILIALValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetTIPO_PRODUTOValue: String; virtual; + function GetOldTIPO_PRODUTOValue: String; virtual; + procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUTOValue: String; virtual; + function GetOldGRUPO_PRODUTOValue: String; virtual; + procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetK38Value: Integer; virtual; + function GetOldK38Value: Integer; virtual; + procedure SetK38Value(const aValue: Integer); virtual; + function GetK40Value: Integer; virtual; + function GetOldK40Value: Integer; virtual; + procedure SetK40Value(const aValue: Integer); virtual; + function GetK42Value: Integer; virtual; + function GetOldK42Value: Integer; virtual; + procedure SetK42Value(const aValue: Integer); virtual; + function GetK44Value: Integer; virtual; + function GetOldK44Value: Integer; virtual; + procedure SetK44Value(const aValue: Integer); virtual; + function GetK46Value: Integer; virtual; + function GetOldK46Value: Integer; virtual; + procedure SetK46Value(const aValue: Integer); virtual; + function GetK48Value: Integer; virtual; + function GetOldK48Value: Integer; virtual; + procedure SetK48Value(const aValue: Integer); virtual; + function GetKTValue: Integer; virtual; + function GetOldKTValue: Integer; virtual; + procedure SetKTValue(const aValue: Integer); virtual; + + { Properties } + property FILIAL : String read GetFILIALValue write SetFILIALValue; + property OldFILIAL : String read GetOldFILIALValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property TIPO_PRODUTO : String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; + property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; + property GRUPO_PRODUTO : String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; + property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property K38 : Integer read GetK38Value write SetK38Value; + property OldK38 : Integer read GetOldK38Value; + property K40 : Integer read GetK40Value write SetK40Value; + property OldK40 : Integer read GetOldK40Value; + property K42 : Integer read GetK42Value write SetK42Value; + property OldK42 : Integer read GetOldK42Value; + property K44 : Integer read GetK44Value write SetK44Value; + property OldK44 : Integer read GetOldK44Value; + property K46 : Integer read GetK46Value write SetK46Value; + property OldK46 : Integer read GetOldK46Value; + property K48 : Integer read GetK48Value write SetK48Value; + property OldK48 : Integer read GetOldK48Value; + property KT : Integer read GetKTValue write SetKTValue; + property OldKT : Integer read GetOldKTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IStockEDIInventarioDelta } + IStockEDIInventarioDelta = interface(IStockEDIInventario) + ['{11EC9F46-F7DD-486E-ACD2-5873746C963D}'] + { Property getters and setters } + function GetOldCENTROValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldCOLORValue : String; + function GetOldTIPO_PRODUCTOValue : String; + function GetOldGRUPO_PRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldI38Value : Float; + function GetOldI40Value : Float; + function GetOldI42Value : Float; + function GetOldI44Value : Float; + function GetOldI46Value : Float; + function GetOldI48Value : Float; + function GetOldTIValue : Float; + function GetOldK38Value : Float; + function GetOldK40Value : Float; + function GetOldK42Value : Float; + function GetOldK44Value : Float; + function GetOldK46Value : Float; + function GetOldK48Value : Float; + function GetOldTKValue : Float; + function GetOldD38Value : Float; + function GetOldD40Value : Float; + function GetOldD42Value : Float; + function GetOldD44Value : Float; + function GetOldD46Value : Float; + function GetOldD48Value : Float; + function GetOldDTValue : Float; + + { Properties } + property OldCENTRO : String read GetOldCENTROValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldI38 : Float read GetOldI38Value; + property OldI40 : Float read GetOldI40Value; + property OldI42 : Float read GetOldI42Value; + property OldI44 : Float read GetOldI44Value; + property OldI46 : Float read GetOldI46Value; + property OldI48 : Float read GetOldI48Value; + property OldTI : Float read GetOldTIValue; + property OldK38 : Float read GetOldK38Value; + property OldK40 : Float read GetOldK40Value; + property OldK42 : Float read GetOldK42Value; + property OldK44 : Float read GetOldK44Value; + property OldK46 : Float read GetOldK46Value; + property OldK48 : Float read GetOldK48Value; + property OldTK : Float read GetOldTKValue; + property OldD38 : Float read GetOldD38Value; + property OldD40 : Float read GetOldD40Value; + property OldD42 : Float read GetOldD42Value; + property OldD44 : Float read GetOldD44Value; + property OldD46 : Float read GetOldD46Value; + property OldD48 : Float read GetOldD48Value; + property OldDT : Float read GetOldDTValue; + end; + + { TStockEDIInventarioBusinessProcessorRules } + TStockEDIInventarioBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDIInventario, IStockEDIInventarioDelta) + private + protected + { Property getters and setters } + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTIPO_PRODUCTOValue: String; virtual; + function GetOldTIPO_PRODUCTOValue: String; virtual; + procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; + function GetGRUPO_PRODUCTOValue: String; virtual; + function GetOldGRUPO_PRODUCTOValue: String; virtual; + procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetI38Value: Float; virtual; + function GetOldI38Value: Float; virtual; + procedure SetI38Value(const aValue: Float); virtual; + function GetI40Value: Float; virtual; + function GetOldI40Value: Float; virtual; + procedure SetI40Value(const aValue: Float); virtual; + function GetI42Value: Float; virtual; + function GetOldI42Value: Float; virtual; + procedure SetI42Value(const aValue: Float); virtual; + function GetI44Value: Float; virtual; + function GetOldI44Value: Float; virtual; + procedure SetI44Value(const aValue: Float); virtual; + function GetI46Value: Float; virtual; + function GetOldI46Value: Float; virtual; + procedure SetI46Value(const aValue: Float); virtual; + function GetI48Value: Float; virtual; + function GetOldI48Value: Float; virtual; + procedure SetI48Value(const aValue: Float); virtual; + function GetTIValue: Float; virtual; + function GetOldTIValue: Float; virtual; + procedure SetTIValue(const aValue: Float); virtual; + function GetK38Value: Float; virtual; + function GetOldK38Value: Float; virtual; + procedure SetK38Value(const aValue: Float); virtual; + function GetK40Value: Float; virtual; + function GetOldK40Value: Float; virtual; + procedure SetK40Value(const aValue: Float); virtual; + function GetK42Value: Float; virtual; + function GetOldK42Value: Float; virtual; + procedure SetK42Value(const aValue: Float); virtual; + function GetK44Value: Float; virtual; + function GetOldK44Value: Float; virtual; + procedure SetK44Value(const aValue: Float); virtual; + function GetK46Value: Float; virtual; + function GetOldK46Value: Float; virtual; + procedure SetK46Value(const aValue: Float); virtual; + function GetK48Value: Float; virtual; + function GetOldK48Value: Float; virtual; + procedure SetK48Value(const aValue: Float); virtual; + function GetTKValue: Float; virtual; + function GetOldTKValue: Float; virtual; + procedure SetTKValue(const aValue: Float); virtual; + function GetD38Value: Float; virtual; + function GetOldD38Value: Float; virtual; + procedure SetD38Value(const aValue: Float); virtual; + function GetD40Value: Float; virtual; + function GetOldD40Value: Float; virtual; + procedure SetD40Value(const aValue: Float); virtual; + function GetD42Value: Float; virtual; + function GetOldD42Value: Float; virtual; + procedure SetD42Value(const aValue: Float); virtual; + function GetD44Value: Float; virtual; + function GetOldD44Value: Float; virtual; + procedure SetD44Value(const aValue: Float); virtual; + function GetD46Value: Float; virtual; + function GetOldD46Value: Float; virtual; + procedure SetD46Value(const aValue: Float); virtual; + function GetD48Value: Float; virtual; + function GetOldD48Value: Float; virtual; + procedure SetD48Value(const aValue: Float); virtual; + function GetDTValue: Float; virtual; + function GetOldDTValue: Float; virtual; + procedure SetDTValue(const aValue: Float); virtual; + + { Properties } + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; + property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; + property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; + property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property I38 : Float read GetI38Value write SetI38Value; + property OldI38 : Float read GetOldI38Value; + property I40 : Float read GetI40Value write SetI40Value; + property OldI40 : Float read GetOldI40Value; + property I42 : Float read GetI42Value write SetI42Value; + property OldI42 : Float read GetOldI42Value; + property I44 : Float read GetI44Value write SetI44Value; + property OldI44 : Float read GetOldI44Value; + property I46 : Float read GetI46Value write SetI46Value; + property OldI46 : Float read GetOldI46Value; + property I48 : Float read GetI48Value write SetI48Value; + property OldI48 : Float read GetOldI48Value; + property TI : Float read GetTIValue write SetTIValue; + property OldTI : Float read GetOldTIValue; + property K38 : Float read GetK38Value write SetK38Value; + property OldK38 : Float read GetOldK38Value; + property K40 : Float read GetK40Value write SetK40Value; + property OldK40 : Float read GetOldK40Value; + property K42 : Float read GetK42Value write SetK42Value; + property OldK42 : Float read GetOldK42Value; + property K44 : Float read GetK44Value write SetK44Value; + property OldK44 : Float read GetOldK44Value; + property K46 : Float read GetK46Value write SetK46Value; + property OldK46 : Float read GetOldK46Value; + property K48 : Float read GetK48Value write SetK48Value; + property OldK48 : Float read GetOldK48Value; + property TK : Float read GetTKValue write SetTKValue; + property OldTK : Float read GetOldTKValue; + property D38 : Float read GetD38Value write SetD38Value; + property OldD38 : Float read GetOldD38Value; + property D40 : Float read GetD40Value write SetD40Value; + property OldD40 : Float read GetOldD40Value; + property D42 : Float read GetD42Value write SetD42Value; + property OldD42 : Float read GetOldD42Value; + property D44 : Float read GetD44Value write SetD44Value; + property OldD44 : Float read GetOldD44Value; + property D46 : Float read GetD46Value write SetD46Value; + property OldD46 : Float read GetOldD46Value; + property D48 : Float read GetD48Value write SetD48Value; + property OldD48 : Float read GetOldD48Value; + property DT : Float read GetDTValue write SetDTValue; + property OldDT : Float read GetOldDTValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TStockPrendasCentrosBusinessProcessorRules } +constructor TStockPrendasCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockPrendasCentrosBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCODIGO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosPRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLECCION]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLOR]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT38]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT40]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT42]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT44]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT46]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetT48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldT48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT48]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetT48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48] := aValue; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetTOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL]; +end; + +function TStockPrendasCentrosBusinessProcessorRules.GetOldTOTALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTOTAL]; +end; + +procedure TStockPrendasCentrosBusinessProcessorRules.SetTOTALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL] := aValue; +end; + + +{ TStockEDIBusinessProcessorRules } +constructor TStockEDIBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockEDIBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockEDIBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICENTRO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICODIGO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIPRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITIPO_PRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO]; +end; + +function TStockEDIBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIGRUPO_PRODUCTO]; +end; + +procedure TStockEDIBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLECCION]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR]; +end; + +function TStockEDIBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLOR]; +end; + +procedure TStockEDIBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetE48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldE48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetE48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITE]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetS48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldS48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetS48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetTSValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS]; +end; + +function TStockEDIBusinessProcessorRules.GetOldTSValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITS]; +end; + +procedure TStockEDIBusinessProcessorRules.SetTSValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK38]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK40]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK42]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK44]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK46]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48]; +end; + +function TStockEDIBusinessProcessorRules.GetOldK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK48]; +end; + +procedure TStockEDIBusinessProcessorRules.SetK48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48] := aValue; +end; + +function TStockEDIBusinessProcessorRules.GetKTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT]; +end; + +function TStockEDIBusinessProcessorRules.GetOldKTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIKT]; +end; + +procedure TStockEDIBusinessProcessorRules.SetKTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT] := aValue; +end; + + +{ TStockVARELABusinessProcessorRules } +constructor TStockVARELABusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockVARELABusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockVARELABusinessProcessorRules.GetFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL]; +end; + +function TStockVARELABusinessProcessorRules.GetOldFILIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAFILIAL]; +end; + +procedure TStockVARELABusinessProcessorRules.SetFILIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACODIGO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLOR]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAPRODUCTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetTIPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldTIPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELATIPO_PRODUTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetTIPO_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetGRUPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO]; +end; + +function TStockVARELABusinessProcessorRules.GetOldGRUPO_PRODUTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAGRUPO_PRODUTO]; +end; + +procedure TStockVARELABusinessProcessorRules.SetGRUPO_PRODUTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION]; +end; + +function TStockVARELABusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLECCION]; +end; + +procedure TStockVARELABusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK38Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK38Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK38]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK38Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK40Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK40Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK40]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK40Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK42Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK42Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK42]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK42Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK44Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK44Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK44]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK44Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK46Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK46Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK46]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK46Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetK48Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48]; +end; + +function TStockVARELABusinessProcessorRules.GetOldK48Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK48]; +end; + +procedure TStockVARELABusinessProcessorRules.SetK48Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48] := aValue; +end; + +function TStockVARELABusinessProcessorRules.GetKTValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT]; +end; + +function TStockVARELABusinessProcessorRules.GetOldKTValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAKT]; +end; + +procedure TStockVARELABusinessProcessorRules.SetKTValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT] := aValue; +end; + + +{ TStockEDIInventarioBusinessProcessorRules } +constructor TStockEDIInventarioBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TStockEDIInventarioBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCENTRO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCODIGO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioPRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLOR]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLECCION]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetI48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldI48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetI48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTIValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTIValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTI]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTIValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldK48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetK48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetTKValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldTKValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTK]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetTKValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD38Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD38Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD38]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD38Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD40Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD40Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD40]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD40Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD42Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD42Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD42]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD42Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD44Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD44Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD44]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD44Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD46Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD46Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD46]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD46Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetD48Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldD48Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD48]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetD48Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48] := aValue; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetDTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT]; +end; + +function TStockEDIInventarioBusinessProcessorRules.GetOldDTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioDT]; +end; + +procedure TStockEDIInventarioBusinessProcessorRules.SetDTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_StockPrendasCentrosDelta, TStockPrendasCentrosBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockEDIDelta, TStockEDIBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockVARELADelta, TStockVARELABusinessProcessorRules); + RegisterBusinessProcessorRules(RID_StockEDIInventarioDelta, TStockEDIInventarioBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas new file mode 100644 index 0000000..9f0ff64 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas @@ -0,0 +1,58 @@ +unit uBizStock; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schStockClient_Intf; + +const + BIZ_STOCK_EDI = 'Client.StockEDI'; + BIZ_STOCK_EDIINVENTARIO = 'Client.StockEDIInventario'; + BIZ_STOCK_VARELA = 'Client.StockVARELA'; + BIZ_STOCK_PRENDAS_CENTROS = 'Client.StockPrendasCentros'; + +type + IBizStockEDI = interface(IStockEDI) + ['{01767388-AF6D-4EF0-A2A4-092D698ECD19}'] + end; + + IBizStockEDIInventario = interface(IStockEDIInventario) + ['{156E243C-7B4D-4223-8FAF-A965E8C5A94D}'] + end; + + IBizStockVARELA = interface(IStockVARELA) + ['{2DC85C8D-E7CA-4B13-A7CE-46E412D05D76}'] + end; + + IBizStockPrendasCentros = interface(IStockPrendasCentros) + ['{F17984D3-1262-4D0B-94F3-E86DA3B1357E}'] + end; + + TBizStockEDIDataTableRules = class(TStockEDIDataTableRules, IBizStockEDI) + end; + + TBizStockEDIInventarioDataTableRules = class(TStockEDIInventarioDataTableRules, IBizStockEDIInventario) + end; + + TBizStockVARELADataTableRules = class(TStockVARELADataTableRules, IBizStockVARELA) + end; + + TBizStockPrendasCentrosDataTableRules = class(TStockPrendasCentrosDataTableRules, IBizStockPrendasCentros) + end; + + +implementation + +{uses + Dialogs, uEditorUtils, uDataModuleVentasTerminadas;} + +initialization + RegisterDataTableRules(BIZ_STOCK_EDI, TBizStockEDIDataTableRules); + RegisterDataTableRules(BIZ_STOCK_EDIINVENTARIO, TBizStockEDIInventarioDataTableRules); + RegisterDataTableRules(BIZ_STOCK_VARELA, TBizStockVarelaDataTableRules); + RegisterDataTableRules(BIZ_STOCK_PRENDAS_CENTROS, TBizStockPrendasCentrosDataTableRules); +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm new file mode 100644 index 0000000..4fce771 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm @@ -0,0 +1,1389 @@ +object srvStock: TsrvStock + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schStock + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + OnAfterAcquireConnection = DARemoteServiceAfterAcquireConnection + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object DABINAdapter: TDABINAdapter + Left = 56 + Top = 96 + end + object schStock: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT'#10' CODIGO,'#10' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' ' + + 'GRUPO_PRODUCTO,'#10' COLECCION,'#10' COLOR,'#10' SUM(K38) AS ' + + 'T38,'#10' SUM(K40) AS T40,'#10' SUM(K42) AS T42,'#10' SUM(K44' + + ') AS T44,'#10' SUM(K46) AS T46,'#10' SUM(K48) AS T48,'#10' SU' + + 'M(KT) AS TOTAL'#10'FROM RDX_V_STOCK_CALCULADO'#10'GROUP BY CODIGO,'#10' ' + + ' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' GRUPO_PRODUCTO,'#10' COLE' + + 'CCION,'#10' COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end> + end> + Name = 'StockPrendasCentros' + Fields = < + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Producto' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Tipo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Grupo' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Colecci'#243'n' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '38' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '40' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '42' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '44' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '46' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = '48' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT CENTRO, CODIGO, PRODUCTO, TIPO_PRODUCTO, GRUPO_PRODUCTO, ' + + 'COLECCION, COLOR,'#10' E38, E40, E42, E44, E46, E48, TE,'#10' ' + + 'S38, S40, S42, S44, S46, S48, TS,'#10' K38, K40, K42, K44, K46,' + + ' K48, KT'#10' '#10'FROM RDX_V_STOCK_CALCULADO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'E38' + TableField = 'E38' + end + item + DatasetField = 'E40' + TableField = 'E40' + end + item + DatasetField = 'E42' + TableField = 'E42' + end + item + DatasetField = 'E44' + TableField = 'E44' + end + item + DatasetField = 'E46' + TableField = 'E46' + end + item + DatasetField = 'E48' + TableField = 'E48' + end + item + DatasetField = 'TE' + TableField = 'TE' + end + item + DatasetField = 'S38' + TableField = 'S38' + end + item + DatasetField = 'S40' + TableField = 'S40' + end + item + DatasetField = 'S42' + TableField = 'S42' + end + item + DatasetField = 'S44' + TableField = 'S44' + end + item + DatasetField = 'S46' + TableField = 'S46' + end + item + DatasetField = 'S48' + TableField = 'S48' + end + item + DatasetField = 'TS' + TableField = 'TS' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'KT' + TableField = 'KT' + end> + end> + Name = 'StockEDI' + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'E48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'S48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TS' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT FILIAL, CODIGO, COLOR, PRODUCTO, TIPO_PRODUTO, GRUPO_PROD' + + 'UTO,'#10' COLECCION, K38, K40, K42, K44, K46, K48, KT'#10' '#10'F' + + 'ROM RDX_V_STOCK_VARELA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'TIPO_PRODUTO' + TableField = 'TIPO_PRODUTO' + end + item + DatasetField = 'GRUPO_PRODUTO' + TableField = 'GRUPO_PRODUTO' + end + item + DatasetField = 'KT' + TableField = 'KT' + end> + end> + Name = 'StockVARELA' + Fields = < + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'KT' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taRightJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_INVENTARIO' + SQL = + 'SELECT '#10' CENTRO, CODIGO, PRODUCTO, COLOR, TIPO_PRODUCTO, GRUP' + + 'O_PRODUCTO, '#10' COLECCION, I38, I40, I42, I44, I46, I48, TI, K3' + + '8, K40, '#10' K42, K44, K46, K48, TK, D38, D40, D42, D44, D46, D4' + + '8, '#10' DT'#10' FROM'#10' RDX_V_CONTROL_INVENTARIO' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TIPO_PRODUCTO' + TableField = 'TIPO_PRODUCTO' + end + item + DatasetField = 'GRUPO_PRODUCTO' + TableField = 'GRUPO_PRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'I38' + TableField = 'I38' + end + item + DatasetField = 'I40' + TableField = 'I40' + end + item + DatasetField = 'I42' + TableField = 'I42' + end + item + DatasetField = 'I44' + TableField = 'I44' + end + item + DatasetField = 'I46' + TableField = 'I46' + end + item + DatasetField = 'I48' + TableField = 'I48' + end + item + DatasetField = 'TI' + TableField = 'TI' + end + item + DatasetField = 'K38' + TableField = 'K38' + end + item + DatasetField = 'K40' + TableField = 'K40' + end + item + DatasetField = 'K42' + TableField = 'K42' + end + item + DatasetField = 'K44' + TableField = 'K44' + end + item + DatasetField = 'K46' + TableField = 'K46' + end + item + DatasetField = 'K48' + TableField = 'K48' + end + item + DatasetField = 'TK' + TableField = 'TK' + end + item + DatasetField = 'D38' + TableField = 'D38' + end + item + DatasetField = 'D40' + TableField = 'D40' + end + item + DatasetField = 'D42' + TableField = 'D42' + end + item + DatasetField = 'D44' + TableField = 'D44' + end + item + DatasetField = 'D46' + TableField = 'D46' + end + item + DatasetField = 'D48' + TableField = 'D48' + end + item + DatasetField = 'DT' + TableField = 'DT' + end> + end> + Name = 'StockEDIInventario' + Fields = < + item + Name = 'CENTRO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'GRUPO_PRODUCTO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'I48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'K48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TK' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'D48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = <> + RelationShips = <> + UpdateRules = <> + Left = 56 + Top = 32 + end +end diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas new file mode 100644 index 0000000..fc27fcc --- /dev/null +++ b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas @@ -0,0 +1,59 @@ +unit srvStock_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDAInterfaces, uDADataStreamer; + +type + { TsrvStock } + TsrvStock = class(TDARemoteService, IsrvStock) + DABINAdapter: TDABINAdapter; + schStock: TDASchema; + procedure DARemoteServiceAfterAcquireConnection( + Sender: TDARemoteService; const ConnectionName: String; + const AcquiredConnection: IDAConnection); + private + protected + { IsrvStock methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, ADODB; + +procedure Create_srvStock(out anInstance : IUnknown); +begin + anInstance := TsrvStock.Create(NIL); +end; + +{ srvStock } +procedure TsrvStock.DARemoteServiceAfterAcquireConnection( + Sender: TDARemoteService; const ConnectionName: String; + const AcquiredConnection: IDAConnection); +begin +{ with (Connection as IDAConnectionObjectAccess) do + if ConnectionObject is TADOConnection then + TADOConnection(ConnectionObject).CommandTimeout:= 0;} +end; + +initialization + TROClassFactory.Create('srvStock', Create_srvStock, TsrvStock_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj new file mode 100644 index 0000000..89713a6 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Traspasos.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk new file mode 100644 index 0000000..f3b8eae --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk @@ -0,0 +1,82 @@ +package Traspasos; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + JvCustomD10R, + bdertl, + VclSmp, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + dxLayoutControlD10; + +contains + uDataModuleTraspasos in 'uDataModuleTraspasos.pas' {dmTraspasos: TDAClientDataModule}, + uBizTraspasos in '..\Reglas\uBizTraspasos.pas', + uPluginControllerTraspasos in 'uPluginControllerTraspasos.pas' {ModuleTraspasos: TModuleController}, + uViewListaTraspasos in 'uViewListaTraspasos.pas' {frViewListaTraspasos: TCustomView}, + uEditorListaTraspasos in 'uEditorListaTraspasos.pas' {fEditorListaTraspasos: TCustomEditor}, + uEditorAjustarTraspasos in 'uEditorAjustarTraspasos.pas' {fEditorAjustarTraspasos}; + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm new file mode 100644 index 0000000..a407ef1 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm @@ -0,0 +1,1406 @@ +object dmTraspasos: TdmTraspasos + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 297 + Width = 620 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvTraspasos' + Left = 40 + Top = 32 + end + object tbl_Traspasos: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Traspasos' + IndexDefs = <> + Left = 136 + Top = 32 + end + object ds_Traspasos: TDADataSource + DataSet = tbl_Traspasos.Dataset + DataTable = tbl_Traspasos + Left = 136 + Top = 88 + end + object tbl_TraspasosAprobados: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TraspasosAprobados' + IndexDefs = <> + Left = 272 + Top = 32 + end + object ds_TraspasosAprobados: TDADataSource + DataSet = tbl_TraspasosAprobados.Dataset + DataTable = tbl_TraspasosAprobados + Left = 272 + Top = 88 + end + object tbl_TraspasosPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Tipo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TIPO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHA' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Centro2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CENTRO2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Filial2' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FILIAL2' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Aprobado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_APROBADO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Estado' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Observaciones' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_OBSERVACIONES' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Contabilizar' + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CONTABILIZAR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Fecha cambio' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_FECHACAMBIO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_CODIGO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + DisplayLabel = 'Producto' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_PRODUCTO' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Color' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_COLOR' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'T48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_T48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + ReadOnly = True + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TOTAL' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR38' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR38' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR40' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR40' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR42' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR42' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR44' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR44' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR46' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR46' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TR48' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + DictionaryEntry = 'Traspasos_TR48' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Total' + Alignment = taLeftJustify + ServerAutoRefresh = True + DictionaryEntry = 'Traspasos_TOTAL_RECT' + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'TraspasosPendientes' + IndexDefs = <> + Left = 408 + Top = 32 + end + object ds_TraspasosPendientes: TDADataSource + DataSet = tbl_TraspasosPendientes.Dataset + DataTable = tbl_TraspasosPendientes + Left = 408 + Top = 88 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas new file mode 100644 index 0000000..b24c908 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas @@ -0,0 +1,87 @@ +unit uDataModuleTraspasos; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, + uROServiceComponent, uRORemoteService, uBizTraspasos, uDARemoteDataAdapter, + uDAInterfaces; + +type + TdmTraspasos = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_Traspasos: TDACDSDataTable; + ds_Traspasos: TDADataSource; + tbl_TraspasosAprobados: TDACDSDataTable; + ds_TraspasosAprobados: TDADataSource; + tbl_TraspasosPendientes: TDACDSDataTable; + ds_TraspasosPendientes: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems : IBizTraspasos; overload; + function GetItems(const AEstado : TInvTraspasoEstado) : IBizTraspasos; overload; + end; + +var + dmTraspasos: TdmTraspasos; + +implementation + +{$R *.DFM} + +uses + Forms, Windows, Controls, VARELA_Intf, uEditorPreview, + uDataTableUtils, uROTypes, cxControls; + +procedure TdmTraspasos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmTraspasos.GetItems: IBizTraspasos; +var + dtLista: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_Traspasos, dtLista); + dtLista.BusinessRulesID := BIZ_TRASPASOS; + Result := (dtLista as IBizTraspasos); + finally + HideHourglassCursor; + end; +end; + +function TdmTraspasos.GetItems( + const AEstado: TInvTraspasoEstado): IBizTraspasos; +var + dtLista: TDACDSDataTable; + AStr : String; +begin + ShowHourglassCursor; + try + dtLista := TDACDSDataTable.Create(NIL); + + case AEstado of + titPendiente : CloneDataTable(tbl_TraspasosPendientes, dtLista); + titAprobado : CloneDataTable(tbl_TraspasosAprobados, dtLista); + end; + + dtLista.BusinessRulesID := BIZ_TRASPASOS; + Result := (dtLista as IBizTraspasos); + finally + HideHourglassCursor; + end; +end; + +initialization + dmTraspasos := TdmTraspasos.Create(nil); + +finalization + FreeAndNil(dmTraspasos); + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm new file mode 100644 index 0000000..6b1235d --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm @@ -0,0 +1,725 @@ +object fEditorAjustarTraspasos: TfEditorAjustarTraspasos + Left = 344 + Top = 312 + BorderStyle = bsDialog + Caption = 'Modificaci'#243'n de recepciones de productos' + ClientHeight = 536 + ClientWidth = 752 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 752 + Height = 73 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'MS Sans Serif' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'MS Sans Serif' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Modificaci'#243'n de recepciones de productos') + Comments.Strings = ( + '') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = True + Gradient.Orientation = fgdVertical + BufferedDraw = False + end + object Bevel1: TBevel + Left = 11 + Top = 483 + Width = 730 + Height = 4 + Shape = bsBottomLine + end + object bAceptar: TButton + Left = 572 + Top = 496 + Width = 75 + Height = 25 + Caption = '&Aceptar' + ModalResult = 1 + TabOrder = 0 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 666 + Top = 496 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 73 + Width = 753 + Height = 403 + ParentBackground = True + TabOrder = 2 + AutoContentSizes = [acsWidth, acsHeight] + object Bevel2: TBevel + Left = 22 + Top = 130 + Width = 50 + Height = 10 + Shape = bsBottomLine + end + object Label2: TLabel + Left = 22 + Top = 335 + Width = 84 + Height = 13 + Caption = 'Cantidad por EDI:' + end + object Label3: TLabel + Left = 61 + Top = 364 + Width = 45 + Height = 13 + Caption = 'Cantidad:' + end + object Bevel3: TBevel + Left = 22 + Top = 74 + Width = 734 + Height = 10 + Shape = bsBottomLine + end + object lblCentroOrigen: TLabel + Left = 133 + Top = 90 + Width = 31 + Height = 13 + Caption = 'Centro' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object lblCentroDestino: TLabel + Left = 133 + Top = 110 + Width = 31 + Height = 13 + Caption = 'Centro' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object edtRec38: TcxDBMaskEdit + Left = 112 + Top = 333 + DataBinding.DataField = 'T38' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 98 + end + object edtRec40: TcxDBMaskEdit + Left = 216 + Top = 333 + DataBinding.DataField = 'T40' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 8 + Width = 98 + end + object edtRec42: TcxDBMaskEdit + Left = 320 + Top = 333 + DataBinding.DataField = 'T42' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 10 + Width = 98 + end + object edtRec44: TcxDBMaskEdit + Left = 424 + Top = 333 + DataBinding.DataField = 'T44' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Width = 98 + end + object edtRec46: TcxDBMaskEdit + Left = 528 + Top = 333 + DataBinding.DataField = 'T46' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 14 + Width = 98 + end + object edtRec48: TcxDBMaskEdit + Left = 632 + Top = 333 + DataBinding.DataField = 'T48' + DataBinding.DataSource = dsDataSource + Enabled = False + Properties.Alignment.Horz = taRightJustify + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 16 + Width = 98 + end + object edtRecR48: TcxCurrencyEdit + Left = 632 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 17 + Width = 98 + end + object edtRecR46: TcxCurrencyEdit + Left = 528 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 15 + Width = 98 + end + object edtRecR44: TcxCurrencyEdit + Left = 424 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 13 + Width = 98 + end + object edtRecR42: TcxCurrencyEdit + Left = 320 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 98 + end + object edtRecR40: TcxCurrencyEdit + Left = 216 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 9 + Width = 98 + end + object edtRecR38: TcxCurrencyEdit + Left = 112 + Top = 360 + Properties.Alignment.Horz = taRightJustify + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = ',0;-,0' + Properties.UseThousandSeparator = True + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clActiveCaption + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 7 + Width = 98 + end + object edtFecha: TcxDBLabel + Left = 133 + Top = 28 + DataBinding.DataField = 'FECHA' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 420 + end + object edtProducto: TcxDBLabel + Left = 133 + Top = 51 + DataBinding.DataField = 'PRODUCTO' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 460 + end + object edtColor: TcxDBLabel + Left = 655 + Top = 51 + DataBinding.DataField = 'COLOR' + DataBinding.DataSource = dsDataSource + ParentColor = False + ParentFont = False + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clActiveCaption + Style.Font.Height = -11 + Style.Font.Name = 'MS Sans Serif' + Style.Font.Style = [] + Style.IsFontAssigned = True + Height = 17 + Width = 76 + end + object cbEstado: TcxComboBox + Left = 133 + Top = 146 + Properties.Items.Strings = ( + 'Ninguna' + 'Env'#237'o perdido' + 'Env'#237'o retrasado' + 'Env'#237'o devuelto' + 'Otros') + 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 + Text = 'cbEstado' + Width = 156 + end + object memObservaciones: TcxMemo + Left = 22 + Top = 191 + Lines.Strings = ( + 'memEstadoAlbaran') + 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 = 5 + Height = 88 + Width = 333 + end + object cbContabilizar: TcxCheckBox + Left = 348 + Top = 146 + Caption = 'Contabilizar este traspaso' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 'S' + Properties.ValueUnchecked = 'N' + State = cbsGrayed + 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 = 4 + Width = 319 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos generales del traspaso' + object dxLayoutControl1Item31: TdxLayoutItem + Caption = 'Fecha del movimiento:' + Control = edtFecha + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group3: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group17: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item32: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Producto:' + Control = edtProducto + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item33: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Color:' + Control = edtColor + ControlOptions.MinWidth = 50 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + Control = Bevel3 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'Centro de origen:' + Control = lblCentroOrigen + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Centro de destino:' + Control = lblCentroDestino + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + Control = Bevel2 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group6: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Estado del env'#237'o:' + Control = cbEstado + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'cxCheckBox1' + ShowCaption = False + Control = cbContabilizar + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Observaciones:' + CaptionOptions.AlignVert = tavTop + CaptionOptions.Layout = clTop + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object dxLayoutControl1Group5: TdxLayoutGroup + Caption = 'Cantidades' + LayoutDirection = ldHorizontal + object dxLayoutControl1Group16: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Tallas:' + CaptionOptions.AlignHorz = taRightJustify + CaptionOptions.Layout = clTop + Offsets.Top = 2 + Control = Label2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item30: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + CaptionOptions.Layout = clTop + Offsets.Top = 10 + ShowCaption = False + Control = Label3 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '38' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec38 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item29: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR38 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group11: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '40' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec40 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item28: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR40 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group12: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '42' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec42 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item27: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR42 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item20: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '44' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec44 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item26: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR44 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item21: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '46' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec46 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item25: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR46 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Item22: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = '48' + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRec48 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item24: TdxLayoutItem + CaptionOptions.AlignHorz = taCenter + CaptionOptions.Layout = clTop + Control = edtRecR48 + ControlOptions.ShowBorder = False + end + end + end + end + end + object dsDataSource: TDADataSource + DataTable = dmTraspasos.tbl_Traspasos + Left = 200 + Top = 496 + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas new file mode 100644 index 0000000..6093469 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas @@ -0,0 +1,288 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorAjustarTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, JvExControls, JvComponent, + JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizTraspasos, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, + cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, + cxCheckBox, cxCalendar, cxLabel, cxDBLabel; + +type + IEditorAjustarTraspasos = interface + ['{40E4185E-595B-48DF-AFA8-E86509F7354F}'] + function GetItems : IBizTraspasos; + procedure SetItems (const AValue : IBizTraspasos); + property Items : IBizTraspasos read GetItems write SetItems; + end; + + TfEditorAjustarTraspasos = class(TForm, IEditorAjustarTraspasos) + bAceptar: TButton; + bCancelar: TButton; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + dsDataSource: TDADataSource; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Group1: TdxLayoutGroup; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group5: TdxLayoutGroup; + dxLayoutControl1Item9: TdxLayoutItem; + Bevel2: TBevel; + dxLayoutControl1Item2: TdxLayoutItem; + edtRec38: TcxDBMaskEdit; + dxLayoutControl1Item3: TdxLayoutItem; + edtRec40: TcxDBMaskEdit; + dxLayoutControl1Item4: TdxLayoutItem; + edtRec42: TcxDBMaskEdit; + dxLayoutControl1Item20: TdxLayoutItem; + edtRec44: TcxDBMaskEdit; + dxLayoutControl1Item21: TdxLayoutItem; + edtRec46: TcxDBMaskEdit; + dxLayoutControl1Item22: TdxLayoutItem; + edtRec48: TcxDBMaskEdit; + dxLayoutControl1Item23: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item24: TdxLayoutItem; + edtRecR48: TcxCurrencyEdit; + dxLayoutControl1Item25: TdxLayoutItem; + edtRecR46: TcxCurrencyEdit; + dxLayoutControl1Item26: TdxLayoutItem; + edtRecR44: TcxCurrencyEdit; + dxLayoutControl1Item27: TdxLayoutItem; + edtRecR42: TcxCurrencyEdit; + dxLayoutControl1Item28: TdxLayoutItem; + edtRecR40: TcxCurrencyEdit; + dxLayoutControl1Item29: TdxLayoutItem; + edtRecR38: TcxCurrencyEdit; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Group11: TdxLayoutGroup; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group13: TdxLayoutGroup; + dxLayoutControl1Group14: TdxLayoutGroup; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item30: TdxLayoutItem; + Label3: TLabel; + dxLayoutControl1Group16: TdxLayoutGroup; + edtFecha: TcxDBLabel; + dxLayoutControl1Item31: TdxLayoutItem; + edtProducto: TcxDBLabel; + dxLayoutControl1Item32: TdxLayoutItem; + edtColor: TcxDBLabel; + dxLayoutControl1Item33: TdxLayoutItem; + cbEstado: TcxComboBox; + dxLayoutControl1Item5: TdxLayoutItem; + memObservaciones: TcxMemo; + dxLayoutControl1Item6: TdxLayoutItem; + cbContabilizar: TcxCheckBox; + dxLayoutControl1Item8: TdxLayoutItem; + dxLayoutControl1Group17: TdxLayoutGroup; + dxLayoutControl1Group7: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item7: TdxLayoutItem; + Bevel3: TBevel; + dxLayoutControl1Item1: TdxLayoutItem; + lblCentroOrigen: TLabel; + dxLayoutControl1Item10: TdxLayoutItem; + lblCentroDestino: TLabel; + dxLayoutControl1Group2: TdxLayoutGroup; + procedure FormShow(Sender: TObject); + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure bAceptarClick(Sender: TObject); + private + FItems : IBizTraspasos; + FHayErrores : Boolean; + procedure CargarValores; + procedure SalvarValores; + protected + function GetItems : IBizTraspasos; + procedure SetItems (const AValue : IBizTraspasos); + public + property Items : IBizTraspasos read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleTraspasos; + +{$R *.dfm} + +function ShowEditorAjustarTraspasos (ABizObject : TDADataTableRules) : TModalResult; +var + AEditor: TfEditorAjustarTraspasos; +begin + AEditor := TfEditorAjustarTraspasos.Create(Application); + try + AEditor.Items := (ABizObject as IBizTraspasos); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorCambioReferenciaGenerica } + +procedure TfEditorAjustarTraspasos.FormShow(Sender: TObject); +begin + FHayErrores := False; + FItems.DataTable.Open; + + CargarValores; +end; + +function TfEditorAjustarTraspasos.GetItems: IBizTraspasos; +begin + Result := FItems; +end; + +procedure TfEditorAjustarTraspasos.SetItems( + const AValue: IBizTraspasos); +begin + FItems := AValue; + if Assigned(FItems) then + dsDataSource.DataTable := FItems.DataTable; +end; + +procedure TfEditorAjustarTraspasos.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then + begin + ADone := True; + with AViewInfo do begin + ACanvas.FillRect(Bounds); + ACanvas.DrawTexT(Text, TextAreaBounds, 0); + ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); + end; + end; +end; + +procedure TfEditorAjustarTraspasos.bAceptarClick(Sender: TObject); +begin + ShowHourglassCursor; + try + SalvarValores; + FItems.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; + Close; +end; + +procedure TfEditorAjustarTraspasos.CargarValores; +begin + with FItems.DataTable do + begin + if FieldByName('T38').AsInteger <> FieldByName('TR38').AsInteger then + edtRecR38.Value := FieldByName('TR38').AsInteger + else + edtRecR38.Value := FieldByName('T38').AsInteger; + + if FieldByName('T40').AsInteger <> FieldByName('TR40').AsInteger then + edtRecR40.Value := FieldByName('TR40').AsInteger + else + edtRecR40.Value := FieldByName('T40').AsInteger; + + if FieldByName('T42').AsInteger <> FieldByName('TR42').AsInteger then + edtRecR42.Value := FieldByName('TR42').AsInteger + else + edtRecR42.Value := FieldByName('T42').AsInteger; + + if FieldByName('T44').AsInteger <> FieldByName('TR44').AsInteger then + edtRecR44.Value := FieldByName('TR44').AsInteger + else + edtRecR44.Value := FieldByName('T44').AsInteger; + + if FieldByName('T46').AsInteger <> FieldByName('TR46').AsInteger then + edtRecR46.Value := FieldByName('TR46').AsInteger + else + edtRecR46.Value := FieldByName('T46').AsInteger; + + if FieldByName('T48').AsInteger <> FieldByName('TR48').AsInteger then + edtRecR48.Value := FieldByName('TR48').AsInteger + else + edtRecR48.Value := FieldByName('T48').AsInteger; + + if Length(FieldByName('ESTADO_TRASPASO').AsString) = 0 then + cbEstado.Text := cbEstado.Properties.Items[0] + else + cbEstado.Text := FieldByName('ESTADO_TRASPASO').AsString; + + if FieldByName('TIPO').AsString = 'S' then + begin + lblCentroOrigen.Caption := FieldByName('CENTRO').AsString; + lblCentroDestino.Caption := FieldByName('CENTRO2').AsString; + end + else begin + lblCentroOrigen.Caption := FieldByName('CENTRO2').AsString; + lblCentroDestino.Caption := FieldByName('CENTRO').AsString; + end; + + cbContabilizar.Checked := (FieldByName('CONTABILIZAR').AsString = 'S'); + memObservaciones.Lines.Clear; + if Length(FieldByName('OBSERVACIONES').AsString) > 0 then + memObservaciones.Lines.Add(FieldByName('OBSERVACIONES').AsString) + end; +end; + +procedure TfEditorAjustarTraspasos.SalvarValores; +var + aux : String; +begin + with FItems.DataTable do + begin + Edit; + FieldByName('TR38').AsVariant := edtRecR38.Value; + FieldByName('TR40').AsVariant := edtRecR40.Value; + FieldByName('TR42').AsVariant := edtRecR42.Value; + FieldByName('TR44').AsVariant := edtRecR44.Value; + FieldByName('TR46').AsVariant := edtRecR46.Value; + FieldByName('TR48').AsVariant := edtRecR48.Value; + + if Length(memObservaciones.Lines.Text) > 0 then + FieldByName('OBSERVACIONES').AsString := memObservaciones.Lines.Text + else + FieldByName('OBSERVACIONES').AsVariant := null; + + if cbContabilizar.Checked then + FieldByName('CONTABILIZAR').AsString := 'S' + else + FieldByName('CONTABILIZAR').AsString := 'N'; + + + if cbEstado.Text = cbEstado.Properties.Items[0] then + FieldByName('ESTADO_TRASPASO').AsVariant := null + else + FieldByName('ESTADO_TRASPASO').AsString := cbEstado.Text; + + Post; + end; +end; + + +initialization + RegisterEditor(IBizTraspasos, ShowEditorAjustarTraspasos, etItem); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm new file mode 100644 index 0000000..98db9b3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm @@ -0,0 +1,1607 @@ +inherited fEditorListaTraspasos: TfEditorListaTraspasos + Left = 271 + Top = 250 + Width = 909 + Height = 659 + Caption = 'Control de traspasos' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 901 + Caption = 'Control de traspasos' + inherited Image1: TImage + Left = 874 + end + end + inherited TBXDock: TTBXDock + Width = 901 + inherited tbxMain: TTBXToolbar + object TBXSubmenuItem2: TTBXSubmenuItem [5] + Caption = 'Cambiar el estado' + DropdownCombo = True + object TBXItem37: TTBXItem + Action = actPendiente + end + object TBXItem36: TTBXItem + Action = actAprobado + end + end + object TBXSeparatorItem16: TTBXSeparatorItem [8] + end + object tbxiExpandir: TTBXItem [16] + Action = actExpandir + end + object tbxiContraer: TTBXItem [17] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [18] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxFiltro: TTBXToolbar + Left = 571 + end + end + inherited StatusBar: TStatusBar + Top = 606 + Width = 901 + end + object JvTabBar1: TJvTabBar [3] + Left = 0 + Top = 76 + Width = 901 + Height = 29 + Cursor = crHandPoint + CloseButton = False + Painter = JvModernTabBarPainter1 + Images = SmallImages + Tabs = < + item + Caption = 'Pendientes' + Selected = True + ImageIndex = 26 + end + item + Caption = 'Aprobados' + ImageIndex = 25 + end + item + Caption = 'Todos' + end> + OnTabSelected = JvTabBar1TabSelected + end + inline frViewListaTraspasos1: TfrViewListaTraspasos [4] + Left = 0 + Top = 105 + Width = 901 + Height = 501 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 901 + Height = 501 + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewAPROBADO: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Enabled = False + Visible = False + end + inherited actModificar: TAction + Caption = 'Modificar traslado' + OnExecute = actModificarExecute + end + inherited actEliminar: TAction + Enabled = False + Visible = False + end + inherited actDuplicar: TAction + Enabled = False + Visible = False + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + OnUpdate = actAnchoAutoUpdate + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + OnUpdate = actAnchoAutoUpdate + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + OnUpdate = actAnchoAutoUpdate + end + object actPendiente: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Pendiente' + GroupIndex = 1 + ImageIndex = 26 + OnExecute = actPendienteExecute + OnUpdate = actPendienteUpdate + end + object actAprobado: TAction + Category = 'Estado' + AutoCheck = True + Caption = 'Aprobado' + GroupIndex = 1 + ImageIndex = 25 + OnExecute = actAprobadoExecute + OnUpdate = actAprobadoUpdate + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 + 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 + 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 + EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 + EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 + 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C + 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 + E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 + 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE + F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 + 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD + 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 + 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 + AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 + 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 + 051D2C6D56E60000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + inherited dsDataTable: TDADataSource [10] + Top = 136 + end + inherited GridPopupMenu: TPopupMenu + Left = 112 + Top = 128 + object Cambiarelestado1: TMenuItem [3] + Caption = 'Cambiar el estado a...' + object Pendiente1: TMenuItem + Action = actPendiente + AutoCheck = True + GroupIndex = 1 + end + object Enespera1: TMenuItem + Action = actAprobado + AutoCheck = True + GroupIndex = 1 + end + end + end + object JvModernTabBarPainter1: TJvModernTabBarPainter + BorderColor = clWindow + ControlDivideColor = cl3DDkShadow + DividerColor = clBtnShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + DisabledFont.Charset = DEFAULT_CHARSET + DisabledFont.Color = clGrayText + DisabledFont.Height = -11 + DisabledFont.Name = 'MS Sans Serif' + DisabledFont.Style = [] + SelectedFont.Charset = DEFAULT_CHARSET + SelectedFont.Color = clHighlight + SelectedFont.Height = -11 + SelectedFont.Name = 'MS Sans Serif' + SelectedFont.Style = [fsBold] + Left = 320 + Top = 128 + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas new file mode 100644 index 0000000..0f6e376 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas @@ -0,0 +1,308 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorListaTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorGridBase, + JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, + uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, StdCtrls, + uViewListaTraspasos, uBizTraspasos; + + +type + IEditorListaTraspasos = interface(IEditorGridBase) + ['{729D3CD7-88E7-4D97-A9A0-8E0E1CF74716}'] + function GetItems: IBizTraspasos; + procedure SetItems(const Value: IBizTraspasos); + property Items: IBizTraspasos read GetItems + write SetItems; + end; + + TfEditorListaTraspasos = class(TfEditorGridBase, IEditorListaTraspasos) + JvTabBar1: TJvTabBar; + JvModernTabBarPainter1: TJvModernTabBarPainter; + actPendiente: TAction; + Cambiarelestado1: TMenuItem; + Pendiente1: TMenuItem; + Enespera1: TMenuItem; + TBXSubmenuItem2: TTBXSubmenuItem; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem36: TTBXItem; + TBXItem37: TTBXItem; + actAprobado: TAction; + frViewListaTraspasos1: TfrViewListaTraspasos; + procedure FormShow(Sender: TObject); + procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); + procedure actModificarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure actAnchoAutoUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPendienteExecute(Sender: TObject); + procedure actPendienteUpdate(Sender: TObject); + procedure actAprobadoExecute(Sender: TObject); + procedure actAprobadoUpdate(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + protected + FItems : IBizTraspasos; + function GetItems: IBizTraspasos; + procedure SetItems(const Value: IBizTraspasos); + procedure CambiarEstado(const NuevoEstado: TInvTraspasoEstado); + function GetModified: Boolean; override; + public + property Items: IBizTraspasos read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, + uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, + uDataModuleTraspasos, uEditorDBBase; + + +{$R *.dfm} + +constructor TfEditorListaTraspasos.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewListaTraspasos1; +end; + +function TfEditorListaTraspasos.GetItems: IBizTraspasos; +begin + Result := FItems; +end; + +procedure TfEditorListaTraspasos.SetItems( + const Value: IBizTraspasos); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewListaTraspasos1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorListaTraspasos.FormShow(Sender: TObject); +begin + inherited; + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + FItems.DataTable.Active := True; + + with (ViewGrid as IViewListaTraspasos) do + begin + VerPendientes; + ContraerTodo; + GotoFirst; + end; +end; + +procedure TfEditorListaTraspasos.JvTabBar1TabSelected( + Sender: TObject; Item: TJvTabBarItem); +begin + inherited; + ShowHourglassCursor; + Items.DataTable.Active := False; + Application.ProcessMessages; + ViewGrid._FocusedView.BeginUpdate; + Application.ProcessMessages; + try + case Item.Index of + 0 : begin + Items := dmTraspasos.GetItems(titPendiente); + (ViewGrid as IViewListaTraspasos).VerPendientes; + end; + + 1 : begin + Items := dmTraspasos.GetItems(titAprobado); + (ViewGrid as IViewListaTraspasos).VerAprobados; + end; + + 2 : begin + Items := dmTraspasos.GetItems; + (ViewGrid as IViewListaTraspasos).VerTodos; + end; + end; + finally + dsDataTable.DataTable := Items.DataTable; + ViewGrid._FocusedView.EndUpdate; + Items.DataTable.Active := True; + ViewGrid.ContraerTodo; + ViewGrid.GotoFirst; + HideHourglassCursor; + end; +end; + +procedure TfEditorListaTraspasos.actModificarExecute( + Sender: TObject); +begin + ViewGrid._FocusedView.BeginUpdate; + ViewGrid.SaveGridStatus; + try + FItems.Show; + finally + // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición + ShowHourglassCursor; + Application.ProcessMessages; + try + ViewGrid._FocusedView.EndUpdate; + ViewGrid.RestoreGridStatus; + finally + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaTraspasos.actExpandirExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ExpandirTodo; +end; + +procedure TfEditorListaTraspasos.actContraerExecute( + Sender: TObject); +begin + inherited; + ViewGrid.ContraerTodo; +end; + +procedure TfEditorListaTraspasos.actAnchoAutoExecute( + Sender: TObject); +begin + inherited; + ViewGrid.AjustarAncho; +end; + +procedure TfEditorListaTraspasos.actAnchoAutoUpdate( + Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) + and Assigned(ViewGrid) + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorListaTraspasos.actModificarUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Sender as TAction).Enabled and + (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) +end; + +procedure TfEditorListaTraspasos.actRefrescarExecute( + Sender: TObject); +begin + inherited; + ViewGrid.GotoFirst; +end; + +procedure TfEditorListaTraspasos.actPendienteExecute( + Sender: TObject); +begin + CambiarEstado(titPendiente); +end; + +procedure TfEditorListaTraspasos.actPendienteUpdate( + Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = titPendiente); +end; + +procedure TfEditorListaTraspasos.actAprobadoExecute( + Sender: TObject); +begin + CambiarEstado(titAprobado); +end; + +procedure TfEditorListaTraspasos.actAprobadoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := + (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and + not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); + + (Sender as TAction).Checked := Assigned(FItems) and + (FItems.Estado = titAprobado); +end; + +procedure TfEditorListaTraspasos.CambiarEstado( + const NuevoEstado: TInvTraspasoEstado); +var + ARecord: TcxCustomGridRecord; + i : Integer; + bm : TBookMark ; +begin + if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then + begin + ShowHourglassCursor; + bm := FItems.DataTable.GetBookMark; + FItems.DataTable.DisableControls; + try + for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do + begin + ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; + if (ARecord is TcxGridDataRow) then + begin + (ARecord as TcxGridDataRow).Focused := True; + FItems.Edit; + FItems.Estado := NuevoEstado; + FItems.Post; + end; + end; + FItems.DataTable.ApplyUpdates; + FItems.DataTable.GotoBookMark(bm); + finally + FItems.DataTable.FreeBookMark(BM); + FItems.DataTable.EnableControls; + ViewGrid._FocusedView.Controller.ClearSelection; + HideHourglassCursor; + end; + end; +end; + +procedure TfEditorListaTraspasos.actEliminarExecute( + Sender: TObject); +begin +// inherited; +end; + + +function TfEditorListaTraspasos.GetModified: Boolean; +begin + Result := False; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm new file mode 100644 index 0000000..d56401d --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm @@ -0,0 +1,126 @@ +object ModuleTraspasos: TModuleTraspasos + OldCreateOrder = True + DefaultAction = actTraspasos + Description = 'Control de traspasos entre centros' + ModuleMenu = MainMenu + ModuleName = 'Control de traspasos entre centros' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.3' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001A44944415478DA + 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A + 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C + 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 + A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 + 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB + E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 + 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 + CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F + 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB + 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 + A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 + A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C + 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 + 4BB30B8819120000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actTraspasos: TAction + Category = 'Inventario' + Caption = 'Control de traspasos' + ImageIndex = 0 + OnExecute = actTraspasosExecute + end + end + object MainMenu: TMainMenu + Tag = 500 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Inventario' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 310 + Action = actTraspasos + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000013A4944415478DA + 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB + 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 + F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 + F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 + 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A + 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 + 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 + 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 + 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 + 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 + 49454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001B84944415478DA + 63FCFFFF3F033D0123C8C22BA552CE40F61E026A5D8851A3D3FD6C2F3116FE57 + 6DA9616067CFC2AAE8E7CF690CB3635B185217135693B3EA19235116025D06D6 + 84023E7F6260F8F29961FA012B06966DA920C3885143A6855083183E030D3BEB + 8EDD42EC6AC8B010C920B0EB6F86605A885B0D8916A219C4F0F50BC3F42709A8 + 16E2574382856F3A300C62F8F29561FA876C848584D59060E1CD1206865FBF50 + 0C62F80674FDAF72848584D5106721285B4C5F2E8F5321C83050B620A486580B + 9D0F3CC49FA91DE4195C8851339AF14733FE08CEF8161333184E44D4E3CCF88C + 7AD3FEFFBF94C588D3425232FEC2238A60B1789BFB186A60161AA65CFB7FE1D4 + 0106744B49C9F8A54035DD73F9F630E4C5AB314C5A780B453EF9930B03480E19 + 383B0B31F4B6AF43B1949194360DC8D520CBAE3E79C3A02D2302174FCA9E0536 + 14268F0CA6AF38C270FAF035B8A5445B088A937953D3C096BDFCFC1D2CF6E6F3 + 2F86B7F79EC30D447610480D481E0490D590E44390A51EF1CE70436000DDC27D + D71F63B58CE42085596A6AAB05360419C02C0425141880A9233B0E912D855942 + AA1AB22C841948C8429CF9909E80EE16020010A9C8E7BBF6D9B3000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas new file mode 100644 index 0000000..cb6aed3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas @@ -0,0 +1,72 @@ +unit uPluginControllerTraspasos; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList, uBizTraspasos; + +type + IMCTraspasos = interface(IInterface) + ['{FF27B168-B706-414A-B584-1A6E4C984BDC}'] + end; + + TModuleTraspasos = class(TModuleController, IMCTraspasos) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actTraspasos: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actTraspasosExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleTraspasos, + uEditorListaTraspasos; + +function GetModule : TModuleController; +begin + Result := TModuleTraspasos.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleTraspasos.actTraspasosExecute(Sender: TObject); +var + aControl: IBizTraspasos; + aObj: IEditorListaTraspasos; +begin + aControl := dmTraspasos.GetItems(titPendiente); + aObj := TfEditorListaTraspasos.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleTraspasos); + +finalization + UnRegisterModuleClass(TModuleTraspasos); + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm new file mode 100644 index 0000000..db977c5 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm @@ -0,0 +1,514 @@ +inherited frViewListaTraspasos: TfrViewListaTraspasos + Width = 676 + Height = 486 + inherited cxGrid: TcxGrid + Width = 676 + Height = 486 + inherited cxGridView: TcxGridDBTableView + OnMouseDown = cxGridViewMouseDown + FilterBox.Visible = fvNever + OnCellDblClick = cxGridViewCellDblClick + DataController.KeyFieldNames = 'Fecha;Centro;Centro2;Codigo;Color;Tipo;' + OptionsCustomize.ColumnGrouping = True + OptionsSelection.MultiSelect = True + OptionsView.Footer = False + OptionsView.GridLines = glHorizontal + OptionsView.GroupFooters = gfVisibleWhenExpanded + OptionsView.GroupRowStyle = grsOffice11 + Preview.Column = cxGridViewObservaciones + Preview.Visible = True + Styles.Footer = cxStyleFooter + object cxGridViewAPROBADO: TcxGridDBColumn + DataBinding.FieldName = 'APROBADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Images = SmallImages + Properties.Items = < + item + Description = 'Aprobado' + ImageIndex = 0 + Value = 'S' + end + item + Description = 'Pendiente' + ImageIndex = 1 + Value = 'N' + end> + Properties.ReadOnly = True + Properties.ShowDescriptions = False + MinWidth = 15 + Width = 34 + IsCaptionAssigned = True + end + object cxGridViewFECHA: TcxGridDBColumn + DataBinding.FieldName = 'FECHA' + SortIndex = 1 + SortOrder = soAscending + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 87 + end + object cxGridViewCENTRO: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO' + Visible = False + end + object cxGridViewESTADO_TRASPASO: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO_TRASPASO' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewFILIAL: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'FILIAL' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 296 + end + object cxGridViewCENTRO2: TcxGridDBColumn + DataBinding.FieldName = 'CENTRO2' + Visible = False + end + object cxGridViewTIPO: TcxGridDBColumn + Caption = 'E/S' + DataBinding.FieldName = 'TIPO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageListTipo + Properties.Items = < + item + Description = 'Entrada' + ImageIndex = 0 + Value = 'E' + end + item + Description = 'Salida' + ImageIndex = 1 + Tag = 1 + Value = 'S' + end> + Properties.Revertable = True + Properties.ShowDescriptions = False + Width = 51 + end + object cxGridViewFILIAL2: TcxGridDBColumn + Caption = 'Centro 2' + DataBinding.FieldName = 'FILIAL2' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 328 + end + object cxGridViewCONTABILIZAR: TcxGridDBColumn + DataBinding.FieldName = 'CONTABILIZAR' + Visible = False + Width = 72 + end + object cxGridViewCODIGO: TcxGridDBColumn + DataBinding.FieldName = 'CODIGO' + Visible = False + OnGetDataText = cxGridViewCODIGOGetDataText + OnGetDisplayText = cxGridViewCODIGOGetDisplayText + GroupIndex = 0 + Width = 53 + end + object cxGridViewPRODUCTO: TcxGridDBColumn + DataBinding.FieldName = 'PRODUCTO' + Visible = False + SortIndex = 0 + SortOrder = soAscending + end + object cxGridViewCOLOR: TcxGridDBColumn + DataBinding.FieldName = 'COLOR' + Visible = False + end + object cxGridViewT38: TcxGridDBColumn + DataBinding.FieldName = 'T38' + Visible = False + end + object cxGridViewT40: TcxGridDBColumn + DataBinding.FieldName = 'T40' + Visible = False + end + object cxGridViewT42: TcxGridDBColumn + DataBinding.FieldName = 'T42' + Visible = False + end + object cxGridViewT44: TcxGridDBColumn + DataBinding.FieldName = 'T44' + Visible = False + end + object cxGridViewT46: TcxGridDBColumn + DataBinding.FieldName = 'T46' + Visible = False + end + object cxGridViewT48: TcxGridDBColumn + DataBinding.FieldName = 'T48' + Visible = False + end + object cxGridViewTOTAL: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL' + Visible = False + end + object cxGridViewTR38: TcxGridDBColumn + Caption = '38' + DataBinding.FieldName = 'TR38' + OnGetDisplayText = cxGridViewTR38GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewTR40: TcxGridDBColumn + Caption = '40' + DataBinding.FieldName = 'TR40' + OnGetDisplayText = cxGridViewTR40GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 57 + end + object cxGridViewTR42: TcxGridDBColumn + Caption = '42' + DataBinding.FieldName = 'TR42' + OnGetDisplayText = cxGridViewTR42GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewTR44: TcxGridDBColumn + Caption = '44' + DataBinding.FieldName = 'TR44' + OnGetDisplayText = cxGridViewTR44GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 55 + end + object cxGridViewTR46: TcxGridDBColumn + Caption = '46' + DataBinding.FieldName = 'TR46' + OnGetDisplayText = cxGridViewTR46GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 60 + end + object cxGridViewTR48: TcxGridDBColumn + Caption = '48' + DataBinding.FieldName = 'TR48' + OnGetDisplayText = cxGridViewTR48GetDisplayText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 57 + end + object cxGridViewTOTAL_RECT: TcxGridDBColumn + DataBinding.FieldName = 'TOTAL_RECT' + OnGetDataText = cxGridViewTOTAL_RECTGetDataText + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + Width = 59 + end + object cxGridViewObservaciones: TcxGridDBColumn + DataBinding.FieldName = 'OBSERVACIONES' + PropertiesClassName = 'TcxMemoProperties' + Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle + end + end + end + inherited dsDataSource: TDADataSource + DataTable = dmTraspasos.tbl_TraspasosPendientes + Top = 120 + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] + object dxComponentPrinterLink1: TdxGridReportLink + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageFooter.Font.Color = clBlack + PrinterPage.PageFooter.Font.Height = -12 + PrinterPage.PageFooter.Font.Name = 'Tahoma' + PrinterPage.PageFooter.Font.Style = [] + PrinterPage.PageFooter.LeftTitle.Strings = ( + 'VARELA IMAGEN Y DISE'#209'O S.L.') + PrinterPage.PageFooter.RightTitle.Strings = ( + '[Page #] de [Total Pages]') + PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET + PrinterPage.PageHeader.Font.Color = clBlack + PrinterPage.PageHeader.Font.Height = -15 + PrinterPage.PageHeader.Font.Name = 'Tahoma' + PrinterPage.PageHeader.Font.Style = [] + PrinterPage.PageHeader.LeftTitle.Strings = ( + 'CONTROL DE TRASPASOS') + PrinterPage.PageHeader.RightTitle.Strings = ( + '[Date & Time Printed]') + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage.ScaleMode = smFit + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.CreationDate = 38877.461868113420000000 + ShrinkToPageWidth = True + OptionsCards.Shadow.Depth = 0 + OptionsExpanding.ExpandGroupRows = True + OptionsFormatting.SuppressBackgroundBitmaps = True + OptionsFormatting.UseNativeStyles = True + OptionsFormatting.ConsumeSelectionStyle = True + OptionsLevels.Unwrap = True + OptionsRefinements.TransparentGraphics = True + OptionsSize.AutoWidth = True + OptionsView.Caption = False + OptionsView.ExpandButtons = False + OptionsView.FilterBar = False + StyleRepository = cxStyleRepositoryInforme + Styles.Content = cxStyleContentInforme + Styles.Footer = cxStyleFooterInforme + Styles.Group = cxStyleGroupInforme + Styles.Header = cxStyleHeaderInforme + Styles.Preview = cxStyleObservacionesInforme + Styles.Selection = cxStyleSelectionInforme + OnInitializeCell = dxComponentPrinterLink1InitializeCell + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleSubtotal: TcxStyle + AssignedValues = [svColor] + Color = 14803425 + end + object cxStyleCantidadRectificada: TcxStyle + AssignedValues = [svTextColor] + TextColor = 2129152 + end + object cxStyleNoContabilizar: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsStrikeOut] + TextColor = clGray + end + object cxStyleFooter: TcxStyle + AssignedValues = [svColor] + Color = clWindow + end + object cxStyleCentro2: TcxStyle + AssignedValues = [svTextColor] + TextColor = 6579300 + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 + D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 + 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 + FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B + 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 + 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 + 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C + 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 + A3BF077C00CC5678110543289A0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E + 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD + 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 + 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F + EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A + 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 + 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE + 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 + 6AE007B3FF721173EAE95F0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 395 + Top = 80 + Bitmap = {} + end + object cxStyleRepositoryInforme: TcxStyleRepository + Left = 112 + Top = 48 + object cxStyleContentInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleFooterInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleGroupInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleHeaderInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 14803425 + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + TextColor = clBlack + end + object cxStyleSelectionInforme: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clWhite + Font.Charset = ANSI_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + object cxStyleObservacionesInforme: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + TextColor = clBlack + end + end + object PngImageListTipo: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000000FD4944415478DA63FCFFFF3F0325 + 8091AA06585A5A622860156DFAFFFB751D23B2D8F1E3C7893300A499E1FF1F86 + DF6F9A483700A439BDC49C6166D72186DF6F5B493300A6F9DBD79F0C8BA71C65 + F8FFFF2F501488FFFD01D38777C432E2340059F3D72F3F18BE7D01D25F7F307C + F9F483E1F3A7EF0CB72EDC6138B22311BB01767EBBF16A7EF3EA13C3BB27CF18 + 8EEC4AC5E302E1EAFF02628C0C16B6EA0C270EDFC48895B74F1E311CDD9589DB + 001060112CF92F28C10166BF7FF68EE13FC31FB0FFC13430568EEECEC56F00D8 + 10FEDCFF8252FC0CEF9EBD62F8FB711679E980993FED3FC8E6BF9FE791670008 + 30F1C6FDFFF779117106900306DE00006A32C2E1ABAC85280000000049454E44 + AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FE4944415478DA + 63FCFFFF3F03258091AA06303232A248F2ACE2F8FF25EC0723BA26143DF80CE0 + 5EC2FEFFFFAFFF0CDF927E31926500D73CB6FFED4E450CE51B7B197EE4FF6624 + 6800EF5ACEFF0CFF800A80B682F14F06860ABB6486F7DF3F314CDFB992E167F5 + 1F46FC06ACE6FCBFCCBB8FE1C3D78F0CEFBF7D84D040CD6F3EBF6778F3E51DC3 + DE6367187EB7FF61C46900CF528EFFD3DD1AB06A06E12F3FBE32DC3EF39CE1CF + 94BF8C580DE09ECF0EF6F3F4FD8B516383831BAEF9EFD47FB85DC0350312EA0C + E03000FAF537038392BC38580EA699A45860AD64F9AFAC268EA2992403588A98 + FFFFFFF91F45334906306733FD47D78CD70072C0C01B0000F574D6E150544812 + 0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 451 + Top = 80 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas new file mode 100644 index 0000000..6c05e5e --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas @@ -0,0 +1,554 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewListaTraspasos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, uBizTraspasos, dxPSGlbl, + dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, + dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, + cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, + cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, + dxPScxCommon, dxPScxGridLnk, cxMemo; + +type + IViewListaTraspasos = interface(IViewGrid) + ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + end; + + TfrViewListaTraspasos = class(TfrViewGrid, IViewListaTraspasos) + cxStyleSubtotal: TcxStyle; + SmallImages: TPngImageList; + cxStyleCantidadRectificada: TcxStyle; + cxStyleNoContabilizar: TcxStyle; + cxStyleFooter: TcxStyle; + dxComponentPrinterLink1: TdxGridReportLink; + cxStyleRepositoryInforme: TcxStyleRepository; + cxStyleContentInforme: TcxStyle; + cxStyleFooterInforme: TcxStyle; + cxStyleGroupInforme: TcxStyle; + cxStyleHeaderInforme: TcxStyle; + cxStyleSelectionInforme: TcxStyle; + cxGridViewTIPO: TcxGridDBColumn; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewFILIAL: TcxGridDBColumn; + cxGridViewCENTRO2: TcxGridDBColumn; + cxGridViewFILIAL2: TcxGridDBColumn; + cxGridViewAPROBADO: TcxGridDBColumn; + cxGridViewESTADO_TRASPASO: TcxGridDBColumn; + cxGridViewCONTABILIZAR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTR38: TcxGridDBColumn; + cxGridViewTR40: TcxGridDBColumn; + cxGridViewTR42: TcxGridDBColumn; + cxGridViewTR44: TcxGridDBColumn; + cxGridViewTR46: TcxGridDBColumn; + cxGridViewTR48: TcxGridDBColumn; + cxGridViewTOTAL_RECT: TcxGridDBColumn; + cxGridViewT38: TcxGridDBColumn; + cxGridViewT40: TcxGridDBColumn; + cxGridViewT42: TcxGridDBColumn; + cxGridViewT44: TcxGridDBColumn; + cxGridViewT46: TcxGridDBColumn; + cxGridViewT48: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + PngImageListTipo: TPngImageList; + cxStyleCentro2: TcxStyle; + cxGridViewObservaciones: TcxGridDBColumn; + cxStyleObservacionesInforme: TcxStyle; + procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewTR38GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR40GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR42GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR44GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR46GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR48GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: String); + procedure cxGridViewTR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewTR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; + ARecordIndex: Integer; var AText: String); + procedure cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); + procedure cxGridViewTOTAL_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); + procedure cxGridViewFECHAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); + protected + FTipo : String; + FNivelFiltrado : TcxFilterCriteriaItemList; + procedure FilterChanged(Sender: TObject); override; + public + procedure Preview; override; + procedure Print; override; + procedure PrintSetup; override; + procedure VerPendientes; + procedure VerAprobados; + procedure VerTodos; + end; + + +implementation + +uses + uDataModuleTraspasos, DateUtils, cxGridDBDataDefinitions, + uViewGridBase, cxGridRows; + +{$R *.dfm} + +procedure TfrViewListaTraspasos.cxGridViewMouseDown( + Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, + Y: Integer); +var + HT: TcxCustomGridHitTest; + ALevelIndex, AGroupIndex, I, AIndex: Integer; + AList: TList; + DC: TcxGridDBDataController; +begin + inherited; + HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); + if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) + and not (HT is TcxGridExpandButtonHitTest) then + begin + DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; + AList := TList.Create; + ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; + if ALevelIndex > 0 then + begin + ShowHourglassCursor; + TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; + try + AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; + DC.Groups.LoadRecordIndexes(AList, AGroupIndex); + for I := 0 to AList.Count - 1 do + begin + AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); + DC.SelectRows(AIndex, AIndex); + end; + finally + FreeAndNil(AList); + TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; + HideHourglassCursor; + end; + end; + end; +end; + +procedure TfrViewListaTraspasos.VerAprobados; +begin + FTipo := 'S'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaTraspasos.VerPendientes; +begin + FTipo := 'N'; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); +end; + +procedure TfrViewListaTraspasos.VerTodos; +begin + FTipo := ''; + FreeAndNil(FNivelFiltrado); + FilterChanged(self); + cxGridViewAPROBADO.Visible := True; +end; + +procedure TfrViewListaTraspasos.cxGridBandedViewRR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewCellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewListaTraspasos.Preview; +begin + inherited; +// dxComponentPrinterLink1.OnInitializeCell := dxComponentPrinterLink1InitializeCell; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewListaTraspasos.Print; +begin + inherited; + dxComponentPrinterLink1.Print(True, nil); +end; + +procedure TfrViewListaTraspasos.PrintSetup; +begin + inherited; + dxComponentPrinterLink1.PageSetup; +end; + +procedure TfrViewListaTraspasos.cxGridBandedViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaTraspasos.cxGridViewTR38GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR40GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT40.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR42GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT42.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR44GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT44.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR46GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT46.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR48GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +var + AStr : String; +begin + inherited; + if not Assigned( ARecord ) then + Exit; + + AStr := VarToStrDef(ARecord.Values[cxGridViewT48.Index], ''); + if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then + begin + if Length(AStr) = 0 then + AStr := '0'; + AText := AText + ' (' + AStr + ')'; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR38StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT38.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR40StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT40.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR42StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT42.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR44StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT44.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR46StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT46.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewTR48StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(ARecord) and Assigned(AItem) then + begin + if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT48.Index] then + AStyle := cxStyleCantidadRectificada; + end; +end; + +procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Val1, Val2: string; +begin + inherited; + + Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; + Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; + AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; +end; + +procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: String); +begin + inherited; + AText := StringReplace(AText, 'Código : ', '', [rfReplaceAll, rfIgnoreCase]) +end; + +procedure TfrViewListaTraspasos.cxGridViewTOTAL_RECTGetDataText( + Sender: TcxCustomGridTableItem; ARecordIndex: Integer; + var AText: String); +var + Total : Double; +begin + inherited; + + Total := 0; + with Sender.GridView.DataController do + begin + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR38.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR40.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR42.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR44.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR46.Index], 0); + Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR48.Index], 0); + end; + AText := FloatToStr(Total); +end; + +procedure TfrViewListaTraspasos.cxGridViewFECHAStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; + if aux = 'N' then + AStyle := cxStyleNoContabilizar + end; +end; + +procedure TfrViewListaTraspasos.dxComponentPrinterLink1InitializeCell( + Sender: TdxGridReportLink; AView: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; + AnItem: TAbstractdxReportCellData); +var + aux : string; +begin + inherited; + if Assigned(ARecord) then + begin + aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; + if aux = 'N' then + begin + AnItem.Font.Style := cxStyleNoContabilizar.Font.Style; + AnItem.Font.Color := cxStyleNoContabilizar.Font.Color; + end; + end; +end; + +procedure TfrViewListaTraspasos.FilterChanged(Sender: TObject); +var + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + cxGridView.DataController.Filter.BeginUpdate; + AItemList := cxGridView.DataController.Filter.Root; + + if (Length(FTIPO) > 0) then + begin + FNivelFiltrado := AItemList.AddItemList(fboAnd); + FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); + end; + + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + + cxGridView.DataController.Filter.EndUpdate; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas new file mode 100644 index 0000000..cd4df37 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas @@ -0,0 +1,77 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uBizTraspasos; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; + + +const + BIZ_TRASPASOS = 'Client.Traspasos'; + +type + TInvTraspasoEstado = (titPendiente, titAprobado); + + IBizTraspasos = interface(IDAStronglyTypedDataTable) //ITraspasos) + ['{91E16E44-2A50-4459-A758-B14948E0A134}'] + procedure Show; + procedure SetEstado(const AValue : TInvTraspasoEstado); + function GetEstado : TInvTraspasoEstado ; + property Estado : TInvTraspasoEstado read GetEstado write SetEstado; + end; + + + TBizTraspasosDataTableRules = class(TDADataTableRules, IBizTraspasos) //TTraspasosDataTableRules, IBizTraspasos, + protected + procedure SetEstado(const AValue : TInvTraspasoEstado); + function GetEstado : TInvTraspasoEstado ; + public + procedure Show; + property Estado : TInvTraspasoEstado read GetEstado write SetEstado; + end; + + +implementation + +uses + uEditorUtils, uDataModuleTraspasos; + +{ TBizRecepcionDataTableRules } + +function TBizTraspasosDataTableRules.GetEstado: TInvTraspasoEstado; +begin + if DataTable.FieldByName('APROBADO').AsString = 'S' then + Result := titAprobado + else + Result := titPendiente +end; + +procedure TBizTraspasosDataTableRules.SetEstado( + const AValue: TInvTraspasoEstado); +begin + case AValue of + titPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; + titAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; + else + DataTable.FieldByName('APROBADO').AsString := 'N'; + end; +end; + +procedure TBizTraspasosDataTableRules.Show; +begin + ShowEditor(IBizTraspasos, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_TRASPASOS, TBizTraspasosDataTableRules); + +end. + diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm new file mode 100644 index 0000000..8e32c08 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm @@ -0,0 +1,1293 @@ +object srvTraspasos: TsrvTraspasos + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schTraspasos + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 300 + Width = 300 + object DABINAdapter: TDABINAdapter + Left = 40 + Top = 96 + end + object schTraspasos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary1 + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'Traspasos' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'N'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'TraspasosPendientes' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + + 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + + 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + + ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + + 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'S'#39 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FILIAL' + TableField = 'FILIAL' + end + item + DatasetField = 'CENTRO2' + TableField = 'CENTRO2' + end + item + DatasetField = 'FILIAL2' + TableField = 'FILIAL2' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'T38' + TableField = 'T38' + end + item + DatasetField = 'T40' + TableField = 'T40' + end + item + DatasetField = 'T42' + TableField = 'T42' + end + item + DatasetField = 'T44' + TableField = 'T44' + end + item + DatasetField = 'T46' + TableField = 'T46' + end + item + DatasetField = 'T48' + TableField = 'T48' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'TR38' + TableField = 'TR38' + end + item + DatasetField = 'TR40' + TableField = 'TR40' + end + item + DatasetField = 'TR42' + TableField = 'TR42' + end + item + DatasetField = 'TR44' + TableField = 'TR44' + end + item + DatasetField = 'TR46' + TableField = 'TR46' + end + item + DatasetField = 'TR48' + TableField = 'TR48' + end + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end + item + DatasetField = 'APROBADO' + TableField = 'APROBADO' + end + item + DatasetField = 'ESTADO_TRASPASO' + TableField = 'ESTADO_TRASPASO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'CONTABILIZAR' + TableField = 'CONTABILIZAR' + end + item + DatasetField = 'FECHACAMBIO' + TableField = 'FECHACAMBIO' + end> + end> + Name = 'TraspasosAprobados' + Fields = < + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_TIPO' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHA' + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO' + end + item + Name = 'FILIAL' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL' + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + DictionaryEntry = 'Traspasos_CENTRO2' + end + item + Name = 'FILIAL2' + DataType = datString + Size = 25 + DictionaryEntry = 'Traspasos_FILIAL2' + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_APROBADO' + end + item + Name = 'ESTADO_TRASPASO' + DataType = datString + Size = 20 + DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + DictionaryEntry = 'Traspasos_OBSERVACIONES' + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + DictionaryEntry = 'Traspasos_CONTABILIZAR' + end + item + Name = 'FECHACAMBIO' + DataType = datDateTime + DictionaryEntry = 'Traspasos_FECHACAMBIO' + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DictionaryEntry = 'Traspasos_CODIGO' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DictionaryEntry = 'Traspasos_PRODUCTO' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DictionaryEntry = 'Traspasos_COLOR' + end + item + Name = 'T38' + DataType = datFloat + DictionaryEntry = 'Traspasos_T38' + end + item + Name = 'T40' + DataType = datFloat + DictionaryEntry = 'Traspasos_T40' + end + item + Name = 'T42' + DataType = datFloat + DictionaryEntry = 'Traspasos_T42' + end + item + Name = 'T44' + DataType = datFloat + DictionaryEntry = 'Traspasos_T44' + end + item + Name = 'T46' + DataType = datFloat + DictionaryEntry = 'Traspasos_T46' + end + item + Name = 'T48' + DataType = datFloat + DictionaryEntry = 'Traspasos_T48' + end + item + Name = 'TOTAL' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL' + end + item + Name = 'TR38' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR38' + end + item + Name = 'TR40' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR40' + end + item + Name = 'TR42' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR42' + end + item + Name = 'TR44' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR44' + end + item + Name = 'TR46' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR46' + end + item + Name = 'TR48' + DataType = datFloat + DictionaryEntry = 'Traspasos_TR48' + end + item + Name = 'TOTAL_RECT' + DataType = datFloat + DictionaryEntry = 'Traspasos_TOTAL_RECT' + end> + end + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'SELECT '#10' TOTAL_RECT'#10' FROM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHER' + + 'E'#10' FECHA = :FECHA AND'#10' CENTRO = :CENTRO AND'#10' C' + + 'ENTRO2 = :CENTRO2 AND'#10' CODIGO = :CODIGO AND'#10' COLOR =' + + ' :COLOR' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'TOTAL_RECT' + TableField = 'TOTAL_RECT' + end> + end> + Name = 'RefreshTraspasos' + Fields = < + item + Name = 'TOTAL_RECT' + DataType = datFloat + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ESTADO' + Value = '' + end + item + Name = 'OBSERVACIONES' + DataType = datString + Size = 255 + Value = '' + ParamType = daptInput + end + item + Name = 'CONTABILIZAR' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'TR38' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR40' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR42' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR44' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR46' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'TR48' + DataType = datFloat + Value = '' + ParamType = daptInput + end + item + Name = 'APROBADO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO2' + DataType = datString + Size = 17 + Value = '' + ParamType = daptInput + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + Value = '' + ParamType = daptInput + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_CONTROL_TRASPASOS' + SQL = + 'begin'#10' declare @rowcount_var int'#10' declare @ESTADO varchar(' + + '20)'#10' declare @OBSERVACIONES varchar(255)'#10' declare @CONTABI' + + 'LIZAR char(1)'#10#10' declare @TR38 numeric(15,0)'#10' declare @TR40' + + ' numeric(15,0)'#10' declare @TR42 numeric(15,0)'#10' declare @TR44' + + ' numeric(15,0)'#10' declare @TR46 numeric(15,0)'#10' declare @TR48' + + ' numeric(15,0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA' + + ' datetime'#10' declare @CENTRO varchar(17)'#10' declare @CENTRO2 v' + + 'archar(17)'#10' declare @CODIGO varchar(12)'#10' declare @COLOR va' + + 'rchar(10)'#10' declare @TIPOCANT varchar(3)'#10#10' set @ESTADO = :E' + + 'STADO'#10' set @OBSERVACIONES = :OBSERVACIONES'#10' set @CONTABILI' + + 'ZAR = :CONTABILIZAR'#10#10' set @TR38 = :TR38'#10' set @TR40 = :TR40' + + #10' set @TR42 = :TR42'#10' set @TR44 = :TR44'#10' set @TR46 = :TR' + + '46'#10' set @TR48 = :TR48'#10#10' set @APROBADO = :APROBADO'#10' set ' + + '@FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CENTRO2 = :CE' + + 'NTRO2'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10' set ' + + '@TIPOCANT = :TIPO'#10#10' /* *********************************** */' + + #10#9'update RDX_TRASPASOS_AJUSTES set'#10#9' CANT38 = @TR38,'#10#9 + + ' CANT40 = @TR40,'#10#9' CANT42 = @TR42,'#10#9' ' + + ' CANT44 = @TR44,'#10#9' CANT46 = @TR46,'#10#9' CANT4' + + '8 = @TR48,'#10' APROBADO = @APROBADO,'#10' E' + + 'STADO = @ESTADO,'#10' TIPOCANT = @TIPOCANT,'#10' ' + + ' OBSERVACIONES = @OBSERVACIONES,'#10' CONTABILIZAR' + + ' = @CONTABILIZAR,'#10' FECHACAMBIO = CURRENT_TIMESTAMP' + + #10#9'where'#10' (RDX_TRASPASOS_AJUSTES.CENTRO = @CENTRO and' + + #10' RDX_TRASPASOS_AJUSTES.CENTRO2 = @CENTRO2 and'#10#9' ' + + ' RDX_TRASPASOS_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_TRASPAS' + + 'OS_AJUSTES.COLOR = @COLOR and'#10#9' RDX_TRASPASOS_AJUSTES.FECHA' + + ' = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT_VA' + + 'R = 0'#10' begin'#10' insert into RDX_TRASPASOS_AJUSTES'#10' ' + + ' (FECHA, CENTRO, CENTRO2, CODIGO, COLOR,'#10' ' + + ' APROBADO, FECHACAMBIO, TIPOCANT,'#10' ESTADO, OB' + + 'SERVACIONES, CONTABILIZAR,'#10' CANT38, CANT40, CANT' + + '42,'#10' CANT44, CANT46, CANT48)'#10' values ('#10' ' + + ' @FECHA, @CENTRO, @CENTRO2, @CODIGO,'#10' ' + + ' @COLOR, @APROBADO, CURRENT_TIMESTAMP, @TIPOCANT,'#10' ' + + ' @ESTADO, @OBSERVACIONES, @CONTABILIZAR,'#10' ' + + '@TR38, @TR40, @TR42,'#10' @TR44, @TR46, @TR48)'#10' e' + + 'nd'#10'end' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Estado_Traspasos' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object DADataDictionary1: TDADataDictionary + Fields = < + item + Name = 'Traspasos_TIPO' + DataType = datString + Size = 1 + Required = True + DisplayLabel = 'Tipo' + ReadOnly = True + end + item + Name = 'Traspasos_FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + ReadOnly = True + end + item + Name = 'Traspasos_CENTRO' + DataType = datString + Size = 17 + DisplayLabel = 'Centro' + ReadOnly = True + end + item + Name = 'Traspasos_FILIAL' + DataType = datString + Size = 25 + DisplayLabel = 'Filial' + ReadOnly = True + end + item + Name = 'Traspasos_CENTRO2' + DataType = datString + Size = 17 + DisplayLabel = 'Centro2' + ReadOnly = True + end + item + Name = 'Traspasos_FILIAL2' + DataType = datString + Size = 25 + DisplayLabel = 'Filial2' + ReadOnly = True + end + item + Name = 'Traspasos_CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo' + ReadOnly = True + end + item + Name = 'Traspasos_PRODUCTO' + DataType = datString + Size = 40 + Required = True + DisplayLabel = 'Producto' + ReadOnly = True + end + item + Name = 'Traspasos_COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + ReadOnly = True + end + item + Name = 'Traspasos_T38' + DataType = datFloat + DisplayLabel = 'T38' + ReadOnly = True + end + item + Name = 'Traspasos_T40' + DataType = datFloat + DisplayLabel = 'T40' + ReadOnly = True + end + item + Name = 'Traspasos_T42' + DataType = datFloat + DisplayLabel = 'T42' + ReadOnly = True + end + item + Name = 'Traspasos_T44' + DataType = datFloat + DisplayLabel = 'T44' + ReadOnly = True + end + item + Name = 'Traspasos_T46' + DataType = datFloat + DisplayLabel = 'T46' + ReadOnly = True + end + item + Name = 'Traspasos_T48' + DataType = datFloat + DisplayLabel = 'T48' + ReadOnly = True + end + item + Name = 'Traspasos_TOTAL' + DataType = datFloat + DisplayLabel = 'Total' + ReadOnly = True + end + item + Name = 'Traspasos_TR38' + DataType = datFloat + DisplayLabel = 'TR38' + end + item + Name = 'Traspasos_TR40' + DataType = datFloat + DisplayLabel = 'TR40' + end + item + Name = 'Traspasos_TR42' + DataType = datFloat + DisplayLabel = 'TR42' + end + item + Name = 'Traspasos_TR44' + DataType = datFloat + DisplayLabel = 'TR44' + end + item + Name = 'Traspasos_TR46' + DataType = datFloat + DisplayLabel = 'TR46' + end + item + Name = 'Traspasos_TR48' + DataType = datFloat + DisplayLabel = 'TR48' + end + item + Name = 'Traspasos_TOTAL_RECT' + DataType = datFloat + DisplayLabel = 'Total' + end + item + Name = 'Traspasos_APROBADO' + DataType = datString + Size = 1 + DisplayLabel = 'Aprobado' + end + item + Name = 'Traspasos_ESTADO_TRASPASO' + DataType = datString + Size = 20 + DisplayLabel = 'Estado' + end + item + Name = 'Traspasos_OBSERVACIONES' + DataType = datString + Size = 255 + DisplayLabel = 'Observaciones' + end + item + Name = 'Traspasos_CONTABILIZAR' + DataType = datString + Size = 1 + DisplayLabel = 'Contabilizar' + end + item + Name = 'Traspasos_FECHACAMBIO' + DataType = datDateTime + DisplayLabel = 'Fecha cambio' + ReadOnly = True + end> + Left = 40 + Top = 168 + end + object bpTraspasos: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'Traspasos' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 32 + end + object bpTraspasosAprobadas: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'TraspasosAprobados' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 88 + end + object bpTraspasosPendientes: TDABusinessProcessor + Schema = schTraspasos + UpdateCommandName = 'Update_Estado_Traspasos' + RefreshDatasetName = 'RefreshTraspasos' + ReferencedDataset = 'TraspasosPendientes' + ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] + UpdateMode = updWhereKeyOnly + Left = 192 + Top = 152 + end +end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas new file mode 100644 index 0000000..bfd4368 --- /dev/null +++ b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas @@ -0,0 +1,51 @@ +unit srvTraspasos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer; + +type + { TsrvTraspasos } + TsrvTraspasos = class(TDARemoteService, IsrvTraspasos) + DABINAdapter: TDABINAdapter; + bpTraspasos: TDABusinessProcessor; + bpTraspasosAprobadas: TDABusinessProcessor; + bpTraspasosPendientes: TDABusinessProcessor; + schTraspasos: TDASchema; + DADataDictionary1: TDADataDictionary; + private + protected + { IsrvTraspasos methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvTraspasos(out anInstance : IUnknown); +begin + anInstance := TsrvTraspasos.Create(NIL); +end; + +{ srvTraspasos } +initialization + TROClassFactory.Create('srvTraspasos', Create_srvTraspasos, TsrvTraspasos_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj new file mode 100644 index 0000000..72aa031 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + VentasProceso.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg new file mode 100644 index 0000000..a34a309 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof new file mode 100644 index 0000000..f5bd34e --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof @@ -0,0 +1,479 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Servidor +Item1=..\..\Output\Cliente +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk new file mode 100644 index 0000000..e1e3ec7 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk @@ -0,0 +1,74 @@ +package VentasProceso; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + dbrtl, + dsnap, + BaseD10, + vcl, + adortl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + JvGlobusD10R, + ControlesBaseD10, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10; + +contains + uDataModuleVentasProceso in 'uDataModuleVentasProceso.pas' {dmVentasEnProceso: TDAClientDataModule}, + uPluginControllerVentasProceso in 'uPluginControllerVentasProceso.pas' {ModuleVentasProceso: TModuleController}, + uEditorControlesVentaProceso in 'uEditorControlesVentaProceso.pas' {fEditorControlesVentasProceso: TCustomEditor}, + uViewControlesVentaProceso in 'uViewControlesVentaProceso.pas' {frViewControlesVentaProceso: TCustomView}, + uBizControlVentasProceso in '..\Reglas\uBizControlVentasProceso.pas', + uEditorControlVentaProceso in 'uEditorControlVentaProceso.pas' {fEditorControlVentaProceso: TCustomEditor}, + uViewControlVentaProceso in 'uViewControlVentaProceso.pas' {frViewControlVentaProceso: TCustomView}, + schVentasEnProcesoClient_Intf in '..\Reglas\schVentasEnProcesoClient_Intf.pas', + uBizVentasProceso in '..\Reglas\uBizVentasProceso.pas', + uViewControGridlVentaProceso in 'uViewControGridlVentaProceso.pas' {frViewControlGridVentaProceso: TCustomView}; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache new file mode 100644 index 0000000000000000000000000000000000000000..8b7a0eed6e3a2cee09ce7b045adea44a3e2b0ddb GIT binary patch literal 1607 zcmd6n!Ait16h-USujm)}0WPOAh>L;2!LA+*A$is(F;DUm1pi=miip2!=)_vP2(DVY zD_p|izI*R^RaI|i%_Xc^$47KQYUND5#}LSM0=E*CCx$IaZL)*~R_txB3(*kQJI@cO zgFvf1S_ONKUL$PTM4QxYdRIvjX%vRWQu;@TE#Y&+E_k-RA`32_lq9O*JI;%DgPm0Z zaYZk`xTjd3^I{FI?QHDGW#26NBINr*kQ+mR{U46|@gD$DO8J`^G3QV8{pqqBmwRza zz~S13yJ;3*=XG&Zk@1PY8$P95DuknbDPMT00bHw~`i;b5iDwSrurxpZU3oIajs60_ CUqTuH literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm new file mode 100644 index 0000000..ccb41df --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm @@ -0,0 +1,364 @@ +object dmVentasEnProceso: TdmVentasEnProceso + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 300 + Width = 306 + object RemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvVentasEnProceso' + Left = 56 + Top = 16 + end + object tbl_VentasEnProcesoPendientes: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'DIA' + DataType = datInteger + end + item + Name = 'DIASEMANA' + DataType = datString + Size = 30 + end + item + Name = 'MES' + DataType = datString + Size = 30 + end + item + Name = 'ANO' + DataType = datInteger + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'INICIO' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'FINAL' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'IMPORTE' + DataType = datFloat + Alignment = taRightJustify + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasEnProcesoPendientes' + IndexDefs = <> + Left = 200 + Top = 16 + end + object tbl_VentasEnProcesoPendientes2: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'FECHAINI' + DataType = datDateTime + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + DataType = datDateTime + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter2 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasEnProcesoPendientes' + IndexDefs = <> + Left = 200 + Top = 96 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = False + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer2 + Left = 56 + Top = 96 + end + object DARemoteDataAdapter2: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RemoteService + GetSchemaCall.MethodName = 'GetSchema' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetDataCall.RemoteService = RemoteService + GetDataCall.MethodName = 'GetData' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasEnProcesoPendientes' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RemoteService + DataStreamer = DABinDataStreamer2 + Left = 56 + Top = 168 + end + object DABinDataStreamer2: TDABinDataStreamer + IsCompatibleV4 = False + Left = 56 + Top = 248 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas new file mode 100644 index 0000000..cd41a85 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas @@ -0,0 +1,113 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uDataModuleVentasProceso; + +interface + +uses {vcl:} SysUtils, Classes, DB, uDataModuleBase, + {RemObjects:} uDAClientDataModule, uROClient, uROServiceComponent, + uRORemoteService, uDADataTable, uDAScriptingProvider, uDACDSDataTable, + uBizControlVentasProceso, uBizVentasProceso, uDARemoteDataAdapter, + uDADataStreamer, uDABinAdapter; + +const + CATEGORIA_VENTAS_PROCESO = 'VENTAPROCESO'; + +type + TdmVentasEnProceso = class(TDAClientDataModule) + RemoteService: TRORemoteService; + tbl_VentasEnProcesoPendientes: TDACDSDataTable; + tbl_VentasEnProcesoPendientes2: TDACDSDataTable; + DARemoteDataAdapter: TDARemoteDataAdapter; + DARemoteDataAdapter2: TDARemoteDataAdapter; + DABinDataStreamer2: TDABinDataStreamer; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function GetItems : IBizVentasProceso; + public + function GetNameColumns: String; + function GetControl: IBizControlVentasProceso; + end; + +var + dmVentasEnProceso: TdmVentasEnProceso; + +implementation + +{$R *.DFM} + +uses + Controls, Forms, uDataTableUtils, + uDataModuleControles, schVentasEnProcesoClient_Intf, Dialogs, cxControls; + +procedure TdmVentasEnProceso.DAClientDataModuleCreate(Sender: TObject); +begin + RemoteService.Channel := dmBase.Channel; + RemoteService.Message := dmBase.Message; +end; + +function TdmVentasEnProceso.GetControl: IBizControlVentasProceso; +var + aDataTable : TDACDSDataTable; +begin + aDataTable := dmControles.GetItems(CATEGORIA_VENTAS_PROCESO); + aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASPROCESO; + + (aDataTable as IBizControlVentasProceso).Items := GetItems; + Result := (aDataTable as IBizControlVentasProceso); +end; + +function TdmVentasEnProceso.GetItems: IBizVentasProceso; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasEnProcesoPendientes2, dtVentas); + dtVentas.Fields.AssignFieldCollection(tbl_VentasEnProcesoPendientes.Fields); + dtVentas.BusinessRulesID := BIZ_VENTASPROCESO; + + dtVentas.FieldByName(fld_VentasEnProcesoPendientesNUMINF).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE1).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE2).Visible := False; + dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE3).Visible := False; + + dtVentas.LoadSchema; + Result := (dtVentas as IBizVentasProceso); + finally + HideHourglassCursor; + end; +end; + +function TdmVentasEnProceso.GetNameColumns: String; +var + AList : TStringList; + i : integer; +begin + AList := TStringList.Create; + try + for i := 0 to tbl_VentasEnProcesoPendientes.FieldCount - 1 do + if tbl_VentasEnProcesoPendientes.Fields[i].Visible then + AList.Add(tbl_VentasEnProcesoPendientes.Fields[i].Name); + Result := AList.CommaText; + finally + FreeAndNil(AList); + end; +end; + + +initialization + dmVentasEnProceso := TdmVentasEnProceso.Create(nil); + +finalization + FreeAndNil(dmVentasEnProceso); + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm new file mode 100644 index 0000000..037ce6c --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm @@ -0,0 +1,1716 @@ +inherited fEditorControlVentaProceso: TfEditorControlVentaProceso + Left = 231 + Top = 105 + Width = 687 + Height = 607 + ActiveControl = frViewControlVentaProceso1.bRefrescar + Caption = 'fEditorControlVentaProceso' + OnCreate = CustomEditorCreate + OnGetModified = CustomEditorGetModified + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D + 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 + A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 + 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 + EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 + 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 + 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E + D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 + 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C + EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF + 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 + 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C + 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 + 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 + 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 + E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F + BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 + 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 + FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D + C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 + F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B + AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + Width = 679 + inherited tbxMain: TTBXToolbar + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + end + inline frViewControlVentaProceso1: TfrViewControlVentaProceso [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited TBXMultiDock1: TTBXMultiDock + Width = 238 + Height = 478 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 234 + SplitHeight = 240 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 234 + inherited TBXLink1: TTBXLink + Width = 226 + end + inherited TBXLink5: TTBXLink + Width = 226 + end + inherited TBXLink2: TTBXLink + Width = 226 + end + end + inherited pcParametros: TPageControl + Width = 234 + Height = 121 + inherited tsColumnas: TTabSheet + inherited frViewColumnas1: TfrViewColumnas + Height = 0 + inherited lbColumnas: TcxCheckListBox + Height = 0 + end + end + end + inherited tsAgrupacion: TTabSheet + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 226 + Height = 111 + inherited TBXLabel1: TTBXLabel + Width = 226 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 226 + inherited TBXButton1: TTBXButton + Width = 114 + end + inherited TBXButton3: TTBXButton + Width = 114 + end + inherited TBXButton2: TTBXButton + Width = 114 + end + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 188 + Width = 234 + inherited bRefrescar: TButton + OnClick = frViewControlVentaProceso1bRefrescarClick + end + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 240 + DockedWidth = 234 + DockPos = 240 + SplitHeight = 222 + inherited TBXPageScroller1: TTBXPageScroller + Width = 234 + Height = 200 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 234 + inherited bFiltros: TTBXLink + Width = 226 + end + inherited bSumarios: TTBXLink + Width = 226 + end + end + inherited pcTareas: TPageControl + Width = 234 + Height = 152 + inherited tsSumarios: TTabSheet + inherited frViewSumarios1: TfrViewSumarios + Height = 48 + inherited vgSumarios: TcxVerticalGrid + Height = 19 + end + end + end + inherited tsFiltros: TTabSheet + inherited frViewFiltros1: TfrViewFiltros + Width = 226 + Height = 142 + inherited vgFiltros: TcxVerticalGrid + Height = 130 + end + inherited TBXLabel1: TTBXLabel + Width = 226 + end + inherited cxFilterControl1: TcxFilterControl + Width = 226 + Height = 83 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 112 + Width = 226 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 24 + Top = 48 + end + end + end + end + end + end + end + inherited frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso + Left = 238 + Width = 441 + Height = 478 + inherited cxGrid: TcxGrid + Width = 441 + Height = 478 + inherited cxGridView: TcxGridDBTableView + DataController.DataSource = dsVentasProceso + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList + Left = 216 + Top = 176 + end + inherited LargeImages: TPngImageList + Left = 192 + Top = 176 + end + end + inherited EditorActionList: TActionList [4] + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + object dsVentasProceso: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas new file mode 100644 index 0000000..b35e453 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas @@ -0,0 +1,241 @@ +unit uEditorControlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, uViewControlVentaProceso, + Grids, DBGrids, pngimage; + +type + IEditorControlVentaProceso = interface(IEditorControlBase) + ['{7F768AD2-1FF0-41E0-9157-4AB2E2CD7D32}'] + end; + + TfEditorControlVentaProceso = class(TfEditorControlBase, IEditorControlVentaProceso) + frViewControlVentaProceso1: TfrViewControlVentaProceso; + dsVentasProceso: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + procedure actRefrescarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure CustomEditorCreate(Sender: TObject); + procedure CustomEditorGetModified(Sender: TObject; + var Modified: Boolean); + procedure actGuardarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure frViewControlVentaProceso1bRefrescarClick(Sender: TObject); + private + procedure RestaurarConfiguracion; + procedure GuardarConfiguracion; + protected + FModificado : Boolean; + procedure OnViewControlChanged(Sender: TObject); + procedure SetControl(const Value: IBizControlBase); override; + procedure RellenarCabeceraInforme; + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + uEditorUtils, uBizControlVentasProceso, uROClasses, + cxGridTableView; + +{$R *.dfm} + +function ShowEditorVentasProceso (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: IEditorControlVentaProceso; //TfEditorInformeVentas; +begin + AEditor := TfEditorControlVentaProceso.Create(Application); + try + AEditor.Control := (ABizObject as IBizControlVentasProceso); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorControlVentaProceso } + +procedure TfEditorControlVentaProceso.SetControl( + const Value: IBizControlBase); +begin + inherited; + RefrescarTituloEditor; + if Assigned(FControl) then + begin + frViewControlVentaProceso1.Control := FControl; + frViewControlVentaProceso1.OnViewChanged := OnViewControlChanged; + dsDataTable.DataTable := FControl.DataTable; + with (FControl as IBizControlVentasProceso) do + begin + Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' + dsVentasProceso.DataTable := Items.DataTable; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.DataSource := dsVentasProceso; + end; + end; +end; + +procedure TfEditorControlVentaProceso.actRefrescarExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.Refresh; + + while (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord.Expand(True); + if (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecordIndex < + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.RowCount - 1) then + frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.GoToNext(False, True) + else + Exit; + end; +end; + +procedure TfEditorControlVentaProceso.actExpandirExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ExpandirTodo; +end; + +procedure TfEditorControlVentaProceso.actContraerExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ContraerTodo; +end; + +procedure TfEditorControlVentaProceso.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.AjustarAncho; +end; + +procedure TfEditorControlVentaProceso.OnViewControlChanged( + Sender: TObject); +begin + FModificado := True; +end; + +procedure TfEditorControlVentaProceso.CustomEditorCreate(Sender: TObject); +begin + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentaProceso.CustomEditorGetModified( + Sender: TObject; var Modified: Boolean); +begin + inherited; + Modified := FModificado; +end; + +procedure TfEditorControlVentaProceso.actGuardarExecute(Sender: TObject); +begin + GuardarConfiguracion; + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentaProceso.GuardarConfiguracion; +var + Aux : IROStrings; +begin + Aux := NewROStrings(); + Aux.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties); + if not (FControl.DataTable.State in dsEditModes) then + FControl.Edit; + FControl.VISTA := Aux; +end; + +procedure TfEditorControlVentaProceso.RestaurarConfiguracion; +begin + frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties := FControl.VISTA.Text; +end; + +procedure TfEditorControlVentaProceso.FormShow(Sender: TObject); +begin + inherited; + if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando + RestaurarConfiguracion; + frViewControlVentaProceso1.frViewColumnas1.Refresh; + frViewControlVentaProceso1.frViewAgrupaciones1.Refresh; +end; + +procedure TfEditorControlVentaProceso.actPrevisualizarExecute( + Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.Preview; +end; + +procedure TfEditorControlVentaProceso.actImprimirExecute(Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.Print; +end; + +procedure TfEditorControlVentaProceso.actConfPaginaExecute( + Sender: TObject); +begin + inherited; + RellenarCabeceraInforme; + frViewControlVentaProceso1.frViewControlGridVentaProceso1.PrintSetup; +end; + +procedure TfEditorControlVentaProceso.RellenarCabeceraInforme; +begin + with frViewControlVentaProceso1.frViewControlGridVentaProceso1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do + begin + LeftTitle.Clear; + LeftTitle.Add(FControl.NOMBRE); + RightTitle.Clear; + RightTitle.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.Filter.FilterText); + end; +end; + +constructor TfEditorControlVentaProceso.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlVentaProceso1; + Self.Caption := 'Nueva consulta de ventas en proceso'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +procedure TfEditorControlVentaProceso.frViewControlVentaProceso1bRefrescarClick( + Sender: TObject); +begin + inherited; + frViewControlVentaProceso1.actRefrescarExecute(Sender); + +end; + +initialization + RegisterEditor(IBizControlVentasProceso, ShowEditorVentasProceso, etItem); + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm new file mode 100644 index 0000000..4100cc7 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm @@ -0,0 +1,154 @@ +inherited fEditorControlesVentasProceso: TfEditorControlesVentasProceso + Left = 499 + Top = 346 + ActiveControl = frViewControlesVentaProceso1.EasyListview + Caption = 'fEditorControlesVentasProceso' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Control de ventas en proceso' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D + 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 + A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 + 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 + EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 + 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 + 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E + D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 + 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C + EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF + 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 + 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C + 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 + 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 + 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 + E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F + BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 + 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 + FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D + C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 + F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B + AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} + end + end + inline frViewControlesVentaProceso1: TfrViewControlesVentaProceso [3] + Left = 0 + Top = 76 + Width = 654 + Height = 368 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + inherited EasyListview: TEasyListview + Width = 654 + Height = 368 + end + end + inherited EditorActionList: TActionList [4] + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited ViewPopupMenu: TPopupMenu [10] + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas new file mode 100644 index 0000000..8a30a92 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas @@ -0,0 +1,40 @@ +unit uEditorControlesVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, + uViewBase, uViewControlesBase, uViewControlesVentaProceso, Menus, DB, + uDADataTable; + +type + IEditorControlesVentasProceso = interface(IEditorControlesBase) + ['{691E2C4E-32EF-4F86-9DDE-036A6BCCEF0E}'] + end; + + TfEditorControlesVentasProceso = class(TfEditorControlesBase, IEditorControlesVentasProceso) + frViewControlesVentaProceso1: TfrViewControlesVentaProceso; + private + { Private declarations } + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +{$R *.dfm} + +{ TfEditorControlVentaProceso } + +constructor TfEditorControlesVentasProceso.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlesVentaProceso1; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm new file mode 100644 index 0000000..ac4c156 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm @@ -0,0 +1,284 @@ +object ModuleVentasProceso: TModuleVentasProceso + OldCreateOrder = True + Description = 'Controles de ventas en proceso' + ModuleMenu = MainMenu + ModuleName = 'Controles de ventas en proceso' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.4' + Left = 779 + Top = 651 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000029C4944415478DAB5955D48145114 + C7FFB32B7D083DD8832D0559F420F950C950E1530F421F083D4451422CD88B94 + 0829591229A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042 + E64E9A1F51664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382 + 611848A709EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF9 + 9CBAFA9BE06C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE99 + 5388B557A976E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B + 006D87C32ED08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9D + C1078530C43E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D80 + 1C581DE00CEEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B732 + 9E2F0FF8BF34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C5 + 62989D9D453C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6 + CC17AB039C104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF + 2940CD112531C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A367 + 9A9031FF156565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B + 721475B921E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1 + A67BBA392FBCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F + 805C69CED9214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F167 + 4E15217B83FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB + 02F8AEC58DC10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71A + DDBA002CF8F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D066674152 + 06ECF2771BAB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actVentasProceso: TAction + Category = 'Ventas' + Caption = 'Control de ventas en proceso' + ImageIndex = 0 + OnExecute = actVentasProcesoExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + object Controldeventasenproceso1: TMenuItem + Tag = 101 + Action = actVentasProceso + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000023F4944415478DAA5936B48536118 + C7FFE76CF3D26C2859D14DC106899452D9C0CABE84945DC8A23E7841A2A612E5 + B7A02F4151F929FC9262810EA1C0465B0BA2584BB34FE939D636D7D29439626E + BAD96DDAEE97734E9D236B2E7444FDE185079EE7FD3DEFF37F78098EE3F03F22 + FA9E8DFC33A1EE98821000DB8E8AD0419F5FB628C63008C5E308C66258088785 + 5875E23994877B6036DC4D027825202A8509D96D36E46D5A8303F255A0C719B8 + BC0C589201E9FF8EED6F541049169280E53A5F9B944116F2A131CB0A2D2582FD + 3381081106290A614FEE3C1ACE55A77AF0E7181EF72EF8069BD05EFD03322909 + C78C139ED939A87563709F34A1F7F203618C14C0D231EAA434D4541477943918 + 7632F058DE214BE2834EA54755EB7E945516A6025EE637FFEECE7BC0B24079FB + 2B349716E1668F05511B8DFA53C5301BF570D4BE104C2DE83BBB3280976884C4 + E6C78FD05AC04216746190FA0AEA4C9770993FC59A26107C210F590AE0930FF7 + 598558D1F60DB70ECE20C73F8DFAABF710B8F85AC8F3EBDCF9E4421290305148 + 0A1D1838E8FB5037EEC0EE8D7ED8A65CD00F98D0FD74001F4E6B616C312E7A90 + 00DCEEE84D59A32FB30865476AA16D5907659713F31334AED710B8D149E3E397 + 002452F1E21A57FA0B924BEEAA4A79DC90BF9620343A3BB2A70DA8392E47C462 + E5264CAE43639F34FD6901EBAF7887CA4BA4155B4BA3783B29063597F1EB5901 + E459FA5138A51F369BBBF7A6056C6930442A309E51B281E1461D24EC5E16B170 + 0011B184581D9C8DBEA73B33D302FE563F01DC582D540042BC50000000004945 + 4E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas new file mode 100644 index 0000000..1cd6e41 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas @@ -0,0 +1,73 @@ +unit uPluginControllerVentasProceso; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCVentas = interface(IInterface) + ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] + end; + + TModuleVentasProceso = class(TModuleController, IMCVentas) + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + actVentasProceso: TAction; + Controldeventasenproceso1: TMenuItem; + procedure actVentasProcesoExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasProceso, + uEditorControlesVentaProceso, uDataModuleControles, + uBizControlVentasProceso, uEditorControlesBase; + +function GetModule : TModuleController; +begin + Result := TModuleVentasProceso.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleVentasProceso.actVentasProcesoExecute(Sender: TObject); +var + aControl: IBizControlVentasProceso; + aObj: IEditorControlesVentasProceso; +begin + aControl := dmVentasEnProceso.GetControl; + aObj := TfEditorControlesVentasProceso.Create(Application); + try + with aObj do + begin + Control := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleVentasProceso); + +finalization + UnRegisterModuleClass(TModuleVentasProceso); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm new file mode 100644 index 0000000..8004f66 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm @@ -0,0 +1,194 @@ +inherited frViewControlGridVentaProceso: TfrViewControlGridVentaProceso + Width = 632 + Height = 419 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 632 + Height = 419 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.CustomizeDialog = False + FilterBox.Visible = fvAlways + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary + DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged + DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.DataRowSizing = True + OptionsCustomize.GroupRowSizing = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.HeaderEndEllipsis = True + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + Styles.FilterBox = cxStyleFilterBox + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + OnColumnPosChanged = cxGridViewColumnPosChanged + OnColumnSizeChanged = cxGridViewColumnSizeChanged + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + end + object cxGridViewDIA: TcxGridDBColumn + Caption = 'Dia' + DataBinding.FieldName = 'DIA' + end + object cxGridViewDIASEMANA: TcxGridDBColumn + Caption = 'Dia de la semana' + DataBinding.FieldName = 'DIASEMANA' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup + end + object cxGridViewMES: TcxGridDBColumn + Caption = 'Mes' + DataBinding.FieldName = 'MES' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup + end + object cxGridViewANO: TcxGridDBColumn + Caption = 'A'#241'o' + DataBinding.FieldName = 'ANO' + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Talon' + DataBinding.FieldName = 'NUMTALON' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewNUMTALONPropertiesInitPopup + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'Codigo' + DataBinding.FieldName = 'CODIGO' + PropertiesClassName = 'TcxTextEditProperties' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup + end + object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn + Caption = 'Grupo' + DataBinding.FieldName = 'GRUPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup + end + object cxGridViewTIPOPRODUCTO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Coleccion' + DataBinding.FieldName = 'COLECCION' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taLeftJustify + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taLeftJustify + end + object cxGridViewINICIO: TcxGridDBColumn + Caption = 'Inicio' + DataBinding.FieldName = 'INICIO' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewFINAL: TcxGridDBColumn + Caption = 'Final' + DataBinding.FieldName = 'FINAL' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE: TcxGridDBColumn + Caption = 'Importe' + DataBinding.FieldName = 'IMPORTE' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + Component = cxGrid + BuiltInReportLink = True + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 16 + Top = 48 + object cxStyleRed: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleBlue: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleFilterBox: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInfoBk + TextColor = clWindowText + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas new file mode 100644 index 0000000..b4637dd --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas @@ -0,0 +1,351 @@ +unit uViewControGridlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls; + +type + IViewControlGridVentaProceso = interface(IViewControlGrid) + ['{537E8507-695E-4345-AAEE-F573C113A2CF}'] + end; + + TfrViewControlGridVentaProceso = class(TfrViewControlGrid, IViewControlGridVentaProceso) + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewDIA: TcxGridDBColumn; + cxGridViewDIASEMANA: TcxGridDBColumn; + cxGridViewMES: TcxGridDBColumn; + cxGridViewANO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; + cxGridViewTIPOPRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewIMPORTE: TcxGridDBColumn; + cxGridViewINICIO: TcxGridDBColumn; + cxGridViewFINAL: TcxGridDBColumn; + cxGridLevel: TcxGridLevel; + cxStyleRepository1: TcxStyleRepository; + cxStyleRed: TcxStyle; + cxStyleBlue: TcxStyle; + cxStyleFilterBox: TcxStyle; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); + procedure cxGridViewDataControllerSortingChanged(Sender: TObject); + procedure cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); + procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); + procedure cxGridViewNUMTALONPropertiesInitPopup(Sender: TObject); + procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerFilterChanged(Sender: TObject); + procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); + procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); + procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); + protected + procedure ActivarEventos; override; + procedure DesactivarEventos; override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure Refresh; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses + cxVariants, DateUtils, uDataModuleVentasProceso; + +{$R *.dfm} + +{ TfrViewControlGridVentaProceso } + +function TfrViewControlGridVentaProceso.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridVentaProceso.Refresh; +var + FocusedRow, TopRow : Integer; +begin + inherited; + { Refrescar las filas del grid a partir del dataset y colocar la fila + seleccionada donde estaba } + if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then + begin + TopRow := FocusedView.Controller.TopRowIndex; + FocusedRow := FocusedView.DataController.FocusedRowIndex; + + FocusedView.DataController.UpdateItems(False); // <- Refresco + + FocusedView.DataController.FocusedRowIndex := FocusedRow; + FocusedView.Controller.TopRowIndex := TopRow; + + { Esta chapuzilla es para que se rellenen los combobox de los filtros + por que el cxFilterControl no coge los valores la 1ª vez si los + combos están vacíos. } + TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewNUMTALON.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo + if ARecord.Expandable then + Exit; + + AColumn := FocusedView.GetColumnByFieldName('FECHA'); + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); + end; + + if DaysBetween(Now, AFecha) > 14 then + AStyle := cxStyleRed + else + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleBlue + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewColumnPosChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewColumnSizeChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerGroupingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSortingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewCENTROPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewVENDEDORPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewNUMTALONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewNUMTALON.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewNUMTALON.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerFilterChanged( + Sender: TObject); +begin + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +constructor TfrViewControlGridVentaProceso.Create(AOwner: TComponent); +begin + inherited; +end; + +procedure TfrViewControlGridVentaProceso.ActivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; + DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; + DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; + DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; + OnColumnPosChanged := cxGridViewColumnPosChanged; + OnColumnSizeChanged := cxGridViewColumnSizeChanged; + end; +end; + +procedure TfrViewControlGridVentaProceso.DesactivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := nil; + DataController.Summary.OnAfterSummary := nil; + DataController.OnGroupingChanged := nil; + DataController.OnSortingChanged := nil; + OnColumnPosChanged := nil; + OnColumnSizeChanged := nil; + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewDIASEMANAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewMESPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewMES.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewMES.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewTIPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentaProceso.cxGridViewCOLECCIONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm new file mode 100644 index 0000000..e3b4ec4 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm @@ -0,0 +1,148 @@ +inherited frViewControlVentaProceso: TfrViewControlVentaProceso + Height = 608 + inherited TBXMultiDock1: TTBXMultiDock + Width = 232 + Height = 608 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 228 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 228 + inherited TBXLink1: TTBXLink + Width = 220 + Visible = False + end + inherited TBXLink5: TTBXLink + Width = 220 + end + inherited TBXLink2: TTBXLink + Width = 220 + end + end + inherited pcParametros: TPageControl + Width = 228 + Height = 170 + inherited tsColumnas: TTabSheet + inherited frViewColumnas1: TfrViewColumnas + Width = 220 + Height = 160 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited lbColumnas: TcxCheckListBox + Width = 220 + Height = 131 + end + end + end + inherited tsAgrupacion: TTabSheet + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 220 + Height = 160 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 220 + DesignSize = ( + 220 + 77) + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 237 + Width = 228 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 289 + DockedWidth = 228 + DockPos = 289 + Visible = False + inherited TBXPageScroller1: TTBXPageScroller + Width = 228 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 228 + inherited bFiltros: TTBXLink + Width = 220 + end + inherited bSumarios: TTBXLink + Width = 220 + end + end + inherited pcTareas: TPageControl + Width = 228 + inherited tsSumarios: TTabSheet + inherited frViewSumarios1: TfrViewSumarios + Width = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited vgSumarios: TcxVerticalGrid + Width = 220 + end + end + end + inherited tsFiltros: TTabSheet + inherited frViewFiltros1: TfrViewFiltros + Width = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + end + inherited cxFilterControl1: TcxFilterControl + Width = 220 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 220 + end + end + end + end + end + end + end + inline frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso [1] + Left = 232 + Top = 0 + Width = 467 + Height = 608 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + inherited cxGrid: TcxGrid + Width = 467 + Height = 608 + inherited cxGridView: TcxGridDBTableView + FilterBox.Visible = fvNever + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList [2] + end + inherited LargeImages: TPngImageList [3] + end + inherited EditorActionList: TActionList + Left = 248 + Top = 72 + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas new file mode 100644 index 0000000..97f4633 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas @@ -0,0 +1,120 @@ +unit uViewControlVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, + uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, + uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, + TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + cxTextEdit, uViewControGridlVentaProceso, uViewFiltros; + +type + IViewControlVentaProceso = interface(IViewControlBase) + ['{C3433C18-BB61-4046-BC0B-CE783A6F7189}'] + end; + + TfrViewControlVentaProceso = class(TfrViewControlBase, IViewControlVentaProceso) + frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso; + procedure actRefrescarExecute(Sender: TObject); + protected + FModificado : Boolean; + procedure OnViewControlGridChanged(Sender : TObject); + procedure OnFilterChanged(Sender : TObject); + public + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation + +uses uDataModuleVentasProceso, uBizControlVentasProceso, uBizVentasProceso; + +{$R *.dfm} + +{ TfrViewControlVentaProceso } + +constructor TfrViewControlVentaProceso.Create(AOwner: TComponent); +begin + inherited; + frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; + frViewColumnas1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewSumarios1.ViewControlGrid := frViewControlGridVentaProceso1; + frViewFiltros1.ViewControlGrid := frViewControlGridVentaProceso1; +end; + +procedure TfrViewControlVentaProceso.Refresh; +var + AColumns : TStringList; +begin + inherited; + ShowHourglassCursor; + actRefrescar.Enabled := False; + + frViewControlGridVentaProceso1.OnViewChanged := nil; + frViewControlGridVentaProceso1.OnFilterChanged := nil; + + try + // Calcular las columnas a pedir al servidor + AColumns := frViewColumnas1.GetCheckedColumns; + AColumns.Duplicates := dupIgnore; + AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); + + (Control as IBizControlVentasProceso).Items.VisibleColumns := AColumns.CommaText; + with (Control as IBizControlVentasProceso).Items.DataTable do + begin + DisableControls; + try + Active := False; + LoadSchema; + Active := True; + + frViewColumnas1.Execute; + frViewAgrupaciones1.Execute; + frViewSumarios1.Refresh; + frViewFiltros1.Refresh; + pnlTareas.Visible := True; + + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); + finally + EnableControls; + frViewControlGridVentaProceso1.Refresh; + frViewControlGridVentaProceso1.ExpandirTodo; + frViewControlGridVentaProceso1.GotoFirst; + end; + end; + finally + FreeAndNil(AColumns); + frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; + actRefrescar.Enabled := True; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlVentaProceso.actRefrescarExecute(Sender: TObject); +begin + inherited; + Refresh; +end; + +procedure TfrViewControlVentaProceso.OnViewControlGridChanged( + Sender: TObject); +begin + if Assigned(Self.OnViewChanged) then + Self.OnViewChanged(Self); +end; + +procedure TfrViewControlVentaProceso.OnFilterChanged(Sender: TObject); +begin + frViewFiltros1.Refresh; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm new file mode 100644 index 0000000..1c5d52e --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm @@ -0,0 +1,2 @@ +inherited frViewControlesVentaProceso: TfrViewControlesVentaProceso +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas new file mode 100644 index 0000000..637f1e4 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas @@ -0,0 +1,24 @@ +unit uViewControlesVentaProceso; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, + PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, + MPCommonObjects, MPCommonUtilities, EasyListview; + +type + IViewControlesVentaProceso = interface(IViewControlesBase) + ['{FEC70D50-494A-477A-B907-A5752223ABF1}'] + end; + + TfrViewControlesVentaProceso = class(TfrViewControlesBase, IViewControlesVentaProceso) + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas new file mode 100644 index 0000000..c0cc047 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas @@ -0,0 +1,460 @@ +unit schVentasEnProcesoClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasEnProcesoPendientes = '{6A914050-F90B-4E27-992C-A010950CC420}'; + + { Data table names } + nme_VentasEnProcesoPendientes = 'VentasEnProcesoPendientes'; + + { VentasEnProcesoPendientes fields } + fld_VentasEnProcesoPendientesNUMINF = 'NUMINF'; + fld_VentasEnProcesoPendientesCLAVE1 = 'CLAVE1'; + fld_VentasEnProcesoPendientesCLAVE2 = 'CLAVE2'; + fld_VentasEnProcesoPendientesCLAVE3 = 'CLAVE3'; + fld_VentasEnProcesoPendientesFECHA = 'FECHA'; + fld_VentasEnProcesoPendientesDIA = 'DIA'; + fld_VentasEnProcesoPendientesDIASEMANA = 'DIASEMANA'; + fld_VentasEnProcesoPendientesMES = 'MES'; + fld_VentasEnProcesoPendientesANO = 'ANO'; + fld_VentasEnProcesoPendientesCENTRO = 'CENTRO'; + fld_VentasEnProcesoPendientesVENDEDOR = 'VENDEDOR'; + fld_VentasEnProcesoPendientesNUMTALON = 'NUMTALON'; + fld_VentasEnProcesoPendientesCODIGO = 'CODIGO'; + fld_VentasEnProcesoPendientesPRODUCTO = 'PRODUCTO'; + fld_VentasEnProcesoPendientesGRUPOPRODUCTO = 'GRUPOPRODUCTO'; + fld_VentasEnProcesoPendientesTIPOPRODUCTO = 'TIPOPRODUCTO'; + fld_VentasEnProcesoPendientesCOLECCION = 'COLECCION'; + fld_VentasEnProcesoPendientesCOLOR = 'COLOR'; + fld_VentasEnProcesoPendientesTALLA = 'TALLA'; + fld_VentasEnProcesoPendientesINICIO = 'INICIO'; + fld_VentasEnProcesoPendientesFINAL = 'FINAL'; + fld_VentasEnProcesoPendientesIMPORTE = 'IMPORTE'; + + { VentasEnProcesoPendientes field indexes } + idx_VentasEnProcesoPendientesNUMINF = 0; + idx_VentasEnProcesoPendientesCLAVE1 = 1; + idx_VentasEnProcesoPendientesCLAVE2 = 2; + idx_VentasEnProcesoPendientesCLAVE3 = 3; + idx_VentasEnProcesoPendientesFECHA = 4; + idx_VentasEnProcesoPendientesDIA = 5; + idx_VentasEnProcesoPendientesDIASEMANA = 6; + idx_VentasEnProcesoPendientesMES = 7; + idx_VentasEnProcesoPendientesANO = 8; + idx_VentasEnProcesoPendientesCENTRO = 9; + idx_VentasEnProcesoPendientesVENDEDOR = 10; + idx_VentasEnProcesoPendientesNUMTALON = 11; + idx_VentasEnProcesoPendientesCODIGO = 12; + idx_VentasEnProcesoPendientesPRODUCTO = 13; + idx_VentasEnProcesoPendientesGRUPOPRODUCTO = 14; + idx_VentasEnProcesoPendientesTIPOPRODUCTO = 15; + idx_VentasEnProcesoPendientesCOLECCION = 16; + idx_VentasEnProcesoPendientesCOLOR = 17; + idx_VentasEnProcesoPendientesTALLA = 18; + idx_VentasEnProcesoPendientesINICIO = 19; + idx_VentasEnProcesoPendientesFINAL = 20; + idx_VentasEnProcesoPendientesIMPORTE = 21; + +type + { IVentasEnProcesoPendientes } + IVentasEnProcesoPendientes = interface(IDAStronglyTypedDataTable) + ['{75EFCBF2-47FD-4655-A865-27703C29C80D}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetDIAValue: Integer; + procedure SetDIAValue(const aValue: Integer); + function GetDIASEMANAValue: String; + procedure SetDIASEMANAValue(const aValue: String); + function GetMESValue: String; + procedure SetMESValue(const aValue: String); + function GetANOValue: Integer; + procedure SetANOValue(const aValue: Integer); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetGRUPOPRODUCTOValue: String; + procedure SetGRUPOPRODUCTOValue(const aValue: String); + function GetTIPOPRODUCTOValue: String; + procedure SetTIPOPRODUCTOValue(const aValue: String); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetINICIOValue: Float; + procedure SetINICIOValue(const aValue: Float); + function GetFINALValue: Float; + procedure SetFINALValue(const aValue: Float); + function GetIMPORTEValue: Float; + procedure SetIMPORTEValue(const aValue: Float); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; + property MES: String read GetMESValue write SetMESValue; + property ANO: Integer read GetANOValue write SetANOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property INICIO: Float read GetINICIOValue write SetINICIOValue; + property FINAL: Float read GetFINALValue write SetFINALValue; + property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; + end; + + { TVentasEnProcesoPendientesDataTableRules } + TVentasEnProcesoPendientesDataTableRules = class(TDADataTableRules, IVentasEnProcesoPendientes) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIASEMANAValue: String; virtual; + procedure SetDIASEMANAValue(const aValue: String); virtual; + function GetMESValue: String; virtual; + procedure SetMESValue(const aValue: String); virtual; + function GetANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetINICIOValue: Float; virtual; + procedure SetINICIOValue(const aValue: Float); virtual; + function GetFINALValue: Float; virtual; + procedure SetFINALValue(const aValue: Float); virtual; + function GetIMPORTEValue: Float; virtual; + procedure SetIMPORTEValue(const aValue: Float); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; + property MES: String read GetMESValue write SetMESValue; + property ANO: Integer read GetANOValue write SetANOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property INICIO: Float read GetINICIOValue write SetINICIOValue; + property FINAL: Float read GetFINALValue write SetFINALValue; + property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TVentasEnProcesoPendientesDataTableRules } +constructor TVentasEnProcesoPendientesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasEnProcesoPendientesDataTableRules.Destroy; +begin + inherited; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetDIAValue: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetDIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetDIASEMANAValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetDIASEMANAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetMESValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetMESValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetANOValue: Integer; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetANOValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetGRUPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetTIPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetINICIOValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetINICIOValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetFINALValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetFINALValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat := aValue; +end; + +function TVentasEnProcesoPendientesDataTableRules.GetIMPORTEValue: Float; +begin + result := DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat; +end; + +procedure TVentasEnProcesoPendientesDataTableRules.SetIMPORTEValue(const aValue: Float); +begin + DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat := aValue; +end; + + +initialization + RegisterDataTableRules(RID_VentasEnProcesoPendientes, TVentasEnProcesoPendientesDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas new file mode 100644 index 0000000..62901ca --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas @@ -0,0 +1,541 @@ +unit schVentasEnProcesoServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schVentasEnProcesoClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasEnProcesoPendientesDelta = '{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'; + +type + { IVentasEnProcesoPendientesDelta } + IVentasEnProcesoPendientesDelta = interface(IVentasEnProcesoPendientes) + ['{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldFECHAValue : DateTime; + function GetOldDIAValue : Integer; + function GetOldDIASEMANAValue : String; + function GetOldMESValue : String; + function GetOldANOValue : Integer; + function GetOldCENTROValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldGRUPOPRODUCTOValue : String; + function GetOldTIPOPRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldINICIOValue : Float; + function GetOldFINALValue : Float; + function GetOldIMPORTEValue : Float; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldDIA : Integer read GetOldDIAValue; + property OldDIASEMANA : String read GetOldDIASEMANAValue; + property OldMES : String read GetOldMESValue; + property OldANO : Integer read GetOldANOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldINICIO : Float read GetOldINICIOValue; + property OldFINAL : Float read GetOldFINALValue; + property OldIMPORTE : Float read GetOldIMPORTEValue; + end; + + { TVentasEnProcesoPendientesBusinessProcessorRules } + TVentasEnProcesoPendientesBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasEnProcesoPendientes, IVentasEnProcesoPendientesDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetOldCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetDIAValue: Integer; virtual; + function GetOldDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIASEMANAValue: String; virtual; + function GetOldDIASEMANAValue: String; virtual; + procedure SetDIASEMANAValue(const aValue: String); virtual; + function GetMESValue: String; virtual; + function GetOldMESValue: String; virtual; + procedure SetMESValue(const aValue: String); virtual; + function GetANOValue: Integer; virtual; + function GetOldANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetVENDEDORValue: String; virtual; + function GetOldVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCODIGOValue: String; virtual; + function GetOldCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetPRODUCTOValue: String; virtual; + function GetOldPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + function GetOldGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + function GetOldTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetCOLECCIONValue: String; virtual; + function GetOldCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetINICIOValue: Float; virtual; + function GetOldINICIOValue: Float; virtual; + procedure SetINICIOValue(const aValue: Float); virtual; + function GetFINALValue: Float; virtual; + function GetOldFINALValue: Float; virtual; + procedure SetFINALValue(const aValue: Float); virtual; + function GetIMPORTEValue: Float; virtual; + function GetOldIMPORTEValue: Float; virtual; + procedure SetIMPORTEValue(const aValue: Float); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property DIA : Integer read GetDIAValue write SetDIAValue; + property OldDIA : Integer read GetOldDIAValue; + property DIASEMANA : String read GetDIASEMANAValue write SetDIASEMANAValue; + property OldDIASEMANA : String read GetOldDIASEMANAValue; + property MES : String read GetMESValue write SetMESValue; + property OldMES : String read GetOldMESValue; + property ANO : Integer read GetANOValue write SetANOValue; + property OldANO : Integer read GetOldANOValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property OldCODIGO : String read GetOldCODIGOValue; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property INICIO : Float read GetINICIOValue write SetINICIOValue; + property OldINICIO : Float read GetOldINICIOValue; + property FINAL : Float read GetFINALValue write SetFINALValue; + property OldFINAL : Float read GetOldFINALValue; + property IMPORTE : Float read GetIMPORTEValue write SetIMPORTEValue; + property OldIMPORTE : Float read GetOldIMPORTEValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TVentasEnProcesoPendientesBusinessProcessorRules } +constructor TVentasEnProcesoPendientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasEnProcesoPendientesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMINF]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE1]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE2]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE3]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFECHA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIASEMANAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIASEMANAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIASEMANAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetMESValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldMESValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesMES]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetMESValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesANO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetANOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCENTRO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMTALON]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCODIGO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLECCION]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLOR]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTALLA]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetINICIOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldINICIOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesINICIO]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetINICIOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFINALValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFINAL]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFINALValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL] := aValue; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetIMPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE]; +end; + +function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldIMPORTEValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesIMPORTE]; +end; + +procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetIMPORTEValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_VentasEnProcesoPendientesDelta, TVentasEnProcesoPendientesBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas new file mode 100644 index 0000000..ba8031f --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas @@ -0,0 +1,69 @@ +unit uBizControlVentasProceso; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, + uBizVentasProceso; + +const + BIZ_CONTROL_VENTASPROCESO = 'Client.Control_VentasProceso'; + +type + IBizControlVentasProceso = interface(IBizControlBase) + ['{3D515579-7374-444F-8983-8FFE1C7A38C4}'] + procedure SetItems(const Value : IBizVentasProceso); + function GetItems : IBizVentasProceso; + property Items : IBizVentasProceso read GetItems write SetItems; + end; + + TBizControlVentasProcesoTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasProceso) + protected + FItems : IBizVentasProceso; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure SetItems(const Value : IBizVentasProceso); virtual; + function GetItems : IBizVentasProceso; virtual; + public + procedure Show; override; + property Items : IBizVentasProceso read GetItems write SetItems; + end; + + +implementation + +uses + uEditorUtils, uDataModuleVentasProceso; + +{ TBizControlVentasProcesoTableRules } + +function TBizControlVentasProcesoTableRules.GetItems: IBizVentasProceso; +begin + Result := FItems; +end; + +procedure TBizControlVentasProcesoTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + CATEGORIA := CATEGORIA_VENTAS_PROCESO +end; + +procedure TBizControlVentasProcesoTableRules.SetItems( + const Value: IBizVentasProceso); +begin + FItems := Value; +end; + +procedure TBizControlVentasProcesoTableRules.Show; +begin + inherited; + ShowEditor(IBizControlVentasProceso, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_CONTROL_VENTASPROCESO, TBizControlVentasProcesoTableRules); + +finalization +end. + + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas new file mode 100644 index 0000000..fe6e9eb --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas @@ -0,0 +1,88 @@ +unit uBizVentasProceso; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schVentasEnProcesoClient_Intf; + +const + BIZ_VENTASPROCESO = 'Client.VentasProceso'; + +type + IBizVentasProceso = interface(IVentasEnProcesoPendientes) + ['{FA9EC0B7-D12E-4088-8406-D9A86441C3B3}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + TBizVentasProcesoDataTableRules = class(TVentasEnProcesoPendientesDataTableRules, IBizVentasProceso) + private + FVisibleColumns : String; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + +implementation + +uses + uDataModuleVentasProceso; + +{ TBizVentasProcesoDataTableRules } + +constructor TBizVentasProcesoDataTableRules.Create( + aDataTable: TDADataTable); +begin + inherited; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +function TBizVentasProcesoDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentasEnProceso.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBizVentasProcesoDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasProcesoDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasProcesoDataTableRules.SetVisibleColumns( + const Value: String); +begin + if Length(Value) > 0 then + FVisibleColumns := Value + else + FVisibleColumns := dmVentasEnProceso.GetNameColumns; +end; + +initialization + RegisterDataTableRules(BIZ_VENTASPROCESO, TBizVentasProcesoDataTableRules); + +finalization +end. + + diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm new file mode 100644 index 0000000..c54e5ac --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm @@ -0,0 +1,249 @@ +object srvVentasEnProceso: TsrvVentasEnProceso + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schVentasEnProceso + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schVentasEnProceso: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'SELECT '#10' TODAS.NUMINF, TODAS.CLAVE1, TODAS.CLAVE2, TODAS.CLAV' + + 'E3,'#10' TODAS.FECHA, TODAS.DIA, TODAS.DIASEMANA, TODAS.MES, TODA' + + 'S.ANO,'#10' TODAS.CENTRO, TODAS.VENDEDOR, TODAS.NUMTALON, TODAS.C' + + 'ODIGO,'#10' TODAS.PRODUCTO, TODAS.GRUPOPRODUCTO, TODAS.TIPOPRODUC' + + 'TO, TODAS.COLECCION,'#10' TODAS.COLOR, TODAS.TALLA, TODAS.INICIO,' + + ' TODAS.FINAL, TODAS.IMPORTE'#10' FROM'#10' RDX_V_VENTASPROCESOPEND' + + 'IENTES PENDIENTES LEFT JOIN RDX_V_VENTASPROCESO TODAS'#10'ON (TODAS.' + + 'NUMTALON = PENDIENTES.NUMTALON AND TODAS.CODIGO = PENDIENTES.COD' + + 'IGO AND'#10'TODAS.COLOR = PENDIENTES.COLOR AND TODAS.TALLA = PENDIEN' + + 'TES.TALLA)' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'IMPORTE' + TableField = 'IMPORTE' + end + item + DatasetField = 'INICIO' + TableField = 'INICIO' + end + item + DatasetField = 'FINAL' + TableField = 'FINAL' + end + item + DatasetField = 'DIA' + TableField = 'DIA' + end + item + DatasetField = 'DIASEMANA' + TableField = 'DIASEMANA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'GRUPOPRODUCTO' + TableField = 'GRUPOPRODUCTO' + end + item + DatasetField = 'TIPOPRODUCTO' + TableField = 'TIPOPRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end> + end> + Name = 'VentasEnProcesoPendientes' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datFloat + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + end + item + Name = 'DIA' + DataType = datInteger + end + item + Name = 'DIASEMANA' + DataType = datString + Size = 30 + end + item + Name = 'MES' + DataType = datString + Size = 30 + end + item + Name = 'ANO' + DataType = datInteger + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + end + item + Name = 'INICIO' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'FINAL' + DataType = datFloat + Alignment = taRightJustify + end + item + Name = 'IMPORTE' + DataType = datFloat + Alignment = taRightJustify + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas new file mode 100644 index 0000000..3d8fe32 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas @@ -0,0 +1,135 @@ +unit srvVentasEnProceso_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDABusinessProcessor, + uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvVentasEnProceso } + TsrvVentasEnProceso = class(TDARemoteService, IsrvVentasEnProceso) + DABINAdapter: TDABINAdapter; + schVentasEnProceso: TDASchema; + private + protected + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, uSchemaUtilsServer; + +const + CAMPOS_SUMA = '#INICIO#FINAL#IMPORTE#'; + +procedure Create_srvVentasEnProceso(out anInstance : IUnknown); +begin + anInstance := TsrvVentasEnProceso.Create(NIL); +end; + +{ TsrvVentasEnProceso } + +function TsrvVentasEnProceso.GetData(const DatasetName: String; + const Columns: String; const Params: String; + const MaxRecords: Integer): Binary; +var + ds : IDADataset; + i : integer; + pars: TStringList; + parnames: array of string; + parvalues: array of Variant; +begin + pars := TStringList.Create; + result := Binary.Create; + try + try + pars.Text := Params; + SetLength(parnames, pars.Count); + SetLength(parvalues, pars.Count); + for i := 0 to (pars.Count-1) do begin + parnames[i] := pars.Names[i]; + parvalues[i] := pars.Values[pars.Names[i]]; + end; + + { Prepares the parameter arrays} + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + // Fills the parameters (if any are specified) + if (Length(parnames) > 0) then + begin + for i := 0 to (Length(parnames) - 1) do + ds.ParamByName(parnames[i]).Value := parvalues[i]; + end; + + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; + finally + FreeANDNil(pars); + end; +end; + + +function TsrvVentasEnProceso.GetSchema(const DatasetName, + Columns: String): Binary; +var + ds : IDADataset; +begin + result := Binary.Create; + try + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + ServiceAdapter.WriteDataset(result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +initialization + TROClassFactory.Create('srvVentasEnProceso', Create_srvVentasEnProceso, TsrvVentasEnProceso_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj new file mode 100644 index 0000000..92783e2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + VentasTerminadas.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg new file mode 100644 index 0000000..396e927 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\..\..\Output\Cliente" +-LN"..\..\..\Lib" +-U"..\..\..\Lib" +-O"..\..\..\Lib" +-I"..\..\..\Lib" +-R"..\..\..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof new file mode 100644 index 0000000..67fc858 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof @@ -0,0 +1,474 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\..\..\Output\Cliente +PackageDCPOutputDir=..\..\..\Lib +SearchPath=..\..\..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=2 +Item0=..\..\..\..\Output\Cliente +Item1=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\..\..\Lib +Item1=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk new file mode 100644 index 0000000..c9847eb --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk @@ -0,0 +1,84 @@ +package VentasTerminadas; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + BaseD10, + rtl, + vcl, + PluginSDK_D10R, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + GUISDK_D10, + dbrtl, + dsnap, + adortl, + tb2k_D10, + tbx_D10, + JvCoreD10R, + vcljpg, + Jcl, + JclVcl, + JvSystemD10R, + JvPageCompsD10R, + JvStdCtrlsD10R, + cxTreeListD10, + dxThemeD10, + cxLibraryD10, + cxExportD10, + cxEditorsD10, + cxDataD10, + vcldb, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + ControlesBaseD10; + +contains + uPluginControllerVentasTerminadas in 'uPluginControllerVentasTerminadas.pas' {ModuleVentasTerminadas: TModuleController}, + uDataModuleVentasTerminadas in 'uDataModuleVentasTerminadas.pas' {dmVentasTerminadas: TDAClientDataModule}, + uBizVentasTerminadas in '..\Reglas\uBizVentasTerminadas.pas', + uBizControlVentasTerminadas in '..\Reglas\uBizControlVentasTerminadas.pas', + uEditorControlesVentasTerminadas in 'uEditorControlesVentasTerminadas.pas' {fEditorControlesVentasTerminadas: TCustomEditor}, + uViewControlesVentasTerminadas in 'uViewControlesVentasTerminadas.pas' {frViewControlesVentasTerminadas: TCustomView}, + uViewControlVentasTerminadas in 'uViewControlVentasTerminadas.pas' {frViewControlVentasTerminadas: TCustomView}, + uEditorControlVentasTerminadas in 'uEditorControlVentasTerminadas.pas' {fEditorControlVentasTerminadas: TCustomEditor}, + uViewControGridlVentasTerminadas in 'uViewControGridlVentasTerminadas.pas' {frViewControlGridVentasTerminadas: TCustomView}, + uViewControGridResumenVentas in 'uViewControGridResumenVentas.pas' {frViewControlGridResumenVentas: TCustomView}, + uEditorControlResumenVentas in 'uEditorControlResumenVentas.pas' {fEditorControlResumenVentas: TCustomEditor}, + schVentasTerminadasClient_Intf in '..\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Reglas\schVentasTerminadasServer_Intf.pas'; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2c7033327ee07e471365e4f3aa36262c0850bd19 GIT binary patch literal 2168 zcmd6oO-{ow5JtlRxI<3B0a!Lgh()EUfvhYcD;~li*Mny4R^k%u_!Hcfq>T!)D$FX0 zm)6L7df&|WG|RHjlj2;>sSay!UUKbBUV``N8c{bAG$W}6N^bfR5;Y^XyE-2XQodw* zfZB_yG=tTuq`)<(1({&m>Z*NL%Qf&CoiF&b8OOuM|=$NBqfudb3k$Q>5QF?GM8M literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc new file mode 100644 index 0000000..169f997 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res new file mode 100644 index 0000000000000000000000000000000000000000..bf4c1a49a442bef039b348cda86ff716dc7726f1 GIT binary patch literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm new file mode 100644 index 0000000..76a3061 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm @@ -0,0 +1,204 @@ +inherited frViewControlGridVentasTerminadasCrossTab: TfrViewControlGridVentasTerminadasCrossTab + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0,0 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + Preview.AutoHeight = False + end + end + inherited dsDataSource: TDADataSource + OnStateChange = dsDataSourceStateChange + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.Orientation = poLandscape + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 38952.779695636570000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsView.Caption = False + OptionsView.FilterBar = False + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleDia: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInactiveCaptionText + TextColor = clHighlightText + end + object cxStyleTotal: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleImporte: TcxStyle + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.UseThousandSeparator = True + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm new file mode 100644 index 0000000..700e83c --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm @@ -0,0 +1,576 @@ +object dmVentasTerminadas: TdmVentasTerminadas + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 363 + Width = 600 + object RORemoteService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvVentasTerminadas' + Left = 48 + Top = 20 + end + object tbl_VentasTerminadas2: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'FECHAINI' + DataType = datString + Value = '2006/01/01' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + DataType = datString + Value = '2006/12/12' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas2 + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadas' + IndexDefs = <> + Left = 464 + Top = 72 + end + object tbl_VentasTerminadasCrossTab: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = < + item + Name = 'fechaini' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'fechafin' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'coleccion' + DataType = datString + Value = '%' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapterCrossTab + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadasCrossTab' + IndexDefs = <> + Left = 216 + Top = 224 + end + object ds_VentasTerminadasCrossTab: TDADataSource + DataSet = tbl_VentasTerminadasCrossTab.Dataset + DataTable = tbl_VentasTerminadasCrossTab + Left = 216 + Top = 288 + end + object DARemoteDataAdapterCrossTab: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaCrossTab' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'FechaIni' + DataType = rtString + Flag = fIn + Value = '01/01/2007' + end + item + Name = 'FechaFin' + DataType = rtString + Flag = fIn + Value = '31/01/2007' + end + item + Name = 'Coleccion' + DataType = rtString + Flag = fIn + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDataCrossTab' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'FechaIni' + DataType = rtString + Flag = fIn + Value = '01/01/2007' + end + item + Name = 'FechaFin' + DataType = rtString + Flag = fIn + Value = '31/01/2007' + end + item + Name = 'Coleccion' + DataType = rtString + Flag = fIn + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = dmBase.DABINAdapter + Left = 216 + Top = 168 + end + object DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchema' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + Value = Null + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Columns' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = RORemoteService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = RORemoteService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 464 + Top = 16 + end + object DABinDataStreamer1: TDABinDataStreamer + IsCompatibleV4 = False + Left = 48 + Top = 96 + end + object DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = RORemoteService + GetDataCall.MethodName = 'GetDatasetDataEx' + GetDataCall.Params = < + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + Value = Null + end + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + Value = 'VentasTerminadas' + end + item + Name = 'Params' + DataType = rtUserDefined + Flag = fIn + TypeName = 'TDADatasetParamArray' + Value = Null + end + item + Name = 'UserFilter' + DataType = rtString + Flag = fIn + Value = Null + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + Value = True + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + Value = -1 + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'aTableNameArray' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = DABinDataStreamer1 + Left = 216 + Top = 16 + end + object tbl_VentasTerminadas: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datDecimal + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'DIA' + DataType = datInteger + DisplayLabel = 'D'#237'a' + end + item + Name = 'DIASEMANA' + DataType = datWideString + Size = 30 + DisplayLabel = 'D'#237'a de la semana' + end + item + Name = 'MES' + DataType = datWideString + Size = 30 + DisplayLabel = 'Mes' + end + item + Name = 'ANO' + DataType = datInteger + DisplayLabel = 'A'#241'o' + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + DisplayLabel = 'Centro' + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + DisplayLabel = 'Vendedor' + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo producto' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'Producto' + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Grupo' + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo' + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + DisplayLabel = 'Colecci'#243'n' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + DisplayLabel = 'Talla' + Alignment = taRightJustify + end + item + Name = 'TALLA38' + DataType = datDecimal + DisplayLabel = '38' + Alignment = taRightJustify + end + item + Name = 'TALLA40' + DataType = datDecimal + DisplayLabel = '40' + Alignment = taRightJustify + end + item + Name = 'TALLA42' + DataType = datDecimal + DisplayLabel = '42' + Alignment = taRightJustify + end + item + Name = 'TALLA44' + DataType = datDecimal + DisplayLabel = '44' + Alignment = taRightJustify + end + item + Name = 'TALLA46' + DataType = datDecimal + DisplayLabel = '46' + Alignment = taRightJustify + end + item + Name = 'TALLA48' + DataType = datDecimal + DisplayLabel = '48' + Alignment = taRightJustify + end + item + Name = 'VTATERMDEV' + DataType = datDecimal + DisplayLabel = 'Vta.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VTAFINALRESC' + DataType = datDecimal + DisplayLabel = 'Vta.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VENTAS' + DataType = datDecimal + DisplayLabel = 'Ventas' + Alignment = taRightJustify + end + item + Name = 'DEVOLUCIONES' + DataType = datDecimal + DisplayLabel = 'Devoluciones' + Alignment = taRightJustify + end + item + Name = 'TOTAL' + DataType = datDecimal + DisplayLabel = 'Total ventas' + Alignment = taRightJustify + end + item + Name = 'VALTERMDEV' + DataType = datDecimal + DisplayLabel = 'Val.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VALFINALRESC' + DataType = datDecimal + DisplayLabel = 'Val.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VALVEN' + DataType = datDecimal + DisplayLabel = 'Imp. ventas' + Alignment = taRightJustify + end + item + Name = 'VALDEV' + DataType = datDecimal + DisplayLabel = 'Imp. devoluciones' + Alignment = taRightJustify + end + item + Name = 'VALTOT' + DataType = datDecimal + DisplayLabel = 'Imp. Total' + Alignment = taRightJustify + end> + Params = < + item + Name = 'FECHAINI' + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas + LocalDataStreamer = DABinDataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'VentasTerminadas' + IndexDefs = <> + Left = 216 + Top = 72 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas new file mode 100644 index 0000000..57a300c --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas @@ -0,0 +1,127 @@ +unit uDataModuleVentasTerminadas; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + uBizVentasTerminadas, uBizControlVentasTerminadas, uDARemoteDataAdapter, + uDAInterfaces, uDAMemDataTable, uDADataStreamer; + +const + CATEGORIA_VENTA_TERMINADA = 'VENTATERMINADA'; + +type + TdmVentasTerminadas = class(TDAClientDataModule) + RORemoteService: TRORemoteService; + tbl_VentasTerminadas2: TDACDSDataTable; + tbl_VentasTerminadasCrossTab: TDACDSDataTable; + ds_VentasTerminadasCrossTab: TDADataSource; + DARemoteDataAdapterCrossTab: TDARemoteDataAdapter; + DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter; + DABinDataStreamer1: TDABinDataStreamer; + DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter; + tbl_VentasTerminadas: TDACDSDataTable; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function GetItems : IBizVentasTerminadas; + public + function GetNameColumns: String; + function GetControl: IBizControlVentasTerminadas; + function GetItemsCrossTab : IBizResumenVentas; + end; + +var + dmVentasTerminadas: TdmVentasTerminadas; + +implementation + +{$R *.DFM} + +uses + Controls, Forms, DataAbstract3_Intf, uDataTableUtils, + uROTypes, uEditorPreview, Dialogs, uDataModuleControles, + uDataModuleBase, uDBSelectionList, schVentasTerminadasClient_Intf, cxControls; + + +procedure TdmVentasTerminadas.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmBase.Channel; + RORemoteService.Message := dmBase.Message; +end; + +function TdmVentasTerminadas.GetControl: IBizControlVentasTerminadas; +var + aDataTable : TDACDSDataTable; +begin + aDataTable := dmControles.GetItems(CATEGORIA_VENTA_TERMINADA); + aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASTERMINADAS; + + (aDataTable as IBizControlVentasTerminadas).Items := GetItems; + Result := (aDataTable as IBizControlVentasTerminadas); +end; + +function TdmVentasTerminadas.GetItems: IBizVentasTerminadas; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasTerminadas2, dtVentas); + dtVentas.Fields.AssignFieldCollection(tbl_VentasTerminadas.Fields); + dtVentas.BusinessRulesID := BIZ_VENTASTERMINADAS; + + dtVentas.FieldByName(fld_VentasTerminadasNUMINF).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE1).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE2).Visible := False; + dtVentas.FieldByName(fld_VentasTerminadasCLAVE3).Visible := False; + + dtVentas.LoadSchema; + Result := (dtVentas as IBizVentasTerminadas); + finally + HideHourglassCursor; + end; +end; + + +function TdmVentasTerminadas.GetItemsCrossTab: IBizResumenVentas; +var + dtVentas: TDACDSDataTable; +begin + ShowHourglassCursor; + try + dtVentas := TDACDSDataTable.Create(NIL); + CloneDataTable(tbl_VentasTerminadasCrossTab, dtVentas); + dtVentas.BusinessRulesID := BIZ_RESUMENVENTAS; + Result := (dtVentas as IBizResumenVentas); + finally + HideHourglassCursor; + end; +end; + +function TdmVentasTerminadas.GetNameColumns: String; +var + AList : TStringList; + i : integer; +begin + AList := TStringList.Create; + try + for i := 0 to tbl_VentasTerminadas.FieldCount - 1 do + if tbl_VentasTerminadas.Fields[i].Visible then + AList.Add(tbl_VentasTerminadas.Fields[i].Name); + Result := AList.CommaText; + finally + FreeAndNil(AList); + end; +end; + +initialization + dmVentasTerminadas := TdmVentasTerminadas.Create(nil); + +finalization + FreeAndNil(dmVentasTerminadas); + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm new file mode 100644 index 0000000..2812d8b --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm @@ -0,0 +1,1700 @@ +inherited fEditorControlResumenVentas: TfEditorControlResumenVentas + Left = 419 + Top = 239 + Caption = 'Resumen de ventas' + ClientHeight = 573 + ClientWidth = 679 + ExplicitWidth = 687 + ExplicitHeight = 607 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + ExplicitWidth = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + ExplicitLeft = 652 + end + end + inherited TBXDock: TTBXDock + Width = 679 + ExplicitWidth = 679 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 469 + object TBXLabelItem2: TTBXLabelItem [0] + Caption = ' Mes:' + end + object edtMes: TTBXComboBoxItem [1] + Caption = 'Mes:' + EditWidth = 110 + DropDownList = True + MaxVisibleItems = 12 + MinListWidth = 100 + Strings.Strings = ( + 'Enero' + 'Febrero' + 'Marzo' + 'Abril' + 'Mayo' + 'Junio' + 'Julio' + 'Agosto' + 'Septiembre' + 'Octubre' + 'Noviembre' + 'Diciembre') + end + object TBXLabelItem3: TTBXLabelItem [2] + Caption = ' A'#241'o:' + end + object edtAno: TTBXSpinEditItem [3] + Caption = 'A'#241'o:' + SpaceAfterPrefix = False + SpaceBeforePostfix = False + end + object TBXLabelItem4: TTBXLabelItem [4] + Caption = ' Colecci'#243'n:' + end + object edtColeccion: TTBXEditItem [5] + Caption = 'Colecci'#243'n:' + ExtendedAccept = True + end + object TBXSeparatorItem19: TTBXSeparatorItem [6] + Blank = True + end + inherited TBXItem6: TTBXItem [7] + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem18: TTBXSeparatorItem [8] + end + inherited TBXItem2: TTBXItem [9] + end + inherited TBXSeparatorItem1: TTBXSeparatorItem [10] + end + inherited TBXItem29: TTBXItem [11] + end + inherited TBXItem27: TTBXItem [12] + end + inherited TBXItem5: TTBXItem [13] + end + inherited TBXItem4: TTBXItem [14] + end + inherited TBXSeparatorItem14: TTBXSeparatorItem [15] + end + inherited TBXItem33: TTBXItem [16] + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem [17] + end + inherited TBXItem23: TTBXItem [18] + end + inherited TBXSeparatorItem2: TTBXSeparatorItem [19] + end + inherited TBXItem24: TTBXItem [20] + end + inherited TBXItem3: TTBXItem [21] + end + object TBXSeparatorItem16: TTBXSeparatorItem [22] + end + object tbxiExpandir: TTBXItem [23] + Action = actExpandir + end + object tbxiContraer: TTBXItem [24] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [25] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + inherited TBXSeparatorItem10: TTBXSeparatorItem [26] + end + inherited TBXItem26: TTBXItem [27] + end + inherited TBXItem25: TTBXItem [28] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 679 + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + inherited tbxFiltro: TTBXToolbar + Left = 469 + Visible = False + ExplicitLeft = 469 + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + ExplicitTop = 554 + ExplicitWidth = 679 + end + inline frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas [3] + Left = 0 + Top = 76 + Width = 679 + Height = 284 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 679 + ExplicitHeight = 478 + inherited cxGrid: TcxGrid + Width = 679 + Height = 284 + ExplicitWidth = 679 + ExplicitHeight = 478 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink1: TdxGridReportLink + ReportDocument.CreationDate = 38952.790681423610000000 + BuiltInReportLink = True + end + end + end + object DBGrid1: TDBGrid [4] + Left = 0 + Top = 360 + Width = 679 + Height = 194 + Align = alBottom + DataSource = dsDataTable + TabOrder = 4 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + end + inherited EditorActionList: TActionList [5] + inherited actNuevo: TAction + Visible = False + end + inherited actModificar: TAction + Visible = False + end + inherited actEliminar: TAction + Visible = False + end + inherited actRefrescar: TAction + Caption = 'Ir' + ImageIndex = 16 + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + Visible = False + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + Visible = False + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [7] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [8] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas new file mode 100644 index 0000000..0abc4e6 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas @@ -0,0 +1,156 @@ +unit uEditorControlResumenVentas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, + uViewControlVentasTerminadas, uEditorGridBase, uViewGridBase, uViewGrid, + uViewControGridResumenVentas, Menus, TB2ExtItems, TBXExtItems, + uBizVentasTerminadas, StdCtrls, uDAInterfaces; + +type + IEditorControlResumenVentas = interface(IEditorGridBase) + ['{FC3218D5-319A-4ECF-88E9-0CB8655EDFA9}'] + function GetItems: IBizResumenVentas; + procedure SetItems(const Value: IBizResumenVentas); + property Items: IBizResumenVentas read GetItems write SetItems; + end; + + TfEditorControlResumenVentas = class(TfEditorGridBase, IEditorControlResumenVentas) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + edtMes: TTBXComboBoxItem; + edtAno: TTBXSpinEditItem; + frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas; + TBXLabelItem2: TTBXLabelItem; + TBXLabelItem3: TTBXLabelItem; + TBXSeparatorItem18: TTBXSeparatorItem; + edtColeccion: TTBXEditItem; + TBXLabelItem4: TTBXLabelItem; + TBXSeparatorItem19: TTBXSeparatorItem; + DBGrid1: TDBGrid; + procedure actAnchoAutoExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + protected + FItems : IBizResumenVentas; + function GetItems: IBizResumenVentas; + procedure SetItems(const Value: IBizResumenVentas); + public + property Items: IBizResumenVentas read GetItems write SetItems; + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + cxControls, uEditorUtils, DateUtils, uROClasses, cxGridTableView, uCustomEditor, uEditorBase; + +{$R *.dfm} + +{ TfEditorControlVentasTerminadas } + +procedure TfEditorControlResumenVentas.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlGridResumenVentas1.AjustarAncho; +end; + +procedure TfEditorControlResumenVentas.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FItems) then + raise Exception.Create('No hay items asignados'); + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay una vista asignada'); + + //Inicializar + edtMes.ItemIndex := (MonthOf(Today)-1); + edtAno.Value := YearOf(Today); +end; + +procedure TfEditorControlResumenVentas.actImprimirExecute(Sender: TObject); +begin + inherited; + frViewControlGridResumenVentas1.Print(edtMes.Text, edtAno.Text); +end; + +constructor TfEditorControlResumenVentas.Create(AOwner: TComponent); +begin + inherited; + ViewGrid := frViewControlGridResumenVentas1; + Self.Caption := 'Resumen de ventas mensuales por centro'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +function TfEditorControlResumenVentas.GetItems: IBizResumenVentas; +begin + Result := FItems; +end; + +procedure TfEditorControlResumenVentas.SetItems( + const Value: IBizResumenVentas); +begin + FItems := Value; + if Assigned(FItems) then + begin + dsDataTable.DataTable := FItems.DataTable; + frViewControlGridResumenVentas1.dsDataSource.DataTable := FItems.DataTable; + end; +end; + +procedure TfEditorControlResumenVentas.actRefrescarExecute(Sender: TObject); +var + AuxDate: TDateTime; + UltimoDia: Integer; + i : Integer; + +begin + AuxDate := EncodeDate(edtAno.AsInteger , (edtMes.ItemIndex + 1), 1); + + ShowHourglassCursor; + try + with FItems do + begin + if DataTable.Active then + DataTable.Active := False; + + DataTable.ParamByName('FECHAINI').AsString := DateToStr(StartOfTheMonth(AuxDate)); + DataTable.ParamByName('FECHAFIN').AsString := DateToStr(EndOfTheMonth(AuxDate)); + DataTable.ParamByName('COLECCION').AsString := edtColeccion.Text; + + if not DataTable.Active then + DataTable.Active := True; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorControlResumenVentas.actPrevisualizarExecute(Sender: TObject); +begin + frViewControlGridResumenVentas1.Preview(edtMes.Text, edtAno.Text); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm new file mode 100644 index 0000000..f500fce --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm @@ -0,0 +1,1776 @@ +inherited fEditorControlVentasTerminadas: TfEditorControlVentasTerminadas + Left = 531 + Top = 329 + Caption = 'fEditorControlVentasTerminadas' + ClientHeight = 573 + ClientWidth = 679 + OnCreate = CustomEditorCreate + OnGetModified = CustomEditorGetModified + ExplicitWidth = 687 + ExplicitHeight = 607 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 679 + ExplicitWidth = 679 + inherited Image1: TImage + Left = 652 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + ExplicitLeft = 652 + end + end + inherited TBXDock: TTBXDock + Width = 679 + ExplicitWidth = 679 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 679 + object TBXSeparatorItem16: TTBXSeparatorItem [13] + end + object tbxiExpandir: TTBXItem [14] + Action = actExpandir + end + object tbxiContraer: TTBXItem [15] + Action = actContraer + end + object tbxiAnchoAuto: TTBXItem [16] + Action = actAnchoAuto + DisplayMode = nbdmImageAndText + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 679 + inherited TBXSubmenuItem6: TTBXSubmenuItem + object TBXItem37: TTBXItem [0] + Action = actExpandir + end + object TBXItem36: TTBXItem [1] + Action = actContraer + end + object TBXItem35: TTBXItem [2] + Action = actAnchoAuto + end + object TBXSeparatorItem17: TTBXSeparatorItem [3] + end + end + end + end + inherited StatusBar: TStatusBar + Top = 554 + Width = 679 + ExplicitTop = 554 + ExplicitWidth = 679 + end + inline frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas [3] + Left = 0 + Top = 76 + Width = 679 + Height = 478 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 679 + ExplicitHeight = 478 + inherited TBXMultiDock1: TTBXMultiDock + Width = 234 + Height = 478 + ExplicitWidth = 234 + ExplicitHeight = 478 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 230 + SplitHeight = 258 + ExplicitWidth = 234 + ExplicitHeight = 258 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 230 + ExplicitWidth = 230 + inherited TBXLink1: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited TBXLink5: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited TBXLink2: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + end + inherited pcParametros: TPageControl + Width = 230 + Height = 138 + ExplicitWidth = 230 + ExplicitHeight = 138 + inherited TabSheet5: TTabSheet + ExplicitHeight = 0 + inherited frViewPeriodoFechas1: TfrViewPeriodoFechas + Height = 0 + ExplicitHeight = 0 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited cbPeriodo: TcxComboBox + ExplicitWidth = 125 + Width = 125 + end + end + end + end + inherited tsColumnas: TTabSheet + ExplicitHeight = 0 + inherited frViewColumnas1: TfrViewColumnas + Height = 0 + ExplicitHeight = 0 + inherited lbColumnas: TcxCheckListBox + Height = 0 + ExplicitHeight = 0 + end + end + end + inherited tsAgrupacion: TTabSheet + ExplicitWidth = 222 + ExplicitHeight = 128 + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 222 + Height = 128 + ExplicitWidth = 222 + ExplicitHeight = 128 + inherited TBXLabel1: TTBXLabel + Width = 222 + ExplicitWidth = 222 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 222 + ExplicitWidth = 222 + inherited TBXButton1: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + inherited TBXButton3: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + inherited TBXButton2: TTBXButton + Width = 109 + ExplicitWidth = 109 + end + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 206 + Width = 230 + ExplicitTop = 206 + ExplicitWidth = 230 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 258 + DockedWidth = 230 + DockPos = 258 + SplitHeight = 204 + ExplicitTop = 258 + ExplicitWidth = 234 + ExplicitHeight = 204 + inherited TBXPageScroller1: TTBXPageScroller + Width = 230 + Height = 182 + ExplicitWidth = 230 + ExplicitHeight = 182 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 230 + ExplicitWidth = 230 + inherited bFiltros: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + inherited bSumarios: TTBXLink + Width = 222 + ExplicitWidth = 222 + end + end + inherited pcTareas: TPageControl + Width = 230 + Height = 134 + ExplicitWidth = 230 + ExplicitHeight = 134 + inherited tsSumarios: TTabSheet + ExplicitHeight = 48 + inherited frViewSumarios1: TfrViewSumarios + Height = 48 + ExplicitHeight = 48 + inherited vgSumarios: TcxVerticalGrid + Height = 19 + ExplicitHeight = 19 + end + end + end + inherited tsFiltros: TTabSheet + ExplicitWidth = 222 + ExplicitHeight = 124 + inherited frViewFiltros1: TfrViewFiltros + Width = 222 + Height = 124 + ExplicitWidth = 222 + ExplicitHeight = 124 + inherited TBXLabel1: TTBXLabel + Width = 222 + ExplicitWidth = 222 + end + inherited cxFilterControl1: TcxFilterControl + Width = 222 + Height = 65 + ExplicitWidth = 222 + ExplicitHeight = 65 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 94 + Width = 222 + ExplicitTop = 94 + ExplicitWidth = 222 + end + inherited cxStyleRepository1: TcxStyleRepository + Top = 72 + end + end + end + end + end + end + end + inherited frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas + Left = 234 + Width = 445 + Height = 478 + ExplicitLeft = 234 + ExplicitWidth = 445 + ExplicitHeight = 478 + inherited cxGrid: TcxGrid + Width = 445 + Height = 478 + ExplicitWidth = 445 + ExplicitHeight = 478 + inherited cxGridView: TcxGridDBTableView + DataController.DataSource = dsVentasTerminadas + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + end + inherited EditorActionList: TActionList [4] + inherited actConfPagina: TAction + OnExecute = actConfPaginaExecute + end + object actExpandir: TAction + Category = 'Ver' + Caption = 'Expandir todo' + ImageIndex = 21 + OnExecute = actExpandirExecute + end + object actContraer: TAction + Category = 'Ver' + Caption = 'Contraer todo' + ImageIndex = 22 + OnExecute = actContraerExecute + end + object actAnchoAuto: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 23 + OnExecute = actAnchoAutoExecute + end + end + inherited SmallImages: TPngImageList [5] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 + FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 + E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 + A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 + 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 + 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 + 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA + 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC + 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 + 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 + 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D + DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 + 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 + 0000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000DF4944415478DA + 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B + 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA + CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 + 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 + F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 + 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF + FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 + 6B0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000914944415478DA + 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 + FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB + EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE + 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 + 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList [6] + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002F14944415478DA + D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E + B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 + 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB + 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 + 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A + 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B + CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 + 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC + 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 + 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 + E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 + DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F + E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 + 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD + DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 + 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A + 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 + 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC + FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 + FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD + FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 + 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 + D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 + 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000014D4944415478DA + 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 + B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 + E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 + 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 + 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 + 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE + 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F + CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 + 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 + CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 + 33DA906F550000E7732B02C862110D0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000AA4944415478DA + 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A + 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C + 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 + 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF + F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D + C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000018C4944415478DA + 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E + 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F + C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 + 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 + 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB + FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE + 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 + FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F + 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 + FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD + BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 + EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 + 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + object dsVentasTerminadas: TDADataSource + Left = 320 + Top = 232 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas new file mode 100644 index 0000000..cfb7138 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas @@ -0,0 +1,241 @@ +unit uEditorControlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, + uCustomView, uViewBase, uViewControlBase, uViewControlVentasTerminadas, + Grids, DBGrids, pngimage, uDAInterfaces; + +type + IEditorControlVentasTerminadas = interface(IEditorControlBase) + ['{721FAE24-2440-44FA-B681-6E3C2BD656FE}'] + end; + + TfEditorControlVentasTerminadas = class(TfEditorControlBase, IEditorControlVentasTerminadas) + dsVentasTerminadas: TDADataSource; + TBXSeparatorItem16: TTBXSeparatorItem; + tbxiExpandir: TTBXItem; + tbxiContraer: TTBXItem; + tbxiAnchoAuto: TTBXItem; + actExpandir: TAction; + actContraer: TAction; + actAnchoAuto: TAction; + TBXItem37: TTBXItem; + TBXItem36: TTBXItem; + TBXItem35: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; + frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas; + procedure actRefrescarExecute(Sender: TObject); + procedure actExpandirExecute(Sender: TObject); + procedure actContraerExecute(Sender: TObject); + procedure actAnchoAutoExecute(Sender: TObject); + procedure CustomEditorCreate(Sender: TObject); + procedure CustomEditorGetModified(Sender: TObject; + var Modified: Boolean); + procedure actGuardarExecute(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure frViewControlVentasTerminadas1bRefrescarClick( + Sender: TObject); + private + procedure RestaurarConfiguracion; + procedure GuardarConfiguracion; + protected + FModificado : Boolean; + procedure OnViewControlChanged(Sender: TObject); + procedure SetControl(const Value: IBizControlBase); override; + procedure RellenarCabeceraInforme; override; + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +uses + uEditorUtils, uBizControlVentasTerminadas, uROClasses, + cxGridTableView, uCustomEditor; + +{$R *.dfm} + +function ShowEditorVentasTerminadas (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: IEditorControlVentasTerminadas; +begin + AEditor := TfEditorControlVentasTerminadas.Create(Application); + try + AEditor.Control := (ABizObject as IBizControlVentasTerminadas); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + + +{ TfEditorControlVentasTerminadas } + +procedure TfEditorControlVentasTerminadas.SetControl( + const Value: IBizControlBase); +begin + inherited; + RefrescarTituloEditor; + if Assigned(FControl) then + begin + frViewControlVentasTerminadas1.OnViewChanged := OnViewControlChanged; + with (FControl as IBizControlVentasTerminadas) do + begin + Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' + dsVentasTerminadas.DataTable := Items.DataTable; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.DataSource := dsVentasTerminadas; + end; + end; +end; + +procedure TfEditorControlVentasTerminadas.actRefrescarExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.Refresh; + while (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do + begin + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord.Expand(True); + if (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecordIndex < + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.RowCount - 1) then + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.GoToNext(False, True) + else + Exit; + end; +end; + +procedure TfEditorControlVentasTerminadas.actExpandirExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ExpandirTodo; +end; + +procedure TfEditorControlVentasTerminadas.actContraerExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ContraerTodo; +end; + +procedure TfEditorControlVentasTerminadas.actAnchoAutoExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.AjustarAncho; +end; + +procedure TfEditorControlVentasTerminadas.OnViewControlChanged( + Sender: TObject); +begin + if FControl.EsModificable then + FModificado := True; +end; + +procedure TfEditorControlVentasTerminadas.CustomEditorCreate(Sender: TObject); +begin + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentasTerminadas.CustomEditorGetModified( + Sender: TObject; var Modified: Boolean); +begin + inherited; + Modified := FModificado; +end; + +procedure TfEditorControlVentasTerminadas.actGuardarExecute(Sender: TObject); +begin + if FModificado then + GuardarConfiguracion; + inherited; + FModificado := False; +end; + +procedure TfEditorControlVentasTerminadas.GuardarConfiguracion; +var + Aux : IROStrings; +begin + Aux := NewROStrings(); + Aux.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties); + if not (FControl.DataTable.State in dsEditModes) then + FControl.Edit; + FControl.VISTA := Aux; +end; + +procedure TfEditorControlVentasTerminadas.RestaurarConfiguracion; +begin + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties := FControl.VISTA.Text; +end; + +procedure TfEditorControlVentasTerminadas.FormShow(Sender: TObject); +begin + inherited; + if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando + RestaurarConfiguracion; + frViewControlVentasTerminadas1.frViewColumnas1.Refresh; + frViewControlVentasTerminadas1.frViewAgrupaciones1.Refresh; +end; + +procedure TfEditorControlVentasTerminadas.actPrevisualizarExecute( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Preview; +end; + +procedure TfEditorControlVentasTerminadas.actImprimirExecute(Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Print; +end; + +procedure TfEditorControlVentasTerminadas.actConfPaginaExecute( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.PrintSetup; +end; + +procedure TfEditorControlVentasTerminadas.frViewControlVentasTerminadas1bRefrescarClick( + Sender: TObject); +begin + inherited; + frViewControlVentasTerminadas1.actRefrescarExecute(Sender); +end; + +constructor TfEditorControlVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlVentasTerminadas1; + Self.Caption := 'Nueva consulta de ventas terminadas'; + JvNavPanelHeader.Caption := Self.Caption; +end; + +procedure TfEditorControlVentasTerminadas.RellenarCabeceraInforme; +begin + inherited; + with frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do + begin + LeftTitle.Clear; + LeftTitle.Add(FControl.NOMBRE); + + RightTitle.Clear; + RightTitle.Add(DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaIni.Date) + + ' - ' + DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaFin.Date)); + RightTitle.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.Filter.FilterText); + end; +end; + +initialization + RegisterEditor(IBizControlVentasTerminadas, ShowEditorVentasTerminadas, etItem); + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm new file mode 100644 index 0000000..72533a3 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm @@ -0,0 +1,176 @@ +inherited fEditorControlesVentasTerminadas: TfEditorControlesVentasTerminadas + Left = 470 + Top = 325 + ActiveControl = frViewControlesVentasTerminadas1.EasyListview + Caption = 'fEditorControlesVentasTerminadas' + ExplicitWidth = 660 + ExplicitHeight = 494 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Control de ventas terminadas' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C + 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 + 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF + EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 + B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B + 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 + 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF + 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C + 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 + C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 + 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 + 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 + 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 + FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 + 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 + B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F + 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 + A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F + E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 + B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 + F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 + 3F01A44422D9EF203E7B0000000049454E44AE426082} + end + end + inline frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas [3] + Left = 0 + Top = 76 + Width = 652 + Height = 365 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 76 + ExplicitWidth = 652 + ExplicitHeight = 365 + inherited EasyListview: TEasyListview + Width = 652 + Height = 365 + Groups.Items = { + 0400000002000000FFFECE000400000000000400000000000000010000000E00 + 0000730064006600730020006100640066002000610073006400660020000000 + 00000000000000000000FFFECE00040000000000040000000000000001000000 + 1300000020007300640066006100730064002000200061007300200074003400 + 74002000740034003300000000000000000000000000} + Header.Columns.Items = { + 0400000004000000FFFECE000400000000110001000001010000000000013200 + 00000100000005000000490063006F006E006F00000000000000000000000000 + FFFECE0004000000001100010000010000000000000132000000010000000600 + 00004E006F006D00620072006500000000000000000000000000FFFECE000400 + 0000001100010000010200000000000132000000010000000B00000044006500 + 7300630072006900700063006900F3006E00000000000000000000000000FFFE + CE00040000000011000100000103000000010001320000000100000005000000 + 4F007200640065006E00000000000000000000000000} + ExplicitWidth = 652 + ExplicitHeight = 365 + end + end + inherited EditorActionList: TActionList [4] + end + inherited SmallImages: TPngImageList [5] + end + inherited LargeImages: TPngImageList [6] + end + inherited JvFormStorage: TJvFormStorage [7] + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] + end + inherited dsDataTable: TDADataSource [9] + end + inherited ViewPopupMenu: TPopupMenu [10] + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas new file mode 100644 index 0000000..c4ffdd2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas @@ -0,0 +1,43 @@ +unit uEditorControlesVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, + JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, + ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, + uViewBase, uViewControlesBase, Menus, DB, EasyListview, + uDADataTable, uViewControlesVentasTerminadas, uDAInterfaces; + +type + IEditorControlesVentasTerminadas = interface(IEditorControlesBase) + ['{6FF8D6DA-A997-40E9-8482-B0E4A77ECCC6}'] + end; + + TfEditorControlesVentasTerminadas = class(TfEditorControlesBase, IEditorControlesVentasTerminadas) + frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas; + private + { Private declarations } + public + constructor Create(AOwner: TComponent); override; + end; + + +implementation + +{$R *.dfm} + +uses + uEditorBase; + +{ TfEditorControlesVentasTerminadas } + +constructor TfEditorControlesVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + FViewControl := frViewControlesVentasTerminadas1; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm new file mode 100644 index 0000000..bceea99 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm @@ -0,0 +1,329 @@ +object ModuleVentasTerminadas: TModuleVentasTerminadas + OldCreateOrder = True + Description = 'Control de ventas terminadas' + ModuleMenu = MainMenu + ModuleName = 'Control de ventas terminadas' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.5' + Left = 701 + Top = 547 + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000002944944415478DAD5955F4853511C + C7BFD7CD9C9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D58 + 2441B587820A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C + 9B685A5EEFEEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB + 85C361A4D3B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C + 4A8AC2221B13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C5 + 79518CCCA91388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED5 + 92808E32AF06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B + 6B19E48C7C3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E0 + 98FB3026B2C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583D + E0DB09683730573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF9 + 1E44014E02682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF + 814FF2A1E45B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB + 30BE711CD6FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D + 7847164A227BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6 + B9F2F30CA2B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED11497 + 41F46C139F5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF3 + 8720B23877A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C924 + 2B6A23A39FE201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B81 + 83CD4BDF45B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB4 + 31DBA95582F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F + 00A95ADA013F01A44422D9EF203E7B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001924944415478DA + 63FCFFFF3F032D01235D2C58BEED344D6C89F43265845B00E49065C8DF7FFF18 + FEFEFD0FA5A1F8DF7F0697F01286733BA661B7807126234390A62656033FFFFA + C5F0F9E74F862F40FA0B12FB4DD457B8E1CB361D6298B774137E0B48051FA2BE + 810DFF03B464D5D623F82D4089A444DC967D9BF10B2558FE40D96B771C23DE02 + 74F0E9F727866F7FBE81B118B33486E1A0B8D8B0EB04760BF0B99658F0A0F52D + C3E6BDA7705BF07F3E24C55E5C69C8A01F7E1E838D0CD0C541FAEF34BE66D87E + F00C6E0B12320CC08A0B1E30304C5060C060230374F105332E30DCAC7BC5B0EB + C859DAF9E05AF50B86BDC7CFD3CE07972A9F311C3C7991763E385FF684E1C899 + CBB4F3C199E2470CC7CF5FA59D0F8EE7DF673873F906A605119E260C4C494C14 + FBE070EE5D860B576F615A10EC6AC4C09EC642B10F0E64DD66B87CE30EA60501 + CE060C5C196C14FB607FE66D862B37B158E0EBA0C7C09BCDC14029C0698197AD + 0E46A105A2FF812B13247120FEF30F938D5CF362B5C0DD5A1B5C51500B6058D0 + 3D693ED50C8701B805B40400A09529EFB6636A250000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + object actVentas: TAction + Category = 'Ventas' + Caption = 'Control de ventas terminadas' + ImageIndex = 0 + OnExecute = actVentasExecute + end + object actResumenVentas: TAction + Category = 'Ventas' + Caption = 'Resumen de ventas mensuales' + ImageIndex = 1 + OnExecute = actResumenVentasExecute + end + end + object MainMenu: TMainMenu + Tag = 1000 + Images = LargeImages + Left = 40 + Top = 16 + object menu: TMenuItem + Tag = 100 + Caption = '&Ventas' + GroupIndex = 1 + ImageIndex = 4 + OnClick = actVentasExecute + object Ventas1: TMenuItem + Tag = 100 + Action = actVentas + end + object N1: TMenuItem + Tag = 9998 + Caption = '-' + end + object Resumenventasmensual1: TMenuItem + Tag = 9999 + Action = actResumenVentas + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001624944415478DA63FCFFFF3F0325 + 8071D99653649B10E96DCA083640DD9B9961F2C964AC8A7EFFFDCBF0FDCF1F86 + 6FBF7F337CFCF103CC9EEBBF9521C5630EC3B91DD310068000CC90B966E7300C + B2D92607D70C02280650250CC8F5068A01A47883F9CE5306868A8908037689A4 + C115C234339F6282085C6560F89BF80FCCD45C2BCAB06A8D0103F3EF7F0C715F + 358830E02A440C66C0B51067306DE675984163752A032328212DDF7AFA3FB201 + 20BF2EB7BE8CE10564CD20AF18AECF4418000B4490E6EF40FC0D8A6181B776B9 + 1E8AE6B3E96721810833A07BF27CB84D13845F30F07F7BC7D0CBACC970E50B23 + C302BE3B0CBF7FFE6428F9ABCDF0F10F5A3462CB0B3792430EFE7EF55C87918D + 5D88555621EAD7DD9B539878F818B4976F17C64807B832D39560A7FFFF7FFD7C + C7C8C2CAC7C0C4C4A2B3761F23D68484CB80DB75C56C3FCE9F780E62B3286B85 + 6A4E98BD8F240320AE70FEC72CABE4824B33080000E911EEC1FB93056C000000 + 0049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001334944415478DA + 63FCFFFF3F0325801164C0F26DA7C936056E40A49729511A7EFFF9CBF0FBF75F + 30ED185A8CDD00C64446AC9A7FCCFC0DD7BC74D32186794B3711E7827FFFFE01 + 35FD836B06E155DB8E621A80CB6674F0A4E33DC3FA5D27B01BF07FFE7F868B2B + 0D19F4C3CF836DBEBCDA9841D9E704DC66F1123E86FB2D6F19B6EC3B85DD8084 + 0C038682070C0C131420B621B34160C18C0B0CB71A5E31EC3C7416BF0B34024F + 83FD7C778B0583A4CB21A80BFE3128D608335CAE7CC670E0E445F25D70AEF431 + C3D1B357B01BF075DA4F86DB9BCC19A4DD8E806D7DB5CF9E81D76A373C1674DB + A5184E163E603875F13AAA01216E460C6CA92C44C5C291DCBB0CE7AFDE4235C0 + DF511FEE4F5888FF81F191E21FA6E6CACD3BA80678D9EA302CDE7090A47C8062 + 40F7A4F9246986277B4AB333009B9C2E9EBC2508450000000049454E44AE4260 + 82} + Name = 'PngImage1' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas new file mode 100644 index 0000000..c581256 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas @@ -0,0 +1,96 @@ +unit uPluginControllerVentasTerminadas; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCVentasTerminadas = interface(IInterface) + ['{D7C41472-C5C7-43C1-849F-2056CC98D9B1}'] + end; + + TModuleVentasTerminadas = class(TModuleController, IMCVentasTerminadas) + actVentas: TAction; + menu: TMenuItem; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + Ventas1: TMenuItem; + SmallImages: TPngImageList; + actResumenVentas: TAction; + Resumenventasmensual1: TMenuItem; + N1: TMenuItem; + procedure actVentasExecute(Sender: TObject); + procedure actResumenVentasExecute(Sender: TObject); + public + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasTerminadas, + uEditorControlesVentasTerminadas, uEditorControlResumenVentas, + uBizControlVentasTerminadas, uBizVentasTerminadas, uEditorControlesBase; + +function GetModule : TModuleController; +begin + Result := TModuleVentasTerminadas.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +{ +******************************* TModuleContactos ******************************* +} + +procedure TModuleVentasTerminadas.actVentasExecute(Sender: TObject); +var + aControl: IBizControlVentasTerminadas; + aObj: IEditorControlesVentasTerminadas; +begin + aControl := dmVentasTerminadas.GetControl; + aObj := TfEditorControlesVentasTerminadas.Create(Application); + try + with aObj do + begin + Control := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +procedure TModuleVentasTerminadas.actResumenVentasExecute(Sender: TObject); +var + aControl: IBizResumenVentas; + aObj: IEditorControlResumenVentas; +begin + aControl := dmVentasTerminadas.GetItemsCrossTab; + aObj := TfEditorControlResumenVentas.Create(Application); + try + with aObj do + begin + Items := aControl; + ShowEmbedded; + end; + finally + aControl := NIL; + aObj := NIL; + end; +end; + +initialization + RegisterModuleClass(TModuleVentasTerminadas); + +finalization + UnRegisterModuleClass(TModuleVentasTerminadas); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm new file mode 100644 index 0000000..e92c347 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm @@ -0,0 +1,211 @@ +inherited frViewControlGridResumenVentas: TfrViewControlGridResumenVentas + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnCustomDrawCell = cxGridViewCustomDrawCell + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = '0,0 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + end> + OptionsView.CellAutoHeight = False + OptionsView.FooterAutoHeight = False + Preview.AutoHeight = False + end + end + inherited dsDataSource: TDADataSource + OnStateChange = dsDataSourceStateChange + end + inherited dxComponentPrinter: TdxComponentPrinter + CurrentLink = dxComponentPrinterLink1 + object dxComponentPrinterLink1: TdxGridReportLink + Active = True + Component = cxGrid + PrinterPage.DMPaper = 9 + PrinterPage.Footer = 6350 + PrinterPage.Header = 6350 + PrinterPage.Margins.Bottom = 12700 + PrinterPage.Margins.Left = 12700 + PrinterPage.Margins.Right = 12700 + PrinterPage.Margins.Top = 12700 + PrinterPage.Orientation = poLandscape + PrinterPage.PageSize.X = 210000 + PrinterPage.PageSize.Y = 297000 + PrinterPage._dxMeasurementUnits_ = 0 + PrinterPage._dxLastMU_ = 2 + ReportDocument.Caption = 'Venta mensual' + ReportDocument.CreationDate = 39329.694692372690000000 + ReportTitle.Text = 'Venta mensual' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = 10 + Font.Name = 'Tahoma' + Font.Style = [] + OptionsFormatting.UseNativeStyles = True + OptionsView.Caption = False + OptionsView.FilterBar = False + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + object cxStyleDia: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = cl3DLight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + TextColor = clWindowText + end + object cxStyleTotal: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyleImporte: TcxStyle + end + end + object cxEditRepository1: TcxEditRepository + Left = 32 + Top = 88 + object cxEditDia: TcxEditRepositoryTextItem + Properties.Alignment.Horz = taRightJustify + end + object cxEditImporte: TcxEditRepositoryCurrencyItem + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 + Properties.UseThousandSeparator = True + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas new file mode 100644 index 0000000..adcd752 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas @@ -0,0 +1,144 @@ +unit uViewControGridResumenVentas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, + cxEditRepositoryItems, uDAInterfaces; + +type + IViewControlGridResumenVentas = interface(IViewGrid) + ['{E6D7FF0F-7E64-4E8C-8844-CAC011A62CDE}'] + end; + + TfrViewControlGridResumenVentas = class(TfrViewGrid, IViewControlGridResumenVentas) + dxComponentPrinterLink1: TdxGridReportLink; + cxEditRepository1: TcxEditRepository; + cxEditDia: TcxEditRepositoryTextItem; + cxEditImporte: TcxEditRepositoryCurrencyItem; + cxStyleDia: TcxStyle; + cxStyleTotal: TcxStyle; + cxStyleImporte: TcxStyle; + procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure dsDataSourceStateChange(Sender: TObject); + private + procedure LimpiarGrid; + procedure GenerarGrid; + public + procedure Preview(Mes: String; Ano: String); overload; + procedure Print(Mes: String; Ano: String); overload; + end; + +implementation +{$R *.dfm} + +uses schVentasTerminadasClient_Intf, uViewGridBase; + +{ TfrViewControlGridResumenVentas } + +procedure TfrViewControlGridResumenVentas.Preview(Mes: String; Ano: String); +begin + inherited Preview; + dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; + dxComponentPrinterLink1.Preview; +end; + +procedure TfrViewControlGridResumenVentas.cxGridViewCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if not VarIsNull(AViewInfo.Value) then + if Pos('-', AViewInfo.Value) > 0 then + ACanvas.Canvas.Font.Color := $000000CC; +end; + +procedure TfrViewControlGridResumenVentas.dsDataSourceStateChange(Sender: TObject); +begin + if dsDataSource.State = dsInactive then + LimpiarGrid + else + GenerarGrid; +end; + +procedure TfrViewControlGridResumenVentas.GenerarGrid; +var + i, AuxPos, AuxLen: Integer; + +begin + cxGridView.BeginUpdate; + + try + cxGridView.DataController.CreateAllItems; + + for i := 0 to cxGridView.ColumnCount - 1 do + begin + case i of + 0: cxGridView.Columns[i].Visible := False; + 1: begin + cxGridView.Columns[i].Styles.Content := cxStyleDia; + cxGridView.Columns[i].Properties := cxEditDia.Properties; + cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; + cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; + cxGridView.Columns[i].Width := 30; + cxGridView.Columns[i].SortIndex := 0; + cxGridView.Columns[i].SortOrder := soAscending; + + end; + else begin + cxGridView.Columns[i].Styles.Content := cxStyleImporte; + cxGridView.Columns[i].PropertiesClassName := 'TcxCurrencyEditProperties'; + cxGridView.Columns[i].Properties := cxEditImporte.Properties; + cxGridView.Columns[i].Summary.FooterKind := skSum; + cxGridView.Columns[i].Summary.FooterFormat := ',0.## €;-,0.## €'; + cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; + cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; + cxGridView.Columns[i].Width := 175; + end; + end; + + if i = 2 then + begin + cxGridView.Columns[i].HeaderAlignmentHorz := taLeftJustify; + cxGridView.Columns[i].Styles.Content := cxStyleTotal; + end; + + //Dejamos de la descripción del centro lo más corta y representativa posible + AuxPos := Pos('INGLES', cxGridView.Columns[i].Caption); + if AuxPos > 0 then AuxPos := AuxPos + 6; + AuxLen := Length(cxGridView.Columns[i].Caption) - AuxPos; + cxGridView.Columns[i].Caption := Trim(Copy(cxGridView.Columns[i].Caption, AuxPos, AuxLen)); + end; + + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewControlGridResumenVentas.LimpiarGrid; +begin + cxGridView.BeginUpdate; + try + cxGridView.ClearItems; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewControlGridResumenVentas.Print(Mes, Ano: String); +begin + inherited Print; + dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; + dxComponentPrinterLink1.Print(True, Nil); +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm new file mode 100644 index 0000000..ca341d0 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm @@ -0,0 +1,278 @@ +inherited frViewControlGridVentasTerminadas: TfrViewControlGridVentasTerminadas + Width = 733 + Height = 572 + object cxGrid: TcxGrid [0] + Left = 0 + Top = 0 + Width = 733 + Height = 572 + Align = alClient + TabOrder = 0 + LookAndFeel.Kind = lfStandard + LookAndFeel.NativeStyle = True + object cxGridView: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + FilterBox.CustomizeDialog = False + DataController.Filter.Options = [fcoCaseInsensitive] + DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged + DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary + DataController.OnCompare = cxGridViewDataControllerCompare + DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged + DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged + OptionsBehavior.CellHints = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnGrouping = False + OptionsCustomize.DataRowSizing = True + OptionsCustomize.GroupRowSizing = True + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsSelection.UnselectFocusedRecordOnExit = False + OptionsView.CellEndEllipsis = True + OptionsView.CellAutoHeight = True + OptionsView.ColumnAutoWidth = True + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GridLineColor = cl3DLight + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + OptionsView.HeaderEndEllipsis = True + Styles.FilterBox = cxStyleFilterBox + Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle + OnColumnPosChanged = cxGridViewColumnPosChanged + OnColumnSizeChanged = cxGridViewColumnSizeChanged + object cxGridViewFECHA: TcxGridDBColumn + Caption = 'Fecha' + DataBinding.FieldName = 'FECHA' + end + object cxGridViewDIA: TcxGridDBColumn + Caption = 'Dia' + DataBinding.FieldName = 'DIA' + end + object cxGridViewDIASEMANA: TcxGridDBColumn + Caption = 'Dia de la semana' + DataBinding.FieldName = 'DIASEMANA' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup + end + object cxGridViewMES: TcxGridDBColumn + Caption = 'Mes' + DataBinding.FieldName = 'MES' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup + end + object cxGridViewANO: TcxGridDBColumn + Caption = 'A'#241'o' + DataBinding.FieldName = 'ANO' + end + object cxGridViewCENTRO: TcxGridDBColumn + Caption = 'Centro' + DataBinding.FieldName = 'CENTRO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup + end + object cxGridViewVENDEDOR: TcxGridDBColumn + Caption = 'Vendedor' + DataBinding.FieldName = 'VENDEDOR' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup + end + object cxGridViewNUMTALON: TcxGridDBColumn + Caption = 'Tal'#243'n' + DataBinding.FieldName = 'NUMTALON' + end + object cxGridViewCODIGO: TcxGridDBColumn + Caption = 'Codigo' + DataBinding.FieldName = 'CODIGO' + end + object cxGridViewPRODUCTO: TcxGridDBColumn + Caption = 'Producto' + DataBinding.FieldName = 'PRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup + end + object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn + Caption = 'Grupo' + DataBinding.FieldName = 'GRUPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup + end + object cxGridViewTIPOPRODUCTO: TcxGridDBColumn + Caption = 'Tipo' + DataBinding.FieldName = 'TIPOPRODUCTO' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup + end + object cxGridViewCOLECCION: TcxGridDBColumn + Caption = 'Coleccion' + DataBinding.FieldName = 'COLECCION' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup + end + object cxGridViewCOLOR: TcxGridDBColumn + Caption = 'Color' + DataBinding.FieldName = 'COLOR' + end + object cxGridViewTALLA: TcxGridDBColumn + Caption = 'Talla' + DataBinding.FieldName = 'TALLA' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA38: TcxGridDBColumn + Caption = '38' + DataBinding.FieldName = 'TALLA38' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA40: TcxGridDBColumn + Caption = '40' + DataBinding.FieldName = 'TALLA40' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA42: TcxGridDBColumn + Caption = '42' + DataBinding.FieldName = 'TALLA42' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA44: TcxGridDBColumn + Caption = '44' + DataBinding.FieldName = 'TALLA44' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA46: TcxGridDBColumn + Caption = '46' + DataBinding.FieldName = 'TALLA46' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTALLA48: TcxGridDBColumn + Caption = '48' + DataBinding.FieldName = 'TALLA48' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTATERMDEV: TcxGridDBColumn + Caption = 'Vta. Term/Dev' + DataBinding.FieldName = 'VTATERMDEV' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVTAFINALRESC: TcxGridDBColumn + Caption = 'Vta. Final/Resc' + DataBinding.FieldName = 'VTAFINALRESC' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVENTAS: TcxGridDBColumn + Caption = 'Ventas' + DataBinding.FieldName = 'VENTAS' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDEVOLUCIONES: TcxGridDBColumn + Caption = 'Devoluciones' + DataBinding.FieldName = 'DEVOLUCIONES' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewTOTAL: TcxGridDBColumn + Caption = 'Total' + DataBinding.FieldName = 'TOTAL' + PropertiesClassName = 'TcxSpinEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALTERMDEV: TcxGridDBColumn + Caption = 'Val. Term/Dev' + DataBinding.FieldName = 'VALTERMDEV' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewVALFINALRESC: TcxGridDBColumn + Caption = 'Val. Final/Resc' + DataBinding.FieldName = 'VALFINALRESC' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPVEN: TcxGridDBColumn + Caption = 'Imp. ventas' + DataBinding.FieldName = 'VALVEN' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPDEV: TcxGridDBColumn + Caption = 'Imp. devoluciones' + DataBinding.FieldName = 'VALDEV' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPTOT: TcxGridDBColumn + Caption = 'Imp. total' + DataBinding.FieldName = 'VALTOT' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + end + object cxGridLevel: TcxGridLevel + GridView = cxGridView + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + Component = cxGrid + BuiltInReportLink = True + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 16 + Top = 48 + object cxStyleRed: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyleBlue: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleFilterBox: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clInfoBk + TextColor = clWindowText + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas new file mode 100644 index 0000000..57a3752 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas @@ -0,0 +1,385 @@ +unit uViewControGridlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, + dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, + cxDropDownEdit, StdCtrls, cxSpinEdit; + +type + IViewControlGridVentasTerminadas = interface(IViewControlGrid) + ['{95B6857B-0F06-470B-8099-CDB07017B63F}'] + end; + + TfrViewControlGridVentasTerminadas = class(TfrViewControlGrid, IViewControlGridVentasTerminadas) + cxGrid: TcxGrid; + cxGridView: TcxGridDBTableView; + cxGridLevel: TcxGridLevel; + cxStyleRepository1: TcxStyleRepository; + cxStyleRed: TcxStyle; + cxStyleBlue: TcxStyle; + cxStyleFilterBox: TcxStyle; + cxGridViewFECHA: TcxGridDBColumn; + cxGridViewDIA: TcxGridDBColumn; + cxGridViewDIASEMANA: TcxGridDBColumn; + cxGridViewMES: TcxGridDBColumn; + cxGridViewANO: TcxGridDBColumn; + cxGridViewCENTRO: TcxGridDBColumn; + cxGridViewVENDEDOR: TcxGridDBColumn; + cxGridViewCODIGO: TcxGridDBColumn; + cxGridViewPRODUCTO: TcxGridDBColumn; + cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; + cxGridViewTIPOPRODUCTO: TcxGridDBColumn; + cxGridViewCOLECCION: TcxGridDBColumn; + cxGridViewCOLOR: TcxGridDBColumn; + cxGridViewTALLA: TcxGridDBColumn; + cxGridViewTALLA38: TcxGridDBColumn; + cxGridViewTALLA40: TcxGridDBColumn; + cxGridViewTALLA42: TcxGridDBColumn; + cxGridViewTALLA44: TcxGridDBColumn; + cxGridViewTALLA46: TcxGridDBColumn; + cxGridViewTALLA48: TcxGridDBColumn; + cxGridViewVENTAS: TcxGridDBColumn; + cxGridViewDEVOLUCIONES: TcxGridDBColumn; + cxGridViewTOTAL: TcxGridDBColumn; + cxGridViewIMPVEN: TcxGridDBColumn; + cxGridViewIMPDEV: TcxGridDBColumn; + cxGridViewIMPTOT: TcxGridDBColumn; + cxGridViewNUMTALON: TcxGridDBColumn; + cxGridViewVTATERMDEV: TcxGridDBColumn; + cxGridViewVTAFINALRESC: TcxGridDBColumn; + cxGridViewVALTERMDEV: TcxGridDBColumn; + cxGridViewVALFINALRESC: TcxGridDBColumn; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; + AColumn: TcxGridColumn); + procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); + procedure cxGridViewDataControllerSortingChanged(Sender: TObject); + procedure cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); + procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); + procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); + procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerFilterChanged(Sender: TObject); + procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); + procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); + procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); + procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); + procedure cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, + ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant; + var Compare: Integer); + protected + procedure ActivarEventos; override; + procedure DesactivarEventos; override; + function GetFocusedView : TcxGridDBTableView; override; + public + procedure Refresh; override; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses + cxVariants, uDateUtils; + +{$R *.dfm} + +{ TfrViewControlGridVentasTerminadas } + +function TfrViewControlGridVentasTerminadas.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +procedure TfrViewControlGridVentasTerminadas.Refresh; +var + FocusedRow, TopRow : Integer; +begin + inherited; + { Refrescar las filas del grid a partir del dataset y colocar la fila + seleccionada donde estaba } + if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then + begin + TopRow := FocusedView.Controller.TopRowIndex; + FocusedRow := FocusedView.DataController.FocusedRowIndex; + + FocusedView.DataController.UpdateItems(False); // <- Refresco + + FocusedView.DataController.FocusedRowIndex := FocusedRow; + FocusedView.Controller.TopRowIndex := TopRow; + + { Esta chapuzilla es para que se rellenen los combobox de los filtros + por que el cxFilterControl no coge los valores la 1ª vez si los + combos están vacíos. } + TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); + TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + AColumn : TcxGridDBColumn; + AFecha : TDateTime; +begin + inherited; + + // La fila es la cabecera de un grupo +{ if ARecord.Expandable then + Exit; + + AColumn := FocusedView.GetColumnByFieldName('FECHA'); + if Assigned(AColumn) and (AColumn.Visible) then + begin + try + AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); + except + on Exception do + ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); + end; + + if DaysBetween(Now, AFecha) > 14 then + AStyle := cxStyleRed + else + if DaysBetween(Now, AFecha) > 7 then + AStyle := cxStyleBlue + end; } +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnPosChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnSizeChanged( + Sender: TcxGridTableView; AColumn: TcxGridColumn); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerGroupingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSortingChanged( + Sender: TObject); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSummaryAfterSummary( + ASender: TcxDataSummary); +begin + inherited; + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewCENTROPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewVENDEDORPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerFilterChanged( + Sender: TObject); +begin + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +constructor TfrViewControlGridVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; +end; + +procedure TfrViewControlGridVentasTerminadas.ActivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; + DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; + DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; + DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; + OnColumnPosChanged := cxGridViewColumnPosChanged; + OnColumnSizeChanged := cxGridViewColumnSizeChanged; + end; +end; + +procedure TfrViewControlGridVentasTerminadas.DesactivarEventos; +begin + inherited; + with cxGridView do + begin + DataController.Filter.OnChanged := nil; + DataController.Summary.OnAfterSummary := nil; + DataController.OnGroupingChanged := nil; + DataController.OnSortingChanged := nil; + OnColumnPosChanged := nil; + OnColumnSizeChanged := nil; + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDIASEMANAPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewMESPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewMES.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewMES.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewTIPOPRODUCTOPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewCOLECCIONPropertiesInitPopup( + Sender: TObject); +begin + inherited; + with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do + begin + Items.Clear; + Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); + Items.Delete(1); // "Personalizado" + Items.Delete(0); // "Todos" + end; +end; + +procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerCompare( + ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, + AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); +var + AValue1, + AValue2 : Variant; +begin + // Por defecto + Compare := VarCompare(V1, V2); + try + if (AItemIndex = cxGridViewDIASEMANA.Index) then + begin + AValue1 := ADataController.Values[ARecordIndex1, cxGridViewDIASEMANA.Index]; + AValue2 := ADataController.Values[ARecordIndex2, cxGridViewDIASEMANA.Index]; + if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then + Compare := VarCompare(NumberDayOfTheWeek(AValue1), NumberDayOfTheWeek(AValue2)) + end + else begin + if (AItemIndex = cxGridViewMES.Index) then + begin + AValue1 := ADataController.Values[ARecordIndex1, cxGridViewMES.Index]; + AValue2 := ADataController.Values[ARecordIndex2, cxGridViewMES.Index]; + if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then + Compare := VarCompare(NumberMonthOfTheYear(AValue1), NumberMonthOfTheYear(AValue2)) + end + end; + except + //ShowMessage(VarToStr(ARecordIndex1) + ' ' + VarToStr(ARecordIndex1)); + end; +end; + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm new file mode 100644 index 0000000..bc80b1d --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm @@ -0,0 +1,248 @@ +inherited frViewControlVentasTerminadas: TfrViewControlVentasTerminadas + Height = 608 + ExplicitHeight = 608 + inherited TBXMultiDock1: TTBXMultiDock + Width = 232 + Height = 608 + ExplicitWidth = 232 + ExplicitHeight = 608 + inherited pnlParametros: TTBXDockablePanel + DockedWidth = 228 + ExplicitWidth = 232 + ExplicitHeight = 289 + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 228 + Height = 68 + ExplicitWidth = 228 + ExplicitHeight = 68 + inherited TBXLink1: TTBXLink + Width = 220 + Height = 20 + Action = actPeriodoFechas + ImageIndex = 4 + Images = SmallImages + ExplicitWidth = 220 + ExplicitHeight = 20 + end + inherited TBXLink5: TTBXLink + Top = 24 + Width = 220 + ExplicitTop = 24 + ExplicitWidth = 220 + end + inherited TBXLink2: TTBXLink + Top = 44 + Width = 220 + ExplicitTop = 44 + ExplicitWidth = 220 + end + end + inherited pcParametros: TPageControl + Top = 68 + Width = 228 + ExplicitTop = 68 + ExplicitWidth = 228 + inherited TabSheet5: TTabSheet + ExplicitWidth = 220 + inline frViewPeriodoFechas1: TfrViewPeriodoFechas + Left = 0 + Top = 0 + Width = 220 + Height = 159 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitWidth = 220 + ExplicitHeight = 159 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited TBXLabel2: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + inherited cbPeriodo: TcxComboBox + ExplicitWidth = 176 + Width = 176 + end + end + inherited TBXAlignmentPanel2: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + inherited Label2: TLabel + Width = 29 + ExplicitWidth = 29 + end + end + end + end + inherited tsColumnas: TTabSheet + ExplicitWidth = 220 + inherited frViewColumnas1: TfrViewColumnas + Width = 220 + ExplicitWidth = 220 + inherited lbColumnas: TcxCheckListBox + Width = 220 + ExplicitWidth = 220 + end + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + end + end + inherited tsAgrupacion: TTabSheet + ExplicitWidth = 220 + inherited frViewAgrupaciones1: TfrViewAgrupaciones + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited pnlAgrupaciones: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + DesignSize = ( + 220 + 77) + end + end + end + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Top = 237 + Width = 228 + ExplicitTop = 237 + ExplicitWidth = 228 + end + end + inherited pnlTareas: TTBXDockablePanel + Top = 289 + DockedWidth = 228 + DockPos = 289 + Visible = False + ExplicitTop = 289 + ExplicitWidth = 232 + inherited TBXPageScroller1: TTBXPageScroller + Width = 228 + ExplicitWidth = 228 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 228 + ExplicitWidth = 228 + inherited bFiltros: TTBXLink + Width = 220 + ExplicitWidth = 220 + end + inherited bSumarios: TTBXLink + Width = 220 + ExplicitWidth = 220 + end + end + inherited pcTareas: TPageControl + Width = 228 + ExplicitWidth = 228 + inherited tsSumarios: TTabSheet + ExplicitWidth = 220 + inherited frViewSumarios1: TfrViewSumarios + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited vgSumarios: TcxVerticalGrid + Width = 220 + ExplicitWidth = 220 + end + end + end + inherited tsFiltros: TTabSheet + ExplicitWidth = 220 + inherited frViewFiltros1: TfrViewFiltros + Width = 220 + ExplicitWidth = 220 + inherited TBXLabel1: TTBXLabel + Width = 220 + ExplicitWidth = 220 + end + inherited cxFilterControl1: TcxFilterControl + Width = 220 + ExplicitWidth = 220 + end + inherited TBXAlignmentPanel3: TTBXAlignmentPanel + Width = 220 + ExplicitWidth = 220 + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 136 + Top = 64 + end + end + end + end + end + end + end + inline frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas [1] + Left = 232 + Top = 0 + Width = 467 + Height = 608 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 232 + ExplicitWidth = 467 + ExplicitHeight = 608 + inherited cxGrid: TcxGrid + Width = 467 + Height = 608 + ExplicitWidth = 467 + ExplicitHeight = 608 + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = True + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxPrinterLinkcxGrid: TdxGridReportLink + BuiltInReportLink = True + end + end + end + inherited SmallImages: TPngImageList [2] + end + inherited LargeImages: TPngImageList [3] + end + inherited EditorActionList: TActionList + Left = 248 + Top = 72 + inherited actRefrescar: TAction + OnExecute = actRefrescarExecute + end + object actPeriodoFechas: TAction + Category = 'Tareas' + Caption = 'Periodo de fechas' + ImageIndex = 4 + OnExecute = actPeriodoFechasExecute + end + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas new file mode 100644 index 0000000..efa6b59 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas @@ -0,0 +1,148 @@ +unit uViewControlVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, + uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, + uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, + TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, + cxTextEdit, uViewFiltros, + uViewControGridlVentasTerminadas, uViewPeriodoFechas; + +type + IViewControlVentasTerminadas = interface(IViewControlBase) + ['{B8B9105B-E833-4E7D-BA36-EB9A7EBDCE69}'] + end; + + TfrViewControlVentasTerminadas = class(TfrViewControlBase, IViewControlVentasTerminadas) + frViewPeriodoFechas1: TfrViewPeriodoFechas; + actPeriodoFechas: TAction; + frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas; + procedure actRefrescarExecute(Sender: TObject); + procedure actPeriodoFechasExecute(Sender: TObject); + protected + FModificado : Boolean; + procedure OnViewControlGridChanged(Sender : TObject); + procedure OnFilterChanged(Sender : TObject); + procedure ActivarTarea(const ATarea: Integer); override; + public + constructor Create(AOwner: TComponent); override; + procedure Refresh; override; + end; + +implementation + +uses + uDataModuleVentasTerminadas, uBizControlVentasTerminadas, uBizVentasTerminadas; + +const + PERIODO = 0; + +{$R *.dfm} + +{ TfrViewControlVentasTerminadas } + +constructor TfrViewControlVentasTerminadas.Create(AOwner: TComponent); +begin + inherited; + frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; + frViewColumnas1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewSumarios1.ViewControlGrid := frViewControlGridVentasTerminadas1; + frViewFiltros1.ViewControlGrid := frViewControlGridVentasTerminadas1; + pcParametros.ActivePage := TabSheet5; +end; + +procedure TfrViewControlVentasTerminadas.Refresh; +var + AColumns : TStringList; +begin + inherited; + ShowHourglassCursor; + actRefrescar.Enabled := False; + + frViewControlGridVentasTerminadas1.OnViewChanged := nil; + frViewControlGridVentasTerminadas1.OnFilterChanged := nil; + + try + // Calcular las columnas a pedir al servidor + AColumns := frViewColumnas1.GetCheckedColumns; + AColumns.Duplicates := dupIgnore; + AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); + + (Control as IBizControlVentasTerminadas).Items.VisibleColumns := AColumns.CommaText; + with (Control as IBizControlVentasTerminadas).Items.DataTable do + begin + DisableControls; + try + Active := False; + LoadSchema; + ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial; + ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal; + Active := True; + + frViewColumnas1.Execute; + frViewAgrupaciones1.Execute; + frViewSumarios1.Refresh; + frViewFiltros1.Refresh; + pnlTareas.Visible := True; + + if Assigned(FOnViewChanged) then + FOnViewChanged(Self); + finally + EnableControls; + frViewControlGridVentasTerminadas1.Refresh; + frViewControlGridVentasTerminadas1.ExpandirTodo; + frViewControlGridVentasTerminadas1.GotoFirst; + end; + end; + finally + FreeAndNil(AColumns); + frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; + frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; + actRefrescar.Enabled := True; + HideHourglassCursor; + end; +end; + +procedure TfrViewControlVentasTerminadas.actRefrescarExecute(Sender: TObject); +begin + inherited; + Refresh; +end; + +procedure TfrViewControlVentasTerminadas.OnViewControlGridChanged( + Sender: TObject); +begin + if Assigned(Self.OnViewChanged) then + Self.OnViewChanged(Self); +end; + +procedure TfrViewControlVentasTerminadas.OnFilterChanged(Sender: TObject); +begin + frViewFiltros1.Refresh; +end; + +procedure TfrViewControlVentasTerminadas.actPeriodoFechasExecute( + Sender: TObject); +begin + inherited; + ActivarTarea(PERIODO); +end; + +procedure TfrViewControlVentasTerminadas.ActivarTarea( + const ATarea: Integer); +begin + inherited; + case ATarea of + PERIODO : pcParametros.ActivePage := TabSheet5; + end; +end; + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm new file mode 100644 index 0000000..65e3160 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm @@ -0,0 +1,11 @@ +inherited frViewControlesVentasTerminadas: TfrViewControlesVentasTerminadas + inherited EasyListview: TEasyListview + Header.Columns.Items = { + 0400000002000000FFFECE000400000000110001000001000000000100013200 + 000001000000060000004E006F006D0062007200650000000000000000000000 + 0000FFFECE000400000000110001000001010000000000013200000001000000 + 0B000000440065007300630072006900700063006900F3006E00000000000000 + 000000000000} + Header.Visible = True + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas new file mode 100644 index 0000000..c031e43 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas @@ -0,0 +1,24 @@ +unit uViewControlesVentasTerminadas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, + cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, + PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, + MPCommonObjects, MPCommonUtilities, EasyListview, uDAInterfaces; + +type + IViewControlesVentasTerminadas = interface(IViewControlesBase) + ['{0AFCCF6C-F5FB-4E88-9E8C-5B27D84F0D56}'] + end; + + TfrViewControlesVentasTerminadas = class(TfrViewControlesBase, IViewControlesVentasTerminadas) + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas new file mode 100644 index 0000000..8f7213b --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas @@ -0,0 +1,1331 @@ +unit schVentasTerminadasClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasTerminadasCrossTab = '{2E68D174-CE7E-4597-A951-7670FA84D874}'; + RID_VentasTerminadas = '{F20667F0-C1D2-4500-8E10-1B8577467C80}'; + + { Data table names } + nme_VentasTerminadasCrossTab = 'VentasTerminadasCrossTab'; + nme_VentasTerminadas = 'VentasTerminadas'; + + { VentasTerminadasCrossTab fields } + + { VentasTerminadasCrossTab field indexes } + + { VentasTerminadas fields } + fld_VentasTerminadasNUMINF = 'NUMINF'; + fld_VentasTerminadasCLAVE1 = 'CLAVE1'; + fld_VentasTerminadasCLAVE2 = 'CLAVE2'; + fld_VentasTerminadasCLAVE3 = 'CLAVE3'; + fld_VentasTerminadasFECHA = 'FECHA'; + fld_VentasTerminadasDIA = 'DIA'; + fld_VentasTerminadasDIASEMANA = 'DIASEMANA'; + fld_VentasTerminadasMES = 'MES'; + fld_VentasTerminadasANO = 'ANO'; + fld_VentasTerminadasCENTRO = 'CENTRO'; + fld_VentasTerminadasVENDEDOR = 'VENDEDOR'; + fld_VentasTerminadasNUMTALON = 'NUMTALON'; + fld_VentasTerminadasCODIGO = 'CODIGO'; + fld_VentasTerminadasPRODUCTO = 'PRODUCTO'; + fld_VentasTerminadasGRUPOPRODUCTO = 'GRUPOPRODUCTO'; + fld_VentasTerminadasTIPOPRODUCTO = 'TIPOPRODUCTO'; + fld_VentasTerminadasCOLECCION = 'COLECCION'; + fld_VentasTerminadasCOLOR = 'COLOR'; + fld_VentasTerminadasTALLA = 'TALLA'; + fld_VentasTerminadasTALLA38 = 'TALLA38'; + fld_VentasTerminadasTALLA40 = 'TALLA40'; + fld_VentasTerminadasTALLA42 = 'TALLA42'; + fld_VentasTerminadasTALLA44 = 'TALLA44'; + fld_VentasTerminadasTALLA46 = 'TALLA46'; + fld_VentasTerminadasTALLA48 = 'TALLA48'; + fld_VentasTerminadasVTATERMDEV = 'VTATERMDEV'; + fld_VentasTerminadasVTAFINALRESC = 'VTAFINALRESC'; + fld_VentasTerminadasVENTAS = 'VENTAS'; + fld_VentasTerminadasDEVOLUCIONES = 'DEVOLUCIONES'; + fld_VentasTerminadasTOTAL = 'TOTAL'; + fld_VentasTerminadasVALTERMDEV = 'VALTERMDEV'; + fld_VentasTerminadasVALFINALRESC = 'VALFINALRESC'; + fld_VentasTerminadasVALVEN = 'VALVEN'; + fld_VentasTerminadasVALDEV = 'VALDEV'; + fld_VentasTerminadasVALTOT = 'VALTOT'; + + { VentasTerminadas field indexes } + idx_VentasTerminadasNUMINF = 0; + idx_VentasTerminadasCLAVE1 = 1; + idx_VentasTerminadasCLAVE2 = 2; + idx_VentasTerminadasCLAVE3 = 3; + idx_VentasTerminadasFECHA = 4; + idx_VentasTerminadasDIA = 5; + idx_VentasTerminadasDIASEMANA = 6; + idx_VentasTerminadasMES = 7; + idx_VentasTerminadasANO = 8; + idx_VentasTerminadasCENTRO = 9; + idx_VentasTerminadasVENDEDOR = 10; + idx_VentasTerminadasNUMTALON = 11; + idx_VentasTerminadasCODIGO = 12; + idx_VentasTerminadasPRODUCTO = 13; + idx_VentasTerminadasGRUPOPRODUCTO = 14; + idx_VentasTerminadasTIPOPRODUCTO = 15; + idx_VentasTerminadasCOLECCION = 16; + idx_VentasTerminadasCOLOR = 17; + idx_VentasTerminadasTALLA = 18; + idx_VentasTerminadasTALLA38 = 19; + idx_VentasTerminadasTALLA40 = 20; + idx_VentasTerminadasTALLA42 = 21; + idx_VentasTerminadasTALLA44 = 22; + idx_VentasTerminadasTALLA46 = 23; + idx_VentasTerminadasTALLA48 = 24; + idx_VentasTerminadasVTATERMDEV = 25; + idx_VentasTerminadasVTAFINALRESC = 26; + idx_VentasTerminadasVENTAS = 27; + idx_VentasTerminadasDEVOLUCIONES = 28; + idx_VentasTerminadasTOTAL = 29; + idx_VentasTerminadasVALTERMDEV = 30; + idx_VentasTerminadasVALFINALRESC = 31; + idx_VentasTerminadasVALVEN = 32; + idx_VentasTerminadasVALDEV = 33; + idx_VentasTerminadasVALTOT = 34; + +type + { IVentasTerminadasCrossTab } + IVentasTerminadasCrossTab = interface(IDAStronglyTypedDataTable) + ['{F1FA92FE-5A97-4645-A93A-CAFA9775A238}'] + { Property getters and setters } + + + { Properties } + end; + + { TVentasTerminadasCrossTabDataTableRules } + TVentasTerminadasCrossTabDataTableRules = class(TDADataTableRules, IVentasTerminadasCrossTab) + private + protected + { Property getters and setters } + + { Properties } + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IVentasTerminadas } + IVentasTerminadas = interface(IDAStronglyTypedDataTable) + ['{78DAAFC9-9EAE-4237-B301-3103B6C18EF2}'] + { Property getters and setters } + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetNUMINFIsNull: Boolean; + procedure SetNUMINFIsNull(const aValue: Boolean); + function GetCLAVE1Value: TBcd; + procedure SetCLAVE1Value(const aValue: TBcd); + function GetCLAVE1IsNull: Boolean; + procedure SetCLAVE1IsNull(const aValue: Boolean); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetCLAVE2IsNull: Boolean; + procedure SetCLAVE2IsNull(const aValue: Boolean); + function GetCLAVE3Value: Integer; + procedure SetCLAVE3Value(const aValue: Integer); + function GetCLAVE3IsNull: Boolean; + procedure SetCLAVE3IsNull(const aValue: Boolean); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetFECHAIsNull: Boolean; + procedure SetFECHAIsNull(const aValue: Boolean); + function GetDIAValue: Integer; + procedure SetDIAValue(const aValue: Integer); + function GetDIAIsNull: Boolean; + procedure SetDIAIsNull(const aValue: Boolean); + function GetDIASEMANAValue: WideString; + procedure SetDIASEMANAValue(const aValue: WideString); + function GetDIASEMANAIsNull: Boolean; + procedure SetDIASEMANAIsNull(const aValue: Boolean); + function GetMESValue: WideString; + procedure SetMESValue(const aValue: WideString); + function GetMESIsNull: Boolean; + procedure SetMESIsNull(const aValue: Boolean); + function GetANOValue: Integer; + procedure SetANOValue(const aValue: Integer); + function GetANOIsNull: Boolean; + procedure SetANOIsNull(const aValue: Boolean); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetCENTROIsNull: Boolean; + procedure SetCENTROIsNull(const aValue: Boolean); + function GetVENDEDORValue: String; + procedure SetVENDEDORValue(const aValue: String); + function GetVENDEDORIsNull: Boolean; + procedure SetVENDEDORIsNull(const aValue: Boolean); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetNUMTALONIsNull: Boolean; + procedure SetNUMTALONIsNull(const aValue: Boolean); + function GetCODIGOValue: String; + procedure SetCODIGOValue(const aValue: String); + function GetCODIGOIsNull: Boolean; + procedure SetCODIGOIsNull(const aValue: Boolean); + function GetPRODUCTOValue: String; + procedure SetPRODUCTOValue(const aValue: String); + function GetPRODUCTOIsNull: Boolean; + procedure SetPRODUCTOIsNull(const aValue: Boolean); + function GetGRUPOPRODUCTOValue: String; + procedure SetGRUPOPRODUCTOValue(const aValue: String); + function GetGRUPOPRODUCTOIsNull: Boolean; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); + function GetTIPOPRODUCTOValue: String; + procedure SetTIPOPRODUCTOValue(const aValue: String); + function GetTIPOPRODUCTOIsNull: Boolean; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); + function GetCOLECCIONValue: String; + procedure SetCOLECCIONValue(const aValue: String); + function GetCOLECCIONIsNull: Boolean; + procedure SetCOLECCIONIsNull(const aValue: Boolean); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetCOLORIsNull: Boolean; + procedure SetCOLORIsNull(const aValue: Boolean); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetTALLAIsNull: Boolean; + procedure SetTALLAIsNull(const aValue: Boolean); + function GetTALLA38Value: TBcd; + procedure SetTALLA38Value(const aValue: TBcd); + function GetTALLA38IsNull: Boolean; + procedure SetTALLA38IsNull(const aValue: Boolean); + function GetTALLA40Value: TBcd; + procedure SetTALLA40Value(const aValue: TBcd); + function GetTALLA40IsNull: Boolean; + procedure SetTALLA40IsNull(const aValue: Boolean); + function GetTALLA42Value: TBcd; + procedure SetTALLA42Value(const aValue: TBcd); + function GetTALLA42IsNull: Boolean; + procedure SetTALLA42IsNull(const aValue: Boolean); + function GetTALLA44Value: TBcd; + procedure SetTALLA44Value(const aValue: TBcd); + function GetTALLA44IsNull: Boolean; + procedure SetTALLA44IsNull(const aValue: Boolean); + function GetTALLA46Value: TBcd; + procedure SetTALLA46Value(const aValue: TBcd); + function GetTALLA46IsNull: Boolean; + procedure SetTALLA46IsNull(const aValue: Boolean); + function GetTALLA48Value: TBcd; + procedure SetTALLA48Value(const aValue: TBcd); + function GetTALLA48IsNull: Boolean; + procedure SetTALLA48IsNull(const aValue: Boolean); + function GetVTATERMDEVValue: TBcd; + procedure SetVTATERMDEVValue(const aValue: TBcd); + function GetVTATERMDEVIsNull: Boolean; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); + function GetVTAFINALRESCValue: TBcd; + procedure SetVTAFINALRESCValue(const aValue: TBcd); + function GetVTAFINALRESCIsNull: Boolean; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); + function GetVENTASValue: TBcd; + procedure SetVENTASValue(const aValue: TBcd); + function GetVENTASIsNull: Boolean; + procedure SetVENTASIsNull(const aValue: Boolean); + function GetDEVOLUCIONESValue: TBcd; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); + function GetDEVOLUCIONESIsNull: Boolean; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); + function GetTOTALValue: TBcd; + procedure SetTOTALValue(const aValue: TBcd); + function GetTOTALIsNull: Boolean; + procedure SetTOTALIsNull(const aValue: Boolean); + function GetVALTERMDEVValue: TBcd; + procedure SetVALTERMDEVValue(const aValue: TBcd); + function GetVALTERMDEVIsNull: Boolean; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); + function GetVALFINALRESCValue: TBcd; + procedure SetVALFINALRESCValue(const aValue: TBcd); + function GetVALFINALRESCIsNull: Boolean; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); + function GetVALVENValue: TBcd; + procedure SetVALVENValue(const aValue: TBcd); + function GetVALVENIsNull: Boolean; + procedure SetVALVENIsNull(const aValue: Boolean); + function GetVALDEVValue: TBcd; + procedure SetVALDEVValue(const aValue: TBcd); + function GetVALDEVIsNull: Boolean; + procedure SetVALDEVIsNull(const aValue: Boolean); + function GetVALTOTValue: TBcd; + procedure SetVALTOTValue(const aValue: TBcd); + function GetVALTOTIsNull: Boolean; + procedure SetVALTOTIsNull(const aValue: Boolean); + + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; + property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property MES: WideString read GetMESValue write SetMESValue; + property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; + property ANO: Integer read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; + property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; + property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; + property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; + property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + end; + + { TVentasTerminadasDataTableRules } + TVentasTerminadasDataTableRules = class(TDADataTableRules, IVentasTerminadas) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetNUMINFIsNull: Boolean; virtual; + procedure SetNUMINFIsNull(const aValue: Boolean); virtual; + function GetCLAVE1Value: TBcd; virtual; + procedure SetCLAVE1Value(const aValue: TBcd); virtual; + function GetCLAVE1IsNull: Boolean; virtual; + procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetCLAVE2IsNull: Boolean; virtual; + procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; + function GetCLAVE3Value: Integer; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + function GetCLAVE3IsNull: Boolean; virtual; + procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHAIsNull: Boolean; virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetDIAValue: Integer; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + function GetDIAIsNull: Boolean; virtual; + procedure SetDIAIsNull(const aValue: Boolean); virtual; + function GetDIASEMANAValue: WideString; virtual; + procedure SetDIASEMANAValue(const aValue: WideString); virtual; + function GetDIASEMANAIsNull: Boolean; virtual; + procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; + function GetMESValue: WideString; virtual; + procedure SetMESValue(const aValue: WideString); virtual; + function GetMESIsNull: Boolean; virtual; + procedure SetMESIsNull(const aValue: Boolean); virtual; + function GetANOValue: Integer; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + function GetANOIsNull: Boolean; virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetCENTROIsNull: Boolean; virtual; + procedure SetCENTROIsNull(const aValue: Boolean); virtual; + function GetVENDEDORValue: String; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + function GetVENDEDORIsNull: Boolean; virtual; + procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetNUMTALONIsNull: Boolean; virtual; + procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + function GetCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetPRODUCTOValue: String; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + function GetPRODUCTOIsNull: Boolean; virtual; + procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + function GetGRUPOPRODUCTOIsNull: Boolean; virtual; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + function GetTIPOPRODUCTOIsNull: Boolean; virtual; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetCOLECCIONValue: String; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + function GetCOLECCIONIsNull: Boolean; virtual; + procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetCOLORIsNull: Boolean; virtual; + procedure SetCOLORIsNull(const aValue: Boolean); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetTALLAIsNull: Boolean; virtual; + procedure SetTALLAIsNull(const aValue: Boolean); virtual; + function GetTALLA38Value: TBcd; virtual; + procedure SetTALLA38Value(const aValue: TBcd); virtual; + function GetTALLA38IsNull: Boolean; virtual; + procedure SetTALLA38IsNull(const aValue: Boolean); virtual; + function GetTALLA40Value: TBcd; virtual; + procedure SetTALLA40Value(const aValue: TBcd); virtual; + function GetTALLA40IsNull: Boolean; virtual; + procedure SetTALLA40IsNull(const aValue: Boolean); virtual; + function GetTALLA42Value: TBcd; virtual; + procedure SetTALLA42Value(const aValue: TBcd); virtual; + function GetTALLA42IsNull: Boolean; virtual; + procedure SetTALLA42IsNull(const aValue: Boolean); virtual; + function GetTALLA44Value: TBcd; virtual; + procedure SetTALLA44Value(const aValue: TBcd); virtual; + function GetTALLA44IsNull: Boolean; virtual; + procedure SetTALLA44IsNull(const aValue: Boolean); virtual; + function GetTALLA46Value: TBcd; virtual; + procedure SetTALLA46Value(const aValue: TBcd); virtual; + function GetTALLA46IsNull: Boolean; virtual; + procedure SetTALLA46IsNull(const aValue: Boolean); virtual; + function GetTALLA48Value: TBcd; virtual; + procedure SetTALLA48Value(const aValue: TBcd); virtual; + function GetTALLA48IsNull: Boolean; virtual; + procedure SetTALLA48IsNull(const aValue: Boolean); virtual; + function GetVTATERMDEVValue: TBcd; virtual; + procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; + function GetVTATERMDEVIsNull: Boolean; virtual; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; + function GetVTAFINALRESCValue: TBcd; virtual; + procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; + function GetVTAFINALRESCIsNull: Boolean; virtual; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVENTASValue: TBcd; virtual; + procedure SetVENTASValue(const aValue: TBcd); virtual; + function GetVENTASIsNull: Boolean; virtual; + procedure SetVENTASIsNull(const aValue: Boolean); virtual; + function GetDEVOLUCIONESValue: TBcd; virtual; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; + function GetDEVOLUCIONESIsNull: Boolean; virtual; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; + function GetTOTALValue: TBcd; virtual; + procedure SetTOTALValue(const aValue: TBcd); virtual; + function GetTOTALIsNull: Boolean; virtual; + procedure SetTOTALIsNull(const aValue: Boolean); virtual; + function GetVALTERMDEVValue: TBcd; virtual; + procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; + function GetVALTERMDEVIsNull: Boolean; virtual; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; + function GetVALFINALRESCValue: TBcd; virtual; + procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; + function GetVALFINALRESCIsNull: Boolean; virtual; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVALVENValue: TBcd; virtual; + procedure SetVALVENValue(const aValue: TBcd); virtual; + function GetVALVENIsNull: Boolean; virtual; + procedure SetVALVENIsNull(const aValue: Boolean); virtual; + function GetVALDEVValue: TBcd; virtual; + procedure SetVALDEVValue(const aValue: TBcd); virtual; + function GetVALDEVIsNull: Boolean; virtual; + procedure SetVALDEVIsNull(const aValue: Boolean); virtual; + function GetVALTOTValue: TBcd; virtual; + procedure SetVALTOTValue(const aValue: TBcd); virtual; + function GetVALTOTIsNull: Boolean; virtual; + procedure SetVALTOTIsNull(const aValue: Boolean); virtual; + + { Properties } + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property DIA: Integer read GetDIAValue write SetDIAValue; + property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; + property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property MES: WideString read GetMESValue write SetMESValue; + property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; + property ANO: Integer read GetANOValue write SetANOValue; + property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; + property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property CODIGO: String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; + property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; + property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; + property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; + property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TVentasTerminadasCrossTabDataTableRules } +constructor TVentasTerminadasCrossTabDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasTerminadasCrossTabDataTableRules.Destroy; +begin + inherited; +end; + + +{ TVentasTerminadasDataTableRules } +constructor TVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TVentasTerminadasDataTableRules.Destroy; +begin + inherited; +end; + +function TVentasTerminadasDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMINF].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasNUMINF].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetNUMINFIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMINF].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMINFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasNUMINF].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE1Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE1Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE1IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE1].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE1].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE2IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE2].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE2].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE3Value: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE3Value(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCLAVE3IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCLAVE3].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCLAVE3IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCLAVE3].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime; +end; + +procedure TVentasTerminadasDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime := aValue; +end; + +function TVentasTerminadasDataTableRules.GetFECHAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasFECHA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasFECHA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDIAValue: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasDIA].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetDIAValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasDIA].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDIAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDIA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDIA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDIASEMANAValue: WideString; +begin + result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString; +end; + +procedure TVentasTerminadasDataTableRules.SetDIASEMANAValue(const aValue: WideString); +begin + DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDIASEMANAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDIASEMANAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetMESValue: WideString; +begin + result := DataTable.Fields[idx_VentasTerminadasMES].AsWideString; +end; + +procedure TVentasTerminadasDataTableRules.SetMESValue(const aValue: WideString); +begin + DataTable.Fields[idx_VentasTerminadasMES].AsWideString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetMESIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasMES].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetMESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasMES].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetANOValue: Integer; +begin + result := DataTable.Fields[idx_VentasTerminadasANO].AsInteger; +end; + +procedure TVentasTerminadasDataTableRules.SetANOValue(const aValue: Integer); +begin + DataTable.Fields[idx_VentasTerminadasANO].AsInteger := aValue; +end; + +function TVentasTerminadasDataTableRules.GetANOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasANO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasANO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCENTRO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCENTRO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCENTROIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCENTRO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCENTROIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCENTRO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVENDEDORValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetVENDEDORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVENDEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetNUMTALONIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasNUMTALON].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetNUMTALONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasNUMTALON].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCODIGOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCODIGO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCODIGOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCODIGO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCODIGOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCODIGO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCODIGO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCOLECCIONValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLECCIONValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCOLECCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLECCION].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLECCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCOLECCION].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLOR].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasCOLOR].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetCOLORIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasCOLOR].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetCOLORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasCOLOR].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA].AsString; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_VentasTerminadasTALLA].AsString := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLAIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA38Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA38Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA38IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA38].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA38IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA38].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA40Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA40Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA40IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA40].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA40IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA40].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA42Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA42Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA42IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA42].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA42IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA42].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA44Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA44Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA44IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA44].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA44IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA44].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA46Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA46Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA46IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA46].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA46IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA46].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTALLA48Value: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA48Value(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTALLA48IsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTALLA48].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTALLA48IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTALLA48].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVTATERMDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVTATERMDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVTATERMDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVTATERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVTAFINALRESCValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVTAFINALRESCIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVENTASValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVENTASValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVENTASIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVENTAS].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVENTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVENTAS].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetDEVOLUCIONESValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetDEVOLUCIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetTOTALValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetTOTALValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetTOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasTOTAL].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetTOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasTOTAL].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALTERMDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTERMDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALTERMDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALFINALRESCValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALFINALRESCValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALFINALRESCIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALVENValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALVENValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALVENIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALVEN].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALVENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALVEN].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALDEVValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALDEVValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALDEVIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALDEV].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALDEVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALDEV].AsVariant := Null; +end; + +function TVentasTerminadasDataTableRules.GetVALTOTValue: TBcd; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTOTValue(const aValue: TBcd); +begin + DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal := aValue; +end; + +function TVentasTerminadasDataTableRules.GetVALTOTIsNull: boolean; +begin + result := DataTable.Fields[idx_VentasTerminadasVALTOT].IsNull; +end; + +procedure TVentasTerminadasDataTableRules.SetVALTOTIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_VentasTerminadasVALTOT].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_VentasTerminadasCrossTab, TVentasTerminadasCrossTabDataTableRules); + RegisterDataTableRules(RID_VentasTerminadas, TVentasTerminadasDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas new file mode 100644 index 0000000..cdee0f2 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas @@ -0,0 +1,1598 @@ +unit schVentasTerminadasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schVentasTerminadasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_VentasTerminadasCrossTabDelta = '{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'; + RID_VentasTerminadasDelta = '{05A89678-2248-4B09-9BEC-354E07FD2CE5}'; + +type + { IVentasTerminadasCrossTabDelta } + IVentasTerminadasCrossTabDelta = interface(IVentasTerminadasCrossTab) + ['{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'] + { Property getters and setters } + + { Properties } + end; + + { TVentasTerminadasCrossTabBusinessProcessorRules } + TVentasTerminadasCrossTabBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadasCrossTab, IVentasTerminadasCrossTabDelta) + private + protected + { Property getters and setters } + + { Properties } + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IVentasTerminadasDelta } + IVentasTerminadasDelta = interface(IVentasTerminadas) + ['{05A89678-2248-4B09-9BEC-354E07FD2CE5}'] + { Property getters and setters } + function GetOldNUMINFValue : String; + function GetOldCLAVE1Value : TBcd; + function GetOldCLAVE2Value : Integer; + function GetOldCLAVE3Value : Integer; + function GetOldFECHAValue : DateTime; + function GetOldDIAValue : Integer; + function GetOldDIASEMANAValue : WideString; + function GetOldMESValue : WideString; + function GetOldANOValue : Integer; + function GetOldCENTROValue : String; + function GetOldVENDEDORValue : String; + function GetOldNUMTALONValue : String; + function GetOldCODIGOValue : String; + function GetOldPRODUCTOValue : String; + function GetOldGRUPOPRODUCTOValue : String; + function GetOldTIPOPRODUCTOValue : String; + function GetOldCOLECCIONValue : String; + function GetOldCOLORValue : String; + function GetOldTALLAValue : String; + function GetOldTALLA38Value : TBcd; + function GetOldTALLA40Value : TBcd; + function GetOldTALLA42Value : TBcd; + function GetOldTALLA44Value : TBcd; + function GetOldTALLA46Value : TBcd; + function GetOldTALLA48Value : TBcd; + function GetOldVTATERMDEVValue : TBcd; + function GetOldVTAFINALRESCValue : TBcd; + function GetOldVENTASValue : TBcd; + function GetOldDEVOLUCIONESValue : TBcd; + function GetOldTOTALValue : TBcd; + function GetOldVALTERMDEVValue : TBcd; + function GetOldVALFINALRESCValue : TBcd; + function GetOldVALVENValue : TBcd; + function GetOldVALDEVValue : TBcd; + function GetOldVALTOTValue : TBcd; + + { Properties } + property OldNUMINF : String read GetOldNUMINFValue; + property OldCLAVE1 : TBcd read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldDIA : Integer read GetOldDIAValue; + property OldDIASEMANA : WideString read GetOldDIASEMANAValue; + property OldMES : WideString read GetOldMESValue; + property OldANO : Integer read GetOldANOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCODIGO : String read GetOldCODIGOValue; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldTALLA : String read GetOldTALLAValue; + property OldTALLA38 : TBcd read GetOldTALLA38Value; + property OldTALLA40 : TBcd read GetOldTALLA40Value; + property OldTALLA42 : TBcd read GetOldTALLA42Value; + property OldTALLA44 : TBcd read GetOldTALLA44Value; + property OldTALLA46 : TBcd read GetOldTALLA46Value; + property OldTALLA48 : TBcd read GetOldTALLA48Value; + property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; + property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; + property OldVENTAS : TBcd read GetOldVENTASValue; + property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; + property OldTOTAL : TBcd read GetOldTOTALValue; + property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; + property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; + property OldVALVEN : TBcd read GetOldVALVENValue; + property OldVALDEV : TBcd read GetOldVALDEVValue; + property OldVALTOT : TBcd read GetOldVALTOTValue; + end; + + { TVentasTerminadasBusinessProcessorRules } + TVentasTerminadasBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadas, IVentasTerminadasDelta) + private + protected + { Property getters and setters } + function GetNUMINFValue: String; virtual; + function GetNUMINFIsNull: Boolean; virtual; + function GetOldNUMINFValue: String; virtual; + function GetOldNUMINFIsNull: Boolean; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + procedure SetNUMINFIsNull(const aValue: Boolean); virtual; + function GetCLAVE1Value: TBcd; virtual; + function GetCLAVE1IsNull: Boolean; virtual; + function GetOldCLAVE1Value: TBcd; virtual; + function GetOldCLAVE1IsNull: Boolean; virtual; + procedure SetCLAVE1Value(const aValue: TBcd); virtual; + procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetCLAVE2IsNull: Boolean; virtual; + function GetOldCLAVE2Value: Integer; virtual; + function GetOldCLAVE2IsNull: Boolean; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; + function GetCLAVE3Value: Integer; virtual; + function GetCLAVE3IsNull: Boolean; virtual; + function GetOldCLAVE3Value: Integer; virtual; + function GetOldCLAVE3IsNull: Boolean; virtual; + procedure SetCLAVE3Value(const aValue: Integer); virtual; + procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; + function GetFECHAValue: DateTime; virtual; + function GetFECHAIsNull: Boolean; virtual; + function GetOldFECHAValue: DateTime; virtual; + function GetOldFECHAIsNull: Boolean; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetDIAValue: Integer; virtual; + function GetDIAIsNull: Boolean; virtual; + function GetOldDIAValue: Integer; virtual; + function GetOldDIAIsNull: Boolean; virtual; + procedure SetDIAValue(const aValue: Integer); virtual; + procedure SetDIAIsNull(const aValue: Boolean); virtual; + function GetDIASEMANAValue: WideString; virtual; + function GetDIASEMANAIsNull: Boolean; virtual; + function GetOldDIASEMANAValue: WideString; virtual; + function GetOldDIASEMANAIsNull: Boolean; virtual; + procedure SetDIASEMANAValue(const aValue: WideString); virtual; + procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; + function GetMESValue: WideString; virtual; + function GetMESIsNull: Boolean; virtual; + function GetOldMESValue: WideString; virtual; + function GetOldMESIsNull: Boolean; virtual; + procedure SetMESValue(const aValue: WideString); virtual; + procedure SetMESIsNull(const aValue: Boolean); virtual; + function GetANOValue: Integer; virtual; + function GetANOIsNull: Boolean; virtual; + function GetOldANOValue: Integer; virtual; + function GetOldANOIsNull: Boolean; virtual; + procedure SetANOValue(const aValue: Integer); virtual; + procedure SetANOIsNull(const aValue: Boolean); virtual; + function GetCENTROValue: String; virtual; + function GetCENTROIsNull: Boolean; virtual; + function GetOldCENTROValue: String; virtual; + function GetOldCENTROIsNull: Boolean; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + procedure SetCENTROIsNull(const aValue: Boolean); virtual; + function GetVENDEDORValue: String; virtual; + function GetVENDEDORIsNull: Boolean; virtual; + function GetOldVENDEDORValue: String; virtual; + function GetOldVENDEDORIsNull: Boolean; virtual; + procedure SetVENDEDORValue(const aValue: String); virtual; + procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; + function GetNUMTALONValue: String; virtual; + function GetNUMTALONIsNull: Boolean; virtual; + function GetOldNUMTALONValue: String; virtual; + function GetOldNUMTALONIsNull: Boolean; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; + function GetCODIGOValue: String; virtual; + function GetCODIGOIsNull: Boolean; virtual; + function GetOldCODIGOValue: String; virtual; + function GetOldCODIGOIsNull: Boolean; virtual; + procedure SetCODIGOValue(const aValue: String); virtual; + procedure SetCODIGOIsNull(const aValue: Boolean); virtual; + function GetPRODUCTOValue: String; virtual; + function GetPRODUCTOIsNull: Boolean; virtual; + function GetOldPRODUCTOValue: String; virtual; + function GetOldPRODUCTOIsNull: Boolean; virtual; + procedure SetPRODUCTOValue(const aValue: String); virtual; + procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetGRUPOPRODUCTOValue: String; virtual; + function GetGRUPOPRODUCTOIsNull: Boolean; virtual; + function GetOldGRUPOPRODUCTOValue: String; virtual; + function GetOldGRUPOPRODUCTOIsNull: Boolean; virtual; + procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; + procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetTIPOPRODUCTOValue: String; virtual; + function GetTIPOPRODUCTOIsNull: Boolean; virtual; + function GetOldTIPOPRODUCTOValue: String; virtual; + function GetOldTIPOPRODUCTOIsNull: Boolean; virtual; + procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; + procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; + function GetCOLECCIONValue: String; virtual; + function GetCOLECCIONIsNull: Boolean; virtual; + function GetOldCOLECCIONValue: String; virtual; + function GetOldCOLECCIONIsNull: Boolean; virtual; + procedure SetCOLECCIONValue(const aValue: String); virtual; + procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; + function GetCOLORValue: String; virtual; + function GetCOLORIsNull: Boolean; virtual; + function GetOldCOLORValue: String; virtual; + function GetOldCOLORIsNull: Boolean; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + procedure SetCOLORIsNull(const aValue: Boolean); virtual; + function GetTALLAValue: String; virtual; + function GetTALLAIsNull: Boolean; virtual; + function GetOldTALLAValue: String; virtual; + function GetOldTALLAIsNull: Boolean; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + procedure SetTALLAIsNull(const aValue: Boolean); virtual; + function GetTALLA38Value: TBcd; virtual; + function GetTALLA38IsNull: Boolean; virtual; + function GetOldTALLA38Value: TBcd; virtual; + function GetOldTALLA38IsNull: Boolean; virtual; + procedure SetTALLA38Value(const aValue: TBcd); virtual; + procedure SetTALLA38IsNull(const aValue: Boolean); virtual; + function GetTALLA40Value: TBcd; virtual; + function GetTALLA40IsNull: Boolean; virtual; + function GetOldTALLA40Value: TBcd; virtual; + function GetOldTALLA40IsNull: Boolean; virtual; + procedure SetTALLA40Value(const aValue: TBcd); virtual; + procedure SetTALLA40IsNull(const aValue: Boolean); virtual; + function GetTALLA42Value: TBcd; virtual; + function GetTALLA42IsNull: Boolean; virtual; + function GetOldTALLA42Value: TBcd; virtual; + function GetOldTALLA42IsNull: Boolean; virtual; + procedure SetTALLA42Value(const aValue: TBcd); virtual; + procedure SetTALLA42IsNull(const aValue: Boolean); virtual; + function GetTALLA44Value: TBcd; virtual; + function GetTALLA44IsNull: Boolean; virtual; + function GetOldTALLA44Value: TBcd; virtual; + function GetOldTALLA44IsNull: Boolean; virtual; + procedure SetTALLA44Value(const aValue: TBcd); virtual; + procedure SetTALLA44IsNull(const aValue: Boolean); virtual; + function GetTALLA46Value: TBcd; virtual; + function GetTALLA46IsNull: Boolean; virtual; + function GetOldTALLA46Value: TBcd; virtual; + function GetOldTALLA46IsNull: Boolean; virtual; + procedure SetTALLA46Value(const aValue: TBcd); virtual; + procedure SetTALLA46IsNull(const aValue: Boolean); virtual; + function GetTALLA48Value: TBcd; virtual; + function GetTALLA48IsNull: Boolean; virtual; + function GetOldTALLA48Value: TBcd; virtual; + function GetOldTALLA48IsNull: Boolean; virtual; + procedure SetTALLA48Value(const aValue: TBcd); virtual; + procedure SetTALLA48IsNull(const aValue: Boolean); virtual; + function GetVTATERMDEVValue: TBcd; virtual; + function GetVTATERMDEVIsNull: Boolean; virtual; + function GetOldVTATERMDEVValue: TBcd; virtual; + function GetOldVTATERMDEVIsNull: Boolean; virtual; + procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; + procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; + function GetVTAFINALRESCValue: TBcd; virtual; + function GetVTAFINALRESCIsNull: Boolean; virtual; + function GetOldVTAFINALRESCValue: TBcd; virtual; + function GetOldVTAFINALRESCIsNull: Boolean; virtual; + procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; + procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVENTASValue: TBcd; virtual; + function GetVENTASIsNull: Boolean; virtual; + function GetOldVENTASValue: TBcd; virtual; + function GetOldVENTASIsNull: Boolean; virtual; + procedure SetVENTASValue(const aValue: TBcd); virtual; + procedure SetVENTASIsNull(const aValue: Boolean); virtual; + function GetDEVOLUCIONESValue: TBcd; virtual; + function GetDEVOLUCIONESIsNull: Boolean; virtual; + function GetOldDEVOLUCIONESValue: TBcd; virtual; + function GetOldDEVOLUCIONESIsNull: Boolean; virtual; + procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; + procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; + function GetTOTALValue: TBcd; virtual; + function GetTOTALIsNull: Boolean; virtual; + function GetOldTOTALValue: TBcd; virtual; + function GetOldTOTALIsNull: Boolean; virtual; + procedure SetTOTALValue(const aValue: TBcd); virtual; + procedure SetTOTALIsNull(const aValue: Boolean); virtual; + function GetVALTERMDEVValue: TBcd; virtual; + function GetVALTERMDEVIsNull: Boolean; virtual; + function GetOldVALTERMDEVValue: TBcd; virtual; + function GetOldVALTERMDEVIsNull: Boolean; virtual; + procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; + procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; + function GetVALFINALRESCValue: TBcd; virtual; + function GetVALFINALRESCIsNull: Boolean; virtual; + function GetOldVALFINALRESCValue: TBcd; virtual; + function GetOldVALFINALRESCIsNull: Boolean; virtual; + procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; + procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; + function GetVALVENValue: TBcd; virtual; + function GetVALVENIsNull: Boolean; virtual; + function GetOldVALVENValue: TBcd; virtual; + function GetOldVALVENIsNull: Boolean; virtual; + procedure SetVALVENValue(const aValue: TBcd); virtual; + procedure SetVALVENIsNull(const aValue: Boolean); virtual; + function GetVALDEVValue: TBcd; virtual; + function GetVALDEVIsNull: Boolean; virtual; + function GetOldVALDEVValue: TBcd; virtual; + function GetOldVALDEVIsNull: Boolean; virtual; + procedure SetVALDEVValue(const aValue: TBcd); virtual; + procedure SetVALDEVIsNull(const aValue: Boolean); virtual; + function GetVALTOTValue: TBcd; virtual; + function GetVALTOTIsNull: Boolean; virtual; + function GetOldVALTOTValue: TBcd; virtual; + function GetOldVALTOTIsNull: Boolean; virtual; + procedure SetVALTOTValue(const aValue: TBcd); virtual; + procedure SetVALTOTIsNull(const aValue: Boolean); virtual; + + { Properties } + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property NUMINFIsNull : Boolean read GetNUMINFIsNull write SetNUMINFIsNull; + property OldNUMINF : String read GetOldNUMINFValue; + property OldNUMINFIsNull : Boolean read GetOldNUMINFIsNull; + property CLAVE1 : TBcd read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE1IsNull : Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; + property OldCLAVE1 : TBcd read GetOldCLAVE1Value; + property OldCLAVE1IsNull : Boolean read GetOldCLAVE1IsNull; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE2IsNull : Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldCLAVE2IsNull : Boolean read GetOldCLAVE2IsNull; + property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; + property CLAVE3IsNull : Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; + property OldCLAVE3 : Integer read GetOldCLAVE3Value; + property OldCLAVE3IsNull : Boolean read GetOldCLAVE3IsNull; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; + property DIA : Integer read GetDIAValue write SetDIAValue; + property DIAIsNull : Boolean read GetDIAIsNull write SetDIAIsNull; + property OldDIA : Integer read GetOldDIAValue; + property OldDIAIsNull : Boolean read GetOldDIAIsNull; + property DIASEMANA : WideString read GetDIASEMANAValue write SetDIASEMANAValue; + property DIASEMANAIsNull : Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; + property OldDIASEMANA : WideString read GetOldDIASEMANAValue; + property OldDIASEMANAIsNull : Boolean read GetOldDIASEMANAIsNull; + property MES : WideString read GetMESValue write SetMESValue; + property MESIsNull : Boolean read GetMESIsNull write SetMESIsNull; + property OldMES : WideString read GetOldMESValue; + property OldMESIsNull : Boolean read GetOldMESIsNull; + property ANO : Integer read GetANOValue write SetANOValue; + property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; + property OldANO : Integer read GetOldANOValue; + property OldANOIsNull : Boolean read GetOldANOIsNull; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property CENTROIsNull : Boolean read GetCENTROIsNull write SetCENTROIsNull; + property OldCENTRO : String read GetOldCENTROValue; + property OldCENTROIsNull : Boolean read GetOldCENTROIsNull; + property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; + property VENDEDORIsNull : Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; + property OldVENDEDOR : String read GetOldVENDEDORValue; + property OldVENDEDORIsNull : Boolean read GetOldVENDEDORIsNull; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property NUMTALONIsNull : Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldNUMTALONIsNull : Boolean read GetOldNUMTALONIsNull; + property CODIGO : String read GetCODIGOValue write SetCODIGOValue; + property CODIGOIsNull : Boolean read GetCODIGOIsNull write SetCODIGOIsNull; + property OldCODIGO : String read GetOldCODIGOValue; + property OldCODIGOIsNull : Boolean read GetOldCODIGOIsNull; + property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; + property PRODUCTOIsNull : Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; + property OldPRODUCTO : String read GetOldPRODUCTOValue; + property OldPRODUCTOIsNull : Boolean read GetOldPRODUCTOIsNull; + property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; + property GRUPOPRODUCTOIsNull : Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; + property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; + property OldGRUPOPRODUCTOIsNull : Boolean read GetOldGRUPOPRODUCTOIsNull; + property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; + property TIPOPRODUCTOIsNull : Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; + property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; + property OldTIPOPRODUCTOIsNull : Boolean read GetOldTIPOPRODUCTOIsNull; + property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; + property COLECCIONIsNull : Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; + property OldCOLECCION : String read GetOldCOLECCIONValue; + property OldCOLECCIONIsNull : Boolean read GetOldCOLECCIONIsNull; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property COLORIsNull : Boolean read GetCOLORIsNull write SetCOLORIsNull; + property OldCOLOR : String read GetOldCOLORValue; + property OldCOLORIsNull : Boolean read GetOldCOLORIsNull; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property TALLAIsNull : Boolean read GetTALLAIsNull write SetTALLAIsNull; + property OldTALLA : String read GetOldTALLAValue; + property OldTALLAIsNull : Boolean read GetOldTALLAIsNull; + property TALLA38 : TBcd read GetTALLA38Value write SetTALLA38Value; + property TALLA38IsNull : Boolean read GetTALLA38IsNull write SetTALLA38IsNull; + property OldTALLA38 : TBcd read GetOldTALLA38Value; + property OldTALLA38IsNull : Boolean read GetOldTALLA38IsNull; + property TALLA40 : TBcd read GetTALLA40Value write SetTALLA40Value; + property TALLA40IsNull : Boolean read GetTALLA40IsNull write SetTALLA40IsNull; + property OldTALLA40 : TBcd read GetOldTALLA40Value; + property OldTALLA40IsNull : Boolean read GetOldTALLA40IsNull; + property TALLA42 : TBcd read GetTALLA42Value write SetTALLA42Value; + property TALLA42IsNull : Boolean read GetTALLA42IsNull write SetTALLA42IsNull; + property OldTALLA42 : TBcd read GetOldTALLA42Value; + property OldTALLA42IsNull : Boolean read GetOldTALLA42IsNull; + property TALLA44 : TBcd read GetTALLA44Value write SetTALLA44Value; + property TALLA44IsNull : Boolean read GetTALLA44IsNull write SetTALLA44IsNull; + property OldTALLA44 : TBcd read GetOldTALLA44Value; + property OldTALLA44IsNull : Boolean read GetOldTALLA44IsNull; + property TALLA46 : TBcd read GetTALLA46Value write SetTALLA46Value; + property TALLA46IsNull : Boolean read GetTALLA46IsNull write SetTALLA46IsNull; + property OldTALLA46 : TBcd read GetOldTALLA46Value; + property OldTALLA46IsNull : Boolean read GetOldTALLA46IsNull; + property TALLA48 : TBcd read GetTALLA48Value write SetTALLA48Value; + property TALLA48IsNull : Boolean read GetTALLA48IsNull write SetTALLA48IsNull; + property OldTALLA48 : TBcd read GetOldTALLA48Value; + property OldTALLA48IsNull : Boolean read GetOldTALLA48IsNull; + property VTATERMDEV : TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; + property VTATERMDEVIsNull : Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; + property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; + property OldVTATERMDEVIsNull : Boolean read GetOldVTATERMDEVIsNull; + property VTAFINALRESC : TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; + property VTAFINALRESCIsNull : Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; + property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; + property OldVTAFINALRESCIsNull : Boolean read GetOldVTAFINALRESCIsNull; + property VENTAS : TBcd read GetVENTASValue write SetVENTASValue; + property VENTASIsNull : Boolean read GetVENTASIsNull write SetVENTASIsNull; + property OldVENTAS : TBcd read GetOldVENTASValue; + property OldVENTASIsNull : Boolean read GetOldVENTASIsNull; + property DEVOLUCIONES : TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; + property DEVOLUCIONESIsNull : Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; + property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; + property OldDEVOLUCIONESIsNull : Boolean read GetOldDEVOLUCIONESIsNull; + property TOTAL : TBcd read GetTOTALValue write SetTOTALValue; + property TOTALIsNull : Boolean read GetTOTALIsNull write SetTOTALIsNull; + property OldTOTAL : TBcd read GetOldTOTALValue; + property OldTOTALIsNull : Boolean read GetOldTOTALIsNull; + property VALTERMDEV : TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; + property VALTERMDEVIsNull : Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; + property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; + property OldVALTERMDEVIsNull : Boolean read GetOldVALTERMDEVIsNull; + property VALFINALRESC : TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; + property VALFINALRESCIsNull : Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; + property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; + property OldVALFINALRESCIsNull : Boolean read GetOldVALFINALRESCIsNull; + property VALVEN : TBcd read GetVALVENValue write SetVALVENValue; + property VALVENIsNull : Boolean read GetVALVENIsNull write SetVALVENIsNull; + property OldVALVEN : TBcd read GetOldVALVENValue; + property OldVALVENIsNull : Boolean read GetOldVALVENIsNull; + property VALDEV : TBcd read GetVALDEVValue write SetVALDEVValue; + property VALDEVIsNull : Boolean read GetVALDEVIsNull write SetVALDEVIsNull; + property OldVALDEV : TBcd read GetOldVALDEVValue; + property OldVALDEVIsNull : Boolean read GetOldVALDEVIsNull; + property VALTOT : TBcd read GetVALTOTValue write SetVALTOTValue; + property VALTOTIsNull : Boolean read GetVALTOTIsNull write SetVALTOTIsNull; + property OldVALTOT : TBcd read GetOldVALTOTValue; + property OldVALTOTIsNull : Boolean read GetOldVALTOTIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TVentasTerminadasCrossTabBusinessProcessorRules } +constructor TVentasTerminadasCrossTabBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasTerminadasCrossTabBusinessProcessorRules.Destroy; +begin + inherited; +end; + + +{ TVentasTerminadasBusinessProcessorRules } +constructor TVentasTerminadasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TVentasTerminadasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMINFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE1Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCLAVE3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAValue: WideString; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAValue: WideString; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAValue(const aValue: WideString); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetMESValue: WideString; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetMESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldMESValue: WideString; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldMESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetMESValue(const aValue: WideString); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetMESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldANOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldANOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetANOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCENTROIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCENTROIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCENTROIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetNUMTALONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetCOLORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldCOLORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetCOLORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]; +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := aValue; +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA38Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA38IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA40Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA40IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA42Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA42IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA44Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA44IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA46Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA46IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA48Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTALLA48IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48Value: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48Value(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENTASValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVENTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENTASValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVENTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENTASValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVENTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetTOTALValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetTOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTOTALValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldTOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTOTALValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetTOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALVENValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALVENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALVENValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALVENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALVENValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALVENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := Null; +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTOTValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetVALTOTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTValue: TBcd; +begin + result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); +end; + +function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTValue(const aValue: TBcd); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := BCDToVariant(aValue); +end; + +procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_VentasTerminadasCrossTabDelta, TVentasTerminadasCrossTabBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_VentasTerminadasDelta, TVentasTerminadasBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas new file mode 100644 index 0000000..143ea69 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas @@ -0,0 +1,65 @@ +unit uBizControlVentasTerminadas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, + uBizVentasTerminadas; + +const + BIZ_CONTROL_VENTASTERMINADAS = 'Client.Control_VentasTerminadas'; + +type + IBizControlVentasTerminadas = interface(IBizControlBase) + ['{BC0C313D-E667-4AC6-BB30-55469970F919}'] + procedure SetItems(const Value : IBizVentasTerminadas); + function GetItems : IBizVentasTerminadas; + property Items : IBizVentasTerminadas read GetItems write SetItems; + end; + + TBizControlVentasTerminadasTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasTerminadas) + protected + FItems : IBizVentasTerminadas; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure SetItems(const Value : IBizVentasTerminadas); virtual; + function GetItems : IBizVentasTerminadas; virtual; + public + procedure Show; override; + property Items : IBizVentasTerminadas read GetItems write SetItems; + end; + +implementation + +uses + uEditorUtils, uDataModuleVentasTerminadas; + +{ TBizControlVentasTerminadasTableRules } + +function TBizControlVentasTerminadasTableRules.GetItems: IBizVentasTerminadas; +begin + Result := FItems; +end; + +procedure TBizControlVentasTerminadasTableRules.OnNewRecord( + Sender: TDADataTable); +begin + inherited; + CATEGORIA := CATEGORIA_VENTA_TERMINADA +end; + +procedure TBizControlVentasTerminadasTableRules.SetItems( + const Value: IBizVentasTerminadas); +begin + FItems := Value; +end; + +procedure TBizControlVentasTerminadasTableRules.Show; +begin + inherited; + ShowEditor(IBizControlVentasTerminadas, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_CONTROL_VENTASTERMINADAS, TBizControlVentasTerminadasTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas new file mode 100644 index 0000000..b87673d --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas @@ -0,0 +1,82 @@ +unit uBizInformesVentas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, schInformesVentasClient_Intf, uDADataTable; + +const + BIZ_INFORMESVENTAS = 'Client.InformesVentas'; + VALOR_CATEGORIA = 'VENTAS'; + +type + IBizInformesVentas = interface(IListaInformesPorCategoria) + ['{78F747A5-9A35-44D6-8C73-8682A41FE573}'] + procedure Show; + procedure VerPropiedades; + end; + + TBizInformesVentasDataTableRules = class(TListaInformesPorCategoriaDataTableRules, IBizInformesVentas) + protected + function GetVISTAValue: IROStrings; override; + procedure BeforePost(Sender: TDADataTable); override; + public + procedure Show; + procedure VerPropiedades; + end; + +implementation + +uses + Windows, Dialogs, uDACDSDataTable, uDataModuleBase, + uEditorUtils, Variants, uFormPropiedadesInforme, Forms, Controls; + +{ TBizInformesVentasDataTableRules } + +procedure TBizInformesVentasDataTableRules.BeforePost( + Sender: TDADataTable); +begin + inherited; + if Length(CATEGORIA) = 0 then + begin + Edit; + CATEGORIA := VALOR_CATEGORIA; + end; + + if Length(NOMBRE) = 0 then + VerPropiedades; +end; + +function TBizInformesVentasDataTableRules.GetVISTAValue: IROStrings; +begin + result := NewROStrings(); + result.Add(DataTable.Fields[idx_ListaInformesPorCategoriaVISTA].AsString); +end; + +procedure TBizInformesVentasDataTableRules.Show; +begin + ShowEditor(IBizInformesVentas, Self, etItem); +end; + +procedure TBizInformesVentasDataTableRules.VerPropiedades; +begin + with TfrPropiedadesInforme.Create(NIL) do + try + Nombre := Self.NOMBRE; + Descripcion := Self.DESCRIPCION; + if (ShowModal = mrOK) then + begin + DataTable.Edit; + Self.NOMBRE := Nombre; + Self.DESCRIPCION := Descripcion; + Self.ICONO := 2; + end; + finally + Free; + end; +end; + +initialization + RegisterDataTableRules(BIZ_INFORMESVENTAS, TBizInformesVentasDataTableRules); + +end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas new file mode 100644 index 0000000..31b0782 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas @@ -0,0 +1,115 @@ +unit uBizVentas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract_Intf, uROTypes; + +const + BIZ_VENTAS = 'Client.Ventas'; + + { ListaInformesPorCategoria fields } + fld_VentasCLAVE1 = 'CLAVE1'; + fld_VentasCLAVE2 = 'CLAVE2'; + fld_VentasCLAVE3 = 'CLAVE3'; + fld_VentasNUMINF = 'NUMINF'; + +type + { IRDX_ARTVEN } + IBizVentas = interface(IDAStronglyTypedDataTable) + ['{E82C7F84-0CD4-4A27-80FB-BD608FDCA091}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(AValue : String); + procedure Show; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + { TRDX_ARTVENDataTableRules } + TBIZ_VENTASDataTableRules = class(TDADataTableRules, IBizVentas) + private + FVisibleColumns : String; + FDateParams : TDADatasetParamArray; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(AValue : String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + + procedure Show; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + destructor Destroy; override; + end; + + +implementation + +{ TBIZ_VENTASDataTableRules } + +uses + Dialogs, uEditorUtils, uDataModuleVentas; + +constructor TBIZ_VENTASDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + FDateParams := TDADatasetParamArray.Create; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +destructor TBIZ_VENTASDataTableRules.Destroy; +begin + FreeAndNIL(FDateParams); + inherited; +end; + +function TBIZ_VENTASDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentas.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBIZ_VENTASDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; + FDateParams.Clear; + NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); + NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); + Request.ParamByName('Params').AsComplexType := FDateParams; +end; + +procedure TBIZ_VENTASDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBIZ_VENTASDataTableRules.SetVisibleColumns(AValue: String); +begin + if Length(AValue) > 0 then + FVisibleColumns := Avalue + else + FVisibleColumns := dmVentas.GetNameColumns; +end; + +procedure TBIZ_VENTASDataTableRules.Show; +begin + ShowEditor(IBizVentas, Self, etItem); +end; + +initialization + RegisterDataTableRules(BIZ_VENTAS, TBIZ_VENTASDataTableRules); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas new file mode 100644 index 0000000..2b05c77 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas @@ -0,0 +1,158 @@ +unit uBizVentasTerminadas; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, + DataAbstract3_Intf, uROTypes, schVentasTerminadasClient_Intf; + +const + BIZ_VENTASTERMINADAS = 'Client.VentasTerminadas'; + BIZ_RESUMENVENTAS = 'Client.ResumenVentas'; + +type + IBizVentasTerminadas = interface(IVentasTerminadas) + ['{A8E22BA0-970A-461D-8C69-E3C37F099F76}'] + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + end; + + IBizResumenVentas = interface(IVentasTerminadasCrossTab) + ['{F7536368-285D-45B4-B0F0-7DBE724982A3}'] + end; + + TBizResumenVentasDataTableRules = class(TVentasTerminadasCrossTabDataTableRules, IBizResumenVentas) + protected + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + end; + + TBizVentasTerminadasDataTableRules = class(TVentasTerminadasDataTableRules, IBizVentasTerminadas) + private + FVisibleColumns : String; + FDateParams : TDADatasetParamArray; + protected + function GetVisibleColumns: String; + procedure SetVisibleColumns(const Value: String); + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + procedure OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); + public + constructor Create(aDataTable: TDADataTable); override; + property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; + destructor Destroy; override; + end; + + +implementation + +{ TBIZ_VENTASDataTableRules } + +uses + Dialogs, uEditorUtils, uDataModuleVentasTerminadas; + +constructor TBizVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + FDateParams := TDADatasetParamArray.Create; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +destructor TBizVentasTerminadasDataTableRules.Destroy; +begin + FreeAndNIL(FDateParams); + inherited; +end; + +function TBizVentasTerminadasDataTableRules.GetVisibleColumns: String; +begin + if Length(FVisibleColumns) = 0 then + FVisibleColumns := dmVentasTerminadas.GetNameColumns; + Result := FVisibleColumns +end; + +procedure TBizVentasTerminadasDataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +var + params : TStringList; +begin + Request.ParamByName('Columns').AsString := VisibleColumns; + + // Begin adaptación a DA5 + params := TStringList.Create; + try + params.Add('FECHAINI'); + params.Values['FECHAINI'] := DataTable.ParamByName('FECHAINI').AsString; + + params.Add('FECHAFIN'); + params.Values['FECHAFIN'] := DataTable.ParamByName('FECHAFIN').AsString; + + Request.ParamByName('Params').AsString := params.text; + finally + FreeAndNIL(params); + end; + // End adaptación a DA5 + +{ FDateParams.Clear; + + NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); + NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); + Request.ParamByName('Params').AsComplexType := FDateParams;} +end; + +procedure TBizVentasTerminadasDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('Columns').AsString := VisibleColumns; +end; + +procedure TBizVentasTerminadasDataTableRules.SetVisibleColumns(const Value: String); +begin + if Length(Value) > 0 then + FVisibleColumns := Value + else + FVisibleColumns := dmVentasTerminadas.GetNameColumns; +end; + + +{ TBizResumenVentasDataTableRules } + +constructor TBizResumenVentasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; + if Assigned(DataTable) then + begin + DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; + DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; + end; +end; + +procedure TBizResumenVentasDataTableRules.OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; + Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; +end; + +procedure TBizResumenVentasDataTableRules.OnBeforeSchemaCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; + Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; +end; + +initialization + RegisterDataTableRules(BIZ_VENTASTERMINADAS, TBizVentasTerminadasDataTableRules); + RegisterDataTableRules(BIZ_RESUMENVENTAS, TBizResumenVentasDataTableRules); + +finalization + +end. + diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm new file mode 100644 index 0000000..82f7044 --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm @@ -0,0 +1,445 @@ +object srvVentasTerminadas: TsrvVentasTerminadas + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schVentasTerminadas + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schVentasTerminadas: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'fechaini' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'fechafin' + DataType = datString + Value = '' + ParamType = daptInput + end + item + Name = 'coleccion' + DataType = datString + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = + 'begin'#10' declare @fechaini varchar(10)'#10' declare @fechafin ' + + 'varchar(10)'#10' declare @coleccion varchar(10)'#10' declare @sq' + + 'l varchar(8000)'#10#10' set @fechaini = :fechaini'#10' set @fechaf' + + 'in = :fechafin'#10' set @coleccion = :coleccion'#10#10' select @sq' + + 'l = '#39'SELECT DIA, SUM(VALTOT) AS TOTAL FROM RDX_V_VENTASTERMINADA' + + 'S WHERE FECHA BETWEEN CONVERT(DATETIME, '#39#39#39' + @FECHAINI + '#39#39#39', 1' + + '03) AND CONVERT(DATETIME, '#39#39#39' + @FECHAFIN + '#39#39#39', 103) AND COLECC' + + 'ION LIKE '#39#39#39' + @COLECCION + '#39#39#39' GROUP BY DIA'#39#10#10' EXECUTE cros' + + 'stab @sql,'#10' '#39'SUM(VALTOT)'#39','#10' '#39'CENTRO'#39','#10' ' + + ' '#39'RDX_V_VENTASTERMINADAS'#39#10'end'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'VentasTerminadasCrossTab' + Fields = <> + end + item + Params = < + item + Name = 'FECHAINI' + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_V_VENTASTERMINADAS' + SQL = + 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, FECHA, DIA, DIASEMAN' + + 'A, '#10' MES, ANO, CENTRO, VENDEDOR, NUMTALON, CODIGO, PRODUCTO,'#10 + + ' GRUPOPRODUCTO, TIPOPRODUCTO, COLECCION, COLOR,'#10' TALLA, TA' + + 'LLA38, TALLA40, TALLA42, TALLA44, TALLA46, '#10' TALLA48, VTATERM' + + 'DEV, VTAFINALRESC, VENTAS, DEVOLUCIONES, TOTAL,'#10' VALTERMDEV, ' + + 'VALFINALRESC, VALVEN, VALDEV, VALTOT'#10' FROM'#10' RDX_V_VENTASTERM' + + 'INADAS'#10' WHERE FECHA BETWEEN :FECHAINI AND :FECHAFIN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'DIA' + TableField = 'DIA' + end + item + DatasetField = 'DIASEMANA' + TableField = 'DIASEMANA' + end + item + DatasetField = 'MES' + TableField = 'MES' + end + item + DatasetField = 'ANO' + TableField = 'ANO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'VENDEDOR' + TableField = 'VENDEDOR' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CODIGO' + TableField = 'CODIGO' + end + item + DatasetField = 'PRODUCTO' + TableField = 'PRODUCTO' + end + item + DatasetField = 'GRUPOPRODUCTO' + TableField = 'GRUPOPRODUCTO' + end + item + DatasetField = 'TIPOPRODUCTO' + TableField = 'TIPOPRODUCTO' + end + item + DatasetField = 'COLECCION' + TableField = 'COLECCION' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'TALLA38' + TableField = 'TALLA38' + end + item + DatasetField = 'TALLA40' + TableField = 'TALLA40' + end + item + DatasetField = 'TALLA42' + TableField = 'TALLA42' + end + item + DatasetField = 'TALLA44' + TableField = 'TALLA44' + end + item + DatasetField = 'TALLA46' + TableField = 'TALLA46' + end + item + DatasetField = 'TALLA48' + TableField = 'TALLA48' + end + item + DatasetField = 'VTATERMDEV' + TableField = 'VTATERMDEV' + end + item + DatasetField = 'VTAFINALRESC' + TableField = 'VTAFINALRESC' + end + item + DatasetField = 'VENTAS' + TableField = 'VENTAS' + end + item + DatasetField = 'DEVOLUCIONES' + TableField = 'DEVOLUCIONES' + end + item + DatasetField = 'TOTAL' + TableField = 'TOTAL' + end + item + DatasetField = 'VALTERMDEV' + TableField = 'VALTERMDEV' + end + item + DatasetField = 'VALFINALRESC' + TableField = 'VALFINALRESC' + end + item + DatasetField = 'VALVEN' + TableField = 'VALVEN' + end + item + DatasetField = 'VALDEV' + TableField = 'VALDEV' + end + item + DatasetField = 'VALTOT' + TableField = 'VALTOT' + end> + end> + Name = 'VentasTerminadas' + Fields = < + item + Name = 'NUMINF' + DataType = datString + Size = 35 + InPrimaryKey = True + end + item + Name = 'CLAVE1' + DataType = datDecimal + InPrimaryKey = True + end + item + Name = 'CLAVE2' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'CLAVE3' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'FECHA' + DataType = datDateTime + DisplayLabel = 'Fecha' + end + item + Name = 'DIA' + DataType = datInteger + DisplayLabel = 'D'#237'a' + end + item + Name = 'DIASEMANA' + DataType = datWideString + Size = 30 + DisplayLabel = 'D'#237'a de la semana' + end + item + Name = 'MES' + DataType = datWideString + Size = 30 + DisplayLabel = 'Mes' + end + item + Name = 'ANO' + DataType = datInteger + DisplayLabel = 'A'#241'o' + end + item + Name = 'CENTRO' + DataType = datString + Size = 25 + DisplayLabel = 'Centro' + end + item + Name = 'VENDEDOR' + DataType = datString + Size = 66 + DisplayLabel = 'Vendedor' + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + end + item + Name = 'CODIGO' + DataType = datString + Size = 12 + DisplayLabel = 'C'#243'digo producto' + end + item + Name = 'PRODUCTO' + DataType = datString + Size = 40 + DisplayLabel = 'Producto' + end + item + Name = 'GRUPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Grupo' + end + item + Name = 'TIPOPRODUCTO' + DataType = datString + Size = 25 + DisplayLabel = 'Tipo' + end + item + Name = 'COLECCION' + DataType = datString + Size = 6 + DisplayLabel = 'Colecci'#243'n' + end + item + Name = 'COLOR' + DataType = datString + Size = 10 + DisplayLabel = 'Color' + end + item + Name = 'TALLA' + DataType = datString + Size = 8 + DisplayLabel = 'Talla' + Alignment = taRightJustify + end + item + Name = 'TALLA38' + DataType = datDecimal + DisplayLabel = '38' + Alignment = taRightJustify + end + item + Name = 'TALLA40' + DataType = datDecimal + DisplayLabel = '40' + Alignment = taRightJustify + end + item + Name = 'TALLA42' + DataType = datDecimal + DisplayLabel = '42' + Alignment = taRightJustify + end + item + Name = 'TALLA44' + DataType = datDecimal + DisplayLabel = '44' + Alignment = taRightJustify + end + item + Name = 'TALLA46' + DataType = datDecimal + DisplayLabel = '46' + Alignment = taRightJustify + end + item + Name = 'TALLA48' + DataType = datDecimal + DisplayLabel = '48' + Alignment = taRightJustify + end + item + Name = 'VTATERMDEV' + DataType = datDecimal + DisplayLabel = 'Vta.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VTAFINALRESC' + DataType = datDecimal + DisplayLabel = 'Vta.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VENTAS' + DataType = datDecimal + DisplayLabel = 'Ventas' + Alignment = taRightJustify + end + item + Name = 'DEVOLUCIONES' + DataType = datDecimal + DisplayLabel = 'Devoluciones' + Alignment = taRightJustify + end + item + Name = 'TOTAL' + DataType = datDecimal + DisplayLabel = 'Total ventas' + Alignment = taRightJustify + end + item + Name = 'VALTERMDEV' + DataType = datDecimal + DisplayLabel = 'Val.Term/Dev' + Alignment = taRightJustify + end + item + Name = 'VALFINALRESC' + DataType = datDecimal + DisplayLabel = 'Val.Final/Resc' + Alignment = taRightJustify + end + item + Name = 'VALVEN' + DataType = datDecimal + DisplayLabel = 'Imp. ventas' + Alignment = taRightJustify + end + item + Name = 'VALDEV' + DataType = datDecimal + DisplayLabel = 'Imp. devoluciones' + Alignment = taRightJustify + end + item + Name = 'VALTOT' + DataType = datDecimal + DisplayLabel = 'Imp. Total' + Alignment = taRightJustify + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 56 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas new file mode 100644 index 0000000..780429f --- /dev/null +++ b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas @@ -0,0 +1,210 @@ +unit srvVentasTerminadas_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, + uDataModuleServer, uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvVentasTerminadas } + TsrvVentasTerminadas = class(TDARemoteService, IsrvVentasTerminadas) + DABINAdapter: TDABINAdapter; + schVentasTerminadas: TDASchema; + private + protected + { IsrvVentasTerminadas methods } + function GetData(const DatasetName: String; const MaxRecords: Integer; const Columns: String; const Params: TDADatasetParamArray): Binary; + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uSchemaUtilsServer, dialogs; + +const + CAMPOS_SUMA = '#TALLA38#TALLA40#TALLA42#TALLA44#TALLA46#TALLA48#VENTAS#DEVOLUCIONES#TOTAL#VALVEN#VALDEV#VALTOT#VTATERMDEV#VTAFINALRESC#VALTERMDEV#VALFINALRESC#'; + +procedure Create_srvVentasTerminadas(out anInstance : IUnknown); +begin + anInstance := TsrvVentasTerminadas.Create(NIL); +end; + +{ srvVentasTerminadas } + +function TsrvVentasTerminadas.GetData(const DatasetName: String; + const MaxRecords: Integer; const Columns: String; + const Params: TDADatasetParamArray): TROBinaryMemoryStream; +var + ds : IDADataset; + i : integer; +begin + result := Binary.Create; + try + { Prepares the parameter arrays} + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + for i := 0 to (Params.Count-1) do + ds.ParamByName(Params[i].Name).Value := Params[i].Value; + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetDataCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; +var + ds : IDADataset; + AColeccion : String; +begin + if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then + AColeccion := '%' + else + AColeccion := Coleccion; + + try + Result := Binary.Create; + ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woSchema, woRows], -1); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetDataEx(const DatasetName, Columns, + Params: String; const MaxRecords: Integer): Binary; +var + ds : IDADataset; + i : integer; + pars: TStringList; + parnames: array of string; + parvalues: array of Variant; +begin + pars := TStringList.Create; + result := Binary.Create; + try + try + pars.Text := Params; + SetLength(parnames, pars.Count); + SetLength(parvalues, pars.Count); + for i := 0 to (pars.Count-1) do begin + parnames[i] := pars.Names[i]; + parvalues[i] := pars.Values[pars.Names[i]]; + end; + + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + // Fills the parameters (if any are specified) + if (Length(parnames) > 0) then + begin + for i := 0 to (Length(parnames) - 1) do + ds.ParamByName(parnames[i]).Value := parvalues[i]; + end; + + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); + except + FreeAndNIl(result); + raise; + end; + finally + FreeANDNil(pars); + end; +end; + +function TsrvVentasTerminadas.GetSchema(const DatasetName: String; const Columns: String): TROBinaryMemoryStream; +var + ds : IDADataset; +begin + result := Binary.Create; + try + with TReplicarDataSet.Create do + begin + SourceDataSetName := DatasetName; + Service := Self; + Columnas := Columns; + ColumnasQueSuman := CAMPOS_SUMA; + try + ds := GetNewDataSet; + finally + Free; + end; + end; + + ServiceAdapter.WriteDataset(result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +function TsrvVentasTerminadas.GetSchemaCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; +var + ds : IDADataset; + AColeccion : String; +begin + if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then + AColeccion := '%' + else + AColeccion := Coleccion; + + try + Result := Binary.Create; + ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); + ds.Open; + ServiceAdapter.WriteDataset(Result, ds, [woSchema]); + except + FreeAndNIl(result); + raise; + end; +end; + +initialization + TROClassFactory.Create('srvVentasTerminadas', Create_srvVentasTerminadas, TsrvVentasTerminadas_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj b/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj new file mode 100644 index 0000000..e4f8c61 --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj @@ -0,0 +1,678 @@ + + + + + + + + + + + + AdminPV_Server.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Servidor + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7;RemObjects_Indy_D10;IndyProtocols;IndyCore;IndySystem;PascalScript_RO_D10;DataAbstract_Core_D10;DataAbstract_Scripting_D10;DataAbstract_IDE_D10 + EUREKALOG;EUREKALOG_VER6 + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 2 + 5 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 1.2.5.0 + + + + + AdminPV_Server + 1.2.5.0 + + miércoles, 05 de septiembre de 2007 19:15 + + + + diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.cfg b/Varela/Varela/Source/Servidor/AdminPV_Server.cfg new file mode 100644 index 0000000..7d0152a --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\..\Output\Servidor" +-N".\" +-LE"..\Lib" +-LN"..\Lib" +-U"..\Lib;..\Base" +-O"..\Lib;..\Base" +-I"..\Lib;..\Base" +-R"..\Lib;..\Base" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.dof b/Varela/Varela/Source/Servidor/AdminPV_Server.dof new file mode 100644 index 0000000..1804a4b --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.dof @@ -0,0 +1,480 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir=..\..\Output\Servidor +UnitOutputDir=.\ +PackageDLLOutputDir=..\Lib +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib;..\Base +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=2 +Release=5 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName=Rodax Software S.L. +FileDescription= +FileVersion=1.2.5.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName=AdminPV_Server +ProductVersion=1.1.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=3 +Item0=..\Lib +Item1=..\Lib;..\Base +Item2=..\..\..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlOutputDirectorry] +Count=2 +Item0=..\..\Output\Cliente +Item1=..\..\Output\Servidor +[HistoryLists\hlBPLOutput] +Count=3 +Item0=..\Lib +Item1=..\..\..\..\Output\Cliente +Item2=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=2 +Item0=..\Lib +Item1=..\..\..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=0 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=0 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=0 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=1 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.dpr b/Varela/Varela/Source/Servidor/AdminPV_Server.dpr new file mode 100644 index 0000000..7ed1aae --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.dpr @@ -0,0 +1,73 @@ +program AdminPV_Server; + +{#ROGEN:VARELA.rodl} // RemObjects: Careful, do not remove! + +uses + uROComInit, + Forms, + fServerForm in 'fServerForm.pas' {ServerForm}, + VARELA_Intf in 'VARELA_Intf.pas', + VARELA_Invk in 'VARELA_Invk.pas', + EDI_Reader in 'EDI\EDI_Reader.pas', + EDI_INVRPT in 'EDI\EDI_INVRPT.pas', + EDI_SLSRPT in 'EDI\EDI_SLSRPT.pas', + schEDILogClient_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogClient_Intf.pas', + schEDILogServer_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogServer_Intf.pas', + uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule}, + uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame}, + uConexionBD in 'Configuracion\uConexionBD.pas' {frConexionBD: TFrame}, + uConfGeneral in 'Configuracion\uConfGeneral.pas' {frConfGeneral: TFrame}, + uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion}, + uBizEDISales in 'Services\EDI_Sales\uBizEDISales.pas', + schEDISalesClient_Intf in 'Services\EDI_Sales\schEDISalesClient_Intf.pas', + schEDISalesServer_Intf in 'Services\EDI_Sales\schEDISalesServer_Intf.pas', + uConfFicherosEDI in 'Configuracion\uConfFicherosEDI.pas' {frConfFicherosEDI: TFrame}, + uDataModuleEDI_Sales in 'Services\EDI_Sales\uDataModuleEDI_Sales.pas' {dmEDISales: TDataModule}, + uDataTableUtils in '..\Base\uDataTableUtils.pas', + srvLogin_Impl in 'Services\Login\srvLogin_Impl.pas' {srvLogin: TDARemoteService}, + srvInformes_Impl in 'srvInformes_Impl.pas' {srvInformes: TDARemoteService}, + srvTransfereciaFicheros_Impl in 'Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.pas' {srvTransfereciaFicheros: TRORemoteDataModule}, + srvControles_Impl in '..\ControlesBase\Servidor\srvControles_Impl.pas' {srvControles: TDARemoteService}, + srvVentasEnProceso_Impl in '..\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.pas' {srvVentasEnProceso: TDARemoteService}, + schVentasEnProcesoClient_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoClient_Intf.pas', + schVentasEnProcesoServer_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoServer_Intf.pas', + uSchemaUtilsServer in 'uSchemaUtilsServer.pas', + srvVentasTerminadas_Impl in '..\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.pas' {srvVentasTerminadas: TDARemoteService}, + schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', + schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas', + srvReferenciaGenerica_Impl in '..\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.pas' {srvReferenciaGenerica: TDARemoteService}, + schReferenciaGenericaClient_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaClient_Intf.pas', + schReferenciaGenericaServer_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaServer_Intf.pas', + uBizReferenciaGenericaServer in '..\Modulos\ReferenciaGenerica\Reglas\uBizReferenciaGenericaServer.pas', + uDataModuleEDI_Inventary in 'Services\EDI_Inventary\uDataModuleEDI_Inventary.pas' {dmEDIInventary: TDataModule}, + schEDIInventaryClient_Intf in 'Services\EDI_Inventary\schEDIInventaryClient_Intf.pas', + schEDIInventaryServer_Intf in 'Services\EDI_Inventary\schEDIInventaryServer_Intf.pas', + uBizEDIInventary in 'Services\EDI_Inventary\uBizEDIInventary.pas', + EDI_Utils in 'EDI_Utils.pas', + srvRecepciones_Impl in '..\Modulos\Recepciones\Servidor\srvRecepciones_Impl.pas' {srvRecepciones: TDARemoteService}, + srvDevoluciones_Impl in '..\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.pas' {srvDevoluciones: TDARemoteService}, + srvTraspasos_Impl in '..\Modulos\Traspasos\Servidor\srvTraspasos_Impl.pas' {srvTraspasos: TDARemoteService}, + srvStock_Impl in '..\Modulos\Stock\Servidor\srvStock_Impl.pas' {srvStock: TDARemoteService}, + schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', + schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', + uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, + srvParametros_Impl in '..\Modulos\Parametros\Servidor\srvParametros_Impl.pas' {srvParametros: TDARemoteService}, + schParametrosClient_Intf in '..\Modulos\Parametros\Reglas\schParametrosClient_Intf.pas', + schParametrosServer_Intf in '..\Modulos\Parametros\Reglas\schParametrosServer_Intf.pas', + EDI_Inventary_Impl in 'EDI_Inventary_Impl.pas', + EDI_Sales_Impl in 'EDI_Sales_Impl.pas', + EDI_Log_Impl in 'EDI_Log_Impl.pas', + schControlesClient_Intf in '..\ControlesBase\Reglas\schControlesClient_Intf.pas', + schControlesServer_Intf in '..\ControlesBase\Reglas\schControlesServer_Intf.pas', + RegExpr in 'RegExpr.pas'; + +{$R *.res} +{$R RODLFile.res} + +begin + Application.Initialize; + Application.Title := ''; + Application.CreateForm(TdmServer, dmServer); + Application.CreateForm(TServerForm, ServerForm); + Application.Run; +end. diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.drc b/Varela/Varela/Source/Servidor/AdminPV_Server.drc new file mode 100644 index 0000000..7d1135a --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.drc @@ -0,0 +1,2579 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +#define cxGridStrs_scxGridCustomizationFormColumnsPageCaption 64272 +#define cxGridStrs_scxGridGroupByBoxCaption 64273 +#define cxGridStrs_scxGridFilterCustomizeButtonCaption 64274 +#define cxGridStrs_scxGridColumnsQuickCustomizationHint 64275 +#define cxPCConsts_scxPCNoBaseImages 64288 +#define cxPCConsts_scxPCNoRegisteredStyles 64289 +#define cxPCConsts_scxPCPageIndexError 64290 +#define cxPCConsts_scxPCPainterClassError 64291 +#define cxPCConsts_scxPCTabCountEqualsZero 64292 +#define cxPCConsts_scxPCTabIndexError 64293 +#define cxPCConsts_scxPCTabVisibleIndexOutsOfBounds 64294 +#define cxPCConsts_scxPCVisibleTabListEmpty 64295 +#define cxPCConsts_scxPCAllowRotateError 64296 +#define cxGridStrs_scxGridDeletingConfirmationCaption 64297 +#define cxGridStrs_scxGridDeletingFocusedConfirmationText 64298 +#define cxGridStrs_scxGridDeletingSelectedConfirmationText 64299 +#define cxGridStrs_scxGridNoDataInfoText 64300 +#define cxGridStrs_scxGridNewItemRowInfoText 64301 +#define cxGridStrs_scxGridFilterIsEmpty 64302 +#define cxGridStrs_scxGridCustomizationFormCaption 64303 +#define MidConst_SErrorLoadingMidas 64304 +#define MidConst_SCannotCreateDataSet 64305 +#define MidConst_SNoConnectToBroker 64306 +#define MidConst_SNoParentConnection 64307 +#define MidConst_SInvalidOptParamType 64308 +#define MidConst_SConstraintFailed 64309 +#define MidConst_SField 64310 +#define MidConst_SRecConstFail 64311 +#define MidConst_SFieldConstFail 64312 +#define MidConst_SDefExprFail 64313 +#define MidConst_SNoEditsAllowed 64314 +#define MidConst_SNoDeletesAllowed 64315 +#define MidConst_SNoInsertsAllowed 64316 +#define MidConst_SConnectionMissing 64317 +#define MidConst_SNoCircularConnection 64318 +#define cxPCConsts_scxPCImageListIndexError 64319 +#define cxFilterControlStrs_cxSFilterDialogRows 64320 +#define cxFilterControlStrs_cxSFilterControlDialogCaption 64321 +#define cxFilterControlStrs_cxSFilterControlDialogNewFile 64322 +#define cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption 64323 +#define cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption 64324 +#define cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption 64325 +#define cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption 64326 +#define cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption 64327 +#define cxFilterControlStrs_cxSFilterControlDialogActionOkCaption 64328 +#define cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption 64329 +#define cxFilterControlStrs_cxSFilterControlDialogFileExt 64330 +#define cxFilterControlStrs_cxSFilterControlDialogFileFilter 64331 +#define MidConst_SNoDataProvider 64332 +#define MidConst_SInvalidDataPacket 64333 +#define MidConst_SRefreshError 64334 +#define MidConst_SNoCircularReference 64335 +#define cxFilterControlStrs_cxSFilterAddCondition 64336 +#define cxFilterControlStrs_cxSFilterAddGroup 64337 +#define cxFilterControlStrs_cxSFilterRemoveRow 64338 +#define cxFilterControlStrs_cxSFilterClearAll 64339 +#define cxFilterControlStrs_cxSFilterFooterAddCondition 64340 +#define cxFilterControlStrs_cxSFilterGroupCaption 64341 +#define cxFilterControlStrs_cxSFilterRootGroupCaption 64342 +#define cxFilterControlStrs_cxSFilterControlNullString 64343 +#define cxFilterControlStrs_cxSFilterErrorBuilding 64344 +#define cxFilterControlStrs_cxSFilterDialogCaption 64345 +#define cxFilterControlStrs_cxSFilterDialogInvalidValue 64346 +#define cxFilterControlStrs_cxSFilterDialogUse 64347 +#define cxFilterControlStrs_cxSFilterDialogSingleCharacter 64348 +#define cxFilterControlStrs_cxSFilterDialogCharactersSeries 64349 +#define cxFilterControlStrs_cxSFilterDialogOperationAnd 64350 +#define cxFilterControlStrs_cxSFilterDialogOperationOr 64351 +#define cxEditConsts_scxRegExprHexNumberExpected0 64352 +#define cxEditConsts_scxRegExprHexNumberExpected 64353 +#define cxEditConsts_scxRegExprMissing 64354 +#define cxEditConsts_scxRegExprUnnecessary 64355 +#define cxEditConsts_scxRegExprIncorrectSpace 64356 +#define cxEditConsts_scxRegExprNotCompiled 64357 +#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64358 +#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64359 +#define cxEditConsts_scxMaskEditRegExprError 64360 +#define cxEditConsts_scxMaskEditInvalidEditValue 64361 +#define cxEditConsts_cxSSpinEditInvalidNumericValue 64362 +#define cxFilterControlStrs_cxSFilterBoolOperatorAnd 64363 +#define cxFilterControlStrs_cxSFilterBoolOperatorOr 64364 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotAnd 64365 +#define cxFilterControlStrs_cxSFilterBoolOperatorNotOr 64366 +#define cxFilterControlStrs_cxSFilterRootButtonCaption 64367 +#define cxEditConsts_scxSEditRepositoryTextItem 64368 +#define cxEditConsts_scxSEditRepositoryTimeItem 64369 +#define cxEditConsts_scxRegExprLine 64370 +#define cxEditConsts_scxRegExprChar 64371 +#define cxEditConsts_scxRegExprNotAssignedSourceStream 64372 +#define cxEditConsts_scxRegExprEmptySourceStream 64373 +#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64374 +#define cxEditConsts_scxRegExprCantUseStarQuantifier 64375 +#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64376 +#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64377 +#define cxEditConsts_scxRegExprIllegalSymbol 64378 +#define cxEditConsts_scxRegExprIllegalQuantifier 64379 +#define cxEditConsts_scxRegExprIllegalIntegerValue 64380 +#define cxEditConsts_scxRegExprTooBigReferenceNumber 64381 +#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64382 +#define cxEditConsts_scxRegExprSubrangeOrder 64383 +#define cxEditConsts_scxSEditRepositoryBlobItem 64384 +#define cxEditConsts_scxSEditRepositoryButtonItem 64385 +#define cxEditConsts_scxSEditRepositoryCalcItem 64386 +#define cxEditConsts_scxSEditRepositoryCheckBoxItem 64387 +#define cxEditConsts_scxSEditRepositoryComboBoxItem 64388 +#define cxEditConsts_scxSEditRepositoryCurrencyItem 64389 +#define cxEditConsts_scxSEditRepositoryDateItem 64390 +#define cxEditConsts_scxSEditRepositoryHyperLinkItem 64391 +#define cxEditConsts_scxSEditRepositoryImageComboBoxItem 64392 +#define cxEditConsts_scxSEditRepositoryImageItem 64393 +#define cxEditConsts_scxSEditRepositoryMaskItem 64394 +#define cxEditConsts_scxSEditRepositoryMemoItem 64395 +#define cxEditConsts_scxSEditRepositoryMRUItem 64396 +#define cxEditConsts_scxSEditRepositoryPopupItem 64397 +#define cxEditConsts_scxSEditRepositorySpinItem 64398 +#define cxEditConsts_scxSEditRepositoryRadioGroupItem 64399 +#define cxEditConsts_scxSHyperLinkPrefix 64400 +#define cxEditConsts_cxNavigatorHint_First 64401 +#define cxEditConsts_cxNavigatorHint_Prior 64402 +#define cxEditConsts_cxNavigatorHint_PriorPage 64403 +#define cxEditConsts_cxNavigatorHint_Next 64404 +#define cxEditConsts_cxNavigatorHint_NextPage 64405 +#define cxEditConsts_cxNavigatorHint_Last 64406 +#define cxEditConsts_cxNavigatorHint_Insert 64407 +#define cxEditConsts_cxNavigatorHint_Delete 64408 +#define cxEditConsts_cxNavigatorHint_Edit 64409 +#define cxEditConsts_cxNavigatorHint_Post 64410 +#define cxEditConsts_cxNavigatorHint_Cancel 64411 +#define cxEditConsts_cxNavigatorHint_Refresh 64412 +#define cxEditConsts_cxNavigatorHint_SaveBookmark 64413 +#define cxEditConsts_cxNavigatorHint_GotoBookmark 64414 +#define cxEditConsts_cxNavigatorHint_Filter 64415 +#define cxEditConsts_cxSDateTuesday 64416 +#define cxEditConsts_cxSDateWednesday 64417 +#define cxEditConsts_cxSDateThursday 64418 +#define cxEditConsts_cxSDateFriday 64419 +#define cxEditConsts_cxSDateSaturday 64420 +#define cxEditConsts_cxSDateFirst 64421 +#define cxEditConsts_cxSDateSecond 64422 +#define cxEditConsts_cxSDateThird 64423 +#define cxEditConsts_cxSDateFourth 64424 +#define cxEditConsts_cxSDateFifth 64425 +#define cxEditConsts_cxSDateSixth 64426 +#define cxEditConsts_cxSDateSeventh 64427 +#define cxEditConsts_cxSDateBOM 64428 +#define cxEditConsts_cxSDateEOM 64429 +#define cxEditConsts_cxSDateNow 64430 +#define cxEditConsts_scxSCalcError 64431 +#define cxEditConsts_cxSMenuItemCaptionCut 64432 +#define cxEditConsts_cxSMenuItemCaptionCopy 64433 +#define cxEditConsts_cxSMenuItemCaptionPaste 64434 +#define cxEditConsts_cxSMenuItemCaptionDelete 64435 +#define cxEditConsts_cxSMenuItemCaptionLoad 64436 +#define cxEditConsts_cxSMenuItemCaptionSave 64437 +#define cxEditConsts_cxSDatePopupClear 64438 +#define cxEditConsts_cxSDatePopupNow 64439 +#define cxEditConsts_cxSDatePopupOK 64440 +#define cxEditConsts_cxSDatePopupToday 64441 +#define cxEditConsts_cxSDateError 64442 +#define cxEditConsts_cxSDateToday 64443 +#define cxEditConsts_cxSDateYesterday 64444 +#define cxEditConsts_cxSDateTomorrow 64445 +#define cxEditConsts_cxSDateSunday 64446 +#define cxEditConsts_cxSDateMonday 64447 +#define cxEditConsts_cxSEditNumericValueConvertError 64448 +#define cxEditConsts_cxSEditPopupCircularReferencingError 64449 +#define cxEditConsts_cxSEditTimeConvertError 64450 +#define cxEditConsts_cxSEditValidateErrorText 64451 +#define cxEditConsts_cxSEditValueOutOfBounds 64452 +#define cxEditConsts_cxSEditCheckBoxChecked 64453 +#define cxEditConsts_cxSEditCheckBoxGrayed 64454 +#define cxEditConsts_cxSEditCheckBoxUnchecked 64455 +#define cxEditConsts_cxSRadioGroupDefaultCaption 64456 +#define cxEditConsts_cxSBlobButtonOK 64457 +#define cxEditConsts_cxSBlobButtonCancel 64458 +#define cxEditConsts_cxSBlobButtonClose 64459 +#define cxEditConsts_cxSBlobMemo 64460 +#define cxEditConsts_cxSBlobMemoEmpty 64461 +#define cxEditConsts_cxSBlobPicture 64462 +#define cxEditConsts_cxSBlobPictureEmpty 64463 +#define cxFilterConsts_cxSFilterNotCaption 64464 +#define cxFilterConsts_cxSFilterBlankCaption 64465 +#define cxFilterConsts_cxSFilterOperatorIsNull 64466 +#define cxFilterConsts_cxSFilterOperatorIsNotNull 64467 +#define cxFilterConsts_cxSFilterOperatorBeginsWith 64468 +#define cxFilterConsts_cxSFilterOperatorDoesNotBeginWith 64469 +#define cxFilterConsts_cxSFilterOperatorEndsWith 64470 +#define cxFilterConsts_cxSFilterOperatorDoesNotEndWith 64471 +#define cxFilterConsts_cxSFilterOperatorContains 64472 +#define cxFilterConsts_cxSFilterOperatorDoesNotContain 64473 +#define cxFilterConsts_cxSFilterBoxAllCaption 64474 +#define cxFilterConsts_cxSFilterBoxCustomCaption 64475 +#define cxFilterConsts_cxSFilterBoxBlanksCaption 64476 +#define cxFilterConsts_cxSFilterBoxNonBlanksCaption 64477 +#define cxEditConsts_cxSEditDateConvertError 64478 +#define cxEditConsts_cxSEditInvalidRepositoryItem 64479 +#define cxFilterConsts_cxSFilterOperatorLastMonth 64480 +#define cxFilterConsts_cxSFilterOperatorLastYear 64481 +#define cxFilterConsts_cxSFilterOperatorPast 64482 +#define cxFilterConsts_cxSFilterOperatorThisWeek 64483 +#define cxFilterConsts_cxSFilterOperatorThisMonth 64484 +#define cxFilterConsts_cxSFilterOperatorThisYear 64485 +#define cxFilterConsts_cxSFilterOperatorNext7Days 64486 +#define cxFilterConsts_cxSFilterOperatorNextWeek 64487 +#define cxFilterConsts_cxSFilterOperatorNext14Days 64488 +#define cxFilterConsts_cxSFilterOperatorNextTwoWeeks 64489 +#define cxFilterConsts_cxSFilterOperatorNext30Days 64490 +#define cxFilterConsts_cxSFilterOperatorNextMonth 64491 +#define cxFilterConsts_cxSFilterOperatorNextYear 64492 +#define cxFilterConsts_cxSFilterOperatorFuture 64493 +#define cxFilterConsts_cxSFilterAndCaption 64494 +#define cxFilterConsts_cxSFilterOrCaption 64495 +#define cxFilterConsts_cxSFilterOperatorGreater 64496 +#define cxFilterConsts_cxSFilterOperatorGreaterEqual 64497 +#define cxFilterConsts_cxSFilterOperatorLike 64498 +#define cxFilterConsts_cxSFilterOperatorNotLike 64499 +#define cxFilterConsts_cxSFilterOperatorBetween 64500 +#define cxFilterConsts_cxSFilterOperatorNotBetween 64501 +#define cxFilterConsts_cxSFilterOperatorInList 64502 +#define cxFilterConsts_cxSFilterOperatorNotInList 64503 +#define cxFilterConsts_cxSFilterOperatorYesterday 64504 +#define cxFilterConsts_cxSFilterOperatorToday 64505 +#define cxFilterConsts_cxSFilterOperatorTomorrow 64506 +#define cxFilterConsts_cxSFilterOperatorLast7Days 64507 +#define cxFilterConsts_cxSFilterOperatorLastWeek 64508 +#define cxFilterConsts_cxSFilterOperatorLast14Days 64509 +#define cxFilterConsts_cxSFilterOperatorLastTwoWeeks 64510 +#define cxFilterConsts_cxSFilterOperatorLast30Days 64511 +#define pnglang_EPNGCannotAddChunkText 64512 +#define pnglang_EPNGCannotAddInvalidImageText 64513 +#define pnglang_EPNGOutMemoryText 64514 +#define pnglang_EPNGHeaderNotPresentText 64515 +#define cxDataConsts_cxSDataReadError 64516 +#define cxDataConsts_cxSDataWriteError 64517 +#define cxDataConsts_cxSDataItemExistError 64518 +#define cxDataConsts_cxSDataRecordIndexError 64519 +#define cxDataConsts_cxSDataItemIndexError 64520 +#define cxDataConsts_cxSDataProviderModeError 64521 +#define cxDataConsts_cxSDataInvalidStreamFormat 64522 +#define cxDataConsts_cxSDataRowIndexError 64523 +#define cxFilterConsts_cxSFilterOperatorEqual 64524 +#define cxFilterConsts_cxSFilterOperatorNotEqual 64525 +#define cxFilterConsts_cxSFilterOperatorLess 64526 +#define cxFilterConsts_cxSFilterOperatorLessEqual 64527 +#define pnglang_EPngInvalidCRCText 64528 +#define pnglang_EPNGInvalidIHDRText 64529 +#define pnglang_EPNGMissingMultipleIDATText 64530 +#define pnglang_EPNGZLIBErrorText 64531 +#define pnglang_EPNGInvalidPaletteText 64532 +#define pnglang_EPNGInvalidFileHeaderText 64533 +#define pnglang_EPNGIHDRNotFirstText 64534 +#define pnglang_EPNGSizeExceedsText 64535 +#define pnglang_EPNGUnknownPalEntryText 64536 +#define pnglang_EPNGUnknownCriticalChunkText 64537 +#define pnglang_EPNGUnknownCompressionText 64538 +#define pnglang_EPNGUnknownInterlaceText 64539 +#define pnglang_EPNGCannotAssignChunkText 64540 +#define pnglang_EPNGUnexpectedEndText 64541 +#define pnglang_EPNGNoImageDataText 64542 +#define pnglang_EPNGCannotChangeSizeText 64543 +#define IBSQLMonitor_StrStartTransaction 64544 +#define IBSQLMonitor_StrApplication 64545 +#define ADOConst_SMissingConnection 64546 +#define ADOConst_SNoDetailFilter 64547 +#define ADOConst_SBookmarksRequired 64548 +#define ADOConst_SMissingCommandText 64549 +#define ADOConst_SNoResultSet 64550 +#define ADOConst_SADOCreateError 64551 +#define ADOConst_SEventsNotSupported 64552 +#define ADOConst_SUsupportedFieldType 64553 +#define ADOConst_SConnectionRequired 64554 +#define ADOConst_SCantRequery 64555 +#define ADOConst_SNoFilterOptions 64556 +#define ADOConst_SRecordsetNotOpen 64557 +#define ADOConst_sNameAttr 64558 +#define ADOConst_sValueAttr 64559 +#define IBSQLMonitor_StrError 64560 +#define IBSQLMonitor_StrAttach 64561 +#define IBSQLMonitor_StrDetach 64562 +#define IBSQLMonitor_StrQuery 64563 +#define IBSQLMonitor_StrStart 64564 +#define IBSQLMonitor_StrExecute 64565 +#define IBSQLMonitor_StrNULL 64566 +#define IBSQLMonitor_StrBLOB 64567 +#define IBSQLMonitor_StrFetch 64568 +#define IBSQLMonitor_StrPrepare 64569 +#define IBSQLMonitor_StrPlan 64570 +#define IBSQLMonitor_StrPlanCantRetrive 64571 +#define IBSQLMonitor_StrCommitHardComm 64572 +#define IBSQLMonitor_StrCommitRetaining 64573 +#define IBSQLMonitor_StrRollback 64574 +#define IBSQLMonitor_StrRollbackRetainin 64575 +#define IBXConst_SInvalidOnStatusResult 64576 +#define IBXConst_SDPBConstantUnknownEx 64577 +#define IBXConst_STPBConstantUnknownEx 64578 +#define IBXConst_SUnknownPlan 64579 +#define IBXConst_SFieldSizeMismatch 64580 +#define IBXConst_SEventAlreadyRegistered 64581 +#define IBXConst_SStringTooLarge 64582 +#define IBXConst_SNoTimers 64583 +#define IBXConst_SIB65feature 64584 +#define IBXConst_SLoginPromptFailure 64585 +#define IBXConst_SIB70feature 64586 +#define IBXConst_SIB71feature 64587 +#define IBXConst_SIB80feature 64588 +#define IBSQLMonitor_StrConnect 64589 +#define IBSQLMonitor_StrDisconnect 64590 +#define IBSQLMonitor_StrMisc 64591 +#define IBXConst_SSQLMonitorAlreadyPresent 64592 +#define IBXConst_SCantPrintValue 64593 +#define IBXConst_SEOFReached 64594 +#define IBXConst_SEOFInComment 64595 +#define IBXConst_SEOFInString 64596 +#define IBXConst_SParamNameExpected 64597 +#define IBXConst_SSuccess 64598 +#define IBXConst_SDelphiException 64599 +#define IBXConst_SNoOptionsSet 64600 +#define IBXConst_SNoDestinationDirectory 64601 +#define IBXConst_SNosourceDirectory 64602 +#define IBXConst_SNoUninstallFile 64603 +#define IBXConst_SOptionNeedsClient 64604 +#define IBXConst_SOptionNeedsServer 64605 +#define IBXConst_SInvalidOption 64606 +#define IBXConst_SInvalidOnErrorResult 64607 +#define IBXConst_SInvalidEvent 64608 +#define IBXConst_SMaximumEvents 64609 +#define IBXConst_SNoEventsRegistered 64610 +#define IBXConst_SInvalidQueueing 64611 +#define IBXConst_SInvalidRegistration 64612 +#define IBXConst_SInvalidBatchMove 64613 +#define IBXConst_SSQLDialectInvalid 64614 +#define IBXConst_SSPBConstantNotSupported 64615 +#define IBXConst_SSPBConstantUnknown 64616 +#define IBXConst_SServiceActive 64617 +#define IBXConst_SServiceInActive 64618 +#define IBXConst_SServerNameMissing 64619 +#define IBXConst_SQueryParamsError 64620 +#define IBXConst_SStartParamsError 64621 +#define IBXConst_SOutputParsingError 64622 +#define IBXConst_SUseSpecificProcedures 64623 +#define IBXConst_SEmptySQLStatement 64624 +#define IBXConst_SIsASelectStatement 64625 +#define IBXConst_SRequiredParamNotSet 64626 +#define IBXConst_SNoStoredProcName 64627 +#define IBXConst_SIsAExecuteProcedure 64628 +#define IBXConst_SUpdateFailed 64629 +#define IBXConst_SNotCachedUpdates 64630 +#define IBXConst_SNotLiveRequest 64631 +#define IBXConst_SNoProvider 64632 +#define IBXConst_SNoRecordsAffected 64633 +#define IBXConst_SNoTableName 64634 +#define IBXConst_SCannotCreatePrimaryIndex 64635 +#define IBXConst_SCannotDropSystemIndex 64636 +#define IBXConst_STableNameMismatch 64637 +#define IBXConst_SIndexFieldMissing 64638 +#define IBXConst_SInvalidCancellation 64639 +#define IBXConst_SCannotPost 64640 +#define IBXConst_SCannotUpdate 64641 +#define IBXConst_SCannotDelete 64642 +#define IBXConst_SCannotRefresh 64643 +#define IBXConst_SBufferNotSet 64644 +#define IBXConst_SCircularReference 64645 +#define IBXConst_SSQLParseError 64646 +#define IBXConst_SUserAbort 64647 +#define IBXConst_SDataSetUniDirectional 64648 +#define IBXConst_SCannotCreateSharedResource 64649 +#define IBXConst_SWindowsAPIError 64650 +#define IBXConst_SColumnListsDontMatch 64651 +#define IBXConst_SColumnTypesDontMatch 64652 +#define IBXConst_SCantEndSharedTransaction 64653 +#define IBXConst_SFieldUnsupportedType 64654 +#define IBXConst_SCircularDataLink 64655 +#define IBXConst_SDatasetOpen 64656 +#define IBXConst_SDatasetClosed 64657 +#define IBXConst_SUnknownSQLDataType 64658 +#define IBXConst_SInvalidColumnIndex 64659 +#define IBXConst_SInvalidParamColumnIndex 64660 +#define IBXConst_SInvalidDataConversion 64661 +#define IBXConst_SColumnIsNotNullable 64662 +#define IBXConst_SBlobCannotBeRead 64663 +#define IBXConst_SBlobCannotBeWritten 64664 +#define IBXConst_SEmptyQuery 64665 +#define IBXConst_SCannotOpenNonSQLSelect 64666 +#define IBXConst_SNoFieldAccess 64667 +#define IBXConst_SFieldReadOnly 64668 +#define IBXConst_SFieldNotFound 64669 +#define IBXConst_SNotEditing 64670 +#define IBXConst_SCannotInsert 64671 +#define IBXConst_SDatabaseNameMissing 64672 +#define IBXConst_SNotInTransaction 64673 +#define IBXConst_SInTransaction 64674 +#define IBXConst_STimeoutNegative 64675 +#define IBXConst_SNoDatabasesInTransaction 64676 +#define IBXConst_SUpdateWrongDB 64677 +#define IBXConst_SUpdateWrongTR 64678 +#define IBXConst_SDatabaseNotAssigned 64679 +#define IBXConst_STransactionNotAssigned 64680 +#define IBXConst_SXSQLDAIndexOutOfRange 64681 +#define IBXConst_SXSQLDANameDoesNotExist 64682 +#define IBXConst_SEOF 64683 +#define IBXConst_SBOF 64684 +#define IBXConst_SInvalidStatementHandle 64685 +#define IBXConst_SSQLOpen 64686 +#define IBXConst_SSQLClosed 64687 +#define IBXConst_SInterBaseMissing 64688 +#define IBXConst_SInterBaseInstallMissing 64689 +#define IBXConst_SIB60feature 64690 +#define IBXConst_SNotSupported 64691 +#define IBXConst_SNotPermitted 64692 +#define IBXConst_SFileAccessError 64693 +#define IBXConst_SConnectionTimeout 64694 +#define IBXConst_SCannotSetDatabase 64695 +#define IBXConst_SCannotSetTransaction 64696 +#define IBXConst_SOperationCancelled 64697 +#define IBXConst_SDPBConstantNotSupported 64698 +#define IBXConst_SDPBConstantUnknown 64699 +#define IBXConst_STPBConstantNotSupported 64700 +#define IBXConst_STPBConstantUnknown 64701 +#define IBXConst_SDatabaseClosed 64702 +#define IBXConst_SDatabaseOpen 64703 +#define uDARes_err_LoadPackageFailed 64704 +#define uDARes_err_InvalidDriverReference 64705 +#define uDARes_err_CannotFindStatement 64706 +#define uDARes_err_CannotFindDefaultItem 64707 +#define uDARes_err_PoolIsNotEmpty 64708 +#define uDARes_err_MaxPoolSizeReached 64709 +#define uDARes_err_LAMEDataset 64710 +#define uDARes_err_HETConnectionNotSupportedInV3 64711 +#define uDARes_err_DARDMInvalidSchema 64712 +#define uDARes_err_DARDMUnassignedAdapter 64713 +#define uDARes_err_DARDMConnectionIsNotAssigned 64714 +#define uDARes_err_DARDMCannotFindProxessorForDelta 64715 +#define uDARes_err_NeedShareMem 64716 +#define uDARes_err_ExecuteSQLCommandNotAllowed 64717 +#define uDARes_err_DatasetNotAccessible 64718 +#define IBXConst_SUnknownError 64719 +#define JvResources_RsHotLight 64720 +#define JvResources_RsMenuBar 64721 +#define JvResources_RsMenuHighlight 64722 +#define uDARes_err_ChangeLogAlreadyStarted 64723 +#define uDARes_err_NotAttachedToDataTable 64724 +#define uDARes_err_DriverProcAlreadyRegistered 64725 +#define uDARes_err_DriverManagerAlreadyCreated 64726 +#define uDARes_err_DriverManagerNotAssigned 64727 +#define uDARes_err_FieldTypeNotSupported 64728 +#define uDARes_err_InvalidDataset 64729 +#define uDARes_err_CannotFindItem 64730 +#define uDARes_err_DriverAlreadyLoaded 64731 +#define uDARes_err_InvalidDLL 64732 +#define uDARes_err_UnknownDriver 64733 +#define uDARes_err_FieldIsNotBound 64734 +#define uDARes_err_CannotFindField 64735 +#define JvResources_RsClInactiveBorder 64736 +#define JvResources_RsClAppWorkSpace 64737 +#define JvResources_RsClHighlight 64738 +#define JvResources_RsClHighlightText 64739 +#define JvResources_RsClBtnFace 64740 +#define JvResources_RsClBtnShadow 64741 +#define JvResources_RsClGrayText 64742 +#define JvResources_RsClBtnText 64743 +#define JvResources_RsClInactiveCaptionText 64744 +#define JvResources_RsClBtnHighlight 64745 +#define JvResources_RsCl3DDkShadow 64746 +#define JvResources_RsCl3DLight 64747 +#define JvResources_RsClInfoText 64748 +#define JvResources_RsClInfoBk 64749 +#define JvResources_RsGradientActiveCaption 64750 +#define JvResources_RsGradientInactiveCaption 64751 +#define JvResources_RsClLightYellow 64752 +#define JvResources_RsClLightGreen 64753 +#define JvResources_RsClLightTurquoise 64754 +#define JvResources_RsClPaleBlue 64755 +#define JvResources_RsClLavender 64756 +#define JvResources_RsClScrollBar 64757 +#define JvResources_RsClBackground 64758 +#define JvResources_RsClActiveCaption 64759 +#define JvResources_RsClInactiveCaption 64760 +#define JvResources_RsClMenu 64761 +#define JvResources_RsClWindow 64762 +#define JvResources_RsClWindowFrame 64763 +#define JvResources_RsClMenuText 64764 +#define JvResources_RsClWindowText 64765 +#define JvResources_RsClCaptionText 64766 +#define JvResources_RsClActiveBorder 64767 +#define JvResources_RsClDarkYellow 64768 +#define JvResources_RsClBlueGray 64769 +#define JvResources_RsClGray50 64770 +#define JvResources_RsClLightOrange 64771 +#define JvResources_RsClSeaGreen 64772 +#define JvResources_RsClLightBlue 64773 +#define JvResources_RsClViolet 64774 +#define JvResources_RsClGray40 64775 +#define JvResources_RsClPink 64776 +#define JvResources_RsClGold 64777 +#define JvResources_RsClBrightGreen 64778 +#define JvResources_RsClTurquoise 64779 +#define JvResources_RsClPlum 64780 +#define JvResources_RsClGray25 64781 +#define JvResources_RsClRose 64782 +#define JvResources_RsClTan 64783 +#define JvResources_RsClFuchsia 64784 +#define JvResources_RsClAqua 64785 +#define JvResources_RsClWhite 64786 +#define JvResources_RsClMoneyGreen 64787 +#define JvResources_RsClSkyBlue 64788 +#define JvResources_RsClCream 64789 +#define JvResources_RsClMedGray 64790 +#define JvResources_RsClBrown 64791 +#define JvResources_RsClOliveGreen 64792 +#define JvResources_RsClDarkGreen 64793 +#define JvResources_RsClDarkTeal 64794 +#define JvResources_RsClDarkBlue 64795 +#define JvResources_RsClIndigo 64796 +#define JvResources_RsClGray80 64797 +#define JvResources_RsClDarkRed 64798 +#define JvResources_RsClOrange 64799 +#define JvResources_RsEGIFVersion 64800 +#define JvResources_RsEPixelFormatNotImplemented 64801 +#define JvResources_RsEBitCountNotImplemented 64802 +#define JvResources_RsClBlack 64803 +#define JvResources_RsClMaroon 64804 +#define JvResources_RsClGreen 64805 +#define JvResources_RsClOlive 64806 +#define JvResources_RsClNavy 64807 +#define JvResources_RsClPurple 64808 +#define JvResources_RsClTeal 64809 +#define JvResources_RsClGray 64810 +#define JvResources_RsClSilver 64811 +#define JvResources_RsClRed 64812 +#define JvResources_RsClLime 64813 +#define JvResources_RsClYellow 64814 +#define JvResources_RsClBlue 64815 +#define JvResources_RsEUnableToCreateKey 64816 +#define JvResources_RsEEnumeratingRegistry 64817 +#define JvResources_RsEInvalidType 64818 +#define JvResources_RsEUnknownBaseType 64819 +#define JvResources_RsEInvalidPath 64820 +#define JvResources_RsENotAUniqueRootPath 64821 +#define JvResources_RsECircularReferenceOfStorages 64822 +#define JvResources_RsEShellNotCompatible 64823 +#define JvResources_RsGIFImage 64824 +#define JvResources_RsEChangeGIFSize 64825 +#define JvResources_RsENoGIFData 64826 +#define JvResources_RsEUnrecognizedGIFExt 64827 +#define JvResources_RsEWrongGIFColors 64828 +#define JvResources_RsEBadGIFCodeSize 64829 +#define JvResources_RsEGIFDecodeError 64830 +#define JvResources_RsEGIFEncodeError 64831 +#define JclResources_RsIntelCacheDescr7D 64832 +#define JclResources_RsIntelCacheDescr7F 64833 +#define JclResources_RsIntelCacheDescr82 64834 +#define JclResources_RsIntelCacheDescr83 64835 +#define JclResources_RsIntelCacheDescr84 64836 +#define JclResources_RsIntelCacheDescr85 64837 +#define JclResources_RsIntelCacheDescr86 64838 +#define JclResources_RsIntelCacheDescr87 64839 +#define JclResources_RsIntelCacheDescrB0 64840 +#define JclResources_RsIntelCacheDescrB3 64841 +#define JclResources_RsIntelCacheDescrB4 64842 +#define JclResources_RsIntelCacheDescrF0 64843 +#define JclResources_RsIntelCacheDescrF1 64844 +#define JvResources_RsAniExtension 64845 +#define JvResources_RsAniFilterName 64846 +#define JvResources_RsRootValueReplaceFmt 64847 +#define JclResources_RsIntelCacheDescr57 64848 +#define JclResources_RsIntelCacheDescr5B 64849 +#define JclResources_RsIntelCacheDescr5C 64850 +#define JclResources_RsIntelCacheDescr5D 64851 +#define JclResources_RsIntelCacheDescr60 64852 +#define JclResources_RsIntelCacheDescr66 64853 +#define JclResources_RsIntelCacheDescr67 64854 +#define JclResources_RsIntelCacheDescr68 64855 +#define JclResources_RsIntelCacheDescr70 64856 +#define JclResources_RsIntelCacheDescr71 64857 +#define JclResources_RsIntelCacheDescr72 64858 +#define JclResources_RsIntelCacheDescr78 64859 +#define JclResources_RsIntelCacheDescr79 64860 +#define JclResources_RsIntelCacheDescr7A 64861 +#define JclResources_RsIntelCacheDescr7B 64862 +#define JclResources_RsIntelCacheDescr7C 64863 +#define JclResources_RsIntelCacheDescr29 64864 +#define JclResources_RsIntelCacheDescr2C 64865 +#define JclResources_RsIntelCacheDescr30 64866 +#define JclResources_RsIntelCacheDescr40 64867 +#define JclResources_RsIntelCacheDescr41 64868 +#define JclResources_RsIntelCacheDescr42 64869 +#define JclResources_RsIntelCacheDescr43 64870 +#define JclResources_RsIntelCacheDescr44 64871 +#define JclResources_RsIntelCacheDescr45 64872 +#define JclResources_RsIntelCacheDescr46 64873 +#define JclResources_RsIntelCacheDescr47 64874 +#define JclResources_RsIntelCacheDescr49 64875 +#define JclResources_RsIntelCacheDescr50 64876 +#define JclResources_RsIntelCacheDescr51 64877 +#define JclResources_RsIntelCacheDescr52 64878 +#define JclResources_RsIntelCacheDescr56 64879 +#define JclResources_RsRTTIVarType 64880 +#define JclResources_RsDeclarationFormat 64881 +#define JclResources_RsIntelCacheDescr00 64882 +#define JclResources_RsIntelCacheDescr01 64883 +#define JclResources_RsIntelCacheDescr02 64884 +#define JclResources_RsIntelCacheDescr03 64885 +#define JclResources_RsIntelCacheDescr04 64886 +#define JclResources_RsIntelCacheDescr05 64887 +#define JclResources_RsIntelCacheDescr06 64888 +#define JclResources_RsIntelCacheDescr08 64889 +#define JclResources_RsIntelCacheDescr0A 64890 +#define JclResources_RsIntelCacheDescr0B 64891 +#define JclResources_RsIntelCacheDescr0C 64892 +#define JclResources_RsIntelCacheDescr22 64893 +#define JclResources_RsIntelCacheDescr23 64894 +#define JclResources_RsIntelCacheDescr25 64895 +#define JclResources_RsRTTIMinValue 64896 +#define JclResources_RsRTTIMaxValue 64897 +#define JclResources_RsRTTINameList 64898 +#define JclResources_RsRTTIClassName 64899 +#define JclResources_RsRTTIParent 64900 +#define JclResources_RsRTTIPropCount 64901 +#define JclResources_RsRTTIUnitName 64902 +#define JclResources_RsRTTIBasedOn 64903 +#define JclResources_RsRTTIFloatType 64904 +#define JclResources_RsRTTIMethodKind 64905 +#define JclResources_RsRTTIParamCount 64906 +#define JclResources_RsRTTIReturnType 64907 +#define JclResources_RsRTTIMaxLen 64908 +#define JclResources_RsRTTIElSize 64909 +#define JclResources_RsRTTIElType 64910 +#define JclResources_RsRTTIElNeedCleanup 64911 +#define JclResources_RsRTTITypeError 64912 +#define JclResources_RsRTTITypeInfoAt 64913 +#define JclResources_RsRTTIPropRead 64914 +#define JclResources_RsRTTIPropWrite 64915 +#define JclResources_RsRTTIPropStored 64916 +#define JclResources_RsRTTIField 64917 +#define JclResources_RsRTTIStaticMethod 64918 +#define JclResources_RsRTTIVirtualMethod 64919 +#define JclResources_RsRTTIIndex 64920 +#define JclResources_RsRTTIDefault 64921 +#define JclResources_RsRTTIName 64922 +#define JclResources_RsRTTIType 64923 +#define JclResources_RsRTTIFlags 64924 +#define JclResources_RsRTTIGUID 64925 +#define JclResources_RsRTTITypeKind 64926 +#define JclResources_RsRTTIOrdinalType 64927 +#define JclResources_RsHKCRShort 64928 +#define JclResources_RsHKCUShort 64929 +#define JclResources_RsHKLMShort 64930 +#define JclResources_RsHKUSShort 64931 +#define JclResources_RsHKPDShort 64932 +#define JclResources_RsHKCCShort 64933 +#define JclResources_RsHKDDShort 64934 +#define JclResources_RsRTTIValueOutOfRange 64935 +#define JclResources_RsRTTIUnknownIdentifier 64936 +#define JclResources_RsRTTIVar 64937 +#define JclResources_RsRTTIConst 64938 +#define JclResources_RsRTTIArrayOf 64939 +#define JclResources_RsRTTIOut 64940 +#define JclResources_RsRTTIOrdinal 64941 +#define JclResources_RsRTTITrue 64942 +#define JclResources_RsRTTIFalse 64943 +#define JConsts_sChangeJPGSize 64944 +#define JConsts_sJPEGError 64945 +#define JConsts_sJPEGImageFile 64946 +#define JclResources_RsFileUtilsNoVersionInfo 64947 +#define JclResources_RsUnableToOpenKeyRead 64948 +#define JclResources_RsUnableToOpenKeyWrite 64949 +#define JclResources_RsUnableToAccessValue 64950 +#define JclResources_RsWrongDataType 64951 +#define JclResources_RsInconsistentPath 64952 +#define JclResources_RsHKCRLong 64953 +#define JclResources_RsHKCULong 64954 +#define JclResources_RsHKLMLong 64955 +#define JclResources_RsHKUSLong 64956 +#define JclResources_RsHKPDLong 64957 +#define JclResources_RsHKCCLong 64958 +#define JclResources_RsHKDDLong 64959 +#define IdResourceStringsCore_RSConnectTimeout 64960 +#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 64961 +#define IdResourceStringsCore_RSAlreadyConnected 64962 +#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 64963 +#define IdResourceStringsCore_RSchedMaxThreadEx 64964 +#define IdResourceStringsCore_RSTransparentProxyCannotBind 64965 +#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 64966 +#define IdResourceStringsCore_RSBufferMissingTerminator 64967 +#define IdResourceStringsCore_RSBufferInvalidStartPos 64968 +#define IdResourceStringsCore_RSReplyInvalidCode 64969 +#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 64970 +#define IdResourceStringsCore_RSNoOnExecute 64971 +#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 64972 +#define ComStrs_sInvalidIndex 64973 +#define ComStrs_sInsertError 64974 +#define ComStrs_sUDAssociated 64975 +#define IdResourceStringsCore_RSSocksServerPermissionError 64976 +#define IdResourceStringsCore_RSSocksServerNetUnreachableError 64977 +#define IdResourceStringsCore_RSSocksServerHostUnreachableError 64978 +#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 64979 +#define IdResourceStringsCore_RSSocksServerTTLExpiredError 64980 +#define IdResourceStringsCore_RSSocksServerCommandError 64981 +#define IdResourceStringsCore_RSSocksServerAddressError 64982 +#define IdResourceStringsCore_RSInterceptCircularLink 64983 +#define IdResourceStringsCore_RSNotEnoughDataInBuffer 64984 +#define IdResourceStringsCore_RSTooMuchDataInBuffer 64985 +#define IdResourceStringsCore_RSFileNotFound 64986 +#define IdResourceStringsCore_RSNotConnected 64987 +#define IdResourceStringsCore_RSObjectTypeNotSupported 64988 +#define IdResourceStringsCore_RSIdNoDataToRead 64989 +#define IdResourceStringsCore_RSReadTimeout 64990 +#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 64991 +#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 64992 +#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 64993 +#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 64994 +#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 64995 +#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 64996 +#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 64997 +#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 64998 +#define IdResourceStringsCore_RSSocksUDPNotSupported 64999 +#define IdResourceStringsCore_RSSocksRequestFailed 65000 +#define IdResourceStringsCore_RSSocksRequestServerFailed 65001 +#define IdResourceStringsCore_RSSocksRequestIdentFailed 65002 +#define IdResourceStringsCore_RSSocksUnknownError 65003 +#define IdResourceStringsCore_RSSocksServerRespondError 65004 +#define IdResourceStringsCore_RSSocksAuthMethodError 65005 +#define IdResourceStringsCore_RSSocksAuthError 65006 +#define IdResourceStringsCore_RSSocksServerGeneralError 65007 +#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 65008 +#define IdResourceStringsProtocols_RSHTTPNotAcceptable 65009 +#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 65010 +#define IdResourceStringsProtocols_RSHTTPRequestTimeout 65011 +#define IdResourceStringsProtocols_RSHTTPConflict 65012 +#define IdResourceStringsProtocols_RSHTTPGone 65013 +#define IdResourceStringsProtocols_RSHTTPLengthRequired 65014 +#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 65015 +#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 65016 +#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 65017 +#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 65018 +#define IdResourceStringsProtocols_RSHTTPInternalServerError 65019 +#define IdResourceStringsProtocols_RSHTTPNotImplemented 65020 +#define IdResourceStringsProtocols_RSHTTPBadGateway 65021 +#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 65022 +#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 65023 +#define IdResourceStringsProtocols_RSHTTPOK 65024 +#define IdResourceStringsProtocols_RSHTTPCreated 65025 +#define IdResourceStringsProtocols_RSHTTPAccepted 65026 +#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 65027 +#define IdResourceStringsProtocols_RSHTTPNoContent 65028 +#define IdResourceStringsProtocols_RSHTTPResetContent 65029 +#define IdResourceStringsProtocols_RSHTTPPartialContent 65030 +#define IdResourceStringsProtocols_RSHTTPMovedPermanently 65031 +#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 65032 +#define IdResourceStringsProtocols_RSHTTPSeeOther 65033 +#define IdResourceStringsProtocols_RSHTTPNotModified 65034 +#define IdResourceStringsProtocols_RSHTTPUseProxy 65035 +#define IdResourceStringsProtocols_RSHTTPBadRequest 65036 +#define IdResourceStringsProtocols_RSHTTPUnauthorized 65037 +#define IdResourceStringsProtocols_RSHTTPForbidden 65038 +#define IdResourceStringsProtocols_RSHTTPNotFound 65039 +#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 65040 +#define IdResourceStrings_RSCannotBindRange 65041 +#define IdResourceStrings_RSConnectionClosedGracefully 65042 +#define IdResourceStrings_RSCouldNotBindSocket 65043 +#define IdResourceStrings_RSInvalidPortRange 65044 +#define IdResourceStrings_RSInvalidServiceName 65045 +#define IdResourceStrings_RSIPv6Unavailable 65046 +#define IdResourceStrings_RSInvalidIPv6Address 65047 +#define IdResourceStrings_RSIPVersionUnsupported 65048 +#define IdResourceStrings_RSNotAllBytesSent 65049 +#define IdResourceStrings_RSPackageSizeTooBig 65050 +#define IdResourceStrings_RSSetSizeExceeded 65051 +#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 65052 +#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 65053 +#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 65054 +#define IdResourceStringsProtocols_RSHTTPContinue 65055 +#define IdResourceStrings_RSStackENOBUFS 65056 +#define IdResourceStrings_RSStackEISCONN 65057 +#define IdResourceStrings_RSStackENOTCONN 65058 +#define IdResourceStrings_RSStackESHUTDOWN 65059 +#define IdResourceStrings_RSStackETOOMANYREFS 65060 +#define IdResourceStrings_RSStackETIMEDOUT 65061 +#define IdResourceStrings_RSStackECONNREFUSED 65062 +#define IdResourceStrings_RSStackELOOP 65063 +#define IdResourceStrings_RSStackENAMETOOLONG 65064 +#define IdResourceStrings_RSStackEHOSTDOWN 65065 +#define IdResourceStrings_RSStackEHOSTUNREACH 65066 +#define IdResourceStrings_RSStackENOTEMPTY 65067 +#define IdResourceStrings_RSStackHOST_NOT_FOUND 65068 +#define IdResourceStrings_RSStackClassUndefined 65069 +#define IdResourceStrings_RSStackAlreadyCreated 65070 +#define IdResourceStrings_RSAntiFreezeOnlyOne 65071 +#define IdResourceStrings_RSStackEDESTADDRREQ 65072 +#define IdResourceStrings_RSStackEMSGSIZE 65073 +#define IdResourceStrings_RSStackEPROTOTYPE 65074 +#define IdResourceStrings_RSStackENOPROTOOPT 65075 +#define IdResourceStrings_RSStackEPROTONOSUPPORT 65076 +#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65077 +#define IdResourceStrings_RSStackEOPNOTSUPP 65078 +#define IdResourceStrings_RSStackEPFNOSUPPORT 65079 +#define IdResourceStrings_RSStackEAFNOSUPPORT 65080 +#define IdResourceStrings_RSStackEADDRINUSE 65081 +#define IdResourceStrings_RSStackEADDRNOTAVAIL 65082 +#define IdResourceStrings_RSStackENETDOWN 65083 +#define IdResourceStrings_RSStackENETUNREACH 65084 +#define IdResourceStrings_RSStackENETRESET 65085 +#define IdResourceStrings_RSStackECONNABORTED 65086 +#define IdResourceStrings_RSStackECONNRESET 65087 +#define IdResourceStrings_RSStatusConnecting 65088 +#define IdResourceStrings_RSStatusConnected 65089 +#define IdResourceStrings_RSStatusDisconnecting 65090 +#define IdResourceStrings_RSStatusDisconnected 65091 +#define IdResourceStrings_RSStatusText 65092 +#define IdResourceStrings_RSStackError 65093 +#define IdResourceStrings_RSStackEINTR 65094 +#define IdResourceStrings_RSStackEBADF 65095 +#define IdResourceStrings_RSStackEACCES 65096 +#define IdResourceStrings_RSStackEFAULT 65097 +#define IdResourceStrings_RSStackEINVAL 65098 +#define IdResourceStrings_RSStackEMFILE 65099 +#define IdResourceStrings_RSStackEWOULDBLOCK 65100 +#define IdResourceStrings_RSStackEINPROGRESS 65101 +#define IdResourceStrings_RSStackEALREADY 65102 +#define IdResourceStrings_RSStackENOTSOCK 65103 +#define DBConsts_SProviderSQLNotSupported 65104 +#define DBConsts_SProviderExecuteNotSupported 65105 +#define DBConsts_SExprNoAggOnCalcs 65106 +#define DBConsts_SDataSetUnidirectional 65107 +#define DBConsts_SUnassignedVar 65108 +#define DBConsts_SRecordNotFound 65109 +#define DBConsts_SBcdOverflow 65110 +#define DBConsts_SInvalidBcdValue 65111 +#define DBConsts_SInvalidFormatType 65112 +#define DBConsts_SCouldNotParseTimeStamp 65113 +#define DBConsts_SInvalidSqlTimeStamp 65114 +#define IdResourceStrings_RSFailedTimeZoneInfo 65115 +#define IdResourceStrings_RSWinsockCallError 65116 +#define IdResourceStrings_RSWinsockLoadError 65117 +#define IdResourceStrings_RSWinsockInitializationError 65118 +#define IdResourceStrings_RSStatusResolving 65119 +#define DBConsts_SExprIncorrect 65120 +#define DBConsts_SExprNothing 65121 +#define DBConsts_SExprTypeMis 65122 +#define DBConsts_SExprBadScope 65123 +#define DBConsts_SExprNoArith 65124 +#define DBConsts_SExprNotAgg 65125 +#define DBConsts_SExprBadConst 65126 +#define DBConsts_SExprNoAggFilter 65127 +#define DBConsts_SExprEmptyInList 65128 +#define DBConsts_SInvalidKeywordUse 65129 +#define DBConsts_STextFalse 65130 +#define DBConsts_STextTrue 65131 +#define DBConsts_SParameterNotFound 65132 +#define DBConsts_SInvalidVersion 65133 +#define DBConsts_SBadFieldType 65134 +#define DBConsts_SAggActive 65135 +#define DBConsts_SNotEditing 65136 +#define DBConsts_SDataSetClosed 65137 +#define DBConsts_SDataSetEmpty 65138 +#define DBConsts_SDataSetReadOnly 65139 +#define DBConsts_SNestedDataSetClass 65140 +#define DBConsts_SExprTermination 65141 +#define DBConsts_SExprNameError 65142 +#define DBConsts_SExprStringError 65143 +#define DBConsts_SExprInvalidChar 65144 +#define DBConsts_SExprNoLParen 65145 +#define DBConsts_SExprNoRParen 65146 +#define DBConsts_SExprNoRParenOrComma 65147 +#define DBConsts_SExprExpected 65148 +#define DBConsts_SExprBadField 65149 +#define DBConsts_SExprBadNullTest 65150 +#define DBConsts_SExprRangeError 65151 +#define DBConsts_SFieldOutOfRange 65152 +#define DBConsts_SFieldRequired 65153 +#define DBConsts_SDataSetMissing 65154 +#define DBConsts_SInvalidCalcType 65155 +#define DBConsts_SFieldReadOnly 65156 +#define DBConsts_SFieldIndexError 65157 +#define DBConsts_SNoFieldIndexes 65158 +#define DBConsts_SNotIndexField 65159 +#define DBConsts_SIndexFieldMissing 65160 +#define DBConsts_SNoIndexForFields 65161 +#define DBConsts_SIndexNotFound 65162 +#define DBConsts_SCircularDataLink 65163 +#define DBConsts_SLookupInfoError 65164 +#define DBConsts_SDataSourceChange 65165 +#define DBConsts_SNoNestedMasterSource 65166 +#define DBConsts_SDataSetOpen 65167 +#define DBConsts_SInvalidFieldSize 65168 +#define DBConsts_SInvalidFieldKind 65169 +#define DBConsts_SUnknownFieldType 65170 +#define DBConsts_SFieldNameMissing 65171 +#define DBConsts_SDuplicateFieldName 65172 +#define DBConsts_SFieldNotFound 65173 +#define DBConsts_SFieldAccessError 65174 +#define DBConsts_SFieldValueError 65175 +#define DBConsts_SFieldRangeError 65176 +#define DBConsts_SBcdFieldRangeError 65177 +#define DBConsts_SInvalidIntegerValue 65178 +#define DBConsts_SInvalidBoolValue 65179 +#define DBConsts_SInvalidFloatValue 65180 +#define DBConsts_SFieldTypeMismatch 65181 +#define DBConsts_SFieldSizeMismatch 65182 +#define DBConsts_SInvalidVarByteArray 65183 +#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65184 +#define uRORes_err_TooManySessions 65185 +#define uRORes_err_DOMElementIsNIL 65186 +#define uRORes_err_CannotLoadXMLDocument 65187 +#define uRORes_err_ErrorCreatingMsXmlDoc 65188 +#define uRORes_err_NoXMLParsersAvailable 65189 +#define uRORes_err_IDispatchMarshalingNotSupported 65190 +#define uRORes_err_UnsupportedVariantType 65191 +#define uRORes_err_VariantIsNotArray 65192 +#define uRORes_err_InvalidVarArrayDimCount 65193 +#define uRORes_err_CannotFindParameter 65194 +#define uRORes_err_MessageNotAssigned 65195 +#define ComConst_SOleError 65196 +#define ComConst_SNoMethod 65197 +#define ComConst_SVarNotObject 65198 +#define ComConst_STooManyParams 65199 +#define uRORes_err_ClassFactoryNotFound 65200 +#define uRORes_err_IROMessageNotSupported 65201 +#define uRORes_err_ClassAlreadyRegistered 65202 +#define uRORes_err_UnknownClass 65203 +#define uRORes_err_UnknownProxyInterface 65204 +#define uRORes_err_DispatcherAlreadyAssigned 65205 +#define uRORes_err_CannotFindMessageDispatcher 65206 +#define uRORes_err_ServerOnlySupportsOneDispatcher 65207 +#define uRORes_err_UnhandledException 65208 +#define uRORes_err_ChannelBusy 65209 +#define uRORes_err_ArrayIndexOutOfBounds 65210 +#define uRORes_err_InvalidHeader 65211 +#define uRORes_err_InvalidHeaderEncrypted 65212 +#define uRORes_err_UnknownClassInStream 65213 +#define uRORes_err_UnexpectedClassInStream 65214 +#define uRORes_err_SessionNotFound 65215 +#define uRORes_err_RodlNoOperationsDefined 65216 +#define uRORes_err_RodlUsedFileDoesNotExist 65217 +#define uRORes_err_RodlInvalidDataType 65218 +#define uRORes_err_RodlStructCannotBeNested 65219 +#define uRORes_err_RodlInvalidAncestorType 65220 +#define uRORes_str_ExceptionOnServer 65221 +#define uRORes_str_ExceptionReraisedFromServer 65222 +#define uRORes_err_AssignError 65223 +#define uRORes_err_InvalidRequestStream 65224 +#define uRORes_err_NILMessage 65225 +#define uRORes_err_UnspecifiedInterface 65226 +#define uRORes_err_UnspecifiedMessage 65227 +#define uRORes_err_UnknownMethod 65228 +#define uRORes_err_ClassFactoryDidNotReturnInstance 65229 +#define uRORes_err_ParameterNotFound 65230 +#define uRORes_err_TypeNotSupported 65231 +#define uRODECConst_sFMT_XX 65232 +#define uRODECConst_sInvalidKeySize 65233 +#define uRODECConst_sNotInitialized 65234 +#define uRORes_err_InvalidIndex 65235 +#define uRORes_err_InvalidType 65236 +#define uRORes_err_InvalidLibrary 65237 +#define uRORes_err_InvalidStream 65238 +#define uRORes_err_InvalidTargetEntity 65239 +#define uRORes_err_InvalidParamFlag 65240 +#define uRORes_err_InvalidStringLength 65241 +#define uRORes_str_InvalidClassTypeInStream 65242 +#define uRORes_err_UnexpectedEndOfStream 65243 +#define uRORes_err_RodlDuplicateName 65244 +#define uRORes_err_RodlNoDataTypeSpecified 65245 +#define uRORes_err_RodlNoEnumValues 65246 +#define uRORes_err_RodlNoStructElementsDefined 65247 +#define Consts_SANSIEncoding 65248 +#define Consts_SASCIIEncoding 65249 +#define Consts_SUnicodeEncoding 65250 +#define Consts_SBigEndianEncoding 65251 +#define Consts_SUTF8Encoding 65252 +#define Consts_SUTF7Encoding 65253 +#define Consts_SWindowsVistaRequired 65254 +#define uRODECConst_sProtectionCircular 65255 +#define uRODECConst_sStringFormatExists 65256 +#define uRODECConst_sInvalidStringFormat 65257 +#define uRODECConst_sInvalidFormatString 65258 +#define uRODECConst_sFMT_COPY 65259 +#define uRODECConst_sFMT_HEX 65260 +#define uRODECConst_sFMT_HEXL 65261 +#define uRODECConst_sFMT_MIME64 65262 +#define uRODECConst_sFMT_UU 65263 +#define Consts_SInvalidMemoSize 65264 +#define Consts_SInvalidPrinterOp 65265 +#define Consts_SNoDefaultPrinter 65266 +#define Consts_SDuplicateMenus 65267 +#define Consts_SPictureLabel 65268 +#define Consts_SPictureDesc 65269 +#define Consts_SPreviewLabel 65270 +#define Consts_SDockedCtlNeedsName 65271 +#define Consts_SDockTreeRemoveError 65272 +#define Consts_SDockZoneNotFound 65273 +#define Consts_SDockZoneHasNoCtl 65274 +#define Consts_SDockZoneVersionConflict 65275 +#define Consts_SMultiSelectRequired 65276 +#define Consts_SSeparator 65277 +#define Consts_SErrorSettingCount 65278 +#define Consts_SListBoxMustBeVirtual 65279 +#define Consts_SmkcCtrl 65280 +#define Consts_SmkcAlt 65281 +#define Consts_srNone 65282 +#define Consts_SOutOfRange 65283 +#define Consts_sAllFilter 65284 +#define Consts_SInsertLineError 65285 +#define Consts_SConfirmCreateDir 65286 +#define Consts_SSelectDirCap 65287 +#define Consts_SDirNameCap 65288 +#define Consts_SDrivesCap 65289 +#define Consts_SDirsCap 65290 +#define Consts_SFilesCap 65291 +#define Consts_SNetworkCap 65292 +#define Consts_SInvalidClipFmt 65293 +#define Consts_SIconToClipboard 65294 +#define Consts_SCannotOpenClipboard 65295 +#define Consts_SmkcBkSp 65296 +#define Consts_SmkcTab 65297 +#define Consts_SmkcEsc 65298 +#define Consts_SmkcEnter 65299 +#define Consts_SmkcSpace 65300 +#define Consts_SmkcPgUp 65301 +#define Consts_SmkcPgDn 65302 +#define Consts_SmkcEnd 65303 +#define Consts_SmkcHome 65304 +#define Consts_SmkcLeft 65305 +#define Consts_SmkcUp 65306 +#define Consts_SmkcRight 65307 +#define Consts_SmkcDown 65308 +#define Consts_SmkcIns 65309 +#define Consts_SmkcDel 65310 +#define Consts_SmkcShift 65311 +#define Consts_SMaskEditErr 65312 +#define Consts_SMsgDlgWarning 65313 +#define Consts_SMsgDlgError 65314 +#define Consts_SMsgDlgInformation 65315 +#define Consts_SMsgDlgConfirm 65316 +#define Consts_SMsgDlgYes 65317 +#define Consts_SMsgDlgNo 65318 +#define Consts_SMsgDlgOK 65319 +#define Consts_SMsgDlgCancel 65320 +#define Consts_SMsgDlgHelp 65321 +#define Consts_SMsgDlgAbort 65322 +#define Consts_SMsgDlgRetry 65323 +#define Consts_SMsgDlgIgnore 65324 +#define Consts_SMsgDlgAll 65325 +#define Consts_SMsgDlgNoToAll 65326 +#define Consts_SMsgDlgYesToAll 65327 +#define Consts_SOKButton 65328 +#define Consts_SCancelButton 65329 +#define Consts_SYesButton 65330 +#define Consts_SNoButton 65331 +#define Consts_SHelpButton 65332 +#define Consts_SCloseButton 65333 +#define Consts_SIgnoreButton 65334 +#define Consts_SRetryButton 65335 +#define Consts_SAbortButton 65336 +#define Consts_SAllButton 65337 +#define Consts_SCannotDragForm 65338 +#define Consts_SVMetafiles 65339 +#define Consts_SVEnhMetafiles 65340 +#define Consts_SVIcons 65341 +#define Consts_SVBitmaps 65342 +#define Consts_SMaskErr 65343 +#define Consts_SMDIChildNotVisible 65344 +#define Consts_SVisibleChanged 65345 +#define Consts_SCannotShowModal 65346 +#define Consts_SScrollBarRange 65347 +#define Consts_SPropertyOutOfRange 65348 +#define Consts_SMenuIndexError 65349 +#define Consts_SMenuReinserted 65350 +#define Consts_SMenuNotFound 65351 +#define Consts_SNoTimers 65352 +#define Consts_SNotPrinting 65353 +#define Consts_SPrinting 65354 +#define Consts_SInvalidPrinter 65355 +#define Consts_SDeviceOnPort 65356 +#define Consts_SGroupIndexTooLow 65357 +#define Consts_SNoMDIForm 65358 +#define Consts_SControlParentSetToSelf 65359 +#define Consts_SChangeIconSize 65360 +#define Consts_SUnknownExtension 65361 +#define Consts_SUnknownClipboardFormat 65362 +#define Consts_SOutOfResources 65363 +#define Consts_SNoCanvasHandle 65364 +#define Consts_SInvalidImageSize 65365 +#define Consts_SInvalidImageList 65366 +#define Consts_SReplaceImage 65367 +#define Consts_SImageIndexError 65368 +#define Consts_SImageReadFail 65369 +#define Consts_SImageWriteFail 65370 +#define Consts_SWindowDCError 65371 +#define Consts_SWindowClass 65372 +#define Consts_SCannotFocus 65373 +#define Consts_SParentRequired 65374 +#define Consts_SParentGivenNotAParent 65375 +#define RTLConsts_SUnknownGroup 65376 +#define RTLConsts_SUnknownProperty 65377 +#define RTLConsts_SWriteError 65378 +#define RTLConsts_SThreadCreateError 65379 +#define RTLConsts_SThreadError 65380 +#define HelpIntfs_hNoTableOfContents 65381 +#define HelpIntfs_hNothingFound 65382 +#define HelpIntfs_hNoContext 65383 +#define HelpIntfs_hNoContextFound 65384 +#define HelpIntfs_hNoTopics 65385 +#define Consts_SInvalidBitmap 65386 +#define Consts_SInvalidIcon 65387 +#define Consts_SInvalidMetafile 65388 +#define Consts_SInvalidPixelFormat 65389 +#define Consts_SInvalidImage 65390 +#define Consts_SScanLine 65391 +#define RTLConsts_SInvalidPropertyType 65392 +#define RTLConsts_SInvalidPropertyValue 65393 +#define RTLConsts_SInvalidRegType 65394 +#define RTLConsts_SListCapacityError 65395 +#define RTLConsts_SListCountError 65396 +#define RTLConsts_SListIndexError 65397 +#define RTLConsts_SMemoryStreamError 65398 +#define RTLConsts_SPropertyException 65399 +#define RTLConsts_SReadError 65400 +#define RTLConsts_SReadOnlyProperty 65401 +#define RTLConsts_SRegCreateFailed 65402 +#define RTLConsts_SRegGetDataFailed 65403 +#define RTLConsts_SRegSetDataFailed 65404 +#define RTLConsts_SResNotFound 65405 +#define RTLConsts_SSeekNotImplemented 65406 +#define RTLConsts_SSortedListError 65407 +#define RTLConsts_SCantWriteResourceStreamError 65408 +#define RTLConsts_SCheckSynchronizeError 65409 +#define RTLConsts_SClassNotFound 65410 +#define RTLConsts_SDuplicateClass 65411 +#define RTLConsts_SDuplicateItem 65412 +#define RTLConsts_SDuplicateName 65413 +#define RTLConsts_SDuplicateString 65414 +#define RTLConsts_SFCreateErrorEx 65415 +#define RTLConsts_SFOpenErrorEx 65416 +#define RTLConsts_SIniFileWriteError 65417 +#define RTLConsts_SInvalidFileName 65418 +#define RTLConsts_SInvalidImage 65419 +#define RTLConsts_SInvalidName 65420 +#define RTLConsts_SInvalidProperty 65421 +#define RTLConsts_SInvalidPropertyElement 65422 +#define RTLConsts_SInvalidPropertyPath 65423 +#define SysConst_SShortDayNameTue 65424 +#define SysConst_SShortDayNameWed 65425 +#define SysConst_SShortDayNameThu 65426 +#define SysConst_SShortDayNameFri 65427 +#define SysConst_SShortDayNameSat 65428 +#define SysConst_SLongDayNameSun 65429 +#define SysConst_SLongDayNameMon 65430 +#define SysConst_SLongDayNameTue 65431 +#define SysConst_SLongDayNameWed 65432 +#define SysConst_SLongDayNameThu 65433 +#define SysConst_SLongDayNameFri 65434 +#define SysConst_SLongDayNameSat 65435 +#define SysConst_SCannotCreateDir 65436 +#define RTLConsts_SAncestorNotFound 65437 +#define RTLConsts_SAssignError 65438 +#define RTLConsts_SBitsIndexError 65439 +#define SysConst_SShortMonthNameNov 65440 +#define SysConst_SShortMonthNameDec 65441 +#define SysConst_SLongMonthNameJan 65442 +#define SysConst_SLongMonthNameFeb 65443 +#define SysConst_SLongMonthNameMar 65444 +#define SysConst_SLongMonthNameApr 65445 +#define SysConst_SLongMonthNameMay 65446 +#define SysConst_SLongMonthNameJun 65447 +#define SysConst_SLongMonthNameJul 65448 +#define SysConst_SLongMonthNameAug 65449 +#define SysConst_SLongMonthNameSep 65450 +#define SysConst_SLongMonthNameOct 65451 +#define SysConst_SLongMonthNameNov 65452 +#define SysConst_SLongMonthNameDec 65453 +#define SysConst_SShortDayNameSun 65454 +#define SysConst_SShortDayNameMon 65455 +#define SysConst_SAssertError 65456 +#define SysConst_SAbstractError 65457 +#define SysConst_SModuleAccessViolation 65458 +#define SysConst_SOSError 65459 +#define SysConst_SUnkOSError 65460 +#define SysConst_SNL 65461 +#define SysConst_SShortMonthNameJan 65462 +#define SysConst_SShortMonthNameFeb 65463 +#define SysConst_SShortMonthNameMar 65464 +#define SysConst_SShortMonthNameApr 65465 +#define SysConst_SShortMonthNameMay 65466 +#define SysConst_SShortMonthNameJun 65467 +#define SysConst_SShortMonthNameJul 65468 +#define SysConst_SShortMonthNameAug 65469 +#define SysConst_SShortMonthNameSep 65470 +#define SysConst_SShortMonthNameOct 65471 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65472 +#define SysConst_SVarTypeOutOfRangeWithPrefix 65473 +#define SysConst_SVarTypeAlreadyUsedWithPrefix 65474 +#define SysConst_SVarTypeNotUsableWithPrefix 65475 +#define SysConst_SVarTypeTooManyCustom 65476 +#define SysConst_SVarTypeCouldNotConvert 65477 +#define SysConst_SVarTypeConvertOverflow 65478 +#define SysConst_SVarOverflow 65479 +#define SysConst_SVarInvalid 65480 +#define SysConst_SVarBadType 65481 +#define SysConst_SVarNotImplemented 65482 +#define SysConst_SVarUnexpected 65483 +#define SysConst_SExternalException 65484 +#define SysConst_SAssertionFailed 65485 +#define SysConst_SIntfCastError 65486 +#define SysConst_SSafecallException 65487 +#define SysConst_SOperationAborted 65488 +#define SysConst_SException 65489 +#define SysConst_SExceptTitle 65490 +#define SysConst_SInvalidFormat 65491 +#define SysConst_SArgumentMissing 65492 +#define SysConst_SDispatchError 65493 +#define SysConst_SReadAccess 65494 +#define SysConst_SWriteAccess 65495 +#define SysConst_SFormatTooLong 65496 +#define SysConst_SVarArrayCreate 65497 +#define SysConst_SVarArrayBounds 65498 +#define SysConst_SVarArrayLocked 65499 +#define SysConst_SVarArrayWithHResult 65500 +#define SysConst_SInvalidVarCast 65501 +#define SysConst_SInvalidVarOp 65502 +#define SysConst_SInvalidVarNullOp 65503 +#define SysConst_SDiskFull 65504 +#define SysConst_SInvalidInput 65505 +#define SysConst_SDivByZero 65506 +#define SysConst_SRangeError 65507 +#define SysConst_SIntOverflow 65508 +#define SysConst_SInvalidOp 65509 +#define SysConst_SZeroDivide 65510 +#define SysConst_SOverflow 65511 +#define SysConst_SUnderflow 65512 +#define SysConst_SInvalidPointer 65513 +#define SysConst_SInvalidCast 65514 +#define SysConst_SAccessViolationArg3 65515 +#define SysConst_SAccessViolationNoArg 65516 +#define SysConst_SStackOverflow 65517 +#define SysConst_SControlC 65518 +#define SysConst_SPrivilege 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SInvalidFloat 65521 +#define SysConst_SInvalidDate 65522 +#define SysConst_SInvalidTime 65523 +#define SysConst_SInvalidDateTime 65524 +#define SysConst_SInvalidTimeStamp 65525 +#define SysConst_SInvalidGUID 65526 +#define SysConst_STimeEncodeError 65527 +#define SysConst_SDateEncodeError 65528 +#define SysConst_SOutOfMemory 65529 +#define SysConst_SInOutError 65530 +#define SysConst_SFileNotFound 65531 +#define SysConst_SInvalidFilename 65532 +#define SysConst_STooManyOpenFiles 65533 +#define SysConst_SAccessDenied 65534 +#define SysConst_SEndOfFile 65535 +STRINGTABLE +BEGIN + cxGridStrs_scxGridCustomizationFormColumnsPageCaption, "Columns" + cxGridStrs_scxGridGroupByBoxCaption, "Drag a column header here to group by that column" + cxGridStrs_scxGridFilterCustomizeButtonCaption, "Customize..." + cxGridStrs_scxGridColumnsQuickCustomizationHint, "Click here to select visible columns" + cxPCConsts_scxPCNoBaseImages, "BaseImages is not assigned" + cxPCConsts_scxPCNoRegisteredStyles, "There are no styles registered" + cxPCConsts_scxPCPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d" + cxPCConsts_scxPCPainterClassError, "PCPainterClass is nil" + cxPCConsts_scxPCTabCountEqualsZero, "Tabs.Count = 0" + cxPCConsts_scxPCTabIndexError, "Tab's index (%d) out of bounds" + cxPCConsts_scxPCTabVisibleIndexOutsOfBounds, "TabVisibleIndex (%d) must be between 0 and %d" + cxPCConsts_scxPCVisibleTabListEmpty, "There are no visible tabs" + cxPCConsts_scxPCAllowRotateError, "%s style does not support rotation of tabs" + cxGridStrs_scxGridDeletingConfirmationCaption, "Confirm" + cxGridStrs_scxGridDeletingFocusedConfirmationText, "Delete record?" + cxGridStrs_scxGridDeletingSelectedConfirmationText, "Delete all selected records?" + cxGridStrs_scxGridNoDataInfoText, "" + cxGridStrs_scxGridNewItemRowInfoText, "Click here to add a new row" + cxGridStrs_scxGridFilterIsEmpty, "" + cxGridStrs_scxGridCustomizationFormCaption, "Customization" + MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" + MidConst_SCannotCreateDataSet, "No fields defined. Cannot create dataset" + MidConst_SNoConnectToBroker, "Connection not allowed to TConnectionBroker" + MidConst_SNoParentConnection, "ParentConnection is not assigned" + MidConst_SInvalidOptParamType, "Value cannot be stored in an optional parameter" + MidConst_SConstraintFailed, "Record or field constraint failed." + MidConst_SField, "Field" + MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\"" + MidConst_SFieldConstFail, "Preparation of field constraint failed with error \"%s\"" + MidConst_SDefExprFail, "Preparation of default expression failed with error \"%s\"" + MidConst_SNoEditsAllowed, "Modifications are not allowed" + MidConst_SNoDeletesAllowed, "Deletes are not allowed" + MidConst_SNoInsertsAllowed, "Inserts are not allowed" + MidConst_SConnectionMissing, "Requires Connection before opening" + MidConst_SNoCircularConnection, "Circular reference to Connection not allowed" + cxPCConsts_scxPCImageListIndexError, "Index (%d) must be between 0 and %d" + cxFilterControlStrs_cxSFilterDialogRows, "Show rows where:" + cxFilterControlStrs_cxSFilterControlDialogCaption, "Filter builder" + cxFilterControlStrs_cxSFilterControlDialogNewFile, "untitled.flt" + cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption, "Open an existing filter" + cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption, "Save the active filter to file" + cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption, "&Save As..." + cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption, "&Open..." + cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption, "&Apply" + cxFilterControlStrs_cxSFilterControlDialogActionOkCaption, "OK" + cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption, "Cancel" + cxFilterControlStrs_cxSFilterControlDialogFileExt, "flt" + cxFilterControlStrs_cxSFilterControlDialogFileFilter, "Filters (*.flt)|*.flt" + MidConst_SNoDataProvider, "Missing data provider or data packet" + MidConst_SInvalidDataPacket, "Invalid data packet" + MidConst_SRefreshError, "Must apply updates before refreshing data" + MidConst_SNoCircularReference, "Circular provider references not allowed" + cxFilterControlStrs_cxSFilterAddCondition, "Add &Condition" + cxFilterControlStrs_cxSFilterAddGroup, "Add &Group" + cxFilterControlStrs_cxSFilterRemoveRow, "&Remove Row" + cxFilterControlStrs_cxSFilterClearAll, "Clear &All" + cxFilterControlStrs_cxSFilterFooterAddCondition, "press the button to add a new condition" + cxFilterControlStrs_cxSFilterGroupCaption, "applies to the following conditions" + cxFilterControlStrs_cxSFilterRootGroupCaption, "" + cxFilterControlStrs_cxSFilterControlNullString, "" + cxFilterControlStrs_cxSFilterErrorBuilding, "Can't build filter from source" + cxFilterControlStrs_cxSFilterDialogCaption, "Custom Filter" + cxFilterControlStrs_cxSFilterDialogInvalidValue, "Invalid value" + cxFilterControlStrs_cxSFilterDialogUse, "Use" + cxFilterControlStrs_cxSFilterDialogSingleCharacter, "to represent any single character" + cxFilterControlStrs_cxSFilterDialogCharactersSeries, "to represent any series of characters" + cxFilterControlStrs_cxSFilterDialogOperationAnd, "AND" + cxFilterControlStrs_cxSFilterDialogOperationOr, "OR" + cxEditConsts_scxRegExprHexNumberExpected0, "Hexadecimal number expected" + cxEditConsts_scxRegExprHexNumberExpected, "Hexadecimal number expected but '%s' found" + cxEditConsts_scxRegExprMissing, "Missing '%s'" + cxEditConsts_scxRegExprUnnecessary, "Unnecessary '%s'" + cxEditConsts_scxRegExprIncorrectSpace, "The space character is not allowed after '\\'" + cxEditConsts_scxRegExprNotCompiled, "Regular expression is not compiled" + cxEditConsts_scxRegExprIncorrectParameterQuantifier, "Incorrect parameter quantifier" + cxEditConsts_scxRegExprCantUseParameterQuantifier, "The parameter quantifier cannot be applied here" + cxEditConsts_scxMaskEditRegExprError, "Regular expression errors:" + cxEditConsts_scxMaskEditInvalidEditValue, "The edit value is invalid" + cxEditConsts_cxSSpinEditInvalidNumericValue, "Invalid numeric value" + cxFilterControlStrs_cxSFilterBoolOperatorAnd, "AND" + cxFilterControlStrs_cxSFilterBoolOperatorOr, "OR" + cxFilterControlStrs_cxSFilterBoolOperatorNotAnd, "NOT AND" + cxFilterControlStrs_cxSFilterBoolOperatorNotOr, "NOT OR" + cxFilterControlStrs_cxSFilterRootButtonCaption, "Filter" + cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor" + cxEditConsts_scxSEditRepositoryTimeItem, "TimeEdit|Represents an editor displaying time values" + cxEditConsts_scxRegExprLine, "Line" + cxEditConsts_scxRegExprChar, "Char" + cxEditConsts_scxRegExprNotAssignedSourceStream, "The source stream is not assigned" + cxEditConsts_scxRegExprEmptySourceStream, "The source stream is empty" + cxEditConsts_scxRegExprCantUsePlusQuantifier, "The '+' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantUseStarQuantifier, "The '*' quantifier cannot be applied here" + cxEditConsts_scxRegExprCantCreateEmptyAlt, "The alternative should not be empty" + cxEditConsts_scxRegExprCantCreateEmptyBlock, "The block should not be empty" + cxEditConsts_scxRegExprIllegalSymbol, "Illegal '%s'" + cxEditConsts_scxRegExprIllegalQuantifier, "Illegal quantifier '%s'" + cxEditConsts_scxRegExprIllegalIntegerValue, "Illegal integer value" + cxEditConsts_scxRegExprTooBigReferenceNumber, "Too big reference number" + cxEditConsts_scxRegExprCantCreateEmptyEnum, "Can't create empty enumeration" + cxEditConsts_scxRegExprSubrangeOrder, "The starting character of the subrange must be less than the finishing one" + cxEditConsts_scxSEditRepositoryBlobItem, "BlobEdit|Represents the BLOB editor" + cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons" + cxEditConsts_scxSEditRepositoryCalcItem, "CalcEdit|Represents an edit control with a dropdown calculator window" + cxEditConsts_scxSEditRepositoryCheckBoxItem, "CheckBox|Represents a check box control that allows selecting an option" + cxEditConsts_scxSEditRepositoryComboBoxItem, "ComboBox|Represents the combo box editor" + cxEditConsts_scxSEditRepositoryCurrencyItem, "CurrencyEdit|Represents an editor enabling editing currency data" + cxEditConsts_scxSEditRepositoryDateItem, "DateEdit|Represents an edit control with a dropdown calendar" + cxEditConsts_scxSEditRepositoryHyperLinkItem, "HyperLink|Represents a text editor with hyperlink functionality" + cxEditConsts_scxSEditRepositoryImageComboBoxItem, "ImageComboBox|Represents an editor displaying the list of images and text strings within the dropdown window" + cxEditConsts_scxSEditRepositoryImageItem, "Image|Represents an image editor" + cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control." + cxEditConsts_scxSEditRepositoryMemoItem, "Memo|Represents an edit control that allows editing memo data" + cxEditConsts_scxSEditRepositoryMRUItem, "MRUEdit|Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window" + cxEditConsts_scxSEditRepositoryPopupItem, "PopupEdit|Represents an edit control with a dropdown list" + cxEditConsts_scxSEditRepositorySpinItem, "SpinEdit|Represents a spin editor" + cxEditConsts_scxSEditRepositoryRadioGroupItem, "RadioGroup|Represents a group of radio buttons" + cxEditConsts_scxSHyperLinkPrefix, "http://" + cxEditConsts_cxNavigatorHint_First, "First record" + cxEditConsts_cxNavigatorHint_Prior, "Prior record" + cxEditConsts_cxNavigatorHint_PriorPage, "Prior page" + cxEditConsts_cxNavigatorHint_Next, "Next record" + cxEditConsts_cxNavigatorHint_NextPage, "Next page" + cxEditConsts_cxNavigatorHint_Last, "Last record" + cxEditConsts_cxNavigatorHint_Insert, "Insert record" + cxEditConsts_cxNavigatorHint_Delete, "Delete record" + cxEditConsts_cxNavigatorHint_Edit, "Edit record" + cxEditConsts_cxNavigatorHint_Post, "Post edit" + cxEditConsts_cxNavigatorHint_Cancel, "Cancel edit" + cxEditConsts_cxNavigatorHint_Refresh, "Refresh data" + cxEditConsts_cxNavigatorHint_SaveBookmark, "Save Bookmark" + cxEditConsts_cxNavigatorHint_GotoBookmark, "Goto Bookmark" + cxEditConsts_cxNavigatorHint_Filter, "Filter data" + cxEditConsts_cxSDateTuesday, "Tuesday" + cxEditConsts_cxSDateWednesday, "Wednesday" + cxEditConsts_cxSDateThursday, "Thursday" + cxEditConsts_cxSDateFriday, "Friday" + cxEditConsts_cxSDateSaturday, "Saturday" + cxEditConsts_cxSDateFirst, "first" + cxEditConsts_cxSDateSecond, "second" + cxEditConsts_cxSDateThird, "third" + cxEditConsts_cxSDateFourth, "fourth" + cxEditConsts_cxSDateFifth, "fifth" + cxEditConsts_cxSDateSixth, "sixth" + cxEditConsts_cxSDateSeventh, "seventh" + cxEditConsts_cxSDateBOM, "bom" + cxEditConsts_cxSDateEOM, "eom" + cxEditConsts_cxSDateNow, "now" + cxEditConsts_scxSCalcError, "Error" + cxEditConsts_cxSMenuItemCaptionCut, "Cu&t" + cxEditConsts_cxSMenuItemCaptionCopy, "&Copy" + cxEditConsts_cxSMenuItemCaptionPaste, "&Paste" + cxEditConsts_cxSMenuItemCaptionDelete, "&Delete" + cxEditConsts_cxSMenuItemCaptionLoad, "&Load..." + cxEditConsts_cxSMenuItemCaptionSave, "Save &As..." + cxEditConsts_cxSDatePopupClear, "Clear" + cxEditConsts_cxSDatePopupNow, "Now" + cxEditConsts_cxSDatePopupOK, "OK" + cxEditConsts_cxSDatePopupToday, "Today" + cxEditConsts_cxSDateError, "Invalid Date" + cxEditConsts_cxSDateToday, "today" + cxEditConsts_cxSDateYesterday, "yesterday" + cxEditConsts_cxSDateTomorrow, "tomorrow" + cxEditConsts_cxSDateSunday, "Sunday" + cxEditConsts_cxSDateMonday, "Monday" + cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" + cxEditConsts_cxSEditPopupCircularReferencingError, "Circular referencing is not allowed" + cxEditConsts_cxSEditTimeConvertError, "Could not convert to time" + cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes" + cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds" + cxEditConsts_cxSEditCheckBoxChecked, "True" + cxEditConsts_cxSEditCheckBoxGrayed, "" + cxEditConsts_cxSEditCheckBoxUnchecked, "False" + cxEditConsts_cxSRadioGroupDefaultCaption, "" + cxEditConsts_cxSBlobButtonOK, "&OK" + cxEditConsts_cxSBlobButtonCancel, "&Cancel" + cxEditConsts_cxSBlobButtonClose, "&Close" + cxEditConsts_cxSBlobMemo, "(MEMO)" + cxEditConsts_cxSBlobMemoEmpty, "(memo)" + cxEditConsts_cxSBlobPicture, "(PICTURE)" + cxEditConsts_cxSBlobPictureEmpty, "(picture)" + cxFilterConsts_cxSFilterNotCaption, "not" + cxFilterConsts_cxSFilterBlankCaption, "blank" + cxFilterConsts_cxSFilterOperatorIsNull, "is blank" + cxFilterConsts_cxSFilterOperatorIsNotNull, "is not blank" + cxFilterConsts_cxSFilterOperatorBeginsWith, "begins with" + cxFilterConsts_cxSFilterOperatorDoesNotBeginWith, "does not begin with" + cxFilterConsts_cxSFilterOperatorEndsWith, "ends with" + cxFilterConsts_cxSFilterOperatorDoesNotEndWith, "does not end with" + cxFilterConsts_cxSFilterOperatorContains, "contains" + cxFilterConsts_cxSFilterOperatorDoesNotContain, "does not contain" + cxFilterConsts_cxSFilterBoxAllCaption, "(All)" + cxFilterConsts_cxSFilterBoxCustomCaption, "(Custom...)" + cxFilterConsts_cxSFilterBoxBlanksCaption, "(Blanks)" + cxFilterConsts_cxSFilterBoxNonBlanksCaption, "(NonBlanks)" + cxEditConsts_cxSEditDateConvertError, "Could not convert to date" + cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" + cxFilterConsts_cxSFilterOperatorLastMonth, "is last month" + cxFilterConsts_cxSFilterOperatorLastYear, "is last year" + cxFilterConsts_cxSFilterOperatorPast, "is past" + cxFilterConsts_cxSFilterOperatorThisWeek, "is this week" + cxFilterConsts_cxSFilterOperatorThisMonth, "is this month" + cxFilterConsts_cxSFilterOperatorThisYear, "is this year" + cxFilterConsts_cxSFilterOperatorNext7Days, "is next 7 days" + cxFilterConsts_cxSFilterOperatorNextWeek, "is next week" + cxFilterConsts_cxSFilterOperatorNext14Days, "is next 14 days" + cxFilterConsts_cxSFilterOperatorNextTwoWeeks, "is next two weeks" + cxFilterConsts_cxSFilterOperatorNext30Days, "is next 30 days" + cxFilterConsts_cxSFilterOperatorNextMonth, "is next month" + cxFilterConsts_cxSFilterOperatorNextYear, "is next year" + cxFilterConsts_cxSFilterOperatorFuture, "is future" + cxFilterConsts_cxSFilterAndCaption, "and" + cxFilterConsts_cxSFilterOrCaption, "or" + cxFilterConsts_cxSFilterOperatorGreater, "is greater than" + cxFilterConsts_cxSFilterOperatorGreaterEqual, "is greater than or equal to" + cxFilterConsts_cxSFilterOperatorLike, "like" + cxFilterConsts_cxSFilterOperatorNotLike, "not like" + cxFilterConsts_cxSFilterOperatorBetween, "between" + cxFilterConsts_cxSFilterOperatorNotBetween, "not between" + cxFilterConsts_cxSFilterOperatorInList, "in" + cxFilterConsts_cxSFilterOperatorNotInList, "not in" + cxFilterConsts_cxSFilterOperatorYesterday, "is yesterday" + cxFilterConsts_cxSFilterOperatorToday, "is today" + cxFilterConsts_cxSFilterOperatorTomorrow, "is tomorrow" + cxFilterConsts_cxSFilterOperatorLast7Days, "is last 7 days" + cxFilterConsts_cxSFilterOperatorLastWeek, "is last week" + cxFilterConsts_cxSFilterOperatorLast14Days, "is last 14 days" + cxFilterConsts_cxSFilterOperatorLastTwoWeeks, "is last two weeks" + cxFilterConsts_cxSFilterOperatorLast30Days, "is last 30 days" + pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed." + pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid." + pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again." + pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." + cxDataConsts_cxSDataReadError, "Stream read error" + cxDataConsts_cxSDataWriteError, "Stream write error" + cxDataConsts_cxSDataItemExistError, "Item already exists" + cxDataConsts_cxSDataRecordIndexError, "RecordIndex out of range" + cxDataConsts_cxSDataItemIndexError, "ItemIndex out of range" + cxDataConsts_cxSDataProviderModeError, "This operation is not supported in provider mode" + cxDataConsts_cxSDataInvalidStreamFormat, "Invalid stream format" + cxDataConsts_cxSDataRowIndexError, "RowIndex out of range" + cxFilterConsts_cxSFilterOperatorEqual, "equals" + cxFilterConsts_cxSFilterOperatorNotEqual, "does not equal" + cxFilterConsts_cxSFilterOperatorLess, "is less than" + cxFilterConsts_cxSFilterOperatorLessEqual, "is less than or equal to" + pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)" + pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" + pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts." + pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " + pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." + pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again." + pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" + pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length." + pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." + pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." + pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." + pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." + pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." + pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." + pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data." + pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap." + IBSQLMonitor_StrStartTransaction, ": [Start transaction]" + IBSQLMonitor_StrApplication, "[Application: " + ADOConst_SMissingConnection, "Missing Connection or ConnectionString" + ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables" + ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls" + ADOConst_SMissingCommandText, "Missing %s property" + ADOConst_SNoResultSet, "CommandText does not return a result set" + ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed" + ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors" + ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s" + ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions" + ADOConst_SCantRequery, "Cannot perform a requery after connection has changed" + ADOConst_SNoFilterOptions, "FilterOptions are not supported" + ADOConst_SRecordsetNotOpen, "Recordset is not open" + ADOConst_sNameAttr, "Name" + ADOConst_sValueAttr, "Value" + IBSQLMonitor_StrError, "[Error] " + IBSQLMonitor_StrAttach, ": [Attach]" + IBSQLMonitor_StrDetach, ": [Detach]" + IBSQLMonitor_StrQuery, ": [Query]" + IBSQLMonitor_StrStart, ": [Start]" + IBSQLMonitor_StrExecute, ": [Execute] " + IBSQLMonitor_StrNULL, "" + IBSQLMonitor_StrBLOB, "" + IBSQLMonitor_StrFetch, ": [Fetch] " + IBSQLMonitor_StrPrepare, ": [Prepare] " + IBSQLMonitor_StrPlan, " Plan: " + IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large" + IBSQLMonitor_StrCommitHardComm, ": [Commit (Hard commit)]" + IBSQLMonitor_StrCommitRetaining, ": [Commit retaining (Soft commit)]" + IBSQLMonitor_StrRollback, ": [Rollback]" + IBSQLMonitor_StrRollbackRetainin, ": [Rollback retaining (Soft rollback)]" + IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value" + IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown" + IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown" + IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan" + IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data" + IBXConst_SEventAlreadyRegistered, "Events already registered" + IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d" + IBXConst_SNoTimers, "Not enough timers available" + IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality" + IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file." + IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality" + IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality" + IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality" + IBSQLMonitor_StrConnect, ": [Connect]" + IBSQLMonitor_StrDisconnect, ": [Disconnect]" + IBSQLMonitor_StrMisc, "[Misc] " + IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present" + IBXConst_SCantPrintValue, "Cannot print value" + IBXConst_SEOFReached, "SEOFReached" + IBXConst_SEOFInComment, "EOF in comment detected" + IBXConst_SEOFInString, "EOF in string detected" + IBXConst_SParamNameExpected, "Parameter name expected" + IBXConst_SSuccess, "Successful execution" + IBXConst_SDelphiException, "DelphiException %s" + IBXConst_SNoOptionsSet, "No Install Options selected" + IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set" + IBXConst_SNosourceDirectory, "SourceDirectory is not set" + IBXConst_SNoUninstallFile, "Uninstall File Name is not set" + IBXConst_SOptionNeedsClient, "%s component requires Client to function properly" + IBXConst_SOptionNeedsServer, "%s component requires Server to function properly" + IBXConst_SInvalidOption, "Invalid option specified" + IBXConst_SInvalidOnErrorResult, "Unexpected onError return value" + IBXConst_SInvalidEvent, "Invalid Event" + IBXConst_SMaximumEvents, "Exceded Maximum Event limits" + IBXConst_SNoEventsRegistered, "No Events Registered" + IBXConst_SInvalidQueueing, "Invalid Queueing" + IBXConst_SInvalidRegistration, "Invalid Registration" + IBXConst_SInvalidBatchMove, "Invalid Batch Move" + IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid" + IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported" + IBXConst_SSPBConstantUnknown, "SPB Constant Unknown" + IBXConst_SServiceActive, "Cannot perform operation -- service is not attached" + IBXConst_SServiceInActive, "Cannot perform operation -- service is attached" + IBXConst_SServerNameMissing, "Server Name Missing" + IBXConst_SQueryParamsError, "Query Parameters missing or incorrect" + IBXConst_SStartParamsError, "start Parameters missing or incorrect" + IBXConst_SOutputParsingError, "Unexpected Output buffer value" + IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params" + IBXConst_SEmptySQLStatement, "Empty SQL Statement" + IBXConst_SIsASelectStatement, "use Open for a Select Statement" + IBXConst_SRequiredParamNotSet, "Required Param value not set" + IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned" + IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures" + IBXConst_SUpdateFailed, "Update Failed" + IBXConst_SNotCachedUpdates, "CachedUpdates not enabled" + IBXConst_SNotLiveRequest, "Request is not live - cannot modify" + IBXConst_SNoProvider, "No Provider" + IBXConst_SNoRecordsAffected, "No Records Affected" + IBXConst_SNoTableName, "No Table Name assigned" + IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically" + IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index" + IBXConst_STableNameMismatch, "Table Name Mismatch" + IBXConst_SIndexFieldMissing, "Index Field Missing" + IBXConst_SInvalidCancellation, "Cannot Cancel events while processing" + IBXConst_SCannotPost, "Cannot post. (No update/insert query)" + IBXConst_SCannotUpdate, "Cannot update. (No update query)" + IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)" + IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)" + IBXConst_SBufferNotSet, "Buffer not set" + IBXConst_SCircularReference, "Circular references not permitted" + IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s" + IBXConst_SUserAbort, "User abort" + IBXConst_SDataSetUniDirectional, "Data set is uni-directional" + IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)" + IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])" + IBXConst_SColumnListsDontMatch, "Column lists do not match" + IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)" + IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction" + IBXConst_SFieldUnsupportedType, "Unsupported Field Type" + IBXConst_SCircularDataLink, "Circular DataLink Reference" + IBXConst_SDatasetOpen, "Dataset open" + IBXConst_SDatasetClosed, "Dataset closed" + IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)" + IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)" + IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)" + IBXConst_SInvalidDataConversion, "Invalid data conversion" + IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)" + IBXConst_SBlobCannotBeRead, "Blob stream cannot be read" + IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written" + IBXConst_SEmptyQuery, "Empty query" + IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery" + IBXConst_SNoFieldAccess, "No access to field \"%s\"" + IBXConst_SFieldReadOnly, "Field \"%s\" is read-only" + IBXConst_SFieldNotFound, "Field \"%s\" not found" + IBXConst_SNotEditing, "Not in edit mode" + IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)" + IBXConst_SDatabaseNameMissing, "Database name is missing" + IBXConst_SNotInTransaction, "Transaction is not active" + IBXConst_SInTransaction, "Transaction is active" + IBXConst_STimeoutNegative, "Timeout values cannot be negative" + IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component" + IBXConst_SUpdateWrongDB, "Updating wrong database" + IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set" + IBXConst_SDatabaseNotAssigned, "Database not assigned" + IBXConst_STransactionNotAssigned, "Transaction not assigned" + IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range" + IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)" + IBXConst_SEOF, "End of file" + IBXConst_SBOF, "Beginning of file" + IBXConst_SInvalidStatementHandle, "Invalid statement handle" + IBXConst_SSQLOpen, "IBSQL Open" + IBXConst_SSQLClosed, "IBSQL Closed" + IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality" + IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality" + IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality" + IBXConst_SNotSupported, "Unsupported feature" + IBXConst_SNotPermitted, "Not permitted" + IBXConst_SFileAccessError, "Temporary file access error" + IBXConst_SConnectionTimeout, "Database connection timed out" + IBXConst_SCannotSetDatabase, "Cannot set database" + IBXConst_SCannotSetTransaction, "Cannot set transaction" + IBXConst_SOperationCancelled, "Operation cancelled at user's request" + IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported" + IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown" + IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported" + IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown" + IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open" + IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open" + uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s" + uDARes_err_InvalidDriverReference, "The driver in %s could not be loaded" + uDARes_err_CannotFindStatement, "Cannot find statement %s for connection %s" + uDARes_err_CannotFindDefaultItem, "Cannot find default %s" + uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled" + uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection" + uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" + uDARes_err_HETConnectionNotSupportedInV3, "HET Connections are not supported by te legacy v3 DARemoteService" + uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" + uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" + uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" + uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" + uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." + uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." + uDARes_err_DatasetNotAccessible, "Access to dataset %s has not been permitted." + IBXConst_SUnknownError, "Unknown error" + JvResources_RsHotLight, "Hot Light" + JvResources_RsMenuBar, "Menu Bar" + JvResources_RsMenuHighlight, "Menu Highlight" + uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time." + uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable" + uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered" + uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed" + uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned" + uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported" + uDARes_err_InvalidDataset, "Invalid or NIL dataset" + uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s" + uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded" + uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver" + uDARes_err_UnknownDriver, "Unknown driver %s" + uDARes_err_FieldIsNotBound, "Field is not bound" + uDARes_err_CannotFindField, "Cannot find field %s" + JvResources_RsClInactiveBorder, "Inactive window border" + JvResources_RsClAppWorkSpace, "Application workspace" + JvResources_RsClHighlight, "Selection background" + JvResources_RsClHighlightText, "Selection text" + JvResources_RsClBtnFace, "Button face" + JvResources_RsClBtnShadow, "Button shadow" + JvResources_RsClGrayText, "Dimmed text" + JvResources_RsClBtnText, "Button text" + JvResources_RsClInactiveCaptionText, "Inactive window title bar text" + JvResources_RsClBtnHighlight, "Button highlight" + JvResources_RsCl3DDkShadow, "Dark shadow 3D elements" + JvResources_RsCl3DLight, "Highlight 3D elements" + JvResources_RsClInfoText, "Tooltip text" + JvResources_RsClInfoBk, "Tooltip background" + JvResources_RsGradientActiveCaption, "Gradient Active Caption" + JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption" + JvResources_RsClLightYellow, "Light Yellow" + JvResources_RsClLightGreen, "Light Green" + JvResources_RsClLightTurquoise, "Light Turquoise" + JvResources_RsClPaleBlue, "Pale Blue" + JvResources_RsClLavender, "Lavender" + JvResources_RsClScrollBar, "Scrollbar" + JvResources_RsClBackground, "Desktop background" + JvResources_RsClActiveCaption, "Active window title bar" + JvResources_RsClInactiveCaption, "Inactive window title bar" + JvResources_RsClMenu, "Menu background" + JvResources_RsClWindow, "Window background" + JvResources_RsClWindowFrame, "Window frame" + JvResources_RsClMenuText, "Menu text" + JvResources_RsClWindowText, "Window text" + JvResources_RsClCaptionText, "Active window title bar text" + JvResources_RsClActiveBorder, "Active window border" + JvResources_RsClDarkYellow, "Dark Yellow" + JvResources_RsClBlueGray, "Blue Gray" + JvResources_RsClGray50, "Gray 50%" + JvResources_RsClLightOrange, "Light Orange" + JvResources_RsClSeaGreen, "Sea Green" + JvResources_RsClLightBlue, "Light Blue" + JvResources_RsClViolet, "Violet" + JvResources_RsClGray40, "Gray 40%" + JvResources_RsClPink, "Pink" + JvResources_RsClGold, "Gold" + JvResources_RsClBrightGreen, "Bright Green" + JvResources_RsClTurquoise, "Turquoise" + JvResources_RsClPlum, "Plum" + JvResources_RsClGray25, "Gray 25%" + JvResources_RsClRose, "Rose" + JvResources_RsClTan, "Tan" + JvResources_RsClFuchsia, "Fuchsia" + JvResources_RsClAqua, "Aqua" + JvResources_RsClWhite, "White" + JvResources_RsClMoneyGreen, "Money green" + JvResources_RsClSkyBlue, "Sky blue" + JvResources_RsClCream, "Cream" + JvResources_RsClMedGray, "Medium gray" + JvResources_RsClBrown, "Brown" + JvResources_RsClOliveGreen, "Olive Green" + JvResources_RsClDarkGreen, "Dark Green" + JvResources_RsClDarkTeal, "Dark Teal" + JvResources_RsClDarkBlue, "Dark Blue" + JvResources_RsClIndigo, "Indigo" + JvResources_RsClGray80, "Gray 80%" + JvResources_RsClDarkRed, "Dark Red" + JvResources_RsClOrange, "Orange" + JvResources_RsEGIFVersion, "Unknown GIF version" + JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented" + JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented" + JvResources_RsClBlack, "Black" + JvResources_RsClMaroon, "Maroon" + JvResources_RsClGreen, "Green" + JvResources_RsClOlive, "Olive green" + JvResources_RsClNavy, "Navy blue" + JvResources_RsClPurple, "Purple" + JvResources_RsClTeal, "Teal" + JvResources_RsClGray, "Gray" + JvResources_RsClSilver, "Silver" + JvResources_RsClRed, "Red" + JvResources_RsClLime, "Lime" + JvResources_RsClYellow, "Yellow" + JvResources_RsClBlue, "Blue" + JvResources_RsEUnableToCreateKey, "Unable to create key '%s'" + JvResources_RsEEnumeratingRegistry, "Error enumerating registry" + JvResources_RsEInvalidType, "Invalid type" + JvResources_RsEUnknownBaseType, "Unknown base type for given set" + JvResources_RsEInvalidPath, "Invalid path" + JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path" + JvResources_RsECircularReferenceOfStorages, "Circular reference of storages" + JvResources_RsEShellNotCompatible, "Shell not compatible with BrowseForFolder" + JvResources_RsGIFImage, "CompuServe GIF Image" + JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image" + JvResources_RsENoGIFData, "No GIF Data to write" + JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x" + JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2" + JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9" + JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt" + JvResources_RsEGIFEncodeError, "GIF image encoding error" + JclResources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr7F, "2nd-level cache: 512 KBytes, 2-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr82, "2nd-level cache: 256 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr83, "2nd-level cache: 512 KBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr84, "2nd-level cache: 1 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr85, "2nd-level cache: 2 MBytes, 8-way associative, 32 byte line size" + JclResources_RsIntelCacheDescr86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" + JclResources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" + JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching" + JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching" + JvResources_RsAniExtension, "ani" + JvResources_RsAniFilterName, "ANI Image" + JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties." + JclResources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" + JclResources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr5D, "Data TLB: 4 KByte and 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr67, "1st-level data cache: 16 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr71, "Trace cache: 16 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr72, "Trace cache: 32 K-Ops, 8-way set associative" + JclResources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size" + JclResources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + JclResources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr40, "No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rd-level cache" + JclResources_RsIntelCacheDescr41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" + JclResources_RsIntelCacheDescr50, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 64 Entries" + JclResources_RsIntelCacheDescr51, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 128 Entries" + JclResources_RsIntelCacheDescr52, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 256 Entries" + JclResources_RsIntelCacheDescr56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries" + JclResources_RsRTTIVarType, "Variant type: " + JclResources_RsDeclarationFormat, "// Declaration for '%s' not supported." + JclResources_RsIntelCacheDescr00, "Null descriptor" + JclResources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" + JclResources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" + JclResources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" + JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries" + JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0A, "1st level data cache: 8 KBytes, 2-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries" + JclResources_RsIntelCacheDescr0C, "1st level data cache: 16 KBytes, 4-way set associative, 32 byte line size" + JclResources_RsIntelCacheDescr22, "3rd level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + JclResources_RsRTTIMinValue, "Min value: " + JclResources_RsRTTIMaxValue, "Max value: " + JclResources_RsRTTINameList, "Names: " + JclResources_RsRTTIClassName, "Class name: " + JclResources_RsRTTIParent, "Parent: " + JclResources_RsRTTIPropCount, "Property count: " + JclResources_RsRTTIUnitName, "Unit name: " + JclResources_RsRTTIBasedOn, "Based on: " + JclResources_RsRTTIFloatType, "Float type: " + JclResources_RsRTTIMethodKind, "Method kind: " + JclResources_RsRTTIParamCount, "Parameter count: " + JclResources_RsRTTIReturnType, "Return type: " + JclResources_RsRTTIMaxLen, "Max length: " + JclResources_RsRTTIElSize, "Element size: " + JclResources_RsRTTIElType, "Element type: " + JclResources_RsRTTIElNeedCleanup, "Elements need clean up: " + JclResources_RsRTTITypeError, "???" + JclResources_RsRTTITypeInfoAt, "Type info: %p" + JclResources_RsRTTIPropRead, "read" + JclResources_RsRTTIPropWrite, "write" + JclResources_RsRTTIPropStored, "stored" + JclResources_RsRTTIField, "field" + JclResources_RsRTTIStaticMethod, "static method" + JclResources_RsRTTIVirtualMethod, "virtual method" + JclResources_RsRTTIIndex, "index" + JclResources_RsRTTIDefault, "default" + JclResources_RsRTTIName, "Name: " + JclResources_RsRTTIType, "Type: " + JclResources_RsRTTIFlags, "Flags: " + JclResources_RsRTTIGUID, "GUID: " + JclResources_RsRTTITypeKind, "Type kind: " + JclResources_RsRTTIOrdinalType, "Ordinal type: " + JclResources_RsHKCRShort, "HKCR" + JclResources_RsHKCUShort, "HKCU" + JclResources_RsHKLMShort, "HKLM" + JclResources_RsHKUSShort, "HKUS" + JclResources_RsHKPDShort, "HKPD" + JclResources_RsHKCCShort, "HKCC" + JclResources_RsHKDDShort, "HKDD" + JclResources_RsRTTIValueOutOfRange, "Value out of range (%s)." + JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'." + JclResources_RsRTTIVar, "var " + JclResources_RsRTTIConst, "const " + JclResources_RsRTTIArrayOf, "array of " + JclResources_RsRTTIOut, "out " + JclResources_RsRTTIOrdinal, "ordinal=" + JclResources_RsRTTITrue, "True" + JclResources_RsRTTIFalse, "False" + JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image" + JConsts_sJPEGError, "JPEG error #%d" + JConsts_sJPEGImageFile, "JPEG Image File" + JclResources_RsFileUtilsNoVersionInfo, "File contains no version information" + JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\\%s\" for read" + JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\\%s\" for write" + JclResources_RsUnableToAccessValue, "Unable to open key \"%s\\%s\" and access value \"%s\"" + JclResources_RsWrongDataType, "\"%s\\%s\\%s\" is of wrong kind or size" + JclResources_RsInconsistentPath, "\"%s\" does not match RootKey" + JclResources_RsHKCRLong, "HKEY_CLASSES_ROOT" + JclResources_RsHKCULong, "HKEY_CURRENT_USER" + JclResources_RsHKLMLong, "HKEY_LOCAL_MACHINE" + JclResources_RsHKUSLong, "HKEY_USERS" + JclResources_RsHKPDLong, "HKEY_PERFORMANCE_DATA" + JclResources_RsHKCCLong, "HKEY_CURRENT_CONFIG" + JclResources_RsHKDDLong, "HKEY_DYN_DATA" + IdResourceStringsCore_RSConnectTimeout, "Connect timed out." + IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" + IdResourceStringsCore_RSAlreadyConnected, "Already connected." + IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded" + IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded." + IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind." + IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy." + IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified." + IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid." + IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s" + IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler." + IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event." + IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active." + ComStrs_sInvalidIndex, "Invalid index" + ComStrs_sInsertError, "Unable to insert an item" + ComStrs_sUDAssociated, "%s is already associated with %s" + IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset." + IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable." + IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable." + IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused." + IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired." + IdResourceStringsCore_RSSocksServerCommandError, "Command not supported." + IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported." + IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed" + IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer." + IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer." + IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found" + IdResourceStringsCore_RSNotConnected, "Not Connected" + IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported." + IdResourceStringsCore_RSIdNoDataToRead, "No data to read." + IdResourceStringsCore_RSReadTimeout, "Read Timeout" + IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." + IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" + IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code" + IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written." + IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command." + IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." + IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." + IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." + IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version." + IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed." + IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." + IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." + IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error." + IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond." + IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method." + IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server." + IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure." + IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed" + IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable" + IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" + IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout" + IdResourceStringsProtocols_RSHTTPConflict, "Conflict" + IdResourceStringsProtocols_RSHTTPGone, "Gone" + IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required" + IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed" + IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long" + IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" + IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type" + IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error" + IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented" + IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway" + IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable" + IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout" + IdResourceStringsProtocols_RSHTTPOK, "OK" + IdResourceStringsProtocols_RSHTTPCreated, "Created" + IdResourceStringsProtocols_RSHTTPAccepted, "Accepted" + IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" + IdResourceStringsProtocols_RSHTTPNoContent, "No Content" + IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content" + IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content" + IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently" + IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily" + IdResourceStringsProtocols_RSHTTPSeeOther, "See Other" + IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified" + IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy" + IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request" + IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized" + IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden" + IdResourceStringsProtocols_RSHTTPNotFound, "Not Found" + IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected" + IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)" + IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." + IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." + IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" + IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." + IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable" + IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address" + IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported." + IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent." + IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big." + IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." + IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty" + IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty" + IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits" + IdResourceStringsProtocols_RSHTTPContinue, "Continue" + IdResourceStrings_RSStackENOBUFS, "No buffer space available." + IdResourceStrings_RSStackEISCONN, "Socket is already connected." + IdResourceStrings_RSStackENOTCONN, "Socket is not connected." + IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed." + IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice." + IdResourceStrings_RSStackETIMEDOUT, "Connection timed out." + IdResourceStrings_RSStackECONNREFUSED, "Connection refused." + IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links." + IdResourceStrings_RSStackENAMETOOLONG, "File name too long." + IdResourceStrings_RSStackEHOSTDOWN, "Host is down." + IdResourceStrings_RSStackEHOSTUNREACH, "No route to host." + IdResourceStrings_RSStackENOTEMPTY, "Directory not empty" + IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found." + IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined." + IdResourceStrings_RSStackAlreadyCreated, "Stack already created." + IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application." + IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required." + IdResourceStrings_RSStackEMSGSIZE, "Message too long." + IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket." + IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option." + IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported." + IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported." + IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket." + IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported." + IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family." + IdResourceStrings_RSStackEADDRINUSE, "Address already in use." + IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address." + IdResourceStrings_RSStackENETDOWN, "Network is down." + IdResourceStrings_RSStackENETUNREACH, "Network is unreachable." + IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset." + IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort." + IdResourceStrings_RSStackECONNRESET, "Connection reset by peer." + IdResourceStrings_RSStatusConnecting, "Connecting to %s." + IdResourceStrings_RSStatusConnected, "Connected." + IdResourceStrings_RSStatusDisconnecting, "Disconnecting." + IdResourceStrings_RSStatusDisconnected, "Disconnected." + IdResourceStrings_RSStatusText, "%s" + IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" + IdResourceStrings_RSStackEINTR, "Interrupted system call." + IdResourceStrings_RSStackEBADF, "Bad file number." + IdResourceStrings_RSStackEACCES, "Access denied." + IdResourceStrings_RSStackEFAULT, "Buffer fault." + IdResourceStrings_RSStackEINVAL, "Invalid argument." + IdResourceStrings_RSStackEMFILE, "Too many open files." + IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block." + IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress." + IdResourceStrings_RSStackEALREADY, "Operation already in progress." + IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket." + DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" + DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" + DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" + DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" + DBConsts_SUnassignedVar, "Unassigned variant value" + DBConsts_SRecordNotFound, "Record not found" + DBConsts_SBcdOverflow, "BCD overflow" + DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" + DBConsts_SInvalidFormatType, "Invalid format type for BCD" + DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" + DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" + IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." + IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s" + IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)" + IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." + IdResourceStrings_RSStatusResolving, "Resolving hostname %s." + DBConsts_SExprIncorrect, "Incorrectly formed filter expression" + DBConsts_SExprNothing, "nothing" + DBConsts_SExprTypeMis, "Type mismatch in expression" + DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" + DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" + DBConsts_SExprNotAgg, "Expression is not an aggregate expression" + DBConsts_SExprBadConst, "Constant is not correct type %s" + DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" + DBConsts_SExprEmptyInList, "IN predicate list may not be empty" + DBConsts_SInvalidKeywordUse, "Invalid use of keyword" + DBConsts_STextFalse, "False" + DBConsts_STextTrue, "True" + DBConsts_SParameterNotFound, "Parameter '%s' not found" + DBConsts_SInvalidVersion, "Unable to load bind parameters" + DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" + DBConsts_SAggActive, "Property may not be modified while aggregate is active" + DBConsts_SNotEditing, "Dataset not in edit or insert mode" + DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset" + DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset" + DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset" + DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s" + DBConsts_SExprTermination, "Filter expression incorrectly terminated" + DBConsts_SExprNameError, "Unterminated field name" + DBConsts_SExprStringError, "Unterminated string constant" + DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" + DBConsts_SExprNoLParen, "'(' expected but %s found" + DBConsts_SExprNoRParen, "')' expected but %s found" + DBConsts_SExprNoRParenOrComma, "')' or ',' expected but %s found" + DBConsts_SExprExpected, "Expression expected but %s found" + DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" + DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" + DBConsts_SExprRangeError, "Constant out of range" + DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range" + DBConsts_SFieldRequired, "Field '%s' must have a value" + DBConsts_SDataSetMissing, "Field '%s' has no dataset" + DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field" + DBConsts_SFieldReadOnly, "Field '%s' cannot be modified" + DBConsts_SFieldIndexError, "Field index out of range" + DBConsts_SNoFieldIndexes, "No index currently active" + DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" + DBConsts_SIndexFieldMissing, "Cannot access index field '%s'" + DBConsts_SNoIndexForFields, "No index for fields '%s'" + DBConsts_SIndexNotFound, "Index '%s' not found" + DBConsts_SCircularDataLink, "Circular datalinks are not allowed" + DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" + DBConsts_SDataSourceChange, "DataSource cannot be changed" + DBConsts_SNoNestedMasterSource, "Nested datasets cannot have a MasterSource" + DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" + DBConsts_SInvalidFieldSize, "Invalid field size" + DBConsts_SInvalidFieldKind, "Invalid FieldKind" + DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type" + DBConsts_SFieldNameMissing, "Field name missing" + DBConsts_SDuplicateFieldName, "Duplicate field name '%s'" + DBConsts_SFieldNotFound, "Field '%s' not found" + DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s" + DBConsts_SFieldValueError, "Invalid value for field '%s'" + DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g" + DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s" + DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'" + DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'" + DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'" + DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s" + DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d" + DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'" + uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader" + uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)" + uRORes_err_DOMElementIsNIL, "DOMElement is NIL" + uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d" + uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s" + uRORes_err_NoXMLParsersAvailable, "MSXML is not installed" + uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported." + uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\"" + uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d" + uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d" + uRORes_err_CannotFindParameter, "Cannot find parameter %s" + uRORes_err_MessageNotAssigned, "Message is NIL" + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found" + uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage" + uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered" + uRORes_err_UnknownClass, "Unknown class \"%s\"" + uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\"" + uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" + uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?" + uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher" + uRORes_err_UnhandledException, "Unhandled exception" + uRORes_err_ChannelBusy, "Channel is busy. Try again later." + uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)." + uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." + uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?" + uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream." + uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"." + uRORes_err_SessionNotFound, "Session %s could not be found" + uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements." + uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found." + uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"." + uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves." + uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"." + uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" + uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s" + uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"." + uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)" + uRORes_err_NILMessage, "Message is NIL" + uRORes_err_UnspecifiedInterface, "The message does not have an interface name" + uRORes_err_UnspecifiedMessage, "The message does not have a name" + uRORes_err_UnknownMethod, "Unknown method %s for interface %s" + uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\"" + uRORes_err_ParameterNotFound, "Parameter \"%s\" was not found" + uRORes_err_TypeNotSupported, "Type \"%s\" not supported" + uRODECConst_sFMT_XX, "XX Coding" + uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes" + uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first." + uRORes_err_InvalidIndex, "Invalid index %d" + uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" + uRORes_err_InvalidLibrary, "Invalid library" + uRORes_err_InvalidStream, "Invalid stream" + uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\"" + uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\"" + uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" + uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\"" + uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream." + uRORes_err_RodlDuplicateName, "Duplicate name." + uRORes_err_RodlNoDataTypeSpecified, "No data type specified." + uRORes_err_RodlNoEnumValues, "Enum does not contain any values." + uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements." + Consts_SANSIEncoding, "ANSI" + Consts_SASCIIEncoding, "ASCII" + Consts_SUnicodeEncoding, "Unicode" + Consts_SBigEndianEncoding, "Big Endian Unicode" + Consts_SUTF8Encoding, "UTF-8" + Consts_SUTF7Encoding, "UTF-7" + Consts_SWindowsVistaRequired, "%s requires Windows Vista or later" + uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." + uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist." + uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format." + uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format." + uRODECConst_sFMT_COPY, "copy Input to Output" + uRODECConst_sFMT_HEX, "Hexadecimal" + uRODECConst_sFMT_HEXL, "Hexadecimal lowercase" + uRODECConst_sFMT_MIME64, "MIME Base 64" + uRODECConst_sFMT_UU, "UU Coding" + Consts_SInvalidMemoSize, "Text exceeds memo capacity" + Consts_SInvalidPrinterOp, "Operation not supported on selected printer" + Consts_SNoDefaultPrinter, "There is no default printer currently selected" + Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" + Consts_SPictureLabel, "Picture:" + Consts_SPictureDesc, " (%dx%d)" + Consts_SPreviewLabel, "Preview" + Consts_SDockedCtlNeedsName, "Docked control must have a name" + Consts_SDockTreeRemoveError, "Error removing control from dock tree" + Consts_SDockZoneNotFound, " - Dock zone not found" + Consts_SDockZoneHasNoCtl, " - Dock zone has no control" + Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." + Consts_SMultiSelectRequired, "Multiselect mode must be on for this feature" + Consts_SSeparator, "Separator" + Consts_SErrorSettingCount, "Error setting %s.Count" + Consts_SListBoxMustBeVirtual, "Listbox (%s) style must be virtual in order to set Count" + Consts_SmkcCtrl, "Ctrl+" + Consts_SmkcAlt, "Alt+" + Consts_srNone, "(None)" + Consts_SOutOfRange, "Value must be between %d and %d" + Consts_sAllFilter, "All" + Consts_SInsertLineError, "Unable to insert a line" + Consts_SConfirmCreateDir, "The specified directory does not exist. Create it?" + Consts_SSelectDirCap, "Select Directory" + Consts_SDirNameCap, "Directory &Name:" + Consts_SDrivesCap, "D&rives:" + Consts_SDirsCap, "&Directories:" + Consts_SFilesCap, "&Files: (*.*)" + Consts_SNetworkCap, "Ne&twork..." + Consts_SInvalidClipFmt, "Invalid clipboard format" + Consts_SIconToClipboard, "Clipboard does not support Icons" + Consts_SCannotOpenClipboard, "Cannot open clipboard" + Consts_SmkcBkSp, "BkSp" + Consts_SmkcTab, "Tab" + Consts_SmkcEsc, "Esc" + Consts_SmkcEnter, "Enter" + Consts_SmkcSpace, "Space" + Consts_SmkcPgUp, "PgUp" + Consts_SmkcPgDn, "PgDn" + Consts_SmkcEnd, "End" + Consts_SmkcHome, "Home" + Consts_SmkcLeft, "Left" + Consts_SmkcUp, "Up" + Consts_SmkcRight, "Right" + Consts_SmkcDown, "Down" + Consts_SmkcIns, "Ins" + Consts_SmkcDel, "Del" + Consts_SmkcShift, "Shift+" + Consts_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" + Consts_SMsgDlgWarning, "Warning" + Consts_SMsgDlgError, "Error" + Consts_SMsgDlgInformation, "Information" + Consts_SMsgDlgConfirm, "Confirm" + Consts_SMsgDlgYes, "&Yes" + Consts_SMsgDlgNo, "&No" + Consts_SMsgDlgOK, "OK" + Consts_SMsgDlgCancel, "Cancel" + Consts_SMsgDlgHelp, "&Help" + Consts_SMsgDlgAbort, "&Abort" + Consts_SMsgDlgRetry, "&Retry" + Consts_SMsgDlgIgnore, "&Ignore" + Consts_SMsgDlgAll, "&All" + Consts_SMsgDlgNoToAll, "N&o to All" + Consts_SMsgDlgYesToAll, "Yes to &All" + Consts_SOKButton, "OK" + Consts_SCancelButton, "Cancel" + Consts_SYesButton, "&Yes" + Consts_SNoButton, "&No" + Consts_SHelpButton, "&Help" + Consts_SCloseButton, "&Close" + Consts_SIgnoreButton, "&Ignore" + Consts_SRetryButton, "&Retry" + Consts_SAbortButton, "Abort" + Consts_SAllButton, "&All" + Consts_SCannotDragForm, "Cannot drag a form" + Consts_SVMetafiles, "Metafiles" + Consts_SVEnhMetafiles, "Enhanced Metafiles" + Consts_SVIcons, "Icons" + Consts_SVBitmaps, "Bitmaps" + Consts_SMaskErr, "Invalid input value" + Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" + Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" + Consts_SCannotShowModal, "Cannot make a visible window modal" + Consts_SScrollBarRange, "Scrollbar property out of range" + Consts_SPropertyOutOfRange, "%s property out of range" + Consts_SMenuIndexError, "Menu index out of range" + Consts_SMenuReinserted, "Menu inserted twice" + Consts_SMenuNotFound, "Sub-menu is not in menu" + Consts_SNoTimers, "Not enough timers available" + Consts_SNotPrinting, "Printer is not currently printing" + Consts_SPrinting, "Printing in progress" + Consts_SInvalidPrinter, "Printer selected is not valid" + Consts_SDeviceOnPort, "%s on %s" + Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" + Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" + Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" + Consts_SChangeIconSize, "Cannot change the size of an icon" + Consts_SUnknownExtension, "Unknown picture file extension (.%s)" + Consts_SUnknownClipboardFormat, "Unsupported clipboard format" + Consts_SOutOfResources, "Out of system resources" + Consts_SNoCanvasHandle, "Canvas does not allow drawing" + Consts_SInvalidImageSize, "Invalid image size" + Consts_SInvalidImageList, "Invalid ImageList" + Consts_SReplaceImage, "Unable to Replace Image" + Consts_SImageIndexError, "Invalid ImageList Index" + Consts_SImageReadFail, "Failed to read ImageList data from stream" + Consts_SImageWriteFail, "Failed to write ImageList data to stream" + Consts_SWindowDCError, "Error creating window device context" + Consts_SWindowClass, "Error creating window class" + Consts_SCannotFocus, "Cannot focus a disabled or invisible window" + Consts_SParentRequired, "Control '%s' has no parent window" + Consts_SParentGivenNotAParent, "Parent given is not a parent of '%s'" + RTLConsts_SUnknownGroup, "%s not in a class registration group" + RTLConsts_SUnknownProperty, "Property %s does not exist" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" + HelpIntfs_hNothingFound, "No help found for %s" + HelpIntfs_hNoContext, "No context-sensitive help installed" + HelpIntfs_hNoContextFound, "No help found for context" + HelpIntfs_hNoTopics, "No topic-based help system installed" + Consts_SInvalidBitmap, "Bitmap image is not valid" + Consts_SInvalidIcon, "Icon image is not valid" + Consts_SInvalidMetafile, "Metafile is not valid" + Consts_SInvalidPixelFormat, "Invalid pixel format" + Consts_SInvalidImage, "Invalid image" + Consts_SScanLine, "Scan line index out of range" + RTLConsts_SInvalidPropertyType, "Invalid property type: %s" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + RTLConsts_SInvalidRegType, "Invalid data type for '%s'" + RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" + RTLConsts_SListCountError, "List count out of bounds (%d)" + RTLConsts_SListIndexError, "List index out of bounds (%d)" + RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" + RTLConsts_SPropertyException, "Error reading %s%s%s: %s" + RTLConsts_SReadError, "Stream read error" + RTLConsts_SReadOnlyProperty, "Property is read-only" + RTLConsts_SRegCreateFailed, "Failed to create key %s" + RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" + RTLConsts_SRegSetDataFailed, "Failed to set data for '%s'" + RTLConsts_SResNotFound, "Resource %s not found" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SClassNotFound, "Class %s not found" + RTLConsts_SDuplicateClass, "A class named %s already exists" + RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" + RTLConsts_SDuplicateName, "A component named %s already exists" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SIniFileWriteError, "Unable to write to %s" + RTLConsts_SInvalidFileName, "Invalid file name - %s" + RTLConsts_SInvalidImage, "Invalid stream format" + RTLConsts_SInvalidName, "''%s'' is not a valid component name" + RTLConsts_SInvalidProperty, "Invalid property value" + RTLConsts_SInvalidPropertyElement, "Invalid property element: %s" + RTLConsts_SInvalidPropertyPath, "Invalid property path" + SysConst_SShortDayNameTue, "Tue" + SysConst_SShortDayNameWed, "Wed" + SysConst_SShortDayNameThu, "Thu" + SysConst_SShortDayNameFri, "Fri" + SysConst_SShortDayNameSat, "Sat" + SysConst_SLongDayNameSun, "Sunday" + SysConst_SLongDayNameMon, "Monday" + SysConst_SLongDayNameTue, "Tuesday" + SysConst_SLongDayNameWed, "Wednesday" + SysConst_SLongDayNameThu, "Thursday" + SysConst_SLongDayNameFri, "Friday" + SysConst_SLongDayNameSat, "Saturday" + SysConst_SCannotCreateDir, "Unable to create directory" + RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SBitsIndexError, "Bits index out of range" + SysConst_SShortMonthNameNov, "Nov" + SysConst_SShortMonthNameDec, "Dec" + SysConst_SLongMonthNameJan, "January" + SysConst_SLongMonthNameFeb, "February" + SysConst_SLongMonthNameMar, "March" + SysConst_SLongMonthNameApr, "April" + SysConst_SLongMonthNameMay, "May" + SysConst_SLongMonthNameJun, "June" + SysConst_SLongMonthNameJul, "July" + SysConst_SLongMonthNameAug, "August" + SysConst_SLongMonthNameSep, "September" + SysConst_SLongMonthNameOct, "October" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + SysConst_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SNL, "Application is not licensed to use this feature" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeOutOfRangeWithPrefix, "Custom variant type (%s%.4x) is out of range" + SysConst_SVarTypeAlreadyUsedWithPrefix, "Custom variant type (%s%.4x) already used by %s" + SysConst_SVarTypeNotUsableWithPrefix, "Custom variant type (%s%.4x) is not usable" + SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_SVarUnexpected, "Unexpected variant error" + SysConst_SExternalException, "External exception %x" + SysConst_SAssertionFailed, "Assertion failed" + SysConst_SIntfCastError, "Interface not supported" + SysConst_SSafecallException, "Exception in safecall method" + SysConst_SOperationAborted, "Operation aborted" + SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" + SysConst_SExceptTitle, "Application Error" + SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" + SysConst_SArgumentMissing, "No argument for format '%s'" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SFormatTooLong, "Format string too long" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SVarArrayWithHResult, "Unexpected variant or safe array error: %s%.8x" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" + SysConst_SInvalidOp, "Invalid floating point operation" + SysConst_SZeroDivide, "Floating point division by zero" + SysConst_SOverflow, "Floating point overflow" + SysConst_SUnderflow, "Floating point underflow" + SysConst_SInvalidPointer, "Invalid pointer operation" + SysConst_SInvalidCast, "Invalid class typecast" + SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" + SysConst_SAccessViolationNoArg, "Access violation" + SysConst_SStackOverflow, "Stack overflow" + SysConst_SControlC, "Control-C hit" + SysConst_SPrivilege, "Privileged instruction" + SysConst_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SInvalidFloat, "'%s' is not a valid floating point value" + SysConst_SInvalidDate, "'%s' is not a valid date" + SysConst_SInvalidTime, "'%s' is not a valid time" + SysConst_SInvalidDateTime, "'%s' is not a valid date and time" + SysConst_SInvalidTimeStamp, "'%d.%d' is not a valid timestamp" + SysConst_SInvalidGUID, "'%s' is not a valid GUID value" + SysConst_STimeEncodeError, "Invalid argument to time encode" + SysConst_SDateEncodeError, "Invalid argument to date encode" + SysConst_SOutOfMemory, "Out of memory" + SysConst_SInOutError, "I/O error %d" + SysConst_SFileNotFound, "File not found" + SysConst_SInvalidFilename, "Invalid filename" + SysConst_STooManyOpenFiles, "Too many open files" + SysConst_SAccessDenied, "File access denied" + SysConst_SEndOfFile, "Read beyond end of file" +END + +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ +/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* T:\Componentes\FastReport 3\LibD10\frxProgress.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxCtrls.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxDock.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPassw.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxClass.RES */ +/* T:\Componentes\jvcl\resources\JvConsts.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ +/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */ +/* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */ +/* T:\Componentes\jvcl\lib\d10\JvLogForm.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uDataModuleServer.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ +/* T:\Componentes\jvcl\resources\JvToolEdit.res */ +/* T:\Componentes\jvcl\resources\JvSpin.Res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\dxOffice11.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxLookAndFeelPainters.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxControls.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxEdit.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxShellBrowser.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConexionBD.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfGeneral.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfiguracion.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Sales_Impl.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxGrid.res */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterControlDialog.dfm */ +/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterDialog.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Log_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uAcercaDe.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\fServerForm.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Inventary_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\srvInformes_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\RODLFile.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.drf */ diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.identcache b/Varela/Varela/Source/Servidor/AdminPV_Server.identcache new file mode 100644 index 0000000000000000000000000000000000000000..091f9f93c5aaaa289530c471953df73f73dc1d8f GIT binary patch literal 7940 zcmd5>O>fgc5H0^Czo2KtEv-`&sYQ{U=42^a>`A)R*$rzuY5{=|0>l9!4jd4Fmhn1X z+mn@VleAK$^{l0xym@av*3Zw*&b~amd=UpaDL0^sd?Zvlil8W@TIca?UJ4_1d?WKw zx_?FIaX1b}QBkJ2Gc)=PBt;%Cgn>-NkuFUF@r_Q)4Bwm^k#9wgs|d_arrN~0**WWS zy4hyu_yYRj{uF~h?(}iGk!rSBRt7NV>DIV&aq*7>3wO3%Bw$fd`3elEM2ah!+<`%a zYGCS(j{W!;O@e8R|I6vCML3(&@Vw;=PZ@|pSn|L=LWCTj7*21<8WlRZk3(2z0;7@K z+2_klqAr$GRjeoy-;cu<8w#~UFNArF%M1AqEz`z8o#FuKkinHtk;stCdw=W$_2u^| z0K&j^@u_Kay!bU_3L$}QBDF${9DXSAj@_&5dj^8L^B3cAay|Bf!Ex?|$RW0po{QHR z+!iv+DM$WtaHI`FlVx9m0wWXAk#`7mb3p4Hvbxl&Fd9WU+N<=9MMdDNX4)%J zxaIh37gd{6!Q$#vod;~Zp|?RXTXV7-i~HnZYv`FQJ+Kq8m3P}#IQsyb-!p*FXsvE@ zT(~gZSc{h_j|_gelM#rOT$e^v9F9wTga=$*1T;KfIr!SZF%w2?026V)PPb++Ff7V; z$n+#sr<=O1vFice7|wY0Wa~xc1LyIFbZOZ`8S{seF?CUzgTYZ!q&O?I+NN7oAi;PW zu2V8-z^yH32r<`8)k>QUNaCPdPT|m6gsT|hOlbu zuqh|g6Ybf(JmMH;Y)-B&uvRrTS4d+TIo8g+94BBB5db}vTQ&8h?**FsXe-zdM2dHH zsi!n&KcVEZFWuEG)?wbH>y#)Ba4X|XkJSi@CD_Xvjw{-R zG~Q1`10b*t!j>{sDnults=gcAg%=doW}S+;BPhBxAS>28i!#Ems~cf&wCi|L8T|)z CkMcMG literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.rc b/Varela/Varela/Source/Servidor/AdminPV_Server.rc new file mode 100644 index 0000000..66b42e9 --- /dev/null +++ b/Varela/Varela/Source/Servidor/AdminPV_Server.rc @@ -0,0 +1,26 @@ +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Servidor.ico" +1 VERSIONINFO +FILEVERSION 1,2,5,0 +PRODUCTVERSION 1,2,5,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "1.2.5.0\0" + VALUE "ProductName", "AdminPV_Server\0" + VALUE "ProductVersion", "1.2.5.0\0" + VALUE "CompileDate", "jueves, 06 de septiembre de 2007 12:09\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.res b/Varela/Varela/Source/Servidor/AdminPV_Server.res new file mode 100644 index 0000000000000000000000000000000000000000..77f5947782c2fa03a538f3ee3a2ad2ed2fb7384e GIT binary patch literal 23588 zcmeHvd3=r6_WqI>N)pi`h#`@K5Fw!n5knFYA%qZON`wrih>*k_5@IYBq^+@tA?7yi zRaC1<-H!B1{mM1mBC6WbYq+NPq1N|V`<(aW&7eYi@BQb#KHEO$eb?T5t-bfV_FB(c zCqzV!D9px!kHxMrm9*!UpsApq)u>U;S|e(X4>eF6Q7X_&_@BtvNTxpHraVyBE3dpl zb?Vfi+Ffc>lO|2b;9?*b7Z-AKbEBs2&B(*UgS@=Fs8gp-WaV!~Ha%>pzHfc18(5dB zjH*I4r_>_P9_`3;xED1a)q+}&Z%bXfcBSs!yHn4eJt-)-7xft2i~5B3qhaCU6doQy zL1X(;&-lLNKQolVr^nF9s3?jZHHyZJ8bf2ojG_3r2{dkeJjKVy)7Y^oG$}EWCQq44 zQ>RU%88c?kjALf#mU~FSY)QAGJE* zN8TUyBd<^TQSbSKX?Xew8t~dkidj6CqTWcPk$Y#5=ifr8YyL>`I~_&7XQOEFx!KhF z$0Qnba~{o^Gl%A;&7=8q7tn%vi)hh;#k6?QYqWI9GFr9_<@M#XJYxl|Sh14ccw-g4 z_10=yvt})=UH3L^T(^m~ZP-d#S)1vdz3wEg3EOG&ON$&_r7sq{`dd?X5c?D1FlvU78RWuIEAXgTq{?yw6Uq=?CR?3(tyaR zT9uco*Qhl(D5$ez3ug+kvZ_+0a`m8ypb%GAHy5f~Q{BM#ey(n=&BN-pwUZkm!-EFm zyGzeTUUqULWJK?`7>7frf)depXZHcpJ#OqihBw`tR6N$1X;8GW$Uhwy=OLbZY3Q#Ev_d3@nR+Ba?5)PVEi z5zY`Us}Ja2*4k$*TT!Y#&ZcynGmLY9arTtz13H_bb2)v^Jcf=g);=C{FmT|&T%1Xa z^Mb)gsXn0V8M>OG|9SPAb)1%##_8$lsvl`TWXO<fis11elX4&#u>t6#*Ss2myGj}6O)oS zIy(9Q&QZph#W=&*`(QuD8EEEX9mYI!`V8ZoVVqSgYw-HA491ztIA=LHICv`hV4QoZ z51fJQeW)Mf+*W;LZQjf{ml)?0~^>)&n*J%l?qPF8ePeBqRxaFwWyrec()IobQaYo^j?gYz}RY zt&_IeHE!Ivjnaqkp_fJYkUn4^Fzgd;fBaS67p<*UoA@Y{`H(r4b&<7&y~47`WS`1j zm-j_$Q?i!%FwN-!SzFm3vd3hf%3d!?e+xJAP|{2V)$d-KE-DaRWJ|OICY~c&81;~m zt&)03p8KL`_F$S`4?(Ztfx4h)=;fDRrrNb@Q{B3CsbRy0)X=jbHS%dhPEJnLtXVT^ z(E@f}>(K#md`t+fI!GY8>v=;^U z4WT|E{it8Rel##Fj4-dTDI+K%B7*$K_M~pfy{T(TFY-?brry10QxxpV=$IIajg6(~ zc-WV)E#u`jN2&eUX8Yijj+d+M~H6SY|9N%eL#rF!o-qelB%Q|nEgsLA2>$`Y5Qkeyc(#a4qV;3?jdMgQ@$$ z;S`=enxa=G(x5GI6!dW{g?t!Ck-Mi*)H^BU{#6fZ|3yFYJl>Bwe=~$Sem8`=o`4Mt z`?dSUIAy=~zm`I&X>(}sPje~apRduNTk|R6-s?1X?p&Hbe?Bc*w1}22T}mrguB6O2 z-=Z}uR?(_A#eQ8w>({QQ4R3FtO{+K1mbF>5Y11ak&d#P?TXxdk?R#nGu3fZe&mPLz zl|wl>@6*Be4=LL=_oG}od^nf#4&^C3_p`%C=(CSMqc8G|_U^GSzoFwtk5hhrJ{|wt zw{+rfC+OP~C+NHHPSVM5PtuuFXX*Ue^K}0E0=iuA1O0I63SGJUGyVLNlxuYLXOyeg z=-RdGbp2P9>o@4e^;>l7)@{0d`!3zTcb^_Scu0>PJ*Fp5o)|av|NejO8R+a((bBSl zl@pPnp`oP4>Rh#IMO+}LU};!j@b!h&Q8Yq|l~q+-ilCywYcZbVGLyK<^4*Xo|TIN3HTA~0l1`%Sv%1}Dc}MLjrW zW`e)0qUW9lL+@UVjRX+FuqrcixnWDubC;&hp?#c81U6QNwIDEL>z=!~59se?CNQjB zy(-hN!~A@qi_7r1!3HydVbj{xs|~vi&|9;8A^%L*mQnFT3}ymD76|Yhv+q4~<|26> zoiMDanZU3mYv)?SyM~lmXzn`;&s|4PigGa%7_xV#Z$f)lPw$jjvz8cAJYB~mPKsiEe}uuXL!NKSG#IR^ zcENLBZ_n828o_|jetoek<*J3%QXAOY%X6HbAf#uHz;6CsvE@?K^CjM1UZn^Es@vGK zRFA_iV`J^><>l!C56#u3r3;vMDgIQxVWK=eg}}wdtMpUjos^WBGZz+n$hWM0IE|`^ z)_jce07Yz*0#nIDEhSA?@UhgDhC8NG0d<8uW3enCl2QeI+M;ghj&W4a)6nKcuf~lV+d4QnM8d||2%9Y*_721D5u222)Tkjo*F|e<>)dM9 zswLp1oYW(z7sFm*simOZ%P%rE>?a4_9A#-_%#fl zq1^KzG>& zwfv*`mRSxWwdgak7$+qZ95&%?vRbB7Kc%EANuScY%P@ORaI(Dvl-&4Y|} z;oNzJnZe&v^C0)&=c)eTv$7Pu?4pMZ7kUrpBqrXhd!w)PMe0=WLKa>YTcEJtd|1*4c zhOf`S7=R;3Fz_11C-9a?!Ow&TU>FP>q8JadA7oF;djZ_0)O#W0!=G0?$ks1s z`1`Zx8TbMNqhR1SJb1`ZH3wtHj$_~#3>-m?KYH|Nhf%;sH6DO}Je3DvFs1f`jDP?B zeHof>+_=TS6|fg>GH?i`gMneFGXXdV12a(t_>mf0>`Adbz(cOa127u~_EIJfz;GCN zmC}>iyD8(#CHoCn1_R6B`*#Z&mM-mBpH~i-k!{NcXwCou8pg&!9%W| z2Vjcj+7ITn(9HvI+LCsZ*ww}6T|c&b#`v}ED^*TyBFSK)0vmZ1&%4AQbid|jaG0HhmMR1I=FpMq-L^N--=0IEKP9fMYmd ztW;np%mr0=M|C}pfn*(AC2jP6V7^MkVZzEFbth}8 z;ZlQYb-+FMdSu_ho`59~;!EVz%1Om&;Nwygk0#{gjkt|ZQ)`g@SKuQzoF>qt!}IaBjwS86%com$O!l{_YUkb6pdYMa`TIz<)5hj3O> za392kf`bto3ZkA7J*eN{zQ)*4NPoh`i@f4jpo+eJ5NK+>!(d0?Vl$@MQ)2B?K)TuLQ z8uFL`zESFoSt^fd&h(j7VJ;SZDN(g_Y=k$kFVNKLPNJ<&gMeyb(3lE)_988 znM@=0Orus`bfY#$gH*m$hZAAc`P4A-I~Ps;KbuIs|1pUMpHHP81@S8O)bHvHN=utf z>9f;lUg{i*JhwpQQw_VekRq=yrSQ8;XfATA7N#S&3bCjq$gg^B-a>jEIaZ4oFQ$yw zmQaQ%$73I;-lP49YklzkKH9(U1N!KL1N7m6gY@zK59y!}NLXr}WoPkI>gg zKBr@!eL=@Q|C+w}`Y4_FCZGP_@o(wxClS*+d5X@QIZfZ6K11iveNP4F&(q}}exR#A z{Y2M(zDn1x{gZCryoLO)JM`dwAw4L3K)*c}1h&+b6I{mV10%gK)n`on2EUHRHab## zOcH9)SFT*GDlBA&Dlb`B+D6P6H*D>q!ErI6_Vxk6dd>pt*sA^;yCBSrt9kPlF0aIm zdv8)`#PEoSn24B|82g-}5dr{^N`vZ6nzWp$8nke!edI#^dy^uD#|&5G5dleN`T%=H zu12u6Z7dC1)IR<5h0}*;gi7b?UlDyEqWPu)L`tAQe zc<`@t$BO9fZH1xW;K0DwmUh*IFv@@y$^7Wy!+YoQhec`&W^aoDazG!HvCKapP)0D$ z5+>EoHisWSdUUVgcxa5)AVAVLaCig{S)Q?2$jvOtw1WP($AtwaLnD)tu-h<*y+)6i z;0l=~QwznCT@Ji8MIS0FFcEF+Z7T;;DEfahd-+PCFUFG4bK#GFN8gbV5h8VfZRJ1; z4G9U}o}Df9<^j}7o9NF)L`Eb{6ox`UZ%M(S!J*r?XRj9eq84CD=${n+crFB~5i&zL zM*2|D@7%t9jZAAXmO%gHN#VJiLy@77K(0XPAI4ws-kln~j-@FK{q!(qV&VO3#}37y zjn;o?=-!<>-2H`sm^D13Ff>u8jGI9HCk7N`oDk*5%7Jmh5v*e)X6iKP4;-cXNMy?VulG;K3;<}AFX*bdN}viJ7w z+oz3?8K&r^MTfN1*>WLaWoA>T8DsXhY}GBGR}HW=vX{T{hQI&91@qJA&Ph#`7D8_a zdOLJ41E9fQObxI#WR^0PEnT`~p00tXyrYU75}-lC{sYDlN;eRWJVXoBGtuWrgG~nx z?A!MaW~p?8)Y-G}!r5uv%K)l@2)!2#j0>k@X;wW^WJYZzW1K^Sm`EAHxNs$8Nb?4L z9i^;H9G#Q~F$oY_O>6NHIxAHfU?MeEhd>??6KR@OY(DcWE$D=Wz~NPloJdB9M3c?N zt)Y$Z+Cb460rs-6#V?To>ktvKF>BXu+1}gV${Z2|ogoWdB&x2FnpQNx8yX^7L%nc# z=K=!1(oyL@nnsXU8uZdawo=ilsHat*&q0fsMlcQ#9IQKYOOeZs;}gvdLY_%nW)H<~ zDrX9g9HaD=T1=u;)Ns5AI|hCp5!5*RE@O>KzKh={wX&d4iw`K@rJ24iFn!nRJkxho z!yMP@G`WxO#cJGA-~X&y*MA=Rl<`yzz6<2LR#!2}q1BiNC7)J1nB?{`&4bLBw8wuk zPZgvtKzCB3p{>-IC}SW#t%A(898OXrrHve=DNBB{=&#@NV;$A=G_?75T!?MkA{O1Z ze*O9x@PTvjQeTAL;99k6sdznd78zRVCSvxvNC4W1gpLFhcVJVMP;5~gQCg#TqPU_s zpwvRKL3s&9=qyk$^MB5T-_zIvlZ|ZLxN*M3_#uNi&JP(>T)zw%B=3Nccc7I^ka07T zITFCz3Y3*7sVFfhK`7oRtx!b1S}4{iB2PsWix-ikMT-`;&d$!M$Pc&)86>yBoTpG; z8L$?z9%^kGHfYH0J=(EnJI}|6|NqOawcGc=D?bB&@1U$gNkb8NdZCCs%~9&2SfOC& zm;b^%MFNk$2^knNs2qpql|l0DrARJ_tlPkl{tREA;oCEOV+JO{9eg_c*1@a817ImP zA=7!02el^8RPY^$(g?-);ygnH^ka+m@4~rY$e=Lwr^x`khk^SrFdDY$Zo|N9RE|F| zAqFPIz=>2IiNphdVKDFo21dcaI2gV@12CW$;Zz{9uT z`*oByD0*b7OesL)hMb0rm;;5!mnB1;z&Z?^h%KgCnDZ=X3bax(N)pN>V&F+!X-p-y zj`Uc|NPYyRfL~Lth$aJYFRl~^-lMD;7#pu# zlEJ_cc+;Bo4E%#{PCa%DKThSR`7g-+BO-VZ^V29i{Zoj4BH=Vy!eC13JtAcO3;7nVWWOP0x&44jg;ZOUTcNDN#_6<|;d+>3#e zsW`8m*RnpBhkwLSG9(8BGN@S2ACZA(<6Xe}AURW`#>Mj4lc$ig@U^*oy#FAtMr?M; z!o?~cUKY>#d(Yw@2CRIcvj424?y^{EHqxQd0jQ z_T$r|M-P=RpveHto`Ki@;dPL+8W=iXN336RKQ5g6UX^c-9_4LWTNrrnbMcRyx?fB3 zj~H4mWMI7vz|tA929=xjN7g}d_!1{h;ybr)@s&$I@MTjuft-z<+1q)|s@2cMzvO0O zO~+{Zzi;2Z4)EDju7V~*rzl^x|4Va5oWvX#eNh=ChM%02%nuRg2PVx|fBu=TA_wL4 z$&UwoMGzxLL4&zGRSYu%rYQup?=qe_|6}GAMiU! zo-%ndK$<6f6L~u~kiR13+?lfsTpxKfZ$B6RvL9jp-O>0*3^G?@v6>8sIWb}^j93dJ zHpSZepv9+OWE~I}Ql8hH+qd~P_7P$N$oDwUh(+)wyu*l%nr$4J=ii%u;a_|U$k0*D z28rWB29F<@bM%Mdumu%n2#0@*JMCEixH1fGI-7FTI`*E z(epua$mDwT@DcKE9x&oC$T|Fh5&z+>&_Rev^N0~6R9;au_(bfQ@f$P7-ziYJV8XxT znrQq>E;oFjeS-%N?yHZdiwuavF=A;-hK>sZSbL{|$-MAhlHZidh2K3PXXp_>eE5*B zT)DyrKKOtU^HOsxJZp0@(R!2f>mzjyZ@wf{99<#)rfkL0_^Bem=y$)E7|_gDTC zuma(q;oqdn+UaFL?2w!jJH;$)kOib&z$J^8~+-P(C#DR;t+EdKtQ%AI+K!0V@ZX^^*R4 zc;0m=u7B?Go!fW#pRgy!!8e?Qz48OzmcXv z6YPCCcM-40@9pO@;@--RJB?h?{I8Gk5y-JCYa74)<|w|pc&NiPF(4pdI5UIuv|kk^2`t$r-;bU<7$>ZARFr98yO|M>AFl z88XCvz!`l}F9ULAIP{;h%Pm8B^b&G)7&#U=cMFvs)&3J(;u>sG5m%3_UKUmvDf~k(Z4^60FT>#TspXcTJnyvpzD95udH-auihenG z=pdhhKX&Q-1-=B`qt*ca{d%mCN8qbmJ-Rw0M~W?GTd-hcWnh)ce#W`oS9Ggh2IS?a zzm-s)b?7#$&vTt|@>?BXOI&LVaIdJEj9e{7juj)fiIHc;$N^J)S4^wO7IQ7wa+YOT zcx%4Qy>`Jix>-zyxEMx0P`PF3v_6=TyHze*19@eP{3)h2@b8hYOK+lNqO3s4KzSWy z3Cd!Wg~Z5fQ#OwtGZyS#<6UZCjHy~Kv9=D#i{fE-kXwzvdr_Ws(B5g}Vli^Hl5Z0*{4PeW7bE9O{jH0NZ&!Mz3>Nb&7`c5VF=N5*)!xx$fSu$38E%%80l8T( zB!lQB%?Fad&mq1j^3aek-Qc-oKu#c+ff=W2eCun-kSbVjF&R?FGjhuQD>Bp^Uz5wg zTP6NbZ0c^6Rf%aj53lG3fuaXx6ewJg0PIG~m z=EE5$=k)W~8XB%4x>Yc;PQdwo2VasH$_w$X$sjf4DD!>L+e^p^X0cn9?Onou(0ozk z7PDY8f-eb1_6)mKVkm!@cTEn+;8T`v)ytswfl6WmB{8yR*nAlh2hzs=vufE-kfHP$ zSHgeL`=S~qpkXr_My6qvdfVF+fAIOU_ffaD>`rSi9=R^Lo{OZcp1z^nWwd{_Bfy1D?LfyIXf$<4J)UCG z^8^|tf2NLN6pcG(#~m}}P9ESvIO;*Q(4RkO;%Op{1pRdIG!oxp)gb-x1b@jG=@gFO zI03yS(^Py<#B;gRntG!UxuBN{=5f2>X%a;%ekP*DShSp=`jh|M@wc0cXv098213GG9#mD3|bm5BcDZd13-bl znv8bwN~$<;qFqMXzNS88W@TJ$ZsnUcOGI6u2r5trXl1@8L-yoi9Qxrd{^~RO2*LVC zV&+8ZDe8Y2&qK{g@%ANWrsTZXE18XJC!EOqXxt~O717q!xEs2GW0^s@gqN$}AR7G2 zPDvtHtfxEX+)>SjBksgv24(GJZlXXdD=stTh}Ch&zxMdlhB}Zp{`W+m-BizEY96&& bD%ycWP1No+&iDlMKVI=uwC>fcf2{a_qq}8a literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm new file mode 100644 index 0000000..9d1f999 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm @@ -0,0 +1,101 @@ +inherited frConexionBD: TfrConexionBD + Visible = True + ExplicitWidth = 451 + ExplicitHeight = 304 + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 185 + Caption = 'Servidor de base de datos' + TabOrder = 0 + DesignSize = ( + 375 + 185) + object Label1: TLabel + Left = 18 + Top = 30 + Width = 100 + Height = 13 + Caption = 'Nombre del servidor:' + end + object Label3: TLabel + Left = 18 + Top = 61 + Width = 72 + Height = 13 + Caption = 'Base de datos:' + end + object Label4: TLabel + Left = 18 + Top = 118 + Width = 36 + Height = 13 + Caption = 'Usuario' + end + object Label5: TLabel + Left = 18 + Top = 148 + Width = 60 + Height = 13 + Caption = 'Contrase'#241'a:' + end + object Bevel1: TBevel + Left = 16 + Top = 88 + Width = 343 + Height = 10 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object edtServer: TEdit + Left = 128 + Top = 24 + Width = 231 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = 'localhost' + end + object edtUser: TEdit + Left = 128 + Top = 112 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 2 + end + object edtPassword: TEdit + Left = 128 + Top = 144 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 3 + end + object edtBD: TEdit + Left = 128 + Top = 57 + Width = 231 + Height = 21 + TabOrder = 1 + end + end + object bProbar: TButton + Left = 240 + Top = 200 + Width = 143 + Height = 25 + Caption = 'Probar la conexi'#243'n' + TabOrder = 1 + OnClick = bProbarClick + end + object ADOConnection: TADOConnection + LoginPrompt = False + Mode = cmRead + Provider = 'SQLOLEDB.1' + Left = 48 + Top = 200 + end +end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas new file mode 100644 index 0000000..d52c411 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas @@ -0,0 +1,90 @@ +unit uConexionBD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, cxShellBrowserDialog, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, + DB, IBDatabase, uFrameConfiguracion, ADODB; + +type + TfrConexionBD = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + edtServer: TEdit; + Label1: TLabel; + Label3: TLabel; + bProbar: TButton; + Label4: TLabel; + edtUser: TEdit; + Label5: TLabel; + edtPassword: TEdit; + Bevel1: TBevel; + edtBD: TEdit; + ADOConnection: TADOConnection; + procedure bProbarClick(Sender: TObject); + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +procedure TfrConexionBD.bProbarClick(Sender: TObject); +var + Aux : string; +begin + //Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=gft_varela;Data Source=david + + Aux := 'Provider=SQLOLEDB.1;Persist Security Info=False'; + Aux := Aux + ';Data Source=' + edtServer.Text; + Aux := Aux + ';User ID=' + edtUser.Text; + Aux := Aux + ';Password=' + edtPassword.Text; + Aux := Aux + ';Initial Catalog=' + edtBD.Text; + + with ADOConnection do + begin + LoginPrompt := False; + Mode := cmRead; + Provider := 'SQLOLEDB.1'; + ConnectionString := Aux; + + ShowHourglassCursor; + try + Connected := True; + Application.MessageBox('Conexión válida con la base de datos.', 'Información', MB_OK); + Connected := False; + except + on E : Exception do + begin + HideHourglassCursor; + Aux := 'No se ha podido establecer la conexión con la base de datos.' + + #13 + #10 + #13 + #10 + PChar(E.Message); + Application.MessageBox(PAnsiChar(Aux), 'Error', MB_OK); + end; + end; + end; +end; + +procedure TfrConexionBD.Init; +begin + edtServer.Text := dmServer.FDBServer; + edtBD.Text := dmServer.FDBName; + edtUser.Text := dmServer.FDBUser; + edtPassword.Text := Decrypt(dmServer.FDBPass); +end; + +procedure TfrConexionBD.Finalize; +begin + dmServer.FDBServer := edtServer.Text; + dmServer.FDBName := edtBD.Text; + dmServer.FDBUser := edtUser.Text; + dmServer.FDBPass := Encrypt(edtPassword.Text); +end; + +end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm new file mode 100644 index 0000000..ccb9b1b --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm @@ -0,0 +1,129 @@ +inherited frConfFicherosEDI: TfrConfFicherosEDI + Visible = True + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 217 + Caption = 'Ubicaci'#243'n de ficheros' + Constraints.MaxHeight = 217 + TabOrder = 0 + object Label1: TLabel + Left = 16 + Top = 32 + Width = 95 + Height = 13 + Caption = 'Entrada de ficheros:' + end + object Label2: TLabel + Left = 16 + Top = 128 + Width = 146 + Height = 13 + Caption = 'Almac'#233'n de ficheros cargados:' + end + object edtEntrada: TJvDirectoryEdit + Left = 16 + Top = 48 + Width = 345 + Height = 21 + AcceptFiles = False + DialogKind = dkWin32 + DialogText = 'Directorio de entrada de ficheros EDI' + ShowButton = False + TabOrder = 0 + end + object edtAlmacen: TJvDirectoryEdit + Left = 16 + Top = 144 + Width = 345 + Height = 21 + AcceptFiles = False + DialogKind = dkWin32 + DialogText = 'Directorio para almacenar ficheros EDI cargados' + ShowButton = False + TabOrder = 1 + end + object bElegir1: TButton + Left = 16 + Top = 72 + Width = 97 + Height = 25 + Caption = 'Elegir carpeta...' + TabOrder = 2 + OnClick = bElegir1Click + end + object bElegir2: TButton + Left = 16 + Top = 168 + Width = 97 + Height = 25 + Caption = 'Elegir carpeta...' + TabOrder = 3 + OnClick = bElegir2Click + end + end + object bAbrir1: TButton + Left = 272 + Top = 80 + Width = 97 + Height = 25 + Action = actAbrir1 + TabOrder = 1 + end + object bAbrir2: TButton + Left = 272 + Top = 176 + Width = 97 + Height = 25 + Action = actAbrir2 + TabOrder = 2 + end + object Panel1: TPanel + Left = 7 + Top = 232 + Width = 377 + Height = 41 + BevelOuter = bvNone + TabOrder = 3 + object Label3: TLabel + Left = 25 + Top = 12 + Width = 298 + Height = 13 + Caption = 'N'#250'mero de d'#237'as a mantener de almac'#233'n de ficheros cargados :' + Transparent = False + end + object edtDias: TcxSpinEdit + Left = 328 + Top = 8 + Properties.MinValue = 1.000000000000000000 + Properties.ValueType = vtInt + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Value = 1 + Width = 41 + end + end + object ActionList1: TActionList + Left = 320 + Top = 120 + object actAbrir1: TAction + Caption = 'Abrir carpeta...' + OnExecute = actAbrir1Execute + OnUpdate = actAbrir1Update + end + object actAbrir2: TAction + Caption = 'Abrir carpeta...' + OnExecute = actAbrir2Execute + OnUpdate = actAbrir2Update + end + end +end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas new file mode 100644 index 0000000..c68e629 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas @@ -0,0 +1,102 @@ +unit uConfFicherosEDI; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls, Mask, JvExMask, + JvToolEdit, ActnList, JvSpin, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxSpinEdit; + +type + TfrConfFicherosEDI = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + edtEntrada: TJvDirectoryEdit; + Label1: TLabel; + Label2: TLabel; + edtAlmacen: TJvDirectoryEdit; + bElegir1: TButton; + bElegir2: TButton; + bAbrir1: TButton; + bAbrir2: TButton; + ActionList1: TActionList; + actAbrir1: TAction; + actAbrir2: TAction; + Panel1: TPanel; + Label3: TLabel; + edtDias: TcxSpinEdit; + procedure bElegir1Click(Sender: TObject); + procedure bElegir2Click(Sender: TObject); + procedure actAbrir1Update(Sender: TObject); + procedure actAbrir2Update(Sender: TObject); + procedure actAbrir1Execute(Sender: TObject); + procedure actAbrir2Execute(Sender: TObject); + private + { Private declarations } + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer, JclShell; + +{$R *.dfm} + +{ TfrConfFicherosEDI } + +procedure TfrConfFicherosEDI.Finalize; +begin + inherited; + dmServer.FDirEntrada := edtEntrada.Text; + dmServer.FDirAlmacen := edtAlmacen.Text; + dmServer.FDias := edtDias.Value; +end; + +procedure TfrConfFicherosEDI.Init; +begin + inherited; + edtEntrada.Text := dmServer.FDirEntrada; + edtAlmacen.Text := dmServer.FDirAlmacen; + edtDias.Value := dmServer.FDias; +end; + +procedure TfrConfFicherosEDI.bElegir1Click(Sender: TObject); +begin + inherited; + edtEntrada.DoClick; +end; + +procedure TfrConfFicherosEDI.bElegir2Click(Sender: TObject); +begin + inherited; + edtAlmacen.DoClick; +end; + +procedure TfrConfFicherosEDI.actAbrir1Update(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtEntrada.Text) > 0) +end; + +procedure TfrConfFicherosEDI.actAbrir2Update(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := (Length(edtAlmacen.Text) > 0) +end; + +procedure TfrConfFicherosEDI.actAbrir1Execute(Sender: TObject); +begin + inherited; + OpenFolder(edtEntrada.Text); +end; + +procedure TfrConfFicherosEDI.actAbrir2Execute(Sender: TObject); +begin + inherited; + OpenFolder(edtAlmacen.Text); +end; + +end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm new file mode 100644 index 0000000..7e7f40f --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm @@ -0,0 +1,39 @@ +inherited frConfGeneral: TfrConfGeneral + Visible = True + object GroupBox1: TGroupBox + Left = 8 + Top = 8 + Width = 375 + Height = 105 + Caption = 'General' + TabOrder = 0 + DesignSize = ( + 375 + 105) + object Label2: TLabel + Left = 18 + Top = 60 + Width = 93 + Height = 13 + Caption = 'Puerto de escucha:' + end + object edtPort: TEdit + Left = 128 + Top = 56 + Width = 116 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = '8099' + OnExit = edtPortExit + end + object cbInicioWin: TCheckBox + Left = 17 + Top = 27 + Width = 232 + Height = 17 + Caption = 'Iniciar con Windows' + TabOrder = 1 + end + end +end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas new file mode 100644 index 0000000..b3427cc --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas @@ -0,0 +1,52 @@ +unit uConfGeneral; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls; + +type + TfrConfGeneral = class(TFrameConfiguracion) + GroupBox1: TGroupBox; + Label2: TLabel; + edtPort: TEdit; + cbInicioWin: TCheckBox; + procedure edtPortExit(Sender: TObject); + private + { Private declarations } + protected + procedure Finalize; override; + public + procedure Init; override; + end; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +{ TfrConfGeneral } + +procedure TfrConfGeneral.Finalize; +begin + inherited; + dmServer.FInicioWindows := cbInicioWin.Checked; + dmServer.FServerPort := edtPort.Text; +end; + +procedure TfrConfGeneral.Init; +begin + cbInicioWin.Checked := dmServer.FInicioWindows; + edtPort.Text := dmServer.FServerPort; +end; + +procedure TfrConfGeneral.edtPortExit(Sender: TObject); +begin + inherited; + if Length(edtPort.Text) = 0 then + edtPort.Text := SERVER_PORT; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm new file mode 100644 index 0000000..75ddf1c --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm @@ -0,0 +1,214 @@ +object fConfiguracion: TfConfiguracion + Left = 303 + Top = 203 + BorderStyle = bsDialog + Caption = 'Configuraci'#243'n' + ClientHeight = 442 + ClientWidth = 623 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 445 + Top = 407 + Width = 75 + Height = 25 + Action = actAceptar + ModalResult = 1 + TabOrder = 0 + end + object Button2: TButton + Left = 533 + Top = 407 + Width = 75 + Height = 25 + Action = actCancelar + Cancel = True + ModalResult = 2 + TabOrder = 1 + end + object JvSettingsTreeView1: TJvSettingsTreeView + Left = 8 + Top = 8 + Width = 193 + Height = 385 + PageDefault = 0 + PageList = JvPageList1 + Images = PngImageList1 + Indent = 19 + TabOrder = 2 + OnChanging = JvSettingsTreeView1Changing + Items.Data = { + 0300000020000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 + 0747656E6572616C28000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01000000 + 000000000F436F6E657869F36E20636F6E2042442E000000FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF02000000000000001555626963616369F36E206465206669 + 636865726F73} + Items.Links = {03000000000000000100000002000000} + end + object JvPageList1: TJvPageList + Left = 216 + Top = 8 + Width = 394 + Height = 385 + ActivePage = JvStandardPage1 + PropagateEnable = False + object JvStandardPage1: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage1' + inline frConfGeneral1: TfrConfGeneral + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + end + end + object JvStandardPage2: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage2' + inline frConexionBD1: TfrConexionBD + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + inherited GroupBox1: TGroupBox + inherited Label1: TLabel + Width = 100 + end + inherited Label3: TLabel + Width = 72 + end + inherited Label5: TLabel + Width = 60 + end + end + end + end + object JvStandardPage3: TJvStandardPage + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Caption = 'JvStandardPage3' + inline frConfFicherosEDI1: TfrConfFicherosEDI + Left = 0 + Top = 0 + Width = 394 + Height = 385 + Align = alClient + ParentBackground = False + TabOrder = 0 + inherited Label3: TLabel + Width = 299 + end + inherited GroupBox1: TGroupBox + inherited Label1: TLabel + Width = 98 + end + inherited Label2: TLabel + Width = 147 + end + end + end + end + end + object ActionList1: TActionList + Left = 8 + Top = 400 + object actAceptar: TAction + Caption = '&Aceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 48 + Top = 400 + end + object PngImageList1: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA + A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 + 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 + 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF + 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 + 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 + BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC + F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 + 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 + F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 + E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 + D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 + B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 + 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 + A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C + A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E + 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 + CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A + CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 + 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE + 426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 88 + Top = 400 + Bitmap = {} + end +end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas new file mode 100644 index 0000000..6ae1174 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas @@ -0,0 +1,105 @@ +unit uConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList, JvComponent, + JvAppStorage, JvAppRegistryStorage, Contnrs, ExtCtrls, ImgList, + PngImageList, JvExControls, JvGradientHeaderPanel, uFrameConfiguracion, + JvComponentBase, JvPageList, JvExComCtrls, JvPageListTreeView, + uConfFicherosEDI, uConexionBD, uConfGeneral; + +type + TfConfiguracion = class(TForm) + Button1: TButton; + Button2: TButton; + ActionList1: TActionList; + actAceptar: TAction; + actCancelar: TAction; + JvAppRegistryStorage1: TJvAppRegistryStorage; + PngImageList1: TPngImageList; + JvSettingsTreeView1: TJvSettingsTreeView; + JvPageList1: TJvPageList; + JvStandardPage1: TJvStandardPage; + JvStandardPage2: TJvStandardPage; + JvStandardPage3: TJvStandardPage; + frConfGeneral1: TfrConfGeneral; + frConexionBD1: TfrConexionBD; + frConfFicherosEDI1: TfrConfFicherosEDI; + procedure tvArbolChange(Sender: TObject; Node: TTreeNode); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure JvSettingsTreeView1Changing(Sender: TObject; Node: TTreeNode; + var AllowChange: Boolean); + private + FPaginaActual : IConfiguracionFrame; + end; + +var + fConfiguracion: TfConfiguracion; + +implementation + +uses uDataModuleServer; + +{$R *.dfm} + +type + TFrameClass = class of TFrameConfiguracion; + +function CreateFrame(Parent: TWinControl; FrameClass: TFrameClass): IConfiguracionFrame; +var + aFrame : TFrameConfiguracion; +begin + aFrame := FrameClass.Create(NIL); + aFrame.Name:='Frame'+IntToStr(Random(10000)); + aFrame.Parent := Parent; + aFrame.Init; + aFrame.Show; + Result := aFrame; +end; + +procedure TfConfiguracion.tvArbolChange(Sender: TObject; Node: TTreeNode); +begin +{ if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := CreateFrame(pnlPagina, TfrConfGeneral); + 1 : FPaginaActual := CreateFrame(pnlPagina, TfrConexionBD); + 2 : FPaginaActual := CreateFrame(pnlPagina, TfrConfFicherosEDI); + end; + Self.Update; + pnlHeader.LabelCaption := Node.Text;} +end; + +procedure TfConfiguracion.actAceptarExecute(Sender: TObject); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + dmServer.SalvarConfiguracion; + Close; +end; + +procedure TfConfiguracion.actCancelarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfConfiguracion.JvSettingsTreeView1Changing(Sender: TObject; + Node: TTreeNode; var AllowChange: Boolean); +begin + if Assigned(FPaginaActual) then + FPaginaActual.Finalize; + + case Node.Index of + 0 : FPaginaActual := frConfGeneral1; + 1 : FPaginaActual := frConexionBD1; + 2 : FPaginaActual := frConfFicherosEDI1; + end; + if Assigned(FPaginaActual) then + FPaginaActual.Init; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm new file mode 100644 index 0000000..a2649c6 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm @@ -0,0 +1,10 @@ +object FrameConfiguracion: TFrameConfiguracion + Left = 0 + Top = 0 + Width = 443 + Height = 277 + Align = alClient + ParentBackground = False + TabOrder = 0 + Visible = False +end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas new file mode 100644 index 0000000..c03ed29 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas @@ -0,0 +1,30 @@ +unit uFrameConfiguracion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls; + +type + IConfiguracionFrame = interface + ['{07F3EDBF-DFED-4B76-ADC7-0D3B83FB6F9B}'] + procedure Init; + procedure Finalize; + end; + + TFrameConfiguracion = class(TFrame, IConfiguracionFrame) + protected + procedure Finalize; virtual; abstract; + public + procedure Init; virtual; abstract; + end; + +implementation + +{$R *.dfm} + +{ TFrameConfiguracion } + + +end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas b/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas new file mode 100644 index 0000000..5a92ec3 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas @@ -0,0 +1,195 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit EDI_INVRPT; + +interface + +uses + Classes, EDI_Reader; + +const + LONG_LINEA_CAB = 101; + LONG_LINEA_LIN = 319; + LONG_LINEA_CANT = 100; + +type + TEDIFILE_CABINV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + TIPODOC : array[1..3] of char; + TIPOLIQ : array[1..3] of char; + FECHA : array[1..8] of char; + FECHALIQ: array[1..8] of char; + EMISOR : array[1..17] of char; + RECEPTOR: array[1..17] of char; + DPTO : array[1..3] of char; + CENTRO : array[1..17] of char; + end; + + TEDIFILE_LININV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + NUMLIN : array[1..6] of char; + CODART : array[1..17] of char; + FAMILIA : array[1..17] of char; + BARRA : array[1..17] of char; + TALLA : array[1..17] of char; + MARCA : array[1..25] of char; + TAMANO : array[1..25] of char; + SERIE : array[1..25] of char; + COLOR : array[1..25] of char; + MODELO : array[1..25] of char; + DIBUJO : array[1..25] of char; + DESCRIP : array[1..70] of char; + end; + + TEDITFILE_CANTINV = record + REGISTRO_OK : boolean; + NUMDOC : array[1..25] of char; + NUMLIN : array[1..6] of char; + NUMCANT : array[1..6] of char; + TIPOCANT: array[1..3] of char; + CANTIDAD: array[1..15] of char; + CENTRO : array[1..17] of char; + TMOV : array[1..3] of char; + FACT : array[1..12] of char; + DEPTO : array[1..3] of char; + IDVEN : array[1..10] of char; + end; + + PCABINV = ^TEDIFILE_CABINV; + PLININV = ^TEDIFILE_LININV; + PCANTINV= ^TEDITFILE_CANTINV; + + TCABINV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TLININV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TCANTINV_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Inventary; + +{ TLININV_Reader } + +function TLININV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_LININV; + pRegistro : PLININV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_LIN) + '.' + IntTostr(LONG_LINEA_LIN) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_LININV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_LIN+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LIN); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_LININV)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TCABINV_Reader } + +function TCABINV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_CABINV; + pRegistro : PCABINV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_CABINV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABINV)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TCANTINV_Reader } + +function TCANTINV_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDITFILE_CANTINV; + pRegistro : PCANTINV; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CANT) + '.' + IntTostr(LONG_LINEA_CANT) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDITFILE_CANTINV), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CANT+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CANT); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDITFILE_CANTINV)); + FileData.Add(pRegistro); + Result := True; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm new file mode 100644 index 0000000..c38a85e --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm @@ -0,0 +1,169 @@ +object EDI_Log: TEDI_Log + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schEDILog + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schEDILog: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + + 'CARGA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'OK' + TableField = 'OK' + end + item + DatasetField = 'ERROR_MSG' + TableField = 'ERROR_MSG' + end + item + DatasetField = 'REPORT' + TableField = 'REPORT' + end> + end> + Name = 'EDILog' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + Commands = < + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + + ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EDILog' + end> + RelationShips = <> + UpdateRules = <> + Left = 48 + Top = 16 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas new file mode 100644 index 0000000..770c308 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas @@ -0,0 +1,73 @@ +unit EDI_Log_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDADataStreamer; + +type + { TEDI_Log } + TEDI_Log = class(TDARemoteService, IEDI_Log) + schEDILog: TDASchema; + DABINAdapter: TDABINAdapter; + private + protected + { IEDI_Log methods } + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, + uDAInterfaces, uDataModuleServer; + +procedure Create_EDI_Log(out anInstance : IUnknown); +begin + anInstance := TEDI_Log.Create(NIL); +end; + +{ EDI_Log } +procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); + try + cmd.ParamByName('FECHA').AsDateTime := Fecha; + cmd.ParamByName('REPORT').AsString := Report; + if OK then + cmd.ParamByName('OK').AsInteger := 1 + else + cmd.ParamByName('OK').AsInteger := 0; + cmd.ParamByName('ERROR_MSG').AsString := Error_msg; + cmd.Execute; + finally + conn.CommitTransaction; + conn := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas b/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas new file mode 100644 index 0000000..36e6872 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas @@ -0,0 +1,109 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 18-04-2006 + Versión actual: 1.0.0 + Fecha versión actual: 18-04-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} +unit EDI_Reader; + +interface + +uses + Classes; + +type + TEDIFileData = class(TList) + end; + + TEDIFile_Reader = class + private + FFilename: String; + FFileData : TEDIFileData; + protected + function ProcessLine (const ALine : String) : Boolean; virtual; abstract; + public + constructor Create; virtual; + destructor Destroy; override; + procedure ReadFile; + published + property Filename : String read FFilename write FFilename; + property FileData : TEDIFileData read FFileData; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Sales; + +{ TEDIFile_Reader } + +constructor TEDIFile_Reader.Create; +begin + FFilename := ''; + FFileData := TEDIFileData.Create; +end; + +destructor TEDIFile_Reader.Destroy; +var + i : integer; +begin + try + with FFileData do + for I := Count - 1 downto 0 do + Dispose(Items[I]); + finally + FFileData.Free; + end; + inherited; +end; + +procedure TEDIFile_Reader.ReadFile; +var + i : integer; + AFichero : TStringList; +begin + if (Length(FFilename) = 0) then + raise Exception.Create('Falta indicar el nombre de todos los ficheros'); + + AFichero := TStringList.Create; + try + try + AFichero.LoadFromFile(FFilename); + for i := 0 to AFichero.Count - 1 do + begin + if not ProcessLine (AFichero.Strings[i]) then + begin + //ShowMessage('Error al procesar la línea ' +#13+#10 + AFichero.Strings[i]); + Break; + end; + end; + except + on E : Exception do + begin + //ShowMessage(E.Message); + raise; + end; + end; + finally + FreeAndNIL(AFichero); + end; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas b/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas new file mode 100644 index 0000000..6be4a34 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas @@ -0,0 +1,284 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 18-04-2006 + Versión actual: 1.0.0 + Fecha versión actual: 18-04-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit EDI_SLSRPT; + +interface + +uses + Classes, EDI_Reader; + +const + LONG_LINEA_CAB = 859; + LONG_LINEA_LUG = 142; + LONG_LINEA_ART = 778; + +type + TEDIFILE_CABVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + NUMINF : array[1..35] of char; + FUNCION : array[1..3] of char; + FECINI : array[1..12] of char; + FECFIN : array[1..12] of char; + FECINF : array[1..12] of char; + PERVEN : array[1..16] of char; + + EANOFI : array[1..17] of char; + EANEMI : array[1..17] of char; + EANREC : array[1..17] of char; + EANVEN : array[1..17] of char; + EANALM : array[1..17] of char; + EANREP : array[1..17] of char; + EANPRO : array[1..17] of char; + + EANADMSA: array[1..17] of char; + EANREPSR: array[1..17] of char; + + ADMVENSA: array[1..35] of char; + REPDEPSR: array[1..35] of char; + EMAILSA : array[1..35] of char; + NUMFAXSA: array[1..35] of char; + NUMTELSA: array[1..35] of char; + NUMTLXSA: array[1..35] of char; + X400SA : array[1..35] of char; + + EMAILSR : array[1..35] of char; + NUMFAXSR: array[1..35] of char; + NUMTELSR: array[1..35] of char; + NUMTLXSR: array[1..35] of char; + X400SR : array[1..35] of char; + + NUMPRE : array[1..35] of char; + NUMINFSC: array[1..35] of char; + NUMCON : array[1..35] of char; + + FECPRE : array[1..12] of char; + FECINFSC: array[1..12] of char; + FECCON : array[1..12] of char; + + DIVPED : array[1..3] of char; + DIVPRE : array[1..3] of char; + DIVPAG : array[1..3] of char; + DIVPEDF : array[1..3] of char; + DIVPREF : array[1..3] of char; + DIVPAGF : array[1..3] of char; + + TASCAM : array[1..15] of char; + FECTAS : array[1..12] of char; + end; + + TEDIFILE_LUGVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + CLAVE2 : array[1..5] of char; + EANLUG : array[1..17] of char; + LUGVEN : array[1..70] of char; + FECINI : array[1..12] of char; + FECFIN : array[1..12] of char; + PERVEN : array[1..16] of char; + end; + + TEDIFILE_ARTVEN = record + REGISTRO_OK : boolean; + CLAVE1 : array[1..10] of char; + CLAVE2 : array[1..5] of char; + CLAVE3 : array[1..5] of char; + EANART : array[1..17] of char; + CODCOM : array[1..35] of char; + NUMVAR : array[1..35] of char; + CODPRO : array[1..35] of char; + DESARTCO: array[1..35] of char; + DESART : array[1..70] of char; + NUMCON : array[1..35] of char; + NUMLIS : array[1..35] of char; + CONESP1 : array[1..3] of char; + CONESP2 : array[1..3] of char; + CONESP3 : array[1..3] of char; + VALVEN : array[1..15] of char; + PRENETCT: array[1..15] of char; + PREBRUCT: array[1..15] of char; + PREINFET: array[1..15] of char; + PREINFFT: array[1..15] of char; + PRECALCT: array[1..15] of char; + PRENETCA: array[1..15] of char; + PREBRUCA: array[1..15] of char; + PREINFEA: array[1..15] of char; + PREINFFA: array[1..15] of char; + PRECALCA: array[1..15] of char; + BAPRUN1 : array[1..9] of char; + UNIMED1 : array[1..3] of char; + BAPRUN2 : array[1..9] of char; + UNIMED2 : array[1..3] of char; + BAPRUN3 : array[1..9] of char; + UNIMED3 : array[1..3] of char; + BAPRUN4 : array[1..9] of char; + UNIMED4 : array[1..3] of char; + BAPRUN5 : array[1..9] of char; + UNIMED5 : array[1..3] of char; + CANVEN : array[1..15] of char; + EXIPRO : array[1..15] of char; + DESEXI : array[1..15] of char; + ESPMEDCV: array[1..3] of char; + ESPMEDEP: array[1..3] of char; + ESPMEDDE: array[1..3] of char; + CANDEV : array[1..15] of char; + EANVEN : array[1..17] of char; + NOMVEN : array[1..70] of char; + NUMTALON: array[1..35] of char; + CANVENNET : array[1..15] of char; + UMEDVENNET: array[1..3] of char; + CANESP : array[1..15] of char; + UMEDESP : array[1..3] of char; + end; + + PCABVEN = ^TEDIFILE_CABVEN; + PLUGVEN = ^TEDIFILE_LUGVEN; + PARTVEN = ^TEDIFILE_ARTVEN; + + TCABVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TLUGVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + + TARTVEN_Reader = class(TEDIFile_Reader) + protected + function ProcessLine (const ALine : String) : Boolean; override; + end; + + +implementation + +uses + SysUtils, Dialogs, uDataModuleEDI_Sales; + +{ TCABVEN_Reader } + +function TCABVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_CABVEN; + pRegistro : PCABVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_CABVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TLUGVEN_Reader } + +function TLUGVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_LUGVEN; + pRegistro : PLUGVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_LUG) + '.' + IntTostr(LONG_LINEA_LUG) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_LUGVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_LUG+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LUG); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_LUGVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +{ TARTVEN_Reader } + +function TARTVEN_Reader.ProcessLine(const ALine: String): Boolean; +var + Registro : TEDIFILE_ARTVEN; + pRegistro : PARTVEN; + LongLinea : Integer; + AuxLine : String; +begin + Result := False; + LongLinea := Length(ALine); + + { Por si la línea fuera más larga o más corta de lo normal, la hago de + de la longitud que debería tener } + AuxLine := Format('%-' + IntTostr(LONG_LINEA_ART) + '.' + IntTostr(LONG_LINEA_ART) + 's', [ALine]); + + // Inicializo los campos del registro. + FillChar(Registro, SizeOf(TEDIFILE_ARTVEN), 0); + + { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', + añado al principio de AuxLine el byte #0 (valor para 'False'). } + AuxLine := Concat(#0, AuxLine); + Move(AuxLine[1], Registro, LONG_LINEA_ART+1); // +1 por el byte del concat + + // El registro es correcto si tiene la longitud adecuada. + Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_ART); + + // Añado el registro a la lista de registros. + New(pRegistro); + Move(Registro, pRegistro^, SizeOf(TEDIFILE_ARTVEN)); + FileData.Add(pRegistro); + Result := True; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm new file mode 100644 index 0000000..29be14a --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm @@ -0,0 +1,7 @@ +inherited EDI_Inventary: TEDI_Inventary + OldCreateOrder = True + Left = 200 + Top = 200 + Height = 300 + Width = 300 +end diff --git a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas new file mode 100644 index 0000000..27971a8 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas @@ -0,0 +1,52 @@ +unit EDI_Inventary_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TEDI_Inventary } + TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) + private + protected + { IEDI_Inventary methods } + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk; + +procedure Create_EDI_Inventary(out anInstance : IUnknown); +begin + anInstance := TEDI_Inventary.Create(nil); +end; + +{ EDI_Inventary } +function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; +begin +end; + +initialization + TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm new file mode 100644 index 0000000..cc39195 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm @@ -0,0 +1,179 @@ +object EDI_Log: TEDI_Log + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schEDILog + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schEDILog: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + + 'CARGA' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'OK' + TableField = 'OK' + end + item + DatasetField = 'ERROR_MSG' + TableField = 'ERROR_MSG' + end + item + DatasetField = 'REPORT' + TableField = 'REPORT' + end> + end> + Name = 'EDILog' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPORT' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OK' + DataType = datBoolean + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ERROR_MSG' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LOG_CARGA' + SQL = + 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + + ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_EDILog' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 16 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 48 + Top = 80 + end +end diff --git a/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas new file mode 100644 index 0000000..1b06759 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas @@ -0,0 +1,75 @@ +unit EDI_Log_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataStreamer, uDABinAdapter, uDAClasses, uDAInterfaces; + +type + { TEDI_Log } + TEDI_Log = class(TDARemoteService, IEDI_Log) + DABINAdapter: TDABINAdapter; + schEDILog: TDASchema; + private + protected + { IEDI_Log methods } + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, + uDataModuleServer, Dialogs; + +procedure Create_EDI_Log(out anInstance : IUnknown); +begin + anInstance := TEDI_Log.Create(NIL); +end; + +{ EDI_Log } +procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +var + cmd : IDASQLCommand; + conn : IDAConnection; +begin + conn := dmServer.ConnectionManager.NewConnection(ConnectionName); + conn.BeginTransaction; + + cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); + try + cmd.ParamByName('FECHA').AsDateTime := Fecha; + cmd.ParamByName('REPORT').AsString := Report; + if OK then + cmd.ParamByName('OK').AsInteger := 1 + else + cmd.ParamByName('OK').AsInteger := 0; + cmd.ParamByName('ERROR_MSG').AsString := Error_msg; + cmd.Execute; + finally + conn.CommitTransaction; + conn := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm new file mode 100644 index 0000000..96f3a4b --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm @@ -0,0 +1,7 @@ +inherited EDI_Sales: TEDI_Sales + OldCreateOrder = True + Left = 200 + Top = 200 + Height = 300 + Width = 300 +end diff --git a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas new file mode 100644 index 0000000..e3a05bd --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas @@ -0,0 +1,52 @@ +unit EDI_Sales_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TEDI_Sales } + TEDI_Sales = class(TDARemoteService, IEDI_Sales) + private + protected + { IEDI_Sales methods } + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk; + +procedure Create_EDI_Sales(out anInstance : IUnknown); +begin + anInstance := TEDI_Sales.Create(nil); +end; + +{ EDI_Sales } +function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +begin +end; + +initialization + TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/EDI_Utils.pas b/Varela/Varela/Source/Servidor/EDI_Utils.pas new file mode 100644 index 0000000..61e81b4 --- /dev/null +++ b/Varela/Varela/Source/Servidor/EDI_Utils.pas @@ -0,0 +1,40 @@ +{*******************************************************} +{ } +{ Administración de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit EDI_Utils; + +interface + +uses + Controls; + +function EDIDateToDateF (const ADate : string; const AFormat : string = 'yyyymmdd' ) : TDate; + +implementation + +uses + SysUtils; + +function EDIDateToDateF (const ADate : string; const AFormat : string) : TDate; +var + aux : string; +begin + if Length(ADate) = 0 then + Result := 0 + else begin + try + if AFormat = 'yyyymmdd' then + Result := EncodeDate( StrToInt(copy(ADate, 1, 4)), StrToInt(copy(ADate, 5, 2)), StrToInt(copy(ADate, 7, 2)) ); + except + Result := 0 + end; + end; +end; + +end. + \ No newline at end of file diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections b/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections new file mode 100644 index 0000000..b8d3686 --- /dev/null +++ b/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections @@ -0,0 +1 @@ +SDAC?Server=DAVID;Database=GFT_VARELA;Integrated Security=SSPI;TrueGFT_VARELA010pbWaitTrue6001 diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary b/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary new file mode 100644 index 0000000..e6a48a9 --- /dev/null +++ b/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary @@ -0,0 +1 @@ +0 diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema b/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema new file mode 100644 index 0000000..0afb08f --- /dev/null +++ b/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema @@ -0,0 +1,35 @@ +TrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE30TrueTrueFalseFalseCLAVE3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANART0FalseTrueFalseFalseEANARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringCODCOM0FalseTrueFalseFalseCODCOMFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMVAR0FalseTrueFalseFalseNUMVARFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCODPRO0FalseTrueFalseFalseCODPROFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESARTCO0FalseTrueFalseFalseDESARTCOFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESART0FalseTrueFalseFalseDESARTFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMLIS0FalseTrueFalseFalseNUMLISFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCONESP10FalseTrueFalseFalseCONESP1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP20FalseTrueFalseFalseCONESP2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP30FalseTrueFalseFalseCONESP3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatVALVEN0FalseTrueFalseFalseVALVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCT0FalseTrueFalseFalsePRENETCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCT0FalseTrueFalseFalsePREBRUCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFET0FalseTrueFalseFalsePREINFETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFT0FalseTrueFalseFalsePREINFFTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCT0FalseTrueFalseFalsePRECALCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCA0FalseTrueFalseFalsePRENETCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCA0FalseTrueFalseFalsePREBRUCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFEA0FalseTrueFalseFalsePREINFEAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFA0FalseTrueFalseFalsePREINFFAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCA0FalseTrueFalseFalsePRECALCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN10FalseTrueFalseFalseBAPRUN1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED10FalseTrueFalseFalseUNIMED1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN20FalseTrueFalseFalseBAPRUN2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED20FalseTrueFalseFalseUNIMED2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN30FalseTrueFalseFalseBAPRUN3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED30FalseTrueFalseFalseUNIMED3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN40FalseTrueFalseFalseBAPRUN4FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED40FalseTrueFalseFalseUNIMED4FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN50FalseTrueFalseFalseBAPRUN5FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED50FalseTrueFalseFalseUNIMED5FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANVEN0FalseTrueFalseFalseCANVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatEXIPRO0FalseTrueFalseFalseEXIPROFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatDESEXI0FalseTrueFalseFalseDESEXIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringESPMEDCV0FalseTrueFalseFalseESPMEDCVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDEP0FalseTrueFalseFalseESPMEDEPFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDDE0FalseTrueFalseFalseESPMEDDEFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANDEV0FalseTrueFalseFalseCANDEVFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringNOMVEN0FalseTrueFalseFalseNOMVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMTALON0FalseTrueFalseFalseNUMTALONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatFloatCANVENNET0FalseTrueFalseFalseCANVENNETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDVENNET0FalseTrueFalseFalseUMEDVENNETFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANESP0FalseTrueFalseFalseCANESPFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDESP0FalseTrueFalseFalseUMEDESPFalseFalseFalse3TrueRDX_ARTVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2CLAVE3CLAVE3CLAVE3EANARTEANARTEANARTCODCOMCODCOMCODCOMNUMVARNUMVARNUMVARCODPROCODPROCODPRODESARTCODESARTCODESARTCODESARTDESARTDESARTNUMCONNUMCONNUMCONNUMLISNUMLISNUMLISCONESP1CONESP1CONESP1CONESP2CONESP2CONESP2CONESP3CONESP3CONESP3VALVENVALVENVALVENPRENETCTPRENETCTPRENETCTPREBRUCTPREBRUCTPREBRUCTPREINFETPREINFETPREINFETPREINFFTPREINFFTPREINFFTPRECALCTPRECALCTPRECALCTPRENETCAPRENETCAPRENETCAPREBRUCAPREBRUCAPREBRUCAPREINFEAPREINFEAPREINFEAPREINFFAPREINFFAPREINFFAPRECALCAPRECALCAPRECALCABAPRUN1BAPRUN1BAPRUN1UNIMED1UNIMED1UNIMED1BAPRUN2BAPRUN2BAPRUN2UNIMED2UNIMED2UNIMED2BAPRUN3BAPRUN3BAPRUN3UNIMED3UNIMED3UNIMED3BAPRUN4BAPRUN4BAPRUN4UNIMED4UNIMED4UNIMED4BAPRUN5BAPRUN5BAPRUN5UNIMED5UNIMED5UNIMED5CANVENCANVENCANVENEXIPROEXIPROEXIPRODESEXIDESEXIDESEXIESPMEDCVESPMEDCVESPMEDCVESPMEDEPESPMEDEPESPMEDEPESPMEDDEESPMEDDEESPMEDDECANDEVCANDEVCANDEVEANVENEANVENEANVENNOMVENNOMVENNOMVENNUMTALONNUMTALONNUMTALONCANVENNETCANVENNETCANVENNETUMEDVENNETUMEDVENNETUMEDVENNETCANESPCANESPCANESPUMEDESPUMEDESPUMEDESPGFT_VARELASELECT + CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODPRO, + DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, + CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, + PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, + BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, + BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, + DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, + NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDESP + FROM + RDX_ARTVENstSQLRDX_ARTVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTIPODOC0FalseTrueFalseFalseTIPODOCFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringTIPOLIQ0FalseTrueFalseFalseTIPOLIQFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA0FalseTrueFalseFalseFECHAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHALIQ0FalseTrueFalseFalseFECHALIQFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEMISOR0FalseTrueFalseFalseEMISORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringRECEPTOR0FalseTrueFalseFalseRECEPTORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringDPTO0FalseTrueFalseFalseDPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TrueRDX_CABINVNUMDOCNUMDOCNUMDOCTIPODOCTIPODOCTIPODOCTIPOLIQTIPOLIQTIPOLIQFECHAFECHAFECHAFECHALIQFECHALIQFECHALIQEMISOREMISOREMISORRECEPTORRECEPTORRECEPTORDPTODPTODPTOCENTROCENTROCENTROGFT_VARELASELECT + NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, + RECEPTOR, DPTO, CENTRO + FROM + RDX_CABINVstSQLRDX_CABINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringNUMINF0FalseTrueFalseFalseNUMINFFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringFUNCION0FalseTrueFalseFalseFUNCIONFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINF0FalseTrueFalseFalseFECINFFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TruetaLeftJustifydabtUnknownFalsedatStringEANOFI0FalseTrueFalseFalseEANOFIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANEMI0FalseTrueFalseFalseEANEMIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREC0FalseTrueFalseFalseEANRECFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANALM0FalseTrueFalseFalseEANALMFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREP0FalseTrueFalseFalseEANREPFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANPRO0FalseTrueFalseFalseEANPROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANADMSA0FalseTrueFalseFalseEANADMSAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREPSR0FalseTrueFalseFalseEANREPSRFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringADMVENSA0FalseTrueFalseFalseADMVENSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringREPDEPSR0FalseTrueFalseFalseREPDEPSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSA0FalseTrueFalseFalseEMAILSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSA0FalseTrueFalseFalseNUMFAXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSA0FalseTrueFalseFalseNUMTELSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSA0FalseTrueFalseFalseNUMTLXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SA0FalseTrueFalseFalseX400SAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSR0FalseTrueFalseFalseEMAILSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSR0FalseTrueFalseFalseNUMFAXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSR0FalseTrueFalseFalseNUMTELSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSR0FalseTrueFalseFalseNUMTLXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SR0FalseTrueFalseFalseX400SRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMPRE0FalseTrueFalseFalseNUMPREFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMINFSC0FalseTrueFalseFalseNUMINFSCFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatDateTimeFECPRE0FalseTrueFalseFalseFECPREFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINFSC0FalseTrueFalseFalseFECINFSCFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECCON0FalseTrueFalseFalseFECCONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringDIVPED0FalseTrueFalseFalseDIVPEDFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPRE0FalseTrueFalseFalseDIVPREFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAG0FalseTrueFalseFalseDIVPAGFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPEDF0FalseTrueFalseFalseDIVPEDFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPREF0FalseTrueFalseFalseDIVPREFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAGF0FalseTrueFalseFalseDIVPAGFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatTASCAM0FalseTrueFalseFalseTASCAMFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECTAS0FalseTrueFalseFalseFECTASFalseFalseFalse0TrueRDX_CABVENCLAVE1CLAVE1CLAVE1NUMINFNUMINFNUMINFFUNCIONFUNCIONFUNCIONFECINIFECINIFECINIFECFINFECFINFECFINFECINFFECINFFECINFPERVENPERVENPERVENEANOFIEANOFIEANOFIEANEMIEANEMIEANEMIEANRECEANRECEANRECEANVENEANVENEANVENEANALMEANALMEANALMEANREPEANREPEANREPEANPROEANPROEANPROEANADMSAEANADMSAEANADMSAEANREPSREANREPSREANREPSRADMVENSAADMVENSAADMVENSAREPDEPSRREPDEPSRREPDEPSREMAILSAEMAILSAEMAILSANUMFAXSANUMFAXSANUMFAXSANUMTELSANUMTELSANUMTELSANUMTLXSANUMTLXSANUMTLXSAX400SAX400SAX400SAEMAILSREMAILSREMAILSRNUMFAXSRNUMFAXSRNUMFAXSRNUMTELSRNUMTELSRNUMTELSRNUMTLXSRNUMTLXSRNUMTLXSRX400SRX400SRX400SRNUMPRENUMPRENUMPRENUMINFSCNUMINFSCNUMINFSCNUMCONNUMCONNUMCONFECPREFECPREFECPREFECINFSCFECINFSCFECINFSCFECCONFECCONFECCONDIVPEDDIVPEDDIVPEDDIVPREDIVPREDIVPREDIVPAGDIVPAGDIVPAGDIVPEDFDIVPEDFDIVPEDFDIVPREFDIVPREFDIVPREFDIVPAGFDIVPAGFDIVPAGFTASCAMTASCAMTASCAMFECTASFECTASFECTASGFT_VARELASELECT + CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PERVEN, + EANOFI, EANEMI, EANREC, EANVEN, EANALM, EANREP, EANPRO, + EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAILSA, NUMFAXSA, + NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXSR, NUMTELSR, + NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FECPRE, + FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, + DIVPREF, DIVPAGF, TASCAM, FECTAS + FROM + RDX_CABVENstSQLRDX_CABVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatNUMCANT0FalseTrueFalseFalseNUMCANTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringTIPOCANT0FalseTrueFalseFalseTIPOCANTFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANTIDAD0FalseTrueFalseFalseCANTIDADFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTMOV0FalseTrueFalseFalseTMOVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringFACT0FalseTrueFalseFalseFACTFalseFalseFalse12TruetaLeftJustifydabtUnknownFalsedatStringDEPTO0FalseTrueFalseFalseDEPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringIDVEN0FalseTrueFalseFalseIDVENFalseFalseFalse10TrueRDX_CANTINVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINNUMCANTNUMCANTNUMCANTTIPOCANTTIPOCANTTIPOCANTCANTIDADCANTIDADCANTIDADCENTROCENTROCENTROTMOVTMOVTMOVFACTFACTFACTDEPTODEPTODEPTOIDVENIDVENIDVENGFT_VARELASELECT + NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO, + TMOV, FACT, DEPTO, IDVEN + FROM + RDX_CANTINVstSQLRDX_CANTINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCODART0FalseTrueFalseFalseCODARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringFAMILIA0FalseTrueFalseFalseFAMILIAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringBARRA0FalseTrueFalseFalseBARRAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTALLA0FalseTrueFalseFalseTALLAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringMARCA0FalseTrueFalseFalseMARCAFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTAMANO0FalseTrueFalseFalseTAMANOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringSERIE0FalseTrueFalseFalseSERIEFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringCOLOR0FalseTrueFalseFalseCOLORFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringMODELO0FalseTrueFalseFalseMODELOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDIBUJO0FalseTrueFalseFalseDIBUJOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDESCRIP0FalseTrueFalseFalseDESCRIPFalseFalseFalse70TrueRDX_LININVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINCODARTCODARTCODARTFAMILIAFAMILIAFAMILIABARRABARRABARRATALLATALLATALLAMARCAMARCAMARCATAMANOTAMANOTAMANOSERIESERIESERIECOLORCOLORCOLORMODELOMODELOMODELODIBUJODIBUJODIBUJODESCRIPDESCRIPDESCRIPGFT_VARELASELECT + NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA, + TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP + FROM + RDX_LININVstSQLRDX_LININVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANLUG0FalseTrueFalseFalseEANLUGFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringLUGVEN0FalseTrueFalseFalseLUGVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TrueRDX_LUGVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2EANLUGEANLUGEANLUGLUGVENLUGVENLUGVENFECINIFECINIFECINIFECFINFECFINFECFINPERVENPERVENPERVENGFT_VARELASELECT + CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERVEN + FROM + RDX_LUGVENstSQLRDX_LUGVENRDX_LININVNUMDOCRDX_CABINVNUMDOCFK_RDX_LININV_RDX_CABINVRDX_CANTINVNUMDOC;NUMLINRDX_LININVNUMDOC;NUMLINFK_RDX_CANTINV_RDX_LININVRDX_LUGVENCLAVE1RDX_CABVENCLAVE1FK_RDX_LUGVEN_RDX_CABVENRDX_ARTVENCLAVE1;CLAVE2RDX_LUGVENCLAVE1;CLAVE2FK_RDX_ARTVEN_RDX_LUGVEN0 diff --git a/Varela/Varela/Source/Servidor/RODLFILE.res b/Varela/Varela/Source/Servidor/RODLFILE.res new file mode 100644 index 0000000000000000000000000000000000000000..1deefbaa2fa9dcc960b18ca793812cc9b68d1e2b GIT binary patch literal 18469 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 B%zyv@ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/RegExpr.pas b/Varela/Varela/Source/Servidor/RegExpr.pas new file mode 100644 index 0000000..f17279a --- /dev/null +++ b/Varela/Varela/Source/Servidor/RegExpr.pas @@ -0,0 +1,4042 @@ +unit RegExpr; + +{ + TRegExpr class library + Delphi Regular Expressions + + Copyright (c) 1999-2004 Andrey V. Sorokin, St.Petersburg, Russia + + You may use this software in any kind of development, + including comercial, redistribute, and modify it freely, + under the following restrictions : + 1. This software is provided as it is, without any kind of + warranty given. Use it at Your own risk.The author is not + responsible for any consequences of use of this software. + 2. The origin of this software may not be mispresented, You + must not claim that You wrote the original software. If + You use this software in any kind of product, it would be + appreciated that there in a information box, or in the + documentation would be an acknowledgement like + + Partial Copyright (c) 2004 Andrey V. Sorokin + http://RegExpStudio.com + mailto:anso@mail.ru + + 3. You may not have any income from distributing this source + (or altered version of it) to other developers. When You + use this product in a comercial package, the source may + not be charged seperatly. + 4. Altered versions must be plainly marked as such, and must + not be misrepresented as being the original software. + 5. RegExp Studio application and all the visual components as + well as documentation is not part of the TRegExpr library + and is not free for usage. + + mailto:anso@mail.ru + http://RegExpStudio.com + http://anso.da.ru/ +} + +interface + +// ======== Determine compiler +{$IFDEF VER80} Sorry, TRegExpr is for 32-bits Delphi only. Delphi 1 is not supported (and whos really care today?!). {$ENDIF} +{$IFDEF VER90} {$DEFINE D2} {$ENDIF} // D2 +{$IFDEF VER93} {$DEFINE D2} {$ENDIF} // CPPB 1 +{$IFDEF VER100} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D3 +{$IFDEF VER110} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // CPPB 3 +{$IFDEF VER120} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D4 +{$IFDEF VER130} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D5 +{$IFDEF VER140} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D6 +{$IFDEF VER150} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D7 +{$IFDEF VER180} {$DEFINE D2007} {$DEFINE D10} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D10/D2007 + +// ======== Define base compiler options +{$BOOLEVAL OFF} +{$EXTENDEDSYNTAX ON} +{$LONGSTRINGS ON} +{$OPTIMIZATION ON} +{$IFDEF D6} + {$WARN SYMBOL_PLATFORM OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF D7} + {$WARN UNSAFE_CAST OFF} // Suppress .Net warnings + {$WARN UNSAFE_TYPE OFF} // Suppress .Net warnings + {$WARN UNSAFE_CODE OFF} // Suppress .Net warnings +{$ENDIF} +{$IFDEF FPC} + {$MODE DELPHI} // Delphi-compatible mode in FreePascal +{$ENDIF} + +// ======== Define options for TRegExpr engine +{.$DEFINE UniCode} // Unicode support +{$DEFINE RegExpPCodeDump} // p-code dumping (see Dump method) +{$IFNDEF FPC} // the option is not supported in FreePascal + {$DEFINE reRealExceptionAddr} // exceptions will point to appropriate source line, not to Error procedure +{$ENDIF} +{$DEFINE ComplexBraces} // support braces in complex cases +{$IFNDEF UniCode} // the option applicable only for non-UniCode mode + {$DEFINE UseSetOfChar} // Significant optimization by using set of char +{$ENDIF} +{$IFDEF UseSetOfChar} + {$DEFINE UseFirstCharSet} // Fast skip between matches for r.e. that starts with determined set of chars +{$ENDIF} + +// ======== Define Pascal-language options +// Define 'UseAsserts' option (do not edit this definitions). +// Asserts used to catch 'strange bugs' in TRegExpr implementation (when something goes +// completely wrong). You can swith asserts on/off with help of {$C+}/{$C-} compiler options. +{$IFDEF D3} {$DEFINE UseAsserts} {$ENDIF} +{$IFDEF FPC} {$DEFINE UseAsserts} {$ENDIF} + +// Define 'use subroutine parameters default values' option (do not edit this definition). +{$IFDEF D4} {$DEFINE DefParam} {$ENDIF} + +// Define 'OverMeth' options, to use method overloading (do not edit this definitions). +{$IFDEF D5} {$DEFINE OverMeth} {$ENDIF} +{$IFDEF FPC} {$DEFINE OverMeth} {$ENDIF} + +uses + Classes, // TStrings in Split method + SysUtils; // Exception + +type + {$IFDEF UniCode} + PRegExprChar = PWideChar; + RegExprString = WideString; + REChar = WideChar; + {$ELSE} + PRegExprChar = PChar; + RegExprString = AnsiString; //###0.952 was string + REChar = Char; + {$ENDIF} + TREOp = REChar; // internal p-code type //###0.933 + PREOp = ^TREOp; + TRENextOff = integer; // internal Next "pointer" (offset to current p-code) //###0.933 + PRENextOff = ^TRENextOff; // used for extracting Next "pointers" from compiled r.e. //###0.933 + TREBracesArg = integer; // type of {m,n} arguments + PREBracesArg = ^TREBracesArg; + +const + REOpSz = SizeOf (TREOp) div SizeOf (REChar); // size of p-code in RegExprString units + RENextOffSz = SizeOf (TRENextOff) div SizeOf (REChar); // size of Next 'pointer' -"- + REBracesArgSz = SizeOf (TREBracesArg) div SizeOf (REChar); // size of BRACES arguments -"- + +type + TRegExprInvertCaseFunction = function (const Ch : REChar) : REChar + of object; + +const + EscChar = '\'; // 'Escape'-char ('\' in common r.e.) used for escaping metachars (\w, \d etc). + RegExprModifierI : boolean = False; // default value for ModifierI + RegExprModifierR : boolean = True; // default value for ModifierR + RegExprModifierS : boolean = True; // default value for ModifierS + RegExprModifierG : boolean = True; // default value for ModifierG + RegExprModifierM : boolean = False; // default value for ModifierM + RegExprModifierX : boolean = False; // default value for ModifierX + RegExprSpaceChars : RegExprString = // default value for SpaceChars + ' '#$9#$A#$D#$C; + RegExprWordChars : RegExprString = // default value for WordChars + '0123456789' //###0.940 + + 'abcdefghijklmnopqrstuvwxyz' + + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'; + RegExprLineSeparators : RegExprString =// default value for LineSeparators + #$d#$a{$IFDEF UniCode}+#$b#$c#$2028#$2029#$85{$ENDIF}; //###0.947 + RegExprLinePairedSeparator : RegExprString =// default value for LinePairedSeparator + #$d#$a; + { if You need Unix-styled line separators (only \n), then use: + RegExprLineSeparators = #$a; + RegExprLinePairedSeparator = ''; + } + + +const + NSUBEXP = 15; // max number of subexpression //###0.929 + // Cannot be more than NSUBEXPMAX + // Be carefull - don't use values which overflow CLOSE opcode + // (in this case you'll get compiler erorr). + // Big NSUBEXP will cause more slow work and more stack required + NSUBEXPMAX = 255; // Max possible value for NSUBEXP. //###0.945 + // Don't change it! It's defined by internal TRegExpr design. + + MaxBracesArg = $7FFFFFFF - 1; // max value for {n,m} arguments //###0.933 + + {$IFDEF ComplexBraces} + LoopStackMax = 10; // max depth of loops stack //###0.925 + {$ENDIF} + + TinySetLen = 3; + // if range includes more then TinySetLen chars, //###0.934 + // then use full (32 bytes) ANYOFFULL instead of ANYOF[BUT]TINYSET + // !!! Attension ! If you change TinySetLen, you must + // change code marked as "//!!!TinySet" + + +type + +{$IFDEF UseSetOfChar} + PSetOfREChar = ^TSetOfREChar; + TSetOfREChar = set of REChar; +{$ENDIF} + + TRegExpr = class; + + TRegExprReplaceFunction = function (ARegExpr : TRegExpr): string + of object; + + TRegExpr = class + private + startp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr starting points + endp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr end points + + {$IFDEF ComplexBraces} + LoopStack : array [1 .. LoopStackMax] of integer; // state before entering loop + LoopStackIdx : integer; // 0 - out of all loops + {$ENDIF} + + // The "internal use only" fields to pass info from compile + // to execute that permits the execute phase to run lots faster on + // simple cases. + regstart : REChar; // char that must begin a match; '\0' if none obvious + reganch : REChar; // is the match anchored (at beginning-of-line only)? + regmust : PRegExprChar; // string (pointer into program) that match must include, or nil + regmlen : integer; // length of regmust string + // Regstart and reganch permit very fast decisions on suitable starting points + // for a match, cutting down the work a lot. Regmust permits fast rejection + // of lines that cannot possibly match. The regmust tests are costly enough + // that regcomp() supplies a regmust only if the r.e. contains something + // potentially expensive (at present, the only such thing detected is * or + + // at the start of the r.e., which can involve a lot of backup). Regmlen is + // supplied because the test in regexec() needs it and regcomp() is computing + // it anyway. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet : TSetOfREChar; + {$ENDIF} + + // work variables for Exec's routins - save stack in recursion} + reginput : PRegExprChar; // String-input pointer. + fInputStart : PRegExprChar; // Pointer to first char of input string. + fInputEnd : PRegExprChar; // Pointer to char AFTER last char of input string + + // work variables for compiler's routines + regparse : PRegExprChar; // Input-scan pointer. + regnpar : integer; // count. + regdummy : char; + regcode : PRegExprChar; // Code-emit pointer; @regdummy = don't. + regsize : integer; // Code size. + + regexpbeg : PRegExprChar; // only for error handling. Contains + // pointer to beginning of r.e. while compiling + fExprIsCompiled : boolean; // true if r.e. successfully compiled + + // programm is essentially a linear encoding + // of a nondeterministic finite-state machine (aka syntax charts or + // "railroad normal form" in parsing technology). Each node is an opcode + // plus a "next" pointer, possibly plus an operand. "Next" pointers of + // all nodes except BRANCH implement concatenation; a "next" pointer with + // a BRANCH on both ends of it is connecting two alternatives. (Here we + // have one of the subtle syntax dependencies: an individual BRANCH (as + // opposed to a collection of them) is never concatenated with anything + // because of operator precedence.) The operand of some types of node is + // a literal string; for others, it is a node leading into a sub-FSM. In + // particular, the operand of a BRANCH node is the first node of the branch. + // (NB this is *not* a tree structure: the tail of the branch connects + // to the thing following the set of BRANCHes.) The opcodes are: + programm : PRegExprChar; // Unwarranted chumminess with compiler. + + fExpression : PRegExprChar; // source of compiled r.e. + fInputString : PRegExprChar; // input string + + fLastError : integer; // see Error, LastError + + fModifiers : integer; // modifiers + fCompModifiers : integer; // compiler's copy of modifiers + fProgModifiers : integer; // modifiers values from last programm compilation + + fSpaceChars : RegExprString; //###0.927 + fWordChars : RegExprString; //###0.929 + fInvertCase : TRegExprInvertCaseFunction; //###0.927 + + fLineSeparators : RegExprString; //###0.941 + fLinePairedSeparatorAssigned : boolean; + fLinePairedSeparatorHead, + fLinePairedSeparatorTail : REChar; + {$IFNDEF UniCode} + fLineSeparatorsSet : set of REChar; + {$ENDIF} + + procedure InvalidateProgramm; + // Mark programm as have to be [re]compiled + + function IsProgrammOk : boolean; //###0.941 + // Check if we can use precompiled r.e. or + // [re]compile it if something changed + + function GetExpression : RegExprString; + procedure SetExpression (const s : RegExprString); + + function GetModifierStr : RegExprString; + class function ParseModifiersStr (const AModifiers : RegExprString; + var AModifiersInt : integer) : boolean; //###0.941 class function now + // Parse AModifiers string and return true and set AModifiersInt + // if it's in format 'ismxrg-ismxrg'. + procedure SetModifierStr (const AModifiers : RegExprString); + + function GetModifier (AIndex : integer) : boolean; + procedure SetModifier (AIndex : integer; ASet : boolean); + + procedure Error (AErrorID : integer); virtual; // error handler. + // Default handler raise exception ERegExpr with + // Message = ErrorMsg (AErrorID), ErrorCode = AErrorID + // and CompilerErrorPos = value of property CompilerErrorPos. + + + {==================== Compiler section ===================} + function CompileRegExpr (exp : PRegExprChar) : boolean; + // compile a regular expression into internal code + + procedure Tail (p : PRegExprChar; val : PRegExprChar); + // set the next-pointer at the end of a node chain + + procedure OpTail (p : PRegExprChar; val : PRegExprChar); + // regoptail - regtail on operand of first argument; nop if operandless + + function EmitNode (op : TREOp) : PRegExprChar; + // regnode - emit a node, return location + + procedure EmitC (b : REChar); + // emit (if appropriate) a byte of code + + procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90 + // insert an operator in front of already-emitted operand + // Means relocating the operand. + + function ParseReg (paren : integer; var flagp : integer) : PRegExprChar; + // regular expression, i.e. main body or parenthesized thing + + function ParseBranch (var flagp : integer) : PRegExprChar; + // one alternative of an | operator + + function ParsePiece (var flagp : integer) : PRegExprChar; + // something followed by possible [*+?] + + function ParseAtom (var flagp : integer) : PRegExprChar; + // the lowest level + + function GetCompilerErrorPos : integer; + // current pos in r.e. - for error hanling + + {$IFDEF UseFirstCharSet} //###0.929 + procedure FillFirstCharSet (prog : PRegExprChar); + {$ENDIF} + + {===================== Mathing section ===================} + function regrepeat (p : PRegExprChar; AMax : integer) : integer; + // repeatedly match something simple, report how many + + function regnext (p : PRegExprChar) : PRegExprChar; + // dig the "next" pointer out of a node + + function MatchPrim (prog : PRegExprChar) : boolean; + // recursively matching routine + + function ExecPrim (AOffset: integer) : boolean; + // Exec for stored InputString + + {$IFDEF RegExpPCodeDump} + function DumpOp (op : REChar) : RegExprString; + {$ENDIF} + + function GetSubExprMatchCount : integer; + function GetMatchPos (Idx : integer) : integer; + function GetMatchLen (Idx : integer) : integer; + function GetMatch (Idx : integer) : RegExprString; + + function GetInputString : RegExprString; + procedure SetInputString (const AInputString : RegExprString); + + {$IFNDEF UseSetOfChar} + function StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 + {$ENDIF} + + procedure SetLineSeparators (const AStr : RegExprString); + procedure SetLinePairedSeparator (const AStr : RegExprString); + function GetLinePairedSeparator : RegExprString; + + public + constructor Create; + destructor Destroy; override; + + class function VersionMajor : integer; //###0.944 + class function VersionMinor : integer; //###0.944 + + property Expression : RegExprString read GetExpression write SetExpression; + // Regular expression. + // For optimization, TRegExpr will automatically compiles it into 'P-code' + // (You can see it with help of Dump method) and stores in internal + // structures. Real [re]compilation occures only when it really needed - + // while calling Exec[Next], Substitute, Dump, etc + // and only if Expression or other P-code affected properties was changed + // after last [re]compilation. + // If any errors while [re]compilation occures, Error method is called + // (by default Error raises exception - see below) + + property ModifierStr : RegExprString read GetModifierStr write SetModifierStr; + // Set/get default values of r.e.syntax modifiers. Modifiers in + // r.e. (?ismx-ismx) will replace this default values. + // If you try to set unsupported modifier, Error will be called + // (by defaul Error raises exception ERegExpr). + + property ModifierI : boolean index 1 read GetModifier write SetModifier; + // Modifier /i - caseinsensitive, initialized from RegExprModifierI + + property ModifierR : boolean index 2 read GetModifier write SetModifier; + // Modifier /r - use r.e.syntax extended for russian, + // (was property ExtSyntaxEnabled in previous versions) + // If true, then à-ÿ additional include russian letter '¸', + // À-ß additional include '¨', and à-ß include all russian symbols. + // You have to turn it off if it may interfere with you national alphabet. + // , initialized from RegExprModifierR + + property ModifierS : boolean index 3 read GetModifier write SetModifier; + // Modifier /s - '.' works as any char (else as [^\n]), + // , initialized from RegExprModifierS + + property ModifierG : boolean index 4 read GetModifier write SetModifier; + // Switching off modifier /g switchs all operators in + // non-greedy style, so if ModifierG = False, then + // all '*' works as '*?', all '+' as '+?' and so on. + // , initialized from RegExprModifierG + + property ModifierM : boolean index 5 read GetModifier write SetModifier; + // Treat string as multiple lines. That is, change `^' and `$' from + // matching at only the very start or end of the string to the start + // or end of any line anywhere within the string. + // , initialized from RegExprModifierM + + property ModifierX : boolean index 6 read GetModifier write SetModifier; + // Modifier /x - eXtended syntax, allow r.e. text formatting, + // see description in the help. Initialized from RegExprModifierX + + function Exec (const AInputString : RegExprString) : boolean; {$IFDEF OverMeth} overload; + {$IFNDEF FPC} // I do not know why FreePascal cannot overload methods with empty param list + function Exec : boolean; overload; //###0.949 + {$ENDIF} + function Exec (AOffset: integer) : boolean; overload; //###0.949 + {$ENDIF} + // match a programm against a string AInputString + // !!! Exec store AInputString into InputString property + // For Delphi 5 and higher available overloaded versions - first without + // parameter (uses already assigned to InputString property value) + // and second that has integer parameter and is same as ExecPos + + function ExecNext : boolean; + // find next match: + // ExecNext; + // works same as + // if MatchLen [0] = 0 then ExecPos (MatchPos [0] + 1) + // else ExecPos (MatchPos [0] + MatchLen [0]); + // but it's more simpler ! + // Raises exception if used without preceeding SUCCESSFUL call to + // Exec* (Exec, ExecPos, ExecNext). So You always must use something like + // if Exec (InputString) then repeat { proceed results} until not ExecNext; + + function ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + // find match for InputString starting from AOffset position + // (AOffset=1 - first char of InputString) + + property InputString : RegExprString read GetInputString write SetInputString; + // returns current input string (from last Exec call or last assign + // to this property). + // Any assignment to this property clear Match* properties ! + + function Substitute (const ATemplate : RegExprString) : RegExprString; + // Returns ATemplate with '$&' or '$0' replaced by whole r.e. + // occurence and '$n' replaced by occurence of subexpression #n. + // Since v.0.929 '$' used instead of '\' (for future extensions + // and for more Perl-compatibility) and accept more then one digit. + // If you want place into template raw '$' or '\', use prefix '\' + // Example: '1\$ is $2\\rub\\' -> '1$ is \rub\' + // If you want to place raw digit after '$n' you must delimit + // n with curly braces '{}'. + // Example: 'a$12bc' -> 'abc' + // 'a${1}2bc' -> 'a2bc'. + + procedure Split (AInputStr : RegExprString; APieces : TStrings); + // Split AInputStr into APieces by r.e. occurencies + // Internally calls Exec[Next] + + function Replace (AInputStr : RegExprString; + const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) //###0.946 + : RegExprString; {$IFDEF OverMeth} overload; + function Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; overload; + {$ENDIF} + function ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + // Returns AInputStr with r.e. occurencies replaced by AReplaceStr + // If AUseSubstitution is true, then AReplaceStr will be used + // as template for Substitution methods. + // For example: + // Expression := '({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*'; + // Replace ('BLOCK( test1)', 'def "$1" value "$2"', True); + // will return: def 'BLOCK' value 'test1' + // Replace ('BLOCK( test1)', 'def "$1" value "$2"') + // will return: def "$1" value "$2" + // Internally calls Exec[Next] + // Overloaded version and ReplaceEx operate with call-back function, + // so You can implement really complex functionality. + + property SubExprMatchCount : integer read GetSubExprMatchCount; + // Number of subexpressions has been found in last Exec* call. + // If there are no subexpr. but whole expr was found (Exec* returned True), + // then SubExprMatchCount=0, if no subexpressions nor whole + // r.e. found (Exec* returned false) then SubExprMatchCount=-1. + // Note, that some subexpr. may be not found and for such + // subexpr. MathPos=MatchLen=-1 and Match=''. + // For example: Expression := '(1)?2(3)?'; + // Exec ('123'): SubExprMatchCount=2, Match[0]='123', [1]='1', [2]='3' + // Exec ('12'): SubExprMatchCount=1, Match[0]='12', [1]='1' + // Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3' + // Exec ('2'): SubExprMatchCount=0, Match[0]='2' + // Exec ('7') - return False: SubExprMatchCount=-1 + + property MatchPos [Idx : integer] : integer read GetMatchPos; + // pos of entrance subexpr. #Idx into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + property MatchLen [Idx : integer] : integer read GetMatchLen; + // len of entrance subexpr. #Idx r.e. into tested in last Exec* + // string. First subexpr. have Idx=1, last - MatchCount, + // whole r.e. have Idx=0. + // Returns -1 if in r.e. no such subexpr. or this subexpr. + // not found in input string. + // Remember - MatchLen may be 0 (if r.e. match empty string) ! + + property Match [Idx : integer] : RegExprString read GetMatch; + // == copy (InputString, MatchPos [Idx], MatchLen [Idx]) + // Returns '' if in r.e. no such subexpr. or this subexpr. + // not found in input string. + + function LastError : integer; + // Returns ID of last error, 0 if no errors (unusable if + // Error method raises exception) and clear internal status + // into 0 (no errors). + + function ErrorMsg (AErrorID : integer) : RegExprString; virtual; + // Returns Error message for error with ID = AErrorID. + + property CompilerErrorPos : integer read GetCompilerErrorPos; + // Returns pos in r.e. there compiler stopped. + // Usefull for error diagnostics + + property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927 + // Contains chars, treated as /s (initially filled with RegExprSpaceChars + // global constant) + + property WordChars : RegExprString read fWordChars write fWordChars; //###0.929 + // Contains chars, treated as /w (initially filled with RegExprWordChars + // global constant) + + property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941 + // line separators (like \n in Unix) + + property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941 + // paired line separator (like \r\n in DOS and Windows). + // must contain exactly two chars or no chars at all + + class function InvertCaseFunction (const Ch : REChar) : REChar; + // Converts Ch into upper case if it in lower case or in lower + // if it in upper (uses current system local setings) + + property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935 + // Set this property if you want to override case-insensitive functionality. + // Create set it to RegExprInvertCaseFunction (InvertCaseFunction by default) + + procedure Compile; //###0.941 + // [Re]compile r.e. Usefull for example for GUI r.e. editors (to check + // all properties validity). + + {$IFDEF RegExpPCodeDump} + function Dump : RegExprString; + // dump a compiled regexp in vaguely comprehensible form + {$ENDIF} + end; + + ERegExpr = class (Exception) + public + ErrorCode : integer; + CompilerErrorPos : integer; + end; + +const + RegExprInvertCaseFunction : TRegExprInvertCaseFunction = {$IFDEF FPC} nil {$ELSE} TRegExpr.InvertCaseFunction{$ENDIF}; + // defaul for InvertCase property + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; +// true if string AInputString match regular expression ARegExpr +// ! will raise exeption if syntax errors in ARegExpr + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); +// Split AInputStr into APieces by r.e. ARegExpr occurencies + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947 +// Returns AInputStr with r.e. occurencies replaced by AReplaceStr +// If AUseSubstitution is true, then AReplaceStr will be used +// as template for Substitution methods. +// For example: +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"', True) +// will return: def 'BLOCK' value 'test1' +// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', +// 'BLOCK( test1)', 'def "$1" value "$2"') +// will return: def "$1" value "$2" + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; +// Replace all metachars with its safe representation, +// for example 'abc$cd.(' converts into 'abc\$cd\.\(' +// This function usefull for r.e. autogeneration from +// user input + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; +// Makes list of subexpressions found in ARegExpr r.e. +// In ASubExps every item represent subexpression, +// from first to last, in format: +// String - subexpression text (without '()') +// low word of Object - starting position in ARegExpr, including '(' +// if exists! (first position is 1) +// high word of Object - length, including starting '(' and ending ')' +// if exist! +// AExtendedSyntax - must be True if modifier /m will be On while +// using the r.e. +// Usefull for GUI editors of r.e. etc (You can find example of using +// in TestRExp.dpr project) +// Returns +// 0 Success. No unbalanced brackets was found; +// -1 There are not enough closing brackets ')'; +// -(n+1) At position n was found opening '[' without //###0.942 +// corresponding closing ']'; +// n At position n was found closing bracket ')' without +// corresponding opening '('. +// If Result <> 0, then ASubExpr can contain empty items or illegal ones + + +implementation + +uses + Windows; // CharUpper/Lower + +const + TRegExprVersionMajor : integer = 0; + TRegExprVersionMinor : integer = 952; + // TRegExpr.VersionMajor/Minor return values of this constants + + MaskModI = 1; // modifier /i bit in fModifiers + MaskModR = 2; // -"- /r + MaskModS = 4; // -"- /s + MaskModG = 8; // -"- /g + MaskModM = 16; // -"- /m + MaskModX = 32; // -"- /x + + {$IFDEF UniCode} + XIgnoredChars = ' '#9#$d#$a; + {$ELSE} + XIgnoredChars = [' ', #9, #$d, #$a]; + {$ENDIF} + +{=============================================================} +{=================== WideString functions ====================} +{=============================================================} + +{$IFDEF UniCode} + +function StrPCopy (Dest: PRegExprChar; const Source: RegExprString): PRegExprChar; + var + i, Len : Integer; + begin + Len := length (Source); //###0.932 + for i := 1 to Len do + Dest [i - 1] := Source [i]; + Dest [Len] := #0; + Result := Dest; + end; { of function StrPCopy +--------------------------------------------------------------} + +function StrLCopy (Dest, Source: PRegExprChar; MaxLen: Cardinal): PRegExprChar; + var i: Integer; + begin + for i := 0 to MaxLen - 1 do + Dest [i] := Source [i]; + Result := Dest; + end; { of function StrLCopy +--------------------------------------------------------------} + +function StrLen (Str: PRegExprChar): Cardinal; + begin + Result:=0; + while Str [result] <> #0 + do Inc (Result); + end; { of function StrLen +--------------------------------------------------------------} + +function StrPos (Str1, Str2: PRegExprChar): PRegExprChar; + var n: Integer; + begin + Result := nil; + n := Pos (RegExprString (Str2), RegExprString (Str1)); + if n = 0 + then EXIT; + Result := Str1 + n - 1; + end; { of function StrPos +--------------------------------------------------------------} + +function StrLComp (Str1, Str2: PRegExprChar; MaxLen: Cardinal): Integer; + var S1, S2: RegExprString; + begin + S1 := Str1; + S2 := Str2; + if Copy (S1, 1, MaxLen) > Copy (S2, 1, MaxLen) + then Result := 1 + else + if Copy (S1, 1, MaxLen) < Copy (S2, 1, MaxLen) + then Result := -1 + else Result := 0; + end; { function StrLComp +--------------------------------------------------------------} + +function StrScan (Str: PRegExprChar; Chr: WideChar): PRegExprChar; + begin + Result := nil; + while (Str^ <> #0) and (Str^ <> Chr) + do Inc (Str); + if (Str^ <> #0) + then Result := Str; + end; { of function StrScan +--------------------------------------------------------------} + +{$ENDIF} + + +{=============================================================} +{===================== Global functions ======================} +{=============================================================} + +function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; + var r : TRegExpr; + begin + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + Result := r.Exec (AInputStr); + finally r.Free; + end; + end; { of function ExecRegExpr +--------------------------------------------------------------} + +procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); + var r : TRegExpr; + begin + APieces.Clear; + r := TRegExpr.Create; + try + r.Expression := ARegExpr; + r.Split (AInputStr, APieces); + finally r.Free; + end; + end; { of procedure SplitRegExpr +--------------------------------------------------------------} + +function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + begin + with TRegExpr.Create do try + Expression := ARegExpr; + Result := Replace (AInputStr, AReplaceStr, AUseSubstitution); + finally Free; + end; + end; { of function ReplaceRegExpr +--------------------------------------------------------------} + +function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; + const + RegExprMetaSet : RegExprString = '^$.[()|?+*'+EscChar+'{' + + ']}'; // - this last are additional to META. + // Very similar to META array, but slighly changed. + // !Any changes in META array must be synchronized with this set. + var + i, i0, Len : integer; + begin + Result := ''; + Len := length (AStr); + i := 1; + i0 := i; + while i <= Len do begin + if Pos (AStr [i], RegExprMetaSet) > 0 then begin + Result := Result + System.Copy (AStr, i0, i - i0) + + EscChar + AStr [i]; + i0 := i + 1; + end; + inc (i); + end; + Result := Result + System.Copy (AStr, i0, MaxInt); // Tail + end; { of function QuoteRegExprMetaChars +--------------------------------------------------------------} + +function RegExprSubExpressions (const ARegExpr : string; + ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; + type + TStackItemRec = record //###0.945 + SubExprIdx : integer; + StartPos : integer; + end; + TStackArray = packed array [0 .. NSUBEXPMAX - 1] of TStackItemRec; + var + Len, SubExprLen : integer; + i, i0 : integer; + Modif : integer; + Stack : ^TStackArray; //###0.945 + StackIdx, StackSz : integer; + begin + Result := 0; // no unbalanced brackets found at this very moment + + ASubExprs.Clear; // I don't think that adding to non empty list + // can be usefull, so I simplified algorithm to work only with empty list + + Len := length (ARegExpr); // some optimization tricks + + // first we have to calculate number of subexpression to reserve + // space in Stack array (may be we'll reserve more then need, but + // it's faster then memory reallocation during parsing) + StackSz := 1; // add 1 for entire r.e. + for i := 1 to Len do + if ARegExpr [i] = '(' + then inc (StackSz); +// SetLength (Stack, StackSz); //###0.945 + GetMem (Stack, SizeOf (TStackItemRec) * StackSz); + try + + StackIdx := 0; + i := 1; + while (i <= Len) do begin + case ARegExpr [i] of + '(': begin + if (i < Len) and (ARegExpr [i + 1] = '?') then begin + // this is not subexpression, but comment or other + // Perl extension. We must check is it (?ismxrg-ismxrg) + // and change AExtendedSyntax if /x is changed. + inc (i, 2); // skip '(?' + i0 := i; + while (i <= Len) and (ARegExpr [i] <> ')') + do inc (i); + if i > Len + then Result := -1 // unbalansed '(' + else + if TRegExpr.ParseModifiersStr (System.Copy (ARegExpr, i, i - i0), Modif) + then AExtendedSyntax := (Modif and MaskModX) <> 0; + end + else begin // subexpression starts + ASubExprs.Add (''); // just reserve space + with Stack [StackIdx] do begin + SubExprIdx := ASubExprs.Count - 1; + StartPos := i; + end; + inc (StackIdx); + end; + end; + ')': begin + if StackIdx = 0 + then Result := i // unbalanced ')' + else begin + dec (StackIdx); + with Stack [StackIdx] do begin + SubExprLen := i - StartPos + 1; + ASubExprs.Objects [SubExprIdx] := + TObject (StartPos or (SubExprLen ShL 16)); + ASubExprs [SubExprIdx] := System.Copy ( + ARegExpr, StartPos + 1, SubExprLen - 2); // add without brackets + end; + end; + end; + EscChar: inc (i); // skip quoted symbol + '[': begin + // we have to skip character ranges at once, because they can + // contain '#', and '#' in it must NOT be recognized as eXtended + // comment beginning! + i0 := i; + inc (i); + if ARegExpr [i] = ']' // cannot be 'emty' ranges - this interpretes + then inc (i); // as ']' by itself + while (i <= Len) and (ARegExpr [i] <> ']') do + if ARegExpr [i] = EscChar //###0.942 + then inc (i, 2) // skip 'escaped' char to prevent stopping at '\]' + else inc (i); + if (i > Len) or (ARegExpr [i] <> ']') //###0.942 + then Result := - (i0 + 1); // unbalansed '[' //###0.942 + end; + '#': if AExtendedSyntax then begin + // skip eXtended comments + while (i <= Len) and (ARegExpr [i] <> #$d) and (ARegExpr [i] <> #$a) + // do not use [#$d, #$a] due to UniCode compatibility + do inc (i); + while (i + 1 <= Len) and ((ARegExpr [i + 1] = #$d) or (ARegExpr [i + 1] = #$a)) + do inc (i); // attempt to work with different kinds of line separators + // now we are at the line separator that must be skipped. + end; + // here is no 'else' clause - we simply skip ordinary chars + end; // of case + inc (i); // skip scanned char + // ! can move after Len due to skipping quoted symbol + end; + + // check brackets balance + if StackIdx <> 0 + then Result := -1; // unbalansed '(' + + // check if entire r.e. added + if (ASubExprs.Count = 0) + or ((integer (ASubExprs.Objects [0]) and $FFFF) <> 1) + or (((integer (ASubExprs.Objects [0]) ShR 16) and $FFFF) <> Len) + // whole r.e. wasn't added because it isn't bracketed + // well, we add it now: + then ASubExprs.InsertObject (0, ARegExpr, TObject ((Len ShL 16) or 1)); + + finally FreeMem (Stack); + end; + end; { of function RegExprSubExpressions +--------------------------------------------------------------} + + + +const + MAGIC = TREOp (216);// programm signature + +// name opcode opnd? meaning + EEND = TREOp (0); // - End of program + BOL = TREOp (1); // - Match "" at beginning of line + EOL = TREOp (2); // - Match "" at end of line + ANY = TREOp (3); // - Match any one character + ANYOF = TREOp (4); // Str Match any character in string Str + ANYBUT = TREOp (5); // Str Match any char. not in string Str + BRANCH = TREOp (6); // Node Match this alternative, or the next + BACK = TREOp (7); // - Jump backward (Next < 0) + EXACTLY = TREOp (8); // Str Match string Str + NOTHING = TREOp (9); // - Match empty string + STAR = TREOp (10); // Node Match this (simple) thing 0 or more times + PLUS = TREOp (11); // Node Match this (simple) thing 1 or more times + ANYDIGIT = TREOp (12); // - Match any digit (equiv [0-9]) + NOTDIGIT = TREOp (13); // - Match not digit (equiv [0-9]) + ANYLETTER = TREOp (14); // - Match any letter from property WordChars + NOTLETTER = TREOp (15); // - Match not letter from property WordChars + ANYSPACE = TREOp (16); // - Match any space char (see property SpaceChars) + NOTSPACE = TREOp (17); // - Match not space char (see property SpaceChars) + BRACES = TREOp (18); // Node,Min,Max Match this (simple) thing from Min to Max times. + // Min and Max are TREBracesArg + COMMENT = TREOp (19); // - Comment ;) + EXACTLYCI = TREOp (20); // Str Match string Str case insensitive + ANYOFCI = TREOp (21); // Str Match any character in string Str, case insensitive + ANYBUTCI = TREOp (22); // Str Match any char. not in string Str, case insensitive + LOOPENTRY = TREOp (23); // Node Start of loop (Node - LOOP for this loop) + LOOP = TREOp (24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY. + // Min and Max are TREBracesArg + // Node - next node in sequence, + // LoopEntryJmp - associated LOOPENTRY node addr + ANYOFTINYSET= TREOp (25); // Chrs Match any one char from Chrs (exactly TinySetLen chars) + ANYBUTTINYSET=TREOp (26); // Chrs Match any one char not in Chrs (exactly TinySetLen chars) + ANYOFFULLSET= TREOp (27); // Set Match any one char from set of char + // - very fast (one CPU instruction !) but takes 32 bytes of p-code + BSUBEXP = TREOp (28); // Idx Match previously matched subexpression #Idx (stored as REChar) //###0.936 + BSUBEXPCI = TREOp (29); // Idx -"- in case-insensitive mode + + // Non-Greedy Style Ops //###0.940 + STARNG = TREOp (30); // Same as START but in non-greedy mode + PLUSNG = TREOp (31); // Same as PLUS but in non-greedy mode + BRACESNG = TREOp (32); // Same as BRACES but in non-greedy mode + LOOPNG = TREOp (33); // Same as LOOP but in non-greedy mode + + // Multiline mode \m + BOLML = TREOp (34); // - Match "" at beginning of line + EOLML = TREOp (35); // - Match "" at end of line + ANYML = TREOp (36); // - Match any one character + + // Word boundary + BOUND = TREOp (37); // Match "" between words //###0.943 + NOTBOUND = TREOp (38); // Match "" not between words //###0.943 + + // !!! Change OPEN value if you add new opcodes !!! + + OPEN = TREOp (39); // - Mark this point in input as start of \n + // OPEN + 1 is \1, etc. + CLOSE = TREOp (ord (OPEN) + NSUBEXP); + // - Analogous to OPEN. + + // !!! Don't add new OpCodes after CLOSE !!! + +// We work with p-code thru pointers, compatible with PRegExprChar. +// Note: all code components (TRENextOff, TREOp, TREBracesArg, etc) +// must have lengths that can be divided by SizeOf (REChar) ! +// A node is TREOp of opcode followed Next "pointer" of TRENextOff type. +// The Next is a offset from the opcode of the node containing it. +// An operand, if any, simply follows the node. (Note that much of +// the code generation knows about this implicit relationship!) +// Using TRENextOff=integer speed up p-code processing. + +// Opcodes description: +// +// BRANCH The set of branches constituting a single choice are hooked +// together with their "next" pointers, since precedence prevents +// anything being concatenated to any individual branch. The +// "next" pointer of the last BRANCH in a choice points to the +// thing following the whole choice. This is also where the +// final "next" pointer of each individual branch points; each +// branch starts with the operand node of a BRANCH node. +// BACK Normal "next" pointers all implicitly point forward; BACK +// exists to make loop structures possible. +// STAR,PLUS,BRACES '?', and complex '*' and '+', are implemented as +// circular BRANCH structures using BACK. Complex '{min,max}' +// - as pair LOOPENTRY-LOOP (see below). Simple cases (one +// character per match) are implemented with STAR, PLUS and +// BRACES for speed and to minimize recursive plunges. +// LOOPENTRY,LOOP {min,max} are implemented as special pair +// LOOPENTRY-LOOP. Each LOOPENTRY initialize loopstack for +// current level. +// OPEN,CLOSE are numbered at compile time. + + +{=============================================================} +{================== Error handling section ===================} +{=============================================================} + +const + reeOk = 0; + reeCompNullArgument = 100; + reeCompRegexpTooBig = 101; + reeCompParseRegTooManyBrackets = 102; + reeCompParseRegUnmatchedBrackets = 103; + reeCompParseRegUnmatchedBrackets2 = 104; + reeCompParseRegJunkOnEnd = 105; + reePlusStarOperandCouldBeEmpty = 106; + reeNestedSQP = 107; + reeBadHexDigit = 108; + reeInvalidRange = 109; + reeParseAtomTrailingBackSlash = 110; + reeNoHexCodeAfterBSlashX = 111; + reeHexCodeAfterBSlashXTooBig = 112; + reeUnmatchedSqBrackets = 113; + reeInternalUrp = 114; + reeQPSBFollowsNothing = 115; + reeTrailingBackSlash = 116; + reeRarseAtomInternalDisaster = 119; + reeBRACESArgTooBig = 122; + reeBracesMinParamGreaterMax = 124; + reeUnclosedComment = 125; + reeComplexBracesNotImplemented = 126; + reeUrecognizedModifier = 127; + reeBadLinePairedSeparator = 128; + reeRegRepeatCalledInappropriately = 1000; + reeMatchPrimMemoryCorruption = 1001; + reeMatchPrimCorruptedPointers = 1002; + reeNoExpression = 1003; + reeCorruptedProgram = 1004; + reeNoInpitStringSpecified = 1005; + reeOffsetMustBeGreaterThen0 = 1006; + reeExecNextWithoutExec = 1007; + reeGetInputStringWithoutInputString = 1008; + reeDumpCorruptedOpcode = 1011; + reeModifierUnsupported = 1013; + reeLoopStackExceeded = 1014; + reeLoopWithoutEntry = 1015; + reeBadPCodeImported = 2000; + +function TRegExpr.ErrorMsg (AErrorID : integer) : RegExprString; + begin + case AErrorID of + reeOk: Result := 'No errors'; + reeCompNullArgument: Result := 'TRegExpr(comp): Null Argument'; + reeCompRegexpTooBig: Result := 'TRegExpr(comp): Regexp Too Big'; + reeCompParseRegTooManyBrackets: Result := 'TRegExpr(comp): ParseReg Too Many ()'; + reeCompParseRegUnmatchedBrackets: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegUnmatchedBrackets2: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; + reeCompParseRegJunkOnEnd: Result := 'TRegExpr(comp): ParseReg Junk On End'; + reePlusStarOperandCouldBeEmpty: Result := 'TRegExpr(comp): *+ Operand Could Be Empty'; + reeNestedSQP: Result := 'TRegExpr(comp): Nested *?+'; + reeBadHexDigit: Result := 'TRegExpr(comp): Bad Hex Digit'; + reeInvalidRange: Result := 'TRegExpr(comp): Invalid [] Range'; + reeParseAtomTrailingBackSlash: Result := 'TRegExpr(comp): Parse Atom Trailing \'; + reeNoHexCodeAfterBSlashX: Result := 'TRegExpr(comp): No Hex Code After \x'; + reeHexCodeAfterBSlashXTooBig: Result := 'TRegExpr(comp): Hex Code After \x Is Too Big'; + reeUnmatchedSqBrackets: Result := 'TRegExpr(comp): Unmatched []'; + reeInternalUrp: Result := 'TRegExpr(comp): Internal Urp'; + reeQPSBFollowsNothing: Result := 'TRegExpr(comp): ?+*{ Follows Nothing'; + reeTrailingBackSlash: Result := 'TRegExpr(comp): Trailing \'; + reeRarseAtomInternalDisaster: Result := 'TRegExpr(comp): RarseAtom Internal Disaster'; + reeBRACESArgTooBig: Result := 'TRegExpr(comp): BRACES Argument Too Big'; + reeBracesMinParamGreaterMax: Result := 'TRegExpr(comp): BRACE Min Param Greater then Max'; + reeUnclosedComment: Result := 'TRegExpr(comp): Unclosed (?#Comment)'; + reeComplexBracesNotImplemented: Result := 'TRegExpr(comp): If you want take part in beta-testing BRACES ''{min,max}'' and non-greedy ops ''*?'', ''+?'', ''??'' for complex cases - remove ''.'' from {.$DEFINE ComplexBraces}'; + reeUrecognizedModifier: Result := 'TRegExpr(comp): Urecognized Modifier'; + reeBadLinePairedSeparator: Result := 'TRegExpr(comp): LinePairedSeparator must countain two different chars or no chars at all'; + + reeRegRepeatCalledInappropriately: Result := 'TRegExpr(exec): RegRepeat Called Inappropriately'; + reeMatchPrimMemoryCorruption: Result := 'TRegExpr(exec): MatchPrim Memory Corruption'; + reeMatchPrimCorruptedPointers: Result := 'TRegExpr(exec): MatchPrim Corrupted Pointers'; + reeNoExpression: Result := 'TRegExpr(exec): Not Assigned Expression Property'; + reeCorruptedProgram: Result := 'TRegExpr(exec): Corrupted Program'; + reeNoInpitStringSpecified: Result := 'TRegExpr(exec): No Input String Specified'; + reeOffsetMustBeGreaterThen0: Result := 'TRegExpr(exec): Offset Must Be Greater Then 0'; + reeExecNextWithoutExec: Result := 'TRegExpr(exec): ExecNext Without Exec[Pos]'; + reeGetInputStringWithoutInputString: Result := 'TRegExpr(exec): GetInputString Without InputString'; + reeDumpCorruptedOpcode: Result := 'TRegExpr(dump): Corrupted Opcode'; + reeLoopStackExceeded: Result := 'TRegExpr(exec): Loop Stack Exceeded'; + reeLoopWithoutEntry: Result := 'TRegExpr(exec): Loop Without LoopEntry !'; + + reeBadPCodeImported: Result := 'TRegExpr(misc): Bad p-code imported'; + else Result := 'Unknown error'; + end; + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +function TRegExpr.LastError : integer; + begin + Result := fLastError; + fLastError := reeOk; + end; { of function TRegExpr.LastError +--------------------------------------------------------------} + + +{=============================================================} +{===================== Common section ========================} +{=============================================================} + +class function TRegExpr.VersionMajor : integer; //###0.944 + begin + Result := TRegExprVersionMajor; + end; { of class function TRegExpr.VersionMajor +--------------------------------------------------------------} + +class function TRegExpr.VersionMinor : integer; //###0.944 + begin + Result := TRegExprVersionMinor; + end; { of class function TRegExpr.VersionMinor +--------------------------------------------------------------} + +constructor TRegExpr.Create; + begin + inherited; + programm := nil; + fExpression := nil; + fInputString := nil; + + regexpbeg := nil; + fExprIsCompiled := false; + + ModifierI := RegExprModifierI; + ModifierR := RegExprModifierR; + ModifierS := RegExprModifierS; + ModifierG := RegExprModifierG; + ModifierM := RegExprModifierM; //###0.940 + + SpaceChars := RegExprSpaceChars; //###0.927 + WordChars := RegExprWordChars; //###0.929 + fInvertCase := RegExprInvertCaseFunction; //###0.927 + + fLineSeparators := RegExprLineSeparators; //###0.941 + LinePairedSeparator := RegExprLinePairedSeparator; //###0.941 + end; { of constructor TRegExpr.Create +--------------------------------------------------------------} + +destructor TRegExpr.Destroy; + begin + if programm <> nil + then FreeMem (programm); + if fExpression <> nil + then FreeMem (fExpression); + if fInputString <> nil + then FreeMem (fInputString); + end; { of destructor TRegExpr.Destroy +--------------------------------------------------------------} + +class function TRegExpr.InvertCaseFunction (const Ch : REChar) : REChar; + begin + {$IFDEF UniCode} + if Ch >= #128 + then Result := Ch + else + {$ENDIF} + begin + Result := {$IFDEF FPC}AnsiUpperCase (Ch) [1]{$ELSE} REChar (CharUpper (PChar (Ch))){$ENDIF}; + if Result = Ch + then Result := {$IFDEF FPC}AnsiLowerCase (Ch) [1]{$ELSE} REChar (CharLower (PChar (Ch))){$ENDIF}; + end; + end; { of function TRegExpr.InvertCaseFunction +--------------------------------------------------------------} + +function TRegExpr.GetExpression : RegExprString; + begin + if fExpression <> nil + then Result := fExpression + else Result := ''; + end; { of function TRegExpr.GetExpression +--------------------------------------------------------------} + +procedure TRegExpr.SetExpression (const s : RegExprString); + var + Len : integer; //###0.950 + begin + if (s <> fExpression) or not fExprIsCompiled then begin + fExprIsCompiled := false; + if fExpression <> nil then begin + FreeMem (fExpression); + fExpression := nil; + end; + if s <> '' then begin + Len := length (s); //###0.950 + GetMem (fExpression, (Len + 1) * SizeOf (REChar)); +// StrPCopy (fExpression, s); //###0.950 replaced due to StrPCopy limitation of 255 chars + {$IFDEF UniCode} + StrPCopy (fExpression, Copy (s, 1, Len)); //###0.950 + {$ELSE} + StrLCopy (fExpression, PRegExprChar (s), Len); //###0.950 + {$ENDIF UniCode} + + InvalidateProgramm; //###0.941 + end; + end; + end; { of procedure TRegExpr.SetExpression +--------------------------------------------------------------} + +function TRegExpr.GetSubExprMatchCount : integer; + begin + if Assigned (fInputString) then begin + Result := NSUBEXP - 1; + while (Result > 0) and ((startp [Result] = nil) + or (endp [Result] = nil)) + do dec (Result); + end + else Result := -1; + end; { of function TRegExpr.GetSubExprMatchCount +--------------------------------------------------------------} + +function TRegExpr.GetMatchPos (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := (startp [Idx] - fInputString) + 1; + end + else Result := -1; + end; { of function TRegExpr.GetMatchPos +--------------------------------------------------------------} + +function TRegExpr.GetMatchLen (Idx : integer) : integer; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin + Result := endp [Idx] - startp [Idx]; + end + else Result := -1; + end; { of function TRegExpr.GetMatchLen +--------------------------------------------------------------} + +function TRegExpr.GetMatch (Idx : integer) : RegExprString; + begin + if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) + and Assigned (startp [Idx]) and Assigned (endp [Idx]) + //then Result := copy (fInputString, MatchPos [Idx], MatchLen [Idx]) //###0.929 + then SetString (Result, startp [idx], endp [idx] - startp [idx]) + else Result := ''; + end; { of function TRegExpr.GetMatch +--------------------------------------------------------------} + +function TRegExpr.GetModifierStr : RegExprString; + begin + Result := '-'; + + if ModifierI + then Result := 'i' + Result + else Result := Result + 'i'; + if ModifierR + then Result := 'r' + Result + else Result := Result + 'r'; + if ModifierS + then Result := 's' + Result + else Result := Result + 's'; + if ModifierG + then Result := 'g' + Result + else Result := Result + 'g'; + if ModifierM + then Result := 'm' + Result + else Result := Result + 'm'; + if ModifierX + then Result := 'x' + Result + else Result := Result + 'x'; + + if Result [length (Result)] = '-' // remove '-' if all modifiers are 'On' + then System.Delete (Result, length (Result), 1); + end; { of function TRegExpr.GetModifierStr +--------------------------------------------------------------} + +class function TRegExpr.ParseModifiersStr (const AModifiers : RegExprString; +var AModifiersInt : integer) : boolean; +// !!! Be carefull - this is class function and must not use object instance fields + var + i : integer; + IsOn : boolean; + Mask : integer; + begin + Result := true; + IsOn := true; + Mask := 0; // prevent compiler warning + for i := 1 to length (AModifiers) do + if AModifiers [i] = '-' + then IsOn := false + else begin + if Pos (AModifiers [i], 'iI') > 0 + then Mask := MaskModI + else if Pos (AModifiers [i], 'rR') > 0 + then Mask := MaskModR + else if Pos (AModifiers [i], 'sS') > 0 + then Mask := MaskModS + else if Pos (AModifiers [i], 'gG') > 0 + then Mask := MaskModG + else if Pos (AModifiers [i], 'mM') > 0 + then Mask := MaskModM + else if Pos (AModifiers [i], 'xX') > 0 + then Mask := MaskModX + else begin + Result := false; + EXIT; + end; + if IsOn + then AModifiersInt := AModifiersInt or Mask + else AModifiersInt := AModifiersInt and not Mask; + end; + end; { of function TRegExpr.ParseModifiersStr +--------------------------------------------------------------} + +procedure TRegExpr.SetModifierStr (const AModifiers : RegExprString); + begin + if not ParseModifiersStr (AModifiers, fModifiers) + then Error (reeModifierUnsupported); + end; { of procedure TRegExpr.SetModifierStr +--------------------------------------------------------------} + +function TRegExpr.GetModifier (AIndex : integer) : boolean; + var + Mask : integer; + begin + Result := false; + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + Result := (fModifiers and Mask) <> 0; + end; { of function TRegExpr.GetModifier +--------------------------------------------------------------} + +procedure TRegExpr.SetModifier (AIndex : integer; ASet : boolean); + var + Mask : integer; + begin + case AIndex of + 1: Mask := MaskModI; + 2: Mask := MaskModR; + 3: Mask := MaskModS; + 4: Mask := MaskModG; + 5: Mask := MaskModM; + 6: Mask := MaskModX; + else begin + Error (reeModifierUnsupported); + EXIT; + end; + end; + if ASet + then fModifiers := fModifiers or Mask + else fModifiers := fModifiers and not Mask; + end; { of procedure TRegExpr.SetModifier +--------------------------------------------------------------} + + +{=============================================================} +{==================== Compiler section =======================} +{=============================================================} + +procedure TRegExpr.InvalidateProgramm; + begin + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + end; { of procedure TRegExpr.InvalidateProgramm +--------------------------------------------------------------} + +procedure TRegExpr.Compile; //###0.941 + begin + if fExpression = nil then begin // No Expression assigned + Error (reeNoExpression); + EXIT; + end; + CompileRegExpr (fExpression); + end; { of procedure TRegExpr.Compile +--------------------------------------------------------------} + +function TRegExpr.IsProgrammOk : boolean; + {$IFNDEF UniCode} + var + i : integer; + {$ENDIF} + begin + Result := false; + + // check modifiers + if fModifiers <> fProgModifiers //###0.941 + then InvalidateProgramm; + + // can we optimize line separators by using sets? + {$IFNDEF UniCode} + fLineSeparatorsSet := []; + for i := 1 to length (fLineSeparators) + do System.Include (fLineSeparatorsSet, fLineSeparators [i]); + {$ENDIF} + + // [Re]compile if needed + if programm = nil + then Compile; //###0.941 + + // check [re]compiled programm + if programm = nil + then EXIT // error was set/raised by Compile (was reeExecAfterCompErr) + else if programm [0] <> MAGIC // Program corrupted. + then Error (reeCorruptedProgram) + else Result := true; + end; { of function TRegExpr.IsProgrammOk +--------------------------------------------------------------} + +procedure TRegExpr.Tail (p : PRegExprChar; val : PRegExprChar); +// set the next-pointer at the end of a node chain + var + scan : PRegExprChar; + temp : PRegExprChar; +// i : int64; + begin + if p = @regdummy + then EXIT; + // Find last node. + scan := p; + REPEAT + temp := regnext (scan); + if temp = nil + then BREAK; + scan := temp; + UNTIL false; + // Set Next 'pointer' + if val < scan + then PRENextOff (scan + REOpSz)^ := - (scan - val) //###0.948 + // work around PWideChar subtraction bug (Delphi uses + // shr after subtraction to calculate widechar distance %-( ) + // so, if difference is negative we have .. the "feature" :( + // I could wrap it in $IFDEF UniCode, but I didn't because + // "P – Q computes the difference between the address given + // by P (the higher address) and the address given by Q (the + // lower address)" - Delphi help quotation. + else PRENextOff (scan + REOpSz)^ := val - scan; //###0.933 + end; { of procedure TRegExpr.Tail +--------------------------------------------------------------} + +procedure TRegExpr.OpTail (p : PRegExprChar; val : PRegExprChar); +// regtail on operand of first argument; nop if operandless + begin + // "Operandless" and "op != BRANCH" are synonymous in practice. + if (p = nil) or (p = @regdummy) or (PREOp (p)^ <> BRANCH) + then EXIT; + Tail (p + REOpSz + RENextOffSz, val); //###0.933 + end; { of procedure TRegExpr.OpTail +--------------------------------------------------------------} + +function TRegExpr.EmitNode (op : TREOp) : PRegExprChar; //###0.933 +// emit a node, return location + begin + Result := regcode; + if Result <> @regdummy then begin + PREOp (regcode)^ := op; + inc (regcode, REOpSz); + PRENextOff (regcode)^ := 0; // Next "pointer" := nil + inc (regcode, RENextOffSz); + end + else inc (regsize, REOpSz + RENextOffSz); // compute code size without code generation + end; { of function TRegExpr.EmitNode +--------------------------------------------------------------} + +procedure TRegExpr.EmitC (b : REChar); +// emit a byte to code + begin + if regcode <> @regdummy then begin + regcode^ := b; + inc (regcode); + end + else inc (regsize); // Type of p-code pointer always is ^REChar + end; { of procedure TRegExpr.EmitC +--------------------------------------------------------------} + +procedure TRegExpr.InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); +// insert an operator in front of already-emitted operand +// Means relocating the operand. + var + src, dst, place : PRegExprChar; + i : integer; + begin + if regcode = @regdummy then begin + inc (regsize, sz); + EXIT; + end; + src := regcode; + inc (regcode, sz); + dst := regcode; + while src > opnd do begin + dec (dst); + dec (src); + dst^ := src^; + end; + place := opnd; // Op node, where operand used to be. + PREOp (place)^ := op; + inc (place, REOpSz); + for i := 1 + REOpSz to sz do begin + place^ := #0; + inc (place); + end; + end; { of procedure TRegExpr.InsertOperator +--------------------------------------------------------------} + +function strcspn (s1 : PRegExprChar; s2 : PRegExprChar) : integer; +// find length of initial segment of s1 consisting +// entirely of characters not from s2 + var scan1, scan2 : PRegExprChar; + begin + Result := 0; + scan1 := s1; + while scan1^ <> #0 do begin + scan2 := s2; + while scan2^ <> #0 do + if scan1^ = scan2^ + then EXIT + else inc (scan2); + inc (Result); + inc (scan1) + end; + end; { of function strcspn +--------------------------------------------------------------} + +const +// Flags to be passed up and down. + HASWIDTH = 01; // Known never to match nil string. + SIMPLE = 02; // Simple enough to be STAR/PLUS/BRACES operand. + SPSTART = 04; // Starts with * or +. + WORST = 0; // Worst case. + META : array [0 .. 12] of REChar = ( + '^', '$', '.', '[', '(', ')', '|', '?', '+', '*', EscChar, '{', #0); + // Any modification must be synchronized with QuoteRegExprMetaChars !!! + +{$IFDEF UniCode} + RusRangeLo : array [0 .. 33] of REChar = + (#$430,#$431,#$432,#$433,#$434,#$435,#$451,#$436,#$437, + #$438,#$439,#$43A,#$43B,#$43C,#$43D,#$43E,#$43F, + #$440,#$441,#$442,#$443,#$444,#$445,#$446,#$447, + #$448,#$449,#$44A,#$44B,#$44C,#$44D,#$44E,#$44F,#0); + RusRangeHi : array [0 .. 33] of REChar = + (#$410,#$411,#$412,#$413,#$414,#$415,#$401,#$416,#$417, + #$418,#$419,#$41A,#$41B,#$41C,#$41D,#$41E,#$41F, + #$420,#$421,#$422,#$423,#$424,#$425,#$426,#$427, + #$428,#$429,#$42A,#$42B,#$42C,#$42D,#$42E,#$42F,#0); + RusRangeLoLow = #$430{'à'}; + RusRangeLoHigh = #$44F{'ÿ'}; + RusRangeHiLow = #$410{'À'}; + RusRangeHiHigh = #$42F{'ß'}; +{$ELSE} + RusRangeLo = 'àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ'; + RusRangeHi = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß'; + RusRangeLoLow = 'à'; + RusRangeLoHigh = 'ÿ'; + RusRangeHiLow = 'À'; + RusRangeHiHigh = 'ß'; +{$ENDIF} + +function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean; +// compile a regular expression into internal code +// We can't allocate space until we know how big the compiled form will be, +// but we can't compile it (and thus know how big it is) until we've got a +// place to put the code. So we cheat: we compile it twice, once with code +// generation turned off and size counting turned on, and once "for real". +// This also means that we don't allocate space until we are sure that the +// thing really will compile successfully, and we never have to move the +// code and thus invalidate pointers into it. (Note that it has to be in +// one piece because free() must be able to free it all.) +// Beware that the optimization-preparation code in here knows about some +// of the structure of the compiled regexp. + var + scan, longest : PRegExprChar; + len : cardinal; + flags : integer; + begin + Result := false; // life too dark + + regparse := nil; // for correct error handling + regexpbeg := exp; + try + + if programm <> nil then begin + FreeMem (programm); + programm := nil; + end; + + if exp = nil then begin + Error (reeCompNullArgument); + EXIT; + end; + + fProgModifiers := fModifiers; + // well, may it's paranoia. I'll check it later... !!!!!!!! + + // First pass: determine size, legality. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regsize := 0; + regcode := @regdummy; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Small enough for 2-bytes programm pointers ? + // ###0.933 no real p-code length limits now :))) +// if regsize >= 64 * 1024 then begin +// Error (reeCompRegexpTooBig); +// EXIT; +// end; + + // Allocate space. + GetMem (programm, regsize * SizeOf (REChar)); + + // Second pass: emit code. + fCompModifiers := fModifiers; + regparse := exp; + regnpar := 1; + regcode := programm; + EmitC (MAGIC); + if ParseReg (0, flags) = nil + then EXIT; + + // Dig out information for optimizations. + {$IFDEF UseFirstCharSet} //###0.929 + FirstCharSet := []; + FillFirstCharSet (programm + REOpSz); + {$ENDIF} + regstart := #0; // Worst-case defaults. + reganch := #0; + regmust := nil; + regmlen := 0; + scan := programm + REOpSz; // First BRANCH. + if PREOp (regnext (scan))^ = EEND then begin // Only one top-level choice. + scan := scan + REOpSz + RENextOffSz; + + // Starting-point info. + if PREOp (scan)^ = EXACTLY + then regstart := (scan + REOpSz + RENextOffSz)^ + else if PREOp (scan)^ = BOL + then inc (reganch); + + // If there's something expensive in the r.e., find the longest + // literal string that must appear and make it the regmust. Resolve + // ties in favor of later strings, since the regstart check works + // with the beginning of the r.e. and avoiding duplication + // strengthens checking. Not a strong reason, but sufficient in the + // absence of others. + if (flags and SPSTART) <> 0 then begin + longest := nil; + len := 0; + while scan <> nil do begin + if (PREOp (scan)^ = EXACTLY) + and (strlen (scan + REOpSz + RENextOffSz) >= len) then begin + longest := scan + REOpSz + RENextOffSz; + len := strlen (longest); + end; + scan := regnext (scan); + end; + regmust := longest; + regmlen := len; + end; + end; + + Result := true; + + finally begin + if not Result + then InvalidateProgramm; + regexpbeg := nil; + fExprIsCompiled := Result; //###0.944 + end; + end; + + end; { of function TRegExpr.CompileRegExpr +--------------------------------------------------------------} + +function TRegExpr.ParseReg (paren : integer; var flagp : integer) : PRegExprChar; +// regular expression, i.e. main body or parenthesized thing +// Caller must absorb opening parenthesis. +// Combining parenthesis handling with the base level of regular expression +// is a trifle forced, but the need to tie the tails of the branches to what +// follows makes it hard to avoid. + var + ret, br, ender : PRegExprChar; + parno : integer; + flags : integer; + SavedModifiers : integer; + begin + Result := nil; + flagp := HASWIDTH; // Tentatively. + parno := 0; // eliminate compiler stupid warning + SavedModifiers := fCompModifiers; + + // Make an OPEN node, if parenthesized. + if paren <> 0 then begin + if regnpar >= NSUBEXP then begin + Error (reeCompParseRegTooManyBrackets); + EXIT; + end; + parno := regnpar; + inc (regnpar); + ret := EmitNode (TREOp (ord (OPEN) + parno)); + end + else ret := nil; + + // Pick up the branches, linking them together. + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + if ret <> nil + then Tail (ret, br) // OPEN -> first. + else ret := br; + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + while (regparse^ = '|') do begin + inc (regparse); + br := ParseBranch (flags); + if br = nil then begin + Result := nil; + EXIT; + end; + Tail (ret, br); // BRANCH -> BRANCH. + if (flags and HASWIDTH) = 0 + then flagp := flagp and not HASWIDTH; + flagp := flagp or flags and SPSTART; + end; + + // Make a closing node, and hook it on the end. + if paren <> 0 + then ender := EmitNode (TREOp (ord (CLOSE) + parno)) + else ender := EmitNode (EEND); + Tail (ret, ender); + + // Hook the tails of the branches to the closing node. + br := ret; + while br <> nil do begin + OpTail (br, ender); + br := regnext (br); + end; + + // Check for proper termination. + if paren <> 0 then + if regparse^ <> ')' then begin + Error (reeCompParseRegUnmatchedBrackets); + EXIT; + end + else inc (regparse); // skip trailing ')' + if (paren = 0) and (regparse^ <> #0) then begin + if regparse^ = ')' + then Error (reeCompParseRegUnmatchedBrackets2) + else Error (reeCompParseRegJunkOnEnd); + EXIT; + end; + fCompModifiers := SavedModifiers; // restore modifiers of parent + Result := ret; + end; { of function TRegExpr.ParseReg +--------------------------------------------------------------} + +function TRegExpr.ParseBranch (var flagp : integer) : PRegExprChar; +// one alternative of an | operator +// Implements the concatenation operator. + var + ret, chain, latest : PRegExprChar; + flags : integer; + begin + flagp := WORST; // Tentatively. + + ret := EmitNode (BRANCH); + chain := nil; + while (regparse^ <> #0) and (regparse^ <> '|') + and (regparse^ <> ')') do begin + latest := ParsePiece (flags); + if latest = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and HASWIDTH; + if chain = nil // First piece. + then flagp := flagp or flags and SPSTART + else Tail (chain, latest); + chain := latest; + end; + if chain = nil // Loop ran zero times. + then EmitNode (NOTHING); + Result := ret; + end; { of function TRegExpr.ParseBranch +--------------------------------------------------------------} + +function TRegExpr.ParsePiece (var flagp : integer) : PRegExprChar; +// something followed by possible [*+?{] +// Note that the branching code sequences used for ? and the general cases +// of * and + and { are somewhat optimized: they use the same NOTHING node as +// both the endmarker for their branch list and the body of the last branch. +// It might seem that this node could be dispensed with entirely, but the +// endmarker role is not redundant. + function parsenum (AStart, AEnd : PRegExprChar) : TREBracesArg; + begin + Result := 0; + if AEnd - AStart + 1 > 8 then begin // prevent stupid scanning + Error (reeBRACESArgTooBig); + EXIT; + end; + while AStart <= AEnd do begin + Result := Result * 10 + (ord (AStart^) - ord ('0')); + inc (AStart); + end; + if (Result > MaxBracesArg) or (Result < 0) then begin + Error (reeBRACESArgTooBig); + EXIT; + end; + end; + + var + op : REChar; + NonGreedyOp, NonGreedyCh : boolean; //###0.940 + TheOp : TREOp; //###0.940 + NextNode : PRegExprChar; + flags : integer; + BracesMin, Bracesmax : TREBracesArg; + p, savedparse : PRegExprChar; + + procedure EmitComplexBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + {$IFDEF ComplexBraces} + var + off : integer; + {$ENDIF} + begin + {$IFNDEF ComplexBraces} + Error (reeComplexBracesNotImplemented); + {$ELSE} + if ANonGreedyOp + then TheOp := LOOPNG + else TheOp := LOOP; + InsertOperator (LOOPENTRY, Result, REOpSz + RENextOffSz); + NextNode := EmitNode (TheOp); + if regcode <> @regdummy then begin + off := (Result + REOpSz + RENextOffSz) + - (regcode - REOpSz - RENextOffSz); // back to Atom after LOOPENTRY + PREBracesArg (regcode)^ := ABracesMin; + inc (regcode, REBracesArgSz); + PREBracesArg (regcode)^ := ABracesMax; + inc (regcode, REBracesArgSz); + PRENextOff (regcode)^ := off; + inc (regcode, RENextOffSz); + end + else inc (regsize, REBracesArgSz * 2 + RENextOffSz); + Tail (Result, NextNode); // LOOPENTRY -> LOOP + if regcode <> @regdummy then + Tail (Result + REOpSz + RENextOffSz, NextNode); // Atom -> LOOP + {$ENDIF} + end; + + procedure EmitSimpleBraces (ABracesMin, ABracesMax : TREBracesArg; + ANonGreedyOp : boolean); //###0.940 + begin + if ANonGreedyOp //###0.940 + then TheOp := BRACESNG + else TheOp := BRACES; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz + REBracesArgSz * 2); + if regcode <> @regdummy then begin + PREBracesArg (Result + REOpSz + RENextOffSz)^ := ABracesMin; + PREBracesArg (Result + REOpSz + RENextOffSz + REBracesArgSz)^ := ABracesMax; + end; + end; + + begin + Result := ParseAtom (flags); + if Result = nil + then EXIT; + + op := regparse^; + if not ((op = '*') or (op = '+') or (op = '?') or (op = '{')) then begin + flagp := flags; + EXIT; + end; + if ((flags and HASWIDTH) = 0) and (op <> '?') then begin + Error (reePlusStarOperandCouldBeEmpty); + EXIT; + end; + + case op of + '*': begin + flagp := WORST or SPSTART; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (0, MaxBracesArg, NonGreedyOp) + else begin // Emit x* as (x&|), where & means "self". + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + OpTail (Result, EmitNode (BACK)); // and loop + OpTail (Result, Result); // back + Tail (Result, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := STARNG + else TheOp := STAR; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '*'} + '+': begin + flagp := WORST or SPSTART or HASWIDTH; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) = 0 then begin + if NonGreedyOp //###0.940 + then EmitComplexBraces (1, MaxBracesArg, NonGreedyOp) + else begin // Emit x+ as x(&|), where & means "self". + NextNode := EmitNode (BRANCH); // Either + Tail (Result, NextNode); + Tail (EmitNode (BACK), Result); // loop back + Tail (NextNode, EmitNode (BRANCH)); // or + Tail (Result, EmitNode (NOTHING)); // nil. + end + end + else begin // Simple + if NonGreedyOp //###0.940 + then TheOp := PLUSNG + else TheOp := PLUS; + InsertOperator (TheOp, Result, REOpSz + RENextOffSz); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '+'} + '?': begin + flagp := WORST; + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if NonGreedyOp then begin //###0.940 // We emit x?? as x{0,1}? + if (flags and SIMPLE) = 0 + then EmitComplexBraces (0, 1, NonGreedyOp) + else EmitSimpleBraces (0, 1, NonGreedyOp); + end + else begin // greedy '?' + InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x + Tail (Result, EmitNode (BRANCH)); // or + NextNode := EmitNode (NOTHING); // nil. + Tail (Result, NextNode); + OpTail (Result, NextNode); + end; + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char ('?') + end; { of case '?'} + '{': begin + savedparse := regparse; + // !!!!!!!!!!!! + // Filip Jirsak's note - what will happen, when we are at the end of regparse? + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 // MUST appear + do inc (regparse); + if (regparse^ <> '}') and (regparse^ <> ',') or (p = regparse) then begin + regparse := savedparse; + flagp := flags; + EXIT; + end; + BracesMin := parsenum (p, regparse - 1); + if regparse^ = ',' then begin + inc (regparse); + p := regparse; + while Pos (regparse^, '0123456789') > 0 + do inc (regparse); + if regparse^ <> '}' then begin + regparse := savedparse; + EXIT; + end; + if p = regparse + then BracesMax := MaxBracesArg + else BracesMax := parsenum (p, regparse - 1); + end + else BracesMax := BracesMin; // {n} == {n,n} + if BracesMin > BracesMax then begin + Error (reeBracesMinParamGreaterMax); + EXIT; + end; + if BracesMin > 0 + then flagp := WORST; + if BracesMax > 0 + then flagp := flagp or HASWIDTH or SPSTART; + + NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 + NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 + if (flags and SIMPLE) <> 0 + then EmitSimpleBraces (BracesMin, BracesMax, NonGreedyOp) + else EmitComplexBraces (BracesMin, BracesMax, NonGreedyOp); + if NonGreedyCh //###0.940 + then inc (regparse); // Skip extra char '?' + end; { of case '{'} +// else // here we can't be + end; { of case op} + + inc (regparse); + if (regparse^ = '*') or (regparse^ = '+') or (regparse^ = '?') or (regparse^ = '{') then begin + Error (reeNestedSQP); + EXIT; + end; + end; { of function TRegExpr.ParsePiece +--------------------------------------------------------------} + +function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar; +// the lowest level +// Optimization: gobbles an entire sequence of ordinary characters so that +// it can turn them into a single node, which is smaller to store and +// faster to run. Backslashed characters are exceptions, each becoming a +// separate node; the code is simpler that way and it's not worth fixing. + var + ret : PRegExprChar; + flags : integer; + RangeBeg, RangeEnd : REChar; + CanBeRange : boolean; + len : integer; + ender : REChar; + begmodfs : PRegExprChar; + + {$IFDEF UseSetOfChar} //###0.930 + RangePCodeBeg : PRegExprChar; + RangePCodeIdx : integer; + RangeIsCI : boolean; + RangeSet : TSetOfREChar; + RangeLen : integer; + RangeChMin, RangeChMax : REChar; + {$ENDIF} + + procedure EmitExactly (ch : REChar); + begin + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + EmitC (ch); + EmitC (#0); + flagp := flagp or HASWIDTH or SIMPLE; + end; + + procedure EmitStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitC (s [i]); + end; + + function HexDig (ch : REChar) : integer; + begin + Result := 0; + if (ch >= 'a') and (ch <= 'f') + then ch := REChar (ord (ch) - (ord ('a') - ord ('A'))); + if (ch < '0') or (ch > 'F') or ((ch > '9') and (ch < 'A')) then begin + Error (reeBadHexDigit); + EXIT; + end; + Result := ord (ch) - ord ('0'); + if ch >= 'A' + then Result := Result - (ord ('A') - ord ('9') - 1); + end; + + function EmitRange (AOpCode : REChar) : PRegExprChar; + begin + {$IFDEF UseSetOfChar} + case AOpCode of + ANYBUTCI, ANYBUT: + Result := EmitNode (ANYBUTTINYSET); + else // ANYOFCI, ANYOF + Result := EmitNode (ANYOFTINYSET); + end; + case AOpCode of + ANYBUTCI, ANYOFCI: + RangeIsCI := True; + else // ANYBUT, ANYOF + RangeIsCI := False; + end; + RangePCodeBeg := regcode; + RangePCodeIdx := regsize; + RangeLen := 0; + RangeSet := []; + RangeChMin := #255; + RangeChMax := #0; + {$ELSE} + Result := EmitNode (AOpCode); + // ToDo: + // !!!!!!!!!!!!! Implement ANYOF[BUT]TINYSET generation for UniCode !!!!!!!!!! + {$ENDIF} + end; + +{$IFDEF UseSetOfChar} + procedure EmitRangeCPrim (b : REChar); //###0.930 + begin + if b in RangeSet + then EXIT; + inc (RangeLen); + if b < RangeChMin + then RangeChMin := b; + if b > RangeChMax + then RangeChMax := b; + Include (RangeSet, b); + end; + {$ENDIF} + + procedure EmitRangeC (b : REChar); + {$IFDEF UseSetOfChar} + var + Ch : REChar; + {$ENDIF} + begin + CanBeRange := false; + {$IFDEF UseSetOfChar} + if b <> #0 then begin + EmitRangeCPrim (b); //###0.930 + if RangeIsCI + then EmitRangeCPrim (InvertCase (b)); //###0.930 + end + else begin + {$IFDEF UseAsserts} + Assert (RangeLen > 0, 'TRegExpr.ParseAtom(subroutine EmitRangeC): empty range'); // impossible, but who knows.. + Assert (RangeChMin <= RangeChMax, 'TRegExpr.ParseAtom(subroutine EmitRangeC): RangeChMin > RangeChMax'); // impossible, but who knows.. + {$ENDIF} + if RangeLen <= TinySetLen then begin // emit "tiny set" + if regcode = @regdummy then begin + regsize := RangePCodeIdx + TinySetLen; // RangeChMin/Max !!! + EXIT; + end; + regcode := RangePCodeBeg; + for Ch := RangeChMin to RangeChMax do //###0.930 + if Ch in RangeSet then begin + regcode^ := Ch; + inc (regcode); + end; + // fill rest: + while regcode < RangePCodeBeg + TinySetLen do begin + regcode^ := RangeChMax; + inc (regcode); + end; + end + else begin + if regcode = @regdummy then begin + regsize := RangePCodeIdx + SizeOf (TSetOfREChar); + EXIT; + end; + if (RangePCodeBeg - REOpSz - RENextOffSz)^ = ANYBUTTINYSET + then RangeSet := [#0 .. #255] - RangeSet; + PREOp (RangePCodeBeg - REOpSz - RENextOffSz)^ := ANYOFFULLSET; + regcode := RangePCodeBeg; + Move (RangeSet, regcode^, SizeOf (TSetOfREChar)); + inc (regcode, SizeOf (TSetOfREChar)); + end; + end; + {$ELSE} + EmitC (b); + {$ENDIF} + end; + + procedure EmitSimpleRangeC (b : REChar); + begin + RangeBeg := b; + EmitRangeC (b); + CanBeRange := true; + end; + + procedure EmitRangeStr (const s : RegExprString); + var i : integer; + begin + for i := 1 to length (s) + do EmitRangeC (s [i]); + end; + + function UnQuoteChar (var APtr : PRegExprChar) : REChar; //###0.934 + begin + case APtr^ of + 't': Result := #$9; // tab (HT/TAB) + 'n': Result := #$a; // newline (NL) + 'r': Result := #$d; // car.return (CR) + 'f': Result := #$c; // form feed (FF) + 'a': Result := #$7; // alarm (bell) (BEL) + 'e': Result := #$1b; // escape (ESC) + 'x': begin // hex char + Result := #0; + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ = '{' then begin // \x{nnnn} //###0.936 + REPEAT + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + if APtr^ <> '}' then begin + if (Ord (Result) + ShR (SizeOf (REChar) * 8 - 4)) and $F <> 0 then begin + Error (reeHexCodeAfterBSlashXTooBig); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end + else BREAK; + UNTIL False; + end + else begin + Result := REChar (HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + inc (APtr); + if APtr^ = #0 then begin + Error (reeNoHexCodeAfterBSlashX); + EXIT; + end; + Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); + // HexDig will cause Error if bad hex digit found + end; + end; + else Result := APtr^; + end; + end; + + begin + Result := nil; + flagp := WORST; // Tentatively. + + inc (regparse); + case (regparse - 1)^ of + '^': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (BOL) + else ret := EmitNode (BOLML); + '$': if ((fCompModifiers and MaskModM) = 0) + or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) + then ret := EmitNode (EOL) + else ret := EmitNode (EOLML); + '.': + if (fCompModifiers and MaskModS) <> 0 then begin + ret := EmitNode (ANY); + flagp := flagp or HASWIDTH or SIMPLE; + end + else begin // not /s, so emit [^:LineSeparators:] + ret := EmitNode (ANYML); + flagp := flagp or HASWIDTH; // not so simple ;) +// ret := EmitRange (ANYBUT); +// EmitRangeStr (LineSeparators); //###0.941 +// EmitRangeStr (LinePairedSeparator); // !!! isn't correct if have to accept only paired +// EmitRangeC (#0); +// flagp := flagp or HASWIDTH or SIMPLE; + end; + '[': begin + if regparse^ = '^' then begin // Complement of range. + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYBUTCI) + else ret := EmitRange (ANYBUT); + inc (regparse); + end + else + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitRange (ANYOFCI) + else ret := EmitRange (ANYOF); + + CanBeRange := false; + + if (regparse^ = ']') then begin + EmitSimpleRangeC (regparse^); // []-a] -> ']' .. 'a' + inc (regparse); + end; + + while (regparse^ <> #0) and (regparse^ <> ']') do begin + if (regparse^ = '-') + and ((regparse + 1)^ <> #0) and ((regparse + 1)^ <> ']') + and CanBeRange then begin + inc (regparse); + RangeEnd := regparse^; + if RangeEnd = EscChar then begin + {$IFDEF UniCode} //###0.935 + if (ord ((regparse + 1)^) < 256) + and (char ((regparse + 1)^) + in ['d', 'D', 's', 'S', 'w', 'W']) then begin + {$ELSE} + if (regparse + 1)^ in ['d', 'D', 's', 'S', 'w', 'W'] then begin + {$ENDIF} + EmitRangeC ('-'); // or treat as error ?!! + CONTINUE; + end; + inc (regparse); + RangeEnd := UnQuoteChar (regparse); + end; + + // r.e.ranges extension for russian + if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeLoHigh) then begin + EmitRangeStr (RusRangeLo); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeHiLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeHi); + end + else if ((fCompModifiers and MaskModR) <> 0) + and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeHiHigh) then begin + EmitRangeStr (RusRangeLo); + EmitRangeStr (RusRangeHi); + end + else begin // standard r.e. handling + if RangeBeg > RangeEnd then begin + Error (reeInvalidRange); + EXIT; + end; + inc (RangeBeg); + EmitRangeC (RangeEnd); // prevent infinite loop if RangeEnd=$ff + while RangeBeg < RangeEnd do begin //###0.929 + EmitRangeC (RangeBeg); + inc (RangeBeg); + end; + end; + inc (regparse); + end + else begin + if regparse^ = EscChar then begin + inc (regparse); + if regparse^ = #0 then begin + Error (reeParseAtomTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'd': EmitRangeStr ('0123456789'); + 'w': EmitRangeStr (WordChars); + 's': EmitRangeStr (SpaceChars); + else EmitSimpleRangeC (UnQuoteChar (regparse)); + end; { of case} + end + else EmitSimpleRangeC (regparse^); + inc (regparse); + end; + end; { of while} + EmitRangeC (#0); + if regparse^ <> ']' then begin + Error (reeUnmatchedSqBrackets); + EXIT; + end; + inc (regparse); + flagp := flagp or HASWIDTH or SIMPLE; + end; + '(': begin + if regparse^ = '?' then begin + // check for extended Perl syntax : (?..) + if (regparse + 1)^ = '#' then begin // (?#comment) + inc (regparse, 2); // find closing ')' + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if regparse^ <> ')' then begin + Error (reeUnclosedComment); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment + end + else begin // modifiers ? + inc (regparse); // skip '?' + begmodfs := regparse; + while (regparse^ <> #0) and (regparse^ <> ')') + do inc (regparse); + if (regparse^ <> ')') + or not ParseModifiersStr (copy (begmodfs, 1, (regparse - begmodfs)), fCompModifiers) then begin + Error (reeUrecognizedModifier); + EXIT; + end; + inc (regparse); // skip ')' + ret := EmitNode (COMMENT); // comment +// Error (reeQPSBFollowsNothing); +// EXIT; + end; + end + else begin + ret := ParseReg (1, flags); + if ret = nil then begin + Result := nil; + EXIT; + end; + flagp := flagp or flags and (HASWIDTH or SPSTART); + end; + end; + #0, '|', ')': begin // Supposed to be caught earlier. + Error (reeInternalUrp); + EXIT; + end; + '?', '+', '*': begin + Error (reeQPSBFollowsNothing); + EXIT; + end; + EscChar: begin + if regparse^ = #0 then begin + Error (reeTrailingBackSlash); + EXIT; + end; + case regparse^ of // r.e.extensions + 'b': ret := EmitNode (BOUND); //###0.943 + 'B': ret := EmitNode (NOTBOUND); //###0.943 + 'A': ret := EmitNode (BOL); //###0.941 + 'Z': ret := EmitNode (EOL); //###0.941 + 'd': begin // r.e.extension - any digit ('0' .. '9') + ret := EmitNode (ANYDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'D': begin // r.e.extension - not digit ('0' .. '9') + ret := EmitNode (NOTDIGIT); + flagp := flagp or HASWIDTH or SIMPLE; + end; + 's': begin // r.e.extension - any space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'S': begin // r.e.extension - not space char + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (SpaceChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTSPACE); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'w': begin // r.e.extension - any english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYOF); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (ANYLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + 'W': begin // r.e.extension - not english char / digit / '_' + {$IFDEF UseSetOfChar} + ret := EmitRange (ANYBUT); + EmitRangeStr (WordChars); + EmitRangeC (#0); + {$ELSE} + ret := EmitNode (NOTLETTER); + {$ENDIF} + flagp := flagp or HASWIDTH or SIMPLE; + end; + '1' .. '9': begin //###0.936 + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (BSUBEXPCI) + else ret := EmitNode (BSUBEXP); + EmitC (REChar (ord (regparse^) - ord ('0'))); + flagp := flagp or HASWIDTH or SIMPLE; + end; + else EmitExactly (UnQuoteChar (regparse)); + end; { of case} + inc (regparse); + end; + else begin + dec (regparse); + if ((fCompModifiers and MaskModX) <> 0) and // check for eXtended syntax + ((regparse^ = '#') + or ({$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF})) then begin //###0.941 \x + if regparse^ = '#' then begin // Skip eXtended comment + // find comment terminator (group of \n and/or \r) + while (regparse^ <> #0) and (regparse^ <> #$d) and (regparse^ <> #$a) + do inc (regparse); + while (regparse^ = #$d) or (regparse^ = #$a) // skip comment terminator + do inc (regparse); // attempt to support different type of line separators + end + else begin // Skip the blanks! + while {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} + do inc (regparse); + end; + ret := EmitNode (COMMENT); // comment + end + else begin + len := strcspn (regparse, META); + if len <= 0 then + if regparse^ <> '{' then begin + Error (reeRarseAtomInternalDisaster); + EXIT; + end + else len := strcspn (regparse + 1, META) + 1; // bad {n,m} - compile as EXATLY + ender := (regparse + len)^; + if (len > 1) + and ((ender = '*') or (ender = '+') or (ender = '?') or (ender = '{')) + then dec (len); // Back off clear of ?+*{ operand. + flagp := flagp or HASWIDTH; + if len = 1 + then flagp := flagp or SIMPLE; + if (fCompModifiers and MaskModI) <> 0 + then ret := EmitNode (EXACTLYCI) + else ret := EmitNode (EXACTLY); + while (len > 0) + and (((fCompModifiers and MaskModX) = 0) or (regparse^ <> '#')) do begin + if ((fCompModifiers and MaskModX) = 0) or not ( //###0.941 + {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 + {$ELSE}regparse^ in XIgnoredChars{$ENDIF} ) + then EmitC (regparse^); + inc (regparse); + dec (len); + end; + EmitC (#0); + end; { of if not comment} + end; { of case else} + end; { of case} + + Result := ret; + end; { of function TRegExpr.ParseAtom +--------------------------------------------------------------} + +function TRegExpr.GetCompilerErrorPos : integer; + begin + Result := 0; + if (regexpbeg = nil) or (regparse = nil) + then EXIT; // not in compiling mode ? + Result := regparse - regexpbeg; + end; { of function TRegExpr.GetCompilerErrorPos +--------------------------------------------------------------} + + +{=============================================================} +{===================== Matching section ======================} +{=============================================================} + +{$IFNDEF UseSetOfChar} +function TRegExpr.StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 - now method of TRegExpr + begin + while (s^ <> #0) and (s^ <> ch) and (s^ <> InvertCase (ch)) + do inc (s); + if s^ <> #0 + then Result := s + else Result := nil; + end; { of function TRegExpr.StrScanCI +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.regrepeat (p : PRegExprChar; AMax : integer) : integer; +// repeatedly match something simple, report how many + var + scan : PRegExprChar; + opnd : PRegExprChar; + TheMax : integer; + {Ch,} InvCh : REChar; //###0.931 + sestart, seend : PRegExprChar; //###0.936 + begin + Result := 0; + scan := reginput; + opnd := p + REOpSz + RENextOffSz; //OPERAND + TheMax := fInputEnd - scan; + if TheMax > AMax + then TheMax := AMax; + case PREOp (p)^ of + ANY: begin + // note - ANYML cannot be proceeded in regrepeat because can skip + // more than one char at once + Result := TheMax; + inc (scan, Result); + end; + EXACTLY: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin + inc (Result); + inc (scan); + end; + end; + EXACTLYCI: begin // in opnd can be only ONE char !!! +// Ch := opnd^; // store in register //###0.931 + while (Result < TheMax) and (opnd^ = scan^) do begin // prevent unneeded InvertCase //###0.931 + inc (Result); + inc (scan); + end; + if Result < TheMax then begin //###0.931 + InvCh := InvertCase (opnd^); // store in register + while (Result < TheMax) and + ((opnd^ = scan^) or (InvCh = scan^)) do begin + inc (Result); + inc (scan); + end; + end; + end; + BSUBEXP: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or (scan^ <> opnd^) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + BSUBEXPCI: begin //###0.936 + sestart := startp [ord (opnd^)]; + if sestart = nil + then EXIT; + seend := endp [ord (opnd^)]; + if seend = nil + then EXIT; + REPEAT + opnd := sestart; + while opnd < seend do begin + if (scan >= fInputEnd) or + ((scan^ <> opnd^) and (scan^ <> InvertCase (opnd^))) + then EXIT; + inc (scan); + inc (opnd); + end; + inc (Result); + reginput := scan; + UNTIL Result >= AMax; + end; + ANYDIGIT: + while (Result < TheMax) and + (scan^ >= '0') and (scan^ <= '9') do begin + inc (Result); + inc (scan); + end; + NOTDIGIT: + while (Result < TheMax) and + ((scan^ < '0') or (scan^ > '9')) do begin + inc (Result); + inc (scan); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) > 0) //###0.940 + { ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + NOTLETTER: + while (Result < TheMax) and + (Pos (scan^, fWordChars) <= 0) //###0.940 + { not ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') + or (scan^ >= 'A') and (scan^ <= 'Z') + or (scan^ = '_'))} do begin + inc (Result); + inc (scan); + end; + ANYSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) > 0) do begin + inc (Result); + inc (scan); + end; + NOTSPACE: + while (Result < TheMax) and + (Pos (scan^, fSpaceChars) <= 0) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + ANYOFTINYSET: begin + while (Result < TheMax) and //!!!TinySet + ((scan^ = opnd^) or (scan^ = (opnd + 1)^) + or (scan^ = (opnd + 2)^)) do begin + inc (Result); + inc (scan); + end; + end; + ANYBUTTINYSET: begin + while (Result < TheMax) and //!!!TinySet + (scan^ <> opnd^) and (scan^ <> (opnd + 1)^) + and (scan^ <> (opnd + 2)^) do begin + inc (Result); + inc (scan); + end; + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + while (Result < TheMax) and + (scan^ in PSetOfREChar (opnd)^) do begin + inc (Result); + inc (scan); + end; + end; + {$ELSE} + ANYOF: + while (Result < TheMax) and + (StrScan (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUT: + while (Result < TheMax) and + (StrScan (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + ANYOFCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) <> nil) do begin + inc (Result); + inc (scan); + end; + ANYBUTCI: + while (Result < TheMax) and (StrScanCI (opnd, scan^) = nil) do begin + inc (Result); + inc (scan); + end; + {$ENDIF} + else begin // Oh dear. Called inappropriately. + Result := 0; // Best compromise. + Error (reeRegRepeatCalledInappropriately); + EXIT; + end; + end; { of case} + reginput := scan; + end; { of function TRegExpr.regrepeat +--------------------------------------------------------------} + +function TRegExpr.regnext (p : PRegExprChar) : PRegExprChar; +// dig the "next" pointer out of a node + var offset : TRENextOff; + begin + if p = @regdummy then begin + Result := nil; + EXIT; + end; + offset := PRENextOff (p + REOpSz)^; //###0.933 inlined NEXT + if offset = 0 + then Result := nil + else Result := p + offset; + end; { of function TRegExpr.regnext +--------------------------------------------------------------} + +function TRegExpr.MatchPrim (prog : PRegExprChar) : boolean; +// recursively matching routine +// Conceptually the strategy is simple: check to see whether the current +// node matches, call self recursively to see whether the rest matches, +// and then act accordingly. In practice we make some effort to avoid +// recursion, in particular by going through "ordinary" nodes (that don't +// need to know whether the rest of the match failed) by a loop instead of +// by recursion. + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + len : integer; + opnd : PRegExprChar; + no : integer; + save : PRegExprChar; + nextch : REChar; + BracesMin, BracesMax : integer; // we use integer instead of TREBracesArg for better support */+ + {$IFDEF ComplexBraces} + SavedLoopStack : array [1 .. LoopStackMax] of integer; // :(( very bad for recursion + SavedLoopStackIdx : integer; //###0.925 + {$ENDIF} + begin + Result := false; + scan := prog; + + while scan <> nil do begin + len := PRENextOff (scan + 1)^; //###0.932 inlined regnext + if len = 0 + then next := nil + else next := scan + len; + + case scan^ of + NOTBOUND, //###0.943 //!!! think about UseSetOfChar !!! + BOUND: + if (scan^ = BOUND) + xor ( + ((reginput = fInputStart) or (Pos ((reginput - 1)^, fWordChars) <= 0)) + and (reginput^ <> #0) and (Pos (reginput^, fWordChars) > 0) + or + (reginput <> fInputStart) and (Pos ((reginput - 1)^, fWordChars) > 0) + and ((reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0))) + then EXIT; + + BOL: if reginput <> fInputStart + then EXIT; + EOL: if reginput^ <> #0 + then EXIT; + BOLML: if reginput > fInputStart then begin + nextch := (reginput - 1)^; + if (nextch <> fLinePairedSeparatorTail) + or ((reginput - 1) <= fInputStart) + or ((reginput - 2)^ <> fLinePairedSeparatorHead) + then begin + if (nextch = fLinePairedSeparatorHead) + and (reginput^ = fLinePairedSeparatorTail) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + EOLML: if reginput^ <> #0 then begin + nextch := reginput^; + if (nextch <> fLinePairedSeparatorHead) + or ((reginput + 1)^ <> fLinePairedSeparatorTail) + then begin + if (nextch = fLinePairedSeparatorTail) + and (reginput > fInputStart) + and ((reginput - 1)^ = fLinePairedSeparatorHead) + then EXIT; // don't stop between paired separator + if + {$IFNDEF UniCode} + not (nextch in fLineSeparatorsSet) + {$ELSE} + (pos (nextch, fLineSeparators) <= 0) + {$ENDIF} + then EXIT; + end; + end; + ANY: begin + if reginput^ = #0 + then EXIT; + inc (reginput); + end; + ANYML: begin //###0.941 + if (reginput^ = #0) + or ((reginput^ = fLinePairedSeparatorHead) + and ((reginput + 1)^ = fLinePairedSeparatorTail)) + or {$IFNDEF UniCode} (reginput^ in fLineSeparatorsSet) + {$ELSE} (pos (reginput^, fLineSeparators) > 0) {$ENDIF} + then EXIT; + inc (reginput); + end; + ANYDIGIT: begin + if (reginput^ = #0) or (reginput^ < '0') or (reginput^ > '9') + then EXIT; + inc (reginput); + end; + NOTDIGIT: begin + if (reginput^ = #0) or ((reginput^ >= '0') and (reginput^ <= '9')) + then EXIT; + inc (reginput); + end; + {$IFNDEF UseSetOfChar} //###0.929 + ANYLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTLETTER: begin + if (reginput^ = #0) or (Pos (reginput^, fWordChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + ANYSPACE: begin + if (reginput^ = #0) or not (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + NOTSPACE: begin + if (reginput^ = #0) or (Pos (reginput^, fSpaceChars) > 0) //###0.943 + then EXIT; + inc (reginput); + end; + {$ENDIF} + EXACTLYCI: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if (opnd^ <> reginput^) + and (InvertCase (opnd^) <> reginput^) + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if (opnd^ <> save^) + and (InvertCase (opnd^) <> save^) + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + EXACTLY: begin + opnd := scan + REOpSz + RENextOffSz; // OPERAND + // Inline the first character, for speed. + if opnd^ <> reginput^ + then EXIT; + len := strlen (opnd); + //###0.929 begin + no := len; + save := reginput; + while no > 1 do begin + inc (save); + inc (opnd); + if opnd^ <> save^ + then EXIT; + dec (no); + end; + //###0.929 end + inc (reginput, len); + end; + BSUBEXP: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or (save^ <> opnd^) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + BSUBEXPCI: begin //###0.936 + no := ord ((scan + REOpSz + RENextOffSz)^); + if startp [no] = nil + then EXIT; + if endp [no] = nil + then EXIT; + save := reginput; + opnd := startp [no]; + while opnd < endp [no] do begin + if (save >= fInputEnd) or + ((save^ <> opnd^) and (save^ <> InvertCase (opnd^))) + then EXIT; + inc (save); + inc (opnd); + end; + reginput := save; + end; + ANYOFTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + ((reginput^ <> (scan + REOpSz + RENextOffSz)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 1)^) + and (reginput^ <> (scan + REOpSz + RENextOffSz + 2)^)) + then EXIT; + inc (reginput); + end; + ANYBUTTINYSET: begin + if (reginput^ = #0) or //!!!TinySet + (reginput^ = (scan + REOpSz + RENextOffSz)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 1)^) + or (reginput^ = (scan + REOpSz + RENextOffSz + 2)^) + then EXIT; + inc (reginput); + end; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: begin + if (reginput^ = #0) + or not (reginput^ in PSetOfREChar (scan + REOpSz + RENextOffSz)^) + then EXIT; + inc (reginput); + end; + {$ELSE} + ANYOF: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUT: begin + if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + ANYOFCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) = nil) + then EXIT; + inc (reginput); + end; + ANYBUTCI: begin + if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) <> nil) + then EXIT; + inc (reginput); + end; + {$ENDIF} + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + no := ord (scan^) - ord (OPEN); +// save := reginput; + save := startp [no]; //###0.936 + startp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then startp [no] := save; +// if Result and (startp [no] = nil) +// then startp [no] := save; + // Don't set startp if some later invocation of the same + // parentheses already has. + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + no := ord (scan^) - ord (CLOSE); +// save := reginput; + save := endp [no]; //###0.936 + endp [no] := reginput; //###0.936 + Result := MatchPrim (next); + if not Result //###0.936 + then endp [no] := save; +// if Result and (endp [no] = nil) +// then endp [no] := save; + // Don't set endp if some later invocation of the same + // parentheses already has. + EXIT; + end; + BRANCH: begin + if (next^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion + else begin + REPEAT + save := reginput; + Result := MatchPrim (scan + REOpSz + RENextOffSz); + if Result + then EXIT; + reginput := save; + scan := regnext (scan); + UNTIL (scan = nil) or (scan^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 + no := LoopStackIdx; + inc (LoopStackIdx); + if LoopStackIdx > LoopStackMax then begin + Error (reeLoopStackExceeded); + EXIT; + end; + save := reginput; + LoopStack [LoopStackIdx] := 0; // init loop counter + Result := MatchPrim (next); // execute LOOP + LoopStackIdx := no; // cleanup + if Result + then EXIT; + reginput := save; + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + if LoopStackIdx <= 0 then begin + Error (reeLoopWithoutEntry); + EXIT; + end; + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + 2 * REBracesArgSz)^; + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + save := reginput; + if LoopStack [LoopStackIdx] >= BracesMin then begin // Min alredy matched - we can work + if scan^ = LOOP then begin + // greedy way - first try to max deep of greed ;) + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Fail. May be we are too greedy? ;) + Result := MatchPrim (next); + if not Result + then reginput := save; + EXIT; + end + else begin + // non-greedy - try just now + Result := MatchPrim (next); + if Result + then EXIT + else reginput := save; // failed - move next and try again + if LoopStack [LoopStackIdx] < BracesMax then begin + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + reginput := save; + end; + dec (LoopStackIdx); // Failed - back up + EXIT; + end + end + else begin // first match a min_cnt times + inc (LoopStack [LoopStackIdx]); + no := LoopStackIdx; + Result := MatchPrim (opnd); + LoopStackIdx := no; + if Result + then EXIT; + dec (LoopStack [LoopStackIdx]); + reginput := save; + EXIT; + end; + end; + {$ENDIF} + STAR, PLUS, BRACES, STARNG, PLUSNG, BRACESNG: begin + // Lookahead to avoid useless match attempts when we know + // what character comes next. + nextch := #0; + if next^ = EXACTLY + then nextch := (next + REOpSz + RENextOffSz)^; + BracesMax := MaxInt; // infinite loop for * and + //###0.92 + if (scan^ = STAR) or (scan^ = STARNG) + then BracesMin := 0 // STAR + else if (scan^ = PLUS) or (scan^ = PLUSNG) + then BracesMin := 1 // PLUS + else begin // BRACES + BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; + BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; + end; + save := reginput; + opnd := scan + REOpSz + RENextOffSz; + if (scan^ = BRACES) or (scan^ = BRACESNG) + then inc (opnd, 2 * REBracesArgSz); + + if (scan^ = PLUSNG) or (scan^ = STARNG) or (scan^ = BRACESNG) then begin + // non-greedy mode + BracesMax := regrepeat (opnd, BracesMax); // don't repeat more than BracesMax + // Now we know real Max limit to move forward (for recursion 'back up') + // In some cases it can be faster to check only Min positions first, + // but after that we have to check every position separtely instead + // of fast scannig in loop. + no := BracesMin; + while no <= BracesMax do begin + reginput := save + no; + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + inc (no); // Couldn't or didn't - move forward. + end; { of while} + EXIT; + end + else begin // greedy mode + no := regrepeat (opnd, BracesMax); // don't repeat more than max_cnt + while no >= BracesMin do begin + // If it could work, try it. + if (nextch = #0) or (reginput^ = nextch) then begin + {$IFDEF ComplexBraces} + System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 + SavedLoopStackIdx := LoopStackIdx; + {$ENDIF} + if MatchPrim (next) then begin + Result := true; + EXIT; + end; + {$IFDEF ComplexBraces} + System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); + LoopStackIdx := SavedLoopStackIdx; + {$ENDIF} + end; + dec (no); // Couldn't or didn't - back up. + reginput := save + no; + end; { of while} + EXIT; + end; + end; + EEND: begin + Result := true; // Success! + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + + // We get here only if there's trouble -- normally "case EEND" is the + // terminating point. + Error (reeMatchPrimCorruptedPointers); + end; { of function TRegExpr.MatchPrim +--------------------------------------------------------------} + +{$IFDEF UseFirstCharSet} //###0.929 +procedure TRegExpr.FillFirstCharSet (prog : PRegExprChar); + var + scan : PRegExprChar; // Current node. + next : PRegExprChar; // Next node. + opnd : PRegExprChar; + min_cnt : integer; + begin + scan := prog; + while scan <> nil do begin + next := regnext (scan); + case PREOp (scan)^ of + BSUBEXP, BSUBEXPCI: begin //###0.938 + FirstCharSet := [#0 .. #255]; // :((( we cannot + // optimize r.e. if it starts with back reference + EXIT; + end; + BOL, BOLML: ; // EXIT; //###0.937 + EOL, EOLML: begin //###0.948 was empty in 0.947, was EXIT in 0.937 + Include (FirstCharSet, #0); + if ModifierM + then begin + opnd := PRegExprChar (LineSeparators); + while opnd^ <> #0 do begin + Include (FirstCharSet, opnd^); + inc (opnd); + end; + end; + EXIT; + end; + BOUND, NOTBOUND: ; //###0.943 ?!! + ANY, ANYML: begin // we can better define ANYML !!! + FirstCharSet := [#0 .. #255]; //###0.930 + EXIT; + end; + ANYDIGIT: begin + FirstCharSet := FirstCharSet + ['0' .. '9']; + EXIT; + end; + NOTDIGIT: begin + FirstCharSet := FirstCharSet + ([#0 .. #255] - ['0' .. '9']); //###0.948 FirstCharSet was forgotten + EXIT; + end; + EXACTLYCI: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, InvertCase ((scan + REOpSz + RENextOffSz)^)); + EXIT; + end; + EXACTLY: begin + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + EXIT; + end; + ANYOFFULLSET: begin + FirstCharSet := FirstCharSet + PSetOfREChar (scan + REOpSz + RENextOffSz)^; + EXIT; + end; + ANYOFTINYSET: begin + //!!!TinySet + Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 1)^); + Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 2)^); + // ... // up to TinySetLen + EXIT; + end; + ANYBUTTINYSET: begin + //!!!TinySet + FirstCharSet := FirstCharSet + ([#0 .. #255] - [ //###0.948 FirstCharSet was forgotten + (scan + REOpSz + RENextOffSz)^, + (scan + REOpSz + RENextOffSz + 1)^, + (scan + REOpSz + RENextOffSz + 2)^]); + // ... // up to TinySetLen + EXIT; + end; + NOTHING: ; + COMMENT: ; + BACK: ; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 + FillFirstCharSet (next); + EXIT; + end; + BRANCH: begin + if (PREOp (next)^ <> BRANCH) // No choice. + then next := scan + REOpSz + RENextOffSz // Avoid recursion. + else begin + REPEAT + FillFirstCharSet (scan + REOpSz + RENextOffSz); + scan := regnext (scan); + UNTIL (scan = nil) or (PREOp (scan)^ <> BRANCH); + EXIT; + end; + end; + {$IFDEF ComplexBraces} + LOOPENTRY: begin //###0.925 +// LoopStack [LoopStackIdx] := 0; //###0.940 line removed + FillFirstCharSet (next); // execute LOOP + EXIT; + end; + LOOP, LOOPNG: begin //###0.940 + opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + REBracesArgSz * 2)^; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; + FillFirstCharSet (opnd); + if min_cnt = 0 + then FillFirstCharSet (next); + EXIT; + end; + {$ENDIF} + STAR, STARNG: //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + PLUS, PLUSNG: begin //###0.940 + FillFirstCharSet (scan + REOpSz + RENextOffSz); + EXIT; + end; + BRACES, BRACESNG: begin //###0.940 + opnd := scan + REOpSz + RENextOffSz + REBracesArgSz * 2; + min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; // BRACES + FillFirstCharSet (opnd); + if min_cnt > 0 + then EXIT; + end; + EEND: begin + FirstCharSet := [#0 .. #255]; //###0.948 + EXIT; + end; + else begin + Error (reeMatchPrimMemoryCorruption); + EXIT; + end; + end; { of case scan^} + scan := next; + end; { of while scan <> nil} + end; { of procedure FillFirstCharSet +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.Exec (const AInputString : RegExprString) : boolean; + begin + InputString := AInputString; + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} + +{$IFDEF OverMeth} +{$IFNDEF FPC} +function TRegExpr.Exec : boolean; + begin + Result := ExecPrim (1); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} +function TRegExpr.Exec (AOffset: integer) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.Exec +--------------------------------------------------------------} +{$ENDIF} + +function TRegExpr.ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; + begin + Result := ExecPrim (AOffset); + end; { of function TRegExpr.ExecPos +--------------------------------------------------------------} + +function TRegExpr.ExecPrim (AOffset: integer) : boolean; + procedure ClearMatchs; + // Clears matchs array + var i : integer; + begin + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + end; { of procedure ClearMatchs; +..............................................................} + function RegMatch (str : PRegExprChar) : boolean; + // try match at specific point + begin + //###0.949 removed clearing of start\endp + reginput := str; + Result := MatchPrim (programm + REOpSz); + if Result then begin + startp [0] := str; + endp [0] := reginput; + end; + end; { of function RegMatch +..............................................................} + var + s : PRegExprChar; + StartPtr: PRegExprChar; + InputLen : integer; + begin + Result := false; // Be paranoid... + + ClearMatchs; //###0.949 + // ensure that Match cleared either if optimization tricks or some error + // will lead to leaving ExecPrim without actual search. That is + // importent for ExecNext logic and so on. + + if not IsProgrammOk //###0.929 + then EXIT; + + // Check InputString presence + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + + InputLen := length (fInputString); + + //Check that the start position is not negative + if AOffset < 1 then begin + Error (reeOffsetMustBeGreaterThen0); + EXIT; + end; + // Check that the start position is not longer than the line + // If so then exit with nothing found + if AOffset > (InputLen + 1) // for matching empty string after last char. + then EXIT; + + StartPtr := fInputString + AOffset - 1; + + // If there is a "must appear" string, look for it. + if regmust <> nil then begin + s := StartPtr; + REPEAT + s := StrScan (s, regmust [0]); + if s <> nil then begin + if StrLComp (s, regmust, regmlen) = 0 + then BREAK; // Found it. + inc (s); + end; + UNTIL s = nil; + if s = nil // Not present. + then EXIT; + end; + + // Mark beginning of line for ^ . + fInputStart := fInputString; + + // Pointer to end of input stream - for + // pascal-style string processing (may include #0) + fInputEnd := fInputString + InputLen; + + {$IFDEF ComplexBraces} + // no loops started + LoopStackIdx := 0; //###0.925 + {$ENDIF} + + // Simplest case: anchored match need be tried only once. + if reganch <> #0 then begin + Result := RegMatch (StartPtr); + EXIT; + end; + + // Messy cases: unanchored match. + s := StartPtr; + if regstart <> #0 then // We know what char it must start with. + REPEAT + s := StrScan (s, regstart); + if s <> nil then begin + Result := RegMatch (s); + if Result + then EXIT + else ClearMatchs; //###0.949 + inc (s); + end; + UNTIL s = nil + else begin // We don't - general case. + repeat //###0.948 + {$IFDEF UseFirstCharSet} + if s^ in FirstCharSet + then Result := RegMatch (s); + {$ELSE} + Result := RegMatch (s); + {$ENDIF} + if Result or (s^ = #0) // Exit on a match or after testing the end-of-string. + then EXIT + else ClearMatchs; //###0.949 + inc (s); + until false; +(* optimized and fixed by Martin Fuller - empty strings + were not allowed to pass thru in UseFirstCharSet mode + {$IFDEF UseFirstCharSet} //###0.929 + while s^ <> #0 do begin + if s^ in FirstCharSet + then Result := RegMatch (s); + if Result + then EXIT; + inc (s); + end; + {$ELSE} + REPEAT + Result := RegMatch (s); + if Result + then EXIT; + inc (s); + UNTIL s^ = #0; + {$ENDIF} +*) + end; + // Failure + end; { of function TRegExpr.ExecPrim +--------------------------------------------------------------} + +function TRegExpr.ExecNext : boolean; + var offset : integer; + begin + Result := false; + if not Assigned (startp[0]) or not Assigned (endp[0]) then begin + Error (reeExecNextWithoutExec); + EXIT; + end; +// Offset := MatchPos [0] + MatchLen [0]; +// if MatchLen [0] = 0 + Offset := endp [0] - fInputString + 1; //###0.929 + if endp [0] = startp [0] //###0.929 + then inc (Offset); // prevent infinite looping if empty string match r.e. + Result := ExecPrim (Offset); + end; { of function TRegExpr.ExecNext +--------------------------------------------------------------} + +function TRegExpr.GetInputString : RegExprString; + begin + if not Assigned (fInputString) then begin + Error (reeGetInputStringWithoutInputString); + EXIT; + end; + Result := fInputString; + end; { of function TRegExpr.GetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetInputString (const AInputString : RegExprString); + var + Len : integer; + i : integer; + begin + // clear Match* - before next Exec* call it's undefined + for i := 0 to NSUBEXP - 1 do begin + startp [i] := nil; + endp [i] := nil; + end; + + // need reallocation of input string buffer ? + Len := length (AInputString); + if Assigned (fInputString) and (Length (fInputString) <> Len) then begin + FreeMem (fInputString); + fInputString := nil; + end; + // buffer [re]allocation + if not Assigned (fInputString) + then GetMem (fInputString, (Len + 1) * SizeOf (REChar)); + + // copy input string into buffer + {$IFDEF UniCode} + StrPCopy (fInputString, Copy (AInputString, 1, Len)); //###0.927 + {$ELSE} + StrLCopy (fInputString, PRegExprChar (AInputString), Len); + {$ENDIF} + + { + fInputString : string; + fInputStart, fInputEnd : PRegExprChar; + + SetInputString: + fInputString := AInputString; + UniqueString (fInputString); + fInputStart := PChar (fInputString); + Len := length (fInputString); + fInputEnd := PRegExprChar (integer (fInputStart) + Len); ?? + !! startp/endp âñå ðàâíî áóäåò îïàñíî èñïîëüçîâàòü ? + } + end; { of procedure TRegExpr.SetInputString +--------------------------------------------------------------} + +procedure TRegExpr.SetLineSeparators (const AStr : RegExprString); + begin + if AStr <> fLineSeparators then begin + fLineSeparators := AStr; + InvalidateProgramm; + end; + end; { of procedure TRegExpr.SetLineSeparators +--------------------------------------------------------------} + +procedure TRegExpr.SetLinePairedSeparator (const AStr : RegExprString); + begin + if length (AStr) = 2 then begin + if AStr [1] = AStr [2] then begin + // it's impossible for our 'one-point' checking to support + // two chars separator for identical chars + Error (reeBadLinePairedSeparator); + EXIT; + end; + if not fLinePairedSeparatorAssigned + or (AStr [1] <> fLinePairedSeparatorHead) + or (AStr [2] <> fLinePairedSeparatorTail) then begin + fLinePairedSeparatorAssigned := true; + fLinePairedSeparatorHead := AStr [1]; + fLinePairedSeparatorTail := AStr [2]; + InvalidateProgramm; + end; + end + else if length (AStr) = 0 then begin + if fLinePairedSeparatorAssigned then begin + fLinePairedSeparatorAssigned := false; + InvalidateProgramm; + end; + end + else Error (reeBadLinePairedSeparator); + end; { of procedure TRegExpr.SetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.GetLinePairedSeparator : RegExprString; + begin + if fLinePairedSeparatorAssigned then begin + {$IFDEF UniCode} + // Here is some UniCode 'magic' + // If You do know better decision to concatenate + // two WideChars, please, let me know! + Result := fLinePairedSeparatorHead; //###0.947 + Result := Result + fLinePairedSeparatorTail; + {$ELSE} + Result := fLinePairedSeparatorHead + fLinePairedSeparatorTail; + {$ENDIF} + end + else Result := ''; + end; { of function TRegExpr.GetLinePairedSeparator +--------------------------------------------------------------} + +function TRegExpr.Substitute (const ATemplate : RegExprString) : RegExprString; +// perform substitutions after a regexp match +// completely rewritten in 0.929 + var + TemplateLen : integer; + TemplateBeg, TemplateEnd : PRegExprChar; + p, p0, ResultPtr : PRegExprChar; + ResultLen : integer; + n : integer; + Ch : REChar; + function ParseVarName (var APtr : PRegExprChar) : integer; + // extract name of variable (digits, may be enclosed with + // curly braces) from APtr^, uses TemplateEnd !!! + const + Digits = ['0' .. '9']; + var + p : PRegExprChar; + Delimited : boolean; + begin + Result := 0; + p := APtr; + Delimited := (p < TemplateEnd) and (p^ = '{'); + if Delimited + then inc (p); // skip left curly brace + if (p < TemplateEnd) and (p^ = '&') + then inc (p) // this is '$&' or '${&}' + else + while (p < TemplateEnd) and + {$IFDEF UniCode} //###0.935 + (ord (p^) < 256) and (char (p^) in Digits) + {$ELSE} + (p^ in Digits) + {$ENDIF} + do begin + Result := Result * 10 + (ord (p^) - ord ('0')); //###0.939 + inc (p); + end; + if Delimited then + if (p < TemplateEnd) and (p^ = '}') + then inc (p) // skip right curly brace + else p := APtr; // isn't properly terminated + if p = APtr + then Result := -1; // no valid digits found or no right curly brace + APtr := p; + end; + begin + // Check programm and input string + if not IsProgrammOk + then EXIT; + if not Assigned (fInputString) then begin + Error (reeNoInpitStringSpecified); + EXIT; + end; + // Prepare for working + TemplateLen := length (ATemplate); + if TemplateLen = 0 then begin // prevent nil pointers + Result := ''; + EXIT; + end; + TemplateBeg := pointer (ATemplate); + TemplateEnd := TemplateBeg + TemplateLen; + // Count result length for speed optimization. + ResultLen := 0; + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + if (n < NSUBEXP) and Assigned (startp [n]) and Assigned (endp [n]) + then inc (ResultLen, endp [n] - startp [n]); + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) + then inc (p); // quoted or special char followed + inc (ResultLen); + end; + end; + // Get memory. We do it once and it significant speed up work ! + if ResultLen = 0 then begin + Result := ''; + EXIT; + end; + SetString (Result, nil, ResultLen); + // Fill Result + ResultPtr := pointer (Result); + p := TemplateBeg; + while p < TemplateEnd do begin + Ch := p^; + inc (p); + if Ch = '$' + then n := ParseVarName (p) + else n := -1; + if n >= 0 then begin + p0 := startp [n]; + if (n < NSUBEXP) and Assigned (p0) and Assigned (endp [n]) then + while p0 < endp [n] do begin + ResultPtr^ := p0^; + inc (ResultPtr); + inc (p0); + end; + end + else begin + if (Ch = EscChar) and (p < TemplateEnd) then begin // quoted or special char followed + Ch := p^; + inc (p); + end; + ResultPtr^ := Ch; + inc (ResultPtr); + end; + end; + end; { of function TRegExpr.Substitute +--------------------------------------------------------------} + +procedure TRegExpr.Split (AInputStr : RegExprString; APieces : TStrings); + var PrevPos : integer; + begin + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + APieces.Add (System.Copy (AInputStr, PrevPos, MatchPos [0] - PrevPos)); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + APieces.Add (System.Copy (AInputStr, PrevPos, MaxInt)); // Tail + end; { of procedure TRegExpr.Split +--------------------------------------------------------------} + +function TRegExpr.Replace (AInputStr : RegExprString; const AReplaceStr : RegExprString; + AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos); + if AUseSubstitution //###0.946 + then Result := Result + Substitute (AReplaceStr) + else Result := Result + AReplaceStr; + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.Replace +--------------------------------------------------------------} + +function TRegExpr.ReplaceEx (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + var + PrevPos : integer; + begin + Result := ''; + PrevPos := 1; + if Exec (AInputStr) then + REPEAT + Result := Result + System.Copy (AInputStr, PrevPos, + MatchPos [0] - PrevPos) + + AReplaceFunc (Self); + PrevPos := MatchPos [0] + MatchLen [0]; + UNTIL not ExecNext; + Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail + end; { of function TRegExpr.ReplaceEx +--------------------------------------------------------------} + + +{$IFDEF OverMeth} +function TRegExpr.Replace (AInputStr : RegExprString; + AReplaceFunc : TRegExprReplaceFunction) + : RegExprString; + begin + ReplaceEx (AInputStr, AReplaceFunc); + end; { of function TRegExpr.Replace +--------------------------------------------------------------} +{$ENDIF} + +{=============================================================} +{====================== Debug section ========================} +{=============================================================} + +{$IFDEF RegExpPCodeDump} +function TRegExpr.DumpOp (op : TREOp) : RegExprString; +// printable representation of opcode + begin + case op of + BOL: Result := 'BOL'; + EOL: Result := 'EOL'; + BOLML: Result := 'BOLML'; + EOLML: Result := 'EOLML'; + BOUND: Result := 'BOUND'; //###0.943 + NOTBOUND: Result := 'NOTBOUND'; //###0.943 + ANY: Result := 'ANY'; + ANYML: Result := 'ANYML'; //###0.941 + ANYLETTER: Result := 'ANYLETTER'; + NOTLETTER: Result := 'NOTLETTER'; + ANYDIGIT: Result := 'ANYDIGIT'; + NOTDIGIT: Result := 'NOTDIGIT'; + ANYSPACE: Result := 'ANYSPACE'; + NOTSPACE: Result := 'NOTSPACE'; + ANYOF: Result := 'ANYOF'; + ANYBUT: Result := 'ANYBUT'; + ANYOFCI: Result := 'ANYOF/CI'; + ANYBUTCI: Result := 'ANYBUT/CI'; + BRANCH: Result := 'BRANCH'; + EXACTLY: Result := 'EXACTLY'; + EXACTLYCI: Result := 'EXACTLY/CI'; + NOTHING: Result := 'NOTHING'; + COMMENT: Result := 'COMMENT'; + BACK: Result := 'BACK'; + EEND: Result := 'END'; + BSUBEXP: Result := 'BSUBEXP'; + BSUBEXPCI: Result := 'BSUBEXP/CI'; + Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1): //###0.929 + Result := Format ('OPEN[%d]', [ord (op) - ord (OPEN)]); + Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): //###0.929 + Result := Format ('CLOSE[%d]', [ord (op) - ord (CLOSE)]); + STAR: Result := 'STAR'; + PLUS: Result := 'PLUS'; + BRACES: Result := 'BRACES'; + {$IFDEF ComplexBraces} + LOOPENTRY: Result := 'LOOPENTRY'; //###0.925 + LOOP: Result := 'LOOP'; //###0.925 + LOOPNG: Result := 'LOOPNG'; //###0.940 + {$ENDIF} + ANYOFTINYSET: Result:= 'ANYOFTINYSET'; + ANYBUTTINYSET:Result:= 'ANYBUTTINYSET'; + {$IFDEF UseSetOfChar} //###0.929 + ANYOFFULLSET: Result:= 'ANYOFFULLSET'; + {$ENDIF} + STARNG: Result := 'STARNG'; //###0.940 + PLUSNG: Result := 'PLUSNG'; //###0.940 + BRACESNG: Result := 'BRACESNG'; //###0.940 + else Error (reeDumpCorruptedOpcode); + end; {of case op} + Result := ':' + Result; + end; { of function TRegExpr.DumpOp +--------------------------------------------------------------} + +function TRegExpr.Dump : RegExprString; +// dump a regexp in vaguely comprehensible form + var + s : PRegExprChar; + op : TREOp; // Arbitrary non-END op. + next : PRegExprChar; + i : integer; + Diff : integer; +{$IFDEF UseSetOfChar} //###0.929 + Ch : REChar; +{$ENDIF} + begin + if not IsProgrammOk //###0.929 + then EXIT; + + op := EXACTLY; + Result := ''; + s := programm + REOpSz; + while op <> EEND do begin // While that wasn't END last time... + op := s^; + Result := Result + Format ('%2d%s', [s - programm, DumpOp (s^)]); // Where, what. + next := regnext (s); + if next = nil // Next ptr. + then Result := Result + ' (0)' + else begin + if next > s //###0.948 PWideChar subtraction workaround (see comments in Tail method for details) + then Diff := next - s + else Diff := - (s - next); + Result := Result + Format (' (%d) ', [(s - programm) + Diff]); + end; + inc (s, REOpSz + RENextOffSz); + if (op = ANYOF) or (op = ANYOFCI) or (op = ANYBUT) or (op = ANYBUTCI) + or (op = EXACTLY) or (op = EXACTLYCI) then begin + // Literal string, where present. + while s^ <> #0 do begin + Result := Result + s^; + inc (s); + end; + inc (s); + end; + if (op = ANYOFTINYSET) or (op = ANYBUTTINYSET) then begin + for i := 1 to TinySetLen do begin + Result := Result + s^; + inc (s); + end; + end; + if (op = BSUBEXP) or (op = BSUBEXPCI) then begin + Result := Result + ' \' + IntToStr (Ord (s^)); + inc (s); + end; + {$IFDEF UseSetOfChar} //###0.929 + if op = ANYOFFULLSET then begin + for Ch := #0 to #255 do + if Ch in PSetOfREChar (s)^ then + if Ch < ' ' + then Result := Result + '#' + IntToStr (Ord (Ch)) //###0.936 + else Result := Result + Ch; + inc (s, SizeOf (TSetOfREChar)); + end; + {$ENDIF} + if (op = BRACES) or (op = BRACESNG) then begin //###0.941 + // show min/max argument of BRACES operator + Result := Result + Format ('{%d,%d}', [PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, REBracesArgSz * 2); + end; + {$IFDEF ComplexBraces} + if (op = LOOP) or (op = LOOPNG) then begin //###0.940 + Result := Result + Format (' -> (%d) {%d,%d}', [ + (s - programm - (REOpSz + RENextOffSz)) + PRENextOff (s + 2 * REBracesArgSz)^, + PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); + inc (s, 2 * REBracesArgSz + RENextOffSz); + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of while} + + // Header fields of interest. + + if regstart <> #0 + then Result := Result + 'start ' + regstart; + if reganch <> #0 + then Result := Result + 'anchored '; + if regmust <> nil + then Result := Result + 'must have ' + regmust; + {$IFDEF UseFirstCharSet} //###0.929 + Result := Result + #$d#$a'FirstCharSet:'; + for Ch := #0 to #255 do + if Ch in FirstCharSet + then begin + if Ch < ' ' + then Result := Result + '#' + IntToStr(Ord(Ch)) //###0.948 + else Result := Result + Ch; + end; + {$ENDIF} + Result := Result + #$d#$a; + end; { of function TRegExpr.Dump +--------------------------------------------------------------} +{$ENDIF} + +{$IFDEF reRealExceptionAddr} +{$OPTIMIZATION ON} +// ReturnAddr works correctly only if compiler optimization is ON +// I placed this method at very end of unit because there are no +// way to restore compiler optimization flag ... +{$ENDIF} +procedure TRegExpr.Error (AErrorID : integer); +{$IFDEF reRealExceptionAddr} + function ReturnAddr : pointer; //###0.938 + asm + mov eax,[ebp+4] + end; +{$ENDIF} + var + e : ERegExpr; + begin + fLastError := AErrorID; // dummy stub - useless because will raise exception + if AErrorID < 1000 // compilation error ? + then e := ERegExpr.Create (ErrorMsg (AErrorID) // yes - show error pos + + ' (pos ' + IntToStr (CompilerErrorPos) + ')') + else e := ERegExpr.Create (ErrorMsg (AErrorID)); + e.ErrorCode := AErrorID; + e.CompilerErrorPos := CompilerErrorPos; + raise e + {$IFDEF reRealExceptionAddr} + At ReturnAddr; //###0.938 + {$ENDIF} + end; { of procedure TRegExpr.Error +--------------------------------------------------------------} + +(* + PCode persistence: + FirstCharSet + programm, regsize + regstart // -> programm + reganch // -> programm + regmust, regmlen // -> programm + fExprIsCompiled +*) + +// be carefull - placed here code will be always compiled with +// compiler optimization flag + +{$IFDEF FPC} +initialization + RegExprInvertCaseFunction := TRegExpr.InvertCaseFunction; + +{$ENDIF} +end. + diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm new file mode 100644 index 0000000..31a1551 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm @@ -0,0 +1,16 @@ +object EDI_Inventary: TEDI_Inventary + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ServiceSchema = dmEDIInventary.schEDIInventary + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 295 + Width = 296 + object DABINAdapter: TDABINAdapter + Left = 64 + Top = 32 + end +end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas new file mode 100644 index 0000000..4c9f420 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas @@ -0,0 +1,139 @@ +unit EDI_Inventary_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TEDI_Inventary } + TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) + DABINAdapter: TDABINAdapter; + private + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + protected + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + JclFileUtils, DateUtils, EDI_Log_Impl, uDataModuleEDI_Inventary; + +procedure Create_EDI_Inventary(out anInstance : IUnknown); +begin + anInstance := TEDI_Inventary.Create(NIL); +end; + +{ EDI_Inventary } +{ TEDI_Inventary } + +function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB, FicheroLIN, + FicheroCANT: String; out MsgError: String): Boolean; +var + ADirEntrada : String; + ADirTemp : String; + NumRegNuevos : Integer; + + procedure GuardarFicheros; + var + AAlmacen : String; + ADate : String; + begin + DateTimeToString(ADate, 'yyyymmddhhnn', Now); + AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); + AAlmacen := PathAddSeparator(AAlmacen + ADate); + if not DirectoryExists(AAlmacen) then + ForceDirectories(AAlmacen); + FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); + FileMove(ADirTemp + FicheroLIN, AAlmacen + FicheroLIN); + FileMove(ADirTemp + FicheroCANT, AAlmacen + FicheroCANT); + DeleteDirectory(ADirTemp, False); + end; + +begin + Result := False; + + // Hay que comprobar que existen los ficheros. + ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); + + if not FileExists(ADirEntrada + FicheroCAB) or + not FileExists(ADirEntrada + FicheroLIN) or + not FileExists(ADirEntrada + FicheroCANT) then + begin + MsgError := 'No hay ficheros de datos'; + InsertarLog(False, MsgError + ' (CargarFicheroEDI1 INV)'); + end + else begin + + // Muevo los ficheros de carga a un directorio temporal + ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); + try + if not DirectoryExists(ADirTemp) then + ForceDirectories(ADirTemp); + FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); + FileMove(ADirEntrada + FicheroLIN, ADirTemp + FicheroLIN); + FileMove(ADirEntrada + FicheroCANT, ADirTemp + FicheroCANT); + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI2 INV)'); + Exit; + end; + end; + + try + try + dmEDIInventary.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLIN, ADirTemp + FicheroCANT, NumRegNuevos); + if NumRegNuevos > 0 then + InsertarLog(True, Format('Se han cargado %d registros de inventario nuevos', [NumRegNuevos])) + else + InsertarLog(True, 'El fichero se ha cargado pero no hay registros de inventario nuevos'); + Result := True; + finally + GuardarFicheros; + dmServer.BorrarFicherosDeCargaAntiguos; + end; + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI3 INV)'); + end; + end; + end; +end; + +procedure TEDI_Inventary.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas new file mode 100644 index 0000000..8903964 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas @@ -0,0 +1,742 @@ +unit schEDIInventaryClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_CANTINV = '{D890DD46-1103-4942-83FC-8BE8479D1101}'; + RID_RDX_LININV = '{B0D6E128-0438-4CA2-81F9-0893BE9A9A21}'; + RID_RDX_CABINV = '{21FBA86D-243E-4A6E-AC7D-DB040E6AA070}'; + + { Data table names } + nme_RDX_CANTINV = 'RDX_CANTINV'; + nme_RDX_LININV = 'RDX_LININV'; + nme_RDX_CABINV = 'RDX_CABINV'; + + { RDX_CANTINV fields } + fld_RDX_CANTINVNUMDOC = 'NUMDOC'; + fld_RDX_CANTINVNUMLIN = 'NUMLIN'; + fld_RDX_CANTINVNUMCANT = 'NUMCANT'; + fld_RDX_CANTINVTIPOCANT = 'TIPOCANT'; + fld_RDX_CANTINVCANTIDAD = 'CANTIDAD'; + fld_RDX_CANTINVCENTRO = 'CENTRO'; + fld_RDX_CANTINVTMOV = 'TMOV'; + fld_RDX_CANTINVFACT = 'FACT'; + fld_RDX_CANTINVDEPTO = 'DEPTO'; + fld_RDX_CANTINVIDVEN = 'IDVEN'; + + { RDX_CANTINV field indexes } + idx_RDX_CANTINVNUMDOC = 0; + idx_RDX_CANTINVNUMLIN = 1; + idx_RDX_CANTINVNUMCANT = 2; + idx_RDX_CANTINVTIPOCANT = 3; + idx_RDX_CANTINVCANTIDAD = 4; + idx_RDX_CANTINVCENTRO = 5; + idx_RDX_CANTINVTMOV = 6; + idx_RDX_CANTINVFACT = 7; + idx_RDX_CANTINVDEPTO = 8; + idx_RDX_CANTINVIDVEN = 9; + + { RDX_LININV fields } + fld_RDX_LININVNUMDOC = 'NUMDOC'; + fld_RDX_LININVNUMLIN = 'NUMLIN'; + fld_RDX_LININVCODART = 'CODART'; + fld_RDX_LININVFAMILIA = 'FAMILIA'; + fld_RDX_LININVBARRA = 'BARRA'; + fld_RDX_LININVTALLA = 'TALLA'; + fld_RDX_LININVMARCA = 'MARCA'; + fld_RDX_LININVTAMANO = 'TAMANO'; + fld_RDX_LININVSERIE = 'SERIE'; + fld_RDX_LININVCOLOR = 'COLOR'; + fld_RDX_LININVMODELO = 'MODELO'; + fld_RDX_LININVDIBUJO = 'DIBUJO'; + fld_RDX_LININVDESCRIP = 'DESCRIP'; + + { RDX_LININV field indexes } + idx_RDX_LININVNUMDOC = 0; + idx_RDX_LININVNUMLIN = 1; + idx_RDX_LININVCODART = 2; + idx_RDX_LININVFAMILIA = 3; + idx_RDX_LININVBARRA = 4; + idx_RDX_LININVTALLA = 5; + idx_RDX_LININVMARCA = 6; + idx_RDX_LININVTAMANO = 7; + idx_RDX_LININVSERIE = 8; + idx_RDX_LININVCOLOR = 9; + idx_RDX_LININVMODELO = 10; + idx_RDX_LININVDIBUJO = 11; + idx_RDX_LININVDESCRIP = 12; + + { RDX_CABINV fields } + fld_RDX_CABINVNUMDOC = 'NUMDOC'; + fld_RDX_CABINVTIPODOC = 'TIPODOC'; + fld_RDX_CABINVTIPOLIQ = 'TIPOLIQ'; + fld_RDX_CABINVFECHA = 'FECHA'; + fld_RDX_CABINVFECHALIQ = 'FECHALIQ'; + fld_RDX_CABINVEMISOR = 'EMISOR'; + fld_RDX_CABINVRECEPTOR = 'RECEPTOR'; + fld_RDX_CABINVDPTO = 'DPTO'; + fld_RDX_CABINVCENTRO = 'CENTRO'; + fld_RDX_CABINVFECHA_CARGA = 'FECHA_CARGA'; + + { RDX_CABINV field indexes } + idx_RDX_CABINVNUMDOC = 0; + idx_RDX_CABINVTIPODOC = 1; + idx_RDX_CABINVTIPOLIQ = 2; + idx_RDX_CABINVFECHA = 3; + idx_RDX_CABINVFECHALIQ = 4; + idx_RDX_CABINVEMISOR = 5; + idx_RDX_CABINVRECEPTOR = 6; + idx_RDX_CABINVDPTO = 7; + idx_RDX_CABINVCENTRO = 8; + idx_RDX_CABINVFECHA_CARGA = 9; + +type + { IRDX_CANTINV } + IRDX_CANTINV = interface(IDAStronglyTypedDataTable) + ['{2D19DA25-B122-468C-BB44-9B28F4025A0B}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetNUMLINValue: Float; + procedure SetNUMLINValue(const aValue: Float); + function GetNUMCANTValue: Float; + procedure SetNUMCANTValue(const aValue: Float); + function GetTIPOCANTValue: String; + procedure SetTIPOCANTValue(const aValue: String); + function GetCANTIDADValue: Float; + procedure SetCANTIDADValue(const aValue: Float); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetTMOVValue: String; + procedure SetTMOVValue(const aValue: String); + function GetFACTValue: String; + procedure SetFACTValue(const aValue: String); + function GetDEPTOValue: String; + procedure SetDEPTOValue(const aValue: String); + function GetIDVENValue: String; + procedure SetIDVENValue(const aValue: String); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; + property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property TMOV: String read GetTMOVValue write SetTMOVValue; + property FACT: String read GetFACTValue write SetFACTValue; + property DEPTO: String read GetDEPTOValue write SetDEPTOValue; + property IDVEN: String read GetIDVENValue write SetIDVENValue; + end; + + { TRDX_CANTINVDataTableRules } + TRDX_CANTINVDataTableRules = class(TDADataTableRules, IRDX_CANTINV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetNUMCANTValue: Float; virtual; + procedure SetNUMCANTValue(const aValue: Float); virtual; + function GetTIPOCANTValue: String; virtual; + procedure SetTIPOCANTValue(const aValue: String); virtual; + function GetCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetTMOVValue: String; virtual; + procedure SetTMOVValue(const aValue: String); virtual; + function GetFACTValue: String; virtual; + procedure SetFACTValue(const aValue: String); virtual; + function GetDEPTOValue: String; virtual; + procedure SetDEPTOValue(const aValue: String); virtual; + function GetIDVENValue: String; virtual; + procedure SetIDVENValue(const aValue: String); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; + property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; + property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property TMOV: String read GetTMOVValue write SetTMOVValue; + property FACT: String read GetFACTValue write SetFACTValue; + property DEPTO: String read GetDEPTOValue write SetDEPTOValue; + property IDVEN: String read GetIDVENValue write SetIDVENValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_LININV } + IRDX_LININV = interface(IDAStronglyTypedDataTable) + ['{7DF3D736-0E00-441C-A777-864BD96FA2A4}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetNUMLINValue: Float; + procedure SetNUMLINValue(const aValue: Float); + function GetCODARTValue: String; + procedure SetCODARTValue(const aValue: String); + function GetFAMILIAValue: String; + procedure SetFAMILIAValue(const aValue: String); + function GetBARRAValue: String; + procedure SetBARRAValue(const aValue: String); + function GetTALLAValue: String; + procedure SetTALLAValue(const aValue: String); + function GetMARCAValue: String; + procedure SetMARCAValue(const aValue: String); + function GetTAMANOValue: String; + procedure SetTAMANOValue(const aValue: String); + function GetSERIEValue: String; + procedure SetSERIEValue(const aValue: String); + function GetCOLORValue: String; + procedure SetCOLORValue(const aValue: String); + function GetMODELOValue: String; + procedure SetMODELOValue(const aValue: String); + function GetDIBUJOValue: String; + procedure SetDIBUJOValue(const aValue: String); + function GetDESCRIPValue: String; + procedure SetDESCRIPValue(const aValue: String); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property CODART: String read GetCODARTValue write SetCODARTValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property BARRA: String read GetBARRAValue write SetBARRAValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property MARCA: String read GetMARCAValue write SetMARCAValue; + property TAMANO: String read GetTAMANOValue write SetTAMANOValue; + property SERIE: String read GetSERIEValue write SetSERIEValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property MODELO: String read GetMODELOValue write SetMODELOValue; + property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; + property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; + end; + + { TRDX_LININVDataTableRules } + TRDX_LININVDataTableRules = class(TDADataTableRules, IRDX_LININV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetCODARTValue: String; virtual; + procedure SetCODARTValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetBARRAValue: String; virtual; + procedure SetBARRAValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetMARCAValue: String; virtual; + procedure SetMARCAValue(const aValue: String); virtual; + function GetTAMANOValue: String; virtual; + procedure SetTAMANOValue(const aValue: String); virtual; + function GetSERIEValue: String; virtual; + procedure SetSERIEValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetMODELOValue: String; virtual; + procedure SetMODELOValue(const aValue: String); virtual; + function GetDIBUJOValue: String; virtual; + procedure SetDIBUJOValue(const aValue: String); virtual; + function GetDESCRIPValue: String; virtual; + procedure SetDESCRIPValue(const aValue: String); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; + property CODART: String read GetCODARTValue write SetCODARTValue; + property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; + property BARRA: String read GetBARRAValue write SetBARRAValue; + property TALLA: String read GetTALLAValue write SetTALLAValue; + property MARCA: String read GetMARCAValue write SetMARCAValue; + property TAMANO: String read GetTAMANOValue write SetTAMANOValue; + property SERIE: String read GetSERIEValue write SetSERIEValue; + property COLOR: String read GetCOLORValue write SetCOLORValue; + property MODELO: String read GetMODELOValue write SetMODELOValue; + property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; + property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_CABINV } + IRDX_CABINV = interface(IDAStronglyTypedDataTable) + ['{4373F992-8872-4C21-BF37-CB9EB6F816CF}'] + { Property getters and setters } + function GetNUMDOCValue: String; + procedure SetNUMDOCValue(const aValue: String); + function GetTIPODOCValue: String; + procedure SetTIPODOCValue(const aValue: String); + function GetTIPOLIQValue: String; + procedure SetTIPOLIQValue(const aValue: String); + function GetFECHAValue: DateTime; + procedure SetFECHAValue(const aValue: DateTime); + function GetFECHALIQValue: DateTime; + procedure SetFECHALIQValue(const aValue: DateTime); + function GetEMISORValue: String; + procedure SetEMISORValue(const aValue: String); + function GetRECEPTORValue: String; + procedure SetRECEPTORValue(const aValue: String); + function GetDPTOValue: String; + procedure SetDPTOValue(const aValue: String); + function GetCENTROValue: String; + procedure SetCENTROValue(const aValue: String); + function GetFECHA_CARGAValue: DateTime; + procedure SetFECHA_CARGAValue(const aValue: DateTime); + + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; + property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; + property EMISOR: String read GetEMISORValue write SetEMISORValue; + property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; + property DPTO: String read GetDPTOValue write SetDPTOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + end; + + { TRDX_CABINVDataTableRules } + TRDX_CABINVDataTableRules = class(TDADataTableRules, IRDX_CABINV) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetTIPODOCValue: String; virtual; + procedure SetTIPODOCValue(const aValue: String); virtual; + function GetTIPOLIQValue: String; virtual; + procedure SetTIPOLIQValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHALIQValue: DateTime; virtual; + procedure SetFECHALIQValue(const aValue: DateTime); virtual; + function GetEMISORValue: String; virtual; + procedure SetEMISORValue(const aValue: String); virtual; + function GetRECEPTORValue: String; virtual; + procedure SetRECEPTORValue(const aValue: String); virtual; + function GetDPTOValue: String; virtual; + procedure SetDPTOValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetFECHA_CARGAValue: DateTime; virtual; + procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; + + { Properties } + property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; + property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; + property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; + property FECHA: DateTime read GetFECHAValue write SetFECHAValue; + property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; + property EMISOR: String read GetEMISORValue write SetEMISORValue; + property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; + property DPTO: String read GetDPTOValue write SetDPTOValue; + property CENTRO: String read GetCENTROValue write SetCENTROValue; + property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TRDX_CANTINVDataTableRules } +constructor TRDX_CANTINVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CANTINVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CANTINVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetNUMLINValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMLINValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetNUMCANTValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetNUMCANTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetTIPOCANTValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetTIPOCANTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetCANTIDADValue: Float; +begin + result := DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat; +end; + +procedure TRDX_CANTINVDataTableRules.SetCANTIDADValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetTMOVValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVTMOV].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetTMOVValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVTMOV].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetFACTValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVFACT].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetFACTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetDEPTOValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetDEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; +end; + +function TRDX_CANTINVDataTableRules.GetIDVENValue: String; +begin + result := DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString; +end; + +procedure TRDX_CANTINVDataTableRules.SetIDVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; +end; + + +{ TRDX_LININVDataTableRules } +constructor TRDX_LININVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_LININVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_LININVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVNUMDOC].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVNUMDOC].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetNUMLINValue: Float; +begin + result := DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat; +end; + +procedure TRDX_LININVDataTableRules.SetNUMLINValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat := aValue; +end; + +function TRDX_LININVDataTableRules.GetCODARTValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVCODART].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetCODARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetFAMILIAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVFAMILIA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetFAMILIAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetBARRAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVBARRA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetBARRAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetTALLAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVTALLA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetTALLAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetMARCAValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVMARCA].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetMARCAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetTAMANOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVTAMANO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetTAMANOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetSERIEValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVSERIE].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetSERIEValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetCOLORValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVCOLOR].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetCOLORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetMODELOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVMODELO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetMODELOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetDIBUJOValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVDIBUJO].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetDIBUJOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; +end; + +function TRDX_LININVDataTableRules.GetDESCRIPValue: String; +begin + result := DataTable.Fields[idx_RDX_LININVDESCRIP].AsString; +end; + +procedure TRDX_LININVDataTableRules.SetDESCRIPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; +end; + + +{ TRDX_CABINVDataTableRules } +constructor TRDX_CABINVDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CABINVDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CABINVDataTableRules.GetNUMDOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetNUMDOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetTIPODOCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetTIPODOCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetTIPOLIQValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetTIPOLIQValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHAValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHALIQValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHALIQValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; +end; + +function TRDX_CABINVDataTableRules.GetEMISORValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVEMISOR].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetEMISORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetRECEPTORValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetRECEPTORValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetDPTOValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVDPTO].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetDPTOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetCENTROValue: String; +begin + result := DataTable.Fields[idx_RDX_CABINVCENTRO].AsString; +end; + +procedure TRDX_CABINVDataTableRules.SetCENTROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; +end; + +function TRDX_CABINVDataTableRules.GetFECHA_CARGAValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime; +end; + +procedure TRDX_CABINVDataTableRules.SetFECHA_CARGAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RDX_CANTINV, TRDX_CANTINVDataTableRules); + RegisterDataTableRules(RID_RDX_LININV, TRDX_LININVDataTableRules); + RegisterDataTableRules(RID_RDX_CABINV, TRDX_CABINVDataTableRules); + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas new file mode 100644 index 0000000..5429a9a --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas @@ -0,0 +1,855 @@ +unit schEDIInventaryServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDIInventaryClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_CANTINVDelta = '{C803322D-5148-44E9-A06D-99D8B2E2781E}'; + RID_RDX_LININVDelta = '{59D21195-BB34-4A91-BD02-D48649A8F4B9}'; + RID_RDX_CABINVDelta = '{9A135F09-4540-4DAE-B701-2CDA92E0519B}'; + +type + { IRDX_CANTINVDelta } + IRDX_CANTINVDelta = interface(IRDX_CANTINV) + ['{C803322D-5148-44E9-A06D-99D8B2E2781E}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldNUMLINValue : Float; + function GetOldNUMCANTValue : Float; + function GetOldTIPOCANTValue : String; + function GetOldCANTIDADValue : Float; + function GetOldCENTROValue : String; + function GetOldTMOVValue : String; + function GetOldFACTValue : String; + function GetOldDEPTOValue : String; + function GetOldIDVENValue : String; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property OldNUMCANT : Float read GetOldNUMCANTValue; + property OldTIPOCANT : String read GetOldTIPOCANTValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldTMOV : String read GetOldTMOVValue; + property OldFACT : String read GetOldFACTValue; + property OldDEPTO : String read GetOldDEPTOValue; + property OldIDVEN : String read GetOldIDVENValue; + end; + + { TRDX_CANTINVBusinessProcessorRules } + TRDX_CANTINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CANTINV, IRDX_CANTINVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + function GetOldNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetNUMCANTValue: Float; virtual; + function GetOldNUMCANTValue: Float; virtual; + procedure SetNUMCANTValue(const aValue: Float); virtual; + function GetTIPOCANTValue: String; virtual; + function GetOldTIPOCANTValue: String; virtual; + procedure SetTIPOCANTValue(const aValue: String); virtual; + function GetCANTIDADValue: Float; virtual; + function GetOldCANTIDADValue: Float; virtual; + procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetTMOVValue: String; virtual; + function GetOldTMOVValue: String; virtual; + procedure SetTMOVValue(const aValue: String); virtual; + function GetFACTValue: String; virtual; + function GetOldFACTValue: String; virtual; + procedure SetFACTValue(const aValue: String); virtual; + function GetDEPTOValue: String; virtual; + function GetOldDEPTOValue: String; virtual; + procedure SetDEPTOValue(const aValue: String); virtual; + function GetIDVENValue: String; virtual; + function GetOldIDVENValue: String; virtual; + procedure SetIDVENValue(const aValue: String); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property NUMCANT : Float read GetNUMCANTValue write SetNUMCANTValue; + property OldNUMCANT : Float read GetOldNUMCANTValue; + property TIPOCANT : String read GetTIPOCANTValue write SetTIPOCANTValue; + property OldTIPOCANT : String read GetOldTIPOCANTValue; + property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property OldCANTIDAD : Float read GetOldCANTIDADValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property TMOV : String read GetTMOVValue write SetTMOVValue; + property OldTMOV : String read GetOldTMOVValue; + property FACT : String read GetFACTValue write SetFACTValue; + property OldFACT : String read GetOldFACTValue; + property DEPTO : String read GetDEPTOValue write SetDEPTOValue; + property OldDEPTO : String read GetOldDEPTOValue; + property IDVEN : String read GetIDVENValue write SetIDVENValue; + property OldIDVEN : String read GetOldIDVENValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_LININVDelta } + IRDX_LININVDelta = interface(IRDX_LININV) + ['{59D21195-BB34-4A91-BD02-D48649A8F4B9}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldNUMLINValue : Float; + function GetOldCODARTValue : String; + function GetOldFAMILIAValue : String; + function GetOldBARRAValue : String; + function GetOldTALLAValue : String; + function GetOldMARCAValue : String; + function GetOldTAMANOValue : String; + function GetOldSERIEValue : String; + function GetOldCOLORValue : String; + function GetOldMODELOValue : String; + function GetOldDIBUJOValue : String; + function GetOldDESCRIPValue : String; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property OldCODART : String read GetOldCODARTValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property OldBARRA : String read GetOldBARRAValue; + property OldTALLA : String read GetOldTALLAValue; + property OldMARCA : String read GetOldMARCAValue; + property OldTAMANO : String read GetOldTAMANOValue; + property OldSERIE : String read GetOldSERIEValue; + property OldCOLOR : String read GetOldCOLORValue; + property OldMODELO : String read GetOldMODELOValue; + property OldDIBUJO : String read GetOldDIBUJOValue; + property OldDESCRIP : String read GetOldDESCRIPValue; + end; + + { TRDX_LININVBusinessProcessorRules } + TRDX_LININVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LININV, IRDX_LININVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetNUMLINValue: Float; virtual; + function GetOldNUMLINValue: Float; virtual; + procedure SetNUMLINValue(const aValue: Float); virtual; + function GetCODARTValue: String; virtual; + function GetOldCODARTValue: String; virtual; + procedure SetCODARTValue(const aValue: String); virtual; + function GetFAMILIAValue: String; virtual; + function GetOldFAMILIAValue: String; virtual; + procedure SetFAMILIAValue(const aValue: String); virtual; + function GetBARRAValue: String; virtual; + function GetOldBARRAValue: String; virtual; + procedure SetBARRAValue(const aValue: String); virtual; + function GetTALLAValue: String; virtual; + function GetOldTALLAValue: String; virtual; + procedure SetTALLAValue(const aValue: String); virtual; + function GetMARCAValue: String; virtual; + function GetOldMARCAValue: String; virtual; + procedure SetMARCAValue(const aValue: String); virtual; + function GetTAMANOValue: String; virtual; + function GetOldTAMANOValue: String; virtual; + procedure SetTAMANOValue(const aValue: String); virtual; + function GetSERIEValue: String; virtual; + function GetOldSERIEValue: String; virtual; + procedure SetSERIEValue(const aValue: String); virtual; + function GetCOLORValue: String; virtual; + function GetOldCOLORValue: String; virtual; + procedure SetCOLORValue(const aValue: String); virtual; + function GetMODELOValue: String; virtual; + function GetOldMODELOValue: String; virtual; + procedure SetMODELOValue(const aValue: String); virtual; + function GetDIBUJOValue: String; virtual; + function GetOldDIBUJOValue: String; virtual; + procedure SetDIBUJOValue(const aValue: String); virtual; + function GetDESCRIPValue: String; virtual; + function GetOldDESCRIPValue: String; virtual; + procedure SetDESCRIPValue(const aValue: String); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; + property OldNUMLIN : Float read GetOldNUMLINValue; + property CODART : String read GetCODARTValue write SetCODARTValue; + property OldCODART : String read GetOldCODARTValue; + property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; + property OldFAMILIA : String read GetOldFAMILIAValue; + property BARRA : String read GetBARRAValue write SetBARRAValue; + property OldBARRA : String read GetOldBARRAValue; + property TALLA : String read GetTALLAValue write SetTALLAValue; + property OldTALLA : String read GetOldTALLAValue; + property MARCA : String read GetMARCAValue write SetMARCAValue; + property OldMARCA : String read GetOldMARCAValue; + property TAMANO : String read GetTAMANOValue write SetTAMANOValue; + property OldTAMANO : String read GetOldTAMANOValue; + property SERIE : String read GetSERIEValue write SetSERIEValue; + property OldSERIE : String read GetOldSERIEValue; + property COLOR : String read GetCOLORValue write SetCOLORValue; + property OldCOLOR : String read GetOldCOLORValue; + property MODELO : String read GetMODELOValue write SetMODELOValue; + property OldMODELO : String read GetOldMODELOValue; + property DIBUJO : String read GetDIBUJOValue write SetDIBUJOValue; + property OldDIBUJO : String read GetOldDIBUJOValue; + property DESCRIP : String read GetDESCRIPValue write SetDESCRIPValue; + property OldDESCRIP : String read GetOldDESCRIPValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_CABINVDelta } + IRDX_CABINVDelta = interface(IRDX_CABINV) + ['{9A135F09-4540-4DAE-B701-2CDA92E0519B}'] + { Property getters and setters } + function GetOldNUMDOCValue : String; + function GetOldTIPODOCValue : String; + function GetOldTIPOLIQValue : String; + function GetOldFECHAValue : DateTime; + function GetOldFECHALIQValue : DateTime; + function GetOldEMISORValue : String; + function GetOldRECEPTORValue : String; + function GetOldDPTOValue : String; + function GetOldCENTROValue : String; + function GetOldFECHA_CARGAValue : DateTime; + + { Properties } + property OldNUMDOC : String read GetOldNUMDOCValue; + property OldTIPODOC : String read GetOldTIPODOCValue; + property OldTIPOLIQ : String read GetOldTIPOLIQValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property OldFECHALIQ : DateTime read GetOldFECHALIQValue; + property OldEMISOR : String read GetOldEMISORValue; + property OldRECEPTOR : String read GetOldRECEPTORValue; + property OldDPTO : String read GetOldDPTOValue; + property OldCENTRO : String read GetOldCENTROValue; + property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; + end; + + { TRDX_CABINVBusinessProcessorRules } + TRDX_CABINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABINV, IRDX_CABINVDelta) + private + protected + { Property getters and setters } + function GetNUMDOCValue: String; virtual; + function GetOldNUMDOCValue: String; virtual; + procedure SetNUMDOCValue(const aValue: String); virtual; + function GetTIPODOCValue: String; virtual; + function GetOldTIPODOCValue: String; virtual; + procedure SetTIPODOCValue(const aValue: String); virtual; + function GetTIPOLIQValue: String; virtual; + function GetOldTIPOLIQValue: String; virtual; + procedure SetTIPOLIQValue(const aValue: String); virtual; + function GetFECHAValue: DateTime; virtual; + function GetOldFECHAValue: DateTime; virtual; + procedure SetFECHAValue(const aValue: DateTime); virtual; + function GetFECHALIQValue: DateTime; virtual; + function GetOldFECHALIQValue: DateTime; virtual; + procedure SetFECHALIQValue(const aValue: DateTime); virtual; + function GetEMISORValue: String; virtual; + function GetOldEMISORValue: String; virtual; + procedure SetEMISORValue(const aValue: String); virtual; + function GetRECEPTORValue: String; virtual; + function GetOldRECEPTORValue: String; virtual; + procedure SetRECEPTORValue(const aValue: String); virtual; + function GetDPTOValue: String; virtual; + function GetOldDPTOValue: String; virtual; + procedure SetDPTOValue(const aValue: String); virtual; + function GetCENTROValue: String; virtual; + function GetOldCENTROValue: String; virtual; + procedure SetCENTROValue(const aValue: String); virtual; + function GetFECHA_CARGAValue: DateTime; virtual; + function GetOldFECHA_CARGAValue: DateTime; virtual; + procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; + + { Properties } + property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; + property OldNUMDOC : String read GetOldNUMDOCValue; + property TIPODOC : String read GetTIPODOCValue write SetTIPODOCValue; + property OldTIPODOC : String read GetOldTIPODOCValue; + property TIPOLIQ : String read GetTIPOLIQValue write SetTIPOLIQValue; + property OldTIPOLIQ : String read GetOldTIPOLIQValue; + property FECHA : DateTime read GetFECHAValue write SetFECHAValue; + property OldFECHA : DateTime read GetOldFECHAValue; + property FECHALIQ : DateTime read GetFECHALIQValue write SetFECHALIQValue; + property OldFECHALIQ : DateTime read GetOldFECHALIQValue; + property EMISOR : String read GetEMISORValue write SetEMISORValue; + property OldEMISOR : String read GetOldEMISORValue; + property RECEPTOR : String read GetRECEPTORValue write SetRECEPTORValue; + property OldRECEPTOR : String read GetOldRECEPTORValue; + property DPTO : String read GetDPTOValue write SetDPTOValue; + property OldDPTO : String read GetOldDPTOValue; + property CENTRO : String read GetCENTROValue write SetCENTROValue; + property OldCENTRO : String read GetOldCENTROValue; + property FECHA_CARGA : DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; + property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TRDX_CANTINVBusinessProcessorRules } +constructor TRDX_CANTINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CANTINVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMDOC]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMLIN]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetNUMCANTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldNUMCANTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMCANT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetNUMCANTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetTIPOCANTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldTIPOCANTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTIPOCANT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetTIPOCANTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldCANTIDADValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCANTIDAD]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCENTRO]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetTMOVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldTMOVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTMOV]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetTMOVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetFACTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldFACTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVFACT]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetFACTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetDEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldDEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVDEPTO]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetDEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO] := aValue; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetIDVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN]; +end; + +function TRDX_CANTINVBusinessProcessorRules.GetOldIDVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVIDVEN]; +end; + +procedure TRDX_CANTINVBusinessProcessorRules.SetIDVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN] := aValue; +end; + + +{ TRDX_LININVBusinessProcessorRules } +constructor TRDX_LININVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_LININVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_LININVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMDOC]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldNUMLINValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMLIN]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetCODARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldCODARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCODART]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetCODARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldFAMILIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVFAMILIA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetFAMILIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldBARRAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVBARRA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetBARRAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldTALLAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTALLA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetTALLAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetMARCAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldMARCAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMARCA]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetMARCAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetTAMANOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldTAMANOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTAMANO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetTAMANOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetSERIEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldSERIEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVSERIE]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetSERIEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldCOLORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCOLOR]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetCOLORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetMODELOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldMODELOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMODELO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetMODELOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetDIBUJOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldDIBUJOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDIBUJO]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetDIBUJOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO] := aValue; +end; + +function TRDX_LININVBusinessProcessorRules.GetDESCRIPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP]; +end; + +function TRDX_LININVBusinessProcessorRules.GetOldDESCRIPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDESCRIP]; +end; + +procedure TRDX_LININVBusinessProcessorRules.SetDESCRIPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP] := aValue; +end; + + +{ TRDX_CABINVBusinessProcessorRules } +constructor TRDX_CABINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CABINVBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CABINVBusinessProcessorRules.GetNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldNUMDOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVNUMDOC]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetTIPODOCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldTIPODOCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPODOC]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetTIPODOCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetTIPOLIQValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldTIPOLIQValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPOLIQ]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetTIPOLIQValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHALIQValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHALIQValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHALIQ]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHALIQValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetEMISORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldEMISORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVEMISOR]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetEMISORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetRECEPTORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldRECEPTORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVRECEPTOR]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetRECEPTORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetDPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldDPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVDPTO]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetDPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldCENTROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVCENTRO]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetCENTROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO] := aValue; +end; + +function TRDX_CABINVBusinessProcessorRules.GetFECHA_CARGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA]; +end; + +function TRDX_CABINVBusinessProcessorRules.GetOldFECHA_CARGAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA_CARGA]; +end; + +procedure TRDX_CABINVBusinessProcessorRules.SetFECHA_CARGAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RDX_CANTINVDelta, TRDX_CANTINVBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_LININVDelta, TRDX_LININVBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_CABINVDelta, TRDX_CABINVBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas new file mode 100644 index 0000000..51c3f6e --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas @@ -0,0 +1,323 @@ +unit uBizEDIInventary; + +interface + +uses + uDAInterfaces, uDADataTable, Classes, + DB, Controls, schEDIInventaryClient_Intf; + +const + BIZ_INVRPT_CAB = 'BizInvRptCab'; + BIZ_INVRPT_LIN = 'BizInvRptLin'; + BIZ_INVRPT_CANT = 'BizInvRptCant'; + +type + IBizEDIInv_Cab = interface(IRDX_CABINV) + ['{95AB3EC1-B8CC-4DB0-8052-03D1D225AC69}'] + end; + + IBizEDIInv_Lin = interface(IRDX_LININV) + ['{171361CD-EC4F-479C-9E86-2D369DEC4EA9}'] + end; + + IBizEDIInv_Cant = interface(IRDX_CANTINV) + ['{A91F8700-BD74-475A-8677-B349BB79FC07}'] + end; + + TBizEDIInv_Cab = class(TRDX_CABINVDataTableRules, IBizEDIInv_Cab) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetTIPODOCValue(const aValue: String); override; + procedure SetTIPOLIQValue(const aValue: String); override; + procedure SetFECHAValue(const aValue: DateTime); override; + procedure SetFECHALIQValue(const aValue: DateTime); override; + procedure SetEMISORValue(const aValue: String); override; + procedure SetRECEPTORValue(const aValue: String); override; + procedure SetDPTOValue(const aValue: String); override; + procedure SetCENTROValue(const aValue: String); override; + end; + + TBizEDIInv_Lin = class(TRDX_LININVDataTableRules, IBizEDIInv_Lin) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetNUMLINValue(const aValue: Float); override; + procedure SetCODARTValue(const aValue: String); override; + procedure SetFAMILIAValue(const aValue: String); override; + procedure SetBARRAValue(const aValue: String); override; + procedure SetTALLAValue(const aValue: String); override; + procedure SetMARCAValue(const aValue: String); override; + procedure SetTAMANOValue(const aValue: String); override; + procedure SetSERIEValue(const aValue: String); override; + procedure SetCOLORValue(const aValue: String); override; + procedure SetMODELOValue(const aValue: String); override; + procedure SetDIBUJOValue(const aValue: String); override; + procedure SetDESCRIPValue(const aValue: String); override; + end; + + TBizEDIInv_Cant = class(TRDX_CANTINVDataTableRules, IBizEDIInv_Cant) + protected + procedure SetNUMDOCValue(const aValue: String); override; + procedure SetNUMLINValue(const aValue: Float); override; + procedure SetNUMCANTValue(const aValue: Float); override; + procedure SetTIPOCANTValue(const aValue: String); override; + procedure SetCANTIDADValue(const aValue: Float); override; + procedure SetCENTROValue(const aValue: String); override; + procedure SetTMOVValue(const aValue: String); override; + procedure SetFACTValue(const aValue: String); override; + procedure SetDEPTOValue(const aValue: String); override; + procedure SetIDVENValue(const aValue: String); override; + end; + + +implementation + +uses + Variants; + +{ TBizEDIInv_Cab } + +procedure TBizEDIInv_Cab.SetCENTROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVCENTRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetDPTOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVDPTO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetEMISORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVEMISOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetFECHALIQValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; +end; + +procedure TBizEDIInv_Cab.SetFECHAValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABINVFECHA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; +end; + +procedure TBizEDIInv_Cab.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Cab.SetRECEPTORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetTIPODOCValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; +end; + +procedure TBizEDIInv_Cab.SetTIPOLIQValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; +end; + +{ TBizEDIInv_Lin } + +procedure TBizEDIInv_Lin.SetBARRAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVBARRA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetCODARTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVCODART].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetCOLORValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVCOLOR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetDESCRIPValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVDESCRIP].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetDIBUJOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVDIBUJO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetFAMILIAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVFAMILIA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetMARCAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVMARCA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetMODELOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVMODELO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Lin.SetNUMLINValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Lin.SetSERIEValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVSERIE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetTALLAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVTALLA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; +end; + +procedure TBizEDIInv_Lin.SetTAMANOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_LININVTAMANO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; +end; + +{ TBizEDIInv_Cant } + +procedure TBizEDIInv_Cant.SetCANTIDADValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetCENTROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetDEPTOValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetFACTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVFACT].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetIDVENValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetNUMCANTValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetNUMDOCValue(const aValue: String); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetNUMLINValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDIInv_Cant.SetTIPOCANTValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; +end; + +procedure TBizEDIInv_Cant.SetTMOVValue(const aValue: String); +begin + inherited; + +end; + +initialization + RegisterDataTableRules(BIZ_INVRPT_CAB, TBizEDIInv_Cab); + RegisterDataTableRules(BIZ_INVRPT_LIN, TBizEDIInv_Lin); + RegisterDataTableRules(BIZ_INVRPT_CANT, TBizEDIInv_Cant); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm new file mode 100644 index 0000000..164e687 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm @@ -0,0 +1,1061 @@ +object dmEDIInventary: TdmEDIInventary + OldCreateOrder = False + Height = 185 + Width = 396 + object schEDIInventary: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CANTINV' + SQL = + 'SELECT '#10' NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO,' + + ' '#10' TMOV, FACT, DEPTO, IDVEN'#10' FROM'#10' RDX_CANTINV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'NUMLIN' + TableField = 'NUMLIN' + end + item + DatasetField = 'NUMCANT' + TableField = 'NUMCANT' + end + item + DatasetField = 'TIPOCANT' + TableField = 'TIPOCANT' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'TMOV' + TableField = 'TMOV' + end + item + DatasetField = 'FACT' + TableField = 'FACT' + end + item + DatasetField = 'DEPTO' + TableField = 'DEPTO' + end + item + DatasetField = 'IDVEN' + TableField = 'IDVEN' + end> + end> + Name = 'RDX_CANTINV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCANT' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPOCANT' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANTIDAD' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TMOV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FACT' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DEPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IDVEN' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LININV' + SQL = + 'SELECT '#10' NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA' + + ', '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP'#10' FROM'#10' ' + + 'RDX_LININV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'NUMLIN' + TableField = 'NUMLIN' + end + item + DatasetField = 'CODART' + TableField = 'CODART' + end + item + DatasetField = 'FAMILIA' + TableField = 'FAMILIA' + end + item + DatasetField = 'BARRA' + TableField = 'BARRA' + end + item + DatasetField = 'TALLA' + TableField = 'TALLA' + end + item + DatasetField = 'MARCA' + TableField = 'MARCA' + end + item + DatasetField = 'TAMANO' + TableField = 'TAMANO' + end + item + DatasetField = 'SERIE' + TableField = 'SERIE' + end + item + DatasetField = 'COLOR' + TableField = 'COLOR' + end + item + DatasetField = 'MODELO' + TableField = 'MODELO' + end + item + DatasetField = 'DIBUJO' + TableField = 'DIBUJO' + end + item + DatasetField = 'DESCRIP' + TableField = 'DESCRIP' + end> + end> + Name = 'RDX_LININV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAMILIA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TALLA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MARCA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TAMANO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SERIE' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'COLOR' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MODELO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIBUJO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIP' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABINV' + SQL = + 'SELECT '#10' NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, '#10 + + ' RECEPTOR, DPTO, CENTRO, FECHA_CARGA'#10' FROM'#10' RDX_CABINV' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'NUMDOC' + TableField = 'NUMDOC' + end + item + DatasetField = 'TIPODOC' + TableField = 'TIPODOC' + end + item + DatasetField = 'TIPOLIQ' + TableField = 'TIPOLIQ' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'FECHALIQ' + TableField = 'FECHALIQ' + end + item + DatasetField = 'EMISOR' + TableField = 'EMISOR' + end + item + DatasetField = 'RECEPTOR' + TableField = 'RECEPTOR' + end + item + DatasetField = 'DPTO' + TableField = 'DPTO' + end + item + DatasetField = 'CENTRO' + TableField = 'CENTRO' + end + item + DatasetField = 'FECHA_CARGA' + TableField = 'FECHA_CARGA' + end> + end> + Name = 'RDX_CABINV' + Fields = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPODOC' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TIPOLIQ' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHALIQ' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMISOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RECEPTOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_SET_ULTIMOINVENTARIO' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_SET_ULTIMOINVENTARIO' + end + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_CARGAR_INVENTARIOEDI' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_CARGAR_INVENTARIOEDI' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPODOC' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPOLIQ' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHALIQ' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMISOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'RECEPTOR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABINV' + SQL = + 'INSERT'#10' INTO RDX_CABINV'#10' (NUMDOC, TIPODOC, TIPOLIQ, FECHA, F' + + 'ECHALIQ, EMISOR, '#10' RECEPTOR, DPTO, CENTRO, FECHA_CARGA)'#10' VA' + + 'LUES'#10' (:NUMDOC, :TIPODOC, :TIPOLIQ, :FECHA, :FECHALIQ, :EMISO' + + 'R, '#10' :RECEPTOR, :DPTO, :CENTRO, CURRENT_TIMESTAMP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CABINV' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FAMILIA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BARRA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TALLA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MARCA' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TAMANO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'SERIE' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'COLOR' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'MODELO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIBUJO' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIP' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LININV' + SQL = + 'INSERT'#10' INTO RDX_LININV'#10' (NUMDOC, NUMLIN, CODART, FAMILIA, B' + + 'ARRA, TALLA, MARCA, '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, ' + + 'DESCRIP)'#10' VALUES'#10' (:NUMDOC, :NUMLIN, :CODART, :FAMILIA, :BAR' + + 'RA, :TALLA, '#10' :MARCA, :TAMANO, :SERIE, :COLOR, :MODELO, :DIB' + + 'UJO, '#10' :DESCRIP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_LININV' + end + item + Params = < + item + Name = 'NUMDOC' + DataType = datString + Size = 25 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCANT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TIPOCANT' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANTIDAD' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CENTRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TMOV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FACT' + DataType = datString + Size = 12 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DEPTO' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'IDVEN' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CANTINV' + SQL = + 'INSERT'#10' INTO RDX_CANTINV'#10' (NUMDOC, NUMLIN, NUMCANT, TIPOCANT' + + ', CANTIDAD, CENTRO, '#10' TMOV, FACT, DEPTO, IDVEN)'#10' VALUES'#10' ' + + ' (:NUMDOC, :NUMLIN, :NUMCANT, :TIPOCANT, :CANTIDAD, :CENTRO, '#10' ' + + ' :TMOV, :FACT, :DEPTO, :IDVEN)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CANTINV' + end> + RelationShips = < + item + Name = 'FK_RDX_LININV_RDX_CABINV' + MasterDatasetName = 'RDX_CABINV' + MasterFields = 'NUMDOC' + DetailDatasetName = 'RDX_LININV' + DetailFields = 'NUMDOC' + RelationshipType = rtForeignKey + end + item + Name = 'FK_RDX_CANTINV_RDX_LININV' + MasterDatasetName = 'RDX_LININV' + MasterFields = 'NUMDOC;NUMLIN' + DetailDatasetName = 'RDX_CANTINV' + DetailFields = 'NUMDOC;NUMLIN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RDX_CABINV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_LININV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_CANTINV' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CABINV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_LININV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CANTINV' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CANTINV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CANTINV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_LININV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_LININV' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CABINV' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CABINV' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 56 + Top = 16 + end +end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas new file mode 100644 index 0000000..e6b95a2 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas @@ -0,0 +1,318 @@ +unit uDataModuleEDI_Inventary; + +interface + +uses + SysUtils, Classes, JvComponentBase, JvLogFile, uDAClasses, + uDABusinessProcessor, uDAScriptingProvider, uDADataTable, uDACDSDataTable, + uDataModuleServer, uBizEDIInventary, EDI_Reader, EDI_Inventary_Impl, + EDI_INVRPT, uDAInterfaces; + +type + TdmEDIInventary = class(TDataModule) + schEDIInventary: TDASchema; + private + function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarLineas(const ALinData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarCantidades(const ACantData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + function GenerarInventarioEDI: Boolean; + function MarcarRegistrosUltimoInventarioEDI: Boolean; + public + function CargarFicheros(const FicheroCAB: String; const FicheroLIN: String; + const FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; + end; + +var + dmEDIInventary: TdmEDIInventary; + +implementation + +uses + Controls, Forms, uDataTableUtils, DB, + Dialogs, Variants, schEDIInventaryClient_Intf, EDI_Utils, EDI_Log_Impl, + VARELA_Intf; + +{$R *.dfm} + +{ TdmEDIInventary } + +function TdmEDIInventary.CargarFicheros(const FicheroCAB, FicheroLIN, + FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; +var + Cab_Reader : TCABINV_Reader; + Lin_Reader : TLININV_Reader; + Cant_Reader : TCANTINV_Reader; + + NumRegNuevosCab : Integer; + NumRegNuevosLin : Integer; + NumRegNuevosCant : Integer; +begin + Result := True; + + Cab_Reader := TCABINV_Reader.Create; + try + Cab_Reader.Filename := FicheroCAB; + Cab_Reader.ReadFile; + Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); + finally + FreeAndNIL(Cab_Reader); + end; + + if Result then + begin + Lin_Reader := TLININV_Reader.Create; + try + Lin_Reader.Filename := FicheroLIN; + Lin_Reader.ReadFile; + Result := InsertarLineas (Lin_Reader.FileData, NumRegNuevosLin); + finally + FreeAndNIL(Lin_Reader); + end; + + if Result then + begin + Cant_Reader := TCANTINV_Reader.Create; + try + Cant_Reader.Filename := FicheroCANT; + Cant_Reader.ReadFile; + Result := InsertarCantidades(Cant_Reader.FileData, NumRegNuevosCant); + finally + Cant_Reader.Free; + end; + end; + end; + + if Result then + begin + NumRegNuevos := NumRegNuevosCant; + Result := GenerarInventarioEDI; + if Result then + Result := MarcarRegistrosUltimoInventarioEDI; + end; +end; + +function TdmEDIInventary.GenerarInventarioEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_CARGAR_INVENTARIOEDI'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (GenerarInventarioEDI)'); + end + end; +end; + +function TdmEDIInventary.InsertarCabecera(const ACabData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PCABINV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACabData.Count - 1 do + begin + Registro := ACabData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CABINV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('TIPODOC').AsString := Trim(Registro.TIPODOC); + ParamByName('TIPOLIQ').AsString := Trim(Registro.TIPOLIQ); + ParamByName('FECHA').AsDateTime := EDIDateToDateF(Trim(Registro.FECHA)); + ParamByName('FECHALIQ').AsDateTime := EDIDateToDateF(Trim(Registro.FECHALIQ)); + ParamByName('EMISOR').AsString := Trim(Registro.EMISOR); + ParamByName('RECEPTOR').AsString := Trim(Registro.RECEPTOR); + ParamByName('DPTO').AsString := Trim(Registro.DPTO); + ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCabecera INV)'); + end + end; + end; //for +end; + +function TdmEDIInventary.InsertarCantidades(const ACantData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PCANTINV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACantData.Count - 1 do + begin + Registro := ACantData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CANTINV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); + ParamByName('NUMCANT').AsInteger := StrToInt(Trim(Registro.NUMCANT)); + ParamByName('TIPOCANT').AsString := Trim(Registro.TIPOCANT); + ParamByName('CANTIDAD').AsFloat := StrToFloat(Trim(Registro.CANTIDAD)); + ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); + ParamByName('TMOV').AsString := Trim(Registro.TMOV); + ParamByName('FACT').AsString := Trim(Registro.FACT); + ParamByName('DEPTO').AsString := Trim(Registro.DEPTO); + ParamByName('IDVEN').AsString := Trim(Registro.IDVEN); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCantidades INV)'); + end + end; + end; //for +end; + +function TdmEDIInventary.InsertarLineas(const ALinData: TEDIFileData; + var NumRegNuevos : integer) : Boolean; +var + i : integer; + Registro : PLININV; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ALinData.Count - 1 do + begin + Registro := ALinData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_LININV'); + with ACommand do + begin + ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); + ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); + ParamByName('CODART').AsString := Trim(Registro.CODART); + ParamByName('FAMILIA').AsString := Trim(Registro.FAMILIA); + ParamByName('BARRA').AsString := Trim(Registro.BARRA); + ParamByName('TALLA').AsString := Trim(Registro.TALLA); + ParamByName('MARCA').AsString := Trim(Registro.MARCA); + ParamByName('TAMANO').AsString := Trim(Registro.TAMANO); + ParamByName('SERIE').AsString := Trim(Registro.SERIE); + ParamByName('COLOR').AsString := Trim(Registro.COLOR); + ParamByName('MODELO').AsString := Trim(Registro.MODELO); + ParamByName('DIBUJO').AsString := Trim(Registro.DIBUJO); + ParamByName('DESCRIP').AsString := Trim(Registro.DESCRIP); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarLineas INV)'); + end + end; + end; //for + Result := True; +end; + + +procedure TdmEDIInventary.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +function TdmEDIInventary.MarcarRegistrosUltimoInventarioEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_SET_ULTIMOINVENTARIO'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (MarcarRegistrosUltimoInventarioEDI)'); + end + end; +end; + +initialization + dmEDIInventary := TdmEDIInventary.Create(nil); + +finalization + FreeAndNil(dmEDIInventary); + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm new file mode 100644 index 0000000..2638b6c --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm @@ -0,0 +1,17 @@ +object EDI_Sales: TEDI_Sales + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ConnectionName = 'GFT_VARELA' + ServiceSchema = dmEDISales.schEDISales + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object DABINAdapter: TDABINAdapter + Left = 64 + Top = 32 + end +end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas new file mode 100644 index 0000000..f7d8bc9 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas @@ -0,0 +1,143 @@ +unit EDI_Sales_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, uDADataTable, + uDACDSDataTable, uDABusinessProcessor, uDABINAdapter, uDADataStreamer; + +type + { TEDI_Sales } + TEDI_Sales = class(TDARemoteService, IEDI_Sales) + DABINAdapter: TDABINAdapter; + private + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + protected + function CargarFicheroEDI(const FicheroCAB: String; + const FicheroLUG: String; const FicheroART: String; + out MsgError: String): Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDAInterfaces, + Dialogs, uDataModuleEDI_Sales, uDataModuleServer, + JclFileUtils, DateUtils, EDI_Log_Impl; + +procedure Create_EDI_Sales(out anInstance : IUnknown); +begin + anInstance := TEDI_Sales.Create(NIL); +end; + +{ EDI_Sales } +function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; + const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +var + ADirEntrada : String; + ADirTemp : String; + NumRegNuevos : Integer; + + procedure GuardarFicheros; + var + AAlmacen : String; + ADate : String; + begin + DateTimeToString(ADate, 'yyyymmddhhnn', Now); + AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); + AAlmacen := PathAddSeparator(AAlmacen + ADate); + if not DirectoryExists(AAlmacen) then + ForceDirectories(AAlmacen); + FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); + FileMove(ADirTemp + FicheroLUG, AAlmacen + FicheroLUG); + FileMove(ADirTemp + FicheroART, AAlmacen + FicheroART); + FileMove(ADirTemp + FicheroART, AAlmacen + 'CONVEN.TXT'); + DeleteDirectory(ADirTemp, False); + end; + +begin + Result := False; + NumRegNuevos := 0; + + // Hay que comprobar que existen los ficheros. + ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); + + if not FileExists(ADirEntrada + FicheroCAB) or + not FileExists(ADirEntrada + FicheroLUG) or + not FileExists(ADirEntrada + FicheroART) then + begin + MsgError := 'No hay ficheros de datos'; + InsertarLog(False, MsgError + ' (CargarFicheroEDI1 SLS)'); + end + else begin + + // Muevo los ficheros de carga a un directorio temporal + ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); + try + if not DirectoryExists(ADirTemp) then + ForceDirectories(ADirTemp); + FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); + FileMove(ADirEntrada + FicheroLUG, ADirTemp + FicheroLUG); + FileMove(ADirEntrada + FicheroART, ADirTemp + FicheroART); + FileMove(ADirEntrada + FicheroART, ADirTemp + 'CONVEN.TXT'); + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI2 SLS)'); + Exit; + end; + end; + + try + try + dmEDISales.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLUG, ADirTemp + FicheroART, NumRegNuevos); + if NumRegNuevos > 0 then + InsertarLog(True, Format('Se han cargado %d registros de ventas nuevos', [NumRegNuevos])) + else + InsertarLog(True, 'El fichero se ha cargado pero no hay registros de ventas nuevos'); + Result := True; + finally + GuardarFicheros; + dmServer.BorrarFicherosDeCargaAntiguos; + end; + except + on E: Exception do + begin + MsgError := E.Message; + InsertarLog(False, MsgError + ' (CargarFicheroEDI3 SLS)'); + end; + end; + end; +end; + +procedure TEDI_Sales.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +initialization + TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas new file mode 100644 index 0000000..cb3a387 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas @@ -0,0 +1,9 @@ +unit EDI_Sales_Types; + +interface + + + +implementation + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas new file mode 100644 index 0000000..ccbf38c --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas @@ -0,0 +1,1948 @@ +unit schEDISalesClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_ARTVEN = '{D0532CCF-994D-4445-B3AC-544120B18841}'; + RID_RDX_CABVEN = '{9B9CC64F-37C7-4B46-BF30-02E8CB14ED5B}'; + RID_RDX_LUGVEN = '{8CBF6BF1-7E83-43F2-BC61-6F692B9137CC}'; + + { Data table names } + nme_RDX_ARTVEN = 'RDX_ARTVEN'; + nme_RDX_CABVEN = 'RDX_CABVEN'; + nme_RDX_LUGVEN = 'RDX_LUGVEN'; + + { RDX_ARTVEN fields } + fld_RDX_ARTVENCLAVE1 = 'CLAVE1'; + fld_RDX_ARTVENCLAVE2 = 'CLAVE2'; + fld_RDX_ARTVENCLAVE3 = 'CLAVE3'; + fld_RDX_ARTVENEANART = 'EANART'; + fld_RDX_ARTVENCODCOM = 'CODCOM'; + fld_RDX_ARTVENNUMVAR = 'NUMVAR'; + fld_RDX_ARTVENCODPRO = 'CODPRO'; + fld_RDX_ARTVENDESARTCO = 'DESARTCO'; + fld_RDX_ARTVENDESART = 'DESART'; + fld_RDX_ARTVENNUMCON = 'NUMCON'; + fld_RDX_ARTVENNUMLIS = 'NUMLIS'; + fld_RDX_ARTVENCONESP1 = 'CONESP1'; + fld_RDX_ARTVENCONESP2 = 'CONESP2'; + fld_RDX_ARTVENCONESP3 = 'CONESP3'; + fld_RDX_ARTVENVALVEN = 'VALVEN'; + fld_RDX_ARTVENPRENETCT = 'PRENETCT'; + fld_RDX_ARTVENPREBRUCT = 'PREBRUCT'; + fld_RDX_ARTVENPREINFET = 'PREINFET'; + fld_RDX_ARTVENPREINFFT = 'PREINFFT'; + fld_RDX_ARTVENPRECALCT = 'PRECALCT'; + fld_RDX_ARTVENPRENETCA = 'PRENETCA'; + fld_RDX_ARTVENPREBRUCA = 'PREBRUCA'; + fld_RDX_ARTVENPREINFEA = 'PREINFEA'; + fld_RDX_ARTVENPREINFFA = 'PREINFFA'; + fld_RDX_ARTVENPRECALCA = 'PRECALCA'; + fld_RDX_ARTVENBAPRUN1 = 'BAPRUN1'; + fld_RDX_ARTVENUNIMED1 = 'UNIMED1'; + fld_RDX_ARTVENBAPRUN2 = 'BAPRUN2'; + fld_RDX_ARTVENUNIMED2 = 'UNIMED2'; + fld_RDX_ARTVENBAPRUN3 = 'BAPRUN3'; + fld_RDX_ARTVENUNIMED3 = 'UNIMED3'; + fld_RDX_ARTVENBAPRUN4 = 'BAPRUN4'; + fld_RDX_ARTVENUNIMED4 = 'UNIMED4'; + fld_RDX_ARTVENBAPRUN5 = 'BAPRUN5'; + fld_RDX_ARTVENUNIMED5 = 'UNIMED5'; + fld_RDX_ARTVENCANVEN = 'CANVEN'; + fld_RDX_ARTVENEXIPRO = 'EXIPRO'; + fld_RDX_ARTVENDESEXI = 'DESEXI'; + fld_RDX_ARTVENESPMEDCV = 'ESPMEDCV'; + fld_RDX_ARTVENESPMEDEP = 'ESPMEDEP'; + fld_RDX_ARTVENESPMEDDE = 'ESPMEDDE'; + fld_RDX_ARTVENCANDEV = 'CANDEV'; + fld_RDX_ARTVENEANVEN = 'EANVEN'; + fld_RDX_ARTVENNOMVEN = 'NOMVEN'; + fld_RDX_ARTVENNUMTALON = 'NUMTALON'; + fld_RDX_ARTVENCANVENNET = 'CANVENNET'; + fld_RDX_ARTVENUMEDVENNET = 'UMEDVENNET'; + fld_RDX_ARTVENCANESP = 'CANESP'; + fld_RDX_ARTVENUMEDESP = 'UMEDESP'; + + { RDX_ARTVEN field indexes } + idx_RDX_ARTVENCLAVE1 = 0; + idx_RDX_ARTVENCLAVE2 = 1; + idx_RDX_ARTVENCLAVE3 = 2; + idx_RDX_ARTVENEANART = 3; + idx_RDX_ARTVENCODCOM = 4; + idx_RDX_ARTVENNUMVAR = 5; + idx_RDX_ARTVENCODPRO = 6; + idx_RDX_ARTVENDESARTCO = 7; + idx_RDX_ARTVENDESART = 8; + idx_RDX_ARTVENNUMCON = 9; + idx_RDX_ARTVENNUMLIS = 10; + idx_RDX_ARTVENCONESP1 = 11; + idx_RDX_ARTVENCONESP2 = 12; + idx_RDX_ARTVENCONESP3 = 13; + idx_RDX_ARTVENVALVEN = 14; + idx_RDX_ARTVENPRENETCT = 15; + idx_RDX_ARTVENPREBRUCT = 16; + idx_RDX_ARTVENPREINFET = 17; + idx_RDX_ARTVENPREINFFT = 18; + idx_RDX_ARTVENPRECALCT = 19; + idx_RDX_ARTVENPRENETCA = 20; + idx_RDX_ARTVENPREBRUCA = 21; + idx_RDX_ARTVENPREINFEA = 22; + idx_RDX_ARTVENPREINFFA = 23; + idx_RDX_ARTVENPRECALCA = 24; + idx_RDX_ARTVENBAPRUN1 = 25; + idx_RDX_ARTVENUNIMED1 = 26; + idx_RDX_ARTVENBAPRUN2 = 27; + idx_RDX_ARTVENUNIMED2 = 28; + idx_RDX_ARTVENBAPRUN3 = 29; + idx_RDX_ARTVENUNIMED3 = 30; + idx_RDX_ARTVENBAPRUN4 = 31; + idx_RDX_ARTVENUNIMED4 = 32; + idx_RDX_ARTVENBAPRUN5 = 33; + idx_RDX_ARTVENUNIMED5 = 34; + idx_RDX_ARTVENCANVEN = 35; + idx_RDX_ARTVENEXIPRO = 36; + idx_RDX_ARTVENDESEXI = 37; + idx_RDX_ARTVENESPMEDCV = 38; + idx_RDX_ARTVENESPMEDEP = 39; + idx_RDX_ARTVENESPMEDDE = 40; + idx_RDX_ARTVENCANDEV = 41; + idx_RDX_ARTVENEANVEN = 42; + idx_RDX_ARTVENNOMVEN = 43; + idx_RDX_ARTVENNUMTALON = 44; + idx_RDX_ARTVENCANVENNET = 45; + idx_RDX_ARTVENUMEDVENNET = 46; + idx_RDX_ARTVENCANESP = 47; + idx_RDX_ARTVENUMEDESP = 48; + + { RDX_CABVEN fields } + fld_RDX_CABVENCLAVE1 = 'CLAVE1'; + fld_RDX_CABVENNUMINF = 'NUMINF'; + fld_RDX_CABVENFUNCION = 'FUNCION'; + fld_RDX_CABVENFECINI = 'FECINI'; + fld_RDX_CABVENFECFIN = 'FECFIN'; + fld_RDX_CABVENFECINF = 'FECINF'; + fld_RDX_CABVENPERVENINI = 'PERVENINI'; + fld_RDX_CABVENPERVENFIN = 'PERVENFIN'; + fld_RDX_CABVENEANOFI = 'EANOFI'; + fld_RDX_CABVENEANEMI = 'EANEMI'; + fld_RDX_CABVENEANREC = 'EANREC'; + fld_RDX_CABVENEANVEN = 'EANVEN'; + fld_RDX_CABVENEANALM = 'EANALM'; + fld_RDX_CABVENEANREP = 'EANREP'; + fld_RDX_CABVENEANPRO = 'EANPRO'; + fld_RDX_CABVENEANADMSA = 'EANADMSA'; + fld_RDX_CABVENEANREPSR = 'EANREPSR'; + fld_RDX_CABVENADMVENSA = 'ADMVENSA'; + fld_RDX_CABVENREPDEPSR = 'REPDEPSR'; + fld_RDX_CABVENEMAILSA = 'EMAILSA'; + fld_RDX_CABVENNUMFAXSA = 'NUMFAXSA'; + fld_RDX_CABVENNUMTELSA = 'NUMTELSA'; + fld_RDX_CABVENNUMTLXSA = 'NUMTLXSA'; + fld_RDX_CABVENX400SA = 'X400SA'; + fld_RDX_CABVENEMAILSR = 'EMAILSR'; + fld_RDX_CABVENNUMFAXSR = 'NUMFAXSR'; + fld_RDX_CABVENNUMTELSR = 'NUMTELSR'; + fld_RDX_CABVENNUMTLXSR = 'NUMTLXSR'; + fld_RDX_CABVENX400SR = 'X400SR'; + fld_RDX_CABVENNUMPRE = 'NUMPRE'; + fld_RDX_CABVENNUMINFSC = 'NUMINFSC'; + fld_RDX_CABVENNUMCON = 'NUMCON'; + fld_RDX_CABVENFECPRE = 'FECPRE'; + fld_RDX_CABVENFECINFSC = 'FECINFSC'; + fld_RDX_CABVENFECCON = 'FECCON'; + fld_RDX_CABVENDIVPED = 'DIVPED'; + fld_RDX_CABVENDIVPRE = 'DIVPRE'; + fld_RDX_CABVENDIVPAG = 'DIVPAG'; + fld_RDX_CABVENDIVPEDF = 'DIVPEDF'; + fld_RDX_CABVENDIVPREF = 'DIVPREF'; + fld_RDX_CABVENDIVPAGF = 'DIVPAGF'; + fld_RDX_CABVENTASCAM = 'TASCAM'; + fld_RDX_CABVENFECTAS = 'FECTAS'; + + { RDX_CABVEN field indexes } + idx_RDX_CABVENCLAVE1 = 0; + idx_RDX_CABVENNUMINF = 1; + idx_RDX_CABVENFUNCION = 2; + idx_RDX_CABVENFECINI = 3; + idx_RDX_CABVENFECFIN = 4; + idx_RDX_CABVENFECINF = 5; + idx_RDX_CABVENPERVENINI = 6; + idx_RDX_CABVENPERVENFIN = 7; + idx_RDX_CABVENEANOFI = 8; + idx_RDX_CABVENEANEMI = 9; + idx_RDX_CABVENEANREC = 10; + idx_RDX_CABVENEANVEN = 11; + idx_RDX_CABVENEANALM = 12; + idx_RDX_CABVENEANREP = 13; + idx_RDX_CABVENEANPRO = 14; + idx_RDX_CABVENEANADMSA = 15; + idx_RDX_CABVENEANREPSR = 16; + idx_RDX_CABVENADMVENSA = 17; + idx_RDX_CABVENREPDEPSR = 18; + idx_RDX_CABVENEMAILSA = 19; + idx_RDX_CABVENNUMFAXSA = 20; + idx_RDX_CABVENNUMTELSA = 21; + idx_RDX_CABVENNUMTLXSA = 22; + idx_RDX_CABVENX400SA = 23; + idx_RDX_CABVENEMAILSR = 24; + idx_RDX_CABVENNUMFAXSR = 25; + idx_RDX_CABVENNUMTELSR = 26; + idx_RDX_CABVENNUMTLXSR = 27; + idx_RDX_CABVENX400SR = 28; + idx_RDX_CABVENNUMPRE = 29; + idx_RDX_CABVENNUMINFSC = 30; + idx_RDX_CABVENNUMCON = 31; + idx_RDX_CABVENFECPRE = 32; + idx_RDX_CABVENFECINFSC = 33; + idx_RDX_CABVENFECCON = 34; + idx_RDX_CABVENDIVPED = 35; + idx_RDX_CABVENDIVPRE = 36; + idx_RDX_CABVENDIVPAG = 37; + idx_RDX_CABVENDIVPEDF = 38; + idx_RDX_CABVENDIVPREF = 39; + idx_RDX_CABVENDIVPAGF = 40; + idx_RDX_CABVENTASCAM = 41; + idx_RDX_CABVENFECTAS = 42; + + { RDX_LUGVEN fields } + fld_RDX_LUGVENCLAVE1 = 'CLAVE1'; + fld_RDX_LUGVENCLAVE2 = 'CLAVE2'; + fld_RDX_LUGVENEANLUG = 'EANLUG'; + fld_RDX_LUGVENLUGVEN = 'LUGVEN'; + fld_RDX_LUGVENFECINI = 'FECINI'; + fld_RDX_LUGVENFECFIN = 'FECFIN'; + fld_RDX_LUGVENPERVENINI = 'PERVENINI'; + fld_RDX_LUGVENPERVENFIN = 'PERVENFIN'; + + { RDX_LUGVEN field indexes } + idx_RDX_LUGVENCLAVE1 = 0; + idx_RDX_LUGVENCLAVE2 = 1; + idx_RDX_LUGVENEANLUG = 2; + idx_RDX_LUGVENLUGVEN = 3; + idx_RDX_LUGVENFECINI = 4; + idx_RDX_LUGVENFECFIN = 5; + idx_RDX_LUGVENPERVENINI = 6; + idx_RDX_LUGVENPERVENFIN = 7; + +type + { IRDX_ARTVEN } + IRDX_ARTVEN = interface(IDAStronglyTypedDataTable) + ['{9EC1A018-B12C-49B8-A8D7-852A5453C9B0}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Float; + procedure SetCLAVE2Value(const aValue: Float); + function GetCLAVE3Value: Float; + procedure SetCLAVE3Value(const aValue: Float); + function GetEANARTValue: String; + procedure SetEANARTValue(const aValue: String); + function GetCODCOMValue: String; + procedure SetCODCOMValue(const aValue: String); + function GetNUMVARValue: String; + procedure SetNUMVARValue(const aValue: String); + function GetCODPROValue: String; + procedure SetCODPROValue(const aValue: String); + function GetDESARTCOValue: String; + procedure SetDESARTCOValue(const aValue: String); + function GetDESARTValue: String; + procedure SetDESARTValue(const aValue: String); + function GetNUMCONValue: String; + procedure SetNUMCONValue(const aValue: String); + function GetNUMLISValue: String; + procedure SetNUMLISValue(const aValue: String); + function GetCONESP1Value: String; + procedure SetCONESP1Value(const aValue: String); + function GetCONESP2Value: String; + procedure SetCONESP2Value(const aValue: String); + function GetCONESP3Value: String; + procedure SetCONESP3Value(const aValue: String); + function GetVALVENValue: Float; + procedure SetVALVENValue(const aValue: Float); + function GetPRENETCTValue: Float; + procedure SetPRENETCTValue(const aValue: Float); + function GetPREBRUCTValue: Float; + procedure SetPREBRUCTValue(const aValue: Float); + function GetPREINFETValue: Float; + procedure SetPREINFETValue(const aValue: Float); + function GetPREINFFTValue: Float; + procedure SetPREINFFTValue(const aValue: Float); + function GetPRECALCTValue: Float; + procedure SetPRECALCTValue(const aValue: Float); + function GetPRENETCAValue: Float; + procedure SetPRENETCAValue(const aValue: Float); + function GetPREBRUCAValue: Float; + procedure SetPREBRUCAValue(const aValue: Float); + function GetPREINFEAValue: Float; + procedure SetPREINFEAValue(const aValue: Float); + function GetPREINFFAValue: Float; + procedure SetPREINFFAValue(const aValue: Float); + function GetPRECALCAValue: Float; + procedure SetPRECALCAValue(const aValue: Float); + function GetBAPRUN1Value: Float; + procedure SetBAPRUN1Value(const aValue: Float); + function GetUNIMED1Value: String; + procedure SetUNIMED1Value(const aValue: String); + function GetBAPRUN2Value: Float; + procedure SetBAPRUN2Value(const aValue: Float); + function GetUNIMED2Value: String; + procedure SetUNIMED2Value(const aValue: String); + function GetBAPRUN3Value: Float; + procedure SetBAPRUN3Value(const aValue: Float); + function GetUNIMED3Value: String; + procedure SetUNIMED3Value(const aValue: String); + function GetBAPRUN4Value: Float; + procedure SetBAPRUN4Value(const aValue: Float); + function GetUNIMED4Value: String; + procedure SetUNIMED4Value(const aValue: String); + function GetBAPRUN5Value: Float; + procedure SetBAPRUN5Value(const aValue: Float); + function GetUNIMED5Value: String; + procedure SetUNIMED5Value(const aValue: String); + function GetCANVENValue: Float; + procedure SetCANVENValue(const aValue: Float); + function GetEXIPROValue: Float; + procedure SetEXIPROValue(const aValue: Float); + function GetDESEXIValue: Float; + procedure SetDESEXIValue(const aValue: Float); + function GetESPMEDCVValue: String; + procedure SetESPMEDCVValue(const aValue: String); + function GetESPMEDEPValue: String; + procedure SetESPMEDEPValue(const aValue: String); + function GetESPMEDDEValue: String; + procedure SetESPMEDDEValue(const aValue: String); + function GetCANDEVValue: Float; + procedure SetCANDEVValue(const aValue: Float); + function GetEANVENValue: String; + procedure SetEANVENValue(const aValue: String); + function GetNOMVENValue: String; + procedure SetNOMVENValue(const aValue: String); + function GetNUMTALONValue: String; + procedure SetNUMTALONValue(const aValue: String); + function GetCANVENNETValue: Float; + procedure SetCANVENNETValue(const aValue: Float); + function GetUMEDVENNETValue: String; + procedure SetUMEDVENNETValue(const aValue: String); + function GetCANESPValue: Float; + procedure SetCANESPValue(const aValue: Float); + function GetUMEDESPValue: String; + procedure SetUMEDESPValue(const aValue: String); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; + property EANART: String read GetEANARTValue write SetEANARTValue; + property CODCOM: String read GetCODCOMValue write SetCODCOMValue; + property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; + property CODPRO: String read GetCODPROValue write SetCODPROValue; + property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; + property DESART: String read GetDESARTValue write SetDESARTValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; + property CONESP1: String read GetCONESP1Value write SetCONESP1Value; + property CONESP2: String read GetCONESP2Value write SetCONESP2Value; + property CONESP3: String read GetCONESP3Value write SetCONESP3Value; + property VALVEN: Float read GetVALVENValue write SetVALVENValue; + property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; + property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; + property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; + property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; + property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; + property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; + property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; + property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; + property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; + property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; + property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; + property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; + property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; + property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; + property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; + property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; + property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; + property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; + property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; + property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; + property CANVEN: Float read GetCANVENValue write SetCANVENValue; + property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; + property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; + property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; + property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; + property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; + property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; + property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property CANESP: Float read GetCANESPValue write SetCANESPValue; + property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; + end; + + { TRDX_ARTVENDataTableRules } + TRDX_ARTVENDataTableRules = class(TDADataTableRules, IRDX_ARTVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Float; virtual; + procedure SetCLAVE2Value(const aValue: Float); virtual; + function GetCLAVE3Value: Float; virtual; + procedure SetCLAVE3Value(const aValue: Float); virtual; + function GetEANARTValue: String; virtual; + procedure SetEANARTValue(const aValue: String); virtual; + function GetCODCOMValue: String; virtual; + procedure SetCODCOMValue(const aValue: String); virtual; + function GetNUMVARValue: String; virtual; + procedure SetNUMVARValue(const aValue: String); virtual; + function GetCODPROValue: String; virtual; + procedure SetCODPROValue(const aValue: String); virtual; + function GetDESARTCOValue: String; virtual; + procedure SetDESARTCOValue(const aValue: String); virtual; + function GetDESARTValue: String; virtual; + procedure SetDESARTValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetNUMLISValue: String; virtual; + procedure SetNUMLISValue(const aValue: String); virtual; + function GetCONESP1Value: String; virtual; + procedure SetCONESP1Value(const aValue: String); virtual; + function GetCONESP2Value: String; virtual; + procedure SetCONESP2Value(const aValue: String); virtual; + function GetCONESP3Value: String; virtual; + procedure SetCONESP3Value(const aValue: String); virtual; + function GetVALVENValue: Float; virtual; + procedure SetVALVENValue(const aValue: Float); virtual; + function GetPRENETCTValue: Float; virtual; + procedure SetPRENETCTValue(const aValue: Float); virtual; + function GetPREBRUCTValue: Float; virtual; + procedure SetPREBRUCTValue(const aValue: Float); virtual; + function GetPREINFETValue: Float; virtual; + procedure SetPREINFETValue(const aValue: Float); virtual; + function GetPREINFFTValue: Float; virtual; + procedure SetPREINFFTValue(const aValue: Float); virtual; + function GetPRECALCTValue: Float; virtual; + procedure SetPRECALCTValue(const aValue: Float); virtual; + function GetPRENETCAValue: Float; virtual; + procedure SetPRENETCAValue(const aValue: Float); virtual; + function GetPREBRUCAValue: Float; virtual; + procedure SetPREBRUCAValue(const aValue: Float); virtual; + function GetPREINFEAValue: Float; virtual; + procedure SetPREINFEAValue(const aValue: Float); virtual; + function GetPREINFFAValue: Float; virtual; + procedure SetPREINFFAValue(const aValue: Float); virtual; + function GetPRECALCAValue: Float; virtual; + procedure SetPRECALCAValue(const aValue: Float); virtual; + function GetBAPRUN1Value: Float; virtual; + procedure SetBAPRUN1Value(const aValue: Float); virtual; + function GetUNIMED1Value: String; virtual; + procedure SetUNIMED1Value(const aValue: String); virtual; + function GetBAPRUN2Value: Float; virtual; + procedure SetBAPRUN2Value(const aValue: Float); virtual; + function GetUNIMED2Value: String; virtual; + procedure SetUNIMED2Value(const aValue: String); virtual; + function GetBAPRUN3Value: Float; virtual; + procedure SetBAPRUN3Value(const aValue: Float); virtual; + function GetUNIMED3Value: String; virtual; + procedure SetUNIMED3Value(const aValue: String); virtual; + function GetBAPRUN4Value: Float; virtual; + procedure SetBAPRUN4Value(const aValue: Float); virtual; + function GetUNIMED4Value: String; virtual; + procedure SetUNIMED4Value(const aValue: String); virtual; + function GetBAPRUN5Value: Float; virtual; + procedure SetBAPRUN5Value(const aValue: Float); virtual; + function GetUNIMED5Value: String; virtual; + procedure SetUNIMED5Value(const aValue: String); virtual; + function GetCANVENValue: Float; virtual; + procedure SetCANVENValue(const aValue: Float); virtual; + function GetEXIPROValue: Float; virtual; + procedure SetEXIPROValue(const aValue: Float); virtual; + function GetDESEXIValue: Float; virtual; + procedure SetDESEXIValue(const aValue: Float); virtual; + function GetESPMEDCVValue: String; virtual; + procedure SetESPMEDCVValue(const aValue: String); virtual; + function GetESPMEDEPValue: String; virtual; + procedure SetESPMEDEPValue(const aValue: String); virtual; + function GetESPMEDDEValue: String; virtual; + procedure SetESPMEDDEValue(const aValue: String); virtual; + function GetCANDEVValue: Float; virtual; + procedure SetCANDEVValue(const aValue: Float); virtual; + function GetEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetNOMVENValue: String; virtual; + procedure SetNOMVENValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANVENNETValue: Float; virtual; + procedure SetCANVENNETValue(const aValue: Float); virtual; + function GetUMEDVENNETValue: String; virtual; + procedure SetUMEDVENNETValue(const aValue: String); virtual; + function GetCANESPValue: Float; virtual; + procedure SetCANESPValue(const aValue: Float); virtual; + function GetUMEDESPValue: String; virtual; + procedure SetUMEDESPValue(const aValue: String); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; + property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; + property EANART: String read GetEANARTValue write SetEANARTValue; + property CODCOM: String read GetCODCOMValue write SetCODCOMValue; + property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; + property CODPRO: String read GetCODPROValue write SetCODPROValue; + property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; + property DESART: String read GetDESARTValue write SetDESARTValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; + property CONESP1: String read GetCONESP1Value write SetCONESP1Value; + property CONESP2: String read GetCONESP2Value write SetCONESP2Value; + property CONESP3: String read GetCONESP3Value write SetCONESP3Value; + property VALVEN: Float read GetVALVENValue write SetVALVENValue; + property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; + property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; + property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; + property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; + property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; + property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; + property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; + property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; + property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; + property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; + property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; + property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; + property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; + property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; + property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; + property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; + property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; + property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; + property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; + property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; + property CANVEN: Float read GetCANVENValue write SetCANVENValue; + property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; + property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; + property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; + property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; + property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; + property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; + property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; + property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; + property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property CANESP: Float read GetCANESPValue write SetCANESPValue; + property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_CABVEN } + IRDX_CABVEN = interface(IDAStronglyTypedDataTable) + ['{5180F5AB-5BAF-4C8C-80F8-498D0D1252B5}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetNUMINFValue: String; + procedure SetNUMINFValue(const aValue: String); + function GetFUNCIONValue: String; + procedure SetFUNCIONValue(const aValue: String); + function GetFECINIValue: DateTime; + procedure SetFECINIValue(const aValue: DateTime); + function GetFECFINValue: DateTime; + procedure SetFECFINValue(const aValue: DateTime); + function GetFECINFValue: DateTime; + procedure SetFECINFValue(const aValue: DateTime); + function GetPERVENINIValue: DateTime; + procedure SetPERVENINIValue(const aValue: DateTime); + function GetPERVENFINValue: DateTime; + procedure SetPERVENFINValue(const aValue: DateTime); + function GetEANOFIValue: String; + procedure SetEANOFIValue(const aValue: String); + function GetEANEMIValue: String; + procedure SetEANEMIValue(const aValue: String); + function GetEANRECValue: String; + procedure SetEANRECValue(const aValue: String); + function GetEANVENValue: String; + procedure SetEANVENValue(const aValue: String); + function GetEANALMValue: String; + procedure SetEANALMValue(const aValue: String); + function GetEANREPValue: String; + procedure SetEANREPValue(const aValue: String); + function GetEANPROValue: String; + procedure SetEANPROValue(const aValue: String); + function GetEANADMSAValue: String; + procedure SetEANADMSAValue(const aValue: String); + function GetEANREPSRValue: String; + procedure SetEANREPSRValue(const aValue: String); + function GetADMVENSAValue: String; + procedure SetADMVENSAValue(const aValue: String); + function GetREPDEPSRValue: String; + procedure SetREPDEPSRValue(const aValue: String); + function GetEMAILSAValue: String; + procedure SetEMAILSAValue(const aValue: String); + function GetNUMFAXSAValue: String; + procedure SetNUMFAXSAValue(const aValue: String); + function GetNUMTELSAValue: String; + procedure SetNUMTELSAValue(const aValue: String); + function GetNUMTLXSAValue: String; + procedure SetNUMTLXSAValue(const aValue: String); + function GetX400SAValue: String; + procedure SetX400SAValue(const aValue: String); + function GetEMAILSRValue: String; + procedure SetEMAILSRValue(const aValue: String); + function GetNUMFAXSRValue: String; + procedure SetNUMFAXSRValue(const aValue: String); + function GetNUMTELSRValue: String; + procedure SetNUMTELSRValue(const aValue: String); + function GetNUMTLXSRValue: String; + procedure SetNUMTLXSRValue(const aValue: String); + function GetX400SRValue: String; + procedure SetX400SRValue(const aValue: String); + function GetNUMPREValue: String; + procedure SetNUMPREValue(const aValue: String); + function GetNUMINFSCValue: String; + procedure SetNUMINFSCValue(const aValue: String); + function GetNUMCONValue: String; + procedure SetNUMCONValue(const aValue: String); + function GetFECPREValue: DateTime; + procedure SetFECPREValue(const aValue: DateTime); + function GetFECINFSCValue: DateTime; + procedure SetFECINFSCValue(const aValue: DateTime); + function GetFECCONValue: DateTime; + procedure SetFECCONValue(const aValue: DateTime); + function GetDIVPEDValue: String; + procedure SetDIVPEDValue(const aValue: String); + function GetDIVPREValue: String; + procedure SetDIVPREValue(const aValue: String); + function GetDIVPAGValue: String; + procedure SetDIVPAGValue(const aValue: String); + function GetDIVPEDFValue: String; + procedure SetDIVPEDFValue(const aValue: String); + function GetDIVPREFValue: String; + procedure SetDIVPREFValue(const aValue: String); + function GetDIVPAGFValue: String; + procedure SetDIVPAGFValue(const aValue: String); + function GetTASCAMValue: Float; + procedure SetTASCAMValue(const aValue: Float); + function GetFECTASValue: DateTime; + procedure SetFECTASValue(const aValue: DateTime); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property FECINF: DateTime read GetFECINFValue write SetFECINFValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + property EANOFI: String read GetEANOFIValue write SetEANOFIValue; + property EANEMI: String read GetEANEMIValue write SetEANEMIValue; + property EANREC: String read GetEANRECValue write SetEANRECValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property EANALM: String read GetEANALMValue write SetEANALMValue; + property EANREP: String read GetEANREPValue write SetEANREPValue; + property EANPRO: String read GetEANPROValue write SetEANPROValue; + property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; + property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; + property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; + property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; + property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; + property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; + property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property X400SA: String read GetX400SAValue write SetX400SAValue; + property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; + property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; + property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property X400SR: String read GetX400SRValue write SetX400SRValue; + property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; + property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; + property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; + property FECCON: DateTime read GetFECCONValue write SetFECCONValue; + property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; + property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; + property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; + property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; + property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; + property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; + property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; + property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; + end; + + { TRDX_CABVENDataTableRules } + TRDX_CABVENDataTableRules = class(TDADataTableRules, IRDX_CABVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetFUNCIONValue: String; virtual; + procedure SetFUNCIONValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetFECINFValue: DateTime; virtual; + procedure SetFECINFValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + function GetEANOFIValue: String; virtual; + procedure SetEANOFIValue(const aValue: String); virtual; + function GetEANEMIValue: String; virtual; + procedure SetEANEMIValue(const aValue: String); virtual; + function GetEANRECValue: String; virtual; + procedure SetEANRECValue(const aValue: String); virtual; + function GetEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetEANALMValue: String; virtual; + procedure SetEANALMValue(const aValue: String); virtual; + function GetEANREPValue: String; virtual; + procedure SetEANREPValue(const aValue: String); virtual; + function GetEANPROValue: String; virtual; + procedure SetEANPROValue(const aValue: String); virtual; + function GetEANADMSAValue: String; virtual; + procedure SetEANADMSAValue(const aValue: String); virtual; + function GetEANREPSRValue: String; virtual; + procedure SetEANREPSRValue(const aValue: String); virtual; + function GetADMVENSAValue: String; virtual; + procedure SetADMVENSAValue(const aValue: String); virtual; + function GetREPDEPSRValue: String; virtual; + procedure SetREPDEPSRValue(const aValue: String); virtual; + function GetEMAILSAValue: String; virtual; + procedure SetEMAILSAValue(const aValue: String); virtual; + function GetNUMFAXSAValue: String; virtual; + procedure SetNUMFAXSAValue(const aValue: String); virtual; + function GetNUMTELSAValue: String; virtual; + procedure SetNUMTELSAValue(const aValue: String); virtual; + function GetNUMTLXSAValue: String; virtual; + procedure SetNUMTLXSAValue(const aValue: String); virtual; + function GetX400SAValue: String; virtual; + procedure SetX400SAValue(const aValue: String); virtual; + function GetEMAILSRValue: String; virtual; + procedure SetEMAILSRValue(const aValue: String); virtual; + function GetNUMFAXSRValue: String; virtual; + procedure SetNUMFAXSRValue(const aValue: String); virtual; + function GetNUMTELSRValue: String; virtual; + procedure SetNUMTELSRValue(const aValue: String); virtual; + function GetNUMTLXSRValue: String; virtual; + procedure SetNUMTLXSRValue(const aValue: String); virtual; + function GetX400SRValue: String; virtual; + procedure SetX400SRValue(const aValue: String); virtual; + function GetNUMPREValue: String; virtual; + procedure SetNUMPREValue(const aValue: String); virtual; + function GetNUMINFSCValue: String; virtual; + procedure SetNUMINFSCValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetFECPREValue: DateTime; virtual; + procedure SetFECPREValue(const aValue: DateTime); virtual; + function GetFECINFSCValue: DateTime; virtual; + procedure SetFECINFSCValue(const aValue: DateTime); virtual; + function GetFECCONValue: DateTime; virtual; + procedure SetFECCONValue(const aValue: DateTime); virtual; + function GetDIVPEDValue: String; virtual; + procedure SetDIVPEDValue(const aValue: String); virtual; + function GetDIVPREValue: String; virtual; + procedure SetDIVPREValue(const aValue: String); virtual; + function GetDIVPAGValue: String; virtual; + procedure SetDIVPAGValue(const aValue: String); virtual; + function GetDIVPEDFValue: String; virtual; + procedure SetDIVPEDFValue(const aValue: String); virtual; + function GetDIVPREFValue: String; virtual; + procedure SetDIVPREFValue(const aValue: String); virtual; + function GetDIVPAGFValue: String; virtual; + procedure SetDIVPAGFValue(const aValue: String); virtual; + function GetTASCAMValue: Float; virtual; + procedure SetTASCAMValue(const aValue: Float); virtual; + function GetFECTASValue: DateTime; virtual; + procedure SetFECTASValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property NUMINF: String read GetNUMINFValue write SetNUMINFValue; + property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property FECINF: DateTime read GetFECINFValue write SetFECINFValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + property EANOFI: String read GetEANOFIValue write SetEANOFIValue; + property EANEMI: String read GetEANEMIValue write SetEANEMIValue; + property EANREC: String read GetEANRECValue write SetEANRECValue; + property EANVEN: String read GetEANVENValue write SetEANVENValue; + property EANALM: String read GetEANALMValue write SetEANALMValue; + property EANREP: String read GetEANREPValue write SetEANREPValue; + property EANPRO: String read GetEANPROValue write SetEANPROValue; + property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; + property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; + property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; + property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; + property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; + property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; + property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property X400SA: String read GetX400SAValue write SetX400SAValue; + property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; + property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; + property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property X400SR: String read GetX400SRValue write SetX400SRValue; + property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; + property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; + property NUMCON: String read GetNUMCONValue write SetNUMCONValue; + property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; + property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; + property FECCON: DateTime read GetFECCONValue write SetFECCONValue; + property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; + property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; + property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; + property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; + property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; + property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; + property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; + property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IRDX_LUGVEN } + IRDX_LUGVEN = interface(IDAStronglyTypedDataTable) + ['{1F9C102A-BE07-4CEC-BBE3-7B062C9F8618}'] + { Property getters and setters } + function GetCLAVE1Value: Float; + procedure SetCLAVE1Value(const aValue: Float); + function GetCLAVE2Value: Integer; + procedure SetCLAVE2Value(const aValue: Integer); + function GetEANLUGValue: String; + procedure SetEANLUGValue(const aValue: String); + function GetLUGVENValue: String; + procedure SetLUGVENValue(const aValue: String); + function GetFECINIValue: DateTime; + procedure SetFECINIValue(const aValue: DateTime); + function GetFECFINValue: DateTime; + procedure SetFECFINValue(const aValue: DateTime); + function GetPERVENINIValue: DateTime; + procedure SetPERVENINIValue(const aValue: DateTime); + function GetPERVENFINValue: DateTime; + procedure SetPERVENFINValue(const aValue: DateTime); + + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property EANLUG: String read GetEANLUGValue write SetEANLUGValue; + property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + end; + + { TRDX_LUGVENDataTableRules } + TRDX_LUGVENDataTableRules = class(TDADataTableRules, IRDX_LUGVEN) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetEANLUGValue: String; virtual; + procedure SetEANLUGValue(const aValue: String); virtual; + function GetLUGVENValue: String; virtual; + procedure SetLUGVENValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; + property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; + property EANLUG: String read GetEANLUGValue write SetEANLUGValue; + property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; + property FECINI: DateTime read GetFECINIValue write SetFECINIValue; + property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; + property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; + property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants; + +{ TRDX_ARTVENDataTableRules } +constructor TRDX_ARTVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_ARTVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE2Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE2Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCLAVE3Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCLAVE3Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEANARTValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENEANART].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetEANARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENEANART].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCODCOMValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCODCOMValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMVARValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMVARValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCODPROValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCODPROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESARTCOValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESARTCOValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESARTValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESART].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESARTValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENDESART].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMCONValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMCONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMLISValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMLISValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP1Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP1Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP2Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP2Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCONESP3Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetCONESP3Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetVALVENValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetVALVENValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRENETCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRENETCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREBRUCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREBRUCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFETValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFETValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFFTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFFTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRECALCTValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRECALCTValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRENETCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRENETCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREBRUCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREBRUCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFEAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFEAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPREINFFAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPREINFFAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetPRECALCAValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetPRECALCAValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN1Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED1Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED1Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN2Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN2Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED2Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED2Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN3Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN3Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED3Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED3Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN4Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN4Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED4Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED4Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetBAPRUN5Value: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetBAPRUN5Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUNIMED5Value: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUNIMED5Value(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANVENValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANVENValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEXIPROValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetEXIPROValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetDESEXIValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetDESEXIValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDCVValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDCVValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDEPValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDEPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetESPMEDDEValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetESPMEDDEValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANDEVValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANDEVValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetEANVENValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetEANVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNOMVENValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNOMVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetNUMTALONValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetNUMTALONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANVENNETValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANVENNETValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUMEDVENNETValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUMEDVENNETValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetCANESPValue: Float; +begin + result := DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat; +end; + +procedure TRDX_ARTVENDataTableRules.SetCANESPValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat := aValue; +end; + +function TRDX_ARTVENDataTableRules.GetUMEDESPValue: String; +begin + result := DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString; +end; + +procedure TRDX_ARTVENDataTableRules.SetUMEDESPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString := aValue; +end; + + +{ TRDX_CABVENDataTableRules } +constructor TRDX_CABVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_CABVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_CABVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat; +end; + +procedure TRDX_CABVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMINFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMINF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMINFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFUNCIONValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENFUNCION].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetFUNCIONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINFValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINFValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetPERVENINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetPERVENFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANOFIValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANOFI].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANOFIValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANEMIValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANEMI].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANEMIValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANRECValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREC].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANRECValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANVENValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANVEN].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANALMValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANALM].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANALMValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANREPValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREP].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANREPValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANPROValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANPRO].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANPROValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANADMSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANADMSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEANREPSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEANREPSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetADMVENSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetADMVENSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetREPDEPSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetREPDEPSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEMAILSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEMAILSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMFAXSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMFAXSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTELSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTELSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTLXSAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTLXSAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetX400SAValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENX400SA].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetX400SAValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetEMAILSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetEMAILSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMFAXSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMFAXSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTELSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTELSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMTLXSRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMTLXSRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetX400SRValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENX400SR].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetX400SRValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMPREValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMPREValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMINFSCValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMINFSCValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetNUMCONValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENNUMCON].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetNUMCONValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECPREValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECPREValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECINFSCValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECINFSCValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECCONValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECCONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPEDValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPED].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPEDValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPREValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPREValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPAGValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPAGValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPEDFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPEDFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPREFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPREFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetDIVPAGFValue: String; +begin + result := DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString; +end; + +procedure TRDX_CABVENDataTableRules.SetDIVPAGFValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; +end; + +function TRDX_CABVENDataTableRules.GetTASCAMValue: Float; +begin + result := DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat; +end; + +procedure TRDX_CABVENDataTableRules.SetTASCAMValue(const aValue: Float); +begin + DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat := aValue; +end; + +function TRDX_CABVENDataTableRules.GetFECTASValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime; +end; + +procedure TRDX_CABVENDataTableRules.SetFECTASValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; +end; + + +{ TRDX_LUGVENDataTableRules } +constructor TRDX_LUGVENDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TRDX_LUGVENDataTableRules.Destroy; +begin + inherited; +end; + +function TRDX_LUGVENDataTableRules.GetCLAVE1Value: Float; +begin + result := DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat; +end; + +procedure TRDX_LUGVENDataTableRules.SetCLAVE1Value(const aValue: Float); +begin + DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetCLAVE2Value: Integer; +begin + result := DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger; +end; + +procedure TRDX_LUGVENDataTableRules.SetCLAVE2Value(const aValue: Integer); +begin + DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetEANLUGValue: String; +begin + result := DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString; +end; + +procedure TRDX_LUGVENDataTableRules.SetEANLUGValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetLUGVENValue: String; +begin + result := DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString; +end; + +procedure TRDX_LUGVENDataTableRules.SetLUGVENValue(const aValue: String); +begin + DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetFECINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetFECINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetFECFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetFECFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetPERVENINIValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; +end; + +function TRDX_LUGVENDataTableRules.GetPERVENFINValue: DateTime; +begin + result := DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime; +end; + +procedure TRDX_LUGVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); +begin + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; +end; + + +initialization + RegisterDataTableRules(RID_RDX_ARTVEN, TRDX_ARTVENDataTableRules); + RegisterDataTableRules(RID_RDX_CABVEN, TRDX_CABVENDataTableRules); + RegisterDataTableRules(RID_RDX_LUGVEN, TRDX_LUGVENDataTableRules); + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas new file mode 100644 index 0000000..8c11867 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas @@ -0,0 +1,2329 @@ +unit schEDISalesServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDISalesClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_RDX_ARTVENDelta = '{DBADAFB4-396F-45CF-969C-0E310CE772EF}'; + RID_RDX_CABVENDelta = '{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'; + RID_RDX_LUGVENDelta = '{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'; + +type + { IRDX_ARTVENDelta } + IRDX_ARTVENDelta = interface(IRDX_ARTVEN) + ['{DBADAFB4-396F-45CF-969C-0E310CE772EF}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Float; + function GetOldCLAVE3Value : Float; + function GetOldEANARTValue : String; + function GetOldCODCOMValue : String; + function GetOldNUMVARValue : String; + function GetOldCODPROValue : String; + function GetOldDESARTCOValue : String; + function GetOldDESARTValue : String; + function GetOldNUMCONValue : String; + function GetOldNUMLISValue : String; + function GetOldCONESP1Value : String; + function GetOldCONESP2Value : String; + function GetOldCONESP3Value : String; + function GetOldVALVENValue : Float; + function GetOldPRENETCTValue : Float; + function GetOldPREBRUCTValue : Float; + function GetOldPREINFETValue : Float; + function GetOldPREINFFTValue : Float; + function GetOldPRECALCTValue : Float; + function GetOldPRENETCAValue : Float; + function GetOldPREBRUCAValue : Float; + function GetOldPREINFEAValue : Float; + function GetOldPREINFFAValue : Float; + function GetOldPRECALCAValue : Float; + function GetOldBAPRUN1Value : Float; + function GetOldUNIMED1Value : String; + function GetOldBAPRUN2Value : Float; + function GetOldUNIMED2Value : String; + function GetOldBAPRUN3Value : Float; + function GetOldUNIMED3Value : String; + function GetOldBAPRUN4Value : Float; + function GetOldUNIMED4Value : String; + function GetOldBAPRUN5Value : Float; + function GetOldUNIMED5Value : String; + function GetOldCANVENValue : Float; + function GetOldEXIPROValue : Float; + function GetOldDESEXIValue : Float; + function GetOldESPMEDCVValue : String; + function GetOldESPMEDEPValue : String; + function GetOldESPMEDDEValue : String; + function GetOldCANDEVValue : Float; + function GetOldEANVENValue : String; + function GetOldNOMVENValue : String; + function GetOldNUMTALONValue : String; + function GetOldCANVENNETValue : Float; + function GetOldUMEDVENNETValue : String; + function GetOldCANESPValue : Float; + function GetOldUMEDESPValue : String; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Float read GetOldCLAVE2Value; + property OldCLAVE3 : Float read GetOldCLAVE3Value; + property OldEANART : String read GetOldEANARTValue; + property OldCODCOM : String read GetOldCODCOMValue; + property OldNUMVAR : String read GetOldNUMVARValue; + property OldCODPRO : String read GetOldCODPROValue; + property OldDESARTCO : String read GetOldDESARTCOValue; + property OldDESART : String read GetOldDESARTValue; + property OldNUMCON : String read GetOldNUMCONValue; + property OldNUMLIS : String read GetOldNUMLISValue; + property OldCONESP1 : String read GetOldCONESP1Value; + property OldCONESP2 : String read GetOldCONESP2Value; + property OldCONESP3 : String read GetOldCONESP3Value; + property OldVALVEN : Float read GetOldVALVENValue; + property OldPRENETCT : Float read GetOldPRENETCTValue; + property OldPREBRUCT : Float read GetOldPREBRUCTValue; + property OldPREINFET : Float read GetOldPREINFETValue; + property OldPREINFFT : Float read GetOldPREINFFTValue; + property OldPRECALCT : Float read GetOldPRECALCTValue; + property OldPRENETCA : Float read GetOldPRENETCAValue; + property OldPREBRUCA : Float read GetOldPREBRUCAValue; + property OldPREINFEA : Float read GetOldPREINFEAValue; + property OldPREINFFA : Float read GetOldPREINFFAValue; + property OldPRECALCA : Float read GetOldPRECALCAValue; + property OldBAPRUN1 : Float read GetOldBAPRUN1Value; + property OldUNIMED1 : String read GetOldUNIMED1Value; + property OldBAPRUN2 : Float read GetOldBAPRUN2Value; + property OldUNIMED2 : String read GetOldUNIMED2Value; + property OldBAPRUN3 : Float read GetOldBAPRUN3Value; + property OldUNIMED3 : String read GetOldUNIMED3Value; + property OldBAPRUN4 : Float read GetOldBAPRUN4Value; + property OldUNIMED4 : String read GetOldUNIMED4Value; + property OldBAPRUN5 : Float read GetOldBAPRUN5Value; + property OldUNIMED5 : String read GetOldUNIMED5Value; + property OldCANVEN : Float read GetOldCANVENValue; + property OldEXIPRO : Float read GetOldEXIPROValue; + property OldDESEXI : Float read GetOldDESEXIValue; + property OldESPMEDCV : String read GetOldESPMEDCVValue; + property OldESPMEDEP : String read GetOldESPMEDEPValue; + property OldESPMEDDE : String read GetOldESPMEDDEValue; + property OldCANDEV : Float read GetOldCANDEVValue; + property OldEANVEN : String read GetOldEANVENValue; + property OldNOMVEN : String read GetOldNOMVENValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property OldCANVENNET : Float read GetOldCANVENNETValue; + property OldUMEDVENNET : String read GetOldUMEDVENNETValue; + property OldCANESP : Float read GetOldCANESPValue; + property OldUMEDESP : String read GetOldUMEDESPValue; + end; + + { TRDX_ARTVENBusinessProcessorRules } + TRDX_ARTVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_ARTVEN, IRDX_ARTVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Float; virtual; + function GetOldCLAVE2Value: Float; virtual; + procedure SetCLAVE2Value(const aValue: Float); virtual; + function GetCLAVE3Value: Float; virtual; + function GetOldCLAVE3Value: Float; virtual; + procedure SetCLAVE3Value(const aValue: Float); virtual; + function GetEANARTValue: String; virtual; + function GetOldEANARTValue: String; virtual; + procedure SetEANARTValue(const aValue: String); virtual; + function GetCODCOMValue: String; virtual; + function GetOldCODCOMValue: String; virtual; + procedure SetCODCOMValue(const aValue: String); virtual; + function GetNUMVARValue: String; virtual; + function GetOldNUMVARValue: String; virtual; + procedure SetNUMVARValue(const aValue: String); virtual; + function GetCODPROValue: String; virtual; + function GetOldCODPROValue: String; virtual; + procedure SetCODPROValue(const aValue: String); virtual; + function GetDESARTCOValue: String; virtual; + function GetOldDESARTCOValue: String; virtual; + procedure SetDESARTCOValue(const aValue: String); virtual; + function GetDESARTValue: String; virtual; + function GetOldDESARTValue: String; virtual; + procedure SetDESARTValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + function GetOldNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetNUMLISValue: String; virtual; + function GetOldNUMLISValue: String; virtual; + procedure SetNUMLISValue(const aValue: String); virtual; + function GetCONESP1Value: String; virtual; + function GetOldCONESP1Value: String; virtual; + procedure SetCONESP1Value(const aValue: String); virtual; + function GetCONESP2Value: String; virtual; + function GetOldCONESP2Value: String; virtual; + procedure SetCONESP2Value(const aValue: String); virtual; + function GetCONESP3Value: String; virtual; + function GetOldCONESP3Value: String; virtual; + procedure SetCONESP3Value(const aValue: String); virtual; + function GetVALVENValue: Float; virtual; + function GetOldVALVENValue: Float; virtual; + procedure SetVALVENValue(const aValue: Float); virtual; + function GetPRENETCTValue: Float; virtual; + function GetOldPRENETCTValue: Float; virtual; + procedure SetPRENETCTValue(const aValue: Float); virtual; + function GetPREBRUCTValue: Float; virtual; + function GetOldPREBRUCTValue: Float; virtual; + procedure SetPREBRUCTValue(const aValue: Float); virtual; + function GetPREINFETValue: Float; virtual; + function GetOldPREINFETValue: Float; virtual; + procedure SetPREINFETValue(const aValue: Float); virtual; + function GetPREINFFTValue: Float; virtual; + function GetOldPREINFFTValue: Float; virtual; + procedure SetPREINFFTValue(const aValue: Float); virtual; + function GetPRECALCTValue: Float; virtual; + function GetOldPRECALCTValue: Float; virtual; + procedure SetPRECALCTValue(const aValue: Float); virtual; + function GetPRENETCAValue: Float; virtual; + function GetOldPRENETCAValue: Float; virtual; + procedure SetPRENETCAValue(const aValue: Float); virtual; + function GetPREBRUCAValue: Float; virtual; + function GetOldPREBRUCAValue: Float; virtual; + procedure SetPREBRUCAValue(const aValue: Float); virtual; + function GetPREINFEAValue: Float; virtual; + function GetOldPREINFEAValue: Float; virtual; + procedure SetPREINFEAValue(const aValue: Float); virtual; + function GetPREINFFAValue: Float; virtual; + function GetOldPREINFFAValue: Float; virtual; + procedure SetPREINFFAValue(const aValue: Float); virtual; + function GetPRECALCAValue: Float; virtual; + function GetOldPRECALCAValue: Float; virtual; + procedure SetPRECALCAValue(const aValue: Float); virtual; + function GetBAPRUN1Value: Float; virtual; + function GetOldBAPRUN1Value: Float; virtual; + procedure SetBAPRUN1Value(const aValue: Float); virtual; + function GetUNIMED1Value: String; virtual; + function GetOldUNIMED1Value: String; virtual; + procedure SetUNIMED1Value(const aValue: String); virtual; + function GetBAPRUN2Value: Float; virtual; + function GetOldBAPRUN2Value: Float; virtual; + procedure SetBAPRUN2Value(const aValue: Float); virtual; + function GetUNIMED2Value: String; virtual; + function GetOldUNIMED2Value: String; virtual; + procedure SetUNIMED2Value(const aValue: String); virtual; + function GetBAPRUN3Value: Float; virtual; + function GetOldBAPRUN3Value: Float; virtual; + procedure SetBAPRUN3Value(const aValue: Float); virtual; + function GetUNIMED3Value: String; virtual; + function GetOldUNIMED3Value: String; virtual; + procedure SetUNIMED3Value(const aValue: String); virtual; + function GetBAPRUN4Value: Float; virtual; + function GetOldBAPRUN4Value: Float; virtual; + procedure SetBAPRUN4Value(const aValue: Float); virtual; + function GetUNIMED4Value: String; virtual; + function GetOldUNIMED4Value: String; virtual; + procedure SetUNIMED4Value(const aValue: String); virtual; + function GetBAPRUN5Value: Float; virtual; + function GetOldBAPRUN5Value: Float; virtual; + procedure SetBAPRUN5Value(const aValue: Float); virtual; + function GetUNIMED5Value: String; virtual; + function GetOldUNIMED5Value: String; virtual; + procedure SetUNIMED5Value(const aValue: String); virtual; + function GetCANVENValue: Float; virtual; + function GetOldCANVENValue: Float; virtual; + procedure SetCANVENValue(const aValue: Float); virtual; + function GetEXIPROValue: Float; virtual; + function GetOldEXIPROValue: Float; virtual; + procedure SetEXIPROValue(const aValue: Float); virtual; + function GetDESEXIValue: Float; virtual; + function GetOldDESEXIValue: Float; virtual; + procedure SetDESEXIValue(const aValue: Float); virtual; + function GetESPMEDCVValue: String; virtual; + function GetOldESPMEDCVValue: String; virtual; + procedure SetESPMEDCVValue(const aValue: String); virtual; + function GetESPMEDEPValue: String; virtual; + function GetOldESPMEDEPValue: String; virtual; + procedure SetESPMEDEPValue(const aValue: String); virtual; + function GetESPMEDDEValue: String; virtual; + function GetOldESPMEDDEValue: String; virtual; + procedure SetESPMEDDEValue(const aValue: String); virtual; + function GetCANDEVValue: Float; virtual; + function GetOldCANDEVValue: Float; virtual; + procedure SetCANDEVValue(const aValue: Float); virtual; + function GetEANVENValue: String; virtual; + function GetOldEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetNOMVENValue: String; virtual; + function GetOldNOMVENValue: String; virtual; + procedure SetNOMVENValue(const aValue: String); virtual; + function GetNUMTALONValue: String; virtual; + function GetOldNUMTALONValue: String; virtual; + procedure SetNUMTALONValue(const aValue: String); virtual; + function GetCANVENNETValue: Float; virtual; + function GetOldCANVENNETValue: Float; virtual; + procedure SetCANVENNETValue(const aValue: Float); virtual; + function GetUMEDVENNETValue: String; virtual; + function GetOldUMEDVENNETValue: String; virtual; + procedure SetUMEDVENNETValue(const aValue: String); virtual; + function GetCANESPValue: Float; virtual; + function GetOldCANESPValue: Float; virtual; + procedure SetCANESPValue(const aValue: Float); virtual; + function GetUMEDESPValue: String; virtual; + function GetOldUMEDESPValue: String; virtual; + procedure SetUMEDESPValue(const aValue: String); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Float read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Float read GetOldCLAVE2Value; + property CLAVE3 : Float read GetCLAVE3Value write SetCLAVE3Value; + property OldCLAVE3 : Float read GetOldCLAVE3Value; + property EANART : String read GetEANARTValue write SetEANARTValue; + property OldEANART : String read GetOldEANARTValue; + property CODCOM : String read GetCODCOMValue write SetCODCOMValue; + property OldCODCOM : String read GetOldCODCOMValue; + property NUMVAR : String read GetNUMVARValue write SetNUMVARValue; + property OldNUMVAR : String read GetOldNUMVARValue; + property CODPRO : String read GetCODPROValue write SetCODPROValue; + property OldCODPRO : String read GetOldCODPROValue; + property DESARTCO : String read GetDESARTCOValue write SetDESARTCOValue; + property OldDESARTCO : String read GetOldDESARTCOValue; + property DESART : String read GetDESARTValue write SetDESARTValue; + property OldDESART : String read GetOldDESARTValue; + property NUMCON : String read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : String read GetOldNUMCONValue; + property NUMLIS : String read GetNUMLISValue write SetNUMLISValue; + property OldNUMLIS : String read GetOldNUMLISValue; + property CONESP1 : String read GetCONESP1Value write SetCONESP1Value; + property OldCONESP1 : String read GetOldCONESP1Value; + property CONESP2 : String read GetCONESP2Value write SetCONESP2Value; + property OldCONESP2 : String read GetOldCONESP2Value; + property CONESP3 : String read GetCONESP3Value write SetCONESP3Value; + property OldCONESP3 : String read GetOldCONESP3Value; + property VALVEN : Float read GetVALVENValue write SetVALVENValue; + property OldVALVEN : Float read GetOldVALVENValue; + property PRENETCT : Float read GetPRENETCTValue write SetPRENETCTValue; + property OldPRENETCT : Float read GetOldPRENETCTValue; + property PREBRUCT : Float read GetPREBRUCTValue write SetPREBRUCTValue; + property OldPREBRUCT : Float read GetOldPREBRUCTValue; + property PREINFET : Float read GetPREINFETValue write SetPREINFETValue; + property OldPREINFET : Float read GetOldPREINFETValue; + property PREINFFT : Float read GetPREINFFTValue write SetPREINFFTValue; + property OldPREINFFT : Float read GetOldPREINFFTValue; + property PRECALCT : Float read GetPRECALCTValue write SetPRECALCTValue; + property OldPRECALCT : Float read GetOldPRECALCTValue; + property PRENETCA : Float read GetPRENETCAValue write SetPRENETCAValue; + property OldPRENETCA : Float read GetOldPRENETCAValue; + property PREBRUCA : Float read GetPREBRUCAValue write SetPREBRUCAValue; + property OldPREBRUCA : Float read GetOldPREBRUCAValue; + property PREINFEA : Float read GetPREINFEAValue write SetPREINFEAValue; + property OldPREINFEA : Float read GetOldPREINFEAValue; + property PREINFFA : Float read GetPREINFFAValue write SetPREINFFAValue; + property OldPREINFFA : Float read GetOldPREINFFAValue; + property PRECALCA : Float read GetPRECALCAValue write SetPRECALCAValue; + property OldPRECALCA : Float read GetOldPRECALCAValue; + property BAPRUN1 : Float read GetBAPRUN1Value write SetBAPRUN1Value; + property OldBAPRUN1 : Float read GetOldBAPRUN1Value; + property UNIMED1 : String read GetUNIMED1Value write SetUNIMED1Value; + property OldUNIMED1 : String read GetOldUNIMED1Value; + property BAPRUN2 : Float read GetBAPRUN2Value write SetBAPRUN2Value; + property OldBAPRUN2 : Float read GetOldBAPRUN2Value; + property UNIMED2 : String read GetUNIMED2Value write SetUNIMED2Value; + property OldUNIMED2 : String read GetOldUNIMED2Value; + property BAPRUN3 : Float read GetBAPRUN3Value write SetBAPRUN3Value; + property OldBAPRUN3 : Float read GetOldBAPRUN3Value; + property UNIMED3 : String read GetUNIMED3Value write SetUNIMED3Value; + property OldUNIMED3 : String read GetOldUNIMED3Value; + property BAPRUN4 : Float read GetBAPRUN4Value write SetBAPRUN4Value; + property OldBAPRUN4 : Float read GetOldBAPRUN4Value; + property UNIMED4 : String read GetUNIMED4Value write SetUNIMED4Value; + property OldUNIMED4 : String read GetOldUNIMED4Value; + property BAPRUN5 : Float read GetBAPRUN5Value write SetBAPRUN5Value; + property OldBAPRUN5 : Float read GetOldBAPRUN5Value; + property UNIMED5 : String read GetUNIMED5Value write SetUNIMED5Value; + property OldUNIMED5 : String read GetOldUNIMED5Value; + property CANVEN : Float read GetCANVENValue write SetCANVENValue; + property OldCANVEN : Float read GetOldCANVENValue; + property EXIPRO : Float read GetEXIPROValue write SetEXIPROValue; + property OldEXIPRO : Float read GetOldEXIPROValue; + property DESEXI : Float read GetDESEXIValue write SetDESEXIValue; + property OldDESEXI : Float read GetOldDESEXIValue; + property ESPMEDCV : String read GetESPMEDCVValue write SetESPMEDCVValue; + property OldESPMEDCV : String read GetOldESPMEDCVValue; + property ESPMEDEP : String read GetESPMEDEPValue write SetESPMEDEPValue; + property OldESPMEDEP : String read GetOldESPMEDEPValue; + property ESPMEDDE : String read GetESPMEDDEValue write SetESPMEDDEValue; + property OldESPMEDDE : String read GetOldESPMEDDEValue; + property CANDEV : Float read GetCANDEVValue write SetCANDEVValue; + property OldCANDEV : Float read GetOldCANDEVValue; + property EANVEN : String read GetEANVENValue write SetEANVENValue; + property OldEANVEN : String read GetOldEANVENValue; + property NOMVEN : String read GetNOMVENValue write SetNOMVENValue; + property OldNOMVEN : String read GetOldNOMVENValue; + property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; + property OldNUMTALON : String read GetOldNUMTALONValue; + property CANVENNET : Float read GetCANVENNETValue write SetCANVENNETValue; + property OldCANVENNET : Float read GetOldCANVENNETValue; + property UMEDVENNET : String read GetUMEDVENNETValue write SetUMEDVENNETValue; + property OldUMEDVENNET : String read GetOldUMEDVENNETValue; + property CANESP : Float read GetCANESPValue write SetCANESPValue; + property OldCANESP : Float read GetOldCANESPValue; + property UMEDESP : String read GetUMEDESPValue write SetUMEDESPValue; + property OldUMEDESP : String read GetOldUMEDESPValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_CABVENDelta } + IRDX_CABVENDelta = interface(IRDX_CABVEN) + ['{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldNUMINFValue : String; + function GetOldFUNCIONValue : String; + function GetOldFECINIValue : DateTime; + function GetOldFECFINValue : DateTime; + function GetOldFECINFValue : DateTime; + function GetOldPERVENINIValue : DateTime; + function GetOldPERVENFINValue : DateTime; + function GetOldEANOFIValue : String; + function GetOldEANEMIValue : String; + function GetOldEANRECValue : String; + function GetOldEANVENValue : String; + function GetOldEANALMValue : String; + function GetOldEANREPValue : String; + function GetOldEANPROValue : String; + function GetOldEANADMSAValue : String; + function GetOldEANREPSRValue : String; + function GetOldADMVENSAValue : String; + function GetOldREPDEPSRValue : String; + function GetOldEMAILSAValue : String; + function GetOldNUMFAXSAValue : String; + function GetOldNUMTELSAValue : String; + function GetOldNUMTLXSAValue : String; + function GetOldX400SAValue : String; + function GetOldEMAILSRValue : String; + function GetOldNUMFAXSRValue : String; + function GetOldNUMTELSRValue : String; + function GetOldNUMTLXSRValue : String; + function GetOldX400SRValue : String; + function GetOldNUMPREValue : String; + function GetOldNUMINFSCValue : String; + function GetOldNUMCONValue : String; + function GetOldFECPREValue : DateTime; + function GetOldFECINFSCValue : DateTime; + function GetOldFECCONValue : DateTime; + function GetOldDIVPEDValue : String; + function GetOldDIVPREValue : String; + function GetOldDIVPAGValue : String; + function GetOldDIVPEDFValue : String; + function GetOldDIVPREFValue : String; + function GetOldDIVPAGFValue : String; + function GetOldTASCAMValue : Float; + function GetOldFECTASValue : DateTime; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldNUMINF : String read GetOldNUMINFValue; + property OldFUNCION : String read GetOldFUNCIONValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property OldFECINF : DateTime read GetOldFECINFValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + property OldEANOFI : String read GetOldEANOFIValue; + property OldEANEMI : String read GetOldEANEMIValue; + property OldEANREC : String read GetOldEANRECValue; + property OldEANVEN : String read GetOldEANVENValue; + property OldEANALM : String read GetOldEANALMValue; + property OldEANREP : String read GetOldEANREPValue; + property OldEANPRO : String read GetOldEANPROValue; + property OldEANADMSA : String read GetOldEANADMSAValue; + property OldEANREPSR : String read GetOldEANREPSRValue; + property OldADMVENSA : String read GetOldADMVENSAValue; + property OldREPDEPSR : String read GetOldREPDEPSRValue; + property OldEMAILSA : String read GetOldEMAILSAValue; + property OldNUMFAXSA : String read GetOldNUMFAXSAValue; + property OldNUMTELSA : String read GetOldNUMTELSAValue; + property OldNUMTLXSA : String read GetOldNUMTLXSAValue; + property OldX400SA : String read GetOldX400SAValue; + property OldEMAILSR : String read GetOldEMAILSRValue; + property OldNUMFAXSR : String read GetOldNUMFAXSRValue; + property OldNUMTELSR : String read GetOldNUMTELSRValue; + property OldNUMTLXSR : String read GetOldNUMTLXSRValue; + property OldX400SR : String read GetOldX400SRValue; + property OldNUMPRE : String read GetOldNUMPREValue; + property OldNUMINFSC : String read GetOldNUMINFSCValue; + property OldNUMCON : String read GetOldNUMCONValue; + property OldFECPRE : DateTime read GetOldFECPREValue; + property OldFECINFSC : DateTime read GetOldFECINFSCValue; + property OldFECCON : DateTime read GetOldFECCONValue; + property OldDIVPED : String read GetOldDIVPEDValue; + property OldDIVPRE : String read GetOldDIVPREValue; + property OldDIVPAG : String read GetOldDIVPAGValue; + property OldDIVPEDF : String read GetOldDIVPEDFValue; + property OldDIVPREF : String read GetOldDIVPREFValue; + property OldDIVPAGF : String read GetOldDIVPAGFValue; + property OldTASCAM : Float read GetOldTASCAMValue; + property OldFECTAS : DateTime read GetOldFECTASValue; + end; + + { TRDX_CABVENBusinessProcessorRules } + TRDX_CABVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABVEN, IRDX_CABVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetNUMINFValue: String; virtual; + function GetOldNUMINFValue: String; virtual; + procedure SetNUMINFValue(const aValue: String); virtual; + function GetFUNCIONValue: String; virtual; + function GetOldFUNCIONValue: String; virtual; + procedure SetFUNCIONValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + function GetOldFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + function GetOldFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetFECINFValue: DateTime; virtual; + function GetOldFECINFValue: DateTime; virtual; + procedure SetFECINFValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + function GetOldPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + function GetOldPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + function GetEANOFIValue: String; virtual; + function GetOldEANOFIValue: String; virtual; + procedure SetEANOFIValue(const aValue: String); virtual; + function GetEANEMIValue: String; virtual; + function GetOldEANEMIValue: String; virtual; + procedure SetEANEMIValue(const aValue: String); virtual; + function GetEANRECValue: String; virtual; + function GetOldEANRECValue: String; virtual; + procedure SetEANRECValue(const aValue: String); virtual; + function GetEANVENValue: String; virtual; + function GetOldEANVENValue: String; virtual; + procedure SetEANVENValue(const aValue: String); virtual; + function GetEANALMValue: String; virtual; + function GetOldEANALMValue: String; virtual; + procedure SetEANALMValue(const aValue: String); virtual; + function GetEANREPValue: String; virtual; + function GetOldEANREPValue: String; virtual; + procedure SetEANREPValue(const aValue: String); virtual; + function GetEANPROValue: String; virtual; + function GetOldEANPROValue: String; virtual; + procedure SetEANPROValue(const aValue: String); virtual; + function GetEANADMSAValue: String; virtual; + function GetOldEANADMSAValue: String; virtual; + procedure SetEANADMSAValue(const aValue: String); virtual; + function GetEANREPSRValue: String; virtual; + function GetOldEANREPSRValue: String; virtual; + procedure SetEANREPSRValue(const aValue: String); virtual; + function GetADMVENSAValue: String; virtual; + function GetOldADMVENSAValue: String; virtual; + procedure SetADMVENSAValue(const aValue: String); virtual; + function GetREPDEPSRValue: String; virtual; + function GetOldREPDEPSRValue: String; virtual; + procedure SetREPDEPSRValue(const aValue: String); virtual; + function GetEMAILSAValue: String; virtual; + function GetOldEMAILSAValue: String; virtual; + procedure SetEMAILSAValue(const aValue: String); virtual; + function GetNUMFAXSAValue: String; virtual; + function GetOldNUMFAXSAValue: String; virtual; + procedure SetNUMFAXSAValue(const aValue: String); virtual; + function GetNUMTELSAValue: String; virtual; + function GetOldNUMTELSAValue: String; virtual; + procedure SetNUMTELSAValue(const aValue: String); virtual; + function GetNUMTLXSAValue: String; virtual; + function GetOldNUMTLXSAValue: String; virtual; + procedure SetNUMTLXSAValue(const aValue: String); virtual; + function GetX400SAValue: String; virtual; + function GetOldX400SAValue: String; virtual; + procedure SetX400SAValue(const aValue: String); virtual; + function GetEMAILSRValue: String; virtual; + function GetOldEMAILSRValue: String; virtual; + procedure SetEMAILSRValue(const aValue: String); virtual; + function GetNUMFAXSRValue: String; virtual; + function GetOldNUMFAXSRValue: String; virtual; + procedure SetNUMFAXSRValue(const aValue: String); virtual; + function GetNUMTELSRValue: String; virtual; + function GetOldNUMTELSRValue: String; virtual; + procedure SetNUMTELSRValue(const aValue: String); virtual; + function GetNUMTLXSRValue: String; virtual; + function GetOldNUMTLXSRValue: String; virtual; + procedure SetNUMTLXSRValue(const aValue: String); virtual; + function GetX400SRValue: String; virtual; + function GetOldX400SRValue: String; virtual; + procedure SetX400SRValue(const aValue: String); virtual; + function GetNUMPREValue: String; virtual; + function GetOldNUMPREValue: String; virtual; + procedure SetNUMPREValue(const aValue: String); virtual; + function GetNUMINFSCValue: String; virtual; + function GetOldNUMINFSCValue: String; virtual; + procedure SetNUMINFSCValue(const aValue: String); virtual; + function GetNUMCONValue: String; virtual; + function GetOldNUMCONValue: String; virtual; + procedure SetNUMCONValue(const aValue: String); virtual; + function GetFECPREValue: DateTime; virtual; + function GetOldFECPREValue: DateTime; virtual; + procedure SetFECPREValue(const aValue: DateTime); virtual; + function GetFECINFSCValue: DateTime; virtual; + function GetOldFECINFSCValue: DateTime; virtual; + procedure SetFECINFSCValue(const aValue: DateTime); virtual; + function GetFECCONValue: DateTime; virtual; + function GetOldFECCONValue: DateTime; virtual; + procedure SetFECCONValue(const aValue: DateTime); virtual; + function GetDIVPEDValue: String; virtual; + function GetOldDIVPEDValue: String; virtual; + procedure SetDIVPEDValue(const aValue: String); virtual; + function GetDIVPREValue: String; virtual; + function GetOldDIVPREValue: String; virtual; + procedure SetDIVPREValue(const aValue: String); virtual; + function GetDIVPAGValue: String; virtual; + function GetOldDIVPAGValue: String; virtual; + procedure SetDIVPAGValue(const aValue: String); virtual; + function GetDIVPEDFValue: String; virtual; + function GetOldDIVPEDFValue: String; virtual; + procedure SetDIVPEDFValue(const aValue: String); virtual; + function GetDIVPREFValue: String; virtual; + function GetOldDIVPREFValue: String; virtual; + procedure SetDIVPREFValue(const aValue: String); virtual; + function GetDIVPAGFValue: String; virtual; + function GetOldDIVPAGFValue: String; virtual; + procedure SetDIVPAGFValue(const aValue: String); virtual; + function GetTASCAMValue: Float; virtual; + function GetOldTASCAMValue: Float; virtual; + procedure SetTASCAMValue(const aValue: Float); virtual; + function GetFECTASValue: DateTime; virtual; + function GetOldFECTASValue: DateTime; virtual; + procedure SetFECTASValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property NUMINF : String read GetNUMINFValue write SetNUMINFValue; + property OldNUMINF : String read GetOldNUMINFValue; + property FUNCION : String read GetFUNCIONValue write SetFUNCIONValue; + property OldFUNCION : String read GetOldFUNCIONValue; + property FECINI : DateTime read GetFECINIValue write SetFECINIValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property FECINF : DateTime read GetFECINFValue write SetFECINFValue; + property OldFECINF : DateTime read GetOldFECINFValue; + property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + property EANOFI : String read GetEANOFIValue write SetEANOFIValue; + property OldEANOFI : String read GetOldEANOFIValue; + property EANEMI : String read GetEANEMIValue write SetEANEMIValue; + property OldEANEMI : String read GetOldEANEMIValue; + property EANREC : String read GetEANRECValue write SetEANRECValue; + property OldEANREC : String read GetOldEANRECValue; + property EANVEN : String read GetEANVENValue write SetEANVENValue; + property OldEANVEN : String read GetOldEANVENValue; + property EANALM : String read GetEANALMValue write SetEANALMValue; + property OldEANALM : String read GetOldEANALMValue; + property EANREP : String read GetEANREPValue write SetEANREPValue; + property OldEANREP : String read GetOldEANREPValue; + property EANPRO : String read GetEANPROValue write SetEANPROValue; + property OldEANPRO : String read GetOldEANPROValue; + property EANADMSA : String read GetEANADMSAValue write SetEANADMSAValue; + property OldEANADMSA : String read GetOldEANADMSAValue; + property EANREPSR : String read GetEANREPSRValue write SetEANREPSRValue; + property OldEANREPSR : String read GetOldEANREPSRValue; + property ADMVENSA : String read GetADMVENSAValue write SetADMVENSAValue; + property OldADMVENSA : String read GetOldADMVENSAValue; + property REPDEPSR : String read GetREPDEPSRValue write SetREPDEPSRValue; + property OldREPDEPSR : String read GetOldREPDEPSRValue; + property EMAILSA : String read GetEMAILSAValue write SetEMAILSAValue; + property OldEMAILSA : String read GetOldEMAILSAValue; + property NUMFAXSA : String read GetNUMFAXSAValue write SetNUMFAXSAValue; + property OldNUMFAXSA : String read GetOldNUMFAXSAValue; + property NUMTELSA : String read GetNUMTELSAValue write SetNUMTELSAValue; + property OldNUMTELSA : String read GetOldNUMTELSAValue; + property NUMTLXSA : String read GetNUMTLXSAValue write SetNUMTLXSAValue; + property OldNUMTLXSA : String read GetOldNUMTLXSAValue; + property X400SA : String read GetX400SAValue write SetX400SAValue; + property OldX400SA : String read GetOldX400SAValue; + property EMAILSR : String read GetEMAILSRValue write SetEMAILSRValue; + property OldEMAILSR : String read GetOldEMAILSRValue; + property NUMFAXSR : String read GetNUMFAXSRValue write SetNUMFAXSRValue; + property OldNUMFAXSR : String read GetOldNUMFAXSRValue; + property NUMTELSR : String read GetNUMTELSRValue write SetNUMTELSRValue; + property OldNUMTELSR : String read GetOldNUMTELSRValue; + property NUMTLXSR : String read GetNUMTLXSRValue write SetNUMTLXSRValue; + property OldNUMTLXSR : String read GetOldNUMTLXSRValue; + property X400SR : String read GetX400SRValue write SetX400SRValue; + property OldX400SR : String read GetOldX400SRValue; + property NUMPRE : String read GetNUMPREValue write SetNUMPREValue; + property OldNUMPRE : String read GetOldNUMPREValue; + property NUMINFSC : String read GetNUMINFSCValue write SetNUMINFSCValue; + property OldNUMINFSC : String read GetOldNUMINFSCValue; + property NUMCON : String read GetNUMCONValue write SetNUMCONValue; + property OldNUMCON : String read GetOldNUMCONValue; + property FECPRE : DateTime read GetFECPREValue write SetFECPREValue; + property OldFECPRE : DateTime read GetOldFECPREValue; + property FECINFSC : DateTime read GetFECINFSCValue write SetFECINFSCValue; + property OldFECINFSC : DateTime read GetOldFECINFSCValue; + property FECCON : DateTime read GetFECCONValue write SetFECCONValue; + property OldFECCON : DateTime read GetOldFECCONValue; + property DIVPED : String read GetDIVPEDValue write SetDIVPEDValue; + property OldDIVPED : String read GetOldDIVPEDValue; + property DIVPRE : String read GetDIVPREValue write SetDIVPREValue; + property OldDIVPRE : String read GetOldDIVPREValue; + property DIVPAG : String read GetDIVPAGValue write SetDIVPAGValue; + property OldDIVPAG : String read GetOldDIVPAGValue; + property DIVPEDF : String read GetDIVPEDFValue write SetDIVPEDFValue; + property OldDIVPEDF : String read GetOldDIVPEDFValue; + property DIVPREF : String read GetDIVPREFValue write SetDIVPREFValue; + property OldDIVPREF : String read GetOldDIVPREFValue; + property DIVPAGF : String read GetDIVPAGFValue write SetDIVPAGFValue; + property OldDIVPAGF : String read GetOldDIVPAGFValue; + property TASCAM : Float read GetTASCAMValue write SetTASCAMValue; + property OldTASCAM : Float read GetOldTASCAMValue; + property FECTAS : DateTime read GetFECTASValue write SetFECTASValue; + property OldFECTAS : DateTime read GetOldFECTASValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IRDX_LUGVENDelta } + IRDX_LUGVENDelta = interface(IRDX_LUGVEN) + ['{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'] + { Property getters and setters } + function GetOldCLAVE1Value : Float; + function GetOldCLAVE2Value : Integer; + function GetOldEANLUGValue : String; + function GetOldLUGVENValue : String; + function GetOldFECINIValue : DateTime; + function GetOldFECFINValue : DateTime; + function GetOldPERVENINIValue : DateTime; + function GetOldPERVENFINValue : DateTime; + + { Properties } + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property OldEANLUG : String read GetOldEANLUGValue; + property OldLUGVEN : String read GetOldLUGVENValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + end; + + { TRDX_LUGVENBusinessProcessorRules } + TRDX_LUGVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LUGVEN, IRDX_LUGVENDelta) + private + protected + { Property getters and setters } + function GetCLAVE1Value: Float; virtual; + function GetOldCLAVE1Value: Float; virtual; + procedure SetCLAVE1Value(const aValue: Float); virtual; + function GetCLAVE2Value: Integer; virtual; + function GetOldCLAVE2Value: Integer; virtual; + procedure SetCLAVE2Value(const aValue: Integer); virtual; + function GetEANLUGValue: String; virtual; + function GetOldEANLUGValue: String; virtual; + procedure SetEANLUGValue(const aValue: String); virtual; + function GetLUGVENValue: String; virtual; + function GetOldLUGVENValue: String; virtual; + procedure SetLUGVENValue(const aValue: String); virtual; + function GetFECINIValue: DateTime; virtual; + function GetOldFECINIValue: DateTime; virtual; + procedure SetFECINIValue(const aValue: DateTime); virtual; + function GetFECFINValue: DateTime; virtual; + function GetOldFECFINValue: DateTime; virtual; + procedure SetFECFINValue(const aValue: DateTime); virtual; + function GetPERVENINIValue: DateTime; virtual; + function GetOldPERVENINIValue: DateTime; virtual; + procedure SetPERVENINIValue(const aValue: DateTime); virtual; + function GetPERVENFINValue: DateTime; virtual; + function GetOldPERVENFINValue: DateTime; virtual; + procedure SetPERVENFINValue(const aValue: DateTime); virtual; + + { Properties } + property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; + property OldCLAVE1 : Float read GetOldCLAVE1Value; + property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; + property OldCLAVE2 : Integer read GetOldCLAVE2Value; + property EANLUG : String read GetEANLUGValue write SetEANLUGValue; + property OldEANLUG : String read GetOldEANLUGValue; + property LUGVEN : String read GetLUGVENValue write SetLUGVENValue; + property OldLUGVEN : String read GetOldLUGVENValue; + property FECINI : DateTime read GetFECINIValue write SetFECINIValue; + property OldFECINI : DateTime read GetOldFECINIValue; + property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; + property OldFECFIN : DateTime read GetOldFECFINValue; + property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; + property OldPERVENINI : DateTime read GetOldPERVENINIValue; + property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; + property OldPERVENFIN : DateTime read GetOldPERVENFINValue; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers; + +{ TRDX_ARTVENBusinessProcessorRules } +constructor TRDX_ARTVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_ARTVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE2Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE2Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCLAVE3Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE3Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE3Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEANARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEANARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANART]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEANARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCODCOMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCODCOMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODCOM]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCODCOMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMVARValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMVARValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMVAR]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMVARValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCODPROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCODPROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODPRO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCODPROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESARTCOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTCOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESARTCO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTCOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESARTValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESART]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMCON]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMLISValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMLISValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMLIS]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMLISValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCONESP3Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP3Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP3Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetVALVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldVALVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENVALVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetVALVENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRENETCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFETValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFETValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFETValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFFTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRECALCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCTValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCT]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCTValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRENETCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFEA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFEAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPREINFFAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetPRECALCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCA]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED1]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN2Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN2Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN2Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED2]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN3Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN3Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN3Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED3Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED3Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED3]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED3Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN4Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN4Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN4]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN4Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED4Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED4Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED4]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED4Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN5Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN5Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN5]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN5Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUNIMED5Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED5Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED5]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED5Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEXIPROValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEXIPROValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEXIPRO]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEXIPROValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetDESEXIValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldDESEXIValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESEXI]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetDESEXIValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDCVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDCVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDCV]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDCVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDEPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDEPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDEP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDEPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetESPMEDDEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDDEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDDE]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDDEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANDEVValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANDEVValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANDEV]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANDEVValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetEANVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNOMVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNOMVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNOMVEN]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNOMVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldNUMTALONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMTALON]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetNUMTALONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANVENNETValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENNETValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVENNET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENNETValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUMEDVENNETValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDVENNETValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDVENNET]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDVENNETValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetCANESPValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldCANESPValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANESP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetCANESPValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP] := aValue; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetUMEDESPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP]; +end; + +function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDESPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDESP]; +end; + +procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDESPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP] := aValue; +end; + + +{ TRDX_CABVENBusinessProcessorRules } +constructor TRDX_CABVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_CABVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_CABVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENCLAVE1]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFUNCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFUNCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFUNCION]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFUNCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECFIN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINFValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINFValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINFValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENINI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENFIN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANOFIValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANOFIValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANOFI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANOFIValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANEMIValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANEMIValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANEMI]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANEMIValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANRECValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANRECValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANRECValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANVEN]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANALMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANALMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANALM]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANALMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANREPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANREPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREP]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANREPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANPROValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANPROValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANPRO]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANPROValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANADMSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANADMSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANADMSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANADMSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEANREPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEANREPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREPSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEANREPSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetADMVENSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldADMVENSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENADMVENSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetADMVENSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetREPDEPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldREPDEPSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENREPDEPSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetREPDEPSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEMAILSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTELSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetX400SAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldX400SAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SA]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetX400SAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetEMAILSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTELSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetX400SRValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldX400SRValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SR]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetX400SRValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMPREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMPREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMPREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMINFSCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFSCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINFSC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFSCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldNUMCONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMCON]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECPREValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECPREValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECPREValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECINFSCValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECINFSCValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINFSC]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECINFSCValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECCONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECCONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECCON]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECCONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPEDValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPED]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPRE]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPAGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAG]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPEDFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPEDF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPREFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPREF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetDIVPAGFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAGF]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetTASCAMValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldTASCAMValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENTASCAM]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetTASCAMValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM] := aValue; +end; + +function TRDX_CABVENBusinessProcessorRules.GetFECTASValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS]; +end; + +function TRDX_CABVENBusinessProcessorRules.GetOldFECTASValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECTAS]; +end; + +procedure TRDX_CABVENBusinessProcessorRules.SetFECTASValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS] := aValue; +end; + + +{ TRDX_LUGVENBusinessProcessorRules } +constructor TRDX_LUGVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TRDX_LUGVENBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE1Value: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE1]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE2Value: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE2]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetEANLUGValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldEANLUGValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENEANLUG]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetEANLUGValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetLUGVENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldLUGVENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENLUGVEN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetLUGVENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldFECINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECINI]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldFECFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECFIN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENINI]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI] := aValue; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN]; +end; + +function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENFIN]; +end; + +procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN] := aValue; +end; + + +initialization + RegisterBusinessProcessorRules(RID_RDX_ARTVENDelta, TRDX_ARTVENBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_CABVENDelta, TRDX_CABVENBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_RDX_LUGVENDelta, TRDX_LUGVENBusinessProcessorRules); + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas new file mode 100644 index 0000000..a6e6cdc --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas @@ -0,0 +1,476 @@ +unit uBizEDISales; + +interface + +uses + uDAInterfaces, uDADataTable, schEDISalesClient_Intf, Classes, + DB, Controls; + +const + BIZ_SLSRPT_CAB = 'BizSlsRptCab'; + BIZ_SLSRPT_LUG = 'BizSlsRptLug'; + BIZ_SLSRPT_ART = 'BizSlsRptArt'; + +type + IBizEDISls_Cab = interface(IRDX_CABVEN) + ['{E7A9D79B-C28F-48BC-A592-EF8C28CD8DFF}'] + end; + + IBizEDISls_Lug = interface(IRDX_LUGVEN) + ['{C3438D84-14A3-4501-879D-C24AE7847DBB}'] + end; + + IBizEDISls_Art = interface(IRDX_ARTVEN) + ['{8A2A5662-D75D-469A-95EB-03C02D2CD1F7}'] + end; + + TBizEDISls_Cab = class(TRDX_CABVENDataTableRules, IBizEDISls_Cab) + protected + procedure SetCLAVE1Value(const aValue: Float); override; + procedure SetNUMINFValue(const aValue: String); override; + procedure SetFUNCIONValue(const aValue: String); override; + + procedure SetEANOFIValue(const aValue: String); override; + procedure SetEANEMIValue(const aValue: String); override; + procedure SetEANRECValue(const aValue: String); override; + procedure SetEANVENValue(const aValue: String); override; + procedure SetEANALMValue(const aValue: String); override; + procedure SetEANREPValue(const aValue: String); override; + procedure SetEANPROValue(const aValue: String); override; + procedure SetEANADMSAValue(const aValue: String); override; + procedure SetEANREPSRValue(const aValue: String); override; + procedure SetADMVENSAValue(const aValue: String); override; + procedure SetREPDEPSRValue(const aValue: String); override; + procedure SetEMAILSAValue(const aValue: String); override; + procedure SetNUMFAXSAValue(const aValue: String); override; + procedure SetNUMTELSAValue(const aValue: String); override; + procedure SetNUMTLXSAValue(const aValue: String); override; + procedure SetX400SAValue(const aValue: String); override; + procedure SetEMAILSRValue(const aValue: String); override; + procedure SetNUMFAXSRValue(const aValue: String); override; + procedure SetNUMTELSRValue(const aValue: String); override; + procedure SetNUMTLXSRValue(const aValue: String); override; + procedure SetX400SRValue(const aValue: String); override; + procedure SetNUMPREValue(const aValue: String); override; + procedure SetNUMINFSCValue(const aValue: String); override; + procedure SetNUMCONValue(const aValue: String); override; + procedure SetDIVPEDValue(const aValue: String); override; + procedure SetDIVPREValue(const aValue: String); override; + procedure SetDIVPAGValue(const aValue: String); override; + procedure SetDIVPEDFValue(const aValue: String); override; + procedure SetDIVPREFValue(const aValue: String); override; + procedure SetDIVPAGFValue(const aValue: String); override; + + procedure SetTASCAMValue(const aValue: Float); override; + + procedure SetFECINIValue(const aValue: DateTime); override; + procedure SetFECFINValue(const aValue: DateTime); override; + procedure SetFECINFValue(const aValue: DateTime); override; + procedure SetFECPREValue(const aValue: DateTime); override; + procedure SetFECINFSCValue(const aValue: DateTime); override; + procedure SetFECCONValue(const aValue: DateTime); override; + procedure SetFECTASValue(const aValue: DateTime); override; + procedure SetPERVENINIValue(const aValue: DateTime); override; + procedure SetPERVENFINValue(const aValue: DateTime); override; + end; + + + TBizEDISls_Lug = class(TRDX_LUGVENDataTableRules, IBizEDISls_Lug) + protected + procedure SetFECINIValue(const aValue: DateTime); override; + procedure SetFECFINValue(const aValue: DateTime); override; + procedure SetPERVENINIValue(const aValue: DateTime); override; + procedure SetPERVENFINValue(const aValue: DateTime); override; + end; + + TBizEDISls_Art = class(TRDX_ARTVENDataTableRules, IBizEDISls_Art) + protected + end; + +implementation + +{ TBizEDISls_Cab } + +uses + Variants; + +procedure TBizEDISls_Cab.SetADMVENSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetCLAVE1Value(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDISls_Cab.SetDIVPAGFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPAGValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPEDFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPEDValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPED].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPREFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetDIVPREValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANADMSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANALMValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANALM].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANEMIValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANEMI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANOFIValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANOFI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANPROValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANPRO].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANRECValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANREPSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANREPValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANREP].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEANVENValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEANVEN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEMAILSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetEMAILSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetFECCONValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECCON].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINFSCValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINFValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECPREValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFECTASValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENFECTAS].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetFUNCIONValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENFUNCION].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMCONValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMCON].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMFAXSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMFAXSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMINFSCValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMINFValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMINF].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMPREValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTELSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTELSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTLXSAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetNUMTLXSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetPERVENFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetPERVENINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Cab.SetREPDEPSRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetTASCAMValue(const aValue: Float); +begin + inherited; +end; + +procedure TBizEDISls_Cab.SetX400SAValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENX400SA].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; +end; + +procedure TBizEDISls_Cab.SetX400SRValue(const aValue: String); +begin + if Length(aValue) = 0 then + DataTable.Fields[idx_RDX_CABVENX400SR].AsVariant := NULL + else + DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; +end; + +{ TBizEDISls_Lug } + +procedure TBizEDISls_Lug.SetFECFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetFECINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENFECINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetPERVENFINValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; +end; + +procedure TBizEDISls_Lug.SetPERVENINIValue(const aValue: DateTime); +begin + if aValue = 0 then + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsVariant := NULL + else + DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; +end; + +initialization + RegisterDataTableRules(BIZ_SLSRPT_CAB, TBizEDISls_Cab); + RegisterDataTableRules(BIZ_SLSRPT_LUG, TBizEDISls_Lug); + RegisterDataTableRules(BIZ_SLSRPT_ART, TBizEDISls_Art); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm new file mode 100644 index 0000000..571803f --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm @@ -0,0 +1,2699 @@ +object dmEDISales: TdmEDISales + OldCreateOrder = False + Height = 184 + Width = 379 + object schEDISales: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_ARTVEN' + SQL = + 'SELECT '#10' CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODP' + + 'RO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, '#10' ' + + ' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, '#10' ' + + 'PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, '#10' ' + + ' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, '#10' BAPR' + + 'UN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, '#10' DESEXI, ESP' + + 'MEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, '#10' NOMVEN, NUMTALON' + + ', CANVENNET, UMEDVENNET, CANESP, UMEDESP'#10' FROM'#10' RDX_ARTVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'CLAVE3' + TableField = 'CLAVE3' + end + item + DatasetField = 'EANART' + TableField = 'EANART' + end + item + DatasetField = 'CODCOM' + TableField = 'CODCOM' + end + item + DatasetField = 'NUMVAR' + TableField = 'NUMVAR' + end + item + DatasetField = 'CODPRO' + TableField = 'CODPRO' + end + item + DatasetField = 'DESARTCO' + TableField = 'DESARTCO' + end + item + DatasetField = 'DESART' + TableField = 'DESART' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end + item + DatasetField = 'NUMLIS' + TableField = 'NUMLIS' + end + item + DatasetField = 'CONESP1' + TableField = 'CONESP1' + end + item + DatasetField = 'CONESP2' + TableField = 'CONESP2' + end + item + DatasetField = 'CONESP3' + TableField = 'CONESP3' + end + item + DatasetField = 'VALVEN' + TableField = 'VALVEN' + end + item + DatasetField = 'PRENETCT' + TableField = 'PRENETCT' + end + item + DatasetField = 'PREBRUCT' + TableField = 'PREBRUCT' + end + item + DatasetField = 'PREINFET' + TableField = 'PREINFET' + end + item + DatasetField = 'PREINFFT' + TableField = 'PREINFFT' + end + item + DatasetField = 'PRECALCT' + TableField = 'PRECALCT' + end + item + DatasetField = 'PRENETCA' + TableField = 'PRENETCA' + end + item + DatasetField = 'PREBRUCA' + TableField = 'PREBRUCA' + end + item + DatasetField = 'PREINFEA' + TableField = 'PREINFEA' + end + item + DatasetField = 'PREINFFA' + TableField = 'PREINFFA' + end + item + DatasetField = 'PRECALCA' + TableField = 'PRECALCA' + end + item + DatasetField = 'BAPRUN1' + TableField = 'BAPRUN1' + end + item + DatasetField = 'UNIMED1' + TableField = 'UNIMED1' + end + item + DatasetField = 'BAPRUN2' + TableField = 'BAPRUN2' + end + item + DatasetField = 'UNIMED2' + TableField = 'UNIMED2' + end + item + DatasetField = 'BAPRUN3' + TableField = 'BAPRUN3' + end + item + DatasetField = 'UNIMED3' + TableField = 'UNIMED3' + end + item + DatasetField = 'BAPRUN4' + TableField = 'BAPRUN4' + end + item + DatasetField = 'UNIMED4' + TableField = 'UNIMED4' + end + item + DatasetField = 'BAPRUN5' + TableField = 'BAPRUN5' + end + item + DatasetField = 'UNIMED5' + TableField = 'UNIMED5' + end + item + DatasetField = 'CANVEN' + TableField = 'CANVEN' + end + item + DatasetField = 'EXIPRO' + TableField = 'EXIPRO' + end + item + DatasetField = 'DESEXI' + TableField = 'DESEXI' + end + item + DatasetField = 'ESPMEDCV' + TableField = 'ESPMEDCV' + end + item + DatasetField = 'ESPMEDEP' + TableField = 'ESPMEDEP' + end + item + DatasetField = 'ESPMEDDE' + TableField = 'ESPMEDDE' + end + item + DatasetField = 'CANDEV' + TableField = 'CANDEV' + end + item + DatasetField = 'EANVEN' + TableField = 'EANVEN' + end + item + DatasetField = 'NOMVEN' + TableField = 'NOMVEN' + end + item + DatasetField = 'NUMTALON' + TableField = 'NUMTALON' + end + item + DatasetField = 'CANVENNET' + TableField = 'CANVENNET' + end + item + DatasetField = 'UMEDVENNET' + TableField = 'UMEDVENNET' + end + item + DatasetField = 'CANESP' + TableField = 'CANESP' + end + item + DatasetField = 'UMEDESP' + TableField = 'UMEDESP' + end> + end> + Name = 'RDX_ARTVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODCOM' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMVAR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODPRO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESARTCO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESART' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMLIS' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CONESP3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VALVEN' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRENETCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREBRUCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFET' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFFT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECALCT' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRENETCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREBRUCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFEA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PREINFFA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PRECALCA' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN1' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN3' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN4' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED4' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'BAPRUN5' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UNIMED5' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANVEN' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EXIPRO' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESEXI' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDCV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDEP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ESPMEDDE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANDEV' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANVENNET' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UMEDVENNET' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CANESP' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'UMEDESP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABVEN' + SQL = + 'SELECT '#10' CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PER' + + 'VENINI, PERVENFIN,'#10' EANOFI, EANEMI, EANREC, EANVEN, EANALM, E' + + 'ANREP, EANPRO, '#10' EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAI' + + 'LSA, NUMFAXSA, '#10' NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + + 'R, NUMTELSR, '#10' NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FE' + + 'CPRE, '#10' FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, '#10' ' + + ' DIVPREF, DIVPAGF, TASCAM, FECTAS, FECHA_CARGA'#10' FROM'#10' RDX_' + + 'CABVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'NUMINF' + TableField = 'NUMINF' + end + item + DatasetField = 'FUNCION' + TableField = 'FUNCION' + end + item + DatasetField = 'FECINI' + TableField = 'FECINI' + end + item + DatasetField = 'FECFIN' + TableField = 'FECFIN' + end + item + DatasetField = 'FECINF' + TableField = 'FECINF' + end + item + DatasetField = 'EANOFI' + TableField = 'EANOFI' + end + item + DatasetField = 'EANEMI' + TableField = 'EANEMI' + end + item + DatasetField = 'EANREC' + TableField = 'EANREC' + end + item + DatasetField = 'EANVEN' + TableField = 'EANVEN' + end + item + DatasetField = 'EANALM' + TableField = 'EANALM' + end + item + DatasetField = 'EANREP' + TableField = 'EANREP' + end + item + DatasetField = 'EANPRO' + TableField = 'EANPRO' + end + item + DatasetField = 'EANADMSA' + TableField = 'EANADMSA' + end + item + DatasetField = 'EANREPSR' + TableField = 'EANREPSR' + end + item + DatasetField = 'ADMVENSA' + TableField = 'ADMVENSA' + end + item + DatasetField = 'REPDEPSR' + TableField = 'REPDEPSR' + end + item + DatasetField = 'EMAILSA' + TableField = 'EMAILSA' + end + item + DatasetField = 'NUMFAXSA' + TableField = 'NUMFAXSA' + end + item + DatasetField = 'NUMTELSA' + TableField = 'NUMTELSA' + end + item + DatasetField = 'NUMTLXSA' + TableField = 'NUMTLXSA' + end + item + DatasetField = 'X400SA' + TableField = 'X400SA' + end + item + DatasetField = 'EMAILSR' + TableField = 'EMAILSR' + end + item + DatasetField = 'NUMFAXSR' + TableField = 'NUMFAXSR' + end + item + DatasetField = 'NUMTELSR' + TableField = 'NUMTELSR' + end + item + DatasetField = 'NUMTLXSR' + TableField = 'NUMTLXSR' + end + item + DatasetField = 'X400SR' + TableField = 'X400SR' + end + item + DatasetField = 'NUMPRE' + TableField = 'NUMPRE' + end + item + DatasetField = 'NUMINFSC' + TableField = 'NUMINFSC' + end + item + DatasetField = 'NUMCON' + TableField = 'NUMCON' + end + item + DatasetField = 'FECPRE' + TableField = 'FECPRE' + end + item + DatasetField = 'FECINFSC' + TableField = 'FECINFSC' + end + item + DatasetField = 'FECCON' + TableField = 'FECCON' + end + item + DatasetField = 'DIVPED' + TableField = 'DIVPED' + end + item + DatasetField = 'DIVPRE' + TableField = 'DIVPRE' + end + item + DatasetField = 'DIVPAG' + TableField = 'DIVPAG' + end + item + DatasetField = 'DIVPEDF' + TableField = 'DIVPEDF' + end + item + DatasetField = 'DIVPREF' + TableField = 'DIVPREF' + end + item + DatasetField = 'DIVPAGF' + TableField = 'DIVPAGF' + end + item + DatasetField = 'TASCAM' + TableField = 'TASCAM' + end + item + DatasetField = 'FECTAS' + TableField = 'FECTAS' + end + item + DatasetField = 'PERVENINI' + TableField = 'PERVENINI' + end + item + DatasetField = 'PERVENFIN' + TableField = 'PERVENFIN' + end + item + DatasetField = 'FECHA_CARGA' + TableField = 'FECHA_CARGA' + end> + end> + Name = 'RDX_CABVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FUNCION' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINF' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANOFI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANEMI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREC' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANALM' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREP' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANPRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANADMSA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANREPSR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ADMVENSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REPDEPSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAILSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMFAXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTELSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTLXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'X400SA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAILSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMFAXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTELSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMTLXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'X400SR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMPRE' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMINFSC' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECPRE' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINFSC' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECCON' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPED' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPRE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPAG' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPEDF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPREF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DIVPAGF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TASCAM' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECTAS' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end + item + Params = <> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LUGVEN' + SQL = + 'SELECT '#10' CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERV' + + 'ENINI, '#10' PERVENFIN'#10' FROM'#10' RDX_LUGVEN' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'CLAVE1' + TableField = 'CLAVE1' + end + item + DatasetField = 'CLAVE2' + TableField = 'CLAVE2' + end + item + DatasetField = 'EANLUG' + TableField = 'EANLUG' + end + item + DatasetField = 'LUGVEN' + TableField = 'LUGVEN' + end + item + DatasetField = 'FECINI' + TableField = 'FECINI' + end + item + DatasetField = 'FECFIN' + TableField = 'FECFIN' + end + item + DatasetField = 'PERVENINI' + TableField = 'PERVENINI' + end + item + DatasetField = 'PERVENFIN' + TableField = 'PERVENFIN' + end> + end> + Name = 'RDX_LUGVEN' + Fields = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLAVE2' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EANLUG' + DataType = datString + Size = 17 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'LUGVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'RETURN_VALUE' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptResult + end> + Statements = < + item + Connection = 'GFT_VARELA' + SQL = 'RDX_P_CARGAR_VENTASEDI' + StatementType = stStoredProcedure + ColumnMappings = <> + end> + Name = 'RDX_P_CARGAR_VENTASEDI' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMINF' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FUNCION' + DataType = datString + Size = 10 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINF' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANOFI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANEMI' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREC' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANALM' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREP' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANPRO' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANADMSA' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANREPSR' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ADMVENSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REPDEPSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAILSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMFAXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTELSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTLXSA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'X400SA' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EMAILSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMFAXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTELSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTLXSR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'X400SR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMPRE' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMINFSC' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECPRE' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINFSC' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECCON' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPED' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPRE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPAG' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPEDF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPREF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DIVPAGF' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'TASCAM' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECTAS' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHA_CARGA' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_CABVEN' + SQL = + 'INSERT'#10' INTO RDX_CABVEN'#10' (CLAVE1, NUMINF, FUNCION, FECINI, F' + + 'ECFIN, FECINF, EANOFI, '#10' EANEMI, EANREC, EANVEN, EANALM, EAN' + + 'REP, EANPRO, EANADMSA, '#10' EANREPSR, ADMVENSA, REPDEPSR, EMAIL' + + 'SA, NUMFAXSA, NUMTELSA, '#10' NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + + 'R, NUMTELSR, NUMTLXSR, '#10' X400SR, NUMPRE, NUMINFSC, NUMCON, F' + + 'ECPRE, FECINFSC, '#10' FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, ' + + 'DIVPREF, DIVPAGF, '#10' TASCAM, FECTAS, PERVENINI, PERVENFIN, FE' + + 'CHA_CARGA)'#10' VALUES'#10' (:CLAVE1, :NUMINF, :FUNCION, :FECINI, :F' + + 'ECFIN, :FECINF, '#10' :EANOFI, :EANEMI, :EANREC, :EANVEN, :EANAL' + + 'M, :EANREP, '#10' :EANPRO, :EANADMSA, :EANREPSR, :ADMVENSA, :REP' + + 'DEPSR, '#10' :EMAILSA, :NUMFAXSA, :NUMTELSA, :NUMTLXSA, :X400SA,' + + ' '#10' :EMAILSR, :NUMFAXSR, :NUMTELSR, :NUMTLXSR, :X400SR, '#10' ' + + ' :NUMPRE, :NUMINFSC, :NUMCON, :FECPRE, :FECINFSC, :FECCON, '#10' ' + + ' :DIVPED, :DIVPRE, :DIVPAG, :DIVPEDF, :DIVPREF, :DIVPAGF, '#10' ' + + ':TASCAM, :FECTAS, :PERVENINI, :PERVENFIN, CURRENT_TIMESTAMP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_CABVEN' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANLUG' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'LUGVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENINI' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PERVENFIN' + DataType = datDateTime + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_LUGVEN' + SQL = + 'INSERT'#10' INTO RDX_LUGVEN'#10' (CLAVE1, CLAVE2, EANLUG, LUGVEN, FE' + + 'CINI, FECFIN, PERVENINI, '#10' PERVENFIN)'#10' VALUES'#10' (:CLAVE1,' + + ' :CLAVE2, :EANLUG, :LUGVEN, :FECINI, :FECFIN, '#10' :PERVENINI, ' + + ':PERVENFIN)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_LUGVEN' + end + item + Params = < + item + Name = 'CLAVE1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CLAVE3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANART' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODCOM' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMVAR' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CODPRO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESARTCO' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESART' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMCON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMLIS' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CONESP3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VALVEN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRENETCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREBRUCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFET' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFFT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECALCT' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRENETCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREBRUCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFEA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PREINFFA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'PRECALCA' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN1' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED1' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN2' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED2' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN3' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED3' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN4' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED4' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'BAPRUN5' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UNIMED5' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANVEN' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EXIPRO' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESEXI' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDCV' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDEP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ESPMEDDE' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANDEV' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'EANVEN' + DataType = datString + Size = 17 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMVEN' + DataType = datString + Size = 70 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NUMTALON' + DataType = datString + Size = 35 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANVENNET' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UMEDVENNET' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'CANESP' + DataType = datFloat + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'UMEDESP' + DataType = datString + Size = 3 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_ARTVEN' + SQL = + 'INSERT'#10' INTO RDX_ARTVEN'#10' (CLAVE1, CLAVE2, CLAVE3, EANART, CO' + + 'DCOM, NUMVAR, CODPRO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CO' + + 'NESP1, CONESP2, '#10' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREIN' + + 'FET, PREINFFT, '#10' PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PRE' + + 'INFFA, PRECALCA, '#10' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRU' + + 'N3, UNIMED3, '#10' BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, E' + + 'XIPRO, '#10' DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVE' + + 'N, '#10' NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDES' + + 'P)'#10' VALUES'#10' (:CLAVE1, :CLAVE2, :CLAVE3, :EANART, :CODCOM, :N' + + 'UMVAR, '#10' :CODPRO, :DESARTCO, :DESART, :NUMCON, :NUMLIS, :CON' + + 'ESP1, '#10' :CONESP2, :CONESP3, :VALVEN, :PRENETCT, :PREBRUCT, '#10 + + ' :PREINFET, :PREINFFT, :PRECALCT, :PRENETCA, :PREBRUCA, '#10' ' + + ' :PREINFEA, :PREINFFA, :PRECALCA, :BAPRUN1, :UNIMED1, '#10' :BA' + + 'PRUN2, :UNIMED2, :BAPRUN3, :UNIMED3, :BAPRUN4, :UNIMED4, '#10' :' + + 'BAPRUN5, :UNIMED5, :CANVEN, :EXIPRO, :DESEXI, :ESPMEDCV, '#10' :' + + 'ESPMEDEP, :ESPMEDDE, :CANDEV, :EANVEN, :NOMVEN, :NUMTALON, '#10' ' + + ' :CANVENNET, :UMEDVENNET, :CANESP, :UMEDESP)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_RDX_ARTVEN' + end> + RelationShips = < + item + Name = 'FK_RDX_LUGVEN_RDX_CABVEN' + MasterDatasetName = 'RDX_CABVEN' + MasterFields = 'CLAVE1' + DetailDatasetName = 'RDX_LUGVEN' + DetailFields = 'CLAVE1' + RelationshipType = rtForeignKey + end + item + Name = 'FK_RDX_ARTVEN_RDX_LUGVEN' + MasterDatasetName = 'RDX_LUGVEN' + MasterFields = 'CLAVE1;CLAVE2' + DetailDatasetName = 'RDX_ARTVEN' + DetailFields = 'CLAVE1;CLAVE2' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert RDX_CABVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_LUGVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert RDX_ARTVEN' + DoUpdate = False + DoInsert = True + DoDelete = False + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_CABVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_LUGVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Update RDX_ARTVEN' + DoUpdate = True + DoInsert = False + DoDelete = False + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_ARTVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_ARTVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_LUGVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_LUGVEN' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete RDX_CABVEN' + DoUpdate = False + DoInsert = False + DoDelete = True + DatasetName = 'RDX_CABVEN' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 16 + end +end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas new file mode 100644 index 0000000..1208366 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas @@ -0,0 +1,483 @@ +unit uDataModuleEDI_Sales; + +interface + +uses + SysUtils, Classes, uDAScriptingProvider, uDADataTable, uDACDSDataTable, + uBizEDISales, uDAEngine, uDAADODriver, uDABINAdapter, + uDABusinessProcessor, uDAClasses, EDI_Reader, JvComponentBase; + +type + TdmEDISales = class(TDataModule) + schEDISales: TDASchema; + private + function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarLugares(const ALugData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function InsertarArticulos(const AArtData : TEDIFileData; var NumRegNuevos : integer) : Boolean; + function GenerarVentasEDI: Boolean; + procedure InsertarLog(OK : Boolean; Error_msg : String = ''); + public + function CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; var NumRegNuevos: Integer ): Boolean; + end; + +var + dmEDISales: TdmEDISales; + +implementation + +uses + EDI_Sales_Impl, Controls, Forms, uDataTableUtils, EDI_SLSRPT, uDAInterfaces, + Dialogs, schEDISalesClient_Intf, uDataModuleServer, Variants, EDI_Utils, + VARELA_Intf, EDI_Log_Impl, DB; + +{$R *.dfm} + +{ TdmEDISales } + +function TdmEDISales.CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; + const FicheroART: String; var NumRegNuevos: Integer ): Boolean; +var + Cab_Reader : TCABVEN_Reader; + Lug_Reader : TLUGVEN_Reader; + Art_Reader : TARTVEN_Reader; + + NumRegNuevosCab : Integer; + NumRegNuevosLug : Integer; + NumRegNuevosArt : Integer; +begin + Result := True; + + Cab_Reader := TCABVEN_Reader.Create; + try + Cab_Reader.Filename := FicheroCAB; + Cab_Reader.ReadFile; + Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); + finally + FreeAndNIL(Cab_Reader); + end; + + if Result then + begin + Lug_Reader := TLUGVEN_Reader.Create; + try + Lug_Reader.Filename := FicheroLUG; + Lug_Reader.ReadFile; + Result := InsertarLugares (Lug_Reader.FileData, NumRegNuevosLug); + finally + FreeAndNIL(Lug_Reader); + end; + + if Result then + begin + Art_Reader := TARTVEN_Reader.Create; + try + Art_Reader.Filename := FicheroART; + Art_Reader.ReadFile; + Result := InsertarArticulos(Art_Reader.FileData, NumRegNuevosArt); + finally + FreeAndNil(Art_Reader); + end; + end; + end; + + if Result then + begin + NumRegNuevos := NumRegNuevosArt; + Result := GenerarVentasEDI; + end; +end; + +function TdmEDISales.GenerarVentasEDI: Boolean; +var + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + ACommand := schEDISales.NewCommand(AConnection, 'RDX_P_CARGAR_VENTASEDI'); + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (GenerarVentasEDI)'); + end + end; +end; + +function TdmEDISales.InsertarArticulos(const AArtData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PARTVEN; + AuxStr : String; + AuxInt : Integer; + AuxNum : Double; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to AArtData.Count - 1 do + begin + Registro := AArtData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_ARTVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('CLAVE2').AsFloat := StrToInt(Trim(Registro.CLAVE2)); + ParamByName('CLAVE3').AsFloat := StrToInt(Trim(Registro.CLAVE3)); + + ParamByName('EANART').AsString := Trim(Registro.EANART); + ParamByName('CODCOM').AsString := Trim(Registro.CODCOM); + ParamByName('NUMVAR').AsString := Trim(Registro.NUMVAR); + ParamByName('CODPRO').AsString := Trim(Registro.CODPRO); + ParamByName('DESARTCO').AsString := Trim(Registro.DESARTCO); + ParamByName('DESART').AsString := Trim(Registro.DESART); + ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); + ParamByName('NUMLIS').AsString := Trim(Registro.NUMLIS); + ParamByName('CONESP1').AsString := Trim(Registro.CONESP1); + ParamByName('CONESP2').AsString := Trim(Registro.CONESP2); + ParamByName('CONESP3').AsString := Trim(Registro.CONESP3); + + ParamByName('VALVEN').AsVariant := Null; + AuxStr := Trim(Registro.VALVEN); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('VALVEN').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRENETCT').AsVariant := Null; + AuxStr := Trim(Registro.PRENETCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRENETCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREBRUCT').AsVariant := Null; + AuxStr := Trim(Registro.PREBRUCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREBRUCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFET').AsVariant := Null; + AuxStr := Trim(Registro.PREINFET); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFET').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFFT').AsVariant := Null; + AuxStr := Trim(Registro.PREINFFT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFFT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRECALCT').AsVariant := Null; + AuxStr := Trim(Registro.PRECALCT); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRECALCT').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRENETCA').AsVariant := Null; + AuxStr := Trim(Registro.PRENETCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRENETCA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREBRUCA').AsVariant := Null; + AuxStr := Trim(Registro.PREBRUCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREBRUCA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFEA').AsVariant := Null; + AuxStr := Trim(Registro.PREINFEA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFEA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PREINFFA').AsVariant := Null; + AuxStr := Trim(Registro.PREINFFA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PREINFFA').AsFloat := AuxNum/1000; //N(15,3) + + ParamByName('PRECALCA').AsVariant := Null; + AuxStr := Trim(Registro.PRECALCA); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('PRECALCA').AsFloat := AuxNum/1000; //N(15,3) + + + ParamByName('BAPRUN1').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN1); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN1').AsInteger := AuxInt; + ParamByName('UNIMED1').AsString := Trim(Registro.UNIMED1); + + ParamByName('BAPRUN2').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN2); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN2').AsInteger := AuxInt; + ParamByName('UNIMED2').AsString := Trim(Registro.UNIMED2); + + ParamByName('BAPRUN3').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN3); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN3').AsInteger := AuxInt; + ParamByName('UNIMED3').AsString := Trim(Registro.UNIMED3); + + ParamByName('BAPRUN4').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN4); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN4').AsInteger := AuxInt; + ParamByName('UNIMED4').AsString := Trim(Registro.UNIMED4); + + ParamByName('BAPRUN5').AsVariant := Null; + AuxStr := Trim(Registro.BAPRUN5); + if TryStrToInt (AuxStr, AuxInt) then + ParamByName('BAPRUN5').AsInteger := AuxInt; + ParamByName('UNIMED5').AsString := Trim(Registro.UNIMED5); + + ParamByName('CANVEN').AsVariant := Null; + AuxStr := Trim(Registro.CANVEN); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANVEN').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('EXIPRO').AsVariant := Null; + AuxStr := Trim(Registro.EXIPRO); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('EXIPRO').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('DESEXI').AsVariant := Null; + AuxStr := Trim(Registro.DESEXI); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('DESEXI').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('ESPMEDCV').AsString := Trim(Registro.ESPMEDCV); + ParamByName('ESPMEDEP').AsString := Trim(Registro.ESPMEDEP); + ParamByName('ESPMEDDE').AsString := Trim(Registro.ESPMEDDE); + + ParamByName('CANDEV').AsVariant := Null; + AuxStr := Trim(Registro.CANDEV); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANDEV').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); + ParamByName('NOMVEN').AsString := Trim(Registro.NOMVEN); + ParamByName('NUMTALON').AsString := Trim(Registro.NUMTALON); + + ParamByName('CANVENNET').AsVariant := Null; + AuxStr := Trim(Registro.CANVENNET); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANVENNET').AsFloat := AuxNum/1000; // N(15,3) + ParamByName('UMEDVENNET').AsString := Trim(Registro.UMEDVENNET); + + ParamByName('CANESP').AsVariant := Null; + AuxStr := Trim(Registro.CANESP); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('CANESP').AsFloat := AuxNum/1000; // N(15,3) + ParamByName('UMEDESP').AsString := Trim(Registro.UMEDESP); + end; + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarArticulos SLS)'); + end + end; + end; //for +end; + +function TdmEDISales.InsertarCabecera(const ACabData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PCABVEN; + AuxStr : String; + AuxNum : Double; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ACabData.Count - 1 do + begin + Registro := ACabData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_CABVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('NUMINF').AsString := Trim(Registro.NUMINF); + ParamByName('FUNCION').AsString := Trim(Registro.FUNCION); + + ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); + ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); + ParamByName('FECINF').AsDateTime := EDIDateToDateF(Trim(Registro.FECINF)); + + ParamByName('PERVENINI').AsVariant := Null; + ParamByName('PERVENFIN').AsVariant := Null; + if Length(Trim(Registro.PERVEN)) = 16 then + begin + ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); + ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)); + end; + + ParamByName('EANOFI').AsString := Trim(Registro.EANOFI); + ParamByName('EANEMI').AsString := Trim(Registro.EANEMI); + ParamByName('EANREC').AsString := Trim(Registro.EANREC); + ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); + ParamByName('EANALM').AsString := Trim(Registro.EANALM); + ParamByName('EANREP').AsString := Trim(Registro.EANREP); + ParamByName('EANPRO').AsString := Trim(Registro.EANPRO); + ParamByName('EANADMSA').AsString := Trim(Registro.EANADMSA); + ParamByName('EANREPSR').AsString := Trim(Registro.EANREPSR); + ParamByName('ADMVENSA').AsString := Trim(Registro.ADMVENSA); + ParamByName('REPDEPSR').AsString := Trim(Registro.REPDEPSR); + + ParamByName('EMAILSA').AsString := Trim(Registro.EMAILSA); + ParamByName('NUMFAXSA').AsString := Trim(Registro.NUMFAXSA); + ParamByName('NUMTELSA').AsString := Trim(Registro.NUMTELSA); + ParamByName('NUMTLXSA').AsString := Trim(Registro.NUMTLXSA); + ParamByName('X400SA').AsString := Trim(Registro.X400SA); + + ParamByName('EMAILSR').AsString := Trim(Registro.EMAILSR); + ParamByName('NUMFAXSR').AsString := Trim(Registro.NUMFAXSR); + ParamByName('NUMTELSR').AsString := Trim(Registro.NUMTELSR); + ParamByName('NUMTLXSR').AsString := Trim(Registro.NUMTLXSR); + ParamByName('X400SR').AsString := Trim(Registro.X400SR); + + ParamByName('NUMPRE').AsString := Trim(Registro.NUMPRE); + ParamByName('NUMINFSC').AsString := Trim(Registro.NUMINFSC); + ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); + + ParamByName('FECPRE').AsDateTime := EDIDateToDateF(Trim(Registro.FECPRE)); + ParamByName('FECINFSC').AsDateTime := EDIDateToDateF(Trim(Registro.FECINFSC)); + ParamByName('FECCON').AsDateTime := EDIDateToDateF(Trim(Registro.FECCON)); + + ParamByName('DIVPED').AsString := Trim(Registro.DIVPED); + ParamByName('DIVPRE').AsString := Trim(Registro.DIVPRE); + ParamByName('DIVPAG').AsString := Trim(Registro.DIVPAG); + ParamByName('DIVPEDF').AsString := Trim(Registro.DIVPEDF); + ParamByName('DIVPREF').AsString := Trim(Registro.DIVPREF); + ParamByName('DIVPAGF').AsString := Trim(Registro.DIVPAGF); + + ParamByName('TASCAM').AsVariant := Null; + AuxStr := Trim(Registro.TASCAM); + if TryStrToFloat (AuxStr, AuxNum) then + ParamByName('TASCAM').AsFloat := AuxNum/1000; // N(15,3) + + ParamByName('FECTAS').AsDateTime := EDIDateToDateF(Trim(Registro.FECTAS)); + end; // with + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + ' (InsertarCabecera SLS)'); + end + end; + + end; //for +end; + + +procedure TdmEDISales.InsertarLog(OK: Boolean; Error_msg: String); +var + LogService : IEDI_Log; +begin + LogService := EDI_Log_Impl.TEDI_Log.Create(Self); + try + LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); + finally + LogService := nil; + end; +end; + +function TdmEDISales.InsertarLugares(const ALugData: TEDIFileData; + var NumRegNuevos : integer): Boolean; +var + i : integer; + Registro : PLUGVEN; + ACommand: IDASQLCommand; + AConnection : IDAConnection; +begin + Result := False; + NumRegNuevos := 0; + AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); + + for i := 0 to ALugData.Count - 1 do + begin + Registro := ALugData[i]; + + if not Registro.REGISTRO_OK then + Continue; + + ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_LUGVEN'); + with ACommand do + begin + ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); + ParamByName('CLAVE2').AsInteger := StrToInt(Trim(Registro.CLAVE2)); + ParamByName('EANLUG').AsString := Trim(Registro.EANLUG); + ParamByName('LUGVEN').AsString := Trim(Registro.LUGVEN); + + ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); + ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); + + ParamByName('PERVENINI').AsVariant := Null; + ParamByName('PERVENFIN').AsVariant := Null; + if Length(Trim(Registro.PERVEN)) >= 8 then + begin + ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); + if Length(Trim(Registro.PERVEN)) = 16 then + ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)) + end + end; // with + + AConnection.BeginTransaction; + try + ACommand.Execute; + AConnection.CommitTransaction; + NumRegNuevos := NumRegNuevos + 1; + Result := True; + except + on E : Exception do + begin + AConnection.RollbackTransaction; + if Pos('PRIMARY KEY', E.Message) = 0 then + InsertarLog(False, e.Message + '(InsertarLugares SLS)'); + end + end; + end; //for +end; + + +initialization + dmEDISales := TdmEDISales.Create(nil); + +finalization + FreeAndNil(dmEDISales); + +end. + diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm new file mode 100644 index 0000000..a3e035b --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm @@ -0,0 +1,99 @@ +object srvLogin: TsrvLogin + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schLogin + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 220 + Width = 339 + object schLogin: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'USERID' + DataType = datString + BlobType = dabtUnknown + Value = 'zeus' + ParamType = daptInput + end + item + Name = 'PASSWORD' + DataType = datString + BlobType = dabtUnknown + Value = 'zvg' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'USUARIOS' + SQL = + 'SELECT'#10' CLAVE AS ID, PASSW AS PASS'#10' FROM'#10' USUARIOS'#10' WH' + + 'ERE CLAVE = :USERID AND'#10' PASSW = :PASSWORD;' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'CLAVE' + SQLOrigin = 'ID' + end + item + DatasetField = 'PASS' + TableField = 'PASSW' + SQLOrigin = 'PASS' + end> + end> + Name = 'GetLoginInfo' + Fields = < + item + Name = 'ID' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PASS' + DataType = datString + Size = 12 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 56 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 56 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas new file mode 100644 index 0000000..901804b --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas @@ -0,0 +1,135 @@ +unit srvLogin_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, uDAInterfaces, DARemoteService_Impl, DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, + uDADataStreamer; + +type + { TsrvLogin } + TsrvLogin = class(TDARemoteService, IsrvLogin) + DABINAdapter: TDABINAdapter; + schLogin: TDASchema; + private + protected + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function UpdateUsers(const UsersDelta: Binary): Binary; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function Ping : Boolean; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, Dialogs, IB, Variants; + + +procedure Create_srvLogin(out anInstance : IUnknown); +begin + anInstance := TsrvLogin.Create(NIL); +end; + +{ TsrvLogin } + +function TsrvLogin.Login(const UserID, Password: String; + out LoginInfo: TLoginInfo): Boolean; +var + dsUserInfo : IDADataset; +begin + LoginInfo := NIL; + Result := False; + + dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo'); + with dsUserInfo do + begin + ParamByName('UserID').AsString := UserID; + ParamByName('Password').AsString := Password; + Open; + end; + + //dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo', ['UserID', 'Password'], [UserID, Password]); + + if not (dsUserInfo.IsEmpty) then + try + Result := TRUE; + + // Packages the user information that will be sent back to the client. + // This information will be used in many places client-side and when issing service calls + // so it's good practice to cache it there + LoginInfo := TLoginInfo.Create; + FillROStruct(dsUserInfo, LoginInfo); + LoginInfo.UserID := UserID; + LoginInfo.SessionID := GUIDToString(Session.SessionID); + //LoginInfo.Roles.Add(VarToStr(dsUserInfo.FieldValues[3])); + + // Collects the privileges for this user as a comma separated list of strings +{ privs := Schema.NewDataset(Connection, ds_GetUserPrivileges, ['UserInc'], [LoginInfo.UserInc]); + + while not privs.EOF do begin + LoginInfo.Privileges := LoginInfo.Privileges+Trim(VarToStr(privs.FieldValues[0]))+','; + privs.Next; + end; + LoginInfo.Privileges := Copy(LoginInfo.Privileges,1,Length(LoginInfo.Privileges)-1); + + + // Stores all the information we retrieved in the current session since it might be + // necessary for other services} + Session.SaveStruct(LoginInfo); + except + FreeAndNIL(LoginInfo); + raise + end; +end; + +procedure TsrvLogin.Logout; +begin + DestroySession; +end; + +function TsrvLogin.Ping: Boolean; +begin + Result := True; +end; + +function TsrvLogin.SetUserPassword(const UserID, + NewPassword: String): Boolean; +var + dsCommand : IDASQLCommand; + i : Integer; +begin + Result := False; + dsCommand := schLogin.NewCommand(Connection, 'SetUserPassword'); + with dsCommand do + begin + ParamByName('UserID').AsString := UserID; + ParamByName('Password').AsString := NewPassword; + i := Execute; + end; + if i > 0 then + Result := True; +end; + +function TsrvLogin.UpdateUsers(const UsersDelta: Binary): Binary; +begin + // +end; + +initialization + TROClassFactory.Create('srvLogin', Create_srvLogin, TsrvLogin_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm new file mode 100644 index 0000000..51978be --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm @@ -0,0 +1,6 @@ +object srvTransfereciaFicheros: TsrvTransfereciaFicheros + OldCreateOrder = True + SessionManager = dmServer.SessionManager + Height = 292 + Width = 296 +end diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas new file mode 100644 index 0000000..5c48ec2 --- /dev/null +++ b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas @@ -0,0 +1,104 @@ +unit srvTransfereciaFicheros_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf; + +type + { TsrvTransfereciaFicheros } + TsrvTransfereciaFicheros = class(TRORemoteDataModule, IsrvTransfereciaFicheros) + private + function getFileDirectory: String; + protected + { IsrvTransfereciaFicheros methods } + procedure DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer, + JclFileUtils; + +procedure Create_srvTransfereciaFicheros(out anInstance : IUnknown); +begin + anInstance := TsrvTransfereciaFicheros.Create(NIL); +end; + +{ srvTransfereciaFicheros } +procedure TsrvTransfereciaFicheros.DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); +const + Block: Integer = 65536; +var + Position: Int64; + MemStream: TFileStream; + localfilename:String; +begin + fileData := Binary.Create; + localfilename:=getFileDirectory+filename; + if not FileExists(localfilename) then exit; + MemStream:=TFileStream.Create(localfilename,fmopenRead); + try + FileSize := MemStream.Size; + Position := Block * (Sequence - 1); + if Position <= FileSize then begin + MemStream.Position := Position; + if Position + Block > FileSize then + fileData.CopyFrom(MemStream, FileSize - Position) + else + fileData.CopyFrom(MemStream, Block); + end; + finally + MemStream.Free; + end; +end; + +function TsrvTransfereciaFicheros.getFileDirectory: String; +begin + result := PathAddSeparator(dmServer.FDirEntrada); +end; + +procedure TsrvTransfereciaFicheros.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); +var + NewFile: TFileStream; + localfilename:String; +begin + Localfilename:= GetFileDirectory + Filename; + if isfirst and Fileexists(localfilename) then DeleteFile(localfilename); + if FileExists(localfilename) + then NewFile := TFileStream.Create(localfilename,fmOpenReadWrite) + else NewFile := TFileStream.Create(localfilename,fmCreate); + try + NewFile.Seek(0,soFromEnd); + filedata.SaveToStream(NewFile); + finally + NewFile.Free; + end; +end; + +procedure TsrvTransfereciaFicheros.UploadFinished(const Filename: String; const Filesize: Int64); +begin +// (EventRepository as IFileEvents_Writer).OnNewFileAvailable(Session.SessionID, Filename, Filesize); +end; + +initialization + TROClassFactory.Create('srvTransfereciaFicheros', Create_srvTransfereciaFicheros, TsrvTransfereciaFicheros_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/VARELA.RODL b/Varela/Varela/Source/Servidor/VARELA.RODL new file mode 100644 index 0000000..32036dc --- /dev/null +++ b/Varela/Varela/Source/Servidor/VARELA.RODL @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Varela/Varela/Source/Servidor/VARELA_Intf.pas b/Varela/Varela/Source/Servidor/VARELA_Intf.pas new file mode 100644 index 0000000..e80b443 --- /dev/null +++ b/Varela/Varela/Source/Servidor/VARELA_Intf.pas @@ -0,0 +1,1079 @@ +unit VARELA_Intf; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, TypInfo, + {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, + {Used RODLs:} DataAbstract3_Intf; + +const + { Library ID } + LibraryUID = '{AD45905A-2C7F-4295-A913-3D4F93CE82CF}'; + TargetNamespace = ''; + + { Service Interface ID's } + IEDI_Inventary_IID : TGUID = '{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'; + IEDI_Sales_IID : TGUID = '{A9A65D73-350D-4530-AF81-FF69845C6B61}'; + IsrvLogin_IID : TGUID = '{6B132AE4-D45F-4AE8-8215-E95789358329}'; + IsrvVentasTerminadas_IID : TGUID = '{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'; + IsrvInformes_IID : TGUID = '{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'; + IsrvTransfereciaFicheros_IID : TGUID = '{2A7AFE06-0600-46ED-9B7A-C694A1191311}'; + IsrvControles_IID : TGUID = '{A0C11144-A1B7-408D-BA07-63565D587662}'; + IsrvVentasEnProceso_IID : TGUID = '{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'; + IEDI_Log_IID : TGUID = '{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'; + IsrvReferenciaGenerica_IID : TGUID = '{994518CC-96BD-4976-ABC6-9B421A4B65D3}'; + IsrvRecepciones_IID : TGUID = '{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'; + IsrvDevoluciones_IID : TGUID = '{87C31D12-C353-437F-A7A3-10882373AB54}'; + IsrvTraspasos_IID : TGUID = '{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'; + IsrvStock_IID : TGUID = '{F617B727-5B8B-4645-BBB2-3D645AB31981}'; + IsrvParametros_IID : TGUID = '{E5177628-952A-4217-80C0-36F59E423EC4}'; + + { Event ID's } + +type + { Forward declarations } + IEDI_Inventary = interface; + IEDI_Sales = interface; + IsrvLogin = interface; + IsrvVentasTerminadas = interface; + IsrvInformes = interface; + IsrvTransfereciaFicheros = interface; + IsrvControles = interface; + IsrvVentasEnProceso = interface; + IEDI_Log = interface; + IsrvReferenciaGenerica = interface; + IsrvRecepciones = interface; + IsrvDevoluciones = interface; + IsrvTraspasos = interface; + IsrvStock = interface; + IsrvParametros = interface; + + + TLoginInfo = class; + + + { TLoginInfo } + TLoginInfo = class(TDALoginInfo) + private + fRoles: TDAStringArray; + function GetRoles: TDAStringArray; + public + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Roles:TDAStringArray read GetRoles write fRoles; + end; + + { TLoginInfoCollection } + TLoginInfoCollection = class(TDALoginInfoCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): TLoginInfo; + procedure SetItems(aIndex: integer; const Value: TLoginInfo); + public + constructor Create; overload; + function Add: TLoginInfo; reintroduce; + property Items[Index: integer]:TLoginInfo read GetItems write SetItems; default; + end; + + { IEDI_Inventary } + IEDI_Inventary = interface(IDARemoteService) + ['{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'] + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + + { CoEDI_Inventary } + CoEDI_Inventary = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; + end; + + { TEDI_Inventary_Proxy } + TEDI_Inventary_Proxy = class(TDARemoteService_Proxy, IEDI_Inventary) + protected + function __GetInterfaceName:string; override; + + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; + end; + + { IEDI_Sales } + IEDI_Sales = interface(IDARemoteService) + ['{A9A65D73-350D-4530-AF81-FF69845C6B61}'] + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + + { CoEDI_Sales } + CoEDI_Sales = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; + end; + + { TEDI_Sales_Proxy } + TEDI_Sales_Proxy = class(TDARemoteService_Proxy, IEDI_Sales) + protected + function __GetInterfaceName:string; override; + + function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; + end; + + { IsrvLogin } + IsrvLogin = interface + ['{6B132AE4-D45F-4AE8-8215-E95789358329}'] + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function UpdateUsers(const UsersDelta: Binary): Binary; + end; + + { CosrvLogin } + CosrvLogin = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; + end; + + { TsrvLogin_Proxy } + TsrvLogin_Proxy = class(TROProxy, IsrvLogin) + protected + function __GetInterfaceName:string; override; + + function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; + procedure Logout; + function Ping: Boolean; + function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; + function UpdateUsers(const UsersDelta: Binary): Binary; + end; + + { IsrvVentasTerminadas } + IsrvVentasTerminadas = interface(IDARemoteService) + ['{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'] + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + + { CosrvVentasTerminadas } + CosrvVentasTerminadas = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; + end; + + { TsrvVentasTerminadas_Proxy } + TsrvVentasTerminadas_Proxy = class(TDARemoteService_Proxy, IsrvVentasTerminadas) + protected + function __GetInterfaceName:string; override; + + function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; + end; + + { IsrvInformes } + IsrvInformes = interface(IDARemoteService) + ['{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'] + end; + + { CosrvInformes } + CosrvInformes = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; + end; + + { TsrvInformes_Proxy } + TsrvInformes_Proxy = class(TDARemoteService_Proxy, IsrvInformes) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvTransfereciaFicheros } + IsrvTransfereciaFicheros = interface + ['{2A7AFE06-0600-46ED-9B7A-C694A1191311}'] + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + + { CosrvTransfereciaFicheros } + CosrvTransfereciaFicheros = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; + end; + + { TsrvTransfereciaFicheros_Proxy } + TsrvTransfereciaFicheros_Proxy = class(TROProxy, IsrvTransfereciaFicheros) + protected + function __GetInterfaceName:string; override; + + procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); + procedure UploadFinished(const Filename: String; const Filesize: Int64); + end; + + { IsrvControles } + IsrvControles = interface(IDARemoteService) + ['{A0C11144-A1B7-408D-BA07-63565D587662}'] + end; + + { CosrvControles } + CosrvControles = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; + end; + + { TsrvControles_Proxy } + TsrvControles_Proxy = class(TDARemoteService_Proxy, IsrvControles) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvVentasEnProceso } + IsrvVentasEnProceso = interface(IDARemoteService) + ['{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'] + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + + { CosrvVentasEnProceso } + CosrvVentasEnProceso = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; + end; + + { TsrvVentasEnProceso_Proxy } + TsrvVentasEnProceso_Proxy = class(TDARemoteService_Proxy, IsrvVentasEnProceso) + protected + function __GetInterfaceName:string; override; + + function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; + function GetSchema(const DatasetName: String; const Columns: String): Binary; + end; + + { IEDI_Log } + IEDI_Log = interface(IDARemoteService) + ['{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'] + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + + { CoEDI_Log } + CoEDI_Log = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; + end; + + { TEDI_Log_Proxy } + TEDI_Log_Proxy = class(TDARemoteService_Proxy, IEDI_Log) + protected + function __GetInterfaceName:string; override; + + procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); + end; + + { IsrvReferenciaGenerica } + IsrvReferenciaGenerica = interface(IDARemoteService) + ['{994518CC-96BD-4976-ABC6-9B421A4B65D3}'] + function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + + { CosrvReferenciaGenerica } + CosrvReferenciaGenerica = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; + end; + + { TsrvReferenciaGenerica_Proxy } + TsrvReferenciaGenerica_Proxy = class(TDARemoteService_Proxy, IsrvReferenciaGenerica) + protected + function __GetInterfaceName:string; override; + + function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; + function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; + procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); + end; + + { IsrvRecepciones } + IsrvRecepciones = interface(IDARemoteService) + ['{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'] + end; + + { CosrvRecepciones } + CosrvRecepciones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; + end; + + { TsrvRecepciones_Proxy } + TsrvRecepciones_Proxy = class(TDARemoteService_Proxy, IsrvRecepciones) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvDevoluciones } + IsrvDevoluciones = interface(IDARemoteService) + ['{87C31D12-C353-437F-A7A3-10882373AB54}'] + end; + + { CosrvDevoluciones } + CosrvDevoluciones = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; + end; + + { TsrvDevoluciones_Proxy } + TsrvDevoluciones_Proxy = class(TDARemoteService_Proxy, IsrvDevoluciones) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvTraspasos } + IsrvTraspasos = interface(IDARemoteService) + ['{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'] + end; + + { CosrvTraspasos } + CosrvTraspasos = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; + end; + + { TsrvTraspasos_Proxy } + TsrvTraspasos_Proxy = class(TDARemoteService_Proxy, IsrvTraspasos) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvStock } + IsrvStock = interface(IDARemoteService) + ['{F617B727-5B8B-4645-BBB2-3D645AB31981}'] + end; + + { CosrvStock } + CosrvStock = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; + end; + + { TsrvStock_Proxy } + TsrvStock_Proxy = class(TDARemoteService_Proxy, IsrvStock) + protected + function __GetInterfaceName:string; override; + + end; + + { IsrvParametros } + IsrvParametros = interface(IDARemoteService) + ['{E5177628-952A-4217-80C0-36F59E423EC4}'] + end; + + { CosrvParametros } + CosrvParametros = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; + end; + + { TsrvParametros_Proxy } + TsrvParametros_Proxy = class(TDARemoteService_Proxy, IsrvParametros) + protected + function __GetInterfaceName:string; override; + + end; + +implementation + +uses + {vcl:} SysUtils, + {RemObjects:} uROEventRepository, uROSerializer, uRORes; + +{ TLoginInfo } + +procedure TLoginInfo.Assign(iSource: TPersistent); +var lSource: VARELA_Intf.TLoginInfo; +begin + inherited Assign(iSource); + if (iSource is VARELA_Intf.TLoginInfo) then begin + lSource := VARELA_Intf.TLoginInfo(iSource); + Roles.Assign(lSource.Roles); + end; +end; + +function TLoginInfo.GetRoles: TDAStringArray; +begin + if (fRoles = nil) then fRoles := TDAStringArray.Create(); + result := fRoles; +end; + +procedure TLoginInfo.ReadComplex(ASerializer: TObject); +var + l_Attributes: TDAStringArray; + l_Data: Binary; + l_Privileges: TDAStringArray; + l_Roles: TDAStringArray; + l_SessionID: String; + l_UserID: String; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + inherited; + l_Roles := Roles; + TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); + if Roles <> l_Roles then Roles.Free; + Roles := l_Roles; + end + else begin + l_Attributes := Attributes; + TROSerializer(ASerializer).ReadArray('Attributes', TDAStringArray, l_Attributes); + if Attributes <> l_Attributes then Attributes.Free; + Attributes := l_Attributes; + l_Data := Data; + TROSerializer(ASerializer).ReadBinary('Data', l_Data); + if Data <> l_Data then Data.Free; + Data := l_Data; + l_Privileges := Privileges; + TROSerializer(ASerializer).ReadArray('Privileges', TDAStringArray, l_Privileges); + if Privileges <> l_Privileges then Privileges.Free; + Privileges := l_Privileges; + l_Roles := Roles; + TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); + if Roles <> l_Roles then Roles.Free; + Roles := l_Roles; + l_SessionID := SessionID; + TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID); + SessionID := l_SessionID; + l_UserID := UserID; + TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID); + UserID := l_UserID; + end; +end; + +procedure TLoginInfo.WriteComplex(ASerializer: TObject); +var + l_Attributes: TDAStringArray; + l_Data: Binary; + l_Privileges: TDAStringArray; + l_Roles: TDAStringArray; + l_SessionID: String; + l_UserID: String; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + inherited; + l_Roles := Roles; + TROSerializer(ASerializer).WriteArray('Roles', l_Roles); + end + else begin + l_Attributes := Attributes; + TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes); + l_Data := Data; + TROSerializer(ASerializer).WriteBinary('Data', l_Data); + l_Privileges := Privileges; + TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges); + l_Roles := Roles; + TROSerializer(ASerializer).WriteArray('Roles', l_Roles); + l_SessionID := SessionID; + TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID); + l_UserID := UserID; + TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID); + end; +end; + +{ TLoginInfoCollection } +constructor TLoginInfoCollection.Create; +begin + inherited Create(TLoginInfo); +end; + +constructor TLoginInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function TLoginInfoCollection.Add: TLoginInfo; +begin + result := TLoginInfo(inherited Add); +end; + +function TLoginInfoCollection.GetItems(aIndex: integer): TLoginInfo; +begin + result := TLoginInfo(inherited Items[aIndex]); +end; + +procedure TLoginInfoCollection.SetItems(aIndex: integer; const Value: TLoginInfo); +begin + TLoginInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ CoEDI_Inventary } + +class function CoEDI_Inventary.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; +begin + result := TEDI_Inventary_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Inventary_Proxy } + +function TEDI_Inventary_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Inventary'; +end; + +function TEDI_Inventary_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); + __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Write('FicheroLIN', TypeInfo(String), FicheroLIN, []); + __Message.Write('FicheroCANT', TypeInfo(String), FicheroCANT, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('MsgError', TypeInfo(String), MsgError, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CoEDI_Sales } + +class function CoEDI_Sales.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; +begin + result := TEDI_Sales_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Sales_Proxy } + +function TEDI_Sales_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Sales'; +end; + +function TEDI_Sales_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); + __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Write('FicheroLUG', TypeInfo(String), FicheroLUG, []); + __Message.Write('FicheroART', TypeInfo(String), FicheroART, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('MsgError', TypeInfo(String), MsgError, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvLogin } + +class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; +begin + result := TsrvLogin_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvLogin_Proxy } + +function TsrvLogin_Proxy.__GetInterfaceName:string; +begin + result := 'srvLogin'; +end; + +function TsrvLogin_Proxy.Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; +begin + try + LoginInfo := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Login'); + __Message.Write('UserID', TypeInfo(String), UserID, []); + __Message.Write('Password', TypeInfo(String), Password, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvLogin_Proxy.Logout; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Logout'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.Ping: Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Ping'); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.SetUserPassword(const UserID: String; const NewPassword: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'SetUserPassword'); + __Message.Write('UserID', TypeInfo(String), UserID, []); + __Message.Write('NewPassword', TypeInfo(String), NewPassword, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvLogin_Proxy.UpdateUsers(const UsersDelta: Binary): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UpdateUsers'); + __Message.Write('UsersDelta', TypeInfo(Binary), UsersDelta, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvVentasTerminadas } + +class function CosrvVentasTerminadas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; +begin + result := TsrvVentasTerminadas_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvVentasTerminadas_Proxy } + +function TsrvVentasTerminadas_Proxy.__GetInterfaceName:string; +begin + result := 'srvVentasTerminadas'; +end; + +function TsrvVentasTerminadas_Proxy.GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataEx'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Write('Params', TypeInfo(String), Params, []); + __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataCrossTab'); + __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasTerminadas_Proxy.GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchemaCrossTab'); + __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvInformes } + +class function CosrvInformes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; +begin + result := TsrvInformes_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvInformes_Proxy.__GetInterfaceName:string; +begin + result := 'srvInformes'; +end; + +{ CosrvTransfereciaFicheros } + +class function CosrvTransfereciaFicheros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; +begin + result := TsrvTransfereciaFicheros_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvTransfereciaFicheros_Proxy } + +function TsrvTransfereciaFicheros_Proxy.__GetInterfaceName:string; +begin + result := 'srvTransfereciaFicheros'; +end; + +procedure TsrvTransfereciaFicheros_Proxy.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadChunk'); + __Message.Write('IsFirst', TypeInfo(Boolean), IsFirst, []); + __Message.Write('Filename', TypeInfo(String), Filename, []); + __Message.Write('Filedata', TypeInfo(Binary), Filedata, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvTransfereciaFicheros_Proxy.UploadFinished(const Filename: String; const Filesize: Int64); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadFinished'); + __Message.Write('Filename', TypeInfo(String), Filename, []); + __Message.Write('Filesize', TypeInfo(Int64), Filesize, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvControles } + +class function CosrvControles.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; +begin + result := TsrvControles_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvControles_Proxy.__GetInterfaceName:string; +begin + result := 'srvControles'; +end; + +{ CosrvVentasEnProceso } + +class function CosrvVentasEnProceso.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; +begin + result := TsrvVentasEnProceso_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvVentasEnProceso_Proxy } + +function TsrvVentasEnProceso_Proxy.__GetInterfaceName:string; +begin + result := 'srvVentasEnProceso'; +end; + +function TsrvVentasEnProceso_Proxy.GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetData'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Write('Params', TypeInfo(String), Params, []); + __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvVentasEnProceso_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); + __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Write('Columns', TypeInfo(String), Columns, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CoEDI_Log } + +class function CoEDI_Log.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; +begin + result := TEDI_Log_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TEDI_Log_Proxy } + +function TEDI_Log_Proxy.__GetInterfaceName:string; +begin + result := 'EDI_Log'; +end; + +procedure TEDI_Log_Proxy.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'InsertarLog'); + __Message.Write('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); + __Message.Write('Report', TypeInfo(String), Report, []); + __Message.Write('OK', TypeInfo(Boolean), OK, []); + __Message.Write('Error_msg', TypeInfo(String), Error_msg, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvReferenciaGenerica } + +class function CosrvReferenciaGenerica.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; +begin + result := TsrvReferenciaGenerica_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TsrvReferenciaGenerica_Proxy } + +function TsrvReferenciaGenerica_Proxy.__GetInterfaceName:string; +begin + result := 'srvReferenciaGenerica'; +end; + +function TsrvReferenciaGenerica_Proxy.GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetProducto'); + __Message.Write('Codigo', TypeInfo(String), Codigo, []); + __Message.Write('Talla', TypeInfo(String), Talla, []); + __Message.Write('Color', TypeInfo(String), Color, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Boolean), result, []); + __Message.Read('CodigoBarras', TypeInfo(String), CodigoBarras, []); + __Message.Read('Descripcion', TypeInfo(String), Descripcion, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TsrvReferenciaGenerica_Proxy.GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; +begin + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GenerateReport'); + __Message.Write('Centro', TypeInfo(String), Centro, []); + __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Write('Estado', TypeInfo(String), Estado, []); + __Message.Write('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('Result', TypeInfo(Binary), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +procedure TsrvReferenciaGenerica_Proxy.PasarProductosAEspera(const Centro: String; const Vendedor: String); +begin + try + __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'PasarProductosAEspera'); + __Message.Write('Centro', TypeInfo(String), Centro, []); + __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +{ CosrvRecepciones } + +class function CosrvRecepciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; +begin + result := TsrvRecepciones_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvRecepciones_Proxy.__GetInterfaceName:string; +begin + result := 'srvRecepciones'; +end; + +{ CosrvDevoluciones } + +class function CosrvDevoluciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; +begin + result := TsrvDevoluciones_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvDevoluciones_Proxy.__GetInterfaceName:string; +begin + result := 'srvDevoluciones'; +end; + +{ CosrvTraspasos } + +class function CosrvTraspasos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; +begin + result := TsrvTraspasos_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvTraspasos_Proxy.__GetInterfaceName:string; +begin + result := 'srvTraspasos'; +end; + +{ CosrvStock } + +class function CosrvStock.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; +begin + result := TsrvStock_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvStock_Proxy.__GetInterfaceName:string; +begin + result := 'srvStock'; +end; + +{ CosrvParametros } + +class function CosrvParametros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; +begin + result := TsrvParametros_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvParametros_Proxy.__GetInterfaceName:string; +begin + result := 'srvParametros'; +end; + +initialization + RegisterROClass(TLoginInfo); + RegisterProxyClass(IEDI_Inventary_IID, TEDI_Inventary_Proxy); + RegisterProxyClass(IEDI_Sales_IID, TEDI_Sales_Proxy); + RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); + RegisterProxyClass(IsrvVentasTerminadas_IID, TsrvVentasTerminadas_Proxy); + RegisterProxyClass(IsrvInformes_IID, TsrvInformes_Proxy); + RegisterProxyClass(IsrvTransfereciaFicheros_IID, TsrvTransfereciaFicheros_Proxy); + RegisterProxyClass(IsrvControles_IID, TsrvControles_Proxy); + RegisterProxyClass(IsrvVentasEnProceso_IID, TsrvVentasEnProceso_Proxy); + RegisterProxyClass(IEDI_Log_IID, TEDI_Log_Proxy); + RegisterProxyClass(IsrvReferenciaGenerica_IID, TsrvReferenciaGenerica_Proxy); + RegisterProxyClass(IsrvRecepciones_IID, TsrvRecepciones_Proxy); + RegisterProxyClass(IsrvDevoluciones_IID, TsrvDevoluciones_Proxy); + RegisterProxyClass(IsrvTraspasos_IID, TsrvTraspasos_Proxy); + RegisterProxyClass(IsrvStock_IID, TsrvStock_Proxy); + RegisterProxyClass(IsrvParametros_IID, TsrvParametros_Proxy); + + +finalization + UnregisterROClass(TLoginInfo); + UnregisterProxyClass(IEDI_Inventary_IID); + UnregisterProxyClass(IEDI_Sales_IID); + UnregisterProxyClass(IsrvLogin_IID); + UnregisterProxyClass(IsrvVentasTerminadas_IID); + UnregisterProxyClass(IsrvInformes_IID); + UnregisterProxyClass(IsrvTransfereciaFicheros_IID); + UnregisterProxyClass(IsrvControles_IID); + UnregisterProxyClass(IsrvVentasEnProceso_IID); + UnregisterProxyClass(IEDI_Log_IID); + UnregisterProxyClass(IsrvReferenciaGenerica_IID); + UnregisterProxyClass(IsrvRecepciones_IID); + UnregisterProxyClass(IsrvDevoluciones_IID); + UnregisterProxyClass(IsrvTraspasos_IID); + UnregisterProxyClass(IsrvStock_IID); + UnregisterProxyClass(IsrvParametros_IID); + +end. diff --git a/Varela/Varela/Source/Servidor/VARELA_Invk.pas b/Varela/Varela/Source/Servidor/VARELA_Invk.pas new file mode 100644 index 0000000..5bf9316 --- /dev/null +++ b/Varela/Varela/Source/Servidor/VARELA_Invk.pas @@ -0,0 +1,707 @@ +unit VARELA_Invk; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, + {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf, + {Used RODL Intf's:} DataAbstract3_Intf, + {Used RODL Invk's:} DataAbstract3_Invk, + {Generated:} VARELA_Intf; + +type + {$M+} + TEDI_Inventary_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TEDI_Sales_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvLogin_Invoker = class(TROInvoker) + private + protected + published + procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvVentasTerminadas_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvInformes_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvTransfereciaFicheros_Invoker = class(TROInvoker) + private + protected + published + procedure Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvControles_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvVentasEnProceso_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TEDI_Log_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvReferenciaGenerica_Invoker = class(TDARemoteService_Invoker) + private + protected + published + procedure Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + {$M-} + + {$M+} + TsrvRecepciones_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvDevoluciones_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvTraspasos_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvStock_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + + {$M+} + TsrvParametros_Invoker = class(TDARemoteService_Invoker) + private + protected + published + end; + {$M-} + +implementation + +uses + {RemObjects:} uRORes, uROClient; + +{ TEDI_Inventary_Invoker } + +procedure TEDI_Inventary_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; } +var + FicheroCAB: String; + FicheroLIN: String; + FicheroCANT: String; + MsgError: String; + lResult: Boolean; +begin + try + __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Read('FicheroLIN', TypeInfo(String), FicheroLIN, []); + __Message.Read('FicheroCANT', TypeInfo(String), FicheroCANT, []); + + lResult := (__Instance as IEDI_Inventary).CargarFicheroEDI(FicheroCAB, FicheroLIN, FicheroCANT, MsgError); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Inventary', 'CargarFicheroEDIResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('MsgError', TypeInfo(String), MsgError, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TEDI_Sales_Invoker } + +procedure TEDI_Sales_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; } +var + FicheroCAB: String; + FicheroLUG: String; + FicheroART: String; + MsgError: String; + lResult: Boolean; +begin + try + __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); + __Message.Read('FicheroLUG', TypeInfo(String), FicheroLUG, []); + __Message.Read('FicheroART', TypeInfo(String), FicheroART, []); + + lResult := (__Instance as IEDI_Sales).CargarFicheroEDI(FicheroCAB, FicheroLUG, FicheroART, MsgError); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Sales', 'CargarFicheroEDIResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('MsgError', TypeInfo(String), MsgError, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +{ TsrvLogin_Invoker } + +procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; } +var + UserID: String; + Password: String; + LoginInfo: VARELA_Intf.TLoginInfo; + lResult: Boolean; + __lObjectDisposer: TROObjectDisposer; +begin + LoginInfo := nil; + try + __Message.Read('UserID', TypeInfo(String), UserID, []); + __Message.Read('Password', TypeInfo(String), Password, []); + + lResult := (__Instance as IsrvLogin).Login(UserID, Password, LoginInfo); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LoginResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(LoginInfo); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure Logout; } +begin + try + (__Instance as IsrvLogin).Logout; + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LogoutResponse'); + __Message.Finalize; + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function Ping: Boolean; } +var + lResult: Boolean; +begin + try + lResult := (__Instance as IsrvLogin).Ping; + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'PingResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; } +var + UserID: String; + NewPassword: String; + lResult: Boolean; +begin + try + __Message.Read('UserID', TypeInfo(String), UserID, []); + __Message.Read('NewPassword', TypeInfo(String), NewPassword, []); + + lResult := (__Instance as IsrvLogin).SetUserPassword(UserID, NewPassword); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'SetUserPasswordResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvLogin_Invoker.Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function UpdateUsers(const UsersDelta: Binary): Binary; } +var + UsersDelta: Binary; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + UsersDelta := nil; + lResult := nil; + try + __Message.Read('UsersDelta', TypeInfo(Binary), UsersDelta, []); + + lResult := (__Instance as IsrvLogin).UpdateUsers(UsersDelta); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'UpdateUsersResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(UsersDelta); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvVentasTerminadas_Invoker } + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } +var + DatasetName: String; + Columns: String; + Params: String; + MaxRecords: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + __Message.Read('Params', TypeInfo(String), Params, []); + __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetDataEx(DatasetName, Columns, Params, MaxRecords); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataExResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } +var + DatasetName: String; + Columns: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetSchema(DatasetName, Columns); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } +var + FechaIni: String; + FechaFin: String; + Coleccion: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetDataCrossTab(FechaIni, FechaFin, Coleccion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataCrossTabResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } +var + FechaIni: String; + FechaFin: String; + Coleccion: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); + __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); + __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); + + lResult := (__Instance as IsrvVentasTerminadas).GetSchemaCrossTab(FechaIni, FechaFin, Coleccion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaCrossTabResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TsrvTransfereciaFicheros_Invoker } + +procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); } +var + IsFirst: Boolean; + Filename: String; + Filedata: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + Filedata := nil; + try + __Message.Read('IsFirst', TypeInfo(Boolean), IsFirst, []); + __Message.Read('Filename', TypeInfo(String), Filename, []); + __Message.Read('Filedata', TypeInfo(Binary), Filedata, []); + + (__Instance as IsrvTransfereciaFicheros).UploadChunk(IsFirst, Filename, Filedata); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadChunkResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(Filedata); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure UploadFinished(const Filename: String; const Filesize: Int64); } +var + Filename: String; + Filesize: Int64; +begin + try + __Message.Read('Filename', TypeInfo(String), Filename, []); + __Message.Read('Filesize', TypeInfo(Int64), Filesize, []); + + (__Instance as IsrvTransfereciaFicheros).UploadFinished(Filename, Filesize); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadFinishedResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +{ TsrvVentasEnProceso_Invoker } + +procedure TsrvVentasEnProceso_Invoker.Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } +var + DatasetName: String; + Columns: String; + Params: String; + MaxRecords: Integer; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + __Message.Read('Params', TypeInfo(String), Params, []); + __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); + + lResult := (__Instance as IsrvVentasEnProceso).GetData(DatasetName, Columns, Params, MaxRecords); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetDataResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvVentasEnProceso_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } +var + DatasetName: String; + Columns: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); + __Message.Read('Columns', TypeInfo(String), Columns, []); + + lResult := (__Instance as IsrvVentasEnProceso).GetSchema(DatasetName, Columns); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetSchemaResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +{ TEDI_Log_Invoker } + +procedure TEDI_Log_Invoker.Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); } +var + Fecha: DateTime; + Report: String; + OK: Boolean; + Error_msg: String; +begin + try + __Message.Read('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); + __Message.Read('Report', TypeInfo(String), Report, []); + __Message.Read('OK', TypeInfo(Boolean), OK, []); + __Message.Read('Error_msg', TypeInfo(String), Error_msg, []); + + (__Instance as IEDI_Log).InsertarLog(Fecha, Report, OK, Error_msg); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Log', 'InsertarLogResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +{ TsrvReferenciaGenerica_Invoker } + +procedure TsrvReferenciaGenerica_Invoker.Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; } +var + Codigo: String; + Talla: String; + Color: String; + CodigoBarras: String; + Descripcion: String; + lResult: Boolean; +begin + try + __Message.Read('Codigo', TypeInfo(String), Codigo, []); + __Message.Read('Talla', TypeInfo(String), Talla, []); + __Message.Read('Color', TypeInfo(String), Color, []); + + lResult := (__Instance as IsrvReferenciaGenerica).GetProducto(Codigo, Talla, Color, CodigoBarras, Descripcion); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GetProductoResponse'); + __Message.Write('Result', TypeInfo(Boolean), lResult, []); + __Message.Write('CodigoBarras', TypeInfo(String), CodigoBarras, []); + __Message.Write('Descripcion', TypeInfo(String), Descripcion, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + end; +end; + +procedure TsrvReferenciaGenerica_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; } +var + Centro: String; + Vendedor: String; + Estado: String; + FiltroUsuario: String; + lResult: Binary; + __lObjectDisposer: TROObjectDisposer; +begin + lResult := nil; + try + __Message.Read('Centro', TypeInfo(String), Centro, []); + __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); + __Message.Read('Estado', TypeInfo(String), Estado, []); + __Message.Read('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); + + lResult := (__Instance as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, FiltroUsuario); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GenerateReportResponse'); + __Message.Write('Result', TypeInfo(Binary), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TsrvReferenciaGenerica_Invoker.Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); } +var + Centro: String; + Vendedor: String; +begin + try + __Message.Read('Centro', TypeInfo(String), Centro, []); + __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); + + (__Instance as IsrvReferenciaGenerica).PasarProductosAEspera(Centro, Vendedor); + + __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'PasarProductosAEsperaResponse'); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + __oResponseOptions := [roNoResponse]; + + finally + end; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc b/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc new file mode 100644 index 0000000..e520ba1 --- /dev/null +++ b/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc @@ -0,0 +1,23 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +DESCRIPTION RCDATA +BEGIN + "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ + "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ + "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ + "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ + "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ + "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ + "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ + "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ + "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ +END + diff --git a/Varela/Varela/Source/Servidor/fServerForm.ddp b/Varela/Varela/Source/Servidor/fServerForm.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/fServerForm.dfm b/Varela/Varela/Source/Servidor/fServerForm.dfm new file mode 100644 index 0000000..af1bd52 --- /dev/null +++ b/Varela/Varela/Source/Servidor/fServerForm.dfm @@ -0,0 +1,1069 @@ +object ServerForm: TServerForm + Left = 806 + Top = 611 + BorderStyle = bsDialog + Caption = 'Administrador de puntos de venta - Server' + ClientHeight = 255 + ClientWidth = 371 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 371 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Memo1: TMemo + Left = 24 + Top = 72 + Width = 329 + Height = 129 + Lines.Strings = ( + 'Memo1') + ScrollBars = ssVertical + TabOrder = 0 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Image1: TImage + Left = 0 + Top = 0 + Width = 371 + Height = 57 + Align = alClient + Center = True + Picture.Data = { + 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF + F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A + 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC + FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA + FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 + A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 + 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 + EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 + 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD + FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 + F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF + EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 + F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 + 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 + 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 + 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 + 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED + F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 + 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 + CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F + 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C + 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 + A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 + 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 + ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 + 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 + 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 + 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E + 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F + 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 + E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C + 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 + D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 + AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 + B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 + 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 + 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 + 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E + AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 + 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 + 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 + 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 + 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 + 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 + 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 + 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B + 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD + 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 + F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 + 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 + 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A + C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E + 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 + 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 + 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A + 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 + 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 + 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 + 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 + 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 + D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 + 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 + E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C + 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E + 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 + 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 + 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D + 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A + 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B + 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 + 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB + 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 + 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 + 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 + 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA + D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 + 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 + 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 + 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 + 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 + 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 + 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 + B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B + 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 + 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB + 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B + 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE + A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC + EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B + 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 + 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 + 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C + 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 + A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 + 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 + 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 + 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F + 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B + 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 + 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 + 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F + 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB + 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D + F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 + 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 + 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C + 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 + 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 + 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F + A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 + 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 + BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 + 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 + 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 + BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 + 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B + D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B + A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A + 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 + 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 + 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 + 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 + 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 + 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A + D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 + DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 + 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 + 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 + 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE + 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 + 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B + 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E + 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 + 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 + 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 + 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 + 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 + CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 + 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 + 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E + 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 + 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 + E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA + AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 + BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 + 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 + 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 + 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B + B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD + D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C + 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 + 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 + AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F + 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C + F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 + 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E + 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 + 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 + 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B + 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 + 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA + BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE + EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 + DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 + 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 + BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 + 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 + 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 + 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 + F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 + 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E + 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF + 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 + 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C + 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 + 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 + 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 + 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF + 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 + 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 + 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 + 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 + 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 + 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA + 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB + 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA + AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 + 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E + 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 + 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E + 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 + CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C + 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 + 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 + 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 + 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C + 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 + 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 + D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 + ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 + 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF + 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 + 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 + A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E + 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A + 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 + 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 + 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 + 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 + 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 + 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 + B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 + 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF + 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A + 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 + 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 + B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 + 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 + 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 + 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 + 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA + D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 + 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A + D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA + 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 + DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 + 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 + 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA + 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 + 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 + 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 + 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 + A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C + 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B + 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C + 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 + 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC + 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A + 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC + 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 + 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 + 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 + 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D + 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 + 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 + 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B + B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F + 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 + A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 + 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B + 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 + ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 + 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E + ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 + 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 + 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 + 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 + EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D + 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F + 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA + B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 + F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E + 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 + 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 + 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 + 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C + 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 + 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 + F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 + 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C + D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 + 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 + 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 + 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D + CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 + 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C + B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D + 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 + A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F + 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 + 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C + 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C + 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 + 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 + 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 + 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C + 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 + E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 + 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 + 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 + B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 + 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F + 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 + C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 + 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F + 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 + A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 + DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 + ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA + A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC + B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E + 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F + 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 + E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 + 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E + C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C + 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B + A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 + EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB + 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F + 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 + 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B + B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 + 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E + 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 + B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F + 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 + 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D + 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E + 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C + CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B + 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A + 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 + BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 + FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 + CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD + BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 + F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 + D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 + 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE + 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D + D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D + 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 + 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 + 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 + 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 + 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 + AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 + 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E + D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B + 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 + D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 + 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF + 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 + E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 + 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 + 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E + E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E + E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 + 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 + CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 + 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 + 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 + 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 + 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 + 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 + DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 + 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 + 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 + 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF + FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A + 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 + 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E + 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 + 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 + AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 + A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 + 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C + 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 + 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 + 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE + CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 + 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 + 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 + 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 + 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 + C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB + 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 + 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 + 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 + 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 + DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 + DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B + 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E + E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 + AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E + 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 + 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 + 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC + A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA + 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 + AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC + 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 + 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 + C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 + 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE + 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 + 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 + 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 + 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 + 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 + B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 + 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 + CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A + 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 + 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A + 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 + E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 + 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 + AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A + 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 + C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 + 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 + 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 + 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 + 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 + A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C + 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 + 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 + 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C + 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 + D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C + E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA + 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 + 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 + 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 + 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 + C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB + 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B + 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA + 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 + 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 + 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E + C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D + 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E + F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B + 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 + F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 + A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A + 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 + 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 + 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 + EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 + 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 + D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 + 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 + 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B + C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 + 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 + 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C + 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 + 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC + 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E + E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB + 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 + 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 + 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E + 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 + 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 + 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 + 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 + F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA + 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 + 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 + 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D + F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 + 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 + 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 + C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B + 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 + 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D + DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 + 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC + 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 + 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 + 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE + 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A + 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED + 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A + 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 + 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 + 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D + 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 + 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 + A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE + E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 + 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 + 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 + B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C + 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 + 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 + A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 + 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E + E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC + 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE + B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 + C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B + 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E + DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 + 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 + ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB + E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B + FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 + 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC + 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 + 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 + DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 + BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E + 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F + 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 + 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE + B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 + 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E + A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 + 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 + 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F + 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 + 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC + DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB + 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E + B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 + 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 + 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 + E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 + F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 + E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 + 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E + AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E + F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C + 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 + 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC + 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 + 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE + 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 + 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B + 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E + 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 + 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D + 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 + 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 + DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 + 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D + 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 + 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C + CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 + 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A + 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 + A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 + A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C + 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 + 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 + 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B + 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 + D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB + 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 + 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 + D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 + BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F + 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 + 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 + DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 + 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 + 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 + CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B + 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 + 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 + 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C + 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 + 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 + E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 + 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 + 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA + F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 + 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E + 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D + 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 + 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 + 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 + E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 + 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 + 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 + 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 + 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 + 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D + E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 + 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 + A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE + 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C + 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 + DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 + EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C + 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F + 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 + 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D + 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 + 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB + 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D + 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 + 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D + E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF + 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D + 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B + AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 + 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 + BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F + 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 + 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 + BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 + 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F + 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA + 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 + 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C + 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 + 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 + 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 + F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 + 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D + 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 + 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 + 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F + 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D + 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 + 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 + 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 + 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 + 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D + 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 + 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A + A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 + 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 + 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 + A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 + 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D + A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 + 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 + 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 + E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F + 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 + 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 + 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A + A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 + 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 + 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 + 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 + 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 + C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC + 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E + 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 + 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 + 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 + 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 + 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 + A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 + 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B + 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 + 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 + 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E + A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD + D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B + BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 + 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 + F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 + ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF + A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C + AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 + 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 + 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C + CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 + 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 + 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B + D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 + DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 + B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 + 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 + 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB + D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 + 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 + 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 + D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 + 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 + 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED + 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 + 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D + DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 + DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B + 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D + 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 + 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D + 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 + FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE + 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 + 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 + 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 + 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 + EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 + BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 + CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB + 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C + 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 + 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E + 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 + 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 + 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 + 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 + DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D + CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 + 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 + A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C + 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 + B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE + CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF + EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 + 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 + 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 + A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 + 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A + 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 + 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 + B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 + 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D + 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 + 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C + B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 + 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 + 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 + D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E + 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B + 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 + 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 + 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C + 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 + 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 + 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C + 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 + 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 + EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 + C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A + 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 + 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 + 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 + C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A + CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 + C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F + 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D + CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 + 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 + 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 + 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E + D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 + C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A + 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A + A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 + 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 + 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 + E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 + 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 + AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 + CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 + 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D + 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD + E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C + B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C + 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA + 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E + 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 + 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A + 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 + 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F + 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 + 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 + 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 + 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 + D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A + 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD + CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 + E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 + DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 + FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 + C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F + DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 + 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 + 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD + EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F + 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 + D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 + 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 + 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 + 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 + 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 + 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 + 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 + 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 + 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE + 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C + C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 + 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE + F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 + 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF + 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 + 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 + 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 + 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F + 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 + 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE + 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D + 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 + 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D + 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 + 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 + 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 + 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 + 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B + 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 + D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF + F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B + 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A + A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 + 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E + FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 + ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B + FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 + FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF + B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 + 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 + 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B + B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 + 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 + 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 + 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 + F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F + 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D + 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A + 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 + 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 + 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B + BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B + F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A + D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 + 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 + 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 + 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE + 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 + 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 + 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E + 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF + 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 + 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 + 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A + D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB + 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 + 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD + 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 + A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF + 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 + 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 + C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D + DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B + C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 + 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A + 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C + 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 + 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 + EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 + 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE + E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 + BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB + 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 + 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 + 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 + 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 + 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF + 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 + ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 + 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 + 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 + 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 + 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 + 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D + F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 + A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F + F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 + 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A + 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC + B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC + DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 + 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C + 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD + 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 + 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 + 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 + 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C + 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 + DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE + 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 + 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 + 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C + C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 + 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 + 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 + E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 + A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D + B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE + 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D + AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A + E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 + 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 + FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 + C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 + D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 + 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 + B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA + EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F + 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F + 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 + BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 + E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 + 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 + 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B + BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 + 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 + 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 + 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 + DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 + 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 + CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B + B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 + 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C + 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 + 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 + E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 + 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 + 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A + 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA + BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 + D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 + 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B + 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 + C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 + 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 + E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 + CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC + 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 + 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C + 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 + 0DE44000003B} + end + end + object Button1: TButton + Left = 24 + Top = 216 + Width = 75 + Height = 25 + Caption = 'Button1' + TabOrder = 2 + end + object PopupMenu1: TPopupMenu + Left = 104 + Top = 16 + object Opciones1: TMenuItem + Action = actOpciones + end + object Refrescarconexin1: TMenuItem + Action = actRestart + end + object N2: TMenuItem + Caption = '-' + end + object Acercade1: TMenuItem + Action = actAcerca + end + object N1: TMenuItem + Caption = '-' + end + object Cerrar1: TMenuItem + Action = actCerrar + end + end + object ActionList: TActionList + Left = 72 + Top = 16 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actRestart: TAction + Caption = 'Refrescar conexi'#243'n' + OnExecute = actRestartExecute + end + object actOpciones: TAction + Caption = '&Configuraci'#243'n...' + OnExecute = actOpcionesExecute + end + object actConexiones: TAction + Caption = 'Lista de conexiones...' + end + object actAcerca: TAction + Caption = 'Acerca de...' + OnExecute = actAcercaExecute + end + end + object XPManifest1: TXPManifest + Left = 40 + Top = 16 + end + object JvTrayIcon: TJvTrayIcon + IconIndex = 0 + DropDownMenu = PopupMenu1 + PopupMenu = PopupMenu1 + Delay = 300 + Snap = True + Visibility = [tvVisibleTaskBar, tvAutoHide] + Left = 8 + Top = 16 + end +end diff --git a/Varela/Varela/Source/Servidor/fServerForm.pas b/Varela/Varela/Source/Servidor/fServerForm.pas new file mode 100644 index 0000000..5872ec9 --- /dev/null +++ b/Varela/Varela/Source/Servidor/fServerForm.pas @@ -0,0 +1,103 @@ +unit fServerForm; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, + uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, + uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, frxClass, frxPreview, + JvComponent, JvTrayIcon, ActnList, Menus, XPMan, JvExControls, + JvGradient, JvGIF, ExtCtrls, JvComponentBase; + +type + TServerForm = class(TForm) + Memo1: TMemo; + PopupMenu1: TPopupMenu; + ActionList: TActionList; + actCerrar: TAction; + Cerrar1: TMenuItem; + actRestart: TAction; + actOpciones: TAction; + actConexiones: TAction; + Opciones1: TMenuItem; + Refrescarconexin1: TMenuItem; + N2: TMenuItem; + XPManifest1: TXPManifest; + JvTrayIcon: TJvTrayIcon; + Panel1: TPanel; + Image1: TImage; + JvGradient1: TJvGradient; + Button1: TButton; + actAcerca: TAction; + Acercade1: TMenuItem; + N1: TMenuItem; + procedure actCerrarExecute(Sender: TObject); + procedure actRestartExecute(Sender: TObject); + procedure actOpcionesExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure actAcercaExecute(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + ServerForm: TServerForm; + +implementation + +uses + uDataModuleServer, uConfiguracion, EDI_SLSRPT, uAcercaDe; + + +{$R *.dfm} + +procedure TServerForm.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TServerForm.actRestartExecute(Sender: TObject); +begin + dmServer.RefrescarConexion; +end; + +procedure TServerForm.actOpcionesExecute(Sender: TObject); +var + AForm : TForm; +begin + AForm := TfConfiguracion.Create(NIL); + try + AForm.ShowModal; + finally + AForm.Free; + actRestart.Execute; + end; +end; + +procedure TServerForm.FormCreate(Sender: TObject); +begin + JvTrayIcon.HideApplication; + JvTrayIcon.Hint := 'Administración de puntos de venta (Servidor)' + + #10#13 + dmServer.ConnectionName; + JvTrayIcon.Active := True; +end; + +procedure TServerForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + JvTrayIcon.Active := False; +end; + +procedure TServerForm.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + ShowModal; + finally + Free; + end; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.ddp b/Varela/Varela/Source/Servidor/srvInformes_Impl.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm b/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm new file mode 100644 index 0000000..90074b2 --- /dev/null +++ b/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm @@ -0,0 +1,331 @@ +object srvInformes: TsrvInformes + OldCreateOrder = True + SessionManager = dmServer.SessionManager + AcquireConnection = True + ServiceSchema = schInformes + ServiceAdapter = DABINAdapter + OnAfterProcessTransactionAction = pptaNone + ExportedDataTables = <> + CacheElements = <> + Options = [rsoProcessDeltasWithoutUpdateRules] + Height = 297 + Width = 298 + object schInformes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = dmServer.DataDictionary + Diagrams = dmServer.DADiagrams + Datasets = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = 'VENTAS' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + + 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'CATEGORIA' + TableField = 'CATEGORIA' + end + item + DatasetField = 'ICONO' + TableField = 'ICONO' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ORDEN' + TableField = 'ORDEN' + end + item + DatasetField = 'VISTA' + TableField = 'VISTA' + end + item + DatasetField = 'MODIFICABLE' + TableField = 'MODIFICABLE' + end> + end> + Name = 'ListaInformesPorCategoria' + Fields = < + item + Name = 'ID' + DataType = datInteger + BlobType = dabtUnknown + Required = True + DisplayWidth = 0 + Alignment = taLeftJustify + ServerAutoRefresh = True + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MODIFICABLE' + DataType = datString + Size = 1 + BlobType = dabtUnknown + DefaultValue = 'S' + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + + 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + + 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_ListaInformesPorCategoria' + end + item + Params = < + item + Name = 'CATEGORIA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ICONO' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'NOMBRE' + DataType = datString + Size = 50 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'ORDEN' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'VISTA' + DataType = datMemo + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'OLD_ID' + DataType = datInteger + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'GFT_VARELA' + TargetTable = 'RDX_INFORMES' + SQL = + 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + + 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + + 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + + 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_ListaInformesPorCategoria' + end> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 40 + Top = 24 + end + object bpInformes: TDABusinessProcessor + Schema = schInformes + InsertCommandName = 'Insert_ListaInformesPorCategoria' + UpdateCommandName = 'Update_ListaInformesPorCategoria' + ReferencedDataset = 'ListaInformesPorCategoria' + ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 144 + Top = 24 + end + object DABINAdapter: TDABINAdapter + BufferSize = 262144 + IsCompatibleV4 = True + Left = 40 + Top = 96 + end +end diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.pas b/Varela/Varela/Source/Servidor/srvInformes_Impl.pas new file mode 100644 index 0000000..57b76b9 --- /dev/null +++ b/Varela/Varela/Source/Servidor/srvInformes_Impl.pas @@ -0,0 +1,48 @@ +unit srvInformes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DARemoteService_Impl, + {Used RODLs:} DataAbstract3_Intf, + {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, + uDABusinessProcessor, uDADataTable, uDABINAdapter, uDADataStreamer; + +type + { TsrvInformes } + TsrvInformes = class(TDARemoteService, IsrvInformes) + bpInformes: TDABusinessProcessor; + DABINAdapter: TDABINAdapter; + schInformes: TDASchema; + private + protected + { IsrvInformes methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} VARELA_Invk, uDataModuleServer; + +procedure Create_srvInformes(out anInstance : IUnknown); +begin + anInstance := TsrvInformes.Create(NIL); +end; + +{ srvInformes } +initialization + TROClassFactory.Create('srvInformes', Create_srvInformes, TsrvInformes_Invoker); + +finalization + +end. diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.ddp b/Varela/Varela/Source/Servidor/uAcercaDe.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.dfm b/Varela/Varela/Source/Servidor/uAcercaDe.dfm new file mode 100644 index 0000000..f4ef396 --- /dev/null +++ b/Varela/Varela/Source/Servidor/uAcercaDe.dfm @@ -0,0 +1,959 @@ +object fAcercaDe: TfAcercaDe + Left = 531 + Top = 365 + ActiveControl = bAceptar + BorderStyle = bsDialog + Caption = 'Acerca de...' + ClientHeight = 401 + ClientWidth = 427 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object JvGradient1: TJvGradient + Left = 0 + Top = 88 + Width = 427 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Bevel1: TBevel + Left = 128 + Top = 359 + Width = 290 + Height = 9 + Shape = bsTopLine + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 427 + Height = 88 + Align = alTop + BevelOuter = bvNone + TabOrder = 0 + object Image1: TImage + Left = -19 + Top = 0 + Width = 450 + Height = 88 + Picture.Data = { + 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF + 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 + 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 + E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 + AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 + 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 + B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 + AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 + 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE + E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 + CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 + AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE + C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 + 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A + 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 + 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B + AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F + 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 + 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 + B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 + 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 + 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 + CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A + 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 + D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 + 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 + B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 + 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 + A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 + 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 + E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B + 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F + CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E + 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 + CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 + 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE + 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 + 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 + 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 + 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 + 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 + 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF + 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 + 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 + 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 + 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 + AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 + 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B + 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 + 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 + 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA + 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 + 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 + 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F + 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A + 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 + 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 + 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A + 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 + 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 + D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC + E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 + 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 + 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 + 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 + 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 + 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 + 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 + E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE + 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 + 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 + E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 + CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 + 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A + F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 + D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 + F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 + D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 + 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 + 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 + 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 + 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE + A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 + 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F + D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 + 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 + 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 + 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 + 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF + 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D + 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 + 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 + 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A + 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 + 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 + BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 + 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA + 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 + C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 + 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B + 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 + 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 + 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF + 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B + 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 + 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 + 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 + 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 + 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 + 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 + 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 + 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 + 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 + 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 + FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 + 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 + 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 + 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 + 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 + 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C + C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 + 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 + D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A + A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D + BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 + 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 + A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA + 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 + 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA + A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 + 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA + A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 + 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 + 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A + ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 + 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 + 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A + A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 + 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 + B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC + E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D + 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 + 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE + 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 + FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 + 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC + EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB + BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 + 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 + C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 + 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 + 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D + 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 + 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 + 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 + 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 + 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 + 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B + CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 + 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 + 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 + B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 + 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 + B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D + 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 + EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D + D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 + E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 + 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D + DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C + 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B + C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 + 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 + C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD + 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 + CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 + DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 + 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 + DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 + 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C + 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 + 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE + EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 + 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 + 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F + F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 + D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B + 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 + FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 + 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 + BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A + E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 + ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D + A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 + EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 + C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 + 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 + 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 + 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE + DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 + 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA + D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F + 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 + F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E + F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B + E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F + 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 + A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 + F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E + 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 + C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 + 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 + 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 + 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 + 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B + 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 + 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 + 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 + AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 + 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 + CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 + 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E + 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD + 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 + 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC + 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 + 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 + C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB + 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 + C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 + 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 + 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 + E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 + 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C + B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 + 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 + 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 + 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 + C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 + 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 + 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 + E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D + FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 + 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 + 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 + 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 + C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB + 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 + BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 + CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 + AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 + E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF + 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 + D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 + C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 + 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E + 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 + 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 + B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 + 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED + F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 + D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 + 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D + E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 + 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 + E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF + FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 + 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA + 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 + 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 + 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 + F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B + 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 + 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 + 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 + 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F + B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C + 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F + 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 + 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 + 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 + 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 + 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B + B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A + 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 + 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 + 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 + 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC + CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 + 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 + 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF + 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA + F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 + CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 + 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 + AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C + 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D + 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 + 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D + B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 + F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD + D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 + 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 + BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 + BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 + 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD + 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B + CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 + 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD + 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E + EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 + 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 + DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D + B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 + D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E + 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 + 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D + E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 + CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 + C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 + DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 + 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 + CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 + 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 + 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C + ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 + 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 + 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED + A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 + 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 + 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C + DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 + 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 + 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B + 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A + A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 + 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD + 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E + EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B + 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 + D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE + 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 + AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 + 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 + 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 + 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF + F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 + 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B + 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 + EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF + 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 + ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 + 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 + 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 + 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 + 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 + E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C + 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 + 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 + A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 + FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB + EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB + 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 + 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 + A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 + 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 + 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 + 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 + 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 + 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D + B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE + EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 + EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 + DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D + 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 + 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 + 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 + 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B + F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A + A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A + B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 + DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD + 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 + AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC + 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D + B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A + FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 + E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B + 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 + DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 + E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 + 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 + 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD + 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 + AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 + C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 + 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 + 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 + A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 + AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 + 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 + 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C + 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D + 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 + 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 + 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E + F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 + CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E + A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD + BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 + 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB + 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A + DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 + B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 + 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 + 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA + A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 + 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 + 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B + 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 + 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C + B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 + 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 + 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD + A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D + 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C + 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F + 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D + A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 + A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 + 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 + 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 + 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 + A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E + 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC + DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 + A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 + 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A + AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D + 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB + 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 + 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 + 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F + A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 + 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E + CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 + 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 + 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 + 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 + 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 + BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 + 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 + A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 + 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 + 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 + 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 + C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 + 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE + 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 + 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D + 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B + 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC + 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 + 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 + 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 + 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 + 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 + 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA + 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B + 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 + 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 + 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 + D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 + BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F + E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 + 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 + E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 + 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 + 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED + C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B + B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D + 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 + 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 + 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 + 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB + BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D + 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 + 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 + 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F + E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 + 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 + 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 + 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F + 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 + 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C + 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 + F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 + 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 + B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 + 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A + 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 + 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 + 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B + AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B + 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 + 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E + 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB + 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 + 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 + 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 + 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE + 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 + 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 + 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 + 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 + 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 + 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 + 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A + A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 + 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 + 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 + 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 + 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 + C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 + DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF + 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD + D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB + FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D + 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE + B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F + 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC + C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 + 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 + 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 + 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D + 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 + CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B + 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF + 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 + C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 + FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 + E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 + E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 + B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA + B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 + 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 + FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 + CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 + 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 + C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 + 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 + 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B + 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 + 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F + D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 + 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D + 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE + 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F + ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 + 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 + 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 + A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 + F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F + 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C + 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 + 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 + 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 + 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 + 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 + 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 + 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 + D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 + D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 + 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD + E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 + 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 + 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 + 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 + C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 + 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 + 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E + 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 + B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 + 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 + 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF + F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B + E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 + 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 + D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 + 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B + 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 + 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 + E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 + 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 + 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 + 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED + 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 + 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A + 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 + 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 + C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F + D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA + BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 + 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E + B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F + 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D + F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 + CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 + 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 + 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A + 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C + 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 + 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 + 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C + 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE + 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 + 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 + B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 + 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 + AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B + ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 + 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C + 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 + EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 + 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB + 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 + 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 + 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 + CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 + 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 + D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 + B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 + 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 + C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 + E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 + 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 + C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF + 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 + 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 + 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 + 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D + 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 + 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B + 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 + DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 + 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 + A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 + 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 + 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C + 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 + 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D + E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E + FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 + 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB + 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B + 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F + 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 + 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 + 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 + 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 + C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 + 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A + C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 + 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 + 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 + 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 + 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 + B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C + 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 + 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B + 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 + 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA + 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 + D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B + B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F + 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 + 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA + B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD + 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C + 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C + C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B + AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB + C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F + 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 + 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C + B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C + 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 + CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B + C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 + 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C + CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 + BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 + 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E + DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 + 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 + 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D + 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 + DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF + EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C + 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 + 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E + F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 + C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 + 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 + A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B + 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D + 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB + 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 + D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 + 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B + 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 + 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 + 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 + 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C + C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 + 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA + 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 + 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F + D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 + 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 + 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 + 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 + E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA + C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A + 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C + B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F + 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 + 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 + E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 + E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C + 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD + 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 + CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 + 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 + E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA + E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 + 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 + 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 + 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F + 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 + 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D + 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 + D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 + 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C + 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 + A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 + 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 + 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E + 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 + 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 + 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 + 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A + 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 + 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 + 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F + FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B + C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC + 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E + D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E + 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 + 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 + ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 + 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D + C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B + 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA + 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 + 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 + 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 + 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 + A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C + 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE + 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E + F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 + 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 + 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 + 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 + 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C + D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE + 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 + 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 + 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 + A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B + 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 + 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D + 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 + B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B + 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 + CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 + 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 + A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 + AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 + 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED + 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 + 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 + C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E + 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 + 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F + C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 + 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 + 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 + C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F + BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 + 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 + 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 + 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE + F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 + 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 + A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 + 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 + 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 + BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 + 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 + 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC + AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA + 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 + B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 + 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC + 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 + 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 + 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 + 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D + 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 + B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB + BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F + D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF + FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E + 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D + 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C + 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 + 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 + C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 + 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 + A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 + CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 + 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A + 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 + CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 + 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF + F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 + BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F + A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 + D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 + 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D + 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 + 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 + 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF + B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B + 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B + 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C + A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 + 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 + 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB + CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 + 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 + 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B + 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 + 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D + EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 + 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC + 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 + 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C + 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 + 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF + F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 + BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 + 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 + 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 + 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 + 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A + 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 + DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F + F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 + 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 + E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D + 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 + A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C + 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E + 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 + 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 + CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 + 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 + A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C + 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 + 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 + A4F1AD784E48C33D1D77E4B1C7F50202003B} + end + end + object bAceptar: TButton + Left = 344 + Top = 367 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 1 + end + object memModulos: TMemo + Left = 128 + Top = 112 + Width = 289 + Height = 233 + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + ParentColor = True + TabOrder = 2 + end +end diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.pas b/Varela/Varela/Source/Servidor/uAcercaDe.pas new file mode 100644 index 0000000..466c9fe --- /dev/null +++ b/Varela/Varela/Source/Servidor/uAcercaDe.pas @@ -0,0 +1,47 @@ +unit uAcercaDe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls; + +type + TfAcercaDe = class(TForm) + JvGradient1: TJvGradient; + Panel1: TPanel; + Image1: TImage; + Bevel1: TBevel; + bAceptar: TButton; + memModulos: TMemo; + procedure FormShow(Sender: TObject); + end; + +implementation + +{$R *.dfm} + +uses JclFileUtils; + +procedure TfAcercaDe.FormShow(Sender: TObject); +var + Obj : TJclFileVersionInfo; +begin + memModulos.Lines.Clear; + + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + with Obj do + begin + memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); + end; + finally + FreeAndNil(Obj); + end; +end; + +end. diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.ddp b/Varela/Varela/Source/Servidor/uDataModuleServer.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.dfm b/Varela/Varela/Source/Servidor/uDataModuleServer.dfm new file mode 100644 index 0000000..6a5f4cd --- /dev/null +++ b/Varela/Varela/Source/Servidor/uDataModuleServer.dfm @@ -0,0 +1,96 @@ +object dmServer: TdmServer + OldCreateOrder = False + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 307 + Width = 382 + object HTTPServer: TROIndyHTTPServer + Encryption.UseCompression = True + Dispatchers = < + item + Name = 'BINMessage' + Message = BINMessage + Enabled = True + PathInfo = 'Bin' + end> + OnBeforeServerActivate = HTTPServerBeforeServerActivate + IndyServer.Bindings = <> + IndyServer.DefaultPort = 8099 + Port = 8099 + Left = 40 + Top = 16 + end + object BINMessage: TROBinMessage + Left = 136 + Top = 16 + end + object DriverManager: TDADriverManager + DriverDirectory = '%SYSTEM%\' + TraceActive = True + TraceFlags = [toPrepare, toExecute, toFetch, toError, toStmt, toConnect, toTransact, toBlob, toService, toMisc, toParams] + OnTraceEvent = DriverManagerTraceEvent + Left = 136 + Top = 80 + end + object ConnectionManager: TDAConnectionManager + Connections = < + item + Name = 'GFT_VARELA' + ConnectionString = + 'ADO?AuxDriver=SQLOLEDB.1;Server=david;Database=GFT_VARELA;UserID' + + '=sa;Password=123456;Integrated Security=SSPI;' + Default = True + end> + DriverManager = DriverManager + PoolingEnabled = True + Left = 40 + Top = 80 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'IMPORTE' + DataType = datCurrency + DisplayLabel = 'Importe' + Alignment = taRightJustify + end> + Left = 40 + Top = 144 + end + object DADiagrams: TDADiagrams + Left = 136 + Top = 144 + DiagramData = + ''#13#10' '#13#10' '#13#10''#13#10 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + RegRoot = hkLocalMachine + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 136 + Top = 208 + end + object DAADODriver: TDAADODriver + Left = 304 + Top = 16 + end + object SessionManager: TROInMemorySessionManager + SessionDuration = -1 + Left = 224 + Top = 16 + end + object DAServerLog1: TDAServerLog + Active = True + OnAddSQLCommandLog = DAServerLog1AddSQLCommandLog + OnAddSQLErrorLog = DAServerLog1AddSQLErrorLog + Left = 224 + Top = 80 + end + object JvLogFile1: TJvLogFile + Left = 224 + Top = 144 + end +end diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.pas b/Varela/Varela/Source/Servidor/uDataModuleServer.pas new file mode 100644 index 0000000..0475be5 --- /dev/null +++ b/Varela/Varela/Source/Servidor/uDataModuleServer.pas @@ -0,0 +1,364 @@ +unit uDataModuleServer; + +interface + +uses + SysUtils, Classes, uDAEngine, uDAIBXDriver, uDAClasses, uDADriverManager, + uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, + uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, + JvAppStorage, JvAppRegistryStorage, uDAInterfaces, + JvComponentBase, uDAADODriver, uROEventRepository, uDAServerLog, ExceptionLog, + JvLogFile, SyncObjs; + +const + SERVER_PORT = '8099'; + +type + TdmServer = class(TDataModule) + HTTPServer: TROIndyHTTPServer; + BINMessage: TROBinMessage; + DriverManager: TDADriverManager; + DADiagrams: TDADiagrams; + JvAppRegistryStorage: TJvAppRegistryStorage; + DAADODriver: TDAADODriver; + SessionManager: TROInMemorySessionManager; + ConnectionManager: TDAConnectionManager; + DAServerLog1: TDAServerLog; + JvLogFile1: TJvLogFile; + DataDictionary: TDADataDictionary; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + procedure HTTPServerBeforeServerActivate(Sender: TObject); + procedure DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; + SQLCommandLog: TDASQLCommandLog); + procedure DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; + SQLErrorLog: TDASQLErrorLog); + procedure DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); + private + FConnectionName : string; + FEscribirLog : TCriticalSection; + function GetConnectionString: string; + procedure FindFiles(StartDir: string; var FilesList: TStringList); + procedure IniciarLog; + procedure DetenerLog; + + public + FDBServer : string; + FDBName : string; + FDBUser : string; + FDBPass : string; + FInicioWindows : Boolean; + FServerPort : string; + FDirEntrada : String; + FDirAlmacen : String; + FDias : Integer; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + procedure RefrescarConexion; + procedure BorrarFicherosDeCargaAntiguos; + procedure EscribirLog(const AMensaje : String); + property ConnectionName : string read FConnectionName write FConnectionName; + end; + + +function DarRutaInformes : String; +function Encrypt (const Source : string) : String; +function Decrypt (const Source : string) : String; +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; +function GetTempDirectory(ABasePath : string) : string ; + + +var + dmServer: TdmServer; + +implementation + +{$R *.dfm} + +uses + DateUtils, JclFileUtils, ActiveX, Forms, fServerForm, Registry, Windows, Dialogs, + ADODB; + + +function GetTempDirectory(ABasePath : string) : string ; +var + fTime : TDateTime; + sFile : String; +Begin + Result := '' ; + + fTime := Frac(Now) ; + sFile := 'TMP' + Copy(FormatFloat('#.########', fTime), 5, 5); + + while FileExists(ABasePath + PathDelim + sFile) do + begin + fTime := Frac(Now); + sFile := 'TMP'+Copy(FormatFloat('#.########', fTime), 5, 5); + end; + Result := sFile ; +end; + +Function AddBS(s:String): String; +Begin + If Copy(s,Length(s),1)<>'\' Then + s := s + '\' ; + Result := s ; +End; + +function DarRutaInformes : String; +begin + Result := ExtractFilePath(Application.ExeName) + 'Informes' + PathDelim; +end; + +function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; +var + ds: IDADataset; +begin + ds := AConnection.NewDataset(Format('SELECT Gen_id(%s,1) FROM RDB$Database', [GeneratorName])); + ds.Open; + result := ds.Fields[0].Value; + ds.Close; +end; + +procedure WriteAutoRun(Name, Value : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + reg.WriteString(Name, Value); + reg.CloseKey; + finally + reg.free; + end; +end; + +procedure DeleteAutoRun(Name : String); +var + reg: TRegistry; +begin + reg := TRegistry.Create; + try + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.LazyWrite := False; + reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); + if reg.ValueExists(Name) then + reg.DeleteValue(Name); + reg.CloseKey; + finally + reg.free; + end; +end; + + +function Encrypt (const Source : string) : String; +var + i:integer; +begin + Randseed := 28; + Result := ''; + for i:=1 to length(Source) do + Result := Result + chr(ord(Source[i]) + Random(10) + 1); +end; + +function Decrypt (const Source : string) : String; +var + i : integer; +begin + Randseed:= 28; + Result := ''; + for i := 1 to length(Source) do + Result := Result + chr(ord(Source[i]) - Random(10) - 1); +end; + +procedure TdmServer.DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; + SQLCommandLog: TDASQLCommandLog); +begin + EscribirLog(SQLCommandLog.OriginalSQLText); + EscribirLog(SQLCommandLog.OriginalSQLText); + EscribirLog('-----------------------------------------------------'); +end; + +procedure TdmServer.DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; + SQLErrorLog: TDASQLErrorLog); +begin + EscribirLog(SQLErrorLog.ErrorMessage); + EscribirLog(SQLErrorLog.OriginalSQLText); + EscribirLog(SQLErrorLog.OriginalSQLText); + EscribirLog('-----------------------------------------------------'); +end; + +procedure TdmServer.DataModuleCreate(Sender: TObject); +begin + LeerConfiguracion; + RefrescarConexion; + IniciarLog; +end; + +function TdmServer.GetConnectionString: string; +begin +{ Result := 'SDAC?Server=' + FDBServer + + ';Database=' + FDBName + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass);} + + Result := 'ADO?AuxDriver=SQLOLEDB.1;Server=' + FDBServer + + ';Database=' + FDBName + + ';UserID=' + FDBUser + + ';Password=' + Decrypt(FDBPass); +end; + +procedure TdmServer.LeerConfiguracion; +begin + with JvAppRegistryStorage do + begin + FDBServer := ReadString('ServerDB'); + FDBName := ReadString('DBName'); + FDBUser := ReadString('UserDB'); + FDBPass := ReadString('PassDB'); + + FServerPort := ReadString('ServerPort', SERVER_PORT); + FInicioWindows := ReadBoolean('InicioWindows'); + + FDirEntrada := ReadString('DirEntradaEDI'); + FDirAlmacen := ReadString('DirAlmacenEDI'); + FDias := ReadInteger('DiasAlmacenEDI', 1); + end; +end; + +procedure TdmServer.SalvarConfiguracion; +begin + with JvAppRegistryStorage do + begin + BeginUpdate; + try + WriteString('ServerDB', FDBServer); + WriteString('DBName', FDBName); + WriteString('UserDB', FDBUser); + WriteString('PassDB', FDBPass); + WriteString('ServerPort', FServerPort); + + WriteString('DirEntradaEDI', FDirEntrada); + WriteString('DirAlmacenEDI', FDirAlmacen); + WriteInteger('DiasAlmacenEDI', FDias); + + WriteBoolean('InicioWindows', FInicioWindows); + if FInicioWindows then + WriteAutoRun('AdminPV_Server', Application.ExeName) + else + DeleteAutoRun('AdminPV_Server'); + finally + EndUpdate + end; + end; +end; + +procedure TdmServer.DataModuleDestroy(Sender: TObject); +begin + SessionManager.ClearSessions(False); + HTTPServer.Active := False; + DetenerLog; +end; + +procedure TdmServer.DetenerLog; +begin + FEscribirLog.Free; +end; + +procedure TdmServer.DriverManagerTraceEvent(Sender: TObject; const Text: string; + Tag: Integer); +begin + EscribirLog(Text + #10#13 + #10#13); +end; + +procedure TdmServer.EscribirLog(const AMensaje: String); +begin + FEscribirLog.Acquire; + try + JvLogFile1.Add(AMensaje); + finally + FEscribirLog.Release; + end; +end; + +procedure TdmServer.RefrescarConexion; +begin + HTTPServer.Active := False; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; + + ConnectionName := ConnectionManager.GetDefaultConnectionName; + ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; + CoInitialize(nil); + HTTPServer.Active := TRUE; +end; + +procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); +begin + HTTPServer.Port := StrToInt(FServerPort); +end; + +procedure TdmServer.IniciarLog; +begin + FEscribirLog := TCriticalSection.Create; + + JvLogFile1.Active := False; + JvLogFile1.FileName := ExtractFilePath(Application.ExeName) + 'ServerLog.txt'; + JvLogFile1.AutoSave := True; + JvLogFile1.Active := True; + JvLogFile1.Clear; +end; + +procedure TdmServer.BorrarFicherosDeCargaAntiguos; +var + AAlmacen : String; + ADate : TDateTime; + FilesList: TStringList; + i: integer; +begin + ADate := Now; + IncDay(ADate,((-1)*FDias)); //Establecemos fecha desde la que eliminaremos + + AAlmacen := PathAddSeparator(FDirAlmacen); + FilesList := TStringList.Create; + try + FindFiles(AAlmacen, FilesList); + for i:=0 to FilesList.Count-1 do + begin +// showmessage(FilesList.Strings[i]); + DeleteDirectory(FilesList.Strings[i], false) + end; + finally + FreeAndNil(FilesList); + end +end; + +procedure TdmServer.FindFiles(StartDir: string; var FilesList: TStringList); +const + MASK_ALL_FILES = '*.*'; + CHAR_POINT = '.'; +var + SR: TSearchRec; + IsFound: Boolean; + ADateTime: TDateTime; +begin + StartDir := PathAddSeparator(StartDir); + + IsFound := (FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0); + while IsFound do + begin + if (SR.Name[1] <> CHAR_POINT) then + begin + ADateTime := FileDateToDateTime(SR.Time); + if (DaysBetween(ADateTime, Now) > FDias) then + FilesList.Add(StartDir + SR.Name); + end; + IsFound := (FindNext(SR) = 0); + end; + SysUtils.FindClose(SR); +end; + +end. diff --git a/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas b/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas new file mode 100644 index 0000000..ac5791a --- /dev/null +++ b/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas @@ -0,0 +1,161 @@ +unit uSchemaUtilsServer; + +interface + +uses + Classes, SysUtils, + uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + DARemoteService_Impl, + DataAbstract3_Intf, + uDAClasses, uDAInterfaces, uDADataTable; + +type + TReplicarDataSet = class + protected + function GenerateNewSQL : String; + public + Service : TDARemoteService; + Columnas : String; + ColumnasQueSuman : String; + SourceDataSetName : String; + function GetNewDataSet : IDADataset; + end; + + +implementation + +{ TReplicaDataSet } + +uses + RegExpr, + Dialogs, JclStrings; + +function TReplicarDataSet.GenerateNewSQL: String; +var + AColumnList : TStringList; + ASQL: TStringList; + ds : IDADataset; + i : integer; + Separador : String; + bHayAgrupacion : Boolean; + APos : Integer; + + function GetTrueFieldName(AField : string; ConAlias : Boolean = True) : String; + var + ARegExpr : TRegExpr; + begin + Result := AField; // Por si el campo no tuviera alias + ARegExpr := TRegExpr.Create; + try + ARegExpr.ModifierI := True; // case insensitive + ARegExpr.InputString := ds.SQL; + ARegExpr.Expression := '[^ ,]+[ ]+AS[ ]+' + AField; // buscar (xxxx.xxxx AS AField) o (xxxx AS AField) + ARegExpr.Expression := ARegExpr.Expression + '|'; // o + ARegExpr.Expression := ARegExpr.Expression + '[^ ,]+\.' + AField; // buscar xxxx.AField + if ARegExpr.Exec then + Result := ARegExpr.Match[0]; + + if not ConAlias then + begin + ARegExpr.InputString := Result; + ARegExpr.Expression := '^[^ ,]+'; // Para quedarme con el campo sin alias + if ARegExpr.Exec then + Result := ARegExpr.Match[0] + end; + finally + FreeAndNil(ARegExpr); + end; + end; + +begin + AColumnList := TStringList.Create; + ASQL := TStringList.Create; + ds := Service.ServiceSchema.NewDataset(Service.Connection, SourceDataSetName); + bHayAgrupacion := False; + try + AColumnList.CommaText := Columnas; + + with ASQL do + begin + Insert(0, 'SELECT DISTINCT'); + Insert(1, ''); // Lista de campos + Insert(2, Copy(ds.SQL, Pos('FROM', ds.SQL), Length(ds.SQL))); + Insert(3, ''); // Group by + Separador := ''; + + for i := 0 to AColumnList.Count - 1 do + begin + if Assigned(ds.FindField(AColumnList[i])) then + begin + if i > 0 then + Separador := ','; + + if Pos('#'+AColumnList[i]+'#', ColumnasQueSuman) > 0 then + begin + Strings[1] := Strings[1] + Separador + 'SUM(' + GetTrueFieldName(AColumnList[i], False) + ') AS ' + AColumnList[i]; + bHayAgrupacion := True; + end + else begin + Strings[1] := Strings[1] + Separador + GetTrueFieldName(AColumnList[i]); + if Length(Strings[3]) = 0 then + Strings[3] := 'GROUP BY ' + else begin + if (Strings[3] <> 'GROUP BY ') then + Strings[3] := Strings[3] + Separador; + end; + Strings[3] := Strings[3] + GetTrueFieldName(AColumnList[i], False); + end; + end; + end; // for + + if not bHayAgrupacion then + Delete(3); + end; + Result := ASQL.Text; + finally + AColumnList.Free; + ASQL.Free; + end; +end; + + + +function TReplicarDataSet.GetNewDataSet: IDADataset; +var + SQL: String; + ASchemaDataSet: TDADataSet; + AField: TDAField; + AColumnList : TStringList; + i, j : Integer; +begin + SQL := GenerateNewSQL; + Result := Service.Connection.NewDataset(SQL, SourceDataSetName); + + ASchemaDataSet := Service.ServiceSchema.Datasets.DatasetByName(SourceDataSetName); + if Assigned(ASchemaDataSet) then + begin + Result.Params.AssignParamCollection(ASchemaDataSet.Params); + Result.Fields.AssignFieldCollection(ASchemaDataSet.Fields); + AColumnList := TStringList.Create; + try + AColumnList.CommaText := Columnas; + j := 0; + i := Result.Fields.Count; + while i > 0 do + begin + if AColumnList.IndexOf(Result.Fields[j].Name) = -1 then + Result.Fields.Delete(j) + else + j := j + 1; // Un campo que dejo + i := i - 1; // Un campo menos por revisar + end; + finally + AColumnList.Free; + end; + end; + + Result.Close; + Result.Where.Clear; +end; + +end. diff --git a/Varela/Varela/Source/Usuarios/Usuarios.bdsproj b/Varela/Varela/Source/Usuarios/Usuarios.bdsproj new file mode 100644 index 0000000..adb8eb4 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/Usuarios.bdsproj @@ -0,0 +1,677 @@ + + + + + + + + + + + + Usuarios.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + Pedidos a proveedor + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 + + + False + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Varela/Varela/Source/Usuarios/Usuarios.cfg b/Varela/Varela/Source/Usuarios/Usuarios.cfg new file mode 100644 index 0000000..96c8d0b --- /dev/null +++ b/Varela/Varela/Source/Usuarios/Usuarios.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N".\" +-LE"..\..\Output\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" +-Z +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Usuarios/Usuarios.dof b/Varela/Varela/Source/Usuarios/Usuarios.dof new file mode 100644 index 0000000..908913c --- /dev/null +++ b/Varela/Varela/Source/Usuarios/Usuarios.dof @@ -0,0 +1,471 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=3 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription=Pedidos a proveedor +[Directories] +OutputDir= +UnitOutputDir=.\ +PackageDLLOutputDir=..\..\Output\Cliente +PackageDCPOutputDir=..\Lib +SearchPath=..\Lib +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=3 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.3.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview +T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[HistoryLists\hlSearchPath] +Count=1 +Item0=..\Lib +[HistoryLists\hlUnitOutputDirectory] +Count=1 +Item0=.\ +[HistoryLists\hlBPLOutput] +Count=1 +Item0=..\..\Output\Cliente +[HistoryLists\hlDCPOutput] +Count=1 +Item0=..\Lib +[Exception Log] +EurekaLog Version=519 +Activate=1 +Activate Handle=1 +Save Log File=1 +Foreground Tab=0 +Freeze Activate=0 +Freeze Timeout=60 +Freeze Message=The application seems to be frozen. +SMTP From=eurekalog@email.com +SMTP Host= +SMTP Port=25 +SMTP UserID= +SMTP Password= +Append to Log=0 +Show TerminateBtn=1 +TerminateBtn Operation=1 +Errors Number=32 +Errors Terminate=3 +Email Address= +Email Object= +Email Send Options=0 +Output Path= +Encrypt Password= +AutoCloseDialogSecs=0 +WebSendMode=0 +SupportULR= +HTMLLayout Count=15 +HTMLLine0="%3Chtml%3E" +HTMLLine1=" %3Chead%3E" +HTMLLine2=" %3C/head%3E" +HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" +HTMLLine4=" %3Ctable width="100%%" border="0"%3E" +HTMLLine5=" %3Ctr%3E" +HTMLLine6=" %3Ctd nowrap%3E" +HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" +HTMLLine8=" %3C%%HTML_TAG%%%3E" +HTMLLine9=" %3C/font%3E" +HTMLLine10=" %3C/td%3E" +HTMLLine11=" %3C/tr%3E" +HTMLLine12=" %3C/table%3E" +HTMLLine13=" %3C/body%3E" +HTMLLine14="%3C/html%3E" +AutoCrashOperation=1 +AutoCrashNumber=10 +AutoCrashMinutes=1 +WebURL= +WebUserID= +WebPassword= +WebPort=0 +AttachedFiles= +Count=0 +EMail Message Line Count=0 +loNoDuplicateErrors=0 +loAppendReproduceText=0 +loDeleteLogAtVersionChange=0 +loAddComputerNameInLogFileName=0 +loSaveModulesSection=1 +loSaveCPUSection=1 +soAppStartDate=1 +soAppName=1 +soAppVersionNumber=1 +soAppParameters=1 +soAppCompilationDate=1 +soExcDate=1 +soExcAddress=1 +soExcModule=1 +soExcType=1 +soExcMessage=1 +soActCtlsFormClass=1 +soActCtlsFormText=1 +soActCtlsControlClass=1 +soActCtlsControlText=1 +soCmpName=1 +soCmpUser=1 +soCmpTotalMemory=1 +soCmpFreeMemory=1 +soCmpTotalDisk=1 +soCmpFreeDisk=1 +soCmpSysUpTime=1 +soCmpProcessor=1 +soCmpDisplayMode=1 +soOSType=1 +soOSBuildN=1 +soOSUpdate=1 +soOSLanguage=1 +soNetIP=1 +soNetSubmask=1 +soNetGateway=1 +soNetDNS1=1 +soNetDNS2=1 +soNetDHCP=1 +sndShowSendDialog=1 +sndShowSuccessFailureMsg=0 +sndSendEntireLog=0 +sndSendXMLLogCopy=0 +sndSendScreenshot=1 +sndUseOnlyActiveWindow=0 +sndSendLastHTMLPage=1 +sndSendInSeparatedThread=0 +sndAddDateInFileName=0 +sndCompressAllFiles=0 +edoShowExceptionDialog=1 +edoSendEmailChecked=1 +edoAttachScreenshotChecked=1 +edoShowCopyToClipOption=1 +edoShowDetailsButton=1 +edoShowInDetailedMode=0 +edoShowInTopMostMode=0 +edoUseEurekaLogLookAndFeel=0 +csoShowDLLs=1 +csoShowBPLs=1 +csoShowBorlandThreads=1 +csoShowWindowsThreads=1 +csoShowProcedureOffset=0 +boActivateCrashDetection=0 +boPauseBorlandThreads=0 +boDoNotPauseMainThread=0 +boPauseWindowsThreads=0 +boUseMainModuleOptions=1 +boCopyLogInCaseOfError=1 +boSaveCompressedCopyInCaseOfError=0 +Count mtInformationMsgCaption=1 +mtInformationMsgCaption0="Information." +Count mtQuestionMsgCaption=1 +mtQuestionMsgCaption0="Question." +Count mtDialog_Caption=1 +mtDialog_Caption0="Error." +Count mtDialog_ErrorMsgCaption=2 +mtDialog_ErrorMsgCaption0="An error has occurred during program execution." +mtDialog_ErrorMsgCaption1="Please read the following information for further details." +Count mtDialog_GeneralCaption=1 +mtDialog_GeneralCaption0="General" +Count mtDialog_GeneralHeader=1 +mtDialog_GeneralHeader0="General Information" +Count mtDialog_CallStackCaption=1 +mtDialog_CallStackCaption0="Call Stack" +Count mtDialog_CallStackHeader=1 +mtDialog_CallStackHeader0="Call Stack Information" +Count mtDialog_ModulesCaption=1 +mtDialog_ModulesCaption0="Modules" +Count mtDialog_ModulesHeader=1 +mtDialog_ModulesHeader0="Modules Information" +Count mtDialog_CPUCaption=1 +mtDialog_CPUCaption0="CPU" +Count mtDialog_CPUHeader=1 +mtDialog_CPUHeader0="CPU Information" +Count mtDialog_CustomDataCaption=1 +mtDialog_CustomDataCaption0="Other" +Count mtDialog_CustomDataHeader=1 +mtDialog_CustomDataHeader0="Other Information" +Count mtDialog_OKButtonCaption=1 +mtDialog_OKButtonCaption0="%26OK" +Count mtDialog_TerminateButtonCaption=1 +mtDialog_TerminateButtonCaption0="%26Terminate" +Count mtDialog_RestartButtonCaption=1 +mtDialog_RestartButtonCaption0="%26Restart" +Count mtDialog_DetailsButtonCaption=1 +mtDialog_DetailsButtonCaption0="%26Details" +Count mtDialog_SendMessage=1 +mtDialog_SendMessage0="%26Send this error via Internet" +Count mtDialog_ScreenshotMessage=1 +mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" +Count mtDialog_CopyMessage=1 +mtDialog_CopyMessage0="%26Copy to Clipboard" +Count mtDialog_SupportMessage=1 +mtDialog_SupportMessage0="Go to the Support Page" +Count mtLog_AppHeader=1 +mtLog_AppHeader0="Application" +Count mtLog_AppStartDate=1 +mtLog_AppStartDate0="Start Date" +Count mtLog_AppName=1 +mtLog_AppName0="Name/Description" +Count mtLog_AppVersionNumber=1 +mtLog_AppVersionNumber0="Version Number" +Count mtLog_AppParameters=1 +mtLog_AppParameters0="Parameters" +Count mtLog_AppCompilationDate=1 +mtLog_AppCompilationDate0="Compilation Date" +Count mtLog_ExcHeader=1 +mtLog_ExcHeader0="Exception" +Count mtLog_ExcDate=1 +mtLog_ExcDate0="Date" +Count mtLog_ExcAddress=1 +mtLog_ExcAddress0="Address" +Count mtLog_ExcModule=1 +mtLog_ExcModule0="Module" +Count mtLog_ExcType=1 +mtLog_ExcType0="Type" +Count mtLog_ExcMessage=1 +mtLog_ExcMessage0="Message" +Count mtLog_ActCtrlsHeader=1 +mtLog_ActCtrlsHeader0="Active Controls" +Count mtLog_ActCtrlsFormClass=1 +mtLog_ActCtrlsFormClass0="Form Class" +Count mtLog_ActCtrlsFormText=1 +mtLog_ActCtrlsFormText0="Form Text" +Count mtLog_ActCtrlsControlClass=1 +mtLog_ActCtrlsControlClass0="Control Class" +Count mtLog_ActCtrlsControlText=1 +mtLog_ActCtrlsControlText0="Control Text" +Count mtLog_CmpHeader=1 +mtLog_CmpHeader0="Computer" +Count mtLog_CmpName=1 +mtLog_CmpName0="Name" +Count mtLog_CmpUser=1 +mtLog_CmpUser0="User" +Count mtLog_CmpTotalMemory=1 +mtLog_CmpTotalMemory0="Total Memory" +Count mtLog_CmpFreeMemory=1 +mtLog_CmpFreeMemory0="Free Memory" +Count mtLog_CmpTotalDisk=1 +mtLog_CmpTotalDisk0="Total Disk" +Count mtLog_CmpFreeDisk=1 +mtLog_CmpFreeDisk0="Free Disk" +Count mtLog_CmpSystemUpTime=1 +mtLog_CmpSystemUpTime0="System Up Time" +Count mtLog_CmpProcessor=1 +mtLog_CmpProcessor0="Processor" +Count mtLog_CmpDisplayMode=1 +mtLog_CmpDisplayMode0="Display Mode" +Count mtLog_OSHeader=1 +mtLog_OSHeader0="Operating System" +Count mtLog_OSType=1 +mtLog_OSType0="Type" +Count mtLog_OSBuildN=1 +mtLog_OSBuildN0="Build #" +Count mtLog_OSUpdate=1 +mtLog_OSUpdate0="Update" +Count mtLog_OSLanguage=1 +mtLog_OSLanguage0="Language" +Count mtLog_NetHeader=1 +mtLog_NetHeader0="Network" +Count mtLog_NetIP=1 +mtLog_NetIP0="IP Address" +Count mtLog_NetSubmask=1 +mtLog_NetSubmask0="Submask" +Count mtLog_NetGateway=1 +mtLog_NetGateway0="Gateway" +Count mtLog_NetDNS1=1 +mtLog_NetDNS10="DNS 1" +Count mtLog_NetDNS2=1 +mtLog_NetDNS20="DNS 2" +Count mtLog_NetDHCP=1 +mtLog_NetDHCP0="DHCP" +Count mtLog_CustInfoHeader=1 +mtLog_CustInfoHeader0="Custom Information" +Count mtCallStack_Address=1 +mtCallStack_Address0="Address" +Count mtCallStack_Name=1 +mtCallStack_Name0="Module" +Count mtCallStack_Unit=1 +mtCallStack_Unit0="Unit" +Count mtCallStack_Class=1 +mtCallStack_Class0="Class" +Count mtCallStack_Procedure=1 +mtCallStack_Procedure0="Procedure/Method" +Count mtCallStack_Line=1 +mtCallStack_Line0="Line" +Count mtCallStack_MainThread=1 +mtCallStack_MainThread0="Main" +Count mtCallStack_ExceptionThread=1 +mtCallStack_ExceptionThread0="Exception Thread" +Count mtCallStack_RunningThread=1 +mtCallStack_RunningThread0="Running Thread" +Count mtCallStack_CallingThread=1 +mtCallStack_CallingThread0="Calling Thread" +Count mtCallStack_ThreadID=1 +mtCallStack_ThreadID0="ID" +Count mtCallStack_ThreadPriority=1 +mtCallStack_ThreadPriority0="Priority" +Count mtCallStack_ThreadClass=1 +mtCallStack_ThreadClass0="Class" +Count mtSendDialog_Caption=1 +mtSendDialog_Caption0="Send." +Count mtSendDialog_Message=1 +mtSendDialog_Message0="Message" +Count mtSendDialog_Resolving=1 +mtSendDialog_Resolving0="Resolving DNS..." +Count mtSendDialog_Connecting=1 +mtSendDialog_Connecting0="Connecting with server..." +Count mtSendDialog_Connected=1 +mtSendDialog_Connected0="Connected with server." +Count mtSendDialog_Sending=1 +mtSendDialog_Sending0="Sending message..." +Count mtReproduceDialog_Caption=1 +mtReproduceDialog_Caption0="Request" +Count mtReproduceDialog_Request=1 +mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" +Count mtReproduceDialog_OKButtonCaption=1 +mtReproduceDialog_OKButtonCaption0="%26OK" +Count mtModules_Handle=1 +mtModules_Handle0="Handle" +Count mtModules_Name=1 +mtModules_Name0="Name" +Count mtModules_Description=1 +mtModules_Description0="Description" +Count mtModules_Version=1 +mtModules_Version0="Version" +Count mtModules_Size=1 +mtModules_Size0="Size" +Count mtModules_LastModified=1 +mtModules_LastModified0="Modified" +Count mtModules_Path=1 +mtModules_Path0="Path" +Count mtCPU_Registers=1 +mtCPU_Registers0="Registers" +Count mtCPU_Stack=1 +mtCPU_Stack0="Stack" +Count mtCPU_MemoryDump=1 +mtCPU_MemoryDump0="Memory Dump" +Count mtSend_SuccessMsg=1 +mtSend_SuccessMsg0="The message was sent successfully." +Count mtSend_FailureMsg=1 +mtSend_FailureMsg0="Sorry, sending the message didn't work." + + diff --git a/Varela/Varela/Source/Usuarios/Usuarios.dpk b/Varela/Varela/Source/Usuarios/Usuarios.dpk new file mode 100644 index 0000000..584f8f1 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/Usuarios.dpk @@ -0,0 +1,50 @@ +package Usuarios; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'Pedidos a proveedor'} +{$IMPLICITBUILD ON} + +requires + vcl, + vcldb, + PngComponentsD10, + PNG_D10, + vclactnband, + vclx, + vcljpg, + BaseD10, + rtl, + dbrtl, + dsnap, + adortl, + JvMMD10R; + +contains + uDataModuleUsuarios in 'uDataModuleUsuarios.pas' {dmUsuarios: TDAClientDataModule}, + uUsuarios in 'uUsuarios.pas' {fUsuarios}, + uUsuario in 'uUsuario.pas' {fUsuario}, + uLoginForm in 'uLoginForm.pas' {fLoginForm}, + uCambiarPassword in 'uCambiarPassword.pas' {fCambiarPassword}; + +end. diff --git a/Varela/Varela/Source/Usuarios/Usuarios.drc b/Varela/Varela/Source/Usuarios/Usuarios.drc new file mode 100644 index 0000000..7642ac9 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/Usuarios.drc @@ -0,0 +1,14 @@ +/* VER180 + Generated by the Borland Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + diff --git a/Varela/Varela/Source/Usuarios/Usuarios.identcache b/Varela/Varela/Source/Usuarios/Usuarios.identcache new file mode 100644 index 0000000000000000000000000000000000000000..d414da54e5d85de1e8a01197546ffcc97d461e35 GIT binary patch literal 631 zcmcJLF%H5o3`MhWkDP!5Fw%;NN|h>@yqG4cf|3~7j(Ytf6c{Qo#`FLGJ^5gaiQNf$ znoIIo#bS1L@~R;(0yinhfnW$?U5${ynK*uOT3jGIGClpQ0(WE|5hf};`)^sG)S2T8 y<<0xu+8o@Y;y|uMUlnBUpv@gROpky(qR2|@_5!)Nz?GJeFT`n&PR-H(zPx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp edtPassword.Text then + raise Exception.Create('Por favor, introduzca la MISMA contraseña en los dos campos') + else + ModalResult := mrOK; +end; + +end. diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm new file mode 100644 index 0000000..5c031b4 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm @@ -0,0 +1,132 @@ +object dmUsuarios: TdmUsuarios + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 340 + Width = 423 + object ROLoginService: TRORemoteService + Message = dmBase.ROMessage + Channel = dmBase.ROChannel + ServiceName = 'srvLogin' + Left = 56 + Top = 40 + end + object tbl_Usuarios: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datString + Size = 8 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = True + Calculated = False + ServerCalculated = False + Lookup = False + LookupCache = False + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = DARemoteDataAdapter + ReadOnly = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Usuarios' + IndexDefs = <> + Left = 176 + Top = 40 + end + object ds_Usuarios: TDADataSource + DataSet = tbl_Usuarios.Dataset + DataTable = tbl_Usuarios + Left = 280 + Top = 40 + end + object DARemoteDataAdapter: TDARemoteDataAdapter + GetSchemaCall.RemoteService = ROLoginService + GetSchemaCall.MethodName = 'GetSchemaAsXML' + GetSchemaCall.Params = < + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetSchemaCall.Default = False + GetSchemaCall.IncomingSchemaParameter = 'Result' + GetSchemaCall.OutgoingFilterParameter = 'aFilter' + GetDataCall.RemoteService = ROLoginService + GetDataCall.MethodName = 'GetDatasetData' + GetDataCall.Params = < + item + Name = 'DatasetName' + DataType = rtString + Flag = fIn + end + item + Name = 'Params' + DataType = rtString + Flag = fIn + end + item + Name = 'IncludeSchema' + DataType = rtBoolean + Flag = fIn + end + item + Name = 'MaxRecords' + DataType = rtInteger + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + GetDataCall.Default = False + GetDataCall.OutgoingTableNamesParameter = 'DatasetName' + GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' + GetDataCall.IncomingDataParameter = 'Result' + GetDataCall.OutgoingParamsParameter = 'Params' + GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' + GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' + UpdateDataCall.RemoteService = ROLoginService + UpdateDataCall.MethodName = 'UpdateData' + UpdateDataCall.Params = < + item + Name = 'Delta' + DataType = rtBinary + Flag = fIn + end + item + Name = 'Result' + DataType = rtBinary + Flag = fResult + end> + UpdateDataCall.Default = False + UpdateDataCall.OutgoingDeltaParameter = 'Delta' + UpdateDataCall.IncomingDeltaParameter = 'Result' + GetScriptsCall.RemoteService = ROLoginService + GetScriptsCall.MethodName = 'GetDatasetScripts' + GetScriptsCall.Params = < + item + Name = 'DatasetNames' + DataType = rtString + Flag = fIn + end + item + Name = 'Result' + DataType = rtString + Flag = fResult + end> + GetScriptsCall.Default = False + GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' + GetScriptsCall.IncomingScriptParameter = 'Result' + RemoteService = ROLoginService + DataStreamer = dmBase.DABINAdapter + FailureBehavior = fbBoth + Left = 56 + Top = 104 + end +end diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas new file mode 100644 index 0000000..57e1667 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas @@ -0,0 +1,117 @@ +unit uDataModuleUsuarios; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, + VARELA_Intf, uDARemoteDataAdapter, uDAInterfaces; + +const + ROL_ADMIN = 'Administrador'; + +type + TdmUsuarios = class(TDAClientDataModule) + ROLoginService: TRORemoteService; + tbl_Usuarios: TDACDSDataTable; + ds_Usuarios: TDADataSource; + DARemoteDataAdapter: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DAClientDataModuleDestroy(Sender: TObject); + private + FLoginInfo: TLoginInfo; + function CambiarPassword (const APassword : String) : boolean; overload; + + public + function Login: Boolean; overload; + function Login(Usuario: String; Password: String): Boolean; overload; + procedure Logout; + procedure CambiarPassword; overload; + function EsAdmin : Boolean; + property LoginInfo: TLoginInfo read FLoginInfo write FLoginInfo; + end; + +var + dmUsuarios: TdmUsuarios; + +implementation + +{$R *.DFM} + +uses + Forms, Controls, uDataTableUtils, uDataModuleBase, uLoginForm, + uCambiarPassword, Dialogs, Windows; + +{ TDAClientDataModule1 } + +procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject); +begin + ROLoginService.Channel := dmBase.Channel; + ROLoginService.Message := dmBase.Message; + + // *********************** PENDIENTE ADAPTAR + // Adapter := dmBase.Adapter; +end; + +function TdmUsuarios.Login: Boolean; +begin + with TfLoginForm.Create(NIL) do + try + if Assigned(FLoginInfo) then + edtUser.Text := FLoginInfo.UserID; + Result := (ShowModal = mrOK) + finally + Free; + end; +end; + +function TdmUsuarios.Login(Usuario: String; Password: String): Boolean; +begin + Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo); +end; + +procedure TdmUsuarios.Logout; +begin + (ROLoginService as IsrvLogin).Logout; +end; + +procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject); +begin + FreeAndNIL(FLoginInfo); +end; + +function TdmUsuarios.EsAdmin: Boolean; +begin + Result := False; + if LoginInfo.Roles.Count > 0 then + Result := (Pos(ROL_ADMIN, LoginInfo.Roles.Items[0]) > 0); +end; + +procedure TdmUsuarios.CambiarPassword; +begin + with TfCambiarPassword.Create(NIL) do + try + if ShowModal = mrOk then + if CambiarPassword(edtPassword.Text) then + Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK); + finally + Free; + end; +end; + +function TdmUsuarios.CambiarPassword(const APassword: String): boolean; +begin + Result := False; + if not (ROLoginService as IsrvLogin).SetUserPassword(LoginInfo.UserID, APassword) then + raise Exception.Create('Error en el servidor. No se ha podido cambiar la contraseña'); + Result := True; +end; + +initialization + dmUsuarios := TdmUsuarios.Create(nil); + +finalization + FreeAndNil(dmUsuarios); + +end. diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.ddp b/Varela/Varela/Source/Usuarios/uLoginForm.ddp new file mode 100644 index 0000000000000000000000000000000000000000..4370276c196a7fa73d6f8917622cba1c4e033dee GIT binary patch literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 literal 0 HcmV?d00001 diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.dfm b/Varela/Varela/Source/Usuarios/uLoginForm.dfm new file mode 100644 index 0000000..049b239 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uLoginForm.dfm @@ -0,0 +1,784 @@ +object fLoginForm: TfLoginForm + Left = 790 + Top = 387 + ActiveControl = edtUser + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de puntos de venta' + ClientHeight = 241 + ClientWidth = 385 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label3: TLabel + Left = 24 + Top = 108 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label4: TLabel + Left = 24 + Top = 138 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object Label1: TLabel + Left = 16 + Top = 72 + Width = 94 + Height = 13 + Caption = 'Inicio de sesi'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clMenuHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 385 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alTop + BevelOuter = bvNone + Color = clWhite + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alClient + Picture.Data = { + 0B544A76474946496D616765E84E0000474946383961C201FA00F70000FFFFFF + BD810BE3CEAFE8E8E8B59167AE6606D2D1D1C4930FD3AB37C59410C28D0ECA96 + 34B26C088D4205D6AE6AB48658D6AD51CCC3B7C0880CB97C0BBAA78FCDA616E2 + C670A55405E6D08BB9790A904205C69550A14C03C6BBAAB47109AD7A4B8A4207 + A95E06F8F3EAB16B07E7D6C4C89A12BE820CDADADBD5D5D5C28E10CEC9C29443 + 04BE840CCBA014B77609B06908964203B57209AD6406B26E08A04903BF830BF1 + E8DAB7761AC69811C99D13B8770AC99F14A85B05A75A17D1CEC89C4504AB6007 + B7780AA96327A35105A35003F3F3F2964303AC6608A45204A24D04F2ECE4C18A + 0CECE2D4984403BD8735AE6707A65805B6750A9842038641089B4403C28A0EB6 + 7508FCF9F4D9BA9EB6730AC5A8869D48039A561CE0C59AA66A33B87924B06C08 + C69A70F2E8C7BC7E0B874107B574099C4402AC6206EEDFB7AD6419B77E3FDAB9 + 88AF6807D3D0CDC0B29E9D6430995C26CBA215FAF6F0EDDFC9904203D1A984C1 + AE939A4C0CFDFCFAB5720AFAF9F8954E13CCA51AD5D4D2AD640FA67040994304 + B16E1CCBA415C4900FB36F09934A0CD3D2D2BE82178C4509FEFEFDAA5D0FCA9E + 1BC0860CF7F0DBB99C788D4911A4510AC79610A35E22C18B0CAF6B28924304FC + FAF8B7760BAC6307AE6406944403C08A0E914609FFFEFEDCBC54934403C0870F + B77208DDBB66B46D05B36503A85503D6D6D7FCFBFBCFA824CEA819D9D8D7C48A + 22BD7E1B8B4105D2D2D3CEAA17A54D01E0C383D7D6D5B97A0EFEFDFCB27138AB + 5E05D0D0D0A55002C79516FEFEFEA04602DDDDDEA04A03D7D7D8B5720CD4D3D3 + FFFFFEBA7E0BB5740ABA7306AF64098E470CB0690DCECDCDA04E0BC89B16B16F + 09AF702D9B5012A55604BDA281B57609BD7F0FB46F0D8F4506CA95229B4201B6 + 7008C69117984708954806F7F7F6D4D4D5EEEEEDA34A01C38E0FC4B18FB7740F + B36F12B4700BB5760AA95909B36F0EA24E02B06505E2E2E3A8580FB36D09D0AE + 92B7710AC49212C38C19CF9E26B46A0EBF890DA35403CFCFD1BB7912D9D9D98A + 4306B57207EAD8A0C3871292511AA25214AA5805AA5C03AC5903AF60042C0000 + 0000C201FA000008FF005355182890E0C00A05111E4CC870E1C2571021128CD8 + 90202A0B6844D002C0B1A3C78F20438A1C49B2A4C9932853AA5CC9B2A5CB9730 + 63CA9C49B326498502732AACC047A74F9C3B05FDF42988E7509CA95E79C227E6 + 8ACDA750A34A9D4AB5AAD5AB5867F2292A686B85AE5C0571F50AF62BD9AD62CF + 8E15CBD6EC5AB3A83C611491B5AEDDBB78F3EADDCB17001F9E80FF0A161BB8B0 + E0C05E0F2BFE4A78B162547131D0ED4BB9B2E5CB9833433DC8B9B3E7CFA0438B + EEFCF71506319A53AB5ECDBA35DED1B063CB0E8DC04223D7B873EBDECD3BE4EC + DFC047A7F2842651B0DEC8932B5F6E7720E1CE4565473F385DF4F4EB5F072A45 + 73050FF3EFE0C38BFF5729288E79C64517C559849E6D58AEE6CB9B8FB38370DB + B63BE214CD0F3F7E1C3E4B8970C571E31568E081CAE9A71F575FC5D1427C4529 + 58411CD945E81F1FF33146E17DE76568218571A082C069726C84E08928A698D9 + 7CF3C9A7A07F2CC2C8E283EAC5C8A28B2DE467638B7120B09418DEA928E49044 + 62F59E7BED71B861791332B9645B204ED8607C49BAD79527A73955E4965C7609 + 9395EE2D68E58B0BD25726846CED28C8830A8269655CF84CE6E59C74D6F9D18E + 78E6A9E79E2DF4B9A7797C40804F2389D869E8A15BF6A9E8A28CFAD9E8A39046 + DAE70E90CED7426D4D158AE8A69C1A28E9A39446BAC3A8A0925AAAA98A5A5A1B + 779A76EAEAABC929FF3A6A0E39EE406B0EA6927AABAEB58E3A6B0BB8FA2AACAD + C00E4B29ADB9C20924ACCC368B9BB1BF1EDB2BA9B3425BEDB5BEE28A6CB1C3F6 + 5AEB3B72892187B3E4968B99AEC3EE8A2CBAD8AE1B6CB6F06ACBADB0F3E6606F + 1CE00E8A47ABE6F6EB6F56CAE45002B1F6DA5B82BD3B1C1CF0C1BB06AC8CAD05 + 0F1C70C1C56A6B2BC1C0029BC3C402CF3A221A25FE2BF2C853096CB2C0252873 + 30C32697E0B2C12B0BACF2CB289F0CF3C431172C33CD05C3D9081E04922CF4D0 + 2FE96CB0CD46B78CB4D2391BDD74D247B36CEF229EC4F273D04467AD75492FBB + EC320E2EABBCF3CC607F2D76D961A78C43C168978DF2CA5D7BDDB632AB5EC1EF + D678E70D40CA5ECFFFCC37D37EFBFDB6D870171E78DF2B1F9EB6CB3EEAABF7E3 + 789700F6E4924BAE72E0944FAE0C0E9B57AE76E799571EFAC1A187BE08A68442 + AEFAD05EB7EEFAEBB0C72EFBECB4BFFC8E2818D8A0E5EABCFB5BFBEFC0075FFB + 22EF60346EEFC8972BFCF2CC07AFCCE918DC96FCF4CC366FFDF5B1A3220A6AD4 + 77DFE9EB93E310090E68BB3C7EEB608F5F7E09E74B2EBEDCF0932FBFE8F24722 + 7A09547317A4F7FCD72977020970DFF812403EF405D0650988040109D8BE48E4 + 8280604B60F820584006BA2F82E2AB1FF9E846A2FE79704EEAC3010571F04005 + 6A3081EA53E00345C842074A907C2624DF08E547C11026608503249FCFEEF6C1 + 1EA62801ED002010FF8598400006D1880A8CC4119308C003105181404CE21187 + 684421B6438A006462249C98C05CDCAE293E0CA38A6EB8C01516F18166442319 + 4BB840008A50856B24A308D358C638BE918C002C612E96723C31FAD1404C24A2 + 200749C82C16F1899180220A034948461632010BC89D89FE4849F034F2919844 + E12013A9484D663291994C80F632C2C34A9A72379B3C642857C9CA560E921A08 + 10C51C7677CA5AEA46958674A5100F30C55DF6B295EDE02226490801C9D8F298 + B9D9E50184B9CC6512B199CBEC6433A138882D423389CB1CC433A7A94D683A33 + 8BCE54E00116100B3158026BC84C276694C9CC66266010C1F4E60122A1CD045C + 739EF22C6234B739FF4D790AD39EF34CE001F2F533751A143307D066379BA950 + 7F3A549E0D756844A1F9CE8A66B3A21375622E6209B2521EF4A376E1E620DC59 + CD4198F4A423CDA649B3A9D293D2D39F2B65284A4DFA4E9A5653A60C4D00358A + D9085A82F4A77599A950871A53A20E159A46256A4D156A4FA2B6831A4B69C424 + 814A55AB78E3AA58CDAA564F7A55AE6AF5AB5D152A58C17A546FA034ABEDF898 + 4FABCA56A8A4E0AD0A88EB5B532057BA2A00AB71C56B5C1530D7BDFA15AC7E0D + 6C60BB8AD541BC35AB7C85EB3B1C10A7B63A362A7DADAB5DE1CA57BF4656B282 + 4D6C0AAE4AD9CC06F6B09C9D6B64FBBAD172DAEDB1A89DC9652DBB5ACF6AD6B5 + 9AB52B6C593BD9CEFFBE36050B8040177497DADEBE24B0835040703D3B5CE0CE + 96B8C2DD6B708B7B5CCF5E630101F2AD745712D849CCD6BA82C56E73FDAA5DEE + 6E17B6B88DC51CF637DDF28E44BBD6AD827ABD915CF506D6BD7B55AF7AAD4B5F + 05D437BDF0B5AF7CAB60DF14ECF7BFF98D6B7DDDAB0C41A5CEBC08068902E4AB + 0009C897BE0CB66F5CDD0B60FE4EA20A1290707D1DBC5FFC32B80A9B78701526 + 018AFD4A58C0FA552F6E4541CA04BB982317562F87D5BB894DF897C621966F8D + 2B6C5D07DF57BF33B6B0892791821CD7F8C8FBCDF18825CCE06B20600D607C71 + 8231BC04094C221E55AE423C267161092C81CB5876F0961DEC653267B9CC5416 + F324CCCCE6345319FFCC93087199AF7CE63A93190102E8A394CBDB650C5B99CB + 4BF832A0035D672E1BFAD0184EF4A1C9CCE544FB58029066749F036DE844075A + D28826E7B2F6CC673263D8D097F632A19760E9439BDAD37F6EB48FD7ECE83543 + 5AD1AC16B5A1CD4CEA552F7AA759E2F4746BED6751877AD47506F6A81DDDEB60 + 6318148CA84295234D655E03DBD2C11E760ADE6160F2EAFAB191CEB6B6B30D8A + 6D7BFBDBE00EB7B8C71DE94D50C30173D0F3B51D4B6E486F0214DD6EB7BCE74D + EF6C23C0B4EB462DB819C1EF6D838205F10638A401CE086DF79BDB0497C0C1F9 + 5D706D233BDEDE3EB8C2FF0D7150B80302B1B041BEB11D0F09C483E10507450D + 18EEF19277FCE425FF17793EFADDF17FA3FCE5FC1E79CCBBFD729383DCE42C58 + 39BF5D6E720998DB0179B6F6C641CA0213181DE445AF81D26BC002A59B80E22C + 88FABFA3BEF49147DD04518F3A2300CE7546283DE635C03A0BB62E75809BA0EA + 64A77ACC8D8E75B66F1D140B584346D039F483567DE4780F3B28CEEEF4AF7BDD + 045EFF3ADE035FF5A7F3DDEB8447FCDDF59E77A78B1CED83CFFBD3F18E6B2608 + BDEEEA347AD8CF1EF8AB8B9DED4BA73AE4EF9EF5AC479EE945FF7BE94DEF74A3 + AF3EEB7FE77BD867AFF4432C80B14AF028E66D69827C9C5DF64CFF3DD57B1FFA + A6177FF1AF277DD47D1FF6D71BDFE9F9703EEA7B0F78EADF1D140860EC8177AF + CEA2BB1EF59EF7BEFFF3456F8200645DF3C167BBFAC5FEFAF58BBEF9ECF7BCD1 + CD5FFCF047DDF60EC808F70DBAFE1A987FFD01F07FDE777601E07A01A87E01E0 + 7FFE17800CC8800058740D58809A677EF2377F11A88058677E12C8768780005D + 7035FB874C00E88016D8806C978027B881D110800B18812498822E78829BB77E + E5D7800A1883087808BA65039717827FE4820CD882E5578309788030D8822C08 + 844648844A888417A88450D88287B00A10906753E5839404855AE88263B085C2 + B08560188662D880877008E8A66E58E84701F88563188163D0855B08876D1800 + 72488772F88575388774484EDC9186951400C210888008886F38886FF885C250 + 8888288888F8868EFF38068198888A68875D888876D888957889801889967888 + 86388978F888EE404E1AE7877F148813008991988A9C3801ABA88A89E88AAD38 + 06A9588B13508BB0488BB01888B4C889B9288BC2808B91D88BC3C88ABE588BD1 + 200C17D787A62846A8088CC19801A89801B7F88CB2788BD41888D4888DB7D88D + DCA88DD5188CDC888DC1B88AC03801DB688DD2088EE1188DDD488DD1B0015026 + 029DD08C3ED48DB4788BF9688BDEC88FFBF88FF8D88FFA1890032990005990FC + E88DFBA890043901D140855D1065F6E841DE288EDD288EDBF88E02A9911BC991 + 1B9901B3208DAE28921D898ED5388E1A99911B1992C2E0040EF081573891D4D3 + 8F16598E2AE99125FF999325998E17B991C2A09216A99302B98DB6270A022027 + 32D93D219901D4D894E8C8945009925109952169925069955879954EC9943A90 + 015D09925F599552199556E99562F9945B99954C3901B3E00471C78C49493D5D + F9955339973AA003B3609773B99451D9954130955079978069967B5998814998 + 3AF0975C99977D19957FF99819F097820992ACB0015D304B71493D5E19987729 + 9841D0997A299876C999A0499AA0599A73B999A93999A1D999AAF999931999A7 + 399B9D697B72B756990939B4099A41009B9DD99BBEF998BF199979B99BC6799C + B3099CBE7997BD299BBF199CBDB99BACB000BBD583B989372EE002C0999DDCD9 + 9BDCF99DDDE99DDAFF1904E0999DE4499EE5999EE3899EDFE99DE2999E56D09E + EFA903C4A09EE6E902876099E3759DAB639FFEF99F001AA002AA9EEC39A0E579 + 09D3997131C99F5A139FE0190551909E106AA0DF39A1DC69A1FF09A11A1A050E + FA9D56D0A11DBAA1171AA1EAA9A12E1005F4B00102A00496C0A07A63051BCAA1 + 1FAAA1200AA31EFAA1334AA338AAA3109AA33D5AA3DC89A3420AA31B1A9FF189 + A13A4AA4187AA23BFAA35140852BEAA279C30A2E6005A1F0A34AFAA1D939A337 + DAA4589AA544EAA3321AA4353AA44A8AA5274AA2692AA3675AA15E3AA397E004 + 61B0A2BA27A5FEE204AC400CE0900565500659F0A77FDAA7304A0C7C6A05C4C0 + A17E1AA87DBAA88CFF0AA87C9AA880BAA85140A882EAA896BAA8803A0CC3F0A1 + 967AA990FAA71FDAA88AFAA737B001F9A711764A348E80A73A100AF700A87990 + 073110031E10037F2AABB67A0FB31AABB83AAB8C5A06B69A05B11A039FFAA8C1 + 9A05B31A03BCDAA97DBAABBC9AACD0FAACC9FAA7CADAABD09A05BACAAB797003 + 0B204B6898AAFED201DFB0014E000EA1600D5620ACB8DAA7D24AACCE6AADBF1A + ACC35AACCDFA0BD43AABC310ABCC0AACD53AACD0FAAED78AACCAFAAFB31A0A56 + D0AFB25AAA507605F508AE22E3031DE000E4FA0B79A0AB1E70B1189BB11A9BB1 + 04FBAF18DBB1B45AABD0FAB11DABB123BBB1241BB2282BB2B3AAB10A2B2E75EA + B0AFD207103BAEABFFE0952ABBB23A0BB239CBB12D7BB1270BB4C03AB43DCBB2 + 45ABB32B9BAC1B3B0CACF092BC25B3FD620A28E0031130AE4E400CA170B448BB + B55B4B085CFBB5600BB6CBB0B1E0F00561B05BB809B5AFB20DF5200B7D10011D + B0AAE0000E1E600D84600D757BB71A8BB7176BB78470B780FBB778EBB779EBB5 + 7D9BB17F6BB82BEBB7899BB18C3BB87AEBB87A6BB77C7BB1893BB8184B084D0B + 936A4B2EAE800228D0076F6BB337200D60A00EA7AB0EAA9BB884B0BA7FABBA33 + 3003AAABBAA93BBBB53B03CB90B8EAF0B7B1EBBAACABBBEA10BBBDCBBABD3BBB + 33D0BABBFBBAB3BBBCC94B080CC0BC7FBB0C33500E2E799469DBB9886208DABB + 0D27A00A55BB010BFFC00AD6D0BBCBC0BCE60BBBB24BBBCB50BB6050BEB0BB0C + F7A0BCC19BBEE7BBBCC24BBFE86BBFE90BBCF5AB0EEB7BBEB80B06E0E0046B40 + 028DD0B0D8EB2ADA0B0CAE200BA6F0B66EE0080B400FD6300A8470BA6020BC18 + 8CBA1C8CC1F7DBC1BD7BBAF73BC233B0C1B1BBC11E7CBF265CC21C7CC22DFCC1 + 28DCC1202CBBA7BB0C6D59C0DF9AC086720BAED0C386800227500F2A80058EF0 + 0037700FBBCB000C20BC0C00064D5C0EED0B0650BCC41A0CC5EBCBC4541CBB59 + ACC423D0C44B6CC552ACC4593CBD4E2CC60C3002503C0362CCC4F76BC667ECC5 + 5D5CC625BCBECFABB0E916B33ACC2506700B7B7C0B86500FBCA00A10FB0C1B70 + 03A330022390C1B1FFFB0260700C0CC0C818DCC830DCC4F3ABC66EBCC58ECCC8 + 4BECC499BCC61AECC68EECC496ECC66DECC68C9CC98DBCC4942CC63740C02440 + 8F799CBDAEC0C386E00A866000AEE00B6D10015AB001E1A00E877CC9C23CCC62 + 0C06C12CC6A340CCC39CCC979CCCCC7CC9882CCCCECC00CFACCC878CC6A57A99 + 2113CB76A20A7D6C00E07C0BDBE00BF530C81B90A7A3300A2FC0006C30022FF0 + 02EDECCEEF8CC82FE0CE887CCFF43CCFF58CCFEE7C0EFB0CC9F23CCFF6BCCFFC + 4CCFF28CC8FE1CCF600006FC9CD0F7CC062F700EF80CCFFFFC05FA79BDDC4C24 + E8500FB8CCC706A0BD28E00BB2E0032AF00D10C00AE0200DF03002C7C0C82F70 + 0CF4DCD2880C0602FF3DD1F04CD30CCDCFEFACD0FB8CD33DCDC8057DCF381DCF + F00CD3EE4CD313CD0646CDD2353D024ABDCFC7700C16ADCD789CD127C20DBC50 + 0FC0B0C7E0FCD1DB600A6E5BD28EA0065F100E67ECD42F500CF45C0CFBCCD6F1 + 9CD4690DCF054DD1880CD1751DD788ECD6419DD7748DD66AEDCE6C8DCF10FDD7 + 23A0D7F78CD785FDD2168DC356ED25DAC00DE8C00B7DC0D51F6D08DB8002AAD0 + 06252DB14E500E470DD16C40D3118DD66C50DAF0CC064F60DAA00D064F70D3A9 + 1DDAAB5DDAE70006107D0EA87DD3A08DDA6C60DBAD0DDB11ADDBB35DDBAA4DDB + BFDDDBAC5DDAC70DDBBBADD4168D059657D58D3D1EBAA0074510D993EDD15CBD + 0D6E5BB304E004E1FF000FA440DABAEDCE105D00A66DDE0510D12F80DE6C90DE + A5EDDEE7DDDEF2CDDEB95DDEF3ADDAA57DDFECEDDEA7FDDEF80DDF003EDFAD8C + 05E916DD5BA20BDA500403C00428700BF380CB5E0DBA6D40B56EB00185AC0E75 + 8DDA4F500023D0DB05F004B4FD0422FECFA92DE2BE5DDA208EE2ED2DE22C9EE2 + A81DE21B8EE2C90DE326BEE2235EE26090DEAD5DE2AF1DE32F5EE28A7DD1065E + 24D3ADE0BC000CD86DCB86D007A10BC145FC05D2400AED5D0054CEE255DEE2A9 + 6DDE586EE247B0E553BEE5C560E356FEE11A9EDA5DCEE2F33DE6562EE561BEE5 + 577E04BA6DE2ADBC069839E429D247A7A00D03800E28B0D5958DCB6CAB0AAAA0 + 021D40C85F000FE7FF40E557BEE105500C1FBEE5901EE98AEEE5BCDDE28B1EE9 + B62DE68AEEE83ABEDB2CEEE88C1EE9223EE7756EE708D2531D710A46AED55D0D + CEAEF0D1A04BB5847C0399A0E8B67EEBB89EEBBABEEB9920E2BBBEEB58AEEBC1 + FEEBB7FE04C7100E4E1091FB62EA073228BBA3EA7BAE0A86300F1E5DCB06600A + 224DB5BDFC052320E5B57EEB472003325000475000E25EEE8A2EEEEA5EEEE53E + EEB81EEEDF4EEEE26EEBEA7EEEE47EEFB79E09992003E88EEBF34EE5ECBEEBE5 + 9ECD4CD0A2CC5E2016701A221024790ED9B2E00A0FCEC31FDD070EDCE062CD0C + E09DE8FEEEEEE6CEF1545EEF1CFFEFFE1EEF1D4FEFF54EECFAEEF1B72EF2C4BE + E95F40C0E986C007FFFF1D4A711ABA5328D30DD927B00DB7D00610DE0786000C + A6500F27E003E34AD6C7A0EFFB0EF24CDFF44D9FEE4E1FF552AFEF50CFEF549E + F2275F00582FF5EEFE04D95CEA33CF1CA8A0141630282692F303500FB7800C7C + FCEAAF7ED927D0072AE006CFE0045F500C99700699800979BFF798F0F7800FF8 + 4E0FF800FFF7E2FEF77A7F06816FF820BFF87C4FF587FFF78A9EF78C3FEE47A0 + F78E5FF97F8FEE47D0DCCF1DF6CC9114648F061289070AAE0AB3DCD5D87DD914 + 5FB504A0068190F43280F9992FF8F5CEF78A8FF87ECFF780BFF7BB1FF87D1FF9 + B52FFC7DCFFBE13EFBBE9FFBB50FFC8ADFF996C904390CFAB911117181259902 + 009D700ADC3000BCFFB00DD47E0BD80D0CC0A0DD355BC4CC500CFF7006CABFFC + ECDFFEEEFFFEF01FFF8E9F06533D077A20FDC9111110E123A701108DE4740290 + 481B375E288019B8C5D0D0C33EA664B58980E5D90666F0FE9D01820908478F67 + 308D2439B2E3C7932051864CD932A44995314BBAEC089366CC964056FAF9B2A1 + 0B932B00840E255AD4E851A449952E65DAD4E953A851A54EA55AD5EA55AC4C5F + 6D7D95AA42855716308811114CA8B601BC78C97285ACA12B03AEB6995225CB47 + 042D1BBE043AA25327479D2501EBB4F597B0DFC2218084183C1848E19A8625AF + C474A6B0ADC68B15FB05BC19F167943ABF385933276856D4A955AF66DDDAF56B + D84F2B78A53DFB95FFA7B17284EA3A981685AB5BAE0CC13530DCD0B6BBDF1C39 + 61E6C723689C80311FFE08F98CE7D0D3634E7F6C38A448C2D2FD32AE8E98A365 + E82919170BE4040B133DB462CFA75FDFFE7DFCF90178FDDA7F362ADCC418400F + A1F0408B17530C3180A1051704C6141428B2E31935C2F9E71F5B420821C3C534 + DB50C30F35CC504410470CF14413432087440DAFD3B04314415471C6126B6411 + 440F350CE4813548D04D3F208314724822639BEDC80AF8F88A8FDB2CC0478C2B + E403408F01D0A9AB41B886DB06857A0C51A1030A2DECEEC3F33ECCF04C33D344 + 73CD34AF0382071233BCEECC8FD43413CE157960734FC5FAE490BC40D4E85104 + 3C8A34F450441345FFB4B6FEE2E82F15043C799250A14EE166801364C1B24160 + 7C39A18F36C074221045FEE9E7461353B5314654655C911C555B95F5555951A4 + B54FCD6C39468D3A0410E1148214157658628BC5CA3F24914CC59300AF2874CA + 4B4F3024B8E1B29C0B055023B0E381632E4C53C6174F05574634E31CF7DC1B65 + CC115D76DB6D11DC5D1D20815263EBB5F7DE7B91D5B7BF571070B291D34E2902 + 53141A9AA7C186E2AA47151528F8809934CEE8C71672E03CD7627429EE07E313 + DDDD906310416EB762912F1E97A75E9538055F965B7659487D05E143107D11F0 + 171F801329E8406090F121E1E25C71C597892270C39107020162621E7838F5E9 + A69D0E21EA109EAEFFBAE97E368E5A6AADB78EFA54ACA76EFA6A38ADA61A6CAF + CBFEBA6AB1D31E1B1E351CF035D897EBB6FBEED41AFD4A90381CADC05147F960 + 5294B11AB144284B106AABC1060D890818BB3A403A90346C89DA1FB7316F5A73 + 1E38E77CEBCF33BF7CF4CD49EFDC6DD443479D9C5D533E1C6FD863977DA9FEF8 + EEDBF63870AF4066002D4003A84A11F2058569DB882B2EB94E60A28F08280843 + 8D40AEDEB86B459CE6A1FAE9ADCFBEFAA6B1BF3E6AEEBFDFD87BEFB3DF5EFBAF + D3EF1E7DACC14F3F8D5AE456E2D9D9EBB71FEFDD6DDFA1EF38F6EFDB7FBEC92C + 524F0A5811D09110E21C0F2EAE00461F92E3880F0482643C986005A366C1A661 + 908217E460063BB8FF410F86108423D460093F48893008400972D0D9FD5CF842 + 7BF1EF7680E3DBDF6A98BBC0310B03681081503A41255ED4A360B7A0D643E632 + 1115B8210C0FF8821FBAA63528A00E8A518B62D3AAD83E1E40E18956A4E2D6A6 + C8453066B18B56ECDA18B358461EF8216E5DB001FD60F846381A4A8633A4230E + E9C8A49B89808500E8CD097A06B4E1A040900EEC801608A086CA95E27451BCE2 + 1531C7483142D29162F45C242D593A495A329399E4DC264FC74528F881121BC0 + 821806124754A6323F73FC5B2B01E74A58C6810F37234BA17431B0B5004341C4 + 71451FB6B1308A48CE0969F8A218C3D8C84B1A737A903C663291D94C68F6A393 + 9A34663551F89E3DFFAA529BDB6C4D1C5AC0BF1608429CDF1CE71CFBF64D5936 + 490C8DD80D2E55018C043E0418DBF005A8BE44802FF8C31650E06716F9090567 + F0E39FFF7406144A015081FEF3A0504868410FEAD08102D4A0FC6CE840FD59D0 + 813E74A2FCD4E84213CA518932320469D8C03AE6F0236EA654A5553127CD6CB7 + BBBED9D09C7DEBDD3AF1A00BDE70031D7E6C03B58413972DA9C2071D3824C4FC + C18F823A43A9FD8C6252258A513142B5A94FA5AA5393CA8380F213AA56AD6A48 + B1DA556744B5AAE40828494B2302BAAD54AD6B4D0A3ABDE9D616A033AEE0742B + FFF8B0084FF8CE943A13183A7CC1908624CC10F3EC431FBEF40C0230A318477D + E852B9AA54C83ED5FFB100856C652D3B59AB2EB5B1977D2C65935A59CF8616AA + A3ACC3BCA4C456D4A636AEAB656D6B5DFBDA16F021AF93D205006861C013B8A2 + A744844B1F86D3877AC8420576C0C831184B56A59243AB17606E73934BD97468 + 351DCDBD00642F8004E696E20200552E14980BD9EE7E57A9D4EDAE33CA5BDDF1 + 7E57B9CFF52E75B7AB08D2CEA187A9A5EF5A5F9B83D7EE40BFB06D410EF40B20 + 0CF8400996D0854130352D642C8838B700C609D0215C373C83398A80022EAE3B + 51675C001748C06E7321B161244062BBE90D312EACCBE10F5717C3E275C64359 + 0CE20B7494B21EDEF076B55BDD877EB8C3CCC56E0F78458222B4B0BE43D6A67E + 8DBC5FD71E59C947FF5EED0E5071B346888016BC1940977A2A1C2C17A73886A0 + C83712AB0867C8E3C6D4153373CB7C81339379CCD45DB37BDD9B5E35BB39CE68 + 6E6E9AEB9CE1EBDEB8071B28AD9489FC6754F657D0F8F5EF0E5A4B68411B79D0 + FDDD81329E2C16B2542A2DDB30805B80B6A03EF8C217123A242514518A1BCB83 + CEF240B1A8E5A163EC9A7AD41AC62E2490200F53971AD6293EF58655DD6A0E8F + 1AD5D75D35AC538D6652939AB93AAEAE107E5C0440271B868636346B91CC5F45 + B7D6C8A968120F83724B4C6D83889706060A8667D80E50002369E0873F9A7B63 + 2494A2C3EAE6F5BACF8DDD74C33BD4EC468233D62D6F37A7FBDD793EF7BEF5DD + EE3CE39B1C3E2EADFF124EAB6C84C38ED1882EF4A219DE024533DCC8FE5D042D + 7F35A5B4FC15610A76050AB66197E611E00FE40678ADDB8DE257A79CCEAF8604 + AA833D84535FF7D4B9E670885F2DEA56A738E528B630BC65FE6A98A73CD8250E + 31AB43ECE314CE2FE14BBF5B0E9CEE70A8337C110FA77A0B2A0E811D9EE620BC + 782743B214B42D45485BCF4B03128830849AFB1CEDF1E6F510AE1B66522361ED + 6DBF0024E2EE769F8B39E8D7957B87E1DDF7B9FBDCE77647FBDCF15E779A5FA0 + 075F483AD31DEFB21C28C3E94F9F7C7F293F79CC575EF3945746091CED3B81E0 + E11468F99482DEC2A98EB72189109420AB832E8F21E002E6AF4782EC612D0F22 + C0DEF63B7F7DEC85FF0E745B035DEE4387BDDC774FFCDFEB7EF6B69EFDD0435C + 8B14B6F1F1D3AF17A1735082EB675EFBDBE7FEE4B1EF687F6140BE7C4D8B2AFA + 40C4E30D761B85F50132C2CD4445900317B810B1D98770FF21E41ED6F7873511 + CE8EFF59BB80FCF33F0204B6DCB33F983BB5FBF33F03FCBFFC633960AB3FDC23 + 40FC5BC0FF3340DC1B82C57B002C903EEAFB4045E9BCEBEBBC12C0BEEECB3EED + C33E132441CF2B4165588477C8AB753A9C8340877A589CE0D832A13185130815 + 43528337903F5CA040FCF3BF0A1C40073C4224A440D823C0FF833DD81BC02274 + 4023544227ACC2293C420A6C394550830E7423100C432151C1EC33C113DC8113 + 743A3224431CC0AFFFD932A5534884813185B7180EE3890B53E0851E8C003021 + 004A480727AC402CB4C024D4C22B14B640B4422A5C44255CC241944241C44222 + 48031E99033014434CBC8F122C011C28C1EBDBC44E2CC1507441CF1BC516E444 + 5024C5CE7BC148198B5FD1039D92085D3A1EC6692003B80B0A780021E881FCB3 + C2214802470C44603CBB2B4CC2451CC65FECC56124026444460B44460A6C4665 + 84C4C24B0341F1C04CCCC6FA38456E64416F5C43520C471514C755AC38DCE0A1 + 42814574308579E8A9A0318036300414A00B5C24800F48835298BFFF2B467EEC + C740F44780DCC7801C487E94422240024AFC8983D346866C0D54EC44887C4889 + 1CC588AC488914C5FF892CC14713001B908360E82B4D39BD0509248950BD0843 + A47C4C028224C85F5CC9626C499774497358C221B0C63560024B10B286DC49D4 + D8449FCCC888F449534CC59F244A50AC384893323DC0A56D501005033B143801 + A17A3F6648075C80057388C97E9CC981348721BCC22408CB62FC4A0AE44A22C8 + 4AB4ECC75EBC424AC4269DE449B8A48AA29C4BBAAC4BBB9C4B1C58842713051E + B284D1C31460B805B7502003789089B80B3B482C22C0050E60C621C84A6054C9 + B34B027398499584CCB3CCCCC86446CD6CC9CAFCCC96BCCCCA4C46B4AC4CCEDC + CCCDAC4C9544CDD0244D228084B62481D7894BDA948ABBBC4DDCCC4D1C4000BE + 240B3DE8AB7AA034FF06F9A991340412B82788014473E806CA7C4C661C4DD574 + 4EB4C405B47C4CEBACCE99FC4CD5CC4EE91CCDB0D44EEE0CCFC784CEEB2C4FCB + 94CC21A0041E210102A94DF7748ADC8C4FF92CCAABB30001688442C125146088 + 041B49E1E836E6399A0760064548826E60CEEFE4000E08CB245050067D500865 + 50D58CD006E50073480258A04CF054D005CDD009FDCE0F055108FD4C06B5D0B0 + 84CD5A28ADF67C4F16458AF97CD1F9548659FA1739B8821AAC876DF3BA919485 + E141CC0DA8853480045858500E18520435D005A5500A0DD107E5806E28520C2D + D2CF3452281DD20C2DD1271DD10B7D501235D06ED852604C875A58071F79CB16 + 6D51184D53DC8C84FF48C081188C0534B0013DB8251B4C205A8C085FA807C352 + 0E35F8C364E8050E4DD2063D5225E552308550053DD227FD4C0E555441AD5042 + D5502D0553130DCB278504E85381F93A534E05C536C5011CF8D45045C536FDC9 + 500555501CD54EFCD4871C55BC045565F017345099A53CA06DC032A1A996B868 + A0A1D28201E5C50A35874065D0214D06134D06EDB4504065540BAD4C0E7DD064 + 084B0795D64015D46A1554676D56099D5063D54E48108230F0114EE5541C4880 + 724D80048884746D077445D7736D875335D7744DD7369D577745577695D77635 + D77A3DD57C4D805CB819749003BF4488A61CCEB850BF4DFB120A382472808527 + BD8340BD50739058FF0BBD830BE5008CAD500EB5588D25D26B0DD98E0D598FF5 + D84035D989A54C8CE55022B8A64D1D57F704D57A55D75C00587905D572CD0551 + 05D579C5599BF5D99AE5D99BFD547505D5A04DD74580807324144BD92959303D + E13022149085C2FA124750831E10D26A15560B15D96B0554AF0D5BB11D5BB2BD + D66F4D2139D083B482599E4457757DDB795557B76D57B95D57B885DBB9CDDB7D + 8DDBBD4D807FCD0500438346288222B8145EF82BA0C992A139817AB0DA077803 + 48385091055B0EA55C05ED05CCF55ACADDDCCA0D59CEBDDCB2AD56CB1D0270E5 + 486D605BDAB4D9BADD579ADDDBBA6D5DD6B5D9BE9D5B365D5DBADDD71280947F + 11013DD8BA85309EFF2C3B0E59785A15D01602E80188ED06B0C55CE66DDEE6AD + DCCC0DD4E8E580E9ADDEE7855EE7C55ECBFDDAEBBDDC7D48512C3038D4854BDA + 9D5DDBC5DB743D80BE45DFD8AD5DDBE5DB763D805C5800C2895339D00603E205 + 57988784218E79701C6010AA5CEC81ACED865DA001E74D60EBA55C89B55EE8D5 + 5ECB5560ED0DDBECBD5CCCFDDE30E8C0D91C5F6D9C5D0FF6E0F7FDE0F5655311 + DE5B65884151C0071BD006033B8179408604330EE1D8866D5005D5A300A4A184 + C8DD05E5C55C1AF861204EE01F166204F6E122EE852136E220665E206E620E6D + 62056662283662CCED816BC2460ECEC412F660F5DD62BFF5622F56DF76C8056A + 00107C90AFDE9D34FFF4631C8525A46DF943586862399E633AAE633BBEE33996 + E22446623C9663E63D5B6CCAE26C44D72E0EE3761D847F9DDD42E6E2441661F5 + 3D807618840AC00D1258213AD5B6C12CCEE43981E324AA07F0821EA0816EE863 + 522E6553F663252E65264E06217880756002941264103C005AA6E541B8E5423E + 8041A8655A3EE441885F5B26E45E16E67DBDE55DE6E54236665D3E665B9E5F51 + 30DDA65D881C649C5D85C7C3FAE47D38656DDE666E36E524E8010E6482D395E5 + 594666733E67744E6775E665665E675E2E017FE98239E0865350473ABC857694 + 61B998DA7AAC857418E51FDE823BDE058116E83BDE8203B663840E682046E884 + 4EE8839663842EE8FF8626E83B68E557DE607276BC5A4E8175F6E87676E75ADE + 658F46E79016695A2E8177E0CD595D4ADC3A3F6458A0E280A7E1F581D5FB0021 + 48061AD80582DE8289F6E99EF669A10E6AA21E6AA306EAA3FEE91F286AA14EEA + A666EA9F9E681AE8810F28B84BDC68654369ADDEEA745666941E04599D031BE0 + 86C24587DFD0D506F136AA65589C4E0603DE851F68EA2D58EAA68E6BB9BE6BBC + CEEBA58E6BBECE6BA1DEEBA0F66B9FA66B9FA6817DA86A8EC483B5C56A4043E6 + 141884C72E695B966C5E7EEC5B8E6CC8CE6CC97EECCA866C73CEECCBF66A5D8E + EC666E451F90D35398345DB25303D886796A835071983448021A88EB6C18EC1F + F80133986BDD3683FFDCC606DECEEDB8066E6C106EE0CEED2608EEDC3603E6F6 + EDDFDE82E4766EE1EE6DE6FEEBE9BE6EDD9E6EE64E06E85321C65E3A6436665C + 1EE993166FF3366FF266E7F156EFF36666D1BEE56B5869FB5C613988966DE05F + 9F1AC93C5485E679805AC8699EDEEDBE1EEC2D10F0DC9E6B04BFEEE04670028F + 6BDF16F0056F7004DF6DDF96F0BEEE6BE7E6EDDDBE03E89B97C5FEEEFAD2EC41 + F006122771F3F606D0CEEC125F711437E6163766CC2E71F3B6EC1167F1C82EF1 + 9126F16B6801DEFC092548E3BF1ACCAFEB36A2192A0115021AA8865D906EEC5E + 6E26CF6D2A606EE196F226A76EED7EF22B9F722CBF6E2AB7F2C3D6022003F164 + 63713237F11A7FF1FF324FF31657F3173F733697F15B5EF1413861C2110325C0 + 5F8460C7DD4A98799A0B1B8E8067D0C57408F01FA0822AEF7228EF6D2DAF722B + 77F22D77F245677445777433B8837DF8313F13F3217B7333877337E7F4385773 + F1E6743977F31438F541A0060848612610811ADC064BA36603F005B590100892 + 845E3083283FF427D7F52E47742EFF7560CF7248977461A7720CAEE40FD7F495 + 5200676771678FF6349776127FF66AA7766F70F6534F8168B77612DFF66DEF76 + 052873715FF1804D61B2285C5E681CE2E43843F081A17218494886E68E7449C7 + EE7ABF777DDF7747BF77C3C67466A7AF331F8471AF768277F36827783917F783 + 578086177788C7F6FF84777805387513A7786727F8673FF56B4000088805154A + 5B9DBA6F4B93691AE6673079987DD8856AA80643078428676E43176E2AA8799B + B7F942B77998A7F9979FEE9AFF01987FF99B77F9490F7AA0FF79A34FFA983783 + 5DF872D90C78D462F1814771687778AA5FF16E1F71ADA7FA88EFFA12CF78AEB7 + 781347F167D7F8AF8FEF7748E18E5CCA01F005E078FBA8A561AAA588A3C15A7A + E779A3F7799DFFF99A877940D8F9449F799A2F74C23774C3A702403870DF36FC + C26F7CA13F7CA33FEC3A68F58584FA6DAA716E2FF86CEFFA8CD77CB2EFF6CDA7 + 788DE77CD0F7066E6F7882DF7614AF82AC97F88C4FFB2E400374206B8291E691 + 0C1A53A8273EBCF5FF7DC86DBFAF06BF477CC4077EE20F7E40287EE137FEE45F + 7EE307FEBFA78226387AE59F7EE04FFEE2FF812F572133B5FC54E2FC6CAF02D6 + 7778F0277D6707FFF087F8F117F7F4277FF55F7FF38FF804A00604901B1B4804 + 5A4088FDAC43050106C80108147DDA4470F480520F6C54AA5101F483CAC38880 + 1A52816831E2C58C0F294ED4E8F1C744871F358694D8F0C7BE0FCF48C801E0F2 + 25CC983267D2AC69F326CE9C3A77F2ECE9F327D0A03E1510AD6294A882490A8C + 5699C41429D4A84637452D7A546A15A49B4065AD8AB5EBD2AB51376DAA420D02 + 3E26458A7043C7CB95815B060CC09D0B6CDB098214087C1072C74CC38E202B56 + 0354783044C18A2BFF0E36EC183164C5850B335E9C98B0E1C4930DDFA9158644 + 11A1A247932E6DFA34EAD43A958665EADAA8842A1290B26E9D14A90477466B67 + 7D4AD4E95309658F027FADF43572DAB2155C430021160925DAB4B575E5EA569B + B97481A1F0250B590437CF0E26DB129263E08E142D6EA9A8FE7DC5F8F0E36F3C + AF3EBDFD88520085E4DF11103629D5C1444BAA19782082092AB8204DB22D811C + 535B2D119B044E39352153B165E59404135AD89471143E384987116AB8DB8927 + 1AC5D5860E8A98550ACDC522800DDC1431003ABEB8828C5C7019F2A329F5F4E1 + 4307143CE00517BD9861866385F9D74443D5403965945352D6C495555281E544 + 4DF807C87E9B3501FFE5975C4AE99F1467FA17A54302CE5144220CCA39279D75 + DAE91285109A285B15544D42E26BB32995E79F1B16071C859BE4B99BA2530DC7 + A76BF90CC7219F142635493C912060411773D820475BA65C678021AEFC78CB36 + F5F0A20A416E10F08024BD54538D14B5A6B7A5AD63EA9A2B15526C491194EEC9 + 271F7FB68624C5945F72E42598FCE147E6AFFBA831A008775A7B2DB6D9EE5429 + B7896E82E99F80E6392E9F7FC6D32DBA159E3B2EA67CC65328B9C295A5AEB8E5 + FEA9E8350B38100B1A4A8830002FA6A04017C1DA6D270B918E7CB00F48B5D68A + A6C311473CE5C3C53A4CE59712FFDA04AF54522931B2B8D6EA71800FACC392B6 + 29ABBC729DE37E1BFF6E9E4BC82CF3BD7FC6DB54874B501A5BB8F63EC873B893 + CC3CB4CE94FE49F3D145077DB470F1B4F3CE7368D820C25AE86C330F8FA41A32 + 9721B29CA08A0A1D18244432B3D23AB1AEBA5663C4AEC88E3932C7308CB905C7 + 15C1DD76DA7973ECB6DE7DA70D03369284B18E0D78B07C38E28993E66215EF86 + 8B61CE339B0B2FE4134A90338990C3ECA1D0145E5EA1D04423DD21E8484BBE74 + D21280328937B920E0800068D8D8962F73C9A575A9BE08E443047638E245323F + 9811B1DC63B2FDB6119ABCCD370C6E37AF2B984D682245F178FBBD77DAC737A1 + 7DDFD4076EB25A712A3E3EF9E5CB34EEE7A4F329FAE532DFDCBECCB2353AF3FA + F17B1EB9E8F4C7C6FF3EFC33C32FA286A086010130C1463812D5EDB8F623147C + CD07AEF282249A4137EAF14D7A63AA46F59E273D18148F7A166C9E118CD03CE5 + EDAA7A6322E1DB4C983DEDA1507923BC83240880050299AF8636445CFA72A8C3 + 1DF2B0873EFC2110830844B32C00025DB0811EA8C38B79C4652E70810B3082D4 + 071588E74877389B0BA5A03CB66DD1835CE4A005B9B8BD0D364F6E623C6318D3 + B8C53472906D6D949E075D18B80D10CE1237BC231EAD25C43DF2B18F7EFC633C + AE210A0C88610022E006C0B621975B58676BAED8862CFA4082DE118019924846 + 13B650C6BE69704C60BC1E073B79BD51E6ED93D43B5E2739F83D2C142E8FAE7C + 6582FE28CB59D2B2FF8F2CF0C6594421007468430FDC780B8F126808EE6C0318 + BC73D591F6E1491884D00880588111A0D9CCEDB531846FD4441BD7B8C5668670 + 9B22646633C1E846667E109CDFACE6F6EEC0850760A15AB07C273C49934346D0 + 939EE9B3A704EAA9CF7D32E29EF3D4E73D019A4F7C7E8EA004BD1C3F135A507E + 4A2005EE40802E9970488099A254D861A4A95C210B534CB10376200092B6E0C5 + 1002C299DC5C6638E5E642726E8F84DC7CA935CDF9CD945A306E2945E798B0F1 + 8630084004B488275083BA937FD633A0084D68426B70D0811675A14D6DEA42A3 + 1A50A44235A12C60013DA136232628A12D27D8860190C1B5B9F4C117F5401815 + 09F00749DCA109E0FF2CE9334F3A3D7372708BD50CE11861FAD2BBCE34A66BBC + 6B28C119469DB2D39D423D2C626152CF78309505A0D0A76325108F7A82C2B196 + AD2C662FBB58D55D56B292ED2C632BDB4FC63296114AA5670D40E1D9D05AD6B4 + 8CB86C64599BD9D9E6831A0B58033E6AD4165EC8A2898D7C22A9BEE30685BD21 + 19A7DC2B5FFB8A8D153C131B814D29379F1B5DBA9A93B92BC00674F51A426CF4 + 200C73B06362C32BD4D79217AB2CA8017AD17BDEF492D704E97DAF09E2FBDEF9 + D6E0AAEB55EA7A4D7B5FF49277BEAFE52F7D035C0313B0C004FD15F080B1EA8E + 0588A20B6840075B06E08B79DCAE2EDB111215C723042CB9D59C748081349BB9 + 8215C04013308566FF8845C8B6E49158A6227E2989B54B074D6CD39B24F5421D + 48A007F1F2189EF8752D56D9ABD42197F7BDA64DAF094041E425BF1614061EB2 + 92511B64D7FE98C9EAA5328253EBDE201B39C0F4CC57D4D482C87AF8626B8C24 + D5235110C963C2EA0774AB66284F8C4DBDA658C5CAC36672A3095371EE59A578 + 35F14BEF80E339D0A2133D3E341EB37CE400CB77C04376B47B874CE0231BB8C0 + 8F5E7297912CDF48A3D7BD8B46707C398DE44BD3F710B914002FBA4AD1EB9CB9 + 2EDD31AB0AECF0803770E10ECCBC350CE8D0CC0F43B3C4271E7174675CE20F33 + 13D8211C71AE6F1AECBA963894780E742D5879054453BB862CC8877B096CDFF7 + 5E35BDDD56EF7EC1FFED6DCCD637DBE0FE74A7B1CD6DFB5E55DD49B6ECB7D5CD + EE6D7B3BDCF5BDF696F3710DA8E1630E5453C20976D4864692751BDDE9A84124 + A1C9BACE14C58046B19E59ACE71243BCC5209E73AFDB58713D6FBCE3D10C258A + 25F1001A55BBE4E32B707CE7BDEE7A83DBDEDF2EB77CAF4A6071CF97C0DAAE37 + BB438D726DAF57E7F3DEEFCBEBADF30098200067818E0D06A00474041C6B3DD2 + CE23F3120123D11ABBC70631B0291E4D60AF00E323C626D791AD01126B62C424 + E6F5D6511C76B5B33DEDB9063627441E012588CFE4764F19A70B1C809D879AE8 + F1DDFBDF59E0F75013BEF03E37BCB60B0F78C317D8BE860F400DF62EF394DB5C + F191A737E26B908FFF05DCB65345D006C06E810CB196EA4786D8867754109EB1 + 714C8424EEB8D93D5ED7B24793C6B4973DD6BB5EECE4959DEB1F2F76EC915D08 + CF90C0A7773F3EB6141F80C1177DF9D158FEE0973F60133C9FF97F773EE197DF + 77ED17BDFA018846A8BD5FFDE6639FC0DCCFFEF99D0FFDC18BFFFC8C7007351C + D0A901ECD614C03018D750A07F031049D66CA526AFAD5DECA51DB2CD58EFF15E + EF059FD9694200D2D8021EA0D91941002A201DACC01E105F68209F06D649F615 + 9D07FE9D07125DF4A51FE289A0E29D20089A60079A200B0E9DF591DF0A9220F4 + 151DCA415F0D9C1A0970830EBEC5225987A9185C3D9C0009A4D507704121B458 + DA1120EC91DDEDD9FF9E02C61E9E7DDDB1755D02725CEE29602875468E15C806 + 76A182AC1F187ADFFAB51F1896A1199E211A429F18A6211BB6A1FAB9610008C3 + 3518112FE8E0009802583951C118C0361802EF884D11DE81065CE1133EA11316 + 62F039E0D72520222E62238ED81E7CC03A1088A179A125AA061C66221A8E8126 + 76A227B62127BAA130D44011C5820FA8C58DF02013950A5D3C1230201CAC2CDC + EB3DE2236AC2275CE127E4222D6683266483021E221542E12AD9C0B45DA2319A + C627A6A13098E1322EE3FA35231B3A63324EA3342A23E4D996FCD90075B8451F + E0DF8FDC8540DC42048C075B91D8D8D16223DA62059A5D2E7E022DDA22232E62 + 022AE22216021CB0FF131380D731EE6350ACDF1884A226FEA33F026400086419 + 0A433532A3191AE434A2E132FE234412E4414A1F350C12133041D2E54837FAA0 + 13A1DE09F4C1D481141764433670103A16A22EC65E3BEE622FFE223DD2633016 + C24EB5133FD6E44F44E418648030E0244F22244242A44E42E4044CC04EFEE304 + 64C03FFEE43F660051FA244F26A5531A25513E255416255556A54FFAE4501EE5 + 50F6A45216650DAC0204AC01012192D5C4852369C736080C32A49517C8433668 + C03A16A25CAEC05C065F5DD2415DC6DE5CEAE55DDA655ECA653B56A05F02E65D + 0ADA4AD042DDD92463DA44446EE55562A5504E80508E01654A256662E6505A25 + 4E0A03641AE51870FF66672A6564FE64536AA56576254F52E66586A6670A8358 + 8A42BFA91A30654746B5A22AF0C22D0C575F34038811A2D90DE220D2250C0867 + 710667EE15E7719A9D721A673B3627749E2327AC4033D4C2246A436366674D6C + 25530E657772A57772A77886E7568A273DE4E47882A77A7E277BA6677B966778 + 9E275292E77AA667797EE77D72A709AC421175812AD8A12F8C9E1E920A776098 + 1B188917D81A88E9E5D855C22754825D3EE82730E80A382884EAA5856AC0D851 + 28876A28606EA8877628888E2860AE00177C00160C8076AE684CB0267CB2A665 + C6288CCEA88C76A58BDEA88CE6287CEA686A42268DCEA88DEAE88BF2E88BFE68 + 90CE68341C427F92FF40D2D90099C1C5EDF4C130ADA52CB40A48ED81820AE727 + 4CC3270C22974E43715682066C69971627996A809886A970A6299AAEA99BAA29 + 9CB6699C560227AC930070218B6AA77AE6277DBEE79EDA2757FA6977CE82A016 + 69A1F62977E227A2BE28536600A1BAE756060165DA962ECD4157E50885DDC28F + D4055E9C5578F0051CDC815FA2E9830AA6831226A98A69055AA861B66A61BE6A + 60A2AAACBA6AAC0AC167144125E66963326A79BE66777A669112A5B01A6AB002 + 6BB02A2AAF06EBB02EEA78FAAAB2C2A7B1DA6734AC822ED9005B040CD76494E9 + 994A1BF0CE7884EA20D2C134544225D0C184DA65AE4DE8719AEB86C200B98EA9 + B9C62BBAC6EBBAA6FFEB87C1EBB896EB838AE9348C9D068CAB5D4E0317A8C124 + EAA3AEDA24A1CE8277266CA38AA74E1265C3466CA006EAA30AAB3038EAC31E65 + 06482CC63E2AC73AEBC35E6CA06EEC51326CC9462CC9E667C75AECC636AAC71E + A59246CD00E84111588DD315CC30F5812A10C978D0DAD995AB5C6AA85C022D1D + 10AD5CD2815F96ABD232A8D0162DD23A6DB922EDD2326DD14E2DD4D24121AC13 + 4D1E2C63A26CA366800EA46CCAD627A2B6ECC48667C36A2CA4A62DD9B6EDD74A + 6CD9922CDBC2ADDAD667061C423E20C037E4A02FE508706DCD3075C777509123 + AC554922ADBF6AA8D4A26925F4EB0A1CAD5EE66BE3BEABD0FEEBA9566DD492EB + B822AEE2EE6BE34AFF6DBE6A0027BCC14AE8C16272AD3182ADEA6E6CD8826DEB + B62CECC6AEECC66ED8BE2EEBAEEEECC2AEEDE62EEFE6EEEEFA2EEED62EEEEA2E + EE06C12C040152EACB2ED1A629E01F5DA00047B501E1FE8111C2402B046DE726 + EDA83EEDD05E6DE576AFD43A6DF8466DD35EEDF832E8059E8C1C9C2EEA7AA10E + BC2FFCC66FD80681FCD6AFFDDEEFFB6600FDE22FFFE22FF2EE6FFFDAAFFE0630 + 01F7EF0444C35974011368C3B5DE9F1EFEC8364012C288CD5A7142E4226EE86A + 68BFF62BBF0A6DBF56EE067FAF0673EEBB7EF0BF9EB009A7F0D0BEC103748112 + 184EFB1A63FFBA80EB167000D3B00D177006E0700EC32F0FF7700E0781108F43 + 346C4017F002FDB5FF453D34D1801A0099B5016FBEC11E64C3D32E6DE58A69F7 + 6A28167FEF165FF1D16A71D18A709B6AB1D06231D2EE811738420EC6B0311AAF + 101B2FFC1EAF10CBB11BBFF11BD3B11DD3311EDB311FC32F1FFFB11EBF71FCE6 + F11DDFF1FBF2712003F21FD731001F3200CFB1108F4129D2C87460EA2D2410A9 + 98822C18023214C90330C34832AD079FB006A330068FB20AA732298F3208A3B2 + D072823E808FC1B2B10606C125BCF12D0B712EDBF225DC722EBB800BE0F21BBB + 402EEFF22E07B3102333302F333127B32E03B32EE3722FDBF2302373314F332F + 5F023447333707C13253F33747732F1BF338DF3230E7B20ECC027F92A5B57A15 + 5861F22BA68A2CF4FFCE037C001C1402F75EEF18EFB3AA86B11897B118773140 + 93B1086F719DB29312D0B217163224373436277330EF3131273223E331339FB3 + 1E6BB30B04F23817323067742FCB712F2333451F6F387B3334D331368B34366F + F32C8CC33804C1E6C91F4622122FE4219AB5E209F0423D50D15EBC013E336D08 + 8FF0069F7229ABF251FFAB289B70292775E58E2E4F89C02C2BB4C95DB4555F35 + 5667B5565B35315881156C355887B5588F35595FF42C38811159AA57D91FC158 + D85D00830AA88091DC730368C0F5DEF5F75E6F034C035EEB3516EFB507D7752B + 60B13E6B705DFFEB6157C25D13B65D6BE81EFC418E191655DBDD324781655BB6 + 5733F3654781557FFFF5575F35672FB3578FF66647C167BB00669FB60B58C166 + 577668A336677BF66BAFF668BBF668B3F665AF363097B66503B36A9B3669A7B6 + 7063B665B38258AE81D424D1009C00D6B4C1EDB441D7780748EEC51FC04125E4 + 9A8622C22A37350A7F6F08ABF2770BAD7687B77627F53470C23DCEDD641F9F6B + 5F7666F7766B5FB415743568BFF66D7B756967366CEBB70B74757CC3B66BD336 + 6B33F36DDB7670F7F67BF3B66F9F3670E3F7703BB869733631D0032B28EFA720 + D209D8CEED18421F08CCC010EE0748425CEAB5060876639B785D9B3889374025 + A47889BFB88BC7388CCFB88CD775DC8D1CAEAEB7C9F1B670C3B48257B6154003 + 3484F68F0BF8810FFF776A13F87F03386A2FF880EF776DEF7683E3F6650B398F + BB37348C837B8F761674B9834338980F83BE604074EC603D188273938A5DF4C1 + 5911899108C11E7082E27EF0614F0383DA399D1BF6502B755117752BE3B9778B + 2B9F17C21F7CC6FAEA78B59581A22F7A9737BAA2377A97978115383AA347FAA3 + 433AA65BFAA2C7400C2C7AA5673AA65F3AA597C1A87FFA300C83A7A7BAA797BA + AAA77A0C407AAAC33AA967410CD0C32A38C11ACC811CF8D24D67CDD638919AF9 + A1277BC123202D5F37402B344003D041B227FB5E2FFBB3D381604B3BB2573BB4 + 1F7B2B4CC3B52F7BB323BBB6333BB24BBBB60BEC0750403E223AB5A97AA8CF3A + A597FAA883FABA6FFF7AA7C73ABCCBFA30C83ABBAB7B979F7AABEB7B16F47BAB + C7401EB0BAAC37FA3078400C2C401794B94DE334CEBAC240A415504F686367BB + 8A8FFBB3637C89F375C56BBC5E63BCB657FCC6A338C617C21E3C4004E029BA8B + 17A7C7800794C132B4BCCCDF4328C8BCCDDF7C19BCFCCD0B7C1E0C7C162C43CE + 9701A7F77C1E047DCC733ACDDF4316DC83CDBF7CCC2BFDCEC33CA74B3DA703FD + CD5BFDD423BCCD077DCB533DA77B80D6CB7CCEDF7C28DC03D1DF43853B400414 + 9012B902D6188C750CC4741FC91E2876892BBB5DB782B3E3BDB2A738DFF3BDDE + 5BFBDD0BB6DEDF7DB713FEE197782BBCC124AEFCA1753AE40BBDE4373DE47F7D + E56FBDCC83FDCBF7FFBC07B043E4B73CD17FBED037FDE44FFECE5FFED48BBEEA + 977ED45F7EE96B3EEB8F7ED70F7DCF77BA71CBDF1C7003E8DDB4DB3BD137A60A + 48BACA1FE843366C7BC7673CF283FC5EE375F293BCF38B7CC6B7829DBE70AE3A + FE6105FDCB673FD77F7DF6B77CF76FBDCE733FD8133D2180FDF6133DF6A77FF6 + 9BBFF67FBFD887FFD7ABBFFCB7BFEC673DD7ABBFE6D37FD8C7BF0700441E811E + CA7820E604C21A12038A0CE0B5CDD52D03065C197205CC97AF3E2ADC10F8C0C5 + 58033A225B3528D9609A48942A538E6CD9C0A4C9972D4BB672599366CC562F1B + 207AF34000375A008816357A146952A54B993675FA146A54A953A956ADEA016B + 56AD5BB976F5FA15FF6C58B163C996355B7696930D6BD02811818E97A93EAE2A + 4E343411D809641D1C7D2CD440C34A0D3B05B70A3CCDF04A4480511A269C72F0 + E0942917DB736C0F7062CC903979D162E39455D1A34997367D1AB5E8AFCBB612 + F2C01AAB6BD85B677B20747BB6EBB3AF6D13AACD1BEC6FAEC281AFDE4DBBABEC + 1BD1368822C1841BB701BE80CD9B78DDC0B613BE22B8E9CBE5D3E55698C9D76C + 00E2BC4EF5E6D9AFC79CBE7D7B7D6178E1497D1F7F7EFDFB4F67B5268EABFF7A + D34A1CDD00D46DC0AC6E5BD036010911D02B047BBBADB5DB1CD4CA1A090364D0 + AB03152CEBC10E35F400C0ACEEA16703070480AE086E7891053BBC50F0451664 + 22A0E0012E383169FFBC063683C94798D003F2BD20612A1249227D1CF248259B + 2CE403016C188ABF2AADBC124BD46CB34D9D6528BC4D9D2FC55C509D325D2344 + 9A05D524A44C2FCF94C6CC2DCFB42DCD2DCD5C934D34C10C93CC30E5FC93CD38 + CFC4B3CB65D449F34B4027AC73CE33CB54B4510F6E40A80B12946891175FEE92 + 885314EA39A18F1BFD22A949CB78440F0410E25B4FA756D87B0FBD556BB20711 + 2FC2082ACB5C75DD95D7A2FA9C61863285E5734F75801D16D93BD52CB31C3793 + 7D16DA68930536D8649785160C6A855D068C72A41DF65862BFC5561D7056596B + 0E3DB471711B4E27AA0885190D50810202E040AC15265DB5673357FDFD176094 + F80518607E79CCD7FF47CC5C3D0F913D3ED082894E3AE995E28A2D2EEDD76A87 + BDD6588DA125541D309C1D976469B5B5B64F684F0E996592C34DB964648FB961 + 81582CD5A60874EA01C68079243244A26D68A4F70138F658CC24557B5498E0A6 + C93BD8691F5D45B53C84D1D3E7012CE408EDE2AEBDFE3AA98C9FA5D6E38EC7AE + B6D871C32D936C61450623DAB7A15D66066B463E3B666457E6736FB3856D7B5B + 71585940451100D0C6A1769171C5AE6D4C51A58DEE08F8030E63E8D8F7DFF4D0 + E3D732A5ADD61CBE7CC7B30755D14B2ADD737BF6F8631D26F4001BF6D82D76DB + 6FBDFB0E17EEBFCB4E16EEDC7507776FDFC9E53D646009119EE5DCD71E16F9B3 + 3D86FB768F012F13FF6E69C07142140144D0438F01D031E516EB7E064616596E + F1C1BB0FE0286447D25B2123DF5453E55C55F855951FFF544527835FFCDF8F5F + 7EFF0301ADE0400001286162B253E002AD443D6E2D4F77100C17B77E27AD7288 + CC76C05B9BDCB045416471AB1C3320C40C2E382C10B2AD6C27FCD6CABA952D09 + 4A8F851764C00888B10A1529817B0D4181016ED186EB6C0305B2A8471B3A80A3 + 3F70611A96995AAAD2C3397F290D74A83A8FBFFA37C5A99D477F531B4FC33ED0 + 3A4B30108C614C0D03C858466A9591016443631AD5C8C619AC916C6D5C2319CF + 38473BBAD18E7104161CEB58C6DEB9F18D74DC231EEFF8C73B12B28F7764C50D + B5710A6EA00346B7FF601C76DAA5820ED8E1017FD883FCE0673FFD79327FF9EB + 2427FFD749FA81C094FC2243AA1EF1064744C0706294E52CA932476A8D8201B8 + 4CE3329631023406128EA318812F75F9CB41E67114C03C64318F694C3A8E020C + BE446332CBF8025F92ED1ED41AA620D958C6629A519969B4E520CF98CC6F92F1 + 050751910D5E873857CC631E3EBC0B5D5060081F484E9388809F13F775CAFC01 + 507E9C23DDFC064A50FFF5D31EFAE862BA12484B873E142987EC261987294D89 + CE209A23C0A844EF98C83C72D496D9B2A820C1804E8D9AB1A4141DA938E99852 + 8E36F3A5E19C2103C0C10A0844C07500C8992F2262170318A20FF5DC48478E68 + 8C7EDA4FA0A1D45FFFFE926AD0801654809C43041C1E100125D807A25985E808 + E0E14BAE7A7304BAACA8345F708C91BE800D66ADE80CC43AC7AEA2B59A66FDE6 + 4A554AC6B4BE209AF0982357C7EA55BD8E000C6078C10CB7C9578B6EF38E88F5 + 255ED728D8931EF218831D2B03BA5AC611A0551D8BC40213B4A187869C601B77 + A1884580E129595892004533EAC0F6E9CF8332D59FFD7B2A295BCBAFD541EC8B + 5AD5ED2CFBDA5BDFA215AD2360C30B8A015C36B06198C545AE6F2B3ADC8A0677 + B8C54D2E70954B5CE31E7798C0ED6D74C70ADC232C97B9CFADAE78A99BDDE55A + 77B8E945AF79D10A5EED0A97B86365072BC2D00126C8E170D3D9865D186788D2 + A260237CF9803E4AFF690F53AE929308562A2A153CC00693817F0D4E15841F01 + 8730B421B7BBD530037B6B4D6B66B7AFC37D8187D30B86F4B297B91F36F16547 + F0041207F7B2EA95B171337AE2BEBE77982286F16F9B6B5C16CF38C71F2EF18C + 9D0B5F1B1B19C5E605C317D0258744AC8B1728E8E14FDBD0D3F2D9A82FFA40C4 + 78C6C3BF01E24FC2A15C65830DCC49D2159493207804178052840DBF5981C02D + 001BE63CE7F4D219CF0568AF9D8F7B5D3BB7F7B87F0E749EF36C5C43CBB8CFE7 + A0F39E01BDE7E33EBACE8026B47A05DDE740BFE01CD71D6EA6896C694FDF59CF + 97E6B49FF1FC046930790D73104122F4E02257204322D73144BC6E6149473C80 + C0AE82F0AE79DDEBFF5E1B98D713F6F5B0814D064420E20F6E60822512016767 + 7B8D0D8265838B9F306DB48281DAD6AE76B6A98DD6636CFB18C3E5F60BB64D6E + 6D6BFBDA238E76B5D31AED688F78DCDB16ECB5CB5DEF7377FBDDF736B78BD3FB + 6D6DB3B8BDE136F1BC5D0C6F13EBBBC4EADEB7B95F508E1BA04B04B48032E328 + 6E97B9C8227238D28751DF376C8F0FFB7D0CEE352A3BEEEB29D8C3C2563D4543 + 9FDDF25DBDE0082F987331F04CF3E3D27CE635D7F9B64B3D6D36E0FCE73ACF79 + CE871BF3A2F7BCE8E6063AD08DEEE8A50B3DE8491F7AD073CEF3A91777CEEC86 + B9D2DBFBF4AAB3A1E95EFFF913C040B80372CF45BEB8C5DAB153DA21DEA868D3 + F8B8C9A7E0F129D4FF7DEE1F6FA523DAA00796BB1CF0573AAEA2073FED276CFB + F03E2F4001847BF86A9FC3F19197BCE3153D79C93F9AE790773CE6271FE83957 + DEE78F37BCE513FF78C72FFEF405E83CE2511FF9D03F21EBA33F2EE97D3EFAC3 + 83FEF0E1D8401DDA82F617495292D871451B54A0024C1238EFBBC6FBB0EBBEFC + E4379F0C5380C30722E0E4C05FFF4AC2557C01484167EE1BFEBBB047AEF7EDAC + FAC92F1EFDE957FFFAD50F69F4477EFDC85DBCE751EFF3EEB3BFFDF87F7FEA53 + AF7FFFFF1F00D12F109CA00E56040F7461A736053BFCCB1088AF2FE0E0113AE9 + EE94EFEE2A10FA20AC0229D0023370EE5A490B44E0EFB04F0453A31CE081FCD8 + 0FFE180FFF2C2F00FF5B50FD5250FF4ED0055D3005FB6F066FF0FF5E201CD4A2 + 0B6C000FD4C52150A0A72C0E18EA0105E88500DE600F5C6502317003E96EF936 + D002F30E11E6C30747100BEF430D026104D2EF08600FF5BE100CD36F0C614FF2 + 70700661300DBF100D5F90FF0EAF0DE310058F80C9BA800944401B10E77B444B + D67CE10454010995F002A34F0AA34F039D500A9B90104DEE111E8004DC2C0B23 + B13436C009A4E11C32C10B0BE0083491FD363113D76F134311FD3CB113D58F14 + 17EF1447911345311533911539D1154D711555F11303F0156F111655311559F1 + 18586103BA600EF0ABD5D041152262F826C271402502EC20091F610A13111AA3 + 511A37B01123E00AFF25111BABA20328311C18401651F1FF5AF11B6D311C4B11 + 1CCF711C49511CD7911673511CF14F1DDB311ED1B1163DF1081E2E16D040044E + C191A6639E26E2160CC114C087239A1111A7112113F2EE1EE10F9EC107F02B1B + 23322A6C6D03BE201C8A21136420146580233D91233912163FB22339512465C0 + FC8E00134E4F143B920D4D72136500136EF1238F80265731260B20133261233B + F2264311134412256500137551136F72248FA02469F2F036322761722535F227 + 67322A3F32267BD22651F2258F81074920E24EA1215441087F0A5E4C21B40211 + D814122DA5F1112A2C6B944022DFD2294E80231CA12203A118CE0126A7B224F7 + 722A31E127FD522FCD5DF227D12F2FF572F14A1230A9D22FA91231171324176F + 31139323FB1226F7B23227D3312BB32F071332F35224033331255331FFF23135 + 333367660114821B4223674E40CAD8CE00DCEE087104020F322D6FD302DF200C + 98002E7B532978A11E542002BEE1199CE006F0B22AA9122911332827132B93F3 + 339B9327A5D332B1522A97132A81B22AB1B2289F133B9BD33A9D723BAF933CC5 + 533B9F733AAF733BF5D23B411229BD332A8F200468A67026E6B3DA25D6FCCB17 + 5EA420DF20027113402D501F0880047CD3408D222000003B} + end + end + object edtPassword: TEdit + Left = 96 + Top = 132 + Width = 278 + Height = 21 + PasswordChar = '*' + TabOrder = 2 + end + object bAceptar: TButton + Left = 208 + Top = 203 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + TabOrder = 3 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 296 + Top = 203 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Salir' + ModalResult = 2 + TabOrder = 4 + end + object edtUser: TEdit + Left = 96 + Top = 104 + Width = 278 + Height = 21 + TabOrder = 1 + end + object Button1: TButton + Left = 16 + Top = 203 + Width = 129 + Height = 25 + Caption = 'C&onfigurar conexi'#243'n...' + TabOrder = 5 + OnClick = ToolButton4Click + end + object Timer1: TTimer + Enabled = False + Interval = 5000 + OnTimer = Timer1Timer + Left = 344 + Top = 64 + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + Root = 'Software\Administraci'#243'n de puntos de venta' + SubStorages = <> + Left = 14 + Top = 168 + end + object JvFormStorage1: TJvFormStorage + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edtUser.Text' + 'edtPassword.Text') + StoredValues = < + item + Name = 'Ruta' + Value = '' + end> + Left = 48 + Top = 168 + end +end diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.pas b/Varela/Varela/Source/Usuarios/uLoginForm.pas new file mode 100644 index 0000000..6f0cb5a --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uLoginForm.pas @@ -0,0 +1,100 @@ +unit uLoginForm; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, + JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement, + JvAppStorage, JvAppRegistryStorage; + +type + TfLoginForm = class(TForm) + Panel1: TPanel; + Label3: TLabel; + Label4: TLabel; + edtPassword: TEdit; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + edtUser: TEdit; + Image1: TImage; + JvGradient1: TJvGradient; + Button1: TButton; + Timer1: TTimer; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + procedure bAceptarClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + private + FIntentos: Integer; + end; + +var + fLoginForm: TfLoginForm; + +implementation + +uses + uDataModuleUsuarios, uDataModuleBase; + +{$R *.dfm} + +{ +********************************* TfLoginForm ********************************** +} +procedure TfLoginForm.bAceptarClick(Sender: TObject); +var + bOk : Boolean; +begin + ShowHourglassCursor; + try + bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text); + finally + HideHourglassCursor; + end; + + if bOk then + ModalResult := mrOK + else begin + Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK); + Dec(FIntentos); + if (FIntentos <= 0) then + ModalResult := mrCancel; + end; +end; + +procedure TfLoginForm.FormCreate(Sender: TObject); +begin + FIntentos := 3; +end; + +procedure TfLoginForm.ToolButton4Click(Sender: TObject); +begin + Timer1.Enabled := False; + dmBase.ConfigurarConexion; +end; + +procedure TfLoginForm.FormShow(Sender: TObject); +begin + Self.Caption := Self.Caption + ' - ' + dmBase.DarVersion; + JvFormStorage1.RestoreFormPlacement; + // Hacer login automática si hay usuario/password y no hay más de una base + // de datos como opción para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +procedure TfLoginForm.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Varela/Varela/Source/Usuarios/uUsuario.dfm b/Varela/Varela/Source/Usuarios/uUsuario.dfm new file mode 100644 index 0000000..93fcc6e --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uUsuario.dfm @@ -0,0 +1,123 @@ +object fUsuario: TfUsuario + Left = 523 + Top = 415 + BorderStyle = bsDialog + Caption = 'Datos del usuario' + ClientHeight = 309 + ClientWidth = 308 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 138 + Top = 273 + Width = 75 + Height = 25 + Action = actAceptar + TabOrder = 1 + end + object Button2: TButton + Left = 226 + Top = 273 + Width = 75 + Height = 25 + Action = actCancelar + TabOrder = 2 + end + object TabControl1: TPageControl + Left = 8 + Top = 8 + Width = 293 + Height = 257 + ActivePage = pagUsuario + TabOrder = 0 + object pagUsuario: TTabSheet + Caption = 'Usuario' + object GroupBox1: TGroupBox + Left = 6 + Top = 5 + Width = 274 + Height = 99 + Caption = 'GroupBox1' + TabOrder = 0 + DesignSize = ( + 274 + 99) + object Label4: TLabel + Left = 34 + Top = 28 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label5: TLabel + Left = 16 + Top = 60 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object edtUser: TEdit + Left = 88 + Top = 24 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPassword: TEdit + Left = 88 + Top = 56 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 1 + end + end + object GroupBox2: TGroupBox + Left = 7 + Top = 111 + Width = 273 + Height = 110 + Caption = 'Permisos y seguridad' + TabOrder = 1 + object Label1: TLabel + Left = 47 + Top = 36 + Width = 26 + Height = 13 + Caption = 'Perfil:' + Transparent = False + end + object cbPerfil: TComboBox + Left = 88 + Top = 28 + Width = 169 + Height = 21 + ItemHeight = 13 + TabOrder = 0 + end + end + end + end + object ActionList: TActionList + Left = 8 + Top = 272 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Varela/Varela/Source/Usuarios/uUsuario.pas b/Varela/Varela/Source/Usuarios/uUsuario.pas new file mode 100644 index 0000000..90e722c --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uUsuario.pas @@ -0,0 +1,39 @@ +unit uUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList; + +type + TfUsuario = class(TForm) + Button1: TButton; + Button2: TButton; + TabControl1: TPageControl; + pagUsuario: TTabSheet; + GroupBox1: TGroupBox; + Label4: TLabel; + Label5: TLabel; + edtUser: TEdit; + edtPassword: TEdit; + GroupBox2: TGroupBox; + Label1: TLabel; + cbPerfil: TComboBox; + ActionList: TActionList; + actAceptar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +var + fUsuario: TfUsuario; + +implementation + +{$R *.dfm} + +end. diff --git a/Varela/Varela/Source/Usuarios/uUsuarios.dfm b/Varela/Varela/Source/Usuarios/uUsuarios.dfm new file mode 100644 index 0000000..a2faae2 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uUsuarios.dfm @@ -0,0 +1,119 @@ +object fUsuarios: TfUsuarios + Left = 490 + Top = 417 + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de usuarios' + ClientHeight = 401 + ClientWidth = 550 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Grid: TDBGrid + Left = 8 + Top = 40 + Width = 425 + Height = 313 + DataSource = DADataSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end + object JvNavPanelHeader1: TJvNavPanelHeader + Left = 0 + Top = 0 + Width = 550 + Align = alTop + Caption = 'Panel de control' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + end + object Button1: TButton + Left = 448 + Top = 40 + Width = 91 + Height = 25 + Action = actNuevo + TabOrder = 2 + end + object Button2: TButton + Left = 448 + Top = 136 + Width = 91 + Height = 25 + Action = actModificar + TabOrder = 3 + end + object Button3: TButton + Left = 448 + Top = 176 + Width = 91 + Height = 25 + Action = actEliminar + TabOrder = 4 + end + object Button4: TButton + Left = 448 + Top = 368 + Width = 91 + Height = 25 + Action = actCerrar + TabOrder = 5 + end + object Button5: TButton + Left = 448 + Top = 96 + Width = 91 + Height = 25 + Action = actCambiarPassword + TabOrder = 6 + end + object DADataSource: TDADataSource + DataTable = dmUsuarios.tbl_Usuarios + Left = 368 + Top = 40 + end + object ActionList: TActionList + Left = 8 + Top = 360 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actNuevo: TAction + Caption = 'Nuevo usuario' + OnUpdate = actNuevoUpdate + end + object actCambiarPassword: TAction + Caption = 'Cambiar contrase'#241'a' + OnUpdate = actCambiarPasswordUpdate + end + object actModificar: TAction + Caption = 'Modificar usuario' + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar usuario' + OnUpdate = actEliminarUpdate + end + end +end diff --git a/Varela/Varela/Source/Usuarios/uUsuarios.pas b/Varela/Varela/Source/Usuarios/uUsuarios.pas new file mode 100644 index 0000000..dfad797 --- /dev/null +++ b/Varela/Varela/Source/Usuarios/uUsuarios.pas @@ -0,0 +1,89 @@ +unit uUsuarios; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls, + DBCtrls, uDataModuleBase, JvExControls, JvComponent, JvNavigationPane, + Grids, DBGrids, ActnList; + +type + TfUsuarios = class(TForm) + DADataSource: TDADataSource; + Grid: TDBGrid; + JvNavPanelHeader1: TJvNavPanelHeader; + Button1: TButton; + Button2: TButton; + Button3: TButton; + Button4: TButton; + Button5: TButton; + ActionList: TActionList; + actCerrar: TAction; + actNuevo: TAction; + actCambiarPassword: TAction; + actModificar: TAction; + actEliminar: TAction; + procedure actCerrarExecute(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actCambiarPasswordUpdate(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +procedure AdministrarUsuarios; + +implementation + +{$R *.dfm} + + +procedure AdministrarUsuarios; +var + fUsuarios: TfUsuarios; +begin + fUsuarios := TfUsuarios.Create(NIL); + try + fUsuarios.ShowModal; + finally + fUsuarios.Free; + end; +end; + +procedure TfUsuarios.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfUsuarios.FormCreate(Sender: TObject); +begin + DADataSource.DataTable := dmUsuarios.tbl_Usuarios; + DADataSource.DataTable.Active := True; +end; + +procedure TfUsuarios.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); +end; + +procedure TfUsuarios.actNuevoUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(DADataSource.DataTable); +end; + +end. diff --git a/Varela/Varela/Source/leeme.txt b/Varela/Varela/Source/leeme.txt new file mode 100644 index 0000000..a3637e2 --- /dev/null +++ b/Varela/Varela/Source/leeme.txt @@ -0,0 +1,5 @@ +El archivo uDADataTable.pas es una versión +modificada del original de Data Abstract 5 para +implementar el uso de Where en TDADataTable. + +Ver procedimiento OnWhereChange. \ No newline at end of file diff --git a/Varela/Varela/Source/uDADataTable.pas b/Varela/Varela/Source/uDADataTable.pas new file mode 100644 index 0000000..bb94913 --- /dev/null +++ b/Varela/Varela/Source/uDADataTable.pas @@ -0,0 +1,4645 @@ +unit uDADataTable; + +{----------------------------------------------------------------------------} +{ Data Abstract Library - Core Library } +{ } +{ compiler: Delphi 6 and up, Kylix 3 and up } +{ platform: Win32, Linux } +{ } +{ (c)opyright RemObjects Software. all rights reserved. } +{ } +{ Using this code requires a valid license of the Data Abstract } +{ which can be obtained at http://www.remobjects.com. } +{----------------------------------------------------------------------------} + +{$I DataAbstract.inc} + +interface + +uses + Classes, DB, Contnrs, SysUtils, + {$IFDEF MSWINDOWS}ActiveX,{$ENDIF} + uRODL, uROTypes, uROClasses, uROClientIntf, uRODynamicRequest,uDAExpressionEvaluator, + uDAInterfaces, uDAClasses, uDAEngine, uDAScriptingProvider, uDADataStreamer, uDADelta, + DataAbstract3_Intf, DataAbstract4_Intf,uDAWhere; + +const + RecIDFieldName = 'RecID'; // Do not change! + AllChanges = [ctInsert, ctUpdate, ctDelete]; + +type + //ToDo: remove and replace these three with TRO(Dynamic)Request* + TDARemoteRequest = TRODynamicRequest; + TDARemoteRequestParam = TRORequestParam; + TDARemoteRequestParams = TRORequestParamCollection; + + { Other types } + float = double; + datetime = TDateTime; + + TDADataTable = class; + TDatasetClass = class of TDataset; + TDADataTableRules = class; + + TDADataTableNotifyEvent = procedure(DataTable: TDADataTable) of object; + TDADataTableFilterEvent = procedure(DataTable: TDADataTable; var Accept: Boolean) of object; + TDADataTableErrorEvent = procedure(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction) of object; + TDADataTableDynamicMethodEvent = procedure(DataTable: TDADataTable; const aMessage: IROMessage) of object; + TDADataTableRemoteRequestEvent = procedure(DataTable: TDADataTable; Request: TDARemoteRequest) of object; + TDADataTableDataChangeEvent = procedure(DataTable: TDADataTable; Field: TDAField) of object; + TDADataRequestStreamEvent = procedure(DataTable: TDADataTable; Stream: TStream) of object; + + //TDADelta = class; + + TDAApplyUpdatesError = procedure(DataTable: TDADataTable; const Delta: IDADelta; var Ignore: boolean) of object; + TDAAfterApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; + TDABeforeApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; + + TDADetailOption = (dtCascadeOpenClose, + dtCascadeApplyUpdates, + dtAutoFetch, + dtCascadeDelete, + dtCascadeUpdate, + dtDisableLogOfCascadeDeletes, + dtDisableLogOfCascadeUpdates, + dtIncludeInAllInOneFetch); + TDADetailOptions = set of TDADetailOption; + + TDAMasterOption = (moCascadeOpenClose, + moCascadeApplyUpdates, + moCascadeDelete, + moCascadeUpdate, + moDisableLogOfCascadeDeletes, + moDisableLogOfCascadeUpdates, + moAllInOneFetch); + + TDAMasterOptions = set of TDAMasterOption; + + TDAStreamingOption = (soIgnoreStreamSchema, soDisableEventsWhileStreaming); + TDAStreamingOptions = set of TDAStreamingOption; + + TDARemoteUpdatesOption = (ruoOnPost); + TDARemoteUpdatesOptions = set of TDARemoteUpdatesOption; + + TDABaseRemoteDataAdapter = class(TComponent) + protected + function GetDataStreamer: TDADataStreamer; virtual; abstract; + + { backward compatibility: to provide access to these in the legacy events } + function Get_GetSchemaCall: TDARemoteRequest; virtual; + function Get_GetDataCall: TDARemoteRequest; virtual; + function Get_UpdateDataCall: TDARemoteRequest; virtual; + function Get_GetScriptsCall: TDARemoteRequest; virtual; + public + function ApplyUpdates(aTables: array of TDADataTable; aRefetchAll: boolean = false): boolean; virtual; abstract; + procedure Fill(aTables: array of TDADataTable; aSaveCursor: boolean; aIncludeSchema: boolean); virtual; abstract; + procedure FillSchema(aTables: array of TDADataTable; aPreserveLookupFields: boolean = false; areserveClientCalcFields : boolean = false); virtual; abstract; + procedure FillScripts(aTables: array of TDADataTable); virtual; abstract; + + property DataStreamer: TDADataStreamer read GetDataStreamer; + end; + + { IDADataTableDataset } + IDADataTableDataset = interface + ['{3BADA4F8-BA32-411C-A7CD-DEBD10A4AF06}'] + function GetDataTable: TDADataTable; safecall; + end; + + { IDARangeController } + IDARangeController = interface + ['{5A182854-B824-496F-80C2-6F8064003E13}'] + procedure ApplyRange; safecall; + procedure CancelRange; safecall; + procedure SetRange(const StartValues, EndValues: array of const); safecall; + procedure EditRangeEnd; safecall; + procedure EditRangeStart; safecall; + procedure SetRangeEnd; safecall; + procedure SetRangeStart; safecall; + end; + + { IDANativeDatasetStreaming } + TDANativeDataFormat = (ndfBinary, ndfXML); + IDANativeDatasetStreaming = interface + ['{00B37B20-23DA-49A5-BB5D-B96E50C210F4}'] + procedure NativeSaveToFile(const aFileName : string; DataFormat : TDANativeDataFormat = ndfBinary); + procedure NativeLoadFromFile(const aFileName : string); + procedure NativeSaveToStream(aStream : TStream; DataFormat : TDANativeDataFormat = ndfBinary); + procedure NativeLoadFromStream(aStream : TStream); + end; + + + { TDADataSource } + TDADataSource = class(TDABaseDataSource) + private + fDataTable: TDADataTable; + + function GetDataset: TDataset; + procedure SetDataTable(const Value: TDADataTable); + procedure SetDataset(const Value: TDataset); + function GetOpening: boolean; + function GetActive: boolean; + + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + + property Dataset: TDataset read GetDataset write SetDataset; // hide base class property + public + constructor Create(aOwner: TComponent); override; + destructor Destroy; override; + + property Opening: boolean read GetOpening; + property Active: boolean read GetActive; + published + property DataTable: TDADataTable read fDataTable write SetDataTable; + end; + + { TDADataTable } + TDASortDirection = (sdAscending, sdDescending); + TDAMasterMappingMode = (mmDataRequest, mmParams, mmWhere); + + TDASortDirectionArray = array of TDASortDirection; + TStringArray = array of string; + + IDADataTableScriptingProvider = interface(IDAScriptingProvider) + ['{E16B7359-C733-4F09-96A8-10527CFABB6D}'] + procedure RunDataTableScript(aDataTable: TDADataTable; const aScript: string; const aMethod: string; aLanguage:TROSEScriptLanguage); + end; + + TAutoIncArray = array of Int64; + + {$WARN SYMBOL_DEPRECATED OFF} + TDADataTable = class(TScriptableComponent, {$IFDEF MSWINDOWS}ISupportErrorInfo,{$ENDIF} IDADataTable, IDASQLCommand, IDADataset, IDAEditableDataset, IDADeltaOwner, IDADataReader, IDADatasetEx) + private + fCurrRecId: integer; + + fMasterLink: TMasterDataLink; + + fDelta: IDADelta; + fWhere: TDAWhere; + + fRecIDField: TIntegerField; + + fStreamedActive, + fRefreshing, + fOpening: boolean; + + fDataset: TDataset; + + fFields: TDAFieldCollection; + + fAfterEdit: TDADataTableNotifyEvent; + fAfterInsert: TDADataTableNotifyEvent; + fAfterDelete: TDADataTableNotifyEvent; + fBeforeScroll: TDADataTableNotifyEvent; + fAfterClose: TDADataTableNotifyEvent; + fBeforePost: TDADataTableNotifyEvent; + fAfterScroll: TDADataTableNotifyEvent; + fBeforeCancel: TDADataTableNotifyEvent; + fBeforeRefresh: TDADataTableNotifyEvent; + fBeforeOpen: TDADataTableNotifyEvent; + fAfterRefresh: TDADataTableNotifyEvent; + fAfterOpen: TDADataTableNotifyEvent; + fBeforeEdit: TDADataTableNotifyEvent; + fBeforeClose: TDADataTableNotifyEvent; + fBeforeDelete: TDADataTableNotifyEvent; + fAfterPost: TDADataTableNotifyEvent; + fOnCalcFields: TDADataTableNotifyEvent; + fOnNewRecord: TDADataTableNotifyEvent; + fAfterCancel: TDADataTableNotifyEvent; + fBeforeInsert: TDADataTableNotifyEvent; + fOnFilterRecord: TDADataTableFilterEvent; + fOnEditError: TDADataTableErrorEvent; + fOnDeleteError: TDADataTableErrorEvent; + fOnPostError: TDADataTableErrorEvent; + fBeforeFieldChange: TDADataTableDataChangeEvent; + fAfterFieldChange: TDADataTableDataChangeEvent; + fLogChanges: boolean; + + fRemoteFetchEnabled: boolean; + fSortDirections: TDASortDirectionArray; + fSortFieldNames: TStringArray; + fParams: TDAParamCollection; + + fFetchedMasters: TStringList; + + fMasterParamsMappings, + fMasterRequestMappings: TStringList; + fDynamicWhere: TDAWhereBuilder; + + fDetailOptions: TDADetailOptions; + fMasterOptions: TDAMasterOptions; + fLogicalName: string; + fClosing: boolean; + fFetching: boolean; + fStreaming: boolean; + fOnAfterSchemaCall: TDADataTableRemoteRequestEvent; + fOnAfterDataRequestCall: TDADataTableRemoteRequestEvent; + fOnBeforeSchemaCall: TDADataTableRemoteRequestEvent; + fOnBeforeDataRequestCall: TDADataTableRemoteRequestEvent; + fOnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent; + fOnAfterDataUpdateCall: TDADataTableRemoteRequestEvent; + //fOnApplyUpdatesError: TDAApplyUpdatesError; + fOnReceiveDataStream: TDADataRequestStreamEvent; + fStreamingOptions: TDAStreamingOptions; + fRemoteUpdateOptions: TDARemoteUpdatesOptions; + fLocalSchema: TDASchema; + fLocalConnection: string; + + fBusinessRulesID: string; + fBusinessRules: TDADataTableRules; + fFieldRules: TObjectList; + + fAutoIncs : TAutoIncArray; + fOnAfterApplyUpdates: TDADataTableNotifyEvent; + fOnBeforeApplyUpdates: TDABeforeApplyUpdatesEvent; + fMasterMappingMode: TDAMasterMappingMode; + fMaxRecords: integer; + fOnBeforeMergeDelta: TDADataTableNotifyEvent; + fOnAfterMergeDelta: TDADataTableNotifyEvent; + fStoreActive: boolean; + fScriptCode: TStrings; + fOnBeforeScriptCall: TDADataTableRemoteRequestEvent; + fOnAfterScriptCall: TDADataTableRemoteRequestEvent; + + fOpenTick: cardinal; + fAfterOpenIDataset: TDAAfterOpenDatasetEvent; + fBeforeOpenIDataset: TDABeforeOpenDatasetEvent; + + fRemoteDataAdapter: TDABaseRemoteDataAdapter; + fLocalDataStreamer: TDADataStreamer; + fCustomAttributes: TStrings; + fExpressionEvaluator: TDAStdExpressionEvaluator; + fHasReducedDelta: Boolean; + procedure SetLocalDataStreamer(const Value: TDADataStreamer); + procedure SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); + + procedure SetLogChanges(const Value: boolean); + function GetDataset: TDataset; safecall; + function GetFields: TDAFieldCollection; safecall; + procedure SetFields(const Value: TDAFieldCollection); + function GetActive: boolean; safecall; + procedure SetActive(Value: boolean); safecall; + function GetLogChanges: boolean; + procedure SetParams(const Value: TDAParamCollection); + function GetEditing: boolean; + function GetMasterRequestMappings: TStrings; + procedure SetMasterRequestMappings(const Value: TStrings); + + procedure TempSetRowRecIDValue(Sender: TDataset); + + procedure SetLocalSchema(const Value: TDASchema); + procedure LoadFromLocalSchema; + + procedure SetBusinessRulesID(const Value: string); + function GetHasDelta: boolean; + function GetHasDeltaRecursive: boolean; + function GetRecNo: integer; + procedure SetRecNo(const Value: integer); + + { published property accessors cannot be safecall, so we need wrappers: } + function GetFieldsProperty: TDAFieldCollection; + function GetActiveProperty: boolean; + procedure SetActiveProperty(const Value: boolean); + function GetParamsProperty: TDAParamCollection; + function GetMasterParamsMappings: TStrings; + procedure SetMasterParamsMappings(const Value: TStrings); + + procedure PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); + procedure OnWhereChange(Sender: TObject); + procedure SetScriptCode(const Value: TStrings); + function GetDeltaInitialized: boolean; + procedure SetCustomAttributes(const Value: TStrings); + function Local_ApplyUpdates(RefetchAll: boolean = FALSE): boolean; + procedure InternalCancelUpdateChange(Change: TDADeltaChange); + procedure ExpessionEvaluatorGetValue(Sender: TDAExpressionEvaluator; const aIdentifier: string; out aValue: Variant); + procedure DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); + protected + function CreateAutoIncArray: TAutoIncArray; + function GetAutoIncs: TAutoIncArray; virtual; + procedure SetAutoIncs(const Value: TAutoIncArray); virtual; + + property AutoIncs: TAutoIncArray read GetAutoIncs write SetAutoIncs; + + function GetCurrRecId: integer; virtual; + procedure SetCurrRecId(const Value: integer); virtual; + + procedure Loaded; override; + + // To override + function GetDatasetClass: TDatasetClass; virtual; abstract; + procedure CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); virtual; + procedure DoRefresh(aDataset: TDataset); + procedure DoSort(const FieldNames: array of string; const Directions: array of TDASortDirection); virtual; abstract; + + procedure SetMasterSource(const Value: TDADataSource); virtual; + function GetMasterSource: TDADataSource; virtual; abstract; + procedure SetDetailsFields(const Value: string); virtual; abstract; + procedure SetMasterFields(const Value: string); virtual; + function GetDetailFields: string; virtual; abstract; + function GetMasterFields: string; virtual; abstract; + + function GetFilter: string; virtual; abstract; + function GetFiltered: boolean; virtual; abstract; + procedure SetFilter(const Value: string); virtual; abstract; + procedure SetFiltered(const Value: boolean); virtual; abstract; + + function GetReadOnly: boolean; virtual; + procedure SetReadOnly(const Value: boolean); virtual; + + procedure AttachEventHooks(aDataset: TDataset); virtual; + procedure DetachEventHooks(aDataset: TDataset); virtual; + + // Internal + procedure DoBeforeOpenDataset; virtual; + procedure DoBeforeCloseDataset; virtual; + procedure DoAfterOpenDataset; virtual; + procedure DoAfterCloseDataset; virtual; + procedure DoOpen(IgnoreAutoFetchSettings: Boolean = False); virtual; + + // Internal TDataset event handler hooks + procedure InternalAfterInsert(Sender: TDataset); dynamic; + procedure InternalAfterEdit(Sender: TDataset); dynamic; + procedure InternalBeforePost(Sender: TDataset); dynamic; + procedure InternalBeforeCancel(Sender: TDataset); dynamic; + procedure InternalAfterDelete(Sender: TDataset); dynamic; + procedure InternalBeforeScroll(Sender: TDataset); dynamic; + procedure InternalAfterScroll(Sender: TDataset); dynamic; + procedure InternalBeforeRefresh(Sender: TDataset); dynamic; + procedure InternalAfterRefresh(Sender: TDataset); dynamic; + procedure InternalOnCalcFields(Sender: TDataset); dynamic; + procedure InternalOnNewRecord(Sender: TDataset); dynamic; + procedure InternalAfterCancel(Sender: TDataset); dynamic; + procedure InternalBeforeInsert(Sender: TDataset); dynamic; + procedure InternalBeforeDelete(Sender: TDataset); dynamic; + procedure InternalBeforeEdit(Sender: TDataset); dynamic; + procedure InternalAfterPost(Sender: TDataset); dynamic; + procedure InternalBeforeFieldUpdate(Sender: TDACustomField); + procedure InternalAfterFieldUpdate(Sender: TDACustomField); + + procedure InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); dynamic; + + procedure InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + procedure InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + procedure InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; + + // IDASQLCommand + function GetParams: TDAParamCollection; safecall; + procedure RefreshParams; safecall; + function Execute: integer; safecall; + function GetText: string; safecall; + procedure SetText(const Value: string); safecall; + function GetName: string; safecall; + + // IDADeltaOwner + function GetDelta: IDADelta; safecall; + + // IDADataReader + function IDADataReader.First = DataReaderFirst; + function IDADataReader.Next = DataReaderNext; + function DataReaderFirst: boolean; safecall; + function DataReaderNext: boolean; safecall; + + function GetFieldNames(Index: integer): string; safecall; + function GetFieldIndexes(const aName: string): integer; safecall; + function GetAsBoolean(Index: integer): boolean; overload; safecall; + function GetAsCurrency(Index: integer): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsDateTime(Index: integer): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsFloat(Index: integer): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsInteger(Index: integer): integer; overload; safecall; + function GetAsString(Index: integer): string; overload; safecall; + function GetAsVariant(Index: integer): variant; overload; safecall; + function GetAsBoolean(const FieldName: string): boolean; overload; safecall; + function GetAsCurrency(const FieldName: string): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsDateTime(const FieldName: string): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsFloat(const FieldName: string): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} + function GetAsInteger(const FieldName: string): integer; overload; safecall; + function GetAsString(const FieldName: string): string; overload; safecall; + function GetAsVariant(const FieldName: string): variant; overload; safecall; + + // IDADataset + function GetIsEmpty: boolean; safecall; + function GetRecordCount: integer; safecall; + function GetFieldCount: integer; safecall; + function GetBOF: boolean; safecall; + function GetEOF: boolean; safecall; + function GetSQL: string; safecall; + procedure SetSQL(const Value: string); safecall; + function GetFieldValues(Index: integer): Variant; safecall; + function GetNames(Index: integer): string; safecall; + function GetWhere: TDAWhere; safecall; deprecated; + function GetDynamicWhere: TDAWhereBuilder; safecall; + procedure SetDynamicWhere(const Value: TDAWhereBuilder);safecall; + function GetPrepared: boolean; safecall; + procedure SetPrepared(Value: boolean); safecall; + function GetState: TDataSetState; safecall; + function GetLogicalName: string; safecall; + procedure SetLogicalName(aName : string); safecall; + + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + + procedure OnMasterChange(Sender: TObject); virtual; + procedure OnMasterDisable(Sender: TObject); virtual; + + function GetOnAfterOpen: TDAAfterOpenDatasetEvent; safecall; + function GetOnBeforeOpen: TDABeforeOpenDatasetEvent; safecall; + procedure SetOnAfterOpen(const Value: TDAAfterOpenDatasetEvent); safecall; + procedure SetOnBeforeOpen(const Value: TDABeforeOpenDatasetEvent); safecall; + + function GetOnAfterExecute: TDAAfterExecuteCommandEvent; safecall; + function GetOnBeforeExecute: TDABeforeExecuteCommandEvent; safecall; + procedure SetOnAfterExecute(const Value: TDAAfterExecuteCommandEvent); safecall; + procedure SetOnBeforeExecute(const Value: TDABeforeExecuteCommandEvent); safecall; + function GetOnExecuteError: TDAExecuteCommandErrorEvent; safecall; + procedure SetOnExecuteError(const Value: TDAExecuteCommandErrorEvent); safecall; + function GetOnOpenError: TDAOpenDatasetErrorEvent; safecall; + procedure SetOnOpenError(const Value: TDAOpenDatasetErrorEvent); safecall; + + procedure NotifyFieldsClear; + + // IInterface + function QueryInterface(const IID: TGUID; out Obj): HResult; override; + + property MasterLink: TMasterDataLink read fMasterLink; + + {$IFDEF MSWINDOWS} + protected + function InterfaceSupportsErrorInfo(const iid: TGUID): HResult; stdcall; + + public + function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override; + {$ENDIF} + + public { for Delta } + property RecIDField : TIntegerField read fRecIDField write fRecIDField; + function GetRowRecIDValue: integer; + + + procedure CallScript(const aEvent: string); + + procedure InitializeDataTable; + procedure DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); + procedure WriteDeltaToStream(aStreamer: TDADataStreamer); + procedure ReadDeltaFromStream(aStreamer: TDADataStreamer; aFailedDeltas:TList);overload; + procedure ReadDeltaFromStream(aStreamer: TDADataStreamer); overload; + + public + constructor Create(aOwner: TComponent); override; + destructor Destroy; override; + + procedure EnableConstraints; virtual; safecall; abstract; + procedure DisableConstraints; virtual; safecall; abstract; + + procedure LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); virtual; + procedure FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings : Boolean = False); dynamic; + procedure LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); + procedure LoadScript(aDatasetName : string = ''); + + function ApplyUpdates(RefetchAll: boolean = FALSE): boolean; dynamic; + procedure CancelUpdates(IncludeDetails : boolean = TRUE); + procedure CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); + + procedure Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); + procedure UnSort; + + procedure ClearFields; + procedure ClearRows; + + procedure CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); overload; + procedure CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); overload; + + procedure SaveToStream(aStream: TStream); + procedure LoadFromStream(aStream: TStream); + procedure SaveToFile(const aFileName: string); + procedure LoadFromFile(const aFileName: string); + + procedure MergeDelta; virtual; + + // Master detail + function GetDetailDataTables: TList; + function GetDetailTablesforApplyUpdate(aRecursive: boolean = True): TList; + procedure GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); + function GetMasterDataTable : TDADataTable; + + // Methods + procedure Open; safecall; + procedure Close; safecall; + + procedure EnableControls; safecall; + procedure DisableControls; safecall; + + procedure Next; safecall; + + procedure Edit; safecall; + procedure Insert; safecall; + procedure Post; safecall; + procedure Cancel; safecall; + procedure Append; safecall; + procedure Delete; safecall; + + procedure Prior; safecall; + procedure First; safecall; + procedure Last; safecall; + + procedure Refresh; safecall; + + function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; safecall; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; safecall; + + function FieldByName(const aName: string): TDAField; safecall; + function FindField(const aName: string): TDAField; safecall; + function ParamByName(const aName: string): TDAParam; safecall; + + function GetBookmark: pointer; safecall; + procedure GotoBookmark(Bookmark: TBookmark); safecall; + procedure FreeBookmark(Bookmark: TBookmark); safecall; + + procedure EnableEventHandlers; safecall; + procedure DisableEventHandlers; safecall; + + procedure InternalSetFetching(aFetching: boolean); + + procedure AddRecord(const FieldNames : array of string; const FieldValues : array of Variant); safecall; + + function GetCurrentRecIdValue: integer; + procedure SetCurrentRecIdValue(Value: integer); + + // Properties + property CurrRecId: integer read GetCurrRecId write SetCurrRecId; + property RecIDValue: integer read GetRowRecIDValue; + property Delta: IDADelta read GetDelta write fDelta; + property RecNo : integer read GetRecNo write SetRecNo; + + property BOF: boolean read GetBOF; + property EOF: boolean read GetEOF; + property RecordCount: integer read GetRecordCount; + property FieldCount: integer read GetFieldCount; + property FieldValues[Index: integer]: Variant read GetFieldValues; + property Names[Index: integer]: string read GetNames; + + property SortFieldNames: TStringArray read fSortFieldNames; + property SortDirections: TDASortDirectionArray read fSortDirections; + + property Opening: boolean read fOpening; + property Closing: boolean read fClosing; + property Editing: boolean read GetEditing; + property Fetching: boolean read fFetching; + + property State: TDataSetState read GetState; + property Dataset: TDataset read GetDataset; + + property IsEmpty : boolean read GetIsEmpty; + + property BusinessEventsObj: TDADataTableRules read fBusinessRules; + + property HasDelta: boolean read GetHasDelta; + property HasDeltaRecursive: boolean read GetHasDeltaRecursive; + property DeltaInitialized: boolean read GetDeltaInitialized; + + property Where : TDAWhere read GetWhere; + property DynamicWhere: TDAWhereBuilder read GetDynamicWhere write SetDynamicWhere; + procedure CheckProperties(ACheckRemoteFetching: Boolean=False); virtual; + property HasReducedDelta: boolean read fHasReducedDelta; + published + property Active: boolean read GetActiveProperty write SetActiveProperty stored fStoreActive default false; + property StoreActive: boolean read fStoreActive write fStoreActive default false; + + property RemoteUpdatesOptions: TDARemoteUpdatesOptions read fRemoteUpdateOptions write fRemoteUpdateOptions; + + property MaxRecords : integer read fMaxRecords write fMaxRecords default -1; + + property Fields: TDAFieldCollection read GetFieldsProperty write SetFields; + property Params: TDAParamCollection read GetParamsProperty write SetParams; + + property MasterMappingMode : TDAMasterMappingMode read fMasterMappingMode write fMasterMappingMode default mmParams; + property MasterParamsMappings : TStrings read GetMasterParamsMappings write SetMasterParamsMappings; + + property LogChanges: boolean read GetLogChanges write SetLogChanges default true; + property StreamingOptions: TDAStreamingOptions read fStreamingOptions write fStreamingOptions; + property RemoteFetchEnabled: boolean read fRemoteFetchEnabled write fRemoteFetchEnabled default true; + + property ScriptCode : TStrings read fScriptCode write SetScriptCode; + property CustomAttributes : TStrings read fCustomAttributes write SetCustomAttributes; + + property RemoteDataAdapter: TDABaseRemoteDataAdapter read fRemoteDataAdapter write SetRemoteDataAdapter; + + property BeforeOpen: TDADataTableNotifyEvent read fBeforeOpen write fBeforeOpen; + property AfterOpen: TDADataTableNotifyEvent read fAfterOpen write fAfterOpen; + property BeforeClose: TDADataTableNotifyEvent read fBeforeClose write fBeforeClose; + property AfterClose: TDADataTableNotifyEvent read fAfterClose write fAfterClose; + property BeforeInsert: TDADataTableNotifyEvent read fBeforeInsert write fBeforeInsert; + property AfterInsert: TDADataTableNotifyEvent read fAfterInsert write fAfterInsert; + property BeforeEdit: TDADataTableNotifyEvent read fBeforeEdit write fBeforeEdit; + property AfterEdit: TDADataTableNotifyEvent read fAfterEdit write fAfterEdit; + property BeforePost: TDADataTableNotifyEvent read fBeforePost write fBeforePost; + property AfterPost: TDADataTableNotifyEvent read fAfterPost write fAfterPost; + property BeforeCancel: TDADataTableNotifyEvent read fBeforeCancel write fBeforeCancel; + property AfterCancel: TDADataTableNotifyEvent read fAfterCancel write fAfterCancel; + property BeforeDelete: TDADataTableNotifyEvent read fBeforeDelete write fBeforeDelete; + property AfterDelete: TDADataTableNotifyEvent read fAfterDelete write fAfterDelete; + property BeforeScroll: TDADataTableNotifyEvent read fBeforeScroll write fBeforeScroll; + property AfterScroll: TDADataTableNotifyEvent read fAfterScroll write fAfterScroll; + property BeforeRefresh: TDADataTableNotifyEvent read fBeforeRefresh write fBeforeRefresh; + property AfterRefresh: TDADataTableNotifyEvent read fAfterRefresh write fAfterRefresh; + property OnCalcFields: TDADataTableNotifyEvent read fOnCalcFields write fOnCalcFields; + property OnNewRecord: TDADataTableNotifyEvent read fOnNewRecord write fOnNewRecord; + + property OnFilterRecord: TDADataTableFilterEvent read fOnFilterRecord write fOnFilterRecord; + + property ReadOnly : boolean read GetReadOnly write SetReadOnly; + + property OnDeleteError: TDADataTableErrorEvent read fOnDeleteError write fOnDeleteError; + property OnEditError: TDADataTableErrorEvent read fOnEditError write fOnEditError; + property OnPostError: TDADataTableErrorEvent read fOnPostError write fOnPostError; + + property LocalSchema: TDASchema read fLocalSchema write SetLocalSchema; + property LocalDataStreamer: TDADataStreamer read fLocalDataStreamer write SetLocalDataStreamer; + property LocalConnection: string read fLocalConnection write fLocalConnection; + + property MasterSource: TDADataSource read GetMasterSource write SetMasterSource; + property MasterFields: string read GetMasterFields write SetMasterFields; + property DetailFields: string read GetDetailFields write SetDetailsFields; + property MasterRequestMappings: TStrings read GetMasterRequestMappings write SetMasterRequestMappings; + + property DetailOptions: TDADetailOptions read fDetailOptions write fDetailOptions; + property MasterOptions: TDAMasterOptions read fMasterOptions write fMasterOptions; + + property Filtered: boolean read GetFiltered write SetFiltered default false; + property Filter: string read GetFilter write SetFilter; + + property LogicalName: string read fLogicalName write fLogicalName; + + //property OnApplyUpdatesError: TDAApplyUpdatesError read fOnApplyUpdatesError write fOnApplyUpdatesError; + + property OnAfterApplyUpdates : TDADataTableNotifyEvent read fOnAfterApplyUpdates write fOnAfterApplyUpdates; + property OnBeforeApplyUpdates : TDABeforeApplyUpdatesEvent read fOnBeforeApplyUpdates write fOnBeforeApplyUpdates; + property OnBeforeMergeDelta : TDADataTableNotifyEvent read fOnBeforeMergeDelta write fOnBeforeMergeDelta; + property OnAfterMergeDelta : TDADataTableNotifyEvent read fOnAfterMergeDelta write fOnAfterMergeDelta; + + property OnBeforeDataRequestCall: TDADataTableRemoteRequestEvent read fOnBeforeDataRequestCall write fOnBeforeDataRequestCall; + property OnAfterDataRequestCall: TDADataTableRemoteRequestEvent read fOnAfterDataRequestCall write fOnAfterDataRequestCall; + property OnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent read fOnBeforeDataUpdateCall write fOnBeforeDataUpdateCall; + property OnAfterDataUpdateCall: TDADataTableRemoteRequestEvent read fOnAfterDataUpdateCall write fOnAfterDataUpdateCall; + property OnBeforeSchemaCall: TDADataTableRemoteRequestEvent read fOnBeforeSchemaCall write fOnBeforeSchemaCall; + property OnAfterSchemaCall: TDADataTableRemoteRequestEvent read fOnAfterSchemaCall write fOnAfterSchemaCall; + property OnBeforeScriptCall: TDADataTableRemoteRequestEvent read fOnBeforeScriptCall write fOnBeforeScriptCall; + property OnAfterScriptCall: TDADataTableRemoteRequestEvent read fOnAfterScriptCall write fOnAfterScriptCall; + + property OnReceiveDataStream: TDADataRequestStreamEvent read fOnReceiveDataStream write fOnReceiveDataStream; + + property OnBeforeFieldChange: TDADataTableDataChangeEvent read fBeforeFieldChange write fBeforeFieldChange; + property OnAfterFieldChange: TDADataTableDataChangeEvent read fAfterFieldChange write fAfterFieldChange; + property BusinessRulesID: string read fBusinessRulesID write SetBusinessRulesID; + end; + + TDADataTableClass = class of TDADataTable; + {$WARN SYMBOL_DEPRECATED ON} + + { Exceptions } + EDABizValidationException = class(EROException); + + { TDABusinessRules } + TDABusinessRules = class(TDAEngineBaseObject) + private + protected + function _AddRef: Integer; override; + function _Release: Integer; override; + + public + constructor Create; virtual; + destructor Destroy; override; + + end; + + IDAStronglyTypedDataTable = interface + ['{4D4063AA-DFD0-4B4D-8CC2-FCE3BE1D2F87}'] + procedure Open; + procedure Close; + + function GetActive: boolean; + procedure SetActive(const Value: boolean); + + property Active: boolean read GetActive write SetActive; + + procedure Append; + procedure Cancel; + procedure Delete; + procedure Edit; + procedure First; + procedure Insert; + procedure Last; + procedure Next; + procedure Post; + procedure Prior; + + function Locate(const aKeyFields: string; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; + + function GetDataTable : TDADataTable; + + function GetState : TDatasetState; + function GetIsEmpty : boolean; + function GetRecNo : integer; + procedure SetRecNo(Value : integer); + function GetMasterOptions : TDAMasterOptions; + procedure SetMasterOptions(Value : TDAMasterOptions); + function GetDetailOptions : TDADetailOptions; + procedure SetDetailOptions(Value : TDADetailOptions); + + function IsFieldNull(const FieldIndexOrName : Variant) : boolean; + procedure ClearField(const FieldIndexOrName : Variant); + + function GetBOF: boolean; + function GetEOF: boolean; + function GetRecordCount: integer; + + property BOF: boolean read GetBOF; + property EOF: boolean read GetEOF; + property RecordCount: integer read GetRecordCount; + property RecNo : integer read GetRecNo write SetRecNo; + + property MasterOptions : TDAMasterOptions read GetMasterOptions write SetMasterOptions; + property DetailOptions : TDADetailOptions read GetDetailOptions write SetDetailOptions; + + property IsEmpty : boolean read GetIsEmpty; + property State : TDatasetState read GetState; + property DataTable : TDADataTable read GetDataTable; + end; + + { TDAFieldRules } + TDAFieldRules = class(TDABusinessRules) + private + fField : TDAField; + fDataTable : TDADataTable; + + protected + // Misc + procedure Attach(aDataTable: TDADataTable); virtual; + procedure Detach(aDataTable: TDADataTable); virtual; + + // Event handler hooks + procedure OnValidate(Sender: TDACustomField); virtual; + procedure OnChange(Sender: TDACustomField); virtual; + + property DataTable : TDADataTable read fDataTable; + + public + constructor Create(aField : TDAField; aDataTable : TDADataTable); reintroduce; virtual; + destructor Destroy; override; + end; + + TDAFieldRulesClass = class of TDAFieldRules; + + { TDADataTableRules } + TDADataTableRules = class(TDABusinessRules, IDAStronglyTypedDataTable, IDARangeController) + private + fDataTable: TDADataTable; + fDetails : TStringList; + + function GetDetails(Index: integer): TDADataTable; + function GetDetailsCount: integer; + + protected + // Misc + function GetDataTable: TDADataTable; + procedure Attach(aDataTable: TDADataTable); virtual; + procedure Detach(aDataTable: TDADataTable); virtual; + + procedure RefreshDetails; + + function FindDetail(const aLogicalName : string) : TDADataTable; + function DetailByName(const aLogicalName : string) : TDADataTable; + + // Business events + procedure BeforeOpen(Sender: TDADataTable); virtual; + procedure AfterOpen(Sender: TDADataTable); virtual; + procedure BeforeClose(Sender: TDADataTable); virtual; + procedure AfterClose(Sender: TDADataTable); virtual; + procedure BeforeInsert(Sender: TDADataTable); virtual; + procedure AfterInsert(Sender: TDADataTable); virtual; + procedure BeforeEdit(Sender: TDADataTable); virtual; + procedure AfterEdit(Sender: TDADataTable); virtual; + procedure BeforePost(Sender: TDADataTable); virtual; + procedure AfterPost(Sender: TDADataTable); virtual; + procedure BeforeCancel(Sender: TDADataTable); virtual; + procedure AfterCancel(Sender: TDADataTable); virtual; + procedure BeforeDelete(Sender: TDADataTable); virtual; + procedure AfterDelete(Sender: TDADataTable); virtual; + procedure BeforeScroll(Sender: TDADataTable); virtual; + procedure AfterScroll(Sender: TDADataTable); virtual; + procedure BeforeRefresh(Sender: TDADataTable); virtual; + procedure AfterRefresh(Sender: TDADataTable); virtual; + procedure OnCalcFields(Sender: TDADataTable); virtual; + procedure OnNewRecord(Sender: TDADataTable); virtual; + + procedure OnDeleteError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnEditError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; + procedure OnFilterRecord(DataTable: TDADataTable; var Accept : boolean); virtual; + + procedure OnAfterSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnBeforeScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + procedure OnAfterScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; + + procedure OnAfterApplyUpdates(DataTable: TDADataTable); virtual; + procedure OnBeforeMergeDelta(DataTable: TDADataTable); virtual; + procedure OnAfterMergeDelta(DataTable: TDADataTable); virtual; + + procedure OnReceiveDataStream(DataTable: TDADataTable; Stream: TStream); virtual; + procedure OnBeforeApplyUpdates(DataTable: TDADataTable; const Delta: IDADelta); virtual; + + procedure Open; virtual; + procedure Close; virtual; + + function GetActive: boolean; + procedure SetActive(const Value: boolean); + + property Active: boolean read GetActive write SetActive; + + procedure Append; virtual; + procedure Cancel; virtual; + procedure Delete; virtual; + procedure Edit; virtual; + procedure First; virtual; + procedure Insert; virtual; + procedure Last; virtual; + procedure Next; virtual; + procedure Post; virtual; + procedure Prior; virtual; + + function GetBOF: Boolean; virtual; + function GetEOF: Boolean; virtual; + function GetRecordCount: Integer; virtual; + function Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; virtual; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; + + function GetMasterOptions : TDAMasterOptions; + procedure SetMasterOptions(Value : TDAMasterOptions); + function GetDetailOptions : TDADetailOptions; + procedure SetDetailOptions(Value : TDADetailOptions); + function GetRecNo : integer; + procedure SetRecNo(Value : integer); + function GetIsEmpty: boolean; + function GetState: TDatasetState; + + function IsFieldNull(const FieldIndexOrName : Variant) : boolean; + procedure ClearField(const FieldIndexOrName : Variant); + + property DataTable: TDADataTable read GetDataTable; + property Details[Index : integer] : TDADataTable read GetDetails; + property DetailCount : integer read GetDetailsCount; + property State : TDatasetState read GetState; + property IsEmpty : boolean read GetIsEmpty; + + { IDARangeController } + procedure ApplyRange; safecall; + procedure CancelRange; safecall; + procedure SetRange(const StartValues, EndValues: array of const); safecall; + procedure EditRangeEnd; safecall; + procedure EditRangeStart; safecall; + procedure SetRangeEnd; safecall; + procedure SetRangeStart; safecall; + + public + constructor Create(aDataTable: TDADataTable); reintroduce; virtual; + destructor Destroy; override; + end; + + TDADataTableRulesClass = class of TDADataTableRules; + + { TDADataTableList } + TDADataTableList = class(TList) + private + function GetItems(Index: integer): TDADataTable; + function GetPendingChangeCount: integer; + protected + public + constructor Create(aOwnerComponent : TComponent); + + function ScanAndAdd(aOwnerComponent : TComponent) : integer; + + function Add(aDataTable : TDADataTable) : integer; + procedure Remove(aDataTable : TDADataTable); + + property Items[Index : integer] : TDADataTable read GetItems; default; + property PendingChangeCount : integer read GetPendingChangeCount; + end; + +// Registration routines +procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); +function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; + +procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); +function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; + +// Helper functions +function NewDelta(aDataTable: TDADataTable): IDADelta; overload; + +function DatatableFromStream(aStream : TStream; + aDataTableClass : TDADataTableClass; + anAdapter : TDADataAdapter; + const aDatasetName : string = '') : TDADataTable; + +implementation + +uses + {$IFDEF DESIGNTIME} + {$IFDEF MSWINDOWS} + Dialogs, + {$ENDIF MSWINDOWS} + {$IFDEF LINUX} + QDialogs, + {$ENDIF LINUX} + {$ENDIF DESIGNTIME} + TypInfo, Variants, + uROClient, uROSessions, uROXMLIntf, + uDARegExpr, uDABusinessProcessor, + uDARemoteDataAdapter; + +var + _bizfields, + _bizdatatables: TStringList; + +type + TDataSetHack = class(TDataSet); + +function NewDelta(aDataTable: TDADataTable): IDADelta; +begin + result := TDADelta.Create(aDataTable); +end; + +procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); +var + idx: integer; +begin + idx := _bizdatatables.IndexOf(anID); + + if (idx >= 0) then + _bizdatatables.Objects[idx] := TObject(aDataTableRulesClass) + else + _bizdatatables.AddObject(anID, TObject(aDataTableRulesClass)); +end; + +function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; +var + idx: integer; +begin + result := FALSE; + idx := _bizdatatables.IndexOf(anID); + if (idx >= 0) then begin + aDataTableRulesClass := TDADataTableRulesClass(_bizdatatables.Objects[idx]); + result := TRUE; + end + else + aDataTableRulesClass := nil; +end; + +procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); +var + idx: integer; +begin + idx := _bizfields.IndexOf(anID); + + if (idx >= 0) then + _bizfields.Objects[idx] := TObject(aFieldRulesClass) + else + _bizfields.AddObject(anID, TObject(aFieldRulesClass)); +end; + +function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; +var + idx: integer; +begin + result := FALSE; + idx := _bizfields.IndexOf(anID); + if (idx >= 0) then begin + aFieldRulesClass := TDAFieldRulesClass(_bizfields.Objects[idx]); + result := TRUE; + end + else + aFieldRulesClass := nil; +end; + +function DatatableFromStream(aStream : TStream; + aDataTableClass : TDADataTableClass; + anAdapter : TDADataAdapter; + const aDatasetName : string = '') : TDADataTable; +begin + result := aDataTableClass.Create(NIL); + result.RemoteFetchEnabled := FALSE; + anAdapter.ReadDataset(aStream, result, TRUE, aDatasetName); + result.First; +end; + +{ TDADataTable } + +constructor TDADataTable.Create(aOwner: TComponent); +begin + inherited; + fHasReducedDelta := False; + fScriptCode := TStringList.Create; + fCustomAttributes := TStringList.Create; + fMaxRecords := -1; + + fMasterMappingMode := mmParams; + fMasterParamsMappings := TStringList.Create; + + fFieldRules := TObjectList.Create; + + fRemoteUpdateOptions := []; + fStreamingOptions := [soDisableEventsWhileStreaming]; + fDetailOptions := [dtCascadeOpenClose, + dtCascadeApplyUpdates, + dtAutoFetch, + dtCascadeDelete, + dtCascadeUpdate, + dtDisableLogOfCascadeDeletes, + dtDisableLogOfCascadeUpdates, + dtIncludeInAllInOneFetch // Done to avoid breaking existing apps + ]; + + fMasterOptions := [moCascadeOpenClose, + moCascadeApplyUpdates, + moCascadeDelete, + moCascadeUpdate, + moDisableLogOfCascadeDeletes, + moDisableLogOfCascadeUpdates]; + + fFetchedMasters := TStringList.Create; + fFetchedMasters.Duplicates := dupError; + fFetchedMasters.Sorted := TRUE; + + fMasterRequestMappings := TStringList.Create; + + fRemoteFetchEnabled := TRUE; + fStreaming := False; + + SetLength(fSortDirections, 0); + SetLength(fSortFieldNames, 0); + + fFields := TDAFieldCollection.Create(Self); + fFields.OnFieldBeforeUpdate := InternalBeforeFieldUpdate; + fFields.OnFieldAfterUpdate := InternalAfterFieldUpdate; + fParams := TDAParamCollection.Create(Self); + + fWhere := TDAWhere.Create(fFields, TRUE); + fWhere.OnChange := OnWhereChange; + + fDataset := GetDatasetClass.Create(Self); + fDataset.Name := 'Dataset'; + + fMasterLink := TMasterDataLink.Create(fDataset); + fMasterLink.OnMasterChange := OnMasterChange; + fMasterLink.OnMasterDisable := OnMasterDisable; + + fExpressionEvaluator := TDAStdExpressionEvaluator.Create; + fExpressionEvaluator.OnGetValue := ExpessionEvaluatorGetValue; + + fDynamicWhere := TDAWhereBuilder.Create; + fLogChanges := TRUE; +end; + +destructor TDADataTable.Destroy; +begin + fDynamicWhere.Free; + fExpressionEvaluator.Free; + fFields.Free; + fWhere.Free; + + fMasterLink.Free; + fMasterRequestMappings.Free; + fMasterParamsMappings.Free; + + fFetchedMasters.Free; + + if (fBusinessRules <> nil) then begin + fBusinessRules.Detach(Self); + fBusinessRules.Free; + end; + + fFieldRules.Free; + fParams.Free; + + fDelta := NIL; + fScriptCode.Free; + fCustomAttributes.Free; + + inherited; +end; + +procedure TDADataTable.OnWhereChange(Sender : TObject); +var + par : TRORequestParam; +begin + //TODO: par := DataRequestCall.FindParam(par_UserFilter); + //if (par<>NIL) then par.AsString := fWhere.Clause; + + if RemoteFetchEnabled and (RemoteDataAdapter <> nil) then + begin + par := (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall).FindParam('UserFilter'); + if (par <> NIL) then + par.AsString := fWhere.Clause; + end; +end; + +procedure TDADataTable.AttachEventHooks(aDataset: TDataset); +var i : integer; + lFieldRulesClass : TDAFieldRulesClass; + lFieldRules : TDAFieldRules; + lField : TDAField; +begin + if (csDesigning in ComponentState) then Exit; + + aDataset.BeforeInsert := InternalBeforeInsert; + aDataset.AfterInsert := InternalAfterInsert; + aDataset.BeforeEdit := InternalBeforeEdit; + aDataset.AfterEdit := InternalAfterEdit; + aDataset.BeforePost := InternalBeforePost; + aDataset.AfterPost := InternalAfterPost; + aDataset.BeforeCancel := InternalBeforeCancel; + aDataset.AfterCancel := InternalAfterCancel; + aDataset.BeforeDelete := InternalBeforeDelete; + aDataset.AfterDelete := InternalAfterDelete; + aDataset.BeforeScroll := InternalBeforeScroll; + aDataset.AfterScroll := InternalAfterScroll; + aDataset.BeforeRefresh := InternalBeforeRefresh; + aDataset.AfterRefresh := InternalAfterRefresh; + + aDataset.OnCalcFields := InternalOnCalcFields; + aDataset.OnNewRecord := InternalOnNewRecord; + + aDataset.OnFilterRecord := InternalOnFilterRecord; + + aDataset.OnDeleteError := InternalOnDeleteError; + aDataset.OnEditError := InternalOnEditError; + aDataset.OnPostError := InternalOnPostError; + + for i := 0 to (fFields.Count-1) do begin + lField := Fields[i]; + if (lField.BusinessClassID='') then Continue; + + Check(not FindFieldRules(lField.BusinessClassID, lFieldRulesClass), 'Invalid BusinessClassID "%s"', [lField.BusinessClassID]); + + lFieldRules := lFieldRulesClass.Create(lField, Self); + fFieldRules.Add(lFieldRules); + end; + + fFields.FieldEventsDisabled := FALSE; +end; + +procedure TDADataTable.DetachEventHooks(aDataset: TDataset); +begin + if (csDesigning in ComponentState) then Exit; + + aDataset.BeforeInsert := nil; + aDataset.AfterInsert := nil; + aDataset.BeforeEdit := nil; + aDataset.AfterEdit := nil; + aDataset.BeforePost := TempSetRowRecIDValue; // We still need to autoinc the RecID!!! + aDataset.AfterPost := nil; + aDataset.BeforeCancel := nil; + aDataset.AfterCancel := nil; + aDataset.BeforeDelete := nil; + aDataset.AfterDelete := nil; + aDataset.BeforeScroll := nil; + aDataset.AfterScroll := nil; + aDataset.BeforeRefresh := nil; + aDataset.AfterRefresh := nil; + if not Filtered then + aDataset.OnCalcFields := nil; + aDataset.OnNewRecord := nil; + + aDataset.OnFilterRecord := nil; + + aDataset.OnDeleteError := nil; + aDataset.OnEditError := nil; + aDataset.OnPostError := nil; + + fFields.FieldEventsDisabled := TRUE; + fFieldRules.Clear; // Destroyes them +end; + +procedure TDADataTable.InternalAfterDelete(Sender: TDataset); +begin + CallScript('AfterDelete'); + if Assigned(AfterDelete) then AfterDelete(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterDelete(Self); + + if (ruoOnPost in RemoteUpdatesOptions) then ApplyUpdates(); +end; + +procedure TDADataTable.InternalAfterEdit(Sender: TDataset); +begin + CallScript('AfterEdit'); + if Assigned(AfterEdit) then AfterEdit(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterEdit(Self); +end; + +procedure TDADataTable.InternalAfterInsert(Sender: TDataset); +var + i: integer; +begin + CallScript('AfterInsert'); + + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + // (autoinc) + for i := 0 to (fFields.Count-1) do + if (fFields[i].DataType=datLargeAutoInc) then begin + fFields[i].AsLargeInt := AutoIncs[i]; + AutoIncs[i] := AutoIncs[i]-1; + end else + if (fFields[i].DataType=datAutoInc) then begin + fFields[i].AsInteger := AutoIncs[i]; + AutoIncs[i] := AutoIncs[i]-1; + end; + end; + + if Assigned(AfterInsert) then AfterInsert(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterInsert(Self); +end; + +procedure TDADataTable.InternalAfterRefresh(Sender: TDataset); +begin + CallScript('AfterRefresh'); + if Assigned(AfterRefresh) then AfterRefresh(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterRefresh(Self); +end; + +procedure TDADataTable.InternalAfterScroll(Sender: TDataset); +begin + if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) + then Exit; + CallScript('AfterScroll'); + if Assigned(AfterScroll) then AfterScroll(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterScroll(Self); +end; + +procedure TDADataTable.InternalBeforeCancel(Sender: TDataset); +begin + CallScript('BeforeCancel'); + if Assigned(BeforeCancel) then BeforeCancel(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeCancel(Self); +end; + +procedure TDADataTable.InternalBeforeRefresh(Sender: TDataset); +begin + CallScript('BeforeRefresh'); + if Assigned(BeforeRefresh) then BeforeRefresh(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeRefresh(Self); + DoRefresh(fDataset); +end; + +procedure TDADataTable.InternalBeforeScroll(Sender: TDataset); +begin + if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) + then Exit; + CallScript('BeforeScroll'); + if Assigned(BeforeScroll) then BeforeScroll(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeScroll(Self); +end; + +procedure TDADataTable.InternalOnCalcFields(Sender: TDataset); +var + i: integer; +begin + CallScript('OnCalcFields'); + if Assigned(OnCalcFields) then OnCalcFields(Self); + if Assigned(fBusinessRules) then fBusinessRules.OnCalcFields(Self); + For i:= 0 to fFields.Count-1 do + With fFields[i] do + if Calculated and (Expression <> '') then Value:= fExpressionEvaluator.Evaluate(Expression); +end; + +procedure TDADataTable.InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + if Assigned(OnDeleteError) then OnDeleteError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnDeleteError(Self, Error, Action); +end; + +procedure TDADataTable.InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + if Assigned(OnEditError) then OnEditError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnEditError(Self, Error, Action); +end; + +procedure TDADataTable.InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); +begin + if Assigned(OnFilterRecord) then OnFilterRecord(Self, Accept); + if Assigned(fBusinessRules) then fBusinessRules.OnFilterRecord(Self, Accept); +end; + +procedure TDADataTable.InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); +begin + fDelta.RestoreLastChange; // ALEF: added as follow up to the Post errors (Jeff B.) + + if Assigned(OnPostError) then OnPostError(Self, Error, Action); + if Assigned(fBusinessRules) then fBusinessRules.OnPostError(Self, Error, Action); +end; + +procedure TDADataTable.SetLogChanges(const Value: boolean); +begin + fLogChanges := Value; +end; + +function TDADataTable.GetDataset: TDataset; +begin + result := fDataset // inherited Dataset; +end; + +function TDADataTable.GetFields: TDAFieldCollection; +begin + result := fFields; +end; + +procedure TDADataTable.SetFields(const Value: TDAFieldCollection); +begin + if Active then Close; + fFields.Assign(Value); +end; + +function TDADataTable.GetActive: boolean; +begin + result := fDataset.Active; +end; + +procedure TDADataTable.SetActive(Value: boolean); +begin + if (csLoading in ComponentState) then + fStreamedActive := Value + else begin + if (Value <> Active) then begin + if Value then + Open + else + Close + end; + end; +end; + +procedure TDADataTable.InternalOnNewRecord(Sender: TDataset); +var + i: integer; +begin + fFields.FieldEventsDisabled := TRUE; + try + try + for i := 0 to (fFields.Count - 1) do + if (fFields[i].DefaultValue <> '') then fFields[i].Value := fFields[i].DefaultValue; + + fFields.FieldEventsDisabled := FALSE; + + CallScript('OnNewRecord'); + if Assigned(OnNewRecord) then OnNewRecord(Self); + if Assigned(fBusinessRules) then fBusinessRules.OnNewRecord(Self); + except + fDelta.CancelChange; // OnNewRecord's exception put the dataset in read mode so we must cancel the change + raise; + end; + finally + fFields.FieldEventsDisabled := FALSE; // Just in case... + end; +end; + +procedure TDADataTable.DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); +var + i: integer; + details: TList; + dt: TDADataTable; + flag: boolean; +begin + if aOption = moAllInOneFetch then begin + DoCascadeRemoteAllInOneFetch(aStreamer); + exit; + end; + details := GetDetailDataTables; + try + for i := 0 to (details.Count - 1) do begin + dt := TDADataTable(details[i]); + flag := dt.LogChanges; + + case aOption of + moCascadeDelete: begin + if (dtDisableLogOfCascadeDeletes in dt.DetailOptions) then dt.LogChanges := FALSE; + + dt.ClearRows; + end; + + moCascadeOpenClose: begin + if (dtCascadeOpenClose in dt.DetailOptions) then begin + if Opening then + dt.DoOpen + else if Closing then + dt.Close; + end; + end; + + moCascadeUpdate: begin + end; + + moAllInOneFetch: begin + { + if (dtIncludeInAllInOneFetch in dt.DetailOptions) then try + dt.LogChanges := FALSE; + + if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then + begin + aStreamer.ReadDataset(dt.LogicalName, dt, TRUE, FALSE); + dt.InitializeDataTable; + end; + + aStreamer.ReadDataset(dt.LogicalName, dt); + dt.DoCascadeOperation(aStreamer, moAllInOneFetch); + finally + dt.LogChanges := flag; + end; } + end; + end; + + dt.LogChanges := flag; + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); +var + lFetchedMasters: TStringList; + + procedure ProcessDetailTable(aTable: TDADataTable); + begin + with aTable do begin + fFetchedMasters.Sorted:=False; + fFetchedMasters.AddStrings(lFetchedMasters); + fFetchedMasters.Sorted:=True; + DoCascadeRemoteAllInOneFetch(aStreamer); + end; + end; + +var + lLocalList, lRemoteList: TList; + ltbl: TDADataTable; + i: integer; + lflag: boolean; +begin + if moAllInOneFetch in fMasterOptions then begin + lRemoteList:= TList.Create; + lLocalList:= TList.Create; + try + GetDetailTablesforAllinOneFetch(lRemoteList,lLocalList, False); + if (lRemoteList.Count > 0) or (lLocalList.Count > 0) then begin + lFetchedMasters:= TStringList.Create; + try + First; + while not EOF do begin + lFetchedMasters.Add(IntToStr(GetRowRecIDValue)); + Next; + end; + lFetchedMasters.Sort; + + // these tables are read in RDA + for i := 0 to lRemoteList.Count - 1 do begin + ProcessDetailTable(TDADataTable(lRemoteList[i])); + end; + + // these tables we should read manually from streamer + for i := 0 to lLocalList.Count - 1 do begin + ltbl:= TDADataTable(lLocalList[i]); + if aStreamer.FindDatasetIndex(ltbl.LogicalName) = -1 then Continue; // may be to better raise an exception! + lflag := ltbl.LogChanges; + try + ltbl.LogChanges := False; + if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then begin + aStreamer.ReadDataset(ltbl.LogicalName, ltbl, TRUE, FALSE); + ltbl.InitializeDataTable; + end; + aStreamer.ReadDataset(ltbl.LogicalName, ltbl); + finally + ltbl.LogChanges := lflag; + end; + ProcessDetailTable(ltbl); + end; + finally + lFetchedMasters.Free; + end; + end; + finally + lRemoteList.Free; + lLocalList.Free; + end; + end; +end; + +procedure TDADataTable.TempSetRowRecIDValue(Sender: TDataset); +begin + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + fRecIDField.AsInteger := CurrRecId; + CurrRecId := CurrRecId + 1; + end; +end; + +procedure TDADataTable.CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); +var + i, cnt: integer; + fld: TFieldDef; + fldcls: TFieldClass; + realfld: TField; +begin + // Creates the RecID field + fld := aDataset.FieldDefs.AddFieldDef; + fld.DataType := ftInteger; + fld.Name := RecIDFieldName; + + // Creates the autoinc map (autoinc) + AutoIncs := CreateAutoIncArray; + + // Adds the data fields (non calculated) to the FieldDefs + for i := 0 to (Fields.Count - 1) do begin + if Fields[i].Calculated or Fields[i].Lookup then Continue; // Added as fields later + + fld := aDataset.FieldDefs.AddFieldDef; + + // (autoinc) + if (Fields[i].DataType=datLargeAutoInc) + then fld.DataType := ftLargeint + else + if (Fields[i].DataType=datAutoInc) + then fld.DataType := ftInteger + else fld.DataType := DATypeToVCLType(Fields[i].DataType); + + fld.Name := Fields[i].Name; + + {if not (fld.DataType in [ftFloat, ftCurrency, ftBlob, ftInteger]) + then fld.Size := Fields[i].Size;} + + if (fld.DataType = ftString) or (fld.DataType = ftWideString) then fld.Size := Fields[i].Size; + if (fld.DataType = ftGuid) then fld.Size := 38; + + fld.Required := Fields[i].Required; + end; + + // Creates the data fields + for i := 0 to (aDataset.FieldDefs.Count - 1) do begin + realfld := aDataset.FieldDefs[i].CreateField(aDataset); + realfld.DataSet := aDataset; // NEW + end; + + // Creates the calculated fields + for i := 0 to (Fields.Count - 1) do begin + if not Fields[i].Calculated then Continue; + + fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; + if fldcls = nil then fldcls := TStringField; + realfld := fldcls.Create(Self); + realfld.Name := aDataset.Name + Fields[i].Name; + realfld.FieldName := Fields[i].Name; + realfld.DataSet := aDataset; + + if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; + + realfld.Required := Fields[i].Required; + if Fields[i].Calculated then realfld.FieldKind := fkCalculated; + + realfld.DataSet := aDataset; + end; + + // Creates the lookup fields + for i := 0 to (Fields.Count - 1) do begin + if not Fields[i].Lookup then Continue; + + fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; + + if not Assigned(fldcls) then + RaiseError('No or invalid DataType specified for lookup field %s.%s',[self.Name, Fields[i].Name]); + + realfld := fldcls.Create(Self); + realfld.Name := aDataset.Name + Fields[i].Name; + realfld.FieldName := Fields[i].Name; + realfld.DataSet := aDataset; // NEW + + // Sets lookup properties + with Fields[i] do begin + {$IFDEF FPC} + realfld.FieldKind:=fkLookup; + {$ELSE} + realfld.Lookup := TRUE; + {$ENDIF} + if (LookupSource<>NIL) then + with TDADataSource(LookupSource) do + if Assigned(DataTable) + then realfld.LookupDataSet := DataTable.Dataset; + + realfld.LookupKeyFields := LookupKeyFields; + realfld.LookupCache := LookupCache; + realfld.LookupResultField := LookupResultField; + realfld.KeyFields := KeyFields; + end; + + if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; + + //realfld.DataSet := aDataset; + end; + + // Adjusts field positions (less intrusive than changing the code above) + cnt := Fields.Count-1; + for i := 0 to cnt do + aDataSet.FieldByName(Fields[i].Name).Index := i+1; +end; + +procedure TDADataTable.Loaded; +begin + inherited; + + if Assigned(fBusinessRules) + then fBusinessRules.Attach(Self); + + Active := fStreamedActive; + + AttachEventHooks(fDataset); +end; + +procedure TDADataTable.DoRefresh(aDataset: TDataset); +begin + if fRefreshing then Exit; + + fRefreshing := TRUE; + try + Close; + Open; + finally + fRefreshing := FALSE; + end; +end; + +procedure TDADataTable.InternalBeforeInsert(Sender: TDataset); +begin + CallScript('BeforeInsert'); + if Assigned(BeforeInsert) then BeforeInsert(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeInsert(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + fDelta.StartChange(ctInsert); +end; + +procedure TDADataTable.InternalBeforeDelete(Sender: TDataset); +begin + CallScript('BeforeDelete'); + if Assigned(BeforeDelete) then BeforeDelete(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeDelete(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + // Deletes the records from the detail tables + if (moCascadeDelete in MasterOptions) then DoCascadeOperation(nil, moCascadeDelete); + + // Logs the delete + fDelta.StartChange(ctDelete); + fDelta.EndChange; +end; + +procedure TDADataTable.InternalBeforeEdit(Sender: TDataset); +begin + CallScript('BeforeEdit'); + if Assigned(BeforeEdit) then BeforeEdit(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeEdit(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + + fDelta.StartChange(ctUpdate); +end; + +procedure TDADataTable.InternalBeforePost(Sender: TDataset); +var details : TList; + key : string; + i : integer; +begin + CallScript('BeforePost'); + if Assigned(BeforePost) then BeforePost(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforePost(Self); + + for i := 0 to (fFields.Count - 1) do + if (fFields[i].RegExpression <> '') and not fFields[i].IsNull then begin + if not ExecRegExpr(fFields[i].RegExpression, fFields[i].AsString) then RaiseError('Invalid input value for field ' + fFields[i].Name); + end; + + if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... + fRecIDField.AsInteger := CurrRecId; + CurrRecId := CurrRecId + 1; + end; + + // This was originally in AfterPost. Moved here because after a post filters might step in and the current + // record can change resulting in half change from record X and the remaining from record Y + + if not LogChanges or (csDesigning in ComponentState) then Exit; + fDelta.EndChange; + + // Adds a reference to the RecID of this record to avoid double fetching records + // This is a new master record, so it means there are no details to fetch remotely + if (State=dsInsert) then begin + key := IntToStr(GetRowRecIDValue); + details := GetDetailDataTables; + try + for i := 0 to (details.Count-1) do begin + with TDADataTable(details[i]) do + if Active and (fFetchedMasters.IndexOf(key)<0) then fFetchedMasters.Add(key); + end; + finally + details.Free; + end; + end; + + if (ruoOnPost in RemoteUpdatesOptions) then try + ApplyUpdates(); + except + on E: Exception do + begin + fDelta.RestoreLastChange; + raise; + end; + end; +end; + +procedure TDADataTable.InternalAfterPost(Sender: TDataset); +begin + CallScript('AfterPost'); + if Assigned(AfterPost) then AfterPost(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterPost(Self); + + if not LogChanges or (csDesigning in ComponentState) then Exit; + +end; + +procedure TDADataTable.InternalAfterCancel(Sender: TDataset); +begin + CallScript('AfterCancel'); + if Assigned(AfterCancel) then AfterCancel(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterCancel(Self); + + fDelta.CancelChange; +end; + +function TDADataTable.GetLogChanges: boolean; +begin + result := fLogChanges; +end; + +procedure TDADataTable.DisableControls; +begin + fDataset.DisableControls; +end; + +procedure TDADataTable.EnableControls; +begin + fDataset.EnableControls; +end; + +function TDADataTable.GetBOF: boolean; +begin + result := fDataset.BOF +end; + +function TDADataTable.GetEOF: boolean; +begin + result := fDataset.EOF +end; + +function TDADataTable.GetFieldCount: integer; +begin + result := fFields.Count +end; + +function TDADataTable.GetFieldValues(Index: integer): Variant; +begin + result := Fields[Index].Value +end; + +function TDADataTable.GetNames(Index: integer): string; +begin + result := Fields[Index].Name +end; + +function TDADataTable.GetRecordCount: integer; +begin + result := fDataset.RecordCount; +end; + +function TDADataTable.GetSQL: string; +begin + // Not implemented in DataTables + result := ''; +end; + +function TDADataTable.Locate(const KeyFields: string; + const KeyValues: Variant; Options: TLocateOptions): Boolean; +begin + if VarIsArray(KeyValues) and (VarArrayHighBound(KeyValues, 1) = 0) + then result := fDataset.Locate(KeyFields, KeyValues[0], Options) + else result := fDataset.Locate(KeyFields, KeyValues, Options); +end; + +procedure TDADataTable.Next; +begin + fDataset.Next; +end; + +procedure TDADataTable.SetSQL(const Value: string); +begin + // Not implemented in DataTables +end; + +function TDADataTable.Execute: integer; +begin + // Not implemented in DataTables + result := -1; +end; + +function TDADataTable.GetParams: TDAParamCollection; +begin + // Not implemented in DataTables + result := fParams; +end; + +procedure TDADataTable.RefreshParams; +begin + // Not implemented in DataTables +end; + +procedure TDADataTable.Append; +begin + fDataset.Append; +end; + +procedure TDADataTable.Delete; +begin + fDataset.Delete; +end; + +procedure TDADataTable.Cancel; +begin + fDataset.Cancel; +end; + +procedure TDADataTable.Edit; +begin + fDataset.Edit; +end; + +procedure TDADataTable.Insert; +begin + fDataset.Insert; +end; + +procedure TDADataTable.Post; +begin + fDataset.Post; +end; + +{$WARN SYMBOL_DEPRECATED OFF} +function TDADataTable.GetWhere: TDAWhere; +begin + result := fWhere +end; +{$WARN SYMBOL_DEPRECATED ON} + +procedure TDADataTable.SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); +begin + if Value <> fRemoteDataAdapter then begin + fRemoteDataAdapter := Value; + if assigned(fRemoteDataAdapter) then fRemoteDataAdapter.FreeNotification(self); + end; +end; + +procedure TDADataTable.Close; +begin + if not Active then Exit; + + fClosing := TRUE; + try + DoBeforeCloseDataset; + if Assigned(BeforeClose) then BeforeClose(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeClose(Self); + + if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); + + Dataset.Close; + fFields.Unbind; + + //Dataset.Fields.Clear; + + fDelta := nil; + + fFetchedMasters.Clear; + + DoAfterCloseDataset; + if Assigned(AfterClose) then AfterClose(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterClose(Self); + finally + fClosing := FALSE; + end; +end; + +procedure TDADataTable.InitializeDataTable; +begin + fCurrRecId := 1; + + try + fDataset.Fields.Clear; + fDataset.FieldDefs.Clear; + finally + NotifyFieldsClear; + end; + try + // Creates the fields for the internal dataset + CreateInternalFields(fDataset, Fields); + finally + NotifyFieldsClear; + end; + + fRecIDField := fDataset.FieldByName(RecIDFieldName) as TIntegerField; + fRecIDField.Visible := FALSE; + + fFields.Bind(fDataset); + + // Prepares the delta + fDelta := TDADelta.Create(Self); + +(* + // Finishes to prepare the internal dataset (descendant might need additional customization and might not be open) + if RemoteFetchEnabled and + (RemoteDataAdapter<>nil) and + (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall.Default) then + LoadScript(); +*) + DoBeforeOpenDataset; + if not Dataset.Active then Dataset.Open; + DoAfterOpenDataset; +end; + +procedure TDADataTable.LoadFromLocalSchema; +var + lConnection: IDAConnection; + data: TStream; + gofirst, oldlog: boolean; + ds: IDADataset; + i: integer; + lDynFields: array of string; +begin + if (LocalSchema = nil) or (LogicalName = '') then begin + InitializeDataTable; + Exit; + end; + + // Local but from schema. Client/Server mode + CheckProperties; + + lConnection := LocalSchema.ConnectionManager.NewConnection(fLocalConnection); + try + SetLength(lDynFields, 0); + ds := LocalSchema.NewDataset(lConnection, fLogicalName,lDynFields,fDynamicWhere.Xml); + + oldlog := LogChanges; + fFetching := TRUE; + LogChanges := FALSE; +// book := nil; + + data := Binary.Create; + Binary(data).CapacityIncrement := LocalDataStreamer.BufferSize; + try + for i := 0 to (ds.Params.Count - 1) do + ds.Params[i].Value := ParamByName(ds.Params[i].Name).Value; + + LocalDataStreamer.WriteDataset(data, ds, [woRows, woSchema], -1); + + if Active then + gofirst := FALSE + else + gofirst := TRUE; + + if Assigned(fOnReceiveDataStream) then fOnReceiveDataStream(Self, data); + if Assigned(fBusinessRules) then fBusinessRules.OnReceiveDataStream(Self, data); + data.Position := 0; + + // Reads the data + LocalDataStreamer.Initialize(data, aiRead); + if (LocalDataStreamer.DatasetCount = 0) then RaiseError('Stream does not contain any dataset'); + + if Opening then begin + if not (soIgnoreStreamSchema in fStreamingOptions) then LocalDataStreamer.ReadDataset(LogicalName, Self, TRUE, FALSE); + + InitializeDataTable; + end; + + LocalDataStreamer.ReadDataset(LogicalName, Self, FALSE); + { + if (moAllInOneFetch in MasterOptions) then begin + DoCascadeOperation(LocalDataStreamer, moAllInOneFetch); + end;} + + LocalDataStreamer.Finalize; + + if gofirst then First; + finally + fFetching := FALSE; + data.Free; + LogChanges := oldlog; + end; + finally + lConnection := nil; + end; +end; + +procedure TDADataTable.DoOpen(IgnoreAutoFetchSettings: Boolean); +var i : integer; +begin + if Active or fOpening then Exit; + + fOpening := TRUE; + try + { Checks that all the lookup datasets are open. If not, we would get the error "Missing Data Provider"} + for i := 0 to (FieldCount-1) do + if Fields[i].Lookup and (Fields[i].LookupSource<>NIL) then begin + if (Fields[i].LookupSource is TDADataSource) then begin + if Assigned(TDADataSource(Fields[i].LookupSource).DataTable) + then TDADataSource(Fields[i].LookupSource).DataTable.Open; + end + else begin + if Assigned(Fields[i].LookupSource.DataSet) + then Fields[i].LookupSource.DataSet.Open; + end; + end; + + + if Assigned(BeforeOpen) then BeforeOpen(Self); + if Assigned(fBusinessRules) then fBusinessRules.BeforeOpen(Self); + + try + if not fFetching then begin + if fMasterLink.Active then + FetchMastersDetails(nil, nil, IgnoreAutoFetchSettings) // This calls InitializeDataTable possibily applying a new schema + else + if RemoteFetchEnabled then LoadFromRemoteSource else LoadFromLocalSchema; + end; + + if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); + + if Assigned(AfterOpen) then AfterOpen(Self); + if Assigned(fBusinessRules) then fBusinessRules.AfterOpen(Self); + except + on E: Exception do begin + Close; + {$IFDEF DESIGNTIME} + if (csDesigning in ComponentState) then begin + SysUtils.Beep; + MessageDlg(E.Message, mtError, [mbOK], 0); + end + else + {$ENDIF DESIGNTIME} + raise; + end; + end; + finally + fOpening := FALSE; + end; +end; + +procedure TDADataTable.Open; +begin + DoOpen(True); +end; + + +procedure TDADataTable.OnMasterChange(Sender: TObject); +begin + if (MasterSource <> nil) and (MasterSource.DataTable <> nil) then begin + if MasterSource.DataTable.fFetching then + exit; + end; + + FetchMastersDetails; +end; + +procedure TDADataTable.OnMasterDisable(Sender: TObject); +begin + +end; + +procedure TDADataTable.LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); +begin + CheckProperties(True); + if Assigned(fOnBeforeDataRequestCall) then fOnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + RemoteDataAdapter.Fill([self], BookmarkPosition, FieldCount = 0); + if Assigned(fOnAfterDataRequestCall) then fOnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); +end; + +function TDADataTable.ApplyUpdates(RefetchAll: boolean = FALSE): boolean; +var + details: TList; + i: integer; + dt: TDADataTable; +begin + details:= GetDetailTablesforApplyUpdate; + try + // check RDA + CheckProperties; + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + {if dt.RemoteFetchEnabled then } dt.CheckProperties; + end; + + //fOnBeforeApplyUpdates + if Assigned(fOnBeforeApplyUpdates) then fOnBeforeApplyUpdates(Self, fDelta); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeApplyUpdates) then dt.fOnBeforeApplyUpdates(dt, fDelta); + end; + + //fBusinessRules.OnBeforeApplyUpdates + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeApplyUpdates(Self, fDelta); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeApplyUpdates(dt, fDelta); + end; + + if RemoteFetchEnabled then begin + + //fOnBeforeDataUpdateCall + if Assigned(fOnBeforeDataUpdateCall) then fOnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeDataUpdateCall) then dt.fOnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + //fBusinessRules.OnBeforeDataUpdateCall + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + result := RemoteDataAdapter.ApplyUpdates([self], RefetchAll); + + //fOnAfterDataUpdateCall + if Assigned(fOnAfterDataUpdateCall) then fOnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterDataUpdateCall) then dt.fOnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + //fBusinessRules.OnAfterDataUpdateCall + if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); + end; + + end + else begin + result := Local_ApplyUpdates(RefetchAll); + end; + + //fOnAfterApplyUpdates + if Assigned(fOnAfterApplyUpdates) then fOnAfterApplyUpdates(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterApplyUpdates) then dt.fOnAfterApplyUpdates(dt); + end; + + //fBusinessRules.OnAfterApplyUpdates + if Assigned(fBusinessRules) then fBusinessRules.OnAfterApplyUpdates(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterApplyUpdates(dt); + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); +begin + CheckProperties(True); + if Assigned(fOnBeforeSchemaCall) then fOnBeforeSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); + RemoteDataAdapter.FillSchema([self], PreserveLookupFields, PreserveClientCalcFields); + if Assigned(fOnAfterSchemaCall) then fOnAfterSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); +end; + +procedure TDADataTable.LoadScript(aDatasetName : string = ''); +begin + CheckProperties(True); + if Assigned(fOnBeforeScriptCall) then fOnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + RemoteDataAdapter.FillScripts([self]); + if Assigned(fOnAfterScriptCall) then fOnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); + if Assigned(fBusinessRules) then fBusinessRules.OnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); +end; + +procedure TDADataTable.FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings: Boolean = False); + + procedure CombineDynamicWhere(aWhereExpression:TDAWhereExpression); + begin + if fMasterMappingMode = mmWhere then begin + if fDynamicWhere.Expression = nil then + fDynamicWhere.Expression:= aWhereExpression + else + fDynamicWhere.Expression:= fDynamicWhere.NewBinaryExpression(fDynamicWhere.Expression,aWhereExpression,dboAnd); + end; + end; + + procedure RevertDynamicWhere(aWhereExpression:TDAWhereExpression); + var + fUserWhereExpression: TDAWhereExpression; + begin + if fMasterMappingMode = mmWhere then begin + fUserWhereExpression:= nil; + if fDynamicWhere.Expression <> aWhereExpression then begin + fUserWhereExpression:= TDABinaryExpression(fDynamicWhere.Expression).Left; + TDABinaryExpression(fDynamicWhere.Expression).Left:=nil; + end; + fDynamicWhere.Clear; + fDynamicWhere.Expression:= fUserWhereExpression; + end; + end; + + + function GenerateWhereStatement: TDAWhereExpression; + var + lFieldName: string; + pos1, pos2: integer; + lfld1: TDAField; + lfld2: TDAField; + lExpression: TDAWhereExpression; + begin + //fDynamicWhere.Clear; + Pos1 := 1; + pos2 := 1; + Result:=nil; + while True do begin + if (Pos1 > Length(DetailFields)) and (Pos2 > Length(MasterFields)) then Break; + + if ((Pos1 > Length(DetailFields)) and (Pos2 <= Length(MasterFields))) or + ((Pos1 <= Length(DetailFields)) and (Pos2 > Length(MasterFields))) then + RaiseError('DetailFields should have same number of items as MasterFields'); + + {$WARN SYMBOL_DEPRECATED OFF} + lFieldName:= ExtractFieldName(DetailFields, Pos1); + {$WARN SYMBOL_DEPRECATED ON} + lfld1 := FindField(lFieldName); + if lfld1 = nil then RaiseError('Invalid field name %s in DetailFields', [lFieldName]); + {$WARN SYMBOL_DEPRECATED OFF} + lFieldName:= ExtractFieldName(MasterFields, Pos2); + {$WARN SYMBOL_DEPRECATED ON} + lfld2 := MasterSource.DataTable.Fields.FindField(lFieldName); + if lfld2 = nil then RaiseError('Invalid field name %s in MasterFields', [lFieldName]); + + lExpression := fDynamicWhere.NewBinaryExpression( + fDynamicWhere.NewField('',lfld1.Name), + fDynamicWhere.NewConstant(lfld2.Value,lfld2.DataType), + dboEqual); + + if Result <> nil then + Result:=fDynamicWhere.NewBinaryExpression(Result,lExpression,dboAnd) + else + Result:= lExpression; + end; + end; + +var + master: TDataset; + par: TDARemoteRequestParam; + fld: TDAField; + key: string; + i: integer; + dofetch: boolean; + mappings : TStrings; + detailparam : TDAParam; + lmmWhereExpression: TDAWhereExpression; +begin + if RemoteFetchEnabled then CheckProperties + else if not(Assigned(LocalSchema) and Assigned(LocalDataStreamer)) then begin + if fOpening then InitializeDataTable; + Exit; + end; + + // + // + // TODO: this doesnt properly use the new RDA's DMB yet. we need to discuss/rethink how to handle that! + // + // + + mappings := NIL; + + dofetch := (((dtAutoFetch in DetailOptions) or IgnoreAutoFetchSettings) {and RemoteFetchEnabled}) or (aMasterTable<>NIL); + + if (aRequestMappings<>NIL) then mappings := aRequestMappings + else begin + case fMasterMappingMode of + mmDataRequest : mappings := MasterRequestMappings; + mmParams : mappings := MasterParamsMappings; + end; + end; + + if (aMasterTable<>NIL) + then master := aMasterTable.Dataset + else master := fMasterLink.DataSet; + + if master = nil then exit; + + if (master.RecordCount = 0) then begin + if not Active then InitializeDataTable; // Master opened with 0 records and detail wasn't open yet + + Exit; + end + else if (MasterSource = nil) then Exit; + if (master.State=dsBrowse) and not MasterSource.DataTable.Delta.IsNewRecord then begin + if dofetch then begin + // Determines if the details for this master have been fetched + key := IntToStr(MasterSource.DataTable.GetRowRecIDValue); + if (fFetchedMasters.IndexOf(key) >= 0) then Exit; + if (fMasterMappingMode = mmWhere) or ((mappings<>NIL) and (mappings.Count > 0)) then begin + lmmWhereExpression:=nil; + if RemoteFetchEnabled then begin + // remotemode + + // If not, then assigns the param values from the current master record, + // invokes the remote call and loads the data + case MasterMappingMode of + mmWhere: begin + lmmWhereExpression:=GenerateWhereStatement; + end; + mmDataRequest : begin + for i := 0 to (mappings.Count - 1) do begin + par := nil; + if RemoteDataAdapter.Get_GetDataCall <> nil then + par := RemoteDataAdapter.Get_GetDataCall.Params.ParamByName(Trim(mappings.Names[i])); + if (par=NIL) then RaiseError('Invalid parameter name %s in master mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in master mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) + then par.AsVariant := fld.Value + end; + end; + mmParams : begin + // Fills it in + for i := 0 to (mappings.Count - 1) do begin + detailparam := Params.ParamByName(Trim(mappings.Names[i])); + if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) + then detailparam.Value := fld.Value + end; + end; + end; + + CombineDynamicWhere(lmmWhereExpression); + try + LoadFromRemoteSource; + finally + RevertDynamicWhere(lmmWhereExpression); + end; + + try + fFetchedMasters.Add(key); + except + raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); + end; + end { RemoteFetchEnabled }else begin + // localmode + + // If not, then assigns the param values from the current master record, + // invokes the remote call and loads the data + case MasterMappingMode of + mmWhere: begin + lmmWhereExpression := GenerateWhereStatement; + end; + mmParams: begin + // Fills it in + for i := 0 to (mappings.Count - 1) do begin + detailparam := Params.ParamByName(Trim(mappings.Names[i])); + if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); + + fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); + if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); + + if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then detailparam.Value := fld.Value + end; + end; + mmDataRequest: raise Exception.Create('mmDataRequest mode only supported in RemoteFetchEnabled mode'); + end; + + CombineDynamicWhere(lmmWhereExpression); + try + LoadFromLocalSchema; + finally + RevertDynamicWhere(lmmWhereExpression); + end; + + try + fFetchedMasters.Add(key); + except + raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); + end; + end; + end else begin + { ALEF: I removed the code below because it was never meant to be here to begin with. Very error prone. + Who added this??? + + // Automatics + for i := 0 to (DataRequestCall.Params.Count - 1) do begin + par := DataRequestCall.Params[i]; + fld := MasterSource.DataTable.Fields.FindField(par.Name); + + if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then par.Value := fld.Value; + end;} + + RaiseError('There are no mappings defined. Cannot fetch records for detail table '+Name); + end; + end; {dofetch} + end; +end; + +procedure TDADataTable.WriteDeltaToStream(aStreamer: TDADataStreamer); +var + i: integer; + details: TList; + lHasReducedDelta: Boolean; + oldMode: boolean; +begin + // And the details' updates (if specified) + details := GetDetailTablesforApplyUpdate; + try + lHasReducedDelta:= fHasReducedDelta; + if not aStreamer.SendReducedDelta then begin + if not lHasReducedDelta then + for i := 0 to (details.Count - 1) do begin + lHasReducedDelta:= TDADataTable(details[i]).fHasReducedDelta; + if lHasReducedDelta then Break; + end; + end; + oldMode:=aStreamer.SendReducedDelta; + if lHasReducedDelta then aStreamer.SendReducedDelta:=True; + try + // Writes its own updates + if self.HasDelta then aStreamer.WriteDelta(Self); + for i := 0 to (details.Count - 1) do + TDADataTable(details[i]).WriteDeltaToStream(aStreamer); + finally + aStreamer.SendReducedDelta := oldMode; + end; + finally + details.Free; + end; +end; + +procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer;aFailedDeltas:TList); +var + i: integer; + details: TList; +begin + // Reads its own updates + if aStreamer.FindDeltaIndex(Self.LogicalName) <> -1 then begin + Delta.Clear; + aStreamer.ReadDelta(Self); + if Delta.Count>0 then fHasReducedDelta := aStreamer.HasReducedDelta; + + For i := 0 to Delta.Count-1 do + if Delta.Changes[i].Status = csFailed then + aFailedDeltas.Add(Delta.Changes[i]); + end; + + // And the details' updates (if specified) + details := GetDetailTablesforApplyUpdate; + try + for i := 0 to (details.Count - 1) do + TDADataTable(details[i]).ReadDeltaFromStream(aStreamer, aFailedDeltas); + finally + details.Free; + end; +end; + +procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer); +var + List: TList; +begin + List:= TList.Create; + try + ReadDeltaFromStream(aStreamer,List); + finally + List.Free; + end; +end; + +procedure TDADataTable.MergeDelta; +var + i, k, x: integer; + details: TList; + dt: TDADataTable; +// ok : boolean; +// failed, pending, resolved : integer; + oldval, newval, val : Variant; + fld : TDAField; + pkfields : string; + oldopt : TDARemoteUpdatesOptions; + oldlog : boolean; + keyvals : array of variant; + oldmastersource : TDADataSource; + lhasDelta: Boolean; + pk_array: array of boolean; +begin + details:=GetDetailTablesforApplyUpdate; + try + //fOnBeforeMergeDelta + if Assigned(fOnBeforeMergeDelta) then fOnBeforeMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnBeforeMergeDelta) then dt.fOnBeforeMergeDelta(dt); + end; + + //fBusinessRules.OnBeforeMergeDelta + if Assigned(fBusinessRules) then fBusinessRules.OnBeforeMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeMergeDelta(dt); + end; + + oldopt := RemoteUpdatesOptions; + oldlog := LogChanges; + oldmastersource := MasterSource; + + lhasDelta := Delta.Count > 0; + if lhasDelta then begin + RemoteUpdatesOptions := RemoteUpdatesOptions-[ruoOnPost]; + LogChanges := FALSE; + // Disables the M/D relationship so that Locates can work in all cases (master or detail tables, regardless + // of their positioning) + MasterSource := NIL; + end; + + try + pkfields := ''; + for i := 0 to (Delta.KeyFieldCount-1) do + pkfields := pkfields+Delta.KeyFieldNames[i]+';'; + pkfields := Copy(pkfields, 1, Length(pkfields)-1); + + SetLength(keyvals, Delta.KeyFieldCount); + + // Merges the updates + if (Delta.Count>0) then begin + SetLength(pk_array, Delta.LoggedFieldCount); + for i := 0 to Delta.LoggedFieldCount - 1 do + pk_array[i]:=False; + + for i := 0 to Delta.KeyFieldCount - 1 do begin + x := Delta.IndexOfLoggedField(Delta.KeyFieldNames[i]); + if x <> -1 then pk_array[x]:=True; + end; + for i := (Delta.Count-1) downto 0 do begin + if (Delta[i].Status<>csResolved) + then Continue; + if (Delta[i].ChangeType<>ctDelete) then begin + if (Self.State in [dsEdit, dsInsert]) and (ruoOnPost in oldopt) then begin + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fld := FieldByName(Delta.LoggedFieldNames[x]); + + newval := Delta[i].NewValueByName[fld.Name]; + oldval := Delta[i].OldValueByName[fld.Name]; + if fHasReducedDelta then begin + if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; + end; + if fld.ServerAutoRefresh or (not VarIsArray(newVal) and not ROVariantsEqual(newval,oldval)) then begin + VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); + end; + end; + end + else begin + for k := 0 to (Delta.KeyFieldCount-1) do begin + val := Delta[i].OldValueByName[Delta.KeyFieldNames[k]]; + keyvals[k] := val; + end; + + // Locates the original record + First; + if not Locate(pkfields, keyvals, []) then Continue; + + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + + // Merges its own updates + Edit; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fld := FieldByName(Delta.LoggedFieldNames[x]); + + newval := Delta[i].NewValueByName[fld.Name]; + oldval := Delta[i].OldValueByName[fld.Name]; + if fHasReducedDelta then begin + if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; + end; + if fld.ServerAutoRefresh or (not VarIsArray(newVal) and (newval<>oldval)) then begin + VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); + end; + end; + Post; + end; + end; + // Removes this merged change + Delta.Delete(i); + end; + end + + // If there are no updates for this master, the children still need to be processed + else begin + // Merge the details + for x := 0 to (details.Count - 1) do + TDADataTable(details[x]).MergeDelta; + end; + finally + if lhasDelta then begin + RemoteUpdatesOptions := oldopt; + LogChanges := oldlog; + + // Restores the M/D relationship + MasterSource := oldmastersource; + end; + //fOnAfterMergeDelta + if Assigned(fOnAfterMergeDelta) then fOnAfterMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fOnAfterMergeDelta) then dt.fOnAfterMergeDelta(dt); + end; + + //fBusinessRules.OnAfterMergeDelta + if Assigned(fBusinessRules) then fBusinessRules.OnAfterMergeDelta(Self); + for i := 0 to details.Count-1 do begin + dt:= TDADataTable(details[i]); + if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterMergeDelta(dt); + end; + end; + finally + details.Free; + if Delta.Count = 0 then fHasReducedDelta:=False; + end; +end; + + +procedure TDADataTable.PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); +var outinfo : TDADatasetRequestInfo; + details : TList; + dt : TDADataTable; + i : integer; +begin + outinfo := outarray.Add; + outinfo.DatasetName := aDataTable.LogicalName; + outinfo.MaxRecords := aDataTable.MaxRecords; + outinfo.IncludeSchema := TRUE; + outinfo.Params := NIL; + + details := aDataTable.GetDetailDataTables; + try + for i := 0 to (details.Count - 1) do begin + dt := TDADataTable(details[i]); + + if (dtIncludeInAllInOneFetch in dt.DetailOptions) + then PackAllInOneFetchInfoArray(dt, OutArray); + end; + finally + details.Free; + end; +end; + +function TDADataTable.FieldByName(const aName: string): TDAField; +begin + result := fFields.FieldByName(aName) +end; + +function TDADataTable.ParamByName(const aName: string): TDAParam; +begin + result := fParams.ParamByName(aName) +end; + +procedure TDADataTable.First; +begin + fDataset.First +end; + +procedure TDADataTable.Last; +begin + fDataset.Last +end; + +procedure TDADataTable.Prior; +begin + fDataset.Prior +end; + +procedure TDADataTable.Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); +var + i: integer; +begin + DoSort(FieldNames, Directions); + + // Stores the new settings for convenience + SetLength(fSortDirections, Length(Directions)); + for i := 0 to Length(Directions) - 1 do + fSortDirections[i] := Directions[i]; + + SetLength(fSortFieldNames, Length(FieldNames)); + for i := 0 to Length(FieldNames) - 1 do + fSortFieldNames[i] := FieldNames[i]; +end; + +procedure TDADataTable.UnSort; +begin + Sort([], []); +end; + +procedure TDADataTable.LoadFromStream(aStream: TStream); +var + //remfetch, + oldlogchanges, oldcascadeopenclose: boolean; + lStreamer: TDADataStreamer; + i: integer; +begin + Check(RemoteFetchEnabled, Name+'. Cannot do this operation when RemoteFetchEnabled is set to TRUE'); + if RemoteDataAdapter <> nil then + lStreamer:=RemoteDataAdapter.DataStreamer + else + lStreamer:=LocalDataStreamer; + + Check(lStreamer = nil, Name+'. RemoteDataAdapter or LocalDataStreamer must be assigned.'); + + Close; + + oldlogchanges := LogChanges; +// remfetch := RemoteFetchEnabled; + oldcascadeopenclose := moCascadeOpenClose in fMasterOptions; + +// RemoteFetchEnabled := FALSE; + LogChanges := FALSE; + if oldcascadeopenclose + then fMasterOptions := fMasterOptions - [moCascadeOpenClose]; + try + fStreaming := True; + try + lStreamer.Initialize(aStream, aiRead); + + if not (soIgnoreStreamSchema in fStreamingOptions) then + lStreamer.ReadDataset(LogicalName, Self, TRUE) + else + lStreamer.ReadDataset(LogicalName, Self, FALSE); + + lStreamer.ReadDelta(Self); + if Delta <> nil then + For i:= 0 to Delta.Count-1 do + if fCurrRecId <= Delta.Changes[i].RecID then + fCurrRecId := Delta.Changes[i].RecID+1; + finally + fStreaming := False; + end; + finally + lStreamer.Finalize; + LogChanges := oldlogchanges; +// RemoteFetchEnabled := remfetch; + if oldcascadeopenclose then begin + fMasterOptions := fMasterOptions + [moCascadeOpenClose]; + fOpening := True; + try + DoCascadeOperation(nil, moCascadeOpenClose); + finally + fOpening := False; + end; + end; + if Active then First; + end; +end; + +procedure TDADataTable.SaveToStream(aStream: TStream); +var + lStreamer: TDADataStreamer; + OldMasterSource: TDADataSource; +begin + if (soDisableEventsWhileStreaming in fStreamingOptions) then DisableControls; + try + OldMasterSource := MasterSource; + MasterSource := nil; + fStreaming := True; + try + First; // Important! + if RemoteFetchEnabled then + lStreamer:= RemoteDataAdapter.DataStreamer + else + lStreamer:=LocalDataStreamer; + if lStreamer = nil then CheckProperties; + lStreamer.Initialize(aStream, aiWrite); + lStreamer.WriteDataset(Self, [woRows, woSchema]); + lStreamer.WriteDelta(Self); + lStreamer.Finalize; + finally + fStreaming := False; + MasterSource := OldMasterSource; + end; + finally + if (soDisableEventsWhileStreaming in fStreamingOptions) then EnableControls; + end; +end; + +procedure TDADataTable.LoadFromFile(const aFileName: string); +var + fs: TFileStream; + oldval : boolean; +begin + oldval := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + try + fs := TFileStream.Create(aFileName, fmOpenRead); + try + LoadFromStream(fs); + finally + fs.Free; + end; + finally + RemoteFetchEnabled := oldval; + end; +end; + +procedure TDADataTable.SaveToFile(const aFileName: string); +var + fs: TFileStream; +begin + fs := TFileStream.Create(aFileName, fmCreate); + try + SaveToStream(fs); + finally + fs.Free; + end; +end; + +procedure TDADataTable.SetParams(const Value: TDAParamCollection); +begin + fParams.Assign(Value); +end; + +procedure TDADataTable.ClearFields; +var + i: integer; +begin + for i := 0 to FieldCount - 1 do + Fields[i].Value := Null; +end; + +procedure TDADataTable.ClearRows; +var + CurChange: TDADeltaChange; +begin + while (RecordCount > 0) do begin + if (not LogChanges) and Assigned(Delta) then begin + CurChange := Delta.FindChange(RecIDValue); + if Assigned(CurChange) then + Delta.RemoveChange(CurChange); + end; + Delete; + end; +end; + +function TDADataTable.GetState: TDataSetState; +begin + result := fDataset.State +end; + +function TDADataTable.GetEditing: boolean; +begin + result := State in [dsEdit, dsInsert] +end; + +function TDADataTable.GetPrepared: boolean; +begin + result := FALSE +end; + +procedure TDADataTable.SetPrepared(Value: boolean); +begin + +end; + +function TDADataTable.GetText: string; +begin + result := '' +end; + +procedure TDADataTable.SetText(const Value: string); +begin + +end; + +procedure TDADataTable.Notification(AComponent: TComponent; + Operation: TOperation); +var + i: Integer; +begin + inherited; + + if (Operation = opRemove) then begin + if (AComponent = fLocalSchema) then fLocalSchema := nil; + if (AComponent = fRemoteDataAdapter) then fRemoteDataAdapter := nil; + if (AComponent = fLocalDataStreamer) then fLocalDataStreamer := nil; + if AComponent is TDataSource then begin + for i := 0 to Fields.Count - 1 do begin + if Fields[i].LookupSource = AComponent then + Fields[i].LookupSource := nil; + end; + end; + + end; + +end; + +procedure TDADataTable.SetMasterSource(const Value: TDADataSource); +begin + fMasterLink.DataSource := Value; +end; + +procedure TDADataTable.SetMasterFields(const Value: string); +begin + fMasterLink.FieldNames := Value; +end; + +function TDADataTable.GetMasterRequestMappings: TStrings; +begin + result := fMasterRequestMappings; +end; + +procedure TDADataTable.SetMasterRequestMappings(const Value: TStrings); +begin + fMasterRequestMappings.Assign(Value); +end; + +function TDADataTable.GetDetailDataTables: TList; +var + i: integer; + ownerdt: TDADataTable; + dtdataset: IDADataTableDataset; + tmplist: TList; +begin + // This function only returns the linked datatables and removes duplicates + // from the GetDetailDataSets call. I assume the duplicates are because of + // the masterlink TDADatatables create. + + result := TList.Create; + tmplist := TList.Create; + + try + {$IFNDEF FPC} + Dataset.GetDetailDataSets(tmplist); + {$ENDIF} + for i := 0 to (tmplist.Count - 1) do begin + if not Supports(TDataset(tmplist[i]), IDADataTableDataset, dtdataset) then Continue; + ownerdt := dtdataset.GetDataTable; + + if (result.IndexOf(ownerdt) < 0) then result.Add(ownerdt); + end; + finally + tmplist.Free; + end; +end; + +function TDADataTable.GetDelta: IDADelta; +begin + if (fDelta = nil) then raise Exception.Create('Delta has not yet been initialized by the datatable'); + result := fDelta; +end; + +function TDADataTable.GetName: string; +begin + if (LogicalName = '') then + result := Name + else + result := LogicalName; +end; + +procedure TDADataTable.DoAfterCloseDataset; +begin + CallScript('AfterClose'); +end; + +procedure TDADataTable.DoAfterOpenDataset; +begin + CallScript('AfterOpen'); + + if Assigned(fAfterOpenIDataset) then fAfterOpenIDataset(Self, '', ROGetTickCount-fOpenTick); +end; + +procedure TDADataTable.DoBeforeCloseDataset; +begin + CallScript('BeforeClose'); +end; + +procedure TDADataTable.CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); +begin + CloneSelectedRecord(Source as IDADataset, DoPost); +end; + +procedure TDADataTable.CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); +var + i: integer; + destfld, + srcfld: TDAField; + lreadonly: boolean; +begin + Insert; + for i := 0 to (Source.FieldCount - 1) do begin + srcfld := Source.Fields[i]; + destfld := Fields.FindField(srcfld.Name); + lreadonly := destfld.ReadOnly; + destfld.ReadOnly := False; + try + if destfld <> nil then destfld.Value := srcfld.Value; + finally + destfld.ReadOnly := lreadonly; + end; + end; + if DoPost then Post; +end; + +procedure TDADataTable.FreeBookmark(Bookmark: TBookmark); +begin + Dataset.FreeBookmark(Bookmark); +end; + +function TDADataTable.GetBookmark: pointer; +begin + result := Dataset.GetBookmark; +end; + +procedure TDADataTable.GotoBookmark(Bookmark: TBookmark); +begin + Dataset.GotoBookmark(Bookmark); +end; + +function TDADataTable.GetRowRecIDValue: integer; +begin + result := fRecIDField.AsInteger +end; + +procedure TDADataTable.DisableEventHandlers; +begin + DetachEventHooks(Dataset); +end; + +procedure TDADataTable.EnableEventHandlers; +begin + AttachEventHooks(Dataset); +end; + +procedure TDADataTable.Refresh; +begin + fDataset.Refresh; +end; + +procedure TDADataTable.SetLocalDataStreamer(const Value: TDADataStreamer); +begin + fLocalDataStreamer := Value; + if (fLocalDataStreamer <> nil) then + fLocalDataStreamer.FreeNotification(Self); +end; + +procedure TDADataTable.SetLocalSchema(const Value: TDASchema); +begin + fLocalSchema := Value; + if (fLocalSchema <> nil) then begin + fLocalSchema.FreeNotification(Self); + + RemoteFetchEnabled := FALSE; + end; +end; + +function TDADataTable.DataReaderFirst: boolean; +begin + result := RecordCount > 0; + if result then First; +end; + +function TDADataTable.DataReaderNext: boolean; +begin + result := not EOF; + if result then Next; +end; + +function TDADataTable.GetAsBoolean(Index: integer): boolean; +begin + result := fFields[Index].AsBoolean; +end; + +function TDADataTable.GetAsBoolean(const FieldName: string): boolean; +begin + result := FieldByName(FieldName).AsBoolean; +end; + +function TDADataTable.GetAsCurrency(Index: integer): Currency; +begin + Result:= fFields[Index].AsCurrency; +end; + +function TDADataTable.GetAsCurrency(const FieldName: string): currency; +begin + result := FieldByName(FieldName).AsCurrency; +end; + +function TDADataTable.GetAsDateTime(const FieldName: string): TDateTime; +begin + result := FieldByName(FieldName).AsDateTime; +end; + +function TDADataTable.GetAsDateTime(Index: integer): TDateTime; +begin + result := fFields[Index].AsDateTime; +end; + +function TDADataTable.GetAsFloat(const FieldName: string): double; +begin + result := FieldByName(FieldName).AsFloat; +end; + +function TDADataTable.GetAsFloat(Index: integer): double; +begin + result := fFields[Index].AsFloat; +end; + +function TDADataTable.GetAsInteger(Index: integer): integer; +begin + result := fFields[Index].AsInteger; +end; + +function TDADataTable.GetAsInteger(const FieldName: string): integer; +begin + result := FieldByName(FieldName).AsInteger; +end; + +function TDADataTable.GetAsString(const FieldName: string): string; +begin + result := FieldByName(FieldName).AsString; +end; + +function TDADataTable.GetAsString(Index: integer): string; +begin + result := fFields[Index].AsString; +end; + +function TDADataTable.GetAsVariant(const FieldName: string): variant; +begin + result := FieldByName(FieldName).Value; +end; + +function TDADataTable.GetAsVariant(Index: integer): variant; +begin + result := fFields[Index].Value +end; + +function TDADataTable.GetFieldIndexes(const aName: string): integer; +begin + result := fFields.FindItem(aName).Index +end; + +function TDADataTable.GetFieldNames(Index: integer): string; +begin + result := fFields[Index].Name +end; + +procedure TDADataTable.SetBusinessRulesID(const Value: string); +var + bizclass: TDADataTableRulesClass; +begin + if (Value = fBusinessRulesID) then Exit; + + if Assigned(fBusinessRules) then begin + fBusinessRules.Detach(Self); + FreeAndNIL(fBusinessRules); + end; + + fBusinessRulesID := Trim(Value); + + if (fBusinessRulesID <> '') and not (csDesigning in ComponentState) then begin + Check(not FindDataTableRules(Value, bizclass), 'Invalid BusinessRulesID "%s"', [Value]); + + fBusinessRules := bizclass.Create(Self); + fBusinessRules.Attach(Self); + end; +end; + +function TDADataTable.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + result := inherited QueryInterface(IID, Obj); + + if (result <> S_OK) and Assigned(fBusinessRules) then begin + // Users might introduce specific interfaces at the business rule level + // This allows to type cast the data table to any additional business oriented interface + // they decide to create. + result := fBusinessRules.QueryInterface(IID, Obj); + end; +end; + +function TDADataTable.GetHasDelta: boolean; +begin + result := Assigned(fDelta) and (fDelta.Count > 0); +end; + +function TDADataTable.GetHasDeltaRecursive: boolean; +var + lDetails: TList; + lTable: TDADataTable; + i: integer; +begin + result := Assigned(fDelta) and (fDelta.Count > 0); + if not result then begin + lDetails := nil; + if (moCascadeApplyUpdates in fMasterOptions) then try + lDetails := GetDetailDataTables; + for i := 0 to (lDetails.Count-1) do begin + lTable := TDADataTable(lDetails[i]); + if lTable.HasDeltaRecursive then begin + result := true; + exit; + end; + end; + finally + lDetails.Free; + end; + end; +end; + +function TDADataTable.GetMasterDataTable: TDADataTable; +var lDatatableDataset : IDADataTableDataset; +begin + if Supports(fMasterLink.DataSet, IDADataTableDataset, lDatatableDataset) + then result := lDatatableDataset.GetDataTable + else result := NIL; +end; + +function TDADataTable.GetRecNo: integer; +begin + result := fDataset.RecNo +end; + +procedure TDADataTable.SetRecNo(const Value: integer); +begin + fDataset.RecNo := Value +end; + +function TDADataTable.GetFieldsProperty: TDAFieldCollection; +begin + result := GetFields; +end; + +function TDADataTable.GetActiveProperty: boolean; +begin + result := GetActive(); +end; + +procedure TDADataTable.SetActiveProperty(const Value: boolean); +begin + SetActive(Value); +end; + +function TDADataTable.GetParamsProperty: TDAParamCollection; +begin + result := GetParams(); +end; + +{$IFNDEF LINUX} +function TDADataTable.InterfaceSupportsErrorInfo(const iid: TGUID): HResult; +begin + if GetInterfaceEntry(iid) <> nil then + Result := S_OK + else + Result := S_FALSE; +end; + +function TDADataTable.SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; +begin + Result := uDAEngine.DAHandleSafeCallException(self,ExceptObject, ExceptAddr); +end; +{$ENDIF} + +procedure TDADataTable.CancelUpdates(IncludeDetails: boolean); +var list : TList; + i, orignextinc : integer; + wasfiltered, + remotefetch : boolean; + lOldMasterFields: string; +begin + if Editing then Cancel; + if not LogChanges then Exit; + + DisableControls; + wasfiltered := Filtered; + Filtered := FALSE; + try + // Truns off the remote fetching for this datatable and its details + remotefetch := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + if IncludeDetails then list := GetDetailDataTables else list := TList.Create; + + // Disable the log of changes (we're about to make a bunch!) + LogChanges := FALSE; + + // Saves the current recinc (we'll change this during the restore) + orignextinc := CurrRecId; + try + lOldMasterFields := MasterFields; + MasterFields := ''; + try + // Reverts the records to the original state + for i := 0 to (Delta.Count-1) do + InternalCancelUpdateChange(Delta[i]); + finally + MasterFields := lOldMasterFields; + end; + + // Cancels the updates for the details + for i := 0 to list.Count-1 do begin + TDADataTable(list[i]).CancelUpdates(TRUE); + end; + + // Erases the delta + Delta.Clear; + + finally + fHasReducedDelta:=False; + list.Free; + CurrRecId := orignextinc; + LogChanges := TRUE; + RemoteFetchEnabled := remotefetch; + end; + finally + Filtered := wasfiltered; + EnableControls; + end; +end; + +procedure TDADataTable.DoBeforeOpenDataset; +begin + CallScript('BeforeOpen'); + + fOpenTick := ROGetTickCount; + if Assigned(fBeforeOpenIDataset) then fBeforeOpenIDataset(Self); +end; + +function TDADataTable.Lookup(const KeyFields: string; + const KeyValues: Variant; const ResultFields: string): Variant; +begin + result := fDataset.Lookup(KeyFields, KeyValues, ResultFields); +end; + +function TDADataTable.GetIsEmpty: boolean; +begin + result := fDataset.IsEmpty; +end; + +function TDADataTable.GetMasterParamsMappings: TStrings; +begin + result := fMasterParamsMappings +end; + +procedure TDADataTable.SetMasterParamsMappings(const Value: TStrings); +begin + fMasterParamsMappings.Assign(Value); +end; + +function TDADataTable.GetLogicalName: string; +begin + result := fLogicalName; +end; + +function TDADataTable.GetReadOnly: boolean; +begin + result := FALSE; +end; + +procedure TDADataTable.SetReadOnly(const Value: boolean); +begin + // By default this property cannot be set. Raising exceptions creates problems + // at design time and it's useless +end; + +procedure TDADataTable.SetScriptCode(const Value: TStrings); +begin + fScriptCode.Assign(Value); +end; + +procedure TDADataTable.CallScript(const aEvent: string); +begin + if Assigned(ScriptingProvider) and (ScriptCode.Count > 0) then begin + (ScriptingProvider as IDADataTableScriptingProvider).RunDataTableScript(self, ScriptCode.Text, aEvent, rslPascalScript); + end; +end; + +function TDADataTable.FindField(const aName: string): TDAField; +begin + result := fFields.FindField(aName); +end; + +procedure TDADataTable.AddRecord(const FieldNames: array of string; + const FieldValues: array of Variant); +var i : integer; +begin + Insert; + for i := 0 to Length(FieldNames)-1 do + FieldByName(FieldNames[i]).Value := FieldValues[i]; + Post; +end; + +procedure TDADataTable.SetLogicalName(aName: string); +begin + fLogicalName := aName; +end; + +function TDADataTable.GetDeltaInitialized: boolean; +begin + result := fDelta<>NIL +end; + +procedure TDADataTable.NotifyFieldsClear; +var + i, lLockCount: integer; +begin + // This method patches VCL issue with notification + // of datasources when clearing fields and controls is disabled + lLockCount := 0; + while DataSet.ControlsDisabled do begin + inc(lLockCount); + DataSet.EnableControls; + end; + TDataSetHack(DataSet).DataEvent(deFieldListChange, 0); + for i := 0 to lLockCount - 1 do begin + DataSet.DisableControls; + end; +end; + +function TDADataTable.GetOnAfterOpen: TDAAfterOpenDatasetEvent; +begin + result := fAfterOpenIDataset; +end; + +function TDADataTable.GetOnBeforeOpen: TDABeforeOpenDatasetEvent; +begin + result := fBeforeOpenIDataset; +end; + +procedure TDADataTable.SetOnAfterOpen( + const Value: TDAAfterOpenDatasetEvent); +begin + fAfterOpenIDataset := Value; +end; + +procedure TDADataTable.SetOnBeforeOpen( + const Value: TDABeforeOpenDatasetEvent); +begin + fBeforeOpenIDataset := Value; +end; + +function TDADataTable.GetOnAfterExecute: TDAAfterExecuteCommandEvent; +begin + NotSupported(); +end; + +function TDADataTable.GetOnBeforeExecute: TDABeforeExecuteCommandEvent; +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnAfterExecute( + const Value: TDAAfterExecuteCommandEvent); +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnBeforeExecute( + const Value: TDABeforeExecuteCommandEvent); +begin + NotSupported(); +end; + +function TDADataTable.GetOnExecuteError: TDAExecuteCommandErrorEvent; +begin + NotSupported(); +end; + +function TDADataTable.GetOnOpenError: TDAOpenDatasetErrorEvent; +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnExecuteError( + const Value: TDAExecuteCommandErrorEvent); +begin + NotSupported(); +end; + +procedure TDADataTable.SetOnOpenError( + const Value: TDAOpenDatasetErrorEvent); +begin + NotSupported(); +end; + +function TDADataTable.GetCurrRecId: integer; +begin + result := fCurrRecId; +end; + +procedure TDADataTable.SetCurrRecId(const Value: integer); +begin + fCurrRecId := Value; +end; + +function TDADataTable.GetAutoIncs: TAutoIncArray; +begin + result := fAutoIncs; +end; + +procedure TDADataTable.SetAutoIncs(const Value: TAutoIncArray); +begin + fAutoIncs := Value; +end; + +function TDADataTable.CreateAutoIncArray: TAutoIncArray; +var i: integer; +begin + SetLength(result, Fields.Count); + for i := 0 to Fields.Count-1 do result[i] := -1; +end; + +function TDADataTable.GetCurrentRecIdValue: integer; +begin + result := fCurrRecId; +end; + +procedure TDADataTable.SetCurrentRecIdValue(Value: integer); +begin + fCurrRecId := Value; +end; + +procedure TDADataTable.InternalAfterFieldUpdate(Sender: TDACustomField); +begin + if assigned(fAfterFieldChange) and (Sender is TDAField) then + fAfterFieldChange(self, TDAField(Sender)); +end; + +procedure TDADataTable.InternalBeforeFieldUpdate(Sender: TDACustomField); +begin + if assigned(fBeforeFieldChange) and (Sender is TDAField) then + fBeforeFieldChange(self, TDAField(Sender)); +end; + +procedure TDADataTable.InternalSetFetching(aFetching: boolean); +begin + fFetching := aFetching; +end; + +procedure TDADataTable.SetCustomAttributes(const Value: TStrings); +begin + fCustomAttributes.Assign(Value); +end; + +function TDADataTable.Local_ApplyUpdates(RefetchAll: boolean): boolean; + + function UnpackDeltas(var lStruct: TDADeltaStruct): TDABusinessProcessor; + var + j: integer; + lBizProc: TDABusinessProcessor; + lDetails: TDADatasetRelationshipList; + lFound: boolean; + begin + result := nil; + lStruct := nil; + // Reads the deltas. + lFound := false; + { Tries to locate a user-defined business processor } + if LocalSchema.Owner <> nil then + for j := 0 to (LocalSchema.Owner.ComponentCount - 1) do begin + if (LocalSchema.Owner.Components[j] is TDABusinessProcessor) then begin + lBizProc := TDABusinessProcessor(LocalSchema.Owner.Components[j]); + if SameText(lBizProc.ReferencedDataset, Self.LogicalName) then begin + lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); + lFound := true; + Break; + end; + end; + end; + { Either creates one} + if not lFound then begin + lBizProc := TDABusinessProcessor.Create(nil); + lBizProc.ReferencedDataset := Self.LogicalName; + lBizProc.Schema := LocalSchema; + Result := lBizProc; + lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); + end; + + { Sets the master/detail relationships } + if (LocalSchema.RelationShips.Count > 0) then begin + lDetails := TDADatasetRelationshipList.Create; + try + LocalSchema.RelationShips.GetDetails(lStruct.BusinessProcessor.ReferencedDataset, lDetails); + if (lDetails.Count <> 0) then begin + { Prepares an array with the references to the detail deltas that will be used later on to adjust + autoincs, etc. } + for j := 0 to lDetails.Count - 1 do begin + if lDetails[j].DetailDatasetName = LogicalName then begin + lStruct.DetailDeltas.Add(lStruct.Delta); + lStruct.RelationShips.Add(lDetails[j]); + end; + end; + end; + finally + lDetails.Free; + end; + end; + end; + +var + FLocalConnection: IDAConnection; + lProcessedDeltas: TStringList; + lStruct: TDADeltaStruct; + lBizProc: TDABusinessProcessor; + i, j: integer; +begin + Result:=False; + CheckProperties; + FLocalConnection := LocalSchema.ConnectionManager.NewConnection(LocalConnection); + if (Delta = nil) or (Delta.Count = 0) then Exit; + lBizProc := UnpackDeltas(lStruct); + try + {if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then} FLocalConnection.BeginTransaction; + try + if (LocalSchema.UpdateRules.Count = 0) then begin + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); + end + else begin + lProcessedDeltas := TStringList.Create; + try + + for i := 0 to (LocalSchema.UpdateRules.Count - 1) do begin + // Processes them in the order defined in the schema + if LocalSchema.UpdateRules[i].DatasetName = LogicalName then begin + // Adds the dataset name to the list of processed deltas. Those that don't have update rules will be processed later + lProcessedDeltas.Add(LogicalName); + + // Processes the delta + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, LocalSchema.UpdateRules[i].ChangeTypes); + + if (ctInsert in LocalSchema.UpdateRules[i].ChangeTypes) then begin + for j := 0 to (lStruct.DetailDeltas.Count - 1) do + lStruct.BusinessProcessor.SynchronizeAutoIncs(lStruct.Delta, lStruct.DetailDeltas[j], lStruct.RelationShips[j]); + end; + end; + end; + // Processes the deltas for which update rules were not defined + if lProcessedDeltas.IndexOf(LogicalName) = -1 then + lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); + finally + lProcessedDeltas.Free; + end; + end; + if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataCommitTransaction)} then FLocalConnection.CommitTransaction; + MergeDelta; + Result:=True; + except + on E: Exception do begin + if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction)} then FLocalConnection.RollbackTransaction; + raise; + end; + end; + finally + if lStruct <> nil then lStruct.Free; + if lBizProc <> nil then lBizProc.Free; + end; + if RefetchAll and result then begin + if Active then Close; + Open; + end; +end; + +procedure TDADataTable.GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); +var + i: integer; + dt: TDADataTable; + dtList: TList; + scc: IDASimpleClonedCursorsSupport; +begin + if (moAllInOneFetch in fMasterOptions) then begin + dtList:=GetDetailDataTables; + try + for i := 0 to dtList.Count-1 do begin + dt := TDADataTable(dtList[i]); + if (dtIncludeInAllInOneFetch in dt.DetailOptions) then begin + if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin + dt:= TDADatatable(scc.GetSimpleCloneSource); + end; + + if self.RemoteFetchEnabled and dt.RemoteFetchEnabled and (dt.RemoteDataAdapter = Self.RemoteDataAdapter) then begin + if aRemote.IndexOf(dt) = -1 then aRemote.Add(dt); + end + else begin + if aLocal.IndexOf(dt) = -1 then aLocal.Add(dt); + end; + if aRecursive then dt.GetDetailTablesforAllinOneFetch(aRemote,aLocal, aRecursive); + end; + end; + finally + dtList.Free; + end; + end +end; + +function TDADataTable.GetDetailTablesforApplyUpdate(aRecursive: boolean): TList; +var + i: integer; + dt: TDADataTable; + dtList, dtlist1: TList; + scc: IDASimpleClonedCursorsSupport; +begin + Result:= TList.Create; + if (moCascadeApplyUpdates in fMasterOptions) then begin + dtList:=GetDetailDataTables; + try + for i := 0 to dtList.Count-1 do begin + dt := TDADataTable(dtList[i]); + if dt.Active and (dtCascadeApplyUpdates in dt.DetailOptions) then begin + if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin + dt:= TDADatatable(scc.GetSimpleCloneSource); + end; + if Result.IndexOf(dt) = -1 then Result.Add(dt); + if aRecursive then begin + dtlist1:= dt.GetDetailTablesforApplyUpdate(aRecursive); + try + Result.Assign(dtlist1,laOr); + finally + dtlist1.Free; + end; + end; + end; + end; + finally + dtList.Free; + end; + end +end; + +procedure TDADataTable.CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); +var + orignextinc : integer; + wasfiltered, + remotefetch : boolean; + lOldMasterFields: string; + details: TList; + i,j,k: integer; + detailChange: TDADeltaChange; + ChangePKValueArray: array of Variant; + lNeedDeleteChange: boolean; + keyvalue: variant; +begin + if Editing then Cancel; + if not LogChanges then Exit; + + DisableControls; + wasfiltered := Filtered; + Filtered := FALSE; + try + // Truns off the remote fetching for this datatable and its details + remotefetch := RemoteFetchEnabled; + RemoteFetchEnabled := FALSE; + + // Disable the log of changes (we're about to make a bunch!) + LogChanges := FALSE; + // Saves the current recinc (we'll change this during the restore) + orignextinc := CurrRecId; + try + lOldMasterFields := MasterFields; + MasterFields := ''; + try + // Reverts the records to the original state + + if IncludeDetails then begin + SetLength(ChangePKValueArray,Change.Delta.KeyFieldCount); + For i:=1 to Change.Delta.KeyFieldCount do begin + if Change.ChangeType = ctInsert then + keyvalue:=Change.NewValueByName[Change.Delta.KeyFieldNames[i-1]] + else + keyvalue:=Change.OldValueByName[Change.Delta.KeyFieldNames[i-1]]; + ChangePKValueArray[0]:=keyvalue; + end; + details:=GetDetailTablesforApplyUpdate; + try + for i:=0 to details.Count-1 do begin + for j:=0 to TDADataTable(details[i]).Delta.Count-1 do begin + detailChange :=TDADataTable(details[i]).Delta.Changes[j]; + if detailChange.Status <> csResolved then begin + lNeedDeleteChange:= True; + for k:=0 to Change.Delta.KeyFieldCount-1 do begin + if detailChange.ChangeType = ctInsert then + keyvalue:=detailChange.NewValueByName[Change.Delta.KeyFieldNames[k]] + else + keyvalue:=detailChange.oldValueByName[Change.Delta.KeyFieldNames[k]]; + if not VarSameValue(keyValue, ChangePKValueArray[k]) then begin + lNeedDeleteChange:= False; + Break; + end; + end; + if lNeedDeleteChange then TDADataTable(details[i]).CancelUpdateChange(detailChange,IncludeDetails); + end; + end; + end; + finally + details.Free; + end; + end; + InternalCancelUpdateChange(change); + Delta.RemoveChange(change); + finally + if Delta.Count = 0 then fHasReducedDelta:=False; + MasterFields := lOldMasterFields; + end; + finally + CurrRecId := orignextinc; + LogChanges := TRUE; + RemoteFetchEnabled := remotefetch; + end; + finally + Filtered := wasfiltered; + EnableControls; + end; +end; + +procedure TDADataTable.InternalCancelUpdateChange(Change: TDADeltaChange); +var + i, x : integer; + fldname : string; + fldvalue : Variant; + details: TList; + RecID:string; +begin + case Change.ChangeType of + ctDelete : begin + CurrRecId := change.RecID; // We want the same autoinc regenerated + RecID:=IntToStr(Change.RecID); + Insert; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fldname := Delta.LoggedFieldNames[x]; + fldvalue := change.OldValues[x]; + VariantToFieldValue(fldValue, FieldByName(fldname)); + end; + Post; + + details := GetDetailDataTables; + try + for x := 0 to (details.Count-1) do begin + i:=TDADataTable(details[x]).fFetchedMasters.IndexOf(RecID); + if i<>-1 then TDADataTable(details[x]).fFetchedMasters.Delete(i); + end; + finally + details.Free; + end; + + + end; + + else begin + if not Locate(RecIDFieldName, change.RecID, []) then RaiseError('Couldn''t find record #'+FormatRecIDString(change.RecID)); + + if (change.ChangeType=ctInsert) then Delete + else begin + Edit; + for x := 0 to (Delta.LoggedFieldCount-1) do begin + fldname := Delta.LoggedFieldNames[x]; + fldvalue := change.OldValues[x]; + if fHasReducedDelta and ROVariantsEqual(fldvalue, change.NewValues[x]) then Continue; + VariantToFieldValue(fldValue, FieldByName(fldname)); + end; + Post; + end; + end; + end; +end; + +procedure TDADataTable.CheckProperties(ACheckRemoteFetching: Boolean=False); +begin + if RemoteFetchEnabled or ACheckRemoteFetching then begin + Check(RemoteDataAdapter = nil, Name+'.RemoteDataAdapter must be assigned.'); + end + else begin + Check(LocalDataStreamer = nil , Name+'.LocalDataStreamer must be assigned.'); + Check(LocalSchema = nil, Name+'.LocalSchema must be assigned.'); + LocalSchema.CheckProperties; + end; +end; + + +procedure TDADataTable.ExpessionEvaluatorGetValue( + Sender: TDAExpressionEvaluator; const aIdentifier: string; + out aValue: Variant); +begin + aValue := Fields.FieldByName(aIdentifier).Value; +end; + +function TDADataTable.GetDynamicWhere: TDAWhereBuilder; +begin + Result := fDynamicWhere; +end; + +procedure TDADataTable.SetDynamicWhere(const Value: TDAWhereBuilder); +begin + if Value <> nil then + FDynamicWhere.Xml := Value.Xml + else + FDynamicWhere.Clear; +end; + +{ TDADataSource } + +constructor TDADataSource.Create(aOwner: TComponent); +begin + inherited; +end; + +destructor TDADataSource.Destroy; +begin + inherited; +end; + +function TDADataSource.GetActive: boolean; +begin + result := (fDataTable <> nil) and fDataTable.Active +end; + +function TDADataSource.GetDataset: TDataset; +begin + result := nil; +end; + +function TDADataSource.GetOpening: boolean; +begin + result := (fDataTable <> nil) and fDataTable.Opening +end; + +procedure TDADataSource.Notification(AComponent: TComponent; + Operation: TOperation); +begin + inherited; + + if (AComponent = fDataTable) then begin + fDataTable := nil; + inherited Dataset := nil; + end; +end; + +procedure TDADataSource.SetDataset(const Value: TDataset); +begin + +end; + +procedure TDADataSource.SetDataTable(const Value: TDADataTable); +begin + fDataTable := Value; + if (fDataTable <> nil) then begin + fDataTable.FreeNotification(Self); + inherited Dataset := fDataTable.Dataset; + end + else + inherited Dataset := nil; +end; + +{ TDABusinessRules } + +constructor TDABusinessRules.Create; +begin + inherited; +end; + +destructor TDABusinessRules.Destroy; +begin + inherited; +end; + +function TDABusinessRules._AddRef: Integer; +begin + result := -1; +end; + +function TDABusinessRules._Release: Integer; +begin + result := -1; +end; + +{ TDADataTableRules } + +constructor TDADataTableRules.Create(aDataTable: TDADataTable); +begin + inherited Create; + + Check(not Assigned(aDatatable), 'DataTable cannot be NIL'); + + fDetails := TStringList.Create; + fDetails.Sorted := TRUE; + fDetails.Duplicates := dupError; + + fDataTable := aDataTable; +end; + +destructor TDADataTableRules.Destroy; +begin + fDetails.Free; + + inherited; +end; + +procedure TDADataTableRules.AfterCancel(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterClose(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterDelete(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterEdit(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterInsert(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterOpen(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterPost(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterRefresh(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.AfterScroll(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeCancel(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeClose(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeDelete(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeEdit(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeInsert(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeOpen(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforePost(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeRefresh(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.BeforeScroll(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnCalcFields(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnNewRecord(Sender: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnDeleteError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +procedure TDADataTableRules.OnEditError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +procedure TDADataTableRules.Attach(aDataTable: TDADataTable); +begin + RefreshDetails; +end; + +procedure TDADataTableRules.Detach(aDataTable: TDADataTable); +begin + fDetails.Clear; +end; + +procedure TDADataTableRules.Append; +begin + fDataTable.Append(); +end; + +procedure TDADataTableRules.Cancel; +begin + fDataTable.Cancel(); +end; + +procedure TDADataTableRules.Delete; +begin + fDataTable.Delete(); +end; + +procedure TDADataTableRules.Edit; +begin + fDataTable.Edit(); +end; + +procedure TDADataTableRules.First; +begin + fDataTable.First(); +end; + +procedure TDADataTableRules.Insert; +begin + fDataTable.Insert(); +end; + +procedure TDADataTableRules.Last; +begin + fDataTable.Last(); +end; + +procedure TDADataTableRules.Next; +begin + fDataTable.Next(); +end; + +procedure TDADataTableRules.Post; +begin + fDataTable.Post(); +end; + +procedure TDADataTableRules.Prior; +begin + fDataTable.Prior(); +end; + +function TDADataTableRules.GetBOF: Boolean; +begin + result := fDataTable.BOF; +end; + +function TDADataTableRules.GetEOF: Boolean; +begin + result := fDataTable.EOF; +end; + +function TDADataTableRules.GetRecordCount: Integer; +begin + result := fDataTable.RecordCount; +end; + +function TDADataTableRules.Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): boolean; +begin + result := fDataTable.Locate(aKeyFields, aKeyValues, aOptions); +end; + +function TDADataTableRules.GetDetails(Index: integer): TDADataTable; +begin + result := TDADataTable(fDetails[Index]) +end; + +function TDADataTableRules.GetDetailsCount: integer; +begin + result := fDetails.Count +end; + +function TDADataTableRules.FindDetail( + const aLogicalName: string): TDADataTable; +var i : integer; +begin + result := NIL; + i := fDetails.IndexOf(aLogicalName); + + if (i>=0) then result := TDADataTable(fDetails.Objects[i]); +end; + +function TDADataTableRules.DetailByName( + const aLogicalName: string): TDADataTable; +begin + result := FindDetail(aLogicalName); + if (result=NIL) + then raise Exception.CreateFmt('Cannot find the detail DataTable %s ', [aLogicalName]); +end; + +procedure TDADataTableRules.RefreshDetails; +var lList : TList; + i : integer; + lLogicalName : string; +begin + lList := DataTable.GetDetailDataTables; + fDetails.Clear; + try + for i := 0 to (lList.Count-1) do begin + lLogicalName := TDADataTable(lList[i]).LogicalName; + + if (lLogicalName<>'') + then fDetails.AddObject(lLogicalName, lList[i]); + end; + finally + lList.Free; + end; +end; + +function TDADataTableRules.GetDetailOptions: TDADetailOptions; +begin + result := DataTable.DetailOptions +end; + +function TDADataTableRules.GetMasterOptions: TDAMasterOptions; +begin + result := DataTable.MasterOptions +end; + +procedure TDADataTableRules.SetDetailOptions(Value: TDADetailOptions); +begin + DataTable.DetailOptions := Value +end; + +procedure TDADataTableRules.SetMasterOptions(Value: TDAMasterOptions); +begin + DataTable.MasterOptions := Value +end; + +function TDADataTableRules.GetRecNo: integer; +begin + result := fDataTable.RecNo +end; + +procedure TDADataTableRules.SetRecNo(Value: integer); +begin + fDataTable.RecNo := Value +end; + +procedure TDADataTableRules.OnFilterRecord(DataTable: TDADataTable; + var Accept: boolean); +begin + +end; + +procedure TDADataTableRules.OnPostError(DataTable: TDADataTable; + Error: EDatabaseError; var Action: TDataAction); +begin + +end; + +function TDADataTableRules.Lookup(const KeyFields: string; + const KeyValues: Variant; const ResultFields: string): Variant; +begin + result := fDataTable.Lookup(KeyFields, KeyValues, ResultFields); +end; + +function TDADataTableRules.GetIsEmpty: boolean; +begin + result := fDataTable.IsEmpty +end; + +function TDADataTableRules.GetState: TDatasetState; +begin + result := fDataTable.State +end; + +function TDADataTableRules.IsFieldNull( + const FieldIndexOrName: Variant): boolean; +var fld : TDAField; +begin + case VarType(FieldIndexOrName) of + varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); + else fld := DataTable.Fields[FieldIndexOrName]; + end; + + result := fld.IsNull; +end; + +procedure TDADataTableRules.ClearField(const FieldIndexOrName: Variant); +var fld : TDAField; +begin + case VarType(FieldIndexOrName) of + varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); + else fld := DataTable.Fields[FieldIndexOrName]; + end; + + fld.Clear; +end; + +function TDADataTableRules.GetDataTable: TDADataTable; +begin + result := fDataTable; +end; + +procedure TDADataTableRules.ApplyRange; +begin + (fDataTable as IDARangeController).ApplyRange +end; + +procedure TDADataTableRules.CancelRange; +begin + (fDataTable as IDARangeController).CancelRange +end; + +procedure TDADataTableRules.EditRangeEnd; +begin + (fDataTable as IDARangeController).EditRangeEnd +end; + +procedure TDADataTableRules.EditRangeStart; +begin + (fDataTable as IDARangeController).EditRangeStart +end; + +procedure TDADataTableRules.SetRange(const StartValues, + EndValues: array of const); +begin + (fDataTable as IDARangeController).SetRange(StartValues, EndValues); +end; + +procedure TDADataTableRules.SetRangeEnd; +begin + (fDataTable as IDARangeController).SetRangeEnd +end; + +procedure TDADataTableRules.SetRangeStart; +begin + (fDataTable as IDARangeController).SetRangeStart +end; + +procedure TDADataTableRules.Close; +begin + fDataTable.Close; +end; + +procedure TDADataTableRules.Open; +begin + fDataTable.Open; +end; + +function TDADataTableRules.GetActive: boolean; +begin + result := fDataTable.Active; +end; + +procedure TDADataTableRules.SetActive(const Value: boolean); +begin + fDataTable.Active := Value; +end; + +procedure TDADataTableRules.OnAfterApplyUpdates(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnAfterDataRequestCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterDataUpdateCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterMergeDelta(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnAfterSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnAfterScriptCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeApplyUpdates(DataTable: TDADataTable; + const Delta: IDADelta); +begin + +end; + +procedure TDADataTableRules.OnBeforeDataRequestCall( + DataTable: TDADataTable; Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeDataUpdateCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeMergeDelta(DataTable: TDADataTable); +begin + +end; + +procedure TDADataTableRules.OnBeforeSchemaCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnBeforeScriptCall(DataTable: TDADataTable; + Request: TDARemoteRequest); +begin + +end; + +procedure TDADataTableRules.OnReceiveDataStream(DataTable: TDADataTable; + Stream: TStream); +begin + +end; + +{ TDAFieldRules } +constructor TDAFieldRules.Create(aField : TDAField; aDataTable : TDADataTable); +begin + inherited Create; + + fDataTable := aDataTable; + + fField := aField; + fField.OnValidate := OnValidate; + fField.OnChange := OnChange; + + Attach(fDataTable); +end; + +destructor TDAFieldRules.Destroy; +begin + Detach(fDataTable); + inherited; +end; + +procedure TDAFieldRules.Attach(aDataTable: TDADataTable); +begin + +end; + +procedure TDAFieldRules.Detach(aDataTable: TDADataTable); +begin + +end; + +procedure TDAFieldRules.OnChange(Sender: TDACustomField); +begin +end; + +procedure TDAFieldRules.OnValidate(Sender: TDACustomField); +begin +end; + +{ TDADataTableList } +constructor TDADataTableList.Create(aOwnerComponent: TComponent); +begin + inherited Create; + + ScanAndAdd(aOwnerComponent); +end; + +function TDADataTableList.Add(aDataTable: TDADataTable): integer; +begin + result := inherited Add(aDataTable); +end; + +function TDADataTableList.GetItems(Index: integer): TDADataTable; +begin + result := TDADataTable(inherited Items[Index]); +end; + +procedure TDADataTableList.Remove(aDataTable: TDADataTable); +begin + inherited Remove(aDataTable); +end; + + +function TDADataTableList.ScanAndAdd(aOwnerComponent: TComponent): integer; +var i : integer; +begin + result := 0; + with aOwnerComponent do begin + for i := 0 to (Count-1) do + if (Components[i] is TDADataTable) then begin + Add(TDADataTable(Components[i])); + Inc(result); + end; + end; +end; + +function TDADataTableList.GetPendingChangeCount: integer; +var i : integer; +begin + result := 0; + for i := 0 to (Count-1) do + if Items[i].Active and Items[i].LogChanges + then Inc(result, Items[i].Delta.Count); +end; + +{ TDABaseRemoteDataAdapter } + +function TDABaseRemoteDataAdapter.Get_GetDataCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_GetSchemaCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_GetScriptsCall: TDARemoteRequest; +begin + result := nil; +end; + +function TDABaseRemoteDataAdapter.Get_UpdateDataCall: TDARemoteRequest; +begin + result := nil; +end; + +initialization + RegisterExceptionClass(EDABizValidationException); + + _bizfields := TStringList.Create; + _bizfields.Sorted := TRUE; + + _bizdatatables := TStringList.Create; + _bizdatatables.Sorted := TRUE; + +finalization + UnregisterExceptionClass(EDABizValidationException); + _bizdatatables.Free; + _bizfields.Free; + +end. From f9281d4ec982303f379959ab481dcb375eb9e2e8 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 10:58:36 +0000 Subject: [PATCH 03/32] Moved remotely git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/Varela@24 1c943782-d109-9647-9548-93b3ac332352 From 3bff8f59f8b9c2eabe61f88554bb6b6a75aeff3d Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 10:58:36 +0000 Subject: [PATCH 04/32] Moved remotely git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@24 1c943782-d109-9647-9548-93b3ac332352 --- Varela/Varela/Build/Build.fbl5 | Bin 2621440 -> 0 bytes Varela/Varela/Build/Build.fbp5 | 2825 ------- Varela/Varela/Build/Build.fbv | 1 - Varela/Varela/Build/Build.fbw | 0 Varela/Varela/Build/buildlog.html | 1298 ---- Varela/Varela/Database/1 - tablas.sql | 878 --- .../Database/2.1 - vistas inventario.sql | 1028 --- .../Varela/Database/2.2 - vistas ventas.sql | 284 - Varela/Varela/Database/2.3 - vistas stock.sql | 579 -- Varela/Varela/Database/3 - procedimientos.sql | 176 - .../Varela/Database/ANTERIOR/Script Datos.sql | 178 - .../Database/ANTERIOR/Script Tablas.sql | 519 -- .../ANTERIOR/Script Vistas INVRPT.sql | 1156 --- .../Database/ANTERIOR/Script Vistas STOCK.sql | 431 -- .../Database/ANTERIOR/Script Vistas.sql | 302 - .../Varela/Database/SCRIPT MEJORAS TABLAS.SQL | 473 -- Varela/Varela/Database/__Script mejoras.sql | 434 -- Varela/Varela/Lib/midas.dll | Bin 296448 -> 0 bytes .../Informes/InformeReferenciaGenerica.fr3 | 27 - Varela/Varela/Resources/Iconos/CargaEDI.ico | Bin 14846 -> 0 bytes Varela/Varela/Resources/Iconos/Cliente.ico | Bin 17542 -> 0 bytes .../Iconos/Devoluciones/16x16/Remove.png | Bin 420 -> 0 bytes .../Iconos/Devoluciones/16x16/Thumbs.db | Bin 9216 -> 0 bytes .../Iconos/Devoluciones/24x24/Remove.png | Bin 544 -> 0 bytes .../Iconos/Devoluciones/24x24/Thumbs.db | Bin 57856 -> 0 bytes .../Iconos/Devoluciones/28x28/Remove.png | Bin 605 -> 0 bytes .../Iconos/Devoluciones/28x28/Thumbs.db | Bin 7168 -> 0 bytes .../Iconos/FicherosEDI/16x16/Delete.png | Bin 734 -> 0 bytes .../Iconos/FicherosEDI/16x16/History.png | Bin 1034 -> 0 bytes .../Iconos/FicherosEDI/16x16/Thumbs.db | Bin 12800 -> 0 bytes .../Iconos/FicherosEDI/16x16/Tick.png | Bin 3254 -> 0 bytes .../Iconos/FicherosEDI/16x16/carga.png | Bin 3290 -> 0 bytes .../Iconos/FicherosEDI/24x24/History.png | Bin 1804 -> 0 bytes .../Iconos/FicherosEDI/24x24/Thumbs.db | Bin 10240 -> 0 bytes .../Iconos/FicherosEDI/24x24/cargar.png | Bin 3613 -> 0 bytes .../Iconos/FicherosEDI/28x28/History.png | Bin 2370 -> 0 bytes .../Iconos/FicherosEDI/28x28/Thumbs.db | Bin 10240 -> 0 bytes .../Iconos/FicherosEDI/28x28/cargar.png | Bin 3645 -> 0 bytes .../Iconos/Generales/16x16/013422.bmp | Bin 2360 -> 0 bytes .../Iconos/Generales/16x16/09378.bmp | Bin 916 -> 0 bytes .../Iconos/Generales/16x16/09378.png | Bin 420 -> 0 bytes .../Iconos/Generales/16x16/About.png | Bin 490 -> 0 bytes .../Generales/16x16/Añadir-capítulo.png | Bin 717 -> 0 bytes .../Generales/16x16/Añadir-material.png | Bin 685 -> 0 bytes .../Resources/Iconos/Generales/16x16/Back.png | Bin 909 -> 0 bytes .../Iconos/Generales/16x16/Box-Closed.png | Bin 400 -> 0 bytes .../Iconos/Generales/16x16/Box-Open-2.png | Bin 640 -> 0 bytes .../Iconos/Generales/16x16/Card-Copy.png | Bin 442 -> 0 bytes .../Iconos/Generales/16x16/Cell-Format.png | Bin 584 -> 0 bytes .../Iconos/Generales/16x16/Clear.png | Bin 440 -> 0 bytes .../Resources/Iconos/Generales/16x16/Copy.png | Bin 499 -> 0 bytes .../Resources/Iconos/Generales/16x16/Cut.png | Bin 709 -> 0 bytes .../Iconos/Generales/16x16/Dates-Adjust.png | Bin 473 -> 0 bytes .../Generales/16x16/Debug-Breakpoint.png | Bin 530 -> 0 bytes .../Generales/16x16/Debug-Watch-Delete.png | Bin 580 -> 0 bytes .../Iconos/Generales/16x16/Debug-Watch.png | Bin 427 -> 0 bytes .../Iconos/Generales/16x16/Delete.png | Bin 734 -> 0 bytes .../Iconos/Generales/16x16/Details-Hide.png | Bin 309 -> 0 bytes .../Iconos/Generales/16x16/Details-Show.png | Bin 379 -> 0 bytes .../16x16/Distribute-Rows Evenly.png | Bin 351 -> 0 bytes .../Resources/Iconos/Generales/16x16/Edit.png | Bin 496 -> 0 bytes .../Resources/Iconos/Generales/16x16/Exit.png | Bin 606 -> 0 bytes .../Iconos/Generales/16x16/Filter.png | Bin 488 -> 0 bytes .../Iconos/Generales/16x16/Format-Font.png | Bin 563 -> 0 bytes .../Iconos/Generales/16x16/Forward.png | Bin 896 -> 0 bytes .../Generales/16x16/Grid-Select Column.png | Bin 391 -> 0 bytes .../Iconos/Generales/16x16/Group By.png | Bin 261 -> 0 bytes .../Resources/Iconos/Generales/16x16/Home.png | Bin 454 -> 0 bytes .../Iconos/Generales/16x16/Minus.png | Bin 263 -> 0 bytes .../Resources/Iconos/Generales/16x16/New.png | Bin 350 -> 0 bytes .../Generales/16x16/Outline-Collapse.png | Bin 264 -> 0 bytes .../Iconos/Generales/16x16/Outline-Expand.png | Bin 343 -> 0 bytes .../Generales/16x16/Outline-Move Down.png | Bin 389 -> 0 bytes .../Generales/16x16/Outline-Move Up.png | Bin 380 -> 0 bytes .../Iconos/Generales/16x16/Parcel.png | Bin 561 -> 0 bytes .../Iconos/Generales/16x16/Paste.png | Bin 543 -> 0 bytes .../Resources/Iconos/Generales/16x16/Plus.png | Bin 343 -> 0 bytes .../Iconos/Generales/16x16/Preview.png | Bin 597 -> 0 bytes .../Iconos/Generales/16x16/Print-Options.png | Bin 446 -> 0 bytes .../Iconos/Generales/16x16/Print.png | Bin 484 -> 0 bytes .../Iconos/Generales/16x16/Refresh.png | Bin 486 -> 0 bytes .../Resources/Iconos/Generales/16x16/Save.png | Bin 482 -> 0 bytes .../Iconos/Generales/16x16/Search.png | Bin 441 -> 0 bytes .../Iconos/Generales/16x16/Select All.png | Bin 586 -> 0 bytes .../Iconos/Generales/16x16/Speaking-Start.png | Bin 407 -> 0 bytes .../Iconos/Generales/16x16/Sum-2.png | Bin 238 -> 0 bytes .../Iconos/Generales/16x16/Table-Search.png | Bin 651 -> 0 bytes .../Iconos/Generales/16x16/Thumbs.db | Bin 75264 -> 0 bytes .../Iconos/Generales/16x16/Total-capítulo.png | Bin 519 -> 0 bytes .../Generales/16x16/Título-capítulo.png | Bin 559 -> 0 bytes .../Resources/Iconos/Generales/16x16/Undo.png | Bin 682 -> 0 bytes .../Iconos/Generales/16x16/View-One Page.png | Bin 445 -> 0 bytes .../Generales/16x16/View-Page Width.png | Bin 476 -> 0 bytes .../Iconos/Generales/16x16/Warning.png | Bin 687 -> 0 bytes .../Iconos/Generales/16x16/Zoom-In.png | Bin 862 -> 0 bytes .../Iconos/Generales/16x16/Zoom-Out.png | Bin 848 -> 0 bytes .../Iconos/Generales/16x16/db-Next-2.png | Bin 289 -> 0 bytes .../Iconos/Generales/16x16/db-Previous-2.png | Bin 295 -> 0 bytes .../Iconos/Generales/16x16/db-first-2.png | Bin 327 -> 0 bytes .../Iconos/Generales/16x16/db-last-2.png | Bin 323 -> 0 bytes .../Iconos/Generales/24x24/About.png | Bin 1054 -> 0 bytes .../Resources/Iconos/Generales/24x24/Back.png | Bin 1488 -> 0 bytes .../Iconos/Generales/24x24/Box-Open-2.png | Bin 700 -> 0 bytes .../Iconos/Generales/24x24/Card-Copy.png | Bin 577 -> 0 bytes .../Iconos/Generales/24x24/Cell-Format.png | Bin 931 -> 0 bytes .../Iconos/Generales/24x24/Clear.png | Bin 958 -> 0 bytes .../Resources/Iconos/Generales/24x24/Copy.png | Bin 653 -> 0 bytes .../Resources/Iconos/Generales/24x24/Cut.png | Bin 1215 -> 0 bytes .../Iconos/Generales/24x24/Dates-Adjust.png | Bin 690 -> 0 bytes .../Generales/24x24/Debug-Breakpoint.png | Bin 732 -> 0 bytes .../Generales/24x24/Debug-Watch-Delete.png | Bin 1156 -> 0 bytes .../Iconos/Generales/24x24/Debug-Watch.png | Bin 983 -> 0 bytes .../Iconos/Generales/24x24/Delete.png | Bin 1170 -> 0 bytes .../Iconos/Generales/24x24/Details-Hide.png | Bin 319 -> 0 bytes .../Iconos/Generales/24x24/Details-Show.png | Bin 457 -> 0 bytes .../24x24/Distribute-Rows Evenly.png | Bin 401 -> 0 bytes .../Resources/Iconos/Generales/24x24/Edit.png | Bin 728 -> 0 bytes .../Resources/Iconos/Generales/24x24/Exit.png | Bin 1053 -> 0 bytes .../Iconos/Generales/24x24/Filter.png | Bin 761 -> 0 bytes .../Iconos/Generales/24x24/Format-Font.png | Bin 921 -> 0 bytes .../Iconos/Generales/24x24/Forward.png | Bin 1482 -> 0 bytes .../Generales/24x24/Grid-Select Column.png | Bin 486 -> 0 bytes .../Iconos/Generales/24x24/Group By.png | Bin 330 -> 0 bytes .../Resources/Iconos/Generales/24x24/Home.png | Bin 815 -> 0 bytes .../Iconos/Generales/24x24/Minus.png | Bin 264 -> 0 bytes .../Generales/24x24/Outline-Collapse.png | Bin 266 -> 0 bytes .../Iconos/Generales/24x24/Outline-Expand.png | Bin 391 -> 0 bytes .../Generales/24x24/Outline-Move Down.png | Bin 427 -> 0 bytes .../Generales/24x24/Outline-Move Up.png | Bin 430 -> 0 bytes .../Iconos/Generales/24x24/Paste.png | Bin 738 -> 0 bytes .../Resources/Iconos/Generales/24x24/Plus.png | Bin 423 -> 0 bytes .../Iconos/Generales/24x24/Preview.png | Bin 995 -> 0 bytes .../Iconos/Generales/24x24/Print-Options.png | Bin 823 -> 0 bytes .../Iconos/Generales/24x24/Print.png | Bin 802 -> 0 bytes .../Iconos/Generales/24x24/Refresh.png | Bin 756 -> 0 bytes .../Resources/Iconos/Generales/24x24/Save.png | Bin 667 -> 0 bytes .../Iconos/Generales/24x24/Search.png | Bin 631 -> 0 bytes .../Iconos/Generales/24x24/Select All.png | Bin 984 -> 0 bytes .../Iconos/Generales/24x24/Speaking-Start.png | Bin 514 -> 0 bytes .../Iconos/Generales/24x24/Sum-2.png | Bin 341 -> 0 bytes .../Iconos/Generales/24x24/Table-Search.png | Bin 1143 -> 0 bytes .../Iconos/Generales/24x24/Thumbs.db | Bin 76288 -> 0 bytes .../Resources/Iconos/Generales/24x24/Undo.png | Bin 1050 -> 0 bytes .../Iconos/Generales/24x24/View-One Page.png | Bin 570 -> 0 bytes .../Generales/24x24/View-Page Width.png | Bin 802 -> 0 bytes .../Iconos/Generales/24x24/Warning.png | Bin 1039 -> 0 bytes .../Iconos/Generales/24x24/Zoom-In.png | Bin 1411 -> 0 bytes .../Iconos/Generales/24x24/Zoom-Out.png | Bin 1390 -> 0 bytes .../Iconos/Generales/24x24/db-First-2.png | Bin 424 -> 0 bytes .../Iconos/Generales/24x24/db-Last-2.png | Bin 443 -> 0 bytes .../Iconos/Generales/24x24/db-Next-2.png | Bin 352 -> 0 bytes .../Iconos/Generales/24x24/db-Previous-2.png | Bin 342 -> 0 bytes .../Iconos/Generales/28x28/Box-Open-2.png | Bin 804 -> 0 bytes .../Iconos/Generales/28x28/Card-Copy.png | Bin 647 -> 0 bytes .../Iconos/Generales/28x28/Cell-Format.png | Bin 1127 -> 0 bytes .../Iconos/Generales/28x28/Dates-Adjust.png | Bin 773 -> 0 bytes .../Generales/28x28/Debug-Watch-Delete.png | Bin 1213 -> 0 bytes .../Iconos/Generales/28x28/Debug-Watch.png | Bin 1042 -> 0 bytes .../Iconos/Generales/28x28/Details-Hide.png | Bin 350 -> 0 bytes .../Iconos/Generales/28x28/Details-Show.png | Bin 500 -> 0 bytes .../28x28/Distribute-Rows Evenly.png | Bin 411 -> 0 bytes .../Iconos/Generales/28x28/Filter.png | Bin 763 -> 0 bytes .../Iconos/Generales/28x28/Format-Font.png | Bin 898 -> 0 bytes .../Generales/28x28/Grid-Select Column.png | Bin 711 -> 0 bytes .../Iconos/Generales/28x28/Group By.png | Bin 366 -> 0 bytes .../Resources/Iconos/Generales/28x28/Home.png | Bin 800 -> 0 bytes .../Generales/28x28/Outline-Move Down.png | Bin 434 -> 0 bytes .../Generales/28x28/Outline-Move Up.png | Bin 436 -> 0 bytes .../Iconos/Generales/28x28/Speaking-Start.png | Bin 512 -> 0 bytes .../Iconos/Generales/28x28/Sum-2.png | Bin 348 -> 0 bytes .../Iconos/Generales/28x28/Table-Search.png | Bin 1394 -> 0 bytes .../Iconos/Generales/28x28/Thumbs.db | Bin 37888 -> 0 bytes .../Iconos/Generales/28x28/Warning.png | Bin 1236 -> 0 bytes .../Resources/Iconos/Generales/Thumbs.db | Bin 8704 -> 0 bytes .../Iconos/Recepciones/16x16/Insert.png | Bin 3113 -> 0 bytes .../Iconos/Recepciones/16x16/Thumbs.db | Bin 8704 -> 0 bytes .../Iconos/Recepciones/16x16/albaran.png | Bin 3488 -> 0 bytes .../Iconos/Recepciones/24x24/Insert.png | Bin 3259 -> 0 bytes .../Iconos/Recepciones/24x24/Thumbs.db | Bin 58880 -> 0 bytes .../Iconos/Recepciones/24x24/albaran.png | Bin 3910 -> 0 bytes .../Iconos/Recepciones/28x28/Insert.png | Bin 3346 -> 0 bytes .../Iconos/Recepciones/28x28/Thumbs.db | Bin 14336 -> 0 bytes .../Iconos/Recepciones/28x28/albaran.png | Bin 3720 -> 0 bytes .../16x16/Label-Edit.png | Bin 531 -> 0 bytes .../Referencias genéricas/16x16/Thumbs.db | Bin 8192 -> 0 bytes .../Referencias genéricas/16x16/enespera.png | Bin 525 -> 0 bytes .../Referencias genéricas/16x16/pendiente.png | Bin 274 -> 0 bytes .../Referencias genéricas/16x16/resuelto.png | Bin 334 -> 0 bytes .../24x24/Label-Edit.png | Bin 693 -> 0 bytes .../28x28/Label-Edit.png | Bin 714 -> 0 bytes Varela/Varela/Resources/Iconos/Servidor.ico | Bin 22486 -> 0 bytes .../Iconos/Servidor/16x16/Database.png | Bin 749 -> 0 bytes .../Resources/Iconos/Servidor/16x16/Thumbs.db | Bin 44544 -> 0 bytes .../Iconos/Servidor/24x24/Database.png | Bin 1131 -> 0 bytes .../Resources/Iconos/Servidor/24x24/Thumbs.db | Bin 46080 -> 0 bytes .../Iconos/Servidor/28x28/Database.png | Bin 1317 -> 0 bytes .../Resources/Iconos/Servidor/28x28/Thumbs.db | Bin 15872 -> 0 bytes .../Resources/Iconos/Stock/16x16/Task.png | Bin 594 -> 0 bytes .../Resources/Iconos/Stock/16x16/Thumbs.db | Bin 5632 -> 0 bytes .../Resources/Iconos/Stock/24x24/Task.png | Bin 797 -> 0 bytes .../Resources/Iconos/Stock/24x24/Thumbs.db | Bin 5632 -> 0 bytes .../Resources/Iconos/Stock/28x28/Task.png | Bin 886 -> 0 bytes .../Resources/Iconos/Stock/28x28/Thumbs.db | Bin 7168 -> 0 bytes Varela/Varela/Resources/Iconos/Thumbs.db | Bin 19456 -> 0 bytes .../Iconos/Traspasos/16x16/Entrada.png | Bin 3035 -> 0 bytes .../Iconos/Traspasos/16x16/Salida.png | Bin 398 -> 0 bytes .../Resources/Iconos/Traspasos/16x16/Swap.png | Bin 476 -> 0 bytes .../Iconos/Traspasos/16x16/Thumbs.db | Bin 10240 -> 0 bytes .../Resources/Iconos/Traspasos/24x24/Swap.png | Bin 584 -> 0 bytes .../Iconos/Traspasos/24x24/Thumbs.db | Bin 57856 -> 0 bytes .../Resources/Iconos/Traspasos/28x28/Swap.png | Bin 586 -> 0 bytes .../Iconos/Traspasos/28x28/Thumbs.db | Bin 10240 -> 0 bytes .../Resources/Iconos/Usuarios/16x16/Thumbs.db | Bin 49152 -> 0 bytes .../Iconos/Usuarios/16x16/User-Add.png | Bin 832 -> 0 bytes .../Iconos/Usuarios/16x16/User-Edit.png | Bin 818 -> 0 bytes .../Iconos/Usuarios/16x16/User-Password.png | Bin 721 -> 0 bytes .../Iconos/Usuarios/16x16/User-Remove.png | Bin 773 -> 0 bytes .../Resources/Iconos/Usuarios/16x16/User.png | Bin 768 -> 0 bytes .../Resources/Iconos/Usuarios/16x16/Users.png | Bin 903 -> 0 bytes .../Resources/Iconos/Usuarios/24x24/Thumbs.db | Bin 55808 -> 0 bytes .../Iconos/Usuarios/24x24/User-Add.png | Bin 1345 -> 0 bytes .../Iconos/Usuarios/24x24/User-Edit.png | Bin 1385 -> 0 bytes .../Iconos/Usuarios/24x24/User-Password.png | Bin 1233 -> 0 bytes .../Iconos/Usuarios/24x24/User-Remove.png | Bin 1282 -> 0 bytes .../Resources/Iconos/Usuarios/24x24/User.png | Bin 1267 -> 0 bytes .../Resources/Iconos/Usuarios/24x24/Users.png | Bin 1555 -> 0 bytes .../Resources/Iconos/Usuarios/28x28/Thumbs.db | Bin 21504 -> 0 bytes .../Iconos/Usuarios/28x28/User-Add.png | Bin 1618 -> 0 bytes .../Iconos/Usuarios/28x28/User-Edit.png | Bin 1728 -> 0 bytes .../Iconos/Usuarios/28x28/User-Password.png | Bin 1563 -> 0 bytes .../Iconos/Usuarios/28x28/User-Remove.png | Bin 1581 -> 0 bytes .../Resources/Iconos/Usuarios/28x28/User.png | Bin 1525 -> 0 bytes .../Resources/Iconos/Usuarios/28x28/Users.png | Bin 1918 -> 0 bytes .../Resources/Iconos/Usuarios/48x48/Thumbs.db | Bin 5632 -> 0 bytes .../Resources/Iconos/Usuarios/48x48/Users.png | Bin 5154 -> 0 bytes .../Iconos/Ventas en proceso/16x16/Thumbs.db | Bin 5632 -> 0 bytes .../16x16/Ventas en proceso.png | Bin 3363 -> 0 bytes .../Iconos/Ventas en proceso/24x24/Thumbs.db | Bin 6144 -> 0 bytes .../24x24/Venta en proceso.png | Bin 3515 -> 0 bytes .../16x16/Currency-Notes.png | Bin 384 -> 0 bytes .../Ventas terminadas/16x16/Currency.png | Bin 477 -> 0 bytes .../Iconos/Ventas terminadas/16x16/Report.png | Bin 437 -> 0 bytes .../Iconos/Ventas terminadas/16x16/Thumbs.db | Bin 8704 -> 0 bytes .../16x16/Venta terminada.png | Bin 3180 -> 0 bytes .../24x24/Currency-Notes.png | Bin 676 -> 0 bytes .../Ventas terminadas/24x24/Currency.png | Bin 777 -> 0 bytes .../Iconos/Ventas terminadas/24x24/Report.png | Bin 489 -> 0 bytes .../Iconos/Ventas terminadas/24x24/Thumbs.db | Bin 12800 -> 0 bytes .../24x24/Venta terminada.png | Bin 3453 -> 0 bytes .../28x28/Currency-Notes.png | Bin 673 -> 0 bytes .../Ventas terminadas/28x28/Currency.png | Bin 887 -> 0 bytes .../Iconos/Ventas terminadas/28x28/Report.png | Bin 505 -> 0 bytes .../Iconos/Ventas terminadas/28x28/Thumbs.db | Bin 8192 -> 0 bytes Varela/Varela/Resources/Imagenes/Cabecera.jpg | Bin 18969 -> 0 bytes Varela/Varela/Resources/Imagenes/Cabecera.psd | Bin 337118 -> 0 bytes Varela/Varela/Resources/Imagenes/Thumbs.db | Bin 7680 -> 0 bytes .../Resources/Imagenes/WaitProgress/1021.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1022.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1023.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1024.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1025.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1026.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1027.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1028.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1029.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1030.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1031.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1032.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/1033.BMP | Bin 1550 -> 0 bytes .../Resources/Imagenes/WaitProgress/Thumbs.db | Bin 23552 -> 0 bytes .../Resources/Imagenes/Watermark Ficheros.psd | Bin 462918 -> 0 bytes .../Resources/Imagenes/Watermark-Ficheros.png | Bin 23588 -> 0 bytes Varela/Varela/Source/AdminPVGroup.bdsgroup | 32 - .../Varela/Source/AdminPVGroup.bdsgroup.local | 6 - Varela/Varela/Source/AdminPVGroup.bpg | 72 - Varela/Varela/Source/Base/BaseD10.bdsproj | 673 -- Varela/Varela/Source/Base/BaseD10.dpk | 112 - Varela/Varela/Source/Base/BaseD10.drc | 29 - Varela/Varela/Source/Base/BaseD10.identcache | Bin 2882 -> 0 bytes Varela/Varela/Source/Base/BaseD10.rc | 22 - Varela/Varela/Source/Base/BaseD10.res | Bin 4748 -> 0 bytes .../Varela/Source/Base/uBizInformesBase.pas | 14 - .../Source/Base/uConfigurarConexion.dfm | 113 - .../Source/Base/uConfigurarConexion.pas | 74 - .../Varela/Source/Base/uDBSelectionList.pas | 183 - Varela/Varela/Source/Base/uDataModuleBase.dfm | 1660 ---- Varela/Varela/Source/Base/uDataModuleBase.pas | 254 - Varela/Varela/Source/Base/uDataTableUtils.pas | 324 - Varela/Varela/Source/Base/uEditorBase.dfm | 1622 ---- Varela/Varela/Source/Base/uEditorBase.pas | 218 - Varela/Varela/Source/Base/uEditorDBBase.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Base/uEditorDBBase.dfm | 70 - Varela/Varela/Source/Base/uEditorDBBase.pas | 305 - Varela/Varela/Source/Base/uEditorDBItem.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Base/uEditorDBItem.dfm | 60 - Varela/Varela/Source/Base/uEditorDBItem.pas | 89 - Varela/Varela/Source/Base/uEditorGridBase.dfm | 1433 ---- Varela/Varela/Source/Base/uEditorGridBase.pas | 194 - Varela/Varela/Source/Base/uEditorItem.dfm | 53 - Varela/Varela/Source/Base/uEditorItem.pas | 41 - .../Varela/Source/Base/uEditorPSPreview.dfm | 15 - .../Varela/Source/Base/uEditorPSPreview.pas | 24 - Varela/Varela/Source/Base/uEditorPreview.dfm | 937 --- Varela/Varela/Source/Base/uEditorPreview.pas | 311 - Varela/Varela/Source/Base/uEditorUtils.pas | 108 - Varela/Varela/Source/Base/uExceptions.pas | 21 - Varela/Varela/Source/Base/uGridUtils.pas | 261 - Varela/Varela/Source/Base/uIntegerList.pas | 61 - Varela/Varela/Source/Base/uSysFunc.pas | 249 - .../Source/Base/uViewBarraSeleccion.dfm | 53 - .../Source/Base/uViewBarraSeleccion.pas | 37 - Varela/Varela/Source/Base/uViewBase.dfm | 14 - Varela/Varela/Source/Base/uViewBase.pas | 32 - Varela/Varela/Source/Base/uViewGrid.dfm | 79 - Varela/Varela/Source/Base/uViewGrid.pas | 86 - Varela/Varela/Source/Base/uViewGridBase.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Base/uViewGridBase.dfm | 10 - Varela/Varela/Source/Base/uViewGridBase.pas | 335 - Varela/Varela/Source/Base/uViewPreview.dfm | 10 - Varela/Varela/Source/Base/uViewPreview.pas | 43 - .../Varela/Source/CargaEDI/CargaEDI.bdsproj | 679 -- Varela/Varela/Source/CargaEDI/CargaEDI.cfg | 46 - Varela/Varela/Source/CargaEDI/CargaEDI.dof | 480 -- Varela/Varela/Source/CargaEDI/CargaEDI.dpr | 14 - Varela/Varela/Source/CargaEDI/CargaEDI.drc | 14 - .../Source/CargaEDI/CargaEDI.identcache | Bin 239 -> 0 bytes Varela/Varela/Source/CargaEDI/CargaEDI.rc | 23 - Varela/Varela/Source/CargaEDI/CargaEDI.res | Bin 15548 -> 0 bytes Varela/Varela/Source/CargaEDI/uCargaEDI.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/CargaEDI/uCargaEDI.dfm | 843 -- Varela/Varela/Source/CargaEDI/uCargaEDI.pas | 163 - Varela/Varela/Source/ClearFiles.msbuild | 18 - Varela/Varela/Source/Cliente/AdminPV.bdsproj | 677 -- Varela/Varela/Source/Cliente/AdminPV.cfg | 46 - Varela/Varela/Source/Cliente/AdminPV.dof | 480 -- Varela/Varela/Source/Cliente/AdminPV.dpr | 25 - Varela/Varela/Source/Cliente/AdminPV.drc | 14 - .../Varela/Source/Cliente/AdminPV.identcache | Bin 1038 -> 0 bytes Varela/Varela/Source/Cliente/AdminPV.rc | 26 - Varela/Varela/Source/Cliente/AdminPV.res | Bin 18368 -> 0 bytes Varela/Varela/Source/Cliente/uAcercaDe.dfm | 959 --- Varela/Varela/Source/Cliente/uAcercaDe.pas | 66 - Varela/Varela/Source/Cliente/uMenuUtils.pas | 263 - .../Source/Cliente/uPantallaPrincipal.ddp | Bin 51 -> 0 bytes .../Source/Cliente/uPantallaPrincipal.dfm | 441 -- .../Source/Cliente/uPantallaPrincipal.pas | 569 -- Varela/Varela/Source/Cliente/uSplash.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Cliente/uSplash.dfm | 935 --- Varela/Varela/Source/Cliente/uSplash.pas | 56 - .../Configuracion/Configuracion.bdsproj | 677 -- .../Source/Configuracion/Configuracion.cfg | 45 - .../Source/Configuracion/Configuracion.dof | 471 -- .../Source/Configuracion/Configuracion.dpk | 35 - .../Source/Configuracion/Configuracion.drc | 14 - .../Source/Configuracion/Configuracion.rc | 22 - .../Source/Configuracion/Configuracion.res | Bin 4748 -> 0 bytes .../Source/Configuracion/uPanelControl.dfm | 262 - .../Source/Configuracion/uPanelControl.pas | 50 - .../Cliente/uDataModuleControles.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleControles.dfm | 172 - .../Cliente/uDataModuleControles.pas | 76 - .../ControlesBase/Cliente/uDateUtils.pas | 68 - .../Cliente/uEditorControlBase.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorControlBase.dfm | 1324 ---- .../Cliente/uEditorControlBase.pas | 133 - .../Cliente/uEditorControlesBase.dfm | 1394 ---- .../Cliente/uEditorControlesBase.dfm.cbk | 1394 ---- .../Cliente/uEditorControlesBase.pas | 167 - .../Cliente/uFormPropiedadesControl.dfm | 384 - .../Cliente/uFormPropiedadesControl.pas | 117 - .../Cliente/uViewAgrupaciones.ddp | Bin 51 -> 0 bytes .../Cliente/uViewAgrupaciones.dfm | 135 - .../Cliente/uViewAgrupaciones.pas | 339 - .../ControlesBase/Cliente/uViewColumnas.ddp | Bin 51 -> 0 bytes .../ControlesBase/Cliente/uViewColumnas.dfm | 42 - .../ControlesBase/Cliente/uViewColumnas.pas | 113 - .../Cliente/uViewControlBase.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControlBase.dfm | 616 -- .../Cliente/uViewControlBase.pas | 179 - .../Cliente/uViewControlGrid.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControlGrid.dfm | 149 - .../Cliente/uViewControlGrid.pas | 284 - .../Cliente/uViewControlesBase.dfm | 269 - .../Cliente/uViewControlesBase.dfm.cbk | 269 - .../Cliente/uViewControlesBase.pas | 210 - .../ControlesBase/Cliente/uViewFiltros.ddp | Bin 51 -> 0 bytes .../ControlesBase/Cliente/uViewFiltros.dfm | 115 - .../ControlesBase/Cliente/uViewFiltros.pas | 197 - .../Cliente/uViewParametrosControlGrid.ddp | Bin 51 -> 0 bytes .../Cliente/uViewParametrosControlGrid.dfm | 3 - .../Cliente/uViewParametrosControlGrid.pas | 82 - .../Cliente/uViewPeriodoFechas.ddp | Bin 51 -> 0 bytes .../Cliente/uViewPeriodoFechas.dfm | 174 - .../Cliente/uViewPeriodoFechas.pas | 203 - .../ControlesBase/Cliente/uViewSumarios.ddp | Bin 51 -> 0 bytes .../ControlesBase/Cliente/uViewSumarios.dfm | 115 - .../ControlesBase/Cliente/uViewSumarios.pas | 325 - .../ControlesBase/ControlesBaseD10.bdsproj | 658 -- .../Source/ControlesBase/ControlesBaseD10.dpk | 85 - .../Source/ControlesBase/ControlesBaseD10.drc | 14 - .../ControlesBase/ControlesBaseD10.identcache | Bin 2239 -> 0 bytes .../Source/ControlesBase/ControlesBaseD10.rc | 22 - .../Source/ControlesBase/ControlesBaseD10.res | Bin 4748 -> 0 bytes .../Reglas/schControlesClient_Intf.pas | 209 - .../Reglas/schControlesServer_Intf.pas | 235 - .../Reglas/uBizControlesBase.pas | 80 - .../Servidor/srvControles_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvControles_Impl.dfm | 264 - .../Servidor/srvControles_Impl.pas | 48 - .../Devoluciones/Cliente/Devoluciones.bdsproj | 677 -- .../Devoluciones/Cliente/Devoluciones.cfg | 45 - .../Devoluciones/Cliente/Devoluciones.dof | 479 -- .../Devoluciones/Cliente/Devoluciones.dpk | 77 - .../Devoluciones/Cliente/Devoluciones.drc | 14 - .../Cliente/Devoluciones.identcache | Bin 947 -> 0 bytes .../Devoluciones/Cliente/Devoluciones.rc | 22 - .../Devoluciones/Cliente/Devoluciones.res | Bin 4748 -> 0 bytes .../Devoluciones/Cliente/MPCommonLibD10.drc | 23 - .../Cliente/cxVerticalGridVCLD7.drc | 23 - .../Cliente/uDataModuleDevoluciones.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleDevoluciones.dfm | 1639 ---- .../Cliente/uDataModuleDevoluciones.pas | 87 - .../Cliente/uEditorAjustarDevoluciones.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorAjustarDevoluciones.dfm | 944 --- .../Cliente/uEditorAjustarDevoluciones.pas | 351 - .../Cliente/uEditorListaDevoluciones.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorListaDevoluciones.dfm | 1708 ----- .../Cliente/uEditorListaDevoluciones.pas | 356 - .../Cliente/uPluginControllerDevoluciones.ddp | Bin 51 -> 0 bytes .../Cliente/uPluginControllerDevoluciones.dfm | 125 - .../Cliente/uPluginControllerDevoluciones.pas | 73 - .../Cliente/uViewListaDevoluciones.ddp | Bin 51 -> 0 bytes .../Cliente/uViewListaDevoluciones.dfm | 476 -- .../Cliente/uViewListaDevoluciones.pas | 608 -- .../Devoluciones/Reglas/uBizDevoluciones.pas | 77 - .../Servidor/srvDevoluciones_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvDevoluciones_Impl.dfm | 1505 ---- .../Servidor/srvDevoluciones_Impl.pas | 51 - .../FicherosEDI/Cliente/FicherosEDI.bdsproj | 677 -- .../FicherosEDI/Cliente/FicherosEDI.cfg | 45 - .../FicherosEDI/Cliente/FicherosEDI.dof | 474 -- .../FicherosEDI/Cliente/FicherosEDI.dpk | 74 - .../FicherosEDI/Cliente/FicherosEDI.drc | 14 - .../Cliente/FicherosEDI.identcache | Bin 1531 -> 0 bytes .../FicherosEDI/Cliente/FicherosEDI.rc | 22 - .../FicherosEDI/Cliente/FicherosEDI.res | Bin 4748 -> 0 bytes .../Cliente/uAsistenteCargaFicheros.ddp | Bin 51 -> 0 bytes .../Cliente/uAsistenteCargaFicheros.dfm | 2769 ------- .../Cliente/uAsistenteCargaFicheros.pas | 344 - .../Cliente/uAsistenteEtiquetasMontajes.dfm | 6759 ----------------- .../Cliente/uAsistenteEtiquetasMontajes.pas | 99 - .../FicherosEDI/Cliente/uCargarFicheros.pas | 258 - .../Cliente/uDataModuleFicherosEDI.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleFicherosEDI.dfm | 192 - .../Cliente/uDataModuleFicherosEDI.dfm.cbk | 193 - .../Cliente/uDataModuleFicherosEDI.pas | 61 - .../Cliente/uEditorHistorialCargasEDI.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorHistorialCargasEDI.dfm | 147 - .../Cliente/uEditorHistorialCargasEDI.pas | 76 - .../Cliente/uPluginControllerFicherosEDI.ddp | Bin 51 -> 0 bytes .../Cliente/uPluginControllerFicherosEDI.dfm | 601 -- .../Cliente/uPluginControllerFicherosEDI.pas | 76 - .../FicherosEDI/Cliente/uSubirFicheros.pas | 233 - .../Cliente/uViewHistorialCargasEDI.ddp | Bin 51 -> 0 bytes .../Cliente/uViewHistorialCargasEDI.dfm | 123 - .../Cliente/uViewHistorialCargasEDI.dfm.cbk | 123 - .../Cliente/uViewHistorialCargasEDI.pas | 72 - .../Reglas/schEDILogClient_Intf.pas | 154 - .../Reglas/schEDILogServer_Intf.pas | 167 - .../Modulos/FicherosEDI/Reglas/uBizEDILog.pas | 30 - .../Parametros/Cliente/Parametros.bdsproj | 677 -- .../Modulos/Parametros/Cliente/Parametros.cfg | 45 - .../Modulos/Parametros/Cliente/Parametros.dof | 479 -- .../Modulos/Parametros/Cliente/Parametros.dpk | 57 - .../Modulos/Parametros/Cliente/Parametros.drc | 14 - .../Parametros/Cliente/Parametros.identcache | Bin 766 -> 0 bytes .../Modulos/Parametros/Cliente/Parametros.rc | 22 - .../Modulos/Parametros/Cliente/Parametros.res | Bin 5056 -> 0 bytes .../Cliente/uDataModuleParametros.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleParametros.dfm | 214 - .../Cliente/uDataModuleParametros.pas | 78 - .../Cliente/uViewParametrosCentro.ddp | Bin 51 -> 0 bytes .../Cliente/uViewParametrosCentro.dfm | 36 - .../Cliente/uViewParametrosCentro.pas | 91 - .../Cliente/uViewParametrosColeccion.ddp | Bin 51 -> 0 bytes .../Cliente/uViewParametrosColeccion.dfm | 36 - .../Cliente/uViewParametrosColeccion.pas | 91 - .../Reglas/schParametrosClient_Intf.pas | 196 - .../Reglas/schParametrosServer_Intf.pas | 203 - .../Parametros/Reglas/uBizParametros.pas | 49 - .../Servidor/srvParametros_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvParametros_Impl.dfm | 155 - .../Servidor/srvParametros_Impl.pas | 48 - .../Recepciones/Cliente/Recepciones.bdsproj | 679 -- .../Recepciones/Cliente/Recepciones.cfg | 45 - .../Recepciones/Cliente/Recepciones.dof | 479 -- .../Recepciones/Cliente/Recepciones.dpk | 84 - .../Recepciones/Cliente/Recepciones.drc | 14 - .../Cliente/Recepciones.identcache | Bin 1259 -> 0 bytes .../Recepciones/Cliente/Recepciones.rc | 22 - .../Recepciones/Cliente/Recepciones.res | Bin 4748 -> 0 bytes .../Recepciones/Cliente/cxVerticalGridD10.drc | 23 - .../Cliente/cxVerticalGridVCLD7.drc | 22 - .../Cliente/dxLayoutControlD10.drc | 23 - .../Modulos/Recepciones/Cliente/rtl.drc | 10 - .../Cliente/uDataModuleRecepciones.dfm | 1830 ----- .../Cliente/uDataModuleRecepciones.pas | 131 - .../Cliente/uEditorAjustarRecepciones.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorAjustarRecepciones.dfm | 907 --- .../Cliente/uEditorAjustarRecepciones.pas | 352 - .../Cliente/uEditorListaRecepciones.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorListaRecepciones.dfm | 1715 ----- .../Cliente/uEditorListaRecepciones.pas | 370 - .../uEditorListaRecepcionesAlbaran.ddp | Bin 51 -> 0 bytes .../uEditorListaRecepcionesAlbaran.dfm | 1576 ---- .../uEditorListaRecepcionesAlbaran.pas | 184 - .../Cliente/uPluginControllerRecepciones.ddp | Bin 51 -> 0 bytes .../Cliente/uPluginControllerRecepciones.dfm | 756 -- .../Cliente/uPluginControllerRecepciones.pas | 94 - .../Cliente/uViewListaRecepciones.ddp | Bin 51 -> 0 bytes .../Cliente/uViewListaRecepciones.dfm | 513 -- .../Cliente/uViewListaRecepciones.pas | 595 -- .../Cliente/uViewListaRecepcionesAlbaran.ddp | Bin 51 -> 0 bytes .../Cliente/uViewListaRecepcionesAlbaran.dfm | 262 - .../Cliente/uViewListaRecepcionesAlbaran.pas | 111 - .../Recepciones/RecepcionesGroup.bdsgroup | 24 - .../RecepcionesGroup.bdsgroup.local | 6 - .../Recepciones/Reglas/uBizRecepciones.pas | 85 - .../Servidor/srvRecepciones_Impl.dfm | 2482 ------ .../Servidor/srvRecepciones_Impl.pas | 52 - .../Cliente/ReferenciaGenerica.bdsproj | 677 -- .../Cliente/ReferenciaGenerica.cfg | 45 - .../Cliente/ReferenciaGenerica.dof | 479 -- .../Cliente/ReferenciaGenerica.dpk | 75 - .../Cliente/ReferenciaGenerica.drc | 14 - .../Cliente/ReferenciaGenerica.identcache | Bin 1360 -> 0 bytes .../Cliente/ReferenciaGenerica.rc | 22 - .../Cliente/ReferenciaGenerica.res | Bin 4748 -> 0 bytes .../Cliente/uDataModuleReferenciaGenerica.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleReferenciaGenerica.dfm | 227 - .../Cliente/uDataModuleReferenciaGenerica.pas | 139 - .../uEditorCambioReferenciaGenerica.ddp | Bin 51 -> 0 bytes .../uEditorCambioReferenciaGenerica.dfm | 574 -- .../uEditorCambioReferenciaGenerica.dfm_ | 144 - .../uEditorCambioReferenciaGenerica.pas | 314 - .../uEditorCambioReferenciaGenerica.pas_ | 210 - .../uEditorListaReferenciaGenerica.ddp | Bin 51 -> 0 bytes .../uEditorListaReferenciaGenerica.dfm | 1652 ---- .../uEditorListaReferenciaGenerica.pas | 447 -- .../uPluginControllerReferenciaGenerica.ddp | Bin 51 -> 0 bytes .../uPluginControllerReferenciaGenerica.dfm | 132 - .../uPluginControllerReferenciaGenerica.pas | 72 - .../Cliente/uViewListaReferenciaGenerica.ddp | Bin 51 -> 0 bytes .../Cliente/uViewListaReferenciaGenerica.dfm | 140 - .../Cliente/uViewListaReferenciaGenerica.pas | 180 - .../schReferenciaGenericaClient_Intf.pas | 913 --- .../schReferenciaGenericaServer_Intf.pas | 1045 --- .../Reglas/uBizReferenciaGenerica.pas | 317 - .../Reglas/uBizReferenciaGenericaServer.pas | 145 - .../Servidor/srvReferenciaGenerica_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvReferenciaGenerica_Impl.dfm | 1302 ---- .../Servidor/srvReferenciaGenerica_Impl.pas | 178 - .../Modulos/Stock/Cliente/Stock.bdsproj | 677 -- .../Source/Modulos/Stock/Cliente/Stock.cfg | 45 - .../Source/Modulos/Stock/Cliente/Stock.dof | 479 -- .../Source/Modulos/Stock/Cliente/Stock.dpk | 81 - .../Source/Modulos/Stock/Cliente/Stock.drc | 14 - .../Modulos/Stock/Cliente/Stock.identcache | Bin 1499 -> 0 bytes .../Source/Modulos/Stock/Cliente/Stock.rc | 22 - .../Source/Modulos/Stock/Cliente/Stock.res | Bin 4748 -> 0 bytes .../Stock/Cliente/cxVerticalGridD10.drc | 22 - .../Source/Modulos/Stock/Cliente/teedb.drc | 22 - .../Stock/Cliente/uDataModuleStock.ddp | Bin 51 -> 0 bytes .../Stock/Cliente/uDataModuleStock.dfm | 1209 --- .../Stock/Cliente/uDataModuleStock.pas | 112 - .../Stock/Cliente/uEditorControlStockEDI.ddp | Bin 51 -> 0 bytes .../Stock/Cliente/uEditorControlStockEDI.dfm | 2230 ------ .../Stock/Cliente/uEditorControlStockEDI.pas | 242 - .../Cliente/uEditorControlStockVARELA.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorControlStockVARELA.dfm | 1716 ----- .../Cliente/uEditorControlStockVARELA.pas | 134 - .../Stock/Cliente/uPluginControllerStock.dfm | 126 - .../Stock/Cliente/uPluginControllerStock.pas | 97 - .../Stock/Cliente/uViewControGridStockEDI.dfm | 609 -- .../Stock/Cliente/uViewControGridStockEDI.pas | 220 - .../uViewControGridStockEDIInventario.dfm | 609 -- .../uViewControGridStockEDIInventario.pas | 224 - .../uViewControGridStockPrendasCentros.dfm | 351 - .../uViewControGridStockPrendasCentros.pas | 199 - .../Cliente/uViewControGridStockVARELA.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControGridStockVARELA.dfm | 365 - .../Cliente/uViewControGridStockVARELA.pas | 187 - .../Stock/Cliente/uViewFiltrosStock.dfm | 72 - .../Stock/Cliente/uViewFiltrosStock.pas | 111 - .../Stock/Reglas/schStockClient_Intf.pas | 1684 ---- .../Stock/Reglas/schStockServer_Intf.pas | 1991 ----- .../Source/Modulos/Stock/Reglas/uBizStock.pas | 58 - .../Modulos/Stock/Servidor/srvStock_Impl.ddp | Bin 51 -> 0 bytes .../Modulos/Stock/Servidor/srvStock_Impl.dfm | 1389 ---- .../Modulos/Stock/Servidor/srvStock_Impl.pas | 59 - .../Traspasos/Cliente/Traspasos.bdsproj | 677 -- .../Modulos/Traspasos/Cliente/Traspasos.cfg | 45 - .../Modulos/Traspasos/Cliente/Traspasos.dof | 479 -- .../Modulos/Traspasos/Cliente/Traspasos.dpk | 82 - .../Modulos/Traspasos/Cliente/Traspasos.drc | 14 - .../Modulos/Traspasos/Cliente/Traspasos.rc | 22 - .../Modulos/Traspasos/Cliente/Traspasos.res | Bin 4748 -> 0 bytes .../Cliente/uDataModuleTraspasos.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleTraspasos.dfm | 1406 ---- .../Cliente/uDataModuleTraspasos.pas | 87 - .../Cliente/uEditorAjustarTraspasos.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorAjustarTraspasos.dfm | 725 -- .../Cliente/uEditorAjustarTraspasos.pas | 288 - .../Cliente/uEditorListaTraspasos.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorListaTraspasos.dfm | 1607 ---- .../Cliente/uEditorListaTraspasos.pas | 308 - .../Cliente/uPluginControllerTraspasos.ddp | Bin 51 -> 0 bytes .../Cliente/uPluginControllerTraspasos.dfm | 126 - .../Cliente/uPluginControllerTraspasos.pas | 72 - .../Traspasos/Cliente/uViewListaTraspasos.ddp | Bin 51 -> 0 bytes .../Traspasos/Cliente/uViewListaTraspasos.dfm | 514 -- .../Traspasos/Cliente/uViewListaTraspasos.pas | 554 -- .../Traspasos/Reglas/uBizTraspasos.pas | 77 - .../Traspasos/Servidor/srvTraspasos_Impl.ddp | Bin 51 -> 0 bytes .../Traspasos/Servidor/srvTraspasos_Impl.dfm | 1293 ---- .../Traspasos/Servidor/srvTraspasos_Impl.pas | 51 - .../Cliente/VentasProceso.bdsproj | 677 -- .../VentasProceso/Cliente/VentasProceso.cfg | 45 - .../VentasProceso/Cliente/VentasProceso.dof | 479 -- .../VentasProceso/Cliente/VentasProceso.dpk | 74 - .../VentasProceso/Cliente/VentasProceso.drc | 14 - .../Cliente/VentasProceso.identcache | Bin 1607 -> 0 bytes .../VentasProceso/Cliente/VentasProceso.rc | 22 - .../VentasProceso/Cliente/VentasProceso.res | Bin 4748 -> 0 bytes .../Cliente/uDataModuleVentasProceso.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleVentasProceso.dfm | 364 - .../Cliente/uDataModuleVentasProceso.pas | 113 - .../Cliente/uEditorControlVentaProceso.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorControlVentaProceso.dfm | 1716 ----- .../Cliente/uEditorControlVentaProceso.pas | 241 - .../Cliente/uEditorControlesVentaProceso.dfm | 154 - .../Cliente/uEditorControlesVentaProceso.pas | 40 - .../uPluginControllerVentasProceso.ddp | Bin 51 -> 0 bytes .../uPluginControllerVentasProceso.dfm | 284 - .../uPluginControllerVentasProceso.pas | 73 - .../Cliente/uViewControGridlVentaProceso.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControGridlVentaProceso.dfm | 194 - .../Cliente/uViewControGridlVentaProceso.pas | 351 - .../Cliente/uViewControlVentaProceso.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControlVentaProceso.dfm | 148 - .../Cliente/uViewControlVentaProceso.pas | 120 - .../Cliente/uViewControlesVentaProceso.dfm | 2 - .../Cliente/uViewControlesVentaProceso.pas | 24 - .../Reglas/schVentasEnProcesoClient_Intf.pas | 460 -- .../Reglas/schVentasEnProcesoServer_Intf.pas | 541 -- .../Reglas/uBizControlVentasProceso.pas | 69 - .../Reglas/uBizVentasProceso.pas | 88 - .../Servidor/srvVentasEnProceso_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvVentasEnProceso_Impl.dfm | 249 - .../Servidor/srvVentasEnProceso_Impl.pas | 135 - .../Cliente/VentasTerminadas.bdsproj | 677 -- .../Cliente/VentasTerminadas.cfg | 45 - .../Cliente/VentasTerminadas.dof | 474 -- .../Cliente/VentasTerminadas.dpk | 84 - .../Cliente/VentasTerminadas.drc | 14 - .../Cliente/VentasTerminadas.identcache | Bin 2168 -> 0 bytes .../Cliente/VentasTerminadas.rc | 22 - .../Cliente/VentasTerminadas.res | Bin 4748 -> 0 bytes ...uEditorControlVentasTerminadasCrossTab.dfm | 1611 ---- ...iewControGridlVentasTerminadasCrossTab.dfm | 204 - .../Cliente/uDataModuleVentasTerminadas.ddp | Bin 51 -> 0 bytes .../Cliente/uDataModuleVentasTerminadas.dfm | 576 -- .../Cliente/uDataModuleVentasTerminadas.pas | 127 - .../Cliente/uEditorControlResumenVentas.ddp | Bin 51 -> 0 bytes .../Cliente/uEditorControlResumenVentas.dfm | 1700 ----- .../Cliente/uEditorControlResumenVentas.pas | 156 - .../uEditorControlVentasTerminadas.dfm | 1776 ----- .../uEditorControlVentasTerminadas.pas | 241 - .../uEditorControlesVentasTerminadas.dfm | 176 - .../uEditorControlesVentasTerminadas.pas | 43 - .../uPluginControllerVentasTerminadas.ddp | Bin 51 -> 0 bytes .../uPluginControllerVentasTerminadas.dfm | 329 - .../uPluginControllerVentasTerminadas.pas | 96 - .../Cliente/uViewControGridResumenVentas.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControGridResumenVentas.dfm | 211 - .../Cliente/uViewControGridResumenVentas.pas | 144 - .../uViewControGridlVentasTerminadas.ddp | Bin 51 -> 0 bytes .../uViewControGridlVentasTerminadas.dfm | 278 - .../uViewControGridlVentasTerminadas.pas | 385 - .../Cliente/uViewControlVentasTerminadas.ddp | Bin 51 -> 0 bytes .../Cliente/uViewControlVentasTerminadas.dfm | 248 - .../Cliente/uViewControlVentasTerminadas.pas | 148 - .../uViewControlesVentasTerminadas.dfm | 11 - .../uViewControlesVentasTerminadas.pas | 24 - .../Reglas/schVentasTerminadasClient_Intf.pas | 1331 ---- .../Reglas/schVentasTerminadasServer_Intf.pas | 1598 ---- .../Reglas/uBizControlVentasTerminadas.pas | 65 - .../Reglas/uBizInformesVentas.pas | 82 - .../VentasTerminadas/Reglas/uBizVentas.pas | 115 - .../Reglas/uBizVentasTerminadas.pas | 158 - .../Servidor/srvVentasTerminadas_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/srvVentasTerminadas_Impl.dfm | 445 -- .../Servidor/srvVentasTerminadas_Impl.pas | 210 - .../Source/Servidor/AdminPV_Server.bdsproj | 678 -- .../Varela/Source/Servidor/AdminPV_Server.cfg | 45 - .../Varela/Source/Servidor/AdminPV_Server.dof | 480 -- .../Varela/Source/Servidor/AdminPV_Server.dpr | 73 - .../Varela/Source/Servidor/AdminPV_Server.drc | 2579 ------- .../Source/Servidor/AdminPV_Server.identcache | Bin 7940 -> 0 bytes .../Varela/Source/Servidor/AdminPV_Server.rc | 26 - .../Varela/Source/Servidor/AdminPV_Server.res | Bin 23588 -> 0 bytes .../Servidor/Configuracion/uConexionBD.ddp | Bin 51 -> 0 bytes .../Servidor/Configuracion/uConexionBD.dfm | 101 - .../Servidor/Configuracion/uConexionBD.pas | 90 - .../Configuracion/uConfFicherosEDI.ddp | Bin 51 -> 0 bytes .../Configuracion/uConfFicherosEDI.dfm | 129 - .../Configuracion/uConfFicherosEDI.pas | 102 - .../Servidor/Configuracion/uConfGeneral.ddp | Bin 51 -> 0 bytes .../Servidor/Configuracion/uConfGeneral.dfm | 39 - .../Servidor/Configuracion/uConfGeneral.pas | 52 - .../Servidor/Configuracion/uConfiguracion.ddp | Bin 51 -> 0 bytes .../Servidor/Configuracion/uConfiguracion.dfm | 214 - .../Servidor/Configuracion/uConfiguracion.pas | 105 - .../Configuracion/uFrameConfiguracion.dfm | 10 - .../Configuracion/uFrameConfiguracion.pas | 30 - .../Varela/Source/Servidor/EDI/EDI_INVRPT.pas | 195 - .../Source/Servidor/EDI/EDI_Log_Impl.ddp | Bin 51 -> 0 bytes .../Source/Servidor/EDI/EDI_Log_Impl.dfm | 169 - .../Source/Servidor/EDI/EDI_Log_Impl.pas | 73 - .../Varela/Source/Servidor/EDI/EDI_Reader.pas | 109 - .../Varela/Source/Servidor/EDI/EDI_SLSRPT.pas | 284 - .../Source/Servidor/EDI_Inventary_Impl.dfm | 7 - .../Source/Servidor/EDI_Inventary_Impl.pas | 52 - .../Varela/Source/Servidor/EDI_Log_Impl.dfm | 179 - .../Varela/Source/Servidor/EDI_Log_Impl.pas | 75 - .../Varela/Source/Servidor/EDI_Sales_Impl.dfm | 7 - .../Varela/Source/Servidor/EDI_Sales_Impl.pas | 52 - Varela/Varela/Source/Servidor/EDI_Utils.pas | 40 - .../Source/Servidor/RDX_VARELA.daConnections | 1 - .../Source/Servidor/RDX_VARELA.daDictionary | 1 - .../Source/Servidor/RDX_VARELA.daSchema | 35 - Varela/Varela/Source/Servidor/RODLFILE.res | Bin 18469 -> 0 bytes Varela/Varela/Source/Servidor/RegExpr.pas | 4042 ---------- .../EDI_Inventary/EDI_Inventary_Impl.ddp | Bin 51 -> 0 bytes .../EDI_Inventary/EDI_Inventary_Impl.dfm | 16 - .../EDI_Inventary/EDI_Inventary_Impl.pas | 139 - .../schEDIInventaryClient_Intf.pas | 742 -- .../schEDIInventaryServer_Intf.pas | 855 --- .../EDI_Inventary/uBizEDIInventary.pas | 323 - .../uDataModuleEDI_Inventary.ddp | Bin 51 -> 0 bytes .../uDataModuleEDI_Inventary.dfm | 1061 --- .../uDataModuleEDI_Inventary.pas | 318 - .../Services/EDI_Sales/EDI_Sales_Impl.ddp | Bin 51 -> 0 bytes .../Services/EDI_Sales/EDI_Sales_Impl.dfm | 17 - .../Services/EDI_Sales/EDI_Sales_Impl.pas | 143 - .../Services/EDI_Sales/EDI_Sales_Types.pas | 9 - .../EDI_Sales/schEDISalesClient_Intf.pas | 1948 ----- .../EDI_Sales/schEDISalesServer_Intf.pas | 2329 ------ .../Services/EDI_Sales/uBizEDISales.pas | 476 -- .../EDI_Sales/uDataModuleEDI_Sales.ddp | Bin 51 -> 0 bytes .../EDI_Sales/uDataModuleEDI_Sales.dfm | 2699 ------- .../EDI_Sales/uDataModuleEDI_Sales.pas | 483 -- .../Servidor/Services/Login/srvLogin_Impl.ddp | Bin 51 -> 0 bytes .../Servidor/Services/Login/srvLogin_Impl.dfm | 99 - .../Servidor/Services/Login/srvLogin_Impl.pas | 135 - .../srvTransfereciaFicheros_Impl.ddp | Bin 51 -> 0 bytes .../srvTransfereciaFicheros_Impl.dfm | 6 - .../srvTransfereciaFicheros_Impl.pas | 104 - Varela/Varela/Source/Servidor/VARELA.RODL | 378 - Varela/Varela/Source/Servidor/VARELA_Intf.pas | 1079 --- Varela/Varela/Source/Servidor/VARELA_Invk.pas | 707 -- .../Source/Servidor/cxVerticalGridD10.drc | 23 - Varela/Varela/Source/Servidor/fServerForm.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Servidor/fServerForm.dfm | 1069 --- Varela/Varela/Source/Servidor/fServerForm.pas | 103 - .../Source/Servidor/srvInformes_Impl.ddp | Bin 51 -> 0 bytes .../Source/Servidor/srvInformes_Impl.dfm | 331 - .../Source/Servidor/srvInformes_Impl.pas | 48 - Varela/Varela/Source/Servidor/uAcercaDe.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Servidor/uAcercaDe.dfm | 959 --- Varela/Varela/Source/Servidor/uAcercaDe.pas | 47 - .../Source/Servidor/uDataModuleServer.ddp | Bin 51 -> 0 bytes .../Source/Servidor/uDataModuleServer.dfm | 96 - .../Source/Servidor/uDataModuleServer.pas | 364 - .../Source/Servidor/uSchemaUtilsServer.pas | 161 - .../Varela/Source/Usuarios/Usuarios.bdsproj | 677 -- Varela/Varela/Source/Usuarios/Usuarios.cfg | 45 - Varela/Varela/Source/Usuarios/Usuarios.dof | 471 -- Varela/Varela/Source/Usuarios/Usuarios.dpk | 50 - Varela/Varela/Source/Usuarios/Usuarios.drc | 14 - .../Source/Usuarios/Usuarios.identcache | Bin 631 -> 0 bytes Varela/Varela/Source/Usuarios/Usuarios.rc | 22 - Varela/Varela/Source/Usuarios/Usuarios.res | Bin 4748 -> 0 bytes .../Source/Usuarios/uCambiarPassword.dfm | 94 - .../Source/Usuarios/uCambiarPassword.pas | 41 - .../Source/Usuarios/uDataModuleUsuarios.ddp | Bin 51 -> 0 bytes .../Source/Usuarios/uDataModuleUsuarios.dfm | 132 - .../Source/Usuarios/uDataModuleUsuarios.pas | 117 - Varela/Varela/Source/Usuarios/uLoginForm.ddp | Bin 51 -> 0 bytes Varela/Varela/Source/Usuarios/uLoginForm.dfm | 784 -- Varela/Varela/Source/Usuarios/uLoginForm.pas | 100 - Varela/Varela/Source/Usuarios/uUsuario.dfm | 123 - Varela/Varela/Source/Usuarios/uUsuario.pas | 39 - Varela/Varela/Source/Usuarios/uUsuarios.dfm | 119 - Varela/Varela/Source/Usuarios/uUsuarios.pas | 89 - Varela/Varela/Source/leeme.txt | 5 - Varela/Varela/Source/uDADataTable.pas | 4645 ----------- 807 files changed, 167699 deletions(-) delete mode 100644 Varela/Varela/Build/Build.fbl5 delete mode 100644 Varela/Varela/Build/Build.fbp5 delete mode 100644 Varela/Varela/Build/Build.fbv delete mode 100644 Varela/Varela/Build/Build.fbw delete mode 100644 Varela/Varela/Build/buildlog.html delete mode 100644 Varela/Varela/Database/1 - tablas.sql delete mode 100644 Varela/Varela/Database/2.1 - vistas inventario.sql delete mode 100644 Varela/Varela/Database/2.2 - vistas ventas.sql delete mode 100644 Varela/Varela/Database/2.3 - vistas stock.sql delete mode 100644 Varela/Varela/Database/3 - procedimientos.sql delete mode 100644 Varela/Varela/Database/ANTERIOR/Script Datos.sql delete mode 100644 Varela/Varela/Database/ANTERIOR/Script Tablas.sql delete mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql delete mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql delete mode 100644 Varela/Varela/Database/ANTERIOR/Script Vistas.sql delete mode 100644 Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL delete mode 100644 Varela/Varela/Database/__Script mejoras.sql delete mode 100644 Varela/Varela/Lib/midas.dll delete mode 100644 Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 delete mode 100644 Varela/Varela/Resources/Iconos/CargaEDI.ico delete mode 100644 Varela/Varela/Resources/Iconos/Cliente.ico delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/24x24/Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/History.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/History.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/History.png delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/FicherosEDI/28x28/cargar.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/09378.bmp delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/09378.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/About.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Back.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Box-Open-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Card-Copy.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Cell-Format.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Clear.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Copy.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Cut.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Dates-Adjust.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Watch.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Details-Hide.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Exit.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Format-Font.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Grid-Select Column.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Home.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/New.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Collapse.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Expand.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Up.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Plus.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Preview.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Print-Options.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Print.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Refresh.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Save.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Search.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Speaking-Start.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Título-capítulo.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/View-One Page.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/View-Page Width.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Warning.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-Out.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-Next-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-first-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/16x16/db-last-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/About.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Back.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Box-Open-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Card-Copy.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Cell-Format.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Cut.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Watch.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Details-Hide.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Exit.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Filter.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Grid-Select Column.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Home.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Down.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Plus.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Print-Options.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Print.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Refresh.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Save.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Search.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Select All.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Speaking-Start.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Sum-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/View-Page Width.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Warning.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Next-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/24x24/db-Previous-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Box-Open-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Card-Copy.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Filter.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Home.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Outline-Move Down.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Outline-Move Up.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Speaking-Start.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Sum-2.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Table-Search.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Generales/28x28/Warning.png delete mode 100644 Varela/Varela/Resources/Iconos/Generales/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/Insert.png delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Label-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/24x24/Label-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Servidor.ico delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/28x28/Database.png delete mode 100644 Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Stock/16x16/Task.png delete mode 100644 Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Stock/24x24/Task.png delete mode 100644 Varela/Varela/Resources/Iconos/Stock/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Stock/28x28/Task.png delete mode 100644 Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Entrada.png delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Swap.png delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/24x24/Swap.png delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png delete mode 100644 Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/16x16/Users.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Password.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/24x24/Users.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Password.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/28x28/Users.png delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Usuarios/48x48/Users.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Currency-Notes.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Currency.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Report.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/16x16/Venta terminada.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency-Notes.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Report.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Thumbs.db delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency-Notes.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png delete mode 100644 Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db delete mode 100644 Varela/Varela/Resources/Imagenes/Cabecera.jpg delete mode 100644 Varela/Varela/Resources/Imagenes/Cabecera.psd delete mode 100644 Varela/Varela/Resources/Imagenes/Thumbs.db delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1023.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1025.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1027.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1032.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP delete mode 100644 Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db delete mode 100644 Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd delete mode 100644 Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png delete mode 100644 Varela/Varela/Source/AdminPVGroup.bdsgroup delete mode 100644 Varela/Varela/Source/AdminPVGroup.bdsgroup.local delete mode 100644 Varela/Varela/Source/AdminPVGroup.bpg delete mode 100644 Varela/Varela/Source/Base/BaseD10.bdsproj delete mode 100644 Varela/Varela/Source/Base/BaseD10.dpk delete mode 100644 Varela/Varela/Source/Base/BaseD10.drc delete mode 100644 Varela/Varela/Source/Base/BaseD10.identcache delete mode 100644 Varela/Varela/Source/Base/BaseD10.rc delete mode 100644 Varela/Varela/Source/Base/BaseD10.res delete mode 100644 Varela/Varela/Source/Base/uBizInformesBase.pas delete mode 100644 Varela/Varela/Source/Base/uConfigurarConexion.dfm delete mode 100644 Varela/Varela/Source/Base/uConfigurarConexion.pas delete mode 100644 Varela/Varela/Source/Base/uDBSelectionList.pas delete mode 100644 Varela/Varela/Source/Base/uDataModuleBase.dfm delete mode 100644 Varela/Varela/Source/Base/uDataModuleBase.pas delete mode 100644 Varela/Varela/Source/Base/uDataTableUtils.pas delete mode 100644 Varela/Varela/Source/Base/uEditorBase.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorBase.pas delete mode 100644 Varela/Varela/Source/Base/uEditorDBBase.ddp delete mode 100644 Varela/Varela/Source/Base/uEditorDBBase.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorDBBase.pas delete mode 100644 Varela/Varela/Source/Base/uEditorDBItem.ddp delete mode 100644 Varela/Varela/Source/Base/uEditorDBItem.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorDBItem.pas delete mode 100644 Varela/Varela/Source/Base/uEditorGridBase.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorGridBase.pas delete mode 100644 Varela/Varela/Source/Base/uEditorItem.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorItem.pas delete mode 100644 Varela/Varela/Source/Base/uEditorPSPreview.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorPSPreview.pas delete mode 100644 Varela/Varela/Source/Base/uEditorPreview.dfm delete mode 100644 Varela/Varela/Source/Base/uEditorPreview.pas delete mode 100644 Varela/Varela/Source/Base/uEditorUtils.pas delete mode 100644 Varela/Varela/Source/Base/uExceptions.pas delete mode 100644 Varela/Varela/Source/Base/uGridUtils.pas delete mode 100644 Varela/Varela/Source/Base/uIntegerList.pas delete mode 100644 Varela/Varela/Source/Base/uSysFunc.pas delete mode 100644 Varela/Varela/Source/Base/uViewBarraSeleccion.dfm delete mode 100644 Varela/Varela/Source/Base/uViewBarraSeleccion.pas delete mode 100644 Varela/Varela/Source/Base/uViewBase.dfm delete mode 100644 Varela/Varela/Source/Base/uViewBase.pas delete mode 100644 Varela/Varela/Source/Base/uViewGrid.dfm delete mode 100644 Varela/Varela/Source/Base/uViewGrid.pas delete mode 100644 Varela/Varela/Source/Base/uViewGridBase.ddp delete mode 100644 Varela/Varela/Source/Base/uViewGridBase.dfm delete mode 100644 Varela/Varela/Source/Base/uViewGridBase.pas delete mode 100644 Varela/Varela/Source/Base/uViewPreview.dfm delete mode 100644 Varela/Varela/Source/Base/uViewPreview.pas delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.cfg delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.dof delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.dpr delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.drc delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.identcache delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.rc delete mode 100644 Varela/Varela/Source/CargaEDI/CargaEDI.res delete mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.ddp delete mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.dfm delete mode 100644 Varela/Varela/Source/CargaEDI/uCargaEDI.pas delete mode 100644 Varela/Varela/Source/ClearFiles.msbuild delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.bdsproj delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.cfg delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.dof delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.dpr delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.drc delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.identcache delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.rc delete mode 100644 Varela/Varela/Source/Cliente/AdminPV.res delete mode 100644 Varela/Varela/Source/Cliente/uAcercaDe.dfm delete mode 100644 Varela/Varela/Source/Cliente/uAcercaDe.pas delete mode 100644 Varela/Varela/Source/Cliente/uMenuUtils.pas delete mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp delete mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm delete mode 100644 Varela/Varela/Source/Cliente/uPantallaPrincipal.pas delete mode 100644 Varela/Varela/Source/Cliente/uSplash.ddp delete mode 100644 Varela/Varela/Source/Cliente/uSplash.dfm delete mode 100644 Varela/Varela/Source/Cliente/uSplash.pas delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.bdsproj delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.cfg delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.dof delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.dpk delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.drc delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.rc delete mode 100644 Varela/Varela/Source/Configuracion/Configuracion.res delete mode 100644 Varela/Varela/Source/Configuracion/uPanelControl.dfm delete mode 100644 Varela/Varela/Source/Configuracion/uPanelControl.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc delete mode 100644 Varela/Varela/Source/ControlesBase/ControlesBaseD10.res delete mode 100644 Varela/Varela/Source/ControlesBase/Reglas/schControlesClient_Intf.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Reglas/schControlesServer_Intf.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Reglas/uBizControlesBase.pas delete mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.ddp delete mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm delete mode 100644 Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.ddp delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.rc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.res delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/cxVerticalGridD10.drc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/cxVerticalGridVCLD7.drc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/dxLayoutControlD10.drc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/rtl.drc delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/cxVerticalGridD10.drc delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/teedb.drc delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.ddp delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas delete mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uEditorControlVentasTerminadasCrossTab.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm delete mode 100644 Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.cfg delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.dof delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.dpr delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.drc delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.identcache delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.rc delete mode 100644 Varela/Varela/Source/Servidor/AdminPV_Server.res delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm delete mode 100644 Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/EDI_Log_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/EDI_Utils.pas delete mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daConnections delete mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary delete mode 100644 Varela/Varela/Source/Servidor/RDX_VARELA.daSchema delete mode 100644 Varela/Varela/Source/Servidor/RODLFILE.res delete mode 100644 Varela/Varela/Source/Servidor/RegExpr.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/VARELA.RODL delete mode 100644 Varela/Varela/Source/Servidor/VARELA_Intf.pas delete mode 100644 Varela/Varela/Source/Servidor/VARELA_Invk.pas delete mode 100644 Varela/Varela/Source/Servidor/cxVerticalGridD10.drc delete mode 100644 Varela/Varela/Source/Servidor/fServerForm.ddp delete mode 100644 Varela/Varela/Source/Servidor/fServerForm.dfm delete mode 100644 Varela/Varela/Source/Servidor/fServerForm.pas delete mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.ddp delete mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.dfm delete mode 100644 Varela/Varela/Source/Servidor/srvInformes_Impl.pas delete mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.ddp delete mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.dfm delete mode 100644 Varela/Varela/Source/Servidor/uAcercaDe.pas delete mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.ddp delete mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.dfm delete mode 100644 Varela/Varela/Source/Servidor/uDataModuleServer.pas delete mode 100644 Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.bdsproj delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.cfg delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.dof delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.dpk delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.drc delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.identcache delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.rc delete mode 100644 Varela/Varela/Source/Usuarios/Usuarios.res delete mode 100644 Varela/Varela/Source/Usuarios/uCambiarPassword.dfm delete mode 100644 Varela/Varela/Source/Usuarios/uCambiarPassword.pas delete mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp delete mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm delete mode 100644 Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas delete mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.ddp delete mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.dfm delete mode 100644 Varela/Varela/Source/Usuarios/uLoginForm.pas delete mode 100644 Varela/Varela/Source/Usuarios/uUsuario.dfm delete mode 100644 Varela/Varela/Source/Usuarios/uUsuario.pas delete mode 100644 Varela/Varela/Source/Usuarios/uUsuarios.dfm delete mode 100644 Varela/Varela/Source/Usuarios/uUsuarios.pas delete mode 100644 Varela/Varela/Source/leeme.txt delete mode 100644 Varela/Varela/Source/uDADataTable.pas diff --git a/Varela/Varela/Build/Build.fbl5 b/Varela/Varela/Build/Build.fbl5 deleted file mode 100644 index dd58805fdeab2a06bd1ab29789e2cd5a94d5b18e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2621440 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

t=9^YF>Vr;Ev|dim3FPk)bkGt4i5FB3--D6 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 XfB*=900@8p2!H?xv=D)lbS?h@8ui%p diff --git a/Varela/Varela/Build/Build.fbp5 b/Varela/Varela/Build/Build.fbp5 deleted file mode 100644 index f25caf3..0000000 --- a/Varela/Varela/Build/Build.fbp5 +++ /dev/null @@ -1,2825 +0,0 @@ - - - - - - base.fbz5 - - - 0 - - - - False - True - Main - {4C1B4E5D-F42F-4877-9F28-41B527858954} - - FinalBuilderAction - 0 - - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 0 - - False - True - True - True - ftString - False - True - False - - 0 - smNone - %FBPROJECTDIR% - False - 0 - 1000 - False - project_path - - - - - 0 - {78526C82-A8E7-42B3-8C9D-1E229C79D915} - - - True - False - True - False - True - False - - 0 - False - 0 - 1000 - False - True - 2 - - True - True - - project_path - \Build - - False - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 0 - - - - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - - - True - True - False - False - True - - - True - False - - False - - True - False - True - - 0 - False - - - 0 - 0 - tpNormal - True - 1000 - rcEqualTo - 0 - %source_path% - False - True - 1 - True - - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 0 - - - - True - True - search_path - False - True - False - - 0 - False - 0 - SOFTWARE\Borland\BDS\5.0\Library - -2147483647 - rtString - - - 1000 - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 0 - - True - True - True - False - True - False - False - - 0 - False - 0 - 1000 - False - - - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - Servidor - 0 - - Servidor - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - %project_path%\Resources\Iconos\Servidor.ico - False - True - True - True - False - False - False - False - False - False - False - True - 3082 - - 1 - 0 - 2 - False - 0 - %source_path%\Servidor\AdminPV_Server.dpr - True - 5 - - - rcBorland - 1000 - %source_path%\Servidor\ - False - True - False - False - [usPackages,usVersionInfo] - False - True - - - - False - False - False - True - True - True - False - False - - - - - False - - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 3 - 1048576 - 16384 - - True - True - %output_path%\Servidor - False - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;vclsmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclofficexp;cxlibraryvcld7;dxthemed7;cxtreelistvcld7;cxeditorsvcld7;cxdatad7;cxexteditorsvcld7;cxgridvcld7;cxpagecontrolvcld7;cxschedulervcld7;dxcomnd7;dxsbd7;dxbard7;dxbardbnavd7;dxbarextdbitemsd7;dxbarextitemsd7;dxdockingd7;dxlayoutcontrold7;dxnavbard7;dxpscored7;cxexportvcld7;cxintl5d7;cxintlprintsys3d7;cxintlschedulerd7;fsibx7;fs7;fqb70;frx7;frxado7;frxbde7;frxcs7;frxdb7;frxdbx7;frxe7;frxibx7;fsado7;fsbde7;fsdb7;cxverticalgridvcld7;easylistviewd7;remobjects_indy_d10;indyprotocols;indycore;indysystem;pascalscript_ro_d10;dataabstract_core_d10;dataabstract_scripting_d10;dataabstract_ide_d10 - False - fa8 - True - False - ..\Lib;..\Base - True - True - True - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - .\ - False - False - True - - - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - 16711680 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - # - 16711680 - - # - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - Base - 255 - - Base - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Base\BaseD10.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %base_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - %search_path% - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\ControlesBase\ControlesBaseD10.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %base_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - %search_path% - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Parametros\Cliente\Parametros.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %base_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - %search_path% - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Usuarios\Usuarios.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Configuracion\Configuracion.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - Módulos - 0 - - Módulos - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Devoluciones\Cliente\Devoluciones.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Stock\Cliente\Stock.dpk - True - 2 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - Cliente - 0 - - Cliente - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - %project_path%\Resources\Iconos\Cliente.ico - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 1 - False - 0 - %source_path%\Cliente\AdminPV.dpr - True - 1 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - - - - - False - - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - based10;configuracion;controlesbased10;usuarios;ficherosedi;ventasproceso;ventasterminadas;referenciagenerica - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - True - True - - - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - %project_path%\Resources\Iconos\CargaEDI.ico - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 1 - False - 0 - %source_path%\CargaEDI\CargaEDI.dpr - True - 1 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - - - - - False - - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - based10;configuracion;ficherosedi;rtl;dbrtl;vcldb;dataabstract_core_d10;dataabstract_ide_d10 - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - True - True - - - - - - - 0 - - - - False - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - {A78530B0-8E25-4ACF-BCD0-410E385473A0} - - - - - True - False - True - False - True - False - - 0 - False - 0 - 1000 - False - True - 2 - %output_path%\Debug\Servidor\FactuGES_Server.exe - - True - True - False - True - True - True - False - False - False - - - - - 0 - {A78530B0-8E25-4ACF-BCD0-410E385473A0} - - - - - True - False - True - False - True - False - - 0 - False - 0 - 1000 - False - True - 2 - %output_path%\Debug\Cliente\FactuGES.exe - - True - True - False - True - True - True - False - False - False - - - - - - 0 - - True - False - True - efHTML - False - True - True - True - True - True - True - True - True - False - - 0 - False - - - %project_path%\Build\buildlog.html - 0 - 1000 - False - - - - - - True - False - OnFailure - {BA6B406D-5FE5-4FF9-8D33-0459EBECDF95} - - FinalBuilderAction - 0 - - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - - Project - - %project_path%\Output\Debug - True - False - False - output_path - vtProject - - - - - False - False - False - search_path - vtProject - - - - - - False - False - False - library_path - vtProject - - - %output_path%\Cliente - True - False - False - package_path - vtProject - - - - - False - True - False - project_path - vtProject - - - %source_path%\Lib - True - False - False - modules_dcp_path - vtProject - - - %source_path%\Lib - True - False - False - base_dcp_path - vtProject - - - %DELPHI2006% - False - False - False - DELPHI - vtProject - - - %project_path%\Source - True - False - False - source_path - vtProject - - - - diff --git a/Varela/Varela/Build/Build.fbv b/Varela/Varela/Build/Build.fbv deleted file mode 100644 index bd99b75..0000000 --- a/Varela/Varela/Build/Build.fbv +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Varela/Varela/Build/Build.fbw b/Varela/Varela/Build/Build.fbw deleted file mode 100644 index e69de29..0000000 diff --git a/Varela/Varela/Build/buildlog.html b/Varela/Varela/Build/buildlog.html deleted file mode 100644 index e6beb80..0000000 --- a/Varela/Varela/Build/buildlog.html +++ /dev/null @@ -1,1298 +0,0 @@ - - - - - - -FinalBuilder Log for Project Build.fbp5 - - -

FinalBuilder 5 LogFile for Build.fbp5

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Project File :C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build\Build.fbl5
Log Title :Build.fbp5
Date :06/09/2007
Start Time :12:09:00
End Time :12:09:45
Run Time :00:00:45

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusAction NameDescriptionStart TimeEnd TimeRun TimeOutput
Show All
Hide All
-Action ListAction List: Main12:09:0012:09:4500:00:45
CompletedSet VariableSet Variable project_path to [ C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build ]12:09:0012:09:0000:00:00
CompletedString ReplaceString Replace12:09:0012:09:0000:00:00View
-
-
CompletedAction GroupBorrar ficheros temporales12:09:0012:09:0000:00:00
CompletedRun DOS CommandRun DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ClearFiles.msbuild" /t:CleanFiles ]12:09:0012:09:0200:00:02View
-
-
CompletedRead Registry ValueLeer la ruta de búsqueda de Delphi desde el registro12:09:0212:09:0200:00:00View
-
-
CompletedLog Variable ValuesLog Variable Values12:09:0212:09:0200:00:00View
-
-
CompletedAction GroupServidor12:09:0212:09:0200:00:00
CompletedCompile Delphi Win32 ProjectCompile Servidor\AdminPV_Server.dpr12:09:0212:09:2200:00:19View
-
-
CompletedAction GroupBase12:09:2212:09:2200:00:00
CompletedCompile Delphi Win32 ProjectCompile Base\BaseD10.dpk12:09:2212:09:2400:00:02View
-
-
CompletedCompile Delphi Win32 ProjectCompile ControlesBase\ControlesBaseD10.dpk12:09:2412:09:2500:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\Parametros\Cliente\Parametros.dpk12:09:2512:09:2700:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Usuarios\Usuarios.dpk12:09:2712:09:2800:00:00View
-
-
CompletedCompile Delphi Win32 ProjectCompile Configuracion\Configuracion.dpk12:09:2812:09:2900:00:01View
-
-
CompletedAction GroupMódulos12:09:2912:09:2900:00:00
CompletedCompile Delphi Win32 ProjectCompile Modulos\FicherosEDI\Cliente\FicherosEDI.dpk12:09:2912:09:3100:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk12:09:3112:09:3200:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\VentasProceso\Cliente\VentasProceso.dpk12:09:3212:09:3400:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk12:09:3412:09:3500:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\Recepciones\Cliente\Recepciones.dpk12:09:3512:09:3700:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\Devoluciones\Cliente\Devoluciones.dpk12:09:3712:09:3800:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\Traspasos\Cliente\Traspasos.dpk12:09:3812:09:4000:00:02View
-
-
CompletedCompile Delphi Win32 ProjectCompile Modulos\Stock\Cliente\Stock.dpk12:09:4012:09:4200:00:01View
-
-
CompletedAction GroupCliente12:09:4212:09:4200:00:00
CompletedCompile Delphi Win32 ProjectCompile Cliente\AdminPV.dpr ]12:09:4212:09:4400:00:01View
-
-
CompletedCompile Delphi Win32 ProjectCompile CargaEDI\CargaEDI.dpr ]12:09:4412:09:4500:00:00View
-
-
CompletedExport LogExport Log12:09:4512:09:4500:00:00


- - - diff --git a/Varela/Varela/Database/1 - tablas.sql b/Varela/Varela/Database/1 - tablas.sql deleted file mode 100644 index b3035f6..0000000 --- a/Varela/Varela/Database/1 - tablas.sql +++ /dev/null @@ -1,878 +0,0 @@ -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_CABINV] -GO - -CREATE TABLE [RDX_CABINV] ( - [NUMDOC] varchar(25) NOT NULL, - [TIPODOC] varchar(3) NULL, - [TIPOLIQ] varchar(3) NULL, - [FECHA] datetime NULL, - [FECHALIQ] datetime NULL, - [EMISOR] varchar(17) NULL, - [RECEPTOR] varchar(17) NULL, - [DPTO] varchar(3) NULL, - [CENTRO] varchar(17) NULL, - [FECHA_CARGA] datetime NULL, - [IGNORAR] varchar(1) NULL, - [CARGADO] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_CABINV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] - ([FECHALIQ]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] - ([CENTRO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABINV_idx3] ON [RDX_CABINV] - ([IGNORAR]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABINV] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LININV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_LININV] -GO - -CREATE TABLE [RDX_LININV] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [CODART] varchar(17) NULL, - [FAMILIA] varchar(17) NULL, - [BARRA] varchar(17) NULL, - [TALLA] varchar(17) NULL, - [MARCA] varchar(25) NULL, - [TAMANO] varchar(25) NULL, - [SERIE] varchar(25) NULL, - [COLOR] varchar(25) NULL, - [MODELO] varchar(25) NULL, - [DIBUJO] varchar(25) NULL, - [DESCRIP] varchar(70) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_LININV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] - ([CODART]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LININV] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CANTINV]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_CANTINV] -GO - -CREATE TABLE [RDX_CANTINV] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [NUMCANT] numeric(6, 0) NOT NULL, - [TIPOCANT] varchar(3) NULL, - [CANTIDAD] numeric(15, 0) NULL, - [CENTRO] varchar(17) NULL, - [TMOV] varchar(3) NULL, - [FACT] varchar(12) NULL, - [DEPTO] varchar(3) NULL, - [IDVEN] varchar(10) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_CANTINV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] - ([CENTRO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] - ([TIPOCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] - ([IDVEN]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CANTINV] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_CABVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_CABVEN] -GO - -CREATE TABLE [RDX_CABVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [NUMINF] varchar(35) NULL, - [FUNCION] varchar(10) NULL, - [FECINI] datetime NULL, - [FECFIN] datetime NULL, - [FECINF] datetime NULL, - [PERVENINI] datetime NULL, - [PERVENFIN] datetime NULL, - [EANOFI] varchar(17) NULL, - [EANEMI] varchar(17) NULL, - [EANREC] varchar(17) NULL, - [EANVEN] varchar(17) NULL, - [EANALM] varchar(17) NULL, - [EANREP] varchar(17) NULL, - [EANPRO] varchar(17) NULL, - [EANADMSA] varchar(17) NULL, - [EANREPSR] varchar(17) NULL, - [ADMVENSA] varchar(35) NULL, - [REPDEPSR] varchar(35) NULL, - [EMAILSA] varchar(35) NULL, - [NUMFAXSA] varchar(35) NULL, - [NUMTELSA] varchar(35) NULL, - [NUMTLXSA] varchar(35) NULL, - [X400SA] varchar(35) NULL, - [EMAILSR] varchar(35) NULL, - [NUMFAXSR] varchar(35) NULL, - [NUMTELSR] varchar(35) NULL, - [NUMTLXSR] varchar(35) NULL, - [X400SR] varchar(35) NULL, - [NUMPRE] varchar(35) NULL, - [NUMINFSC] varchar(35) NULL, - [NUMCON] varchar(35) NULL, - [FECPRE] datetime NULL, - [FECINFSC] datetime NULL, - [FECCON] datetime NULL, - [DIVPED] varchar(3) NULL, - [DIVPRE] varchar(3) NULL, - [DIVPAG] varchar(3) NULL, - [DIVPEDF] varchar(3) NULL, - [DIVPREF] varchar(3) NULL, - [DIVPAGF] varchar(3) NULL, - [TASCAM] numeric(15, 3) NULL, - [FECTAS] datetime NULL, - [FECHA_CARGA] datetime NULL, - [IGNORAR] varchar(1) NULL, - [CARGADO] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_CABVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [RDX_CABVEN] - ([NUMINF]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [RDX_CABVEN] - ([IGNORAR]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABVEN] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LUGVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_LUGVEN] -GO - -CREATE TABLE [RDX_LUGVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [EANLUG] varchar(17) NULL, - [LUGVEN] varchar(70) NULL, - [FECINI] datetime NULL, - [FECFIN] datetime NULL, - [PERVENINI] datetime NULL, - [PERVENFIN] datetime NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_LUGVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] - ([PERVENINI]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [RDX_LUGVEN] - ([EANLUG]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LUGVEN] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_ARTVEN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_ARTVEN] -GO - -CREATE TABLE [RDX_ARTVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [EANART] varchar(17) NULL, - [CODCOM] varchar(35) NULL, - [NUMVAR] varchar(35) NULL, - [CODPRO] varchar(35) NULL, - [DESARTCO] varchar(35) NULL, - [DESART] varchar(70) NULL, - [NUMCON] varchar(35) NULL, - [NUMLIS] varchar(35) NULL, - [CONESP1] varchar(3) NULL, - [CONESP2] varchar(3) NULL, - [CONESP3] varchar(3) NULL, - [VALVEN] numeric(15, 3) NULL, - [PRENETCT] numeric(15, 3) NULL, - [PREBRUCT] numeric(15, 3) NULL, - [PREINFET] numeric(15, 3) NULL, - [PREINFFT] numeric(15, 3) NULL, - [PRECALCT] numeric(15, 3) NULL, - [PRENETCA] numeric(15, 3) NULL, - [PREBRUCA] numeric(15, 3) NULL, - [PREINFEA] numeric(15, 3) NULL, - [PREINFFA] numeric(15, 3) NULL, - [PRECALCA] numeric(15, 3) NULL, - [BAPRUN1] numeric(9, 0) NULL, - [UNIMED1] varchar(3) NULL, - [BAPRUN2] numeric(9, 0) NULL, - [UNIMED2] varchar(3) NULL, - [BAPRUN3] numeric(9, 0) NULL, - [UNIMED3] varchar(3) NULL, - [BAPRUN4] numeric(9, 0) NULL, - [UNIMED4] varchar(3) NULL, - [BAPRUN5] numeric(9, 0) NULL, - [UNIMED5] varchar(3) NULL, - [CANVEN] numeric(15, 3) NULL, - [EXIPRO] numeric(15, 3) NULL, - [DESEXI] numeric(15, 3) NULL, - [ESPMEDCV] varchar(3) NULL, - [ESPMEDEP] varchar(3) NULL, - [ESPMEDDE] varchar(3) NULL, - [CANDEV] numeric(15, 3) NULL, - [EANVEN] varchar(17) NULL, - [NOMVEN] varchar(70) NULL, - [NUMTALON] varchar(35) NULL, - [CANVENNET] numeric(15, 3) NULL, - [UMEDVENNET] varchar(3) NULL, - [CANESP] numeric(15, 3) NULL, - [UMEDESP] varchar(3) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_ARTVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [RDX_ARTVEN] - ([EANART]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [RDX_ARTVEN] - ([CODCOM]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [RDX_ARTVEN] - ([NUMTALON]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [RDX_ARTVEN] - ([EANVEN]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_ARTVEN] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INFORMES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_INFORMES] -GO - -CREATE TABLE [RDX_INFORMES] ( - [ID] smallint IDENTITY(1, 1) NOT NULL, - [CATEGORIA] varchar(15) NULL, - [ICONO] smallint NULL, - [NOMBRE] varchar(50) NULL, - [DESCRIPCION] varchar(255) NULL, - [ORDEN] smallint NULL, - [VISTA] text NULL, - [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL -) -ON [PRIMARY] -TEXTIMAGE_ON [PRIMARY] -GO - -ALTER TABLE [RDX_INFORMES] -ADD CONSTRAINT [RDX_INFORMES_pk] -PRIMARY KEY CLUSTERED ([ID]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [RDX_INFORMES] - ([CATEGORIA]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_INFORMES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_LOG_CARGA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_LOG_CARGA] -GO - -CREATE TABLE [RDX_LOG_CARGA] ( - [ID] int IDENTITY(1, 1) NOT NULL, - [REPORT] varchar(10) NOT NULL, - [FECHA] datetime NOT NULL, - [OK] bit NOT NULL, - [ERROR_MSG] varchar(255) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_LOG_CARGA] -ADD UNIQUE NONCLUSTERED ([ID]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LOG_CARGA] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_REFERENCIA_GENERICA]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_REFERENCIA_GENERICA] -GO - -CREATE TABLE [RDX_REFERENCIA_GENERICA] ( - [NUMINF] varchar(35) NOT NULL, - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [FECHACAMBIO] datetime NOT NULL, - [ESTADO] char(1) NOT NULL, - [CODIGO_BARRA] varchar(25) NULL, - [CANVEN] numeric(15, 3) NULL, - [CANESP] numeric(15, 3) NULL, - [CANVENNET] numeric(15, 3) NULL, - [NUMCON] smallint CONSTRAINT [DF__RDX_REFER__NUMCO__28C3F2C0] DEFAULT 0 NOT NULL, - [VALVEN] numeric(15, 3) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_REFERENCIA_GENERICA] -ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] -PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3], [NUMCON]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [RDX_REFERENCIA_GENERICA] - ([FECHACAMBIO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [RDX_REFERENCIA_GENERICA] - ([CODIGO_BARRA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [RDX_REFERENCIA_GENERICA] - ([ESTADO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_REFERENCIA_GENERICA] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_ALBARAN]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_AJUSTES_ALBARAN] -GO - -CREATE TABLE [RDX_AJUSTES_ALBARAN] ( - [ALBARAN] char(7) NOT NULL, - [ESTADO] varchar(15) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_AJUSTES_ALBARAN] -ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] -PRIMARY KEY CLUSTERED ([ALBARAN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [RDX_AJUSTES_ALBARAN] - ([ESTADO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [RDX_AJUSTES_ALBARAN] - ([CONTABILIZAR]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_AJUSTES_ALBARAN] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_AJUSTES_HOJA_DEVOLUCIONES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] -GO - -CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( - [NUMHOJA] char(8) NOT NULL, - [ESTADO] varchar(20) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] -ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] -PRIMARY KEY CLUSTERED ([NUMHOJA]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_DEVOLUCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_DEVOLUCION_AJUSTES] -GO - -CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_DEVOLUCION_AJUSTES] -ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [RDX_DEVOLUCION_AJUSTES] - ([APROBADO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [RDX_DEVOLUCION_AJUSTES] - ([FECHACAMBIO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_DEVOLUCION_AJUSTES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_RECEPCION_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_RECEPCION_AJUSTES] -GO - -CREATE TABLE [RDX_RECEPCION_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_RECEPCION_AJUSTES] -ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [RDX_RECEPCION_AJUSTES] - ([FECHACAMBIO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [RDX_RECEPCION_AJUSTES] - ([APROBADO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_RECEPCION_AJUSTES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TRASPASOS_AJUSTES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_TRASPASOS_AJUSTES] -GO - -CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CENTRO2] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [ESTADO] varchar(20) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL, - [TIPOCANT] varchar(3) NOT NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_TRASPASOS_AJUSTES] -ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [RDX_TRASPASOS_AJUSTES] - ([APROBADO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [RDX_TRASPASOS_AJUSTES] - ([ESTADO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [RDX_TRASPASOS_AJUSTES] - ([FECHACAMBIO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_TRASPASOS_AJUSTES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_FILIALES]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_FILIALES] -GO - -CREATE TABLE [RDX_FILIALES] ( - [CODFILIAL] char(6) NULL, - [CODBARRA] varchar(17) NULL -) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [RDX_FILIALES] - ([CODBARRA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [RDX_FILIALES] - ([CODFILIAL]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_FILIALES] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_TALLAS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_TALLAS] -GO - -CREATE TABLE [RDX_TALLAS] ( - [TALLA] char(2) NOT NULL -) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [RDX_TALLAS] - ([TALLA]) -ON [PRIMARY] -GO - - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_TALLAS] -TO [public] -GO - - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_INVENTARIOEDI] -GO - -CREATE TABLE [RDX_INVENTARIOEDI] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [NUMCANT] numeric(6, 0) NOT NULL, - [TIPOCANT] varchar(3) NULL, - [FECHA] datetime NULL, - [CENTRO] varchar(17) NULL, - [FILIAL] varchar(25) NULL, - [CODVEN] varchar(10) NULL, - [VENDEDOR] varchar(66) NULL, - [CODIGO_BARRA] varchar(17) NULL, - [CODIGO] varchar(12) NULL, - [PRODUCTO] varchar(40) NULL, - [COLOR] varchar(10) NULL, - [TALLA] varchar(8) NULL, - [CANTIDAD] numeric(15, 0) NULL, - [CENTRO2] varchar(17) NULL, - [FILIAL2] varchar(25) NULL, - [ULTIMO_INVENTARIO] char(1) NULL, - [IGNORAR] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_INVENTARIOEDI] -ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] -PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] - ([TIPOCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] - ([FECHA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] - ([CENTRO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] - ([CODVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] - ([CODIGO_BARRA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] - ([CODIGO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] - ([CENTRO2]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] - ([ULTIMO_INVENTARIO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] - ([CENTRO], [CODIGO], [COLOR], [TALLA]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_INVENTARIOEDI] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_VENTASEDI] -GO - -CREATE TABLE [RDX_VENTASEDI] ( - [NUMINF] varchar(35) NOT NULL, - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [PERVENINI] datetime NULL, - [NUMTALON] varchar(35) NULL, - [EANLUG] varchar(17) NULL, - [FILIAL] varchar(25) NULL, - [EANVEN] varchar(17) NULL, - [CODVEN] varchar(4) NULL, - [VENDEDOR] varchar(66) NULL, - [EANART] varchar(17) NULL, - [CODCOM] varchar(35) NULL, - [PRODUTO] varchar(12) NULL, - [DESC_PRODUTO] varchar(40) NULL, - [COR_PRODUTO] varchar(10) NULL, - [GRADE] varchar(8) NULL, - [TIPO_PRODUTO] varchar(25) NULL, - [GRUPO_PRODUTO] varchar(25) NULL, - [DESC_COLECAO] varchar(40) NULL, - [VALVEN] numeric(15, 3) NULL, - [CANVEN] numeric(15, 3) NULL, - [CANDEV] numeric(15, 3) NULL, - [CANVENNET] numeric(15, 3) NULL, - [CANESP] numeric(15, 3) NULL, - [IGNORAR] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_VENTASEDI] -ADD CONSTRAINT [RDX_VENTASEDI_pk] -PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] - ([PERVENINI]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] - ([NUMTALON]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] - ([EANVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] - ([CODVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] - ([EANART]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] - ([CODCOM]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] - ([PRODUTO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_VENTASEDI] -TO [public] -GO - -/* EOF */ - - diff --git a/Varela/Varela/Database/2.1 - vistas inventario.sql b/Varela/Varela/Database/2.1 - vistas inventario.sql deleted file mode 100644 index 8a62f8f..0000000 --- a/Varela/Varela/Database/2.1 - vistas inventario.sql +++ /dev/null @@ -1,1028 +0,0 @@ -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO2, - FILIAL2, - ULTIMO_INVENTARIO -FROM RDX_INVENTARIOEDI -WHERE FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -AND ((IGNORAR IS NULL) OR (IGNORAR <> 'S')) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_PESADA AS -SELECT - RDX_CANTINV.NUMDOC, - RDX_CANTINV.NUMLIN, - RDX_CANTINV.NUMCANT, - RDX_CANTINV.TIPOCANT, - RDX_CABINV.FECHALIQ AS FECHA, - RDX_CABINV.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), - RDX_CANTINV.IDVEN AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), - RDX_LININV.CODART AS CODIGO_BARRA, - CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), - TALLA = PRODUTOS_BARRA.GRADE, - RDX_CANTINV.CANTIDAD, - CENTRO2 = RDX_CANTINV.CENTRO, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) -FROM RDX_CANTINV -INNER JOIN RDX_LININV ON - ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND - (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) -INNER JOIN RDX_CABINV ON - (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) -LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) -LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) -LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_ULTIMO_INVENTARIO AS -SELECT FECHA, - CENTRO, - FILIAL, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - SUM(CANTIDAD) AS CANTIDAD -FROM RDX_INVENTARIOEDI -WHERE (TIPOCANT = '145') AND - (ULTIMO_INVENTARIO IS NOT NULL) -GROUP BY FECHA, - CENTRO, - FILIAL, - CODIGO, - PRODUCTO, - COLOR, - TALLA -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS -SELECT - CENTRO, - CODIGO, - COLOR, - TALLA, - FECHA = MAX(FECHA) -FROM RDX_INVENTARIOEDI -WHERE TIPOCANT = 145 - AND FECHA >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ - AND (IGNORAR IS NULL) OR (IGNORAR <> 'S') -GROUP BY - CENTRO, - CODIGO, - COLOR, - TALLA -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD -FROM RDX_V_INVENTARIOEDI -WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ - OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO2, - FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE (TIPOCANT = 46) or (TIPOCANT = 48) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO_ORIGEN = CENTRO2, - FILIAL_ORIGEN = FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO_DESTINO = CENTRO2, - FILIAL_DESTINO = FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_TRASPASO_ENTRADA AS -SELECT - CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, - FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, - - CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, - FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, - - CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, - PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, - COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, - FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - - TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) - -FROM - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA -GROUP BY - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_TRASPASO_SALIDA AS -SELECT - CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, - FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, - - CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, - FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, - - CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, - PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, - COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, - FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - - TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) -FROM - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA -GROUP BY - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_TRASPASOS AS -SELECT - TIPO = 'S', - CENTRO_ORIGEN as CENTRO, - FILIAL_ORIGEN as FILIAL, - CENTRO_DESTINO as CENTRO2, - FILIAL_DESTINO as FILIAL2, - CODIGO, - PRODUCTO, - COLOR, - FECHA, - T38, - T40, - T42, - T44, - T46, - T48, - TOTAL -FROM RDX_V_TRASPASO_SALIDA -UNION -SELECT - 'E', - CENTRO_DESTINO, - FILIAL_DESTINO, - CENTRO_ORIGEN, - FILIAL_ORIGEN, - CODIGO, - PRODUCTO, - COLOR, - FECHA, - T38, - T40, - T42, - T44, - T46, - T48, - TOTAL -FROM RDX_V_TRASPASO_ENTRADA -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_CONTROL_TRASPASOS AS -SELECT - RDX_V_TRASPASOS.TIPO, - RDX_V_TRASPASOS.FECHA, - RDX_V_TRASPASOS.CENTRO, - RDX_V_TRASPASOS.FILIAL, - RDX_V_TRASPASOS.CENTRO2, - RDX_V_TRASPASOS.FILIAL2, - APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), - ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, - OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), - RDX_TRASPASOS_AJUSTES.FECHACAMBIO, - RDX_V_TRASPASOS.CODIGO, - RDX_V_TRASPASOS.PRODUCTO, - RDX_V_TRASPASOS.COLOR, - RDX_V_TRASPASOS.T38, - RDX_V_TRASPASOS.T40, - RDX_V_TRASPASOS.T42, - RDX_V_TRASPASOS.T44, - RDX_V_TRASPASOS.T46, - RDX_V_TRASPASOS.T48, - RDX_V_TRASPASOS.TOTAL, - TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), - TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), - TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), - TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), - TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), - TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), - TOTAL_RECT = - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) -FROM RDX_V_TRASPASOS -LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON - ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND - (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND - (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND - (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND - (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND - (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_ALBARANES AS -SELECT - FATURAMENTO.NF_SAIDA AS ALBARAN, - FATURAMENTO.EMISSAO AS FECHA, - RDX_FILIALES.CODBARRA AS CENTRO, - FATURAMENTO.NOME_CLIFOR AS FILIAL, - PRODUTOS_BARRA.CODIGO_BARRA, - FATURAMENTO_PROD.PRODUTO AS CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN F1 - WHEN '40' THEN F2 - WHEN '42' THEN F3 - WHEN '44' THEN F4 - WHEN '46' THEN F5 - WHEN '48' THEN F6 - END, - RDX_AJUSTES_ALBARAN.ESTADO, - RDX_AJUSTES_ALBARAN.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') -FROM FATURAMENTO_PROD -INNER JOIN FATURAMENTO ON - ((FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) AND - (FATURAMENTO.SERIE_NF = FATURAMENTO_PROD.SERIE_NF)) -INNER JOIN FATURAMENTO_TIPO ON - (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) -LEFT OUTER JOIN FILIAIS ON - (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) -LEFT OUTER JOIN RDX_FILIALES ON - (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) -LEFT OUTER JOIN PRODUTOS_BARRA ON - (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON - (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) -WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ -AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ -AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_RECEPCION AS -SELECT - CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), - FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), - CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), - PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), - COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), - FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), - - /* ALBARAN Y ESTADO */ - ALBARAN = RDX_V_ALBARANES.ALBARAN, - ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, - OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, - CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), - - /* CANTIDADES ENVIADAS DESDE VARELA */ - E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - ENVIADO = SUM( - CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END - ), - - /* CANTIDADES RECIBIDAS EN EL CENTRO*/ - R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), - - DIFERENCIA = SUM( - CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END - ) - - SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) -FROM - RDX_V_ALBARANES -FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON - ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND - (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND - (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) -GROUP BY - ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), - ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), - ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), - ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), - ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), - ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), - RDX_V_ALBARANES.ALBARAN, - RDX_V_ALBARANES.ESTADO, - RDX_V_ALBARANES.OBSERVACIONES, - ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_CONTROL_RECEPCION AS -SELECT - APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), - RDX_RECEPCION_AJUSTES.FECHACAMBIO, - - RDX_V_RECEPCION.CENTRO, - RDX_V_RECEPCION.FILIAL, - RDX_V_RECEPCION.CODIGO, - RDX_V_RECEPCION.PRODUCTO, - RDX_V_RECEPCION.COLOR, - RDX_V_RECEPCION.FECHA, - - /* ALBARAN Y ESTADO */ - RDX_V_RECEPCION.ALBARAN, - RDX_V_RECEPCION.ESTADO_ALBARAN, - RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, - RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, - - /* CANTIDADES ENVIADAS DESDE VARELA */ - E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, - - /* CANTIDADES RECIBIDAS EN EL CENTRO*/ - R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, - - /* CANTIDADES RECIBIDAS RECTIFICADAS */ - RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), - RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), - RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), - RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), - RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), - RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), - - RECIBIDO_RECT = - ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), - - DIFERENCIA = - ( - ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) - ) - ENVIADO -FROM - RDX_V_RECEPCION -LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON - ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND - (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND - (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND - (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_ALBARANES_PENDIENTES AS -SELECT DISTINCT ALBARAN, APROBADO -FROM RDX_V_CONTROL_RECEPCION -WHERE ALBARAN IS NOT NULL -AND APROBADO = 'N' -GO - -/*--------------- SQL ---------------*/GO - -CREATE VIEW RDX_V_CONTROL_RECEPCION_ALBARANES AS -select RDX_V_CONTROL_RECEPCION.ALBARAN -,ESTADOALBARAN = CASE - WHEN RDX_V_ALBARANES_PENDIENTES.ALBARAN is NULL THEN 'R' - ELSE 'P' - END -,ESTADOPRODUCTO = CASE RDX_V_CONTROL_RECEPCION.APROBADO - WHEN 'N' THEN 'PENDIENTE' - WHEN 'S' THEN 'APROBADO' - END -, CENTRO, FILIAL, FECHA, CODIGO, PRODUCTO, COLOR, E38, E40, E42, E44, E46, E48 -from RDX_V_CONTROL_RECEPCION -left join RDX_V_ALBARANES_PENDIENTES -on (RDX_V_CONTROL_RECEPCION.ALBARAN = RDX_V_ALBARANES_PENDIENTES.ALBARAN) -where RDX_V_CONTROL_RECEPCION.ALBARAN is not null -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS -SELECT - LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, - LOJA_SAIDAS.EMISSAO AS FECHA, - RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, - LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, - RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, - LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, - PRODUTOS_BARRA.CODIGO_BARRA, - LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN EN1 - WHEN '40' THEN EN2 - WHEN '42' THEN EN3 - WHEN '44' THEN EN4 - WHEN '46' THEN EN5 - WHEN '48' THEN EN6 - END, - RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, - RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') -FROM LOJA_SAIDAS_PRODUTO -INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) -INNER JOIN PRODUTOS_BARRA on - (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) -INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) -INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) -LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON - (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) -WHERE - LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ -AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_DEVOLUCIONES AS -SELECT - CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), - FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), - CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), - PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), - COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), - FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), - - /* HOJA DE MOVIMIENTOS Y ESTADO */ - NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, - ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, - OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, - CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), - - /* CANTIDADES SOLICITADAS DESDE VARELA */ - S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - SOLICITADO = SUM( - CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END - ), - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - - ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), - - DIFERENCIA = SUM( - CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END) - - SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) -FROM - RDX_V_HOJAS_DEVOLUCIONES -FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON - ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND - (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND - (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) -GROUP BY - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), - RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, - RDX_V_HOJAS_DEVOLUCIONES.ESTADO, - RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS -SELECT - APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), - RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, - - RDX_V_DEVOLUCIONES.CENTRO, - RDX_V_DEVOLUCIONES.FILIAL, - RDX_V_DEVOLUCIONES.CODIGO, - RDX_V_DEVOLUCIONES.PRODUCTO, - RDX_V_DEVOLUCIONES.COLOR, - RDX_V_DEVOLUCIONES.FECHA, - - /* HOJA DE MOVIMIENTOS Y ESTADO */ - RDX_V_DEVOLUCIONES.NUMHOJA, - RDX_V_DEVOLUCIONES.ESTADO_HOJA, - RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, - RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, - - /* CANTIDADES SOLICITADAS DESDE VARELA */ - S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, - - /* CANTIDADES ENVIADAS RECTIFICADAS */ - ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), - ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), - ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), - ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), - ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), - ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), - - ENVIADO_RECT = - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), - - DIFERENCIA = - ( - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) - ) - SOLICITADO -FROM - RDX_V_DEVOLUCIONES -LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON - ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND - (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND - (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND - (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) -GO - - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS -SELECT - RDX_RECEPCION_AJUSTES.FECHA, - RDX_RECEPCION_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), - RDX_RECEPCION_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_RECEPCION_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 - END IS NOT NULL -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS -SELECT - FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), - CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), - FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), - CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), - PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), - COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), - TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), - CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) -FROM - RDX_V_RECEPCION_AJUSTES_DESGLOSADO -FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) -GROUP BY - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) -GO - - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS -SELECT - RDX_DEVOLUCION_AJUSTES.FECHA, - RDX_DEVOLUCION_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), - RDX_DEVOLUCION_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_DEVOLUCION_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 - END IS NOT NULL -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_HOJAS_TRASPASOS AS -SELECT - LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, - LOJA_SAIDAS.EMISSAO AS FECHA, - RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, - LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, - RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, - LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, - PRODUTOS_BARRA.CODIGO_BARRA, - LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN EN1 - WHEN '40' THEN EN2 - WHEN '42' THEN EN3 - WHEN '44' THEN EN4 - WHEN '46' THEN EN5 - WHEN '48' THEN EN6 - END -FROM LOJA_SAIDAS_PRODUTO -INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) -INNER JOIN PRODUTOS_BARRA on - (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) -INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) -INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) -WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ -AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS -SELECT - RDX_TRASPASOS_AJUSTES.FECHA, - RDX_TRASPASOS_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), - RDX_TRASPASOS_AJUSTES.CENTRO2, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), - TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, - RDX_TRASPASOS_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_TRASPASOS_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 - WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 - WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 - WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 - WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 - WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) -LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 - WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 - WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 - WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 - WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 - WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 - END IS NOT NULL -GO - -/* EOF */ diff --git a/Varela/Varela/Database/2.2 - vistas ventas.sql b/Varela/Varela/Database/2.2 - vistas ventas.sql deleted file mode 100644 index d2edf4f..0000000 --- a/Varela/Varela/Database/2.2 - vistas ventas.sql +++ /dev/null @@ -1,284 +0,0 @@ -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASEDI AS -SELECT - NUMINF, - CLAVE1, - CLAVE2, - CLAVE3, - PERVENINI, - NUMTALON, - EANLUG, - FILIAL, - EANVEN, - CODVEN, - VENDEDOR, - EANART, - CODCOM, - PRODUTO, - DESC_PRODUTO, - COR_PRODUTO, - GRADE, - TIPO_PRODUTO, - GRUPO_PRODUTO, - DESC_COLECAO, - VALVEN, - CANVEN, - CANDEV, - CANVENNET, - CANESP, - IGNORAR -FROM RDX_VENTASEDI -WHERE (IGNORAR IS NULL) OR (IGNORAR <> 'S') -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASEDI_PESADA -AS -SELECT - RDX_CABVEN.NUMINF, - RDX_ARTVEN.CLAVE1, - RDX_ARTVEN.CLAVE2, - RDX_ARTVEN.CLAVE3, - RDX_LUGVEN.PERVENINI, - RDX_ARTVEN.NUMTALON, - RDX_LUGVEN.EANLUG, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), - RDX_ARTVEN.EANVEN, - LOJA_VENDEDORES.VENDEDOR AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), - RDX_ARTVEN.EANART, - RDX_ARTVEN.CODCOM, - produtos.PRODUTO, - ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO, - PRODUTOS_BARRA.GRADE, - produtos.TIPO_PRODUTO, - produtos.GRUPO_PRODUTO, - COLECOES.DESC_COLECAO, - RDX_ARTVEN.VALVEN, - RDX_ARTVEN.CANVEN, - RDX_ARTVEN.CANDEV, - RDX_ARTVEN.CANVENNET, - RDX_ARTVEN.CANESP -FROM - RDX_ARTVEN - INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) - INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) - left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) - left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) - LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) - LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) -WHERE (RDX_CABVEN.IGNORAR IS NULL) OR (RDX_CABVEN.IGNORAR <> 'S') -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS -AS -SELECT * -FROM RDX_REFERENCIA_GENERICA -WHERE ESTADO = 'R' -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASEDI_RESUELTAS -AS -SELECT - RDX_V_VENTASEDI.NUMINF, - RDX_V_VENTASEDI.CLAVE1, - RDX_V_VENTASEDI.CLAVE2, - RDX_V_VENTASEDI.CLAVE3, - RDX_V_VENTASEDI.PERVENINI, - RDX_V_VENTASEDI.NUMTALON, - RDX_V_VENTASEDI.EANLUG, - RDX_V_VENTASEDI.FILIAL, - RDX_V_VENTASEDI.EANVEN, - RDX_V_VENTASEDI.CODVEN, - RDX_V_VENTASEDI.VENDEDOR, - EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), - RDX_V_VENTASEDI.CODCOM, - PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), - DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), - COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), - GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), - TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), - GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), - PRODUTOS.COLECAO, - DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), - RDX_V_VENTASEDI.VALVEN, - RDX_V_VENTASEDI.CANVEN, - RDX_V_VENTASEDI.CANDEV, - RDX_V_VENTASEDI.CANVENNET, - RDX_V_VENTASEDI.CANESP -FROM RDX_V_VENTASEDI -LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( - (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) -LEFT JOIN PRODUTOS_BARRA ON ( - (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) -LEFT JOIN PRODUTOS ON ( - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) -LEFT JOIN COLECOES ON ( - (COLECOES.COLECAO = PRODUTOS.COLECAO)) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASEDI_ERRONEAS -AS -SELECT -* -FROM - RDX_V_VENTASEDI -WHERE PRODUTO = '107CH.EN.01' -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_REFERENCIA_GENERICA -AS -SELECT DISTINCT - VENTAS.NUMINF, - VENTAS.CLAVE1, - VENTAS.CLAVE2, - VENTAS.CLAVE3, - NUMCON = ISNULL(REF.NUMCON, 0), - VENTAS.PERVENINI AS FECHA, - VENTAS.EANLUG AS CODCENTRO, - VENTAS.FILIAL AS CENTRO, - VENTAS.EANVEN AS CODVENDEDOR, - VENTAS.VENDEDOR, - VENTAS.NUMTALON, - CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), - CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), - TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), - VTAPROCESO = ISNULL(REF.CANESP, VENTAS.CANESP), - VTAFINAL = ISNULL(REF.CANVENNET, VENTAS.CANVENNET), - VTATERM = ISNULL(REF.CANVEN, VENTAS.CANVEN), - VALTOT = ISNULL(REF.VALVEN, VENTAS.VALVEN), - REF.ESTADO, - REF.FECHACAMBIO -FROM RDX_V_VENTASEDI_ERRONEAS VENTAS -LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON - (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND - REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) -LEFT OUTER JOIN PRODUTOS_BARRA on - (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASPROCESO AS -SELECT - NUMINF, - CLAVE1, - CLAVE2, - CLAVE3, - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - FILIAL AS CENTRO, - VENDEDOR, - NUMTALON, - PRODUTO AS CODIGO, - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - COLECAO AS COLECCION, - COR_PRODUTO AS COLOR, - GRADE AS TALLA, - CANESP AS INICIO, - CANVENNET AS FINAL, - VALVEN AS IMPORTE -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) -AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS -SELECT NUMTALON, - CODIGO, - COLOR, - TALLA, - SUM(ISNULL(INICIO, 0)) AS INICIO, - SUM(ABS(ISNULL(FINAL, 0))) AS FINAL -FROM RDX_V_VENTASPROCESO -GROUP BY NUMTALON, CODIGO, COLOR, TALLA -HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND - (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_VENTASTERMINADAS -AS -SELECT - NUMINF, - CLAVE1, - CLAVE2, - CLAVE3, - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - FILIAL AS CENTRO, - VENDEDOR, - NUMTALON, - PRODUTO AS CODIGO, - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - COLECAO AS COLECCION, - COR_PRODUTO AS COLOR, - GRADE AS TALLA, - TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - - VTATERMDEV = ISNULL(CANVEN, 0), - VTAFINALRESC = ISNULL(CANVENNET, 0), - - VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + - CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, - - DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + - CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, - - TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), - - VALTERMDEV = CASE WHEN (CANVEN <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, - VALFINALRESC = CASE WHEN (CANVENNET <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END, - - VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, - VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, - VALTOT = VALVEN -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ -AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ -AND ((CANVENNET >= 0) OR (CANVENNET IS NULL)) /* IGNORAR LAS RESCISIONES DE V.PROCESO */ -GO - -/* EOF */ diff --git a/Varela/Varela/Database/2.3 - vistas stock.sql b/Varela/Varela/Database/2.3 - vistas stock.sql deleted file mode 100644 index 44cb859..0000000 --- a/Varela/Varela/Database/2.3 - vistas stock.sql +++ /dev/null @@ -1,579 +0,0 @@ -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK_VARELA AS -SELECT ESTOQUE_PRODUTOS.FILIAL, - ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, - ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - PRODUTOS.TIPO_PRODUTO, - PRODUTOS.GRUPO_PRODUTO, - COLECCION = PRODUTOS.COLECAO, - ESTOQUE_PRODUTOS.ES1 as K38, - ESTOQUE_PRODUTOS.ES2 as K40, - ESTOQUE_PRODUTOS.ES3 as K42, - ESTOQUE_PRODUTOS.ES4 as K44, - ESTOQUE_PRODUTOS.ES5 as K46, - ESTOQUE_PRODUTOS.ES6 as K48, - ESTOQUE_PRODUTOS.ESTOQUE as KT - -FROM ESTOQUE_PRODUTOS -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) -WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK_INVENTARIO AS -SELECT - FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), - CENTRO = ISNULL(RDX_V_INVENTARIOEDI.CENTRO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO))), - FILIAL = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), - CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), - PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), - COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), - TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), - CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), - OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT - WHEN '194' THEN 'R' - WHEN '46' THEN 'E' - WHEN '145' THEN 'RM' - WHEN '48' THEN 'S' - WHEN '61' THEN 'D' - WHEN '65' THEN 'T' - ELSE - CASE - WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' - WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' - ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO - END - END -FROM RDX_V_INVENTARIOEDI -FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) -FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) -FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK_VENTAS AS -SELECT - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - EANLUG AS CENTRO, - FILIAL AS FILIAL, - CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - COLECAO AS COLECCION, - COLOR = ISNULL(COR_PRODUTO, '300'), - GRADE AS TALLA, - CANTIDAD = ISNULL(CANVEN, 0) - + - CASE - WHEN ISNULL(CANVENNET, 0) < 0 THEN - ISNULL(CANVENNET, 0) - ELSE 0 - END - + - ISNULL(CANESP, 0) -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK AS -SELECT - CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), - FILIAL = ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), - CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), - PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), - TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, - GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, - COLECCION = PRODUTOS.COLECAO, - COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), - E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '38' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '40' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '42' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '44' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '46' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '48' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN 0 - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '38' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '40' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '42' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '44' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '46' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '48' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN (RDX_V_STOCK_VENTAS.CANTIDAD > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END) -FROM - RDX_V_STOCK_INVENTARIO -FULL OUTER JOIN RDX_V_STOCK_VENTAS ON - (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) - AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) - AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) - AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) - AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) -GROUP BY - ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), - ISNULL(RDX_V_STOCK_INVENTARIO.FILIAL, RDX_V_STOCK_VENTAS.FILIAL), - ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), - ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), - PRODUTOS.TIPO_PRODUTO, - PRODUTOS.GRUPO_PRODUTO, - PRODUTOS.COLECAO, - ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK_CALCULADO AS -SELECT - CENTRO, - CODIGO, - PRODUCTO, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION, - COLOR, - E38, - E40, - E42, - E44, - E46, - E48, - TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), - S38, - S40, - S42, - S44, - S46, - S48, - TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), - K38 = ISNULL(E38, 0) + ISNULL(S38, 0), - K40 = ISNULL(E40, 0) + ISNULL(S40, 0), - K42 = ISNULL(E42, 0) + ISNULL(S42, 0), - K44 = ISNULL(E44, 0) + ISNULL(S44, 0), - K46 = ISNULL(E46, 0) + ISNULL(S46, 0), - K48 = ISNULL(E48, 0) + ISNULL(S48, 0), - KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + - ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + - ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) - -FROM RDX_V_STOCK -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_STOCK_CALCULADO_DESGLOSADO AS -SELECT CENTRO, - CODIGO, - PRODUCTO, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION, - COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_V_STOCK_CALCULADO.K38 - WHEN '40' THEN RDX_V_STOCK_CALCULADO.K40 - WHEN '42' THEN RDX_V_STOCK_CALCULADO.K42 - WHEN '44' THEN RDX_V_STOCK_CALCULADO.K44 - WHEN '46' THEN RDX_V_STOCK_CALCULADO.K46 - WHEN '48' THEN RDX_V_STOCK_CALCULADO.K48 - END - -FROM RDX_TALLAS, RDX_V_STOCK_CALCULADO -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIO_STOCK_DESGLOSADO AS -SELECT - ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO, RDX_V_ULTIMO_INVENTARIO.FILIAL) as CENTRO, - ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO, RDX_V_ULTIMO_INVENTARIO.CODIGO) as CODIGO, - ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.PRODUCTO, RDX_V_ULTIMO_INVENTARIO.PRODUCTO) as PRODUCTO, - ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR, RDX_V_ULTIMO_INVENTARIO.COLOR) as COLOR, - ISNULL(RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA, RDX_V_ULTIMO_INVENTARIO.TALLA) as TALLA, - - RDX_V_STOCK_CALCULADO_DESGLOSADO.TIPO_PRODUCTO, - RDX_V_STOCK_CALCULADO_DESGLOSADO.GRUPO_PRODUCTO, - RDX_V_STOCK_CALCULADO_DESGLOSADO.COLECCION, - - RDX_V_STOCK_CALCULADO_DESGLOSADO.CANTIDAD as CANTIDAD_STOCK, - RDX_V_ULTIMO_INVENTARIO.CANTIDAD as CANTIDAD_INVENTARIO - -FROM RDX_V_ULTIMO_INVENTARIO -FULL OUTER JOIN RDX_V_STOCK_CALCULADO_DESGLOSADO ON -(RDX_V_ULTIMO_INVENTARIO.FILIAL = RDX_V_STOCK_CALCULADO_DESGLOSADO.CENTRO) -AND (RDX_V_ULTIMO_INVENTARIO.CODIGO = RDX_V_STOCK_CALCULADO_DESGLOSADO.CODIGO) -AND (RDX_V_ULTIMO_INVENTARIO.COLOR = RDX_V_STOCK_CALCULADO_DESGLOSADO.COLOR) -AND (RDX_V_ULTIMO_INVENTARIO.TALLA = RDX_V_STOCK_CALCULADO_DESGLOSADO.TALLA) -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_INVENTARIO_STOCK AS -select - CENTRO, - CODIGO, - PRODUCTO, - COLOR, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION, - I38 = SUM(CASE TALLA - WHEN '38' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,I40 = SUM(CASE TALLA - WHEN '40' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,I42 = SUM(CASE TALLA - WHEN '42' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,I44 = SUM(CASE TALLA - WHEN '44' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,I46 = SUM(CASE TALLA - WHEN '46' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,I48 = SUM(CASE TALLA - WHEN '48' THEN - CANTIDAD_INVENTARIO - ELSE 0 - END) - - ,K38 = SUM(CASE TALLA - WHEN '38' THEN - CANTIDAD_STOCK - ELSE 0 - END) - - ,K40 = SUM(CASE TALLA - WHEN '40' THEN - CANTIDAD_STOCK - ELSE 0 - END) - - ,K42 = SUM(CASE TALLA - WHEN '42' THEN - CANTIDAD_STOCK - ELSE 0 - END) - - ,K44 = SUM(CASE TALLA - WHEN '44' THEN - CANTIDAD_STOCK - ELSE 0 - END) - - ,K46 = SUM(CASE TALLA - WHEN '46' THEN - CANTIDAD_STOCK - ELSE 0 - END) - - ,K48 = SUM(CASE TALLA - WHEN '48' THEN - CANTIDAD_STOCK - ELSE 0 - END) - -from RDX_V_INVENTARIO_STOCK_DESGLOSADO - -group by CENTRO, - CODIGO, - PRODUCTO, - COLOR, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION -GO - -/*--------------- SQL ---------------*/ - -CREATE VIEW RDX_V_CONTROL_INVENTARIO AS -SELECT - CENTRO, - CODIGO, - PRODUCTO, - COLOR, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION, - - I38, - I40, - I42, - I44, - I46, - I48, - TI = ISNULL(I38, 0) + ISNULL(I40, 0) + ISNULL(I42, 0) + ISNULL(I44, 0) + ISNULL(I46, 0) + ISNULL(I48, 0), - - K38, - K40, - K42, - K44, - K46, - K48, - TK = ISNULL(K38, 0) + ISNULL(K40, 0) + ISNULL(K42, 0) + ISNULL(K44, 0) + ISNULL(K46, 0) + ISNULL(K48, 0), - - D38 = ISNULL(I38, 0) - ISNULL(K38, 0), - D40 = ISNULL(I40, 0) - ISNULL(K40, 0), - D42 = ISNULL(I42, 0) - ISNULL(K42, 0), - D44 = ISNULL(I44, 0) - ISNULL(K44, 0), - D46 = ISNULL(I46, 0) - ISNULL(K46, 0), - D48 = ISNULL(I48, 0) - ISNULL(K48, 0), - DT = ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + - ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + - ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0) - -FROM RDX_V_INVENTARIO_STOCK -where ((ISNULL(I38, 0) - ISNULL(K38, 0) + ISNULL(I40, 0) - ISNULL(K40, 0) + - ISNULL(I42, 0) - ISNULL(K42, 0) + ISNULL(I44, 0) - ISNULL(K44, 0) + - ISNULL(I46, 0) - ISNULL(K46, 0) + ISNULL(I48, 0) - ISNULL(K48, 0)) <> 0) - -GO -/* EOF */ diff --git a/Varela/Varela/Database/3 - procedimientos.sql b/Varela/Varela/Database/3 - procedimientos.sql deleted file mode 100644 index 11c1189..0000000 --- a/Varela/Varela/Database/3 - procedimientos.sql +++ /dev/null @@ -1,176 +0,0 @@ -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE crosstab - @select varchar(8000), - @sumfunc varchar(100), - @pivot varchar(100), - @table varchar(100) -AS - - DECLARE @sql varchar(8000), @delim varchar(1) - SET NOCOUNT ON - SET ANSI_WARNINGS OFF - - EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2') - EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' + @pivot + ' Is Not Null') - - SELECT @sql='', @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, ' END)' ) - - SELECT @delim=CASE Sign( CharIndex('char', data_type)+CharIndex('date', data_type) ) - WHEN 0 THEN '' ELSE '''' END - FROM tempdb.information_schema.columns - WHERE table_name='##pivot' AND column_name='pivot' - - SELECT @sql=@sql + '''' + convert(varchar(100), pivot) + ''' = ' + stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot + ' WHEN ' + @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', ' FROM ##pivot - - DROP TABLE ##pivot - - SELECT @sql=left(@sql, len(@sql)-1) - SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ', ' + @sql + ' ') - - EXEC (@select) - SET ANSI_WARNINGS ON -GO - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI -AS -BEGIN - INSERT INTO RDX_INVENTARIOEDI ( - NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, - VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, - CENTRO2, FILIAL2, IGNORAR ) - SELECT - RDX_CANTINV.NUMDOC, - RDX_CANTINV.NUMLIN, - RDX_CANTINV.NUMCANT, - RDX_CANTINV.TIPOCANT, - RDX_CABINV.FECHALIQ AS FECHA, - RDX_CABINV.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), - RDX_CANTINV.IDVEN AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), - RDX_LININV.CODART AS CODIGO_BARRA, - CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), - TALLA = PRODUTOS_BARRA.GRADE, - RDX_CANTINV.CANTIDAD, - CENTRO2 = RDX_CANTINV.CENTRO, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), - RDX_CABINV.IGNORAR - FROM RDX_CANTINV - INNER JOIN RDX_LININV ON - ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND - (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) - INNER JOIN RDX_CABINV ON - (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) - LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) - LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) - LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) - LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) - WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ - AND RDX_CABINV.CARGADO IS NULL - - UPDATE RDX_CABINV SET - CARGADO = 1 - WHERE CARGADO IS NULL -END -GO - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI -AS -BEGIN - INSERT INTO RDX_VENTASEDI ( - NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, - FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, - DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, - DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) - SELECT - RDX_CABVEN.NUMINF, - RDX_ARTVEN.CLAVE1, - RDX_ARTVEN.CLAVE2, - RDX_ARTVEN.CLAVE3, - RDX_LUGVEN.PERVENINI, - RDX_ARTVEN.NUMTALON, - RDX_LUGVEN.EANLUG, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), - RDX_ARTVEN.EANVEN, - LOJA_VENDEDORES.VENDEDOR AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), - RDX_ARTVEN.EANART, - RDX_ARTVEN.CODCOM, - produtos.PRODUTO, - ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO, - PRODUTOS_BARRA.GRADE, - produtos.TIPO_PRODUTO, - produtos.GRUPO_PRODUTO, - COLECOES.DESC_COLECAO, - RDX_ARTVEN.VALVEN, - RDX_ARTVEN.CANVEN, - RDX_ARTVEN.CANDEV, - RDX_ARTVEN.CANVENNET, - RDX_ARTVEN.CANESP - FROM - RDX_ARTVEN - INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) - INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) - left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) - left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) - LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) - LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) - WHERE RDX_CABVEN.CARGADO IS NULL - - - UPDATE RDX_CABVEN SET - CARGADO = 1 - WHERE CARGADO IS NULL -END -GO - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO -AS -BEGIN - DECLARE @CENTRO VARCHAR(17), - @CODIGO VARCHAR(12), - @COLOR VARCHAR(10), - @TALLA VARCHAR(8), - @FECHA DATETIME, - @UPDATECMD VARCHAR(255) - - DECLARE ASD CURSOR FOR - SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA - FROM RDX_V_INVENTARIO_MAXFECHAS - OPEN ASD - FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA - - IF @@ROWCOUNT >= 0 - BEGIN - WHILE @@FETCH_STATUS = 0 - BEGIN - UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL - WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA - - UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 - WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 - - FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA - END - END - CLOSE ASD - DEALLOCATE ASD -END -GO - -/* EOF */ \ No newline at end of file diff --git a/Varela/Varela/Database/ANTERIOR/Script Datos.sql b/Varela/Varela/Database/ANTERIOR/Script Datos.sql deleted file mode 100644 index 0a98c3d..0000000 --- a/Varela/Varela/Database/ANTERIOR/Script Datos.sql +++ /dev/null @@ -1,178 +0,0 @@ ---------------- SQL --------------- -CREATE USER [usuario_gft] - FOR LOGIN [usuario_gft] - WITH DEFAULT_SCHEMA = [dbo] -GO - -COMMIT -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010082','8422416200065') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010083','8422416200058') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010086','8422416200041') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010089','8422416200102') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010090','8422416200126') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010091','8422416200133') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010092','8422416200188') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010244','8422416101256') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010094','8422416200959') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010096','8422416209068') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010088','8422416200089') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010103','8422416200140') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('010087','8422416200072') -GO - -INSERT INTO [RDX_FILIALES] ([CODFILIAL], [CODBARRA]) -VALUES - ('000001','8435159800003') -GO - -COMMIT -GO - - - ---------------- SQL --------------- -CREATE TABLE [RDX_TALLAS] ( - [TALLA] char(2) NOT NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_TALLAS] -TO [public] -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('38') -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('40') -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('42') -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('44') -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('46') -GO - -INSERT INTO [RDX_TALLAS] ([TALLA]) -VALUES - ('48') -GO - -COMMIT -GO - - - - - -/* Códigos de barra de ECI que son referencias nulas */ - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('61800000000','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('61810001406','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('61810001547','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('61810001042','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('61810001141','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -INSERT INTO [PRODUTOS_BARRA] ([CODIGO_BARRA], [PRODUTO], [COR_PRODUTO], [TAMANHO], [GRADE], [DATA_PARA_TRANSFERENCIA], [CODIGO_BARRA_PADRAO], [NOME_CLIFOR]) -VALUES - ('8300733557232','107CH.EN.01','300',1,'38',CURRENT_TIMESTAMP,0,NULL) -GO - -COMMIT -GO - - - - - - - - - - - diff --git a/Varela/Varela/Database/ANTERIOR/Script Tablas.sql b/Varela/Varela/Database/ANTERIOR/Script Tablas.sql deleted file mode 100644 index 2d1d3e9..0000000 --- a/Varela/Varela/Database/ANTERIOR/Script Tablas.sql +++ /dev/null @@ -1,519 +0,0 @@ ---------------- SQL --------------- -CREATE TABLE [RDX_CABINV] ( - [NUMDOC] varchar(25) NOT NULL, - [TIPODOC] varchar(3) NULL, - [TIPOLIQ] varchar(3) NULL, - [FECHA] datetime NULL, - [FECHALIQ] datetime NULL, - [EMISOR] varchar(17) NULL, - [RECEPTOR] varchar(17) NULL, - [DPTO] varchar(3) NULL, - [CENTRO] varchar(17) NULL, - [FECHA_CARGA] datetime NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABINV] -TO [public] -GO - -ALTER TABLE [RDX_CABINV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABINV_idx] ON [RDX_CABINV] - ([FECHALIQ]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CABINV_idx2] ON [RDX_CABINV] - ([CENTRO]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_LININV] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [CODART] varchar(17) NULL, - [FAMILIA] varchar(17) NULL, - [BARRA] varchar(17) NULL, - [TALLA] varchar(17) NULL, - [MARCA] varchar(25) NULL, - [TAMANO] varchar(25) NULL, - [SERIE] varchar(25) NULL, - [COLOR] varchar(25) NULL, - [MODELO] varchar(25) NULL, - [DIBUJO] varchar(25) NULL, - [DESCRIP] varchar(70) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LININV] -TO [public] -GO - -ALTER TABLE [RDX_LININV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_LININV_idx] ON [RDX_LININV] - ([CODART]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_CANTINV] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [NUMCANT] numeric(6, 0) NOT NULL, - [TIPOCANT] varchar(3) NULL, - [CANTIDAD] numeric(15, 0) NULL, - [CENTRO] varchar(17) NULL, - [TMOV] varchar(3) NULL, - [FACT] varchar(12) NULL, - [DEPTO] varchar(3) NULL, - [IDVEN] varchar(10) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CANTINV] -TO [public] -GO - -ALTER TABLE [RDX_CANTINV] -ADD PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx] ON [RDX_CANTINV] - ([TIPOCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx2] ON [RDX_CANTINV] - ([IDVEN]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_CABVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [NUMINF] varchar(35) NULL, - [FUNCION] varchar(10) NULL, - [FECINI] datetime NULL, - [FECFIN] datetime NULL, - [FECINF] datetime NULL, - [PERVENINI] datetime NULL, - [PERVENFIN] datetime NULL, - [EANOFI] varchar(17) NULL, - [EANEMI] varchar(17) NULL, - [EANREC] varchar(17) NULL, - [EANVEN] varchar(17) NULL, - [EANALM] varchar(17) NULL, - [EANREP] varchar(17) NULL, - [EANPRO] varchar(17) NULL, - [EANADMSA] varchar(17) NULL, - [EANREPSR] varchar(17) NULL, - [ADMVENSA] varchar(35) NULL, - [REPDEPSR] varchar(35) NULL, - [EMAILSA] varchar(35) NULL, - [NUMFAXSA] varchar(35) NULL, - [NUMTELSA] varchar(35) NULL, - [NUMTLXSA] varchar(35) NULL, - [X400SA] varchar(35) NULL, - [EMAILSR] varchar(35) NULL, - [NUMFAXSR] varchar(35) NULL, - [NUMTELSR] varchar(35) NULL, - [NUMTLXSR] varchar(35) NULL, - [X400SR] varchar(35) NULL, - [NUMPRE] varchar(35) NULL, - [NUMINFSC] varchar(35) NULL, - [NUMCON] varchar(35) NULL, - [FECPRE] datetime NULL, - [FECINFSC] datetime NULL, - [FECCON] datetime NULL, - [DIVPED] varchar(3) NULL, - [DIVPRE] varchar(3) NULL, - [DIVPAG] varchar(3) NULL, - [DIVPEDF] varchar(3) NULL, - [DIVPREF] varchar(3) NULL, - [DIVPAGF] varchar(3) NULL, - [TASCAM] numeric(15, 3) NULL, - [FECTAS] datetime NULL, - [FECHA_CARGA] datetime NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABVEN] -TO [public] -GO - -ALTER TABLE [RDX_CABVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_LUGVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [EANLUG] varchar(17) NULL, - [LUGVEN] varchar(70) NULL, - [FECINI] datetime NULL, - [FECFIN] datetime NULL, - [PERVENINI] datetime NULL, - [PERVENFIN] datetime NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LUGVEN] -TO [public] -GO - -ALTER TABLE [RDX_LUGVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_LUGVEN_PERVENINI_IDX] ON [RDX_LUGVEN] - ([PERVENINI]) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_LUGVEN] -ADD CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) - REFERENCES [RDX_CABVEN] ([CLAVE1]) - ON UPDATE CASCADE - ON DELETE CASCADE -GO - -ALTER TABLE [RDX_LUGVEN] -NOCHECK CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_ARTVEN] ( - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [EANART] varchar(17) NULL, - [CODCOM] varchar(35) NULL, - [NUMVAR] varchar(35) NULL, - [CODPRO] varchar(35) NULL, - [DESARTCO] varchar(35) NULL, - [DESART] varchar(70) NULL, - [NUMCON] varchar(35) NULL, - [NUMLIS] varchar(35) NULL, - [CONESP1] varchar(3) NULL, - [CONESP2] varchar(3) NULL, - [CONESP3] varchar(3) NULL, - [VALVEN] numeric(15, 3) NULL, - [PRENETCT] numeric(15, 3) NULL, - [PREBRUCT] numeric(15, 3) NULL, - [PREINFET] numeric(15, 3) NULL, - [PREINFFT] numeric(15, 3) NULL, - [PRECALCT] numeric(15, 3) NULL, - [PRENETCA] numeric(15, 3) NULL, - [PREBRUCA] numeric(15, 3) NULL, - [PREINFEA] numeric(15, 3) NULL, - [PREINFFA] numeric(15, 3) NULL, - [PRECALCA] numeric(15, 3) NULL, - [BAPRUN1] numeric(9, 0) NULL, - [UNIMED1] varchar(3) NULL, - [BAPRUN2] numeric(9, 0) NULL, - [UNIMED2] varchar(3) NULL, - [BAPRUN3] numeric(9, 0) NULL, - [UNIMED3] varchar(3) NULL, - [BAPRUN4] numeric(9, 0) NULL, - [UNIMED4] varchar(3) NULL, - [BAPRUN5] numeric(9, 0) NULL, - [UNIMED5] varchar(3) NULL, - [CANVEN] numeric(15, 3) NULL, - [EXIPRO] numeric(15, 3) NULL, - [DESEXI] numeric(15, 3) NULL, - [ESPMEDCV] varchar(3) NULL, - [ESPMEDEP] varchar(3) NULL, - [ESPMEDDE] varchar(3) NULL, - [CANDEV] numeric(15, 3) NULL, - [EANVEN] varchar(17) NULL, - [NOMVEN] varchar(70) NULL, - [NUMTALON] varchar(35) NULL, - [CANVENNET] numeric(15, 3) NULL, - [UMEDVENNET] varchar(3) NULL, - [CANESP] numeric(15, 3) NULL, - [UMEDESP] varchar(3) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_ARTVEN] -TO [public] -GO - -ALTER TABLE [RDX_ARTVEN] -ADD PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2], [CLAVE3]) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_ARTVEN] -ADD CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] FOREIGN KEY ([CLAVE1], [CLAVE2]) - REFERENCES [RDX_LUGVEN] ([CLAVE1], [CLAVE2]) - ON UPDATE CASCADE - ON DELETE CASCADE -GO - -ALTER TABLE [RDX_ARTVEN] -NOCHECK CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_INFORMES] ( - [ID] smallint IDENTITY(1, 1) NOT NULL, - [CATEGORIA] varchar(15) NULL, - [ICONO] smallint NULL, - [NOMBRE] varchar(50) NULL, - [DESCRIPCION] varchar(255) NULL, - [ORDEN] smallint NULL, - [VISTA] text NULL, - [MODIFICABLE] char(1) CONSTRAINT [DF__RDX_INFOR__MODIF__5C78A0F0] DEFAULT 'S' NOT NULL -) -ON [PRIMARY] -TEXTIMAGE_ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_INFORMES] -TO [public] -GO - -ALTER TABLE [RDX_INFORMES] -ADD CONSTRAINT [RDX_INFORMES_pk] -PRIMARY KEY CLUSTERED ([ID]) -ON [PRIMARY] -GO - ---------------- SQL --------------- - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_ARTVEN] -TO [public] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABINV] -TO [public] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CABVEN] -TO [public] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_CANTINV] -TO [public] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LININV] -TO [public] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LUGVEN] -TO [public] -GO - - ---------------- SQL --------------- -CREATE TABLE [RDX_LOG_CARGA] ( - [ID] int IDENTITY(1, 1) NOT NULL, - [REPORT] varchar(10) NOT NULL, - [FECHA] datetime NOT NULL, - [OK] bit NOT NULL, - [ERROR_MSG] varchar(255) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_LOG_CARGA] -TO [public] -GO - -ALTER TABLE [RDX_LOG_CARGA] -ADD UNIQUE NONCLUSTERED ([ID]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_REFERENCIA_GENERICA] ( - [NUMINF] varchar(35) NOT NULL, - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [FECHACAMBIO] datetime NOT NULL, - [ESTADO] char(1) NOT NULL, - [CODIGO_BARRA] varchar(25) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_REFERENCIA_GENERICA] -TO [public] -GO - -ALTER TABLE [RDX_REFERENCIA_GENERICA] -ADD CONSTRAINT [PK__RDX_REFERENCIA_G__68DE77D5] -PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_AJUSTES_ALBARAN] ( - [ALBARAN] char(7) NOT NULL, - [ESTADO] varchar(15) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_AJUSTES_ALBARAN] -TO [public] -GO - -ALTER TABLE [RDX_AJUSTES_ALBARAN] -ADD CONSTRAINT [PK__RDX_AJUSTES_ALBA__1B69F7A2] -PRIMARY KEY CLUSTERED ([ALBARAN]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] ( - [NUMHOJA] char(8) NOT NULL, - [ESTADO] varchar(20) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) CONSTRAINT [DF__RDX_AJUST__CONTA__7BF14C49] DEFAULT 'S' NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_AJUSTES_HOJA_DEVOLUCIONES] -TO [public] -GO - -ALTER TABLE [RDX_AJUSTES_HOJA_DEVOLUCIONES] -ADD CONSTRAINT [PK__RDX_AJUSTES_HOJA__483C9E19] -PRIMARY KEY CLUSTERED ([NUMHOJA]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_DEVOLUCION_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_DEVOLUCION_AJUSTES] -TO [public] -GO - -ALTER TABLE [RDX_DEVOLUCION_AJUSTES] -ADD CONSTRAINT [PK_RDX_DEVOLUCION_AJUSTES_2F70F04A] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_RECEPCION_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_RECEPCION_AJUSTES] -TO [public] -GO - -ALTER TABLE [RDX_RECEPCION_AJUSTES] -ADD CONSTRAINT [PK_RDX_RECEPCION_AJUSTES_2F70F04F] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CODIGO], [COLOR]) -ON [PRIMARY] -GO - ---------------- SQL --------------- -CREATE TABLE [RDX_TRASPASOS_AJUSTES] ( - [FECHA] datetime NOT NULL, - [CENTRO] varchar(17) NOT NULL, - [CENTRO2] varchar(17) NOT NULL, - [CODIGO] varchar(12) NOT NULL, - [COLOR] varchar(10) NOT NULL, - [APROBADO] char(1) NULL, - [ESTADO] varchar(20) NULL, - [OBSERVACIONES] varchar(255) NULL, - [CONTABILIZAR] char(1) NULL, - [FECHACAMBIO] datetime NULL, - [CANT38] numeric(15, 0) NULL, - [CANT40] numeric(15, 0) NULL, - [CANT42] numeric(15, 0) NULL, - [CANT44] numeric(15, 0) NULL, - [CANT46] numeric(15, 0) NULL, - [CANT48] numeric(15, 0) NULL, - [TIPOCANT] varchar(3) NOT NULL -) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_TRASPASOS_AJUSTES] -TO [public] -GO - -ALTER TABLE [RDX_TRASPASOS_AJUSTES] -ADD CONSTRAINT [PK_RDX_TRASPASOS_AJUSTES_2F70F04A] -PRIMARY KEY CLUSTERED ([FECHA], [CENTRO], [CENTRO2], [CODIGO], [COLOR], [TIPOCANT]) -ON [PRIMARY] -GO \ No newline at end of file diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql deleted file mode 100644 index d2d4f7f..0000000 --- a/Varela/Varela/Database/ANTERIOR/Script Vistas INVRPT.sql +++ /dev/null @@ -1,1156 +0,0 @@ --- --- Definition for view RDX_V_ALBARANES : --- - -CREATE VIEW RDX_V_ALBARANES AS -SELECT - FATURAMENTO.NF_SAIDA AS ALBARAN, - FATURAMENTO.EMISSAO AS FECHA, - RDX_FILIALES.CODBARRA AS CENTRO, - FATURAMENTO.NOME_CLIFOR AS FILIAL, - PRODUTOS_BARRA.CODIGO_BARRA, - FATURAMENTO_PROD.PRODUTO AS CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN F1 - WHEN '40' THEN F2 - WHEN '42' THEN F3 - WHEN '44' THEN F4 - WHEN '46' THEN F5 - WHEN '48' THEN F6 - END, - RDX_AJUSTES_ALBARAN.ESTADO, - RDX_AJUSTES_ALBARAN.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_AJUSTES_ALBARAN.CONTABILIZAR, 'S') -FROM FATURAMENTO_PROD -INNER JOIN FATURAMENTO ON - (FATURAMENTO.NF_SAIDA = FATURAMENTO_PROD.NF_SAIDA) -INNER JOIN FATURAMENTO_TIPO ON - (LTRIM(RTRIM(FATURAMENTO.TIPO_FATURAMENTO)) = FATURAMENTO_TIPO.TIPO_FATURAMENTO) -LEFT OUTER JOIN FILIAIS ON - (FILIAIS.FILIAL = FATURAMENTO.NOME_CLIFOR) -LEFT OUTER JOIN RDX_FILIALES ON - (RDX_FILIALES.CODFILIAL = FILIAIS.COD_FILIAL) -LEFT OUTER JOIN PRODUTOS_BARRA ON - (((PRODUTOS_BARRA.PRODUTO = FATURAMENTO_PROD.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = FATURAMENTO_PROD.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (FATURAMENTO_PROD.F6 <> 0) THEN '48' END))) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -LEFT OUTER JOIN RDX_AJUSTES_ALBARAN ON - (RDX_AJUSTES_ALBARAN.ALBARAN = FATURAMENTO.NF_SAIDA) -WHERE FATURAMENTO_TIPO.INDICADOR_TIPO = 'VTPT' /* ALBARANES DE PRODUCTOS TERMINADOS */ -AND FATURAMENTO.NOME_CLIFOR LIKE '%INGLES%' /* ALBARANES PARA CENTROS DEL CORTE INGLES */ -AND FATURAMENTO.EMISSAO >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_ALBARANES] -TO [public] -GO - --- --- Definition for view RDX_V_HOJAS_DEVOLUCIONES : --- - -CREATE VIEW RDX_V_HOJAS_DEVOLUCIONES AS -SELECT - LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, - LOJA_SAIDAS.EMISSAO AS FECHA, - RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, - LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, - RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, - LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, - PRODUTOS_BARRA.CODIGO_BARRA, - LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN EN1 - WHEN '40' THEN EN2 - WHEN '42' THEN EN3 - WHEN '44' THEN EN4 - WHEN '46' THEN EN5 - WHEN '48' THEN EN6 - END, - RDX_AJUSTES_HOJA_DEVOLUCIONES.ESTADO, - RDX_AJUSTES_HOJA_DEVOLUCIONES.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_AJUSTES_HOJA_DEVOLUCIONES.CONTABILIZAR, 'S') -FROM LOJA_SAIDAS_PRODUTO -INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) -INNER JOIN PRODUTOS_BARRA on - (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) -INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) -INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) -LEFT OUTER JOIN RDX_AJUSTES_HOJA_DEVOLUCIONES ON - (RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = LOJA_SAIDAS.ROMANEIO_PRODUTO) -WHERE - LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 2 /* DEVOLUCION DE PRENDAS A VARELA */ -AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_HOJAS_DEVOLUCIONES] -TO [public] -GO - --- --- Definition for view RDX_V_HOJAS_TRASPASOS : --- - -CREATE VIEW RDX_V_HOJAS_TRASPASOS AS -SELECT - LOJA_SAIDAS.ROMANEIO_PRODUTO AS NUMHOJA, - LOJA_SAIDAS.EMISSAO AS FECHA, - RDX_FILIALES_ORI.CODBARRA AS CENTRO_ORIGEN, - LOJA_SAIDAS.FILIAL AS FILIAL_ORIGEN, - RDX_FILIALES_DES.CODBARRA AS CENTRO_DESTINO, - LOJA_SAIDAS.FILIAL_DESTINO AS FILIAL_DESTINO, - PRODUTOS_BARRA.CODIGO_BARRA, - LOJA_SAIDAS_PRODUTO.PRODUTO AS CODIGO, - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA ****'), - PRODUTOS_BARRA.COR_PRODUTO AS COLOR, - PRODUTOS_BARRA.GRADE AS TALLA, - CANTIDAD = CASE PRODUTOS_BARRA.GRADE - WHEN '38' THEN EN1 - WHEN '40' THEN EN2 - WHEN '42' THEN EN3 - WHEN '44' THEN EN4 - WHEN '46' THEN EN5 - WHEN '48' THEN EN6 - END -FROM LOJA_SAIDAS_PRODUTO -INNER JOIN LOJA_SAIDAS ON (LOJA_SAIDAS.ROMANEIO_PRODUTO = LOJA_SAIDAS_PRODUTO.ROMANEIO_PRODUTO) -INNER JOIN PRODUTOS_BARRA on - (((PRODUTOS_BARRA.PRODUTO = LOJA_SAIDAS_PRODUTO.PRODUTO) AND - (PRODUTOS_BARRA.COR_PRODUTO = LOJA_SAIDAS_PRODUTO.COR_PRODUTO)) AND - ((PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN1 <> 0) THEN '38' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN2 <> 0) THEN '40' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN3 <> 0) THEN '42' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN4 <> 0) THEN '44' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN5 <> 0) THEN '46' END) OR - (PRODUTOS_BARRA.GRADE = CASE WHEN (LOJA_SAIDAS_PRODUTO.EN6 <> 0) THEN '48' END))) -INNER JOIN PRODUTOS on (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -INNER JOIN FILIAIS AS FILIAIS_ORI ON (FILIAIS_ORI.FILIAL = LOJA_SAIDAS.FILIAL) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_ORI ON (RDX_FILIALES_ORI.CODFILIAL = FILIAIS_ORI.COD_FILIAL) -INNER JOIN FILIAIS AS FILIAIS_DES ON (FILIAIS_DES.FILIAL = LOJA_SAIDAS.FILIAL_DESTINO) -INNER JOIN RDX_FILIALES AS RDX_FILIALES_DES ON (RDX_FILIALES_DES.CODFILIAL = FILIAIS_DES.COD_FILIAL) -WHERE LOJA_SAIDAS.TIPO_ENTRADA_SAIDA = 1 /* TRASPASOS DE PRENDAS A OTRO CENTRO */ -AND LOJA_SAIDAS.EMISSAO >= '2006.07.01' /* PARA NO COGER AÑOS ANTERIORES */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_HOJAS_TRASPASOS] -TO [public] -GO - --- --- Definition for view RDX_V_INVENTARIOEDI : --- - -CREATE VIEW RDX_V_INVENTARIOEDI AS -SELECT - RDX_CANTINV.NUMDOC, - RDX_CANTINV.NUMLIN, - RDX_CANTINV.NUMCANT, - RDX_CANTINV.TIPOCANT, - RDX_CABINV.FECHALIQ AS FECHA, - RDX_CABINV.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), - RDX_CANTINV.IDVEN AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), - RDX_LININV.CODART AS CODIGO_BARRA, - CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), - TALLA = PRODUTOS_BARRA.GRADE, - RDX_CANTINV.CANTIDAD, - CENTRO2 = RDX_CANTINV.CENTRO, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) -FROM RDX_CANTINV -INNER JOIN RDX_LININV ON - ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND - (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) -INNER JOIN RDX_CABINV ON - (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) -LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) -LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_CANTINV.IDVEN + '%') -LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI] -TO [public] -GO - --- --- Definition for view RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA : --- - -CREATE VIEW RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD -FROM RDX_V_INVENTARIOEDI -WHERE (TIPOCANT = 61) /* DEVOLUCION DE PRENDAS A VARELA */ - OR (TIPOCANT = 65) /* DEVOLUCION POR TARA */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] -TO [public] -GO - - --- --- Definition for view RDX_V_INVENTARIOEDI_RECEPCION : --- - -CREATE VIEW RDX_V_INVENTARIOEDI_RECEPCION AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 194 /* RECEPCION DE PRENDAS DESDE VARELA */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI_RECEPCION] -TO [public] -GO - - --- --- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA : --- - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO_ORIGEN = CENTRO2, - FILIAL_ORIGEN = FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 46 /* ENTRADA DE PRENDAS DESDE OTRO CENTRO */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] -TO [public] -GO - - --- --- Definition for view RDX_V_INVENTARIOEDI_TRASPASO_SALIDA : --- - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO_SALIDA AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO_DESTINO = CENTRO2, - FILIAL_DESTINO = FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE TIPOCANT = 48 /* SALIDA DE PRENDAS A OTRO CENTRO */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] -TO [public] -GO - --- --- Definition for view RDX_V_RECEPCION : --- - -CREATE VIEW RDX_V_RECEPCION AS -SELECT - CENTRO = ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), - FILIAL = ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), - CODIGO = ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), - PRODUCTO = ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), - COLOR = ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), - FECHA = ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), - - /* ALBARAN Y ESTADO */ - ALBARAN = RDX_V_ALBARANES.ALBARAN, - ESTADO_ALBARAN = RDX_V_ALBARANES.ESTADO, - OBSERVACIONES_ALBARAN = RDX_V_ALBARANES.OBSERVACIONES, - CONTABILIZAR_ALBARAN = ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S'), - - /* CANTIDADES ENVIADAS DESDE VARELA */ - E38 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 38 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E40 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 40 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E42 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 42 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E44 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 44 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E46 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 46 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - E48 = SUM(CASE WHEN RDX_V_ALBARANES.TALLA = 48 THEN - ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END), - ENVIADO = SUM( - CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END - ), - - /* CANTIDADES RECIBIDAS EN EL CENTRO*/ - R38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - R48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_RECEPCION.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0) - END), - RECIBIDO = SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)), - - DIFERENCIA = SUM( - CASE ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_ALBARANES.CANTIDAD, 0) - END - ) - - SUM(ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD, 0)) -FROM - RDX_V_ALBARANES -FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON - ((RDX_V_INVENTARIOEDI_RECEPCION.CENTRO = RDX_V_ALBARANES.CENTRO) AND - (RDX_V_INVENTARIOEDI_RECEPCION.CODIGO_BARRA = RDX_V_ALBARANES.CODIGO_BARRA) AND - (RDX_V_INVENTARIOEDI_RECEPCION.FECHA = RDX_V_ALBARANES.FECHA)) -GROUP BY - ISNULL(RDX_V_ALBARANES.CENTRO, RDX_V_INVENTARIOEDI_RECEPCION.CENTRO), - ISNULL(RDX_V_ALBARANES.FILIAL, RDX_V_INVENTARIOEDI_RECEPCION.FILIAL), - ISNULL(RDX_V_ALBARANES.CODIGO, RDX_V_INVENTARIOEDI_RECEPCION.CODIGO), - ISNULL(RDX_V_ALBARANES.PRODUCTO, RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO), - ISNULL(RDX_V_ALBARANES.COLOR, RDX_V_INVENTARIOEDI_RECEPCION.COLOR), - ISNULL(RDX_V_ALBARANES.FECHA, RDX_V_INVENTARIOEDI_RECEPCION.FECHA), - RDX_V_ALBARANES.ALBARAN, - RDX_V_ALBARANES.ESTADO, - RDX_V_ALBARANES.OBSERVACIONES, - ISNULL(RDX_V_ALBARANES.CONTABILIZAR, 'S') -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_RECEPCION] -TO [public] -GO - --- --- Definition for view RDX_V_DEVOLUCIONES : --- - -CREATE VIEW RDX_V_DEVOLUCIONES AS -SELECT - CENTRO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), - FILIAL = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), - CODIGO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), - PRODUCTO = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), - COLOR = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), - FECHA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), - - /* HOJA DE MOVIMIENTOS Y ESTADO */ - NUMHOJA = RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, - ESTADO_HOJA = RDX_V_HOJAS_DEVOLUCIONES.ESTADO, - OBSERVACIONES_HOJA = RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, - CONTABILIZAR_HOJA = ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S'), - - /* CANTIDADES SOLICITADAS DESDE VARELA */ - S38 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 38 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S40 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 40 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S42 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 42 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S44 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 44 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S46 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 46 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - S48 = SUM(CASE WHEN RDX_V_HOJAS_DEVOLUCIONES.TALLA = 48 THEN - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END), - SOLICITADO = SUM( - CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END - ), - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - E38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - E48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0) - END), - - ENVIADO = SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)), - - DIFERENCIA = SUM( - CASE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') - WHEN 'N' THEN 0 - ELSE ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CANTIDAD, 0) - END) - - SUM(ISNULL(RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CANTIDAD, 0)) -FROM - RDX_V_HOJAS_DEVOLUCIONES -FULL OUTER JOIN RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA ON - ((RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO = RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN) AND - (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO_BARRA = RDX_V_HOJAS_DEVOLUCIONES.CODIGO_BARRA) AND - (RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA = RDX_V_HOJAS_DEVOLUCIONES.FECHA)) -GROUP BY - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CENTRO_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CENTRO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FILIAL_ORIGEN, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FILIAL), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CODIGO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.CODIGO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.PRODUCTO, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.PRODUCTO), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.COLOR, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.COLOR), - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.FECHA, RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA.FECHA), - RDX_V_HOJAS_DEVOLUCIONES.NUMHOJA, - RDX_V_HOJAS_DEVOLUCIONES.ESTADO, - RDX_V_HOJAS_DEVOLUCIONES.OBSERVACIONES, - ISNULL(RDX_V_HOJAS_DEVOLUCIONES.CONTABILIZAR, 'S') -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_DEVOLUCIONES] -TO [public] -GO - - --- --- Definition for view RDX_V_CONTROL_DEVOLUCIONES : --- - -CREATE VIEW RDX_V_CONTROL_DEVOLUCIONES AS -SELECT - APROBADO = ISNULL(RDX_DEVOLUCION_AJUSTES.APROBADO, 'N'), - RDX_DEVOLUCION_AJUSTES.FECHACAMBIO, - - RDX_V_DEVOLUCIONES.CENTRO, - RDX_V_DEVOLUCIONES.FILIAL, - RDX_V_DEVOLUCIONES.CODIGO, - RDX_V_DEVOLUCIONES.PRODUCTO, - RDX_V_DEVOLUCIONES.COLOR, - RDX_V_DEVOLUCIONES.FECHA, - - /* HOJA DE MOVIMIENTOS Y ESTADO */ - RDX_V_DEVOLUCIONES.NUMHOJA, - RDX_V_DEVOLUCIONES.ESTADO_HOJA, - RDX_V_DEVOLUCIONES.OBSERVACIONES_HOJA, - RDX_V_DEVOLUCIONES.CONTABILIZAR_HOJA, - - /* CANTIDADES SOLICITADAS DESDE VARELA */ - S38, S40, S42, S44, S46, S48, RDX_V_DEVOLUCIONES.SOLICITADO, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - E38, E40, E42, E44, E46, E48, RDX_V_DEVOLUCIONES.ENVIADO, - - /* CANTIDADES ENVIADAS RECTIFICADAS */ - ER38 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, E38), - ER40 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, E40), - ER42 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, E42), - ER44 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, E44), - ER46 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, E46), - ER48 = ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, E48), - - ENVIADO_RECT = - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)), - - DIFERENCIA = - ( - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT38, ISNULL(E38, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT40, ISNULL(E40, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT42, ISNULL(E42, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT44, ISNULL(E44, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT46, ISNULL(E46, 0)) + - ISNULL(RDX_DEVOLUCION_AJUSTES.CANT48, ISNULL(E48, 0)) - ) - SOLICITADO -FROM - RDX_V_DEVOLUCIONES -LEFT OUTER JOIN RDX_DEVOLUCION_AJUSTES ON - ((RDX_DEVOLUCION_AJUSTES.FECHA = RDX_V_DEVOLUCIONES.FECHA) AND - (RDX_DEVOLUCION_AJUSTES.CENTRO = RDX_V_DEVOLUCIONES.CENTRO) AND - (RDX_DEVOLUCION_AJUSTES.CODIGO = RDX_V_DEVOLUCIONES.CODIGO) AND - (RDX_DEVOLUCION_AJUSTES.COLOR = RDX_V_DEVOLUCIONES.COLOR)) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_CONTROL_DEVOLUCIONES] -TO [public] -GO - - --- --- Definition for view RDX_V_CONTROL_RECEPCION : --- - -CREATE VIEW RDX_V_CONTROL_RECEPCION AS -SELECT - APROBADO = ISNULL(RDX_RECEPCION_AJUSTES.APROBADO, 'N'), - RDX_RECEPCION_AJUSTES.FECHACAMBIO, - - RDX_V_RECEPCION.CENTRO, - RDX_V_RECEPCION.FILIAL, - RDX_V_RECEPCION.CODIGO, - RDX_V_RECEPCION.PRODUCTO, - RDX_V_RECEPCION.COLOR, - RDX_V_RECEPCION.FECHA, - - /* ALBARAN Y ESTADO */ - RDX_V_RECEPCION.ALBARAN, - RDX_V_RECEPCION.ESTADO_ALBARAN, - RDX_V_RECEPCION.OBSERVACIONES_ALBARAN, - RDX_V_RECEPCION.CONTABILIZAR_ALBARAN, - - /* CANTIDADES ENVIADAS DESDE VARELA */ - E38, E40, E42, E44, E46, E48, RDX_V_RECEPCION.ENVIADO, - - /* CANTIDADES RECIBIDAS EN EL CENTRO*/ - R38, R40, R42, R44, R46, R48, RDX_V_RECEPCION.RECIBIDO, - - /* CANTIDADES RECIBIDAS RECTIFICADAS */ - RR38 = ISNULL(RDX_RECEPCION_AJUSTES.CANT38, R38), - RR40 = ISNULL(RDX_RECEPCION_AJUSTES.CANT40, R40), - RR42 = ISNULL(RDX_RECEPCION_AJUSTES.CANT42, R42), - RR44 = ISNULL(RDX_RECEPCION_AJUSTES.CANT44, R44), - RR46 = ISNULL(RDX_RECEPCION_AJUSTES.CANT46, R46), - RR48 = ISNULL(RDX_RECEPCION_AJUSTES.CANT48, R48), - - RECIBIDO_RECT = - ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)), - - DIFERENCIA = - ( - ISNULL(RDX_RECEPCION_AJUSTES.CANT38, ISNULL(R38, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT40, ISNULL(R40, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT42, ISNULL(R42, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT44, ISNULL(R44, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT46, ISNULL(R46, 0)) + - ISNULL(RDX_RECEPCION_AJUSTES.CANT48, ISNULL(R48, 0)) - ) - ENVIADO -FROM - RDX_V_RECEPCION -LEFT OUTER JOIN RDX_RECEPCION_AJUSTES ON - ((RDX_RECEPCION_AJUSTES.FECHA = RDX_V_RECEPCION.FECHA) AND - (RDX_RECEPCION_AJUSTES.CENTRO = RDX_V_RECEPCION.CENTRO) AND - (RDX_RECEPCION_AJUSTES.CODIGO = RDX_V_RECEPCION.CODIGO) AND - (RDX_RECEPCION_AJUSTES.COLOR = RDX_V_RECEPCION.COLOR)) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_CONTROL_RECEPCION] -TO [public] -GO - --- --- Definition for view RDX_V_CONTROL_TRASPASOS : --- - -CREATE VIEW RDX_V_CONTROL_TRASPASOS AS -SELECT - RDX_V_TRASPASOS.TIPO, - RDX_V_TRASPASOS.FECHA, - RDX_V_TRASPASOS.CENTRO, - RDX_V_TRASPASOS.FILIAL, - RDX_V_TRASPASOS.CENTRO2, - RDX_V_TRASPASOS.FILIAL2, - APROBADO = ISNULL(RDX_TRASPASOS_AJUSTES.APROBADO, 'N'), - ESTADO_TRASPASO = RDX_TRASPASOS_AJUSTES.ESTADO, - OBSERVACIONES = RDX_TRASPASOS_AJUSTES.OBSERVACIONES, - CONTABILIZAR = ISNULL(RDX_TRASPASOS_AJUSTES.CONTABILIZAR, 'S'), - RDX_TRASPASOS_AJUSTES.FECHACAMBIO, - RDX_V_TRASPASOS.CODIGO, - RDX_V_TRASPASOS.PRODUCTO, - RDX_V_TRASPASOS.COLOR, - RDX_V_TRASPASOS.T38, - RDX_V_TRASPASOS.T40, - RDX_V_TRASPASOS.T42, - RDX_V_TRASPASOS.T44, - RDX_V_TRASPASOS.T46, - RDX_V_TRASPASOS.T48, - RDX_V_TRASPASOS.TOTAL, - TR38 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), - TR40 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), - TR42 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), - TR44 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), - TR46 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), - TR48 = ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), - TOTAL_RECT = - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT38, RDX_V_TRASPASOS.T38), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT40, RDX_V_TRASPASOS.T40), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT42, RDX_V_TRASPASOS.T42), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT44, RDX_V_TRASPASOS.T44), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT46, RDX_V_TRASPASOS.T46), 0) + - ISNULL(ISNULL(RDX_TRASPASOS_AJUSTES.CANT48, RDX_V_TRASPASOS.T48), 0) -FROM RDX_V_TRASPASOS -LEFT OUTER JOIN RDX_TRASPASOS_AJUSTES ON - ((RDX_TRASPASOS_AJUSTES.CENTRO = RDX_V_TRASPASOS.CENTRO) AND - (RDX_TRASPASOS_AJUSTES.CENTRO2 = RDX_V_TRASPASOS.CENTRO2) AND - (RDX_TRASPASOS_AJUSTES.CODIGO = RDX_V_TRASPASOS.CODIGO) AND - (RDX_TRASPASOS_AJUSTES.COLOR = RDX_V_TRASPASOS.COLOR) AND - (RDX_TRASPASOS_AJUSTES.FECHA = RDX_V_TRASPASOS.FECHA) AND - (RDX_TRASPASOS_AJUSTES.TIPOCANT = RDX_V_TRASPASOS.TIPO)) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_CONTROL_TRASPASOS] -TO [public] -GO - - - - - - - - - - - - --- --- Definition for view RDX_V_TRASPASO_SALIDA : --- - -CREATE VIEW RDX_V_TRASPASO_SALIDA AS -SELECT - CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, - FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, - - CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, - FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, - - CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, - PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, - COLOR = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, - FECHA = RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0) - END), - - TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CANTIDAD, 0)) -FROM - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA -GROUP BY - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CENTRO_DESTINO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FILIAL_DESTINO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.CODIGO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.PRODUCTO, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.COLOR, - RDX_V_INVENTARIOEDI_TRASPASO_SALIDA.FECHA -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_TRASPASO_SALIDA] -TO [public] -GO - - --- --- Definition for view RDX_V_TRASPASO_ENTRADA : --- - -CREATE VIEW RDX_V_TRASPASO_ENTRADA AS -SELECT - CENTRO_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, - FILIAL_ORIGEN = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, - - CENTRO_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, - FILIAL_DESTINO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, - - CODIGO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, - PRODUCTO = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, - COLOR = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, - FECHA = RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA, - - /* CANTIDADES ENVIADAS DESDE EL CENTRO*/ - T38 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 38 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T40 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 40 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T42 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 42 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T44 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 44 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T46 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 46 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - T48 = SUM(CASE WHEN RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.TALLA = 48 THEN - ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0) - END), - - TOTAL = SUM(ISNULL(RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CANTIDAD, 0)) - -FROM - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA -GROUP BY - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO_ORIGEN, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL_ORIGEN, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CENTRO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FILIAL, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.CODIGO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.PRODUCTO, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.COLOR, - RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA.FECHA -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_TRASPASO_ENTRADA] -TO [public] -GO - --- --- Definition for view RDX_V_TRASPASOS : --- - -CREATE VIEW RDX_V_TRASPASOS AS -SELECT - TIPO = 'S', - CENTRO_ORIGEN as CENTRO, - FILIAL_ORIGEN as FILIAL, - CENTRO_DESTINO as CENTRO2, - FILIAL_DESTINO as FILIAL2, - CODIGO, - PRODUCTO, - COLOR, - FECHA, - T38, - T40, - T42, - T44, - T46, - T48, - TOTAL -FROM RDX_V_TRASPASO_SALIDA -UNION -SELECT - 'E', - CENTRO_DESTINO, - FILIAL_DESTINO, - CENTRO_ORIGEN, - FILIAL_ORIGEN, - CODIGO, - PRODUCTO, - COLOR, - FECHA, - T38, - T40, - T42, - T44, - T46, - T48, - TOTAL -FROM RDX_V_TRASPASO_ENTRADA -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_TRASPASOS] -TO [public] -GO - - - - --- --- Definition for view RDX_V_RECEPCION_AJUSTES_DESGLOSADO : --- - -CREATE VIEW RDX_V_RECEPCION_AJUSTES_DESGLOSADO AS -SELECT - RDX_RECEPCION_AJUSTES.FECHA, - RDX_RECEPCION_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_RECEPCION_AJUSTES.CENTRO), - RDX_RECEPCION_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_RECEPCION_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_RECEPCION_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_RECEPCION_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_RECEPCION_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_RECEPCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_RECEPCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_RECEPCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_RECEPCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_RECEPCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_RECEPCION_AJUSTES.CANT48 - END IS NOT NULL -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_RECEPCION_AJUSTES_DESGLOSADO] -TO [public] -GO - - --- --- Definition for view RDX_V_CONTROL_RECEPCION_DESGLOSADO : --- - -CREATE VIEW RDX_V_CONTROL_RECEPCION_DESGLOSADO AS -SELECT - FECHA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), - CENTRO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), - FILIAL = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), - CODIGO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), - PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), - COLOR = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), - TALLA = ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA), - CANTIDAD = SUM(ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI_RECEPCION.CANTIDAD)) -FROM - RDX_V_RECEPCION_AJUSTES_DESGLOSADO -FULL OUTER JOIN RDX_V_INVENTARIOEDI_RECEPCION ON - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI_RECEPCION.FECHA) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI_RECEPCION.CENTRO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI_RECEPCION.CODIGO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI_RECEPCION.COLOR) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI_RECEPCION.TALLA) -GROUP BY - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FECHA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CENTRO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.FILIAL, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.CODIGO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.PRODUCTO, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.COLOR, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR), - ISNULL(RDX_V_INVENTARIOEDI_RECEPCION.TALLA, RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_CONTROL_RECEPCION_DESGLOSADO] -TO [public] -GO - - - - --- --- Definition for view RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO : --- - -CREATE VIEW RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO AS -SELECT - RDX_DEVOLUCION_AJUSTES.FECHA, - RDX_DEVOLUCION_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_DEVOLUCION_AJUSTES.CENTRO), - RDX_DEVOLUCION_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_DEVOLUCION_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_DEVOLUCION_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_DEVOLUCION_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_DEVOLUCION_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_DEVOLUCION_AJUSTES.CANT38 - WHEN '40' THEN RDX_DEVOLUCION_AJUSTES.CANT40 - WHEN '42' THEN RDX_DEVOLUCION_AJUSTES.CANT42 - WHEN '44' THEN RDX_DEVOLUCION_AJUSTES.CANT44 - WHEN '46' THEN RDX_DEVOLUCION_AJUSTES.CANT46 - WHEN '48' THEN RDX_DEVOLUCION_AJUSTES.CANT48 - END IS NOT NULL -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] -TO [public] -GO - --- --- Definition for view RDX_V_INVENTARIO_MAXFECHAS : --- - -CREATE VIEW RDX_V_INVENTARIO_MAXFECHAS AS -SELECT - CENTRO, - FILIAL, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - FECHA = MAX(FECHA) -FROM RDX_V_INVENTARIOEDI -WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 -GROUP BY - CENTRO, - FILIAL, - CODIGO, - PRODUCTO, - COLOR, - TALLA -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIO_MAXFECHAS] -TO [public] -GO - - --- --- Definition for view RDX_V_INVENTARIOEDI_TRASPASO : --- - -CREATE VIEW RDX_V_INVENTARIOEDI_TRASPASO AS -SELECT - NUMDOC, - NUMLIN, - NUMCANT, - TIPOCANT, - FECHA, - CENTRO, - FILIAL, - CODVEN, - VENDEDOR, - CODIGO_BARRA, - CODIGO, - PRODUCTO, - COLOR, - TALLA, - CANTIDAD, - CENTRO2, - FILIAL2 -FROM RDX_V_INVENTARIOEDI -WHERE (TIPOCANT = 46) or (TIPOCANT = 48) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_INVENTARIOEDI_TRASPASO] -TO [public] -GO - - --- --- Definition for view RDX_V_TRASPASOS_AJUSTES_DESGLOSADO : --- - -CREATE VIEW RDX_V_TRASPASOS_AJUSTES_DESGLOSADO AS -SELECT - RDX_TRASPASOS_AJUSTES.FECHA, - RDX_TRASPASOS_AJUSTES.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO), - RDX_TRASPASOS_AJUSTES.CENTRO2, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_TRASPASOS_AJUSTES.CENTRO2), - TIPO = RDX_TRASPASOS_AJUSTES.TIPOCANT, - RDX_TRASPASOS_AJUSTES.CODIGO, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - RDX_TRASPASOS_AJUSTES.COLOR, - RDX_TALLAS.TALLA, - CANTIDAD = CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 - WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 - WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 - WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 - WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 - WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 - END -FROM RDX_TALLAS, RDX_TRASPASOS_AJUSTES -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN RDX_FILIALES AS RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_TRASPASOS_AJUSTES.CENTRO2) -LEFT OUTER JOIN FILIAIS AS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = RDX_TRASPASOS_AJUSTES.CODIGO) -WHERE CASE RDX_TALLAS.TALLA - WHEN '38' THEN RDX_TRASPASOS_AJUSTES.CANT38 - WHEN '40' THEN RDX_TRASPASOS_AJUSTES.CANT40 - WHEN '42' THEN RDX_TRASPASOS_AJUSTES.CANT42 - WHEN '44' THEN RDX_TRASPASOS_AJUSTES.CANT44 - WHEN '46' THEN RDX_TRASPASOS_AJUSTES.CANT46 - WHEN '48' THEN RDX_TRASPASOS_AJUSTES.CANT48 - END IS NOT NULL -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] -TO [public] -GO - --- --- Definition for view RDX_V_ULTIMO_RECUENTOINVENTARIO : --- - -CREATE VIEW RDX_V_ULTIMO_RECUENTOINVENTARIO AS -SELECT - RDX_V_INVENTARIOEDI.FECHA, - RDX_V_INVENTARIOEDI.CENTRO, - RDX_V_INVENTARIOEDI.FILIAL, - RDX_V_INVENTARIOEDI.CODIGO, - RDX_V_INVENTARIOEDI.PRODUCTO, - RDX_V_INVENTARIOEDI.COLOR, - RDX_V_INVENTARIOEDI.TALLA, - RDX_V_INVENTARIOEDI.CANTIDAD -FROM RDX_V_INVENTARIOEDI -INNER JOIN RDX_V_INVENTARIO_MAXFECHAS ON - (RDX_V_INVENTARIOEDI.FECHA = RDX_V_INVENTARIO_MAXFECHAS.FECHA AND - RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIO_MAXFECHAS.CENTRO AND - RDX_V_INVENTARIOEDI.CODIGO = RDX_V_INVENTARIO_MAXFECHAS.CODIGO AND - RDX_V_INVENTARIOEDI.COLOR = RDX_V_INVENTARIO_MAXFECHAS.COLOR AND - RDX_V_INVENTARIOEDI.TALLA = RDX_V_INVENTARIO_MAXFECHAS.TALLA) -WHERE RDX_V_INVENTARIOEDI.TIPOCANT = 145 -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_ULTIMO_RECUENTOINVENTARIO] -TO [public] -GO - diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql deleted file mode 100644 index 04deb77..0000000 --- a/Varela/Varela/Database/ANTERIOR/Script Vistas STOCK.sql +++ /dev/null @@ -1,431 +0,0 @@ --- --- Definition for view RDX_V_STOCK_VARELA : --- - -CREATE VIEW RDX_V_STOCK_VARELA AS -SELECT ESTOQUE_PRODUTOS.FILIAL, - ESTOQUE_PRODUTOS.PRODUTO AS CODIGO, - ESTOQUE_PRODUTOS.COR_PRODUTO AS COLOR, - PRODUCTO = PRODUTOS.DESC_PRODUTO, - PRODUTOS.TIPO_PRODUTO, - PRODUTOS.GRUPO_PRODUTO, - COLECCION=COLECOES.DESC_COLECAO, - - ESTOQUE_PRODUTOS.ES1 as K38, - ESTOQUE_PRODUTOS.ES2 as K40, - ESTOQUE_PRODUTOS.ES3 as K42, - ESTOQUE_PRODUTOS.ES4 as K44, - ESTOQUE_PRODUTOS.ES5 as K46, - ESTOQUE_PRODUTOS.ES6 as K48, - ESTOQUE_PRODUTOS.ESTOQUE as KT - -FROM ESTOQUE_PRODUTOS -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = ESTOQUE_PRODUTOS.PRODUTO) -LEFT OUTER JOIN COLECOES ON (PRODUTOS.COLECAO = COLECOES.COLECAO) - -WHERE FILIAL LIKE '%VARELA IMAGEN Y DISEÑO%' -GO - - - --- --- Definition for view RDX_V_STOCK_VENTAS : --- - -CREATE VIEW RDX_V_STOCK_VENTAS AS -SELECT - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - FILIAL AS CENTRO, - CODIGO = ISNULL(PRODUTO, '107CH.EN.01'), - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - DESC_COLECAO AS COLECCION, - COLOR = ISNULL(COR_PRODUTO, '300'), - GRADE AS TALLA, - CANTIDAD = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -GO - - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_STOCK_VENTAS] -TO [public] -GO - - --- --- Definition for view RDX_V_STOCK_INVENTARIO : --- - -CREATE VIEW RDX_V_STOCK_INVENTARIO AS -SELECT - FECHA = ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))), - CENTRO = ISNULL(RDX_V_INVENTARIOEDI.FILIAL, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FILIAL, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FILIAL, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FILIAL))), - CODIGO = ISNULL(RDX_V_INVENTARIOEDI.CODIGO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO))), - PRODUCTO = ISNULL(RDX_V_INVENTARIOEDI.PRODUCTO, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.PRODUCTO, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.PRODUCTO, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.PRODUCTO))), - COLOR = ISNULL(RDX_V_INVENTARIOEDI.COLOR, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR))), - TALLA = ISNULL(RDX_V_INVENTARIOEDI.TALLA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA))), - CANTIDAD = ISNULL(RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, RDX_V_INVENTARIOEDI.CANTIDAD))), - /*RDX_V_INVENTARIOEDI.CANTIDAD, - RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD, - RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CANTIDAD, - RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD,*/ - OPERACION = CASE RDX_V_INVENTARIOEDI.TIPOCANT - WHEN '194' THEN 'R' - WHEN '46' THEN 'E' - WHEN '145' THEN 'RM' - WHEN '48' THEN 'S' - WHEN '61' THEN 'D' - WHEN '65' THEN 'T' - ELSE - CASE - WHEN RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'R' - WHEN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CANTIDAD IS NOT NULL THEN 'D' - ELSE RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO - END - END -FROM RDX_V_INVENTARIOEDI -FULL OUTER JOIN RDX_V_INVENTARIO_MAXFECHAS ON - (RDX_V_INVENTARIO_MAXFECHAS.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_INVENTARIO_MAXFECHAS.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_INVENTARIO_MAXFECHAS.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_INVENTARIO_MAXFECHAS.TALLA = RDX_V_INVENTARIOEDI.TALLA) -FULL OUTER JOIN RDX_V_RECEPCION_AJUSTES_DESGLOSADO ON - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) -FULL OUTER JOIN RDX_V_TRASPASOS_AJUSTES_DESGLOSADO ON - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CENTRO2 = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) AND - (RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.TIPO = RDX_V_INVENTARIOEDI.TIPOCANT) -FULL OUTER JOIN RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO ON - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CENTRO = RDX_V_INVENTARIOEDI.CENTRO) AND - (RDX_V_INVENTARIOEDI.CENTRO = RDX_V_INVENTARIOEDI.CENTRO2) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.CODIGO = RDX_V_INVENTARIOEDI.CODIGO) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.COLOR = RDX_V_INVENTARIOEDI.COLOR) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.TALLA = RDX_V_INVENTARIOEDI.TALLA) AND - (RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA = RDX_V_INVENTARIOEDI.FECHA) -WHERE - ((RDX_V_INVENTARIO_MAXFECHAS.FECHA IS NULL) /* Puede haber prendas que no se hayan inventariado nunca */ - OR - (ISNULL(RDX_V_INVENTARIOEDI.FECHA, ISNULL(RDX_V_RECEPCION_AJUSTES_DESGLOSADO.FECHA, ISNULL(RDX_V_TRASPASOS_AJUSTES_DESGLOSADO.FECHA, RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO.FECHA))) >= RDX_V_INVENTARIO_MAXFECHAS.FECHA)) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_STOCK_INVENTARIO] -TO [public] -GO - - --- --- Definition for view RDX_V_STOCK : --- - -CREATE VIEW RDX_V_STOCK AS -SELECT - CENTRO = ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), - CODIGO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), - PRODUCTO = ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), - TIPO_PRODUCTO = PRODUTOS.TIPO_PRODUTO, - GRUPO_PRODUCTO = PRODUTOS.GRUPO_PRODUTO, - COLECCION = COLECOES.DESC_COLECAO, - COLOR = ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR), - E38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '38' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '40' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '42' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '44' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '46' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - E48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '48' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'RM' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'R' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - WHEN 'E' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) > 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S38 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '38' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S40 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '40' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S42 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '42' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S44 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '44' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S46 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '46' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END), - - S48 = SUM(CASE ISNULL(RDX_V_STOCK_INVENTARIO.TALLA, RDX_V_STOCK_VENTAS.TALLA) - WHEN '48' THEN - CASE RDX_V_STOCK_INVENTARIO.OPERACION - WHEN 'D' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'S' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - WHEN 'T' THEN RDX_V_STOCK_INVENTARIO.CANTIDAD * (-1) - ELSE - 0 - END - + - CASE - WHEN ((RDX_V_STOCK_VENTAS.CANTIDAD * (-1)) < 0) THEN - RDX_V_STOCK_VENTAS.CANTIDAD * (-1) - ELSE - 0 - END - END) -FROM - RDX_V_STOCK_INVENTARIO -FULL OUTER JOIN RDX_V_STOCK_VENTAS ON - (RDX_V_STOCK_INVENTARIO.CENTRO = RDX_V_STOCK_VENTAS.CENTRO) - AND (RDX_V_STOCK_INVENTARIO.CODIGO = RDX_V_STOCK_VENTAS.CODIGO) - AND (RDX_V_STOCK_INVENTARIO.COLOR = RDX_V_STOCK_VENTAS.COLOR) - AND (RDX_V_STOCK_INVENTARIO.TALLA = RDX_V_STOCK_VENTAS.TALLA) - AND (RDX_V_STOCK_INVENTARIO.FECHA = RDX_V_STOCK_VENTAS.FECHA) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO)) -LEFT OUTER JOIN COLECOES ON - (COLECOES.COLECAO = PRODUTOS.COLECAO) - -GROUP BY - ISNULL(RDX_V_STOCK_INVENTARIO.CENTRO, RDX_V_STOCK_VENTAS.CENTRO), - ISNULL(RDX_V_STOCK_INVENTARIO.CODIGO, RDX_V_STOCK_VENTAS.CODIGO), - ISNULL(RDX_V_STOCK_INVENTARIO.PRODUCTO, RDX_V_STOCK_VENTAS.PRODUCTO), - PRODUTOS.TIPO_PRODUTO, - PRODUTOS.GRUPO_PRODUTO, - COLECOES.DESC_COLECAO, - ISNULL(RDX_V_STOCK_INVENTARIO.COLOR, RDX_V_STOCK_VENTAS.COLOR) -GO - --- --- Definition for view RDX_V_STOCK_CALCULADO : --- - -CREATE VIEW RDX_V_STOCK_CALCULADO AS -SELECT - CENTRO, - CODIGO, - PRODUCTO, - TIPO_PRODUCTO, - GRUPO_PRODUCTO, - COLECCION, - COLOR, - E38, - E40, - E42, - E44, - E46, - E48, - TE = ISNULL(E38, 0) + ISNULL(E40, 0) + ISNULL(E42, 0) + ISNULL(E44, 0) + ISNULL(E46, 0) + ISNULL(E48, 0), - S38, - S40, - S42, - S44, - S46, - S48, - TS = ISNULL(S38, 0) + ISNULL(S40, 0) + ISNULL(S42, 0) + ISNULL(S44, 0) + ISNULL(S46, 0) + ISNULL(S48, 0), - K38 = ISNULL(E38, 0) + ISNULL(S38, 0), - K40 = ISNULL(E40, 0) + ISNULL(S40, 0), - K42 = ISNULL(E42, 0) + ISNULL(S42, 0), - K44 = ISNULL(E44, 0) + ISNULL(S44, 0), - K46 = ISNULL(E46, 0) + ISNULL(S46, 0), - K48 = ISNULL(E48, 0) + ISNULL(S48, 0), - KT = ISNULL(E38, 0) + ISNULL(S38, 0) + ISNULL(E40, 0) + ISNULL(S40, 0) + - ISNULL(E42, 0) + ISNULL(S42, 0) + ISNULL(E44, 0) + ISNULL(S44, 0) + - ISNULL(E46, 0) + ISNULL(S46, 0) + ISNULL(E48, 0) + ISNULL(S48, 0) - -FROM RDX_V_STOCK -GO - - - - - - - - diff --git a/Varela/Varela/Database/ANTERIOR/Script Vistas.sql b/Varela/Varela/Database/ANTERIOR/Script Vistas.sql deleted file mode 100644 index 70c2461..0000000 --- a/Varela/Varela/Database/ANTERIOR/Script Vistas.sql +++ /dev/null @@ -1,302 +0,0 @@ --- --- Definition for view RDX_V_VENTASEDI : --- - -CREATE VIEW RDX_V_VENTASEDI -AS -SELECT - RDX_CABVEN.NUMINF, - RDX_ARTVEN.CLAVE1, - RDX_ARTVEN.CLAVE2, - RDX_ARTVEN.CLAVE3, - RDX_LUGVEN.PERVENINI, - RDX_ARTVEN.NUMTALON, - RDX_LUGVEN.EANLUG, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), - RDX_ARTVEN.EANVEN, - LOJA_VENDEDORES.VENDEDOR AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), - RDX_ARTVEN.EANART, - RDX_ARTVEN.CODCOM, - produtos.PRODUTO, - ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO, - PRODUTOS_BARRA.GRADE, - produtos.TIPO_PRODUTO, - produtos.GRUPO_PRODUTO, - COLECOES.DESC_COLECAO, - RDX_ARTVEN.VALVEN, - RDX_ARTVEN.CANVEN, - RDX_ARTVEN.CANDEV, - RDX_ARTVEN.CANVENNET, - RDX_ARTVEN.CANESP -FROM - RDX_ARTVEN - INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) - INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) - left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) - left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) - LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) - LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASEDI] -TO [public] -GO - --- --- Definition for view RDX_V_REFERENCIAS_RESUELTAS : --- - -CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS -AS -SELECT * -FROM RDX_REFERENCIA_GENERICA -WHERE ESTADO = 'R' -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_REFERENCIAS_RESUELTAS] -TO [public] -GO - - --- --- Definition for view RDX_V_VENTASEDI_RESUELTAS : --- - -CREATE VIEW RDX_V_VENTASEDI_RESUELTAS -AS -SELECT - RDX_V_VENTASEDI.NUMINF, - RDX_V_VENTASEDI.CLAVE1, - RDX_V_VENTASEDI.CLAVE2, - RDX_V_VENTASEDI.CLAVE3, - RDX_V_VENTASEDI.PERVENINI, - RDX_V_VENTASEDI.NUMTALON, - RDX_V_VENTASEDI.EANLUG, - RDX_V_VENTASEDI.FILIAL, - RDX_V_VENTASEDI.EANVEN, - RDX_V_VENTASEDI.CODVEN, - RDX_V_VENTASEDI.VENDEDOR, - EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART), - RDX_V_VENTASEDI.CODCOM, - PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO), - DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO), - COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO), - GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE), - TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO), - GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO), - DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO), - RDX_V_VENTASEDI.VALVEN, - RDX_V_VENTASEDI.CANVEN, - RDX_V_VENTASEDI.CANDEV, - RDX_V_VENTASEDI.CANVENNET, - RDX_V_VENTASEDI.CANESP -FROM RDX_V_VENTASEDI -LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON ( - (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND - (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3)) -LEFT JOIN PRODUTOS_BARRA ON ( - (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART))) -LEFT JOIN PRODUTOS ON ( - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)) -LEFT JOIN COLECOES ON ( - (COLECOES.COLECAO = PRODUTOS.COLECAO)) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASEDI_RESUELTAS] -TO [public] -GO - - --- --- Definition for view RDX_V_VENTASEDI_ERRONEAS : --- - -CREATE VIEW RDX_V_VENTASEDI_ERRONEAS -AS -SELECT -* -FROM - RDX_V_VENTASEDI -WHERE PRODUTO = '107CH.EN.01' -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASEDI_ERRONEAS] -TO [public] -GO - --- --- Definition for view RDX_V_VENTASTERMINADAS : --- - -CREATE VIEW RDX_V_VENTASTERMINADAS -AS -SELECT - NUMINF, - CLAVE1, - CLAVE2, - CLAVE3, - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - FILIAL AS CENTRO, - VENDEDOR, - NUMTALON, - PRODUTO AS CODIGO, - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - DESC_COLECAO AS COLECCION, - COR_PRODUTO AS COLOR, - GRADE AS TALLA, - TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END, - VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END + - CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END, - - DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END + - CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END, - - TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0), - VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END, - VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END, - VALTOT = VALVEN -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -AND (CANESP IS NULL OR CANESP = 0) /* QUITAR INICIO V.PROCESO */ -AND (VALVEN IS NOT NULL) /* QUITAR CAMBIO DE TALLA */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASTERMINADAS] -TO [public] -GO - - --- --- Definition for view RDX_V_VENTASPROCESO : --- - -CREATE VIEW RDX_V_VENTASPROCESO AS -SELECT - NUMINF, - CLAVE1, - CLAVE2, - CLAVE3, - PERVENINI AS FECHA, - DAY(PERVENINI) AS DIA, - DATENAME(DW, PERVENINI) DIASEMANA, - DATENAME(MONTH, PERVENINI) AS MES, - YEAR(PERVENINI) AS ANO, - FILIAL AS CENTRO, - VENDEDOR, - NUMTALON, - PRODUTO AS CODIGO, - DESC_PRODUTO AS PRODUCTO, - GRUPO_PRODUTO AS GRUPOPRODUCTO, - TIPO_PRODUTO AS TIPOPRODUCTO, - DESC_COLECAO AS COLECCION, - COR_PRODUTO AS COLOR, - GRADE AS TALLA, - CANESP AS INICIO, - CANVENNET AS FINAL, - VALVEN AS IMPORTE -FROM - RDX_V_VENTASEDI_RESUELTAS -WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL)) -AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0))) /* QUITAR COMPOSTURAS */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASPROCESO] -TO [public] -GO - - --- --- Definition for view RDX_V_VENTASPROCESOPENDIENTES : --- - -CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS -SELECT NUMTALON, - CODIGO, - COLOR, - TALLA, - SUM(ISNULL(INICIO, 0)) AS INICIO, - SUM(ABS(ISNULL(FINAL, 0))) AS FINAL -FROM RDX_V_VENTASPROCESO -GROUP BY NUMTALON, CODIGO, COLOR, TALLA -HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND - (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0))))) -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_VENTASPROCESOPENDIENTES] -TO [public] -GO - - - ---------------- SQL --------------- - --- --- Definition for view RDX_V_REFERENCIA_GENERICA : --- - -CREATE VIEW RDX_V_REFERENCIA_GENERICA -AS -SELECT DISTINCT - VENTAS.NUMINF, - VENTAS.CLAVE1, - VENTAS.CLAVE2, - VENTAS.CLAVE3, - VENTAS.PERVENINI AS FECHA, - VENTAS.EANLUG AS CODCENTRO, - VENTAS.FILIAL AS CENTRO, - VENTAS.EANVEN AS CODVENDEDOR, - VENTAS.VENDEDOR, - VENTAS.NUMTALON, - CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART), - CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO), - TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE), - VENTAS.CANESP AS VTAPROCESO, - VENTAS.CANVENNET AS VTAFINAL, - VTATERM = VENTAS.CANVEN, - VALTOT = VENTAS.VALVEN, - REF.ESTADO, - REF.FECHACAMBIO -FROM RDX_V_VENTASEDI_ERRONEAS VENTAS -LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON - (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND - REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3) -LEFT OUTER JOIN PRODUTOS_BARRA on - (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA) -LEFT OUTER JOIN PRODUTOS ON - (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */ -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_V_REFERENCIA_GENERICA] -TO [public] -GO - - diff --git a/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL b/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL deleted file mode 100644 index 769a8be..0000000 --- a/Varela/Varela/Database/SCRIPT MEJORAS TABLAS.SQL +++ /dev/null @@ -1,473 +0,0 @@ -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_LUGVE__CLAVE__4A59F0B5]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) - ALTER TABLE [RDX_LUGVEN] - DROP CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] -GO - --- --- Dropping foreign key FK__RDX_ARTVEN__56BFC79A : --- - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FK__RDX_ARTVEN__56BFC79A]') AND OBJECTPROPERTY(id, N'IsForeignKey') = 1) - ALTER TABLE [dbo].[RDX_ARTVEN] - DROP CONSTRAINT [FK__RDX_ARTVEN__56BFC79A] -GO - -ALTER TABLE [RDX_CABINV] -ADD [CARGADO]char(1) NULL -GO - -ALTER TABLE [RDX_CABVEN] -ADD [CARGADO]char(1) NULL -GO - - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[RDX_INVENTARIOEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_INVENTARIOEDI] -GO - -CREATE TABLE [RDX_INVENTARIOEDI] ( - [NUMDOC] varchar(25) NOT NULL, - [NUMLIN] numeric(6, 0) NOT NULL, - [NUMCANT] numeric(6, 0) NOT NULL, - [TIPOCANT] varchar(3) NULL, - [FECHA] datetime NULL, - [CENTRO] varchar(17) NULL, - [FILIAL] varchar(25) NULL, - [CODVEN] varchar(10) NULL, - [VENDEDOR] varchar(66) NULL, - [CODIGO_BARRA] varchar(17) NULL, - [CODIGO] varchar(12) NULL, - [PRODUCTO] varchar(40) NULL, - [COLOR] varchar(10) NULL, - [TALLA] varchar(8) NULL, - [CANTIDAD] numeric(15, 0) NULL, - [CENTRO2] varchar(17) NULL, - [FILIAL2] varchar(25) NULL, - [ULTIMO_INVENTARIO] char(1) NULL, - [IGNORAR] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_INVENTARIOEDI] -ADD CONSTRAINT [RDX_INVENTARIOEDI_pk] -PRIMARY KEY CLUSTERED ([NUMDOC], [NUMLIN], [NUMCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx] ON [RDX_INVENTARIOEDI] - ([TIPOCANT]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx2] ON [RDX_INVENTARIOEDI] - ([FECHA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx3] ON [RDX_INVENTARIOEDI] - ([CENTRO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx4] ON [RDX_INVENTARIOEDI] - ([CODVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx5] ON [RDX_INVENTARIOEDI] - ([CODIGO_BARRA]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx6] ON [RDX_INVENTARIOEDI] - ([CODIGO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx7] ON [RDX_INVENTARIOEDI] - ([CENTRO2]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx8] ON [RDX_INVENTARIOEDI] - ([ULTIMO_INVENTARIO]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_INVENTARIOEDI_idx9] ON [RDX_INVENTARIOEDI] - ([CENTRO], [CODIGO], [COLOR], [TALLA]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_INVENTARIOEDI] -TO [public] -GO - -/*--------------- SQL ---------------*/ - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_VENTASEDI]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) - DROP TABLE [RDX_VENTASEDI] -GO - -CREATE TABLE [RDX_VENTASEDI] ( - [NUMINF] varchar(35) NOT NULL, - [CLAVE1] numeric(10, 0) NOT NULL, - [CLAVE2] numeric(5, 0) NOT NULL, - [CLAVE3] numeric(5, 0) NOT NULL, - [PERVENINI] datetime NULL, - [NUMTALON] varchar(35) NULL, - [EANLUG] varchar(17) NULL, - [FILIAL] varchar(25) NULL, - [EANVEN] varchar(17) NULL, - [CODVEN] varchar(4) NULL, - [VENDEDOR] varchar(66) NULL, - [EANART] varchar(17) NULL, - [CODCOM] varchar(35) NULL, - [PRODUTO] varchar(12) NULL, - [DESC_PRODUTO] varchar(40) NULL, - [COR_PRODUTO] varchar(10) NULL, - [GRADE] varchar(8) NULL, - [TIPO_PRODUTO] varchar(25) NULL, - [GRUPO_PRODUTO] varchar(25) NULL, - [DESC_COLECAO] varchar(40) NULL, - [VALVEN] numeric(15, 3) NULL, - [CANVEN] numeric(15, 3) NULL, - [CANDEV] numeric(15, 3) NULL, - [CANVENNET] numeric(15, 3) NULL, - [CANESP] numeric(15, 3) NULL, - [IGNORAR] char(1) NULL -) -ON [PRIMARY] -GO - -ALTER TABLE [RDX_VENTASEDI] -ADD CONSTRAINT [RDX_VENTASEDI_pk] -PRIMARY KEY CLUSTERED ([NUMINF], [CLAVE1], [CLAVE2], [CLAVE3]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx] ON [RDX_VENTASEDI] - ([PERVENINI]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx2] ON [RDX_VENTASEDI] - ([NUMTALON]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx3] ON [RDX_VENTASEDI] - ([EANVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx4] ON [RDX_VENTASEDI] - ([CODVEN]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx5] ON [RDX_VENTASEDI] - ([EANART]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx6] ON [RDX_VENTASEDI] - ([CODCOM]) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_VENTASEDI_idx7] ON [RDX_VENTASEDI] - ([PRODUTO]) -ON [PRIMARY] -GO - -GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE -ON [RDX_VENTASEDI] -TO [public] -GO - - - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI -AS -BEGIN - INSERT INTO RDX_INVENTARIOEDI ( - NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN, - VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD, - CENTRO2, FILIAL2, IGNORAR ) - SELECT - RDX_CANTINV.NUMDOC, - RDX_CANTINV.NUMLIN, - RDX_CANTINV.NUMCANT, - RDX_CANTINV.TIPOCANT, - RDX_CABINV.FECHALIQ AS FECHA, - RDX_CABINV.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), - RDX_CANTINV.IDVEN AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), - RDX_LININV.CODART AS CODIGO_BARRA, - CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), - TALLA = PRODUTOS_BARRA.GRADE, - RDX_CANTINV.CANTIDAD, - CENTRO2 = RDX_CANTINV.CENTRO, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO), - RDX_CABINV.IGNORAR - FROM RDX_CANTINV - INNER JOIN RDX_LININV ON - ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND - (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) - INNER JOIN RDX_CABINV ON - (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) - LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) - LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) - LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) - LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) - WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ - AND RDX_CABINV.CARGADO IS NULL - - UPDATE RDX_CABINV SET - CARGADO = 1 - WHERE CARGADO IS NULL -END -go - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI -AS -BEGIN - INSERT INTO RDX_VENTASEDI ( - NUMINF, CLAVE1, CLAVE2, CLAVE3, PERVENINI, NUMTALON, EANLUG, - FILIAL, EANVEN, CODVEN, VENDEDOR, EANART, CODCOM, PRODUTO, - DESC_PRODUTO, COR_PRODUTO, GRADE, TIPO_PRODUTO, GRUPO_PRODUTO, - DESC_COLECAO, VALVEN, CANVEN, CANDEV, CANVENNET, CANESP ) - SELECT - RDX_CABVEN.NUMINF, - RDX_ARTVEN.CLAVE1, - RDX_ARTVEN.CLAVE2, - RDX_ARTVEN.CLAVE3, - RDX_LUGVEN.PERVENINI, - RDX_ARTVEN.NUMTALON, - RDX_LUGVEN.EANLUG, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG), - RDX_ARTVEN.EANVEN, - LOJA_VENDEDORES.VENDEDOR AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN), - RDX_ARTVEN.EANART, - RDX_ARTVEN.CODCOM, - produtos.PRODUTO, - ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI') AS DESC_PRODUTO, - PRODUTOS_BARRA.COR_PRODUTO, - PRODUTOS_BARRA.GRADE, - produtos.TIPO_PRODUTO, - produtos.GRUPO_PRODUTO, - COLECOES.DESC_COLECAO, - RDX_ARTVEN.VALVEN, - RDX_ARTVEN.CANVEN, - RDX_ARTVEN.CANDEV, - RDX_ARTVEN.CANVENNET, - RDX_ARTVEN.CANESP - FROM - RDX_ARTVEN - INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2) - INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1) - left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG) - left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) - LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%') - LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM)) - LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO) - LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO) - WHERE RDX_CABVEN.CARGADO IS NULL - - - UPDATE RDX_CABVEN SET - CARGADO = 1 - WHERE CARGADO IS NULL -END -go - -/*--------------- SQL ---------------*/ - -CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO -AS -BEGIN - DECLARE @CENTRO VARCHAR(17), - @CODIGO VARCHAR(12), - @COLOR VARCHAR(10), - @TALLA VARCHAR(8), - @FECHA DATETIME, - @UPDATECMD VARCHAR(255) - - DECLARE ASD CURSOR FOR - SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA - FROM RDX_V_INVENTARIO_MAXFECHAS - OPEN ASD - FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA - - IF @@ROWCOUNT >= 0 - BEGIN - WHILE @@FETCH_STATUS = 0 - BEGIN - UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL - WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA - - UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1 - WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145 - - FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA - END - END - CLOSE ASD - DEALLOCATE ASD -END -go - - -/* borrar vistas */ - - -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES]')) -DROP VIEW [dbo].[RDX_V_ALBARANES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_DEVOLUCIONES]')) -DROP VIEW [dbo].[RDX_V_HOJAS_DEVOLUCIONES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_HOJAS_TRASPASOS]')) -DROP VIEW [dbo].[RDX_V_HOJAS_TRASPASOS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCIONES]')) -DROP VIEW [dbo].[RDX_V_DEVOLUCIONES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_DEVOLUCIONES]')) -DROP VIEW [dbo].[RDX_V_CONTROL_DEVOLUCIONES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_TRASPASOS]')) -DROP VIEW [dbo].[RDX_V_CONTROL_TRASPASOS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VARELA]')) -DROP VIEW [dbo].[RDX_V_STOCK_VARELA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK]')) -DROP VIEW [dbo].[RDX_V_STOCK] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES]')) -DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION_ALBARANES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_INVENTARIO]')) -DROP VIEW [dbo].[RDX_V_CONTROL_INVENTARIO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASTERMINADAS]')) -DROP VIEW [dbo].[RDX_V_VENTASTERMINADAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESO]')) -DROP VIEW [dbo].[RDX_V_VENTASPROCESO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASPROCESOPENDIENTES]')) -DROP VIEW [dbo].[RDX_V_VENTASPROCESOPENDIENTES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI]')) -DROP VIEW [dbo].[RDX_V_VENTASEDI] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIA_GENERICA]')) -DROP VIEW [dbo].[RDX_V_REFERENCIA_GENERICA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_DEVOLUCION_Y_TARA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS]')) -DROP VIEW [dbo].[RDX_V_TRASPASOS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_VENTAS]')) -DROP VIEW [dbo].[RDX_V_STOCK_VENTAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_INVENTARIO]')) -DROP VIEW [dbo].[RDX_V_STOCK_INVENTARIO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ALBARANES_PENDIENTES]')) -DROP VIEW [dbo].[RDX_V_ALBARANES_PENDIENTES] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_ULTIMO_INVENTARIO]')) -DROP VIEW [dbo].[RDX_V_ULTIMO_INVENTARIO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_STOCK]')) -DROP VIEW [dbo].[RDX_V_INVENTARIO_STOCK] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_ERRONEAS]')) -DROP VIEW [dbo].[RDX_V_VENTASEDI_ERRONEAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_ENTRADA]')) -DROP VIEW [dbo].[RDX_V_TRASPASO_ENTRADA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASO_SALIDA]')) -DROP VIEW [dbo].[RDX_V_TRASPASO_SALIDA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_RECEPCION_AJUSTES_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_RESUELTAS]')) -DROP VIEW [dbo].[RDX_V_VENTASEDI_RESUELTAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_TRASPASOS_AJUSTES_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO]')) -DROP VIEW [dbo].[RDX_V_DEVOLUCION_AJUSTES_DESGLOSADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_CONTROL_RECEPCION]')) -DROP VIEW [dbo].[RDX_V_CONTROL_RECEPCION] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIO_MAXFECHAS]')) -DROP VIEW [dbo].[RDX_V_INVENTARIO_MAXFECHAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_STOCK_CALCULADO]')) -DROP VIEW [dbo].[RDX_V_STOCK_CALCULADO] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_ENTRADA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_TRASPASO_SALIDA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_RECEPCION]')) -DROP VIEW [dbo].[RDX_V_RECEPCION] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_REFERENCIAS_RESUELTAS]')) -DROP VIEW [dbo].[RDX_V_REFERENCIAS_RESUELTAS] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_RECEPCION]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_RECEPCION] -go -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_INVENTARIOEDI_PESADA]')) -DROP VIEW [dbo].[RDX_V_INVENTARIOEDI_PESADA] -GO -IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RDX_V_VENTASEDI_PESADA]')) -DROP VIEW [dbo].[RDX_V_VENTASEDI_PESADA] -GO - - diff --git a/Varela/Varela/Database/__Script mejoras.sql b/Varela/Varela/Database/__Script mejoras.sql deleted file mode 100644 index 21f90d7..0000000 --- a/Varela/Varela/Database/__Script mejoras.sql +++ /dev/null @@ -1,434 +0,0 @@ -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx3] ON [dbo].[RDX_REFERENCIA_GENERICA] - ([ESTADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx] ON [dbo].[RDX_FILIALES] - ([CODBARRA]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - - -CREATE NONCLUSTERED INDEX [RDX_FILIALES_idx2] ON [dbo].[RDX_FILIALES] - ([CODFILIAL]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [FILIAIS_idx] ON [dbo].[FILIAIS] - ([COD_FILIAL]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [LOJA_VENDEDORES_idx] ON [dbo].[LOJA_VENDEDORES] - ([RG]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_CANTINV_idx3] ON [dbo].[RDX_CANTINV] - ([TIPOCANT]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - - -CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx] ON [dbo].[RDX_AJUSTES_ALBARAN] - ([ESTADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_AJUSTES_ALBARAN_idx2] ON [dbo].[RDX_AJUSTES_ALBARAN] - ([CONTABILIZAR]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [FATURAMENTO_TIPO_idx] ON [dbo].[FATURAMENTO_TIPO] - ([INDICADOR_TIPO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_TALLAS_idx] ON [dbo].[RDX_TALLAS] - ([TALLA]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx] ON [dbo].[RDX_TRASPASOS_AJUSTES] - ([APROBADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx2] ON [dbo].[RDX_TRASPASOS_AJUSTES] - ([ESTADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - - -CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx] ON [dbo].[RDX_DEVOLUCION_AJUSTES] - ([APROBADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_DEVOLUCION_AJUSTES_idx2] ON [dbo].[RDX_DEVOLUCION_AJUSTES] - ([FECHACAMBIO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [PRODUTOS_idx] ON [dbo].[PRODUTOS] - ([DESC_PRODUTO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx] ON [dbo].[RDX_ARTVEN] - ([EANART]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx2] ON [dbo].[RDX_ARTVEN] - ([CODCOM]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx4] ON [dbo].[RDX_ARTVEN] - ([NUMTALON]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_ARTVEN_idx5] ON [dbo].[RDX_ARTVEN] - ([EANVEN]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx] ON [dbo].[RDX_CABVEN] - ([NUMINF]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_CABVEN_idx2] ON [dbo].[RDX_CABVEN] - ([IGNORAR]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_INFORMES_idx] ON [dbo].[RDX_INFORMES] - ([CATEGORIA]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_LUGVEN_idx] ON [dbo].[RDX_LUGVEN] - ([EANLUG]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx] ON [dbo].[RDX_RECEPCION_AJUSTES] - ([FECHACAMBIO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_RECEPCION_AJUSTES_idx2] ON [dbo].[RDX_RECEPCION_AJUSTES] - ([APROBADO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -ON [PRIMARY] -GO - -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx] ON [dbo].[RDX_REFERENCIA_GENERICA] - ([FECHACAMBIO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_REFERENCIA_GENERICA_idx2] ON [dbo].[RDX_REFERENCIA_GENERICA] - ([CODIGO_BARRA]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -GO - -CREATE NONCLUSTERED INDEX [RDX_TRASPASOS_AJUSTES_idx3] ON [dbo].[RDX_TRASPASOS_AJUSTES] - ([FECHACAMBIO]) -WITH ( - PAD_INDEX = OFF, - DROP_EXISTING = OFF, - STATISTICS_NORECOMPUTE = OFF, - SORT_IN_TEMPDB = OFF, - ONLINE = OFF, - ALLOW_ROW_LOCKS = ON, - ALLOW_PAGE_LOCKS = ON) -ON [PRIMARY] -GO - - - - - - - - - - - - - - -CREATE VIEW RDX_V_INVENTARIOEDI AS -SELECT - RDX_CANTINV.NUMDOC, - RDX_CANTINV.NUMLIN, - RDX_CANTINV.NUMCANT, - RDX_CANTINV.TIPOCANT, - RDX_CABINV.FECHALIQ AS FECHA, - RDX_CABINV.CENTRO, - FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO), - RDX_CANTINV.IDVEN AS CODVEN, - VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN), - RDX_LININV.CODART AS CODIGO_BARRA, - CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'), - PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA **** LLAMAR AL CI'), - COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300), - TALLA = PRODUTOS_BARRA.GRADE, - RDX_CANTINV.CANTIDAD, - CENTRO2 = RDX_CANTINV.CENTRO, - FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO) -FROM RDX_CANTINV -INNER JOIN RDX_LININV ON - ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND - (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN)) -INNER JOIN RDX_CABINV ON - (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC) -LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO) -LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL) -LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO) -LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL) -LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN) -LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART)) -LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO) -WHERE RDX_CABINV.FECHALIQ >= convert(datetime, '20060601', 112) /* PARA NO COGER AÑOS ANTERIORES */ -AND (RDX_CABINV.IGNORAR IS NULL) OR (RDX_CABINV.IGNORAR <> 'S') -GO - - - -create table RDX_INVENTARIOEDI ( - [NUMDOC]numeric(10, 0) NOT NULL, - [NUMLIN]numeric(5, 0) NOT NULL, - [NUMCANT]varchar(17) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [TIPOCANT]varchar(70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [FECHA]datetime NULL, - [CENTRO]datetime NULL, - [FILIAL]datetime NULL, - [CODVEN]datetime NULL, - [VENDEDOR]datetime NULL, - [CODIGO_BARRA] - [CODIGO] - [PRODUCTO] - [COLOR] - [TALLA] - [CANTIDAD] - [CENTRO2] - [FILIAL2] - PRIMARY KEY CLUSTERED ([CLAVE1], [CLAVE2]), - CONSTRAINT [FK__RDX_LUGVE__CLAVE__4A59F0B5] FOREIGN KEY ([CLAVE1]) - REFERENCES [dbo].[RDX_CABVEN] ([CLAVE1]) - ON UPDATE CASCADE - ON DELETE CASCADE -) - - - - - - - - - - - - - - - - - diff --git a/Varela/Varela/Lib/midas.dll b/Varela/Varela/Lib/midas.dll deleted file mode 100644 index 7b11def572d99fc4aa9fdca1f790becf1fca43f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296448 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τ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 diff --git a/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 b/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 deleted file mode 100644 index 0de6515..0000000 --- a/Varela/Varela/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Varela/Varela/Resources/Iconos/CargaEDI.ico b/Varela/Varela/Resources/Iconos/CargaEDI.ico deleted file mode 100644 index 5c20b2333f8a3d199cd73895d18caf2cb04f54f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14846 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 X=-n&wjCQU%>f*=;8 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 pk)4mwB_BL42b{{zB!H)a3; diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png b/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Remove.png deleted file mode 100644 index 332ae886bf386f9d15543de7506055920dd4dc61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K;ba4!+xHV^zz5k&Ak)!qe*1s8fX6INreQkk3Y`OxS6ygU1!+dK{1JZs90-LqF{q%*#` zcTZ>0PZ>AoS6kK6do9!zh4)PB@?k|!PE49GKGZT+}J zDQ=HShX$vbs``8Z!JO{aN1kG{%c2So9y0e9TP}RDWn*mR2L2ll*}g^@M_8}CaerMw zfeXL;o;!*I`eSuyMof*W%;Y89^H4e|8}m{Q5lANCC9!$;m@~v z{Boza)@rV$jqmoBGHA?~|NQmy>Fn3C|9iepC^xBe-)yLK^glC$<<#l3rMJli14ER- M)78&qol`;+00U>FTL1t6 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Devoluciones/16x16/Thumbs.db deleted file mode 100644 index 8496f5f4e5d5e89acb706fb845f3e720ea8d1cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 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%0Dr|C-+uD2FgJNs03A@8q|PVPzUM(`dlAi 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 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png b/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Remove.png deleted file mode 100644 index f4f4bb20c10c4704ee50bb951dcecbde679068ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-(@8`@RCwCFmc2>?Q4oc{O%?(+T3JOzv=JM@LPSs@ zc?k;*1Nkm+2AQc;GWEP zXOc4;LqzybnE;P_V+Ej^;4SKSW{zL3q7Fr*_42Tr7tgaKN}gxQ>8hS5?lvOQ>JT88 zE8+W3Fn&;X=&@eR;HiszS{sJ$sU3 z@uT-Q2!ifHPU!YJ9vz_XS2(*{i8bqZl4OVok9%W<>*x4TFOO5y@eDNhY1dlM!3TKQ z%@@+FIJ1vXS0@kl$>mCs-?LRNR{=vGm=NluX$(I2DOOx2b*L57*r{2X!1uSmu((i1 zOk-|-8D=d>9efpR@n}_fe0j3T`W8a1Y^Z?6i;cr-HX+o?6$fmuO({RKur$prRu|L+ zXlKUIZB8|f`=?g`T(@-z+jg0p7zOBpntd#cVmoK;jMRVLcEU_Ei|Yl93=jQw3P#Vs z@HFO1NEFO*0zN(+Zg1+eIxO|oVWe!^1>nneX*xcR6Li3mR$C8R-#S?xbv}UqQ{Mvs%G2KCusV6`00000NkvXXu0mjffZ+W0 diff --git a/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Devoluciones/28x28/Thumbs.db deleted file mode 100644 index 70502f6cac2358179b850367fcdab3088edd9344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 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 a=uIUI_g1+4TmL@%6~+12Gyj`<;Qs(oFU9Ww diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png b/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/Tick.png deleted file mode 100644 index 14a31e9e7cbadc3bf32ecd4e717dc49d0276c14e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3254 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 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png b/Varela/Varela/Resources/Iconos/FicherosEDI/16x16/carga.png deleted file mode 100644 index c115d914ddd925f1da2a4f51bcd9e4799ad320d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3290 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 Bsg(c# diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png b/Varela/Varela/Resources/Iconos/FicherosEDI/24x24/cargar.png deleted file mode 100644 index a5d3347c7d0582384305c7a12d922cdf30a55c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3613 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 diff --git a/Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/FicherosEDI/28x28/Thumbs.db deleted file mode 100644 index 1414e12b6578a7cce920ba61a20b7494774997cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 zcmeHMcU)7+x4)qXNbe;S=?YQ=1f)elq=|^A2m+BNO^Oty$FejPP*6}nA_5{^TIe7p zQ~~KtT4(|S3C%ztc{lFvd;8hfcK7$*AN%?2NxpaH%$>~4x#!He_j~iXhjluwh;Ih? zooE4+0Fguo9QsW=1gw+sLs$TS0<4gAB8f!$xe)-s>Ob-~x&jB_TIqiAAr)9sgCP5y z1_Uh#vTw{0dxTmu=EB3KyUtW z;Q}M(SF6eS;C~XYr~W86Y%7G4+=(1apq%)*_{&EsfCBRC{N(bF4rELYbWjw2F8=b7 zJU=-HlK0LZou3Qrd-s?5bpTuNs@np$KrcA`g;lVCS@_S|e;k~r@t3*CYbX1S?34d$ z|C4jWVG#e@{$~gKaDdkI00a!` z8{h{ZjRQIWB?Sff3kntZrKY8(rlO)gOha>smfGH{1LC@CqZD9Nh^dxwDM0V-B%HsKRz4zZis z(umyVP`LjrjaF2bSUOsUN$)m@llujzEsGd^OIjeh4Pv5}M z?DCbX=GQDN?HwF%Iyt+z`uO_Yx$7Sg`0%H&@QBE$M{)7bUnC^He3kSzJtOm7*8A+7 z;*!!bRCz^ZRbx{#x}~+Py`!&xU~p)7WOQr>GdnlGu=sUp8Mm>ywY~Elzq?1a3j$F7 zY}UV9_B*>+LAxlZs3@su$aX;}?t-9XrJ@!-aft1VDUI!Ib`gd9v>e*c(ux}BL=`V# zIqkfA4|9nr&4}a3rv0$&j~VvhFIo2QhW&?KV*mps1auxHD*yusC9`@hZuLwyNG7~r z?@6;V4>=2+$9A()ky#HVrcxG#&8Z$%9Nt}?skuFi>Cfp(spNN!-ayDg1U(Z8V4%v$XJan~#+ zf>(?EAaCCS`{j#;bKsrV0dH--^eos+>K(T&V7S$ILaK_u`Nq+zs*n^r@k>Kv=Cpg)WF;FS{Dy0 z(FU^0v0kTzAeZq426?aiR+@Rr1))oLv*tZSw1&EE{*oEpH#s}D=82ZTT&7P< zX9OZe>IC{^^Vnxh9{J_gLYw#2A3Hf#)eIJt-VL`^6IFYmC)!zdnpa*GvfFNdX`kcZ zZK0OnS3cBZPs&M4y&R+CJXVo|eacdr3g~1aH9TjilLVB0n4EmVmd%}yav|1ZP0od% znqCQ#D)wMhho{5SvIwXBp(fafX7$Kmy>wL83?n>1HCLIN1TAO2@So zq&JKqn-B~xp@N@l;u<>)FF;iM{ZW;qV%|!dAgVpZAeBmjpV|DhbSvcb-(P?4NhL zm2+9q;GCjWnO%ODL%)&R^6TzfoeWrSKYJ%$-_fiUr?hH64M{b1c4_@(EJ0nu}E^jlq zQT3X}A+GPW^ODseY^b(z>5o-?*Q$2P@_F*(mM8X*q|sk9(4Q!O&A)E{oo0sk1W*; zU2ifE+|C^}qL}Q;UN&dV?2g%BCI0j*;rRu^8LvM5Ntn6C&-dVA`DB zr~DiDd5)Yg+E1BO{)^>BYHp(vd%Lh6&+3H$ulEOe>Em6Y*AEs0FmkNQDz8j85*v#)HL;(uR$KD$ZNnI|eF-TzI_YvY)js(e@0A^q=-lphh^m-*2eOo( z1i0WXJd@aY7L%mHE6G;3UTX6Clh(!2<=luXOQQtDKKFDMk@LKibW+T6MNsOY$GSA(N<(Hpbhgkr*ZGJH?1c z828H6aAx^$Ep0B#zso8Z`C@Iw0PoI{IfPWB7}w$FXovYST#a4zBdGf;qU&e}JoyBS z4C-)_ku~b}*#?=*J`L1u$>zo7E{>&>?oQ9o;hB|WLoavVDbO-M$PSgT+Ly(*=lhGa z>h}7*meysJ$?u7DzmOhywpYA!H<7LAuKFV4Rg@iY+~V;GVZ#@Ow{z*#mA71690kjV zF&iUa^S&tSrG@s{H(f>2Y^%F7>-G5>wM+Cb)|BAnnLixkk%oKRQbqI7&mCse zpQmAvyHpjjIvMXa_hnZbbJ9A`h#@CMcK(K@^mcV4`7T30)5%DA`orV%eaG!L@>gwX z4l5Xlr6kxH+`K9NDoQNQAUiiQfmi0_T|!mxs^_bA?dQ4hF<3Pg_M1%20>0@WbDtZ( zfXp?1JV{cdDTgaHL-YX`zz1Y#o7!BfqR%2QH(8=y_Vas$H~Ro2Sb(;h6Q~p>-n7_1C*#Bp~|o6gKs1{njO0 z67cay!&S%FR(FMQ^Wst*6^jeYBrKk~>-C1K^g_bLT*;@=^T(*-#lkMS&kZAT@Q=^; zdWe=+sTBIQFDP*-E81wd8XWExjz%34{&1alY^1wCGQqgnbc&5g0*E8A`7@cNFgfDc zIU2OPiVkv>5?zIe%o}l!>s`;Atuz~bd&6E^%@NM;4V5m+AOYb&VM)L~!GHujG*%=5 zaVs94k$eoio9tFkm@-SDy&w;iDur{@96R}iE6cR9G!>&8E>u2Zaw}Gp<$dy8w7JiT z!-u>ro-@QjRx%%AG-Mt-b?b#ZWT)5rdsnU8#kbu!mW|p+Hdk}lNH|?@bj`MTiuU;vUq=4 z`fSDh{+)uF%kDuHg_{bwQ4OY6gTju>U2=G56J`?7Q;NhZ^}}{$V}GaD)UEHN49bWE zc$AK79&wqdis>5RD&O3!Y-@fDcB+p)z@JUtE zzo3IhOB{V^XCx4t64Y{xn04Go1LZw$x^L0{pA72rH^bP(W7_RvfT6zg7Pf3ARJqbe zJEdwA^sDdfqT=WvkyO(5H``bJp#FRWtMmv1R!7G3J` zy{=DK@Lxvu`Amn~Kl%%&=@IT;_`@v!BU*SfJxkmDwGhl&p5}Kw?9i zQ~k_*$+*jQ{uCQZM(b$oo-+y9b1%>3i-iR4(s&(YeuHL%+ zZbi?e#7W`q&q?iRtxKF&2}y8r%LvOZk2&0ZWuU-TN6;^kd2hG5oA z#K<*o#E4*JzIg;H?(6n{Vb;0#wr=RH@%Y~Uv-v*nx$3KGwLv>^Sk&9-`3dWz-TLw$ z_Em)}H#D!K69tt9_rHNBJk#wTrAts&Mv;gc1K{#p2Ta zamx6EOro&=!_)Z37~M*F7oyOhM_o(e290+E=HX=pNGV*eEe3GLd8 zXr?D1IQ)mL6Tn@5_bL<4c{2Fp@owC$#P1&I^Ov963vCP)g&vWJ$8I(!2=X8=5l5^I zC(W(3FvkS?RGU0+Y>^gpqnCurg<^a=Ew++n=+6y&%UezSh7WN6e$@9O zAxXRXbT9yP&mWogSw)tlreg_>PhG1b_9ZUj3$NFa0Fyya4-tiS=Cz58XeQnV%v18v zWc64ZpS|!iS8TDLV>rFhzUB5q&s~Nx-pxAfs7>92b9w9w&#EJ6UCW16_5?5;I|^+J zW(>(HFU0SA*H^!sLn%z#*M>kaTs_gj0wll|%#&M>mg_a@j=EV|*S^aLKAEjFlyKKn z&rS8*{d*^JwIGM}WM`k4Pg>r|Kd27E4x5qyWMxT zaF;qE>_Xw}L(M)bM!TI5W!Q=H`k5AIhwzTa?nizcqY;}M4#-4l_+Zke2$swTB4vd% z2QTY1EcQk5Auib2Sw!@7f2iR<#@V{ZQ-c-I;{9U9M+}-zNke(Aa%ej?s9g!oyd6WXAqv^{a2cozk<>SqM3S8aGh#qjU0SsQ)`vOemxQOvm@$b67d$~>mn5NHy) zb&@M7gUB@qE3HxEgRXR`=>_@e#_{iWNfRZ$5%ZL|ORG2M*l`Z458SK@wxkq_TIh<)a_Hj$=HV75d#O9+m7Wmld zGq9MADF-L07lQkj%q+%ijYl6Q7^3>tR_)8HE2(6r6{kxPN86x5>`hEBuJ7pMujKBV z;TY5gLeFbKv0dA>=)vX%lgTbY$C#sc3Wgk=XJzRN2A?rO)z4#G(Y8{T*D`mnH8HDL zW>}e<_0>DaQq|Z<4O#jdH7WJ3C_gG@XcLZ5SnOYTeVT^1$40s{ALbCbUC8E=I7Z#r zjy-r~qiQo3HTWX-CDUB@#4_!oM)@tscXKrICv31eHae`zO4l~Wf>QJKY_`_*mu(FV z{9Gd!yqOvr3ZLX@1YmmZ5yjOUcGk1T*@`>gd_jsp^Rl5BIbPK{Cs#-%vsJuxKqxn3 z%Cs{Y9du26^D}ny)^Qi}oigDr=s|1F1hH%KP#uc=c(4^wjWmwTV5cNEx z{P+&hDrcNKj1G2iz#r&^1YPU8&Vt|QCx{w`!dYbC-DrpNt<(Z#X~Nh!x6JH=)BQ+R{5(;xNkZ8eYpzJ(0; zItAQ467c>Bd{5Wysz%4YS^pbV%=2U(cS2vQ%s|m6^cq#T^PJ9t0ip20cJFC)4C1(MjeD}n1QTA?)HBLV$8rpl0EY?Y<~_}p#BBd2vl3n9G9FlS&pd*!76xN;1kr($=z#edGj~sDN3wGJoRB;Ww2R@oE^QtQ z?g{L87x3yztQZ*3;grnG;dIca_@o7%OXB(;9&xZ`i9xpWV7yCXcbgdnLlmt(#H@8Y zf4cB!QQTpt~BMH^9TyR=+1R&4ep0e0)*=5cMkqpr%% z->$V%Z*tBp;=c>lZ4d9O93VAlu(_tO7eANYz5aE=!D3Bz;b}NXFkL&t=2V8No z)-VN*yb@88D(fDYa-v%wVMC5dK-KMYa8iYRxF}?XZ*Sg z_9-WF6xZ_*wn9W4h*T6x@$6qv^##>Dz(6X)3hi6Nz&z*2+_S{!PS2 zR>Tr#neoCEqn+018aQ|lp{?I~G={97tl1AD0q%vwQzT&N{8~D+F9L7BE7JN(@70y^ zzV!lVvNxAThek(!{bcl()hQz_M?uG{Q|m_cnqMm_=>)4Ir)*m8P_7Df66$LfyB;XcEf`&T~dsgRjS_X0u;qZ894x7ep z%=#V)h#&#_`R^xPrygmjVAM^x-OTT(@mH0-OH;agqSO60#jR%6v!*}A2~WI?nr02> zUp(T3xanU`{E4u>PhUa;X19l5-oPQP3kK;*7nPHKN^)s0?Kf;{8cP3W8~DspHn(_F z;*0a7tI)R|Fx!4chLC{!cM$ubvA@$Rw6dZ}z?(oMUKTOux$2DQX(IvCM*HpMNh*91 z1VwcHmgE#-+8Rj$gwlVfF8fdI(PWc=2a80Vol@B190Ds&bQq6@cIh0v!c6V4uh(N` zdq_ZR@9)%Y4bKD00g##akbon9`Io{$mO`5wFgzOxP;hT~^$rz`m|ovI09UHNb__Y1 zDnkO&vKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C16oN$K~#9!yq8@_R6!Vq-w_e-y6{5krlQOe46?$aKMj-< zZL76bn3yR=Bwj?`M3JIkVYx!J^n*p(f)}D>X0SwHT}YZ1Mo^SDQ9)=V6t>&UoHNtK zdd{A|T~~>|n{#G&=6m*izi)M6>{LSf^t#$uM5qww|z2WaSIHiQrWfW^X=Ezbrp>I4p*%ys~U5J*W$A=A@S z78|)Hjl^7)^T6P)&<(~_ftKq*xoP8O3_N?6bd%U&Nn5&OcEm`qkQjUY1|{^f! zwZxX1-n|7m#{2IG!}pn4OwY_B9ARj^dIN>|S1fDIFo!~}YIuBfCAg|Z6{=B%ce-N> z_EelnsF13{GS)N=g9CkbOQVx?3(YXqWU03x2i}5q*P2l-K~(|9t*71KKp#9_Uwnn7 z-Jj!HnoJFI*R8UQcNG?cF^06XG&i6?_kpE`GQDwn9wlGHwo5Hm^^D^A&=V9Z`(nV- z>hq|n@LFti>(a&4@Wt?RY~8jCl+q}$u2La&l?npEkmRa{fv2N!lX(kruy>~)OqHNK zRyWEem|jEGTEpD+8^GpZj*VYhecl!1Dawy_oRIUv?7&DQ;(pTTO5LKt-zAfUQ7&vX zWQmWq_{WvR*^9UFadOh~`I@XOlpm>#{TQ1(kz*a~QThn~`_6z!r zkLVX+LYjO4dd_yhCx(y(++ z88NH-+1?8&8%cw|OEOhr{N-@MI@`O>4znn9EVk7!PpMt-e*!xU0R9dDy?*K*ZKKQE P00000NkvXXu0mjf8k+Z< diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp b/Varela/Varela/Resources/Iconos/Generales/16x16/013422.bmp deleted file mode 100644 index 315851d43e5ff2c79f09af5c353b9c81055169cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2360 zcmZ?rwcum`12Z700mKGCEC9re3=%++fq@AqFDMSdU;!ZUdK8cz042?%M4a)VE+rnaIEZ072j7XXUTG6T)6D2anX=T zx_CTY{y1xb@GFsvqN(k4xsOw&b47ahL=!JnXCa_&9nd!3s*yZF_M!}!tzj1UVG z0)!s)(+PMyK!`iSN763ba2yBx1P_&<#boGf3QR>oN|vGVJd{WTI&qbFit@T!Q&kw6 z22GuWqqMHUB5kRZ*HrSNyxWtaxpms7kO$=) zBL$QCO5ankei*bvBVQSgX}~6EG-LlNkss~*X}}`xSSFkU8@7Afqz^2FMzA6CWrNih~<%y;4Wja!~q!OK@J4*Ps$k%;oqiPeN4N(&3F z<@u+fM?JxT!R!9MK3B7)`0TVG2#KYoL&aISSE7MdG2ImdGF8zAlfA$*1*0Nes@`K9&Gf_m0Dghg}V z2pd3ObM_XFkEd8sW5qctYe<2x2>@HbjR2aaH#wBAMUhjTzF~E}CGM2Vk5kev5M#h> z$}kMHpWZR-?nx<$9Ljjqwo4U}xrmsEVkbsQ8U98{DI@LzW{&ufkb{BA`;uJ8gzp0) zazAqJ!(8^PfnxZvB|lQqoe&?!|gl|7@6KO36a*_4(VD-!bKtB(q z3LS!>Xz<~c_bULbD5>1pRUEc`3{mTub${K#6U*>RVZQ@snSUw!5Az6>1CH(^!n8#I O0000+5jntuob?#; z=Kf?b)?fikUb}D-O!G*ZGQ58Ok741SZwz;)vN9}Qw~s+VQ2`vVj4;hU_PPuu3xB~i zC)lvSUFVv+8RTbV0MmTx_7AWZ+NZ5yu(32sfyV$SbYH#u1P*QFD8v>M1x@qdF~Nu& zjUYdP{08!4hRt;p7tA=KiDEO>qz!Wk$QF=o0d3#FDG{5^cvB;?AtY(WW(Xn8jQ9)z gg$XFCaQYbt0GS|fm@h($07*qoM6N<$f}R@HF8}}l diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-capítulo.png deleted file mode 100644 index 16e9ab93e2523a1da2bb6f082ca1c54111b80edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmV;;0y6!HP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqLrFwIRCwBqlTAoeVHAd+@7_Cqq?wRtC5b{sKMNbE zHnS;WFv19I)1pO-7J-YPMF|}I-@gl zf4&x`IH=XT{myybbNJpPf`RT1;5C)H*4fqD&p#xkL<9rf@@9v#;^A3;`M)5$0=7VQ zRA*PO*Z^p|73~Dw30whK$xFgh7Li{z0MjB$-~Is(?yW^P3Pcxj+?Lk~2D;^+7Eu8R zPg#h3j$7V1ihz$xN#>ebcyRU#?@HrzJ$l83Jww#Z#`qLrg8MxvTiqA39=r`%6amt* zsFQ-CVUQzFezgd|KHFSxhN~4Tgr_VHx#pR$7BF=iSuPXGWLe$sKt*BAC_@h3kRZ`W z?8ONh?*+vHZL52GQa& z`wmrvkbnnkTM}iD9NvTlM7rd*$QMc&riJPd*j0RxeR6W6M)~WxIj9#VL~==Hm(w_$ zDoE;gjq)}rlz*g>`sBzwhHjzS3V5hEhTj7K`Ro^OC8U&<00000NkvXXu0mjfL`y52 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Añadir-material.png deleted file mode 100644 index d43ef4ac1b5e30272d9cc99cfdbf16cc6276db2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqBS}O-RCwB)lDTVCQ5eO4Z<&`jCOD>wSO`%RB!U@n z0SVCz60nG(SZJYWVUa>mtO9~qrLjmO>K|aCje>#@WC{_93P~VjR3^({GR~6lGH=$m zUyGS+P6ELLm-}7rIp@2}k%SPe;>B%geX#>9R${0d#W(IWlN`G-EU;H+3%-uk_vQZ; zNA}h^((_vgwSDKu_EzfR>Dd@S{R-EwHWO_NJ{xei)XKiy?U+uL-+v4SYtS+qqc{(ccV@oVmPe6mc7c558VuPR~%T*tnjL5|S9zl3n7JNUVM1{g<^X z+r?ITBJ~~f_Q#V(j#O!hkfz`YzXM2Yn}bb|ac1&4GclINHGPyohA_@X%HIJ1;(z|d TZuXkZ00000NkvXXu0mjf2~H@A diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Back.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Back.png deleted file mode 100644 index 31194b5487e28e2006793b4d6559de85363b4b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 zcmV;819JR{P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<14%?dRCwBClU-{`gyup}TJWL}1hJsdOD_VwkgC)`s$y(u5|L^^ zEC$=Sn`HN#nK|doobjT`vg+J?49xR=@5j8a!~ahKc(}2-;r^zUhFrC(%F0)lfN5a0 z{-L!NukPNM$!7NV-E;e~{ztYKi#z+WZC$O-UyG$=W_nKkaA9`l+QRjdCNk%Na2;~i zYPO@RaD3p|-N%N82ik7CvkS)olO%*DVp&$0pI@-&KEH7N()nNB56W@^h^)1^0B+iS ze(=!VHxIw_V%r^k-K5+Uj^i?ZbP8!ggi+*rnw`fE_jhf3y!Tz;$#n%Tu=%0A+s9sb zd0(y}n_1K4@ZOPc0I0@-O6;>5`h=N?yN5P!>?{^e0G$A?m+_u{^r>B&n)8h$){+2Y zBVRFj_A~%zMz1nCzQpv&h)NWon+@#`w%vux0RXSPGylZ49ldE|6C7(8Kk{u2o;-UR zsUn1m8GiL`s!@Qi1=%ed8oVZNAMlCSertYfbD@dY#C-6^cQsgRL#z!##RwJOTqg?f zBY|l(c=^;;0ME;$JZ-fT#Ip9Ex&}tXIzgxifYs2)j{*WMoy1LA0NkZN%YQ7Dm+i8u zaA0&JgD;KLV4-3vzCzY12x5s}5>}V>3V?TGu{4;JhfmTSZ`1{jt04fK+$BzYmD3Cft zRuwCsRj=vGX1}#|)&+jL^7Yk;AHSRnmqmqTwMt2@AfKB7U`17_sDL0=2&M3+h17HA z6fj$F<&Jz$%c(8T^b8gHTQ?{#B#0GK%bQczCI=U#45y+q++Y+~vDVfa0Nj$!rAG?) z<%V-Rn>w9tHx*@KWK|)4S4PapMg6OpK=3h8T2G_%pD24k(MfaAYx9aui<8wA6C|bN jGMX=dp8-=J=YIwOdeNBT-uohq00000NkvXXu0mjfJY%Kx diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Box-Closed.png deleted file mode 100644 index 189b83f2890a119a53bb0e00fbca690b3fbf222c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 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 P00000NkvXXu0mjfPt?C$ diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Debug-Breakpoint.png deleted file mode 100644 index 464fcd71fe5bada44d33e974dbc055a8f3151a64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-h)G02RCwB?lQB*kK@^6+K@=1SOBM@}?rAb4x4bt9#3)qSjAQEVEgFQhSoEsp^9de9eXV>#4#b#k`uha0F(bLTT z{r~9AC~Gb6sbv7AROx0XaO;2%1T8+@BC(+S*rAOLO_CNT2m3?Kq&q7i{TZ+j|9 zIl#=XT5F7fM90K0S;E&VbOQIFS|Kz7!x4^|aW;|(i~SU!S|Qv!_5k?tE$rn7W}QXg zdHjSF080S-XOX)79s=BG9g`-S=kXJx;UnYGAH*&goX(iD4GuPqc8r&Rh5ntle^-QOw|_XjZ>>nr?s zjO~j^{k;1%CGHPm`h%EEaktaVzQ1|Nr*PstuiuP6j+Y2N?Jm7y2_NPm2Ax@?`dm3L_=O&-QKHGE7eM zy*N5N_SXH*61QWHv)z&S?a5PNHV_a?Ia^=%Z$i|@1S@65@IxkxZ{$3F*=_6?WBlO% z|3i*zq>lZ6s+IiR>d1%xsiJNFd#1gMyZl7;sd3^Y{`vNE^iE1Og92*`t$dD`K~EjKC#XC zTo07e*Zb0W;?HlD!qdTGZO(`ONK3}=6~8S0`2LrW?~7#vJ6|u}8*wJlvakQLq{N!U zB}Aba4!+xRvzh|9^XC)rQVSCj%ay0}OnO3;mgsC&hkTc`|!Og^`lt=l?(u82dm# z;8%!~gUhS0x5IaTko@rKAn#^%{rLtUut6dF-{;TmSGrg)OLFcMS|)ikP1-+xl2A+U z^7kO!#v3AbRr^jB5SW;hkdV;fapKSa4?hpT47zkm`r5hKd%7DN8x<`yufM%{c{k&y zNuOrkh&d=Ral+5~V=ZNE-1 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;R7pfZRCwB?lU+ztVHn4M=WJ@5qYqo^n$5NRz^uul zFqN{4D1-=ty03)7>?WwYf{40_5-eJ*3kP0wmlp*_5(QfsQCLw~URaifrTb`l+;)!V z?Cl~QQ!0ucc;S8F`Tw5(`@mlkLh#?!4aLuV?hB9Cmz@WsKlS!F?JalR_6J=ib_*de z2f^K3DL-+#tfiR}H~l8_lE&8~r+@|40^q3idOBrI*&q8dk&?g$z{4UgrRoqfUWC$I zD$<8{iLlqxk?W+_VQU@mI%1*HJaOAbqzf7Wgb+vpux>5mzH1o`ngK?>1zU}eH}Ah* z9(wiRw8yp7zdS#4FdA2+DV5Jrg_c$r%mU`@+3THzimcRV2Fzw8Y@RAcKTV7k=*hB# zqB5m2I!Ga&aUD$#Eb(Uk?G|-TsLnwwX3hm*<8J{6z!dUUT=h2j&Zc4!Su;S@ zAvKGk8IS?HN#>p(s(%SMURiQ+OG8cjXgDNk`cH8pP4Ih?rliK8s)L@vAwl02Si1nw zTWs04sjB$I*uV>>;?t-)Osj+^HQHL?Y1Ck|mZ1aCC2-|K-*s?i|NXJPe0W8n+4KD6 zFscqojmcP=x}z|jJIN2*B&#?Bu0sJlZTma?;*NQ9$SrQJwrvWpQ2!vY&bHw})Qg}D>(UGE)?2nn zv9soCYS{%adroVq`C~5_dQ{cTqHT|{NpwZ?jNfnFTpS-pb+zj>DjU=nxr9nGC-5-& z%${Y|z2edY&v^;WJ2pR9d#zSzqVWoe!z)*Aj69;qtNEFwAy!~>jcWiy>-+KzZ`W?$ x+p5T<&i+oS=Eb4!9Chmt*6&tW_r6AwVR27*@>7cmQ9x%ic)I$ztaD0e0sy_eY>WT^ diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Details-Show.png deleted file mode 100644 index 5d3fc51737618e59cd3efd5d53c5b9b359664c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QEc;uunK>&WE2eoT%ct><5Cikw_4kv0FojbBVEE%(F?6b(&Wtd<&^gtRpE^@V@1 z>|rzbb3$j6{MEkAX-9pxeK0Yeyt8<}@%M8Q4xuH>x{PkB$hm7w-Js!nA>FvJ`s-@9 zg=eR~JaAM)&ei9dKTn*s%ipM#)r?#&RqVKW0M#xBH9kumoNxz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-W=TXrRCwBylFuu{VI0R_TU`7DqHj)9PMV82szog% zEor$(k%Nm1#YszYaB>);)V7O@SX&7>e&>RnSSuwCD+gt1dcM#1T-4=@tH~uK@sP-yjS~d2aFm0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-)Ja4^RCwBilf6$J7pz_`hvMkgV0vBb^As0oe6O(Zc43bKGE1VPcJ@Otk($Km-(oA%*J z?s7hU_k4P)isyN>OQkY342)!Ndir*!Lz{$ofu+6+BLMH;&aj_^d4W-(kL~)m46Ogl zVD9MgaeOaC0TGLc1J4KGOl5*|+b_A+e+vMuM?C&K&-9Z?{EQU%(O$4RL@lb)`e`LD zQ{8-k)+4;lVoTowIB_^;-bZnW``5WDfl-8`gdY#U`I{OCI)ZAz#q9AR+`o5zh;7W;eAp z_nKB;H&y?6g*XBaPVe7Fb-S?M$ewVNLYwa49kn} s_B|%A{hS8|COSZw)55}|+;jdr0HIg{q*(P~JOBUy07*qoM6N<$f+tN1od5s; diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Filter.png deleted file mode 100644 index d2a5e99258899a6fc97e0888cc928b6c7306e6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-UP(kjRCwB?(@!YFaTv$(_ixCN1LET1;-Kv3;zHVS z*-BBwMH`J=gv*p0yZDof8ks2hmkXs7H#e5wa*z^f&1RR0#3uDPuwUEkx1~Mxy*%GO zulhbuUqwU!P!t6KRdxO}08R5L7*sM>oZ3`Xr&z|^T$#%8pPiwCxHO-BKLme3Q)Xjf zEx_sa1ubz6m*%5mdX%Qx8kzwwNM4}3exJC_&E8-XfZ)n5Wx)t#22V)?Y<;b4G~Q6u zIYFtpj()G1%V2~@AZ7sQGnkrNm+A&9JSKxN=LCQwhX*@INV|jI zdFVjkI?UmC6|WzDX6846Q3A7Jzyb~n00TqAgkqnpYLn^fNUp^0@Q8@W%lntyJ;mkx z_Dw$r=g+cq9F^pn^;{}ogk*+u0+~p*a9$u4$rk<>kS&}Fm?*Gv0{78GVL+F4Bz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-sYygZRCwB?lRrzFQ5431uLK-ilu{5&@B_G*K{^zq zL(w8G9jb`Y$rfGg(nX4EKY@iT(zi(!Dx%RrN*AMIhl+!W;vX_Krjt}@s7da*_jG9U z8k+>PJ#gW2;Q2l0564qg{wG2J?~|r8tER> zx@zQ!%?ZNO;flOihY^br%jfMw04e}hE&hQ|CYNFDbPWKfO3_#fMG0OhDgeoJlIDhH z0Q>_Vr;5mxvk{Aks|}dinZob#X{>K#{$!qu%O8QTsWTqHssfI_ACbzWXrF24yl_s= zI%j~#ccK3NAKaTuqmGfwu?!0$nd#gw%WDt-3P_KEGr$Uggq zh@<1~eOemsk$T<7T)ZVHJ719ME%Yw;lDByxGZBnfp0AFOeKQF_-*A@Jp1Gifsui3J zr-NY?io)!x2Ymh5f3*Q)X?wbasWrs%72SE503iJM!!iaPm!0E(yGGCRqL2Dt-ufC}j1ESB4FC?EOM^9?HnIQ!002ovPDHLkV1kL5 B^UVMN diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Forward.png deleted file mode 100644 index 2a17743d96ff4519fed2f71b76ca3c0165b49c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcmV-`1AqL9P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_DMuRRCwBClU-;WRTze!nVsG4CL1=pYksV@rY5#p z-Fng1U@KbDKy6+Bh!qhb;!UAaTU1aXf(FqW+Y3>GP%KywyzxTlg#>E}q#(wICJ|8s z(&A!TcC*=?Ip@sGIWu0k2^;&}96mVD_r2%vz7{uE0eGk*o4&uZE1hdLRZY3-GB5+I zwqK0n7^ki8NM%xohwj;WV))@*rP7|EOtHV)`lnKjW@i@UPZ#HBuPrTqVgfS-_-l~W zIy1ffg*Qf?*>_@eY@~Smo&8uAm?*+G0V}e>;^I<#{@lgo%TvF7+DyVuU|BX3uTLY5k1&edK-PNn=y3ne#|FoNC)O0$z_teu?0WCW zs|R!GOsb{J!nCw~`qmtc&}G$k@lyeJk8ZoAuT=N|=mT(^l=IXhhxTsC<~xYunD<}1 zu;E9)`}#A=FCL?GJfsnL=&YgVf#O}ui?t_#Gfq!m{_&l=2a_g_uwt_gwbwUap619a zC&`U@xLT0ezA5c=ItPI>cF%439oa%Bp$Spi-vDZDkSai^kk3zl$m-dxxPicQ8=QP% zN9zd*N5|UoLWys}4X{ulLIs36LZ|?MM&ROUX+?I_1>oHHyLRmkBCs>Rz<99x(?u6uhga&ul%`xaNib3XbHfxFCSl5^6|v@I_w1ksTJ;$ zFp(EuS~Jq_z2$q)kDT1!8zcfet&m#bg%Wvg5P(Yg0i}FmG(|&sc%eclg*zjpUNEPC`F1P!<_Ee?ZGU=T zv@qPgNjW}VsE}Izx3#s|yCkJQ9h~Jl?*jEWj@JhO+?vcKj}`9Ajpg=q_F0?lM34%R zO@;VN88Is>`VTXS;0vI-mPYG;QFefmmE<|6=#;E3E2A66i>lEans0$$0n;Ame+K}* W?uTl1G=)Y00000K|O^2F;Ok2f`K&fS&Du*WXoZ<{SoRkWFY z>i3RvfpYub`FpDqrgJBEaDIPae$0x0%{t|eQ(o+6T_iB$=SQdXP8Jp+#T8pP?B{v4 z3#?I)mYMK_L(tcTy_uu=p4mTrjf-dG^6$*3J84}W+8ea|v&SDnvtwzopr0EU;EM*si- diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Group By.png deleted file mode 100644 index 7a47750f39cc83b336d67c85bf72b879238af8ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%~PaSW-rmGtNTe|u)thR#N(0~s&od2SIt_kPZ~4!vWC4jeczVg5`$@gJX`>mU9; zf4{`Ozdw$Cc>CMGP5*wqflc+_c@K{r6^`IdZ8R*C+wCz;JVF8p)coe3bO?3u+QGx@ zETOq|ChK&TjhW4?^IslW!rQg?fW?EIf(8sT`&@T^nwhKzbOwW`tDnm{r-UW|8kAmD diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Home.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Home.png deleted file mode 100644 index 199e9cd5963d6cbad1e957fedd7d4ff6783b38c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lQB!fKorM+SNtA+gapB%gL@v@o*AS=t5=HBMHfMbLP0^A9FaIAjj^Vu(1RQ9-TVD{_rLcNP(VT=!1nOY9vsK(irARlo#p#3$OAqWYG@DJFR)kXemnY&cI5BCt??-nGi%OKz z0Iui;`PUF*g=3RqOv>eTpU<1UZx1?Q{-<86ogGx*qy3*P;vG&%ObWnpZ-WPYE0*@b zJTdTn0^cuVaS^YsMjf0~5@)lw{Dlkg+CHeh8DKhn=3Gq>HNv$5A2Y-0MO2>S_?^x5 wNBScejK=n1@>=ceY25qw6wXZ)tB&*60Ib2mExk<-9RL6T07*qoM6N<$f)mNS(EtDd diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Minus.png deleted file mode 100644 index ad8a7d0d9c5b55a08c2715a48ecd6f3c7336846b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%{OaSW-r^=6VGSBrs&OZ*Y%Bi=jOi@xhsvv2*9aXVMk*F~wOn}ajw`TG?1x{uwJ z28SgC9T#&g&0|<`+MxH2B6?B{C2OjtN3(tS&$sVk z(wVlur}l*jNAx)NthH~Fh-SLWZgw>4&3_if59Lj(92sKr1sJM%{uF#%m?hM5*nYjj ou}QY^CV@v2_T9T2@}805RMaSW-r^=8s;PNqN+m-Dp|9lkSH{JqiC5thKeP0?(_iKecY`**i*FiKPU;b}H` zZibqr@xd7?zceleGc&lYPuyg|;UHuwuEb?2J}aY;|4#GiytH^mhR-j5yj-7mCH--Q zS4e5n?t6dY6gr<~{onZW8E&j$Xu0sw2t@k^=Z`ibD<2Sy{pv;NU6)d(*VND5{7p~nobgsGO>>rNg zg>4Je*n)p1ButOpSDW9iSne+V^+MoW#=o!HI!=}D*|B4lzSGUuPi*B2;obaF zKRZ^-m&-aJRyRfg{{r(;A{1a_97oLYlmo|#NEc-9& h@ZX+$F5`Aa2K942TUA;9>m$fWQC% diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Outline-Move Down.png deleted file mode 100644 index 09fdc6883db962d2032c3fcec4479045d336ec73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QTh;uunK>&oPfUd)aHZTmSp*H6&f=%p-nP>IpeBUMqQS3qFn>FOn$wtQez$<=c7 znCR7Ql9V|)DCdaUh9_Nf?&oPfSxkWfuJ3gw#cvQeBCthJyW2r)Bc~a6m{ZX0$e*mg#eZ=}FWWFh zK|^I~%TcwtH%=Wotb4CII)=N~qa-|4Ti?g<@R>&I!yKL|6PtTZ@i3fp{xkhGtIuoo znLGu18~&|NTm1j5$$?1jb>biXuH_Ns>{@E`>aKs>-sZ=NTLnetbFH{07x=QLLhwNq zV{fOS#6O2z7A>KcQwOi-FfP{pwEiEbOW)pZ4u%Iy%~Lmj?Fq2#xTfuMtXRkX)~D^w z-RUN3ZYyM3ve>WOQj0SzUzd^Fld<>EVY~g32_-!zEBMyFRh*>q{Xh3i#@mbx+q|b3 UX;*{;JFVdQ&MBb@0JQaw#Q*>R diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Parcel.png deleted file mode 100644 index eb0ef92f196bd544cb9e9323ea8c396fb21c9188..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpr%6OXRCwB?lfO?CK@@<$x!hs`g(MUtkU)h$h=S2r zsSTwa|AdxaXKi6&3>_9{bqOsA{sDGJdj%^YQ3`^IMuH|HH@mnq^B%=4ce|I6kg(0} z&U@eY-kaSqs>*dPQ+?^KqrLR%@T<0(W);5uu*IDviz$~C0SVYYdwhC+i&m$@`|){_ z?Zbhjc>&*BX)}5E1@E?g41%v$XZg1I45QHMba*o{N76my(S7KBi8+n#I=Zm*@=_Q; zO@o7}$K33G2OvqPcd(zf*-zU%sm!Zk5uc$h1K{Le%=_;y5g-n6 zmf$nQokqBn0UZ5~X=!C28W)u{ID)eTZxPoYc2M*Q?i7G5huLYEnH~`!9`UxEJBxRp zqdqHzaRg%^2>d*P*2nl4H)H3O$|Vq=<3_5Ff*WJ->v#wc1itu-h8!vSNXSu_mm-UX zGYVG>K3^3EFrU}Pb@yv_rNc7{t19NY$N78!K1UT?!;v5H00000NkvXXu0mjfHGSrR diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Paste.png deleted file mode 100644 index f1cbee68f7c708feae0f6e6399824c5151f4e5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-l}SWFRCwBilRHQwQ51&1k!i%rYMTWMi|u?>QEX&D zZL)$|r~#QKXp9UIL1YVy1(&d}5XAVvMzCJ*J`m$K&+5MiMzbF zw#?VuGEkO*x-VJEGEn7WQk9EIWf}fvdVR9HoW{)NdAz#8j;(H2&hcSyvW zLPyYp50(;XZ~uL9jgLYr<*C7LuIUf2?m!%8dDS63R)ut1(;|;5n`MNvZ3XHMhRgBY>OkQfQ zm0r2A_9c6vg226MW6!ou2KLUjwfPFWmNLk_Srodvf9j#XKN6mc{Sf>wzQLvW?}6+a zvvXn?)507U74p8GbTc&6z~x51>HikZC&AM`%K0dYr`|m8xaP|A3syYQNvpm#bTTZ` zcxig(Q?U_4{sbnyc@r}3WN-IKbNQL6%OkjIm)yxl_BIYy!JgzBI*m;n({1E?H-$ea h*vGW}IqP)EL>d?}x?gPW{^1R>A^L^guQTQ7#W)^%} zh{t2MmB>T@I4OcV`CE?~3dLHf8ieP0;eTrK3I9S`0t8}F{{tAvWg8$`t70MC@OFPKnvV64fIYP1DGBCmG3Kk~vW1GfuynYYy1nIi#?-LhrRJ=&2+|9Nhgw z*4H-359BCX_VEtp-YnBIauv~*pd@0LZIJ7W;|sys*PrO7-h2w8?()lWP<4|t?J>G! z^>P({)HKwt6rOCsbG>K>fjD@qxTTcZa%BA%Gc12vr|)tvoHD4^!6}w0u6`${Z_>X%EpHD+ z0lW~BN|{tDH9mh_m1iGcQL(Ku@q;gz>0Oe8*O})%=iWv-aKk<5&UA+Jw;hLIi}$ul zyqlTA?inUstCP;(VDlyZe}I*5Tag=Sp1r`m$wg)-Zo-FQMp>d@k5w7~qYs{)wArBF jg^kygcgLA{{xIwg&d{pat0 zL-)-8AR9pdOecB$2dQU4*9@d8+&ono_MW(lVK{qaA;V8YMzGCBPvsdf3;==zpk^IG zJ}!n3H(iE5fB!K6Z3pAFKA>z_9|Jo~<d>oV3rGxEs75MzXD2Kna- z%ywj({{q<{{+~bp7}6`IGMMNqF-WT#F>GA3hGF%&Dh5W7%~zjXSVAbuw(LHMJr-(v z7W~HtK7ar7|Jl2r_+z22cOg*;2WKoa6~|*J{_^85!{_fn45YvO_y_RR!w6>h2ka?R(F{l**h(HemX)T{!)2l`#{n841X2o>%o0 ooDO`G+N6Q>6QV*9O*2&h0GKoIiDr{^lK=n!07*qoM6N<$g84wX2LJ#7 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Print.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Print.png deleted file mode 100644 index 8f029d705285fd648303eddf2cf043efcbcff1c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmVagaKGD3l`1MAkA)`stkgBTwt+3fB!N3{__`%Uwrz{ zP*O7iuAT*p<_eJJy(jKs*y?Pd%<%HVUl217tFu5(fA{h0e;5GT`2X9FU;jUT`Tidy ze)HM4|Gr6W|B>~upxN#Ma`u{CmoW^tH&q1M4$%uWWb5X6RX!|G%^-m*Ag6;sfU`E- z&wqjb2Zh0(KmQoId!{m&=qoWus~RzET(ia->;jO@SD#z}v30J_zJNE%478-cns1!h zh42DU^OC0Gc$}KP{P@f8`8yB;=`TP2F>F}3hCxx+f#K$ZO^7h4>s`n|2wb@K4DO2e z??0jjA~qMG+wAJ~kKyajzYNFrZe;lM`3qbf6EV)NJ?{h7eE-@hu>6}h?{FJ{uK6nv z3r%@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwBykiAPnQ5eR5hDd@=K}cg1eF$N+6f^}< zB7sXSIb^g1N#f8_leFg68iM){Xc1ULTRKS4>=3rOHk6)o?rFH)n-{;I;c(93eSYuz zye_RZ0EPRic^RVE-nz@WYpu;gYfZjX(ZiH4RrKo4sqO?!Fro~@03ef2(Ft*nY8KK2 zEX)STq*J6o1FpV+;>Qa&?`Z(ayJfst54o9FBC!icox7hoTHdnX-mC|J?TuypzB3x1 z4ekm>fbJbwW_cp{K57GSy%qsLNX5#0z){}?u*^alcIT_w!ymvvNHsV@>sav9k_f42 z?tdYqLP&*_idI`9!~lSh3LzA}+@zzZ9&RF}!O~NJ+GeAF1R<0?qLsVToCqcdM=-}V z9J%KnrvXR=lN|cbhXMYVR1Y_aza0P&nhM!wtHFQ?ls)$CV!{6FW$p4nQ=1 c$+-F*02@E=UZe<$eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-SV=@dRCwB)lPgFBK^TC)l?#V(hZigsK?Gk127~>& z2x1niK@kMOW-wSRo<%T-a=}Lslf`mHM9^Xo4Hmg3>dmq9xLMY)yWH*VJ;Z@whGD+% z|L6Z1$M=2KH=ca{Ia1MPZhnO0lNU~pX4_s=+CyrK(w5DwXC}ws?50HDU!pX_%2)t) zwhI8g1+B2E2ZG(byWWC!ur?k5H6gnTI>C`ZDbrcd4UTFcrHOYT8a21xfJ0E3c=SM^ zlY-@?aaPtIdv;|Y^Vwctt;gcRFj8uiGAL<~;i{BDN`t7nh^kHsto6c64Oj>noJBG> z0E5|510h_LGL)_lx~8A?XOPk)Gl-%Bl&=oS4dwZGyXUK__!gS?$`9w47gSyY*jlee z5WW{6J2=Wzegc48Hcc*@j#WQ`V*=TfL9w_`ra#4P`62OyW*ETneILhhm@cgT>r4L* Y07cC$DQasV3jhEB07*qoM6N<$f|t+2`v3p{ diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Search.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Search.png deleted file mode 100644 index e7a675863890e092903cd6d675fed1fa20c3abdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|`huba4!+xV2`otshgMNbCOP!M9#AEm2EkmU=9vq2tRYme{JYi*cjEOxB2u1&0oK zwKTDq&SWw<#=&UPa?s$!iDf zw^gV2t<2of;bUbW6sWbG_h0w_8<#f6%9MMozN#w3H_`ieh=5(ug5K4s{M#&d*F1S~ z<;kyAMxy^OGdifqB&Ak%-mloa;l1UDHdmKh)0B^T#cwOyv}xDODN_Q)?ES6>KWeQA zTE*Q^nV-zNPh+;}`M7;m?egIn-y}OL6d7$I*E8(7Va9N4(cxpatQ>0|C;4YCp71HH zeRg~Ls;_cKolfpffBRv)rE?FwgvCyE^m{uyKn!Zgngg0 gqixo;_kU~|{__81aa9g-1qL&Nr>mdKI;Vst03I-{8~^|S diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Select All.png deleted file mode 100644 index b3476eb3bbd41cf0da841d1f1d4c015638796c80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-z)3_wRCwB?lTApJaS+CTuM~l|C4`8=ONDe;T=3AT zQ&dQSEM(X&h#t!5&>^}A(amGgCA6S2G)YP~i0BX~_)(M}b&2#+7Fa>zTHEfvJM(|1 zgY4^?yP-6f8F*%%XP$xa%#8nuZ2-NgiG-Q;ZFSi5yd-AE-JvntY=}C`<_orx$yw~! zd8=B-80!ghrFwhAZA2ZD(;wC>{2exXZe1OiQ4mLFvJFv(U(gV*sx-LwcweY~Fh0oe z$VWsSk;C^<4ayS~R|WX;Jc*k*%bWf&=o&}V0ff1th3`u_u69o`Io=5NLY_DhT$*B+*b<{QvBLA`wn6doR2Ow6rlh0o>AzoC@ z`%<1@wJG3oYn0tJ)kK>gbLHlAh~<6d?Z64@TJ~(bfx3X~t9J4QA-X@p%s>;O4%Glr zhloSeQQz{Ew6c*v)KPut4glX?oMG3I2LQ~c;v8riTHSyS(h5Ja5IG&=x`JnB+#4RZ z_|b+nwKB?5g6%lDkL8E6bave;v7iC3-_398iGJt6D<0m==uJ%|Zglr=`5P~GB$9sy Y04JO(F~J6zd;kCd07*qoM6N<$fz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp4M{{nRCwClkv~g2#&+z+5yDHEe`7BKJUfPneHE)@Yn6lQ*DTK#hYocZPIW*+kqXMvgde1P=hi&ANC zo*Z%JaW3#MeAx*|7EN5=Jppiba>UGe9*3`-Ut9vv>ol`#T(9)@ex%M-U$uJUmm{mj z!a8J;-0L(Ga%efUnz+fFbwa+|wy3}#^$!5w0{~XM+sHM@ysQ8K002ovPDHLkV1me2 Br5ykO diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Sum-2.png deleted file mode 100644 index 6e5d8e92634df72e667cb0b428e9a005f6daf980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5b3mApeM<0Mpdd@S zqpu?a!^Xav-+_~Xe1&9>AYTTCDpdxChGqtapZ|gMO9qBg0|tgy2@DKYGZ+}e^C!h0 zbpxtR@pN$vskoK&=l_3uX4QtyMkj}jj5-Ev%F4=tbw7cE%6j4!3pPq_Ojx64q`hv-P%F)ge}(eGHzielF{r5}E)~O-UpG diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Table-Search.png deleted file mode 100644 index be8bf80bfffff5b9a2e510743d5253d44c34b726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;0ZBwbRCwB?lTk=haTLaXx5P9kNEeC^4M80}#E=R~ z62^MyK`iX00v{p<83XAu3L&fz7LwtTFe-e|2zm%AAu7ly7&&O=@^K@`H66Q^yK^#a zyPKzn;c7I&@_YNA|HpT}!#STKB5VYk*dP=Du73J28*;^}l&wDc4>shB0vSU{E(xh+ zVIc*JOM;#hk|`l=6h&S&M#j4saZ0nvUWWll>-I2xDcBj-d!emekARh6pR7V6vD*|V#fp;w{8 z--+IC?v9KTk4<7f<|w@dkH>=+4b!^69$!qs(qy5*U;IpU*s+UyNH8XRF~#WHU{26^HOqGfXQxCV*GCK@X%< zC#H#KSep*;&^=rrJqVaNbM_=gHiu#4&=;4B1v-}8m~5TQJ%5bv!xjROUXJ%o6m^>W zwov+%XYU*mldTi&^*B%8l@W;encmv5u2Y_Rd0SCjT@GoioF}bi2}JyidSlAEv#^?E lSC>Ohx7Pl1phSdU0|4)G=nerk-Gu-E002ovPDHLkV1g|e5Oe?l diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Generales/16x16/Thumbs.db deleted file mode 100644 index fa43abb5919994779f34e9614cc13064c99596f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75264 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

T+wCOs4*C_irHwa zc6Z-yvhUx_>mlyeXUw`Da&Rv1!OVQV-}n8^n;FG%9LBPZV~m@sC`wiX+s-uZ1olUx z(UQ@|cuV{v1+s*{1WJ}Ii=vJbNXtZ+2Ex*jsb}I9xmrFwlS(Q2swh1-Ckwb!QPx{9 zRp}r<`3xpb8ws}zq;Qz7Xjr-+uFj;epcuziGuNQ)Oruj-9zqZM`RlsQ@pC3hxMKud zm^!wpBTbu}!33sZpc@8SJb~JJCHT>Wh{e$ogQ$)J>sHTm!P}dgs9yM#myd%ydgh^i%W|SU z0XoBznO_c9{r|GKEX;($0)%M}ix@hVkt7~Tpeb?2OELTfA3ASuZlbb0#6VYoM=z%0 znOQ-=*UgKthkQ?*ss)pS7OC9 zB2mp<?&4r{jl#I_@Urr}aL2q{^;;Sk-gOIf<8kXR_l z_LCMTF5LV04|mk7=(>TF^8biZAR(L)a3Lf@N*Z<_Z37G6=XfyKLd9_Y~ZgpB7MoH2n10%ju4~+9mvP=}yMURn_HL3cPc> zalib2$@cZ?2N9~VQTx#pcIC=iJb3QMk^=qqL z&cFYza#ZKpMx>@9dhob!Y>rHTnvMI$>`Yd^_*=z)0|3d$cBhz>dDs8|002ovPDHLk FV1kXVwi*Bc diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Clear.png deleted file mode 100644 index 4ce31c8541c3e6ab43592269e5cc04e869851be9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmV;v13~z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ_hdIAY1&QJR;3_fYl~p2 zsaAsY?x6_cwH1p0KoN=;>A83-LJuBWirBj-y?gK`o4VPZ-JN~NK0iNYH`)0;%=|ng zB)e|fB!wOvn8OS+ug}cy_x;XqEMp9>bDQBcZ$SXdvW|Vj!za(a1a1M>$4>tR{Cem1 zjX%b(HO62WV~!oLhyVWd7i$<}(eCe{J)hQ=OFEs20?|9SZ+!Dg0ps}jH>Ro%3A1`t6Uv4>KplrP8=UF%pWAkhnt9AMTJY)adjE zgcbs9b(;WRy|hdZ!-dqiu43d$Mnd2U$w)|~^7!P#3!GY*BU@_F?(|;X2QR{fRQtQ! zKh}J@a)EYlKr&aw&ea(V)np$Wi3^QTW4JoNuU)xFyE`D7Dq!boB$Gup<3)hqfXOO4 z3YQaav5R;6L+osYNFq-nQ6dv{sOGAyuRorwqQh`k9AI(}c7?+8e6C%&NVBuWKZ!iC zY=ziHo>sB4k53HIVfe_E2jeaju8;_&(c0s)kKU)=?h#Lyv2#^yyGXZECmYXC;Nx>} z>*EjJB^+AZ>r9RNpC=beBc*0-^%C_~k660IM!JlXDpPd|QYqF}FVpD__&c7% zDKto>N;vB&8l@NG69F5kBK2mMx6UrHFh7Uq`3R-(J)gDJ%hZ}(>}-Wtx=g|@(k<4G z#K!|RTfO0X!;z%a=<)U&AzP zGodgu0gE&90nRNiVtm6=Xb~UCl_Hc;y zG+O%%wsuHHGBipJRz6=j)&lj*&)-{9>%qe(&%Ud*dOuaGRg_W~V=%@L`!jjs^*9oF gv>Wih{;T+R05+|S=yH#id;kCd07*qoM6N<$f-fM!q5uE@ diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Copy.png deleted file mode 100644 index 9bf2618a269df0e1bba70682ed5f750f6faf7543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;14%?dRCwC7Ry#->Q4~G1t{8t+wM3NrSY_R|AcnCMG|f@ke>JZhbn%iU4SDACv66j+L~C;%IO3JMX0H+1Ql&b1mB)sywChHRx_7=hL+|xI5<2u zR6vY{t&2d3)}~)-nU{`6iHI13%?~w#pNId9vgl&~fg(nARV5TL3W|y=m~Vl9_-2-9 zaz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=HAzH4RCwC7lWlBMWfaH%&%L+z-nO$@yKZgSX2;kp zZti`)KuHFPAB+ixn3QZHnrWQ-fML;T6cXzQV_uciZ$@0`K;p>n0%9zV6mH03f?zW~HJKfQ+K(wOa85r_;%-CVuF|MVnR>-b*Bs zt2VG|F(Cw78*F>hy6WbY@*OUhO3icqTN-SJwU)dxK*_L#fNOeeqflxw^me#hs_ZA` zg#IOaqwQI>$U~v)1VlrU3Y3Tp!@%D7$aZtWu*Lxr{YSaoFyiNqv~jQ%c%qKN~?-+$%yx&Z(vlcLUR+q}N%eus#m01F7|059%?TH^(ld*VJof$^cv z=p6xtF$A9Ae8>}5c%J3B7vONP_a`zbqk zVJ{fA7=#Qwn3L^iUkAuR0H)HssH7L9(*b4Spl_%rzVy&OSPdvg06YW0571tW>~-Zd d+JAli8UQPB#r(LqP6z-1002ovPDHLkV1k_JKlcCt diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Dates-Adjust.png deleted file mode 100644 index f8bf558eb7fce615e24e841c60cbd8d5a0f0d771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;C`m*?RCwC7mOW?_VHn4MCk@m%x%vg7Z3UsB>0mi0 zEfSa7NrytEf?x|moE!=&7^sVbr5zG<5Caa{&B3CG;BX{h+F+rnAEk>O3QDVzYtr83 zamd%*<>Fni`44yh=Y5}#d!F~ z=mjBPkjlF(>jfx&tJ@sn6na6}>iq0}$j7?6$*pKahQ@q3-!8)L{*&ZZG>)9Uie3;5 z)8&w>=m~}C359(-*9(Fk=p`6>$ajbHh5+|pefqzi>~vYHcG29Mth55tEJ<<4ki1@$ zUw^jc=Vo3ue*Bj8jV+mZ_FDQP6JqNkHz?QAHhJd!re_kD2G2Avkt?z(Qt@#H;#nTV z?y>$Qji%|SY7oH2XOr_7W~sHSA{8I6@u}D(hr8=vXysKn12kkXo1C{u2N{TGYf{(I z3rxk}^4K|>ji%}K0FE|tEz!-t<807*qoM6N<$f)MXDSO5S3 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png deleted file mode 100644 index 16e45420228784209968601101fdb1ef15cd0fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 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 JS?83{1OSFPbmIU3 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Details-Show.png deleted file mode 100644 index db15b5664a27bc19614a89f5de440424a5f99cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-KS@MERCwC#mOW0xKoEuBB3HhG`?MhicYuNu&`{?R zv_!NKH3bz1NN8xNQbZyZg++ywCMhT)|Ezarmm*rjI?K=Eq=>{wmOR$@&Ad-LmW43} zyNm?+&NqA`6;{uP#1i^jwlkEUQ^2TPkp z6Ky|cp~$u#{|@%hLFmN64dOTsYq0l!74HK8+}0h>XIO-g00000NkvXXu0mjfiSM;9 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png deleted file mode 100644 index e18f1278ee3d9b2cc70ce0b48fba10613ce289f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 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 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Format-Font.png deleted file mode 100644 index 2aa01b2d90d568cc8622b96905a9270d68abd13c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 zcmV;K17`e*P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<4@pEpRCwC7mS1QTR}{v7n*>_a2ZI!9gA%PMZN(=+ zM4@01L@oH>Q{1Sbi=}ANJouncL3}Y9q=AA)2)eBsN~yF#h(--mjXng;A2m&_BpClE zYV0POjT`5jiV=6}hz)y`=Hkn!MeFBFFE@sWhZM-sMn^Y> zs;^cfCMkjm;3A6S7>+28JI{$A+7l(RI6~x$2m^@$Vz*+bnGY(CN03J568$HEm{9*$ zJzGEDN@Q`wm&=b>6i3~Nbpny*K+xFN$jVPvGV8-xEGk??$($0po_5jP-;4ybw@Kil zHn|Qaj=Gz5wA^bU+7k_|*K{7_%h@Gp09@aax@%c?aQ)eJ;>kGnogo#%_;!bv-;7Z- zy@=LFm$>ot2BPL0Dr%f)>ZN$yZ$4p0g1ay75^fH&alyuvpc04gqj%j3}j z)CIrT@t8eFIskA)vYT9dteEbhZgySSMftgMKf-N)MyTnm2B2%GgSBT?;fT`rV3^v5 z9zXX*CQDS1UO-xz0`#iVli|k|N2pzX*q1=n7)gv%aiEQws->*iao#1EY;s@+>ENC` z>E?OhNk^zW&_-41XUzS0THyPPX__mzqspP5yIHcZkmXB03PdcbXeNnr0T)$Hw)9hX z@}E@kHS`1v^c`7L5O|mY+`I3%HN>xH@6h?nSLEk|N-ABKhEJ!m$jMS@PJqDNG)x&i zmK2&=?-M=M%i-P2$j<|DQac)Wmhi!D-y30m(TofpNLs{Rzj4W8O}*^=;VRvI|FZXJ zSD?YIue#uaeZ8-Z`-6!L5@qqAY~81nu9@fe`}B8P>sKRcq@V5m51+rg7oEP;J~fAa vC=?2pRql^@$K3lE<(oEy0YX##+wx`r;X^ruR2^=l00000NkvXXu0mjf9v7{) diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Forward.png deleted file mode 100644 index 2ceec67ccbabf86f8ec28e00d2587677d3901165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUDKP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>KuJVFRCwBymVazrWf{jm?>X=N(cAWR_qKOk*R^!4 zqtFgE(Xp8fq8q^tiVhtR;(&;Mm?(j0V$?qf2^y7PH2Y(T#)OFcG5=6AL}P-$wm>3r z8!Y2z8T;kBmb*?1z3n~c{p}z3c6PH(bizU9{TQtQp7&h~-szOJ@HYd)H-rLKB@ zYG!(B=H&Er?T|^#OTg>E++rZHi0W&klwTPf?z?Yz!{F7|tzVrRSlcUB^jFB`GtA8; zoIm>^WAB^^Zy!6Aj2%1m-sGu^&wB6o180G-&;xM=d{ep7@$kki>vr6J_sz?OH>{zf zvq%&RLI^nT@xh~7zOL78%A3gdC-}}X8w9^<2tz9i*D`>7N20 z%o~ZC-*;v*@$Rj+Z~DTnhi)tM5B7*Sjz9<+7eu1*>XYAojnrvUt4M50ielM7ySVZ0 z;o|Dey*q(>fOZxr&t)>v7jN7$y!%VLx3=~4R|KMAUH}L|h$3wBM|pnVUVi<9cd5IS zx=pCtl*B7qR^`Re9RuaAq0-lZZP18L1XPNh9Xmg>Wu&Wru!j%=A%tdF1R)aGC_+X5 zP1p1L_VU~lRZ`pZ#H1uHrFEc%%KB2DY?GtFG5{IJtn2RWylLIWwNWM~@xc=j@%Y0B zmfRrDdw&1S9(FzWC_~>;)SE_Z*3mK4Ci8#Ketve=jsS_1wh|#*Uxfu&#Shs9;b|bL}@Z+F7(W=%&$+ zpSkLC<)a5sMv*q*MqAQTD!6HX1kcMfxAXY))XZPrdF|x2mFvqb*>Z-|DU@p%GR;{z z18@mGKKgPa=1sVE7Ii_R#`H{>3x5QTEvyIEwU+WvZu;u_?bmF-O1i8UiJN!30oTq@ z_`|0GIJ4t#=;kxyZDX#PP(PSz{gU||n#X{13yj=%7Je<=8o?wh(|oAW|7 zJ<&}M3c#5iFQA=4HQ~k?bj^hHh&JY^IgI96U~;jF)=tDd<*SR2^xe`kT-j8Xq9oA4 zTuQuljl39d(B5KIq+v7U96%36oGBIQs!&rk&dm!;kH6-POG5D%#1zZ{z{#vfmeZKsggNAGQip>8{H*~ax~j1hcXq}7B7!u zS`qqV6Li&BJ7s6ww0}3$!hS5zHS4jxva1kFoXDctvaBTL1|hkgtSCnjIqyh<4pTUe k<9G|GHd~iP+m`@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwCdmd#4TKoH0O(O@4#0#dy8KD@dd=A z7kvP85T8Ku1cK5-D|oHFdJzu_VlG}Pg&y@Fh!U$MnVBBaG|48>w7PP?aOqDlF~n{O}_mj0Bg_THm`z)(?$Ozwp+HF+Hct|h&grM zTq#Um1$bI0Rd*tp(m`~1Z@!!ZC4)?fEZa>m0MN7w?Rh%UHx4okcJAXcImpyp)tN;v zgMe5sgMj`!gFm(P%f5ZT75lrDx~^Kz-BJ@~SX& cKU+ov0Ffs+H@Xh9Z2$lO07*qoM6N<$f)=X5a{vGU diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Group By.png deleted file mode 100644 index 70adc01c8c1dc321dbe3ce0b35f566218bbf2385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zsy*Q8;uunK>&-MnE+#_(*ZOHPt{bifS1{@)E}xoy!7Jy8bw=vKoAW@Lc+Kf#x2y{p?#By+4}%Vz7^2ck;APt3C6z*}8Rcmye!n zTip5Ad6)R3r2fq(^~xrm_V?VC_jvg#5t|z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;rAb6VRCwC7mPM6#D!La zi7_#0jFFO{#T`qQ4I9`K7rJzXaYI-Vb%)P|#f52D7-D=3QAtgZPAi0#@@P6O4DCEz zOrO)~gG6RCll%Dod;WXQy(1Wg!AU+2PWTa888j2%G9X%-JyWx+0KC9$q*()C7nrW# zwzUfPdOcO`p^zxf1j-@+I-ngVf=YNKvV|-k0MOalL0{iFLLm{rb9UA(rdT5jB!S1R zL{JHrq&U%NqSUvyCnE>~UayBxNEGGMQ4TVY0Cp^#wr22kX`h%Br{5o>tE&ruR4PsQ z)ol#HX^J3{dcUk`N7Zx&uU)6#{{cyg6Nzk5 zNN2IYM6j-0lH&9Zy<~Lsep9%r>ZR}RpO=Wd_v3PP<8pPEQrJ=Hxw-PiW5YE~=c4BZ z?t6=7B+*nU5@9Al>9ia02OD}`4{pBA{_w9AHiES z?(|NL_*NR`manoZeiIs2a^Kt+*Jlnja@lgpbI&(|N} t*6-wzu?b^6y!_uT`(hmkC;i*DP#fr-ElL0Y002ovPDHLkV1i9vX^;Q_ diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Minus.png deleted file mode 100644 index 1b2257fa1a2a432cda4573926a64381c21be0d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%>MaSW-rmGtNTe|u(KMq%dOgDY4Uiv{pSNC3gJSKdLk#wzhO=Qy@EG&VLWTB=UX zYCAvISo$ivOQZaK35mKI*F_88%+Givf6u_cz+-|0`w^*skEJCi`gA>v&~e~h)OvP{ xr)x*Y#09%pdln!43Nrk{Jtm;d4FCT#Gh}B5-h8+ID$sQd44$rjF6*2UngGaOS2X|t diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Collapse.png deleted file mode 100644 index 0e7c2cc9dcf7172e4d694f4b156e5cea21ef9e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs%`LeaSW-rmGtNTe|u(KMq%dOgDY4Ui}5gWM!85~1_Oqp$J@T!N9%gTe~DWM4f Dcm-VU diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Expand.png deleted file mode 100644 index c643a7c0cdd35604de00c74c5c1e727825a31366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QNf;uunK>&n!Bg}~>G#4ZpV*H6e)M?O^Rs7mA6zQ*w`x*}CF911 z9WI-!c>7Ou8GFx=iYRaLeUEk>OPuQWtu$lK8N>N~@sD=D zU0OSF_B}C`)}Aba4!+xRvzh|9^XCT}EN%-h&smH?Yn;eBwmM!UId+E1mPW6}+T>A)~EdWJjT^ z-vq0+2!{hqmuegMYkvHh{P6gBdmj6`zo`-19`k&C%#ik@e|~+2@JWNi^?w#kWeosQ zf4u9o4oy!=X#4-;>+}g#Q>Gm4n6pMgQc_ZaC+$!C1`8q8GZT6L|NG2;_~-2J20pf1 zUkWlGZsl?NlG2sQ$jr>#e6Z)g@G{m!(?7p~cHOW0llbG`WB$Y2<@ZbO`&YqlE)#8c zK#pD9NP>IQwTU?vW({}Q4H66<*E{xdd$tLSyJSo|^7N*_+oDUl4N;F|)15*#BwW$| z|Nnn`@}2_;$Lcrl%Kb0NllCCABj+Aa)N=zv7N?@>3o(Pfu$hPNGaUd1r`8dE`FTJF O1B0ilpUXO@geCy^v#uWi diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Outline-Move Up.png deleted file mode 100644 index 3dc2673f686ddbd0a4700693a7b6639cd297f57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|>}7ba4!+xRvzh|9^XCT}EN%-h&smH$43R|9^oG$Br+tfBd^DfgJUFOw;#u|2Mb! z@p1magk$wVItp4HF~9Wwo#zZnulV{-x_Rb&8D>TA35?vDZU6s#ovwK0Xh$OuJQO+H z^PflDNJ4WH!`%<^`~MmJ`SG>=;Mthj8Qu{drhlIMbKH(`Z`JUgal-J=^Y`{V_v`;Js}f7h|om*~))InO`+h$MS;*B8l+tkXNUSscC>+%K{3|DV$z{vMZaQMtCkUw!?G2FZVa zpUdBx;%aa>u*M;jdqG>h@)~J0yYXc+0x|uA; U`aXP&28Jzzr>mdKI;Vst01BP7JOBUy diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Paste.png deleted file mode 100644 index 9b4c3f0b6c40154f2d9b9a6536957f315743a2ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;SV=@dRCwC7md|SwK@`WoTl)uyMKPe*N<|M96iTUj z4Hy&jB-$GMaS#cFYCtPJh*W86@CO)eBuEhv0!4Z#riT=~C=?Zi#;Rb!i-#6byxFvw z*?H5$c9-n#Om-D~mtA&eKJR_MZ)Rr=DJA}AwAwd@VJHU_&%swg>M4w{2@G4oyS#B2 zK&A2J+bWRC6&;+BsQ^Hwy?YoNJ2zXE52caH74YZB0&ZS@ z;0(Hc?;?^IL#a&2J-ZJnI7o0TFEUJx4_5%Ux<&aB18kXbj3jH7KLfDW05Kz zzDk5%nu90Xjiw5Gt3wh1;L3>|fn)DJ|Bkk3UjBZ0$pC$yGc7Ck_CIO9ib!y01KIas;LMch zk4CU*!+rq3)#98#feP-msBh%6HsP%cyKv}0H)h{_@GH>4y$U9-b@?jyUhQzLA|2e@ zgCKZg0-pjEyfJ|wAUUeHXz)}AYIUJcpn^*>9ry|(Jj(3xRm@C6olDf}BETXA-0r~& zBc&ZS+QBswUI19W^6%g(V6%*XFvE7)P8=$()ba4!+xOFCMckW>Wfm-nb4&MigHg2y(^g`2^&QB=OWQq`8;j>Uwhox=8ErS@T zb&u2@xKBSeMb%MB^C-)wUBZ3u?*{g}3mGe`u`mc+tT@JfOuORP3#aHE94jB`#+E)R zo%cAThQ0Jd!-*gDOkS@mn7pz*l9%n)V6pdd%;L4&$oz2YBhhJllpn;oGdP^#sZxCx zy|MrE(;{I*wr&;4Gn>Vp@lG!8ezmL3WLfY|)#*`>KNn;qT|LG9>!jVMvNcur_b}Bf z$_okn{VRRwa?wr2pDR|qH1oZjW0LuCM#Ap<=CKSM^IQ*^i>?*b-I*o7<;=!Bud4k@yV^ OR0dC1KbLh*2~7YHaiwGc diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Preview.png deleted file mode 100644 index 4d185c12c186a8e62bc67669365dd1e5e027c3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmV<9104K`P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZTGE z1ec&I0iiy$eNd3RFGvNUf*^{Bf)6725+?jq%i!{dxKqJAUA~riXL=7iDN~4e{QaFVPILC4dkTfS~5v6yn;7 zxDYihuSeY!qB<3v%VbHXXUQ8T;fPKm5u>X;0>Bf=SDbZGvnZGqQl~DEH%vMQcGA)p zrMOyP^2{{hh|Z&l7;n7#Jm#87E|&w~=)?(UfPz_J;^TAl4EOWk{XO_JFN&fdrKD_@ zS@_{sCeKW>Z~q8BpNbIok~;g1bCXl2F3|NrFT?SEdV_w-ri&}r6y~#T*3jvB=sr4j zb&^icB7{T=+j*PLWwPWAlfI!oLT)!<1vH>gf?^r28DIz>(bzrY4U^?;0U_@KkWSCi zu`5bI_meTu-yj*6V~z2vST}QKQCbY-L{TQ&KoAJ13N*1--}SHfY%K> zGzfcZC(BmBR6+zI8dtCW*|-;X%s>c9IHFT6RRB;F@VKGX4-sz-)aHl&Ab6`~swInX zM0WHa!-XOrvVLP&zTkA3?`NPlsWykRnYU<85zmX?dmoc$hv zwd+4Ie}0+Q9$zF7PcnAyEsip@IiN0H2YEeiMn?zvBUfN<>c%XJKN3TAxj26KGt}a5 zT)tjm(3PTXZ;}+_bf3Nr;N~oZta-96q!Et~{A16OlBW*6$dMODfro(#d#n?*?M<@y zA$IqnFO}Pts4iYN{#Nn&`ssJhbL{2E8jwLX)qrdOtXrZnSA?{�?>7+f6eBHb8b; zC&^UXo0sU;iRd&&p8bgFBL^FhPjbz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;tw}^dRCwC7mQP4jQ5eO46Y30%6CpVg=|alXg*D2! zXc2C-G@=+VX_ug2g_TeX5h}08r z?$_ew=s3UE+ZD zYjE}!Oi$rHSc18>1&&qzQxjqhp7xIo&CLFi)t65x(Y-#=bdM}*y4-%$Cz=D%9EePO zHtvlzl6&B!A9PbV^~p(z{+bfOrv#-GN(nxt05G4q4uIR0ZA>gXAAl7X%KHLmI+5%F zpwNYR;0^APUc;KL$>9mss^8~K4^pm_pp@|V*%YMhgu-IXnVC>@7~&I_Etb-`!C->b z>esVn8C)sD=DgxlD=)vg6x6EgS>#MkN<@k9?&CyQdvdaN(bLvIRqY*$%PQELVWq39 zlloMzzg0~lg2`m!!i@*AJ136JtcGwUd*g4vd8PA{@n41fSRsY@(7x)&^(Hs{@1vRwi)euqzbny z8*_OLdH07&-JTXY2ho6QdW<=^c=KV*JEq;95`7LrS+t&VV=N304us4>*d#{-u6e@e zAR<8|@FiVwda(pta4%zq@1J^^_%V&mwi&C<#+R>?p$Vb^*E|ZX8Jgqs(JmWbv#>A^ zz~uBi-K}-O=YiL^3SbrZayqKeWfRwr<+U-xh$s0{{!#4&q5>S3Cd!002ovPDHLkV1m9I BY{&or diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Print.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Print.png deleted file mode 100644 index 3f6e3908b1aeaf495a86808bc2c6f8d6bfb4f158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwC7R!e9TQ4~GXrb!_|v>1vaYN^^HZDVVS zxX|jx`svbEM9@Mu)|IFm3w2>#HlQm5(h{qiV4;{4MT+>TAetBtxc2n$*&}nKyTabIv>W&V3^=GuAVzu+Cuv06`FnK70^{)9gevhJXidH`Mkcoj`xelcBAh06?f(Nqr@@5D`8l<^cf8h9>m( zodYp29-1m?k=I@40x@GIHdof3Jv%qU9|+-ipAQFjJ25#qfvr255TE^FB^VkBa$9Q$ zy0Vt&L^$BtZs~EN!v5EE0ssqmehAEr;X4mm)$}!ugz9P=>bErl0G>R30RRY(UKeZt zplUj9UcFEjL{El2`;N_0WaF7H~jb4 zJURDwG($>Da5-It1f?u0r+g`!kG}~+lBCt02j#%W(}!^?x)HKsbW&OrAxRR_l30G4 zR-!x@j~nl*27xH1D%(M&w#WhC_GqVBz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;YDq*vRCwC7R!e9TQ4~Fq)Wnd`Xd1*11+gHlQlp|S zL@;3eP^p9pK?n$46cjfGEC?c!jVrS#)^4n{HK99&rXUIuaMh+@<3bS=G>d*rZJ>Tq z#LRuy#Wd4QCX-Ct_+S|3&b#N_cka2vn3x&=bD2vYq7zdaVte>#1T(J&O{FoVaAsDn zNNkeVyCShkj!&id$ocDBPQc9AQV$v2E(gM)Aj(MqY>t3P008VZi!O^3~dtFz}%t$y^c);M|@r+-ki6N5qOH z|8F?#H<4e-BbUno0G>w2jT1ciG>n(?&j0{TcG-zDKVoQo(XU8#;^1CLLV##LVs8@0 zPcXfhMDN=kP2AVw#qnMHFq_VRNUVYj2-1#GRTtf!3d;BP`&ha57rz33(B|~0_LPE? zVBBfz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;5lKWrRCwC7mOp3|K@`TnT`mf@NQxllNRdCnA!y(< zWgv|R$u;3x3+scV@D9Nuf~`R~OGP0~Agx#=opMd;q)E`&*k~mfdVapz3%>EAB@{?p;fm0fPP+gvObxl*Y!GlQ8U2e#P!_|vKDCyO^s zUaeN`h-~q^HZ|}~DGeEhP)b9E8cL-(0JK`iAR=sSwagmdm2aMSQh6a6tN9FXO5=jW6`~q4t zRH(7OeA9H7I*1%;%{_B$Hdzo2caXK770=?*-0vW_z|ONOrdRhabxqXf3UPrUh_)Nc z5lcZa(`ZpPPc~GTu^fI5!cc=qV&lcrOS!mRUb+}j)OE`6;NY!QM3R6M0we?^39L2u z0RZ2>wXJ(#&OsvH%Pg@;ygCHr~jZnBNx`1mc9O0$@sU$lx#8Z3|vKb@q3 zyCe}WmmgTgRi=O~{Om>5izpGFm?&Arr9*)N0JPrR^_q<%o|zr%L-gVO#)X|rBIx)I z$_tN~;dveapi-&-mlwd{;XCtB_D21x@G;`}Hvk!=UCp+d6zTu~002ovPDHLkV1jic BB-#J~ diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Search.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Search.png deleted file mode 100644 index 3af96da8d230999af504afa00b7129532de6ebf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-?MXyIRCwC#mO*P1K^TUgiAfLDi}fH%Nd*ro#juEw zpobzALQ~L-u!uq*km@zCb121Jd}h6 zlVVzX5c=I_=AHTYp6_L5gi?x=3=bz9|9=86fDmF}a%m;5&Q_iNIFU?|PQMW2YLrs@ z35Lb;qGP&DD5VAvEv>{AKt1~v+pgd^Zhx(ZprSG#;C>jYdb8!;gkhtfn z2;T*)j1Cm3*IWvPG5~WA?-348qZ?IpLn1EwdG+=a;_3}FVyc(KbFjJ5NQiK7dStnU zLYZuKd*piH=JliZ;8)kfwqY?b;T_+m%THb_fWXuwKHnMKMvHcP57R2+HrnKJCW>yK zt)|74-+zhu`P&E~=ybZYnm>__iz6G@wu5OE+1Pk4yaTp7z*IM?bj5jc8GYdJp4V?Z zh^uSCz#n@m-y~Ljzh|e{^=X2C_@V)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ{m6@)MrB@RsK&40z^)?m#Avpe+g_^ zR(SWTIiI7doM^hHvo#S>BckKB(a}fa8Xp3oa`m#*J+*KMPiM8QQ_o&Uwm1k(yCO3k4hVpq#px_BNNOV99eW4CXgZ49;% zY+EM$zaUUm#3RAp{x~n~ZKm>_Hdd`zNaXEY-+m(rWf{j$r6N^DI`?D5Lm*1YTbGIc z6a(Pc8!y0=%h8psC|wPCGZ#6KecT6bjBvB(fxCXEKhB#U-tYm8jN0zr4Mk^D%QV64 z1ves8Rb-Qq9wZ|@$g$6E@k(wcTQ{vBEzM%?V*%c;@5UJ6`{y#L?y8`3-OA)C5|552 zrKjx5Uqg7?)05YODA~_0@gHO&?*}3uP_ygxjPk{FvLz^C#WX^rv^`k>bQ5Yh^MwRxF7y} zx{zlInp{6xpGQ{lS*j<}q9a3StPkn!p}bE$E^D9+@>q;e5^2pKIn7bM;gx4(sPN15jIkjy)v>;g-guPKqqc`qzIE)lRbmpaNXLKL-F>Y`8>EExP*v0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpcu7P-RCwC#lrc-gKp2MK1Q$V97o8NbileLO(4nP6 zgm&)cSd5E&Gh1+t^ z^W9x|IU>R=GY0@1$3c>{1b{;Tg3rAL02i5byy!V35kZo*gd}TMcg7?6NzWWmrPiW7 z;pkS9wFD8tZP|iA@aLB%TU=qA%vS5O0-3SD4cV6w!8-4`Yle2uI zS~q;dyKj9cs@_N?V?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm_H=O!skrs#sx8+c2Z6SSq0( zXQp6b(6Z!4`u-d2U6eFfA7p>)s!+gn zb%nJvYq(EGtayQ-%TanXm@SmpQKn;bfx~HRE2~>%7>fQ2h0`zRlomj hGvWWj`0(|N3~kDXn3}5p>;ig=!PC{xWt~$(69634e6|1p diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Table-Search.png deleted file mode 100644 index b145e046edca4bc37d1cd8329f5b1ef49a442d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1143 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 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Undo.png deleted file mode 100644 index 0fe4cc99e2b87e4f0fbb8cead659d4461345ed92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmV+#1m*jQP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZUl0>ZFbpY3e34 z86t{^N_A4LX;C3AL==iY8yAAMT|~u=u0&L*RZGo6q|!wRS`(^Yh-kckgi#5@yKE5T#vsHkSkEe&0Rke&^iFhzQryIIgpaMu#!hHt>Zp z(uap|FLAkrbM00R@JcNRNK#gW^dnFAu|Jk$8>_;aoHhgpzOVJh*Xtk6&DXc*W_{r} z0i*=F3=Y%e*tE&CD>eD??zH*Zza|(vne^`}67a8?;ikL+AVv)1)I4XG)1eA;1j@1L3fSNJK+4sv#EBpa^h1 z!ike5Y)Bd}z4a~K*!B(ze)WgjdkXve#%RybQ1DpQk>eAm9T7-|a73V54p1ysP+BOU z?$r>ECSZiuK`92uQJA{u-Zq%B9tH4O%M2D=2``W@TKfEW%~1z`{iW0dp34?6ePIG+ zXYrWpRbQX^YvR~^Zi*BEq=3IKd5nM^Z8HD>5<0W(;PDebEkNjE1-y{AF>~o`A(q(q z^6?MuJ`4aG)1U5@YU)cP+_POb;;7aXTu=2jo_kdvc(po&E}Fn?yN=n*lf-$~Gt1xr zF#Y56u2S?#rIdpr0K~vRe%nSAjJBj~X_sUQT zU<}}b*&R!i$q}Stkbws)vZNBm#TnoC_qFPgx)anwhFp@X&LA|*cN`T$BV_Xdii-@k zEfMS15Q%RX7`SU>s1*T=YFz+>BEYgVxNb8+QwB405^mrCB$3Gm5U4`>E|gz0eXlk) z_|$i~-w!`@ym3#rnY@K-T~G?>j%x7gG~Je9ed^{=w5aLJety+?tHCPO5x*}K?S&#B znbajgodmSj1V?u<4}iDUNqNtn%ciumJDIS+7(-7&yL#?|H-kI%YcsCBV)hB$Ox&Rq zL#p3I)unIVdoq&isG_x6|FdV4nnCYyJ<1J(Bh_!zC(l>k?)V<8)dqL|X6d>*7z*E% z6dK3ygONZt_$wbi7r%H-2sAUa*9b))j>iPHrX#Q{{(fdkJJ3?bYk6=Q?SWl$n`7%} za&wg=(f=3&B~(xo&ke4`^XOKi$p^I`ig_EMz@K@j`9EdU&TKI0Jz(% U0Z)CITL1t607*qoM6N<$f;RByIRF3v diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png b/Varela/Varela/Resources/Iconos/Generales/24x24/View-One Page.png deleted file mode 100644 index b66609e7e20872813dafa049c36f0913596f70c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-ut`KgRCwC7Ry|9@P!v6>rJ#R7XD1P%AXP+hsJK{k zX%P`c1gTWp;#392!CkRX1s5l&i@OK~7dIFGg-aKyB=5^1eaTDulE!}A<=rIY+;h&& zyDx?i0>g|r0OYFKB7o}wW0&fM=Nm%^fm}5!itB}*P&gPUw?McF!mW00VSk~F=6BPG z_d}5i8(4zMwOV`hTBM85Mk`{O5dfo@Nc}iPI(iTkh3(Z)XvPHyWth(#qcWRx6sQsF z)gB4{P=B-SQf!K>001s-8-dSG_U4>i?ZLkaTplfJnOlT{5au>~7z*;6NhdeiFNo-& zfK=dTZs)E72~M~tG{%+B(Q9>z{inWqQpP7W;~w>|(^l;NuO9;jd= zJ*oMMLM&3}3XlLH4CURFmbt$NT`lqtEg%tSi+bPvidrBV1u-21$D%Iagffpsa`0&t zNCxU|B!uDR^&`^gP^YT4fC?^ItnE~ykM8!nTrdDeX953AADj8Y!SuL&?VI~SxeX3| z5Bv(8wGZ$P1$XyPeVlJbXo1q<(&<1C{gv}{2>^^?|F--M0Dd41e-^;;e*gdg07*qo IM6N<$f}T(5eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwB~l21rfQ5431uV!P=R)~loTqw0j41x;8 zKx?6q3r9sn?B8JdFG-@vq>`YWY2Y6asZc2wF04gCh(-~SMIi{4AOwMfsnE=*bML#i z#hZD}n|w1b>%d){``z<>=Y02|wZ<*-0<-QQ!2aHpxYimUfWNz}3Fu4&=Vopa!(2(` zX7ZV)SNl)D*a&V0?iyNa%J2Dg)5&@pY3#_Pu`-LUk*|)5u4_RWJ2D-26~)=Kw)OFR zYzIO`kt&K%QO+E>$Z~Mm@FmN}$%8+AG*)NX_ciqcK#uh$cK>Zbv9!Fxm6mdfN*^)y zcpE}Rxz}^wuG^AGez;`TCI^`RE_nB8fvGq1f6O0T_F)(X0HIKrKwq`WObFr#U&PhSSK+;;WeT{5DJB@6Asfi_>AFUg-8-`SoD4(LU+q<8ru43 zI9E(}{}adKkCSTvT(~@B-_=$XFgP^9gZ90cpAF=m*X{xU_0`9zuLdKx&swz)0S8`J z1(1zWnyq>L3=U1OGF5{#O$sYo3EbJ~Zjob$lZX>TDUCE0fK5I!{t_VdA9xXolM89u ze!|E^s(BO6bU=$({`TRoGW zEIM&C%dw`ee_$zR*qvWGb;wiaA~s>#EwX?N)`fHwE2YwsCvK6_CSbT*6ff?2_|}s} z1qXMf#C^%5#XCD&mTPsL; z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZHib_xk2?+@yu|e_*sr&=1kN}maEuvLb zQ6W)Slr&D_#C~t)UKTb^oG8&Wb*j)J8fp=3InEBrUg#rTT?a0MWy?|~jy5QG^Z@}{pGjpbMW=v!SN5`D;)S5pR zz5tSk(PXtLIjjbo}@__;QJPb;-<)|x3!U~?}K`Dhwr2_UeI_)G`R%CHM7yAOft zIN8a)v)B``eASt4a_S*$au1BIBWZS`9J`d9upm;SsW2Uo{y8L@xT-e3XKoFHm z1t*;rKwL0uFe`ur_HcAKRWe@l10b@(3li-i@iyz?A{xVk&1j7<1u9 zgclL(-l|^ybKnB(;;T=Gc8II`Jk%MaxE+|!pGUBsWn=Znr-PYO6Kdn$wh*i0o~QB6 zw+iFbq9k$C&{?D!RT&RG=1tF4Qw<-h;{T{Ps@ zk9gk%fWPR`xqIJzahrMX4nuan5P*F;5(1;bbdH{+Z8^yJcL0kTEueW-mpT9d002ov JPDHLkV1jI7)lvWe diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-In.png deleted file mode 100644 index 131feedfb73acbac46782838aac44f255e7021d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=`AI}URCwB~RqanxR~&xMeQA690xcBU0!0La3KAo3 zB-6QQM3cG1EHS!2!0f}a#ZUV{_F|^Vl6^2)mKYPVC7QTT`ej)bvrHy}87c$EU@b+U zrP3BCw7u%{QuY|C z%Ihq(Am!xDl`HR+0GR7D$n#Qvezo5%X88RaXMK~gGDj>{wvJH5s+3h#ESBblZ2lXe zn7uU?pPm@Fd8N3PM?VkwwHrhA5-+^%u5n+e4SKt`@7Y${(%Hf_wgp*#lh5XKJ8P^Q z_XUUGAs;%f}fN5)6Q=MuQo`>j_hmfxxJdERY*c}M-ujz-GvbrXeHpqdPb#fD0s zhxmill*MZGE27q37NkO1Ql``CC-Rm8r%&IY{XXjTO0WC=c0o zK;<)8vI?vS1Vx>NuQ@=~H#P0H*_?0G)$OX>QXrqxo1K-;!!^NbT4q?1RR|;AukWvcG69R-MmUFq zBOr~N3Z&C8T3S`1EGxPyE1+l#E?+$J=X~$rBmis}0|2)LSXhwEQn9GYvPd=+7#O&q zy?XdsvXCn*7czp~Rp%g$`#hitP;CWz2cO2C>h?f40RuqM(2-APk&MTdrIN6)$00;q03MdF7gk@fznHrzs`AlfjcQD#>dOThnZV zM^nlE3b)JVt+f-?q@Wu>S8EGS9BBst>}=*>5ED6BF=OGVIecd@G4kN{t#o?+yT7&Q z;fKdwvv9^hv(18%O+;DY)yRWMb*E`E6#*|*W?1Yy&DJK4!=hPOe-=H=*7hqeKDRD48^b#O$9|6&~=Su zGX*mdUqtNJX>D}ie(K@S4|jil*mqNr<%a;o4LcbA;OHr5g?=f}d7#E&*T6@zFj6W? zLJ0+#zM76Dr)D2d9rgMHyL|P5DvOO}ihR*X%+2NE(dpUP?D$AHG4grZvBhE{zFX_oD4oPhUh$tXvT$!g#|1XvM0X0J#n|Kt!sOAAh4V0bc?Rbm71o3 z&u6lU_{>3;8RTWf1R#aO z!;=VO8UVZQH#Pt$0JLWd4m0|3_feaZ>TBrif`ijmS01M^m90i(eg@&x44;#efrBPg4b?rYfF4hP3PwS})*C103X=0&BaKg3_he*~3c+%PN-Cu!&UCkxl{f?!hFA}GU$ z`C=Nmr6&j_qsWW$+5S-eg~ diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png b/Varela/Varela/Resources/Iconos/Generales/24x24/Zoom-Out.png deleted file mode 100644 index 26cf347d4faf78cc4ffba3c5b91cc81bcbe0f29a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1390 zcmV-!1(EuRP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=@1FPfd*0{yz0X7NuV9m}E?#R?N{%K=Q-ZoyZ?be< zFdbAuDXYZ`7e1~5u%Em^o|pRTOT#|7C>-Q@=X;Ekd5d*A+6YCQT3y%WYAqv`#P6kQ z>E>j5K00#kLUr>V{XFECuikA}1nC1`i|=e}BrvdZ|Blw4{vN)wH{u9&1v!t;)8gd$ zR~edp*~jx*urrd0PmRmZC2;QI4*{iG|Ii<7`l#=fUF~}gbW*N>k7$I2ZZjY(2XC;6 zgd)up>vV=R+32fFN~Nx7^D8Tl)ole%p1ewjg4EmIfbWw7hjz8~?r5QW3+r2rOy zW&pYYs5-DF5mZeFg56=Ny{l^<$9djuYuoGHRzNJ9-5#&!NK2%dRv8B=X#|Q1tknU< z05}?Gasoc*x_1Pbz~($8&>mnqBHc&){)XMmcIDA)YJ~G};Re5lh;<-Q2J8*r5qjN% zsA{_*|tEx=46c`yfYrKBs za;{RYtX7JWtD((JZd^b8OaYdd5LZgbrBka)O)4x0}%iAlg9=JPPiM) z?>hVUyF*PfU^`J%Krbz=nM>)CWNDU@7&<7*f@vD0RIJ$9^b%6P&l?jX_wu86f4Y5t zbm*F*u#l#)Aovi^En+s8fT(IV0A+f5YzEVq2jF;O8e0G~0LEVz4m0t^ zz){Xa4R!P%f}1ziGf&f)Ej1&aNnkpk5Xy>iW;iDNxVhE<=o{ympg0db)bUau+&uGV zSp@$&c_FbX$lBm=Ot^yo2rAF`V6kqLL5QM7sd8o wNvaNH%QYx&QzG diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png b/Varela/Varela/Resources/Iconos/Generales/24x24/db-First-2.png deleted file mode 100644 index c36c2eab20d20acf28084901f064f8fca349873c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K~+G4q53V$6v z!=K0g31fAg=QuHagNFJAw*I$216_dPuJe|@JScr<-OKN+@(;^|e=t2>Df(`QsDyvO z?h9Py(#sZ!jY9XuPCALsWunDobJze4BQ$Ny*ldEWG#kzvcskFWo}zLE|M ORR&L2KbLh*2~7ZKzNQ}l diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png b/Varela/Varela/Resources/Iconos/Generales/24x24/db-Last-2.png deleted file mode 100644 index 97292c37b084de680702f4ccfb09f7e204296439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|=-#ba4!+xb_g6k$}EKOjwvv63`T9*N$??)u%9)5O!y<9ZH&8%QjZ9%z4m_>KZ2e0pq3r-!Zo_=VfIKI&KeyM{^W3lhm%icBW%XM^Vt?!s4j9NJDKa;A?U6fd-Ou^|;X{vg z{2L_yJw0CE7Q8#%(B?+q0gpnNfFz5;LWjnOEKPUaa8@7MiXzK``pTmA2^{ky~#NdKEV%kDthkMHpzn;518WrGyu9~l2R&9C+2 zfkQjv<0jek4O0KUvQJg|c}Io&n6CTzWQl)MXHBfho5cEfqqle<&vGw;h0#UNAFA$n z7_yxq?c{R)aLIjtew_dC_<5z*&rkp@MEG0Ssn3xHY{3*6?t6=nev6k6O@xW!Md dfSZAtVT$Kw>q-qz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;nn^@KRCwCl)=x+jQ5?YW?<`ZTf6zSm2M9brFiL9XpAKC^`xqD)uCM5b+R+WiAqkNVE`I1cgE>vb(c0^WLn} zVgJp#GqZmp4?P%Wc)WR^`TgF!-;840Hb>b49C1@B4Vb#wWdnTQ+O8XU5i2^X-@vEi z*w;eWnVx<{U~qyPZE?@BLQ15_9zsYgX|W#PU}We5zdAeZXf&$$rZkJ)Enu3a)rEER z_Aqf(Asi0do)NlX>2$g#Z0O=yI(mB$hQKrh;{yT++o~UyId`AL{ytJl*9a>`mdAvV zJ)o&H!o!%RX@%&75G5<%g^i62(bC;shQ0aPMl>2#)M_wI(~wdE%@rf_!wPGd$L3~c znVMNGOPw@QNIivcoGl}T(36OC0--07O2##fiysz=I<`ds;K56jxtUoWO~0!Pd$u5m ze~G(dyQglKSDGhdC+)w%2E_`St)s*~#?VuG0o!aHEiY|u*nuT5Q+pW6Jq*X$Ozxs5 zcF+^Q(UUs`%rJBSwzjqrW)TYo*2+K?;NHW@x~k%!SmDa>B^KtFxN~NQ*Bhg-JnxAC zsE_CN6^InxR4Z}1YVvaEJbKyypsBf$P+*Ov9M;&>fN2Q#2%T;0)`%yN$sA<2f+-MY zc1s9T0uXEn(m&7#>uYp%x4U8$i+44c6ge<>0)YO3KD3mh3|e)7ewfIC>M@m|+s&yO z!Ah9SrPK}m@$DzH)ByTnhHhs2g)E&ghpw)y^SNc1NF<_E1v)W3U7TDBtN0L(m&Vza z7eBdTo?t#z`3e27!x6rJ8}r0mzxcIc(g9Y&T)}^dc}7?(22_Q)uHo}#HP_wXf9LVi i>uN9n<-h;){xblz?>NN4i+L*m0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-{YgYYRCwC7mOpP3K@i2Cqb>3UP*56zAU$+gN(WM^ z(BPheL`r8%Q7Rhv21yqwd<0vGs4QHg2nmT)QL4yA3d;!vR7jpTLviQ(=e=WXd{eE? z=lSiMoq2l=ocwtMpo{WoVSlxUC4~dfJ$hFDLZ?6M0%$A~7$v@}cxF^68%1j{ z@%+*N(7>k`itRNf>Y@#CF`${DHJG5v5O&XRG2DBQgDtEuJLOe|uyK0ldHNV=wt;5b ze1_n>t*?f<48axKUNvftx(vY;l}$UYE<*AqAo*l0OE%h?KP9783M&1%Cuyj24QAYgqri_N}$gWa;5abG&e5Ai=YzdGlZpm h2>Zfk2>%;@2LNu|5bz-9=nnt@002ovPDHLkV1krr6fyt+ diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Cell-Format.png deleted file mode 100644 index ab87664044d882096ca736e1d6e38727b20e027e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmV-t1ep7YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<-AP12RCwClmg{SqRUF4ZPm(5CFX{a@ky-`O7uBt` z%nN0<+KFyd6k$Sf2*VfRA5iN*Fnl#9ifo9CPN*pDHnlQm8@rC#GG%HvWZ2GZ>20yM zr%lr2$@83Ze32$?dP^d*7an*>a?W{vpM1Z+-{Jf;r4;va*to~Tp=nyioBO&x+7Ijj z-qm%zD&78HOU9VWonx2fL?g~|WC{BMsA_#ahv{h-i+U7Cjsv6xB8Ht9reR@)HE!Ad zWXdLZqP!s`j+O;%@R_}12uCgM+yHL38=K1srT{Anu@I;bA{-^O9K-J~;HG_+9%<25 z|8nLzTo3b9KEU9>?{uHJiN0t;VLm7eGqQp-4OG+w%fM}qQBxY=pwmPc3SGaQd>q-p z{KMy&UnpitmkbZj(ipQS+GXIhMKHoEC@YH13WF8Kh6`_UB@H zi1o1317#d~>3)hl4tjcgOx~K|$l+?J*3gzsY)XKNVVTQ>qe1dC3t>o1VXXlHUU{xA zg|iTtX5`}86xh&cAyt*d1fy=Gj8ao2S=J+be|dq&9uhoQ5(E`tMGp}ZLB=Pd-0_=O zC5rio1i)pNn=RcA=BeIIbHi@Veltl}pQXLc!-|nh*ZBqJW|k;xGRP&&-5CR6SKPSc zX6P3iV*i?fhOli0ZUt+7^Fx08`eUyCbc3pV6Gx$&>wo2tXOHnhT?F54KgZ83Vh3E# zT$Ig8z$nJd&qEk$-I1_uT{IhE1*KIq9ekV1eVu(XvEjrGTzW z8$*TS&m*;nPy#B@dizJ!`W(*Ro#MMs-vLO%q?8D$&}U~DzHpM2sR1g>-7GKo85^Hq z$XCmWQ+-V6(9!uG*RPyQp6`~<7UinQNiCYhP)bo)Ud`c-o+M=LQ;}a>L1XJ%{QLuy zIK3cknxzBGB%~id(5k)028p2pIu1V*#3GmQYyN?9NZMd?b^qEd-ri^#0U6z zwz+;4D0jXsfTW6}M_RX3_S&mWNGVr;E2L5gp%AP4gov+Yd>^K>F%y^&GPCICz?dzJxu@r002ovPDHLkV1g-@4}1Us diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Dates-Adjust.png deleted file mode 100644 index 15234454f4b7ae28bdc1c7a89234cba1ea94c7c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwCFmQQFCK@^9-*cMSQ^(NE`Qd(3{(Lz(w zn>FaACPEEP4v!cEtpefz>~ocYwH@rqqpmZ=?47T*T>qrM*H!xGMHT!P95qz!mWFc z8iHjFL6^g{oS5XN;ZuhI58i#&2QA!Hmg~t@~_Pfd3 z_shKa;t^6;(OmshW_x@tQ`drq2K)STSfgWkFJGW3{$m;}FQhXvtY&_1!k0smYwSZhsd53f=u~;(vApO&;E{mpZ z)7=>+J^``uH~^#32(j@v^D|-l94#J&rhg8dIXc_roud#DU{# z1mJ0JFS)$hy&P7O1uI@F_`krKZf({fT&WgUHmSMYRtRHlKqXuo9`ro%l`=7vxb4a$ z@A#L+TrupADS1^fyh`>au{g#RsZh*0S?YFWp#LZ00000NkvXXu0mjf DS%qh$ diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png deleted file mode 100644 index faf46e86064195a8ee24aaa6962bbec30362ba98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1213 zcmV;u1Va0XP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=Gf6~2RCwClmR(F+Wf;f*?>VO*D@?*dD7Dow)-gWj zh6zk2pSl2L;=~WegD*zCVMVil@Ju?D8eptxiuCA@;`}&sBX4u``t(x)%YFHLmc!38m@VGZW zcd54RrAD*GqIsBv-aYl{xK7b5rYkA2oII(CFgevyEbQV19x)}-WXLOMH0e!%tPDRE ziani<*3t1!*4*7&`+0$1o#Rr$tX7+bk)_IzwCLgm9&%J}yE;5Hd=)_53ojo9a8|uV zV@L;_TDr}sgQ`tUL#$S-hRIs042g?wUf@AN4~-3fcX6fPBo>i;06-|jv<3ZpbC;3^ zt5u`gnqL(XLvCK+K@`&V!$AMQ%5w^UiV^V|BFaut;>OeQq@27B#^ToM-Jw#kS^I;* zpfdq;51qewe+7PZIu`&eBr;xENXp@Pc4w$&eEa|*sEoO&8H@|W^BLI|y)@(Mb^Ye|R3Zu$lDP)cVR4RZ~6r$6qrD@;2 ziC>C}l-i&a8y&bn5*ZSGVaYQD#03B*y$Jw5PHMhy%ATFK{Q`hX>)WuezO`Y-`)7Nh zVf%>?&O=(OW(5*9C(?7Xb8}I*nW{;Fkbl8JH7+ungSz%a6&v zZuo=ImfzfiBLL`;H+!CAsC+q{#y2fIZ+KEalE{!*534Kywxrl7Pd$-~-Cdt!!N(7k zmzN)W<;byBSUQaq7Dtj?>K=6i0CKg!Ob`ggQX8NmM<0JtRsEn^mwox)Xzu)RXU(Ou z60HL8lV1Y-E0ck6ye#1qr)A>QFzHQ5XbKN&kpp1*th7N>q?Yl0F~zJd?q;TD zN9pL#v+*7X%W+^Jye487)tCqf*tMs0=GL_z+qh`R0ssk3zXvd!u%Z5_Hc4}H{w_ue zMUa+G0P#2i0Iltv#YO4%3wB^RO`0s zoz=%rL&E~3N{hGcHu&tlIQNNyiGTpd*EL`c9fQx_i+&GqeErv{y1Ci>Uhik_+SV7T z(Yz<=YHaWD8cHgf0I=)(-_rSdX^3GhXz20R7`e@OzUp%=ACaN3n1O{T=|o8)pW+ zDWRFl?$xNpNWWkSbpY1;dzx`*)MBJAlZrZkFCS#2j6x^(ZKDo=I)JPPxi_Q06z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZO(%S;UC@!a#>?|k3y`<-)$X_|PJgTXT%|9?VawIC1(FuzVr zH?l0Q0f3s;TE4x|)ek^lEyYB4u*wN9!M<)~YEQ@PYpr8W93d>}SIc!=ALVl(e2YW!ISEIwh@!s6df6v;!5T<;^aq3($?e=j8OuR%~r; z9~Dmj5!pipnw{hFk@@`rJEJQ#vXTr@fkIE|zM;OJz99gOZyb3Czy;endxaHYbZ&yN ziTsM8A%4H#&J@no$Wk&)1qu`9>w|rlFD=%aq%|c50K|l3Y3Sc8r<8d8emlRutX7uf zFcm0>L44P*{BULQy9vOQH0d@pW2>Za!&ZDsap_aR;+Fhw<9W7lk0^@43|YA6;-x1Y z_&FGy1u&aYytt9Pk0wAsc!aOi70jdt%dlbjm7afR;se`|SyZZr{ z$KLOJl`-{RD@^R6@LI)-&i;%-W;t0+Ij}BIqrCJ&3AVR?j@cOPsjjZx|MszWvt(8n zMV0z)A<9iyV$w#quQo!o1>`r-(Vh$KUhksZlr1f+=wecd~q_N zF4&^xIW04%hRf-~YB7o`)n*m$-qv!@x!E&t^UsAE2=fczgt`P^lQxVb1XS+yOhs=0 zq@D1!NkdE7Ob~us{(EZ5)%*NyU=VvAds;a8s zcJHWjY;XqaJ~+1`MoDR&ndonk%*!HsJ=L|excAokzPvTm+pyeo0I1yQnHr0XzZZ*) zEWehRgU3%a%_oyTKDj=F8NEB&{MW?&aRA5?uDxm22-gVzbHaZH0JG<`zg7aaaR2}S M07*qoM6N<$g2EU8DgXcg diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Hide.png deleted file mode 100644 index 84f6b2408ee39ce673c1f4376d21c1a4db34853a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs=ear;uunK>&-N8u0sw2F7e%~=NwD!$mV~*TQqHsLfnC^_ni7Cy6)?)5p&ut(Ifvz zU06nONrHrgMAoX^yCecbW0KmEE!5{QcX+J#?tXe~760*CjYX^Wa@wBXtfX@~s321+ z)KoPzBT{rl)ON?EAY7rhMV@n4v`Woxm;zl_;F o#+q|P{4RdGoFRNY{_kl9o|dhV^O_Bw0{zF}>FVdQ&MBb@0IC~+9smFU diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Details-Show.png deleted file mode 100644 index 6b28c945093e0bce4171ed50c3bbff1cb1ff4ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-YDq*vRCwC#ma$61P!xv$E1B{Nd4P`Eg72V%PvGL* zmvC^gxE37ipoDmfI9)S(TdP3-CQV+C(nhYkQM#-i9fN&o;vwDOj_ zt20%qX|h$@#2y~sj7K=B=TM0VTBj|^_MB#oz1>X%0ODqWf~>`0000zbxCDVclB?o)1Qvo2s=64Riya>ZrEz`&)d*Kf|e zDamzMs5$4YMCww7eJPdQ-~XoX-?~ZL*xB={#v1nr_h0-hO;fEf*4}^kl=WNPTlsdY zey`uM;tY>6!;e3=Vndg#Qb-bzU*G-pN#>hJ_r*VRIS6wwz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;aY;l$RCwC#)=x;2VI08m?<65V=!UcK@tfRK}LmUXy*R8Ux)X7 z=frpOb(KW)gNMC)|2&`lp6B^J?-UW?Fr$G(jw4nl6-6l@yWPGJ@YML)lS*k}yPaE& zo?>~@08Ol0ivTd>^P9Ky1X9{8@D}I?CW7$pm%vKw)gr{^=613k9Uzd>c0CgW#SVyw z>}f`J(lIK6JEAvVQg7~vs2~y!i-g0Xf-HcjAa?q$xoBds6tuSLEtw?S)`gn#6A0_m zI2;PmZrs}rSfRESO=b8TNqznTgER)-;N>#I!B82g3=_2)-hIpB+O13Y97)=mA`D&7 zF&GDL8n5cId}b1u>5d#c!`}X=IGbB=HiLIHTgGxZKSW(Lw%^684iXKf%UMnW^5Q)g zfiGKq=Flp(GmOQjiN&YsOn6XVF6_bp19dS~fyLs}WR~W+anpbBIee`>AXg}%O|6ib zjnjFj4}gwS=XQQn!UJ6%09;G+T=Dog?r2~mTdE3Ht;62_s64)RoAs@2@`Vz)qA)h| zjZd?2(jPLo&N^v2f0Y)eqkKJA6jnEiOgz^ZA9<)8c&9PZmGy$&VL`|jOU9>=GawVp ztQE>wwZgAihfnT%l}7{5IDO)1&6QW!W)D{P+rmW8oIGZEeKT8P`D@-5R!Dislt zx#b^{Ufh(#$L}(hSd*cN&vL!1Pi*&X7pz3ni<|pmzXdeWt^D@BSY4a<} diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Format-Font.png deleted file mode 100644 index b5ceec7e02147ad30d58de87cac5e7a3a4328d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmV-|1AY97P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_(?=TRCwClmQP3&Q5?s=6ZQuRQoL!Dhd?MVdNd(H zN$FCCCtYd}8zd+T5n*7r!nI45kqen_VX<})5ep45)I>tp|GFBLxQAMEja_wDN9Vm? zhn=0>Vb^hn&_fR%49vXudB5N9`}@ulhzJKc4&i`DQsm)P$51&DweAN*5CqeWs~6q? z0Eh@ggqHR}`j^2tryYsWmbgQ~O_A1vTjXC0(W*a4*+mr;;pj@K>$eLj_7nufK*IN& z2%Hlb<6xY}JQLn_4j8Xt{dhh6q8|>o!w`&fZd^3Wp=FFNk0SYKGHfF@Fk-r4jFWMo zW6l9fmIapc7I;Hmw9dEg3X>!biOEw6PeVXP3{A65FrPESl4ViS%Xnl%rUEcIDlSLK zjHa~Xdk6B;@{oEg6`3iSC_G(=iIoX-FZL)YW1NFCN(kc#QktX%v`^d7>*bWuWF?T5AXPDhDnz6oPshN|eoXo%;$Y66A2?O)RA7wh6wT85 z5=`ADl%6dO*HT_AkN{KWbpSx+Kn1)(uLAq(Swqcpm+E`nZIRKOftl4AR1a0d{L!o| zzS(C%-B>LEVB9x`OCR#V8ONr`aOd$C1UDrBkkuL%l&%_*mEumyIN@2I9Zzx_qk@qY zdcV;MOsEzgq$eaOY%u2iK!ZzvGAr{gB}DnwozJ;5nUf+0DDHL$2}r2 zk9PwNPB)yj7gf>dwl*WMZHb}MHjIarIXH6okg5f=tW6c6UKryXw&p2}FZ@Bt?Y{Vu z#C)#_)C>DG>czrR0Q2o7Dj&@*>rzy@o3*Kd8Ze1*Y=m~u+3&&Yu5WlzlM5+wKt}kr z8dCOI@ryWlA}OJ@scINirrPl(Il7#(PTXs7!Mzy3(>Axt+Adc`Q~TiMbV68s4fpWH zskSS-n)Yx@k)~-Uj8F>}YXC<75E?ZkynFxoV6KURAef5F?(WMq(R!=gq;UTGoA=)V Y09JtJYB}|=rvLx|07*qoM6N<$g8HF|LjV8( diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Grid-Select Column.png deleted file mode 100644 index 5033d4ce33e08b2bdb991b742c7aba3a72553152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmV;&0yzDNP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;JxN4CRCwClmcMHhK@`WoCx@np)ip-Mq&R{RA)YAy z0Tvp_e~?NrkQ4_-B3dX!NFxds79N6+{PYAufGGQf{e{5Wv7Y)2jTH;AdZ$<0#m4|HeFq9jV506f+xDph!$zBBfwc=3p?g59H2q*($vyprfKuXKQj+MowW684 z=>jm7Hhelqy)wfJ$Bq#XB=tKbF#-yJcjKo`hC?esS#!YV{eW4=h=*?v0y~w>Lp5B| zIt;6iN3zKb#lkRZmnNfxoW8lNHT6DS%dnbRDw{X#s0<@?2z10!lfQ)IWrU#PLy2Gu${)%P^H)3V5+x#<1=9&lqeFHa|elJb@_c!l<0|0j4LFA(WwV?n2002ovPDHLkV1n6TF|+^x diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Group By.png deleted file mode 100644 index 95af7df091cb5eac01a185bdb609ef0cd9b35e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(s?=;uunK>&-PsuBHG1wg>e`7PI8O7Lh%mcX6FrS=+6U)i3zAW<55H+V(~)(ZX2Q zghTtv$DaxX4mCD%bsz5i&|axk6UK1eqJR>>>>>;J9(V9C(Oz4&%oQo#YBe;GVo{an^L HB{Ts5E0L3K diff --git a/Varela/Varela/Resources/Iconos/Generales/28x28/Home.png b/Varela/Varela/Resources/Iconos/Generales/28x28/Home.png deleted file mode 100644 index f89327a0512c34e19100cc915859a3cf710d3844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 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 XM(yr;*1ajH`{k3{_K1v*Be? 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 Sfc(MR$B5sR`M#b1E%_g7Ao#NY diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png b/Varela/Varela/Resources/Iconos/Recepciones/16x16/Insert.png deleted file mode 100644 index 1fb5501065324e7596ed437529633ec8775793fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3113 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 D42tY6 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Recepciones/16x16/Thumbs.db deleted file mode 100644 index 5c8b1074b993c0240004a6aa94b15f1f72d63549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8704 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 n@ODQ5Mg^6rt$v(>0J7u diff --git a/Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/16x16/albaran.png deleted file mode 100644 index 6251fbf5e2636727a4fc75e83179e7e2d5e53308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3488 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 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/24x24/albaran.png deleted file mode 100644 index fd60ff3494e539a222ff9615141cf020da79c332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3910 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 UJ6!lszyJUM07*qoM6N<$f?dyFHvj+t diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png b/Varela/Varela/Resources/Iconos/Recepciones/28x28/Insert.png deleted file mode 100644 index 2c075b694eb987686e305a0472e921ace17a7077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3346 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 diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Recepciones/28x28/Thumbs.db deleted file mode 100644 index 6418f7c507b6b19ec6dc11cffe54815d16f3b4e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14336 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 O0ay1=hs(cU4g3d_^~d)B diff --git a/Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png b/Varela/Varela/Resources/Iconos/Recepciones/28x28/albaran.png deleted file mode 100644 index 716a0280d6a3e4d65ce6151fb01d48d347f05c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3720 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 VD~u+bwWa_7002ovPDHLkV1l;N+GhX& diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/Thumbs.db deleted file mode 100644 index 3a5ac328a08c766ffd1b322be2ade38e4ec759a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 P|KF{U|Fq{{iokyXp}Yj^ diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/enespera.png deleted file mode 100644 index 618db415dfdea80261582f4e1f1903fec08e0ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)r4=(0ffAGoa0%N80g6f6`B6f_hJ6g0eHW-7>IW*_NH zFFJahd%uxR#kKORC8Z2Cuz)U#F$QY{5vh1k)y*8IOxx`42dZcCDU($(BG|n_>d%c< z06HtG3P9h#(DyHhJYn}coV8F3Atd6I%hv>1%kbu50b>NS5#p3l&9sf9Z5^tRQbq*a z-rh;pH({-%Yb;Oo6X)fOY9!C#|3u8zV7EIEL6;8%dDaq+3AZqQzEB?*&5pBV!kENG`=XH$L?XY z(WR6$rIJsdQyMYDuD~Y diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/pendiente.png deleted file mode 100644 index d1992233c610f9c6a925925680e40f1faf696999..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmV+t0qy>YP)VgZtuHhV_h@G;MaE%ICz_&*Y9 YU-gJr5IT;{X8-^I07*qoM6N<$f*@dZKmY&$ diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/16x16/resuelto.png deleted file mode 100644 index 230d9269350e5ae50e648f625cd57d02daf17fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmV-U0kQsxP)0$_zK9V- z1UomRm>$D2qN-?Cn#zA19_|4OxvJ|Ldp5;6ixdJGC=5~vNfU1EC*74jKwXAPHKBP6 zfQ*FHLP|;#o2_rcWYwbGoukh`nF~K?A8N;`qkUF3agDZ#cppxhSMv99cI5nO7jEOu zURJs)L=Mez@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;D@jB_RCwC#l|N`xQ5eO~eRLFbRLLY*5fq|>ic3KR zOAthH)4@eZD-{x?aq3_lf{R$*HJE)vA6XA?(J-Y z7Z3m-NJ0p)W%#kvhoCJ?AyPO20EiApk$#yrfVKj`aGX*pNU5Oeqf`<~DzxvOL<7E9 z{e-2N5nR0Og6C2IjWv;wPgrIU497{5QY!vjt8ry@jo+(3`1RWg(-AML3lF%Oy~6pF zhuMD6<#KWE<1$O-&n(U^@yMAD>kNY7I0N4EP>S_#Xmpi-_Rbjy#!t$XSR zOJQU*vmtmpc+GAXt#>j#vuFUf3jf1_nUlBg-f!zNY_a;$5ZUf+E1Z5Zn@ht#uKxm? b)~^8oqijoYVMm4a00000NkvXXu0mjfYMv)- diff --git a/Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png b/Varela/Varela/Resources/Iconos/Referencias genéricas/28x28/Label-Edit.png deleted file mode 100644 index 5305bccbead53172559b154ccab3969cd67b8184..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;KuJVFRCwC#)=g;BU>FDR|62-P1U+j()Ts;{#34gv z;1I#O%Pw9wR6NYO9W3HRK|!4d59^`BIR;WXVL9xuD%g$5j4Y3B#) zsR+%R$AdN`HR<9=dfIb(Lq2}_zj^W|jEGRr@}SODcMxt)X-r@g6BrpRx4@Xdh(GKl zy0TM4iO8KP9T$fQ06Z(BK%%JKfGf{%TpXs>whruxBynfk1w11L0O*ka3>*ceNH_f` z5(^W+_o45>h~c=NPCv8k(r`3R8&z3RNs4q+DL+WR=FU@grk&;{)64<+K=hM_n$ zWYQ_@JJ5(=NCvlwRln!n>MqnLJud9kE>KoDUcO3b+nd2G7w<~aw{lj)^hr01nI<$# w`u^jxV_y_+t(_Ir$xj&D`c2#d|F?b*03#K5bgv~G3jhEB07*qoM6N<$f=0_OzyJUM diff --git a/Varela/Varela/Resources/Iconos/Servidor.ico b/Varela/Varela/Resources/Iconos/Servidor.ico deleted file mode 100644 index ff7c9cc3bb27014d4095afd93a3e812c3497ae15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22486 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 diff --git a/Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png b/Varela/Varela/Resources/Iconos/Servidor/16x16/Database.png deleted file mode 100644 index badb104aa97c644b9d306698abdc46a020986c27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;V@X6oRCwBqlRIk^VHAd+Z)SIMS+iM=_=nh&3`^*05qHmpm)w7 z>R@0dQmih%qpQy%lRJqp1X0*TMFE?EkMwG|wF0tHA@m)D(ZQg*H^a!WDa`a?d_TZ0 zeM3400>45iZG;e{`*S1`8Yv=7ql1CoN`?@^VAt-0B$6p)W^V@r`F{o<-+y@UW94hS z69QgCQmO_|w`Z{(=j)dflM`pBuZ|v{Jm1}$KB59=KnRUnT_u$Dnq65fm5ce;Rw4iF f(M#U6uIASOrd@6EpSQ5-00000NkvXXu0mjfe?LME diff --git a/Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/16x16/Thumbs.db deleted file mode 100644 index 57412b64200b947e09354cd83f7177d09d00156a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44544 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 diff --git a/Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png b/Varela/Varela/Resources/Iconos/Servidor/24x24/Database.png deleted file mode 100644 index cd859e172492b1f45af0c46c8a018e04bffd9640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmV-x1eE)UP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<;Ymb6RCwCVmdk5gRUF4Z_s%nuWX6dzO_Q`u9~h-= z+W4YcL_`Wgvk{~Vw=M*sCI4h$dnxDCPHWrN&#&v%5%JR=chcEzb?ven<`Q)wacx7Pc zyIXd?yldUa3+d|64pNysjsw0@L-63tPc`JG!6XVm1i3ny#!`bV{L z{MEsO)~qo2^zFX)pBX>&-qzi(rPG-_OJ%JEt1!vJZE%1|{5vMg43+ShxN_c{K7H=U z>mQ3Z0o*0fx<~iCGy41+9dK(TM*3(`UtF@jOnYr@WF3^x`n5f7wbHwPiP1KgzWQ^n zHudXDxQ^R!BRq_(V?-SzJN2TO$AUl0AJ?1C5+}VR)(j4F?bH`sK2>CR+c?#M$8c$(DaT2XFO+c|a9tOf%_AcptRab$)sEj8@`I|j zLG9KRu3tWmHTvI?tVM{3An;I1b+)K7u$k`OJ}w;lnrvYW<-sv}`!?gc4q6GcPB1z_ zD~U>CL=+GP(}ck^acdqWLR`mCES5;mgm<68!~L774)4OIdI`f8-s~m9U<%RlP@;)S zTIeLgs2FP%t^+-#D&4(Bk~koV{KfgKHso|VPhbCf%4elRii)DH(9-~Gza$k<+|yEJ%DP?ZQ~XJ+lx zjmfDi6W(V|Xg+M;=I`H@ef!7`>Gac?Z1+n;!`pY3*KFF5%`oaXq;k0)w2le=n%^!;r{cT3^{o(Hr%fBsu4FDvrtE|zR_l5uf002ovPDHLkV1gEV7wP~2 diff --git a/Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/24x24/Thumbs.db deleted file mode 100644 index c75e445fa281d3337e67cb758aca08259adfb549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46080 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 b{yzf%hd^OX9!?AG00000NkvXXu0mjfi&16T diff --git a/Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Servidor/28x28/Thumbs.db deleted file mode 100644 index 8b1904795ef08a4857efc44f9211e843e6ba9070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15872 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 z z$}W|GGj=5dXgZS?SF)kVC~Dz6=9m}Hw;Z*~MLL*AZKJE|*G?bh=JOx&LUZBW(x!$< zRyD>w{1yxP?RDXY(6+9@aa{EC zksp^ZGba4Z5-TD;Va(HLJ#CARnqg zjGfiCdLY2F(it7{e3z;`Ij=#~&77NtL0Rf;%IN6J2;KLGm>RBFWQ!a~D4kgLuQ}j@ zZa{=7?Co4kzUi8Nwl6LJUYePyy>Dz%t;;^)VwKzIJE&;!?a{3JFnTo1^vCMgr)wow zH^#!5j;`7koV8EbACq?Wtewnbv9|P8=SAJUxpBhT9W8Nwj9MQt4``1S6gd`eo0j3O zi5(g-S=3&VDeBdYbI8q~8yREiT%jb=& zMd|YqAZMX$?-P2P<6iNPeEWNQ%^O*aqdnYj6)$R=C!k$2adZ9L4GAt4^UZpi@)HJ; zs@-yL`FeWK#2(w=>Jby}#Ojt_)ln5}=A77!H>1w+e_m-*m2PUkLV)P~96hZ)Ig}(s z004YqSgr0DhU^!a?N1HbN{|5fYX hPyP4nYp#F0|3CPt|9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-$Vo&&RCwB)lg~?3Q545N?=b{pp;92>rbVl8k&7%B zLBh1qHi8X^2=Nf2KzwDEivks8WFQ7?XlN#)X;t9#!&QHS1kt#N3X3L)oJA2$>U-~c z^|%;)%xi|R`oe{K?m6ef_a5#wLMsf;f_qN+$l2mxf0vGd2bZau9`=JR01 zQvi$)4zoBH1TLAeDDVssVQ~&|iz$Dlt#WKf5Icf=&)Z^0%4h3e6Y~4>tk@C6cL4DG zbq4^Y+)1o>iq+x=045SP&W{2Y`t~zEI85iYR~%jL^qqt%Z4I33Ad@Rw-qrM2(%&C) z;C3=gx`)~TfJ<4a8mOl<-|i)Fiz_U=QGuMv9`cmt%j78Q%kMaFWvVJ4`kQ9w{aX&E zaww&%YJ3Og&Rh62c9Hz)W4NnptUSESua_@qjz2(Y!K(+@eM~L=7H;7qg_|Q3XKv6u zc?TVC#8Vo#F2F1U_O+j)sds>%^I5{(eV8ZC_|3H(getG#?G!Z*jpCI`G+dntG}i?f zhQXSn@RVlb@Dak(_i>cQa}=)9Y;JDV9CX0J+5YSNt9(FL>l0dgGXDoyGGo!lBf;Oe gm)d$`QGo3M01&|3gJ>gnn*aa+07*qoM6N<$f(&v3T>t<8 diff --git a/Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Stock/16x16/Thumbs.db deleted file mode 100644 index a2ff4bed1dedb232e57a133642bb1274d6871078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 diff --git a/Varela/Varela/Resources/Iconos/Stock/28x28/Task.png b/Varela/Varela/Resources/Iconos/Stock/28x28/Task.png deleted file mode 100644 index edfbc98d8d7555c00b880b5696e70258d4c7e733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 886 zcmV-+1Bv{JP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>`6pHRCwCFmP>3*Q5eU6_jZV;2x-cq7Lr;KQi)0} zBuxZUS}To55tUGB>ronMNyIA@2{jZe(_j#y5s#<{jg?2zxCnwu8VlN@l?JW3=V383 z*G#9=OsCavbIv`l-}n9RcTPS-Yt3+)E7UOzBj%#BYl-RA#yVnd>?;@t_@st~KtmAk zEU+xi+UnXq4}5WD6PxELU6^l1!%%MEUQ8g+FnQJ<#!X3!SYTPD{A_&(z`pGs0FL-- zoiTvv1;^3SMoEEIHl1(Z)7tE7i10jU5w7)y)m4_VbnE7bvBG@Qfo0^BQJ8O1xn_$4 zQ_`lj*~fEB^{I*x()sBLLuW3prM@W(fUaw^S-g5l)Q05L$pCbJZ*j&xzq*a@mLhxG zvw$NXvUzSPioM$CPg2KLEXv~4_q$xbkQ;aQ%_wf5>upx~w9M*OJChdo-NIhK-6VvhA(wQHUqzQ-pe)pO$6-6YkEWtHvu9Kai`9TBQ zc9+pSErqTJcMyJ?FBL`Tv~(wMAq*FzH|&TB zODIc~_!EdQ?ElEIsU$C3&-lFMBxOvE2}=wpMPz0M!DGtzBc#G_i+?Xo0z}?(f(_mRcb8u!R?tZJb;j+I203abSuhwPLv;Y7A M07*qoM6N<$f@?FATmS$7 diff --git a/Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Stock/28x28/Thumbs.db deleted file mode 100644 index 0275ba67ed5962676924b890dbffde504ea3b227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 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 diff --git a/Varela/Varela/Resources/Iconos/Thumbs.db b/Varela/Varela/Resources/Iconos/Thumbs.db deleted file mode 100644 index b783c8d2539ccdba48b395c449d4be61c82863d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 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 dnJO394*;p3gEH@$002ovPDHLkV1l!R#Iyha diff --git a/Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png b/Varela/Varela/Resources/Iconos/Traspasos/16x16/Salida.png deleted file mode 100644 index 1779d0d54016de6e878960050e52ae6e802fb4f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 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 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Traspasos/24x24/Thumbs.db deleted file mode 100644 index 2c5ec159a0f15f51845a69395d38ffe77cf2e015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57856 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 z 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 diff --git a/Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png b/Varela/Varela/Resources/Iconos/Traspasos/28x28/Swap.png deleted file mode 100644 index 2e23a78da239f1b72cb4c3b383ab3fa609ece00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpz)3_wRCwC#mcL5^VI0Pv*912qoT8)%m)xWvB*;+P z`Ue`sKqOBr4L@3&t+O0vMY;#H-B9M|0w4po8AH%oB6Fv3r^$H>AfrI1T z&ppq3-22?UjEFEvnE@alwfg|v=&*hs#uf_8P)3; zo6)O9SMODz)#^9;RL!1;;R$RuMI;_JG+`b_PmG9=kJ^3dl6I**^YHU9|Hc0={@*XY zX`s|I;s`y1#I>Ebkme7S~-^o2_C6;-*7+Vk50t1wl$4cp=j+@1R=Cot|n$_b3QMB3W% z0>IE9MM{{$8G6FrQ1|*0vYEnACKyh3&lS$_J5(=u^$O%+Oh*1`T0wdooAl1xgbC|= Y0QQeYt(hT9rvLx|07*qoM6N<$f@G)uxc~qF diff --git a/Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Traspasos/28x28/Thumbs.db deleted file mode 100644 index 972a0818dd2ce88a0f0e4149ff465a05d424b1b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 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 UaP~O{PB)~SHiY_K{l6~%KTO2c4*&oF diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/16x16/Thumbs.db deleted file mode 100644 index a4ab3cef5192c68594aabfdf696a680d1bae07f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 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⋘rA=xl{z?G|qXSSM0yNUEHedbx+A1TD> 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 Vn+kc>uO*~#_}zF6BK*G@{tr0(J^=s# diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Add.png deleted file mode 100644 index 1649f3864a3970a2b3cd5aa73f1557dda67fb387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb%z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;wn;=mRCwBSl3j?DRT#&A=bU$TX2+dfXJ^yh!QFJ# zv?$0Z`oLmKBnZ3_^-56uN-x!$z33`0Du{xjP!!z2o02f7AOs;QbSVnkMG|&(SNvFU zW}SCuoO$1K&ilTn3)^v4?YTM!p8xOp^M4-UoI?n~d|f`hZ#%??D}Hs!o$}np@hdY& z-a9cq3cyZWvvC9gAZe-bQ#*Ed=d)jB(y8Y&ZC-IvyLxA3U+1}ZH?7(@-*fcn&Q=ND z{NtO0ue8T5`oQg~_x0rwfds)lCz?;h&jrASBS18+YpT z7P{!j0N3tM4ve8xtFd=@h`<<5eRBQ*psy!CFgvHQks!aglQ&-~B9aKBLjd;g9|2(R z@DRs8{JA-|nL*mafAQ&lUVmW)&khz)!VxDiNs@4BXtUcgxoj6exmJ4+;s~M%xL&$@ zUWb7-I>hJ@YYmaL#BoHUq2mkxl%@dAeDUXk5Jl@6|2nbx>#kgO8-Pm^;yA)u%jnq6 z%X>ck{SBbRL$zRyW0!6ns#I&Ytqw6pW3*han)vK-;sp-Y4i^imSp2eEh^+_p zDv`sdR2O_+nRfoN%xExi_rUbA>AxTA;JM*}e7bw}FEW?iR_=FVeEAxB-~Ncn*IuUb zRz`SB7QNc_)bd{kcMNWL7~lbT-ijkawLg=%1~|cY*&i{X;al%}pbZ>ImCkkcJ$aJc z)pgXEUEn~)*-au+Nb4cBN07vv_J61o8R5vaygi)XzBm$`wvMx#Hv?)(qA1nQF z`?vqQgPzQQx2B^vJ3zbYa0$}s$VQ=UM6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;s7XXYRCwBilU+!YQ5eVn=Y8Mlwzlb}rVcl-ggGgh z^npQLL_`!yVAe$hhLP1p7uL-#yi=?o5KKZyf}n2d!h#%i(M>^m6>GyjbYkGlk2&|@ zKHm2|?|V)cwV{~xTs;TQ|HuD1&;Jn4IS3&r)VCKsmjL~CBAMR3x|Rxt=a%~W#==wB zp@hwc@YAj<4!ik@vDDx*mPpQBCh^SPTHCv8?F}dY3wYk!YSOuOCz(tO8<{NfvVv4b zfgljG*IhOY!18Ygw7cUe z1ym!jm)mgskQ0PyP!$E;o?o40>AspM*>9$ z=lVV@eHyD8FSGIs0Kgf8u4|x_;`3}QvKUvUr$)hF?+IZo^bA4}0Ql)GYYa{Qyp>3A zEK@~>swz+w1@S~$ee`B_cxn`@&21w%Ao;PJF#!O20742uYVt=twQQ8%{}O@u%t2#SO})8Ptv z0bq;R*>xDzEtMy>=YR^jAWIPP28bd9VZR;vx-|qJOXwV^L(TOT2q_6nlPWd?2`c(&#s0d6Txm!gtq|xeCJA|Tk=?H%x;)O w3uh3xqEStzIW11pxkY^mz&wEDW(U6p05XnB6LaUlIsgCw07*qoM6N<$f)`_8cmMzZ diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Password.png deleted file mode 100644 index a6d89420380b48e68b47f719f7cd36bdf1c9838c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;M@d9MRCwBilTBz7K^(>3%ZM5apa=0*~$v$GLfIBD&G! zo=u#KD!!+(N7^lSiAld#7}=f(y}2+tFuWz;`Q!nw?OL}qO{dkGfku;|Qe&W$_%iA6 z41hrA1d*;oHN%LP*D5HMD=4f~5DbKoO2iQf$%6x_&`>*o*xDpwO1fNO;1+=r3E|kj zB#2|dWKD$R9&$Ld(py;8HwSn`XnQj$h>`>Vuq_MRvEeul2wb;Xx6v`da&hflObKzv zu_XX-90wNXux$(VI}YJtuFYaBx4=<1!Ju{X^lMeRKU2{U_Qc z*mLdZU7~m|aitDRX+ZV>Bk^HmOJmqdA^-@sZ`8FYC>KGQh=#;4tGz@PV>mm01cqV2 z@Av<=PF;VpULvP9ZHk}`2|~>SQI{d9J^=XVP&-cnfN7;0Ts6wHN?oDqfuMOIt^+pS z*v^v;-#I3y#lb+2FAc8{a2?QlS6@H)vhb~A2Y&_tsO=E#uU-wU00000NkvXXu0mjf DN{2q# diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User-Remove.png deleted file mode 100644 index 5edbd1da7184451a0f9266aacd2554a6309e4e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwBil1oTbVI0NJ_n3#HGdkmBI^<;bu!0ss z(SsJ1i&oJhY83w}_I5W<5bnd<1 z{qFs~79tpqc2@th`EfYsPqfw`gkVYE`_G*Qyo*Jn)G(8u`ePrLS2dD^{d7$qtk3Ck9kTM(d>gaDxP&Lt24 zq&NeT9R>OF7JZ+WC#druTqu{c{}Qc4VG za$}PPF}fxI07gdtTqu_2r=_srIE$b{vE)2_leq;TR|!Ct9%*}bqMjuZcVmQ{>=Ii@ z7zT1>g4@NcHZ}wYt<3ECY+rV`VuD@W$!H+9^&Jg|PUV|5Nw>72@#uAo9oUQFks#p> z)%$C=wG6bLY3-<3BIlcW39H(vvIjF;-TwcEdAdLKF=7w)D>We`K2yqy|G@uBmV4!6RH7A^WW@04wY5IM|6#&G8 zN#0h|7)qjw)o2B(g)3cKnr=as%t>zwz&HS7IpFUAdAlgQ4e)El00000NkvXXu0mjf Dp=d`~ diff --git a/Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png b/Varela/Varela/Resources/Iconos/Usuarios/16x16/User.png deleted file mode 100644 index ee6f2a7b82fdb6371b42f0983eb8b346852c8c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmV+b1ONPqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;c1c7*RCwBal21sJVI0T5&!2by+@_n;+;GdxGJ_zY zD5DM~5d@y1PJxG@=xAL$c*;WroeY8~h@evv1r>DZl2JmJbV$Kg3Tj5%+`H-C?RlT~ zeVz^?_-E~V`@!$`;mh~?BU)%a&z149C+TTy(dHe+ z4yB(DUyDWp&wO6vsL#U_O@4N9e?0u*#!%0B)X_G;i;+MNApk9&)9aN=TVb_?T%m;QQVF48Gm`N(w1j=VJ<0IEP5|FJ#AA_Ep(G$3 zf=EjkXOAa9lmlDT5cYMDGkr^)*~Rkz0bUOCSYHy{FaQ9q<3K7GN+}R%y=J*+=wLCo z`Z*Q}OQl=`0F+X2q=f4_uq@$z`JS6^n8Bs7sTH$ad1VU$TL?%Y;7A)%O3Y+(+2w+m zYaAkg*}31hisiLGQq*AE8=yk5Y(IXVnE;U6xlgt}(xK5rD@!CEMhUq*B6>&&CUO;m z2gL<#cKW8Pnbn&Mj}~U?KGKoVRKy!S@R5cBSMo_s(p|mixNr~IQzuY7=OetmX`uOF z*Hrg#_h8)+Io~%UKpYAWizN5-#|C%TD5*z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;{YgYYRCwB?lS^n^RRD&+bI-Z+er6gnlb8h4HV>^u znwZjs;6_mB#zjFAaO0|rcH>4@E(Aev<61=p7uHP?L8_$?+!)JHp=JyP)7aRilg?x^ znVCEHdCql}EQ;X5fAz!v*!=v0|G@q4FTbUO=-t+Sx7^%oul>5Q``$;_?)`P7TTl7L z)$@!kE@A`Jzg&GIDXlMrU_nW$$%K4!e!6_?R5dqx6p%;c+e;^3TRmI3S{?cf#9T$9das0wmsdz(L@J8e1%!u41$%3pLfy0oT7?el>NhMefpk-L%9LLBP3OA2EH0fspFQ{SOm?j1 z`7zn&6ycL3v-jqBHkzQ+FHxW0XWKkNx(Sq%L^?^7ldB>(D!h-0sHU@%@J0s{{Rid#i}! dnE!)+1^}~(b}S0I7AF7z002ovPDHLkV1lw4r!xQm diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/24x24/Thumbs.db deleted file mode 100644 index 79aece3460dcbe147cc31cd1721f7031866a8806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55808 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 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Add.png deleted file mode 100644 index 3616f187179dff8ea71aa49b90ce86e145f22cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1345 zcmV-H1-|-;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=w@E}nRCwBylv{|ERTRg6dw<_KXD;VBqjS_59d$HO zp&YUD!5f-%MH37Hdk}g{1fz$1hzNs9MCd7lq=W(SsZ25hwTLb%sWg~onoih^GwO_& zX3os{F8kY;9?mzZGwRTS1)IIsTK~P)`mZINa|j_ADPMoMdTR5e;v3G{Rbd#_mxhAt zy*CDr96fz?_h*MXy6?7aZ7aIr^O;v~-V@B{K5}yRh7~iW7r&5#;!rst&hamSE&YSBh?FK!4sAWAOd8MXm%Ha;9%!uzXnS3MF-tptZ)NYKK9LVQ?tYKc4P81w;VH z_gosArT`Z@ufP9fb?*60)~^dndR~5{{m|cB$)TcnmNj*TX{xZNs)-+B-UX z-%V6(^>C>Y^6Nb%CTqgBGJM; z8R5tJN@>@%gMVxt_>KNCSH+ySX3VRqZ$3g@cACj5TrIS>^s)Altz;Hoe}wwq_~0vo8;vj4wa1M6)+f7*|s@W53Mir#aFcDIM3EZ*%O{&&;1c zA2lW9%i4pG6(Af=RP1tf6Q5{a_SjzXOnhJlwfUJFeOWipxCG%ug*sLsgvZ{(=d_$?)%#laf$r^q9+iP_>(&V?5k?@4L}(AGJVfka@i^;s zV2ngYJ~HtUiI>`?KGtJgL(@yZg!}iv_>Dq)2<;&fgH#?)`gj7YkqFNM0-+^Rc}V3W zl#d+tF%nPa8i69vHyS{jE|GXGQhDI{IO&jpvjUOvaMFRJ@>}g8V;>p&2$g1b=WXK)@ zuB5HM|DdHQRsjW|Ha+|4y-inhlBxp2RO9r0l>9pYc|4hMa3cXH00000NkvXXu0mjf DW@u{S diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Edit.png deleted file mode 100644 index 1af01adc08792cc3ec4086340d1526267be64391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1385 zcmV-v1(y1WP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=-$_J4RCwBymTPPjRTRg6cV>3Ck6pHO*V2|k%S#}N zR*f2}215u&K~O_{B^dZ*V>J4~XN5)Cpnp!JGtjK=bZmN8DWe;2*KsH?X4w~8*0)|8KW0^o?kVT zb2ELXhriw1aq8obws-X~P7|X6e*Spng2t)ot(G92%e&-w*{ zJ_po)0j$dx+Fn~cGo7yd6l2nbAV5lmQW~v`UKX`dE!SSL;qI2YrGWU~fK;mLRV8IA zm(Sz6KE7Wd2m-=TBBewdL%htXY`JREn?T+F0=)b5jkUtaWfzyk^*lVk!0D{Zksgmg zM$pI6$}ZNL$R&JzQi z?9YnHsq)3ZM}RvnKy5nNlpQVzKajYAL28@&nu#pAt%>r8K*|sqhD@)YKz((LGlO2@ zv%M$E#|=nSM9j1)wVZV&@roE#i83q!S}By07_BkJfH63hpgd;BfaoP6X%+@}etCy^ zV?+-;FE|#92vb*GPO>rrTA`#wDTPuBtu>~kCT$D@L%x5pRNI<`S^DtfEW0K7dRw!2 zZUo@apC|WwuJ0)sBEz6ql9FG56hT@k^Vg}N6F?qd>z4Hf!0O%z`?CPAw>68kmjE7n z|F{0L!}%Rj79}ae5GiFb3n@#bQfQ?Z&iQgzNB=K?zje!cbL;KPY25HDYhtVU(g=Dx z49h#rOCuz9xI44X_X?g2iw(U1DP>Xu@BO{E^Y|HW-_8xK@=Vr{$z(Wo>=^Y|&gSjp z0$NLla0FoGYwZWSy8B)ZgMyalN)-m@GYP|hlc$Gr?|s>|Y3GL412-+YnpMs1w70jD z$z<5Fc?&yt?G$6rqBU4^n10Xl=%f!Gtf@&wY=JQvtu#t0x(D*+m3>`D-+o}(jGGo+ zjn#92UbmmVBVV&(T?0KmJz~sZH~X1Xy;IZpp-7eAsiT3o<8Tx6;|?*Mr4VY455?Fx ze1vyeZf88fF9BTnLgSqBs)lcw7@eXj0#s!{%|Hb&&sakw5=Cpx_k%lFm>n2*@bf*G z`9$@Ein7Mft!R9Tp)?~cLvO<%`v&$fZ{9qDdT-3&$@?e$NSrIi1XRYSwK`UE4n`o1 z00U@&5H_0g_6TQx|D-yyo*nrRiEiG^~ zM>`KOeb!vQUvLK7wTgiY4wfH51Qvd7(Cs~V_y?eWESZYroQmt?O%orARVA)<;<0+G z(oPT+QQ=@4VT@7Q7-z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=M@d9MRCwBymP=?{RT#(r=RW7zq?t)fCKHp^Xe%{T zt)h(;!9_(<1A;DGWFfc^L2+RO>mpgyqD6NWENw9$-D!$iq3y1kinJu8)@W@&s?oCW;LNXtGoO2JC`}@BC`JcljN+}RRaBqD7SyywmA^omW@_EudG+(>M&M6)L7PjpHf>Y0YV6*R9Gx|7@u{~P?tp4fh-K7a4SEL$-*LO zPDKv_I0eAj5}+|%)3#XhiAOmcs=%d=Ov83`J==z;Nx(S+XAC24HPjBG;vV+a^&>by1?} zIv@pvQjk(Y2mvW2ROlwD6y}Sbx0zMfY|tNnPX6pVo+~&5XEcx`Od&)F2|!W^_19D} z51_JTz*}GZT39MoE^r=Lk~0R*IYgLp86pHqWshGPEnEfQRdo(-jL#hLT;Js^*wFtV zVJ9JY==$`niM#IQsw4t{o}<5vSlK>78tM>>1eCUtPN5-`-H7_P6V{#Uia|H7n7g z5Z;lR!gO{4m*;;%M@I)}#>HU#9AFWEC@2!VXV=v4%N}^-3=*i{P@+cd9%X}i@ z3^Gn3;yy&2LdF<0aP-LmP|83VTRX0^#wcI2W&nU8YhET&0}%v7XdqmNMs+A%LfQ(H zGW2vmz2Qdsl&_>mIcPXP{PD@qMZ#z#TnFJg2-BcZ9mF@FdnPo;0%a^{H#EcQ(We{{ z+k{U!8d6D6%F*6hkBO-nP|8987ZZd9RcpQh;v3LB6PjZ}cPvmE0G1u6lmY;FK10Md zQJ62mqa3;MIkdOdV|XkN0H7=cRGi6U!Yh{u4L+{BCUiHbUazd}U>UMpd11b^rt;yj zJofEr2>_I>oC8v`JN9^@ZTo9>ZE~-Xurpd*Pr@P=F`&P`vp?PY#vz>laTL`=|EFL6 v@2^4w5CM<`5D(|Zk>i8cHgn5HuKITXcIn*yvlAI500000NkvXXu0mjfN3b5e diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User-Remove.png deleted file mode 100644 index b50a9daa5740c56ddb70ea1aa36adb2bf7b83768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1282 zcmV+d1^xPoP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=cu7P-RCwBymP>3^MHt6_Gw0k#Z|`kOZz-j;wkQ!2 zB?OHN5M#nZV@NQXXySsE8i|R#~Y?rz_IvSmd_Ys)*{yUmqKwW&}n zkB&{up6EGqeeajY`i59w6ZZoAws+gpT@SQ;BLywRQki0@OtDydPE5^Cp6ngnzUOG) zLBP%j2=DIrZr3xbT3YJA#ru4uHO5%1bvRdxbW-Lwu3NhA`puGlzUU7v8j#O7ePoTv z7fU6qbwrUuDTUSsV+_uFvgxpX<0H#9>|F`JVcb{lm zzpC?UCX-G}A+XM&wWb;=#-~aQjaOKJu|{LGs#y|;wKj&-K+al!<$7TdC@mQ9=I4Kn&&-yN8&fMuqcz4DY#iQgo+}rj?en{d-}!- ztHVD4wW!N(^^Sad*xL1l$k#pRl1e;#v6~Iqkd&Jy(vE>bimzrbQC*)UA;QQE7WRxB zIlpt}Pp0QB(}&;dT9a<-I6-5w(_Z&7%+1bgs$-g;UvNegp~*rAXR{f0vrKngFdX4$ZCkxAwmc7 zyg0`NG~}1R2sGb&4{X>bOn@)}LR+K?@G>M2;H*Rh4iE?28*fo)ue^38Q#J)PT^^emm_9f8lP@~ diff --git a/Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png b/Varela/Varela/Resources/Iconos/Usuarios/24x24/User.png deleted file mode 100644 index ddb1dd69331d62266d693421ce4f7b2a18bd656e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 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 FV1kHF1ET-{ diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/28x28/Thumbs.db deleted file mode 100644 index 7f04aaaf3fb4cc010bc5bc7463ce87a583ef7e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21504 zcmeIa2V4}(n(*BUhzJTu&I$;U3}g@(Q2_xFC1)h(oCZk>5+w)-C{YE8!br{x5)}j_ zOA;8AoQ620nXl%YyX}2VnTkj}aW10L%cE-~8CX@f_eh zfE~aA-~?O%Z~?dh7XkP%|8oCzC7=d5fggA9F61CbaCC*dL8_WH_y^+0N09rQA{G3*V*9tkApghkLE+o(pUuB0kUjC+%fdg4*Wvhg^85Dxuioy& zKz_sl5&%iSHGmXA8XyCJ0j>jN0XG0Q0k;5h0C|7{;5I-Jpaj5|#~pA~0o(^Z>v6_goGhMP(HUHF;G&XkN_wn32-I>&V+&Q6>wJoT#Ero{9Qp%?&7~(Uj;t5 ze!0E@&hRlqK>FAE21QhN1q-(vy8&_n2T!Sj+*p8|;h(<*&K-Yijr>5K0RP~UoP7w8 zzX#-9f6-GWplsa#jV!(nLxor2cv*E&x}G4^b0Btm@bmj{@pa>uCg2s^b8Ed7$l~KS z0p)D-OWXqBjpFqJKCa(ChwqzC;N#eNANp$?9^jq)G1a_4fEX{usbV7sLRSP~dV-YO zfcI?i{|OJ@$KlKWr{oRr2F*dcHQ`g>8w4B1z7tnO{42)dd z7kPL^M8(7t7m3zVQFP;W9#Pb;pqkUei#_^Bse5AEIcAE z{&_-T(u6y>g}NI{=#N?+>V(#d1$2BMZ>a; zy9K@JCgd&B>~|b7PtP7X3F9EFh7CYfP)T9jkwS3g#N%mAJZ*m_-tyJaga5uK>wkfWwU)^jGq-tM|u|(0V8EU zFJ|W1h+!1>p)fZHcy3hnkkKaNFv%$Px3KRdcAe#Z(DjUD1xqumOxhx@q~hb=S3Ags z-DPJn5Kb?{K}`ONtR6V%G|4m$+S`f8K_`-}aL|R`f9o}DGn?Vmk<=xVxq%=(@Bz8V zSOR^c@nJ0D5*yYJ%a1}%zm|gGAep{^ss1}S=z9(9j~*+&{fjVODf}N;WvS{O7P(G@ zgFX@eM*%EI@t`j&qRopHAUhi_{`cYBftm@=EfS0vI1L+p#}o-4wH&7@evMC9b)n-B z)l3Z0gtzS_J*-ah^((q^3BAz%BgM9dj^c}U1tb}kFx|I|3DlW9@&c}7C>zHN+tX)%zo(8c80v~s*jP5?Y%rY2fFVuch_TD*eEgc zhAiaTLx|v_$!pjPw3I6owN8^&4BbNu3;G+1=+o4(q7{=WFlA8C`I`sxb#kbu0YPVd zr3YBt9T;cn(9#WQxdOSjcbklR!fKL;Ek3jjO>9!8jbju7-4S$pzIyAUON^rV9t8q- znF=zfSQPK5$$NSi@K>2|nx1UpH#I0I%SzlNw3{~-8m*F057wF#sb7+lTcBG#h{i!Q ziS?{GAGNx!YS_v@x9;|`apT*l&8-(;2oO>>G%%{K$Ers9vm3JpG%>L3R9_BPY%IZc z_J>T!}Hm>*TZFseLag%SOAR~7p zel62ac2>>%xq*Z-(-OIkJ*M^pZ0BqW4!Z4Vr~dh!!~IHl^9SRfJ~^jw&}eSJ@W+4! z7aj%0hsqn~$vo}RQW~(u%f#4NJ?%Irq*3)Tzt>dUHhWJqj1cljgPUwZh!Vn0s5_h1(nmkN}QGS8qq^uauy z4)ZW%pKPL)B>UJ&F>ve6(ypUd(#g-&<7Y&1(3x+0h+^OSxjk8MD{W+XaFL^f16TS* z^|jlJ!3he)ao1VM`x?a2*>Bey=&8ry6C44Ty>^T;P{bwC0$pW6gxb6jEl@jY+(~Yc z?`RQTY6*_eSDBeeezk`D;abJ*5wZCg1&-$X&235~@+^aJ8SkxgmYH*VpL_>Zj9>!W@DkNje)n@O{UWbP_W24S(2LduFp00bTt>o zlv!HiF1!di=t;{u;jps7K6Ngjw%y1(=J?^2m>KSvmBI#AO!RKkx~}eokt#w7QOI!{ zL4B3|r6oI;MV!Cp;aAKkJ9Z)xa}}Kvh=Z2T zi(z98hP5bhQ27@egm{jFwyJ`nGA}Fo-#J$$`b`vV|1|JZUQ;9MOIoe+-hd`UpxdQ@ zYHv`*4D)d~ppznrk8YXbgVigZ)wZzr=O%gDBL8GuJx?0h(xrJ)Gl%#>fQSF>dF1q^ zS{#(_jDse*53O;~lbSWGH&AoF8R#M}KURy&D|OA-fGhiN*?ve~#wZsd=Tc$2Ah(R> z-!4|C(?w-I;mcFIk-8yM{&-dmTaH9bz-rte5pL^(~B>J^7K{xHY^$277l`e9BX{D(2(zm_GQ39#+x{3fu_}CYVyE{ z4cnj&@`AcEW9x>4$dFuu3l*6DHnts#r=SfM<~s@I8&^m4D65ZFkv7gaSM2?qy5$=z- z$xa9jEmZj0w9Q^-sBJN;Qq@~G02@gcz(KENz~JKeG7iEVvHj7**-w=T2VLKWts8)0 z$K)ueTp6)As4;0T-bvU|gnY;9X~4W{1MsPZVPOh?xEw$ux5&YpAnG{`U9k@6`G|w2 zln*~uGKwXK9tgD}x40(*rVK$Tv1R_@auGhcPn?H?0_U)@|L~JHcFJIL-vib!V9m#( zgjDP?IOxOV_5r9kF>dGbiU_D(p77JQ znhn5>;D_0NbpO%(XP!Q=XMC*nzkL3Kx2fUhTl-+*g8Pb_f+&>a73HC0U{e18KPkhF zfvFe4@#FYk;0VDl(McjO;wL&qOnl-b*(owI(o>|Qr_Y?FIDLll3@IrEEd?bNH4P07 z895z2Ej9gFY8q;MAjb&6GlWDWL_{Rir%6v!|J@GP2vME{Haup6W9(oEe~f_g7?_5z zf#ef`)Z!EToBP8&1z1Rq5fB_FB*3Q{Nc(~N5FsVe+4EOrPf*=AA!c`>7JMB0`XtAV z;tw=xz3ZGprmle`r)cq$lncMiQiT89H02+frA+^yX$t!Pou`0&9fJsd&DQ_P*&p)t zFF*e}nAr(BdbO4D7|UvD8NJye#)A!g;O|iV@$Btm#EzQptBE=)dGk1958b8_qw%Pm z@OP_4IB5F8L}T%|u+RDavRMs?hd{tC?)n3g8EI#s$BV4I=*yvX0;nh@C$>ZGp>ku| zrBfn2g>TEt2Va$ikHm6B9qwI0*6`}AT>cTsD_<!Vr?MEXTTrTm5XJf%X@-26rkj>lZvA$y7goWKDlL!JKS)Zv zRx5s7j{fEk7(GK<>*yK(9YtyKMeRmXCLi+04N&wb{glF&cXKX`k82dqYsdB!2$c$5 z{a$+3Rk6_3DlAXUHSc~0kC&5w&C2^yo!*?2ZPa`Eeub5X5~zSOk1bC&dak&ekB=Uk zJ;p&!bmf}?QHP$;Grk9BQimt8k{GtBo^Z*QhdE*H)oYjICLC_PUlbEn z%)tCT@^J7|*8#Kd`D%%jrjm|;vB9;N&Ggb1b4|YCG)MQMF;*tgoEy(=sw&MuC;Nnr zy!>+Xy-~Q=%_uD=LEUWuEscp2FG*F;lO2gEjW0hvS3$ygkqdeIkY~Eni5RXg|HVFC z*M6(uqP>atM?t|`kEx5H7Ec)Ru!tIeGR?4$t6;47e~_4fmM8c>6Qn?)=mJrw;%DWx#`940RB&ApUa>A3xqch_|-k)9`0PGXz3ZzuCV< z{>%e^L*^gJzbgo@^B1Eg1T3cioWsYDw@2c?)BV}}2Lsu)-{SwhneVUu^Y61?@(-Gd zNv>e5w@HhM(n{Oy%-~L~_M9<-=AXXee82Ld@S0pCk7!1Br z!%cvIGHlE9a^v-fo_+9gm-%3IP{42)p0Yd4=CPYCt@>H;81t6Y5A^L11afG}fchdT z98_spyO1@AEJU^-IT9Uma<(x--3?s6rlC{DQETN4i1N;Q8DaUV-nokU+CU#!dM+Jq z-riP8SgOC3rptz6nYXLlRzAi54k!6K627z5PNr3HvL4lIqllX_Fse>(YGPW`&#!mB zv!f2W88<=rL78UUBIIVU|G}K$_bv8k|3eJ)$zS95zsB$X7r&qEGX{hYmmV6TSrc+ADvKt+*|HBc z4PB=Cwm|FI8)Y=x44ZF>oEnKdxkthgkG!_urLWyzwp5V97efJeY}y%>kFe&(^cIk? zdx%?DTn(hBkR^U5=WV#1D$2%kqEetEi=@ynC2hubtknqx{}HEU>P*cU*^)|hQc-+i z30abzBO1RRvTw~zyXrwI!f(%2_YvFve#ZRH$$1%5m$52DZL3y;&>>I3IP?rWLxV%Ls&9L*T=Ywlcx%fh&xJEvdlNI)-xot4 zZ^tj6rZedGRm{GbyTBM+l$X<0+fiHc(lX-CRrT_LXU?+3#JTKs$ouG{t^RjzMx4cN z35M*buj%CIYtLYmD+X+bRD1XR&)6LoO&C6K2p8<=V?K)R=ipa_m><|$s0bE%4c#hrC+ry z1-;s`o;_M-zFspg_?U3hLlB` zeV0Cn<{J)}O5UAQ$B+~l#HV4;R}svgt0dUdc0*I`$oI?2wl!dT>^jdY5$aP0^Y{1gG*}T_iYl zE$*&Iu~0fuer=`0S!HDGJ>_IH?C%`R|J0vIFdq3!fBxUspN~Ncz^@6c7oB0z?C10M7uifH*)r;5p!DSV`dg1>hwh8IS@<1*8Ge0U3Z-fY*RGfJ{IZ z;4L5Uj|1p^1p$En^q;fFU7zOqPUudl!x!=>maV-w#p+iB7=OXkeu zYRM}4=<|s!$g&WhtCyZIdG$?lkSKM2-px1$&%jbS9mlw}7+W1&-f2j2$n|Eb^!B$` z<{IB^TecdlEFfrPrI#UDXA3!$?0=frCp>0HAWnbQ`#!H@yZuU+)39)%mzjl+tqTsK z^k>pPR0z5oF{3-M_1J>%PGL5^?6ZWikWJJ0SKX(kBDV`CPs8o*tow)BWX|t|o8{=` z>Ab$7s-`S-m9tdn?B~z;lQ_jf$&0fNu3Myh;}_pV#Ae_|EG;j*e358rs>m6y=dM-P zRb&)Wpa`%V#30%-l|Zp0f~%J6g5L5-DJKH$?{cn=vlA*(FSs&=C1 zepKpClCy$`os`G2mLoovNZAF+0Ks|0$fr>x>?KkVJV&c^LO;fZ8Dba}h*jR2!Otv|dzl%MM>hl&!@ zC=Oh`<{6u)tPh{73S0XsM*ESB`J&0DR!?KpRiu?uXd)}cdd%|n%#!{^YT;c0@99a& zRRgH6qgiwB#mxHr#W#9CiDBT<9{amUvdARiT}@k2L9{&@Bg&* zw2T z&h5}U_PNSJjoS4#{fAalxZQM4P&td^=(nX04YbL`6VD4RtN)|WUlzP1_suW zS%RI}7>6x&_IHW=`MsYKeb3%qo=H6;izu-xJ+UasR-Z62slTPVEm<r9r8+aRiu=viM&+D@W0k!xWN%p`rmtB<>Bfepo;+t2eNz10$vRc;plwpV zgB6j&724U07t#ahjSbpQbu3ZFX1+Xr<=#Pq>D9>Z6sJ9nU>HptMDk-x`#uKI!pi6o zZu-nRPXE;l9@E;$_aEWk#*ZKCIX7h%6EN~jakqgRj&7*b;>JM^eEIO(nnx(lq&E*o zhlh<@Y4qaUT%VS1sTwCE9dprZqiik7j@9e!nkv%YwPO?prM_|x4QnLG9kq6uvAS%|ibm2D62D`1Wq-;6kp1 zvEg#ktqP-%7rb}ll7#A4`X&TQzWkjwpWo}i|L*?pFa7twcKyrIU;6Ja{rBIk|1JV$ zh#$ZHiTyvnSDXL8o&VIoK{Wpw_II!-@-O?v{|x)Zf6e|ckEGci7ZdzX zh#16~X9gk;J1Tc7Y{Ckqq#bYf$4AB6=!zoHm$mmsKl$8CJ4G3J;f!UUpCm%wy9GwE z6@IlA#jm_w*AJFo52}En*(z9~F2}`oNcM}5n+z{z!aL{oO7;iKFCh=Iox63fPpxY+ z?5q1TV0-lfBFeLR%Lgm_5VHwp6>(w?@wCJQ3Fq%#XRf>u!q@WlD9;E{5+X7=XSF$d z&9>KldgX#rCw2mC4Z8c>SF7J$0{cZuKL-=h6*3~gy5D^*K{}c1gfK_8Cc6E6NiCx) z##)se2lbR?V1)Z&dzT6i_0e28(=1}L4ri3Fy5-p#o7*_OvYF915Z*NBl|1WqDyBY? zs@3LDaQH2{y=n3kJbh8PvUW(=PDM$_1P5uw@RM-x&ZQo2AxlNo=d+Dfd8?8YlT=-@ zg6Cvzx^DP~h7?yxCZw@ht#Q_jZQKU?3PPT&MI02QB7}qD=KrnN(iih+QXkRk zbSGZUn9p9O(7h9iQtk*=bU<5m*|29HdwC*}K}Z!@YYa=sxEEWn5eHqGi3wwZU8|eJ zD&NttG%s~7ib-R^VYWL6%SZ)w{%x*sV^0hBV3jlfa9zaL7*JN8ScszSJ5)+cmXf1? zyWgQD*qoL{;SxJud4H8}lD0$iUdOWRcgpAhrODIk(yh&-_Yt(nCgkVtGV6Ou7nHR8 z-)+YHpw!C;{sqDbe=CfX-^?kW^)@BVYYVGBI4 zn-IMgR77Zd307wLJSV zvY2=AMid5nC&v1 zVV0v4C}jJ@c0K`39=6h~ulwS)Nv!l>6K`z)quP|s<3AYUGJ?6v<1_Ec6tdelZRcG8hhXVqH8@Udd`P_;KTW_!-@aFinE-I3iySZXT5z zq*_?35zR~z^|;)v((2dZ=#bE}5%(j2tm(f0+hkvUeI@hb!;PB{R4OpQg3UL6t36bm`>Oy zC1%3euQNYtFX>m8#LuV|P5;E!;L$NtYAc9rhi12cJ(y>pkZYx*aP8Uzx6e{#Vmpd@ z!&-rH&g)~LgW;Ng4ka1~wa|?cH`jW;pKL&x5WW#3eGw_>xHMczv$3I4gh?K0Xt!>n zdcHZAMssYRtP*?8*u+<1eLS6e{a!SURr-kkAmcg0T7HM%Lq$aLnC7vQ{KNyvXrTu9 z-RD{L!!%B{>f63=sXapxp^WxBjW>vxJa-O|UYadto0DD0k%j7jy?x)W$ z76r{Th{!_*LdvWwt$E$C?To=1_btFuNw93Vpg=sqTdP?zO1$R1i(RF#7Y-5%ZYN%T zvwqm&TcWO7qn|Ufl%ss6_pX!+>NS3QCk$-wtV`N?ev~(d@p-2*ZA|*!(4U-3IpyU_ zQ2W`Eq|vNOe%Tnz?PgZD{=u@4_86&qzi#Xs9iB~!;rEC+gF#_C@!OZm2ITuhno3Fu z7!zPuh_i{O<@F_F_fa{S`2DwiFVTl8VTGa1>N|{LGzbUEWf&<3n!6=R^?pgry;8BU z(_ifdFTNu^oZGb-c01Q9sX!t|jJV&0nbUI5*=kGq{i`k!@ z>_7_QAoH7%d7+T7!7k_<-vBMWVI&6 z9v|4pBPJe%I^~VC1!#vw-?@Vu*ny1o!dt8?>z(bF!_{pkQc^6fS9)J-spXubz4j%V z-q}^!-v{HJzXU!3NXd#s)}+-Xm!nUdsEskbs?)u^XVXSQYzvAyI&pX3xGjb@z?w6^ zZ}F@mRY%r|s4(*n9M34@bIQ$h7GImS`RqsRNtx#>38&8VP$$*wjBReph%u$lGI&~S zM+j`RmUsGaA$#(cM$K5*P;>Dpl?MtIZ@kwy7F@m)kDeFUY_EFMw=(77JM}oW{1v7^ ztxdM#F+c8ouQMBO*Yt}tNH|$Tt3a{Vlc?7+o7s#yxiWw z+p%w$y}z(OV&q*U>gzXs9@K07m?MsA#7%_Q5EG2z@S?Pce#S2zVFBSmVCUL? z`JXl(4G6~GaZLRz6@YTiIw4s`&uMP8>{*VO2?&v7i#gXG<}g(o<+-6}{pf@E4-3|u z&3A^<#b~;gOzfK-{AM`2d)VFv_IO#0U&XnW3By*>;23Yx5Z?pWz$({IHv9%p!cOi zcjxSoV-%33BG;!Bh`KW+HeE^fVE&{JczQb9X<7}J^wO(oJ6S|mzh|HhV2Ljl(z-QO zr&QcRo3UK$13RPLW4azp60|?gj+D?m3o&AXHl*!7HP32t=qgn(!p zrah4^sF+YAmcdJHmoM3y+B8C@_p1DlajX&aRc_ym65PaAA+dpWTfAE~by9C>cLHn; z>s6D3Y;8rCMwlzZ{8<)^V7>2FwmYp64{kTJQ}I$JKpSzF;0OZrTw_cyD^pFJ@cQsr z_ARn+Mw!lGLXl*9@7!XXRQ2{@I)fRv)-QZ}%_gL8(9v!G z^ce;!Fpc$08`&VDns|-0H-yKXTeI(2y;|z>*-0^5FP-vO_H1rpWnM4;jxOxDnP*$e z87EY&+0-SYlzQdkOwfYy1zT1MH0_&BgYjl3C(3iJ1h6&lrCJ7K|MDd^LM$D!?Hb>T zg28Zk7qLd4S&&?`z!lxFZ+#RiBr@iLabsD}&z}6)&aCl6=MzdI&q;c?Zn)_4a$b_j zl}+`GYSqFw>GkAr92C5{zKM-+3WBXWIDuV~`4!nfiIFljJr3ivO_DhGz-rk`WEOkw zC`gI{6$dtD`}3k5hNg}kZO2)$$gJcd`C87r3wUfw$H z=HSNsE=7!%Is59ibHJ(Ya(myq=#w}ox4se^r#B1(qkx@^{syW$qoPSH*$C8iQyT#; zuQ5Vhy~n1tlI_NLu(_v|ze1BYkpF$5qvJJ=O~v!w z!z}{4tKDKqxeM9^1KNB(Glo`88I)UvM%MhR=X<~FwuYv1hfKdG|2+TWu8i6h88vA* zn~>_|ydIK4&+KozdWVRB4ap_6qoy(evuR$|mQwfb%EqGq<3swAxaMi?VAM;cj-jg^ z9blXmg*k_V>J9HA+7f(lkO3PGk`!GH@~*VUl|2XQnu4~3j>d&ko6CA22Iwh}|sX?e8< z)!331IaLNH-bN${WIa_qlV@L1!dCbCI9q#+((Yt98-uWMPy=!Q+O|ZdPv=v=3eP*s zg)Z!^wbrBWu6KXYi9FpbE$8bY)+X(Ps*Ev9+gc*EDL(0wPq23dqw>>$+K5Df- z7k>GNmPXY;#VsAmY8rwQtgqHqjJbUcRjI7!YcxN**a+R;i+xk8_*U+ijtkQdp#-UI zhW6Zj)g8B^+_C_ww@JYsPwmLhEb{!&(`hHT5g&rs5^LLAy^y-Tu6A``>&V z?P|kt(9^)5I^W%55nYI-+q-&B9FvKN*?&3~uyCQ!-vd5pFyvv(yeMXLK5f;*YNMs^ znj<&mDcAVK^$o1LlrTFPHI19Z6zmn_N@KDoV=kXrG(m zm2JB|^HsZna(ZnAdB!Flb5m~M+<<(-PTCFgmnu1<9yTjXT_n77pKm9M`)2u-6fjiC z-(+&dwhev$o)cPUOwavlaI2fIIN)(|%d=Ln2|DU^$ORr|&;9KP-s8#?nJ(>|8F@10 zYvxs{XO3&KvZsE3Yv;dMlrp*Oje}mI_pC@!R}2=jUURNE`JWk^^m@DMeK|_XEZg@| zXscHPbD#TV5`%@wQ5U&FMVI_mr-$$DXon(R>3z0rQRIn!F#kBmdQ<>?!o+S`tQCAg zfg@(Pg3V;g-7B2(;6bVx$}#H5wEF_fH``D5jVsOfw{?37%VlyC=@ut%U5gp%xnIrv z0ey)B2i>XDe1PnWIfd;OGonHly+kGS9R|Exd}!`j$ImT;-7Qk*zOcEL!<`+#M{K*@-W3|{foY&E+u z+ia`Vm&p4*LW$BPH(42L2)=QBCr|Ab*K3feD^Sm4F~o}Fpbdp?#cj#^06g8Z%_4tIG zAtNU?b>5cFT9n^Kwu9~T3kv=F(gR7!_Cm@nQK?vS?WFP4L!EVC+Q==O#Kw&eD@j?Q z-d~YnHGT|YnUUg;ajg0qruDQ7prUW(fn^4OyD_h?Cb$2>b zS3!Wac9R16U8lq>{d$R3&a4!N4j#7r>GRugEsqNAW?&XDe6RpQ@&$STX)4b{BKo&xj^XQ9-Aye!kxR OK=j{Rq4Kv)#s3dU;s411 diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Add.png deleted file mode 100644 index 76459dc67af9152e9c910c8eb764d663cb3e004a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1618 zcmV-Y2CeytP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>$Vo&&RCwB)mR)QdR~5&9_uiRZuf2}Fj@>4~j$1<7 z5SNIwfCMGP2xukRsznqCNJuCT^h-SO5EZFZJb*yrLr6qI0wge$Dr%ytRFsDbNXtXh zN})7tK@JH?lMsK@cCy)B@668JFCJ$7nYEMlN=GxAxpRK^ocW(~ukhX@grMCx{P?GP zw!E+Zp?s+BPE-A!`9@r?)*9od&RstA?cbdE3!vM5w`;85FWi^EHn+mLSPOXUS6{jF zron+jxttn`qL@b1B#L7iQB1ua`SVlNzdd{O>_dMo&z%PRYT%>$?&aZ!$6$;V&Skq5 zzVO4(esE|@-wXMCFl3CuI)`hScMd5LoBHyj_kCjcxsl=G4xoLC+Kj7!hrfW@d}H75 zym!4(91}Ma(p003!5E9R4r?7A7#t|1OYTwlmP12WK(HAcSCeQ#YGRdA@TltbBg#<@^@1%RSjUKR=ajt{PJ~llIXIv7HbX8 z8muu`yI^*y9{o~XPF`wMf%@_WaO|nm*H;$RTK)M_PuCtVrEqd-J$_m7J8Ls@4(BYV zC+ZWx>{{(?-NGL~IsHr{itE1=c7-i~<2bcP-Gu<)=n# zZ;WBNS<^~$E7itmPMp3pdHhu6rB+JcIS}Bfr^`Q@p1bm@HJTM>m%v7AE?WGHT^^;@m^4MFDV2KczyGK4lmEI{f987A*>-!{@mTjp zHMI4|^cTOHYou!b>{f2SA*C}X@ZOPX%YSDb2glDbJ5nIu9lX^%JNM*UKfibcNZ%1~ z$G5iL5pLZ4oG2BBTp`64G$UsQxu^GT;>vlVMvcUGa#Bq4>TsD{R~M=oBIcz}FU&mq zza!(1HO{Ud?IQ5~j}Pz8_YNOrL$22rQe3CT6*Q`;c_M#+y&w4`N-5rMOtJspU#G4N zDhiQtF1tn{&B^Ik#(!P@BA1w4_a6>^lR_>(bXW#my~|&E0coG-Q2h`|nh=Qw2hJRz z+TH4t3x7fYLeNyY(l)hIRMDQf}w|oZ7g}c?}MP7vKcK3WSx651wOR`Af_f zB9ab=Oag?H*&LV6#e?ut6bEj4uxHnWBh_;Jhjz-90DM4kp>7Y5k@V|wb=qfQ4C5qZ+Z~uS~Egv!{J4M$s9@TKzb11oj_=prOpY2 zmdG?frV6?6%>vX)g0ORYE3NhRz0^?`Mj?ztXoplDCq06U>5arI*HW2Sj9jEaD_Yfx zI5TfhKyJ+lQ+wsbQ1|Z^N(rGHQu?g%JMdQEgI2U;kF#tjM5?kVQ-#nO7~_0>dUgtE zt_hs{`|Cd#xFy}z*>}VJN_6ERKzadAX3+&6gkRiVg%ugl$PAVQkQyIX=jNwR{O9=0 zYcszE=B`!v1v=Q>v%TZa&Ko!E42p%#vLh(ToXVrTLLj{L4(F^h-uT37m-y7i$-J&L zFGVx)M0`Py1OEU{t#vAIck&iM2y_7XmZ_GaeM{;VFw0E0%&b0zuO9y&0McJ|>29a! Q*Z=?k07*qoM6N<$g0q(i?EnA( diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Edit.png deleted file mode 100644 index 139ec635691d96ff80aaa57fd20275b2b002cd44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1728 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 N002ovPDHLkV1kx6|D6B; diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User-Remove.png deleted file mode 100644 index b046745f0687f41cd2ae091bba653ae48da16f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1581 zcmV+|2GaS7P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>qe(ax(PxkD1 zPv2vOoW4Iz&AS#GNxinv7(H`g{>V3faq3Ti;RZ$s0oe%n^3z|s_m;u_Bl)}@isOVv z+$2sC8gW9s9*6O%+FxHdasIJCSLV(FVY9$!y&sN$@6+!e+OhR`p%9ggF*xt>Z3XX9 z3K`g1*#DW24Zk>DYaTc~zBu;G-T}V}rmO)T{TzDx&0BvJf-lEOg0+q`H5hBL*5RDT zIZprv`-^)X_|VS7r^nxT7~qjdzq+!}m07s(MyA>v&zb>%wGMN4ed?inBzMMff{5Up z!x&4NrWlif7aA#%3TQ2iyt`-r-dlSf1bFtDr`ItR0RyY9R*gcWzSwNF#25o2c<-^+ zlBR~*Vw2JF1^RnSbQU$OR)emB*7uC`fBDhlZ*BwTuNBWn)&m-2KN`mgN+}Q_cuze} zIXBrrM|nQ+!CmzA;p-Glvls@fuMI_})j#g6`N zig}Iq9_Jjcov9%N2%wcvF6DAS36Se;kyXG`Co9$c9~nt*A1W7=(uh*ai4(jhc()Am z-V;K0-fG!R7XWqj#m`>Fv|6U(oWnVbcNS+Y&MnEU?8mUOFDEZIYCwH61wj4(joL!} zC1-7L)?%&2T9ZMS_mM6n7v_#0Hb5m&o|Q1~i z{TeXyj)0H<^j{N~rm8=(#ss_UGLy6IFtM(!%abS1RR7Wr>5T&ce*IkK`_pq* zUUAm2N^S*gjbZ*u-1_lLW4{Mp2K+k){-*MFBs{_clGW^9S^mzLIaG`rzzN?z$#d($ItHXS)DQ3Y#?HHQ+qSWmin`od#bt=%(SR z!XfUv=i_LtdAl*i!P8%(t}Qywp^|)djB_+6r~fwk^UCMB%;ZKu1u*z^iuuCOQ5AKS zS4|K|w+4>XkI+h6#M0otRRB@w zdk8O*Eug?D#3{ro#As9+F<)wuMuKYPkTgP!Labhy>#`TfNh#{Rb>INdwV^}ha>L62 zn=Pb_2NggdctMQMLgxiB3YA8vRHK%jS%Nx6l08_CAtj=aNQkx4P{(Q?O_tzoEm_UHN0q^z9R^MYKn$kQIIp!3iO1yCu7wMMER0 z&RnJ%F&P-^Lw$O73TSQ!oczbD-|fFG-PO7ErU$ij6(B+d0k1N5Q2+_c?Nyv)K&vuX zD}vO9q&BxWed<3aXZ}9(OJMGLm8M7s`+9bF+}nBcmOW9axLtKby(+H@=%5iKxZv^L zc^hnKIpbR)bxCW{EHp32Gs#49(ToEB1kSAYRld=ew*Wby11Pkm+Zi3&sqO%Kl}uaq fT1_~F!2bpS=B0X~@=}?n00000NkvXXu0mjf!_xs} diff --git a/Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png b/Varela/Varela/Resources/Iconos/Usuarios/28x28/User.png deleted file mode 100644 index e389c2a1bd24629b7531a91ecfb397179902264d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1525 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>Ye_^wRCwB)mRoEbR~g5D-#N3hUV9y1Vz)`K}S7}y zAk>!)OKD)Bub2Bjyr1FzGI)oz77<}=S1-E;%Jf%C@v+}eR&Us0BS`6WNUcOz%!?7^}`<@PwyD*FDs=Hr4SLE za|Oh^Rhajl5Q_UOvu0aa`t#Q?S!Qa^Ih?b2XK~iz+=|@Vehh2-a{6kk0W>#qw`rC( zmYOd(YlE{EYc1BA0=gpS@GJ5j?;Yo+np431wzkE@ zy*~RoFt;t>6F+-n>dH+0$JUr&S6vozwiD(~sI4`eId^sX^x68~Iw8GrAi!^*sr_Jf z;o2+C8m^OD16yNQyq07?d13O8z{`N&Ht=_~cUn)sS^LhLv-Q-icWDeZ&oOyUy_tsZ z{%Km&1fx%;M^?pO%HlN-ld^PXc97nvWg zQ0|T1ZeLjV_S-+bauUdIs2(2p=H7csJ9j@X1C>!<$#E6K`1uhY?0DL>9W4 zlxbcWs}c9~pxY&6S%v)a+;jguIq_uc!kXJnfggBk>`=LX>=ZlVepkuy-3DJV=(geM z@=@-;_fu%Cd8akQk$-=krncy$gi7P$nv`fy&%QMA%i5z{WqQ*BJn{`Hae4HFih8a) z@q<7<7&zWMPL^jR(&Fg(qcnPx&PrLkiqJhU`mx);aL12;9h)9)1M$HlvEI4Q2Lm1? z2zWu9AWktca*;399%H$Zkac-f79n00V|+1|01}i`hi`eL@2<-y8@2Qg>ofN{hfx@M z7%x&xpuj1_Da0zoXjC4tSZ$L>g33xr9w9~{RfYZ8YxCW!g{LW2Bi19vqjbQlfKV`l zRRrxj*(R&bC6798b;og`V9`Llp~Ku=`*X<*9TKfYv`48>9Q+=F6GGH+OYyjfhDLH- zxXd+T3NY4(=Is0o(B2R@{g2naH+*}(uY2&OhqUyRAwmTKuL^fj012z*Rh$$+s|r{a zL2g6ZSXiDt^Pkgmug?7%SlH^MsnErtzWrVIb>F<>U{tN_R$bA6igg(sG=c;dJl;ER zgAJK8J`1@^vt_f?zM9OXQ|Vz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ?^hrcPRCwCFmTia~R~^QG=bV|jZ#(ziy}Q{>c9Y%g zMw&F#q{iB`iMH5UErhDYA{A^Ap~Wv!f*+)m(vS9of+7f3N}&NOh-eX7lF(w)ciJSh zc`Iu-$!0e%o4dPrU+&w?dGo`)o5m)HRdL{97-r`D=KuWXobw3pJ^#-`{5LPZ@!JQ# z8TVu!Ns@HSN~76csMU{tbf)^ulh1wl7T~V;j`~kPPd$Zv=EslxdgF$HpGTqEECm&T z9|#rOi-q9fZJSD^SC7oT4w(N5@ac!Xw|B6=^n`U*rims=QqnXfNm8^gT zZ=IYw^yx~2>kYW~HgZEfz4zs!U}xe`3$66TnT4fSet(S9zuS9TC6kd)HkwU=htwF7 zG$lj((ANb%_pPD3$9ntz zB8BK_X^j#BDFhNks8mqNWqvSqY{Cro_fYJ~0?HK7?Kw}Jx%gy#L z|8!~}aOBhTTmo3<)+E+)c5()trWm~{jWHT$Y{yz_F~)FqY8E^ko2k)mC+M`Zw53U# znfV4!96n<&-&O7@eYq5V8rZ4Onqo7B>B)0`u684pVpeo~qxg-55JKmWJxaGi<2Z7qA8_qS@T z(N6f$4Sk|xXU9fs3|4Ej*1Y-lDQb�M2eLP#M30Z-0F+8*jdcWVFPe`wt*9A;Kz@ z%vW-8?*q}GpIAD!^bz0{z)b^Wt>fOsgz57W!R&^ixGyeBxoV-&8m&{_e1Cx>$1meU zjRQ_^?`L{+mM?`nu(9Ux3s2GtG*T;M8X$Fmve_t`Eq<-lxO_0Vs4uQ=z~Za%$n6jG z-SYI7-htg0qN;Rv%rH>S5-M0~q#Qf7LVSE9o3n!)%Ae=uTc=5PMfi$EIfsiJ4uNci zsAhz0M5smv)re5_h^5KN7bf-{|6u^|i#7Lc8mUzF_2u*9nLsh_*Ya^=foNTh`Q-#B z1l#JvtS=9tt>fO-7~^mB^6bzgD>;FSEIw68E0KvpqzY*i!pM%CB$F@i0tVzyxTmnT zSbi~%GUK9~IkGAsI9FzPT_3k?A7OKOh|%RCln_@k$!HSu@CzFWPs?sK5vmy?TOl$D z5lMj53SksNE2Iy5fRfy_zV}CkD7w+F{*{3D&_7q9w&Ka->yyenbk7wC+leoQFsRLUHe#_;<{SB z{$!=O)LQha1!HOql9R zzzM*9*5s{#ED!^QZZuepAg&u~bysbm**)9Ol4<`j02MekoqKKa^Z)<=07*qoM6N<$ Ef)!=4#Q*>R diff --git a/Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db b/Varela/Varela/Resources/Iconos/Usuarios/48x48/Thumbs.db deleted file mode 100644 index c827026b6e070a5a8bfb9f3d6d8e4a9728fbcb6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 QzW@LL07*qoM6N<$f)ttjA^-pY diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db b/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Thumbs.db deleted file mode 100644 index 56e3ebd786ae4b93de41bf3dc964efb217aced50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 F_%A9qx#Iu; diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png b/Varela/Varela/Resources/Iconos/Ventas en proceso/16x16/Ventas en proceso.png deleted file mode 100644 index 9299fe2622be39291f905cedf048c4318da99558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3363 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 diff --git a/Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png b/Varela/Varela/Resources/Iconos/Ventas en proceso/24x24/Venta en proceso.png deleted file mode 100644 index b12113796ebdb8a55f86fdc76043f8b409151c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3515 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 KMNUMnLSTY^94nCk diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Currency.png deleted file mode 100644 index af28329ecc21e96d0d1ed4e2f92a938480889f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 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 DM^Wc} diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/24x24/Venta terminada.png deleted file mode 100644 index 6d04f299bb9a13d2225776909885283a4336573c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3453 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 Hu0mjfY8W9W diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Currency.png deleted file mode 100644 index 0d7259ccbef18d789f14487057c836e9cf75c571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmV--1Bm>IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;?MXyIRCwC#mQ6@hQ5c4wJL4jMD$R{BEt-Cak_a18 zY$-vcLPMlcflvx9TGlFm3V+(PtXTw_P>^V0noPDDs70Z2nKVR{>INxJi&D^NymP;E zTa2SKspBN#BKqKR&*9v2p6|Qwd(OR@ZQE>RIN0L&58U)f1L*J%*;@((xKMU{Lkn19 zBciZGA&Zx#;@YARu@R*>f3;y52yl6zAZ3u)Hl_%sWkv6QUP>*E_ZLoJe4R?HFc$4a z!341Ddl`+Vo7My?rBF&CB9wQRU}k;6REiOAh`pUTm?BuBlAETzD7YrK`>SzG5Ig2pQ6A$_o9fm;`E8^2~JNHq>lAe}Q zf4L9calnJ%dFY8&`_KbN1mT`oO7NKMno$QAZXkU9N!3;GfaNO+}5U20^%prIccPd6bV%!fufHc^jFDeMP+0)hI3 z`4b@>bBC}{W1&6JqCk}d7=y(!{E+dCvOp)M2+c!KTwM!!ZU`9wgpHQ~%o@`Gobo$p ztvv~WGVBAT06d=_Cq2it5*XVKYn>h+hmK$vW4QCGF^n4kgpAomV}+L138!yMNW$NC zj&rx(tpvV$^FFC}rt)q=;0`TyzE#JkXTsd~T_Gx6R??Is&xTmc*LgnwH+mwm|sl zs-{ULQq?gofi6JXD6q1n&UX=f-ZjR1s;f_UgU0L%4S}eJnwHudecSA=C@wzK^%wd9 z^Z>Wp0^#9}RM^Ggv+L^D76@zWe(^U`zm$G4HcLO?cCrPufBw(=_W%q^%4FTviC6#t N002ovPDHLkV1m+ji0S|U diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Report.png deleted file mode 100644 index 36a49f11c768c157591d22d339c661ae9797e6e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Z%IT!RCwClma$I5Fc5}+qr6Nfl%e7kP)8QjZkbq_ zcmQ622?-X;0*DR_l|amh1u-C|E)48+1Ee#)i{hgijDG|Xc zZ38Q|ARS!YJue-#+i9yH_oDV>ECOZ$5rdeGvEXv}fU}Dsx}7!x*CgsxVW-tXOoW&S zv*Z~QVaAM!)|e7OGh?dt+}9f8-ghR(%*83S+0AHFnbs5|7Jot6liF!a#fT~rX6cQT zGyZuzf!1?jVgV<@#5Dz_|4U2EATlVJtzul3(lU~&_ICJDPH57+UWeG+eX;tc_e*@!ieg^BMSsg6dJmocAHrPh{6zWv7EKarO>0j0zxI%m%eYBGXK72T zLX(8fN|Uap(NpRoObcz3gw__rT+Ko~y)W^7V+(sog7MK;VZ|@HA(+JLhOl;RwvU?< vE7(K9;P!DfZ6W|{_YRicm#VezynhA&No3TzWrWA$00000NkvXXu0mjfm<-e2 diff --git a/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db b/Varela/Varela/Resources/Iconos/Ventas terminadas/28x28/Thumbs.db deleted file mode 100644 index 6c6799f67aa39a97987c7ab02170625b365573b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 apaos~vNEJO^{Z?EwPGNzf6@Q74EzTf?(1Lx diff --git a/Varela/Varela/Resources/Imagenes/Cabecera.jpg b/Varela/Varela/Resources/Imagenes/Cabecera.jpg deleted file mode 100644 index ce37d1a97993fbc86699c5ff7aed7def7b6344e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18969 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 diff --git a/Varela/Varela/Resources/Imagenes/Cabecera.psd b/Varela/Varela/Resources/Imagenes/Cabecera.psd deleted file mode 100644 index e3bd135617cf987c6aa263a4cf8a4a9da5e284c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337118 zcmeGF2bd*gnZ}J*ozQuDX1aU2r*qCZ=bR^!K}2Cf10$1|Kr*6;0W;cc^&6`!`@wf-`S%r4w92ywDZ10wB7tI|g z**bT@j@^UR&wS%M)g?Q&4_2Sqxv^#A-toB$cg$R|Z|>A9Hl4QZii@`OZm%95N*TDU z@3LKccg-ExQgYd@oxAtyhC*m7Cp?)~Ll%?xA5Sx3LNdw-J|QPZ|PyP9{L z)!f?D(#(ZYO3bAu=Js#fw`1>t9eZ|{=+axZ?m2j1u=?P^9ozeQws*C)wVvP6*s^^~ zS7U4I_N|S*?dNZ8+_HV!_TJttbKP58wpXW=#4kB_*^XmleZfWb$?|1ON(S_{Z+y?r zJ^M}t@wuVaf#w(Q;-vmzC+)awZs%DOJ9f?O-p>$++PgdBN5A-!7k=es$G+0q(sKM) zj{5`%nkDmb82m5bviG408JI?OTqqTpVYPVRzw_nJ*1q<( zspUuI>jepC*XQX2)v|&PiWT(xLy(hFX`YD+I0f1 zmxRDeI{1I8T`9+k`*XXg=wC|dUbX+=Q>GcP%9`QXwgSt~rY}%sK1(-`=3)2^mSsL! zVcv##yv)4MJ^H@Lob`G0KG{6-VEf-nG4JVB=$LB17m;$bcM&k(JYtTSv6|06pHFu3 zm=OP#zvsj6zwzjvHgoE;d0alG)9h(Hw#S@vk@uFh*Rs67`xksnAOGEty#HT5)3pT= ze*w!#7Ydkn!ol|cnPZa7-deNQ3XE_#n-#XK#1g9&;%MOySMM(y!BPvj(vX0wgauaGs8Y@&)$-qdv;&Id-Jzp?)(GCzaKlWXIK3F zb{%la1sBFYH$zL6CU;4JWojXsPyX?U1{+ZJ@ zZrDosSSL(c-u;4ulP}z}?~2i#J1$s8YNapy%<^u&nYexK{4ED}9^hs2C3E`@{GG$k zSl<1@!&A3jVESUmfxFs2|Jd}=5BQ3;Y0qw9oqS-=-pvOO?4LVcaZ+}oNPn|8ZR?%` zDAeEVPi2ZPeDUGNqH1&@D~-(_K4f0|er%=LJ;O&c8+Pp86F~iU?LM&Yl6Vx}A_N!T4()eN}{vUtw zxM3YPj)qg_&Y#;ix0_3yftKyqeF4+Gd;1R4px?3kAIbMyFuhrl~{8`!_YgavE- zl+#MK9o%<`e@IAAVJpR2X=PctR*_Y1)mV*Io7HXgTO-z_wa(gXoo2nvdL@zjLTeYX z`%>#Q)|J-P)^*muTJN!Lv~IROYTagi*7~A#r}a(id)5!FA6q}S?z4VxJ!m~*J!u`X z=B=o0+llrHJJZg!i|tCg-fpvd>>+#7-e8|%zsx?*zQEpXAGBX%zsbJNzTUpk{;++U z{RR7L_V?_6vwva#)_%x-+jS3+UJ%O8ObuoSOM{KUp5Sec{>gS>X%9mxiwn-w^(I_$%QbgzpPK5}r>;NXSm8PUudUNqAYps}f$F z@V0~xCVVd8y9vKYcsSumVq#)$VtwLZ;^xFHi3bv|PJDmjrxU-EcyHn(iHk|8NySNR zNmEH@C+$vpW6}*twE5KjBt?@~C08c*C2vmNo_u-oJCZ+|{PpCYB|nlJOo4!5$_31aI z-;sWA`qL|uS5~eZUHQtDSFF5Y<(F3eY~^29C9kSlHNI-gs@JW$Y1P+O{btpX)tReX zS8rauYxUb!-@f|aRzH@Jm{FB6nXx_Ns*I0hd_Uvi%wT4D=6L3|%r|9zH1h|Uk7Ole zRcFm+y(;Uvtj}cqH0#isj5Qr=&RBEVnw!>qYt4h%!R)H++3cO!@5ugQ_OG)eIfXf+ zIdeJJg-kgQC`D;hk&aJ(6?dR6sw>FYnk~^7uQSLi)@63H5FO*l8cXHmPc^}IA zLEc~Uv-11%x8+}(|Hb^@6$A?E3Qj3_b-_mpeo}Cxu&8jlaBt!J3%_6Z*P`sAk)l@> zy}Rh!MUNL}77rEgD1LYGcZ#1VSyM7vva{rUC3lw`DlI6TDLq*F;nJU$M$4+pPA_|7 z+2_h0C{HQxDL=pb-Q{*jVwJiceMit}?l@r}Dze_g3ChxlmPIb!OFDs_v|M zta@$rZ1ok@pQ`>t&5D}gnu}|0t@%}LLTyj&MYSKS{drxWuCwmKx|`~LRv)PEs^3xn z!TMh`gd2Jrb~oJG@SDc8#?i)08b8(eP*Zl(hNd?*-P!bXb4Byn&F^f!r`c`kY}wiJ z(U#x0X0)zrePip_Tc2yIYuna#Q`@iFSF}&HzrOve?ay}9cg%HssN??5%+8ISZ|S_N z)9LE&+Sm2juE)D8y3gzWK=*HYvU*PHd0Wqqdc(bAy|3^6X75s8SKooYFZMmt-`Iaq z|Ly&c4O9=z4SaOq;lZ-OErTB(d~m2_=)9p@h8`R)9o{m0>+qjP%15@3e0=0DqqU>2 z8vXR>(_<}T`^LU9wlLl|{@U^HP6Q{WC$63N>14*_>6153{&A{o>Vm0HO&yxu26M^PAbi*=@78%^q6Uz3#Q^?p~j^{?zq1uK)9fx()j_e0^hJ^o^4fPCn`6n@)c8l-5&TbILuZW}bTPskfgxf7;k- z?>O!Er`Mc*@btURSb4@dXWVwi!kH6iUVr9;XEmSo+OvNAvb>k=c-dFaPCWaJvp;_J zk(W=t{5>y!y{&1XSaS}>!EGq+upnF$?YTC-@X0uxxu;X=l*j3;Q7~||JVhC7rg6&$1fbd@P-Tj zx?_CDjXR!w)y%7Ie$~Q7n=ksrMc&RccYbbH(ysG%eQkHf?u&Ncy{Bl;WqW?Hw|?){ zdmp^G@8b7dd}!bLeIMU%?|;SquO7&PO#S3w&A~SxeCU#)OK!Sk@zOIc{nBNtFWY_D zPcE;!{F=-Ea>djYAA5D^)!SZu*K0~&bLDFudhO_IKm0oTbz5I|*Xzq)f7RuX@8(55IZ(&7ZnD{px*J|K=_IZ@Kxcp||dM z>rby~zvlhdxYusK_TR5-x$cJRVsG2_wtxSZ)_-~5zj$vy|Ls40N7p+(^sfp3y8B;$ z{m$Wce)9U&*I#k{!|&Sot~=gc^6qQjefT}+zUSX==(yqL_olq};Cml@--h>n_5Bs^ z|JV1&ZoKfu`)(S$>2n___`o$ESoq-f58nHskq>?L=E9q=yE$^pj$7{k@bri8xV7rm z8$OcokxM@E=ts}^=sh3n`PgkA&-?gwA9p^n`x6g-@{~{BeOvc!x7}WF`#U}r_|(Bq zJ^tx)KK=90Onm06pKbi?hd-D7x$8b}eg5F*pZLOgU- z`IT$$u z?S1Ep?;QE=-tYePdl!7~;k(Yg>-XP3>-)dD`{cWS`h)d9_|Xrie)#=+M(_E~j|PAA z&426rx3B$s&%fXKrru%;J>(hUI|8LIu&4c%EzyGn{?)>euzq{mj(ciz}58*#t`@pIP zZun!tA8-9r?VmpPVAq4+dT8RIpZxjMKmY#WZ4W>BpZota_Q+L_u6Xo@zZC!Fw#V8Y z`{v_QkN^CMmp}2ylY5_x{`KmoRzLNDr)!@6@-rjP{N&JChaP!$-?QFxZ+kxX`A;0~ zIDFTUlaBmxe%E|-;o8OA#ZNBvEZq}1GxC?{rLn}=`+X8@58f`%Gr2~VVFMxq zE6jT_Xe+GRhWNxSZ1uc+(6UbAb$G~HYuVoY-hnuYPg!YZ<E8V=aw!gvR>)!9JtE{x7q@?7ewB+Qp)u}0|tJkbdOIx{SZD!`0%*?f`)68G| z$$#_WM|(wT>WcIgtJ2d~Wu>R5XXzn5%m2#i|IP`#?^>&q5a*VlU1kMV+ribg_W%`v z6z^_(m{EqID*Q2E{RI&&6i!G?N=`|oX!61jsaOS~8cYgQ_W91cVPWj%}_KtmT{Ka@;<@Ki?dg$40`#ZC5{oF!$%9L-@xd zs6I9X?{`*O&|Gu1HEcaK*zv8-3$}jlL#Y=R9XjXd_ul*Gd(Xb)>3ruu7V5t_{gHF7 z4b5*mZ*JEE7v1#o*I#~j$LsH%{qW~5e09?Pb1FZZFq-&{bt^9T_!$p;zvxRB41MH> z3!e4+8=kr1=4tzZu3LJxefo2;A2(d+S+{=RvNwD!<=5|f_K~Z{Cay@Gef(pOe=0xY z@Gmd>ZO_^6jjz1%3twow=HgGi`E&mM``?@K)qlFX-ak70;ak4?n05VY-gw=|zH;6A zsk5Z7pI`fTK;gVXzqDnId;;_q$#<)&QQ zdeeDNB#r*dh39%dKfLj+y$ABY@R@sd?)la`KKr$w?{3`xtv~Ji#uvt($i1j*AfsZ{ z+3U|qdgv#we(g{8-E_^|z@F0{cg{@t_#JnC;b)ES{mz-YhQFTpl@EUVy^m-AY2zm< z-?wq?@cD<6FSj54^E0O&c*PUniaLM%)N4KK@aktCd-UPR&JVoh%s+nqiQml}>iXi< zFZZmC=iYPAt=Hym>JK0Ib?Ms*zj^sW@9)2T)4QH~^oE%$+dui8_ul)ZqJqobyzQ;; z_{)*^{^Z`yBfIa(eEKV;=briWUU%$~k9?u=+Wu$jAOGp$$enMmeqhhS#~wejr(pBf z|Mbk+{TcVaXYoC!esFom=Eskm`^URItBcR_{m*VTyP}_Q5C8GzGoHPh7e_eZHRoP) zdau9Zv+m(<4SnX}YZhMaJUPAfXUU6=ogmc|dQym93j=k=WaogHo8y)?V!L&NvpdH)@k+%mj!#h*4^ z`-k59-tdmddlFvr$_JM|HP(6V+s_%yD@^{ftgfgo+onI*`)A{YDjT@~xUL;wGc7|D(uj;R5=c&eP{QFir z|LE&i*){QF0({tNN~!rAx6f`fuN5i&-5!?UU+hJm&Aadyl>xWrz9z7X!%Y!V7NDr-PFJEL}*xN9ZJ-?zxs#bGptYjMn)W znR*?EHqrUubE*lJeR&-2mxx>Ue}!AOuKQo$X86wkCT`zFIQ@-mInO-v(7>kdQ42B; z`C4UPX+FGKxLH>SH|vUJ#Nt{d#Ps*yMkmc^RXg>wy*sw>MT3N|T?M>NJ5IaWtrF@x zd+1W_u(tdY#FF&+|0ZJJIV3SH>$@f9Ne`-dOVftg;)n%I1uG#S#CQa;(7_iW_CK`4 zw&RhKvLA1UZT|$F@c%YCBhnuJMwV zVlmCmV|l|W{#9|NGLEgZYwa<+j^`%3lTXKa?BZV?s~Yuh)}CfnW1l_D{t=EGvD^7~ zhCO39uxEgEj~%>gx0}s(2KatA#|)cqjM!85>GsR*^_=@WzR}6|C-}6LwUUFpKgHh6 zksBHF1V=WpezMQ5v3of~J)@f7d)4e6LXJGfx`JbSK%*Lm6S>bsv zN8M;$!&xu0-eo;(-Og;?VZDhJpSRN!T(aKH%zo8+3um~*`Ux|<-ws=cInyEQdTYVD z$@&s=`+DnHzWoQz{u%3T>$QyMPU{)#2J1)c*~4)cTmNnypl|tF>v`rp%KToz^>;Cn z_p`qAm5ko-VWsocx5mT*jE2>#lWjW8mm9 zTg(w~C1kHz1N_M3aNVexHNAeq$mzd7oE^+zY;Jb)-%1)TDnwLG{~8OKqFGkvqfFgm zRszCloKBvHk~mD?A`0Rdm2f!u(Fv@r^&}qnEUpP;=d6w8+W7_1Lc0jbn7I@_IWngF9hu`&bba?L2+Tr}TkzXapV zIU$3jyCx}nO?E*=O?6e3Q|)CY7|FobSeKg<*5nl+Ul@HUE-Icc@k$qw(K8b9T$E(? zOV-80KmhjjxSPajeKG^okM-3m83{led@~7T&pQW3uL)JF{ashZ%ijZS)_E zK7nb-$1@mP&kUganuQ>1BG+fr^~UOvu%*>KEkRFs#MBw~(6AO{unC*v6=!!fdG)bd*SF)UT4vdH;`_^~Mo z7FO2Px;25?x;lsHFiPy|Lbx6DC{mhGR$g9KR*EzZ(gaFNN}eh8iW5poOEocW@qCe6 z7-R%-j~!q-qD(uskt4tAam7V+_-U?+mot(*pS`Hh%uyD4mx#3>R(YjUB_%_w(uC6D z!hHN(G&_KIiZMx&Dwb(wEiKPbKJfw^BdD!}Ntb2$F$7 zPMR$W3eSOp@6d1+`3uH9S-DG~5as&L+Qgjf;~|iy$Fenm+&nkmE3i<|a53{&R`wV| zyQS%xVJ^=@38r2eMR2>MI8qeG&I${S>Ks;(G^6z}HGlG+GBP{a0g#Vkc;4E1qsngf zp_~BL;2&iIt7OWV^DcG zDUS(A@Pnxtfn$($1q@ftkpkD$IrSc(*b1}E34(?dH;cJxC06d0JzwsWMU1ckM+BU$s3=F~ zWn-fCb#85-uAzbGipO-!$inhAg;=0f>XdoqZiQFwvAGqI@_C*ksC0s66yuE&$O)&K z%_!TC2vbvMNGlXk@!kG2 zW6NNwjF43|wRMb-s9KR+URt8?0K;-{DMTk^3u&@4599CctTjtUFE#EcX5?zdoV>#b zyJQ5dYN)SkXl!g~h(Zq{^1ZS-TQR{dHq(TBl^)U5@wf7DMP+40IkR?D-00DO5i9Zv zy@H517FUF0Nn#$EvpgBRBDQ4r9Zife!@`V4YL+DUe9jScSUgu6o+W;;EOZ@KQ%f|f ze1XuKS{F8m(72mLgkHq^#=>sTHKr(nB5~!Sj6oW)nTfTcCLUru%^W_)CLxdT{5)5R z{@v2`Khb5&(Z1!RR(LhKjk1Y^da)+``W#Ai$}Z{vznM6og35{Ru+6eOJD z5B#h^)}1C#%{hvzHMxkH6E=JdS70V0-z~5U#TN-Dp$Z5ewE90Q!+7zE$_ls4LVgc9 zW2H_>kSoYwQ5>rvnjc_nQ3+sTv%{SJ3Ih4)T8t-eDL(}OQU8i62!~T2L_;f+Dx{#I z#hUDS#CeMN7FG0NECJYoTND)6i26~>(2S7A4}4xuxTw0Zp&k)PrLc(PTv;F7M1jz& zn6I?twW?y3L1d_UQuD=bs~i~^JDjE{#{4W9Uc|M`@Q>sr%4sSC_>P$lUluvw491Ty z)cEV`(KYm~%FGFdj0EVeog>bYEnUl2kir=*Q$pka*NTO>MX8JsKPGx!hGH zTbrIM{ZIm;>1k|m>jMo$m53)1tHm@dWOR@(ihL0~j9pY1 zL-pK(kcNi@njbDBHiY#dV|>Q-%w#=^z>6rzljd6H8{$~m#!i^Ka+IM)&ZPmxsi{gv zA2oTLJR;Hk49LrV20irIJN`{6WkktId;(2=V+=kWNd@!T+>#n*vC(OY$*XCA`H8YM zIWtrZ5iu{sbE>Rrr-qH!9W#aB z?I@zk2Jb~V_3WTbL4-te?L6Re^E1&Su3uhRgIB@R*VUjv$(7ij=2}xN79C-(7x5)A zxhCL+h>)DbO2Z{sUvc4*Au<63bn=qnJ!^~Oa>hB6E^g<-2LfCyRvKXZ649**;<~G! ztMO#}NJ`?41>#|=ut8)jj~R03mRcoCpc*wECeA1FgkDgy9Wk@*;>#n5_&6JW74?c5 zYjpB)H2G=EVpiAG)z>=>f%@9&WRu(#5#Kp9AxEAe2g^KytmLiPOO#;&(#A54td_55 zk$4oAc7;o7ni?CJPnAfdVXpKV)s=Cg`Q_#K%cz-5P2+Pl7^wthYUj;dCRSDuL?G!V z;6v+5;clj!g8fqyA)a|6P@FMeevNC!*kq$pFMoQ)IwUVNlJT-J5C_@QHPJ@-&G+*o z1*teobgiPYx<MCRf56SZXpNv&yJfiUiUCSEGj?EC4F&X+cV;qr~I6 z6gfWYO-+qWPBWT@SBvJZJO)J>+^wQA1_)0ALKF}}HAFDHR@9iYQ)xkdlA)Hq!@$kT zj$+d0Jhp;m82n^q-Zgmk7S2)U z9W~VquP|hCXQv>Hm}o={AzhP6sqjGbMKyei@km@njtC*ZzzE>t?y>@K832hj1~B(T zleEE|oP1kuQmj4_FUp8eP;Da>(v-%vz%8~*N*BvQB$37B^j5)Pb77cpaqUtIRT5c^ z@h?t63U&Yp`0q+Qcao-D(FEzENFO3|)oUT)3JnPBLUkD7tE!+H%i+r*>iP&+!~~Jl zMbyG2HNkY5ocw2yI}(@O;nJ!t2nU%8`;7)I6{av0B{DU&4UMrTiJmI3<>_Qyj**@E zm-Ig;fH#PkY+IaprOCj6+>g1X5Z)wgh8Rg;^C5uft<5W~ZH}~%)f!f#@+juwmfNHh zHEEI+HLR~Cs?g;*tAkwObWx(dlXCVEvpRKh0| zKCh^cG}!fZhikn$t2R>ORNGaE?BNGh&xrYHye-yb6^OhM>?E^Dl!%TDz~|a7a4`A# zOg`yhf(aVJL;k=qM<=5{s4o1)kd$N}mHNgeeup903@)n(!QgQ+EfU=;#h(P|8*=axwE;n4-*xu6A?6eY?R9aHu-RE(D5vxh9 zB^$1AoCex@WTo)SY+ z(U!OlL}5-Y_AFgyKFd|VLvSUwRM+Dp@(P&y@+PEiaoT(z>_8mQRaK}()D&`S>mv0Y zVK>%rxG@1gAcasMuqfg=wTnK-^QYfIY!B8>MpHmyW0EUGbtMqHWD84RJ&%y$Hxk=d z00|xdpLphKzHewal2<`}j?Q^~sJ^zUywvfd8GtE@+qq0SB@E?i3hE}$M(9eF_so2# zwiYw7f4(3gFTbq5wXH4Iz6`!Ag2z--nyN@t{ajP+)>{ovG$w1tHSG=chmm;6m)5DU z%i$A#agxBI5<#3lGiScwL{c3L)sB<9yt?Q7~9m|(ZnZLu0t zYsrTym3eWFh~$gp_=&f2QJKA;lUmGjP|~`kA;oN%N`ibO#vUd5I1mvqF2L1RG{yWf!bX|tlkl=fyemaOI17L7@VSH-|@(H{qp&;Xc5GFi0ORF1hrHhU|f_@ zcV^NT7SG+%<}6EF11IwHl4$-y-U7C2nsZBp91#vNpu~c>j7wE^CE2g1im0C*I)(7* z@`koZdn_JBOren&P5~=fw15Z=OLQ9DCa*EV_IwlRc2k&=5UvVA30qEGieGw>!>puk zS4oXP0ScoqNQO|>0;9T7Bn%=J@G5FYP$7r7Bp3Od@yd$k>L;joY8oR31L8(1(wo#9 zJ#KZ|+*YeOxk+iL@l=X`5m7bDoVk>ba+WAa({iNaY5-8QGL!6Sd`yKZ04kU+(V@*} zlAAg^qU{O{exVh=7DMR;0ItYP@PkcBWHn9Ag!G1``bb?+oHb^&CTfITq6Zu@&0lqb zl?g2QR_Mm{cOIF1q87_n*5=g<#j?hU;|L9yAg5CT_KMXD34P;6PPUm~6_4CfbMu$@kaXCx*V z$*B~tR6s{!X>`5vf>^WHKR(&(z1p#=`N**n5y8$e2(GZEq9Ue ze{vVd=@g(0Kx6C~T;`d!$Bk;J3>Pa*00%xkI^jx8n_AnWZC1;QW->FTyObl)rwHyj zM4pkC_ZXbk$tRwRT1rVAh(iFWp^Qe=J(DPM# zpZl5Y7_4kbmT^@6YGPAsdq-!7v>MOpxk9jw$sm6_FQJw)Av&fkO;Y&K4 zgh8~&h#c*(+gn$(G^)OYyhS0J4TC(zD zoGlbS3b>4?ps2d7r#srUP_Wu)nelzpl$77fkvA{21X|l#=iviKTEaLq)Lqgp)!XVb z`tmB{vdbtWA{FR5C1HeQjILytZX%GUE{vpKGO|8yqNYnL0rsnsADHBrZv&5r;ihuztpbX0g#u5_{LkZBG)=Zn7tiS-JSCAZ;fWW?!`TyYgWmtTvPhLm%vqf%H@ z-QL^T-r;mf@nQulUo5=~_pp5$UqH#{+>GGK8S(c5}^ zqTQaBBcW!fw%or_?U1Nn%d@Q>QPXRSAn0KPoo})m@!`rf>4+)Ol9X0ig!(12m6j47 zSx=%_bj{ow3Dnilk|9U4Z=S89$K%fq`9v~D88wkTs5q2{woC0=+Pk{DyW9?|JrQx4 zL70eU4u<0vrY&c!ShXrM^Kd+^DTtWKSLInui^&g?AejL>)j^f$UL^f|VFm``6FP`C zMuH``EVTyO+S?;-UVDtGj7-h2^*f(&@Ib=urWW4 z{BL;MJG*;&(TR>k9|ri9h;?y99NiTAmh?>GdL(_*($ z**M%0=>GIFexgKj;VJg z2^52mzh=$D33{ch`}Dnr7Vj<WL4pG?=KgT>~7-?!7n%g>2mcBlDlT}?E zEeh{`c^?I2F@Y+iN&p?!Xj3!8Mobe)d5q2vzHSvgsCp_MX@(m>&*H@mN^>%9uOzG( z+uiGci)VbFSGK||k40Sw%xKF}d#Izcvx6Wbcwj$lPFJ8CYL0istx$5XT9?GY34wkw zrPiSDnLa+C$b%{6pgN5`2pm*s5p{8wccLhWFPHAru81TjS?6LAVzm@S`+7jewWM4`oU)ndO-9WpLk4TMG%J^(y^ zaj@J31|m*v*AP0hsJ2)v4h+dAz<^8)54+Imb$OjDyPyC@U*az!AQNj38>MNBwxk-4 z!}O_O$dWN;VaboeE=3$XyQZQv5ocZoLd3e2dNSq{e~xj4RXUFmu^?bslPJ#sTLid- zqgA?~Q<;@5DLz0g^0%=buRFD?qrFAw_-xbmyBzTf713BF1eNc|J$!p|D}v%1CZUWq zq3v=sCSt}Q*KTQ2SxISK*I-{yuhYM%YLBehB;$syQrsf=cFcE%jKV~^6NL{d)3wkU zAy-&xv6`bzRzrkTjVgyLLtWC^PXmPtjHO3RosrNQMq3OhzETUG06QX>3o!%HwIVcK zV6hp)<7mMViNg`ASW!h!oJ<8T)7RgJ_e~KVjpVB){&=MTLa4x;Oj#6ja(wa?uXzW_ zR_XMH3^$Q~^zbn#Oqwz)d0+Lx2xO2W6lT!r_XcFy43iaP=}KRuG^h-I2FezY1$AOU zJy7TFrJh8iJ>5NklT7)flS(azMq5I%DB^UY=qxQpaFVyts-S=v9J-^Kkk*I@m_VwE zr&W5mBvF`YJ7nB03vGBS_v?pvyR>Xc^+T4Xq{TCv4h*}e&+WJSdXl?4l-;N-X%tj$ zANLTiCsQ&p)gX$ep{Xrd!3_I=s$Umm?n8?e+xlHqjod`!H@;g+7nOD@x5&a}aCrxCAtbMHrRyppt9^ zHa4^#-^6G&hEbcfdQCS_p0tr zcnXT5IR?QJoKuXnh?-~IVpz}tGHyv+MH1vt48x)uD+m&O2$Yttko&6d9_sJy8yFfM zju8h|Yu>OMLk?7sq$J)Rz|A_{URM$d(rq@UCn&cY?TO%doz5^yLY+;N*J_C>+^OkG z69Q9Wv6z}U$P<)WV5_|JmsLm0gF?t9A0i}aQyE7>`I50O0#3@gjYfeUi?3O+nr#wS zlmCKFS8sn`U%${|+swH?z z8+wL^1_lO!$HRcoQl`~+E5xxTwL45`HUm$$Lk6im>|Z$cBIo5HW3AC zmp+YKpP~wgN-c1$1?pcUKC)MoF90A>^hA1aSPCR^M}LBp*(-ZS9@&5Eu&znRtL7en zwzyTv__>BA$^kw7?qE=8q#UO!zFSv1L35K;^rp#6GOg;c!(vToOuU39T1fNW)o{sV zOrKPltHVl3=|*W;eb30SI~W)m8Cei*da=TE#5ygY@O7le=?&p!yL)222|YX!+ubg& zJE6-En+~Tl)B%a1^Wf1#vzy6?SS?i(r76$yGfco2k;Qk$!#G;1tQIG0v&j;f480d7 zuDZ8IjgFM27=7WvC|6L3nbXitO(BLL9{jGm*TpLa`VCGUt#JRN-sNcJOU*cyn|&S9 zb5sR6tT)|MI89Aoj)F`-M2D=lCRS}#E>+;`>W$twgNg`C%w3wv6I2&QW1%Qs=X_VV zhgs_GiT1jEDZOAMT17~j$D$OiZIL^x>3Bqz{BUNxGt*D5S|tM30sw@bfkBvgPi9YNo1BC3DqssmhWelr{>^G?GEst}@=n4X zDO!Ply^M%`zLV18MYwfWsXfPqTe|IkqaR_XZd%HTRB&l{_ z3M0qXK&t0Lc~G6idEAQXQl#eC0&Sas@hd?o294q7Sknr?#omo$!tXeh+%4096%ECP z7tIJ&&XdnoAx2RL9@}Yr2-*>na|4uQ6WjEJ6JlJqNj|GDCsK+WL&N3G|gdId1Eg?43D^@ z3IKBPj?z=*=Q1srM>_%7>T%^r(2rPOtl#PLdIBUON~x`0X-U{*N$pEiVFM(M4z%B@ z(<&z%Nks?{Dk_*`!2ld+NX4@<94_Xwyl2oB`QC^zD2rPQXmX(uUiB(Xipi3FbLsC* z>FMgAdw7hE$X}2##XFy-S!McdP!U-XHxB}D+Hw+O^gd?PB0)xnV#I1zD`HhtmRH2V z7#$mfS);5dbj30N+IirMm@h-}=d$)d4S z>Ih~TV9bXE_Uu)KblJ*hfrf(KvJFMz@ksUrhnIpd47m{(PpZvP-v;f-kR{_zJ4t#J zC1o>dyA$jNbrL*UMq!rKsSt*tggp#9I2@0jtl&ojl(i zz+$wb!s7xyYfCbwsaf!s1#3Yt(p4?WSg-(b7vgex86n850XJUeIm1*<=Zg0!#<>bU zMPl`|=+(o|GvpvuWa`3n#36=`qGSAl&t}P!N-WWRvplAVmevvpL>gWV8!${=>s&2B zNmZ?klvc=6wRdXLP#ct{sc&?6aCp=m^ArOa?y6%N)6yo5L18Q$tk(w={cfKFBy4>i zx|7_CWfOYD{<{NcjXIjDSkkt^-&*jMB;&k9SY#0)u32SP6#L2((|UR4Inh@j+%hi> zB1%D|H40RVygqEavwSW03xJdhN-={{Lo-(1-P=DnJTfvo*x#FujZqn-Am@`gld;Ee zGg29?i4{y9bUDBxD|1_7gWDJ~8BHv{+{&q2&4B4v5RNde(z3?Bu`zcvFg8B!E027E zS5;&zOOeRnBp7AxrjWL1GBF`}s!{v&gwB{BHnqkr(t)<8_&Qrt33mR;o=s3xd z;eoytJ~nD^$ZME(;sPl+EfTiFDh&vBrb8B04=||)m=^NA79x^XnfMB1!B-N=z)_%O zXvk5~pL9hd6Qc=-6p&rQv)h~AM-l=kJ}~_R18X3H=ZUff&>|hR*d4^gDDAqf)VQNs zyHmGNlgL0Za2$@Ad#GL9@yLs?W*JE2aRm*w77tl2Vaour&ehSB4N6fxtW1qCNYAmG#wbXjEtE&moOu(WlKt|h%HpnZH>_R&npl&AkU zaEf}C2b%^aC!%9+*;-{Sa0NfK#Um8_sk6)N4q-<9GMau1M1lh5$Y6k{2*#txr81Dw zl_iV^U2)8H)fi4v0eW*6?tUr0?)jpLXh876&fyOn#fUf7Rp!22@y@yZIsgC zC&4k*gcdQop8i31*c%Ou3@T0$$eUQzK%BznjE_;(cpg8anwDv`6ys!Av4p;m+biQU z-EBBsvOz_jk+HHoqPo1SX>f9EcywZNVnVUQsie{pw<6pNtdjbH;ZWYdyr393i~&Ur z)m>0R-C@?_sFXlbO5|ItrIxN!h{Z%ILlOuKk`$&XperTwBeGK&)-KUluQH^U2%`oa zFi;-D<}93yqM1vb&(=zwOmL=qY!DeTF?9ru8R+XWUKfu_B}(-i)rnQn@)bqZEh?F+ zmb&GsfZ~TI)gIftmX%cUTOnVHQHIwzH7oGF)ihO_hbG5HM#tR=`8~%ULQu@gZ3$}( zy*LqT;F&>h$YTo+_V<&SI7BDf2BeOz9IaYM!8R-gO~K1*Nw4cK7mLCWh)Uq&Rwi>j z0~%(G|BWwnmgYo=Q}gEDLUUgsGtRPK^PM7*556U=SZ%70c2!mD@br{3;Z5omLhj39 z;E9I!!t zpdi1>jmhz@l2e)_I0!jBh2Nni~L>Dpvi7fRiFC(1932tTsi$%Wd@x49CU-P|UQ!{_gfxDM4>lYSuQOxs_Sncux(+CWmKY!wHW!md@arUHi7a0z#xVyLE9mvK}qMvXBj$Vbf` zqf5p|>Xu3Z3aYZmocK3gDoIV^P*O>3(1*at=%}M-%p^)89PL9F0QsmUsDNg1G2J++X5&&_ zl6j^1idCl=JusdGM8dEPRR6vzp)WLQYR!tKY67Ud1Z=#cyKiu0+?n(Q2D9I1D)J_M zH?yy*vZetP|r6Juxu zm2UcpT5f1qzN#e_HKL{RAS+iW+$OSoLmdwlDl0PalGuZY1bxUJd_9d8rz5Q9y66N> z!Qt+{#5(T1X&+l3#{z||%a)@y%^7k2p&`mIWY4C|IGivtHa0psG7=f}#w@T|8nuUq zmIfVziPLNMbg_VK854)L@RBqF4R`Akgb7%<@Dw@*!iacMo1p18PD1v}8X8dyh1W>+ zvsLreVJVIDlrD|$*e9Uo5j7WJ`8K)ITf`~dX=}g&^y&(* zyhS%cJVj0dIbwBKRk{WshJn@h0YR)Q2n4znt2xHPDQrY8435!0zG3~WJLAnR`0^(i z&n!3T_63RKDm{-_qfvyn#@z8GszlzH2N2OwYs47}KsVgM)rMqI{-H^uvOA$e9X)Q? z2pO=w+D!kZOJ&LepC21yrfCKsaI~76wUjEVA!>r{bBGj;zm5`0sVVr1g-lBgtNoH{ zfB*3K^en+{YI-7Zl(JYih$uHyk2%OHGcr3hb}A~KFx7fR58ZJ{+))ai-a8;`V=<^0 zXDg^+E=zTou0bTWF2)e-T3R?Oaoll*z*aDn=xB&K8AYLSZ_J%=#+|Xq`1}}Z5rvAA z(8DuhKE2R77v+5>NX<7`_zvQi?l{!aU+z0Lo||7GK>MXCwb8mnVxLg~ZbgTU`ao#8 zbgUXL7U3)0`NaZURvk8^iVdKs{ln;RblN%&2X3pbtycUs3sxO`h=Y+px}z9LtTM}Z z4mh{TsL199`LB46_{)8We;f~}8W6)i?#5?VjdFcl30B3P(acoK?+MpIB$-|?QGwU|2UpF(EGDdaT z)WWn9#FP8L@G4iDQmlUWLB$$2xmC5{NPMb1xoP|)Ysom<5FDw`=?P(Y%1>bHEbQl8 zTJTX*+c~*u<9c_Ux8AFv`KFs|GelJUIvDL#Fra!XMe!yA<74AX6QRlJ=}DN6GjSN6 z3{pvc>5v3Ul~bIo-O=XXUl?f!VdxEwUZViRrPqdayNPsDl@Rm0HU=+|k{WK}uB&|- z+d4$HsvnKvSOLnK(+IaBq)KJFdImSg#8^X;T(u zCS<7*oVbSWrIIb1d+1aKK`C(eVF4o(GvTWCF|2F8#ujiyNWKP4@Cx1P0J4o4;H02B zG%`LhHM`zuQQ|l{0936m>4N->x^${7Nq;DZvxI5D?x%1V#>9+r`YXyERoo3AiAE^SZc6YFuvkNi!NOQxoo>j8p)%N7ecdy< zbygl4&8D4P*AQj>l-HOJU!eFx;b#;y)~|EXoW$`FX5GM%3>=DUL?fpvRjnSC*93}| zwv_UNvgUV#2yO-xQ}82UmsJ_VQggqno%XIuWSFoP$sAQ4tUYensE)9~wBZG#6reC4 zYjS=H&6%2+nVuF=@Fv|U_K8(4jwH}@!>&w&%Z1BPL|m>n8TVGljkAsUilgQ(cv+c= zjd}tFjsU!NHIV8UsSYRLD=gYgH%Ue}i49H}y>Vx)snl^s zJAjSB%&;=EuAM5nsl{qJw6e7bs-v{bQor9K#CY(3Hz4ZAB;$*p z^M6Nzm{qrkMWvzCU}|(*OMNqxj7pih;by~Qld~H(ZUCd1l&LZC-%hPkGLDUmhAyEB z)<&O95tlnQv`|BM>E~*^+7+@f`FpM7?;mnU(nsaapk-8ymBBg!N{cyb0c!J$fJ&22 z(^w;_!>;6Lawn%}*Ue5(&FEojdS-TpZQbnbx^=Vj)2UNf;+S|CPtg&0u?rDQrohw- z^~U&|cFWfMZ78F{V z#>NsUZsK2R%rZ?Y>QAVdv~1%h;?L}=*{M;=p{l?^MEQbl8Bi?$| z>An+(py)hkiohdI;^F`g+TyP|(hY20U2^C6hS{0*n>KISB;}`mD1sSlN)yL4-AQUb z<1x(9nOd5*XJ!|OhW5Id$aEOgaOTcrU}|#Q;VNNDRiAQ;4OcT!bm(Y zj3_|?=F;HnMha^gFNjI^^vNehH+lF~;;|a{D~*<-@}>nvQWFKHM5)>I?D}=lnZ$MQ zlo`~_nenEhQwfvfsM!R(N@x*XV_MZBv?983s5v5=B*91%SP%_<%nUV;)vqM(VHsj17X37&2Dr z$#umbU}6Z0b7I;U=n{)2$W@oQ;YzdSfi}emnWRv5`x5&pcE})OEosKZ*VgyUoV0P> z24_>mXt&nExUDI=FNw4dZ%1jsnF$;%qSr1X*N1zftEGl zC_hm&)LjFC9={>NA~CJ3F*WZ7uOUq36fC&6h@K)ZOtV+mz^Us}nI+%p1Ktwu3@R?0 z1EGd!U8;PTQ8P1{oIt2YThj5g>dcRfPp#Xyc@q?H)w-GK@ga53RP~g#t15-7VwoW7 zrIsY^?n-KiybI7db81uT74spPl!nHXZVwub@+qKMYRJ7Vb>JnHTBxH~&hds;sE2Bn ze85p~<#+;6nTGRj1fJRT&IWg5(uQ@jsQiWv>l{?e2TRFZ$_Q#joml-@w}(Y$EY@{( zYhpyd$I@VN=Y1;A_!$ElT~9TE1scng8W!7&i1W9RR;aD0y7&$Ezj8x1eDIawE6Xm&3*0$q8JLTl)=7qWp1DZUYS=lH3f+slB z){Hy5avcs7z<_NdXsz22+i0&}cZ8UPBbywLnKB6V^}*Nxm1Ej%sMRNd^aa$A1)kC>S#9^Axxr#W+(?+sygn>L?x@=2RF zu3x==c6wrTsK2LET4YRFzsRGENd1Udbyz&1a@qbCNjS1$UXTJNAsu^D&To|=q_XT=DGgDxZ#aI#SRW3_1tQIzc)8giNlNKMSLu+h?KrAF*; zJR%zG)Te5{oR;BGc$#?iO25|vfLJPV0UXG-^hGu*ec3$WvQ$$Y7#f{gziH#f%_nW% zWIV*gaGxp>xONv^RGPG0WYww~-B+1t%1{)@aa(vZ_!bo*F)mKo#ZsW~5Kekx+$FIe zatD$~Z{Q|`#aQbK?tlft(@s74Bp^Kf7=)|LR8nRqYY;hwaG_rA3?MFTbT_#hSCK|+ z*tBuo`i+}_bUnO+oKZfEHlH(|0H0^IA8MA$+E)<@trlUakrsDibxlhxn3H}Z!)k(X zp*tS)<}~FPRQ-^t(CBX%=d<-m25;g63-Hs>IZcKRY@zYEijXJa|GYqBZI2m#PP*`kh**7%8{jk&mvHZK)U5J2Xa*ZW3zgj)x}D zJ(7|HsW9HnX=P@t2ye7QJw0o_A|tj7O`t@mt_>&VmnPWkq*G&94UJ9l+wwX;JDLjVLoc;DW8@4fd1 z=!W+o_xtD*=&kfZFBGv-+?bf15r-tuT~+5~9{rv?4N^Bk5h&ATPGvs%{QW-@c3;hj zjJ&%0=Y$^L;XsJ8pNXV^Tm%?!4fH=< zY7h>Q2iJatKZ2m^4I`@)ovB5w%HSN!dv%F`r-QzN)0UriN!#RTaW4cgMRO+=^2vGYBgl1!(!| zf>*b>(hT(9+hYk?D>{h3V3NUS2}xN%8I1?&HUtmrDNY2R(z^ROsRVWKey&zhOBl;Z z7W>;&54w*_K$)4lV;NMgDRb)j+V$I&HFdQBcCg~kHEhuN^WS_eU-Qe)iP-m>TU0)a zijn4D@ihJg!KB?miiBlrN8>@vu|!U)Z5y4JzQgm zA22K-jdId{5%LbW@i$B@Dv66oK(`PSS zzD(w!h_Fa%3o)$BRfkpC>aZqLRbDQ8RhchONic5%Sd8K$SQ%+eL{cR4RYURBG3k6U z^H~9sL zQh?pOQvqTq=7Uugx36Eh^zHem&kHg3|D44ehgknoOlgX|p#lc=5tYgAXudT4pCf9w z*9-AF37D^lRBGNk6?}a_n)r(^&y_dSvmOmi&7mS+R@i=ZAj*RhL}D-q98q2=Jc{x= z<)*@`@~dr)txh0{;1;heFV9!R(P_bLA$2WtHENuo92wJ(d1q)}iG-3P0^F7%O4HIj zoDqV5oW}O?hpLen0k@YvIzq?${3mSYyJ)|GT;39qN}rYHLcReBR(*q(y?V2}vbs*z ztGK%IjzAKvaLh^A%M*6hI&CPX(22rVd6R;so+6-9Kfh=!WjJo$2(A}EE9@2~k|tSf zmOY;O@~iU|jSaRg4pcd$PiEDb2p}eY1oJ;5PaQcS zKaso$v6_2s+kpj6ZOKYW=)T~qA`v?M+bb;KoeGCfRas>@QU{4tS|fKu=b!W+nLqON zE`|J&s+=IBo1RDvd8*^t4(yXkwoRgZ)7&b)Ne_#VQjW!*IwWOv{P-7Np08+XsEb%d zx((ecRu`*Vz+pwqYHkH$QU5SI3uL*(6uMO)m)s+$3O=XCGkpi$g2%*AmBj?Os zNg(fJbrSsI>A*3|ZOU^;9x1`8mNdEciYJt`6`u>$3rkN8z(l)B2*B|UwR6CJx~p)U z=5yt60P=`KTd0%KQ6T+4f_eEGks4%cXl$%6tF0=(iG>7Am1qENu$;6Sa+m zdTR`x8vp47=26FzhMykMdMaClSB1WZHn{5cM%i^|ZK*AwVo>|`1iQ^HR5sRD)zmjN zw*=a`_NC5VDRm0pNvCo+^M`wKX-hb@dJPHI?wMI;boHNg^g9 zsoS`@acr_BZGY*4CHHL4#br5Z(2S_A-6hE{$%1@EQ$8dIJ$vl8Kmv&JPmh6$lUd2_ zdrcR9nZZ=>?w4P@C8Y96q;S?()WxpCtcuw>_23Y$fuc)rtf*~hMEO*g;i&zJ<8dNf zl!Ck&VvP^rpISc9YwqUyl@wy;|Lp^uG=A?rka$`yhBh~2*Du=(NteDi)PJZ09J^4} z++-W#O)af#+kDT*5?M|NiO^ria1x1oa4uF=lLy7O^+gS}Rh2bhSX)&QK*z9>x65H- zKmv$V*1g<4_hiqo#@&k>TP*eF$}QAE0^y;&l|NOlbIMp@W%M-?o%LMW63 z%ZB=frq(uv#P;(~w7jZ+xS9|#2GXr~y&R=eTW4zXb$_dm*VR_rDq9&RPL^#YrkAg) zG_A`yYGa;Zqpej@m*R&z&j|ti3aE6TTgg6I&5;zh9&967gN;B`25;xJ3+8P`tdOpGMhl5PfU z$SNl5B3b~qF2RYzE>M*%AOk6#2#lG!no0*FUEn0h-X|^yTBs`!{C=7e1ON3;yHbUO zOghN)5B#n|hKPM6!I&FrACi#Kyd*o!UKVXrKX&|LbxX6~XmCNv<$iHU;!iuVf-Ms7 zH&Ac3yr4n=)^M|RDa5y~uKsTgvAUYP^I1qB#gsXUVdk%;ud0lpq<7I-x6wl^Kj~|y zH@VL}@+gqev_V!;R#_z#DOz`!@1IMZUx#m}HWK}hA1d#ppg6n4?dcEBoTDI& zv?>2Yo(IUVAx!5mId4@A0IaH|xv8}s&Y90Y)^LGL*$hdm)UZkd4h5gDX=RRHT%3yQyl66rUn4HV2-C+H5q!47+m?wLhK?t`GDJ4mXZ` z6?l$qxMOVUJXY!?*-4_Pq(h=~ER2kbRGq^x_@c;x{{DNhuQ(!RA2~cyVhE6v68ae3 zd>fKP$dMd@p^^5?62^Vxx=slA1)mrKK=7eVFc3nyv*#~g$J2KZlI_gk(BRQP zIn^Iep14@u+G3mHEp6=__yhe}d?loy9LYw!0my1A!zx=HuWe}X>yr&lO^uEDrrpM5 zQ)7J%QH57!P}tH?pAqKt(=LL zrh|>OknS3hxfC9mp#2sASB|lt6-Ctt9WnQBhAesbX$Jh>|B1`=fi!8l&NtO>Id0 z8^^&8s#08-_)qywcJic9sX(XLOgk;uo#eq6H0g0xl=JjXB;CYyW|z=QMHu*kF!+)~ z01p1Ef_c?MxYAFC{vod4q~bI$j1bFe8iJBp%1 zPmvW=j|MhgF$PvOtc}%S96aDkwzM)b+hm%Lwz!b5z7Ykej6$8e+3Hv&g}1m8!z6_X zdiAS?s?ul@D$9rHCyx%2W5;tRKa50t{NB1>E*gnS0Y`I>s{T61gbe`~IJ4H7)t(uqD~rf}KpI?$qxz*QHy~I|t*QAcIjp4rVyUc{n8dxJNVM-ng`A=<1}$WV2D6I&?YE z;g6`Z2zDr)IKeUm?2$dF-J;mJ+m*E-CS880Nug!sog28HG>Bk)S%>|OY=l|$3~)pD zslhGp@)KoPC>n|)q(GnCh)XP0nTjMNmjCZ6R^ge%wT8|P+ZONW>fZb6pfXgLif_qK z5t{sp6dJ`edo8=I**4RfX=`mFplfd2tM^pRAeT+D3e9J4#TldGwEfF#H#t>%-=#pA z>mQVH)o;+eOZie$*48l|C>P75oYeV#unyIR75*yautJz!O4t!qpOw5GM@;RhgHBbc z_FPM(gdjA1(A3z}P<4wM4CxBj6zk;FqS)P$HC7u*o#nt!p`VaU6iO+#338)Ef!Waq)ol&7&sILp)$5m2QF_Hk3f>Z22ETRDkR z1}G<${B;~v$FA!_XFk-wah&tHNN3xV#STT`%B$w9j8t0W|4AL@j+KHQ;L|Pdz|Ws5 zVYaFUTtV5_Hd>^it?giIQ(YDHSK2exR!n&7HjEM4`JW$jOmocus#TIxu{s(JbPr1E zxf-?>2QP}{%jyIjy(TP%Vq1H@`1Gmkt^HkXojtuhJqpHk0w_mT0H5=bFX67sZaDaS z6k6D7+rrkcJ>AyYrm!UI=+}TQY1(Z_ld!6&sjVW><3vXg_w^ne7uN-<~=`f0aCP zjkXeV+t!Y@DMl))DT3X)hPxh|L9ywG9%T-TRNMzD^cvw9@rzS)f%9bKWwIJ@=Ypa< zfUBzy>ON6{h-=ZE266g(g;o_{z)ZSA_@~joqAv}^+df#(YAVJf)xAvHSJmnBSp);QjgBom; z16x(sgo{ULQObQ|^=;}{*DhmNIp;?N_rJ`#njw5uc3$$yu3`zECFw4|8V&bt+ ze!FeUw0Cq8esp#Q9bvm^3)?fTjcDTLhI+rjt2cEYP�B$XLmOD7ca2Uj$Q+| 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

{`GeX)DD8{%7!^XH3^@1J3*}&hdQNFGy$f2kk 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 diff --git a/Varela/Varela/Resources/Imagenes/Thumbs.db b/Varela/Varela/Resources/Imagenes/Thumbs.db deleted file mode 100644 index 0e88c293897a8289f8e969db5a4097de08964c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7680 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 BWXk{m diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1021.BMP deleted file mode 100644 index e24987644cfe4b7840bb9cc120a5a9f60102e056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmeH{u?@m75Jf))G?6H%GC~?!2B2pTHgE-zmw_Vb+clzo?9*85+5gYYn>9v&(9ONiUN{?y2-N$PS;rpCs7{ub7d$$wr6haWi7!4y; zm-)gVUc)%5Gc1On!0_iN^{}_%(+?l&)>{Ao diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1022.BMP deleted file mode 100644 index b792f59ad5736a64abe0f0eeb14abfff4b9dde58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fAr8V&42FvULxMnY1Pl^_#&eGaMKDhR*&W~tAT~F@j6;whK_UnV7kGT5frRR9 z?@!yMd!k?Z+Bci`I`YwkIK)SI7jMacC~|3w^!ZWxS6=)fN!Ocg6hhQJCMgWU$2s>5 zC#us3fhf;&#qf%t)1hH}7gdKJbLEPW)#Dg*`vhChz|eP>MTt!_(W^>Qq(kuj|| zJ&%pm%VC;98lWHClNk!}@0#3wz25y>?NUKr*5It-HN1%Dq{1n(&x@1^#QwHOqPgb}hNDgvM%{(yqd|B$ zj&seq{rKoiixe=@@X)x2gnpc*&B u0sU2n&S^X!x-XxV(HCi+ly+TL*j+Xll9kbnAPBh0BCayJ0?*3g`}7Ga{ECSH diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1024.BMP deleted file mode 100644 index 798cb413bb05b6e856796c12abe8cc3af271870b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9!fK8iR~YW@Cf&yZ2jz^zx-J zNKa<0;9<_k^mA&^mp5A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z4AOUp9m8Ti ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88%~~rHvj+t diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1026.BMP deleted file mode 100644 index 63b1f2fc25d115559c28de3314ea2c61b85ab498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&Wh8te}euai0hFtr0 z6%9ee4}Lm;hJfNgrvTkRkvs1ExPyiu_U-(z0}VmMr@owmhN$C?b6?M*A&7l*Ud=*7 z5b>-B8EA+)?m!C+AQxgET3`UV5OK7?0CKUo0~k*b)x?u%i37-m=tWB$KrTcaEpY(3 zkaP-4ACUY4&oU4RdXhk^8yg!LfO!{~gMplZ0>Hr7ym>RQB>N96%7CE)0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`?q{R$013}5qh zH5vkn1DyhN15Mm<=f@p11aU{v!vZu!TX&rMdKL{q++lIm6b;eV9cY08@4g QuqXqD3Xnfg092j=08JLGLjV8( diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1028.BMP deleted file mode 100644 index c9266e2f1726c55f27f807699bdf5f715cbb3586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmZ?r0l@%t(Y}5AAkO$tcL1>$=mrL0Y(U&WMK`Q@yBZBa3_tkk z02%^{1DyhN15Mmf^soR8LEJI*-KFrFZ) zDJRhq2apRf6D@H7xsY@UN*|E?0?#rK33`%1s~Z~|8Gv~gn1g|wfdat5*t~f&uq68r PEXshP0^|=A0F|czs+*fv diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1029.BMP deleted file mode 100644 index a8a7b404516ba3ecf52f2130bfa56801d85a54e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fuWrI{5XTPzh6I7)5im#=^gQoDPz$CCNZ(;dkeg^-)h3$lAqGg0gb>KYZ26RL zn7B+VKR3pB*L$Uz_Z{QhuIe(^JRAdeI@T%}{M zesWN~$>!NX`S-({!)`QAStbMOl8H9swE< BiroMJ diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1030.BMP deleted file mode 100644 index 97e45215bc13b13201e50e9a5d60a7ebb300893d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fF-rqM6oj9JHiCtfKf%T_!P?&c5v;`KDh>A^Oe5A>+;!JzbLbDyE@F{FOAkZ| zLvBezmxEisE(2U=xqrS-U z(np^o!(u*mhaH3VJ$ULFq@P!32I=>cJHui= ztQb)3YsG*{w_-r0TQQ(>d~i-$Jv&=-K()r211jB`11jB`1FAl4`a}0+dS&!unKP-= cG!5=9HyF}ZP>iA|c*$y>GO7Y^E1LK88(Ri~Hvj+t diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1031.BMP deleted file mode 100644 index 3f7eb1e5210728067f9d148abb3868deae460771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fF-ycy5QNu48^OZLpI~FDSljzQ4lA)qrIP>PHDawr(xuTR=nwF^J1nly(ts#} zhhP!EI4Ios>dP{3!%SY-VYBb;?XRuGPwbF4SzD}C)>3ScBOaC`))Bh(8*Q|gMR|O3 zI_M*)dsUQp2p(CMz4jMWrxAgpx~^rTU3jQ29)iCiA9yHV3WJQ@z26$7PiA9-^yaHE zNKa<0;9<_k(bJ(pUk;zo4AO7jt_{+spHoB9fy9K5-SM_TTMr%w2I&{gxk38qy1$kPXvx?X7BA$~9r^q%hQYMi2%VLSgp5N*AT3Hx%C!UW6 z;o&&WF*~C=jSv)tVW=|Vznj)YgYY+02O1XVxq%AXT-OE~kM5Dd4D zcXpZ@Xnc3u8Kk45y>A(4-cd9((D>@IG)PB>X$DmDnr1*XZkhp2K?ncI3$<}3vcZt7jAjHuz)co&mC+S=R+ikS54Opp{Qv*} diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP b/Varela/Varela/Resources/Imagenes/WaitProgress/1033.BMP deleted file mode 100644 index bc8fdfacfaf3fd00c06f444cede2a9cf50846655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmc(fp$@`842FvULxMo@2pA*;jpsd(1TzI>F9Tw8^LqnuOAs^IB?Lu6f;hgTfrRR9 z_owaBo#>ZddyD0uCm+p-V|;@5@s5m$BA2enkRRT^a^en2y4~$pAw=C{lENT-qA0qD z6V+*iK$PdXVz}0&bzu;0LpfkbZ;3Glt6r6{8i7H9;g4f;T^rMS<+C)_EXTZ<8q<2` z$H`c;9Htqh0s6r`nc*N+4l^92b@fB%)X#_R%Wq}$pv_3>IF5zgWrImViDqP3#!KdS M%IFGtDEasF4HBfRLjV8( diff --git a/Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db b/Varela/Varela/Resources/Imagenes/WaitProgress/Thumbs.db deleted file mode 100644 index 68464d9b5f1c683f8a020a9a5a23114951d0c6d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23552 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 diff --git a/Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd b/Varela/Varela/Resources/Imagenes/Watermark Ficheros.psd deleted file mode 100644 index f89490a9b04e5554ed48c9e4538377bbd8538122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462918 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

V4vpR|XSqeN=ks0c1)*P|W|Dub#P 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≥ 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 diff --git a/Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png b/Varela/Varela/Resources/Imagenes/Watermark-Ficheros.png deleted file mode 100644 index 99b4ed0bd1d46ea7a297f1a1f58adad1ac3c3a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23588 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 diff --git a/Varela/Varela/Source/AdminPVGroup.bdsgroup b/Varela/Varela/Source/AdminPVGroup.bdsgroup deleted file mode 100644 index 3a0016c..0000000 --- a/Varela/Varela/Source/AdminPVGroup.bdsgroup +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - Base\BaseD10.bdsproj - ControlesBase\ControlesBaseD10.bdsproj - Modulos\Parametros\Cliente\Parametros.bdsproj - Usuarios\Usuarios.bdsproj - Configuracion\Configuracion.bdsproj - Modulos\FicherosEDI\Cliente\FicherosEDI.bdsproj - Modulos\VentasTerminadas\Cliente\VentasTerminadas.bdsproj - Modulos\VentasProceso\Cliente\VentasProceso.bdsproj - Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.bdsproj - Modulos\Recepciones\Cliente\Recepciones.bdsproj - Modulos\Devoluciones\Cliente\Devoluciones.bdsproj - Modulos\Traspasos\Cliente\Traspasos.bdsproj - Modulos\Stock\Cliente\Stock.bdsproj - Cliente\AdminPV.bdsproj - Servidor\AdminPV_Server.bdsproj - CargaEDI\CargaEDI.bdsproj - BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe - - - - diff --git a/Varela/Varela/Source/AdminPVGroup.bdsgroup.local b/Varela/Varela/Source/AdminPVGroup.bdsgroup.local deleted file mode 100644 index 235eceb..0000000 --- a/Varela/Varela/Source/AdminPVGroup.bdsgroup.local +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Varela/Varela/Source/AdminPVGroup.bpg b/Varela/Varela/Source/AdminPVGroup.bpg deleted file mode 100644 index 722af4b..0000000 --- a/Varela/Varela/Source/AdminPVGroup.bpg +++ /dev/null @@ -1,72 +0,0 @@ -#------------------------------------------------------------------------------ -VERSION = BWS.01 -#------------------------------------------------------------------------------ -!ifndef ROOT -ROOT = $(MAKEDIR)\.. -!endif -#------------------------------------------------------------------------------ -MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** -DCC = $(ROOT)\bin\dcc32.exe $** -BRCC = $(ROOT)\bin\brcc32.exe $** -#------------------------------------------------------------------------------ -PROJECTS = DataAbstract_D7.bpl BaseD7.bpl ControlesBaseD7.bpl Parametros.bpl \ - Usuarios.bpl Configuracion.bpl FicherosEDI.bpl VentasTerminadas.bpl \ - VentasProceso.bpl ReferenciaGenerica.bpl Recepciones.bpl Devoluciones.bpl \ - Traspasos.bpl Stock.bpl AdminPV.exe AdminPV_Server.exe CargaEDI.exe -#------------------------------------------------------------------------------ -default: $(PROJECTS) -#------------------------------------------------------------------------------ - - -AdminPV_Server.exe: Servidor\AdminPV_Server.dpr - $(DCC) - -BaseD7.bpl: Base\BaseD7.dpk - $(DCC) - -Usuarios.bpl: Usuarios\Usuarios.dpk - $(DCC) - -AdminPV.exe: Cliente\AdminPV.dpr - $(DCC) - -Configuracion.bpl: Configuracion\Configuracion.dpk - $(DCC) - -DataAbstract_D7.bpl: DataAbstract_D7\DataAbstract_D7.dpk - $(DCC) - -FicherosEDI.bpl: Modulos\FicherosEDI\Cliente\FicherosEDI.dpk - $(DCC) - -ControlesBaseD7.bpl: ControlesBase\ControlesBaseD7.dpk - $(DCC) - -VentasProceso.bpl: Modulos\VentasProceso\Cliente\VentasProceso.dpk - $(DCC) - -VentasTerminadas.bpl: Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk - $(DCC) - -CargaEDI.exe: CargaEDI\CargaEDI.dpr - $(DCC) - -ReferenciaGenerica.bpl: Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk - $(DCC) - -Recepciones.bpl: Modulos\Recepciones\Cliente\Recepciones.dpk - $(DCC) - -Devoluciones.bpl: Modulos\Devoluciones\Cliente\Devoluciones.dpk - $(DCC) - -Traspasos.bpl: Modulos\Traspasos\Cliente\Traspasos.dpk - $(DCC) - -Stock.bpl: Modulos\Stock\Cliente\Stock.dpk - $(DCC) - -Parametros.bpl: Modulos\Parametros\Cliente\Parametros.dpk - $(DCC) - - diff --git a/Varela/Varela/Source/Base/BaseD10.bdsproj b/Varela/Varela/Source/Base/BaseD10.bdsproj deleted file mode 100644 index cf4977f..0000000 --- a/Varela/Varela/Source/Base/BaseD10.bdsproj +++ /dev/null @@ -1,673 +0,0 @@ - - - - - - - - - - - - BaseD10.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\Output\Debug\Cliente - ..\Lib - - - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 2 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 2.0.0.0 - - - - - - 1.0.0.0 - - - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - (untitled) - - - - diff --git a/Varela/Varela/Source/Base/BaseD10.dpk b/Varela/Varela/Source/Base/BaseD10.dpk deleted file mode 100644 index a568907..0000000 --- a/Varela/Varela/Source/Base/BaseD10.dpk +++ /dev/null @@ -1,112 +0,0 @@ -package BaseD10; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES ON} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$RUNONLY} -{$IMPLICITBUILD OFF} - -requires - rtl, - vcl, - vcldb, - GUISDK_D10, - vcljpg, - dbrtl, - dsnap, - vcldb, - PNG_D10, - PngComponentsD10, - JvCoreD10R, - JvStdCtrlsD10R, - JvPageCompsD10R, - cxLibraryD10, - dxThemeD10, - cxEditorsD10, - cxDataD10, - cxExtEditorsD10, - cxGridD10, - cxPageControlD10, - tb2k_D10, - tbx_D10, - vclx, - vclactnband, - designide, - cxExportD10, - adortl, - JvSystemD10R, - dxPSCoreD10, - dxPScxCommonD10, - dxPScxGridLnkD10, - cxIntlPrintSys3D10, - dxBarD10, - dxBarExtItemsD10, - cxIntl5D10, - dxPsPrVwAdvD10, - ccpack10, - JvMMD10R, - JvCtrlsD10R, - tee, - frx10, - fs10, - frxe10, - dxLayoutControlD10, - dxComnD10, - Jcl, - JclVcl, - JvAppFrmD10R, - dxPSLnksD10, - vclshlctrls, - dclcxLibraryD10, - teeui, - fsTee10, - frxTee10, - RemObjects_Core_D10, - DataAbstract_Core_D10; - -contains - uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule}, - uEditorBase in 'uEditorBase.pas' {fEditorBase}, - uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase}, - uEditorItem in 'uEditorItem.pas' {fEditorItem}, - uDataTableUtils in 'uDataTableUtils.pas', - uEditorUtils in 'uEditorUtils.pas', - uEditorPreview in 'uEditorPreview.pas' {fEditorPreview}, - uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, - uViewBase in 'uViewBase.pas' {frViewBase: TCustomView}, - uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TCustomView}, - uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor}, - uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, - uExceptions in 'uExceptions.pas', - uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, - uDBSelectionList in 'uDBSelectionList.pas', - uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion}, - uBizInformesBase in 'uBizInformesBase.pas', - uSysFunc in 'uSysFunc.pas', - VARELA_Intf in '..\Servidor\VARELA_Intf.pas', - uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView}, - uIntegerList in 'uIntegerList.pas', - schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', - schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', - uGridUtils in 'uGridUtils.pas'; - -end. diff --git a/Varela/Varela/Source/Base/BaseD10.drc b/Varela/Varela/Source/Base/BaseD10.drc deleted file mode 100644 index edfdcdc..0000000 --- a/Varela/Varela/Source/Base/BaseD10.drc +++ /dev/null @@ -1,29 +0,0 @@ -/* VER185 - Generated by the CodeGear Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - -/* uConfigurarConexion.dfm */ -/* uDataModuleBase.DFM */ -/* uViewBase.dfm */ -/* uEditorBase.dfm */ -/* uEditorItem.dfm */ -/* uEditorDBBase.dfm */ -/* uViewGridBase.dfm */ -/* uEditorGridBase.dfm */ -/* uViewPreview.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorPreview.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorDBItem.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewBarraSeleccion.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewGrid.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.drf */ diff --git a/Varela/Varela/Source/Base/BaseD10.identcache b/Varela/Varela/Source/Base/BaseD10.identcache deleted file mode 100644 index cb0bec11a290610b8aca1302a62aaa07fac4972d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2882 zcmcguL2kk@5aby><^_E~Z-mea2_%GplcmbFH^E?Rw6-bjrC+a2svd$lF1aL8B28v? zW;Rcw(Wsle@W#n_1RH!Mtg0A*#z%qL@rCx4`g_HBz8W_b3sI#fOLTjX!Sk&^ zFoH7|Q39`p2Og(N2Zyr&$LEvq3F`mQ#F$N8LN#QlP0he09kjD^?Zc4njtqFK;d6;_ zPNyO0fef?}K`fk#2J)PTxYT|sVbXG4iw^^vpp74L{UOl!s%%Ob3r-&R3OXY^_i}f= zXMktG_n8gt@LTBIUF+|eZ55D4a-?d3D6Wx~Dbhow2_1fs zaLO%mh zTTm;9d^=uE=i_1>(iOzS*;aQE1*R*w6bfQbrgA^sI~$*NxY<&VOKi5&Jrh5C>rRYL JKgUIz{Q{K0;&1=} diff --git a/Varela/Varela/Source/Base/BaseD10.rc b/Varela/Varela/Source/Base/BaseD10.rc deleted file mode 100644 index d9bfd1d..0000000 --- a/Varela/Varela/Source/Base/BaseD10.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 2,0,0,0 -PRODUCTVERSION 2,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "2.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Base/BaseD10.res b/Varela/Varela/Source/Base/BaseD10.res deleted file mode 100644 index 45dc55f7e508c2aadceb4f8bfc5080153c1b52cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJepe&2#;C*uNAUVh=d+&(4um?YIom`vX7lLeHS8qb+Kbagvr2mJd z=PWtqD9j$byGIXV`~0fj>YkZQVq!y0y&v_~^Hja{zSFds*@2|*L)2V*e%;UcUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1kx1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8r6~2;>lIU&LZsTwze(H0n{VM+hwDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BZ13A6`$Y1AeJY*L>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDUkC$M)E2{eEPhtM$kcYR7x1HqZ0DKmWm>*(=^pU6tOR?fGo!x;ppY z$M%CgweReSeQOV;zqhaD`H6jFr<(uCZKjH9stBj{KpbE+wb$e??T@wQsXf!`Q?2BA z&)$(uifIk@pULXfzOoDW%RDv?HJW^XAbvoADzBGhMMej=|U KhkN(`*!vewsZSLE diff --git a/Varela/Varela/Source/Base/uBizInformesBase.pas b/Varela/Varela/Source/Base/uBizInformesBase.pas deleted file mode 100644 index 3a96c41..0000000 --- a/Varela/Varela/Source/Base/uBizInformesBase.pas +++ /dev/null @@ -1,14 +0,0 @@ -unit uBizInformesBase; - -interface - -type - IBizInformesAware = interface - ['{98AD6541-199F-4155-B394-ED0316298759}'] - procedure Preview; - procedure Print; - end; - -implementation - -end. diff --git a/Varela/Varela/Source/Base/uConfigurarConexion.dfm b/Varela/Varela/Source/Base/uConfigurarConexion.dfm deleted file mode 100644 index 5a266e8..0000000 --- a/Varela/Varela/Source/Base/uConfigurarConexion.dfm +++ /dev/null @@ -1,113 +0,0 @@ -object fConfigurarConexion: TfConfigurarConexion - Left = 663 - Top = 468 - ActiveControl = edtServer - AutoScroll = False - Caption = 'Configuraci'#243'n de la conexi'#243'n' - ClientHeight = 149 - ClientWidth = 392 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - Scaled = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object bProbar: TButton - Left = 8 - Top = 113 - Width = 121 - Height = 25 - Caption = '&Probar la conexi'#243'n' - TabOrder = 1 - OnClick = bProbarClick - end - object GroupBox1: TGroupBox - Left = 8 - Top = 8 - Width = 375 - Height = 97 - Caption = 'Servidor' - TabOrder = 0 - DesignSize = ( - 375 - 97) - object Label1: TLabel - Left = 18 - Top = 28 - Width = 97 - Height = 13 - Caption = 'Nombre del servidor:' - end - object Label2: TLabel - Left = 18 - Top = 60 - Width = 93 - Height = 13 - Caption = 'Puerto de escucha:' - end - object edtServer: TEdit - Left = 136 - Top = 24 - Width = 223 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - end - object edtPort: TEdit - Left = 136 - Top = 56 - Width = 108 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 1 - Text = '8099' - end - end - object bAceptar: TButton - Left = 219 - Top = 113 - Width = 75 - Height = 25 - Caption = '&Aceptar' - Default = True - ModalResult = 1 - TabOrder = 2 - end - object bCancelar: TButton - Left = 307 - Top = 113 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 3 - end - object HTTPChannel: TROWinInetHTTPChannel - ServerLocators = <> - DispatchOptions = [] - ProbeServers = False - ProbeFrequency = 60000 - UserAgent = 'AdminPV' - TargetURL = 'http://localhost:8099/BIN' - Left = 120 - Top = 112 - end - object ROBinMessage: TROBinMessage - Left = 152 - Top = 112 - end - object CoService: TRORemoteService - ServiceName = 'srvLogin' - Message = ROBinMessage - Channel = HTTPChannel - Left = 184 - Top = 112 - end -end diff --git a/Varela/Varela/Source/Base/uConfigurarConexion.pas b/Varela/Varela/Source/Base/uConfigurarConexion.pas deleted file mode 100644 index 035d05a..0000000 --- a/Varela/Varela/Source/Base/uConfigurarConexion.pas +++ /dev/null @@ -1,74 +0,0 @@ -unit uConfigurarConexion; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, - uROServiceComponent, uRORemoteService, uROBinMessage; - -type - TfConfigurarConexion = class(TForm) - bProbar: TButton; - GroupBox1: TGroupBox; - Label1: TLabel; - Label2: TLabel; - edtServer: TEdit; - edtPort: TEdit; - bAceptar: TButton; - bCancelar: TButton; - HTTPChannel: TROWinInetHTTPChannel; - ROBinMessage: TROBinMessage; - CoService: TRORemoteService; - procedure bProbarClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - private - function GetTargetURL: String; - procedure SetTargetURL(const Value: String); - { Private declarations } - public - property TargetURL : String read GetTargetURL write SetTargetURL; - end; - -var - fConfigurarConexion: TfConfigurarConexion; - -implementation - -uses - StrUtils, JclStrings, uDataModuleBase, VARELA_Intf; - -{$R *.dfm} - -{ TfConfigurarConexion } - -function TfConfigurarConexion.GetTargetURL: String; -begin - Result := 'http://' + edtServer.Text + ':' + edtPort.Text + '/bin'; -end; - -procedure TfConfigurarConexion.SetTargetURL(const Value: String); -var - s : String; -begin - s := StrAfter('http://', Value); - s := StrBefore(':', s); - edtServer.Text := s; - - s := StrAfter(edtServer.Text + ':', Value); - s := StrBefore('/bin', s); - edtPort.Text := s; -end; - -procedure TfConfigurarConexion.bProbarClick(Sender: TObject); -begin - if dmBase.HayConexion(TargetURL) then - Application.MessageBox('Conexión válida con el servidor.', 'Información', MB_OK); -end; - -procedure TfConfigurarConexion.FormCreate(Sender: TObject); -begin - HTTPChannel.OnFailure := dmBase.ROChannelFailure; -end; - -end. diff --git a/Varela/Varela/Source/Base/uDBSelectionList.pas b/Varela/Varela/Source/Base/uDBSelectionList.pas deleted file mode 100644 index b5b88b8..0000000 --- a/Varela/Varela/Source/Base/uDBSelectionList.pas +++ /dev/null @@ -1,183 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uDBSelectionList; - -interface - -uses - Classes, DB, cxGridTableView, uDADataTable, uIntegerList, cxGridCustomView; - -type - TRecID = Integer; - TSelectedRowList = class; - - ISelectedRowList = interface - ['{1886B04A-DB0D-40AE-BCAE-DA57CD4CD582}'] - function GetSelectedRows : TSelectedRowList; - property SelectedRows : TSelectedRowList read GetSelectedRows; - end; - - TSelectedRowList = class - private - FDataTable: TDADataTable; - FListRecID : TIntegerList; - function GetCount: Integer; - function GetCurrentRowSelected: Boolean; - function GetItem(Index: Integer): TRecID; - procedure SetCurrentRowSelected(Value: Boolean); - protected - function CurrentRow: TRecID; - function Compare(const Item1, Item2: TRecID): Boolean; - public - constructor Create(ADataTable : TDADataTable); - destructor Destroy; override; - procedure Clear; // free all bookmarks - function Find(const Item: TRecID; var Index: Integer): Boolean; - function IndexOf(const Item: TRecID): Integer; - property Count: Integer read GetCount; - property CurrentRowSelected: Boolean read GetCurrentRowSelected - write SetCurrentRowSelected; - property Items[Index: Integer]: TRecID read GetItem; default; - function LocateItem(const Index : Integer) : Boolean; - end; - - - procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; - var ASelectedRowList : ISelectedRowList); - - -implementation - -uses - DBConsts, cxGridCustomTableView, cxControls, Math, Variants, Dialogs; - -{ TSelectedRowList } - -constructor TSelectedRowList.Create(ADataTable : TDADataTable); -begin - inherited Create; - FListRecID := TIntegerList.Create; - - FDataTable := ADataTable; -end; - -destructor TSelectedRowList.Destroy; -begin - Clear; - FListRecID.Free; - FDataTable := NIL; - inherited Destroy; -end; - -procedure TSelectedRowList.Clear; -begin - if FListRecID.Count = 0 then - Exit; - FListRecID.Clear; -end; - -function TSelectedRowList.Compare(const Item1, Item2: TRecID): Boolean; -begin - Result := (Item1 = Item2); -end; - -function TSelectedRowList.CurrentRow: TRecID; -begin - if not FDataTable.Active then - raise EDatabaseError.Create(sDataSetClosed); - Result := FDataTable.RecIDValue; -end; - -function TSelectedRowList.GetCurrentRowSelected: Boolean; -var - Index: Integer; -begin - Result := Find(CurrentRow, Index); -end; - -function TSelectedRowList.Find(const Item: TRecID; var Index: Integer): Boolean; -begin - Result := FListRecID.Find(Item, Index) -end; - -function TSelectedRowList.GetCount: Integer; -begin - Result := FListRecID.Count; -end; - -function TSelectedRowList.GetItem(Index: Integer): TRecID; -begin - Result := FListRecID.Integers[Index]; -end; - -function TSelectedRowList.IndexOf(const Item: TRecID): Integer; -var - AIndex : Integer; -begin - Result := -1; - if FListRecID.Find(Item, AIndex) then - Result := AIndex -end; - -procedure TSelectedRowList.SetCurrentRowSelected(Value: Boolean); -var - Index: Integer; - Current: TRecID; -begin - Current := CurrentRow; - if (Find(Current, Index) = Value) then - Exit; - if Value then - FListRecID.Add(Current) - else - FListRecID.Delete(Index); -end; - - - -procedure SeleccionarFilasDesdeGrid(const AView : TcxCustomGridView; - var ASelectedRowList : ISelectedRowList); -var - ADataTable : TDADataTable; - ABookmark : Pointer; - ARecord: TcxCustomGridRecord; - i : Integer; -begin - ADataTable := ASelectedRowList.SelectedRows.FDataTable; - AView.BeginUpdate; - ShowHourglassCursor; - ABookmark := ADataTable.GetBookMark; - try - ASelectedRowList.SelectedRows.Clear; - for i := 0 to TcxCustomGridTableController(AView.Controller).SelectedRecordCount-1 do - begin - ARecord := TcxCustomGridTableController(AView.Controller).SelectedRecords[i]; - if (ARecord is TcxGridDataRow) then - begin - (ARecord as TcxGridDataRow).Focused := True; - ASelectedRowList.SelectedRows.CurrentRowSelected := True; - end; - end; - ADataTable.GotoBookmark(ABookmark); - finally - AView.EndUpdate; - ADataTable.FreeBookmark(ABookmark); - HideHourglassCursor; - end; -end; - - -function TSelectedRowList.LocateItem(const Index: Integer) : Boolean; -begin - if not FDataTable.Active then - raise EDatabaseError.Create(sDataSetClosed); - Result := FDataTable.Locate('RecID', Items[Index], []); -end; - -end. diff --git a/Varela/Varela/Source/Base/uDataModuleBase.dfm b/Varela/Varela/Source/Base/uDataModuleBase.dfm deleted file mode 100644 index 5f633ba..0000000 --- a/Varela/Varela/Source/Base/uDataModuleBase.dfm +++ /dev/null @@ -1,1660 +0,0 @@ -object dmBase: TdmBase - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 352 - Width = 518 - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000002224944415478DA - 95935D48936114C77FCB36584A6064161515DEA441108B240293E8A682246805 - DEA45020F40196505D081242DE94512B8C20169937056914D52E726B6083B114 - D44CD3D51A216BB6656B5FEF677B5FF31D23033DF070CE03CFFFF73F1CCE6362 - 29D1806AD44E4C5A32F5F58FAA8BD5D73DD8465757034D4D4EFA4E8C62000ED7 - 56E997647490DFE131BD2ED9584971D98EB9478D2603D279B39EE6733DC6DD00 - 68E2EF7E07E95F2291688C48629ABDC71DACABD8AD0334E7B420104D24F4A3D5 - DDD707E60087F66C2234D0CECF2F41643987556566676799C9C4387AD18FF964 - 91E178EA522DF73ADC851D1CA85ECD27D77948995861B552844C2A9962303441 - DD051FA22473E5095C735B3972DAC6D3DB016EED7BC9FD47CFE601E57CF3B661 - C966D1E62C880299549A696915B6639D4892A243D6B6AC349C0B00DA0C22EF7B - 484EBDCA015424512491125036D751B1CBAE8BB5330F12459937EF860A01DEA0 - 8BA0FB0E5B154BAE832C810CACDF594F4DD5C17FC45AF6FA87F3800D95022DFD - ADC47E84682CDF8F222A3C9CF1303915E6C3E5495DDC7AE379C14E546F5F9307 - F8E4C7BC187F4BA6344E49D24C6E8A24AD12E65809A1895102CD6386B3F8B793 - C0F0C73CC0196927188E2297651096A7D096D4922D6659DCC2E7AF43F8CE8C70 - F5AEEBFF1D9CF5D889C7230BAE6F696939BDF6D7BAABACA87A567279647C320F - A8B16DA1BBD7B3A47FA5850168EB702C596C6CA2AA2EFA332E187F0080F1503E - 182A98A90000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000011F4944415478DA - 63FCFFFF3F03258091620390394975ABC1A6BD79FB8561D3D4444642E220CB31 - 0C985113C8A0E6D6C4F0E040132321711403408A40367CFCF28DE1E1C3970C7A - DA8A60DB708963350064CBF6938F18966C3EC770FAD425B06DB8C409BA000440 - B68908F330A08B631800D23CB73184E1D9CB4F0C775EFD6598B2641FD8A68208 - 2F864BCF1E33A0CB71BF7AC2B0604101380619571EBDFB7FE7CE730CD9518E60 - D3F79CB8C770E6DA23B0013017609373501062983F3F9F111E4820F0F8C52730 - FDFEED5B30CDC2FC91C1CEDA860197FCFDFD8D8CF040DA77EE39C395DBAF182E - DF7DC370F0C051ACD188AE66901A70F2F27D94B8C666004C0DDC801F3F7F323C - 7DF191E1D78F9F0CCF5F7E40896B9801D8D4800DA0343702001BEF6EF0E3CC7C - BD0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000002234944415478DA - A5934F4814511CC7BF6BBAB0AD97225B2A2B4B88ECB014861241ED2190FE9017 - 2D15843A74E8E0A14D3282608935920E092D7A10A44C25A843497FEDA0EB422D - 2DE6A2F647ADA5C542A6DD76DB6CC79979F3DE34F3CA99C4BAB40F1EEF0DEF7D - 3FDFEFFC783F9BA669C865D8EE0FBDCE89C001473D3BF8473631861FB36FF9BE - 7063199C45BBCC8B4C4FAAAA0C44A5E6ACAA3F67010CF19748000BDF0984440A - C2FC1CF61F0F605DE91EA894E17CAFB2C4B9246F18DD7D03BF0087F76E46FCB9 - 1FDF3EC640A97EAA5164321924A5146A5A22A6A391C0E971724097F7B1053858 - B90633835E40B461A5C38115A010B322C6E2D3A83E1BE6E24B7781D676070A1A - 9A40FAAFA3270A74569D5E04B8F039E4835D96757740210A24710173EA6A941F - BBC69D676E3BF169EB3892E37DC86B6EE3294C805103E1553FB21F9EE800BD58 - 84605E54C04AAA515A51CBC5EE230108D38F7073A402EB7D3EC83D7FFC820108 - C506111BEEC07666D713C81895800DBB1BB0E94D9D2936668DBF180F9E85118A - 4C5880E23205CD431791FA1AC749D70130C2702B1944A73DBA4CECA96BE5F12B - DD6B2D4098DEC1C3A91148ABD228CC1640AF223A94977F7526BFDFC2E8C43B0B - 7043F023369B002D92A0E48BF0CA67B09334C2B5EDD032E7C5B1244153B016E9 - B4601E5E75B7E344633DA2DDF95C3CF0F40577A54CE32BD3D7C9A9F716605FF9 - 16F4DE0B9A80B60BA7CC7DCBE5AE7FF68109F05D09FC7F33E5DACE3F0109DB53 - BED36F80890000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 24 - Top = 16 - Bitmap = {} - end - object TBXSwitcher: TTBXSwitcher - Theme = 'Default' - Left = 24 - Top = 80 - end - object StyleManager: TJvNavPaneStyleManager - Colors.ButtonColorFrom = clWhite - Colors.ButtonColorTo = 12435133 - Colors.ButtonHotColorFrom = 13009540 - Colors.ButtonHotColorTo = 13009540 - Colors.ButtonSelectedColorFrom = 14602190 - Colors.ButtonSelectedColorTo = 14602190 - Colors.SplitterColorFrom = 13026246 - Colors.SplitterColorTo = 9211532 - Colors.DividerColorFrom = 15725551 - Colors.DividerColorTo = 13026246 - Colors.HeaderColorFrom = 8684164 - Colors.HeaderColorTo = 8684164 - Colors.FrameColor = 8684676 - Colors.ToolPanelHeaderColorFrom = clWhite - Colors.ToolPanelHeaderColorTo = 12435133 - Fonts.NavPanelFont.Charset = DEFAULT_CHARSET - Fonts.NavPanelFont.Color = clWindowText - Fonts.NavPanelFont.Height = -13 - Fonts.NavPanelFont.Name = 'Tahoma' - Fonts.NavPanelFont.Style = [] - Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET - Fonts.NavPanelHotTrackFont.Color = clWindow - Fonts.NavPanelHotTrackFont.Height = -13 - Fonts.NavPanelHotTrackFont.Name = 'Tahoma' - Fonts.NavPanelHotTrackFont.Style = [] - Fonts.DividerFont.Charset = DEFAULT_CHARSET - Fonts.DividerFont.Color = clWindowText - Fonts.DividerFont.Height = -11 - Fonts.DividerFont.Name = 'Tahoma' - Fonts.DividerFont.Style = [] - Fonts.HeaderFont.Charset = DEFAULT_CHARSET - Fonts.HeaderFont.Color = clWindow - Fonts.HeaderFont.Height = -16 - Fonts.HeaderFont.Name = 'Arial' - Fonts.HeaderFont.Style = [fsBold] - Theme = nptCustom - Left = 104 - Top = 80 - end - object ROChannel: TROWinInetHTTPChannel - OnFailure = ROChannelFailure - OnException = ROChannelFailure - UserAgent = 'RemObjects SDK' - TargetURL = 'http://localhost:8099/bin' - Login.Username = 'zvg' - Login.Password = 'zeus' - KeepConnection = True - OnProgress = ROChannelProgress - ServerLocators = <> - DispatchOptions = [] - Left = 330 - Top = 24 - end - object cxIntl: TcxIntl - Connected = True - cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' - PageControl2.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' - PageControl2.NoBaseImages = 'BaseImages no est'#225' asignado' - PageControl2.NoRegisteredStyles = 'No hay estilos registrados' - PageControl2.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' - PageControl2.PainterClassError = 'La clase PCPainter es nula' - PageControl2.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' - PageControl2.StyleNameError = '%s es un nombre de estilo no registrado' - PageControl2.TabCountEqualsZero = 'Tabs.Count = 0' - PageControl2.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' - PageControl2.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' - PageControl2.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' - QuantumGrid5.GridRecursiveLevels = 'No se pueden crear niveles recursivos' - QuantumGrid5.GridDeletingConfirmationCaption = 'Confirmar' - QuantumGrid5.GridDeletingFocusedConfirmationText = #191'Borrar registro?' - QuantumGrid5.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' - QuantumGrid5.GridNoDataInfoText = '' - QuantumGrid5.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' - QuantumGrid5.GridFilterIsEmpty = '' - QuantumGrid5.GridCustomizationFormCaption = 'Personalizaci'#243'n' - QuantumGrid5.GridCustomizationFormColumnsPageCaption = 'Columnas' - QuantumGrid5.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' - QuantumGrid5.GridFilterCustomizeButtonCaption = 'Personalizar...' - QuantumGrid5.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' - QuantumGrid5.GridCustomizationFormBandsPageCaption = 'Bandas' - QuantumGrid5.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' - QuantumGrid5.GridCustomizationFormRowsPageCaption = 'Rows' - QuantumGrid5.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' - QuantumGrid5.GridConverterNotExistGrid = 'cxGrid no existe' - QuantumGrid5.GridConverterNotExistComponent = 'El componente no existe' - QuantumGrid5.ImportErrorCaption = 'Error al importar' - QuantumGrid5.NotExistGridView = 'No existe la vista del grid' - QuantumGrid5.NotExistGridLevel = 'No existe un nivel de grid activo' - QuantumGrid5.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' - QuantumGrid5.EditRepositoryExtLookupComboBoxItem = - 'ExtLookupComboBox|Representa un ultra avanzado control de busque' + - 'da (lookup) usando el QuantumGrid como su control de despliegue' - Navigator.NavigatorHint_First = 'Primer registro' - Navigator.NavigatorHint_Prior = 'Registro anterior' - Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior' - Navigator.NavigatorHint_Next = 'Siguiente registro' - Navigator.NavigatorHint_NextPage = 'Siguiente p'#225'gina' - Navigator.NavigatorHint_Last = #218'ltimo registro' - Navigator.NavigatorHint_Insert = 'Insertar registro' - Navigator.NavigatorHint_Delete = 'Borrar registro' - Navigator.NavigatorHint_Edit = 'Editar registro' - Navigator.NavigatorHint_Post = 'Grabar edici'#243'n' - Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n' - Navigator.NavigatorHint_Refresh = 'Actualizar datos' - Navigator.NavigatorHint_SaveBookmark = 'Guardar Marca' - Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca' - Navigator.NavigatorHint_Filter = 'Filtrar datos' - Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?' - Editors5.EditDateConvertError = 'El valor no se puede convertir a fecha' - Editors5.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' - Editors5.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' - Editors5.EditPopupCircularReferencingError = 'Referencia circular no permitida' - Editors5.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' - Editors5.EditTimeConvertError = 'No se puede convertir a valor de tiempo' - Editors5.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' - Editors5.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' - Editors5.EditCheckBoxChecked = 'True' - Editors5.EditCheckBoxUnchecked = 'False' - Editors5.TextTrue = 'True' - Editors5.TextFalse = 'False' - Editors5.BlobButtonOK = '&Aceptar' - Editors5.BlobButtonCancel = '&Cancelar' - Editors5.BlobButtonClose = '&Cerrar' - Editors5.BlobMemo = '(MEMO)' - Editors5.BlobMemoEmpty = '(memo)' - Editors5.BlobPicture = '(IM'#193'GEN)' - Editors5.BlobPictureEmpty = '(im'#225'gen)' - Editors5.MenuItemCaptionCut = 'Cor&tar' - Editors5.MenuItemCaptionCopy = '&Copiar' - Editors5.MenuItemCaptionPaste = '&Pegar' - Editors5.MenuItemCaptionDelete = '&Borrar' - Editors5.MenuItemCaptionLoad = '&Leer...' - Editors5.MenuItemCaptionSave = 'Guardar &Como...' - Editors5.DatePopupClear = 'Limpiar' - Editors5.DatePopupNow = 'Ahora' - Editors5.DatePopupOK = 'Aceptar' - Editors5.DatePopupToday = 'Hoy' - Editors5.DateError = 'Fecha inv'#225'lida' - Editors5.DateToday = 'hoy' - Editors5.DateYesterday = 'ayer' - Editors5.DateTomorrow = 'ma'#241'ana' - Editors5.DateSunday = 'Domingo' - Editors5.DateMonday = 'Lunes' - Editors5.DateTuesday = 'Martes' - Editors5.DateWednesday = 'Mi'#233'rcoles' - Editors5.DateThursday = 'Jueves' - Editors5.DateFriday = 'Viernes' - Editors5.DateSaturday = 'S'#225'bado' - Editors5.DateFirst = 'Primero' - Editors5.DateSecond = 'segundo' - Editors5.DateThird = 'tercero' - Editors5.DateFourth = 'Cuarto' - Editors5.DateFifth = 'Quinto' - Editors5.DateSixth = 'sexto' - Editors5.DateSeventh = 's'#233'ptimo' - Editors5.DateBOM = 'bom' - Editors5.DateEOM = 'eom' - Editors5.DateNow = 'ahora' - Editors5.CalcError = 'Error' - Editors5.HyperLinkPrefix = 'http://' - Editors5.HyperLinkDoubleSlash = '//' - Editors5.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' - Editors5.EditRepositoryButtonItem = - 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + - 'tados' - Editors5.EditRepositoryCalcItem = - 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + - 'culadora desplegable' - Editors5.EditRepositoryCheckBoxItem = - 'CheckBox|Representa un control de caja de marca que permite sele' + - 'ccionar una opci'#243'n' - Editors5.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' - Editors5.EditRepositoryCurrencyItem = - 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + - 'ores monetarios' - Editors5.EditRepositoryDateItem = - 'DateEdit|Representa un control de edici'#243'n con un calendario desp' + - 'legable' - Editors5.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' - Editors5.EditRepositoryImageComboBoxItem = - 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + - 'enes y texto en la ventana desplegable' - Editors5.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' - Editors5.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' - Editors5.EditRepositoryMemoItem = - 'Memo|Representa un control de edici'#243'n que permite editar datos m' + - 'emo' - Editors5.EditRepositoryMRUItem = - 'MRUEdit|Representa un editor de texto mostrando la lista de los ' + - 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + - 'ble' - Editors5.EditRepositoryPopupItem = - 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + - 'able' - Editors5.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' - Editors5.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' - Editors5.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' - Editors5.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' - Editors5.RegExprLine = 'L'#237'nea' - Editors5.RegExprChar = 'Char' - Editors5.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' - Editors5.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' - Editors5.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 - Editors5.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 - Editors5.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' - Editors5.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' - Editors5.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 - Editors5.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 - Editors5.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' - Editors5.RegExprIllegalIntegerValue = 'Valor entero no permitido' - Editors5.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' - Editors5.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' - Editors5.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' - Editors5.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' - Editors5.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 - Editors5.RegExprMissing = 'Falta '#39'%s'#39 - Editors5.RegExprUnnecessary = 'Innecesario '#39'%s'#39 - Editors5.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 - Editors5.RegExprNotCompiled = 'Expresi'#243'n regular no compila' - Editors5.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' - Editors5.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' - Editors5.MaskEditRegExprError = 'Errores en expresiones regulares:' - Editors5.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' - Editors5.MaskEditNoMask = 'Ninguno' - Editors5.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' - Editors5.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' - Editors5.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' - Editors5.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido' - Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos' - Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)' - Datacontroller.DataItemExistError = 'El elemento ya existe' - Datacontroller.DataRecordIndexError = #205'ndice de registro fuera de rango' - Datacontroller.DataItemIndexError = #205'ndice de elemento fuera de rango' - Datacontroller.DataProviderModeError = 'La operaci'#243'n no es soportada en modo de proveedor (provider)' - Datacontroller.DataInvalidStreamFormat = 'Origen de datos (Stream) inv'#225'lido' - Datacontroller.DataRowIndexError = #205'ndice del elemento de fila fuera de rango' - Datacontroller.DataCustomDataSourceInvalidCompare = 'Instrucci'#243'n GetInfoForCompare no implementada' - Datacontroller.DBDetailFilterControllerNotFound = 'DetailFilterController no encontrado' - Datacontroller.DBNotInGridMode = 'La controladora de datos no est'#225' en modo de Grid' - Datacontroller.DBKeyFieldNotFound = 'Campo llave no encontrado' - Filter.FilterOperatorEqual = 'igual' - Filter.FilterOperatorNotEqual = 'no es igual' - Filter.FilterOperatorLess = 'es menor que' - Filter.FilterOperatorLessEqual = 'es menor o igual que' - Filter.FilterOperatorGreater = 'es mayor que' - Filter.FilterOperatorGreaterEqual = 'es mayor o igual que' - Filter.FilterOperatorLike = 'como' - Filter.FilterOperatorNotLike = 'no es como' - Filter.FilterOperatorBetween = 'entre' - Filter.FilterOperatorNotBetween = 'no entre' - Filter.FilterOperatorInList = 'en' - Filter.FilterOperatorNotInList = 'no en' - Filter.FilterOperatorYesterday = 'es ayer' - Filter.FilterOperatorToday = 'es hoy' - Filter.FilterOperatorTomorrow = 'es ma'#241'ana' - Filter.FilterOperatorLastWeek = 'es '#250'ltima semana' - Filter.FilterOperatorLastMonth = 'es '#250'ltimo mes' - Filter.FilterOperatorLastYear = 'es a'#241'o pasado' - Filter.FilterOperatorThisWeek = 'es esta semana' - Filter.FilterOperatorThisMonth = 'es este mes' - Filter.FilterOperatorThisYear = 'es este a'#241'o' - Filter.FilterOperatorNextWeek = 'es semana siguiente' - Filter.FilterOperatorNextMonth = 'es mes siguiente' - Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo' - Filter.FilterAndCaption = 'y' - Filter.FilterOrCaption = 'o' - Filter.FilterNotCaption = 'no' - Filter.FilterBlankCaption = 'vac'#237'o' - Filter.FilterOperatorIsNull = 'es vac'#237'o' - Filter.FilterOperatorIsNotNull = 'no es vac'#237'o' - Filter.FilterOperatorBeginsWith = 'comienza con' - Filter.FilterOperatorDoesNotBeginWith = 'no comienza con' - Filter.FilterOperatorEndsWith = 'termina con' - Filter.FilterOperatorDoesNotEndWith = 'no termina con' - Filter.FilterOperatorContains = 'contiene' - Filter.FilterOperatorDoesNotContain = 'no contiene' - Filter.FilterBoxAllCaption = '(Todos)' - Filter.FilterBoxCustomCaption = '(Personalizado...)' - Filter.FilterBoxBlanksCaption = '(Vac'#237'os)' - Filter.FilterBoxNonBlanksCaption = '(No vac'#237'os)' - Filter.FilterBoolOperatorAnd = 'AND' - Filter.FilterBoolOperatorOr = 'OR' - Filter.FilterBoolOperatorNotAnd = 'NOT AND' - Filter.FilterBoolOperatorNotOr = 'NOT OR' - Filter.FilterRootButtonCaption = 'Filtro' - Filter.FilterAddCondition = 'Agregar &Condici'#243'n' - Filter.FilterAddGroup = 'Agregar &Grupo' - Filter.FilterRemoveRow = '&Remover Fila' - Filter.FilterClearAll = 'Limpiar &Todo' - Filter.FilterFooterAddCondition = 'Agregar una nueva condici'#243'n' - Filter.FilterGroupCaption = 'aplica a las siguientes condiciones' - Filter.FilterRootGroupCaption = '' - Filter.FilterControlNullString = '' - Filter.FilterErrorBuilding = 'No se puede construir filtro desde el or'#237'gen' - Filter.FilterDialogCaption = 'Filtro Personalizado' - Filter.FilterDialogInvalidValue = 'Valor inv'#225'lido' - Filter.FilterDialogUse = 'Usar' - Filter.FilterDialogSingleCharacter = 'para representar un caracter sencillo' - Filter.FilterDialogCharactersSeries = 'para representar cualquier serie de caracteres' - Filter.FilterDialogOperationAnd = 'Y' - Filter.FilterDialogOperationOr = 'O' - Filter.FilterDialogRows = 'Mostrar filas donde:' - Filter.FilterControlDialogCaption = 'Constructor de Filtro' - Filter.FilterControlDialogNewFile = 'sinnombre.flt' - Filter.FilterControlDialogOpenDialogCaption = 'Abrir un filtro existente' - Filter.FilterControlDialogSaveDialogCaption = 'Grabar el filtro activo a archivo' - Filter.FilterControlDialogActionSaveCaption = '&Guardar...' - Filter.FilterControlDialogActionOpenCaption = '&Abrir...' - Filter.FilterControlDialogActionApplyCaption = '&Aplicar' - Filter.FilterControlDialogActionOkCaption = 'Aceptar' - Filter.FilterControlDialogActionCancelCaption = 'Cancelar' - Filter.FilterControlDialogFileExt = 'flt' - Filter.FilterControlDialogFileFilter = 'Filtros (*.flt)|*.flt' - GridPopupMenu.GridNone = 'Ninguno' - GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente' - GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente' - GridPopupMenu.GridClearSorting = 'Clear Sorting' - GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo' - GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo' - GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"' - GridPopupMenu.GridAlignmentSubMenu = 'Alineaci'#243'n' - GridPopupMenu.GridAlignLeft = 'Alineaci'#243'n Izquierda' - GridPopupMenu.GridAlignRight = 'Alineaci'#243'n Derecha' - GridPopupMenu.GridAlignCenter = 'Alineaci'#243'n Centrada' - GridPopupMenu.GridRemoveColumn = 'Remover esta columna' - GridPopupMenu.GridFieldChooser = 'Selector de campos' - GridPopupMenu.GridBestFit = 'Mejor distribuci'#243'n' - GridPopupMenu.GridBestFitAllColumns = 'Mejor distribuci'#243'n (Todas las columnas)' - GridPopupMenu.GridShowFooter = 'Pie' - GridPopupMenu.GridShowGroupFooter = 'Pies de grupo' - GridPopupMenu.GridSumMenuItem = 'Sumar' - GridPopupMenu.GridMinMenuItem = 'M'#237'nimo' - GridPopupMenu.GridMaxMenuItem = 'M'#225'ximo' - GridPopupMenu.GridCountMenuItem = 'Contar' - GridPopupMenu.GridAvgMenuItem = 'Promedio' - GridPopupMenu.GridNoneMenuItem = 'Ninguno' - GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1' - GridExport.StyleManagerKill = - 'El administrador de estilo esta siendo utilizado y no puede ser ' + - 'liberado en este momento' - GridExport.StyleManagerCreate = 'No se puede crear administrador de estilo' - GridExport.ExportToHtml = 'Exportar a p'#225'gina Web (*.html)' - GridExport.ExportToXml = 'Exportar a documento XML (*.xml)' - GridExport.ExportToText = 'Exportar a formato de texto (*.txt)' - GridExport.EmptyExportCache = 'Cache de exportaci'#243'n vac'#237'o' - GridExport.IncorrectUnion = 'Uni'#243'n de celdas incorrecta' - GridExport.IllegalWidth = 'Ancho de columna ilegal' - GridExport.InvalidColumnRowCount = 'Conteo de columna o fila inv'#225'lido' - GridExport.IllegalHeight = 'Alto de fila ilegal' - GridExport.InvalidColumnIndex = 'El '#237'ndice de columna %d fuera de l'#237'mites' - GridExport.InvalidRowIndex = 'El '#237'ndice de fila %d est'#225' fuera de l'#237'mites' - GridExport.InvalidStyleIndex = #205'ndice de estilo %d inv'#225'lido' - GridExport.ExportToExcel = 'Exportar a MS Excel (*.xls)' - GridExport.WorkbookWrite = 'Error al escribir el archivo XLS' - GridExport.InvalidCellDimension = 'Dimensi'#243'n de celda inv'#225'lida' - GridExport.BoolTrue = 'True' - GridExport.BoolFalse = 'False' - Translate.cxLibrary = True - Translate.PageControl2 = False - Translate.QuantumGrid5 = True - Translate.Editors5 = True - Translate.Datacontroller = True - Translate.Filter = True - Translate.GridPopupMenu = True - Translate.GridExport = True - Translate.Navigator = True - Version = '5.0' - Left = 104 - Top = 16 - end - object cxIntlPrintSys3: TcxIntlPrintSys3 - Connected = True - Version = '3.0' - BtnOK = 'Aceptar' - BtnOKAccelerated = '&Aceptar' - BtnCancel = 'Cancelar' - BtnClose = 'Cerrar' - BtnApply = '&Aplicar' - BtnHelp = 'A&yuda' - BtnFix = '&Arreglar' - BtnNew = '&Nuevo...' - BtnIgnore = '&Ignorar' - BtnYes = '&S'#237 - BtnNo = '&No' - BtnEdit = '&Editar...' - BtnReset = '&Restaurar' - BtnAdd = '&A'#241'adir' - BtnAddComposition = 'A'#241'adir &Comparativa' - BtnDefault = '&Defecto...' - BtnDelete = '&Borrar...' - BtnDescription = '&Descripci'#243'n...' - BtnCopy = '&Copiar...' - BtnYesToAll = 'S'#237' a &Todos' - BtnRestoreDefaults = '&Rest.Defecto' - BtnRestoreOriginal = 'Restaurar &Original' - BtnTitleProperties = 'Prop. del T'#237'tulo...' - BtnProperties = 'P&ropiedades...' - BtnNetwork = 'R&ed...' - BtnBrowse = '&Hojear...' - BtnPageSetup = 'Config. P'#225'&gina...' - BtnPrintPreview = 'Vista Pre&via...' - BtnPreview = '&Ver...' - BtnPrint = 'Imprimir...' - BtnOptions = '&Opciones...' - BtnStyleOptions = 'Opciones de estilo...' - BtnDefinePrintStyles = '&Definir Estilos...' - BtnPrintStyles = 'Estilos de Imp.' - BtnBackground = 'Fondo' - BtnShowToolBar = 'Mostrar &Herramientas' - BtnDesign = 'D&ise'#241'o...' - BtnMoveUp = 'Mover &Arriba' - BtnMoveDown = 'Mover Aba&jo' - BtnMoreColors = '&M'#225's Colores...' - BtnFillEffects = 'Efectos de &Relleno...' - BtnNoFill = '&Sin Relleno' - BtnAutomatic = '&Autom'#225'tico' - BtnNone = '&Ninguno' - BtnOtherTexture = 'Otras Te&xturas...' - BtnInvertColors = 'I&nvertir Colores' - BtnSelectPicture = 'Se&leccionar Imagen...' - EditReports = 'Editar Informes' - Composition = 'Composici'#243'n' - ReportTitleDlgCaption = 'T'#237'tulo del Informe' - Mode = '&Modo:' - Text = '&Texto' - Properties = '&Propiedades' - AdjustOnScale = '&Ajustar Escala' - TitleModeNone = 'Ninguno' - TitleModeOnEveryTopPage = 'En Cada P'#225'gina' - TitleModeOnFirstPage = 'En Primera P'#225'gina' - EditDescription = 'Editar Descripci'#243'n' - Rename = 'Reno&mbrar' - SelectAll = 'Seleccionar Todo' - AddReport = 'A'#241'adir Informe' - AddAndDesignReport = 'A'#241'adir y D&ise'#241'ar Informe...' - NewCompositionCaption = 'Nueva Composici'#243'n' - Name0 = '&Nombre:' - Caption = '&T'#237'tulo:' - AvailableSources = '&Fuente(s) Disponible(s)' - OnlyComponentsInActiveForm = 'S'#243'lamente Componentes en Formulario &Activo' - OnlyComponentsWithoutLinks = 'S'#243'lamente Componentes &sin Enlaces Existentes' - ItemName = 'Nombre' - ItemDescription = 'Descripci'#243'n' - ConfirmDeleteItem = 'Quiere borrar los siguientes elementos: %s ?' - AddItemsToComposition = 'A'#241'adir Elementos a la Composici'#243'n' - HideAlreadyIncludedItems = 'Ocultar Elementos Ya &Incluidas' - AvailableItems = 'Elementos D&isponibles' - Items = '&Elementos' - Enable = '&Habilitar' - Options = 'Opciones' - Show = 'Mostrar' - PaintItemsGraphics = '&Pintar Elementos Gr'#225'ficos' - Description = 'Descripci'#243'n:' - NewReport = 'Nuevo Informe' - OnlySelected = 'S'#243'lo &Seleccionados' - ExtendedSelect = 'Selecci'#243'n &Extendida' - IncludeFixed = '&Incluir Fijos' - Fonts = 'Fuentes' - BtnFont = 'Fue&nte...' - BtnEvenFont = 'Fuente &Par...' - BtnOddFont = 'Fuente &Impar...' - BtnFixedFont = 'Fuente F&ijo...' - BtnGroupFont = 'Fuente de Gru&po...' - BtnChangeFont = 'Cambiar Fue&nte...' - Font = 'Fuente' - OddFont = 'Fuente Impar' - EvenFont = 'Fuente Par' - PreviewFont = 'Fuente Vista Prev.' - CaptionNodeFont = 'Fuente T'#237'tulo del Nivel' - GroupNodeFont = 'Fuente T'#237'tulos de Grupo' - GroupFooterFont = 'Fuente Pies de Grupo' - HeaderFont = 'Fuente Cabecera' - FooterFont = 'Fuente Pie' - BandFont = 'Fuente Groups' - Transparent = '&Transparente' - FixedTransparent = 'Transparente Fijo' - CaptionTransparent = 'T'#237'tulo Transparente' - GroupTransparent = 'Grupo Transparente' - GraphicAsTextValue = '(GRAPHIC)' - Colors = 'Colores' - Color = 'Co&lor:' - OddColor = 'Co&lor Impar:' - EvenColor = 'Color Par:' - PreviewColor = 'Color V.&Previa:' - BandColor = 'Color &Grupos:' - LevelCaptionColor = 'Color T'#237'tulo Ni&vel:' - HeaderColor = 'Color Cab&ecera:' - GroupNodeColor = 'Color &Nodo Grupo:' - GroupFooterColor = 'Color Pie &Grupo:' - FooterColor = 'Color P&ie:' - FixedColor = 'Color F&ijo:' - GroupColor = 'Color Gru&po:' - CaptionColor = 'Color T'#237'tulo:' - GridLinesColor = 'Color L'#237'nea &Rejilla:' - Bands = '&Grupos' - LevelCaptions = 'T'#237'tulo Niveles' - Headers = 'Cab&eceras' - Footers = 'P&ies&' - GroupFooters = 'Pies de &Grupos' - Preview = 'Vista Pre&via' - PreviewLineCount = 'N'#250'm.L'#237'neas V.Previa:' - AutoCalcPreviewLineCount = 'A&uto-Calcular L'#237'neas V.Previa' - Grid = 'Re&jilla&' - NodesGrid = '&Nodos de Rejilla' - GroupFooterGrid = 'Rejilla de Gru&pos Pie' - StateImages = 'Imagenes de E&stado' - Images = '&Imagenes' - TextAlign = '&Alineaci'#243'n Texto' - TextAlignHorz = 'Hori&zontal' - TextAlignVert = '&Vertical' - TextAlignLeft = 'Izquierda' - TextAlignCenter = 'Centrado' - TextAlignRight = 'Derecha' - TextAlignTop = 'Superior' - TextAlignVCenter = 'Centrado' - TextAlignBottom = 'Inferior' - BorderLines = 'L'#237'neas de &Borde' - HorzLines = 'L'#237'neas Hori&zontales' - VertLines = 'L'#237'neas &Verticales' - FixedHorzLines = 'L'#237'neas Horizontales Fi&jas' - FixedVertLines = 'L'#237'neas Verticales Fij&as' - FlatCheckMarks = 'Cajas de Verificaci'#243'n P&lanas' - CheckMarksAsText = '&Mostrar Cajas Verificaci'#243'n como Text' - RowAutoHeight = 'Altura &Fila Auto.' - EndEllipsis = '&Puntos Suspens.' - DrawBorder = '&Dibujar Borde' - FullExpand = '&Expandir Todo' - BorderColor = 'Color &Borde:' - AutoNodesExpand = 'Expandir N&odos' - ExpandLevel = 'Expandir &Niveles:' - FixedRowOnEveryPage = 'Filas Fijas en &Cada P'#225'gina' - DrawMode = '&Modo Dibujo:' - DrawModeStrict = 'Estricto' - DrawModeOddEven = 'Modo Filas Par/Impar' - DrawModeChess = 'Modo '#39'Ajedrez'#39 - DrawModeBorrow = 'Prestar de Fuente' - ThreeDEffects = 'Efectos 3D' - Use3DEffects = 'Usar Efectos &3D' - Soft3D = '3D "Suave"' - Behaviors = 'Comportamiento' - Miscellaneous = 'Miscelaneo' - OnEveryPage = 'En Cada P'#225'gina' - NodeExpanding = 'Expansi'#243'n de Nodos' - Selection = 'Selecci'#243'n' - NodeAutoHeight = 'Altura &Nodo Auto.' - TransparentGraphics = 'Gr'#225'ficos &Transparentes' - AutoWidth = 'An&chura Auto.' - DisplayGraphicsAsText = 'Mostrar Gr'#225'fico Como &Texto' - TransparentColumnGraphics = '&Gr'#225'ficos Transparentes' - BandsOnEveryPage = 'Grupos En C&ada P'#225'gina' - HeadersOnEveryPage = 'Cabeceras en Cada &P'#225'gina' - FootersOnEveryPage = 'Pies en Ca&da P'#225'gina' - Graphics = 'Gr'#225'ficos' - OutOfResources = 'Out of Resources' - FileAlreadyExists = 'Fichero "%s" Ya Existe.' - ConfirmOverWrite = 'Fichero "%s" ya existe. '#191'Sobreescribir?' - InvalidFileName = 'Nombre No V'#225'lido "%s"' - RequiredFileName = 'Entrar nombre de fichero.' - OutsideMarginsMessage = - 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + - 'a.' - OutsideMarginsMessage2 = - 'Uno o m'#225's margenes est'#225'n fuera del area de impresi'#243'n de la p'#225'gin' + - 'a.' - InvalidMarginsMessage = 'Uno o m'#225's margenes tiene valores no v'#225'lidos.' - InvalidMargins = 'Uno o m'#225's valores de los margenes no es v'#225'lido' - OutsideMargins = - 'Uno o m'#225's margenes se ha establecido fuera del area de impresi'#243'n' + - ' de la p'#225'gina' - ThereAreNowItemsForShow = 'No existen elementos en '#233'sta vista' - PageBackground = 'Fondo de P'#225'gina' - PenColor = 'Color del L'#225'piz' - FontColor = 'Color del Fuente' - BrushColor = 'Color de la Brocha' - HighLight = 'HighLight' - ColorBlack = 'Negro' - ColorDarkRed = 'Rojo Oscuro' - ColorRed = 'Rojo' - ColorPink = 'Rosa' - ColorRose = 'Rosado' - ColorBrown = 'Marr'#243'n' - ColorOrange = 'Naranja' - ColorLightOrange = 'Naranja Claro' - ColorGold = 'Oro' - ColorTan = 'Dorado' - ColorOliveGreen = 'Verde Oliva' - ColorDrakYellow = 'Amarillo Oscuro' - ColorLime = 'Lima' - ColorYellow = 'Amarillo' - ColorLightYellow = 'Amarillo Claro' - ColorDarkGreen = 'Verde Oscuro' - ColorGreen = 'Verde' - ColorSeaGreen = 'Verde Mar' - ColorBrighthGreen = 'Verde Florecente' - ColorLightGreen = 'Verde Claro' - ColorDarkTeal = 'VerdeAzul Oscuro' - ColorTeal = 'VerdeAzul' - ColorAqua = 'Aqua' - ColorTurquoise = 'Turquesa' - ColorLightTurquoise = 'Turquesa Claro' - ColorDarkBlue = 'Azul Oscuro' - ColorBlue = 'Azul' - ColorLightBlue = 'Azul Claro' - ColorSkyBlue = 'Azul Cielo' - ColorPaleBlue = 'Azul P'#225'lido' - ColorIndigo = 'Indigo' - ColorBlueGray = 'Azul Gris' - ColorViolet = 'Violeta' - ColorPlum = 'Granate' - ColorLavender = 'Lav'#225'nder' - ColorGray80 = 'Gris-80%' - ColorGray50 = 'Gris-50%' - ColorGray40 = 'Gris-40%' - ColorGray25 = 'Gris-25%' - ColorWhite = 'Blanco' - Texture = '&Textura' - Pattern = '&Dibujo' - Picture = '&Im'#225'gen' - Foreground = '&Primer Plano' - Background = '&Fondo' - Sample = 'Ejemplo:' - FEFCaption = 'Efectos de Relleno' - PaintMode = '&Modo Pintar' - PaintModeCenter = 'Centrar' - PaintModeStretch = 'Estirar' - PaintModeTile = 'Mosaico' - PaintModeProportional = 'Proporcional' - PatternGray5 = '5%' - PatternGray10 = '10%' - PatternGray20 = '20%' - PatternGray25 = '25%' - PatternGray30 = '30%' - PatternGray40 = '40%' - PatternGray50 = '50%' - PatternGray60 = '60%' - PatternGray70 = '70%' - PatternGray75 = '75%' - PatternGray80 = '80%' - PatternGray90 = '90%' - PatternLightDownwardDiagonal = 'Light downward diagonal' - PatternLightUpwardDiagonal = 'Light upward diagonal' - PatternDarkDownwardDiagonal = 'Dark downward diagonal' - PatternDarkUpwardDiagonal = 'Dark upward diagonal' - PatternWideDownwardDiagonal = 'Wide downward diagonal' - PatternWideUpwardDiagonal = 'Wide upward diagonal' - PatternLightVertical = 'Light vertical' - PatternLightHorizontal = 'Light horizontal' - PatternNarrowVertical = 'Narrow vertical' - PatternNarrowHorizontal = 'Narrow horizontal' - PatternDarkVertical = 'Dark vertical' - PatternDarkHorizontal = 'Dark horizontal' - PatternDashedDownward = 'Dashed downward' - PatternDashedUpward = 'Dashed upward' - PatternDashedVertical = 'Dashed vertical' - PatternDashedHorizontal = 'Dashed horizontal' - PatternSmallConfetti = 'Small confetti' - PatternLargeConfetti = 'Large confetti' - PatternZigZag = 'Zig zag' - PatternWave = 'Wave' - PatternDiagonalBrick = 'Diagonal brick' - PatternHorizantalBrick = 'Horizontal brick' - PatternWeave = 'Weave' - PatternPlaid = 'Plaid' - PatternDivot = 'Divot' - PatternDottedGrid = 'Dottedgrid' - PatternDottedDiamond = 'Dotted diamond' - PatternShingle = 'Shingle' - PatternTrellis = 'Trellis' - PatternSphere = 'Sphere' - PatternSmallGrid = 'Small grid' - PatternLargeGrid = 'Large grid' - PatternSmallCheckedBoard = 'Small checked board' - PatternLargeCheckedBoard = 'Large checked board' - PatternOutlinedDiamond = 'Outlined diamond' - PatternSolidDiamond = 'Solid diamond' - TextureNewSprint = 'Newsprint' - TextureGreenMarble = 'Green marble' - TextureBlueTissuePaper = 'Blue tissue paper' - TexturePapyrus = 'Papyrus' - TextureWaterDroplets = 'Water droplets' - TextureCork = 'Cork' - TextureRecycledPaper = 'Recycled paper' - TextureWhiteMarble = 'White marble' - TexturePinkMarble = 'Pink marble' - TextureCanvas = 'Canvas' - TexturePaperBag = 'Paper bag' - TextureWalnut = 'Walnut' - TextureParchment = 'Parchment' - TextureBrownMarble = 'Brown marble' - TexturePurpleMesh = 'Purple mesh' - TextureDenim = 'Denim' - TextureFishFossil = 'Fish fossil' - TextureOak = 'Oak' - TextureStationary = 'Stationary' - TextureGranite = 'Granite' - TextureBouquet = 'Bouquet' - TextureWonenMat = 'Woven mat' - TextureSand = 'Sand' - TextureMediumWood = 'Medium wood' - FSPCaption = 'Vista de Im'#225'gen' - Width = 'Altura' - Height = 'Altura' - BrushDlgCaption = 'Propiedades de la Brocha' - Style = 'E&stilo:' - ENFNCaption = 'Escoge Nombre de Fichero' - EnterNewFileName = 'Introduzca Nuevo Nombre de Fichero' - DefinePrintStylesCaption = 'Definir Estilos de Impresi'#243'n' - DefinePrintStylesTitle = 'E&stilos de Impresi'#243'n' - DefinePrintStylesWarningDelete = #191' Desea borrar "%s" ?' - DefinePrintStylesWarningClear = #191'Desea borrar todos los estilos existentes?' - Clear = 'E&liminar...' - CustomSize = 'Tama'#241'o Personalizado' - DefaultTray = 'Bandeja de Entrada' - InvalidPrintDevice = 'La impresora seleccionada no es v'#225'lida' - NotPrinting = 'La impresora no est'#225' imprimiendo' - Printing = 'Imprimiendo' - DeviceOnPort = '%s en %s' - PrinterIndexError = #205'ndice de Impresora fueera de rango' - NoDefaultPrintDevice = 'No hay ninguna impresora seleccionada' - AutoTextDialogCaption = 'Editar Entidades AutoTexto' - EnterAutoTextEntriesHere = 'Entrar Entidades A&utoTexto Aqu'#237':' - PrintDialogCaption = 'Imprimir' - PrintDialogPrinter = 'Impresora' - PrintDialogName = '&Nombre:' - PrintDialogStatus = 'Estado:' - PrintDialogType = 'Tipo:' - PrintDialogWhere = 'D'#243'nde:' - PrintDialogComment = 'Comentario:' - PrintDialogPrintToFile = 'A &Fichero' - PrintDialogPageRange = 'Rango de P'#225'g.' - PrintDialogAll = '&Todas' - PrintDialogCurrentPage = 'P'#225'g. A&ctual' - PrintDialogSelection = '&Selecci'#243'n' - PrintDialogPages = '&P'#225'ginas:' - PrintDialogRangeLegend = 'Entre el n'#250'mero de p'#225'gina o un rango de p'#225'ginas' - PrintDialogCopies = 'Copias' - PrintDialogNumberOfPages = 'N&'#250'mero de P'#225'g.:' - PrintDialogNumberOfCopies = 'N'#250'mero de &Copias:' - PrintDialogCollateCopies = 'In&tercalar Copias' - PrintDialogAllPages = 'Todas' - PrintDialogEvenPages = 'Pares' - PrintDialogOddPages = 'Impares' - PrintDialogPrintStyles = 'Est&ilos Impresi'#243'n' - PrintDialogOpenDlgTitle = 'Elije un Fichero' - PrintDialogOpenDlgAllFiles = 'Todos los Ficheros' - PrintDialogOpenDlgPrinterFiles = 'Ficheros de Impresora' - PrintDialogPageNumbersOutOfRange = 'N'#250'mero de p'#225'gina fuera de rango (%d - %d)' - PrintDialogInvalidPageRanges = 'Rango de p'#225'ginas no v'#225'lido' - PrintDialogRequiredPageNumbers = 'Introduzca n'#250'meros de p'#225'ginas' - PrintDialogNoPrinters = 'No printers are installed.' - PrintDialogInPrintingState = 'La impresora est'#225' ocupado.' - PrintDialogPSPaused = 'Pausado' - PrintDialogPSPendingDeletion = 'Pendiente Borrar' - PrintDialogPSBusy = 'Ocupado' - PrintDialogPSDoorOpen = 'Puerta Abierta' - PrintDialogPSError = 'Error' - PrintDialogPSInitializing = 'Inicializando' - PrintDialogPSIOActive = 'E/S Activo' - PrintDialogPSManualFeed = 'Alimentaci'#243'n Manual' - PrintDialogPSNoToner = 'Toner Terminado' - PrintDialogPSNotAvailable = 'No Disponible' - PrintDialogPSOFFLine = 'Fuera de L'#237'nea' - PrintDialogPSOutOfMemory = 'Memoria Agotada' - PrintDialogPSOutBinFull = 'Bandeja de Salida Llena' - PrintDialogPSPagePunt = 'Page Punt' - PrintDialogPSPaperJam = 'Papel Enganchado' - PrintDialogPSPaperOut = 'Sin Papel' - PrintDialogPSPaperProblem = 'Problema de Papel' - PrintDialogPSPrinting = 'Imprimiendo' - PrintDialogPSProcessing = 'Procesando' - PrintDialogPSTonerLow = 'Toner Bajo' - PrintDialogPSUserIntervention = 'Intervenci'#243'n del Usuario' - PrintDialogPSWaiting = 'Esperando' - PrintDialogPSWarningUp = 'Precalientamiento' - PrintDialogPSReady = 'Lista' - PrintDialogPSPrintingAndWaiting = 'Imprimiendo: %d documento(s) esperando' - LeftMargin = 'Margen Izquierdo' - TopMargin = 'Margin Superior' - RightMargin = 'Margin Derecho' - BottomMargin = 'Margin Inferior' - GutterMargin = 'Gutter' - HeaderMargin = 'Cabecera' - FooterMargin = 'Pie' - UnitsInches = '"' - UnitsCentimeters = 'cm' - UnitsMillimeters = 'mm' - UnitsPoints = 'pt' - UnitsPicas = 'pi' - UnitsDefaultName = 'Predeterminada' - UnitsInchesName = 'Pulgadas' - UnitsCentimetersName = 'Centimetros' - UnitsMillimetersName = 'Milimetros' - UnitsPointsName = 'Puntos' - UnitsPicasName = 'Picas' - PrintPreview = 'Vista Previa' - ReportDesignerCaption = 'Dise'#241'ador de Informes' - CompositionDesignerCaption = 'Dise'#241'ador de Composici'#243'n' - ComponentNotSupportedByLink = 'Component "%s" not supported by TdxComponentPrinter' - ComponentNotSupported = 'Component "%s" not supported by TdxComponentPrinter' - PrintDeviceNotReady = 'La impresora no est'#225' instalada o no est'#225' preparada' - UnableToGenerateReport = 'No se ha podido generar el informe' - PreviewNotRegistered = 'There is no registered preview form' - ComponentNotAssigned = '%s' - PrintDeviceIsBusy = 'Impresora ocupada' - PrintDeviceError = #161'La impresora ha encontrado un error!' - MissingComponent = 'Missing "Component" property' - DataProviderDontPresent = 'There are no Links with Assigned Component in Composition' - BuildingReport = 'Generando informe: Completado %d%%' - PrintingReport = - 'Imprimiendo Informe: Completado %d p'#225'gina(s). Pulse ESC to abort' + - 'ar...' - DefinePrintStylesMenuItem = 'Definir E&stilos de Impresi'#243'n...' - AbortPrinting = #191'Abortar impresi'#243'n?' - StandardStyle = 'Estilo Estandar' - FontStyleBold = 'Negrita' - FontStyleItalic = 'It'#225'lica' - FontStyleUnderline = 'Subrayado' - FontStyleStrikeOut = 'Tachado' - Pt = 'pt.' - NoPages = '[No p'#225'ginas]' - PageWidth = 'Anchura P'#225'g' - WholePage = 'Pag. Completa' - TwoPages = 'Dos P'#225'ginas' - FourPages = 'Cuatro P'#225'ginas' - WidenToSourceWidth = 'Ajustar a Anchura' - MenuBar = 'MenuBar' - StandardBar = 'Standard' - HeaderFooterBar = 'Header and Footer' - ShortcutMenusBar = 'Shortcut Menus' - AutoTextBar = 'AutoTexto' - MenuFile = '&Ficheros' - MenuFileDesign = '&Dise'#241'o...' - MenuFilePrint = '&Imprimir...' - MenuFilePageSetup = 'Con&fig. P'#225'gina...' - MenuPrintStyles = 'Estilos Impresi'#243'n' - MenuFileExit = '&Cerrar' - MenuEdit = '&Editar' - MenuEditCut = 'Cor&tar' - MenuEditCopy = '&Copiar' - MenuEditPaste = '&Pegar' - MenuEditDelete = '&Borrar' - MenuEditFind = '&Buscar...' - MenuEditFindNext = 'Buscar Si&guiente' - MenuEditReplace = '&Reemplazar...' - MenuLoad = '&Cargar...' - MenuPreview = 'V. Pre&via...' - MenuInsert = '&Insertar' - MenuInsertAutoText = '&AutoTexto' - MenuInsertEditAutoTextEntries = 'AutoTe&xto...' - MenuInsertAutoTextEntries = '&(Lista de Entradas AutoTexto)' - MenuInsertAutoTextEntriesSubItem = 'In&sertar AutoTexto' - MenuInsertPageNumber = 'N'#250'm &P'#225'g.' - MenuInsertTotalPages = '&N'#250'm. de P'#225'g.' - MenuInsertPageOfPages = 'N'#250'm de P'#225'&g. de P'#225'ginas' - MenuInsertDateTime = 'Fechay Hora' - MenuInsertDate = '&Fecha' - MenuInsertTime = '&Hora' - MenuInsertUserName = 'Nombre &Usuario' - MenuInsertMachineName = 'Nombre &Maquina' - MenuView = '&Vista' - MenuViewMargins = '&Margenes' - MenuViewFlatToolBarButtons = 'Botones &Planos' - MenuViewLargeToolBarButtons = 'Botones &Grandes' - MenuViewMarginsStatusBar = 'Barra de M&argenes' - MenuViewPagesStatusBar = 'Barra de E&stado' - MenuViewToolBars = '&Herramientas' - MenuViewPagesHeaders = '&Cabeceras de P'#225'gina' - MenuViewPagesFooters = '&Pies de P'#225'ginas' - MenuViewSwitchToLeftPart = 'Switch to Left Part' - MenuViewSwitchToRightPart = 'Switch to Right Part' - MenuViewSwitchToCenterPart = 'Switch to Center Part' - MenuViewHFSwitchHeaderFooter = 'Mo&strar Cabecera/Pie' - MenuViewHFClose = '&Cerrar' - MenuZoom = '&Aumentar' - MenuZoomPercent100 = 'Porcien &100' - MenuZoomPageWidth = '&Anchura P'#225'gina' - MenuZoomWholePage = 'P'#225'gina C&ompleta' - MenuZoomTwoPages = '&Dos P'#225'ginas' - MenuZoomFourPages = '&Cuatro P'#225'ginas' - MenuZoomMultiplyPages = 'P'#225'ginas &M'#250'ltiples' - MenuZoomWidenToSourceWidth = 'Aju&star a Anchura' - MenuZoomSetup = '&Config...' - MenuPages = '&P'#225'ginas' - MenuGotoPage = '&Saltar' - MenuGotoPageFirst = '&Primera P'#225'g.' - MenuGotoPagePrev = 'P'#225'g. &Anteror' - MenuGotoPageNext = 'Pr'#243'&xima P'#225'g.' - MenuGotoPageLast = #218'l&tima P'#225'g.' - MenuActivePage = 'P'#225'g. Acti&va:' - MenuFormat = 'F&ormato' - MenuFormatHeaderAndFooter = '&Cabeceras y Pies' - MenuFormatAutoTextEntries = 'Entradas &AutoTexto...' - MenuFormatDateTime = 'Fecha y &Hora...' - MenuFormatPageNumbering = '&Numeraci'#243'n P'#225'ginas...' - MenuFormatPageBackground = 'Fon&do...' - MenuFormatShrinkToPage = '&Reducir a P'#225'g.' - MenuShowEmptyPages = 'Mostrar P'#225'g. &Vacias' - MenuFormatHFBackground = 'Fondo de Cabecera/Pie...' - MenuFormatHFClear = 'Vaciar Texto' - MenuTools = '&Herramientas' - MenuToolsCustomize = '&Personalizar...' - MenuToolsOptions = '&Opciones...' - MenuHelp = 'A&yuda' - MenuHelpTopics = '&Temas de Ayuda...' - MenuHelpAbout = '&Acerca de...' - MenuShortcutPreview = 'V.Previa' - MenuShortcutAutoText = 'AutoTexto' - MenuBuiltInMenus = 'Men'#250's Incorporados' - MenuShortCutMenus = 'Men'#250's de Atajos' - MenuNewMenu = 'Men'#250' Nuevo' - HintFileDesign = 'Dise'#241'ar Informe' - HintFilePrint = 'Imprimir' - HintFilePrintDialog = 'Configuarar la Impresora' - HintFilePageSetup = 'Configurar la P'#225'gina' - HintFileExit = 'Cerrar Vista Previa' - HintEditFind = 'Buscar' - HintEditFindNext = 'Buscar Siguiente' - HintEditReplace = 'Reemplazar' - HintInsertEditAutoTextEntries = 'Editar Entradas AutoTexto' - HintInsertPageNumber = 'Insertar N'#250'mero P'#225'gina' - HintInsertTotalPages = 'Insertar N'#250'mero de P'#225'ginas' - HintInsertPageOfPages = 'Insertar P'#225'gina N'#250'mero de P'#225'ginas' - HintInsertDateTime = 'Insertar Fecha y Hora' - HintInsertDate = 'Insertar Fecha' - HintInsertTime = 'Insert Hora' - HintInsertUserName = 'Insertar Nombre Usuario' - HintInsertMachineName = 'Insertar Nombre Maquina' - HintViewMargins = 'Ver Margenes' - HintViewLargeButtons = 'Ver Botones Grandes' - HintViewMarginsStatusBar = 'Ver Barra de Esatdo de Margenes' - HintViewPagesStatusBar = 'Ver Barra de Estado de P'#225'gina' - HintViewPagesHeaders = 'Vee Cabecera de P'#225'gina' - HintViewPagesFooters = 'Ver Pie de P'#225'gina' - HintViewSwitchToLeftPart = 'Cambiar a Cabecera/Pie Izquierda' - HintViewSwitchToRightPart = 'Cambiar a Cabecera/Pie Derecha' - HintViewSwitchToCenterPart = 'Cambiar a Cabecera/Pie Centrada' - HintViewHFSwitchHeaderFooter = 'Cambiar a Cabecera y Pie' - HintViewHFClose = 'Cerrar' - HintViewZoom = 'Aumentar' - HintZoomPercent100 = 'Aumentar al 100%' - HintZoomPageWidth = 'Aumentar a Anchura de P'#225'gina' - HintZoomWholePage = 'P'#225'gina Completa' - HintZoomTwoPages = 'Dos P'#225'ginas' - HintZoomFourPages = 'Cuatro P'#225'ginas' - HintZoomMultiplyPages = 'P'#225'ginas M'#250'ltiples' - HintZoomWidenToSourceWidth = 'Ajustar a la Anchura' - HintZoomSetup = 'Introducir Factor de Aumento' - HintFormatDateTime = 'Formato de Fecha y Hora' - HintFormatPageNumbering = 'Formato de N'#250'mero de P'#225'gina' - HintFormatPageBackground = 'Fondo' - HintFormatShrinkToPage = 'Reducir a P'#225'gina' - HintFormatHFBackground = 'Fondo de Cabecera/Pie' - HintFormatHFClear = 'Vaciar Texto Cabecera/Pie' - HintGotoPageFirst = 'Primera P'#225'gina' - HintGotoPagePrev = 'P'#225'gina Anterior' - HintGotoPageNext = 'Pr'#243'xima P'#225'gina' - HintGotoPageLast = #218'ltima P'#225'gina' - HintActivePage = 'P'#225'gina Activa' - HintToolsCustomize = 'Personalizar Herramientas' - HintToolsOptions = 'Opciones' - HintHelpTopics = 'Temas de Ayuda' - HintHelpAbout = 'Acerca de' - PopupMenuLargeButtons = 'Botones &Grandes' - PopupMenuFlatButtons = 'Botones &Planos' - PaperSize = 'Tama'#241'o Papel' - Status = 'Estado' - StatusReady = 'Lista' - StatusPrinting = 'Imprimiendo. %d p'#225'gina(s) terminada(s)' - StatusGenerateReport = 'Generando Informe. %d%% completado.' - HintDoubleClickForChangePaperSize = 'Doble Clic para Cambiar el Tama'#241'o de P'#225'gina' - HintDoubleClickForChangeMargins = 'Doble Clic para Cambiar Margenes' - DTFormatsCaption = 'Fecha y Hora' - DTFormatsAvailableDateFormats = 'Formatos de &Fecha Disponibes:' - DTFormatsAvailableTimeFormats = 'Formatos de &Hora Disponibles:' - DTFormatsAutoUpdate = 'Act. &Autom'#225'tica' - DTFormatsChangeDefaultFormat = - 'Confirme que desea cambiar el formato de fecha y hora al "%s" -' + - ' "%s" ?' - PNFormatsCaption = 'Formato de N'#250'mero de P'#225'gina' - PageNumbering = 'Numeraci'#243'n de P'#225'ginas' - PNFormatsNumberFormat = '&Format N'#250'mero:' - PNFormatsContinueFromPrevious = '&Continuar desde '#218'ltima Secci'#243'n' - PNFormatsStartAt = 'Empezar &En:' - PNFormatsChangeDefaultFormat = - 'Confirme que desea cambiar el formato de numeraci'#243'n de p'#225'ginas a' + - 'l "%s" ?' - ZoomDlgCaption = 'Aumentar' - ZoomDlgZoomTo = 'Aumentar a' - ZoomDlgPageWidth = '&Ancho P'#225'g.' - ZoomDlgWholePage = 'P'#225'g.C&ompleta' - ZoomDlgTwoPages = '&Dos P'#225'ginas' - ZoomDlgFourPages = '&Cuatro P'#225'g.' - ZoomDlgManyPages = '&Varias P'#225'g.:' - ZoomDlgPercent = 'P&orcien:' - ZoomDlgPreview = 'Vista' - ZoomDlgFontPreview = '10pt Times New Romam' - ZoomDlgFontPreviewString = 'AaBbCcDdEeXxYyZz' - Pages = 'P'#225'ginas' - Cancel = 'Cancelar' - PreferenceDlgCaption = 'Opciones' - PreferenceDlgTab1 = '&General' - PreferenceDlgShow = '&Mostrar' - PreferenceDlgMargins = '&Margenes' - PreferenceDlgMarginsHints = 'A&yudas Margenes' - PreferenceDlgMargingWhileDragging = 'Ayudas Margins con A&rrastre' - PreferenceDlgLargeBtns = 'Botones &Grandes para Barras' - PreferenceDlgFlatBtns = 'Botones &Planos para Barras' - PreferenceDlgMarginsColor = '&Color Margenes:' - PreferenceDlgMeasurementUnits = '&Unidades de Medida:' - PreferenceDlgSaveForRunTimeToo = 'Gua&rdar en Ejecucci'#243'n tambien' - PreferenceDlgZoomScroll = 'Despla&zamiento con IntelliMouse' - PreferenceDlgZoomStep = 'Au&mento:' - CloneStyleCaptionPrefix = 'Copia (%d) de' - InvalideStyleCaption = 'Nombre de estilo "%s" existente. Por favor, introduzca otro.' - PageSetupCaption = 'Configuraci'#243'n de la P'#225'gina' - StyleName = '&Nombre Estilo:' - Page = '&P'#225'gina' - Margins = '&Margenes' - HeaderFooter = '&Cabecera\Pie' - Scaling = '&Escala' - Paper = 'Papel' - PaperType = 'T&ipo' - PaperDimension = 'Dimensi'#243'nes' - PaperWidth = '&Anchura:' - PaperHeight = 'A<ura:' - PaperSource = 'Bande&ja' - Orientation = 'Orientaci'#243'n' - Portrait = 'N&ormal' - Landscape = '&Apaisado' - PrintOrder = 'Orden de Impresi'#243'n' - DownThenOver = '&Abajo, derecha' - OverThenDown = '&Derecha, abajo' - Shading = 'Sombreado' - PrintUsingGrayShading = 'Imprimir usando sombreado &gris' - CenterOnPage = 'Centrar' - Horizontally = 'Hori&zontal' - Vertically = '&Vertical' - Header = 'Cabecera' - BtnHeaderFont = '&Fuente...' - BtnHeaderBackground = '&Fondo' - Footer = 'Pie' - BtnFooterFont = 'Fue&nte...' - BtnFooterBackground = 'F&ondo' - CaptionTop = '&Sup.:' - CaptionLeft = '&Izqu.:' - CaptionRight = '&Derecha:' - CaptionBottom = '&Inferior:' - Header2 = '&Cabec.:' - Footer2 = '&Pie:' - Alignment = 'Alineamiento' - VertAlignment = 'Alineamiento Vertical' - ReverseOnEvenPages = 'Al &rev'#233's en p'#225'ginas pares' - AdjustTo = '&Ajustar a:' - FitTo = 'P'#225'&ginas:' - PercentOfNormalSize = '% tama'#241'o normal' - PagesWideBy = 'p'#225'g(s) de &ancho' - Tall = 'de a<o' - XOfY = 'De' - LastPrinted = #218'ltima Impresi'#243'n' - FileName = 'Fichero' - FileNameAndPath = 'Fichero y camino' - PrintedBy = 'Impreso por' - PrintedOn = 'Impreso el' - CreatedBy = 'Creado por' - CreatedOn = 'Creado el' - Confidential = 'Confidencial' - HFFunctionNameUnknown = 'Desconocido' - HFFunctionNamePageNumber = 'N'#250'm. P'#225'gina' - HFFunctionNameTotalPages = 'P'#225'g. Totales' - HFFunctionNamePageOfPages = 'P'#225'g. # de P'#225'gs. #' - HFFunctionNameDateTime = 'Fecha y Hora' - HFFunctionNameDate = 'Fecha' - HFFunctionNameTime = 'Hora' - HFFunctionNameUserName = 'Nombre Usuario' - HFFunctionNameMachineName = 'Nombre Maquina' - HFFunctionHintPageNumber = 'Page Number' - HFFunctionHintTotalPages = 'Total Pages' - HFFunctionHintPageOfPages = 'Page # of Pages #' - HFFunctionHintDateTime = 'Date and Time Printed' - HFFunctionHintDate = 'Date Printed' - HFFunctionHintTime = 'Time Printed' - HFFunctionHintUserName = 'User Name' - HFFunctionHintMachineName = 'Machine Name' - HFFunctionTemplatePageNumber = 'Page #' - HFFunctionTemplateTotalPages = 'Total Pages' - HFFunctionTemplatePageOfPages = 'Page # of Pages #' - HFFunctionTemplateDateTime = 'Date & Time Printed' - HFFunctionTemplateDate = 'Date Printed' - HFFunctionTemplateTime = 'Time Printed' - HFFunctionTemplateUserName = 'User Name' - HFFunctionTemplateMachineName = 'Machine Name' - January = 'Enero' - February = 'Febrero' - March = 'Marzo' - April = 'Abril' - May = 'Mayo' - June = 'Junio' - July = 'Julio' - August = 'Agosto' - September = 'Septiembre' - October = 'Octubre' - November = 'Noviembre' - December = 'Diciembre' - East = 'Este' - West = 'Oeste' - South = 'Sur' - North = 'Norte' - Total = 'Total' - Plan = 'Plan' - SwimmingPool = 'Swimming-pool' - Administration = 'Administration' - Park = 'Park' - CarParking = 'Car-Parking' - CorporateHeadquarters = 'Corporate' - SalesAndMarketing = 'Sales and' - Engineering = 'Engineering' - FieldOfficeCanada = 'Field Office:' - OrderNoCaption = 'OrderNo' - NameCaption = 'Name' - CountCaption = 'Count' - CompanyCaption = 'Company' - AddressCaption = 'Address' - PriceCaption = 'Price' - CashCaption = 'Cash' - Name1 = 'Jennie Valentine' - Name2 = 'Sam Hill' - Company1 = 'Jennie Inc.' - Company2 = 'Daimler-Chrysler AG' - Address1 = '123 Home Lane' - Address2 = '9333 Holmes Dr.' - CountIs = 'Count is: %d' - Regular = 'Regular' - Irregular = 'Irregular' - TLBand = 'Item Data' - TLColumnName = 'Name' - TLColumnAxisymmetric = 'Axisymmetric' - TLColumnItemShape = 'Shape' - ItemShapeAsText = '(Graphic)' - Item1Name = 'Cone' - Item2Name = 'Cylinder' - Item3Name = 'Pyramid' - Item4Name = 'Box' - Item5Name = 'Free Surface' - Item2Description = 'Axisymmetric geometry figure' - Item3Description = 'Axisymmetric geometry figure' - Item4Description = 'Acute-angled geometry figure' - Item7Description = 'Simple extrusion surface' - PatternIsNotRegistered = 'Pattern "%s" is not registered' - SolidEdgePattern = 'Solid' - ThinSolidEdgePattern = 'Medium Solid' - MediumSolidEdgePattern = 'Medium Solid' - ThickSolidEdgePattern = 'Thick Solid' - DottedEdgePattern = 'Dotted' - DashedEdgePattern = 'Dashed' - DashDotDotEdgePattern = 'Dash Dot Dot' - DashDotEdgePattern = 'Dash Dot' - SlantedDashDotEdgePattern = 'Slanted Dash Dot' - MediumDashDotDotEdgePattern = 'Medium Dash Dot Dot' - HairEdgePattern = 'Hair' - MediumDashDotEdgePattern = 'Medium Dash Dot' - MediumDashedEdgePattern = 'Medium Dashed' - DoubleLineEdgePattern = 'Double Line' - SolidFillPattern = 'Solid' - Gray75FillPattern = '75% Gray' - Gray50FillPattern = '50% Gray' - Gray25FillPattern = '25% Gray' - Gray125FillPattern = '12.5% Gray' - Gray625FillPattern = '6.25% Gray' - HorizontalStripeFillPattern = 'Horizontal Stripe' - VerticalStripeFillPattern = 'Vertical Stripe' - ReverseDiagonalStripeFillPattern = 'Reverse Diagonal Stripe' - DiagonalStripeFillPattern = 'Diagonal Stripe' - DiagonalCrossHatchFillPattern = 'Diagonal Cross Hatch' - ThickCrossHatchFillPattern = 'Thick Cross Hatch' - ThinHorizontalStripeFillPattern = 'Thin Horizontal Stripe' - ThinVerticalStripeFillPattern = 'Thin Vertical Stripe' - ThinReverseDiagonalStripeFillPattern = 'Thin Reverse Diagonal Stripe' - ThinDiagonalStripeFillPattern = 'Thin Diagonal Stripe' - ThinHorizontalCrossHatchFillPattern = 'Thin Horizontal Cross Hatch' - ThinDiagonalCrossHatchFillPattern = 'Thin Diagonal Cross Hatch' - ShowRowAndColumnHeadings = '&Row and column headings' - ShowGridLines = 'GridLines' - SuppressSourceFormats = '&Suppress Source Formats' - RepeatHeaderRowAtTop = 'Repeat header row at top' - DataToPrintDoesnotExist = - 'Can not activate ReportLink because PrintingSystem did not find ' + - 'anything to print.' - JanuaryShort = 'Ene' - FebruaryShort = 'Feb' - MarchShort = 'Mar' - AprilShort = 'Abril' - MayShort = 'Mayo' - JuneShort = 'Jun' - JulyShort = 'Jul' - AugustShort = 'Ago' - SeptemberShort = 'Sept' - OctoberShort = 'Oct' - NovemberShort = 'Nov' - DecemberShort = 'Dic' - TechnicalDepartment = 'Technical Department' - SoftwareDepartment = 'Software Department' - SystemProgrammers = 'System Programmers' - EndUserProgrammers = 'EndUser Programmers' - BetaTesters = 'Beta Testers' - HumanResourceDepartment = 'Human Resource Department' - TreeLines = '&L'#237'neas'#193'rbol' - TreeLinesColor = 'Colore L'#237'neas '#193'rbol:' - ExpandButtons = 'Botones E&xpansi'#243'n' - CheckMarks = 'Cajas Verificaci'#243'n' - TreeEffects = 'Efectos '#193'rbol' - Appearance = 'Apariencia' - CarLevelCaption = 'Coches' - ManufacturerBandCaption = 'Manufacturer Data' - ModelBandCaption = 'Car Data' - ManufacturerNameColumnCaption = 'Name' - ManufacturerLogoColumnCaption = 'Logo' - ManufacturerCountryColumnCaption = 'Country' - CarModelColumnCaption = 'Model' - CarIsSUVColumnCaption = 'SUV' - CarPhotoColumnCaption = 'Photo' - CarManufacturerName1 = 'BMW' - CarManufacturerName2 = 'Ford' - CarManufacturerName3 = 'Audi' - CarManufacturerName4 = 'Land Rover' - CarManufacturerCountry1 = 'Germany' - CarManufacturerCountry2 = 'United States' - CarManufacturerCountry3 = 'Germany' - CarManufacturerCountry4 = 'United Kingdom' - CarModel1 = 'X5 4WD' - CarModel2 = 'Excursion' - CarModel3 = 'S8 Quattro' - CarModel4 = 'G4 Challenge' - True = 'True' - False = 'False' - Auto = 'Auto' - Custom = 'Personal.' - Env = 'Env' - LookAndFeelFlat = 'Plano' - LookAndFeelStandard = 'Estandar' - LookAndFeelUltraFlat = 'UltraPlano' - ViewTab = 'Vista' - BehaviorsTab = 'Comportamiento' - PreviewTab = 'Vista Previa' - CardsTab = 'Fichas' - Formatting = 'Formato' - LookAndFeel = 'Aspecto' - LevelCaption = '&T'#237'tulo' - FilterBar = 'Barra de &Filtro' - Refinements = 'Perfeccionamiento' - ProcessSelection = 'Procesar &Selecci'#243'n' - ProcessExactSelection = 'Procesar Selecci'#243'n E&xacta' - Expanding = 'Despliege' - Groups = '&Grupos' - Details = '&Detalles' - StartFromActiveDetails = 'Empieza desde Detalles Activas' - OnlyActiveDetails = 'S'#243'lo Detalles Activos' - Visible = '&Visible' - PreviewAutoHeight = 'Altura A&utom'#225'tica' - PreviewMaxLineCount = 'L'#237'neas &M'#225'ximas:' - Sizes = 'Tama'#241'os' - KeepSameWidth = 'Manten.Misma Anchura' - KeepSameHeight = 'Manten.Misma Altura' - Framing = 'Marco' - Spacing = 'Espacios' - Shadow = 'Sombra' - Depth = '&Profundidad:' - Position = '&Posici'#243'n' - Positioning = 'Posicionando' - Horizontal = 'H&orizontal:' - Vertical = 'V&ertical:' - SummaryFormat = 'Recuento = 0' - CannotUseOnEveryPageMode = 'Cannot Use OnEveryPage Mode' - IncorrectBandHeadersState = 'Cannot Use BandHeaders OnEveryPage Mode' - IncorrectHeadersState = 'Cannot Use Headers OnEveryPage Mode' - IncorrectFootersState = 'Cannot Use Footers OnEveryPage Mode' - TPicture = 'TPicture' - Copy = '&Copiar' - Save = '&Salvar...' - BaseStyle = 'Estilo Base' - Rectangle = 'Rectangle' - Square = 'Square' - Ellipse = 'Ellipse' - Circle = 'Circle' - RoundRect = 'RoundRect' - RoundSquare = 'RoundSquare' - HorizontalFillPattern = 'Horizontal' - VerticalFillPattern = 'Vertical' - FDiagonalFillPattern = 'FDiagonal' - BDiagonalFillPattern = 'BDiagonal' - CrossFillPattern = 'Cross' - DiagCrossFillPattern = 'DiagCros' - CyclicIDReferences = 'Cyclic ID references %s and %s' - LoadReportDataToFileTitle = 'Cargar Informe' - SaveReportDataToFileTitle = 'Salvar Informe Como' - InvalidExternalStorage = 'Almacenamiento Externo No V'#225'lido' - LinkIsNotIncludedInUsesClause = 'ReportFile contains ReportLink "%0:s"' - InvalidStorageVersion = 'Versi'#243'n de Almacenamiento no V'#225'lido: %d' - PSReportFiles = 'Ficheros de Informes' - ReportFileLoadError = 'No se pudo cargar el informe "%s".' - None = '(Ninguno)' - ReportDocumentIsCorrupted = '(El fichero no es un informe o esta corrupto)' - CloseExplorerHint = 'Cerrar Explorador' - ExplorerCaption = 'Explorador' - ExplorerRootFolderCaption = 'Ra'#237'z' - NewExplorerFolderItem = 'Nueva Carpeta' - CopyOfItem = 'Copia de' - ReportExplorer = 'Explorer de Informes' - DataLoadErrorText = 'No se pudo cargar los datos del informe' - DBBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' - FileBasedExplorerItemDataLoadError = 'No se pudo cargar los datos.' - DeleteNonEmptyFolderMessageText = 'La carpeta "%s" no est'#225' vacia. A'#250'n as'#237' '#191'desea eliminarlo?' - DeleteFolderMessageText = 'Borrar Carpeta "%s" ?' - DeleteItemMessageText = 'Borrar elemento "%s" ?' - CannotRenameFolderText = - 'Cannot rename folder "%s". A folder with name "%s" already exist' + - 's. Specify a different name.' - CannotRenameItemText = - 'Cannot rename item "%s". An item with name "%s" already exists. ' + - 'Specify a different name.' - OverwriteFolderMessageText = 'This folder "%s" already contains folder named "%s".' - OverwriteItemMessageText = 'This Folder "%s" already contains item named "%s".' - SelectNewRoot = 'Select new Root Directory where the Reports will be stored' - InvalidFolderName = 'Nombre de Carpeta no V'#225'lida "%s"' - InvalidReportName = 'Nombre de Informe no V'#225'lido "%s"' - ExplorerBar = 'Explorador' - MenuFileSave = '&Salvar' - MenuFileSaveAs = 'S&alvar Como...' - MenuFileLoad = '&Cargar' - MenuFileClose = '&Descargar' - HintFileSave = 'Salvar Informe' - HintFileSaveAs = 'Salvar Informe Como' - HintFileLoad = 'Cargar Informe' - HintFileClose = 'Descargar Informe' - MenuExplorer = 'E&xplorador' - MenuExplorerCreateFolder = 'Crear &Carpeta' - MenuExplorerDelete = '&Borrar...' - MenuExplorerRename = 'Reno&mbrar' - MenuExplorerProperties = '&Propiedades...' - MenuExplorerRefresh = 'Refrescar' - MenuExplorerChangeRootPath = 'Cambiar Ra'#237'z...' - MenuExplorerSetAsRoot = 'Establecer Como Ra'#237'z' - MenuExplorerGoToUpOneLevel = 'Subir Un Nivel' - HintExplorerCreateFolder = 'Crear Nueva Carpeta' - HintExplorerDelete = 'Borrar' - HintExplorerRename = 'Renombrar' - HintExplorerProperties = 'Propiedades' - HintExplorerRefresh = 'Refrescar' - HintExplorerChangeRootPath = 'Cambiar Ra'#237'z' - HintExplorerSetAsRoot = 'Establecder Carpeta Actual Como Ra'#237'z' - HintExplorerGoToUpOneLevel = 'Subir Un Nivel' - MenuViewExplorer = 'E&xplorador' - HintViewExplorer = 'Mostar Explorador' - Summary = 'Resumen' - Creator = 'Creado&r:' - CreationDate = 'Crea&do:' - MenuViewThumbnails = 'Miniat&uras' - HintViewThumbnails = 'Mostar Miniaturas' - MenuFormatTitle = 'T&'#237'tulo...' - HintFormatTitle = 'Formatear T'#237'tulo del Informe' - Half = 'Medio' - PredefinedFunctions = 'Funciones Predefinidos' - ZoomParameters = '&Par'#225'metros de Aumento' - WrapData = 'Doblar Datos' - MenuShortcutExplorer = 'Explorador' - ExplorerToolBar = 'Explorador' - MenuThumbnailsSmall = 'Miniaturas &Peque'#241'as' - MenuThumbnailsLarge = 'Miniaturas &Grandes' - MenuShortcutThumbnails = 'Miniaturas' - Buttons = 'Botones' - BtnHeadersFont = 'Fuente &Cabeceras...' - HeadersTransparent = 'Cabeceras Transparentes' - HintListViewDesignerMessage = 'Most Options Are Being Taken Into Account Only In Detailed View' - ColumnHeaders = 'Cabeceras de &Columnas' - ReportGroupNullLookAndFeel = 'Null' - ReportGroupStandardLookAndFeel = 'Standard' - ReportGroupOfficeLookAndFeel = 'Office' - ReportGroupWebLookAndFeel = 'Web' - LayoutGroupDefaultCaption = 'Layout Group' - LayoutItemDefaultCaption = 'Layout Item' - CarManufacturerName5 = 'Volkswagen' - CarManufacturerCountry5 = 'Germany' - CarModel5 = 'Golf GTI' - LuxurySedans = 'Luxury Sedans' - CarManufacturer = 'Manufacturer' - CarModel = 'Model' - CarEngine = 'Engine' - CarTransmission = 'Transmission' - CarTires = 'Tires' - Volvo760V12Manufacturer = 'BMW' - Volvo760V12Model = '760Li V12' - Volvo760V12Engine = - '6.0L DOHC V12 438 HP 48V DI Valvetronic 12-cylinder engine with ' + - '6.0-liter displacement, dual overhead cam valvetrain' - Volvo760V12Transmission = 'Elec 6-Speed Automatic w/Steptronic' - Volvo760V12Tires = - 'P245/45R19 Fr - P275/40R19 Rr Performance. Low Profile tires wit' + - 'h 245mm width, 19.0" rim' - BandHeaderStyle = 'CabeceraGrupo' - CaptionStyle = 'T'#237'tulo' - CardCaptionRowStyle = 'T'#237'tulo Fila Fichas' - CardRowCaptionStyle = 'T'#237'tulo Fila Fichas' - CategoryStyle = 'Categor'#237'a' - ContentStyle = 'Contenido' - ContentEvenStyle = 'Contenido Filas Pares' - ContentOddStyle = 'Contenido Filas Impares' - FilterBarStyle = 'Barra de Filto' - FooterStyle = 'Pie' - FooterRowStyle = 'Pie de Fila' - GroupStyle = 'Grupo' - HeaderStyle = 'Cabecera' - IndentStyle = 'Indentaci'#243'n' - PreviewStyle = 'Vista Previa' - SelectionStyle = 'Selecci'#243'n' - Styles = 'Estilos' - StyleSheets = 'Hojas de Estilos' - BtnTexture = '&Textura...' - BtnTextureClear = 'Elimin&ar' - BtnColor = 'Co&lor...' - BtnSaveAs = 'Salvar &Como...' - BtnRename = '&Renombrar...' - LoadBitmapDlgTitle = 'Cargar Imagen' - DeleteStyleSheet = 'Borrar Hoja de Estilos con Nombre "%s"?' - UnnamedStyleSheet = 'SinNombre' - CreateNewStyleQueryNamePrompt = 'Entre un Nombre de Hoja de Estilo:' - StyleSheetNameAlreadyExists = 'Hoja de Estilo "%s" Ya Existe' - CannotLoadImage = 'No se pudo cargar el imagen "%s"' - UseNativeStyles = '&Usar Estilo Nativo' - SuppressBackgroundBitmaps = '&Suprimir Texturas de Fondo' - ConsumeSelectionStyle = 'Consumir Estilos de Selecci'#243'n' - Size = 'Tama'#241'o' - Levels = 'Niveles' - Unwrap = '&Desdoblar' - UnwrapTopLevel = 'Desdoblar Nivel Superior' - RiseActiveToTop = 'Subir Nivel Activo al Princ'#237'pio' - CannotUseOnEveryPageModeInAggregatedState = 'No se puede usar modo "EnCadaP'#225'gina"' - Pagination = 'Paginaci'#243'n' - ByBands = 'Por Grupos' - ByColumns = 'Por Columnas' - ByRows = 'Por Filas' - ByTopLevelGroups = 'Por Grupos de Primer Nivel' - OneGroupPerPage = 'Un Grupo por P'#225'gina' - Borders = 'Margenes' - ExplicitlyExpandNodes = 'Expandir Expl'#237'citamente los Nodos' - Nodes = '&Nodos' - Separators = 'Separadores' - Thickness = 'Grueso' - TLIncorrectHeadersState = 'No se puede usar el modo EnCadaP'#225'gina' - Rows = '&Filas' - BestFit = 'Ajuste &'#211'ptimo' - KeepSameRecordWidths = '&Mantaner Anchuras Iguales' - WrapRecords = '&Doblar Registros' - ByWrapping = 'Doblando' - OneWrappingPerPage = 'Doblando Uno por P'#225'gina' - PaginateByControlDetails = 'Detalles de Controles' - PaginateByControls = 'Controles' - PaginateByGroups = 'Grupos' - PaginateByItems = 'Elementos' - ControlsPlace = 'Enplazamiento de Controles' - ExpandHeight = 'Expandir Altura' - ExpandWidth = 'Expandir Anchura' - ShrinkHeight = 'Contraer Altura' - ShrinkWidth = 'Contraer Anchura' - CheckAll = 'Check &All' - CheckAllChildren = 'Check All &Children' - ControlsTab = 'Controls' - ExpandAll = 'E&xpand All' - HiddenControlsTab = 'Hidden Controls' - ReportLinksTab = 'Aggregated Designers' - Transparents = 'Transparents' - UncheckAllChildren = 'Uncheck &All Children' - Root = '&Ra'#237'z' - RootBorders = 'Root &Borders' - Controls = '&Controls' - Containers = 'C&ontainers' - HideCustomContainers = '&Hide Custom Containers' - Bytes = 'Bytes' - KiloBytes = 'KB' - MegaBytes = 'MB' - GigaBytes = 'GB' - Left = 184 - Top = 16 - end - object ROMessage: TROBinMessage - Left = 329 - Top = 88 - end - object DABINAdapter: TDABINAdapter - IsCompatibleV4 = False - Left = 424 - Top = 24 - end - object JvAppRegistryStorage: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - Root = 'Software\%APPL_NAME%' - SubStorages = <> - Left = 184 - Top = 80 - end - object RORemoteService: TRORemoteService - Message = ROMessage - Channel = ROChannel - ServiceName = 'srvLogin' - Left = 424 - Top = 92 - end -end diff --git a/Varela/Varela/Source/Base/uDataModuleBase.pas b/Varela/Varela/Source/Base/uDataModuleBase.pas deleted file mode 100644 index ee02d51..0000000 --- a/Varela/Varela/Source/Base/uDataModuleBase.pas +++ /dev/null @@ -1,254 +0,0 @@ -unit uDataModuleBase; - -interface - -uses - Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, - TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage, - uROServiceComponent, uRORemoteService, uROWinInetHttpChannel, - DataAbstract3_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3, - JvAppStorage, JvAppRegistryStorage, SysUtils, - JvComponentBase, uDADataStreamer; - -type - TdmBase = class(TDataModule) - ROChannel: TROWinInetHTTPChannel; - SmallImages: TPngImageList; - StyleManager: TJvNavPaneStyleManager; - TBXSwitcher: TTBXSwitcher; - cxIntl: TcxIntl; - cxIntlPrintSys3: TcxIntlPrintSys3; - ROMessage: TROBinMessage; - DABINAdapter: TDABINAdapter; - JvAppRegistryStorage: TJvAppRegistryStorage; - RORemoteService: TRORemoteService; - procedure DAClientDataModuleCreate(Sender: TObject); - procedure ROChannelFailure(Sender: TROTransportChannel; - anException: Exception; var Retry: Boolean); - procedure ROChannelProgress(iSender: TObject; iType: TProgressType; - iDirection: TProgressDirection; iTransferred, iTotal: Integer); - private - FOnThemeChange: TNotifyEvent; - function GetAdapter: TDABINAdapter; - function GetChannel: TROWinInetHTTPChannel; - function GetCodigoEmpresa: Integer; - function GetMessage: TROBinMessage; - procedure InitStyleManager; - procedure OnTBXThemeChange(Sender: TObject); - procedure LeerConfiguracion; - procedure SalvarConfiguracion; - public - function DarVersion : String; - procedure ConfigurarConexion; - function HayConexion(const ATargetURL : String = ''): Boolean; - property Adapter: TDABINAdapter read GetAdapter; - property Channel: TROWinInetHTTPChannel read GetChannel; - property CodigoEmpresa: Integer read GetCodigoEmpresa; - property Message: TROBinMessage read GetMessage; - property OnThemeChange: TNotifyEvent read FOnThemeChange write - FOnThemeChange; - end; - -var - dmBase: TdmBase; - -implementation - -{$R *.DFM} - -uses - Dialogs, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows, - JclFileUtils, VARELA_Intf, cxControls; - -const - SERVER_URL = 'http://localhost:8099/bin'; - IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)'; - -{ -*********************************** TdmBase ************************************ -} -procedure TdmBase.ConfigurarConexion; -begin - with TfConfigurarConexion.Create(NIL) do - try - TargetURL := ROChannel.TargetURL; - if ShowModal = mrOk then - begin - ROChannel.TargetURL := TargetURL; - ROChannel.Connected := False; - ROChannel.Connected := True; - SalvarConfiguracion; - end; - finally - Free; - end; -end; - -procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); -begin - TBXSwitcher.OnThemeChange := OnTBXThemeChange; - TBXSetTheme('Office2003'); - - LeerConfiguracion; -end; - -function TdmBase.GetAdapter: TDABINAdapter; -begin - Result := DABinAdapter; -end; - -function TdmBase.GetChannel: TROWinInetHTTPChannel; -begin - Result := ROChannel; -end; - -function TdmBase.GetCodigoEmpresa: Integer; -begin - Result := 1; -end; - -function TdmBase.GetMessage: TROBinMessage; -begin - Result := ROMessage; -end; - -procedure TdmBase.InitStyleManager; -begin - if not USE_THEMES then - begin - TBXSwitcher.EnableXPStyles := False; - StyleManager.Theme := nptStandard; - end - else begin - TBXSwitcher.EnableXPStyles := True; - with StyleManager do - begin - if CurrentTheme is TTBXOffice2003Theme then - begin - case GetOffice2003Scheme of - osBlue : Theme := nptXPBlue; - osMetallic : Theme := nptXPSilver; - osGreen : Theme := nptXPOlive; - else - Theme := nptStandard; - end; - end; - end; - end; -end; - - -procedure TdmBase.LeerConfiguracion; -begin - ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL); -end; - -procedure TdmBase.OnTBXThemeChange(Sender: TObject); -begin - InitStyleManager; - - if Assigned(FOnThemeChange) then - FOnThemeChange(Sender); -end; - -procedure TdmBase.SalvarConfiguracion; -begin - JvAppRegistryStorage.BeginUpdate; - try - JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL); - finally - JvAppRegistryStorage.EndUpdate; - end; -end; - -procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel; - anException: Exception; var Retry: Boolean); -begin - if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then - begin - // Preguntar al usuario si se quiere conectar - if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then - Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación - else - Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo - end - else - Retry := True; -// raise Exception.Create(anException.Message); -end; - -procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType; - iDirection: TProgressDirection; iTransferred, iTotal: Integer); -begin -{ if iType = ptInProgress then - begin - if not Form1.Visible then - Form1.Show; - end - else - Form1.Hide;} -end; - -function TdmBase.DarVersion: String; -var - Obj : TJclFileVersionInfo; -begin - Obj := TJclFileVersionInfo.Create(Application.ExeName); - try - Result := 'v' + Obj.FileVersion; - finally - FreeAndNil(Obj); - end; -end; - -function TdmBase.HayConexion(const ATargetURL: String): Boolean; -var - AHTTPChannel: TROWinInetHTTPChannel; - AROBinMessage: TROBinMessage; - ACoService: TRORemoteService; -begin - AHTTPChannel := TROWinInetHTTPChannel.Create(Self); - AROBinMessage := TROBinMessage.Create(Self); - ACoService := TRORemoteService.Create(Self); - - ShowHourglassCursor; - try - with AHTTPChannel do - begin - Name := 'HTTPChannel'; - UserAgent := 'AdminPV'; - if Length(ATargetURL) > 0 then - TargetURL := ATargetURL - else - TargetURL := ROChannel.TargetURL; - end; - - with ACoService do - begin - ServiceName := 'srvLogin'; - Message := AROBinMessage; - Channel := AHTTPChannel; - end; - - try - (ACoService as IsrvLogin).Ping; - Result := True; - except - Result := False; - end; - finally - AHTTPChannel.Connected := False; - FreeAndNil(AHTTPChannel); - FreeAndNil(ACoService); - FreeAndNil(AROBinMessage); - HideHourglassCursor; - end; -end; - -initialization - dmBase := TdmBase.Create(NIL); - -finalization - dmBase.Free; - -end. diff --git a/Varela/Varela/Source/Base/uDataTableUtils.pas b/Varela/Varela/Source/Base/uDataTableUtils.pas deleted file mode 100644 index 9bbb7b1..0000000 --- a/Varela/Varela/Source/Base/uDataTableUtils.pas +++ /dev/null @@ -1,324 +0,0 @@ -unit uDataTableUtils; - -interface - -uses - uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta; - -procedure CloneDataTable(const ASource : TDACDSDataTable; - var ATarget : TDACDSDataTable; - RemoteUpdate: Boolean = True); - -procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; - const OnlySelectedRows : Boolean = False); -procedure DeleteAllTable(const ADataTable : TDADataTable); -function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; - -implementation - -uses - uDAClasses, SysUtils, uDABINAdapter, uROTypes, uDBSelectionList, cxControls, - Dialogs, Variants, uDADataStreamer; - - -{procedure EliminarNoSeleccionados(const ASource : IDADataset; - var ATarget : TDADataTable); -var - AObj : ISelectedRowList; - i : Integer; -begin - if not Supports(ASource, ISelectedRowList, aObj) then - Exit; - -// ATarget.DisableControls; -// ATarget.DisableEventHandlers; - ShowHourglassCursor; - try - ATarget.Open; - ATarget.Last; - while ATarget.RecordCount > AObj.SelectedRows.Count do - begin - if AObj.SelectedRows.IndexOf(ATarget.RecIDValue) < 0 then - ATarget.Delete - else - ATarget.Prior; - end; - finally -// ATarget.EnableControls; -// ATarget.EnableControls; - HideHourglassCursor; - end; -end;} - - -procedure DeleteAllTable(const ADataTable : TDADataTable); -begin - ADataTable.ClearRows; -end; - - -function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; -var - i, x : integer; - OldNewAreDifferent: boolean; -begin - OldNewAreDifferent := FALSE; - for i := 0 to (aDelta.Count-1) do - begin - for x := 0 to (aDelta.LoggedFieldCount-1) do - begin - OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); - - if OldNewAreDifferent then - Break; // Abandon iteration at the first difference between old and new. - end; - - if OldNewAreDifferent then - Break; // Abandon iteration at the first difference between old and new. - end; - result := OldNewAreDifferent; -end; - - -procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; - const OnlySelectedRows : Boolean = False); -var - DABin: Binary; - DAAdapter : TDABINAdapter; - AFilter : String; - AFiltered : Boolean; - AObj : ISelectedRowList; - i : Integer; -begin - DABin := Binary.Create; - DAAdapter := TDABINAdapter.Create(nil); - AFilter := ''; - - if OnlySelectedRows then - begin - if not Supports(ASource, ISelectedRowList, aObj) then - raise Exception.Create('El origen de datos no soporta la interfaz ISelectedRowList (CopyDataTable)'); - - if ASource.Dataset.Filtered then - begin - AFiltered := True; - AFilter := ASource.Dataset.Filter; - ASource.Dataset.Filtered := False; - end; - - ASource.Dataset.Filter := ''; - for i := 0 to AObj.SelectedRows.Count - 1 do - begin - if (i > 0) then - ASource.Dataset.Filter := ASource.Dataset.Filter + ' or '; - ASource.Dataset.Filter := ASource.Dataset.Filter + '(RecID = ' + IntToStr(AObj.SelectedRows.Items[i]) + ')'; - end; - - ASource.Dataset.Filtered := True; - end; - - try - ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName - - if not ASource.Active then - ASource.Open; - ASource.Dataset.First; - - DAAdapter.WriteDataset(DABin, ASource, [woRows, woSchema], -1); - DAAdapter.Initialize(DABin, aiReadFromBeginning); - DAAdapter.ReadDataset(ATarget.LogicalName, ATarget, True, True); - DAAdapter.Finalize; - - if OnlySelectedRows then - begin - ASource.Dataset.Filtered := False; - ASource.Dataset.Filter := AFilter; - if AFiltered then - ASource.Dataset.Filtered := True; - end; - - finally - FreeAndNil(DABin); - FreeAndNil(DAAdapter); - end; -end; - - -procedure CloneDataTable(const ASource : TDACDSDataTable; - var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); -var - i : Integer; -begin - with ATarget do - begin - RemoteDataAdapter := ASource.RemoteDataAdapter; - - BusinessRulesID := ASource.BusinessRulesID; - Randomize; - Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); - LogicalName := ASource.LogicalName; - - Params.AssignParamCollection(ASource.Params); - - if Assigned(ASource.LocalSchema) then - LocalSchema := ASource.LocalSchema - else - ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; - - with MasterParamsMappings do - for i := 0 to ASource.MasterParamsMappings.Count - 1 do - Add(ASource.MasterParamsMappings.Strings[i]); - - with MasterRequestMappings do - for i := 0 to ASource.MasterRequestMappings.Count - 1 do - Add(ASource.MasterRequestMappings.Strings[i]); - - MasterMappingMode := ASource.MasterMappingMode; - - MasterFields := ASource.MasterFields; - MasterOptions := ASource.MasterOptions; - - DetailFields := ASource.DetailFields; - DetailOptions := ASource.DetailOptions; - - RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; - StreamingOptions := ASource.StreamingOptions; - RemoteFetchEnabled := ASource.RemoteFetchEnabled; - end; - - if not RemoteUpdate then - begin - ATarget.LogChanges := False; - ATarget.RemoteFetchEnabled := False; - end; -end; - - -end. - -procedure CloneDataTable(const ASource : TDACDSDataTable; - var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); -var - i : Integer; -begin - with ATarget do - begin - // ****** Inicio migración DA 5 - - //RemoteService := ASource.GetRemoteService; - //Adapter := ASource.GetAdapter; - RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); - // ****** Fin migración DA 5 - - BusinessRulesID := ASource.BusinessRulesID; - Randomize; - Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); - LogicalName := ASource.LogicalName; - - Params.AssignParamCollection(ASource.Params); - - if Assigned(ASource.LocalSchema) then - LocalSchema := ASource.LocalSchema - else begin - // ****** Inicio migración DA 5 - { - with SchemaCall do - begin - MethodName := ASource.SchemaCall.MethodName; - for i := 0 to ASource.SchemaCall.Params.Count - 1 do - begin - with Params.Add do begin - Name := ASource.SchemaCall.Params[i].Name; - ParamType := ASource.SchemaCall.Params[i].ParamType; - DataType := ASource.SchemaCall.Params[i].DataType; - Value := ASource.SchemaCall.Params[i].Value; - UserClassName := ASource.SchemaCall.Params[i].UserClassName; - end; - end; - end; - } - // ****** Fin migración DA 5 - ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; - end; - - // ****** Inicio migración DA 5 - { - with DataUpdateCall do - begin - MethodName := ASource.DataUpdateCall.MethodName; - for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do - begin - with Params.Add do begin - Name := ASource.DataUpdateCall.Params[i].Name; - ParamType := ASource.DataUpdateCall.Params[i].ParamType; - DataType := ASource.DataUpdateCall.Params[i].DataType; - Value := ASource.DataUpdateCall.Params[i].Value; - UserClassName := ASource.DataUpdateCall.Params[i].UserClassName; - end; - end; - end; - - with ScriptCall do - begin - MethodName := ASource.ScriptCall.MethodName; - for i := 0 to ASource.ScriptCall.Params.Count - 1 do - begin - with Params.Add do begin - Name := ASource.ScriptCall.Params[i].Name; - ParamType := ASource.ScriptCall.Params[i].ParamType; - DataType := ASource.ScriptCall.Params[i].DataType; - Value := ASource.ScriptCall.Params[i].Value; - UserClassName := ASource.ScriptCall.Params[i].UserClassName; - end; - end; - end; - - with DataRequestCall do - begin - MethodName := ASource.DataRequestCall.MethodName; - for i := 0 to ASource.DataRequestCall.Params.Count - 1 do - begin - with Params.Add do begin - begin - Name := ASource.DataRequestCall.Params[i].Name; - ParamType := ASource.DataRequestCall.Params[i].ParamType; - DataType := ASource.DataRequestCall.Params[i].DataType; - Value := ASource.DataRequestCall.Params[i].Value; - UserClassName := ASource.DataRequestCall.Params[i].UserClassName; - end; - end; - end; - end; - } - // ****** Fin migración DA 5 - - with MasterParamsMappings do - for i := 0 to ASource.MasterParamsMappings.Count - 1 do - Add(ASource.MasterParamsMappings.Strings[i]); - - with MasterRequestMappings do - for i := 0 to ASource.MasterRequestMappings.Count - 1 do - Add(ASource.MasterRequestMappings.Strings[i]); - - MasterMappingMode := ASource.MasterMappingMode; - - MasterFields := ASource.MasterFields; - MasterOptions := ASource.MasterOptions; - - DetailFields := ASource.DetailFields; - DetailOptions := ASource.DetailOptions; - - RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; - StreamingOptions := ASource.StreamingOptions; - RemoteFetchEnabled := ASource.RemoteFetchEnabled; - end; - - if not RemoteUpdate then - begin - ATarget.LogChanges := False; - ATarget.RemoteFetchEnabled := False; - end; -end; - - - diff --git a/Varela/Varela/Source/Base/uEditorBase.dfm b/Varela/Varela/Source/Base/uEditorBase.dfm deleted file mode 100644 index 9848171..0000000 --- a/Varela/Varela/Source/Base/uEditorBase.dfm +++ /dev/null @@ -1,1622 +0,0 @@ -object fEditorBase: TfEditorBase - Left = 222 - Top = 127 - Width = 662 - Height = 496 - Caption = 'EditorBase' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - KeyPreview = True - OldCreateOrder = False - Position = poDefault - OnCloseQuery = FormCloseQuery - OnShow = FormShow - InstanceID = 0 - ReadOnly = False - PixelsPerInch = 96 - TextHeight = 13 - object JvNavPanelHeader: TJvNavPanelHeader - Left = 0 - Top = 49 - Width = 654 - Align = alTop - Caption = 'Editor' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindow - Font.Height = -16 - Font.Name = 'Arial' - Font.Style = [fsBold] - ParentFont = False - ColorFrom = 8684164 - ColorTo = 8684164 - ImageIndex = 0 - StyleManager = dmBase.StyleManager - ParentStyleManager = False - object Image1: TImage - Left = 627 - Top = 0 - Width = 27 - Height = 27 - Align = alRight - Center = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F - 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601 - 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF - 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301 - BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A - 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741 - EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD - 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D - 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C - D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361 - F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38 - 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3 - 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6 - C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1 - BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805 - 00F0E629EF34B079A30000000049454E44AE426082} - Transparent = True - end - end - object TBXDock: TTBXDock - Left = 0 - Top = 0 - Width = 654 - Height = 49 - AllowDrag = False - object tbxMain: TTBXToolbar - Left = 0 - Top = 23 - Caption = 'tbxMain' - ChevronHint = 'M'#225's botones|' - DockMode = dmCannotFloatOrChangeDocks - DockPos = -23 - DockRow = 1 - DragHandleStyle = dhNone - Images = SmallImages - ParentShowHint = False - ShowHint = True - TabOrder = 0 - object TBXItem2: TTBXItem - Action = actNuevo - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem1: TTBXSeparatorItem - end - object TBXItem29: TTBXItem - Action = actGuardarCerrar - DisplayMode = nbdmImageAndText - end - object TBXItem27: TTBXItem - Action = actGuardar - end - object TBXItem5: TTBXItem - Action = actModificar - DisplayMode = nbdmImageAndText - end - object TBXItem4: TTBXItem - Action = actEliminar - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem3: TTBXSeparatorItem - end - object TBXItem23: TTBXItem - Action = actPrevisualizar - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem2: TTBXSeparatorItem - Visible = False - end - object TBXItem24: TTBXItem - Action = actConfPagina - Visible = False - end - object TBXItem3: TTBXItem - Action = actImprimir - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem10: TTBXSeparatorItem - end - object TBXItem26: TTBXItem - Action = actAnterior - end - object TBXItem25: TTBXItem - Action = actSiguiente - end - object TBXItem6: TTBXItem - Action = actRefrescar - end - object TBXSeparatorItem11: TTBXSeparatorItem - end - object TBXItem28: TTBXItem - Action = actCerrar - end - end - object tbxMenu: TTBXToolbar - Left = 0 - Top = 0 - Caption = 'Menu' - CloseButton = False - DragHandleStyle = dhNone - FullSize = True - Images = SmallImages - MenuBar = True - ProcessShortCuts = True - ShrinkMode = tbsmWrap - TabOrder = 1 - object TBXSubmenuItem4: TTBXSubmenuItem - Caption = '&Archivo' - object TBXItem8: TTBXItem - Action = actNuevo - end - object TBXSeparatorItem5: TTBXSeparatorItem - end - object TBXItem30: TTBXItem - Action = actGuardar - end - object TBXItem10: TTBXItem - Action = actModificar - end - object TBXSeparatorItem12: TTBXSeparatorItem - end - object TBXItem11: TTBXItem - Action = actEliminar - end - object TBXSeparatorItem6: TTBXSeparatorItem - end - object TBXItem21: TTBXItem - Action = actConfPagina - end - object TBXItem22: TTBXItem - Action = actPrevisualizar - end - object TBXItem9: TTBXItem - Action = actImprimir - end - object TBXSeparatorItem4: TTBXSeparatorItem - end - object TBXItem1: TTBXItem - Action = actCerrar - end - end - object TBXSubmenuItem5: TTBXSubmenuItem - Caption = '&Edici'#243'n' - object TBXItem16: TTBXItem - Action = actDeshacer - end - object TBXSeparatorItem8: TTBXSeparatorItem - end - object TBXItem15: TTBXItem - Action = actCortar - end - object TBXItem14: TTBXItem - Action = actCopiar - end - object TBXItem13: TTBXItem - Action = actPegar - end - object TBXSeparatorItem7: TTBXSeparatorItem - end - object TBXItem12: TTBXItem - Action = actLimpiar - end - object TBXSeparatorItem9: TTBXSeparatorItem - end - object TBXItem17: TTBXItem - Action = actSeleccionarTodo - end - end - object TBXSubmenuItem1: TTBXSubmenuItem - Caption = '&Buscar' - object TBXItem32: TTBXItem - Action = actAnterior - end - object TBXItem31: TTBXItem - Action = actSiguiente - end - object TBXSeparatorItem13: TTBXSeparatorItem - end - object TBXItem20: TTBXItem - Action = actBuscar - end - end - object TBXSubmenuItem6: TTBXSubmenuItem - Caption = '&Ver' - object TBXItem18: TTBXItem - Action = actRefrescar - end - end - object TBXSubmenuItem7: TTBXSubmenuItem - Caption = 'Ay&uda' - object TBXItem19: TTBXItem - Action = actAcercaDe - end - end - end - end - object StatusBar: TStatusBar - Left = 0 - Top = 443 - Width = 654 - Height = 19 - Panels = < - item - Width = 50 - end> - Visible = False - end - object EditorActionList: TActionList - Images = SmallImages - Left = 16 - Top = 144 - object actNuevo: TAction - Category = 'Archivo' - Caption = 'Nuevo' - ShortCut = 45 - end - object actModificar: TAction - Category = 'Archivo' - Caption = 'Modificar' - ImageIndex = 18 - end - object actGuardarCerrar: TAction - Category = 'Archivo' - Caption = 'G&uardar y cerrar' - ImageIndex = 17 - OnExecute = actGuardarCerrarExecute - end - object actGuardar: TAction - Category = 'Archivo' - Caption = '&Guardar' - ImageIndex = 17 - end - object actEliminar: TAction - Category = 'Archivo' - Caption = 'Eliminar' - ImageIndex = 4 - ShortCut = 16430 - end - object actConfPagina: TAction - Category = 'Archivo' - Caption = '&Configurar p'#225'gina' - ImageIndex = 8 - end - object actPrevisualizar: TAction - Category = 'Archivo' - Caption = '&Previsualizar' - ImageIndex = 6 - end - object actImprimir: TAction - Category = 'Archivo' - Caption = 'Imprimir' - ImageIndex = 7 - ShortCut = 16464 - end - object actDeshacer: TEditUndo - Category = 'Edici'#243'n' - Caption = 'Deshacer' - Hint = 'Undo|Reverts the last action' - ImageIndex = 12 - ShortCut = 16474 - end - object actCortar: TEditCut - Category = 'Edici'#243'n' - Caption = 'Cortar' - Hint = 'Cortar|Corta la selecci'#243'n y la coloca en el portapapeles' - ImageIndex = 3 - ShortCut = 16472 - end - object actCerrar: TAction - Category = 'Archivo' - Caption = 'Cerrar' - OnExecute = actCerrarExecute - end - object actCopiar: TEditCopy - Category = 'Edici'#243'n' - Caption = 'Copiar' - Hint = 'Copiar|Copia la selecci'#243'n y la coloca en el portapapeles' - ImageIndex = 2 - ShortCut = 16451 - end - object actPegar: TEditPaste - Category = 'Edici'#243'n' - Caption = 'Pegar' - Hint = 'Pegar|Inserta el contenido del portapapeles' - ImageIndex = 5 - ShortCut = 16470 - end - object actSeleccionarTodo: TEditSelectAll - Category = 'Edici'#243'n' - Caption = 'Seleccionar todo' - Hint = 'Seleccionar todo' - ImageIndex = 11 - ShortCut = 16449 - end - object actLimpiar: TEditDelete - Category = 'Edici'#243'n' - Caption = '&Limpiar' - Hint = 'Limpiar|Borra el texto seleccionado' - ImageIndex = 1 - ShortCut = 46 - end - object actRefrescar: TAction - Category = 'Ver' - Caption = 'Refrescar' - ImageIndex = 9 - ShortCut = 116 - end - object actAcercaDe: TAction - Category = 'Ayuda' - Caption = 'Acerca de...' - ImageIndex = 0 - end - object actBuscar: TAction - Category = 'Buscar' - Caption = 'Buscar' - ImageIndex = 10 - ShortCut = 114 - end - object actAnterior: TAction - Category = 'Ver' - Caption = 'Anterior' - ImageIndex = 15 - end - object actSiguiente: TAction - Category = 'Ver' - Caption = 'Siguiente' - ImageIndex = 16 - end - object actCancelarCambios: TAction - Category = 'Archivo' - Caption = 'Cancelar cambios' - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 395 - Top = 80 - Bitmap = {} - end - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 427 - Top = 80 - Bitmap = {} - end - object JvFormStorage: TJvFormStorage - AppStorage = JvAppRegistryStorage - AppStoragePath = 'fEditorBase\' - VersionCheck = fpvcNocheck - StoredValues = <> - Left = 392 - Top = 120 - end - object JvAppRegistryStorage: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - Root = 'Software\%APPL_NAME%' - SubStorages = <> - Left = 424 - Top = 120 - end -end diff --git a/Varela/Varela/Source/Base/uEditorBase.pas b/Varela/Varela/Source/Base/uEditorBase.pas deleted file mode 100644 index ef16e4f..0000000 --- a/Varela/Varela/Source/Base/uEditorBase.pas +++ /dev/null @@ -1,218 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls, - JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList, - PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase, - JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, - JvComponentBase, TB2Dock, TB2Toolbar; - -type - IEditorBase = interface(ICustomEditor) - ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] - function ShowModal : Integer; - end; - - TfEditorBase = class(TCustomEditor, IEditorBase) - actAcercaDe: TAction; - actAnterior: TAction; - actBuscar: TAction; - actCancelarCambios: TAction; - actCerrar: TAction; - actConfPagina: TAction; - actCopiar: TEditCopy; - actCortar: TEditCut; - actDeshacer: TEditUndo; - actEliminar: TAction; - actGuardar: TAction; - actGuardarCerrar: TAction; - actImprimir: TAction; - actLimpiar: TEditDelete; - actModificar: TAction; - actNuevo: TAction; - actPegar: TEditPaste; - actPrevisualizar: TAction; - actRefrescar: TAction; - actSeleccionarTodo: TEditSelectAll; - actSiguiente: TAction; - EditorActionList: TActionList; - JvNavPanelHeader: TJvNavPanelHeader; - LargeImages: TPngImageList; - SmallImages: TPngImageList; - TBXDock: TTBXDock; - TBXItem1: TTBXItem; - TBXItem10: TTBXItem; - TBXItem11: TTBXItem; - TBXItem12: TTBXItem; - TBXItem13: TTBXItem; - TBXItem14: TTBXItem; - TBXItem15: TTBXItem; - TBXItem16: TTBXItem; - TBXItem17: TTBXItem; - TBXItem18: TTBXItem; - TBXItem19: TTBXItem; - TBXItem2: TTBXItem; - TBXItem20: TTBXItem; - TBXItem21: TTBXItem; - TBXItem22: TTBXItem; - TBXItem23: TTBXItem; - TBXItem24: TTBXItem; - TBXItem25: TTBXItem; - TBXItem26: TTBXItem; - TBXItem27: TTBXItem; - TBXItem28: TTBXItem; - TBXItem29: TTBXItem; - TBXItem3: TTBXItem; - TBXItem30: TTBXItem; - TBXItem31: TTBXItem; - TBXItem32: TTBXItem; - TBXItem4: TTBXItem; - TBXItem5: TTBXItem; - TBXItem6: TTBXItem; - TBXItem8: TTBXItem; - TBXItem9: TTBXItem; - tbxMain: TTBXToolbar; - tbxMenu: TTBXToolbar; - TBXSeparatorItem1: TTBXSeparatorItem; - TBXSeparatorItem10: TTBXSeparatorItem; - TBXSeparatorItem11: TTBXSeparatorItem; - TBXSeparatorItem12: TTBXSeparatorItem; - TBXSeparatorItem13: TTBXSeparatorItem; - TBXSeparatorItem2: TTBXSeparatorItem; - TBXSeparatorItem3: TTBXSeparatorItem; - TBXSeparatorItem4: TTBXSeparatorItem; - TBXSeparatorItem5: TTBXSeparatorItem; - TBXSeparatorItem6: TTBXSeparatorItem; - TBXSeparatorItem7: TTBXSeparatorItem; - TBXSeparatorItem8: TTBXSeparatorItem; - TBXSeparatorItem9: TTBXSeparatorItem; - TBXSubmenuItem1: TTBXSubmenuItem; - TBXSubmenuItem4: TTBXSubmenuItem; - TBXSubmenuItem5: TTBXSubmenuItem; - TBXSubmenuItem6: TTBXSubmenuItem; - TBXSubmenuItem7: TTBXSubmenuItem; - StatusBar: TStatusBar; - JvFormStorage: TJvFormStorage; - JvAppRegistryStorage: TJvAppRegistryStorage; - Image1: TImage; - procedure actCerrarExecute(Sender: TObject); - procedure actGuardarCerrarExecute(Sender: TObject); - procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); - protected - function ModifiedQuery : Boolean; - procedure CreateParams(var Params: TCreateParams); override; - public - constructor Create(AOwner: TComponent); override; - published - procedure FormShow(Sender: TObject); virtual; - end; - - TfEditorBaseClass = class of TfEditorBase; - -implementation - -{$R *.dfm} - -uses - Menus, uDataModuleBase, cxControls; - -{ -********************************* TfEditorBase ********************************* -} -procedure TfEditorBase.actCerrarExecute(Sender: TObject); -begin - Close; -end; - -procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject); -begin - ShowHourglassCursor; - Application.ProcessMessages; - try - if actGuardar.Execute then - actCerrar.Execute; - finally - HideHourglassCursor; - end; -end; - -constructor TfEditorBase.Create(AOwner: TComponent); -var - APath : String; -begin - inherited; - with JvFormStorage do - begin - if Pos('_', Self.Name) = 0 then - APath := Self.Name - else - APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); - AppStoragePath := APath; - end; - JvNavPanelHeader.StyleManager := dmBase.StyleManager; -end; - -procedure TfEditorBase.CreateParams(var Params: TCreateParams); -begin - inherited; -end; - -procedure TfEditorBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean); -begin - if Valid then - CanClose := ModifiedQuery - else - CanClose := False; -end; - -procedure TfEditorBase.FormShow(Sender: TObject); -begin -{ if Assigned(Parent) then - begin - StatusBar.Visible := False; - actCerrar.ShortCut := 0 - end - else begin - StatusBar.Visible := True; - actCerrar.ShortCut := ShortCut(VK_ESCAPE, []); - end;} -end; - -function TfEditorBase.ModifiedQuery: Boolean; -var - Respuesta: Integer; -begin - Result := True; - if Modified then - begin - Respuesta := Application.MessageBox('Se han producido cambios.' + #10#13 + - '¿Desea guardarlos antes de salir?', 'Atención', MB_YESNOCANCEL); - case Respuesta of - IDYES : actGuardar.Execute; - IDNO : actCancelarCambios.Execute; - else - Result := False; - end; - end -{ else - actCancelarCambios.Execute;} -end; - -initialization - RegisterClass(TfEditorBase); - -finalization - UnRegisterClass(TfEditorBase); - -end. diff --git a/Varela/Varela/Source/Base/uEditorDBBase.ddp b/Varela/Varela/Source/Base/uEditorDBBase.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Base/uEditorDBBase.dfm b/Varela/Varela/Source/Base/uEditorDBBase.dfm deleted file mode 100644 index 317e217..0000000 --- a/Varela/Varela/Source/Base/uEditorDBBase.dfm +++ /dev/null @@ -1,70 +0,0 @@ -inherited fEditorDBBase: TfEditorDBBase - Left = 295 - Top = 247 - Caption = 'fEditorDBBase' - ClientHeight = 460 - ClientWidth = 652 - ExplicitWidth = 660 - ExplicitHeight = 494 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 652 - ExplicitWidth = 652 - inherited Image1: TImage - Left = 625 - Picture.Data = {00} - ExplicitLeft = 625 - end - end - inherited TBXDock: TTBXDock - Width = 652 - ExplicitWidth = 652 - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 652 - end - end - inherited StatusBar: TStatusBar - Top = 441 - Width = 652 - ExplicitTop = 441 - ExplicitWidth = 652 - end - inherited EditorActionList: TActionList - inherited actModificar: TAction - OnUpdate = actModificarUpdate - end - inherited actGuardar: TAction - OnExecute = actGuardarExecute - end - inherited actEliminar: TAction - OnExecute = actEliminarExecute - OnUpdate = actEliminarUpdate - end - inherited actPrevisualizar: TAction - OnUpdate = actPrevisualizarUpdate - end - inherited actImprimir: TAction - OnUpdate = actImprimirUpdate - end - inherited actRefrescar: TAction - OnExecute = actRefrescarExecute - OnUpdate = actRefrescarUpdate - end - inherited actAnterior: TAction - OnExecute = actAnteriorExecute - OnUpdate = actAnteriorUpdate - end - inherited actSiguiente: TAction - OnExecute = actSiguienteExecute - OnUpdate = actSiguienteUpdate - end - inherited actCancelarCambios: TAction - OnExecute = actCancelarCambiosExecute - end - end - object dsDataTable: TDADataSource - Left = 40 - Top = 88 - end -end diff --git a/Varela/Varela/Source/Base/uEditorDBBase.pas b/Varela/Varela/Source/Base/uEditorDBBase.pas deleted file mode 100644 index 667d42c..0000000 --- a/Varela/Varela/Source/Base/uEditorDBBase.pas +++ /dev/null @@ -1,305 +0,0 @@ -unit uEditorDBBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, - TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, - JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize, - uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, - JvAppStorage, JvAppRegistryStorage, JvFormPlacement, - pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, uDAInterfaces; - -type - IEditorDBBase = interface(IEditorBase) - ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] - end; - - TfEditorDBBase = class(TfEditorBase, IEditorDBBase) - dsDataTable: TDADataSource; - procedure actRefrescarExecute(Sender: TObject); - procedure actAnteriorExecute(Sender: TObject); - procedure actSiguienteExecute(Sender: TObject); - procedure actAnteriorUpdate(Sender: TObject); - procedure actSiguienteUpdate(Sender: TObject); - procedure actRefrescarUpdate(Sender: TObject); - procedure actCancelarCambiosExecute(Sender: TObject); - procedure actGuardarExecute(Sender: TObject); - procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual; - procedure actEliminarExecute(Sender: TObject); - procedure actEliminarUpdate(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actPrevisualizarUpdate(Sender: TObject); - procedure actImprimirUpdate(Sender: TObject); - private - { Private declarations } - protected - function GetModified: Boolean; override; - published - end; - -var - fEditorDBBase: TfEditorDBBase; - -implementation - -uses - uExceptions, uDataTableUtils, uBizInformesBase, - cxControls, uDADelta; - -{$R *.dfm} - -procedure TfEditorDBBase.actRefrescarExecute(Sender: TObject); -var - ABookmark : TBookmark; -begin - inherited; - if Assigned(dsDataTable.DataTable) then - begin - if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then - Exit; // No continuar con el refresco - - ABookmark := dsDataTable.DataTable.GetBookMark; -// dsDataTable.DataTable.DisableControls; <- No descomentar - - ShowHourglassCursor; - try - dsDataTable.DataTable.Refresh; - - if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then - dsDataTable.DataTable.GotoBookmark(ABookmark); - finally - dsDataTable.DataTable.FreeBookmark(ABookmark); -// dsDataTable.DataTable.EnableControls; <- No descomentar - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - begin - if (not ModifiedQuery) then - Exit; - - dsDataTable.DataTable.Prior; - end; -end; - -procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - begin - if (not ModifiedQuery) then - Exit; - - dsDataTable.DataTable.Next; - end; -end; - -procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := not dsDataTable.DataTable.BOF - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := not dsDataTable.DataTable.EOF - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := not dsDataTable.DataTable.Fetching - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actCancelarCambiosExecute(Sender: TObject); -var - dtDetails : TList; - i : integer; - ABookmark : TBookmark; -begin - inherited; - - if Assigned(dsDataTable.DataTable) then - begin - ABookmark := dsDataTable.DataTable.GetBookMark; - dsDataTable.DataTable.DisableControls; -// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar - - ShowHourglassCursor; - { No lo pongo en try..finally para ver posibles errores } - //try - dsDataTable.DataTable.Cancel; - - dtDetails := dsDataTable.DataTable.GetDetailDataTables; - for i := 0 to dtDetails.Count - 1 do - begin - (TDADataTable(dtDetails.Items[i])).Cancel; - end; - - dsDataTable.DataTable.CancelUpdates; - - { Comprobar si el bookmark no es válido cuando estamos cancelando la - inserción de una fila nueva. - CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!} - try - if (Assigned(ABookmark)) and - (dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then - dsDataTable.DataTable.GotoBookmark(ABookmark); - except - end; - - //finally - dsDataTable.DataTable.EnableControls; - dsDataTable.DataTable.FreeBookmark(ABookmark); -// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar - HideHourglassCursor - //end; - end; -end; - -procedure TfEditorDBBase.actGuardarExecute(Sender: TObject); -var - dtDetails : TList; - i : integer; -begin - inherited; - if Assigned(dsDataTable.DataTable) then - begin - if dsDataTable.DataTable.Editing then - dsDataTable.DataTable.Post; - - dtDetails := dsDataTable.DataTable.GetDetailDataTables; - for i := 0 to dtDetails.Count - 1 do - if (TDADataTable(dtDetails.Items[i])).Editing then - (TDADataTable(dtDetails.Items[i])).Post; - - dsDataTable.DataTable.ApplyUpdates; - Modified := False; - end; -end; - -function TfEditorDBBase.GetModified: Boolean; -var - dtDetails : TList; - i : integer; - bCambiado : Boolean; -begin - bCambiado := False; - if Assigned(dsDataTable.DataTable) then - begin - bCambiado := (dsDataTable.DataTable.State = dsEdit) or - DeltaValuesAreDifferent(dsDataTable.DataTable.Delta); - - if (not bCambiado) then - begin - dtDetails := dsDataTable.DataTable.GetDetailDataTables; - for i := 0 to dtDetails.Count - 1 do - begin - bCambiado := bCambiado or - ((TDADataTable(dtDetails.Items[i])).State = dsEdit) or - DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta); - if bCambiado then - Break; - end; - end; - end; - - if (not bCambiado) then - bCambiado := inherited GetModified; - - Result := bCambiado; -end; - -procedure TfEditorDBBase.FormCloseQuery(Sender: TObject; - var CanClose: Boolean); -begin - { Para resetear el estado de la tabla en el caso de hacer un insert - sin meter ningún dato. } - if Assigned(dsDataTable.DataTable) and (not Modified) then - dsDataTable.DataTable.Cancel; - inherited; -end; - -procedure TfEditorDBBase.actEliminarExecute(Sender: TObject); -var - aObj : IApplyUpdateFailedException; -begin - inherited; - ShowHourglassCursor; - try - if dsDataTable.DataTable.State in dsEditModes then - dsDataTable.DataTable.Cancel; - dsDataTable.DataTable.Delete; - try - dsDataTable.DataTable.ApplyUpdates; - Modified := False; - except - on E: EDAApplyUpdateFailed do - begin - dsDataTable.DataTable.CancelUpdates; - actRefrescar.Execute; - if Supports(dsDataTable.DataTable, IApplyUpdateFailedException, aObj) then - aObj.ShowApplyUpdateFailed(E); - end - else - raise; // Generic exception - end; - finally - HideHourglassCursor; - end; -end; - -procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - else - (Sender as TAction).Enabled := False; -end; - -end. diff --git a/Varela/Varela/Source/Base/uEditorDBItem.ddp b/Varela/Varela/Source/Base/uEditorDBItem.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Base/uEditorDBItem.dfm b/Varela/Varela/Source/Base/uEditorDBItem.dfm deleted file mode 100644 index fe0bcb2..0000000 --- a/Varela/Varela/Source/Base/uEditorDBItem.dfm +++ /dev/null @@ -1,60 +0,0 @@ -inherited fEditorDBItem: TfEditorDBItem - Left = 450 - Top = 321 - Caption = 'fEditorDBItem' - ClientHeight = 465 - ClientWidth = 656 - ExplicitWidth = 664 - ExplicitHeight = 499 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 656 - ExplicitWidth = 656 - inherited Image1: TImage - Left = 629 - ExplicitLeft = 629 - end - end - inherited TBXDock: TTBXDock - Width = 656 - ExplicitWidth = 656 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 548 - inherited TBXItem26: TTBXItem - Visible = False - end - inherited TBXItem25: TTBXItem - Visible = False - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 656 - inherited TBXSubmenuItem1: TTBXSubmenuItem - Visible = False - end - end - end - inherited StatusBar: TStatusBar - Top = 446 - Width = 656 - ExplicitTop = 446 - ExplicitWidth = 656 - end - inherited EditorActionList: TActionList - Top = 112 - inherited actEliminar: TAction - ShortCut = 0 - end - inherited actPrevisualizar: TAction - OnExecute = actPrevisualizarExecute - end - inherited actImprimir: TAction - OnExecute = actImprimirExecute - end - end - inherited dsDataTable: TDADataSource - Left = 48 - Top = 112 - end -end diff --git a/Varela/Varela/Source/Base/uEditorDBItem.pas b/Varela/Varela/Source/Base/uEditorDBItem.pas deleted file mode 100644 index d902c74..0000000 --- a/Varela/Varela/Source/Base/uEditorDBItem.pas +++ /dev/null @@ -1,89 +0,0 @@ -unit uEditorDBItem; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, - TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, - JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, - StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, - uViewBase, JvAppStorage, JvAppRegistryStorage, - JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, uDAInterfaces; - -type - IEditorDBItem = interface(IEditorDBBase) - ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] - end; - - TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) - procedure actEliminarExecute(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - -var - fEditorDBItem: TfEditorDBItem; - -implementation - -uses - uBizInformesBase; - -{$R *.dfm} - -procedure TfEditorDBItem.actEliminarExecute(Sender: TObject); -begin - inherited; - actCerrar.Execute; -end; - -procedure TfEditorDBItem.actPrevisualizarExecute(Sender: TObject); -var - Respuesta: Integer; - aInf : IBizInformesAware; -begin - inherited; -{ if Modified then - begin - if (Application.MessageBox('Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + - '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then - actGuardar.Execute - else begin - Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); - Exit; - end; - end;} - - if Assigned(dsDataTable.DataTable) and - Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then - aInf.Preview; -end; - -procedure TfEditorDBItem.actImprimirExecute(Sender: TObject); -var - Respuesta: Integer; - aInf : IBizInformesAware; -begin - inherited; -{ if Modified then - begin - if (Application.MessageBox('Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 + - '¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then - actGuardar.Execute - else begin - Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK); - Exit; - end; - end;} - - if Assigned(dsDataTable.DataTable) and - Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then - aInf.Print; -end; - -end. diff --git a/Varela/Varela/Source/Base/uEditorGridBase.dfm b/Varela/Varela/Source/Base/uEditorGridBase.dfm deleted file mode 100644 index 2329822..0000000 --- a/Varela/Varela/Source/Base/uEditorGridBase.dfm +++ /dev/null @@ -1,1433 +0,0 @@ -inherited fEditorGridBase: TfEditorGridBase - Left = 441 - Top = 354 - Caption = 'fEditorGridBase' - ClientHeight = 446 - ClientWidth = 703 - ExplicitWidth = 711 - ExplicitHeight = 480 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Top = 0 - Width = 703 - ExplicitTop = 0 - ExplicitWidth = 703 - inherited Image1: TImage - Left = 676 - ExplicitLeft = 676 - end - end - inherited TBXDock: TTBXDock - Top = 27 - Width = 703 - ExplicitTop = 27 - ExplicitWidth = 703 - inherited tbxMain: TTBXToolbar - DefaultDock = TBXDock - ExplicitWidth = 442 - inherited TBXItem29: TTBXItem - Visible = False - end - inherited TBXItem27: TTBXItem - Visible = False - end - object TBXSeparatorItem14: TTBXSeparatorItem [6] - end - object TBXItem33: TTBXItem [7] - Action = actDuplicar - DisplayMode = nbdmImageAndText - end - inherited TBXItem26: TTBXItem - Visible = False - end - inherited TBXItem25: TTBXItem - Visible = False - end - inherited TBXItem28: TTBXItem - Visible = False - end - end - inherited tbxMenu: TTBXToolbar - Visible = False - ExplicitWidth = 703 - inherited TBXSubmenuItem4: TTBXSubmenuItem - object TBXItem34: TTBXItem [7] - Action = actDuplicar - end - object TBXSeparatorItem15: TTBXSeparatorItem [8] - end - end - end - object tbxFiltro: TTBXToolbar - Left = 442 - Top = 23 - Align = alRight - CloseButton = False - DefaultDock = TBXDock - DockMode = dmCannotFloatOrChangeDocks - DockPos = 392 - DockRow = 1 - DragHandleStyle = dhNone - Images = SmallImages - ParentShowHint = False - Resizable = False - ShowHint = True - ShrinkMode = tbsmNone - TabOrder = 2 - object TBXLabelItem1: TTBXLabelItem - Caption = 'Filtrar:' - end - object tbxEditFiltro: TTBXEditItem - EditWidth = 150 - ImageIndex = 10 - EditorFontSettings.Italic = tsTrue - ExtendedAccept = True - Images = SmallImages - ShowImage = True - OnChange = tbxEditFiltroChange - end - object TBXItem7: TTBXItem - Action = actQuitarFiltro - Images = SmallImages - end - end - end - inherited StatusBar: TStatusBar - Top = 427 - Width = 703 - ExplicitTop = 427 - ExplicitWidth = 703 - end - inherited EditorActionList: TActionList - Left = 72 - Top = 120 - inherited actGuardarCerrar: TAction - Enabled = False - end - inherited actGuardar: TAction - Enabled = False - end - inherited actConfPagina: TAction - OnExecute = actConfPaginaExecute - end - inherited actPrevisualizar: TAction - OnExecute = actPrevisualizarExecute - end - inherited actImprimir: TAction - OnExecute = actImprimirExecute - end - inherited actCerrar: TAction - Enabled = False - end - inherited actAnterior: TAction - Enabled = False - end - inherited actSiguiente: TAction - Enabled = False - end - inherited actCancelarCambios: TAction - Enabled = False - end - object actQuitarFiltro: TAction - Category = 'Buscar' - Caption = 'Quitar filtro y ver todo' - ImageIndex = 19 - OnExecute = actQuitarFiltroExecute - end - object actDuplicar: TAction - Category = 'Archivo' - Caption = 'Duplicar' - ImageIndex = 20 - OnUpdate = actDuplicarUpdate - end - end - inherited SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage - OnSavePlacement = JvFormStorageSavePlacement - OnRestorePlacement = JvFormStorageRestorePlacement - end - object GridPopupMenu: TPopupMenu - Images = SmallImages - Left = 72 - Top = 88 - object Modificar1: TMenuItem - Action = actModificar - end - object Duplicar1: TMenuItem - Action = actDuplicar - end - object Eliminar1: TMenuItem - Action = actEliminar - end - object N1: TMenuItem - Caption = '-' - end - object Nuevo1: TMenuItem - Action = actNuevo - end - object N2: TMenuItem - Caption = '-' - end - object Previsualizar1: TMenuItem - Action = actPrevisualizar - end - object Imprimir1: TMenuItem - Action = actImprimir - end - end -end diff --git a/Varela/Varela/Source/Base/uEditorGridBase.pas b/Varela/Varela/Source/Base/uEditorGridBase.pas deleted file mode 100644 index 673bc61..0000000 --- a/Varela/Varela/Source/Base/uEditorGridBase.pas +++ /dev/null @@ -1,194 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorGridBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, - JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item, - ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase, - uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize, - uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage, - JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, - JvComponentBase, uDAInterfaces; - -type - IEditorGridBase = interface(IEditorDBBase) - ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] - end; - - TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase) - tbxEditFiltro: TTBXEditItem; - tbxFiltro: TTBXToolbar; - TBXItem7: TTBXItem; - GridPopupMenu: TPopupMenu; - Modificar1: TMenuItem; - Eliminar1: TMenuItem; - N1: TMenuItem; - Nuevo1: TMenuItem; - TBXLabelItem1: TTBXLabelItem; - actQuitarFiltro: TAction; - N2: TMenuItem; - Previsualizar1: TMenuItem; - Imprimir1: TMenuItem; - TBXSeparatorItem14: TTBXSeparatorItem; - TBXItem33: TTBXItem; - actDuplicar: TAction; - TBXSeparatorItem15: TTBXSeparatorItem; - TBXItem34: TTBXItem; - Duplicar1: TMenuItem; - procedure tbxEditFiltroChange(Sender: TObject; const Text: String); - procedure FormShow(Sender: TObject); override; - procedure actPrevisualizarExecute(Sender: TObject); - procedure actConfPaginaExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actQuitarFiltroExecute(Sender: TObject); - procedure actDuplicarUpdate(Sender: TObject); - procedure JvFormStorageSavePlacement(Sender: TObject); - procedure JvFormStorageRestorePlacement(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - private - FViewGrid : IViewGridBase; - protected - procedure SetViewGrid(const Value : IViewGridBase); virtual; - function GetViewGrid: IViewGridBase; - public - property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; - constructor Create(AOwner : TComponent); override; - - destructor Destroy; override; - end; - -implementation - -uses - uDataModuleBase, uCustomEditor, cxGridTableView; - -{$R *.dfm} - -{ -********************************* TfEditorGridBase ***************************** -} -destructor TfEditorGridBase.Destroy; -begin - FViewGrid := NIL; - inherited; -end; - -function TfEditorGridBase.GetViewGrid: IViewGridBase; -begin - Result := FViewGrid; -end; - -procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); -begin - FViewGrid := Value; - if Assigned(FViewGrid) then - begin - FViewGrid.PopupMenu := GridPopupMenu; - FViewGrid.OnDblClick := actModificar.OnExecute; - end; -end; - -procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String); -begin - if Assigned(ViewGrid) then - ViewGrid.Filter := Text; -end; - -procedure TfEditorGridBase.FormShow(Sender: TObject); -begin - inherited; - ViewGrid.ShowEmbedded(Self); -end; - -procedure TfEditorGridBase.actPrevisualizarExecute(Sender: TObject); -begin - inherited; - ViewGrid.Preview; -end; - -procedure TfEditorGridBase.actConfPaginaExecute(Sender: TObject); -begin - inherited; - ViewGrid.PrintSetup; -end; - -procedure TfEditorGridBase.actImprimirExecute(Sender: TObject); -begin - inherited; - ViewGrid.Print; -end; - -procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject); -begin - if Assigned(ViewGrid) then - begin - tbxEditFiltro.Text := ''; - ViewGrid.Filter := ''; - end; -end; - -constructor TfEditorGridBase.Create(AOwner: TComponent); -begin - inherited; - actModificar.ShortCut := ShortCut(VK_RETURN, []); -end; - -procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject); -begin - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and not (dsDataTable.DataTable.State = dsInsert) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject); -begin - inherited; - if Assigned(ViewGrid) then - ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root); -end; - -procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject); -begin - inherited; - if Assigned(ViewGrid) then - begin - ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root); - end; -end; - -procedure TfEditorGridBase.actRefrescarExecute(Sender: TObject); -var - FocusedRow, TopRow : Integer; -begin - TopRow := ViewGrid._FocusedView.Controller.TopRowIndex; - FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex; - ViewGrid._FocusedView.BeginUpdate; - try - inherited; - finally - ViewGrid._FocusedView.EndUpdate; - ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow; - ViewGrid._FocusedView.Controller.TopRowIndex := TopRow; - end; -end; - -initialization - RegisterClass(TfEditorGridBase); - -finalization - UnRegisterClass(TfEditorGridBase); - -end. - diff --git a/Varela/Varela/Source/Base/uEditorItem.dfm b/Varela/Varela/Source/Base/uEditorItem.dfm deleted file mode 100644 index 106f387..0000000 --- a/Varela/Varela/Source/Base/uEditorItem.dfm +++ /dev/null @@ -1,53 +0,0 @@ -inherited fEditorItem: TfEditorItem - Left = 423 - Top = 273 - Width = 686 - Height = 535 - Caption = 'fEditorItem' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 678 - Visible = False - inherited Image1: TImage - Left = 651 - end - end - object pgPaginas: TPageControl [1] - Left = 0 - Top = 76 - Width = 678 - Height = 406 - ActivePage = pagGeneral - Align = alClient - TabOrder = 1 - object pagGeneral: TTabSheet - Caption = 'General' - end - end - inherited TBXDock: TTBXDock - Width = 678 - inherited tbxMain: TTBXToolbar - inherited TBXItem5: TTBXItem - Visible = False - end - end - inherited tbxMenu: TTBXToolbar - inherited TBXSubmenuItem4: TTBXSubmenuItem - inherited TBXItem10: TTBXItem - Visible = False - end - end - end - end - inherited StatusBar: TStatusBar - Top = 482 - Width = 678 - end - inherited EditorActionList: TActionList - Top = 104 - inherited actEliminar: TAction - ShortCut = 0 - end - end -end diff --git a/Varela/Varela/Source/Base/uEditorItem.pas b/Varela/Varela/Source/Base/uEditorItem.pas deleted file mode 100644 index 50461c5..0000000 --- a/Varela/Varela/Source/Base/uEditorItem.pas +++ /dev/null @@ -1,41 +0,0 @@ - -unit uEditorItem; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorBase, ActnList, JvExControls, JvComponent, - JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item, - ImgList, PngImageList, JvFormAutoSize, JvAppStorage, - JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, - JvComponentBase; - -type - IEditorItem = interface(IEditorBase) - ['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}'] - end; - - TfEditorItem = class(TfEditorBase, IEditorItem) - pagGeneral: TTabSheet; - pgPaginas: TPageControl; - end; - -var - fEditorItem: TfEditorItem; - -implementation - -uses uDataModuleBase; - -{$R *.dfm} - -initialization - RegisterClass(TfEditorItem); - -finalization - - UnRegisterClass(TfEditorItem); - - -end. diff --git a/Varela/Varela/Source/Base/uEditorPSPreview.dfm b/Varela/Varela/Source/Base/uEditorPSPreview.dfm deleted file mode 100644 index a3f98e6..0000000 --- a/Varela/Varela/Source/Base/uEditorPSPreview.dfm +++ /dev/null @@ -1,15 +0,0 @@ -object Form1: TForm1 - Left = 580 - Top = 506 - Width = 320 - Height = 240 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = True - PixelsPerInch = 96 - TextHeight = 13 -end diff --git a/Varela/Varela/Source/Base/uEditorPSPreview.pas b/Varela/Varela/Source/Base/uEditorPSPreview.pas deleted file mode 100644 index 683b402..0000000 --- a/Varela/Varela/Source/Base/uEditorPSPreview.pas +++ /dev/null @@ -1,24 +0,0 @@ -unit uEditorPSPreview; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, dxPSPrVw; - -type - TForm1 = class(TCustomdxPSPreviewWindow) - private - { Private declarations } - public - { Public declarations } - end; - -var - Form1: TForm1; - -implementation - -{$R *.dfm} - -end. diff --git a/Varela/Varela/Source/Base/uEditorPreview.dfm b/Varela/Varela/Source/Base/uEditorPreview.dfm deleted file mode 100644 index af16215..0000000 --- a/Varela/Varela/Source/Base/uEditorPreview.dfm +++ /dev/null @@ -1,937 +0,0 @@ -inherited fEditorPreview: TfEditorPreview - Left = 521 - Top = 340 - Caption = 'Previsualizar' - WindowState = wsMaximized - OnDestroy = FormDestroy - OnResize = FormResize - ExplicitWidth = 320 - ExplicitHeight = 240 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Top = 75 - Visible = False - ExplicitTop = 75 - end - inherited TBXDock: TTBXDock - Height = 75 - ExplicitHeight = 75 - inherited tbxMain: TTBXToolbar - Top = 49 - DefaultDock = TBXDock - Visible = False - ExplicitTop = 49 - ExplicitWidth = 191 - end - inherited tbxMenu: TTBXToolbar - DockPos = -24 - inherited TBXSubmenuItem5: TTBXSubmenuItem - Visible = False - end - inherited TBXSubmenuItem1: TTBXSubmenuItem - Visible = False - end - object TBXSubmenuItem2: TTBXSubmenuItem [3] - Caption = '&Ir' - object TBXItem47: TTBXItem - Action = actPrimeraPagina - Images = PreviewSmallImageList - end - object TBXItem43: TTBXItem - Action = actPaginaAnterior - Images = PreviewSmallImageList - end - object TBXItem44: TTBXItem - Action = actPaginaSiguiente - Images = PreviewSmallImageList - end - object TBXItem45: TTBXItem - Action = actUltimaPagina - Images = PreviewSmallImageList - end - end - inherited TBXSubmenuItem6: TTBXSubmenuItem - Caption = '&Zoom' - inherited TBXItem18: TTBXItem - Action = actZoomIn - Images = PreviewSmallImageList - end - object TBXItem38: TTBXItem - Action = actZoomOut - Images = PreviewSmallImageList - end - object TBXSeparatorItem19: TTBXSeparatorItem - end - object TBXItem48: TTBXItem - Action = actAnchoPagina - Images = PreviewSmallImageList - end - object TBXItem46: TTBXItem - Action = actTodaPagina - Images = PreviewSmallImageList - end - end - object TBXSubmenuItem3: TTBXSubmenuItem [5] - Caption = '&Herramientas' - object TBXItem49: TTBXItem - Action = actToolHand - Checked = True - GroupIndex = 1 - Images = PreviewSmallImageList - end - object TBXItem50: TTBXItem - Action = actToolZoom - GroupIndex = 1 - Images = PreviewSmallImageList - end - end - end - object TBXToolbar1: TTBXToolbar - Left = 0 - Top = 23 - Caption = 'TBXToolbar1' - DefaultDock = TBXDock - DragHandleStyle = dhNone - ParentShowHint = False - ShowHint = True - TabOrder = 2 - object TBXItem39: TTBXItem - Action = actImprimir - DisplayMode = nbdmImageAndText - Images = SmallImages - end - object TBXSeparatorItem18: TTBXSeparatorItem - end - object tbxMano: TTBXItem - Action = actToolHand - Checked = True - DisplayMode = nbdmImageAndText - GroupIndex = 1 - Images = PreviewSmallImageList - end - object TBXSeparatorItem14: TTBXSeparatorItem - end - object tbxZoom: TTBXItem - Action = actToolZoom - DisplayMode = nbdmImageAndText - GroupIndex = 1 - Images = PreviewSmallImageList - end - object TBXItem42: TTBXItem - Action = actTodaPagina - Images = PreviewSmallImageList - end - object TBXItem41: TTBXItem - Action = actAnchoPagina - Images = PreviewSmallImageList - end - object TBXItem40: TTBXItem - Action = actZoomOut - Images = PreviewSmallImageList - end - object cbZoom: TTBXComboBoxItem - Caption = 'Zoom' - ReadOnly = True - OnItemClick = cbZoomItemClick - end - object TBXItem37: TTBXItem - Action = actZoomIn - Images = PreviewSmallImageList - end - object TBXSeparatorItem17: TTBXSeparatorItem - end - object TBXSeparatorItem16: TTBXSeparatorItem - end - object TBXItem35: TTBXItem - Action = actPrimeraPagina - Images = PreviewSmallImageList - end - object TBXItem34: TTBXItem - Action = actPaginaAnterior - Images = PreviewSmallImageList - end - object TBXItem33: TTBXItem - Action = actPaginaSiguiente - Images = PreviewSmallImageList - end - object TBXItem36: TTBXItem - Action = actUltimaPagina - Images = PreviewSmallImageList - end - object TBXSeparatorItem15: TTBXSeparatorItem - end - object TBXItem7: TTBXItem - Action = actCerrar - Images = SmallImages - end - end - end - inherited StatusBar: TStatusBar - Panels = < - item - Width = 150 - end - item - Width = 50 - end> - Visible = True - end - inherited EditorActionList: TActionList - Top = 104 - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Enabled = False - Visible = False - end - inherited actGuardarCerrar: TAction - Enabled = False - Visible = False - end - inherited actGuardar: TAction - Enabled = False - Visible = False - end - inherited actEliminar: TAction - Enabled = False - Visible = False - end - inherited actConfPagina: TAction - Enabled = False - Visible = False - end - inherited actPrevisualizar: TAction - Enabled = False - Visible = False - end - inherited actImprimir: TAction - OnExecute = actImprimirExecute - end - inherited actDeshacer: TEditUndo - Enabled = False - Visible = False - end - inherited actCortar: TEditCut - Enabled = False - Visible = False - end - inherited actCopiar: TEditCopy - Enabled = False - Visible = False - end - inherited actPegar: TEditPaste - Enabled = False - Visible = False - end - inherited actSeleccionarTodo: TEditSelectAll - Enabled = False - Visible = False - end - inherited actLimpiar: TEditDelete - Enabled = False - Visible = False - end - inherited actBuscar: TAction - Enabled = False - Visible = False - end - inherited actCancelarCambios: TAction - Enabled = False - Visible = False - end - end - inherited SmallImages: TPngImageList - Left = 43 - Top = 104 - end - inherited LargeImages: TPngImageList - Left = 75 - Top = 104 - end - inherited JvFormStorage: TJvFormStorage - Left = 376 - Top = 136 - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage - Left = 408 - Top = 136 - end - object PreviewActionList: TActionList - Images = PreviewSmallImageList - Left = 344 - Top = 104 - object actPrimeraPagina: TAction - Category = 'Ver' - Caption = 'Primera p'#225'gina' - ImageIndex = 0 - OnExecute = actPrimeraPaginaExecute - end - object actUltimaPagina: TAction - Category = 'Ver' - Caption = #218'ltima p'#225'gina' - ImageIndex = 3 - OnExecute = actUltimaPaginaExecute - end - object actPaginaAnterior: TAction - Category = 'Ver' - Caption = 'P'#225'gina anterior' - ImageIndex = 1 - OnExecute = actPaginaAnteriorExecute - end - object actPaginaSiguiente: TAction - Category = 'Ver' - Caption = 'P'#225'gina siguiente' - ImageIndex = 2 - OnExecute = actPaginaSiguienteExecute - end - object actZoomIn: TAction - Category = 'Ver' - Caption = 'M'#225's zoom' - ImageIndex = 8 - OnExecute = actZoomInExecute - end - object actZoomOut: TAction - Category = 'Ver' - Caption = 'Menos zoom' - ImageIndex = 9 - OnExecute = actZoomOutExecute - end - object actTodaPagina: TAction - Category = 'Ver' - Caption = 'Toda la p'#225'gina' - GroupIndex = 1 - ImageIndex = 4 - OnExecute = actTodaPaginaExecute - end - object actAnchoPagina: TAction - Category = 'Ver' - Caption = 'Ancho de p'#225'gina' - GroupIndex = 1 - ImageIndex = 5 - OnExecute = actAnchoPaginaExecute - end - object actToolHand: TAction - Category = 'Herramientas' - AutoCheck = True - Caption = 'Mano' - GroupIndex = 1 - ImageIndex = 10 - OnExecute = actToolHandExecute - end - object actToolZoom: TAction - Category = 'Herramientas' - AutoCheck = True - Caption = 'Zoom' - GroupIndex = 1 - ImageIndex = 6 - OnExecute = actToolZoomExecute - end - end - object PreviewSmallImageList: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000F14944415478DA - C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0 - 1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770 - CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405 - C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC - D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01 - 3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D - 657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617 - 93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000A34944415478DA - 63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38 - C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6 - 071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5 - 8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100 - CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A - E13771044B0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000A44944415478DA - 63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC - 240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F - E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A - 7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207 - B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22 - A8E18A4EF6A30000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000EC4944415478DA - C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850 - 2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49 - 127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085 - 84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124 - F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440 - 42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2 - EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42 - E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000017E4944415478DA - 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 - 9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E - AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092 - 144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0 - 062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363 - B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C - 7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07 - 080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0 - AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC - 6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB - E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C - 0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7 - 0000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001714944415478DA - 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 - 9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19 - 64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF - A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76 - 631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58 - 0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006 - 0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60 - B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1 - BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE - FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6 - 11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277 - 35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000E14944415478DA - 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37 - 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4 - 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF - 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C - 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187 - 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF - 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0 - 0AF3B40000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000714944415478DA - 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7 - 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF - 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974 - DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C74944415478DA - A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456 - 5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8 - E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D - 5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456 - B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155 - 0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C - A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F - 232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184 - F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA - CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D - A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E - 3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C - 0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266 - C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A - 04D7A238F0C903C3480000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 371 - Top = 104 - Bitmap = {} - end - object PreviewLargeImageList: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001894944415478DA - 63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB - 1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683 - D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF - 3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E - B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693 - 8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348 - B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0 - 1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B - BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3 - 5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE - FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92 - 77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580 - 200000A0D9B0E00198A13A0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000FA4944415478DA - 63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F - 5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752 - D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33 - 6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5 - 3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B - 1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F - 6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4 - D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000 - 49454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000012E4944415478DA - 63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF - F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F - 10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D - 688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1 - F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1 - C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC - 4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B - 1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74 - FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5 - 0135C0A80504010058FB49E08BBA20470000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001C24944415478DA - 63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB - 7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C - E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960 - 5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1 - DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07 - E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778 - AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD - FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832 - 93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459 - 60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E - 06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0 - EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F - 48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370 - 8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0 - E6ADB53E0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002344944415478DA - 63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372 - C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105 - 7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173 - 397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7 - 0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932 - 2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06 - 5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6 - C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418 - 761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE - 868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4 - 43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124 - 8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2 - 30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544 - 7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12 - A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633 - 18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314 - 1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A - DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42 - 6082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003154944415478DA - B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2 - 0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8 - 544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39 - CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62 - 4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA - 0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96 - 425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428 - 914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51 - 5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401 - 8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73 - 80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748 - BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580 - 5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499 - 20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E - 02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058 - D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6 - D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A - 530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE - 646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6 - 1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8 - 04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068 - E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B - A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890 - 30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA - 8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE - 426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001324944415478DA - 63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D - C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E - 15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E - 1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384 - 8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172 - 28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0 - 6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8 - A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB - 0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7 - 002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000007C4944415478DA - 63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20 - 751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21 - F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A - B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000 - 000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002E84944415478DA - A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022 - 4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B - C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3 - CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0 - 373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707 - 057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071 - 2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658 - B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC - 4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07 - DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB - 516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A - D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092 - AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B - 1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF - BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8 - F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2 - 328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686 - 84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187 - E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E - 5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC - 59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240 - 09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492 - 085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05 - FC0592430CFE3F77C7A70000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 403 - Top = 104 - Bitmap = {} - end - object frxReport1: TfrxReport - Version = '3.23.7' - DotMatrixReport = False - EngineOptions.DoublePass = True - IniFile = '\Software\Fast Reports' - PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] - PreviewOptions.Zoom = 1.000000000000000000 - PrintOptions.Printer = 'Default' - ReportOptions.CreateDate = 38658.858023541660000000 - ReportOptions.LastChange = 38658.858023541660000000 - ScriptLanguage = 'PascalScript' - ScriptText.Strings = ( - 'begin' - '' - 'end.') - StoreInDFM = False - Left = 16 - Top = 200 - Datasets = <> - Variables = <> - Style = <> - end - object frxBarCodeObject1: TfrxBarCodeObject - Left = 16 - Top = 240 - end - object frxOLEObject1: TfrxOLEObject - Left = 48 - Top = 240 - end - object frxRichObject1: TfrxRichObject - Left = 48 - Top = 272 - end - object frxCrossObject1: TfrxCrossObject - Left = 80 - Top = 240 - end - object frxCheckBoxObject1: TfrxCheckBoxObject - Left = 80 - Top = 272 - end - object frxGradientObject1: TfrxGradientObject - Left = 16 - Top = 304 - end - object frxDotMatrixExport1: TfrxDotMatrixExport - UseFileCache = True - ShowProgress = True - EscModel = 0 - GraphicFrames = False - SaveToFile = False - UseIniSettings = True - Left = 48 - Top = 304 - end - object frxDialogControls1: TfrxDialogControls - Left = 80 - Top = 304 - end - object frxTIFFExport1: TfrxTIFFExport - ShowDialog = False - UseFileCache = True - ShowProgress = True - Monochrome = True - Left = 144 - Top = 240 - end - object frxPDFExport1: TfrxPDFExport - ShowDialog = False - UseFileCache = True - ShowProgress = True - PrintOptimized = False - Outline = False - Author = 'FastReport'#174 - Subject = 'FastReport'#174' PDF export' - Background = False - Creator = 'FastReport'#174' (http://www.fast-report.com)' - HTMLTags = False - Left = 144 - Top = 280 - end - object frxBMPExport1: TfrxBMPExport - ShowDialog = False - UseFileCache = True - ShowProgress = True - Monochrome = True - Left = 144 - Top = 320 - end -end diff --git a/Varela/Varela/Source/Base/uEditorPreview.pas b/Varela/Varela/Source/Base/uEditorPreview.pas deleted file mode 100644 index 0197134..0000000 --- a/Varela/Varela/Source/Base/uEditorPreview.pas +++ /dev/null @@ -1,311 +0,0 @@ -unit uEditorPreview; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX, - TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, - TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview, - JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, - pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, - frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, - ExtCtrls, JvComponentBase; - -type - IEditorPreview = interface(IEditorBase) - ['{7E79BEFC-C817-43D9-A60F-9573D1777068}'] - function GetReport: TfrxReport; - property Report: TfrxReport read GetReport; - procedure LoadFromStream(AStream : TStream); - function ExportToFile : String; - end; - - TfEditorPreview = class(TfEditorBase, IEditorPreview) - TBXToolbar1: TTBXToolbar; - TBXItem7: TTBXItem; - TBXItem33: TTBXItem; - TBXItem34: TTBXItem; - TBXItem39: TTBXItem; - TBXSeparatorItem14: TTBXSeparatorItem; - TBXSeparatorItem15: TTBXSeparatorItem; - TBXSeparatorItem16: TTBXSeparatorItem; - cbZoom: TTBXComboBoxItem; - PreviewActionList: TActionList; - PreviewSmallImageList: TPngImageList; - PreviewLargeImageList: TPngImageList; - actPrimeraPagina: TAction; - actUltimaPagina: TAction; - actPaginaAnterior: TAction; - actPaginaSiguiente: TAction; - TBXItem35: TTBXItem; - TBXItem36: TTBXItem; - actZoomIn: TAction; - actZoomOut: TAction; - actTodaPagina: TAction; - actAnchoPagina: TAction; - TBXSeparatorItem17: TTBXSeparatorItem; - TBXItem37: TTBXItem; - TBXItem40: TTBXItem; - TBXItem41: TTBXItem; - TBXItem42: TTBXItem; - frxReport1: TfrxReport; - actToolHand: TAction; - actToolZoom: TAction; - tbxZoom: TTBXItem; - tbxMano: TTBXItem; - TBXSeparatorItem18: TTBXSeparatorItem; - frxBarCodeObject1: TfrxBarCodeObject; - frxOLEObject1: TfrxOLEObject; - frxRichObject1: TfrxRichObject; - frxCrossObject1: TfrxCrossObject; - frxCheckBoxObject1: TfrxCheckBoxObject; - frxGradientObject1: TfrxGradientObject; - frxDotMatrixExport1: TfrxDotMatrixExport; - frxDialogControls1: TfrxDialogControls; - frxTIFFExport1: TfrxTIFFExport; - frxPDFExport1: TfrxPDFExport; - frxBMPExport1: TfrxBMPExport; - TBXItem38: TTBXItem; - TBXSeparatorItem19: TTBXSeparatorItem; - TBXItem43: TTBXItem; - TBXItem44: TTBXItem; - TBXItem45: TTBXItem; - TBXItem46: TTBXItem; - TBXItem47: TTBXItem; - TBXSubmenuItem2: TTBXSubmenuItem; - TBXItem48: TTBXItem; - TBXSubmenuItem3: TTBXSubmenuItem; - TBXItem49: TTBXItem; - TBXItem50: TTBXItem; - procedure FormShow(Sender: TObject); - procedure actPrimeraPaginaExecute(Sender: TObject); - procedure actUltimaPaginaExecute(Sender: TObject); - procedure actPaginaAnteriorExecute(Sender: TObject); - procedure actPaginaSiguienteExecute(Sender: TObject); - procedure actZoomInExecute(Sender: TObject); - procedure actTodaPaginaExecute(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure FormResize(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actAnchoPaginaExecute(Sender: TObject); - procedure actZoomOutExecute(Sender: TObject); - procedure cbZoomItemClick(Sender: TObject); - procedure actToolHandExecute(Sender: TObject); - procedure actToolZoomExecute(Sender: TObject); - private - FPreview : TfrViewPreview; - function GetReport: TfrxReport; - procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); - procedure UpdateZoom; - public - constructor Create(AOwner: TComponent); override; - property Report: TfrxReport read GetReport; - procedure Print; - procedure LoadFromStream(AStream : TStream); - function ExportToFile : String; - end; - -var - fEditorPreview: TfEditorPreview; - -implementation - -uses - frxRes, frxUtils, frxPrinter, uCustomEditor, uSysFunc, frxFormUtils; - -{$R *.dfm} - -{ TfEditorBase1 } - -function TfEditorPreview.GetReport: TfrxReport; -begin - Result := frxReport1; -end; - - -procedure TfEditorPreview.FormShow(Sender: TObject); -begin - inherited; - UpdateZoom; - actPrimeraPagina.Execute; - FPreview.ShowEmbedded(Self); - Report.ShowPreparedReport; - actAnchoPagina.Execute; -end; - -procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.First; -end; - -procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.Last; -end; - -procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.Prior; -end; - -procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.Next; -end; - -procedure TfEditorPreview.actZoomInExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25; - UpdateZoom; -end; - -procedure TfEditorPreview.UpdateZoom; -begin - cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%'; -end; - -procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.ZoomMode := zmWholePage; - UpdateZoom; -end; - -procedure TfEditorPreview.FormDestroy(Sender: TObject); -begin - inherited; - FPreview.Free; -end; - -procedure TfEditorPreview.FormResize(Sender: TObject); -begin - inherited; - UpdateZoom; -end; - -procedure TfEditorPreview.actImprimirExecute(Sender: TObject); -begin - inherited; - if not frxPrinters.HasPhysicalPrinters then - frxErrorMsg(frxResources.Get('clNoPrinters')) - else - FPreview.Preview.Print; - Enabled := True; -end; - -procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.ZoomMode := zmPageWidth; - UpdateZoom; -end; - -procedure TfEditorPreview.actZoomOutExecute(Sender: TObject); -begin - inherited; - FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25; - UpdateZoom; -end; - -procedure TfEditorPreview.cbZoomItemClick(Sender: TObject); -var - s: String; -begin - FPreview.Preview.SetFocus; - - if cbZoom.ItemIndex = 6 then - actAnchoPagina.Execute - else if cbZoom.ItemIndex = 7 then - actTodaPagina.Execute - else - begin - s := cbZoom.Text; - - if Pos('%', s) <> 0 then - s[Pos('%', s)] := ' '; - while Pos(' ', s) <> 0 do - Delete(s, Pos(' ', s), 1); - - if s <> '' then - FPreview.Preview.Zoom := frxStrToFloat(s) / 100; - end; - - UpdateZoom; -end; - -procedure TfEditorPreview.actToolHandExecute(Sender: TObject); -begin - if tbxMano.Checked then - FPreview.Preview.Tool := ptHand -end; - -procedure TfEditorPreview.actToolZoomExecute(Sender: TObject); -begin - if tbxZoom.Checked then - FPreview.Preview.Tool := ptZoom; -end; - -procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview; - PageNo: Integer); -begin - StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'), - [PageNo, Sender.PageCount]); -end; - -constructor TfEditorPreview.Create(AOwner: TComponent); -begin - inherited; - - with cbZoom.Strings do - begin - Clear; - Add('25%'); - Add('50%'); - Add('75%'); - Add('100%'); - Add('150%'); - Add('200%'); - Add(frxResources.Get('zmPageWidth')); - Add(frxResources.Get('zmWholePage')); - end; - - FPreview := TfrViewPreview.Create(Self); - Report.Preview := FPreview.Preview; - FPreview.Preview.OnPageChanged := OnPageChanged; -end; - -procedure TfEditorPreview.Print; -begin - actImprimir.Execute; -end; - -function TfEditorPreview.ExportToFile: String; -var - AFile : String; -begin - Result := ''; - AFile := DarFicheroTIFFTemporal; - frxTIFFExport1.SeparateFiles := False; - frxTIFFExport1.DefaultPath := ExtractFilePath(AFile); - frxTIFFExport1.FileName := ExtractFileName(AFile); - try - if Report.Export(frxTIFFExport1) then - Result := AFile; - finally - frxTIFFExport1.DefaultPath := ''; - frxTIFFExport1.FileName := ''; - end; -end; - -procedure TfEditorPreview.LoadFromStream(AStream: TStream); -begin - Report.PreviewPages.LoadFromStream(AStream); -end; - -end. diff --git a/Varela/Varela/Source/Base/uEditorUtils.pas b/Varela/Varela/Source/Base/uEditorUtils.pas deleted file mode 100644 index 68b4b86..0000000 --- a/Varela/Varela/Source/Base/uEditorUtils.pas +++ /dev/null @@ -1,108 +0,0 @@ -unit uEditorUtils; - -interface - -uses - uEditorItem, uDADataTable, Controls; - -type - TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult; - TProcItemEditor = procedure(ABizObject : TDADataTableRules); - TFuncGetEditor = function : IEditorItem; - - TEditorType = (etItem, etItems, etSelectItems); - -procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; - const AType : TEditorType); - -function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; - const AType : TEditorType) : TModalResult; - - -implementation - -uses - Dialogs, Classes, ComObj, SysUtils; - -var - FBizEditorsList : TList; - -type - PBizEditorsRec = ^TBizEditorsRec; - TBizEditorsRec = record - IID : String; - ItemEditor : TFuncItemEditor; - ItemsEditor : TFuncItemEditor; - SelectItemsEditor : TFuncItemEditor; - end; - - -function FindBizEditors(const IID : TGUID) : PBizEditorsRec; -var - P: PBizEditorsRec; - I: Integer; - AIID : String; -begin - Result := NIL; - AIID := GUIDToString(IID); - if FBizEditorsList <> nil then - for I := 0 to FBizEditorsList.Count-1 do - begin - P := FBizEditorsList[I]; - if (AIID = P^.IID) then - begin - Result := P; - Break; - end; - end; -end; - -procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; - const AType : TEditorType); -var - P: PBizEditorsRec; -begin - P := NIL; - if FBizEditorsList = nil then - FBizEditorsList := TList.Create; - - P := FindBizEditors(IID); - if not Assigned(P) then - New(P); - try - P^.IID := GUIDToString(IID); - case AType of - etItem : P^.ItemEditor := AFuncItemEditor; - etItems : P^.ItemsEditor := AFuncItemEditor; - etSelectItems : P^.SelectItemsEditor := AFuncItemEditor; - end; - FBizEditorsList.Insert(0, P); - except - on E: EConvertError do - ShowMessage(E.Message); - end; -end; - -function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; - const AType : TEditorType) : TModalResult; -var - P: PBizEditorsRec; -begin - P := FindBizEditors(IID); - - if Assigned(P) then - case AType of - etItem : Result := P.ItemEditor(ABizObject); - etItems : Result := P.ItemsEditor(ABizObject); - etSelectItems : Result := P.SelectItemsEditor(ABizObject); - end; -end; - - -initialization - FBizEditorsList := TList.Create; - -finalization - FBizEditorsList.Free; - -end. diff --git a/Varela/Varela/Source/Base/uExceptions.pas b/Varela/Varela/Source/Base/uExceptions.pas deleted file mode 100644 index a8f8b26..0000000 --- a/Varela/Varela/Source/Base/uExceptions.pas +++ /dev/null @@ -1,21 +0,0 @@ -unit uExceptions; - -interface - -uses - uDADelta; - -const - AUF_FKVIOLATION = 'violation of FOREIGN KEY'; - AUF_HAVEVALUE = 'must have a value'; - -type - IApplyUpdateFailedException = interface - ['{B090A762-3D65-405E-A810-14DB4F6E8F82}'] - procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); - end; - -implementation - -end. - diff --git a/Varela/Varela/Source/Base/uGridUtils.pas b/Varela/Varela/Source/Base/uGridUtils.pas deleted file mode 100644 index 40b8e6d..0000000 --- a/Varela/Varela/Source/Base/uGridUtils.pas +++ /dev/null @@ -1,261 +0,0 @@ -unit uGridUtils; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid; - -type - TRecordInfo = class - KeyValues: Variant; - ALevel: Integer; - end; - - TRecordInfos = class(TList) - private - function GetItem(Index: Integer): TRecordInfo; - protected - procedure Notify(Ptr: Pointer; Action: TListNotification); override; - public - property Items[Index: Integer]: TRecordInfo read GetItem; Default; - end; - - TcxGridStatus = class - protected - GroupRecords: TRecordInfos; - SelectedRecords: TRecordInfos; - SelStartItem: Integer; - SelEndItem: Integer; - AFocusedRow: TRecordInfo; - TopRow: TRecordInfo; - - function SaveRecord(AView: TcxGridDBTableView; GridRecord: - TcxCustomGridRecord): TRecordInfo; - function FindRecordEx(AView: TcxGridDBTableView; RecordInfo: - TRecordInfo): TcxCustomGridRecord; - - procedure SaveGridViewSelection(AView: TcxGridDBTableView); - procedure LoadGridViewSelection(AView: TcxGridDBTableView); - procedure SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); - procedure LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); - procedure SaveGridViewExpanded(AView: TcxGridDBTableView); - procedure LoadGridViewExpanded(AView: TcxGridDBTableView); - public - constructor Create(AGridView: TcxGridDBTableView); - destructor Destroy; override; - procedure Restore(AGridView: TcxGridDBTableView); - end; - -implementation - - -uses - cxVariants; - - -procedure TRecordInfos.Notify(Ptr: Pointer; Action: TListNotification); -begin - if Action in [lnExtracted, lnDeleted] then - FreeAndNil(TRecordInfo(Ptr)); -end; - -function TRecordInfos.GetItem(Index: Integer): TRecordInfo; -begin - Result := TRecordInfo(inherited Items[Index]); -end; - -function TcxGridStatus.SaveRecord(AView: TcxGridDBTableView; - GridRecord: TcxCustomGridRecord): TRecordInfo; -begin - Result := TRecordInfo.Create; - Result.KeyValues := - AView.DataController.GetRecordId(GridRecord.RecordIndex); - Result.ALevel := GridRecord.Level; -end; - -function TcxGridStatus.FindRecordEx(AView: TcxGridDBTableView; RecordInfo: - TRecordInfo): TcxCustomGridRecord; -var - I, ARecordIndex: Integer; - AList: TList; - AKeyValue: Variant; -begin - I := 0; - ARecordIndex := AView.DataController.FindRecordIndexByKey(RecordInfo.KeyValues); - Result := nil; - AList := TList.Create; - try - while I < AView.ViewData.RowCount do - begin - if AView.ViewData.Rows[I] is TcxGridGroupRow then - begin - AList.Clear; - AView.DataController.Groups.LoadRecordIndexesByRowIndex(AList, I); - if AList.IndexOf(Pointer(ARecordIndex)) <> -1 then - begin - if AView.ViewData.Rows[I].Level < RecordInfo.ALevel then - AView.ViewData.Rows[I].Expand(False) - else - begin - Result := AView.ViewData.Rows[I]; - Break; - end; - end; - end - else - begin - AKeyValue := AView.DataController.GetRecordId(AView.ViewData.Rows[I].RecordIndex); - if VarEquals(AKeyValue, RecordInfo.KeyValues) then - begin - Result := AView.ViewData.Rows[I]; - Break; - end; - end; - Inc(I); - end; - finally - FreeAndNil(AList); - end; -end; - -procedure TcxGridStatus.SaveGridViewSelection( - AView: TcxGridDBTableView); -var - i: Integer; - SelectRecordInfo: TRecordInfo; -begin - with AView.DataController, AView.Controller do - begin - for i := 0 To SelectedRecordCount - 1 do - begin - SelectRecordInfo := SaveRecord(AView, SelectedRecords[i]); - Self.SelectedRecords.Add(SelectRecordInfo); - end; - if SelectedColumnCount = 0 then - begin - SelStartItem := -1; - SelEndItem := -1; - end - else - begin - SelStartItem := SelectedColumns[0].Index; - SelEndItem := SelectedColumns[SelectedColumnCount - 1].Index; - end; - end; -end; - -procedure TcxGridStatus.LoadGridViewSelection( - AView: TcxGridDBTableView); -var - i: Integer; - ARecord: TcxCustomGridRecord; -begin - AView.Controller.ClearSelection; - - for i := 0 To SelectedRecords.Count - 1 do - begin - ARecord := FindRecordEx(AView, SelectedRecords[i]); - if Assigned(ARecord) then - ARecord.Selected := True; - end; - - if SelStartItem <> -1 then - AView.Controller.SelectColumns(AView.Columns[SelStartItem], - AView.Columns[SelEndItem]); -end; - -procedure TcxGridStatus.SaveGridViewTopFocusedRecords(AView: TcxGridDBTableView); -begin - if AView.Controller.FocusedRow = nil then - AFocusedRow := nil - else - AFocusedRow := SaveRecord(AView, AView.Controller.FocusedRow); - TopRow := nil; - if (AView.Controller.TopRowIndex <> -1) and - (AView.Controller.TopRowIndex < AView.ViewData.RecordCount) then - TopRow := SaveRecord(AView, AView.ViewData.Records[AView.Controller.TopRowIndex]); -end; - -procedure TcxGridStatus.LoadGridViewTopFocusedRecords(AView: TcxGridDBTableView); -var - ARecord: TcxCustomGridRecord; -begin - ARecord := FindRecordEx(AView, AFocusedRow); - if Assigned(ARecord) then - ARecord.Focused := True; - ARecord := FindRecordEx(AView, TopRow); - if Assigned(ARecord) then - AView.Controller.TopRowIndex := ARecord.Index; -end; - -type - TcxDataControllerGroupsAccess = class(TcxDataControllerGroups); - TcxDataGroupsAccess = class(TcxDataGroups); - -procedure TcxGridStatus.SaveGridViewExpanded( - AView: TcxGridDBTableView); -var - i: Integer; - GroupRecordInfo: TRecordInfo; -begin - for i := 0 To AView.DataController.RowCount - 1 do - with AView.ViewData.Records[i] do - if Expanded then - begin - GroupRecordInfo := SaveRecord(AView, AView.ViewData.Records[i]); - GroupRecords.Add(GroupRecordInfo); - end; -end; - -procedure TcxGridStatus.LoadGridViewExpanded( - AView: TcxGridDBTableView); -var - i: Integer; - ARecord: TcxCustomGridRecord; -begin - for i := 0 to GroupRecords.Count - 1 do - begin - ARecord := FindRecordEx(AView, GroupRecords[i]); - if Assigned(ARecord) then - ARecord.Expand(False); - end; -end; - -constructor TcxGridStatus.Create(AGridView: TcxGridDBTableView); -begin - inherited Create; - GroupRecords := TRecordInfos.Create; - SelectedRecords := TRecordInfos.Create; - SaveGridViewSelection(AGridView); - SaveGridViewExpanded(AGridView); - SaveGridViewTopFocusedRecords(AGridView); -end; - -destructor TcxGridStatus.Destroy; -begin - FreeAndNil(GroupRecords); - FreeAndNil(SelectedRecords); - inherited; -end; - -procedure TcxGridStatus.Restore(AGridView: TcxGridDBTableView); -begin - SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 0, 0); - try - AGridView.ViewData.Collapse(True); - LoadGridViewExpanded(AGridView); - LoadGridViewSelection(AGridView); - LoadGridViewTopFocusedRecords(AGridView); - finally - SendMessage(AGridView.Site.Handle, WM_SETREDRAW, 1, 0); - RedrawWindow(AGridView.Site.Handle, Nil, 0, RDW_FRAME Or RDW_NOFRAME Or - RDW_ALLCHILDREN Or RDW_INVALIDATE); - end; -end; - - -end. diff --git a/Varela/Varela/Source/Base/uIntegerList.pas b/Varela/Varela/Source/Base/uIntegerList.pas deleted file mode 100644 index 93d40db..0000000 --- a/Varela/Varela/Source/Base/uIntegerList.pas +++ /dev/null @@ -1,61 +0,0 @@ -unit uIntegerList; - -interface - -uses - Classes; - -type - TIntegerList = class(TList) - private - function GetInteger(Index: integer): integer; - procedure SetInteger(Index: integer; Value: integer); - public - procedure Add(Value: integer); reintroduce; - function Find(Value: integer; var Index: Integer): Boolean; - property Integers[index: integer]: integer read GetInteger write SetInteger; default; - end; - -implementation - -function TIntegerList.GetInteger(Index: integer): integer; -begin - result := Integer(Items[index]); -end; - -procedure TIntegerList.SetInteger(Index: integer; Value: integer); -begin - Items[index] := Pointer(Value); -end; - -procedure TIntegerList.Add(Value: integer); -var - Index: integer; -begin - if not Find(Value, Index) then - Insert(Index, Pointer(Value)); -end; - -function TIntegerList.Find(Value: integer; var Index: Integer): Boolean; -var - L, H, I, C: Integer; -begin - Result := False; - L := 0; - H := Count - 1; - while L <= H do - begin - I := (L + H) shr 1; - C := Integers[I] - Value; - if C < 0 then - L := I + 1 - else begin - H := I - 1; - if C = 0 then - Result := True; - end; - end; - Index := L; -end; - -end. diff --git a/Varela/Varela/Source/Base/uSysFunc.pas b/Varela/Varela/Source/Base/uSysFunc.pas deleted file mode 100644 index f4c26f4..0000000 --- a/Varela/Varela/Source/Base/uSysFunc.pas +++ /dev/null @@ -1,249 +0,0 @@ -{ -=============================================================================== - Copyright (©) 2002. Rodax Software. -=============================================================================== - Los contenidos de este fichero son propiedad de Rodax Software titular del - copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, - en su totalidad o en parte, con el permiso escrito de Rodax Software, o de - acuerdo con los términos y condiciones establecidas en el acuerdo/contrato - bajo el que se suministra. - ----------------------------------------------------------------------------- - Web: www.rodax-software.com -=============================================================================== - Fecha primera versión: 01-11-2002 - Versión actual: 1.0.0 - Fecha versión actual: 01-11-2002 -=============================================================================== - Modificaciones: - - Fecha Comentarios - --------------------------------------------------------------------------- -=============================================================================== -} - -unit uSysFunc; - -interface - -{ Funciones del sistema } -function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; -function DarRutaTemporal : String; -function DarFicheroTemporal : String; -function DarFicheroBMPTemporal : String; -function DarFicheroTIFFTemporal : String; -function DarFicheroExportar (var Fichero : String) : Boolean; -function DarVersionFichero (Executable : String) : String; -function DarFechaFichero (Executable : String) : String; -procedure CopiarFichero(const Origen, Destino: string); -procedure DoDelTree( TheDir : String); -procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); - - -implementation - -uses - SysUtils, Windows, Dialogs, - - Messages, Classes, Graphics, Controls, Forms, - StdCtrls; - -function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean; -var - StartupInfo : TStartupInfo; - ProcessInfo : TProcessInformation; -begin - {setup the startup information for the application } - FillChar(StartupInfo, SizeOf(TStartupInfo), 0); - with StartupInfo do - begin - cb := SizeOf(TStartupInfo); - dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; - if Oculto then - wShowWindow:= SW_HIDE - else - wShowWindow:= SW_SHOWNORMAL; - end; - - Result := CreateProcess(nil,PChar(LineaComando), nil, nil, False, - NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo); - if Esperar then - if Result then - begin - WaitForInputIdle(ProcessInfo.hProcess, INFINITE); - WaitForSingleObject(ProcessInfo.hProcess, INFINITE); - end; -end; - -function DarRutaTemporal: String; -var - nBufferLength : DWORD; // size, in characters, of the buffer - lpBuffer : PChar; // address of buffer for temp. path -begin - nBufferLength := MAX_PATH + 1; // initialize - GetMem( lpBuffer, nBufferLength ); - try - if GetTempPath( nBufferLength, lpBuffer ) <> 0 then - Result := StrPas( lpBuffer ) - else - Result := ''; - finally - FreeMem( lpBuffer ); - end; -end; - -function DarFicheroTemporal : String; -var - Buf: array [0..MAX_PATH] of Char; - RutaTmp : string; -begin - RutaTmp := DarRutaTemporal; - if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then - SetString(Result, Buf, StrLen(Buf)) - else - Result := ''; -end; - -function DarFicheroTIFFTemporal : String; -var - Cadena : String; -begin - Cadena := DarFicheroTemporal; - Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif'; -end; - -function DarFicheroBMPTemporal : String; -var - Cadena : String; -begin - Cadena := DarFicheroTemporal; - Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; -end; - -function DarFicheroExportar (var Fichero : String) : Boolean; -var - DialogoSalvar : TSaveDialog; -begin - Result := False; - DialogoSalvar := TSaveDialog.Create(NIL); - try - with DialogoSalvar do - begin - DefaultExt := 'doc'; - Filter := 'Documento de Word (*.doc)|*.doc'; - 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; -var - Size, Size2: DWord; - Pt, Pt2: Pointer; -begin - Size := GetFileVersionInfoSize(PChar (Executable), Size2); - if Size > 0 then - begin - GetMem (Pt, Size); - try - GetFileVersionInfo (PChar (Executable), 0, Size, Pt); - VerQueryValue (Pt, '\', Pt2, Size2); - with TVSFixedFileInfo (Pt2^) do - begin - Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' + - IntToStr (LoWord (dwFileVersionMS)) + '.' + - IntToStr (HiWord (dwFileVersionLS)) + '.' + - IntToStr (LoWord (dwFileVersionLS)); - end; - finally - FreeMem (Pt); - end; - end; -end; - -function DarFechaFichero (Executable : String) : String; -var - FileTime, LocalFileTime : TFileTime; - SystemTime : TSystemTime; - hFile : Integer; -begin - hFile := FileOpen(Executable, fmShareDenyNone); - try - if hFile <> -1 then - begin - Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime - // Change the file time to local time - FileTimeToLocalFileTime( FileTime, LocalFileTime ); - if FileTimeToSystemTime(LocalFileTime, SystemTime) then - Result := DateTimeToStr(SystemTimeToDateTime(SystemTime)); - end; // if hFile <> 0 - finally - FileClose( hFile ); - end; // try -end; - - -procedure CopiarFichero(const Origen, Destino: string); -var - lpMsgBuf : pchar; -begin - CopyFile(PChar(Origen), PChar(Destino), FALSE); -end; - -procedure DoDelTree(TheDir : String); - Var - Search : TSearchRec; - rec : word; -Begin - If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\'; - rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search); - While rec = 0 Do - Begin - If Search.Name[1] <> '.' Then - Begin -// Is this a directory? - If (Search.Attr And faDirectory) = faDirectory Then - Begin -// If so, lets call DelTree again using this new -// directory as the TheDir parameter. - DoDelTree(TheDir + Search.Name); -// Not that all of the files are gone from this directoy, -// we can remove the directory. - RmDir(TheDir + Search.Name); - End - Else - Begin -// We found a file. -// Now lets reset its attributes so we don't have any problems -// deleting them. - SysUtils.FileSetAttr(TheDir + Search.Name, 0); - SysUtils.DeleteFile(TheDir + Search.Name); - Application.ProcessMessages; - End; - End; - rec := SysUtils.FindNext(Search); - End; - SysUtils.FindClose(Search); -End; - -procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); -begin -{$I-} - DoDelTree(DirToKill); -// If we want to delete the choosen directory. - If KillChoosenDir Then - RmDir(DirToKill); - //modified - if IOResult <> 0 then - ShowMessage('Could not delete ' + DirToKill); -//{$I} -end; - - -end. - \ No newline at end of file diff --git a/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm b/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm deleted file mode 100644 index cf83624..0000000 --- a/Varela/Varela/Source/Base/uViewBarraSeleccion.dfm +++ /dev/null @@ -1,53 +0,0 @@ -inherited frViewBarraSeleccion: TfrViewBarraSeleccion - Width = 439 - Height = 19 - Align = alBottom - AutoScroll = False - Visible = False - object pnlSeleccion: TPanel - Left = 0 - Top = -18 - Width = 439 - Height = 37 - Align = alBottom - BevelOuter = bvNone - ParentBackground = True - TabOrder = 0 - DesignSize = ( - 439 - 37) - object bSeleccionar: TButton - Left = 264 - Top = 7 - Width = 74 - Height = 23 - Action = actSeleccionar - Anchors = [akRight] - Default = True - ModalResult = 1 - TabOrder = 0 - end - object bCancelar: TButton - Left = 343 - Top = 7 - Width = 74 - Height = 23 - Action = actCancelar - Anchors = [akRight] - Cancel = True - ModalResult = 2 - TabOrder = 1 - end - end - object ActionListSeleccion: TActionList - Left = 8 - Top = 5 - object actSeleccionar: TAction - Caption = '&Seleccionar' - end - object actCancelar: TAction - Caption = '&Cancelar' - OnExecute = actCancelarExecute - end - end -end diff --git a/Varela/Varela/Source/Base/uViewBarraSeleccion.pas b/Varela/Varela/Source/Base/uViewBarraSeleccion.pas deleted file mode 100644 index b09d87f..0000000 --- a/Varela/Varela/Source/Base/uViewBarraSeleccion.pas +++ /dev/null @@ -1,37 +0,0 @@ -unit uViewBarraSeleccion; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls; - -type - TfrViewBarraSeleccion = class(TfrViewBase) - pnlSeleccion: TPanel; - bSeleccionar: TButton; - bCancelar: TButton; - ActionListSeleccion: TActionList; - actSeleccionar: TAction; - actCancelar: TAction; - procedure actCancelarExecute(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - -var - frViewBarraSeleccion: TfrViewBarraSeleccion; - -implementation - -{$R *.dfm} - -procedure TfrViewBarraSeleccion.actCancelarExecute(Sender: TObject); -begin - inherited; - // -end; - -end. diff --git a/Varela/Varela/Source/Base/uViewBase.dfm b/Varela/Varela/Source/Base/uViewBase.dfm deleted file mode 100644 index 6b80b72..0000000 --- a/Varela/Varela/Source/Base/uViewBase.dfm +++ /dev/null @@ -1,14 +0,0 @@ -object frViewBase: TfrViewBase - Left = 0 - Top = 0 - Width = 294 - Height = 214 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False -end diff --git a/Varela/Varela/Source/Base/uViewBase.pas b/Varela/Varela/Source/Base/uViewBase.pas deleted file mode 100644 index 16962ed..0000000 --- a/Varela/Varela/Source/Base/uViewBase.pas +++ /dev/null @@ -1,32 +0,0 @@ -unit uViewBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize; - -type - IViewBase = interface(ICustomView) - ['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}'] - procedure Refresh; - end; - - TfrViewBase = class(TCustomView, IViewBase) - public - procedure Refresh; virtual; - end; - -implementation - -{$R *.dfm} - - -{ TfrViewBase } - -procedure TfrViewBase.Refresh; -begin - // -end; - -end. diff --git a/Varela/Varela/Source/Base/uViewGrid.dfm b/Varela/Varela/Source/Base/uViewGrid.dfm deleted file mode 100644 index 211269d..0000000 --- a/Varela/Varela/Source/Base/uViewGrid.dfm +++ /dev/null @@ -1,79 +0,0 @@ -inherited frViewGrid: TfrViewGrid - object cxGrid: TcxGrid [0] - Left = 0 - Top = 0 - Width = 441 - Height = 268 - Align = alClient - TabOrder = 0 - LookAndFeel.Kind = lfOffice11 - LookAndFeel.NativeStyle = True - object cxGridView: TcxGridDBTableView - NavigatorButtons.ConfirmDelete = False - DataController.DataSource = dsDataSource - DataController.Filter.Options = [fcoCaseInsensitive] - DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] - DataController.Summary.DefaultGroupSummaryItems = <> - DataController.Summary.FooterSummaryItems = <> - DataController.Summary.SummaryGroups = <> - OptionsBehavior.CellHints = True - OptionsCustomize.ColumnFiltering = False - OptionsCustomize.ColumnGrouping = False - OptionsData.Deleting = False - OptionsData.DeletingConfirmation = False - OptionsData.Editing = False - OptionsData.Inserting = False - OptionsSelection.CellSelect = False - OptionsSelection.UnselectFocusedRecordOnExit = False - OptionsView.CellEndEllipsis = True - OptionsView.CellAutoHeight = True - OptionsView.ColumnAutoWidth = True - OptionsView.Footer = True - OptionsView.FooterAutoHeight = True - OptionsView.GridLineColor = cl3DLight - OptionsView.GroupByBox = False - OptionsView.HeaderEndEllipsis = True - Styles.Inactive = cxStyleSelection - Styles.Selection = cxStyleSelection - Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle - end - object cxGridLevel: TcxGridLevel - GridView = cxGridView - end - end - object dxComponentPrinter: TdxComponentPrinter - PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint] - PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins] - PreviewOptions.WindowState = wsMaximized - Version = 0 - Left = 368 - Top = 128 - end - object dxPSEngineController1: TdxPSEngineController - LookAndFeel = pslfOffice11 - UseNativeLookAndFeel = False - Left = 336 - Top = 128 - end - object cxStyleRepository1: TcxStyleRepository - Left = 296 - Top = 128 - object cxStyleEven: TcxStyle - end - object cxStyleOdd: TcxStyle - AssignedValues = [svColor] - Color = clInactiveCaptionText - end - object cxStyleSelection: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clHighlight - TextColor = clHighlightText - end - object cxStyleSinOrden: TcxStyle - end - object cxStyleConOrden: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - end -end diff --git a/Varela/Varela/Source/Base/uViewGrid.pas b/Varela/Varela/Source/Base/uViewGrid.pas deleted file mode 100644 index c644770..0000000 --- a/Varela/Varela/Source/Base/uViewGrid.pas +++ /dev/null @@ -1,86 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewGrid; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, - DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, - dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, - cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, uDAInterfaces; - -type - IViewGrid = interface(IViewGridBase) - ['{7EA40980-AD73-4590-A53A-932316C7B121}'] - end; - - TfrViewGrid = class(TfrViewGridBase, IViewGrid) - cxGrid: TcxGrid; - cxGridLevel: TcxGridLevel; - cxGridView: TcxGridDBTableView; - dxComponentPrinter: TdxComponentPrinter; - dxPSEngineController1: TdxPSEngineController; - cxStyleRepository1: TcxStyleRepository; - cxStyleEven: TcxStyle; - cxStyleOdd: TcxStyle; - cxStyleSelection: TcxStyle; - cxStyleSinOrden: TcxStyle; - cxStyleConOrden: TcxStyle; - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - protected - function GetGrid : TcxGrid; override; - function GetFocusedView : TcxGridDBTableView; override; - end; - -implementation - -uses - uDataModuleBase, uDBSelectionList; - -{$R *.dfm} - -{ -********************************* TfrViewGrid ********************************** -} - -{ TfrViewGrid } -function TfrViewGrid.GetFocusedView: TcxGridDBTableView; -begin - Result := cxGridView; -end; - -function TfrViewGrid.GetGrid: TcxGrid; -begin - Result := cxGrid; -end; - -procedure TfrViewGrid.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(AItem) then - begin - if AItem.SortOrder = soNone then - AStyle := cxStyleSinOrden - else - AStyle := cxStyleConOrden; - end; -end; - -end. - diff --git a/Varela/Varela/Source/Base/uViewGridBase.ddp b/Varela/Varela/Source/Base/uViewGridBase.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Base/uViewGridBase.dfm b/Varela/Varela/Source/Base/uViewGridBase.dfm deleted file mode 100644 index 5695879..0000000 --- a/Varela/Varela/Source/Base/uViewGridBase.dfm +++ /dev/null @@ -1,10 +0,0 @@ -inherited frViewGridBase: TfrViewGridBase - Width = 441 - Height = 268 - ExplicitWidth = 441 - ExplicitHeight = 268 - object dsDataSource: TDADataSource - Left = 8 - Top = 16 - end -end diff --git a/Varela/Varela/Source/Base/uViewGridBase.pas b/Varela/Varela/Source/Base/uViewGridBase.pas deleted file mode 100644 index d1c5818..0000000 --- a/Varela/Varela/Source/Base/uViewGridBase.pas +++ /dev/null @@ -1,335 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewGridBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, - DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, - dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, - cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uDAInterfaces; - -type - IViewGridBase = interface(IViewBase) - ['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}'] - procedure ExpandirTodo; - procedure ContraerTodo; - procedure AjustarAncho; - - procedure Preview; - procedure Print; - procedure PrintSetup; - - procedure SaveGridStatus; - procedure RestoreGridStatus; - - procedure GotoFirst; - procedure GotoLast; - - function GetFocusedView : TcxGridDBTableView; - property _FocusedView : TcxGridDBTableView read GetFocusedView; - - function GetGrid : TcxGrid; - property _Grid : TcxGrid read GetGrid; - - procedure StoreToRegistry (const Path : String); - procedure RestoreFromRegistry (const Path : String); - - procedure SetDblClick(const Value: TNotifyEvent); - function GetDblClick: TNotifyEvent; - property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; - - procedure SetPopupMenu(const Value: TPopupMenu); - function GetPopupMenu: TPopupMenu; - property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; - - function GetMultiSelect: Boolean; - procedure SetMultiSelect(const Value: Boolean); - property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; - - procedure SetFilter(const Value: string); - function GetFilter: string; - property Filter: string read GetFilter write SetFilter; - - function GetFilterAsSQL: string; - end; - - - TfrViewGridBase = class(TfrViewBase, IViewGridBase) - dsDataSource: TDADataSource; - private - FFilter: string; - FOnFilterChanged : TNotifyEvent; - FPopupMenu: TPopupMenu; - procedure FiltrarGrid(TextoFiltro : String); - protected - FGridStatus : TcxGridStatus; - FOnDblClick: TNotifyEvent; - function GetMultiSelect: Boolean; virtual; - procedure SetMultiSelect(const Value: Boolean); virtual; - procedure SetPopupMenu(const Value: TPopupMenu); virtual; - function GetPopupMenu: TPopupMenu; virtual; - procedure SetDblClick(const Value: TNotifyEvent); virtual; - function GetDblClick: TNotifyEvent; virtual; - function GetGrid : TcxGrid; virtual; abstract; - function GetFocusedView : TcxGridDBTableView; virtual; abstract; - procedure SetFilter(const Value: string); virtual; - function GetFilter: string; virtual; - procedure FilterChanged(Sender : TObject); virtual; - public - constructor Create(AOwner: TComponent); override; - - procedure ShowEmbedded(const AParent : TWinControl); override; - - procedure ExpandirTodo; - procedure ContraerTodo; - procedure AjustarAncho; - - procedure SaveGridStatus; - procedure RestoreGridStatus; - - procedure Preview; virtual; - procedure Print; virtual; - procedure PrintSetup; virtual; - - procedure GotoFirst; - procedure GotoLast; - - procedure StoreToRegistry (const Path : String); - procedure RestoreFromRegistry (const Path : String); - - function GetFilterAsSQL: string; - - property Filter: string read GetFilter write SetFilter; - property _FocusedView : TcxGridDBTableView read GetFocusedView; - property _Grid : TcxGrid read GetGrid; - property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; - property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; - property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; - destructor Destroy; override; - end; - -procedure Register; - -implementation - -uses - CCReg, uDataModuleBase, uDBSelectionList; - -{$R *.dfm} - -procedure Register; -begin - RegisterCustomContainer(TfrViewGridBase); -end; - -{ TfrViewGrid } - -procedure TfrViewGridBase.AjustarAncho; -begin - if Assigned(_FocusedView) then - _FocusedView.ApplyBestFit; -end; - -procedure TfrViewGridBase.ContraerTodo; -begin - if Assigned(_FocusedView) then - _FocusedView.ViewData.Collapse(True); -end; - -constructor TfrViewGridBase.Create(AOwner: TComponent); -begin - inherited; - FGridStatus := nil; - FFilter := ''; - FOnFilterChanged := FilterChanged; - FPopupMenu := nil; - FOnDblClick := nil; -end; - -procedure TfrViewGridBase.ExpandirTodo; -begin - if Assigned(_FocusedView) then - _FocusedView.ViewData.Expand(True); -end; - -function TfrViewGridBase.GetDblClick: TNotifyEvent; -begin - Result := FOnDblClick; -end; - -function TfrViewGridBase.GetFilter: string; -begin - Result := FFilter; -end; - -function TfrViewGridBase.GetMultiSelect: Boolean; -begin - Result := _FocusedView.OptionsSelection.MultiSelect; -end; - -function TfrViewGridBase.GetPopupMenu: TPopupMenu; -begin - Result := FPopupMenu; -end; - -procedure TfrViewGridBase.GotoFirst; -begin - if Assigned(_FocusedView) then - _FocusedView.DataController.GotoFirst; -end; - -procedure TfrViewGridBase.GotoLast; -begin - if Assigned(_FocusedView) then - _FocusedView.DataController.GotoLast; -end; - -procedure TfrViewGridBase.Preview; -begin - -end; - -procedure TfrViewGridBase.Print; -begin - -end; - -procedure TfrViewGridBase.PrintSetup; -begin - -end; - -procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); -begin - if Assigned(_FocusedView) then - _FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); -end; - -procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent); -begin - FOnDblClick := Value; -end; - -procedure TfrViewGridBase.SetFilter(const Value: string); -begin - if FFilter <> Value then - begin - FFilter := Value; - FiltrarGrid(FFilter); - if Assigned(FOnFilterChanged) then - FOnFilterChanged(Self); - end; -end; - -procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean); -begin - _FocusedView.OptionsSelection.MultiSelect := True; -// _FocusedView..OnSelectionChanged := SelectionChanged; -end; - -procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu); -begin - FPopupMenu := Value; - _FocusedView.PopupMenu := FPopupMenu; -end; - -procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl); -begin - inherited; - - // No activar la tabla ya por si acaso tuviera parámetros -{ if not DADataSource.DataTable.Active then - DADataSource.DataTable.Active := True;} - GotoFirst; - _FocusedView.Focused := True; - if _FocusedView.ViewData.RecordCount > 0 then - begin - _FocusedView.ViewData.Records[0].Selected := True; - _FocusedView.ViewData.Records[0].Focused := True; - end; -end; - -procedure TfrViewGridBase.StoreToRegistry(const Path : String); -begin - if Assigned(_FocusedView) then - _FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); -end; - -procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String); -var - Columna: TcxGridDBColumn; - i: Integer; - AItemList: TcxFilterCriteriaItemList; -begin - with _FocusedView.DataController.Filter do - begin - BeginUpdate; - try - Options := [fcoCaseInsensitive, fcoSoftCompare]; - Root.Clear; - if Length(TextoFiltro) > 0 then - begin - AItemList := Root.AddItemList(fboAnd); - AItemList.BoolOperatorKind := fboOr; - for i:=0 to (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do - begin - Columna := (_FocusedView as TcxGridDBTableView).Columns[i]; - if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then - AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); - end; - Active := True; - end - else - Active := False; - finally - EndUpdate; - end; - end; -end; - - -procedure TfrViewGridBase.FilterChanged(Sender: TObject); -begin - -end; - -destructor TfrViewGridBase.Destroy; -begin - FOnFilterChanged := Nil; - FreeAndNIL(FGridStatus); - inherited; -end; - -procedure TfrViewGridBase.RestoreGridStatus; -begin - if Assigned(FGridStatus) then - FGridStatus.Restore(_FocusedView); -end; - -procedure TfrViewGridBase.SaveGridStatus; -begin - FreeAndNIL(FGridStatus); - FGridStatus := TcxGridStatus.Create(_FocusedView); -end; - -function TfrViewGridBase.GetFilterAsSQL: string; -begin - with _FocusedView.DataController.Filter do - Result := FilterText; -end; - -end. - diff --git a/Varela/Varela/Source/Base/uViewPreview.dfm b/Varela/Varela/Source/Base/uViewPreview.dfm deleted file mode 100644 index 52e3be3..0000000 --- a/Varela/Varela/Source/Base/uViewPreview.dfm +++ /dev/null @@ -1,10 +0,0 @@ -inherited frViewPreview: TfrViewPreview - object frxPreview: TfrxPreview - Left = 0 - Top = 0 - Width = 294 - Height = 214 - Align = alClient - OutlineVisible = False - end -end diff --git a/Varela/Varela/Source/Base/uViewPreview.pas b/Varela/Varela/Source/Base/uViewPreview.pas deleted file mode 100644 index c16f376..0000000 --- a/Varela/Varela/Source/Base/uViewPreview.pas +++ /dev/null @@ -1,43 +0,0 @@ -unit uViewPreview; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, frxClass, frxPreview, JvComponent, JvFormAutoSize; - -type - IViewPreview = interface(IViewBase) - ['{F9A96948-4005-4E9B-8045-7B4874A05D19}'] - function GetPreview: TfrxPreview; - property Preview : TfrxPreview read GetPreview; - end; - - TfrViewPreview = class(TfrViewBase, IViewPreview) - frxPreview: TfrxPreview; - private - function GetPreview: TfrxPreview; - public - property Preview : TfrxPreview read GetPreview; - end; - -implementation - -{$R *.dfm} - -{ TfrViewPreview } - -function TfrViewPreview.GetPreview: TfrxPreview; -begin - Result := frxPreview; -end; - -initialization - RegisterClass(TfrViewPreview); - -finalization - UnRegisterClass(TfrViewPreview); - -end. - - diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj b/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj deleted file mode 100644 index 3437b92..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.bdsproj +++ /dev/null @@ -1,679 +0,0 @@ - - - - - - - - - - - - CargaEDI.dpr - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - ..\..\Output\Debug\Cliente - .\ - ..\Lib - ..\Lib - ..\Lib;..\Base - BaseD10;Configuracion;FicherosEDI;rtl;dbrtl;vcldb;DataAbstract_Core_D10;DataAbstract_IDE_D10 - - - True - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 2 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 2.0.0.0 - - - - - - 1.0.0.0 - - - Internet Direct Version 9 (Indy) Property and Component Editors - - - - diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.cfg b/Varela/Varela/Source/CargaEDI/CargaEDI.cfg deleted file mode 100644 index d4335d6..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.cfg +++ /dev/null @@ -1,46 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --E"..\..\Output\Cliente" --N".\" --LE"..\Lib" --LN"..\Lib" --U"..\Lib" --O"..\Lib" --I"..\Lib" --R"..\Lib" --LUBaseD7;Configuracion;FicherosEDI --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.dof b/Varela/Varela/Source/CargaEDI/CargaEDI.dof deleted file mode 100644 index 75a90da..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.dof +++ /dev/null @@ -1,480 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir=..\..\Output\Cliente -UnitOutputDir=.\ -PackageDLLOutputDir=..\Lib -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib -Packages=BaseD7;Configuracion;FicherosEDI -Conditionals= -DebugSourceDirs= -UsePackages=1 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=1 -Release=1 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.1.1.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=3 -Item0=..\Lib -Item1=..\Lib;..\Base -Item2=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=0 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.dpr b/Varela/Varela/Source/CargaEDI/CargaEDI.dpr deleted file mode 100644 index 44e0fec..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.dpr +++ /dev/null @@ -1,14 +0,0 @@ -program CargaEDI; - -uses - Forms, - uCargaEDI in 'uCargaEDI.pas' {fCargaEDI}; - -{$R *.res} - -begin - Application.Initialize; - Application.Title := 'Carga automática EDI'; - Application.CreateForm(TfCargaEDI, fCargaEDI); - Application.Run; -end. diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.drc b/Varela/Varela/Source/CargaEDI/CargaEDI.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.identcache b/Varela/Varela/Source/CargaEDI/CargaEDI.identcache deleted file mode 100644 index 2895ca953b309136dd0fab9d7ba78e0e49cf873c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmcJ|JqiLb5C!1iNpgZcfSqi%un@$c)igsA)`(`7`MJL-G&k5+J$MhkgLCdVA0be( zPiZP1TlTT2*0u`V#gHq(rHaqL3klp#!AG^+mn+k&Bo%ldmp4Kr<5XZqUU3QMQKr0c Qw?^uosQvkALm6Z*Uwzw8I{*Lx diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.rc b/Varela/Varela/Source/CargaEDI/CargaEDI.rc deleted file mode 100644 index ab63d7e..0000000 --- a/Varela/Varela/Source/CargaEDI/CargaEDI.rc +++ /dev/null @@ -1,23 +0,0 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\CargaEDI.ico" -1 VERSIONINFO -FILEVERSION 2,0,0,0 -PRODUCTVERSION 2,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "2.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/CargaEDI/CargaEDI.res b/Varela/Varela/Source/CargaEDI/CargaEDI.res deleted file mode 100644 index 5c6d4bd5049f3e4d0f72eec13a7aa979b5041874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15548 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 diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.ddp b/Varela/Varela/Source/CargaEDI/uCargaEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm b/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm deleted file mode 100644 index 1a08cf1..0000000 --- a/Varela/Varela/Source/CargaEDI/uCargaEDI.dfm +++ /dev/null @@ -1,843 +0,0 @@ -object fCargaEDI: TfCargaEDI - Left = 470 - Top = 409 - BorderIcons = [] - BorderStyle = bsDialog - Caption = 'Monitor de carga autom'#225'tica' - ClientHeight = 324 - ClientWidth = 367 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnClose = FormClose - OnCreate = FormCreate - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object Label13: TLabel - Left = 40 - Top = 118 - Width = 204 - Height = 14 - Caption = 'Carga autom'#225'tica de ficheros EDI' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object Image1: TImage - Left = 0 - Top = 0 - Width = 367 - Height = 100 - Align = alTop - AutoSize = True - Picture.Data = { - 0A544A504547496D616765194A0000FFD8FFE000104A46494600010201004800 - 480000FFE106744578696600004D4D002A000000080007011200030000000100 - 010000011A00050000000100000062011B0005000000010000006A0128000300 - 00000100020000013100020000001B0000007201320002000000140000008D87 - 69000400000001000000A4000000D00000004800000001000000480000000141 - 646F62652050686F746F73686F702043532057696E646F777300323030363A30 - 373A30372031323A35323A3237000000000003A00100030000000100010000A0 - 0200040000000100000177A00300040000000100000064000000000000000601 - 0300030000000100060000011A0005000000010000011E011B00050000000100 - 00012601280003000000010002000002010004000000010000012E0202000400 - 0000010000053E0000000000000048000000010000004800000001FFD8FFE000 - 104A46494600010201004800480000FFED000C41646F62655F434D0001FFEE00 - 0E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B - 11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E - 0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200 - 021101031101FFDD0004000AFFC4013F00000105010101010101000000000000 - 00030001020405060708090A0B01000105010101010101000000000000000100 - 02030405060708090A0B1000010401030204020507060805030C330100021103 - 04211231054151611322718132061491A1B14223241552C16233347282D14307 - 259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3 - D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6 - 37475767778797A7B7C7D7E7F711000202010204040304050607070605350100 - 021103213112044151617122130532819114A1B14223C152D1F0332462E17282 - 92435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2 - B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6 - E6F62737475767778797A7B7C7FFDA000C03010002110311003F00ED3D34BD35 - 6762AF9E0B711EF05CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F6636065 - 6DDD6B9B5B7F79C4347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC3 - 1EB3673EA3C6F7FF00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C78 - 80B90AD698F1E58642447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D - 8971AB85AFE9A5E9AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB - 1B12D89712B85AFE9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C82 - 8BA5B58B4B46C2247BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E - 9A2D2EAEFA9B7547731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F4 - 4D8839741BB1ADC76C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C122410 - 5A4B5C08E1CC7B7DCC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA - 07B59DBE97E916DF4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB - 7DFF00F411EFE8E6E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A - 194E3B0574D6218C1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C7885 - 63888FE7F597CCD235F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CE - F4FAB78E27DD6FF7A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBA - DFEF4FE9F55FDEC4FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE - 9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75B - FDEB47625B12BF12AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325 - A3B12D897D4FDAAA732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C0 - 7716309E3FD2B7D8B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB4235 - 5F8E5C3D1A1D09B3D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6 - EF8408FD8B25A927B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB4 - 47B0F8A5B0F8FE0A69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA - 91EC3E296C3E2A6925AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325 - AA986C3E3F82635CA2A64B55300C8007825B54D3A5AA9FFFD9FFED0B4A50686F - 746F73686F7020332E30003842494D0425000000000010000000000000000000 - 000000000000003842494D03ED00000000001000480000000100020048000000 - 0100023842494D042600000000000E000000000000000000003F800000384249 - 4D040D000000000004000000783842494D04190000000000040000001E384249 - 4D03F3000000000009000000000000000001003842494D040A00000000000100 - 003842494D271000000000000A000100000000000000023842494D03F5000000 - 000048002F66660001006C66660006000000000001002F6666000100A1999A00 - 06000000000001003200000001005A0000000600000000000100350000000100 - 2D000000060000000000013842494D03F80000000000700000FFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFF03E800003842494D040000000000000200023842494D04020000000000 - 0A000000010001000100013842494D0408000000000029000000010000024000 - 000240000000050000072001000006500000002B60000000072001000008E001 - 003842494D041E000000000004000000003842494D041A000000000345000000 - 0600000000000000000000006400000177000000080043006100620065006300 - 6500720061000000010000000000000000000000000000000000000001000000 - 0000000000000001770000006400000000000000000000000000000000010000 - 000000000000000000000000000000000010000000010000000000006E756C6C - 0000000200000006626F756E64734F626A630000000100000000000052637431 - 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 - 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 - 0000017700000006736C69636573566C4C73000000014F626A63000000010000 - 00000005736C6963650000001200000007736C69636549446C6F6E6700000000 - 0000000767726F757049446C6F6E6700000000000000066F726967696E656E75 - 6D0000000C45536C6963654F726967696E0000000D6175746F47656E65726174 - 65640000000054797065656E756D0000000A45536C6963655479706500000000 - 496D672000000006626F756E64734F626A630000000100000000000052637431 - 0000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67 - 000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67 - 000001770000000375726C54455854000000010000000000006E756C6C544558 - 54000000010000000000004D7367655445585400000001000000000006616C74 - 546167544558540000000100000000000E63656C6C54657874497348544D4C62 - 6F6F6C010000000863656C6C546578745445585400000001000000000009686F - 727A416C69676E656E756D0000000F45536C696365486F727A416C69676E0000 - 000764656661756C740000000976657274416C69676E656E756D0000000F4553 - 6C69636556657274416C69676E0000000764656661756C740000000B6267436F - 6C6F7254797065656E756D0000001145536C6963654247436F6C6F7254797065 - 000000004E6F6E6500000009746F704F75747365746C6F6E6700000000000000 - 0A6C6566744F75747365746C6F6E67000000000000000C626F74746F6D4F7574 - 7365746C6F6E67000000000000000B72696768744F75747365746C6F6E670000 - 0000003842494D042800000000000C000000013FF00000000000003842494D04 - 140000000000040000000D3842494D040C00000000055A00000001000000A000 - 00002B000001E0000050A00000053E00180001FFD8FFE000104A464946000102 - 01004800480000FFED000C41646F62655F434D0001FFEE000E41646F62650064 - 8000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518 - 131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14 - 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C0CFFC0001108002B00A003012200021101031101FFDD - 0004000AFFC4013F000001050101010101010000000000000003000102040506 - 0708090A0B010001050101010101010000000000000001000203040506070809 - 0A0B1000010401030204020507060805030C3301000211030421123105415161 - 1322718132061491A1B14223241552C16233347282D14307259253F0E1F16373 - 3516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A4 - 85B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7 - B7C7D7E7F7110002020102040403040506070706053501000211032131120441 - 51617122130532819114A1B14223C152D1F0332462E1728292435315637334F1 - 250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F346 - 94A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747576777 - 8797A7B7C7FFDA000C03010002110311003F00ED3D34BD356762AF9E0B711EF0 - 5CD0D2D2E2D25A76EE1BFDCDF72BBC47A35C8A04F66360656DDD6B9B5B7F79C4 - 347FD249A1AF687B08735C25AE064107BB4A0D67A656DDC31EB3673EA3C6F7FF - 00DB96EF7A9F4701DD36A03863ACAFFCCB2C68FF00A29C7880B90AD698F1E586 - 42447A0B49E9A5E9AB1B12F4D378D9385AFE9A5E9AB1B12D8971AB85AFE9A5E9 - AB1B12D89712B85AFE9A5E9AB1B12D8971AB85AFE9A5E9AB1B12D89712B85AFE - 9A5E9AB1B12D89712B85AFE9A5E9AB05A1A0B8E800927C828BA5B58B4B46C224 - 7BD931F0DDB7FE9A64F3C202E7211F34C71CA5B0B43E9A5E9A2D2EAEFA9B7547 - 731E25A7E71FC14FD34E1901008360EA08418D685FFFD0F44D8839741BB1ADC7 - 6C6FBD8FAEB9D06E2D73BDDF72BBB142EA196B363C1224105A4B5C08E1CC7B7D - CC729B89653C6F54E9FD570AA6B6B7B1CF2D97BF576D3FBA07B59DBE97E916DF - 4DA725984D183F66F4097901E6E2EF53745DEABDFBFDDEAB7DFF00F411EFE8E6 - E3FA6C9C8757DEB0EADA48F036B2865BFF004D5FC7C7A28A194E3B0574D6218C - 1DBC79F739DBBE9B93F2E696488133A8BF97D2B31E1C788563888FE7F597CCD2 - 35F56EC713EEB5215F57EE70FE42E5A3B12D8A3BF12BE9CEF4FAB78E27DD6FF7 - A5E9F56F1C4FBADFEF5A3B12D895F895539DE9F56F1C4FBADFEF4FE9F55FDEC4 - FF0036DFEF5A1B12D895F895539FE9F55FDEC4FBADFEF4DE9F56F1C4FBADFEF5 - A3B12D895F895539DE9F56F1C4FBAEFEF4BD3EADE389F75BFDEB47625B12BF12 - AA73BD3EAD3F4B123E16FF007A5E9F55F1C49F18B63FF325A3B12D897D4FDAAA - 732DAFAAFA4F938B1B5D302D9E0F9A0F56603855BF6932C07716309E3FD2B7D8 - B676A03F0F0DDF4E8ADC39D5808FFA95067C5EE0F9AB42355F8E5C3D1A1D09B3 - D1B0CFFC1FFDF9EAFEC460C102388D23884FB14D8FD308C6EF8408FD8B25A927 - B9B7FFD1F51DA98B11124ED51A213592A4187E088925AAB447B0F8A5B0F8FE0A - 69D2D548F61F14B61F144492D55A23D87C52D87C54D3A5AA91EC3E296C3E2A69 - 25AAB461B0F8A5B0F8A2264B5568C361F1FC12D87C511325AA986C3E3F82635C - A2A64B55300C8007825B54D3A5AA9FFFD93842494D0421000000000053000000 - 01010000000F00410064006F00620065002000500068006F0074006F00730068 - 006F00700000001200410064006F00620065002000500068006F0074006F0073 - 0068006F007000200043005300000001003842494D0406000000000007000500 - 0100010100FFE11934687474703A2F2F6E732E61646F62652E636F6D2F786170 - 2F312E302F003C3F787061636B657420626567696E3D27EFBBBF272069643D27 - 57354D304D7043656869487A7265537A4E54637A6B633964273F3E0A3C783A78 - 6D706D65746120786D6C6E733A783D2761646F62653A6E733A6D6574612F2720 - 783A786D70746B3D27584D5020746F6F6C6B697420332E302D32382C20667261 - 6D65776F726B20312E36273E0A3C7264663A52444620786D6C6E733A7264663D - 27687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264 - 662D73796E7461782D6E73232720786D6C6E733A69583D27687474703A2F2F6E - 732E61646F62652E636F6D2F69582F312E302F273E0A0A203C7264663A446573 - 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 - 382D306461362D313164622D393366622D616463643939616537623064270A20 - 20786D6C6E733A657869663D27687474703A2F2F6E732E61646F62652E636F6D - 2F657869662F312E302F273E0A20203C657869663A436F6C6F7253706163653E - 313C2F657869663A436F6C6F7253706163653E0A20203C657869663A50697865 - 6C5844696D656E73696F6E3E3337353C2F657869663A506978656C5844696D65 - 6E73696F6E3E0A20203C657869663A506978656C5944696D656E73696F6E3E31 - 30303C2F657869663A506978656C5944696D656E73696F6E3E0A203C2F726466 - 3A4465736372697074696F6E3E0A0A203C7264663A4465736372697074696F6E - 207264663A61626F75743D27757569643A38643632323166382D306461362D31 - 3164622D393366622D616463643939616537623064270A2020786D6C6E733A70 - 64663D27687474703A2F2F6E732E61646F62652E636F6D2F7064662F312E332F - 273E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A4465 - 736372697074696F6E207264663A61626F75743D27757569643A386436323231 - 66382D306461362D313164622D393366622D616463643939616537623064270A - 2020786D6C6E733A70686F746F73686F703D27687474703A2F2F6E732E61646F - 62652E636F6D2F70686F746F73686F702F312E302F273E0A20203C70686F746F - 73686F703A486973746F72793E3C2F70686F746F73686F703A486973746F7279 - 3E0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A446573 - 6372697074696F6E207264663A61626F75743D27757569643A38643632323166 - 382D306461362D313164622D393366622D616463643939616537623064270A20 - 20786D6C6E733A746966663D27687474703A2F2F6E732E61646F62652E636F6D - 2F746966662F312E302F273E0A20203C746966663A4F7269656E746174696F6E - 3E313C2F746966663A4F7269656E746174696F6E3E0A20203C746966663A5852 - 65736F6C7574696F6E3E37322F313C2F746966663A585265736F6C7574696F6E - 3E0A20203C746966663A595265736F6C7574696F6E3E37322F313C2F74696666 - 3A595265736F6C7574696F6E3E0A20203C746966663A5265736F6C7574696F6E - 556E69743E323C2F746966663A5265736F6C7574696F6E556E69743E0A203C2F - 7264663A4465736372697074696F6E3E0A0A203C7264663A4465736372697074 - 696F6E207264663A61626F75743D27757569643A38643632323166382D306461 - 362D313164622D393366622D616463643939616537623064270A2020786D6C6E - 733A7861703D27687474703A2F2F6E732E61646F62652E636F6D2F7861702F31 - 2E302F273E0A20203C7861703A437265617465446174653E323030362D30372D - 30375431323A35323A32372B30313A30303C2F7861703A437265617465446174 - 653E0A20203C7861703A4D6F64696679446174653E323030362D30372D303754 - 31323A35323A32372B30313A30303C2F7861703A4D6F64696679446174653E0A - 20203C7861703A4D65746164617461446174653E323030362D30372D30375431 - 323A35323A32372B30313A30303C2F7861703A4D65746164617461446174653E - 0A20203C7861703A43726561746F72546F6F6C3E41646F62652050686F746F73 - 686F702043532057696E646F77733C2F7861703A43726561746F72546F6F6C3E - 0A203C2F7264663A4465736372697074696F6E3E0A0A203C7264663A44657363 - 72697074696F6E207264663A61626F75743D27757569643A3864363232316638 - 2D306461362D313164622D393366622D616463643939616537623064270A2020 - 786D6C6E733A73745265663D27687474703A2F2F6E732E61646F62652E636F6D - 2F7861702F312E302F73547970652F5265736F7572636552656623270A202078 - 6D6C6E733A7861704D4D3D27687474703A2F2F6E732E61646F62652E636F6D2F - 7861702F312E302F6D6D2F273E0A20203C7861704D4D3A446572697665644672 - 6F6D207264663A7061727365547970653D275265736F75726365273E0A202020 - 3C73745265663A696E7374616E636549443E757569643A38643632323166342D - 306461362D313164622D393366622D6164636439396165376230643C2F737452 - 65663A696E7374616E636549443E0A2020203C73745265663A646F63756D656E - 7449443E61646F62653A646F6369643A70686F746F73686F703A633838336237 - 36382D306461322D313164622D393366622D6164636439396165376230643C2F - 73745265663A646F63756D656E7449443E0A20203C2F7861704D4D3A44657269 - 76656446726F6D3E0A20203C7861704D4D3A446F63756D656E7449443E61646F - 62653A646F6369643A70686F746F73686F703A38643632323166372D30646136 - 2D313164622D393366622D6164636439396165376230643C2F7861704D4D3A44 - 6F63756D656E7449443E0A203C2F7264663A4465736372697074696F6E3E0A0A - 203C7264663A4465736372697074696F6E207264663A61626F75743D27757569 - 643A38643632323166382D306461362D313164622D393366622D616463643939 - 616537623064270A2020786D6C6E733A64633D27687474703A2F2F7075726C2E - 6F72672F64632F656C656D656E74732F312E312F273E0A20203C64633A666F72 - 6D61743E696D6167652F6A7065673C2F64633A666F726D61743E0A203C2F7264 - 663A4465736372697074696F6E3E0A0A3C2F7264663A5244463E0A3C2F783A78 - 6D706D6574613E0A202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020200A20202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020200A2020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020202020200A202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020200A20202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 0A20202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020200A2020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020200A202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020200A20202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020202020200A2020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020202020202020200A202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020200A20 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020200A20202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020200A2020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020200A202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020200A20202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020202020202020200A2020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020202020202020202020200A202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 200A202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020200A20202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020200A2020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020200A202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020200A20202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020202020202020202020200A2020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020202020202020202020202020200A - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020200A202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020200A20202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020200A2020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020200A202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020200A20202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020202020202020202020202020200A2020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20200A2020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020200A202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020200A20202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020202020202020202020202020200A2020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020202020202020202020202020200A202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020200A20202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 0A20202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 20202020200A2020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020202020200A202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 2020202020202020202020202020200A20202020202020202020202020202020 - 2020202020202020202020202020202020202020202020202020202020202020 - 202020202020200A3C3F787061636B657420656E643D2777273F3EFFE20C5849 - 43435F50524F46494C4500010100000C484C696E6F021000006D6E7472524742 - 2058595A2007CE00020009000600310000616373704D53465400000000494543 - 20735247420000000000000000000000000000F6D6000100000000D32D485020 - 2000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000011637072740000015000000033646573 - 63000001840000006C77747074000001F000000014626B707400000204000000 - 147258595A00000218000000146758595A0000022C000000146258595A000002 - 4000000014646D6E640000025400000070646D6464000002C400000088767565 - 640000034C0000008676696577000003D4000000246C756D69000003F8000000 - 146D6561730000040C0000002474656368000004300000000C72545243000004 - 3C0000080C675452430000043C0000080C625452430000043C0000080C746578 - 7400000000436F70797269676874202863292031393938204865776C6574742D - 5061636B61726420436F6D70616E790000646573630000000000000012735247 - 422049454336313936362D322E31000000000000000000000012735247422049 - 454336313936362D322E31000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000058595A - 20000000000000F35100010000000116CC58595A200000000000000000000000 - 000000000058595A200000000000006FA2000038F50000039058595A20000000 - 00000062990000B785000018DA58595A2000000000000024A000000F840000B6 - CF64657363000000000000001649454320687474703A2F2F7777772E6965632E - 636800000000000000000000001649454320687474703A2F2F7777772E696563 - 2E63680000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000064657363000000000000002E494543 - 2036313936362D322E312044656661756C742052474220636F6C6F7572207370 - 616365202D207352474200000000000000000000002E4945432036313936362D - 322E312044656661756C742052474220636F6C6F7572207370616365202D2073 - 5247420000000000000000000000000000000000000000000064657363000000 - 000000002C5265666572656E63652056696577696E6720436F6E646974696F6E - 20696E2049454336313936362D322E3100000000000000000000002C52656665 - 72656E63652056696577696E6720436F6E646974696F6E20696E204945433631 - 3936362D322E3100000000000000000000000000000000000000000000000000 - 0076696577000000000013A4FE00145F2E0010CF140003EDCC0004130B00035C - 9E0000000158595A2000000000004C09560050000000571FE76D656173000000 - 0000000001000000000000000000000000000000000000028F00000002736967 - 20000000004352542063757276000000000000040000000005000A000F001400 - 19001E00230028002D00320037003B00400045004A004F00540059005E006300 - 68006D00720077007C00810086008B00900095009A009F00A400A900AE00B200 - B700BC00C100C600CB00D000D500DB00E000E500EB00F000F600FB0101010701 - 0D01130119011F0125012B01320138013E0145014C0152015901600167016E01 - 75017C0183018B0192019A01A101A901B101B901C101C901D101D901E101E901 - F201FA0203020C0214021D0226022F02380241024B0254025D02670271027A02 - 84028E029802A202AC02B602C102CB02D502E002EB02F50300030B0316032103 - 2D03380343034F035A03660372037E038A039603A203AE03BA03C703D303E003 - EC03F9040604130420042D043B0448045504630471047E048C049A04A804B604 - C404D304E104F004FE050D051C052B053A05490558056705770586059605A605 - B505C505D505E505F6060606160627063706480659066A067B068C069D06AF06 - C006D106E306F507070719072B073D074F076107740786079907AC07BF07D207 - E507F8080B081F08320846085A086E0882089608AA08BE08D208E708FB091009 - 25093A094F09640979098F09A409BA09CF09E509FB0A110A270A3D0A540A6A0A - 810A980AAE0AC50ADC0AF30B0B0B220B390B510B690B800B980BB00BC80BE10B - F90C120C2A0C430C5C0C750C8E0CA70CC00CD90CF30D0D0D260D400D5A0D740D - 8E0DA90DC30DDE0DF80E130E2E0E490E640E7F0E9B0EB60ED20EEE0F090F250F - 410F5E0F7A0F960FB30FCF0FEC1009102610431061107E109B10B910D710F511 - 131131114F116D118C11AA11C911E81207122612451264128412A312C312E313 - 03132313431363138313A413C513E5140614271449146A148B14AD14CE14F015 - 12153415561578159B15BD15E0160316261649166C168F16B216D616FA171D17 - 411765178917AE17D217F7181B18401865188A18AF18D518FA19201945196B19 - 9119B719DD1A041A2A1A511A771A9E1AC51AEC1B141B3B1B631B8A1BB21BDA1C - 021C2A1C521C7B1CA31CCC1CF51D1E1D471D701D991DC31DEC1E161E401E6A1E - 941EBE1EE91F131F3E1F691F941FBF1FEA20152041206C209820C420F0211C21 - 48217521A121CE21FB22272255228222AF22DD230A23382366239423C223F024 - 1F244D247C24AB24DA250925382568259725C725F726272657268726B726E827 - 182749277A27AB27DC280D283F287128A228D429062938296B299D29D02A022A - 352A682A9B2ACF2B022B362B692B9D2BD12C052C392C6E2CA22CD72D0C2D412D - 762DAB2DE12E162E4C2E822EB72EEE2F242F5A2F912FC72FFE3035306C30A430 - DB3112314A318231BA31F2322A3263329B32D4330D3346337F33B833F1342B34 - 65349E34D83513354D358735C235FD3637367236AE36E937243760379C37D738 - 143850388C38C839053942397F39BC39F93A363A743AB23AEF3B2D3B6B3BAA3B - E83C273C653CA43CE33D223D613DA13DE03E203E603EA03EE03F213F613FA23F - E24023406440A640E74129416A41AC41EE4230427242B542F7433A437D43C044 - 034447448A44CE45124555459A45DE4622466746AB46F04735477B47C0480548 - 4B489148D7491D496349A949F04A374A7D4AC44B0C4B534B9A4BE24C2A4C724C - BA4D024D4A4D934DDC4E254E6E4EB74F004F494F934FDD5027507150BB510651 - 50519B51E65231527C52C75313535F53AA53F65442548F54DB5528557555C256 - 0F565C56A956F75744579257E0582F587D58CB591A596959B85A075A565AA65A - F55B455B955BE55C355C865CD65D275D785DC95E1A5E6C5EBD5F0F5F615FB360 - 05605760AA60FC614F61A261F56249629C62F06343639763EB6440649464E965 - 3D659265E7663D669266E8673D679367E9683F689668EC6943699A69F16A486A - 9F6AF76B4F6BA76BFF6C576CAF6D086D606DB96E126E6B6EC46F1E6F786FD170 - 2B708670E0713A719571F0724B72A67301735D73B87414747074CC7528758575 - E1763E769B76F8775677B37811786E78CC792A798979E77A467AA57B047B637B - C27C217C817CE17D417DA17E017E627EC27F237F847FE5804780A8810A816B81 - CD8230829282F4835783BA841D848084E3854785AB860E867286D7873B879F88 - 04886988CE8933899989FE8A648ACA8B308B968BFC8C638CCA8D318D988DFF8E - 668ECE8F368F9E9006906E90D6913F91A89211927A92E3934D93B69420948A94 - F4955F95C99634969F970A977597E0984C98B89924999099FC9A689AD59B429B - AF9C1C9C899CF79D649DD29E409EAE9F1D9F8B9FFAA069A0D8A147A1B6A226A2 - 96A306A376A3E6A456A4C7A538A5A9A61AA68BA6FDA76EA7E0A852A8C4A937A9 - A9AA1CAA8FAB02AB75ABE9AC5CACD0AD44ADB8AE2DAEA1AF16AF8BB000B075B0 - EAB160B1D6B24BB2C2B338B3AEB425B49CB513B58AB601B679B6F0B768B7E0B8 - 59B8D1B94AB9C2BA3BBAB5BB2EBBA7BC21BC9BBD15BD8FBE0ABE84BEFFBF7ABF - F5C070C0ECC167C1E3C25FC2DBC358C3D4C451C4CEC54BC5C8C646C6C3C741C7 - BFC83DC8BCC93AC9B9CA38CAB7CB36CBB6CC35CCB5CD35CDB5CE36CEB6CF37CF - B8D039D0BAD13CD1BED23FD2C1D344D3C6D449D4CBD54ED5D1D655D6D8D75CD7 - E0D864D8E8D96CD9F1DA76DAFBDB80DC05DC8ADD10DD96DE1CDEA2DF29DFAFE0 - 36E0BDE144E1CCE253E2DBE363E3EBE473E4FCE584E60DE696E71FE7A9E832E8 - BCE946E9D0EA5BEAE5EB70EBFBEC86ED11ED9CEE28EEB4EF40EFCCF058F0E5F1 - 72F1FFF28CF319F3A7F434F4C2F550F5DEF66DF6FBF78AF819F8A8F938F9C7FA - 57FAE7FB77FC07FC98FD29FDBAFE4BFEDCFF6DFFFFFFEE000E41646F62650064 - 4000000001FFDB00840004030303030304030304060403040607050404050708 - 0606070606080A0809090909080A0A0C0C0C0C0C0A0C0C0C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C010405050807080F0A0A0F140E0E0E14140E0E0E0E14 - 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - 0C0C0C0C0C0C0C0C0C0C0CFFC00011080064017703011100021101031101FFDD - 0004002FFFC400B2000101000105010000000000000000000000010203040607 - 0805010101000203010000000000000000000000010405020306071000010205 - 020109050505040B01000000010002120313040511215131416191D114D40607 - 812255951771A1B13252F13324154542722325C16282A2B273A3549465851611 - 010100020004030407050607000000000011010212031304216105314151A171 - 81C12232B20691D172A2D2F0B142529214C2E2F22333B334FFDA000C03010002 - 110311003F00F4B525ECEBCFC292948535690A4A5214D291292BC442994A4292 - 711169A94894D5A429A5214D290A694819494853D1290A4948534A429A5214D2 - 90A69429EE948534A42994A429A52148FB5290A7D6948534A42994A429A52149 - 290A65290A65290A6948534A42927110A453888534A42994A42994A404B29485 - 34A429A522534A45A69C44291294852E64A429A523FFD0F50535EB6B45169A52 - 14D2AC4A4948196948534A90A7EC1D2956235AD700E690E69E42370948B48254 - 8534AB0A695214D5AB0A6A548534AB0A7FB1290A695214D28532948534A429A5 - 214D28534A429A5214928534AB0A695214FA128534A429A5214D5A2534A45A69 - 5614F82548535290A6AD214D290A6948534A429A944A6AD22996944A6948534A - 2D3D5290A694894D290A6948FFD1F55D25EA389A68524A429A506CADC0E3CFB9 - FC352B8EDBCC672B8D6E6387CFF3D58CE7D2C4D9DE5F4C047BB2A506EBA6FB3B - FC43BF26F2D62E3B8DB6FC3877E797A69F8F6C6194A67A8B990458E2A5D95BB8 - ED3AF2706BDBEC6161FF00A653A9B63DB97567B8EDF1ECCD695DF907CD53C479 - AF30B1846F059B093F646699EB056472A6CC2E77AA6BA7E1D7EC6DBD3833A45C - 79870B3A7BE78C7DEEB2CCC3A9826C401E888CB2E3D2564F331C3965E37EA69A - EFFE6C39E53DD75548534A44A6948534A45A6948534A90A695529A711169A521 - 4F44A910CB4AAA25A522532948534A4532D2A2534A2D3D12AC29F3A5214C2711 - 129A5429EC948534AB169A522524A8534AA534E20A652A429A55853EA5690A6A - 5214D290A695214D28534A429A5214D2AC2925214CA5214D2A3FFFD2F5AD35E8 - EB530A7D0945A69462E0F960CC943598C11307170DC299F1C45C7878B82E1AE5 - B6136E2C4681B69713A4B34D8402612C3ED690B6BDAE9C7C8C793C6FAAFF00DB - EEF6F39B7C9CC2DB350B0089746FDB5CBA74EE3C1B4C865C3DA7572EEE576F1D - 5CDE7D70AF244D6B7CFDE65B7076BBB7B6B860E34B50E3D7314EF74E18F5BE9B - CCE3ED75CFC2E3E6ECBA656B6B3CA6948534A42994A14CA50A69404B4A14D285 - 34A429A5214FA129129A522D34A429A5214D290A65290A69429F4250A69429A5 - 214D289014A45A7FB128534A429A5214FA12894D29169A5129F42522D34A2534 - A1068354A46CE5E46D2792DB3AB7B09D1C6CA44EBB6B4F268E3218F03DAB036F - 50E463338AFF000E33BFE4C6CC8C76DCCCFBA7D3F77FBD8CDC9DB48DEE245E49 - 6F3BA6D8DDCB68FB4BA5003DABA33EAFDAE3DBB671F4EBBEBF9B573FF65CDF85 - FAF1FBDAF6B73677F2ABD94F9771275D2394F0F6EA3947BA7956C795CFE5F375 - E2D36C6D8F8EB9AC6DF97B6999B6265AF4CAEEAE2535290A6528534A47FFD3F5 - FC0B7D5AC29A52065A50A694751F99677F29F355FC91A319384A9ED68E4DD907 - 37F702F4BE91AF1E9B6BF0CBC67EA5C70EDCBE67C719D7FD3FF524BCE68DFCCB - 6B9ED9E571DC346E737AB4FBCB9E9DB386FDC365E49C837EA75B02ED3BF63E7D - B81C5CC2277E12D6ABD63978D74C671EECBDE7E9CDF6DBB6DAE33F8BC3E89877 - 8535E62BD214D284094204A429A950A695481290A69429AB48532A5214FA15A2 - 534A2D3528197A250A6AD214FA14A14D290A6AD214D28533C1290814A40CB4A4 - 29A52025AB48534A841D095614D4A253569081291604A44A6948F91E6564C18B - 6B658639D32EEC65964E05D29EC9979258E63DA08D5AE692D70FD2569BD67999 - D3B5DB38F8EBF9F5B8FAF1E0CDECB5C679D8BE7F972E59333D91B6B16C5849D2 - 98C01B1DA3E44D9000D80602F973341FF282D0EDDD733A775D33F549F667F95B - 2C72F5E2F1D9C03CC3E709AC8F4B3BA277D440D67FC6E6AF1BDF73B9FB7BB2DC - F235D31EF713F23E76E32DE7E9D20C912249C65C4C9835D5EF74BB8B66B0BF4D - BDD0F769F9B488EEB61FA3BA9AF77CCC6D9F6E9ECF77E2D589EB3C39E4EB9C63 - FC5F665DAD0742FACD7928409420E84A14D2A3FFD4F64C0B755AF20294203A72 - 252102523A5FD58B3C83BCCB622CADCCE9D712A1952E434BA6386849886FF960 - 7127920FB1CBD47A0F3B4D37DB8F38C627BDE67F5276BBF3FB5C74F5CEDB6BB6 - 3C35F1CF8FDD70D9AE18FB775C5FDC4665EB1DBD80EF6F04687474C61A4DE5DF - FC4739BCEC5E8399EA1CBCEDC3CBC5CFC76FB9AFCFEF7F2FD6F33D97E98EE799 - 8BCECE3978F87E2DFF00A7F9BEA70BCBF9D728F8998CB3EE968D04BE7CC35EE3 - 400F26DA6BC21682B1BB8DB99D3DB6CE7C718F663C35FEAF9BD9767E89DA7233 - 8FBBC59FF36FF7BFE5F93B7BCA779E43F2CCC9796B6C4E6EFB2E587FCCEEF179 - 89D3747B74743FC0C2D041FEC8E45E079BDE6FCCFC55BFCE3DCE6D6FEA7E0A6C - D6B2E24DDE3E41D4BAEB216391B290DD012019971692DBA93B0116AB51DF7A86 - 7B6E5F1E34DB7F1935C6D9FCBAED9F93B791DBE399B4B8C7ECFDEDBC9F5630B3 - E54B9B2F1D947B6600E6BA5E2B2D35875FD2F65916B87483A2CCE5F719DB5C6D - 9D738B8F63AB6E5CCE71599F5530EDD4BB1B9601A3524E1F31A01FF82BB3ABE5 - 971E0691F577CBE06BDCF27F29CBF8157ABE49C0C59EB0601E746E3F2A4F461B - 33E014EAF92F03703D52C4BB718CCB1FFE3E63C0A75BCB2701F54B123FA5E5BE - 4F98F029D5F2C9C09F54F103FA665BE4F98F02A75BCB27007D55C3FC372DF27C - C7814EB7964E04FAAB87F86E5BE4F98F02AF5BCB2702FD55C39E4C6E5BE4F98F - 02A75BCB2701F55311F0CCB7C9F31E053ADE59380FAA788F8665BE4F98F02AF5 - BCB2702FD52C4FC332DF27CC7814EB7964E03EA9627E1996F93E63C0A75BCB27 - 02FD51C4FC332DF27CC7814EAF964E04FAA589F8665BE4F97F029D5F2C9C01F5 - 4B13F0CCB7C9F31E053ADE593813EA9E23E1996F93E63C0A75BCB2701F55311F - 0CCB7C9F31E053ADE593813EAAE1FE1B96F93E63C0A75BCB2701F5570FF0CCB7 - C9F31E053ADE59383CCFAAB87F86E5BE4F98F029D5F2C9C0A3D54C41FE9996F9 - 3E63C0A757CB2702FD52C49FE9996F93E63C0A75BCB270317FAAB88672E2F2FE - CC3664FE16054EB7964E062CF5630EF3A0C5E5FDB85CD0FC6C0275BCB27079B3 - FAA988E7C665BE4F98F02AF5BCB270327FAA7E5F956D367CF97736F318E96D95 - 6973677F6F733AA3A1264C99B6AD99321E781AE5ACE7FA96DCAE7E9CAC72F6CE - 37FF0014DB875FA73C3C3FEADB564F2FB6C6DA676E2C627BBC3F7B1FAA788E4F - E5996D47FE9F31E056CFADE596374D0FAA988D5A3F9665BDE3A0FF0027CC7302 - 7FEC7A13ADE59381B7BDF3CD879865DBE2AD2D725693E75ED843713F1B90B663 - 0B2F64BB5A975692E583B6D13B7E95A5F5AE671769B62671E3A7FECD59BD96B3 - 9D8FAFF2E5D9F33F9DCAC569FC2DD0E671A96C7939C01381FB96AF97D4C727DD - 9F97F53336E1E3753F9ADD927548D922572EED7BE6FDC5AC5E6BBDE2F26CF931 - C6FD2C64CFA8B3EA3E371C4DDF2085A3F89B4E41B9FBD647E94FFECDFF00833F - 9B574FAB7FE1D7F8BECCBBD202BEA35E5A10742521074252102548FFD5F6940B - 6B58508129081291B0CCDD4CC7E32E6EE5E8264B6FBAE2356B4B886C6E1B6CDD - 623D0172C2E31E293FCA7E51CC48B67E62C197B36D5C664A7CE2E313DC002660 - 0407EBA0FCE1C16169DD7374BC399595C3871BF38E32C26583254892C9522D1E - D7325CB686B1B2F585E001A0003493EC5D9DAF376C732DF69B63C1D239AF269C - 7B321A334EECD9A5A74E660241FB97A9C77FC7ACF8BA381DA9E9D7996E266627 - F94EE1C66C9976C6EECDC773298C7B65BA5EBFA7DE05A3FB3F668B53CFD71899 - 4DB5F7BB3605875C2102B48B029484094840948900E0AD22C0A52241CC948B07 - 32521025224015A4204A4204A45814A44815A42052908355691605291201AA52 - 100E0948B025210251205690A7D094806252102952102B561025210746C94840 - 14A4205691F07CE32E51C13DD7061B665D58CC9F3222C8254BBD92E7BCB8105A - 1AD05C5DAFBA044B4DEB3AE76ED36C63E3AFCB7D73966765E1CDC7D7FDD97DC7 - 59DF33121D6B9274C9446AD1712D93806E9B68E65327ED7172D472F4DBA3E1B7 - EDFED866ED9C71F8E1D51E6B917C6A55BB1CFF00BA94187FDE73D79AEF71B7BF - 2D9F27387C0F496DDDF512EE634BE6365E2AE1B3661DC35D32E6D4B01D3605C1 - 8ED38C2EE0B23F4AEB9FF77BE7DDC1FF0016AE9F55CE3A5AE3CFECCBBE20E85F - 4DAF310812AC204A9081291FFFD6F6DD35B1AC48401290A695634E7DAC9B9913 - 2DAE25B66C89CD74B9B2DE226B98E1A39A41E50414C6C91C3AEB1BE6EC007330 - EC6E7712DFDD5BCD9D42FE53799A263F564E0398BCCB7FEA73CEEB8EDCBD36F1 - F667E4EED77714CBF9A32643ED2F3CA5E6089ED2D98D958F7DCB3476C454B774 - C69EB5D9A7271AF8F161CAD7C09B8FF50BCE0F2DB5C05DC8913340E9D9B12EC2 - 580069ACC92C151FC9B83EE9FD2B275CF2F4F1F7B8E5D91E40F4EE5F93DB717F - 7D75FCC3CC57E00BCBCD2163583712E53799A0F5AEAE67373BE5D79CD7378174 - D71840948534A429A50A652908129129A522D34A40CB4A429A5214D29081290A - 694894D290A69429A5214D290A6948534A4583A129129A522C0944A612908128 - 40948B4D2894D290A69429A5210250A6944328105A46A0EC41E4D1291F23FF00 - C9E198C74AB69536CA4BB7749B0B9B8B1944F12CB6992DBAF4E8B0F6ED3939F7 - 4FE1CE75FCB1DF8E76F8F7FDAD9DC7A7FE5ABB24DCC9BA9BA8D087E42F9C08FB - 0CFD163E7D2FB6DBDBADFAF6FDEECC775CDC7B33F2C3EBE33098BC35BF74C4D9 - 49B2B7D7532E431B2C177244ED00D4F49DD67F2B95A72B5E1D318D71E4C7DF7D - B7CDDB35BDA6BB6B8429EE94204A429A523FFFD7F71C0B36B1C8129080AB442D - 00124E806E4A946DDDDE267EECD3673123571F67204B82341F6AFF00CCE9F375 - E87C3F868AD1A70DDC83EECD711C2668FF00BC6EB9782C6F2DA75605AE6C335B - F99BFE90B8E52371074294204A1074250812840950812A9014A44815A2C0A508 - 3A12840AD080A50814A102510315A2C0A51204A102A101E0A50812A420554814 - A2C0952240AD520528B004A24094205684078252018A521014A2C1EC4A8D38D9 - CA0977F74177E014E2C3946266CA1CBA8FF65DD8A71E0E16A36078D58438710B - 95C245815A10250812A10A557FFFD0F7542B2ABA610A5210A08F971348E29443 - 03408B6D5069CC68D3A0A61636CE6C5AEDCBAAE68D7916F0BCCD239B40B8E723 - 71070528B0A108529121E84A10A508529085290852841D094842128409421421 - 0F425085284294843A25210A50850214210A50850214A4204A108E094204A421 - 4210A5210A5210A508529087A128C26B019641E4D46BF66A171DB3E0B8584C3A - 06EDD4A0DBCC964F285D7972636D2A19C4FF00AA75EB0AE9ED36F63790AEE708 - 4294842128429523FFD1F7940BBABAE1004A4481291604A4694C95AB874705CB - 194CB132470EAD95A98AC0DB704E25C3544961DB520F0D4F6AE1557BBB7A4F41 - 24A672A7766E9CA7ACA5487771C4F59ED4A44EECDE9EB3DAAD0EECDE627ACF6A - 945EEE389EB3DAAD2140713D67B5290EEEDE27ACF6A521DDDBD3D654A43BBB78 - 9EB3DA94877768E73D65287771C4F59ED4A1DDC713D65287776F17759ED4A43B - B8E27ACAB487776F13D67B54A1DDDBC4F594A1DDDBC4F59ED4A43BBB78BBACF6 - AB489DDDBC5DD67B5287771C4F59ED4A45EEEDE27ACF6A521DDC7313D67B5289 - DDDBC4F59ED4A1DDDBCFAF59ED4A43BB8E27ACF6A521DDC713D67B528BDDDBC5 - DD67B54A1DDDBCFBFDA4EA81DDDBC4F59ED4A27771C49F69ED4A42801B8D79B9 - CA672ACCB0E9B689460E9479C6AB8892E510FD74E64C196AC0B9D420E8D52841 - C12840947FFFD2F7C68B9B890A042810A5210A5080252100E094842129085021 - 4A10A5085284294842810A5210A50850842810A50852842810A042810A50D102 - 14A10A508502140852868810A042810A042942140852885A94585289084A2C28 - 2421003420B0A042942141214A3FFFD3F7E6CAA2EC81B7B504D9053A22A2228D - 1036413640D903DD40D914F7510D914DB5441036D514DB9D10DBF6A29B7372A2 - 1B7ED4536F6221B73206DED45364436453644364536E640D910D91536D505DB4 - ED40D910DB440D90364542886DCCAAAEDCEA06C8E27BBCE8A185041A2AA6CA0B - B73A227BA83FFFD9} - end - object Bevel1: TBevel - Left = 0 - Top = 100 - Width = 367 - Height = 6 - Align = alTop - Shape = bsTopLine - end - object JvAnimate1: TJvAnimate - Left = 16 - Top = 118 - Width = 16 - Height = 16 - CommonAVI = aviFindComputer - StopFrame = 8 - end - object Button1: TButton - Left = 276 - Top = 287 - Width = 75 - Height = 25 - Caption = 'Cerrar' - Enabled = False - TabOrder = 1 - OnClick = Button1Click - end - object ListView1: TListView - Left = 16 - Top = 144 - Width = 335 - Height = 129 - Columns = < - item - Caption = 'Hora' - Width = 75 - end - item - Caption = 'Mensaje' - Width = 255 - end> - ReadOnly = True - RowSelect = True - SmallImages = ImageList1 - TabOrder = 2 - ViewStyle = vsReport - end - object TimerCuentaAtrasCerrar: TTimer - Enabled = False - OnTimer = TimerCuentaAtrasCerrarTimer - Left = 16 - Top = 288 - end - object TimerCuentaAtrasCargar: TTimer - Enabled = False - Interval = 10 - OnTimer = TimerCuentaAtrasCargarTimer - Left = 56 - Top = 288 - end - object XPManifest1: TXPManifest - Left = 96 - Top = 288 - end - object ImageList1: TImageList - Left = 144 - Top = 288 - Bitmap = { - 494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000008599CD00102890008B99CA00000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000007088E0001048FF0010289000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000E1E7E0009EC39500B0DCAD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000ADB9DD007088E000ABB5D800000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000709F5E003F81200065B25900CEE4CC000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000092A0CA0000000000000000000000 - 0000000000000000000000000000000000000000000000000000D8E0D4005999 - 3B0065CD50005CC7400042AA300083C87A00E0E6DF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000004050B00000000000000000000000 - 00000000000000000000000000000000000000000000D8E0D4005094300065CD - 500079EA600082E077006AD0600057B24700A2C7990000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000929CC3000038F000848EAE00000000000000 - 000000000000000000000000000000000000000000004F9D3B006AD9500079EA - 6000A3ED9600D9E7D8009DED8E006AD060004CAE3B00D5DED200000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000002040C0000038F0000E339500000000000000 - 00000000000000000000000000000000000000000000AAEB9B00A7EC900090ED - 87000000000000000000E3E9E10097E28E006AD0600059A24700D1EAC2000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000A7B1D8005070E0000040FF000030D000BFC3CE000000 - 00000000000000000000000000000000000000000000E1EDDD00CAEBC3000000 - 0000000000000000000000000000E3E9E10082E0770065CD50005EB35900D5EA - CD00000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000007688CB005078E0001048FF000040F0007581A5000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000E3E9E10082E077004CBE400085C1 - 7700D5EACD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000005068D0007090FF001050FF001040F0000E33A4000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000E3EAE10089E07F004CBE - 400094D08600D8E5D30000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000006078D0008098FF003060FF001050FF001D43C3000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000E3EAE100B0ED - A10064BE5000C7DFC30000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000007088E00090A8F00080A0FF006080F0003955A9000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000E4EB - E200CBEAC10096CF8A0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000D4D8E3007088E0006078D0005068D000D6DBE8000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000100000000100010000000000800000000000000000000000 - 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 - FE3FFFFF00000000FE3FF1FF00000000FE3FF0FF00000000FF7FC07F00000000 - FF7F807F00000000FE3F803F00000000FE3F8C1F00000000FC1F9E0F00000000 - FC1FFF0700000000FC1FFF8300000000FC1FFFC300000000FC1FFFE300000000 - FC1FFFFF00000000FFFFFFFF00000000} - end -end diff --git a/Varela/Varela/Source/CargaEDI/uCargaEDI.pas b/Varela/Varela/Source/CargaEDI/uCargaEDI.pas deleted file mode 100644 index 748bddb..0000000 --- a/Varela/Varela/Source/CargaEDI/uCargaEDI.pas +++ /dev/null @@ -1,163 +0,0 @@ -unit uCargaEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ExtCtrls, jpeg, ComCtrls, StdCtrls, JvExComCtrls, JvAnimate, - pngimage, XPMan, ImgList; - -type - TIconoEstado = (ieOK, ieMAL, ieNada); - - TfCargaEDI = class(TForm) - Label13: TLabel; - JvAnimate1: TJvAnimate; - Button1: TButton; - TimerCuentaAtrasCerrar: TTimer; - ListView1: TListView; - Image1: TImage; - Bevel1: TBevel; - TimerCuentaAtrasCargar: TTimer; - XPManifest1: TXPManifest; - ImageList1: TImageList; - procedure FormShow(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure FormCreate(Sender: TObject); - procedure Button1Click(Sender: TObject); - procedure TimerCuentaAtrasCerrarTimer(Sender: TObject); - procedure TimerCuentaAtrasCargarTimer(Sender: TObject); - private - FNumCargasError : Integer; - FNumCargasOK : Integer; - FCuentaAtras : Integer; - procedure OnLoadSuccess(Sender: TObject); - procedure OnLoadError(Sender : TObject); - procedure AnadirMensaje(const aMensaje : String; Icono : TIconoEstado = ieNada); - procedure LanzarCargas; - public - { Public declarations } - end; - -var - fCargaEDI: TfCargaEDI; - -implementation - -{$R *.dfm} - -uses - uCargarFicheros, uDataModuleBase; - -procedure TfCargaEDI.FormShow(Sender: TObject); -begin - FNumCargasOK := 0; - FNumCargasError := 0; - TimerCuentaAtrasCargar.Enabled := True; -end; - -procedure TfCargaEDI.OnLoadError(Sender: TObject); -begin - Beep; - AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': ' + (Sender as TCargarFicherosThread).ErrorText, ieMAL); - - FNumCargasError := FNumCargasError + 1; - if (FNumCargasError = 2) or - ((FNumCargasError = 1) and (FNumCargasOK = 1)) then - begin - JvAnimate1.Visible := False; - JvAnimate1.Active := False; - TimerCuentaAtrasCerrar.Enabled := True; - end; -end; - -procedure TfCargaEDI.OnLoadSuccess(Sender: TObject); -begin - Beep; - AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': Ficheros cargados', ieOK); - - FNumCargasOK := FNumCargasOK + 1; - if (FNumCargasOK = 2) or - ((FNumCargasError = 1) and (FNumCargasOK = 1)) then - begin - JvAnimate1.Visible := False; - JvAnimate1.Active := False; - TimerCuentaAtrasCerrar.Enabled := True; - end; -end; - -procedure TfCargaEDI.FormClose(Sender: TObject; var Action: TCloseAction); -begin - Action := caFree; -end; - -procedure TfCargaEDI.FormCreate(Sender: TObject); -begin - FCuentaAtras := 5; - FNumCargasError := 0; - FNumCargasOK := 0; -end; - -procedure TfCargaEDI.Button1Click(Sender: TObject); -begin - Close; -end; - -procedure TfCargaEDI.AnadirMensaje(const aMensaje: String; - Icono : TIconoEstado = ieNada); -var - AItem : TListItem; -begin - AItem := ListView1.Items.Add; - case Icono of - ieOK : AItem.ImageIndex := 1; - ieMAL : AItem.ImageIndex := 0; - else - AItem.ImageIndex := -1; - end; - AItem.Caption := TimeToStr(Now); - AItem.SubItems.Add(aMensaje); -end; - -procedure TfCargaEDI.LanzarCargas; -begin - if not dmBase.HayConexion then - begin - JvAnimate1.Visible := False; - JvAnimate1.Active := False; - AnadirMensaje('No se encuentra el servidor', ieMAL); - TimerCuentaAtrasCerrar.Enabled := True; - end - else begin - JvAnimate1.Active := True; - AnadirMensaje('Cargando ficheros de ventas'); - TCargarVentasThread.Create('CABVEN.TXT', 'LUGVEN.TXT', - 'ARTVEN.TXT', OnLoadSuccess, OnLoadError); - - AnadirMensaje('Cargando ficheros de inventario'); - TCargarInventarioThread.Create('CABINV.TXT', 'LININV.TXT', - 'CANTINV.TXT', OnLoadSuccess, OnLoadError); - end; -end; - -procedure TfCargaEDI.TimerCuentaAtrasCerrarTimer(Sender: TObject); -begin - Button1.Enabled := True; - TimerCuentaAtrasCerrar.Enabled := False; - if FCuentaAtras = 0 then - Close; - Button1.Caption := 'Cerrar (' + IntToStr(FCuentaAtras) + ')'; - Update; - Application.ProcessMessages; - FCuentaAtras := FCuentaAtras - 1; - TimerCuentaAtrasCerrar.Enabled := True; -end; - -procedure TfCargaEDI.TimerCuentaAtrasCargarTimer(Sender: TObject); -begin - TimerCuentaAtrasCargar.Enabled := False; - Update; - LanzarCargas; -end; - -end. diff --git a/Varela/Varela/Source/ClearFiles.msbuild b/Varela/Varela/Source/ClearFiles.msbuild deleted file mode 100644 index 30f4b9d..0000000 --- a/Varela/Varela/Source/ClearFiles.msbuild +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Varela/Varela/Source/Cliente/AdminPV.bdsproj b/Varela/Varela/Source/Cliente/AdminPV.bdsproj deleted file mode 100644 index e3cd3af..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - AdminPV.dpr - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - ..\..\Output\Debug\Cliente - .\ - ..\Lib - ..\Lib - ..\Lib;..\Base - BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica - EUREKALOG;EUREKALOG_VER6 - - True - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 2 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - Rodax Software S.L. - - 2.0.0.0 - Administración de puntos de venta - - - - Administración de puntos de venta - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Cliente/AdminPV.cfg b/Varela/Varela/Source/Cliente/AdminPV.cfg deleted file mode 100644 index e4b793b..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.cfg +++ /dev/null @@ -1,46 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --E"..\..\Output\Cliente" --N".\" --LE"..\Lib" --LN"..\Lib" --U"..\Lib" --O"..\Lib" --I"..\Lib" --R"..\Lib" --LUBaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Cliente/AdminPV.dof b/Varela/Varela/Source/Cliente/AdminPV.dof deleted file mode 100644 index 105bdb6..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.dof +++ /dev/null @@ -1,480 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir=..\..\Output\Cliente -UnitOutputDir=.\ -PackageDLLOutputDir=..\Lib -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib -Packages=BaseD7;Configuracion;ControlesBaseD7;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica -Conditionals= -DebugSourceDirs= -UsePackages=1 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=1 -Release=1 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName=Rodax Software S.L. -FileDescription= -FileVersion=1.1.1.0 -InternalName=Administración de puntos de venta -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName=Administración de puntos de venta -ProductVersion=1.0.6 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=3 -Item0=..\Lib -Item1=..\Lib;..\Base -Item2=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=0 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Cliente/AdminPV.dpr b/Varela/Varela/Source/Cliente/AdminPV.dpr deleted file mode 100644 index 9946450..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.dpr +++ /dev/null @@ -1,25 +0,0 @@ -program AdminPV; - -uses - ExceptionLog, - Forms, - uLoginForm, - uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, - uMenuUtils in 'uMenuUtils.pas', - uSplash in 'uSplash.pas' {SplashScreen}, - uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, - uIntegerList in '..\Base\uIntegerList.pas', - schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', - schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas'; - -{$R *.res} - -begin - Application.Initialize; - - Application.Title := 'Administración de puntos de venta'; - Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); - Application.Run; - Application.Terminate; -end. - diff --git a/Varela/Varela/Source/Cliente/AdminPV.drc b/Varela/Varela/Source/Cliente/AdminPV.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Cliente/AdminPV.identcache b/Varela/Varela/Source/Cliente/AdminPV.identcache deleted file mode 100644 index 576f2d8b4225c10a95d7a124e4bb9d9c8f65b60c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmd6mL2AS>3`NsjkC7A10lG^kn?eJj?qp>s!qy}z9y^un-lX@fpd|~_t)X5SWc>A? zzV5rOyPhBHm|VGG%+f>jy}_I*u3|4zfGOFDr1!s1lGvAF>`g9SD>J8ebXn{Ii~+1k zg&o>+ApH$(F?#^nPCJMy9fw*#l+9lza)wWKq8$ugEuw;6Wkbs@AQz ztuFn*d3%caTDSPopu=MpGiZw;z|0gK?GS49{{qM$ea9nIzX- dT5ibTH8AsX@;e{vp_djuk01;V*};gl&u>E~Y25$- diff --git a/Varela/Varela/Source/Cliente/AdminPV.rc b/Varela/Varela/Source/Cliente/AdminPV.rc deleted file mode 100644 index 3c6d592..0000000 --- a/Varela/Varela/Source/Cliente/AdminPV.rc +++ /dev/null @@ -1,26 +0,0 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Cliente.ico" -1 VERSIONINFO -FILEVERSION 2,0,0,0 -PRODUCTVERSION 2,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "2.0.0.0\0" - VALUE "InternalName", "Administración de puntos de venta\0" - VALUE "ProductName", "Administración de puntos de venta\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Cliente/AdminPV.res b/Varela/Varela/Source/Cliente/AdminPV.res deleted file mode 100644 index 2d5243fce9ca0ce2c3af7a0a118215f8640cbd1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18368 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 diff --git a/Varela/Varela/Source/Cliente/uAcercaDe.dfm b/Varela/Varela/Source/Cliente/uAcercaDe.dfm deleted file mode 100644 index f4ef396..0000000 --- a/Varela/Varela/Source/Cliente/uAcercaDe.dfm +++ /dev/null @@ -1,959 +0,0 @@ -object fAcercaDe: TfAcercaDe - Left = 531 - Top = 365 - ActiveControl = bAceptar - BorderStyle = bsDialog - Caption = 'Acerca de...' - ClientHeight = 401 - ClientWidth = 427 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object JvGradient1: TJvGradient - Left = 0 - Top = 88 - Width = 427 - Height = 4 - Align = alTop - StartColor = 2971346 - EndColor = 4828405 - end - object Bevel1: TBevel - Left = 128 - Top = 359 - Width = 290 - Height = 9 - Shape = bsTopLine - end - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 427 - Height = 88 - Align = alTop - BevelOuter = bvNone - TabOrder = 0 - object Image1: TImage - Left = -19 - Top = 0 - Width = 450 - Height = 88 - Picture.Data = { - 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF - 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 - 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 - E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 - AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 - 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 - B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 - AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 - 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE - E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 - CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 - AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE - C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 - 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A - 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 - 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B - AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F - 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 - 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 - B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 - 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 - 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 - CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A - 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 - D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 - 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 - B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 - 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 - A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 - 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 - E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B - 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F - CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E - 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 - CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 - 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE - 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 - 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 - 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 - 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 - 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 - 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF - 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 - 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 - 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 - 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 - AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 - 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B - 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 - 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 - 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA - 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 - 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 - 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F - 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A - 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 - 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 - 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A - 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 - 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 - D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC - E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 - 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 - 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 - 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 - 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 - 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 - 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 - E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE - 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 - 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 - E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 - CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 - 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A - F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 - D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 - F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 - D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 - 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 - 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 - 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 - 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE - A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 - 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F - D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 - 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 - 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 - 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 - 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF - 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D - 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 - 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 - 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A - 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 - 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 - BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 - 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA - 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 - C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 - 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B - 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 - 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 - 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF - 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B - 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 - 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 - 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 - 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 - 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 - 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 - 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 - 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 - 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 - 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 - FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 - 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 - 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 - 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 - 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 - 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C - C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 - 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 - D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A - A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D - BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 - 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 - A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA - 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 - 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA - A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 - 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA - A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 - 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 - 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A - ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 - 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 - 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A - A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 - 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 - B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC - E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D - 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 - 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE - 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 - FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 - 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC - EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB - BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 - 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 - C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 - 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 - 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D - 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 - 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 - 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 - 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 - 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 - 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B - CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 - 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 - 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 - B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 - 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 - B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D - 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 - EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D - D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 - E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 - 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D - DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C - 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B - C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 - 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 - C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD - 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 - CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 - DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 - 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 - DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 - 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C - 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 - 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE - EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 - 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 - 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F - F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 - D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B - 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 - FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 - 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 - BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A - E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 - ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D - A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 - EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 - C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 - 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 - 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 - 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE - DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 - 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA - D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F - 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 - F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E - F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B - E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F - 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 - A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 - F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E - 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 - C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 - 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 - 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 - 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 - 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B - 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 - 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 - 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 - AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 - 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 - CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 - 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E - 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD - 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 - 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC - 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 - 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 - C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB - 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 - C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 - 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 - 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 - E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 - 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C - B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 - 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 - 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 - 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 - C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 - 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 - 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 - E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D - FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 - 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 - 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 - 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 - C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB - 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 - BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 - CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 - AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 - E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF - 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 - D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 - C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 - 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E - 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 - 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 - B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 - 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED - F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 - D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 - 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D - E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 - 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 - E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF - FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 - 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA - 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 - 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 - 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 - F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B - 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 - 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 - 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 - 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F - B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C - 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F - 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 - 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 - 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 - 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 - 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B - B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A - 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 - 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 - 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 - 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC - CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 - 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 - 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF - 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA - F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 - CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 - 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 - AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C - 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D - 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 - 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D - B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 - F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD - D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 - 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 - BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 - BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 - 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD - 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B - CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 - 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD - 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E - EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 - 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 - DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D - B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 - D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E - 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 - 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D - E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 - CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 - C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 - DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 - 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 - CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 - 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 - 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C - ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 - 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 - 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED - A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 - 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 - 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C - DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 - 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 - 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B - 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A - A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 - 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD - 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E - EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B - 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 - D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE - 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 - AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 - 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 - 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 - 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF - F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 - 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B - 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 - EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF - 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 - ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 - 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 - 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 - 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 - 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 - E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C - 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 - 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 - A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 - FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB - EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB - 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 - 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 - A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 - 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 - 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 - 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 - 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 - 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D - B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE - EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 - EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 - DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D - 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 - 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 - 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 - 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B - F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A - A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A - B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 - DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD - 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 - AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC - 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D - B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A - FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 - E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B - 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 - DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 - E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 - 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 - 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD - 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 - AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 - C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 - 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 - 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 - A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 - AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 - 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 - 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C - 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D - 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 - 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 - 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E - F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 - CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E - A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD - BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 - 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB - 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A - DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 - B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 - 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 - 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA - A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 - 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 - 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B - 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 - 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C - B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 - 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 - 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD - A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D - 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C - 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F - 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D - A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 - A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 - 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 - 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 - 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 - A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E - 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC - DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 - A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 - 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A - AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D - 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB - 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 - 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 - 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F - A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 - 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E - CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 - 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 - 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 - 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 - 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 - BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 - 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 - A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 - 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 - 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 - 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 - C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 - 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE - 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 - 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D - 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B - 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC - 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 - 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 - 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 - 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 - 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 - 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA - 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B - 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 - 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 - 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 - D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 - BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F - E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 - 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 - E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 - 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 - 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED - C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B - B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D - 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 - 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 - 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 - 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB - BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D - 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 - 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 - 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F - E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 - 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 - 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 - 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F - 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 - 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C - 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 - F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 - 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 - B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 - 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A - 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 - 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 - 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B - AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B - 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 - 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E - 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB - 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 - 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 - 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 - 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE - 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 - 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 - 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 - 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 - 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 - 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 - 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A - A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 - 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 - 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 - 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 - 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 - C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 - DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF - 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD - D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB - FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D - 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE - B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F - 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC - C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 - 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 - 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 - 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D - 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 - CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B - 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF - 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 - C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 - FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 - E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 - E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 - B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA - B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 - 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 - FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 - CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 - 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 - C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 - 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 - 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B - 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 - 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F - D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 - 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D - 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE - 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F - ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 - 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 - 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 - A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 - F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F - 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C - 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 - 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 - 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 - 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 - 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 - 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 - 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 - D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 - D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 - 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD - E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 - 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 - 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 - 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 - C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 - 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 - 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E - 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 - B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 - 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 - 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF - F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B - E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 - 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 - D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 - 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B - 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 - 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 - E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 - 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 - 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 - 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED - 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 - 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A - 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 - 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 - C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F - D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA - BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 - 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E - B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F - 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D - F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 - CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 - 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 - 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A - 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C - 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 - 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 - 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C - 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE - 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 - 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 - B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 - 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 - AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B - ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 - 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C - 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 - EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 - 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB - 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 - 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 - 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 - CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 - 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 - D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 - B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 - 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 - C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 - E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 - 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 - C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF - 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 - 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 - 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 - 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D - 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 - 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B - 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 - DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 - 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 - A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 - 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 - 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C - 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 - 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D - E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E - FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 - 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB - 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B - 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F - 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 - 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 - 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 - 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 - C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 - 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A - C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 - 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 - 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 - 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 - 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 - B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C - 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 - 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B - 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 - 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA - 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 - D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B - B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F - 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 - 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA - B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD - 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C - 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C - C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B - AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB - C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F - 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 - 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C - B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C - 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 - CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B - C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 - 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C - CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 - BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 - 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E - DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 - 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 - 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D - 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 - DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF - EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C - 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 - 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E - F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 - C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 - 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 - A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B - 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D - 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB - 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 - D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 - 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B - 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 - 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 - 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 - 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C - C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 - 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA - 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 - 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F - D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 - 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 - 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 - 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 - E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA - C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A - 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C - B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F - 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 - 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 - E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 - E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C - 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD - 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 - CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 - 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 - E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA - E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 - 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 - 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 - 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F - 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 - 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D - 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 - D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 - 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C - 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 - A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 - 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 - 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E - 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 - 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 - 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 - 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A - 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 - 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 - 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F - FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B - C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC - 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E - D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E - 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 - 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 - ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 - 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D - C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B - 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA - 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 - 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 - 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 - 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 - A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C - 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE - 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E - F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 - 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 - 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 - 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 - 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C - D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE - 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 - 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 - 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 - A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B - 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 - 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D - 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 - B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B - 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 - CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 - 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 - A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 - AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 - 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED - 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 - 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 - C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E - 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 - 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F - C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 - 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 - 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 - C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F - BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 - 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 - 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 - 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE - F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 - 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 - A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 - 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 - 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 - BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 - 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 - 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC - AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA - 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 - B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 - 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC - 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 - 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 - 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 - 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D - 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 - B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB - BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F - D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF - FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E - 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D - 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C - 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 - 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 - C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 - 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 - A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 - CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 - 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A - 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 - CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 - 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF - F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 - BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F - A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 - D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 - 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D - 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 - 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 - 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF - B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B - 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B - 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C - A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 - 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 - 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB - CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 - 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 - 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B - 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 - 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D - EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 - 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC - 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 - 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C - 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 - 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF - F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 - BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 - 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 - 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 - 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 - 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A - 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 - DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F - F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 - 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 - E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D - 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 - A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C - 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E - 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 - 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 - CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 - 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 - A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C - 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 - 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 - A4F1AD784E48C33D1D77E4B1C7F50202003B} - end - end - object bAceptar: TButton - Left = 344 - Top = 367 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Aceptar' - Default = True - ModalResult = 1 - TabOrder = 1 - end - object memModulos: TMemo - Left = 128 - Top = 112 - Width = 289 - Height = 233 - BevelInner = bvNone - BevelOuter = bvNone - BorderStyle = bsNone - ParentColor = True - TabOrder = 2 - end -end diff --git a/Varela/Varela/Source/Cliente/uAcercaDe.pas b/Varela/Varela/Source/Cliente/uAcercaDe.pas deleted file mode 100644 index 693ee22..0000000 --- a/Varela/Varela/Source/Cliente/uAcercaDe.pas +++ /dev/null @@ -1,66 +0,0 @@ -unit uAcercaDe; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls, - uHostManager; - -type - TfAcercaDe = class(TForm) - JvGradient1: TJvGradient; - Panel1: TPanel; - Image1: TImage; - Bevel1: TBevel; - bAceptar: TButton; - memModulos: TMemo; - procedure FormShow(Sender: TObject); - private - FHostManager: THostManager; - public - property HostManager : THostManager read FHostManager write FHostManager; - end; - -var - fAcercaDe: TfAcercaDe; - -implementation - -{$R *.dfm} - -uses JclFileUtils; - -procedure TfAcercaDe.FormShow(Sender: TObject); -var - i : integer; - Obj : TJclFileVersionInfo; -begin - memModulos.Lines.Clear; - - Obj := TJclFileVersionInfo.Create(Application.ExeName); - try - with Obj do - begin - memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); - memModulos.Lines.Add(CompanyName); - memModulos.Lines.Add(''); - memModulos.Lines.Add('Se autoriza el uso de este programa a:'); - memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); - end; - finally - FreeAndNil(Obj); - end; - - if Assigned(FHostManager) then - begin - memModulos.Lines.Add(''); - memModulos.Lines.Add(''); - memModulos.Lines.Add('Módulos disponibles:'); - for i := 0 to (HostManager.ModulesCount - 1) do - memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName + - ' - v. ' + FHostManager.Modules[i].Module.Version); - end; -end; - -end. diff --git a/Varela/Varela/Source/Cliente/uMenuUtils.pas b/Varela/Varela/Source/Cliente/uMenuUtils.pas deleted file mode 100644 index 8333cce..0000000 --- a/Varela/Varela/Source/Cliente/uMenuUtils.pas +++ /dev/null @@ -1,263 +0,0 @@ -unit uMenuUtils; - -interface - -uses - Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus, - Controls; - - -procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); -procedure SortMenuByTag(Menu : TMainMenu); - -function CreatePageNavPane(const APageList : TJvCustomPageList; - ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; - -procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; - AMenuItem: TMenuItem; AImageList : TCustomImageList; - AStyleManager : TJvNavPaneStyleManager); overload; - -function getSubMenu(Const pMenu: TMainMenu; Const pCaption: String): TMenuItem; -procedure copiarItemsMenu(MenuDestino: TMenuItem; pMenu: TMenuItem); - -procedure PopulateNavPagePane(AParentControl : TWinControl; - AMenuItem: TMenuItem; AImageList : TCustomImageList; - AStyleManager : TJvNavPaneStyleManager); overload; - - - - - -implementation - -uses - ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils, - ExtCtrls, Graphics; - -type - TAssignCallback = procedure(Source, Dest: TMenuItem); - - -procedure AssignMenus(Source, Dest: TMenuItem; AImageIndex : Integer; - AssignProc: TAssignCallback); -var - I: Integer; - Item: TMenuItem; -begin - for I := 0 to Source.Count - 1 do - begin - Item := Dest.Find(Source.Items[I].Caption); - if Item = NIL then - begin - Item := TMenuItem.Create(Dest); - Dest.Add(Item); - if Assigned(AssignProc) then - begin - AssignProc(Source.Items[I], Item); - if (Source.Items[I].ImageIndex >= 0) then - Item.ImageIndex := Source.Items[I].ImageIndex + AImageIndex; - end; - end; - AssignMenus(Source.Items[I], Item, AImageIndex, AssignProc); - end; -end; - -procedure AssignMenuItem(Source, Dest: TMenuItem); -begin - Dest.Caption := Source.Caption; - Dest.Hint := Source.Hint; - Dest.Checked := Source.Checked; - Dest.GroupIndex := Source.GroupIndex; - Dest.Tag := Source.Tag; - Dest.Action := Source.Action; - Dest.ImageIndex := Source.ImageIndex; - Dest.ShortCut := Source.ShortCut; - Dest.RadioItem := Source.RadioItem; - Dest.AutoCheck := Source.AutoCheck; - Dest.AutoHotkeys := Source.AutoHotkeys; - Dest.AutoLineReduction := Source.AutoLineReduction; - Dest.Break := Source.Break; - Dest.Default := Source.Default; - Dest.Enabled := Source.Enabled; - Dest.HelpContext := Source.HelpContext; - Dest.Visible := Source.Visible; -end; - -procedure SortMenuItems(MenuItems : TMenuItem); - - function CompareTags(Item1, Item2: Pointer): Integer; - begin - Result := CompareValue(TMenuItem(Item1).Tag, TMenuItem(Item2).Tag); - end; - -var - I: Integer; - AList : TList; -begin - AList := TList.Create; - - try - for I := 0 to MenuItems.Count - 1 do - begin - SortMenuItems(MenuItems.Items[i]); - AList.Add(Pointer(MenuItems.Items[i])); - end; - - AList.Sort(@CompareTags); - - for i := 0 to AList.Count - 1 do - TMenuItem(AList.Items[i]).MenuIndex := i; - - finally - AList.Free; - end; -end; - -procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1); -begin - AssignMenus(Source.Items, Dest.Items, ImageIndex, AssignMenuItem); -end; - -procedure SortMenuByTag(Menu : TMainMenu); -begin - SortMenuItems(Menu.Items); -end; - -function CreatePageNavPane(const APageList : TJvCustomPageList; - ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; -var - APanePage: TJvNavPanelPage; -begin - Result := 0; - APanePage := TJvNavPanelPage.Create(Application); - with APanePage do - begin - Caption := StringReplace(ACaption, '&', '', []); - Action := AAction; - PageList := APageList; - Iconic := False; - ImageIndex := AImageIndex; - Result := PageIndex; - end; -end; - -procedure PopulateNavPagePane(APanePage : TJvNavPanelPage; - AMenuItem: TMenuItem; AImageList : TCustomImageList; - AStyleManager : TJvNavPaneStyleManager); -var - APanel : TScrollBox; - ItemIndex : Integer; -begin - with TJvNavPanelDivider.Create(APanePage) do - begin - Caption := AMenuItem.Caption; - Parent := APanePage; - Top := 100; - Align := alTop; - Enabled := false; - Cursor := crDefault; - end; - - APanel := TScrollBox.Create(APanePage); - with APanel do - begin - Top := 200; - Align := alTop; - Font.Style := []; - BorderStyle := bsNone; - Parent := APanePage; - BevelEdges := []; - BorderStyle := bsNone; - //ParentColor := True; - ParentFont := True; - Color := clRed; - end; - - for ItemIndex := 0 to (AMenuItem.Count - 1) do - begin - if AMenuItem[ItemIndex].Caption <> '-' then - with TTBXLink.Create(Application) do - begin - Parent := APanePage; - Align := alTop; - Tag := AMenuItem[ItemIndex].Tag; - Caption := AMenuItem[ItemIndex].Caption; - Action := AMenuItem[ItemIndex].Action; - Images := AImageList; - ImageIndex := AMenuItem[ItemIndex].ImageIndex; - {if ItemIndex = 0 then - Margins.Top := 20 - else - Margins.Top := 14; - Margins.Bottom := 14; - Margins.Left := 10; - Margins.Right := 10;} - //Invalidate; - end; - end; -end; - -function getSubMenu(const pMenu: TMainMenu; const pCaption: String): TMenuItem; -var - i: Integer; -begin - i:=0; - while ((i < pMenu.Items.Count) and (StringReplace(pMenu.Items[i].Caption,'&','',[]) <> pCaption)) do - inc(i); - Result := pMenu.Items[i]; -end; - -procedure copiarItemsMenu(MenuDestino, pMenu: TMenuItem); -var - i: Integer; - Item: TMenuItem; -begin - for i := 0 to (pMenu.Count - 1) do - begin - Item := TMenuItem.Create(MenuDestino); - Item.Caption := pMenu.Items[i].Caption; - Item.Action := pMenu.Items[i].Action; - MenuDestino.Add(Item); - end; -end; - -procedure PopulateNavPagePane(AParentControl : TWinControl; - AMenuItem: TMenuItem; AImageList : TCustomImageList; - AStyleManager : TJvNavPaneStyleManager); -var - ItemIndex : Integer; - AHeight : Integer; -begin - AHeight := 0; - for ItemIndex := 0 to (AMenuItem.Count - 1) do - begin - if AMenuItem[ItemIndex].Caption <> '-' then - with TTBXLink.Create(Application) do - begin - Parent := AParentControl;//APanel; - Align := alTop; - ParentFont := True; - Tag := AMenuItem[ItemIndex].Tag; - Caption := AMenuItem[ItemIndex].Caption; - Action := AMenuItem[ItemIndex].Action; - Images := AImageList; - ImageIndex := AMenuItem[ItemIndex].ImageIndex; - if ItemIndex = 0 then - Margins.Top := 15 - else - Margins.Top := 8; - Margins.Bottom := 8; - Margins.Left := 10; - Margins.Right := 10; - Height := 18; - Invalidate; - AHeight := AHeight + Margins.Top + Margins.Bottom + Height; - end; - end; - AParentControl.Height := AHeight; - AParentControl.Invalidate; -end; - - -end. - diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp b/Varela/Varela/Source/Cliente/uPantallaPrincipal.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm b/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm deleted file mode 100644 index 7f7fe90..0000000 --- a/Varela/Varela/Source/Cliente/uPantallaPrincipal.dfm +++ /dev/null @@ -1,441 +0,0 @@ -object fPantallaPrincipal: TfPantallaPrincipal - Left = 358 - Top = 250 - Caption = 'Pantalla principal' - ClientHeight = 599 - ClientWidth = 771 - Color = clWindow - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - Menu = HostMenu - OldCreateOrder = False - Position = poScreenCenter - WindowState = wsMaximized - OnCreate = FormCreate - OnDestroy = FormDestroy - PixelsPerInch = 96 - TextHeight = 13 - object pnlContenido: TTBXAlignmentPanel - Left = 0 - Top = 0 - Width = 771 - Height = 580 - Margins.Left = 5 - Margins.Top = 5 - Margins.Right = 5 - Margins.Bottom = 5 - ParentColor = True - Align = alClient - TabOrder = 0 - object JvSyncSplitter1: TJvSyncSplitter - Left = 210 - Top = 5 - Width = 5 - Height = 570 - ResizeStyle = rsPattern - end - object JvNavigationPane: TJvNavigationPane - Left = 5 - Top = 5 - Width = 205 - Height = 570 - ActivePage = pagInicio - Align = alLeft - AutoHeaders = True - Background.Stretch = False - Background.Proportional = False - Background.Center = False - Background.Tile = False - Background.Transparent = False - ButtonHeight = 32 - Colors.ButtonColorFrom = clWhite - Colors.ButtonColorTo = 12435133 - Colors.ButtonHotColorFrom = 13009540 - Colors.ButtonHotColorTo = 13009540 - Colors.ButtonSelectedColorFrom = 14602190 - Colors.ButtonSelectedColorTo = 14602190 - Colors.SplitterColorFrom = 13026246 - Colors.SplitterColorTo = 9211532 - Colors.DividerColorFrom = 15725551 - Colors.DividerColorTo = 13026246 - Colors.HeaderColorFrom = 8684164 - Colors.HeaderColorTo = 8684164 - Colors.FrameColor = 8684676 - Colors.ToolPanelHeaderColorFrom = clWhite - Colors.ToolPanelHeaderColorTo = 12435133 - StyleManager = dmBase.StyleManager - ParentStyleManager = False - LargeImages = ModulesLargeImageList - MaximizedCount = 0 - NavPanelFont.Charset = DEFAULT_CHARSET - NavPanelFont.Color = clWindowText - NavPanelFont.Height = -13 - NavPanelFont.Name = 'Tahoma' - NavPanelFont.Style = [] - NavPanelHotTrackFont.Charset = DEFAULT_CHARSET - NavPanelHotTrackFont.Color = clWindow - NavPanelHotTrackFont.Height = -13 - NavPanelHotTrackFont.Name = 'Tahoma' - NavPanelHotTrackFont.Style = [] - SmallImages = ModulesSmallImageList - object pagInicio: TJvNavPanelPage - Left = 0 - Top = 0 - Width = 203 - Height = 497 - Background.Stretch = False - Background.Proportional = False - Background.Center = False - Background.Tile = False - Background.Transparent = False - Caption = 'Men'#250' principal' - Iconic = True - ImageIndex = 0 - end - end - object pnlBorde: TJvXPContainer - Left = 215 - Top = 5 - Width = 551 - Height = 570 - BoundColor = clActiveCaption - BoundLines = [blLeft, blTop, blRight, blBottom] - Caption = 'pnlBorde' - Align = alClient - object pnlMain: TTBXAlignmentPanel - Left = 1 - Top = 1 - Width = 549 - Height = 568 - Align = alClient - Color = clWindow - TabOrder = 0 - object lblBienvenido: TLabel - Left = 8 - Top = 8 - Width = 210 - Height = 54 - Caption = 'Bienvenido' - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -43 - Font.Name = 'Trebuchet MS' - Font.Style = [] - ParentFont = False - Transparent = True - end - object Label22: TLabel - Left = 116 - Top = 52 - Width = 247 - Height = 22 - Caption = 'Administraci'#243'n de puntos de venta' - Font.Charset = DEFAULT_CHARSET - Font.Color = clGray - Font.Height = -16 - Font.Name = 'Trebuchet MS' - Font.Style = [] - ParentFont = False - Transparent = True - end - end - end - end - object StatusBar: TStatusBar - Left = 0 - Top = 580 - Width = 771 - Height = 19 - Panels = <> - end - object XPManifest1: TXPManifest - Left = 248 - Top = 48 - end - object GeneralActionList: TActionList - Left = 248 - Top = 149 - object actSalir: TAction - Category = 'Archivo' - Caption = '&Salir' - OnExecute = actSalirExecute - end - object actLogin: TAction - Category = 'Archivo' - Caption = 'Login' - OnExecute = actLoginExecute - end - object actAdministracion: TAction - Category = 'Archivo' - Caption = 'Panel de administraci'#243'n' - end - object actCambiarPass: TAction - Category = 'Archivo' - Caption = 'Cambiar mi contrase'#241'a' - Enabled = False - OnExecute = actCambiarPassExecute - end - object actConexion: TAction - Category = 'Archivo' - Caption = 'Configurar conexi'#243'n' - OnExecute = actConexionExecute - end - object actAcerca: TAction - Caption = 'Acerca de...' - OnExecute = actAcercaExecute - end - end - object ModulesSmallImageList: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300004E2000004E2001167D99DE000001504944415478DA - 63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24 - 7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0 - E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B - 28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1 - 1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF - 314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533 - 5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8 - 0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022 - DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3 - 9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3 - 0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001DD4944415478DA - 63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7 - EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B - F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6 - 032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0 - E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377 - DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3 - CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62 - 3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6 - A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057 - FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD - 6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218 - 2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9 - 3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069 - 7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3 - 82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000 - 00000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 43 - Top = 493 - Bitmap = {} - end - object ModulesActionList: TActionList - Left = 11 - Top = 492 - end - object ModulesLargeImageList: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA - B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0 - 87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5 - 6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF - F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B - 3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168 - CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B - D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF - 17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890 - E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC - C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7 - 5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748 - 6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889 - 4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021 - 2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410 - D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684 - CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C - 10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A - D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C - DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76 - 199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D - 9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75 - 3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE - FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003E74944415478DA - D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB - 065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4 - A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78 - E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580 - 8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B - 774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF - 220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9 - 89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726 - F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464 - 80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01 - 2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50 - CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D - 9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF - 7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC - F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE - B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914 - 91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA - 9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8 - B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753 - 2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F - 35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2 - 4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF - 4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C - 15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96 - 73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F - 83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0 - 6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593 - 03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC - 363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D - 0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368 - E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8 - 1B2694FBE012B66F2C0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 75 - Top = 493 - Bitmap = {} - end - object HostManager: THostManager - OnAfterLoad = HostManagerAfterLoad - Left = 276 - Top = 47 - end - object StyleManagerButtons: TJvNavPaneStyleManager - Colors.ButtonColorFrom = clWindow - Colors.ButtonColorTo = clWindow - Colors.ButtonHotColorFrom = 13009540 - Colors.ButtonHotColorTo = 13009540 - Colors.ButtonSelectedColorFrom = 14602190 - Colors.ButtonSelectedColorTo = 14602190 - Colors.ButtonSeparatorColor = clWindow - Colors.SplitterColorFrom = clWindow - Colors.SplitterColorTo = clWindow - Colors.DividerColorFrom = clWindow - Colors.DividerColorTo = clWindow - Colors.HeaderColorFrom = clWindow - Colors.HeaderColorTo = clWindow - Colors.FrameColor = clWindow - Colors.ToolPanelHeaderColorFrom = clWindow - Colors.ToolPanelHeaderColorTo = clWindow - Fonts.NavPanelFont.Charset = DEFAULT_CHARSET - Fonts.NavPanelFont.Color = clWindowText - Fonts.NavPanelFont.Height = -11 - Fonts.NavPanelFont.Name = 'Tahoma' - Fonts.NavPanelFont.Style = [] - Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET - Fonts.NavPanelHotTrackFont.Color = clWindow - Fonts.NavPanelHotTrackFont.Height = -11 - Fonts.NavPanelHotTrackFont.Name = 'Tahoma' - Fonts.NavPanelHotTrackFont.Style = [] - Fonts.DividerFont.Charset = DEFAULT_CHARSET - Fonts.DividerFont.Color = clWindowText - Fonts.DividerFont.Height = -11 - Fonts.DividerFont.Name = 'Tahoma' - Fonts.DividerFont.Style = [] - Fonts.HeaderFont.Charset = DEFAULT_CHARSET - Fonts.HeaderFont.Color = clWindow - Fonts.HeaderFont.Height = -16 - Fonts.HeaderFont.Name = 'Arial' - Fonts.HeaderFont.Style = [] - Theme = nptCustom - Left = 176 - Top = 504 - end - object JvFormStorage: TJvFormStorage - AppStorage = JvAppRegistryStorage - AppStoragePath = 'fPantallaPrincipal\' - VersionCheck = fpvcNocheck - StoredValues = <> - Left = 472 - Top = 120 - end - object JvAppRegistryStorage: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - Root = 'Software\%APPL_NAME%' - SubStorages = <> - Left = 504 - Top = 128 - end - object ApplicationEvents: TApplicationEvents - OnActionExecute = ApplicationEventsActionExecute - Left = 248 - Top = 190 - end - object HostMenu: TJvMainMenu - Images = ModulesSmallImageList - Style = msItemPainter - ImageMargin.Left = 0 - ImageMargin.Top = 0 - ImageMargin.Right = 0 - ImageMargin.Bottom = 0 - ImageSize.Height = 0 - ImageSize.Width = 0 - ItemPainter = JvXPMenuItemPainter1 - Left = 384 - Top = 256 - object Archivo2: TMenuItem - Tag = -9000 - Caption = 'Archivo' - object Cambiarmicontrasea2: TMenuItem - Tag = 1 - Action = actCambiarPass - end - object N3: TMenuItem - Tag = 2 - Caption = '-' - end - object Configurarconexin2: TMenuItem - Tag = 3 - Action = actConexion - end - object Paneldeadministracin2: TMenuItem - Tag = 4 - Action = actAdministracion - Visible = False - end - object N4: TMenuItem - Tag = 5 - Caption = '-' - end - object Salir2: TMenuItem - Tag = 6 - Action = actSalir - end - end - object Ayuda2: TMenuItem - Tag = 10000 - Caption = 'Ayuda' - object Acercade2: TMenuItem - Action = actAcerca - end - end - end - object JvXPMenuItemPainter1: TJvXPMenuItemPainter - SelectionFrameBrush.Color = 13811126 - SelectionFramePen.Color = 6956042 - Left = 424 - Top = 256 - end -end diff --git a/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas b/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas deleted file mode 100644 index 4408715..0000000 --- a/Varela/Varela/Source/Cliente/uPantallaPrincipal.pas +++ /dev/null @@ -1,569 +0,0 @@ - -unit uPantallaPrincipal; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, XPMan, uGUIBase, uCustomEditor, - JvNavigationPane, JvExExtCtrls, JvComponent, Menus, ImgList, - PngImageList, ActnList, uHostManager, JvExControls, JvPageList, JvPanel, - TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, TBXToolPals, TBXLists, - TBXExtItems, TB2ExtItems, TBXMDI, TBXDkPanels, JvSplitter, JvSyncSplitter, - JvXPBar, JvXPCore, JvXPContainer, JvLookOut, JvOutlookBar, Buttons, - JvExButtons, JvBitBtn, JvSpeedButton, JvExStdCtrls, JvButton, JvCtrls, - JvStartMenuButton, JvTransparentButton, JvExComCtrls, JvListView, - JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvBaseDlg, - JvJVCLAboutForm, AppEvnts, JvWaitingGradient, JvGradient, - cxControls, JvComponentBase, JvMenus; - -type - TfPantallaPrincipal = class(TForm, IHostForm) - GeneralActionList: TActionList; - ModulesSmallImageList: TPngImageList; - XPManifest1: TXPManifest; - actSalir: TAction; - ModulesActionList: TActionList; - ModulesLargeImageList: TPngImageList; - pnlContenido: TTBXAlignmentPanel; - JvNavigationPane: TJvNavigationPane; - pnlMain: TTBXAlignmentPanel; - JvSyncSplitter1: TJvSyncSplitter; - StatusBar: TStatusBar; - HostManager: THostManager; - actLogin: TAction; - pagInicio: TJvNavPanelPage; - StyleManagerButtons: TJvNavPaneStyleManager; - JvFormStorage: TJvFormStorage; - JvAppRegistryStorage: TJvAppRegistryStorage; - actAdministracion: TAction; - ApplicationEvents: TApplicationEvents; - actCambiarPass: TAction; - actConexion: TAction; - actAcerca: TAction; - pnlBorde: TJvXPContainer; - HostMenu: TJvMainMenu; - JvXPMenuItemPainter1: TJvXPMenuItemPainter; - Archivo2: TMenuItem; - Ayuda2: TMenuItem; - Cambiarmicontrasea2: TMenuItem; - N3: TMenuItem; - Configurarconexin2: TMenuItem; - Paneldeadministracin2: TMenuItem; - N4: TMenuItem; - Salir2: TMenuItem; - Acercade2: TMenuItem; - lblBienvenido: TLabel; - Label22: TLabel; - procedure FormCreate(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure HostManagerAfterLoad(Sender: TObject; AModuleInfo: TModuleInfo); - procedure Salir1Click(Sender: TObject); - procedure actSalirExecute(Sender: TObject); - procedure actLoginExecute(Sender: TObject); - procedure ApplicationEventsActionExecute(Action: TBasicAction; - var Handled: Boolean); - procedure actCambiarPassExecute(Sender: TObject); - procedure actAcercaExecute(Sender: TObject); - procedure Button1Click(Sender: TObject); - procedure actConexionExecute(Sender: TObject); - private - FContenido : TCustomEditor; - FStartDefaultAction : TBasicAction; - - procedure ShowEmbedded(AEditor : ICustomEditor); - procedure AplicarPerfil; - function FindNavPanePage(ACaption : String) : Integer; - procedure InitializeUI; - procedure OnThemeChange(Sender: TObject); - procedure CopyImages(const SrcList: TPngImageList; var DstList: TPngImageList; - out Index, Count: Integer); - procedure RegisterModule(AModuleInfo : TModuleInfo); - procedure ExecuteActionMenu(Sender : TObject); - protected - function GetWorkPanel : TWinControl; - public - function IsShortcut(var Message: TWMKey): Boolean; override; - procedure OnWorkPanelChanged(AEditor : ICustomEditor); - property WorkPanel : TWinControl read GetWorkPanel; - constructor Create(AOwner: TComponent); override; - end; - -var - fPantallaPrincipal: TfPantallaPrincipal; - -implementation - -uses - PNGImage, uModuleController, uDataModuleBase, Math, uMenuUtils, - uPanelControl, uDataModuleUsuarios, uSplash, uAcercaDe, - uViewBase,UxTheme, Themes; - - -{$R *.dfm} - -function OpenThemeData(hwnd: HWND; pszClassList: LPCWSTR): THandle; stdcall; - external 'uxtheme.dll'; - -function CloseThemeData(hTheme: THandle): HRESULT; stdcall; - external 'uxtheme.dll'; - -function DrawThemeBackground(hTheme: THandle; hdc: HDC; iPartId, iStateId: -Integer; const pRect: TRect; - pClipRect: PRECT): HRESULT; stdcall; - external 'uxtheme.dll'; - -{ -***************************** TfPantallaPrincipal ****************************** -} - -procedure TfPantallaPrincipal.CopyImages(const SrcList: TPngImageList; var DstList: - TPngImageList; out Index, Count: Integer); -begin - Index := -1; - Count := 0; - - if not Assigned(SrcList) or not Assigned(DstList) then - Exit; - - DstList.BeginUpdate; - try - Index := DstList.Count; - DstList.AddImages(SrcList); - Count := SrcList.Count; - finally - DstList.EndUpdate; - end; -end; - -procedure TfPantallaPrincipal.FormCreate(Sender: TObject); -begin - Caption := Application.Title + ' - ' + dmBase.DarVersion; - SplashScreen := TSplashScreen.Create(Application) ; - SplashScreen.Show; - - JvNavigationPane.StyleManager := dmBase.StyleManager; - dmBase.OnThemeChange := Self.OnThemeChange; - Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo - - with HostManager do - begin - BPLPath := ExtractFilePath(Application.ExeName) + '\'; - MainForm := Self; - end; - - actLogin.Execute; -end; - -procedure TfPantallaPrincipal.FormDestroy(Sender: TObject); -begin - HostManager.UnloadModules; -end; - -procedure TfPantallaPrincipal.HostManagerAfterLoad(Sender: TObject; - AModuleInfo: TModuleInfo); -begin - RegisterModule(AModuleInfo); -end; - -procedure TfPantallaPrincipal.RegisterModule(AModuleInfo : TModuleInfo); -var - AModule: TModuleController; - AModuleMenu : TMainMenu; - AIndex: Integer; - ACount: Integer; -begin - AModule := AModuleInfo.Module; - SplashScreen.Texto := 'Cargando ''' + AModule.ModuleName + '''...'; - - CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(ModulesSmallImageList), AIndex, ACount); - CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(ModulesLargeImageList), AIndex, ACount); - - if Assigned(AModule.ModuleMenu) then - begin - AModuleMenu := AModule.ModuleMenu; - MergeMenus(AModuleMenu, Self.Menu, AIndex); - end; -end; - -procedure TfPantallaPrincipal.Salir1Click(Sender: TObject); -begin - Close; -end; - -procedure TfPantallaPrincipal.actSalirExecute(Sender: TObject); -begin - Close; -end; - -procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject); -begin - LockWindowUpdate(Handle); - try - Color := dmBase.StyleManager.Colors.DividerColorTo; - //pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor; - pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor; - with StyleManagerButtons do - begin - Colors.ButtonColorFrom := clWindow; - Colors.ButtonColorTo := clWindow; - Colors.ButtonSeparatorColor := clWindow; - Colors.SplitterColorFrom := clWindow; - Colors.SplitterColorTo := clWindow; - Colors.DividerColorFrom := clWindow; - Colors.DividerColorTo := clWindow; - Colors.HeaderColorFrom := clWindow; - Colors.HeaderColorTo := clWindow; - Colors.FrameColor := clWindow; - Colors.ToolPanelHeaderColorFrom := clWindow; - Colors.ToolPanelHeaderColorTo := clWindow; - - Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom; - Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo; - - Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom; - Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo; - end; - lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo; -{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom; - JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;} - finally - LockWindowUpdate(0); - Refresh; - end; -end; - -function TfPantallaPrincipal.GetWorkPanel: TWinControl; -begin - Result := pnlMain; -end; - -procedure TfPantallaPrincipal.InitializeUI; - - function EsUnModulo(AMenuItem : TMenuItem) : Boolean; - begin - Result := (AMenuItem.Tag >= 0) and (AMenuItem.Tag < 9000) - end; - -var - i : Integer; - AMenuItem : TMenuItem; - APageIndex : Integer; - AStringList : TStringList; - APanel : TScrollBox; -begin - SortMenuByTag(Menu); - - AStringList := TStringList.Create; - AStringList.Duplicates := dupIgnore; - try - for i := 0 to Menu.Items.Count - 1 do - begin - AMenuItem := Menu.Items[i]; - if not EsUnModulo(AMenuItem) then - Continue; - - AStringList.Add(StringReplace(AMenuItem.Caption, '&', '', [])) - end; - - for i := 0 to AStringList.Count - 1 do - begin - with TJvNavPanelDivider.Create(Self) do - begin - Parent := pagInicio; - Top := 100 * i; - Align := alTop; - Caption := AStringList[i]; - ParentFont := True; - if i = 0 then - begin - Enabled := false; - Cursor := crDefault; - end - else - Cursor := crSizeNS; - end; - - APanel := TScrollBox.Create(Self); - with APanel do - begin - Parent := pagInicio; - Top := 101 * i; - if i = AStringList.Count - 1 then - Align := alClient - else - Align := alTop; - BorderStyle := bsNone; - end; - AStringList.Objects[i] := APanel; - end; - - for i := 0 to Menu.Items.Count - 1 do - begin - AMenuItem := Menu.Items[i]; - if not EsUnModulo(AMenuItem) then - Continue; - - if not Assigned(FStartDefaultAction) then - FStartDefaultAction := AMenuItem[0].Action; - - APageIndex := AStringList.IndexOf(StringReplace(AMenuItem.Caption, '&', '', [])); - PopulateNavPagePane(TScrollBox(AStringList.Objects[APageIndex]), AMenuItem, ModulesLargeImageList, StyleManagerButtons); - - // Elimino la imagen que tiene el menú porque queda feo. - AMenuItem.ImageIndex := -1; - end; - finally - AStringList.Free; - end; - - ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; -end; - - -{ var - i : Integer; - AMenuItem : TMenuItem; - APageIndex : Integer; -begin - SortMenuByTag(Menu); - - for i := 0 to Menu.Items.Count - 1 do - begin - AMenuItem := Menu.Items[i]; - if not EsUnModulo(AMenuItem) then - Continue; - - if Pos('Ficheros', AMenuItem.Caption) > 0 then - PopulateNavPagePane(pnlEDI, AMenuItem, ModulesLargeImageList, StyleManagerButtons); - - if Pos('Inventario', AMenuItem.Caption) > 0 then - PopulateNavPagePane(pnlInventario, AMenuItem, ModulesLargeImageList, StyleManagerButtons); - - if Pos('Ventas', AMenuItem.Caption) > 0 then - PopulateNavPagePane(pnlVentas, AMenuItem, ModulesLargeImageList, StyleManagerButtons); - - if Pos('Stock', AMenuItem.Caption) > 0 then - PopulateNavPagePane(pnlStock, AMenuItem, ModulesLargeImageList, StyleManagerButtons); - - // Elimino la imagen que tiene el menú porque queda feo. - AMenuItem.ImageIndex := -1; - end; - JvNavigationPane.ActivePage := pagInicio; - ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute; -end;} - - -procedure TfPantallaPrincipal.actLoginExecute(Sender: TObject); -begin - HostManager.UnloadModules; - - if dmUsuarios.Login then - begin - ShowHourglassCursor; - SplashScreen.Update; - Application.ProcessMessages; - try - HostManager.LoadModule('FicherosEDI.bpl'); - HostManager.LoadModule('VentasTerminadas.bpl'); - HostManager.LoadModule('VentasProceso.bpl'); - HostManager.LoadModule('ReferenciaGenerica.bpl'); - HostManager.LoadModule('Recepciones.bpl'); - HostManager.LoadModule('Devoluciones.bpl'); - HostManager.LoadModule('Traspasos.bpl'); - HostManager.LoadModule('Stock.bpl'); - - InitializeUI; - Application.ProcessMessages; - Visible := True; - AplicarPerfil; - finally - SplashScreen.Update; - SplashScreen.Hide; - SplashScreen.Free; - HideHourglassCursor; - end; - end - else - Application.Terminate; -end; - -function TfPantallaPrincipal.FindNavPanePage(ACaption: String): Integer; -var - i : integer; -begin - Result := -1; - for i := 0 to JvNavigationPane.PageCount - 1 do - if JvNavigationPane.NavPages[i].Caption = ACaption then - begin - Result := i; - break; - end; -end; - -procedure TfPantallaPrincipal.ExecuteActionMenu(Sender: TObject); -var - i : integer; -begin - for i := 0 to JvNavigationPane.PageCount - 1 do - begin - if JvNavigationPane.NavPages[i].Caption = (Sender as TAction).Caption then - begin - JvNavigationPane.ActivePageIndex := i; - Break; - end; - end; -end; - -procedure TfPantallaPrincipal.AplicarPerfil; -begin - actAdministracion.Visible := dmUsuarios.EsAdmin; -end; - -procedure TfPantallaPrincipal.ApplicationEventsActionExecute( - Action: TBasicAction; var Handled: Boolean); -var - APageIndex : Integer; -begin - if (Action is TAction) then - begin - APageIndex := FindNavPanePage((Action as TAction).Category); - if APageIndex > 0 then - JvNavigationPane.ActivePageIndex := APageIndex; - end; -end; - -procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor); -begin - // -end; - -procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor); -begin - ShowHourglassCursor; - LockWindowUpdate(Handle); - try - if Assigned(FContenido) then - FContenido.Release; - - FContenido := AEditor.GetInstance as TCustomEditor; - with (FContenido) do - begin - Visible := False; - BorderIcons := []; - BorderStyle := bsNone; - Parent := WorkPanel; - FContenido.Show; - Align := alClient; - FContenido.SetFocus; - end; - finally - Application.ProcessMessages; - LockWindowUpdate(0); - HideHourglassCursor; - end; - OnWorkPanelChanged(FContenido); -end; - -constructor TfPantallaPrincipal.Create(AOwner: TComponent); -begin - inherited; - FContenido := NIL; -end; - -procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); -begin - dmUsuarios.CambiarPassword; -end; - -procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); -begin - with TfAcercaDe.Create(NIL) do - try - HostManager := Self.HostManager; - ShowModal; - finally - Free; - end; -end; - -function TfPantallaPrincipal.IsShortcut(var Message: TWMKey): Boolean; -Var - ctrl: TWinControl; - comp: TComponent; - i: Integer; - Begin - ctrl := ActiveControl; - If ctrl <> Nil Then Begin - Repeat - ctrl := ctrl.Parent - Until (ctrl = nil) or (ctrl Is TCustomForm); - // Note: replace TCustomFrame with TForm, check if the found form is - // self, if not, execute the following block of code. - If ctrl <> nil Then Begin - For i:= 0 To ctrl.componentcount-1 Do Begin - comp:= ctrl.Components[i]; - If comp Is TCustomActionList Then Begin - result := TCustomActionList(comp).IsShortcut( message ); - If result Then - Exit; - End; - End; - End; - End; - //Result := inherited IsShortCut(Message); -end; - - -procedure TfPantallaPrincipal.Button1Click(Sender: TObject); -var - i : integer; - AModule : TModuleInfo; -{ lCLG: TdxLayoutGroup; - lLI: TdxLayoutItem;} -begin - { - for i := 0 to HostManager.ModulesCount -1 do - begin - AModule := HostManager.Modules[i]; - if Supports(AModule.Module, IViewInicio, AVista) then - begin - Exit; - lLI := dxLayoutControl1.CreateItemForControl(Button2); - lLI.Caption := 'Hello World'; - lCLG := dxLayoutControl1.CreateGroup; - lCLG.Caption := 'Test this'; - lCLG.Parent := dxLayoutControl1.Items; - lLI.Parent := lCLG; - dxLayoutControl1.Customization := True; - end; - end; - } -end; - -{procedure TfPantallaPrincipal.JvPanel1Paint(Sender: TObject); -var - PS: PAINTSTRUCT; -begin - BeginPaint(JvPanel1.Canvas.Handle, PS); - ThemeServices.DrawElement(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel1.BoundsRect); -// ThemeServices.DrawText(JvPanel1.Canvas.Handle, ThemeServices.GetElementDetails(tspUserPane), 'Hola', JvPanel1.Canvas.ClipRect, 0, 0); - EndPaint(JvPanel1.Canvas.Handle, PS); - -end; - -procedure TfPantallaPrincipal.JvPanel2Paint(Sender: TObject); -var - PS: PAINTSTRUCT; -begin - BeginPaint(JvPanel2.Canvas.Handle, PS); - ThemeServices.DrawElement(JvPanel2.Canvas.Handle, ThemeServices.GetElementDetails(tebExplorerBarDontCare), JvPanel2.BoundsRect); - EndPaint(JvPanel2.Canvas.Handle, PS); -end;} - -procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject); -begin - dmBase.ConfigurarConexion; -end; - -end. diff --git a/Varela/Varela/Source/Cliente/uSplash.ddp b/Varela/Varela/Source/Cliente/uSplash.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Cliente/uSplash.dfm b/Varela/Varela/Source/Cliente/uSplash.dfm deleted file mode 100644 index 664f75c..0000000 --- a/Varela/Varela/Source/Cliente/uSplash.dfm +++ /dev/null @@ -1,935 +0,0 @@ -object SplashScreen: TSplashScreen - Left = 507 - Top = 382 - BorderStyle = bsNone - Caption = 'SplashScreen' - ClientHeight = 275 - ClientWidth = 452 - Color = clBlack - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - Scaled = False - PixelsPerInch = 96 - TextHeight = 13 - object lblTexto: TLabel - Left = 11 - Top = 256 - Width = 3 - Height = 13 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWhite - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 452 - Height = 252 - AutoSize = True - BevelOuter = bvNone - BorderWidth = 1 - Color = clBlack - TabOrder = 0 - object Image1: TImage - Left = 1 - Top = 1 - Width = 450 - Height = 250 - AutoSize = True - Picture.Data = { - 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF - 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 - 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 - E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 - AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 - 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 - B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 - AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 - 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE - E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 - CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 - AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE - C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 - 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A - 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 - 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B - AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F - 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 - 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 - B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 - 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 - 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 - CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A - 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 - D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 - 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 - B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 - 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 - A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 - 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 - E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B - 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F - CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E - 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 - CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 - 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE - 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 - 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 - 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 - 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 - 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 - 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF - 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 - 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 - 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 - 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 - AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 - 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B - 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 - 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 - 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA - 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 - 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 - 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F - 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A - 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 - 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 - 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A - 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 - 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 - D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC - E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 - 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 - 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 - 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 - 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 - 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 - 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 - E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE - 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 - 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 - E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 - CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 - 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A - F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 - D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 - F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 - D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 - 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 - 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 - 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 - 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE - A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 - 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F - D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 - 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 - 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 - 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 - 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF - 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D - 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 - 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 - 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A - 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 - 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 - BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 - 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA - 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 - C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 - 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B - 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 - 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 - 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF - 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B - 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 - 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 - 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 - 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 - 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 - 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 - 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 - 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 - 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 - 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 - FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 - 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 - 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 - 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 - 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 - 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C - C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 - 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 - D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A - A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D - BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 - 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 - A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA - 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 - 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA - A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 - 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA - A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 - 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 - 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A - ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 - 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 - 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A - A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 - 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 - B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC - E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D - 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 - 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE - 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 - FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 - 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC - EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB - BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 - 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 - C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 - 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 - 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D - 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 - 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 - 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 - 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 - 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 - 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B - CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 - 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 - 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 - B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 - 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 - B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D - 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 - EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D - D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 - E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 - 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D - DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C - 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B - C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 - 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 - C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD - 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 - CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 - DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 - 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 - DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 - 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C - 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 - 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE - EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 - 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 - 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F - F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 - D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B - 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 - FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 - 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 - BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A - E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 - ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D - A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 - EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 - C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 - 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 - 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 - 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE - DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 - 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA - D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F - 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 - F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E - F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B - E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F - 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 - A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 - F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E - 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 - C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 - 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 - 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 - 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 - 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B - 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 - 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 - 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 - AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 - 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 - CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 - 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E - 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD - 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 - 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC - 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 - 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 - C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB - 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 - C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 - 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 - 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 - E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 - 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C - B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 - 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 - 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 - 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 - C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 - 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 - 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 - E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D - FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 - 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 - 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 - 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 - C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB - 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 - BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 - CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 - AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 - E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF - 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 - D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 - C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 - 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E - 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 - 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 - B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 - 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED - F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 - D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 - 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D - E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 - 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 - E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF - FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 - 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA - 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 - 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 - 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 - F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B - 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 - 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 - 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 - 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F - B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C - 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F - 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 - 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 - 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 - 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 - 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B - B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A - 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 - 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 - 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 - 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC - CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 - 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 - 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF - 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA - F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 - CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 - 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 - AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C - 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D - 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 - 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D - B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 - F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD - D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 - 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 - BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 - BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 - 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD - 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B - CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 - 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD - 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E - EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 - 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 - DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D - B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 - D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E - 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 - 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D - E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 - CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 - C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 - DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 - 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 - CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 - 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 - 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C - ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 - 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 - 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED - A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 - 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 - 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C - DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 - 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 - 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B - 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A - A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 - 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD - 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E - EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B - 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 - D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE - 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 - AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 - 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 - 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 - 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF - F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 - 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B - 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 - EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF - 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 - ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 - 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 - 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 - 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 - 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 - E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C - 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 - 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 - A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 - FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB - EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB - 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 - 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 - A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 - 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 - 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 - 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 - 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 - 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D - B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE - EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 - EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 - DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D - 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 - 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 - 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 - 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B - F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A - A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A - B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 - DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD - 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 - AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC - 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D - B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A - FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 - E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B - 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 - DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 - E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 - 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 - 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD - 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 - AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 - C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 - 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 - 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 - A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 - AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 - 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 - 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C - 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D - 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 - 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 - 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E - F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 - CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E - A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD - BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 - 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB - 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A - DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 - B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 - 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 - 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA - A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 - 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 - 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B - 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 - 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C - B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 - 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 - 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD - A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D - 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C - 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F - 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D - A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 - A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 - 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 - 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 - 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 - A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E - 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC - DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 - A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 - 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A - AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D - 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB - 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 - 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 - 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F - A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 - 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E - CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 - 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 - 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 - 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 - 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 - BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 - 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 - A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 - 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 - 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 - 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 - C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 - 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE - 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 - 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D - 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B - 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC - 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 - 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 - 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 - 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 - 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 - 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA - 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B - 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 - 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 - 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 - D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 - BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F - E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 - 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 - E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 - 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 - 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED - C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B - B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D - 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 - 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 - 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 - 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB - BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D - 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 - 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 - 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F - E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 - 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 - 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 - 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F - 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 - 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C - 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 - F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 - 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 - B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 - 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A - 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 - 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 - 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B - AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B - 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 - 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E - 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB - 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 - 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 - 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 - 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE - 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 - 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 - 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 - 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 - 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 - 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 - 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A - A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 - 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 - 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 - 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 - 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 - C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 - DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF - 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD - D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB - FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D - 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE - B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F - 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC - C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 - 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 - 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 - 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D - 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 - CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B - 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF - 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 - C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 - FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 - E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 - E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 - B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA - B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 - 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 - FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 - CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 - 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 - C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 - 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 - 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B - 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 - 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F - D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 - 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D - 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE - 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F - ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 - 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 - 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 - A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 - F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F - 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C - 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 - 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 - 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 - 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 - 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 - 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 - 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 - D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 - D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 - 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD - E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 - 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 - 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 - 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 - C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 - 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 - 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E - 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 - B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 - 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 - 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF - F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B - E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 - 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 - D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 - 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B - 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 - 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 - E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 - 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 - 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 - 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED - 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 - 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A - 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 - 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 - C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F - D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA - BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 - 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E - B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F - 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D - F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 - CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 - 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 - 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A - 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C - 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 - 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 - 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C - 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE - 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 - 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 - B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 - 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 - AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B - ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 - 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C - 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 - EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 - 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB - 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 - 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 - 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 - CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 - 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 - D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 - B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 - 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 - C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 - E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 - 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 - C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF - 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 - 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 - 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 - 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D - 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 - 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B - 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 - DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 - 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 - A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 - 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 - 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C - 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 - 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D - E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E - FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 - 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB - 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B - 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F - 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 - 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 - 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 - 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 - C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 - 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A - C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 - 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 - 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 - 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 - 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 - B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C - 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 - 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B - 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 - 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA - 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 - D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B - B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F - 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 - 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA - B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD - 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C - 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C - C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B - AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB - C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F - 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 - 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C - B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C - 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 - CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B - C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 - 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C - CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 - BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 - 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E - DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 - 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 - 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D - 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 - DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF - EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C - 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 - 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E - F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 - C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 - 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 - A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B - 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D - 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB - 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 - D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 - 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B - 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 - 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 - 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 - 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C - C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 - 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA - 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 - 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F - D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 - 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 - 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 - 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 - E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA - C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A - 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C - B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F - 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 - 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 - E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 - E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C - 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD - 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 - CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 - 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 - E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA - E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 - 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 - 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 - 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F - 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 - 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D - 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 - D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 - 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C - 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 - A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 - 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 - 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E - 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 - 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 - 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 - 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A - 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 - 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 - 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F - FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B - C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC - 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E - D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E - 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 - 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 - ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 - 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D - C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B - 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA - 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 - 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 - 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 - 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 - A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C - 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE - 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E - F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 - 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 - 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 - 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 - 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C - D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE - 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 - 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 - 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 - A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B - 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 - 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D - 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 - B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B - 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 - CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 - 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 - A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 - AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 - 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED - 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 - 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 - C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E - 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 - 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F - C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 - 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 - 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 - C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F - BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 - 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 - 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 - 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE - F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 - 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 - A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 - 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 - 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 - BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 - 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 - 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC - AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA - 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 - B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 - 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC - 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 - 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 - 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 - 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D - 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 - B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB - BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F - D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF - FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E - 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D - 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C - 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 - 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 - C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 - 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 - A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 - CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 - 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A - 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 - CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 - 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF - F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 - BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F - A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 - D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 - 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D - 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 - 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 - 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF - B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B - 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B - 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C - A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 - 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 - 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB - CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 - 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 - 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B - 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 - 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D - EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 - 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC - 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 - 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C - 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 - 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF - F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 - BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 - 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 - 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 - 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 - 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A - 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 - DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F - F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 - 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 - E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D - 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 - A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C - 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E - 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 - 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 - CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 - 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 - A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C - 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 - 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 - A4F1AD784E48C33D1D77E4B1C7F50202003B} - end - end -end diff --git a/Varela/Varela/Source/Cliente/uSplash.pas b/Varela/Varela/Source/Cliente/uSplash.pas deleted file mode 100644 index 7f951a8..0000000 --- a/Varela/Varela/Source/Cliente/uSplash.pas +++ /dev/null @@ -1,56 +0,0 @@ -unit uSplash; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ExtCtrls, JvGIF, StdCtrls; - -type - TSplashScreen = class(TForm) - Image1: TImage; - Panel1: TPanel; - lblTexto: TLabel; - procedure Image1Click(Sender: TObject); - private - function GetTexto: String; - procedure SetTexto(const Value: String); - { Private declarations } - public - property Texto : String read GetTexto write SetTexto; - procedure ShowAsAbout; - end; - -var - SplashScreen: TSplashScreen; - -implementation - -{$R *.dfm} - -{ TSplashScreen } - -procedure TSplashScreen.ShowAsAbout; -begin - Image1.OnClick := Image1Click; - ShowModal; -end; - -procedure TSplashScreen.Image1Click(Sender: TObject); -begin - Close; -end; - -function TSplashScreen.GetTexto: String; -begin - Result := lblTexto.Caption; - -end; - -procedure TSplashScreen.SetTexto(const Value: String); -begin - lblTexto.Caption := Value; - Self.Update; -end; - -end. diff --git a/Varela/Varela/Source/Configuracion/Configuracion.bdsproj b/Varela/Varela/Source/Configuracion/Configuracion.bdsproj deleted file mode 100644 index 3e6bdf5..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Configuracion.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\Output\Debug\Cliente - ..\Lib - ..\Lib;..\Base - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Configuracion/Configuracion.cfg b/Varela/Varela/Source/Configuracion/Configuracion.cfg deleted file mode 100644 index 96c8d0b..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\Output\Cliente" --LN"..\Lib" --U"..\Lib" --O"..\Lib" --I"..\Lib" --R"..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Configuracion/Configuracion.dof b/Varela/Varela/Source/Configuracion/Configuracion.dof deleted file mode 100644 index 38d0745..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.dof +++ /dev/null @@ -1,471 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\Output\Cliente -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=1 -Item0=..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlBPLOutput] -Count=1 -Item0=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=1 -Item0=..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Configuracion/Configuracion.dpk b/Varela/Varela/Source/Configuracion/Configuracion.dpk deleted file mode 100644 index e59d02e..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.dpk +++ /dev/null @@ -1,35 +0,0 @@ -package Configuracion; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - JvGlobusD10R, - BaseD10, - Usuarios; - -contains - uPanelControl in 'uPanelControl.pas' {fPanelControl}; - -end. diff --git a/Varela/Varela/Source/Configuracion/Configuracion.drc b/Varela/Varela/Source/Configuracion/Configuracion.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Configuracion/Configuracion.rc b/Varela/Varela/Source/Configuracion/Configuracion.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Configuracion/Configuracion.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Configuracion/Configuracion.res b/Varela/Varela/Source/Configuracion/Configuracion.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm deleted file mode 100644 index f615384..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.dfm +++ /dev/null @@ -1,172 +0,0 @@ -object dmControles: TdmControles - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 300 - Width = 300 - object RemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvControles' - Left = 56 - Top = 16 - end - object ds_Controles: TDADataSource - DataSet = tbl_Controles.Dataset - DataTable = tbl_Controles - Left = 176 - Top = 80 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetDataCall.RemoteService = RemoteService - GetDataCall.MethodName = 'GetDatasetData' - GetDataCall.Params = < - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'ListaControlesPorCategoria' - end - item - Name = 'Params' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - Value = True - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RemoteService - DataStreamer = DABinDataStreamer1 - Left = 56 - Top = 80 - end - object DABinDataStreamer1: TDABinDataStreamer - IsCompatibleV4 = False - Left = 56 - Top = 152 - end - object tbl_Controles: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datAutoInc - Required = True - ServerAutoRefresh = True - InPrimaryKey = True - end - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - end - item - Name = 'MODIFICABLE' - DataType = datString - Size = 1 - DefaultValue = 'S' - end - item - Name = 'ICONO' - DataType = datSmallInt - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - end - item - Name = 'ORDEN' - DataType = datSmallInt - end - item - Name = 'VISTA' - DataType = datMemo - end> - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Value = 'vebyas' - ParamType = daptInput - end> - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - LocalDataStreamer = DABinDataStreamer1 - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'ListaControlesPorCategoria' - IndexDefs = <> - Left = 176 - Top = 16 - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas b/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas deleted file mode 100644 index 9fbe2d4..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uDataModuleControles.pas +++ /dev/null @@ -1,76 +0,0 @@ -unit uDataModuleControles; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uROClient, uROServiceComponent, uRORemoteService, - uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer, uDABinAdapter, - uDAMemDataTable; - -type - TdmControles = class(TDAClientDataModule) - RemoteService: TRORemoteService; - ds_Controles: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - DABinDataStreamer1: TDABinDataStreamer; - tbl_Controles: TDACDSDataTable; - procedure DAClientDataModuleCreate(Sender: TObject); - private - { Private declarations } - public - function GetItems (const ACategoria : String): TDACDSDataTable; - end; - -var - dmControles: TdmControles; - -implementation - -{$R *.DFM} - -uses - Forms, Controls, - schControlesClient_Intf, - uDataModuleBase, uDataTableUtils, DataAbstract3_Intf, cxControls; - -procedure TdmControles.DAClientDataModuleCreate(Sender: TObject); -begin - RemoteService.Channel := dmBase.Channel; - RemoteService.Message := dmBase.Message; -end; - -function TdmControles.GetItems (const ACategoria : String): TDACDSDataTable; -var - dtControles: TDACDSDataTable; - //AParams : TDADatasetParamArray; -begin - ShowHourglassCursor; - try - dtControles := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_Controles, dtControles); - - // Begin adaptación DA5 - {AParams := TDADatasetParamArray.Create; - with AParams.Add do begin - Name := fld_ListaControlesPorCategoriaCATEGORIA; - Value := ACategoria; - end;} - //dtControles.DataRequestCall.ParamByName(par_Params).AsComplexType := AParams; - - dtControles.ParamByName(fld_ListaControlesPorCategoriaCATEGORIA).AsString := ACategoria; // adaptación - // End adaptación DA5 - Result := dtControles; - finally - HideHourglassCursor; - end; -end; - -initialization - dmControles := TdmControles.Create(nil); - -finalization - FreeAndNil(dmControles); - -end. - diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas b/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas deleted file mode 100644 index d46a72b..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uDateUtils.pas +++ /dev/null @@ -1,68 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uDateUtils; - -interface - -function NumberDayOfTheWeek(const ADay : String) : Word; -function NumberMonthOfTheYear(const AMonth : String) : Word; - -implementation - -uses - DateUtils; - -function NumberDayOfTheWeek(const ADay : String) : Word; -begin - if (ADay = 'Monday') or (ADay = 'Lunes') then - Result := DayMonday; - if (ADay = 'Tuesday') or (ADay = 'Martes') then - Result := DayTuesday; - if (ADay = 'Wednesday') or (ADay = 'Miercoles') or (ADay = 'Miércoles') then - Result := DayWednesday; - if (ADay = 'Thursday') or (ADay = 'Jueves') then - Result := DayThursday; - if (ADay = 'Friday') or (ADay = 'Viernes') then - Result := DayFriday; - if (ADay = 'Saturday') or (ADay = 'Sabado') or (ADay = 'Sábado') then - Result := DaySaturday; - if (ADay = 'Sunday') or (ADay = 'Domingo') then - Result := DaySunday; -end; - -function NumberMonthOfTheYear(const AMonth : String) : Word; -begin - if (AMonth = 'January') or (AMonth = 'Enero') then - Result := 1; - if (AMonth = 'February') or (AMonth = 'Febrero') then - Result := 2; - if (AMonth = 'March') or (AMonth = 'Marzo') then - Result := 3; - if (AMonth = 'April') or (AMonth = 'Abril') then - Result := 4; - if (AMonth = 'May') or (AMonth = 'Mayo') then - Result := 5; - if (AMonth = 'June') or (AMonth = 'Junio') then - Result := 6; - if (AMonth = 'July') or (AMonth = 'Julio') then - Result := 7; - if (AMonth = 'August') or (AMonth = 'Agosto') then - Result := 8; - if (AMonth = 'September') or (AMonth = 'Septiembre') or (AMonth = 'Setiembre') then - Result := 9; - if (AMonth = 'October') or (AMonth = 'Octubre') then - Result := 10; - if (AMonth = 'November') or (AMonth = 'Noviembre') then - Result := 11; - if (AMonth = 'December') or (AMonth = 'Diciembre') then - Result := 12; -end; - -end. - \ No newline at end of file diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm deleted file mode 100644 index 0aa84fd..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.dfm +++ /dev/null @@ -1,1324 +0,0 @@ -inherited fEditorControlBase: TfEditorControlBase - Left = 499 - Top = 302 - Caption = '' - ExplicitWidth = 320 - ExplicitHeight = 240 - PixelsPerInch = 96 - TextHeight = 13 - inherited TBXDock: TTBXDock - inherited tbxMain: TTBXToolbar - ExplicitWidth = 523 - inherited TBXItem2: TTBXItem - Visible = False - end - inherited TBXSeparatorItem1: TTBXSeparatorItem - Visible = False - end - inherited TBXItem5: TTBXItem - Visible = False - end - object tbxiPropiedades: TTBXItem [7] - Action = actPropiedades - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem14: TTBXSeparatorItem [8] - end - end - inherited tbxMenu: TTBXToolbar - inherited TBXSubmenuItem4: TTBXSubmenuItem - inherited TBXItem10: TTBXItem - Visible = False - end - object TBXSeparatorItem15: TTBXSeparatorItem [6] - end - object tbxiPropiedades2: TTBXItem [7] - Action = actPropiedades - end - end - end - end - inherited EditorActionList: TActionList - inherited actGuardarCerrar: TAction - OnUpdate = actGuardarCerrarUpdate - end - inherited actGuardar: TAction - OnUpdate = actGuardarUpdate - end - object actPropiedades: TAction - Category = 'Archivo' - Caption = 'Propiedades' - ImageIndex = 20 - OnExecute = actPropiedadesExecute - end - end - inherited SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas deleted file mode 100644 index ee7b12f..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlBase.pas +++ /dev/null @@ -1,133 +0,0 @@ -unit uEditorControlBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, - uBizControlesBase, schControlesClient_Intf, uViewControlBase, uDAInterfaces; - -type - IEditorControlBase = interface(IEditorDBItem) - ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] - function GetControl: IBizControlBase; - procedure SetControl(const Value: IBizControlBase); - property Control: IBizControlBase read GetControl write SetControl; - end; - - - TfEditorControlBase = class(TfEditorDBItem, IEditorControlBase) - actPropiedades: TAction; - TBXSeparatorItem14: TTBXSeparatorItem; - tbxiPropiedades: TTBXItem; - TBXSeparatorItem15: TTBXSeparatorItem; - tbxiPropiedades2: TTBXItem; - procedure actPropiedadesExecute(Sender: TObject); - procedure actGuardarCerrarUpdate(Sender: TObject); - procedure actGuardarUpdate(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - protected - FControl : IBizControlBase; - FViewControl : IViewControlBase; - function GetControl: IBizControlBase; virtual; - procedure SetControl(const Value: IBizControlBase); virtual; - procedure RefrescarTituloEditor; virtual; - function GetModified: Boolean; override; - procedure RellenarCabeceraInforme; virtual; - public - property Control: IBizControlBase read GetControl write SetControl; - end; - -implementation - -uses uEditorDBBase, uEditorBase; - -{$R *.dfm} - -{ TfEditorControlBase } - -function TfEditorControlBase.GetControl: IBizControlBase; -begin - Result := FControl; -end; - -procedure TfEditorControlBase.SetControl(const Value: IBizControlBase); -begin - FControl := Value; - dsDataTable.DataTable := FControl.DataTable; - if Assigned(FViewControl) then - FViewControl.Control := FControl; -end; - -procedure TfEditorControlBase.actPropiedadesExecute(Sender: TObject); -begin - inherited; - try - FControl.VerPropiedades; - finally - RefrescarTituloEditor; - FViewControl.Modificable := FControl.EsModificable; - inherited actGuardarExecute(Sender); - end; -end; - -procedure TfEditorControlBase.RefrescarTituloEditor; -begin - if Assigned(FControl) and (Length(FControl.NOMBRE) > 0) then - begin - Caption := FControl.NOMBRE; - JvNavPanelHeader.Caption := FControl.NOMBRE; - end; -end; - -function TfEditorControlBase.GetModified: Boolean; -begin - Result := inherited GetModified and - (Assigned(FControl) and FControl.EsModificable); -end; - -procedure TfEditorControlBase.actGuardarCerrarUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); -end; - -procedure TfEditorControlBase.actGuardarUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); -end; - -procedure TfEditorControlBase.actPrevisualizarExecute(Sender: TObject); -begin - RellenarCabeceraInforme; - inherited; -end; - -procedure TfEditorControlBase.RellenarCabeceraInforme; -begin - inherited; - // -end; - -procedure TfEditorControlBase.actImprimirExecute(Sender: TObject); -begin - RellenarCabeceraInforme; - inherited; -end; - - -procedure TfEditorControlBase.actEliminarExecute(Sender: TObject); -begin - if not FControl.EsModificable then - ShowMessage('Este control no se puede eliminar') - else - inherited -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm deleted file mode 100644 index 941ccbd..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm +++ /dev/null @@ -1,1394 +0,0 @@ -inherited fEditorControlesBase: TfEditorControlesBase - Left = 385 - Top = 375 - Caption = '' - ExplicitWidth = 320 - ExplicitHeight = 240 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Top = 0 - ExplicitTop = 0 - end - inherited TBXDock: TTBXDock - Top = 27 - ExplicitTop = 27 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 386 - inherited TBXItem2: TTBXItem - ImageIndex = 0 - Images = pngImageNuevo - end - inherited TBXItem29: TTBXItem - Visible = False - end - inherited TBXItem27: TTBXItem - Visible = False - end - object TBXSeparatorItem14: TTBXSeparatorItem [6] - end - object TBXItem7: TTBXItem [7] - Action = actPropiedades - DisplayMode = nbdmImageAndText - end - inherited TBXItem23: TTBXItem - Visible = False - end - inherited TBXItem3: TTBXItem - Visible = False - end - inherited TBXSeparatorItem10: TTBXSeparatorItem - Visible = False - end - inherited TBXItem26: TTBXItem - Visible = False - end - inherited TBXItem25: TTBXItem - Visible = False - end - inherited TBXSeparatorItem11: TTBXSeparatorItem - Visible = False - end - inherited TBXItem28: TTBXItem - Visible = False - end - end - inherited tbxMenu: TTBXToolbar - Visible = False - end - end - inherited EditorActionList: TActionList - Left = 72 - Top = 128 - inherited actNuevo: TAction - Caption = 'Nuevo control...' - OnExecute = actNuevoExecute - end - inherited actModificar: TAction - Caption = 'Abrir control' - OnExecute = actModificarExecute - end - object actPropiedades: TAction - Category = 'Archivo' - Caption = 'Propiedades' - ImageIndex = 20 - OnExecute = actPropiedadesExecute - OnUpdate = actPropiedadesUpdate - end - end - inherited SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - object ViewPopupMenu: TPopupMenu - Images = SmallImages - Left = 72 - Top = 88 - object Modificar1: TMenuItem - Action = actModificar - end - object Eliminar1: TMenuItem - Action = actEliminar - end - object N1: TMenuItem - Caption = '-' - end - object Nuevo1: TMenuItem - Action = actNuevo - end - object N2: TMenuItem - Caption = '-' - end - object Propiedades1: TMenuItem - Action = actPropiedades - end - end - object pngImageNuevo: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000F84944415478DA - 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA - 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 - 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F - FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF - 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 - BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 - 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B - 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 - 4E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 91 - Top = 224 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk deleted file mode 100644 index 941ccbd..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.dfm.cbk +++ /dev/null @@ -1,1394 +0,0 @@ -inherited fEditorControlesBase: TfEditorControlesBase - Left = 385 - Top = 375 - Caption = '' - ExplicitWidth = 320 - ExplicitHeight = 240 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Top = 0 - ExplicitTop = 0 - end - inherited TBXDock: TTBXDock - Top = 27 - ExplicitTop = 27 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 386 - inherited TBXItem2: TTBXItem - ImageIndex = 0 - Images = pngImageNuevo - end - inherited TBXItem29: TTBXItem - Visible = False - end - inherited TBXItem27: TTBXItem - Visible = False - end - object TBXSeparatorItem14: TTBXSeparatorItem [6] - end - object TBXItem7: TTBXItem [7] - Action = actPropiedades - DisplayMode = nbdmImageAndText - end - inherited TBXItem23: TTBXItem - Visible = False - end - inherited TBXItem3: TTBXItem - Visible = False - end - inherited TBXSeparatorItem10: TTBXSeparatorItem - Visible = False - end - inherited TBXItem26: TTBXItem - Visible = False - end - inherited TBXItem25: TTBXItem - Visible = False - end - inherited TBXSeparatorItem11: TTBXSeparatorItem - Visible = False - end - inherited TBXItem28: TTBXItem - Visible = False - end - end - inherited tbxMenu: TTBXToolbar - Visible = False - end - end - inherited EditorActionList: TActionList - Left = 72 - Top = 128 - inherited actNuevo: TAction - Caption = 'Nuevo control...' - OnExecute = actNuevoExecute - end - inherited actModificar: TAction - Caption = 'Abrir control' - OnExecute = actModificarExecute - end - object actPropiedades: TAction - Category = 'Archivo' - Caption = 'Propiedades' - ImageIndex = 20 - OnExecute = actPropiedadesExecute - OnUpdate = actPropiedadesUpdate - end - end - inherited SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end> - Bitmap = {} - end - object ViewPopupMenu: TPopupMenu - Images = SmallImages - Left = 72 - Top = 88 - object Modificar1: TMenuItem - Action = actModificar - end - object Eliminar1: TMenuItem - Action = actEliminar - end - object N1: TMenuItem - Caption = '-' - end - object Nuevo1: TMenuItem - Action = actNuevo - end - object N2: TMenuItem - Caption = '-' - end - object Propiedades1: TMenuItem - Action = actPropiedades - end - end - object pngImageNuevo: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000F84944415478DA - 63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA - 6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4 - 0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F - FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF - 63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911 - BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4 - 0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B - 39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945 - 4E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 91 - Top = 224 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas deleted file mode 100644 index 3817fac..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uEditorControlesBase.pas +++ /dev/null @@ -1,167 +0,0 @@ -unit uEditorControlesBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorDBBase, Menus, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, - TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, - JvNavigationPane, pngimage, uBizControlesBase, uEditorBase, - uViewControlesBase, uDAInterfaces; - -type - IEditorControlesBase = interface(IEditorDBBase) - ['{9B15BCEA-4C31-442A-89EC-773B66460A3B}'] - function GetControl: IBizControlBase; - procedure SetControl(const Value: IBizControlBase); - property Control: IBizControlBase read GetControl write SetControl; - end; - - TfEditorControlesBase = class(TfEditorDBBase, IEditorControlesBase) - ViewPopupMenu: TPopupMenu; - Modificar1: TMenuItem; - Eliminar1: TMenuItem; - N1: TMenuItem; - Nuevo1: TMenuItem; - pngImageNuevo: TPngImageList; - actPropiedades: TAction; - TBXSeparatorItem14: TTBXSeparatorItem; - TBXItem7: TTBXItem; - N2: TMenuItem; - Propiedades1: TMenuItem; - procedure actNuevoExecute(Sender: TObject); - procedure actModificarExecute(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPropiedadesExecute(Sender: TObject); - procedure actPropiedadesUpdate(Sender: TObject); - protected - FControl : IBizControlBase; - FViewControl : IViewControlesBase; - function GetControl: IBizControlBase; virtual; - procedure SetControl(const Value: IBizControlBase); virtual; - public - destructor Destroy; override; - property Control: IBizControlBase read GetControl write SetControl; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -{$R *.dfm} - -{ TfEditorControlesBase } - -function TfEditorControlesBase.GetControl: IBizControlBase; -begin - Result := FControl; -end; - -procedure TfEditorControlesBase.SetControl(const Value: IBizControlBase); -begin - FControl := Value; - dsDataTable.DataTable := FControl.DataTable; - if Assigned(FViewControl) then - begin - FViewControl.Control := FControl; - end; -end; - -procedure TfEditorControlesBase.actNuevoExecute(Sender: TObject); -begin - inherited; - try - FControl.Insert; - FControl.Show; - finally - FViewControl.Refresh; - end; -end; - -procedure TfEditorControlesBase.actModificarExecute(Sender: TObject); -begin - inherited; - try - FControl.Show; - finally - FViewControl.Refresh; - end; -end; - -procedure TfEditorControlesBase.FormShow(Sender: TObject); -begin - inherited; - - if not Assigned(FViewControl) then - raise Exception.Create('No hay ninguna vista asignada'); - - if not Assigned(Control) then - raise Exception.Create('No hay ningún control asignado'); - - FViewControl.OnDblClick := actModificar.OnExecute; - FViewControl.PopupMenu := ViewPopupMenu; - - Control.DataTable.Active := True; - - FViewControl.Refresh; -end; - -destructor TfEditorControlesBase.Destroy; -begin - FViewControl := NIL; - FControl := NIL; - inherited; -end; - -procedure TfEditorControlesBase.actEliminarExecute(Sender: TObject); -begin - try - if not FControl.EsModificable then - ShowMessage('Este control no se puede borrar') - else - if (Application.MessageBox('¿Desea borrar este control?', 'Atención', MB_YESNO) = IDYES) then - inherited; - finally - FViewControl.Refresh; - end; -end; - -procedure TfEditorControlesBase.actRefrescarExecute(Sender: TObject); -begin - inherited; - if Assigned(FViewControl) then - FViewControl.Refresh; -end; - -procedure TfEditorControlesBase.actPropiedadesExecute(Sender: TObject); -begin - inherited; - if Assigned(FControl) then - try - FControl.VerPropiedades; - actGuardar.Execute; - finally - FViewControl.Refresh; - end; -end; - -procedure TfEditorControlesBase.actPropiedadesUpdate(Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and not (dsDataTable.DataTable.State = dsInsert) - else - (Sender as TAction).Enabled := False; -end; - -constructor TfEditorControlesBase.Create(AOwner: TComponent); -begin - inherited; - actModificar.ShortCut := ShortCut(VK_RETURN, []); -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm deleted file mode 100644 index 9180b16..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.dfm +++ /dev/null @@ -1,384 +0,0 @@ -object frPropiedadesControl: TfrPropiedadesControl - Left = 569 - Top = 354 - ActiveControl = edtNombre - BorderStyle = bsDialog - Caption = 'Propiedades del informe' - ClientHeight = 418 - ClientWidth = 378 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnCloseQuery = FormCloseQuery - PixelsPerInch = 96 - TextHeight = 13 - object Label1: TLabel - Left = 15 - Top = 84 - Width = 92 - Height = 13 - Caption = '&Nombre del control:' - FocusControl = edtNombre - end - object Label2: TLabel - Left = 48 - Top = 112 - Width = 59 - Height = 13 - Caption = '&Descripci'#243'n:' - FocusControl = memDescripcion - end - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 378 - Height = 60 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Propiedades del control') - Comments.Strings = ( - 'Introduca los datos del control') - Gradient.FromColor = clGradientActiveCaption - Gradient.ToColor = clGradientInactiveCaption - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Label3: TLabel - Left = 77 - Top = 272 - Width = 30 - Height = 13 - Caption = '&Icono:' - end - object Bevel1: TBevel - Left = 8 - Top = 360 - Width = 361 - Height = 10 - Shape = bsBottomLine - end - object memDescripcion: TcxMemo - Left = 120 - Top = 112 - Lines.Strings = ( - '') - Properties.ScrollBars = ssVertical - Properties.WantReturns = False - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 - Height = 105 - Width = 241 - end - object edtNombre: TcxTextEdit - Left = 120 - Top = 80 - Style.Color = 14745599 - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Width = 241 - end - object bAceptar: TButton - Left = 296 - Top = 384 - Width = 75 - Height = 25 - Caption = '&Aceptar' - Default = True - ModalResult = 1 - TabOrder = 2 - end - object cbModificable: TCheckBox - Left = 120 - Top = 232 - Width = 234 - Height = 17 - Caption = 'No &permitir realizar cambios en este control' - TabOrder = 3 - end - object btnIcono: TJvImgBtn - Left = 120 - Top = 272 - Width = 60 - Height = 60 - TabOrder = 4 - DropDownMenu = JvPopupMenu1 - DropArrow = True - Flat = True - HotTrackFont.Charset = DEFAULT_CHARSET - HotTrackFont.Color = clWindowText - HotTrackFont.Height = -11 - HotTrackFont.Name = 'MS Sans Serif' - HotTrackFont.Style = [] - Images = ReportImages - ImageIndex = 1 - end - object ReportImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002024944415478DA - BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 - 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 - B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E - E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 - AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 - FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 - 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE - B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 - C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 - 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A - 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D - C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C - 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 - 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 - 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 - 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 - A47A98E90000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002CB4944415478DA - BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C - 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 - 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 - E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 - 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 - 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 - A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 - 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 - E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 - 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D - 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 - 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD - 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE - 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 - FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 - 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 - A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 - DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D - 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 - 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC - CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E - 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 - 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002B14944415478DA - BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 - D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 - DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 - 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 - DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 - 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E - 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 - B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 - 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 - 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D - 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD - D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 - 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF - CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D - 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB - 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 - C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 - 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C - F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A - BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC - 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 - F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002E14944415478DA - 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 - 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A - 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 - 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD - 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC - 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 - F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F - DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 - B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 - 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 - 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF - 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E - C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E - 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 - 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 - 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 - C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 - 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 - 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 - 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B - 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF - 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 - 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 - 7DF1720000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001C64944415478DA - 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 - F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 - 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC - 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A - 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 - 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 - 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 - D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 - 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 - CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 - 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB - 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 - 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 - 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 - BE8AE7E7F700C7D10000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD2520000020E4944415478DA - 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF - 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF - E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 - 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 - C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 - 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 - C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 - E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C - 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 - 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 - 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 - B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F - 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F - DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD - D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 - CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 - 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000003474944415478DA - BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 - CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 - 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 - 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D - D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 - 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F - 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A - E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D - 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 - F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 - E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 - 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 - E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 - C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD - 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 - DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 - D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 - 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 - 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F - A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 - 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 - 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 - 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C - C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 - 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 - 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 - 5FA7D4B1F664B3FE1D0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001084944415478DA - 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 - 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D - 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 - CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 - BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 - BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED - C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 - D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF - 42005A1A11E70A945A890000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 27 - Top = 216 - Bitmap = {} - end - object JvPopupMenu1: TJvPopupMenu - Images = ReportImages - OnPopup = JvPopupMenu1Popup - Style = msItemPainter - ImageMargin.Left = 0 - ImageMargin.Top = 0 - ImageMargin.Right = 0 - ImageMargin.Bottom = 0 - ImageSize.Height = 0 - ImageSize.Width = 0 - Left = 192 - Top = 288 - object N11: TMenuItem - Caption = '1' - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas b/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas deleted file mode 100644 index 22d8afa..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uFormPropiedadesControl.pas +++ /dev/null @@ -1,117 +0,0 @@ -unit uFormPropiedadesControl; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, StdCtrls, - JvExControls, JvComponent, JvgWizardHeader, ExtCtrls, ImgList, - PngImageList, JvExStdCtrls, JvButton, JvCtrls, Menus, JvMenus, ActnList; - -type - TfrPropiedadesControl = class(TForm) - edtNombre: TcxTextEdit; - Label1: TLabel; - Label2: TLabel; - bAceptar: TButton; - memDescripcion: TcxMemo; - JvgWizardHeader1: TJvgWizardHeader; - cbModificable: TCheckBox; - Label3: TLabel; - Bevel1: TBevel; - btnIcono: TJvImgBtn; - ReportImages: TPngImageList; - JvPopupMenu1: TJvPopupMenu; - N11: TMenuItem; - procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); - procedure JvPopupMenu1Popup(Sender: TObject); - private - procedure SetDescripcion(const Value: String); - procedure SetNombre(const Value: String); - function GetDescripcion: String; - function GetNombre: String; - function GetModificable: Boolean; - procedure SetModificable(const Value: Boolean); - function GetIcono: Integer; - procedure SetIcono(const Value: Integer); - procedure OnMenuItemClick(Sender: TObject); - public - property Nombre : String read GetNombre write SetNombre; - property Descripcion : String read GetDescripcion write SetDescripcion; - property Modificable : Boolean read GetModificable write SetModificable; - property Icono : Integer read GetIcono write SetIcono; - end; - - -implementation - -{$R *.dfm} - -procedure TfrPropiedadesControl.FormCloseQuery(Sender: TObject; var CanClose: Boolean); -begin - CanClose := Length(edtNombre.Text) > 0; - if not CanClose then - ShowMessage('Debe indicar al menos el nombre de este control.'); -end; - -function TfrPropiedadesControl.GetDescripcion: String; -begin - Result := memDescripcion.Lines.Text; -end; - -function TfrPropiedadesControl.GetIcono: Integer; -begin - Result := btnIcono.ImageIndex; -end; - -function TfrPropiedadesControl.GetModificable: Boolean; -begin - Result := not cbModificable.Checked; -end; - -function TfrPropiedadesControl.GetNombre: String; -begin - Result := edtNombre.Text; -end; - -procedure TfrPropiedadesControl.SetDescripcion(const Value: String); -begin - memDescripcion.Lines.Text := Value; -end; - -procedure TfrPropiedadesControl.SetIcono(const Value: Integer); -begin - btnIcono.ImageIndex := Value; -end; - -procedure TfrPropiedadesControl.SetModificable(const Value: Boolean); -begin - cbModificable.Checked := not Value; -end; - -procedure TfrPropiedadesControl.SetNombre(const Value: String); -begin - edtNombre.Text := Value; -end; - -procedure TfrPropiedadesControl.JvPopupMenu1Popup(Sender: TObject); -var - AItem : TMenuItem; - i : integer; -begin - JvPopupMenu1.Items.Clear; - for i := 0 to ReportImages.Count - 1 do - begin - AItem := TMenuItem.Create(JvPopupMenu1); - AItem.OnClick := OnMenuItemClick; - AItem.ImageIndex := i; - JvPopupMenu1.Items.Add(AItem); - end; -end; - -procedure TfrPropiedadesControl.OnMenuItemClick(Sender: TObject); -begin - btnIcono.ImageIndex := (Sender as TMenuItem).ImageIndex; -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm deleted file mode 100644 index 20e4854..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.dfm +++ /dev/null @@ -1,135 +0,0 @@ -inherited frViewAgrupaciones: TfrViewAgrupaciones - Width = 228 - Height = 396 - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 228 - Height = 29 - Align = alTop - Caption = 'Agrupaciones' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end - object pnlAgrupaciones: TTBXAlignmentPanel - Left = 0 - Top = 29 - Width = 228 - Height = 77 - Align = alTop - AutoSize = True - TabOrder = 1 - DesignSize = ( - 228 - 77) - object Label3: TLabel - Left = 7 - Top = 60 - Width = 74 - Height = 13 - Caption = 'y por '#250'ltimo por:' - Transparent = True - end - object Label2: TLabel - Left = 7 - Top = 32 - Width = 61 - Height = 13 - Caption = 'despu'#233's por:' - Transparent = True - end - object Label1: TLabel - Left = 7 - Top = 4 - Width = 95 - Height = 13 - Caption = 'Agrupar primero por:' - Transparent = True - end - object TBXButton1: TTBXButton - Tag = 1 - Left = 111 - Top = 0 - Width = 111 - Height = 21 - Action = actBoton1 - Anchors = [akLeft, akTop, akRight] - AutoSize = False - DropDownMenu = PopupMenu1 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ImageIndex = 0 - ParentFont = False - TabOrder = 0 - Wrapping = twEndEllipsis - end - object TBXButton3: TTBXButton - Tag = 3 - Left = 111 - Top = 56 - Width = 111 - Height = 21 - Action = actBoton3 - Anchors = [akLeft, akTop, akRight] - AutoSize = False - DropDownMenu = PopupMenu3 - ImageIndex = 0 - TabOrder = 1 - Wrapping = twEndEllipsis - end - object TBXButton2: TTBXButton - Tag = 2 - Left = 111 - Top = 28 - Width = 111 - Height = 21 - Action = actBoton2 - Anchors = [akLeft, akTop, akRight] - AutoSize = False - DropDownMenu = PopupMenu2 - ImageIndex = 0 - TabOrder = 2 - Wrapping = twEndEllipsis - end - end - object PopupMenu1: TPopupMenu - Left = 32 - Top = 136 - end - object PopupMenu2: TPopupMenu - Left = 64 - Top = 136 - end - object PopupMenu3: TPopupMenu - Left = 96 - Top = 136 - end - object ActionList1: TActionList - Left = 32 - Top = 168 - object actBoton2: TAction - OnExecute = actBoton2Execute - OnUpdate = actBoton2Update - end - object actBoton3: TAction - OnExecute = actBoton3Execute - OnUpdate = actBoton3Update - end - object actBoton1: TAction - OnExecute = actBoton1Execute - end - object actMenuClick: TAction - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas deleted file mode 100644 index ff987e2..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewAgrupaciones.pas +++ /dev/null @@ -1,339 +0,0 @@ -unit uViewAgrupaciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ActnList, Menus, dxLayoutLookAndFeels, dxLayoutControl, uViewBase, - TBXDkPanels, cxControls, StdCtrls, ImgList, uViewControlGrid, - PngImageList, uViewParametrosControlGrid, JvExControls, JvComponent, - JvArrowButton, cxLookAndFeelPainters, cxButtons; - -type - IViewAgrupaciones = interface(IViewParametrosControlGrid) - ['{42030B8F-B12D-43D2-AEB2-F642F11D78DA}'] - function GetAgrupaciones: TStringList; - end; - - TfrViewAgrupaciones = class(TfrViewParametrosControlGrid, IViewAgrupaciones) - TBXButton1: TTBXButton; - TBXButton2: TTBXButton; - TBXButton3: TTBXButton; - PopupMenu1: TPopupMenu; - PopupMenu2: TPopupMenu; - PopupMenu3: TPopupMenu; - ActionList1: TActionList; - actBoton2: TAction; - actBoton3: TAction; - actBoton1: TAction; - actMenuClick: TAction; - TBXLabel1: TTBXLabel; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - pnlAgrupaciones: TTBXAlignmentPanel; - procedure actBoton2Update(Sender: TObject); - procedure actBoton3Update(Sender: TObject); - procedure actBoton2Execute(Sender: TObject); - procedure actBoton3Execute(Sender: TObject); - procedure actBoton1Execute(Sender: TObject); - procedure AMenuItemClick(Sender: TObject); - protected - FColumns : TStringList; - - FBotonPulsado : TTBXButton; - procedure MarcarItem(AMenuItem : TMenuItem); overload; - procedure MarcarItem(AMenu : TPopupMenu; const ACaption : String); overload; - procedure DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); - procedure DesmarcarItems(AMenu : TPopupMenu); - - procedure OnButtonPopup(Sender: TTBXCustomButton; var AllowDropDown: Boolean); - procedure RellenarListaColumnas; - procedure RellenarAgrupaciones; - procedure SetModificable(const Value: Boolean); override; - public - function GetAgrupaciones: TStringList; - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - procedure Refresh; override; - procedure Execute; override; - end; - -implementation - -uses - cxGridDBTableView, JclStrings; - -{$R *.dfm} - -const - SIN_AGRUPACION = '(Quitar agrupación)'; - -{ TfrAgrupaciones } - -procedure TfrViewAgrupaciones.MarcarItem(AMenuItem : TMenuItem); -var - AItem : TMenuItem; -begin - AMenuItem.Checked := True; - - AItem := PopupMenu1.Items.Find(AMenuItem.Caption); - if Assigned(AItem) then - AItem.Enabled := False; - - AItem := PopupMenu2.Items.Find(AMenuItem.Caption); - if Assigned(AItem) then - AItem.Enabled := False; - - AItem := PopupMenu3.Items.Find(AMenuItem.Caption); - if Assigned(AItem) then - AItem.Enabled := False; -end; - -procedure TfrViewAgrupaciones.MarcarItem(AMenu : TPopupMenu; const ACaption : String); -var - AItem : TMenuItem; -begin - AItem := AMenu.Items.Find(ACaption); - if Assigned(AItem) then - MarcarItem(AItem); -end; - -procedure TfrViewAgrupaciones.DesmarcarItem(AMenu : TPopupMenu; const ACaption : String); -var - AItem : TMenuItem; -begin - AItem := AMenu.Items.Find(ACaption); - if Assigned(AItem) then - begin - AItem.Enabled := True; - AItem.Checked := False; - end; -end; - -procedure TfrViewAgrupaciones.DesmarcarItems(AMenu : TPopupMenu); -var - i : integer; -begin - for i := 0 to AMenu.Items.Count - 1 do - begin - AMenu.Items[i].Enabled := True; - AMenu.Items[i].Checked := False; - end; -end; - - -function TfrViewAgrupaciones.GetAgrupaciones: TStringList; -var - aux : String; - AIndex : Integer; -begin - Result := TStringList.Create; - if actBoton1.Enabled then - begin - aux := TBXButton1.Caption; - aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); - if Length(Trim(aux)) > 0 then - Result.Add(aux); - - if actBoton2.Enabled then - begin - aux := TBXButton2.Caption; - aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); - if Length(Trim(aux)) > 0 then - Result.Add(aux); - - if actBoton3.Enabled then - begin - aux := TBXButton3.Caption; - aux := StringReplace(aux, '&', '', [rfReplaceAll, rfIgnoreCase]); - if Length(Trim(aux)) > 0 then - Result.Add(aux); - end; - end; - end; -end; - -procedure TfrViewAgrupaciones.actBoton2Update(Sender: TObject); -begin - (Sender as TAction).Enabled := Length(TBXButton1.Caption) > 0; -end; - -procedure TfrViewAgrupaciones.actBoton3Update(Sender: TObject); -begin - (Sender as TAction).Enabled := Length(TBXButton2.Caption) > 0; -end; - -procedure TfrViewAgrupaciones.actBoton2Execute(Sender: TObject); -begin - // -end; - -procedure TfrViewAgrupaciones.actBoton3Execute(Sender: TObject); -begin - // -end; - -procedure TfrViewAgrupaciones.actBoton1Execute(Sender: TObject); -begin - // -end; - -procedure TfrViewAgrupaciones.AMenuItemClick(Sender: TObject); -var - i : integer; -begin - if (Sender as TMenuItem).MenuIndex > 0 then // El 0 es 'Sin agrupacion' - begin - DesmarcarItem(PopupMenu1, FBotonPulsado.Caption); - DesmarcarItem(PopupMenu2, FBotonPulsado.Caption); - DesmarcarItem(PopupMenu3, FBotonPulsado.Caption); - FBotonPulsado.Caption := (Sender as TMenuItem).Caption; - MarcarItem(Sender as TMenuItem); - end - else begin - DesmarcarItems(PopupMenu1); - DesmarcarItems(PopupMenu2); - DesmarcarItems(PopupMenu3); - // Anular los botones que estén por debajo del actual - for i := 3 downto FBotonPulsado.Tag do - TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; - end; -end; - -constructor TfrViewAgrupaciones.Create(AOwner: TComponent); -begin - inherited; - FColumns := TStringList.Create; - - TBXButton1.OnDropDown := OnButtonPopup; - TBXButton2.OnDropDown := OnButtonPopup; - TBXButton3.OnDropDown := OnButtonPopup; -end; - -procedure TfrViewAgrupaciones.OnButtonPopup(Sender: TTBXCustomButton; - var AllowDropDown: Boolean); -begin - FBotonPulsado := (Sender as TTBXButton); -end; - -procedure TfrViewAgrupaciones.Execute; -var - AgrBotones : TStringList; - i : Integer; -begin - AgrBotones := GetAgrupaciones; - for i := 0 to FColumns.Count - 1 do - (FColumns.Objects[i] as TcxGridDBColumn).GroupIndex := AgrBotones.IndexOf(FColumns.Strings[i]); -end; - -procedure TfrViewAgrupaciones.Refresh; -begin - RellenarListaColumnas; - RellenarAgrupaciones; -end; - -procedure TfrViewAgrupaciones.RellenarListaColumnas; -var - i : integer; - - function DarItem (const ACaption : string):TMenuItem; - begin - Result := NewItem(ACaption, 0, false, true, AMenuItemClick, 0, ''); - end; - -begin - PopupMenu1.Items.Clear; - PopupMenu2.Items.Clear; - PopupMenu3.Items.Clear; - - PopupMenu1.Items.Add(DarItem(SIN_AGRUPACION)); - PopupMenu2.Items.Add(DarItem(SIN_AGRUPACION)); - PopupMenu3.Items.Add(DarItem(SIN_AGRUPACION)); - - for i := 0 to ViewControlGrid.ColumnCount - 1 do - begin - FColumns.AddObject(ViewControlGrid.Columns[i].Caption, ViewControlGrid.Columns[i]); - PopupMenu1.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); - PopupMenu2.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); - PopupMenu3.Items.Add(DarItem(ViewControlGrid.Columns[i].Caption)); - end; -end; - -destructor TfrViewAgrupaciones.Destroy; -begin - FreeAndNIL(FColumns); - inherited; -end; - -procedure TfrViewAgrupaciones.RellenarAgrupaciones; -var - i : integer; - AList : TStringList; -begin - AList := TStringList.Create; - - try - // Recuperar las agrupaciones del grid - for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do - begin - if i = 3 then - Break; // Sólo meter las 3 primera agrupaciones - AList.Add(ViewControlGrid.GroupedColumns[i].Caption); - end; - - if AList.Count > 0 then - begin - DesmarcarItems(PopupMenu1); - DesmarcarItems(PopupMenu2); - DesmarcarItems(PopupMenu3); - - // Anular los botones que estén por debajo del actual - for i := 1 to 3 do - TTBXButton(FindComponent('TBXButton' + IntToStr(i))).Caption := ''; - - TBXButton1.Caption := AList.Strings[0]; - MarcarItem(TBXButton1.DropDownMenu, AList.Strings[0]); - - if AList.Count > 1 then - begin - TBXButton2.Caption := AList.Strings[1]; - MarcarItem(TBXButton2.DropDownMenu, AList.Strings[1]); - - if AList.Count > 2 then - begin - TBXButton3.Caption := AList.Strings[2]; - MarcarItem(TBXButton3.DropDownMenu, AList.Strings[2]); - end; - end; - end; - finally - FreeAndNil(AList); - end; -end; - -procedure TfrViewAgrupaciones.SetModificable(const Value: Boolean); -begin - inherited; - pnlAgrupaciones.Enabled := Value; - - if pnlAgrupaciones.Enabled then - begin - Label1.Font.Color := clWindowText; - Label2.Font.Color := clWindowText; - Label3.Font.Color := clWindowText; - TBXButton1.Font.Color := clWindowText; - TBXButton2.Font.Color := clWindowText; - TBXButton3.Font.Color := clWindowText; - end - else begin - Label1.Font.Color := clBtnShadow; - Label2.Font.Color := clBtnShadow; - Label3.Font.Color := clBtnShadow; - TBXButton1.Font.Color := clBtnShadow; - TBXButton2.Font.Color := clBtnShadow; - TBXButton3.Font.Color := clBtnShadow; - end -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm deleted file mode 100644 index ecbb78b..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.dfm +++ /dev/null @@ -1,42 +0,0 @@ -inherited frViewColumnas: TfrViewColumnas - Width = 316 - Height = 350 - object lbColumnas: TcxCheckListBox - Left = 0 - Top = 29 - Width = 316 - Height = 321 - Align = alClient - Items = <> - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.Color = clWindow - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - OnClickCheck = lbColumnasClickCheck - end - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 316 - Height = 29 - Align = alTop - Caption = 'Columnas' - FocusControl = lbColumnas - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas deleted file mode 100644 index ccba0d7..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewColumnas.pas +++ /dev/null @@ -1,113 +0,0 @@ -unit uViewColumnas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, - TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, - JvExControls, JvComponent, JvxCheckListBox, uViewControlGrid, - cxCheckListBox, cxCheckBox, uViewParametrosControlGrid; - -type - IViewColumnas = interface(IViewParametrosControlGrid) - ['{FD33275B-6875-421A-ABAC-595982ACDDDB}'] - function GetCheckedColumns : TStringList; - end; - - TfrViewColumnas = class(TfrViewParametrosControlGrid, IViewColumnas) - lbColumnas: TcxCheckListBox; - TBXLabel1: TTBXLabel; - procedure lbColumnasClickCheck(Sender: TObject; AIndex: Integer; - APrevState, ANewState: TcxCheckBoxState); - protected - procedure RellenarListaColumnas; - procedure SetModificable(const Value : Boolean); override; - public - procedure Refresh; override; - procedure Execute; override; - function GetCheckedColumns : TStringList; - end; - -implementation - -{$R *.dfm} - -{ TfrViewColumnas } - -procedure TfrViewColumnas.Refresh; -begin - inherited; - RellenarListaColumnas; -end; - -procedure TfrViewColumnas.RellenarListaColumnas; -var - i : integer; - AIndex : Integer; -begin - with lbColumnas do - begin - Items.BeginUpdate; - Items.Clear; - try - for i := 0 to ViewControlGrid.ColumnCount - 1 do - begin - AddItem(ViewControlGrid.Columns[i].Caption); - AIndex := Items.Count - 1; - Items[AIndex].Checked := ViewControlGrid.Columns[i].Visible; - Items[AIndex].ItemObject := ViewControlGrid.Columns[i]; - end; - finally - Items.EndUpdate; - end; - end; -end; - -procedure TfrViewColumnas.lbColumnasClickCheck(Sender: TObject; - AIndex: Integer; APrevState, ANewState: TcxCheckBoxState); -var - i : integer; -begin - inherited; - { No hacer nada por que el cambio en las columnas se debe ver cuando - el usuario pulse sobre el botón 'Refrescar'. } -{ with lbColumnas.Items[AIndex] do - if Assigned(ItemObject) then - (ItemObject as TcxGridDBColumn).Visible := (ANewState = cbsChecked);} -end; - -procedure TfrViewColumnas.Execute; -var - AIndex : integer; -begin - inherited; - for AIndex := 0 to lbColumnas.Items.Count - 1 do - with lbColumnas.Items[AIndex] do - if Assigned(ItemObject) then - (ItemObject as TcxGridDBColumn).Visible := (State = cbsChecked); -end; - -function TfrViewColumnas.GetCheckedColumns: TStringList; -var - AIndex : integer; -begin - result := TStringList.Create; - for AIndex := 0 to lbColumnas.Items.Count - 1 do - if (lbColumnas.Items[AIndex].State = cbsChecked) then - with lbColumnas.Items[AIndex] do - if Assigned(ItemObject) then - Result.Add((ItemObject as TcxGridDBColumn).DataBinding.FieldName); -end; - -procedure TfrViewColumnas.SetModificable(const Value: Boolean); -begin - inherited; - lbColumnas.ReadOnly := not Value; - if lbColumnas.ReadOnly then - lbColumnas.Style.TextColor := clBtnShadow - else - lbColumnas.Style.TextColor := clWindowText; -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm deleted file mode 100644 index 916411a..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.dfm +++ /dev/null @@ -1,616 +0,0 @@ -inherited frViewControlBase: TfrViewControlBase - Width = 699 - Height = 607 - ExplicitWidth = 699 - ExplicitHeight = 607 - object TBXMultiDock1: TTBXMultiDock - Left = 0 - Top = 0 - Width = 222 - Height = 607 - Position = dpLeft - object pnlParametros: TTBXDockablePanel - Left = 0 - Top = 0 - Caption = 'Par'#225'metros del informe' - CloseButton = False - CloseButtonWhenDocked = False - DockedWidth = 218 - DockedHeight = 185 - DockMode = dmCannotFloat - DockPos = 0 - ParentShowHint = False - ShowHint = False - SplitHeight = 261 - SupportedDocks = [dkStandardDock, dkMultiDock] - TabOrder = 0 - object TBXAlignmentPanel2: TTBXAlignmentPanel - Left = 0 - Top = 0 - Width = 218 - Height = 67 - Margins.Left = 4 - Margins.Top = 4 - Margins.Right = 4 - Margins.Bottom = 4 - Align = alTop - AutoSize = True - TabOrder = 0 - object TBXLink1: TTBXLink - Left = 4 - Top = 4 - Width = 210 - Height = 19 - Cursor = crHandPoint - Margins.Top = 2 - Margins.Bottom = 2 - Align = alTop - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ImageIndex = 29 - ParentColor = True - ParentFont = False - TabOrder = 0 - Wrapping = twPathEllipsis - end - object TBXLink5: TTBXLink - Left = 4 - Top = 23 - Width = 210 - Height = 20 - Cursor = crHandPoint - Margins.Top = 2 - Margins.Bottom = 2 - Action = actColumnas - Align = alTop - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ImageIndex = 3 - Images = SmallImages - ParentColor = True - ParentFont = False - TabOrder = 1 - Wrapping = twPathEllipsis - end - object TBXLink2: TTBXLink - Left = 4 - Top = 43 - Width = 210 - Height = 20 - Cursor = crHandPoint - Margins.Top = 2 - Margins.Bottom = 2 - Action = actAgrupaciones - Align = alTop - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ImageIndex = 0 - Images = SmallImages - ParentColor = True - ParentFont = False - TabOrder = 2 - Wrapping = twPathEllipsis - end - end - object pcParametros: TPageControl - Left = 0 - Top = 67 - Width = 218 - Height = 169 - ActivePage = tsAgrupacion - Align = alClient - Style = tsFlatButtons - TabOrder = 1 - object TabSheet5: TTabSheet - Caption = 'TabSheet5' - TabVisible = False - end - object tsColumnas: TTabSheet - Caption = 'tsColumnas' - ImageIndex = 1 - TabVisible = False - inline frViewColumnas1: TfrViewColumnas - Left = 0 - Top = 0 - Width = 210 - Height = 159 - Align = alClient - TabOrder = 0 - ReadOnly = False - ExplicitWidth = 210 - ExplicitHeight = 159 - inherited lbColumnas: TcxCheckListBox - Width = 210 - Height = 130 - ExplicitWidth = 210 - ExplicitHeight = 130 - end - inherited TBXLabel1: TTBXLabel - Width = 210 - ExplicitWidth = 210 - end - end - end - object tsAgrupacion: TTabSheet - Caption = 'tsAgrupacion' - ImageIndex = 2 - TabVisible = False - inline frViewAgrupaciones1: TfrViewAgrupaciones - Left = 0 - Top = 0 - Width = 210 - Height = 159 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - ExplicitWidth = 210 - ExplicitHeight = 159 - inherited TBXLabel1: TTBXLabel - Width = 210 - ExplicitWidth = 210 - end - inherited pnlAgrupaciones: TTBXAlignmentPanel - Width = 210 - ExplicitWidth = 210 - DesignSize = ( - 210 - 77) - inherited Label3: TLabel - Width = 74 - ExplicitWidth = 74 - end - inherited Label2: TLabel - Width = 61 - ExplicitWidth = 61 - end - inherited Label1: TLabel - Width = 95 - ExplicitWidth = 95 - end - inherited TBXButton1: TTBXButton - Width = 97 - ExplicitWidth = 97 - end - inherited TBXButton3: TTBXButton - Width = 97 - ExplicitWidth = 97 - end - inherited TBXButton2: TTBXButton - Width = 97 - ExplicitWidth = 97 - end - end - inherited PopupMenu1: TPopupMenu - Left = 24 - Top = 120 - end - inherited PopupMenu2: TPopupMenu - Left = 56 - Top = 120 - end - inherited PopupMenu3: TPopupMenu - Left = 88 - Top = 120 - end - end - end - end - object TBXAlignmentPanel3: TTBXAlignmentPanel - Left = 0 - Top = 236 - Width = 218 - Height = 30 - Align = alBottom - TabOrder = 2 - object bRefrescar: TButton - Left = 2 - Top = 4 - Width = 100 - Height = 21 - Action = actRefrescar - TabOrder = 0 - end - end - end - object pnlTareas: TTBXDockablePanel - Left = 0 - Top = 288 - Caption = 'Modificar el informe' - CloseButton = False - CloseButtonWhenDocked = False - DockedWidth = 218 - DockMode = dmCannotFloat - DockPos = 288 - FloatingWidth = 128 - FloatingHeight = 128 - SplitHeight = 276 - SplitWidth = 3 - SupportedDocks = [dkStandardDock, dkMultiDock] - TabOrder = 1 - object TBXPageScroller1: TTBXPageScroller - Left = 0 - Top = 0 - Width = 218 - Height = 281 - Align = alClient - DoubleBuffered = False - Range = 0 - TabOrder = 0 - object TBXAlignmentPanel1: TTBXAlignmentPanel - Left = 0 - Top = 0 - Width = 218 - Height = 48 - Margins.Left = 4 - Margins.Top = 4 - Margins.Right = 4 - Margins.Bottom = 4 - Align = alTop - AutoSize = True - TabOrder = 0 - object bFiltros: TTBXLink - Left = 4 - Top = 24 - Width = 210 - Height = 20 - Cursor = crHandPoint - Margins.Top = 2 - Margins.Bottom = 2 - Action = actFiltros - Align = alTop - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ImageIndex = 1 - Images = SmallImages - ParentColor = True - ParentFont = False - TabOrder = 0 - end - object bSumarios: TTBXLink - Left = 4 - Top = 4 - Width = 210 - Height = 20 - Cursor = crHandPoint - Margins.Top = 2 - Margins.Bottom = 2 - Action = actSumarios - Align = alTop - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ImageIndex = 2 - Images = SmallImages - ParentColor = True - ParentFont = False - TabOrder = 1 - end - end - object pcTareas: TPageControl - Left = 0 - Top = 48 - Width = 218 - Height = 233 - ActivePage = tsFiltros - Align = alClient - Style = tsButtons - TabOrder = 1 - object tsSumarios: TTabSheet - Caption = 'tsSumarios' - ImageIndex = 2 - TabVisible = False - inline frViewSumarios1: TfrViewSumarios - Left = 0 - Top = 0 - Width = 210 - Height = 223 - Align = alClient - TabOrder = 0 - ReadOnly = False - ExplicitWidth = 210 - ExplicitHeight = 223 - inherited TBXLabel1: TTBXLabel - Width = 210 - ExplicitWidth = 210 - end - inherited vgSumarios: TcxVerticalGrid - Width = 210 - Height = 194 - ExplicitWidth = 210 - ExplicitHeight = 194 - end - end - end - object tsFiltros: TTabSheet - Caption = 'tsFiltros' - ImageIndex = 1 - TabVisible = False - inline frViewFiltros1: TfrViewFiltros - Left = 0 - Top = 0 - Width = 210 - Height = 223 - Align = alClient - TabOrder = 0 - ReadOnly = False - ExplicitWidth = 210 - ExplicitHeight = 223 - inherited vgFiltros: TcxVerticalGrid - Width = 196 - Height = 0 - ExplicitWidth = 196 - ExplicitHeight = 0 - inherited vgFiltrosEditorRow1: TcxEditorRow - Properties.EditProperties.OnEditValueChanged = nil - end - end - inherited TBXLabel1: TTBXLabel - Width = 210 - ExplicitWidth = 210 - end - inherited cxFilterControl1: TcxFilterControl - Width = 210 - Height = 164 - ExplicitWidth = 210 - ExplicitHeight = 164 - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 193 - Width = 210 - ExplicitTop = 193 - ExplicitWidth = 210 - end - end - end - end - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000794944415478DA - 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 - E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 - E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 - E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 - 454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001574944415478DA - 63FCFFFF3F0308303232826943C3648800109C3F3F9791010780EB433600A4D9 - B1A892E1129300C399C38719144F6E61483F3F17AE2903A88CA001E7053C1918 - B8B9197C448E33F82C68620868296078346B2503EBA3E70C27910CC169809AC5 - 578685FA3718FEE99A332CB29EC9602427C9C00FD4CC0A54B38B9001B53D0BFE - 57F34C60600E2E6160E27AC6F07BF1328605191718D480F27C407C069F0175BD - 0BFF4BE87832243F7067604F2F61F839B38781D53E8AE1D9C5DD0C5B237683D5 - 6C4D6A03D34FCEDF6538776E0E238A017EC9EDFF37CDAD64F8F4FD2F43CFB425 - 60B10BD79EA1847C4A4626C39377BF18E65456611A00F2826F521BDC90379FFE - 30BCFDFC07AEF9F9FBDF70CDA0E8C51A062080CD1074CD38031106900D3970E5 - 3386668206201B326DE72B0CCD2419606494823549D3C780096D450C219ED9E4 - 1B004A30B8722451066C9E5745303B030083AA15F0BB1362F30000000049454E - 44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA - 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 - BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 - 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 - 82} - Name = 'PngImage27' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000011E4944415478DA - 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F - 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F - E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E - 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C - 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD - A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 - 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B - 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA - CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 - 0000000049454E44AE426082} - Name = 'PngImage28' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001534944415478DA - 63542C3BFB9F8102C00832A0CE570F43E2E76F06864F5FFF337CFCF20F4C7FFA - FE9FE11750ECF3B7FF0C5FBE41E87FD74BB11B804D334C13CC001060B9033580 - 5CE70B5C9CC3C0B866CDEAFFC1C1217815FEFDF79FE1F79FBF402FFC61F8FDFB - 2F98BD66FB3186794B37611AC0987812CE6E50D881D5C0C4B43C864D7B4EE236 - E044860183C58C0B0C5247F318562FD8CF109AE008A6ADACB8181A1B1B196292 - 7218B61F388D6A0048026CEB030FB861475375C19A4100640008ECDEDDCD101E - 97C9B0E7C8394C03EAEBEB198E1DFB06B60944C334C30C80B9C03F3C85E1C8E9 - CB9806B8BA96E20CC8CBD6DC70B6E1A5870CA72E5C23EC02647A26232343FAD9 - B30C338D8D1974CEDE63387FF526F630C005241A1AE06CF593B719AEDCBC8330 - C0D73F101EBFBF40348CFDE72F5671104031C0C3CB8F61FE9A7D24A744B801AD - B349D70C4F37FFFF53949B1900BA770EC0E001FEA50000000049454E44AE4260 - 82} - Name = 'PngImage29' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 368 - Top = 32 - Bitmap = {} - end - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000CA4944415478DA - 63FCFFFF3F032D01E3D0B7A0A0730DD56C98501EC288D5020375151441908D7F - FFFE63F8FBEF1FC33F10FDF72F980D11FB0F66FF0189FD05D110F68EED9B19CE - EF9C4ED802720C07B177EFDA4AD802720D07D1FBF7EEC06F012586FF03CA1FDC - BF13B705FA400BEE3D7E497464A21B0E02782D38B86F2F555211560B88D50C73 - 083643F00192149363094916906309C916906A095916906209232ECDE45A4CB4 - 05D42A9F88B28092F289A00594964F782DA046F984D3026A954F382DA056F934 - F42B7D00F75AE9FD6BE4FF8E0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022F4944415478DA - 63FCFFFF3F030C303232C2D98686C9FA406A0A101B00F174205E7AFEFCDC8B0C - 44001433B1590034FC30C8E0ECB9737840FCA9C92920AA1F8817822CD902B40C - C85EE6C3C0B095640B8086AF033203818633ACBBCFC0B0EDFA7584AFD6F63234 - 9F9F8B6C16C89268522DF82F593387615B0BD4202323087DEE1CC396F3290CB6 - F3BA19FEBC7DC670BCB49F410B28BC0F8881FE6324C982F346D908D54083FFF7 - A4306C7566C0301C06D02D21CA82648E7360B11EAB140681A8974053C4C19680 - 00B2E120F00A88AF205982D782C6A605FF1FBDFCC3602A3187215CE904C47086 - CD60F90FCB52186E46430C7342337C63521BC3E67955F82D686A5EF85F4C531D - CCCE10B2049A826AB880E51C86F3FB52187EA5400CD5811AFE7BF571B09A6DDB - F783E94D732B19715AF0878B81E1C2B567508562D040069AA83807AE0E64C9B9 - 14081B6438C860032D2906091D4F861DABE6E2B7A0AC2296E1D79FFF0CBF8178 - E2ACA508CB6AC4E086D71F6B83EB01196C62E70F663F79F70BBF05A038A8ED59 - F0BF2A2F96E1EB8F7F0CBFFFFE67F803C4207AFEE21560CB4006FA0784A0C87D - FEFE0F6E38281E08E66498251FBEFE851B8242FF41B0DF7DF98B6238C1540403 - A0D4040AAE379FFEE0B4E0D5C73F1886136D01B225CFDFFFC6B0E0E9BBDF580D - 27C902644B1EBFF905B7E0C1AB5F380D27D902644BEEBDFC09B6E0C88D2F380D - 27CB02644BE6ED7B83D7F0510B86B80522669E040DA7C882330F9E11349C220B - EAEB12081A8E6E01002A731EEF226ACE030000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000000DB4944415478DA - 63FCFFFF3F032D01E3A805245BC0C8C848B68D40B31889B16002908A066211A8 - 9003101FC463AE3D10EB03F144622D0051CD405C0315DA09C4ED4458D20034CB - 91580B40603E102740D97B80B88580250CD8E2139F0520D007C48550F62520CE - 43B304A49805887F936B01084C841A0C02A780B80C974FC8B500045600713894 - BD05887BB0F8E43F29168035A0A96D00E27A28FB3210E7A2FB84121FB001F12F - 205E0EC41150B11D40DC01C42780F827A916D0DD07548F036440D35444937CC0 - 0AD540D39C4CD3B288E6A5296DEB036A83A16F01003B61B4D1E99D5171000000 - 0049454E44AE426082} - Name = 'PngImage27' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001AD4944415478DA - 63FCFFFF3F032D0123C882A55B4ED2C496681F7346B805400E5986FC03EAFFF7 - EF3FC3DFBFFF20F81F88FECFE01456CC706EC734540BE44BCFA168BEA5928C61 - A0DA9DB9782D3C5FA3C1B06CD32186794B3761B7E07E97215CF1EF59460C0C1E - 6F802C1606862FEC0C0B7A6E32A4CEFB0797572C3B8FA21EC43F53A5C6B072CB - 11522CF800369CE1051BC3822597095A70B25C9561CDF6A3245860F31D6C38C3 - 1D668605272E10B4E058A932C3FA9DC7715B8011070F24E0FC052F7630B4899C - C51B07878B141936ED3949BB383858A0C0B065DF29DAC5C1DE5C39861D07CFD0 - 2E0E7666C930EC39728E7671B02D5D8A61FFF10BB48B83CDA9120C874E5EA25D - 1C6C481263387AE60AEDE2606DBC28C389F357312D88F436032BA0340E56440B - 319CBD7C03D382704F5306E58A0B14C7C1D24801860B576F615A10E46AC4A051 - 7399E2385814C6C770F9C61D4C0BFC9D0C18B4EBAF521C070B43F918AEDCC462 - 818F833E835EE3358C3800198A0C08C5014E0B3C6D75E1B51184FE07A9A9D0C4 - 20B5D67F863F2835D83F06E4AA1DAB056ED6DAE08A825A00C382DE290BA96638 - 0CC02DA02500004F8255EF277FDA8C0000000049454E44AE426082} - Name = 'PngImage28' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022E4944415478DA - 63FCFFFF3F032D0123DD2C60646404D351F98B2700A97C209EB86C626C013186 - E0D203321B9B05FF974E886130F2C86238BF733A23911660D583628152F93930 - C3F2E735063B4D558699EB17327CD04F212A1870E9B9D769C48862419DAF1EC3 - EE352BC0FCEB378E31E4D54C4231E8DB8FFF0C5F81184243F8DF80F4CF3B6BE0 - 7AB8F47BC0E21F386E62B7E0E6C5730C3B372F6070F74D6050D7372268F8F79F - 0C0C7FDF5C60B8737E11838C761CC3933FBA0C7FFE32307CE1C661013680CF70 - 30FBE77F381B64380860B580DCA4880BA058B076F7C5FFC1AEFA446BFEF70FE4 - DA7F0C7F804E86D040FC17C25EB7F338C3BCA59B18CEED9886DF02C6C49328FC - C94EEF095AECE76CCEB069EF49122CB87082E1C48C0C068B191718A48EE6313C - BD7592E1D8B16F0C56565C6035C8EC298B7730783998326C3B709A780B4E6418 - 80D9200B1678BC60A8AA6D6358BD603FD850693573381B66819BAD31C3AEC367 - 715B00520403B9FB04512C3C9AAACB70FBF16EB0253000B20006CEDD3DC4E064 - 69C0B0EFF805FC16E4C47A60781F990D7239B205C83EB033D3633874EA12F916 - 201B8ECD020B432D8613E7AFE1B7C048D98EE8E47AD99A1B85AF7FFE3EC399CB - 37280B2264F64C60297C0648CF3E7B9661A6B13183F699BB0C17AEDDA2AE05E9 - 40C3C16CA005EA276F335CB97987B854440C608DF344E1E3B5C0DF511792DDC1 - D9FE1F1A1BA938C0210F03382DF0B6D36298B36A2F493EC005B05AD0DA3B932A - 86C3008A05B40200F47739EF77A04B0C0000000049454E44AE426082} - Name = 'PngImage29' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 328 - Top = 32 - Bitmap = {} - end - object EditorActionList: TActionList - Images = SmallImages - Left = 288 - Top = 32 - object actAgrupaciones: TAction - Category = 'Tareas' - Caption = 'Agrupaciones' - ImageIndex = 0 - OnExecute = actAgrupacionesExecute - end - object actColumnas: TAction - Category = 'Tareas' - Caption = 'Columnas' - ImageIndex = 3 - OnExecute = actColumnasExecute - end - object actSumarios: TAction - Category = 'Tareas' - Caption = 'Res'#250'menes' - ImageIndex = 2 - OnExecute = actSumariosExecute - end - object actFiltros: TAction - Category = 'Tareas' - Caption = 'Filtros' - ImageIndex = 1 - OnExecute = actFiltrosExecute - end - object actRefrescar: TAction - Category = 'Ver' - Caption = 'Refrescar' - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas deleted file mode 100644 index 6104911..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlBase.pas +++ /dev/null @@ -1,179 +0,0 @@ -unit uViewControlBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, TBXDkPanels, StdCtrls, ComCtrls, TB2Dock, - uViewAgrupaciones, uCustomView, uViewColumnas, ImgList, PngImageList, - ActnList, uViewControlGrid, uBizControlesBase, uViewSumarios, - uViewParametrosControlGrid, uViewFiltros, cxStyles; - -type - IViewControlBase = interface(IViewBase) - ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] - function GetModificable: Boolean; - procedure SetModificable(const Value: Boolean); - property Modificable : Boolean read GetModificable write SetModificable; - - function GetControl: IBizControlBase; - procedure SetControl(const Value: IBizControlBase); - property Control: IBizControlBase read GetControl write SetControl; - - function GetOnViewChanged : TNotifyEvent; - procedure SetOnViewChanged(const Value : TNotifyEvent); - property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; - end; - - TfrViewControlBase = class(TfrViewBase, IViewControlBase) - TBXMultiDock1: TTBXMultiDock; - pnlParametros: TTBXDockablePanel; - TBXAlignmentPanel2: TTBXAlignmentPanel; - TBXLink1: TTBXLink; - TBXLink5: TTBXLink; - TBXLink2: TTBXLink; - pcParametros: TPageControl; - TabSheet5: TTabSheet; - tsColumnas: TTabSheet; - tsAgrupacion: TTabSheet; - TBXAlignmentPanel3: TTBXAlignmentPanel; - bRefrescar: TButton; - pnlTareas: TTBXDockablePanel; - TBXPageScroller1: TTBXPageScroller; - TBXAlignmentPanel1: TTBXAlignmentPanel; - bFiltros: TTBXLink; - bSumarios: TTBXLink; - pcTareas: TPageControl; - tsSumarios: TTabSheet; - tsFiltros: TTabSheet; - frViewColumnas1: TfrViewColumnas; - frViewAgrupaciones1: TfrViewAgrupaciones; - SmallImages: TPngImageList; - LargeImages: TPngImageList; - EditorActionList: TActionList; - actAgrupaciones: TAction; - actColumnas: TAction; - actSumarios: TAction; - actFiltros: TAction; - frViewSumarios1: TfrViewSumarios; - actRefrescar: TAction; - frViewFiltros1: TfrViewFiltros; - procedure actColumnasExecute(Sender: TObject); - procedure actSumariosExecute(Sender: TObject); - procedure actFiltrosExecute(Sender: TObject); - procedure actAgrupacionesExecute(Sender: TObject); - protected - FControl : IBizControlBase; - FOnViewChanged : TNotifyEvent; - FModificable : Boolean; - procedure ActivarTarea (const ATarea : Integer); virtual; - function GetControl: IBizControlBase; virtual; - procedure SetControl(const Value: IBizControlBase); virtual; - function GetOnViewChanged : TNotifyEvent; virtual; - procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; - function GetModificable: Boolean; virtual; - procedure SetModificable(const Value: Boolean); virtual; - public - property Modificable : Boolean read GetModificable write SetModificable; - property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; - property Control: IBizControlBase read GetControl write SetControl; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -{$R *.dfm} - -const - COLUMNAS = 1; - AGRUPACIONES = 2; - SUMARIOS = 3; - FILTROS = 4; - - -procedure TfrViewControlBase.actColumnasExecute(Sender: TObject); -begin - inherited; - ActivarTarea(COLUMNAS); - frViewColumnas1.Refresh; -end; - -procedure TfrViewControlBase.ActivarTarea(const ATarea: Integer); -begin - case ATarea of - COLUMNAS : pcParametros.ActivePage := tsColumnas; - AGRUPACIONES : pcParametros.ActivePage := tsAgrupacion; - SUMARIOS : pcTareas.ActivePage := tsSumarios; - FILTROS : pcTareas.ActivePage := tsFiltros; - end; -end; - -function TfrViewControlBase.GetControl: IBizControlBase; -begin - Result := FControl; -end; - -procedure TfrViewControlBase.SetControl(const Value: IBizControlBase); -begin - FControl := Value; - frViewColumnas1.Refresh; - frViewAgrupaciones1.Refresh; - - // ¿Es modificable el control? - Self.Modificable := FControl.EsModificable; -end; - -procedure TfrViewControlBase.actSumariosExecute(Sender: TObject); -begin - inherited; - ActivarTarea(SUMARIOS); - frViewSumarios1.Refresh; -end; - -procedure TfrViewControlBase.actFiltrosExecute(Sender: TObject); -begin - inherited; - ActivarTarea(FILTROS); - frViewFiltros1.Refresh; - end; - -procedure TfrViewControlBase.actAgrupacionesExecute(Sender: TObject); -begin - inherited; - ActivarTarea(AGRUPACIONES); - frViewAgrupaciones1.Refresh; -end; - -function TfrViewControlBase.GetOnViewChanged: TNotifyEvent; -begin - Result := FOnViewChanged; -end; - -procedure TfrViewControlBase.SetOnViewChanged(const Value: TNotifyEvent); -begin - FOnViewChanged := Value; -end; - -constructor TfrViewControlBase.Create(AOwner: TComponent); -begin - inherited; - FModificable := False; - pcParametros.ActivePage := tsColumnas; - pcTareas.ActivePage := tsSumarios; - FOnViewChanged := nil; -end; - -function TfrViewControlBase.GetModificable: Boolean; -begin - Result := FModificable; -end; - -procedure TfrViewControlBase.SetModificable(const Value: Boolean); -begin - FModificable := Value; - - frViewColumnas1.Modificable := FModificable; - frViewAgrupaciones1.Modificable := FModificable; -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm deleted file mode 100644 index 60e526d..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.dfm +++ /dev/null @@ -1,149 +0,0 @@ -inherited frViewControlGrid: TfrViewControlGrid - object dxPrintStyleManager1: TdxPrintStyleManager - CurrentStyle = dxPrintStyleManager1Style1 - PageSetupDialog = dxPageSetupDialog1 - Version = 0 - Left = 16 - Top = 16 - object dxPrintStyleManager1Style1: TdxPSPrintStyle - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 20000 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 20000 - PrinterPage.PageFooter.CenterTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageFooter.Font.Color = clBlack - PrinterPage.PageFooter.Font.Height = -12 - PrinterPage.PageFooter.Font.Name = 'Tahoma' - PrinterPage.PageFooter.Font.Style = [] - PrinterPage.PageFooter.LeftTitle.Strings = ( - 'VARELA IMAGEN Y DISE'#209'O S.L.') - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageHeader.Font.Color = clBlack - PrinterPage.PageHeader.Font.Height = -15 - PrinterPage.PageHeader.Font.Name = 'Tahoma' - PrinterPage.PageHeader.Font.Style = [] - PrinterPage.PageHeader.LeftTitle.Strings = ( - '') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - BuiltInStyle = True - end - end - object dxPageSetupDialog1: TdxPageSetupDialog - ButtonsVisible = [psbStyleOptions] - Left = 48 - Top = 16 - end - object dxPSEngineController1: TdxPSEngineController - LookAndFeel = pslfOffice11 - UseNativeLookAndFeel = False - Left = 80 - Top = 16 - end - object dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxPrinterLinkcxGrid - PreviewOptions.ShowExplorer = True - PreviewOptions.WindowState = wsMaximized - Version = 0 - Left = 112 - Top = 16 - object dxPrinterLinkcxGrid: TdxGridReportLink - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.GrayShading = True - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage.ScaleMode = smFit - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 38877.461868113420000000 - StyleManager = dxPrintStyleManager1 - OptionsCards.Shadow.Depth = 0 - OptionsExpanding.ExpandGroupRows = True - OptionsFormatting.SuppressBackgroundBitmaps = True - OptionsFormatting.UseNativeStyles = True - OptionsFormatting.ConsumeSelectionStyle = True - OptionsLevels.Unwrap = True - OptionsRefinements.TransparentGraphics = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.ExpandButtons = False - OptionsView.FilterBar = False - StyleRepository = cxStyleRepositoryInforme - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - BuiltInReportLink = True - end - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 112 - Top = 48 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas deleted file mode 100644 index 4303660..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlGrid.pas +++ /dev/null @@ -1,284 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewControlGrid; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, - dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, dxPScxCommon, dxPScxGridLnk, - dxPgsDlg; - -type - IViewControlGrid = interface(IViewBase) - ['{566F315A-70A6-4BCE-8A02-0C7E10FF311A}'] - procedure ExpandirTodo; - procedure ContraerTodo; - procedure AjustarAncho; - procedure Preview; - procedure Print; - procedure PrintSetup; - procedure GotoFirst; - procedure GotoLast; - - function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; - - function GetFocusedView : TcxGridDBTableView; - property FocusedView : TcxGridDBTableView read GetFocusedView; - - function GetColumnCount: Integer; - function GetColumns(Index: Integer): TcxGridDBColumn; - property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; - property ColumnCount : Integer read GetColumnCount; - - function GetGroupedColumnCount: Integer; - function GetGroupedColumns(index: Integer): TcxGridColumn; - property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; - property GroupedColumnCount : Integer read GetGroupedColumnCount; - - function GetOnViewChanged : TNotifyEvent; - procedure SetOnViewChanged(const Value : TNotifyEvent); - property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; - - function GetViewProperties: String; - procedure SetViewProperties(const Value: String); - property ViewProperties: String read GetViewProperties write SetViewProperties; - - function GetFilterValueList(index: Integer) : TStringList; - property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; - - function GetOnFilterChanged: TNotifyEvent; - procedure SetOnFilterChanged(const Value: TNotifyEvent); - property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; - end; - - TfrViewControlGrid = class(TfrViewBase, IViewControlGrid) - dxPrintStyleManager1: TdxPrintStyleManager; - dxPrintStyleManager1Style1: TdxPSPrintStyle; - dxPageSetupDialog1: TdxPageSetupDialog; - dxPSEngineController1: TdxPSEngineController; - dxComponentPrinter: TdxComponentPrinter; - dxPrinterLinkcxGrid: TdxGridReportLink; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - private - protected - FOnViewChanged : TNotifyEvent; - FOnFilterChanged : TNotifyEvent; - function GetColumnCount: Integer; - function GetColumns(Index: Integer): TcxGridDBColumn; - function GetGroupedColumnCount: Integer; - function GetGroupedColumns(Index: Integer): TcxGridColumn; - function GetFocusedView : TcxGridDBTableView; virtual; abstract; - function GetColumnByCaption (const ACaption : String): TcxGridDBColumn; - function GetOnViewChanged : TNotifyEvent; virtual; - procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; - function GetOnFilterChanged: TNotifyEvent; virtual; - procedure SetOnFilterChanged(const Value: TNotifyEvent); virtual; - function GetViewProperties: String; virtual; - procedure SetViewProperties(const Value: String); virtual; - function GetFilterValueList(index: Integer) : TStringList; virtual; - procedure ActivarEventos; virtual; - procedure DesactivarEventos; virtual; - public - procedure Preview; virtual; - procedure Print; virtual; - procedure PrintSetup; virtual; - procedure GotoFirst; virtual; - procedure GotoLast; virtual; - procedure ExpandirTodo; virtual; - procedure ContraerTodo; virtual; - procedure AjustarAncho; virtual; - property FocusedView : TcxGridDBTableView read GetFocusedView; - property Columns[Index: Integer] : TcxGridDBColumn read GetColumns; - property ColumnCount : Integer read GetColumnCount; - property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns; - property GroupedColumnCount : Integer read GetGroupedColumnCount; - property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged; - property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged; - property ViewProperties: String read GetViewProperties write SetViewProperties; - property FilterValueList[Index : Integer]: TStringList read GetFilterValueList; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -{$R *.dfm} - -{ TfrViewControlGrid } - -procedure TfrViewControlGrid.ActivarEventos; -begin - // -end; - -procedure TfrViewControlGrid.AjustarAncho; -begin - FocusedView.ApplyBestFit; -end; - -procedure TfrViewControlGrid.ContraerTodo; -begin - FocusedView.ViewData.Collapse(True); -end; - -constructor TfrViewControlGrid.Create(AOwner: TComponent); -begin - inherited; - FOnViewChanged := nil; -end; - -procedure TfrViewControlGrid.DesactivarEventos; -begin - // -end; - -procedure TfrViewControlGrid.ExpandirTodo; -begin - FocusedView.ViewData.Expand(True); -end; - -function TfrViewControlGrid.GetColumnByCaption( - const ACaption: String): TcxGridDBColumn; -var - i : integer; -begin - Result := NIL; - for i := 0 to FocusedView.ColumnCount - 1 do - if FocusedView.Columns[i].Caption = ACaption then - begin - Result := FocusedView.Columns[i]; - Break; - end; -end; - -function TfrViewControlGrid.GetColumnCount: Integer; -begin - Result := FocusedView.ColumnCount; -end; - -function TfrViewControlGrid.GetColumns(Index: Integer): TcxGridDBColumn; -begin - Result := FocusedView.Columns[Index]; -end; - -function TfrViewControlGrid.GetFilterValueList( - index: Integer): TStringList; -var - AValueList : TcxDataFilterValueList; - i : Integer; -begin - Result := TStringList.Create; - AValueList := TcxDataFilterValueList.Create(FocusedView.DataController.Filter); - try - AValueList.Load(Columns[Index].Index); - for i := 0 to AValueList.Count - 1 do - Result.Add(AValueList[i].DisplayText); - finally - FreeAndNil(AValueList); - end; -end; - -function TfrViewControlGrid.GetGroupedColumnCount: Integer; -begin - Result := FocusedView.GroupedColumnCount; -end; - -function TfrViewControlGrid.GetGroupedColumns( - Index: Integer): TcxGridColumn; -begin - Result := FocusedView.GroupedColumns[Index]; -end; - -function TfrViewControlGrid.GetOnFilterChanged: TNotifyEvent; -begin - Result := FOnFilterChanged; -end; - -function TfrViewControlGrid.GetOnViewChanged: TNotifyEvent; -begin - Result := FOnViewChanged; -end; - -function TfrViewControlGrid.GetViewProperties: String; -var - AStream : TStringStream; -begin - DesactivarEventos; - AStream := TStringStream.Create(''); - try - FocusedView.StoreToStream(AStream, [gsoUseFilter,gsoUseSummary], FocusedView.Name); - Result := AStream.DataString; - finally - AStream.Free; - ActivarEventos; - end; -end; - -procedure TfrViewControlGrid.GotoFirst; -begin - FocusedView.DataController.GotoFirst; -end; - -procedure TfrViewControlGrid.GotoLast; -begin - FocusedView.DataController.GotoLast; -end; - -procedure TfrViewControlGrid.Preview; -begin - dxPrinterLinkcxGrid.Preview; -end; - -procedure TfrViewControlGrid.Print; -begin - dxPrinterLinkcxGrid.Print(True, nil); -end; - -procedure TfrViewControlGrid.PrintSetup; -begin - dxPrinterLinkcxGrid.PageSetup; -end; - -procedure TfrViewControlGrid.SetOnFilterChanged(const Value: TNotifyEvent); -begin - FOnFilterChanged := Value; -end; - -procedure TfrViewControlGrid.SetOnViewChanged(const Value: TNotifyEvent); -begin - FOnViewChanged := Value; -end; - -procedure TfrViewControlGrid.SetViewProperties(const Value: String); -var - AStream : TStringStream; -begin - DesactivarEventos; - AStream := TStringStream.Create(Value); - try - AStream.Position := 0; - FocusedView.RestoreFromStream(AStream, True, True, [gsoUseFilter,gsoUseSummary], - FocusedView.Name); - finally - AStream.Free; - ActivarEventos; - end; -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm deleted file mode 100644 index 0afad52..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm +++ /dev/null @@ -1,269 +0,0 @@ -inherited frViewControlesBase: TfrViewControlesBase - object EasyListview: TEasyListview - Left = 0 - Top = 0 - Width = 294 - Height = 214 - Align = alClient - BevelKind = bkTile - CacheDoubleBufferBits = False - CellSizes.List.AutoSize = True - EditManager.Font.Charset = DEFAULT_CHARSET - EditManager.Font.Color = clWindowText - EditManager.Font.Height = -11 - EditManager.Font.Name = 'Tahoma' - EditManager.Font.Style = [] - UseDockManager = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - GroupFont.Charset = DEFAULT_CHARSET - GroupFont.Color = clWindowText - GroupFont.Height = -11 - GroupFont.Name = 'Tahoma' - GroupFont.Style = [] - Header.Font.Charset = DEFAULT_CHARSET - Header.Font.Color = clWindowText - Header.Font.Height = -11 - Header.Font.Name = 'Tahoma' - Header.Font.Style = [] - ImagesLarge = ReportImages - PaintInfoGroup.BandColor = clGradientActiveCaption - PaintInfoGroup.BandThickness = 2 - PaintInfoGroup.CaptionIndent = 5 - PaintInfoGroup.Expandable = False - PaintInfoGroup.MarginBottom.CaptionIndent = 4 - ParentFont = False - Selection.AlphaBlend = True - TabOrder = 0 - View = elsTile - OnItemContextMenu = EasyListviewItemContextMenu - OnItemDblClick = EasyListviewItemDblClick - OnItemSelectionChanged = EasyListviewItemSelectionChanged - end - object ReportImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002024944415478DA - BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 - 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 - B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E - E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 - AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 - FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 - 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE - B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 - C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 - 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A - 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D - C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C - 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 - 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 - 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 - 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 - A47A98E90000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002CB4944415478DA - BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C - 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 - 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 - E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 - 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 - 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 - A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 - 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 - E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 - 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D - 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 - 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD - 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE - 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 - FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 - 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 - A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 - DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D - 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 - 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC - CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E - 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 - 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002B14944415478DA - BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 - D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 - DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 - 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 - DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 - 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E - 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 - B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 - 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 - 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D - 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD - D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 - 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF - CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D - 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB - 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 - C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 - 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C - F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A - BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC - 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 - F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002E14944415478DA - 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 - 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A - 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 - 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD - 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC - 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 - F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F - DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 - B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 - 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 - 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF - 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E - C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E - 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 - 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 - 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 - C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 - 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 - 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 - 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B - 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF - 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 - 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 - 7DF1720000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001C64944415478DA - 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 - F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 - 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC - 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A - 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 - 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 - 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 - D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 - 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 - CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 - 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB - 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 - 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 - 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 - BE8AE7E7F700C7D10000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD2520000020E4944415478DA - 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF - 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF - E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 - 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 - C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 - 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 - C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 - E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C - 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 - 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 - 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 - B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F - 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F - DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD - D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 - CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 - 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000003474944415478DA - BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 - CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 - 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 - 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D - D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 - 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F - 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A - E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D - 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 - F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 - E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 - 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 - E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 - C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD - 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 - DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 - D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 - 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 - 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F - A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 - 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 - 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 - 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C - C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 - 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 - 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 - 5FA7D4B1F664B3FE1D0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001084944415478DA - 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 - 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D - 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 - CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 - BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 - BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED - C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 - D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF - 42005A1A11E70A945A890000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 115 - Top = 96 - Bitmap = {} - end - object dsDataTable: TDADataSource - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk deleted file mode 100644 index 0afad52..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.dfm.cbk +++ /dev/null @@ -1,269 +0,0 @@ -inherited frViewControlesBase: TfrViewControlesBase - object EasyListview: TEasyListview - Left = 0 - Top = 0 - Width = 294 - Height = 214 - Align = alClient - BevelKind = bkTile - CacheDoubleBufferBits = False - CellSizes.List.AutoSize = True - EditManager.Font.Charset = DEFAULT_CHARSET - EditManager.Font.Color = clWindowText - EditManager.Font.Height = -11 - EditManager.Font.Name = 'Tahoma' - EditManager.Font.Style = [] - UseDockManager = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - GroupFont.Charset = DEFAULT_CHARSET - GroupFont.Color = clWindowText - GroupFont.Height = -11 - GroupFont.Name = 'Tahoma' - GroupFont.Style = [] - Header.Font.Charset = DEFAULT_CHARSET - Header.Font.Color = clWindowText - Header.Font.Height = -11 - Header.Font.Name = 'Tahoma' - Header.Font.Style = [] - ImagesLarge = ReportImages - PaintInfoGroup.BandColor = clGradientActiveCaption - PaintInfoGroup.BandThickness = 2 - PaintInfoGroup.CaptionIndent = 5 - PaintInfoGroup.Expandable = False - PaintInfoGroup.MarginBottom.CaptionIndent = 4 - ParentFont = False - Selection.AlphaBlend = True - TabOrder = 0 - View = elsTile - OnItemContextMenu = EasyListviewItemContextMenu - OnItemDblClick = EasyListviewItemDblClick - OnItemSelectionChanged = EasyListviewItemSelectionChanged - end - object ReportImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002024944415478DA - BDD5DB2E03411800E0E923B870E1CE9D085A940B823894D2489C4FAFE101BC80 - 8444840B89B3D4A954292D8A2855DD5655EB14E205A4570E09BAFB9B5944C7A1 - B335F87727F3CFBF93F976B3995D1500A0FF0C553468D93A9107A4F6D6A8313E - E4F33597AFCBE74BDED93384FCF67E5534F0F181287061F3186A4AD27E74E746 - AB80921213507B471785C604CD1B21A82D4DFF1138B1B48F325393D175F88642 - FF0494F01A46AB07156853D0EDFD0385C604E71D41A82BCB880B1325098922A0 - 699B80CAF2D2D1E35384420F6C7DAA6FC1B9F523A8D7A9E3C6483F6BF7A2EEBE - B14F736282A6F50034E834716392847B51425BDE2B74777F87C2E1B03C6770C2 - C200D73058CE06BFC23ED64C36171B9C5D3D84C68A4C6E8CD4CC6B6E363863F7 - 43933E8B1B23F9A2C3C306A7ED07D0ACCFE6C6486EDD14D8E094CD072D955A0A - 227B8C0550B5D7F1AAD3A7005CC16095961B23BD63D7CF062757BCD05A95C38D - C95BC41D6083C66501DA0CB9DC18694E21A800B40AD062C8E1C6445C77F9426C - 107FF1F13BCCE5C622B8F71C9E28031B2BB4DC18C97DC1333638BEE8863A5D36 - 738F452FFC0ED278E0F4820D8E59F6A0A6348B1B237342E797CAC0EA620D3746 - 421138BAE0024391861B530C8E9877A1B250CD8D290687E777405FA0E6C61483 - 43734E28CFCF90FF65BF114C70D0B40DBD0393BF82BD454CF03FE219EFD39C05 - A47A98E90000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002CB4944415478DA - BDD36F4813711807F0EF4984F5A68108254249648689A961334B8C95342CAD4C - 222D5F66607F2C825E1426B504090A7B636446A00605A624A4258A664EF1DFA6 - 0E97298D72AED3306FCB68A277D7EE3776E9727AB7AB1E381EF8DDFD9ECFEFB9 - E78EE2791EFF33286F90A228E0DA171EB737504AB37E3D48F1DD34A865415556 - 13CF3CD5504AF2AB660D765D3E8F804F15E8A86644F40FF0597D2F59385B69C7 - 8353EBFCCA8FD24611929F8B840C15A0676076AA60187720DBC1514B8227B471 - A0624AC01B2ECACA6CDF05D43C2FC39EE4740C6487E2C0B77982093134F51D21 - 012C7C82728373D5F160344D639AF90A477E0A8269777D130D9C1126F6374096 - E3F0AE220FEF9D3BA056AB0926849DF901AAF028268C3CC17CCE500EE8C1E2F7 - 6F4780B5074F8C6A6C8DD84C30A1539D4E07ABD5EAFB2B5D0816D78CAF08AA1D - 3A119B9C9B01373F8B86E15472CF1B53D4A177671E8C9918839331E2B82E14C1 - 918761785DAA1C94825D2D2AC3E3AA97CA416F6C62D60E8E9D857DD226621DDD - 83A86DEC940F2E35C38533F3850987AA6BEAF2BF43E11FE3381EED95CB77D6DE - 35409E13C0FA961EFF407F3096E5F1A6AD573EE8C15896C3AD829398E3D39197 - FA62454CC84DED0679A080DDA9B591B54DB6EB181C9B41ECCC38FA5497901955 - 2462E7EE772EDA9F16BD8A1CB0A5B35F3A98793056EC4C386D516136AE24AD86 - A5D90C8B3310D59FD7E0ADE1C3929D913DAEABCDF5F1480633526244ACAE3C17 - DDFA56E4C586C160F909FD340D666D1C0A6E3EF489B1AE757DAF493A7844132D - 163A9D93838F23666C0CE611141A066D7C10128EDD5D169B77E52EE39074F050 - 7214D95CDA3885AA1B5A848547226B5F201233EE91E26ECC5DD8F326DCE06FBC - CF342C1DD4EE8D5C74FA85F394820957BF79443A9892B84D11263C631A1E950E - 6AD4118A30216481C9F1E18A30D960D2CE2DA86ED0436948068B4BCA15639E58 - 11FCD7F10B8E341130466CDCF80000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002B14944415478DA - BDD5CB4F13411800F0AF897AF2A0311E8C07F5604C63E9839683040D42A1D098 - D42A8826DEFC070C4AF4E4C1981883C117C13755B02922A505ACB440855829B5 - DB07B5151589070831846C222A242ADD717760B14B6B676991AFBB99D9D96FF7 - 37B3B3D3952084602D439208760E8CE003AE8DDF05C7EC0F6F8B757C1E6F0BF5 - DA9B2608BB6E4B1281E50312801DFDEF90E1E0DE8C7A6E7150B06DEB66A8BE50 - 2740D382F6973174B8489611687EFE0694D29D304D7F17A0FF0564D87B581C7E - 2850EF811F733F05685AD0E68E2263710EAE5FB14D12A173C6ED10671888C711 - B43A2928DE27835FBFE70568C8D920F927D8DEF7161DD1CA458F8CC7B8B2CD15 - 806B0DCD493969416B5F041DD52A568C310C5BC61918087C86D9B959A0691AE7 - 349A3B09602F0B9690C154D8F236ABD34B06DB7A865145A952F41C26C6A9C24D - 820ED87B7D64F0992B8C2A75AAAC46C6B775B9FD64B0D51542C774B959635CDD - D14F91C1A7CE20AA2A530B206E8D910041DBE2718F272802EC66C172754673C8 - 8751B501A3EEC130196CE90EA0E3E59AAC46B650B24BC41721839617143AA1CF - CB1AE3760F1515013A2854A5D7648DC5D9766F304606D97F7C760EF3F045D71D - 5329E7E864FE467CF31DF7C6539E0F566E8179F67AFFF08838B0A2542D6A64BB - 1E4C80A9F8EFB7939E61C07CEB34DCA93D8FF383D10F64F049970F19B5B9C435 - C63DB2DDA6C92590C3462718A0ECD5507FB906E746DE7F2283CD9D43C850A422 - 62DC2393367DC1208F8D8E3330133A0B372E9DC139B18F63E2C043850A8C3D1C - F89A728E0CCAF5B80332F3145CD5489730FA1B827563355077B11AE789029B3A - BC487F409176647C9BC2320DAAA1BB491D5A11F8D83E88CAF6CB89D8C2EB9FBC - 14124314F8C8F61AE90AE45963A24153BB0795E4E7E06FD96A04116CB4BE42F5 - F75B5605E3232DB816F1079F420105E5B916660000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000002E14944415478DA - 63FCFFFF3F033D0123B2859B0E5C03734062308CC207423082B2C1F260046177 - 4F9ACF707EE77446640BD03D8462E1C6FD57FFFB3B6A93E5F2E55B4F33488A0A - 3214D5F5A1588AD7C20DFBAEFC0F70D221CBC2A55B4E3218682A30BC7EFB19C5 - 52A22DEC5CFF142E5E1E284D504C86F509838DB13AC3976F3F512CC56BE1FABD - 97FF073AEB92E4B3BFFFFE31FCFDFB9F61D58ED30CCE963A0CBF7EFF41B1F4DC - 8E698C382D5CB7E7D2FF20173D922D03D16B769E61E89FB618430D5E0BD7EEB9 - F83FD8451F23F8B081127F49B865FFFE01E9BFFF180E9CB9C7F0F5DB5786B76F - DF82D5CC5BBA898085BB8116BAEA93E4339865E8626B771C236CE19A5D17FE87 - B819506C19486CC3EE13842D5CBDF3FCFF5077439420454F8D20D5202D208341 - 74B6BB10D8B2C93BDF81B300509821D5818761F3DE53842D5CB5F3DCFF307723 - 8A7C06636FDD7F9AB0852B779CFD1FEE618CE2A3D20029B0013D9B9EA3F8ECDF - 7F089DEECC0FB674FADE8F50710686441B4E865D87CF1261E176A0859EC6703E - C85042BE411143E2EF3D7A9EB0852BB69FF91FE16982E2C3026F71B0017D5B5E - 217CF60FE1C354475EB06533F77F81C7619C251BC3811317095BB87CDBE9FF91 - 5EA614F90C2C0FC4874F5F26C2C2ADA7FF877B99800DE9DEF81CECE25C0F51B0 - 4113B7BF41F1D93F48CDC4906CC705B66CF6C16F701FC698B3301C3B7B85B085 - C0121F1887A614F9EC2F50FC0F903E75E11A711686B819A3C459B69B10D82048 - 3E43F80C9662136C38C0F2F38EFC848B459830329CBD7C83B0854B369FF81FE8 - 6244308FC17C815087E9D38BD76F13B670F1A6E3FFFD9D0CC11A27ED780B8E33 - 483EFB07CC679F507CF60FDAD48806C617C8B2C527FE80C5402058FF2FC3959B - 7788B3D0C7419F229FFD85DA4A94858B361EFBEF65A74FB165445BB870C3D1FF - 1EB67A6459B6EA3C13DC1CA28374C1FA23FFDD6DF428F219493E9CBFEEF07F57 - 2B5D705D460D40D0C2796B0FFD9F327B05552C8301BC16D2030000BD734D0581 - 7DF1720000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001C64944415478DA - 63FCFFFF3F033D01E38059B87CDB699ADB1CE965CA88622150806CC3FE01CDF9 - F7EF3FC3DFBFFF18FEFEFB87C4FECFB06CD32186794B37319CDB310DBF858C33 - 1919823435197EFDFD0BC6BFA134980D34F4C79F3F0C3F81EC3F40F64F201BCC - 07E237515FE196FD03CAADD87284780BC9011FA2BEC12D03D1ABB71D25CE424A - 8211661988BF6EE771D22D644CC4EFDBCF537F30FCF903B1186C21D462107FD3 - 9E9394F9106CE85F245F807CF7F73F56CB40BEDEB2EF146E0B09F9845470A7E9 - 35C3F60367F05BF87F3E224B5E5C69C8A01F7E1E271F19A0CB81CCBA59FF8A61 - D7E1B3F82D4CC830806B2A78C0C030418101271F19A0CB2D987181E17AED0B86 - 3D47CFD3CF8757AA9F33EC3F7E817E3EBC50FE84E1F0E9CBF4F3E1D9D2C70CC7 - CE5EA19F0F4F173F643871FE1AFD7C78A2F001C3E98BD7B15B18EE69C2C09CC4 - 44551F1ECDBBC770EECA4DEC1686BA1B33B0A63053D5878773EE325CB8760BBB - 85412E860C1CE9AC54F5E1FECCDB0C576EDEC16EA1BF933E0377263B557D88D7 - 426F7B5D06FE1C4E066A02BC167ADAE8E02CF149AD2190014E0BDDACB4A86E19 - 5E0B9D2D3419566D3D42D5208501AC16764F9A4F13CB6000C5427A01BA5B0800 - BE8AE7E7F700C7D10000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD2520000020E4944415478DA - 63FCFFFF3F033D0123C842464646086F06034D6CFF9FFE9F11C5C2695326FDEF - 9ED4CFF0A0F801C311EF7D641BFC0F08FFFCFFC5F0FBDF2F300DC2FE4D310CFF - E7A359A8A8A6F8FFFEADFB0C8585850C1BB66E6058B26F1E752CDB15C3C07082 - 01D342980F4100D9329BAD4E382D60636283606636067628FBE1D7470C5BDD57 - C12D0CDE9D84DD425C3E0459986060806A112307030FB310032F8B1098E666E6 - 63E060E201E3A8B61C868D754B2016027D1ABE3783741F225B88CF324E661E86 - C0E60486B5B5F3C096FD065A1AB32F8F7C1F12B20C447B3686302CAB9E0AB610 - E4CBA403E5E4F99018CB40D8B1DE836151653F3C0ED30ED692EEC334430BA22C - 6305261A9B5A278679159D700BB30E3593914A4F90963D669537C32DCC3BDC49 - 9A0F91C19FFFBFC1090196026186FE46E323F06F86A2237DA4F99012CB4072E5 - 47A790EE434296FDFAFF1D21CEF01BA5B4A93D3E97781F622BAA6096FE46E363 - B30C841B4F2C26CE878BF6CDA1D832106E3DB992B00FA9651908779E5A4F9C0F - 67EE9E40B16520F57DA7B712F621B52C03D193CEEC26CE871377B6906DD9CF7F - DFE1EC19E78E10F621BA65BF900C40CE637843018AE79C3F459C0FDBB695E2CD - D0C45806C20B2E5C20EC43522D5B1E7E066B99EAB05800B785E83EACDB9C4991 - CF6080281F52CB32BC16A2FB10D45CA41AC06621A821ACA0AA006E043FB0A6A2 - 65508061213D010026DA8D05688EA69C0000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000003474944415478DA - BD946B48536118C79F95140409E62DBB7C083F85084566372135D2F292B74AD3 - CCC44B492C32FC966D5AFA2D2A34E9A236733A9D695EA76B622A998917549CA9 - 980895B75D6995A5DBD9DBD939DBAB23754B9D0FBC9CE7FF1ECEF37BFEEFCB79 - 180821D8C860E8808CDB03CE649E4AAEAB16E214902B033D741D330039AE7B6D - D604637AD8027F500D12A5CA28EF1E0F845EE526386A5F5040026329A055BC08 - 1173EAE5AB21C672E78353768C37D48895D0DBD36B948B9D7221EFE721C89E3F - 029A3C1F06063A8C0D5AE834E99038BB2C007730BBD048FA7E8B029DEF0E812A - E7300DB4BDD98DE4596EAB2EA6256B68B50808420B84965C04A29E863DBEA00D - 5822040AEE59D3C0FCFC853C2E6E657D296A1E4A8AB7601D10FC83825608DB81 - F5560B8A22BFB5395CCACD527B558D1D24902081FEC6C0FCC5EDAE43F8FA8751 - E0DAA64E600935A0280E589D43739D1972417317B01AD4A0E0051A03E3E37BA9 - 82797907CDBAC388C87928E519DF595DD576ACBD7DE5241481B0B51BD80DF320 - E79DA38176CC4E24CB765F77673A985A4340D3077218D4CF81BC24480FBCF111 - C9728E9974187D85006EE166AC432FCCC29BD7DBB03EEDA784C67A1BAC8F7BCD - 500DB474F4035BF007E4A5C134D03EA90D499F7A98ED4CD7F5B20E1769EA3DB9 - DE770D00BBEE37C8F9217AE0B556247D7EF21F87BA1F9AF372618E5E8C9883B2 - D2AD58FB07A940506D8DB5A78F0C5A447658BB9D98A08EB5BD474C0267496028 - 0D74486841925C4F2357A6A68739CE74300DF9ECECFB0469B5BF405616A607C6 - 352149FE29ECF045EE015CB8886B859B08393F0B95E52BDF597BB323D6AEEE5F - A81A3D03C3904E02A506A063AC08CD707CD6D599EE9E0DBA7F6814D2ABBE83B4 - 225C0F8C11A29957675605536BB48BDE2D0D178F7C867BE552905447D3C09DD1 - 023459E80789097D94CBAC272EF8C394E4617C446919FB202D751CEB943BBBE1 - 41E604D6D76FD9C1B3C732AC2F27D2434007BCCF9F8299BA583D30AA067D2B0C - C09D6A34A67F680D61DA992174C00CDE57986E48A081BB222BD11827C0ECE9F1 - 3F300CE48EC3B4288906EE09E5A291E270E094BF3339DE561B9905A330D5C4A4 - 814E5E8FD0B4B5DDDAABAE104E2A194C3627EB8F94045A94A60F0CDCC8D870E0 - 5FA7D4B1F664B3FE1D0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001084944415478DA - 63FCFFFF3F033D01E3A88534B19031F124ED6DBD7081E1FFF97446B885516106 - 0CEF7E3130ECD870812134D480E1EB1F06862F50FCE937847E71807C390C0B3D - 0220169EDA7681C12BD00045D38B1F1036C3093C72474F31788598E1D4876121 - CD82F2FF3F60C431A15AB874CBC9FF6E969A0C5FBFFF64387AE11E43B48F3956 - BD407564C98180914716C3B91DD310161AA849812DBCFDF82DD52D9CB27807C3 - BCA59B502D549515663875E90E83A0A020568D7FFFFE6558B1FD0C5972D397ED - C6B49016D1F7FBD72F0656363686F7EFDF635A48CB38C41AA4A3714809188DC3 - D1381C8D43E2E21014A42BB71DA3593C6258D83B6521CD2C8301B885F404C3DF - 42005A1A11E70A945A890000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 115 - Top = 96 - Bitmap = {} - end - object dsDataTable: TDADataSource - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas deleted file mode 100644 index 4c6cddb..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewControlesBase.pas +++ /dev/null @@ -1,210 +0,0 @@ -unit uViewControlesBase; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, cxGraphics, cxCustomData, cxStyles, cxTL, - cxImageComboBox, cxMaskEdit, cxTextEdit, cxInplaceContainer, cxDBTL, - cxControls, cxTLData, Menus, uBizControlesBase, DB, uDADataTable, - ImgList, PngImageList, uDAInterfaces, MPCommonObjects, MPCommonUtilities, - EasyListview; - -type - IViewControlesBase = interface(IViewBase) - ['{D991FCEC-08DB-4F77-BD57-FA04B3C88788}'] - function GetDblClick: TNotifyEvent; - procedure SetDblClick(const Value: TNotifyEvent); - property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; - - function GetPopupMenu: TPopupMenu; - procedure SetPopupMenu(const Value: TPopupMenu); - property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; - - function GetControl: IBizControlBase; - procedure SetControl(const Value: IBizControlBase); - property Control: IBizControlBase read GetControl write SetControl; - - procedure Refresh; - end; - - TfrViewControlesBase = class(TfrViewBase, IViewControlesBase) - ReportImages: TPngImageList; - dsDataTable: TDADataSource; - EasyListview: TEasyListview; -{ procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; - Button: TEasyMouseButton; MousePos: TPoint; - HitInfo: TEasyHitInfoItem);} - - procedure EasyListviewItemDblClick(Sender: TCustomEasyListview; - Button: TCommonMouseButton; MousePos: TPoint; HitInfo: TEasyHitInfoItem); - - procedure EasyListviewItemContextMenu(Sender: TCustomEasyListview; - HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu; - var Handled: Boolean); - - procedure EasyListviewItemSelectionChanged(Sender: TCustomEasyListview; - Item: TEasyItem); - protected - FControl : IBizControlBase; - FOnDblClick: TNotifyEvent; - FPopupMenu: TPopupMenu; - - function GetDblClick: TNotifyEvent; virtual; - procedure SetDblClick(const Value: TNotifyEvent); virtual; - - function GetPopupMenu: TPopupMenu; virtual; - procedure SetPopupMenu(const Value: TPopupMenu); virtual; - - function GetControl: IBizControlBase; virtual; - procedure SetControl(const Value: IBizControlBase); virtual; - public - procedure Refresh; override; - property Control: IBizControlBase read GetControl write SetControl; - property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; - property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; - end; - -implementation - -{$R *.dfm} - -{ TfrViewControlesBase } - -function TfrViewControlesBase.GetControl: IBizControlBase; -begin - Result := FControl; -end; - -function TfrViewControlesBase.GetDblClick: TNotifyEvent; -begin - Result := FOnDblClick; -end; - -function TfrViewControlesBase.GetPopupMenu: TPopupMenu; -begin - Result := FPopupMenu; -end; - -procedure TfrViewControlesBase.Refresh; -var - GroupNoModificable: TEasyGroup; - GroupModificable: TEasyGroup; - AItem : TEasyItem; - i: Integer; - IDSelected : string; -begin - inherited; - - if not Assigned(FControl) then - Exit; - - EasyListview.BeginUpdate; - try - IDSelected := ''; - if EasyListview.Groups.Count > 0 then - begin - for i := 0 to EasyListview.Items.Count - 1 do - if EasyListview.Items[i].Selected then - IDSelected := EasyListview.Items[i].Captions[3]; // Columna ID - EasyListview.Groups.Clear; - end; - - GroupNoModificable := EasyListview.Groups.Add; - GroupNoModificable.Caption := 'Controles generales'; - GroupNoModificable.Bold := True; - - GroupModificable := EasyListview.Groups.Add; - GroupModificable.Caption := 'Controles personalizados'; - GroupModificable.Bold := True; - - with FControl do - begin - FControl.First; - for i := 0 to (FControl.RecordCount - 1) do - begin - if EsModificable then - AItem := GroupModificable.Items.Add(NIL) - else - AItem := GroupNoModificable.Items.Add(NIL); - - AItem.ImageIndex := ICONO; - AItem.Captions[0] := NOMBRE; - AItem.Captions[1] := DESCRIPCION; - AItem.Captions[3] := IntToStr(ID); - AItem.Captions[4] := MODIFICABLE; - AItem.DetailCount := 2; - AItem.Details[0] := 0; // Columna NOMBRE; - AItem.Details[1] := 1; // Columna DESCRIPCION; - - AItem.Selected := (IDSelected = AItem.Captions[3]); - FControl.Next; - end; - end; - finally - EasyListview.Sort.SortAll; - EasyListview.EndUpdate; - - if (Length(IDSelected) = 0) and (EasyListview.Items.Count > 0) then - EasyListview.Items[0].Selected := True; - - for i := 0 to EasyListview.Items.Count - 1 do - if EasyListview.Items[i].Selected then - begin - FControl.First; - FControl.Locate('ID', StrToInt(EasyListview.Items[i].Captions[3]), []); - Break; - end; - - EasyListview.ShowGroupMargins := True; - end -end; - -procedure TfrViewControlesBase.SetControl(const Value: IBizControlBase); -begin - FControl := Value; - dsDataTable.DataTable := Value.DataTable; -end; - -procedure TfrViewControlesBase.SetDblClick(const Value: TNotifyEvent); -begin - FOnDblClick := Value; -end; - -procedure TfrViewControlesBase.SetPopupMenu(const Value: TPopupMenu); -begin - FPopupMenu := Value; -end; - -procedure TfrViewControlesBase.EasyListviewItemContextMenu( - Sender: TCustomEasyListview; HitInfo: TEasyHitInfoItem; - WindowPoint: TPoint; var Menu: TPopupMenu; var Handled: Boolean); -begin - inherited; - if Assigned(FPopupMenu) then - Menu := FPopupMenu; -end; - -procedure TfrViewControlesBase.EasyListviewItemDblClick( - Sender: TCustomEasyListview; Button: TCommonMouseButton; MousePos: TPoint; - HitInfo: TEasyHitInfoItem); -begin - inherited; - if Assigned(FOnDblClick) then - FOnDblClick(Self); -end; - -procedure TfrViewControlesBase.EasyListviewItemSelectionChanged( - Sender: TCustomEasyListview; Item: TEasyItem); -begin - inherited; - if not Item.Destroying then - begin - FControl.First; - FControl.Locate('ID', StrToInt(Item.Captions[3]), []); - end; -end; - -end. - - diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm deleted file mode 100644 index 2599dfe..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.dfm +++ /dev/null @@ -1,115 +0,0 @@ -inherited frViewFiltros: TfrViewFiltros - Width = 209 - Height = 462 - object vgFiltros: TcxVerticalGrid - Left = 0 - Top = 229 - Width = 216 - Height = 233 - Enabled = False - Images = PngImageList1 - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - OptionsView.CellAutoHeight = True - OptionsView.CellEndEllipsis = True - OptionsView.ScrollBars = ssVertical - OptionsView.RowHeaderWidth = 97 - OptionsView.GridLines = vglVertical - OptionsView.ValueMinWidth = 75 - TabOrder = 0 - Visible = False - object vgFiltrosEditorRow1: TcxEditorRow - Properties.EditPropertiesClassName = 'TcxComboBoxProperties' - Properties.EditProperties.OnEditValueChanged = vgFiltrosEditorRow1EditPropertiesEditValueChanged - Properties.DataBinding.ValueType = 'String' - Properties.Value = Null - end - end - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 209 - Height = 29 - Align = alTop - Caption = 'Filtros' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end - object cxFilterControl1: TcxFilterControl - Left = 0 - Top = 29 - Width = 209 - Height = 403 - Align = alClient - Color = clWindow - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - TabOrder = 2 - TabStop = True - end - object TBXAlignmentPanel3: TTBXAlignmentPanel - Left = 0 - Top = 432 - Width = 209 - Height = 30 - Align = alBottom - Margins.Left = 3 - Margins.Top = 3 - Margins.Right = 3 - Margins.Bottom = 3 - TabOrder = 3 - object bRefrescar: TButton - Left = 4 - Top = 5 - Width = 100 - Height = 21 - Caption = 'Aplicar filtro' - TabOrder = 0 - OnClick = bRefrescarClick - end - end - object cxStyleRepository1: TcxStyleRepository - Left = 216 - Top = 104 - object cxStyleNombreColumna: TcxStyle - AssignedValues = [svTextColor] - TextColor = clActiveCaption - end - object cxStyleCategoria: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = 15329769 - TextColor = clHighlight - end - end - object PngImageList1: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000011E4944415478DA - 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F - 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F - E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E - 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C - 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD - A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 - 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B - 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA - CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 - 0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end> - Left = 88 - Top = 104 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas deleted file mode 100644 index 88da478..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewFiltros.pas +++ /dev/null @@ -1,197 +0,0 @@ -unit uViewFiltros; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewParametrosControlGrid, cxStyles, cxGraphics, cxEdit, - TBXDkPanels, cxControls, cxInplaceContainer, cxVGrid, cxDropDownEdit, - ImgList, PngImageList, cxFilterControl, uViewControlGrid, - cxDBFilterControl, StdCtrls; - -type - IViewFiltros = interface(IViewParametrosControlGrid) - ['{92FA8AF8-D0D8-4BC6-9611-CF3094CD4385}'] - end; - - TfrViewFiltros = class(TfrViewParametrosControlGrid, IViewFiltros) - vgFiltros: TcxVerticalGrid; - TBXLabel1: TTBXLabel; - cxStyleRepository1: TcxStyleRepository; - cxStyleNombreColumna: TcxStyle; - cxStyleCategoria: TcxStyle; - PngImageList1: TPngImageList; - vgFiltrosEditorRow1: TcxEditorRow; - cxFilterControl1: TcxFilterControl; - TBXAlignmentPanel3: TTBXAlignmentPanel; - bRefrescar: TButton; - procedure vgFiltrosEditorRow1EditPropertiesEditValueChanged( - Sender: TObject); - procedure bRefrescarClick(Sender: TObject); - protected - procedure RellenarFiltros; - procedure SetViewControlGrid(const Value: IViewControlGrid); override; - procedure SetModificable(const Value: Boolean); override; - public - procedure Execute; override; - procedure Refresh; override; - end; - -implementation - -{$R *.dfm} - -uses - cxCustomData, cxFilter, cxGridDBDataDefinitions, - cxGridDBTableView, cxGridCustomTableView, cxFilterConsts, cxClasses, - cxDBData; - -{ TfrViewFiltros } - -procedure TfrViewFiltros.Execute; -begin - inherited; - cxFilterControl1.ApplyFilter; - FViewControlGrid.FocusedView.DataController.Filter.Active := True; -end; - -procedure TfrViewFiltros.Refresh; -begin - inherited; - cxFilterControl1.UpdateFilter; - SetModificable(Modificable); - //RellenarFiltros; -end; - -procedure TfrViewFiltros.RellenarFiltros; -var - i : Integer; - ACaption : String; - ARow : TcxEditorRow; - AColumn : TcxGridDBColumn; - AValueList : TcxDataFilterValueList; - - procedure GetFilterStrings(AStrings: TStrings; - AValueList: TcxDataFilterValueList); - var - I: Integer; - S: string; - begin - AStrings.BeginUpdate; - try - AStrings.Clear; - for I := 0 to AValueList.Count - 1 do - begin - S := AValueList[I].DisplayText; - AStrings.AddObject(S, TObject(AValueList[I])); - end; - finally - AStrings.EndUpdate; - end; - end; - - procedure AddRow; - begin - ARow := vgFiltros.Add(TcxEditorRow) as TcxEditorRow; - ARow.Parent := NIL; - ARow.Properties.Caption := AColumn.Caption; - ARow.Properties.EditPropertiesClassName := 'TcxComboBoxProperties'; - with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do - begin - ARow.Properties.ImageIndex := 0; - ImmediateDropDown := True; - ImmediatePost := True; - ImmediateUpdateText := True; - PostPopupValueOnTab := True; - OnEditValueChanged := vgFiltrosEditorRow1EditPropertiesEditValueChanged; - GetFilterStrings(Items, AValueList); - end; - end; - -begin -{ vgFiltros.BeginUpdate; - try - vgFiltros.ClearRows; - for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do - begin - AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[i]); - AValueList := ViewControlGrid.FilterValueList[AColumn.Index]; - AddRow; - end; - finally - vgFiltros.EndUpdate; - end;} -end; - -procedure TfrViewFiltros.SetViewControlGrid(const Value: IViewControlGrid); -begin - inherited; - cxFilterControl1.LinkComponent := FViewControlGrid.FocusedView; -end; - -procedure TfrViewFiltros.vgFiltrosEditorRow1EditPropertiesEditValueChanged( - Sender: TObject); -var - ARow : TcxEditorRow; - AColumn : TcxGridDBColumn; - AItemIndex : Integer; -begin -{ ARow := TcxEditorRow(vgFiltros.FocusedRow); - - if not Assigned(ARow) then - Exit; - - with (TcxComboBoxProperties(ARow.Properties.EditProperties)) do - AItemIndex := Items.IndexOf(ARow.Properties.Value); - - AColumn := ViewControlGrid.GetColumnByCaption(ARow.Properties.Caption); - - if Assigned(AColumn) and (AItemIndex <> -1) then - begin - AColumn.DataBinding.Filter.BeginUpdate; - try - with ViewControlGrid.FilterValueList[AColumn.Index][AItemIndex]^ do - begin - if not (Kind in [fviAll, fviCustom]) then - AColumn.DataBinding.Filter.Active := True; - case Kind of - fviAll: - begin - AColumn.Filtered := False; - ARow.Properties.Value := ''; - end; - fviCustom: - ViewControlGrid.FocusedView.Filtering.RunCustomizeDialog(AColumn); - fviBlanks: - AColumn.DataBinding.AddToFilter(nil, foEqual, Value, - cxGetResourceStringNet(cxSFilterBlankCaption)); - fviNonBlanks: - AColumn.DataBinding.AddToFilter(nil, foNotEqual, Value, - cxGetResourceStringNet(cxSFilterBlankCaption)); - fviValue, fviMRU: - begin - AColumn.DataBinding.AddToFilter(nil, foEqual, Value, DisplayText); - AColumn.DataBinding.FilterMRUValueItems.Add(Value, DisplayText); - end; - end; - end; - finally - AColumn.DataBinding.Filter.EndUpdate; - end; - end;} -end; - -procedure TfrViewFiltros.bRefrescarClick(Sender: TObject); -begin - inherited; - Execute; -end; - -procedure TfrViewFiltros.SetModificable(const Value: Boolean); -begin - inherited; - vgFiltros.Enabled := Value; -end; - -end. - diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm deleted file mode 100644 index e4accb4..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.dfm +++ /dev/null @@ -1,3 +0,0 @@ -inherited frViewParametrosControlGrid: TfrViewParametrosControlGrid - ParentFont = True -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas deleted file mode 100644 index 94dc1b7..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewParametrosControlGrid.pas +++ /dev/null @@ -1,82 +0,0 @@ -unit uViewParametrosControlGrid; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, uViewControlGrid; - -type - IViewParametrosControlGrid = interface(IViewBase) - ['{A060605B-AFB1-4F6F-8273-7739C4C4905B}'] - function GetModificable: Boolean; - procedure SetModificable(const Value: Boolean); - property Modificable : Boolean read GetModificable write SetModificable; - - procedure SetViewControlGrid (const Value : IViewControlGrid); - function GetViewControlGrid : IViewControlGrid; - property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; - - procedure Execute; - procedure Refresh; - end; - - TfrViewParametrosControlGrid = class(TfrViewBase, IViewParametrosControlGrid) - protected - FViewControlGrid : IViewControlGrid; - FModificable : Boolean; - function GetModificable: Boolean; virtual; - procedure SetModificable(const Value: Boolean); virtual; - procedure SetViewControlGrid (const Value : IViewControlGrid); virtual; - function GetViewControlGrid : IViewControlGrid; virtual; - public - property Modificable : Boolean read GetModificable write SetModificable; - property ViewControlGrid : IViewControlGrid read GetViewControlGrid write SetViewControlGrid; - procedure Execute; virtual; - procedure Refresh; override; - end; - - -implementation - -{$R *.dfm} - -{ TfrViewParametrosControlGrid } - - -procedure TfrViewParametrosControlGrid.Execute; -begin - if not Assigned(ViewControlGrid) then - raise Exception.Create('Vista para el control no asignada (Execute)'); -end; - -function TfrViewParametrosControlGrid.GetModificable: Boolean; -begin - Result := FModificable; -end; - -function TfrViewParametrosControlGrid.GetViewControlGrid: IViewControlGrid; -begin - Result := FViewControlGrid; -end; - -procedure TfrViewParametrosControlGrid.Refresh; -begin - inherited; - if not Assigned(ViewControlGrid) then - raise Exception.Create('Vista para el control no asignada (Refresh)'); -end; - -procedure TfrViewParametrosControlGrid.SetModificable( - const Value: Boolean); -begin - FModificable := Value; -end; - -procedure TfrViewParametrosControlGrid.SetViewControlGrid( - const Value: IViewControlGrid); -begin - FViewControlGrid := Value; -end; - -end. diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm deleted file mode 100644 index 03232be..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.dfm +++ /dev/null @@ -1,174 +0,0 @@ -inherited frViewPeriodoFechas: TfrViewPeriodoFechas - Width = 253 - Height = 351 - object TBXLabel1: TTBXLabel - Left = 0 - Top = 50 - Width = 253 - Height = 29 - Align = alTop - Caption = 'Rango de fechas' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end - object TBXLabel2: TTBXLabel - Left = 0 - Top = 0 - Width = 253 - Height = 29 - Align = alTop - Caption = 'Periodo' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end - object TBXAlignmentPanel1: TTBXAlignmentPanel - Left = 0 - Top = 29 - Width = 253 - Height = 21 - Align = alTop - AutoSize = True - Margins.Left = 5 - Margins.Right = 5 - TabOrder = 2 - DesignSize = ( - 253 - 21) - object cbPeriodo: TcxComboBox - Left = 8 - Top = 0 - RepositoryItem = cxRepositoryPeriodos - Anchors = [akLeft, akTop, akRight] - Properties.OnChange = cbPeriodoPropertiesChange - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - Style.ButtonStyle = bts3D - Style.PopupBorderStyle = epbsFrame3D - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Text = 'Este mes' - Width = 209 - end - end - object TBXAlignmentPanel2: TTBXAlignmentPanel - Left = 0 - Top = 79 - Width = 253 - Height = 48 - Align = alTop - AutoSize = True - Margins.Left = 5 - Margins.Right = 5 - TabOrder = 3 - object Label1: TLabel - Left = 9 - Top = 4 - Width = 34 - Height = 13 - Caption = 'Desde:' - Transparent = True - end - object Label2: TLabel - Left = 14 - Top = 31 - Width = 29 - Height = 13 - Caption = 'hasta:' - Transparent = True - end - object edtFechaIni: TcxDateEdit - Left = 48 - Top = 0 - Properties.DateButtons = [btnToday] - Properties.PostPopupValueOnTab = True - Properties.SaveTime = False - Properties.ShowTime = False - Properties.OnValidate = edtFechaIni2PropertiesValidate - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - Style.ButtonStyle = bts3D - Style.PopupBorderStyle = epbsDefault - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Width = 170 - end - object edtFechaFin: TcxDateEdit - Left = 48 - Top = 27 - Properties.DateButtons = [btnToday] - Properties.PostPopupValueOnTab = True - Properties.SaveTime = False - Properties.ShowTime = False - Properties.OnValidate = edtFechaFinPropertiesValidate - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - Style.ButtonStyle = bts3D - Style.PopupBorderStyle = epbsFrame3D - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 - Width = 170 - end - end - object cxRepository: TcxEditRepository - Left = 184 - Top = 32 - object cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem - Properties.BeepOnError = True - Properties.DropDownListStyle = lsFixedList - Properties.DropDownRows = 10 - Properties.ImmediatePost = True - Properties.ImmediateUpdateText = True - Properties.Items.Strings = ( - 'Hoy' - 'Ayer' - 'Esta semana' - 'Este mes' - 'Este a'#241'o' - #218'ltimos 7 d'#237'as' - #218'ltimos 30 d'#237'as' - #218'ltimos 3 meses' - 'Mes anterior' - 'A'#241'o anterior' - 'Personalizado') - Properties.PostPopupValueOnTab = True - Properties.ReadOnly = False - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas deleted file mode 100644 index a3dc473..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewPeriodoFechas.pas +++ /dev/null @@ -1,203 +0,0 @@ -unit uViewPeriodoFechas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, - cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, - cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, - Mask, JvExMask, JvToolEdit, uViewParametrosControlGrid; - -type - IViewPeriodoFechas = interface(IViewParametrosControlGrid) - ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] - end; - - TfrViewPeriodoFechas = class(TfrViewParametrosControlGrid, IViewPeriodoFechas) - cbPeriodo: TcxComboBox; - edtFechaIni: TcxDateEdit; - edtFechaFin: TcxDateEdit; - cxRepository: TcxEditRepository; - cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; - TBXLabel1: TTBXLabel; - TBXLabel2: TTBXLabel; - TBXAlignmentPanel1: TTBXAlignmentPanel; - TBXAlignmentPanel2: TTBXAlignmentPanel; - Label1: TLabel; - Label2: TLabel; - procedure cbPeriodoPropertiesChange(Sender: TObject); - procedure edtFechaIni2PropertiesValidate(Sender: TObject; - var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); - procedure edtFechaFinPropertiesValidate(Sender: TObject; - var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); - private - function GetFechaFinal: TDateTime; - function GetFechaInicial: TDateTime; - procedure SetFechaFinal(const Value: TDateTime); - procedure SetFechaInicial(const Value: TDateTime); - public - procedure Hoy; - procedure Ayer; - procedure EstaSemana; - procedure EsteMes; - procedure EsteAno; - procedure Ultimos7dias; - procedure Ultimos30dias; - procedure Ultimos3meses; - procedure MesAnterior; - procedure AnoAnterior; - procedure Personalizado; - property FechaInicial : TDateTime read GetFechaInicial write SetFechaInicial; - property FechaFinal : TDateTime read GetFechaFinal write SetFechaFinal; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses DateUtils; - -{$R *.dfm} - -procedure TfrViewPeriodoFechas.AnoAnterior; -begin - edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); - edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); -end; - -procedure TfrViewPeriodoFechas.Ayer; -begin - edtFechaIni.Date := Yesterday; - edtFechaFin.Date := Yesterday; -end; - -procedure TfrViewPeriodoFechas.EstaSemana; -begin - edtFechaIni.Date := StartOfTheWeek(Today); - edtFechaFin.Date := EndOfTheWeek(Today); -end; - -procedure TfrViewPeriodoFechas.EsteAno; -begin - edtFechaIni.Date := StartOfTheYear(Today); - edtFechaFin.Date := EndOfTheYear(Today); -end; - -procedure TfrViewPeriodoFechas.EsteMes; -begin - edtFechaIni.Date := StartOfTheMonth(Today); - edtFechaFin.Date := EndOfTheMonth(Today); -end; - -function TfrViewPeriodoFechas.GetFechaFinal: TDateTime; -begin - Result := DateOf(edtFechaFin.Date); -end; - -function TfrViewPeriodoFechas.GetFechaInicial: TDateTime; -begin - Result := DateOf(edtFechaIni.Date); -end; - -procedure TfrViewPeriodoFechas.Hoy; -begin - edtFechaIni.Date := Today; - edtFechaFin.Date := Today; -end; - -procedure TfrViewPeriodoFechas.MesAnterior; -begin - edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); - edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); -end; - -procedure TfrViewPeriodoFechas.Personalizado; -begin - edtFechaIni.SetFocus; -end; - -procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: TDateTime); -begin - edtFechaFin.Date := Value; -end; - -procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: TDateTime); -begin - edtFechaIni.Date := Value; -end; - -procedure TfrViewPeriodoFechas.Ultimos30dias; -begin - edtFechaIni.Date := IncDay(Today, -30); - edtFechaFin.Date := Today -end; - -procedure TfrViewPeriodoFechas.Ultimos3meses; -begin - edtFechaIni.Date := IncMonth(Today, -3); - edtFechaFin.Date := Today -end; - -procedure TfrViewPeriodoFechas.Ultimos7dias; -begin - edtFechaIni.Date := IncDay(Today, -7); - edtFechaFin.Date := Today -end; - -procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); -begin - case (Sender as TcxComboBox).ItemIndex of - 0 : Hoy; - 1 : Ayer; - 2 : EstaSemana; - 3 : EsteMes; - 4 : EsteAno; - 5 : Ultimos7dias; - 6 : Ultimos30dias; - 7 : Ultimos3meses; - 8 : MesAnterior; - 9 : AnoAnterior; - else - Personalizado; - end; -end; - -constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); -begin - inherited; - cbPeriodo.ItemIndex := 3; - EsteMes; -end; - -procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( - Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); -begin - inherited; - if DisplayValue <> edtFechaIni.Date then - cbPeriodo.ItemIndex := 12; - if DisplayValue > edtFechaFin.Date then - begin - edtFechaFin.EditText := DisplayValue; - edtFechaFin.ValidateEdit(True); - end; -end; - -procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( - Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); -begin - inherited; - if DisplayValue <> edtFechaFin.Date then - cbPeriodo.ItemIndex := 12; - if DisplayValue < edtFechaIni.Date then - begin - edtFechaIni.EditText := DisplayValue; - edtFechaIni.ValidateEdit(True); - end; -end; - -end. - diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm deleted file mode 100644 index d5abe2c..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.dfm +++ /dev/null @@ -1,115 +0,0 @@ -inherited frViewSumarios: TfrViewSumarios - Width = 344 - Height = 472 - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 344 - Height = 29 - Align = alTop - Caption = 'Res'#250'menes' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - Margins.Top = 5 - Margins.Bottom = 10 - ParentColor = True - ParentFont = False - Underline = True - end - object vgSumarios: TcxVerticalGrid - Left = 0 - Top = 29 - Width = 344 - Height = 443 - Styles.Category = cxStyleCategoria - Align = alClient - Images = PngImageList1 - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - OptionsView.CellAutoHeight = True - OptionsView.CellEndEllipsis = True - OptionsView.ScrollBars = ssVertical - OptionsView.RowHeaderWidth = 133 - OptionsView.GridLines = vglVertical - OptionsView.ValueMinWidth = 75 - TabOrder = 1 - end - object PngImageList1: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000000534944415478DA - 63FCFFFF3F03258071F018C0C8C848944940F58CB80CB0075207A0E20E407C10 - BB7EDC0680288286A07B19DD0082861063005E43883500A72174710145614051 - 2C509C0E284B89E4028A0D0000DBA366E1865C514F0000000049454E44AE4260 - 82} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000794944415478DA - 63FCFFFF3F0325809162030CDD338936E1FCCEE98C580DC8CF4C870BFCF9F397 - E1FBCF5F0CDF7E00F1F79F0C5FBEFF6078F6FA3DC38D8B27F01BB0F3D845BCB6 - E33580222F60530832149B62AC81884B825843F02A20C6108236103204671810 - E37FBC06109B36F01A404CDAA0DC0B039E1B0126BE69852B2E82B70000000049 - 454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000011E4944415478DA - 63FCFFFF3F0325801164C0D22D27C936056E40B48F39511AFEFCFDC7F0FBCF5F - 3076082E423540ADEA3C5CE165F924148DBA0FE7C1D967AA351916AD3BC0306F - E9264C036EB5198215FD9C09A43DBE3030BC60605830E30E43FA7C882F416A8E - 96AA32ACDC728408030C80063CE06058B0E30A8A01070B9519D6EE3886DD006C - 5E5870E20243AFE439387F4FAE02C3A63D27C9F7C28E4C59866D07CE90EF85CD - A9D20CBB8F9C23DF0BABE3C4180E9FBE4CBE17964589309C387F15D580704F53 - 06ADDA8B447961619820C3D9CB37500D08723562D06FBC82E20590D36100D90B - 7382F8182E5DBF8D6A80AFA33EC39F3F88640A67FFFE0B1543C8FDFBF79FE1CA - CD3BA80678DAEA322CDB7488A48C846240EF948564E54600564A377B046BCB77 - 0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end> - Left = 88 - Top = 104 - Bitmap = {} - end - object cxStyleRepository1: TcxStyleRepository - Left = 216 - Top = 104 - object cxStyleNombreColumna: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clWindow - TextColor = clActiveCaption - end - object cxStyleCategoria: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = 15329769 - TextColor = clHighlight - end - object cxStyleNombreColumnaInactivo: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clWindow - TextColor = cl3DDkShadow - end - object cxStyleCategoriaInactivo: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = 15329769 - TextColor = clBtnShadow - end - object cxStyleContentInactivo: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clWindow - TextColor = clBtnShadow - end - end -end diff --git a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas b/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas deleted file mode 100644 index 85f31f9..0000000 --- a/Varela/Varela/Source/ControlesBase/Cliente/uViewSumarios.pas +++ /dev/null @@ -1,325 +0,0 @@ -unit uViewSumarios; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox, - TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView, - cxGraphics, cxStyles, cxTL, cxTextEdit, cxDropDownEdit, ImgList, - PngImageList, ComCtrls, JvExComCtrls, JvComCtrls, cxInplaceContainer, - ExtCtrls, cxEdit, cxVGrid, TBXToolPals, uViewControlGrid, - uViewParametrosControlGrid; - -type - IViewSumarios = interface(IViewParametrosControlGrid) - ['{4AEE3447-C6A4-491F-87E7-02CD255A7695}'] - end; - - TfrViewSumarios = class(TfrViewParametrosControlGrid, IViewSumarios) - PngImageList1: TPngImageList; - vgSumarios: TcxVerticalGrid; - TBXLabel1: TTBXLabel; - cxStyleRepository1: TcxStyleRepository; - cxStyleNombreColumna: TcxStyle; - cxStyleCategoria: TcxStyle; - cxStyleNombreColumnaInactivo: TcxStyle; - cxStyleCategoriaInactivo: TcxStyle; - cxStyleContentInactivo: TcxStyle; - procedure vgSumariosEditorRowInitPopup(Sender: TObject); - procedure vgSumariosEditorRowEditValueChanged( - Sender: TObject); - protected - procedure RellenarArbolTotales; - - function AnadirSumario(const ACaption : String; - const AKind : TcxSummaryKind) : TcxEditorRow; - - procedure RellenarTotalesPie; - procedure RellenarTotalesGrupo(const AGroupName : String); - procedure RellenarCategorias; - procedure RellenarCategoria(const APosition : TcxSummaryPosition; - const AGroupName : String = ''); - - procedure AplicarSumarioVista(const APosition : TcxSummaryPosition; - const AColumnCaption : String; const AKind : TcxSummaryKind); - procedure SetModificable(const Value: Boolean); override; - public - procedure Execute; override; - procedure Refresh; override; - end; - -implementation - -{$R *.dfm} - -uses - DB, cxGridPopupMenuConsts; - -var - SumaryKindStrArray : array[skNone..skAverage] of String - = ('', 'Sumar', 'Mínimo', 'Máximo', 'Contar', 'Promedio'); - -procedure TfrViewSumarios.Refresh; -begin - RellenarCategorias; -end; - -procedure TfrViewSumarios.RellenarArbolTotales; -var - i : Integer; -begin - // Recuperar las agrupaciones del grid - for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do - begin - if i = 3 then - Break; // Sólo meter las 3 primera agrupaciones - RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); - end; -end; - -function TfrViewSumarios.AnadirSumario(const ACaption : String; - const AKind : TcxSummaryKind) : TcxEditorRow; -begin - Result := vgSumarios.Add(TcxEditorRow) as TcxEditorRow; - with Result do - begin - Properties.Caption := ACaption; - Properties.Value := SumaryKindStrArray[AKind]; - Properties.ImageIndex := 2; - Properties.EditPropertiesClass := TcxComboBoxProperties; - with TcxComboBoxProperties(Properties.EditProperties) do - begin - ImmediateDropDown := True; - DropDownListStyle := lsFixedList; - ImmediatePost := True; - ImmediateUpdateText := True; - PostPopupValueOnTab := True; - OnInitPopup := vgSumariosEditorRowInitPopup; - OnEditValueChanged := vgSumariosEditorRowEditValueChanged; - end; - end; -end; - -procedure TfrViewSumarios.AplicarSumarioVista ( - const APosition: TcxSummaryPosition; const AColumnCaption: String; - const AKind: TcxSummaryKind); -const - MASK_MONEDA = ',0.## €;-,0.## €'; - MASK_NUMERO = '#,##0'; -var - AColumn : TcxGridDBColumn; -begin - AColumn := ViewControlGrid.GetColumnByCaption(AColumnCaption); - if APosition = spFooter then - begin - AColumn.Summary.FooterKind := AKind; - if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then - AColumn.Summary.FooterFormat := MASK_MONEDA - else - AColumn.Summary.FooterFormat := MASK_NUMERO; - end - else begin - AColumn.Summary.GroupFooterKind := AKind; - if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then - AColumn.Summary.GroupFooterFormat := MASK_MONEDA - else - AColumn.Summary.GroupFooterFormat := MASK_NUMERO; - end; -end; - -procedure TfrViewSumarios.RellenarTotalesPie; -var - i, j: Integer; - ASummary: TcxDataFooterSummaryItems; - AClase : TcxSummaryKind; - ACaption : String; - ACategory : TcxCategoryRow; - ARow : TcxEditorRow; -begin - vgSumarios.BeginUpdate; - try - ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); - with ACategory.Properties do - begin - ASummary := ViewControlGrid.FocusedView.DataController.Summary.FooterSummaryItems; - ImageIndex := 0; - Caption := 'Resúmenes totales' - end; - - for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do - begin - ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; - AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.FooterKind; - ARow := AnadirSumario(ACaption, AClase); - ARow.Parent := ACategory; - end; - finally - vgSumarios.EndUpdate; - end; -end; - - -procedure TfrViewSumarios.RellenarCategoria( - const APosition: TcxSummaryPosition; const AGroupName: String); -begin - if APosition = spFooter then - RellenarTotalesPie - else - RellenarTotalesGrupo(AGroupName); -end; - -procedure TfrViewSumarios.RellenarCategorias; -var - i : Integer; -begin - vgSumarios.ClearRows; - RellenarCategoria(spFooter); - - // Recuperar las agrupaciones del grid - for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do - begin - if i = 3 then - Break; // Sólo meter las 3 primera agrupaciones - RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption); - end; -end; - -procedure TfrViewSumarios.vgSumariosEditorRowInitPopup(Sender: TObject); -var - AColumn: TcxGridDBColumn; - ARow : TcxEditorRow; -const - NumberFieldTypes = - [ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, - ftDateTime, ftAutoInc]; - TimeFieldTypes = [ftDate, ftTime, ftDateTime]; - -begin - inherited; - - ARow := TcxEditorRow(vgSumarios.FocusedRow); - AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[ARow.Index]); - - if Assigned(AColumn.DataBinding.Field) then - with TcxComboBoxProperties(TcxPopupEdit(Sender).Properties) do - begin - Items.Clear; - BeginUpdate; - try - Items.Add(SumaryKindStrArray[skNone]); - Items.Add(SumaryKindStrArray[skCount]); - - if AColumn.DataBinding.Field.DataType in NumberFieldTypes then - begin - Items.Add(SumaryKindStrArray[skMax]); - Items.Add(SumaryKindStrArray[skMin]); - if not (AColumn.DataBinding.Field.DataType in TimeFieldTypes) then - begin - Items.Add(SumaryKindStrArray[skSum]); - Items.Add(SumaryKindStrArray[skAverage]); - end; - end; - finally - EndUpdate; - end; - end; -end; - -procedure TfrViewSumarios.vgSumariosEditorRowEditValueChanged( - Sender: TObject); -var - AColumn : String; - ARow : TcxEditorRow; - AKind : TcxSummaryKind; - - function DarSummaryKind(AKind : String) : TcxSummaryKind; - var - i : TcxSummaryKind; - begin - if Length(AKind) = 0 then - Result := skNone - else - for i := skSum to skAverage do - if SumaryKindStrArray[i] = AKind then - begin - Result := i; - Break; - end; - end; - -begin - inherited; - - ARow := TcxEditorRow(vgSumarios.FocusedRow); - AColumn := ARow.Properties.Caption; - AKind := DarSummaryKind(VarToStr(ARow.Properties.Value)); - - if Assigned(ARow.Parent) then - begin - if(ARow.Parent.Index = 0) then - AplicarSumarioVista(spFooter, AColumn, AKind) - else - AplicarSumarioVista(spGroup, AColumn, AKind) - end; -end; - -procedure TfrViewSumarios.RellenarTotalesGrupo(const AGroupName: String); -var - i, j: Integer; - ASummary: TcxDataSummaryGroup; - AClase : TcxSummaryKind; - ACaption : String; - ACategory : TcxCategoryRow; - ARow : TcxEditorRow; - -begin - ASummary := ViewControlGrid.FocusedView.DataController.Summary.SummaryGroups.FindByItemLink(ViewControlGrid.GetColumnByCaption(AGroupName)); - - vgSumarios.BeginUpdate; - try - ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow); - with ACategory.Properties do - begin - ImageIndex := 1; - Caption := 'Totales de ' + AGroupName; - end; - - for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do - begin - ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption; - AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.GroupFooterKind; - ARow := AnadirSumario(ACaption, AClase); - ARow.Parent := ACategory; - end; - finally - vgSumarios.EndUpdate; - end; -end; - -procedure TfrViewSumarios.Execute; -begin - inherited; - // -end; - -procedure TfrViewSumarios.SetModificable(const Value: Boolean); -begin - inherited; - vgSumarios.Enabled := Value; - if Value then - begin - vgSumarios.Styles.Category := cxStyleCategoria; - vgSumarios.Styles.Header := cxStyleNombreColumna; - vgSumarios.Styles.Content := nil; - end - else begin - vgSumarios.Styles.Category := cxStyleCategoriaInactivo; - vgSumarios.Styles.Header := cxStyleNombreColumnaInactivo; - vgSumarios.Styles.Content := cxStyleContentInactivo; - end; -end; - -end. - - diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj deleted file mode 100644 index be74bb3..0000000 --- a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.bdsproj +++ /dev/null @@ -1,658 +0,0 @@ - - - - - - - - - - - - ControlesBaseD10.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\Output\Debug\Cliente - ..\Lib - ..\Lib;..\Base - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk deleted file mode 100644 index be08d8a..0000000 --- a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.dpk +++ /dev/null @@ -1,85 +0,0 @@ -package ControlesBaseD10; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES ON} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$RUNONLY} -{$IMPLICITBUILD ON} - -requires - rtl, - vcl, - PngComponentsD10, - PNG_D10, - BaseD10, - dbrtl, - dsnap, - adortl, - JvGlobusD10R, - cxTreeListD10, - vclactnband, - vclx, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - cxExtEditorsD10, - cxGridD10, - cxPageControlD10, - dxLayoutControlD10, - dxComnD10, - cxVerticalGridD10, - dxPSCoreD10, - VclSmp, - bdertl, - EasyListviewD10; - -contains - uEditorControlesBase in 'Cliente\uEditorControlesBase.pas' {fEditorControlesBase: TCustomEditor}, - schControlesClient_Intf in 'Reglas\schControlesClient_Intf.pas', - uBizControlesBase in 'Reglas\uBizControlesBase.pas', - uDataModuleControles in 'Cliente\uDataModuleControles.pas' {dmControles: TDAClientDataModule}, - uEditorControlBase in 'Cliente\uEditorControlBase.pas' {fEditorControlBase: TCustomEditor}, - uViewAgrupaciones in 'Cliente\uViewAgrupaciones.pas' {frViewAgrupaciones: TCustomView}, - uViewColumnas in 'Cliente\uViewColumnas.pas' {frViewColumnas: TCustomView}, - uViewSumarios in 'Cliente\uViewSumarios.pas' {frViewSumarios: TCustomView}, - uViewControlGrid in 'Cliente\uViewControlGrid.pas' {frViewControlGrid: TCustomView}, - uViewControlBase in 'Cliente\uViewControlBase.pas' {frViewControlBase: TCustomView}, - uViewParametrosControlGrid in 'Cliente\uViewParametrosControlGrid.pas' {frViewParametrosControlGrid: TCustomView}, - uFormPropiedadesControl in 'Cliente\uFormPropiedadesControl.pas' {frPropiedadesControl}, - uViewFiltros in 'Cliente\uViewFiltros.pas' {frViewFiltros: TCustomView}, - uViewPeriodoFechas in 'Cliente\uViewPeriodoFechas.pas' {frViewPeriodoFechas: TCustomView}, - uViewControlesBase in 'Cliente\uViewControlesBase.pas' {frViewControlesBase: TCustomView}, - uDateUtils in 'Cliente\uDateUtils.pas'; - -end. diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.identcache deleted file mode 100644 index e66917df4222bf5ff05cc111810e1d061fdbc29e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 zcmc(h-AcnS6vyiu_y~OhAHch9wc^E~tZY{SIV8s}k|rf5VK`6`1z+2g)#9?@-O}Eb zg!1G6aZazZEPGwtvchoRqIQ&n7I}@%N!<`zlLspeTT05saK#W?&5FEsUWAj%nrGyW z*aj>rV72j2ltWijFpzx+-_%<@Xk+>U<`h%MeC;*JlG$i*{ikRdrttPX^`VP1> z8YxEkxJt)zC!{m>$h;V5pN{5`7Uf$FC#rlWRHf&rz(R{5(=@1aE;TP{wJD|QfntZ= z(^6CzCWJ60^6jZjmv8h68wJGtT<-tPZOR%I;9zNlS2!ZYCMB*>?c08kPnngY*>Z0B ze1!-S0_<`z~4^CChgKSDMSX>PO2##`m>!6i#yii^YRW2btb+Yt8@5!czn?A HDF*rh2i6y6 diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/ControlesBase/ControlesBaseD10.res b/Varela/Varela/Source/ControlesBase/ControlesBaseD10.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm deleted file mode 100644 index b5cd583..0000000 --- a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.dfm +++ /dev/null @@ -1,264 +0,0 @@ -object srvControles: TsrvControles - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schControles - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schControles: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Value = 'vebyas' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + - 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES'#10' WHERE CATEGORIA = :CA' + - 'TEGORIA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'ID' - end - item - DatasetField = 'CATEGORIA' - TableField = 'CATEGORIA' - end - item - DatasetField = 'ICONO' - TableField = 'ICONO' - end - item - DatasetField = 'NOMBRE' - TableField = 'NOMBRE' - end - item - DatasetField = 'DESCRIPCION' - TableField = 'DESCRIPCION' - end - item - DatasetField = 'ORDEN' - TableField = 'ORDEN' - end - item - DatasetField = 'VISTA' - TableField = 'VISTA' - end - item - DatasetField = 'MODIFICABLE' - TableField = 'MODIFICABLE' - end> - end> - Name = 'ListaControlesPorCategoria' - Fields = < - item - Name = 'ID' - DataType = datAutoInc - Required = True - ServerAutoRefresh = True - InPrimaryKey = True - end - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - end - item - Name = 'MODIFICABLE' - DataType = datString - Size = 1 - DefaultValue = 'S' - end - item - Name = 'ICONO' - DataType = datSmallInt - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - end - item - Name = 'ORDEN' - DataType = datSmallInt - end - item - Name = 'VISTA' - DataType = datMemo - end> - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - Value = '' - ParamType = daptInput - end - item - Name = 'MODIFICABLE' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'ICONO' - DataType = datInteger - Value = '' - ParamType = daptInput - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - Value = '' - ParamType = daptInput - end - item - Name = 'ORDEN' - DataType = datInteger - Value = '' - ParamType = daptInput - end - item - Name = 'VISTA' - DataType = datMemo - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + - 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + - 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_ControlesPorCategoria' - end - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - Value = '' - ParamType = daptInput - end - item - Name = 'MODIFICABLE' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'ICONO' - DataType = datInteger - Value = '' - ParamType = daptInput - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - Value = '' - ParamType = daptInput - end - item - Name = 'ORDEN' - DataType = datInteger - Value = '' - ParamType = daptInput - end - item - Name = 'VISTA' - DataType = datMemo - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_ID' - DataType = datInteger - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + - 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + - 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + - 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_ControlesPorCategoria' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 40 - Top = 24 - end - object bpControles: TDABusinessProcessor - Schema = schControles - InsertCommandName = 'Insert_ControlesPorCategoria' - UpdateCommandName = 'Update_ControlesPorCategoria' - ReferencedDataset = 'ListaControlesPorCategoria' - ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 144 - Top = 24 - end - object DABINAdapter: TDABINAdapter - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas b/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas deleted file mode 100644 index c4dbf0b..0000000 --- a/Varela/Varela/Source/ControlesBase/Servidor/srvControles_Impl.pas +++ /dev/null @@ -1,48 +0,0 @@ -unit srvControles_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, - uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvControles } - TsrvControles = class(TDARemoteService, IsrvControles) - bpControles: TDABusinessProcessor; - DABINAdapter: TDABINAdapter; - schControles: TDASchema; - private - protected - { IsrvControles methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer; - -procedure Create_srvControles(out anInstance : IUnknown); -begin - anInstance := TsrvControles.Create(NIL); -end; - -{ srvControles } -initialization - TROClassFactory.Create('srvControles', Create_srvControles, TsrvControles_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj deleted file mode 100644 index 099c4ad..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Devoluciones.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg deleted file mode 100644 index a34a309..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof deleted file mode 100644 index e3c2ef2..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=0 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk deleted file mode 100644 index 21fec2e..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk +++ /dev/null @@ -1,77 +0,0 @@ -package Devoluciones; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - dbrtl, - dsnap, - BaseD10, - vcl, - adortl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - JvGlobusD10R, - ControlesBaseD10, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - dxPSCoreD10, - dxComnD10, - JvCustomD10R, - bdertl, - VclSmp, - dxLayoutControlD10, - Parametros; - -contains - uPluginControllerDevoluciones in 'uPluginControllerDevoluciones.pas' {ModuleDevoluciones: TModuleController}, - uBizDevoluciones in '..\Reglas\uBizDevoluciones.pas', - uDataModuleDevoluciones in 'uDataModuleDevoluciones.pas' {dmDevoluciones: TDAClientDataModule}, - uViewListaDevoluciones in 'uViewListaDevoluciones.pas' {frViewListaDevoluciones: TCustomView}, - uEditorListaDevoluciones in 'uEditorListaDevoluciones.pas' {fEditorListaDevoluciones: TCustomEditor}, - uEditorAjustarDevoluciones in 'uEditorAjustarDevoluciones.pas' {fEditorAjustarRecepciones}; - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.identcache deleted file mode 100644 index 9ba82d175d5a5848a111324125584d3fad5111d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947 zcmc)JJ!->H3m2_&E)+MaS#-X$<#%SKNwvL4%m{+ZgI{SJdqsepc>z7sEx2PV^h}j#J10 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc deleted file mode 100644 index 153736a..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/Devoluciones.res deleted file mode 100644 index 1641339fcc482e7e3492d1b45813a86619622c33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc deleted file mode 100644 index e520ba1..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/MPCommonLibD10.drc +++ /dev/null @@ -1,23 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -DESCRIPTION RCDATA -BEGIN - "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ - "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ - "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ - "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ - "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ - "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ - "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ - "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ - "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ -END - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc deleted file mode 100644 index e520ba1..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/cxVerticalGridVCLD7.drc +++ /dev/null @@ -1,23 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -DESCRIPTION RCDATA -BEGIN - "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ - "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ - "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ - "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ - "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ - "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ - "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ - "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ - "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ -END - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm deleted file mode 100644 index 72e2fe3..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.dfm +++ /dev/null @@ -1,1639 +0,0 @@ -object dmDevoluciones: TdmDevoluciones - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 297 - Width = 620 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvDevoluciones' - Left = 40 - Top = 32 - end - object tbl_Devoluciones: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_NUMHOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'SOLICITADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_SOLICITADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Devoluciones' - IndexDefs = <> - Left = 160 - Top = 96 - end - object ds_Devoluciones: TDADataSource - DataSet = tbl_Devoluciones.Dataset - DataTable = tbl_Devoluciones - Left = 160 - Top = 32 - end - object tbl_DevolucionesAprobadas: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_NUMHOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'SOLICITADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_SOLICITADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'DevolucionesAprobadas' - IndexDefs = <> - Left = 320 - Top = 96 - end - object ds_DevolucionesAprobadas: TDADataSource - DataSet = tbl_DevolucionesAprobadas.Dataset - DataTable = tbl_DevolucionesAprobadas - Left = 320 - Top = 32 - end - object tbl_DevolucionesPendientes: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_NUMHOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_S48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'SOLICITADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_SOLICITADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ER48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Devoluciones_ER48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Devoluciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'DevolucionesPendientes' - IndexDefs = <> - Left = 480 - Top = 96 - end - object ds_DevolucionesPendientes: TDADataSource - DataSet = tbl_DevolucionesPendientes.Dataset - DataTable = tbl_DevolucionesPendientes - Left = 480 - Top = 32 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas deleted file mode 100644 index 7809dc3..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uDataModuleDevoluciones.pas +++ /dev/null @@ -1,87 +0,0 @@ -unit uDataModuleDevoluciones; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, - uROServiceComponent, uRORemoteService, uBizDevoluciones, uDARemoteDataAdapter, - uDAInterfaces; - -type - TdmDevoluciones = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_Devoluciones: TDACDSDataTable; - ds_Devoluciones: TDADataSource; - tbl_DevolucionesAprobadas: TDACDSDataTable; - ds_DevolucionesAprobadas: TDADataSource; - tbl_DevolucionesPendientes: TDACDSDataTable; - ds_DevolucionesPendientes: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - public - function GetItems : IBizDevoluciones; overload; - function GetItems(const AEstado : TInvDevolucionEstado) : IBizDevoluciones; overload; - end; - -var - dmDevoluciones: TdmDevoluciones; - -implementation - -{$R *.DFM} - -uses - Forms, Windows, Controls, VARELA_Intf, uEditorPreview, - uDataTableUtils, uROTypes, cxControls; - -procedure TdmDevoluciones.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmDevoluciones.GetItems: IBizDevoluciones; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_Devoluciones, dtLista); - dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; - Result := (dtLista as IBizDevoluciones); - finally - HideHourglassCursor; - end; -end; - -function TdmDevoluciones.GetItems( - const AEstado: TInvDevolucionEstado): IBizDevoluciones; -var - dtLista: TDACDSDataTable; - AStr : String; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - - case AEstado of - tidPendiente : CloneDataTable(tbl_DevolucionesPendientes, dtLista); - tidAprobado : CloneDataTable(tbl_DevolucionesAprobadas, dtLista); - end; - - dtLista.BusinessRulesID := BIZ_DEVOLUCIONES; - Result := (dtLista as IBizDevoluciones); - finally - HideHourglassCursor; - end; -end; - -initialization - dmDevoluciones := TdmDevoluciones.Create(nil); - -finalization - FreeAndNil(dmDevoluciones); - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm deleted file mode 100644 index 1ef1479..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.dfm +++ /dev/null @@ -1,944 +0,0 @@ -object fEditorAjustarDevoluciones: TfEditorAjustarDevoluciones - Left = 445 - Top = 219 - BorderStyle = bsDialog - Caption = 'Modificaci'#243'n de devoluciones de productos' - ClientHeight = 536 - ClientWidth = 753 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 753 - Height = 73 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Modificaci'#243'n de devoluciones de productos') - Comments.Strings = ( - '') - Gradient.FromColor = clHighlight - Gradient.ToColor = clWindow - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Bevel1: TBevel - Left = 11 - Top = 483 - Width = 730 - Height = 4 - Shape = bsBottomLine - end - object bAceptar: TButton - Left = 572 - Top = 496 - Width = 75 - Height = 25 - Caption = '&Aceptar' - ModalResult = 1 - TabOrder = 0 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 666 - Top = 496 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 1 - end - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 73 - Width = 753 - Height = 403 - ParentBackground = True - TabOrder = 2 - AutoContentSizes = [acsWidth, acsHeight] - object Bevel2: TBevel - Left = 22 - Top = 222 - Width = 50 - Height = 10 - Shape = bsBottomLine - end - object Label1: TLabel - Left = 22 - Top = 258 - Width = 92 - Height = 13 - Caption = 'Cantidad solicitada:' - end - object Label2: TLabel - Left = 22 - Top = 333 - Width = 84 - Height = 13 - Caption = 'Cantidad por EDI:' - end - object Label3: TLabel - Left = 61 - Top = 362 - Width = 45 - Height = 13 - Caption = 'Cantidad:' - end - object edtEnv40: TcxDBMaskEdit - Left = 223 - Top = 256 - DataBinding.DataField = 'S40' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 - Width = 25 - end - object edtEnv38: TcxDBMaskEdit - Left = 120 - Top = 256 - DataBinding.DataField = 'S38' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 8 - Width = 25 - end - object edtEnv42: TcxDBMaskEdit - Left = 326 - Top = 256 - DataBinding.DataField = 'S42' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 10 - Width = 25 - end - object edtEnv44: TcxDBMaskEdit - Left = 429 - Top = 256 - DataBinding.DataField = 'S44' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 11 - Width = 25 - end - object edtEnv46: TcxDBMaskEdit - Left = 532 - Top = 256 - DataBinding.DataField = 'S46' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 12 - Width = 25 - end - object edtEnv48: TcxDBMaskEdit - Left = 635 - Top = 256 - DataBinding.DataField = 'S48' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 13 - Width = 25 - end - object edtRec38: TcxDBMaskEdit - Left = 112 - Top = 331 - DataBinding.DataField = 'E38' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 14 - Width = 98 - end - object edtRec40: TcxDBMaskEdit - Left = 216 - Top = 331 - DataBinding.DataField = 'E40' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 16 - Width = 98 - end - object edtRec42: TcxDBMaskEdit - Left = 320 - Top = 331 - DataBinding.DataField = 'E42' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 18 - Width = 98 - end - object edtRec44: TcxDBMaskEdit - Left = 424 - Top = 331 - DataBinding.DataField = 'E44' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 20 - Width = 98 - end - object edtRec46: TcxDBMaskEdit - Left = 528 - Top = 331 - DataBinding.DataField = 'E46' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 22 - Width = 98 - end - object edtRec48: TcxDBMaskEdit - Left = 632 - Top = 331 - DataBinding.DataField = 'E48' - DataBinding.DataSource = dsDataSource - Enabled = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 24 - Width = 98 - end - object edtRecR48: TcxCurrencyEdit - Left = 632 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 25 - Width = 98 - end - object edtRecR46: TcxCurrencyEdit - Left = 528 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 23 - Width = 98 - end - object edtRecR44: TcxCurrencyEdit - Left = 424 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 21 - Width = 98 - end - object edtRecR42: TcxCurrencyEdit - Left = 320 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 19 - Width = 98 - end - object edtRecR40: TcxCurrencyEdit - Left = 216 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 17 - Width = 98 - end - object edtRecR38: TcxCurrencyEdit - Left = 112 - Top = 358 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 15 - Width = 98 - end - object edtFecha: TcxDBLabel - Left = 144 - Top = 28 - DataBinding.DataField = 'FECHA' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 108 - end - object edtCentro: TcxDBLabel - Left = 344 - Top = 28 - DataBinding.DataField = 'FILIAL' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 481 - end - object edtProducto: TcxDBLabel - Left = 144 - Top = 51 - DataBinding.DataField = 'PRODUCTO' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 420 - end - object edtColor: TcxDBLabel - Left = 613 - Top = 51 - DataBinding.DataField = 'COLOR' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 118 - end - object edtHoja: TcxDBLabel - Left = 144 - Top = 104 - DataBinding.DataField = 'NUMHOJA' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 140 - end - object cbEstadoHoja: TcxComboBox - Left = 144 - Top = 127 - Properties.Items.Strings = ( - 'Ninguna' - 'Env'#237'o perdido' - 'Env'#237'o retrasado' - 'Env'#237'o devuelto' - 'Otras incidencias') - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - Style.ButtonStyle = bts3D - Style.PopupBorderStyle = epbsFrame3D - 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 = 5 - Text = 'cbEstadoHoja' - Width = 166 - end - object memEstadoHoja: TcxMemo - Left = 22 - Top = 172 - Lines.Strings = ( - 'memEstadoHoja') - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - 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 = 7 - Height = 44 - Width = 709 - end - object cbContabilizarHoja: TcxCheckBox - Left = 231 - Top = 127 - Caption = 'Contabilizar esta hoja de movimiento' - Properties.ImmediatePost = True - Properties.NullStyle = nssUnchecked - Properties.ValueChecked = 'S' - Properties.ValueUnchecked = 'N' - State = cbsGrayed - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - 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 = 6 - Width = 708 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group1: TdxLayoutGroup - Caption = 'Datos generales' - object dxLayoutControl1Group2: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item31: TdxLayoutItem - Caption = 'Fecha del movimiento:' - Control = edtFecha - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item17: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Centro de origen:' - Control = edtCentro - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group3: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item32: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Producto:' - Control = edtProducto - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item33: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - Caption = 'Color:' - Control = edtColor - ControlOptions.MinWidth = 50 - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Group4: TdxLayoutGroup - Caption = 'Datos de la hoja de movimientos' - object dxLayoutControl1Group8: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group7: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item1: TdxLayoutItem - Caption = 'N'#250'mero de hoja:' - Control = edtHoja - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group6: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item5: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Estado de la devoluci'#243'n:' - Control = cbEstadoHoja - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item8: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'cxCheckBox1' - ShowCaption = False - Control = cbContabilizarHoja - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Item6: TdxLayoutItem - Caption = 'Observaciones sobre la hoja:' - CaptionOptions.AlignVert = tavTop - CaptionOptions.Layout = clTop - Control = memEstadoHoja - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Item9: TdxLayoutItem - Control = Bevel2 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group9: TdxLayoutGroup - Caption = 'New Group' - ShowCaption = False - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item16: TdxLayoutItem - Caption = 'Tallas:' - CaptionOptions.AlignHorz = taRightJustify - CaptionOptions.Layout = clTop - Offsets.Top = 2 - Control = Label1 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item11: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '38' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv38 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item10: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '40' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv40 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item12: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '42' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv42 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item13: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '44' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv44 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item14: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '46' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv46 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item15: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '48' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv48 - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Group5: TdxLayoutGroup - Caption = 'Datos de recepci'#243'n del env'#237'o' - LayoutDirection = ldHorizontal - object dxLayoutControl1Group16: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item23: TdxLayoutItem - Caption = 'Tallas:' - CaptionOptions.AlignHorz = taRightJustify - CaptionOptions.Layout = clTop - Offsets.Top = 2 - Control = Label2 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item30: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - CaptionOptions.Layout = clTop - Offsets.Top = 10 - ShowCaption = False - Control = Label3 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group10: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item2: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '38' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec38 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item29: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR38 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group11: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item3: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '40' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec40 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item28: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR40 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group12: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item4: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '42' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec42 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item27: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR42 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group13: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item20: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '44' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec44 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item26: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR44 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group14: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item21: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '46' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec46 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item25: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR46 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group15: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item22: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '48' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec48 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item24: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR48 - ControlOptions.ShowBorder = False - end - end - end - end - end - object dsDataSource: TDADataSource - DataTable = dmDevoluciones.tbl_Devoluciones - Left = 200 - Top = 496 - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas deleted file mode 100644 index f117ee0..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas +++ /dev/null @@ -1,351 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorAjustarDevoluciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, JvExControls, JvComponent, - JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizDevoluciones, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, - cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, - cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, - cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, - cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, - cxCheckBox, cxCalendar, cxLabel, cxDBLabel; - -type - IEditorAjustarDevoluciones = interface - ['{F75441C6-D0D4-42AF-ABB7-FC531222F0DD}'] - function GetItems : IBizDevoluciones; - procedure SetItems (const AValue : IBizDevoluciones); - property Items : IBizDevoluciones read GetItems write SetItems; - end; - - TfEditorAjustarDevoluciones = class(TForm, IEditorAjustarDevoluciones) - bAceptar: TButton; - bCancelar: TButton; - JvgWizardHeader1: TJvgWizardHeader; - Bevel1: TBevel; - dsDataSource: TDADataSource; - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - dxLayoutControl1Group1: TdxLayoutGroup; - dxLayoutControl1Group2: TdxLayoutGroup; - dxLayoutControl1Group3: TdxLayoutGroup; - dxLayoutControl1Group4: TdxLayoutGroup; - dxLayoutControl1Group5: TdxLayoutGroup; - dxLayoutControl1Item9: TdxLayoutItem; - Bevel2: TBevel; - dxLayoutControl1Group8: TdxLayoutGroup; - dxLayoutControl1Item10: TdxLayoutItem; - edtEnv40: TcxDBMaskEdit; - dxLayoutControl1Group9: TdxLayoutGroup; - dxLayoutControl1Item11: TdxLayoutItem; - edtEnv38: TcxDBMaskEdit; - dxLayoutControl1Item12: TdxLayoutItem; - edtEnv42: TcxDBMaskEdit; - dxLayoutControl1Item13: TdxLayoutItem; - edtEnv44: TcxDBMaskEdit; - dxLayoutControl1Item14: TdxLayoutItem; - edtEnv46: TcxDBMaskEdit; - dxLayoutControl1Item15: TdxLayoutItem; - edtEnv48: TcxDBMaskEdit; - dxLayoutControl1Item16: TdxLayoutItem; - Label1: TLabel; - dxLayoutControl1Item2: TdxLayoutItem; - edtRec38: TcxDBMaskEdit; - dxLayoutControl1Item3: TdxLayoutItem; - edtRec40: TcxDBMaskEdit; - dxLayoutControl1Item4: TdxLayoutItem; - edtRec42: TcxDBMaskEdit; - dxLayoutControl1Item20: TdxLayoutItem; - edtRec44: TcxDBMaskEdit; - dxLayoutControl1Item21: TdxLayoutItem; - edtRec46: TcxDBMaskEdit; - dxLayoutControl1Item22: TdxLayoutItem; - edtRec48: TcxDBMaskEdit; - dxLayoutControl1Item23: TdxLayoutItem; - Label2: TLabel; - dxLayoutControl1Item24: TdxLayoutItem; - edtRecR48: TcxCurrencyEdit; - dxLayoutControl1Item25: TdxLayoutItem; - edtRecR46: TcxCurrencyEdit; - dxLayoutControl1Item26: TdxLayoutItem; - edtRecR44: TcxCurrencyEdit; - dxLayoutControl1Item27: TdxLayoutItem; - edtRecR42: TcxCurrencyEdit; - dxLayoutControl1Item28: TdxLayoutItem; - edtRecR40: TcxCurrencyEdit; - dxLayoutControl1Item29: TdxLayoutItem; - edtRecR38: TcxCurrencyEdit; - dxLayoutControl1Group10: TdxLayoutGroup; - dxLayoutControl1Group11: TdxLayoutGroup; - dxLayoutControl1Group12: TdxLayoutGroup; - dxLayoutControl1Group13: TdxLayoutGroup; - dxLayoutControl1Group14: TdxLayoutGroup; - dxLayoutControl1Group15: TdxLayoutGroup; - dxLayoutControl1Item30: TdxLayoutItem; - Label3: TLabel; - dxLayoutControl1Group16: TdxLayoutGroup; - edtFecha: TcxDBLabel; - dxLayoutControl1Item31: TdxLayoutItem; - edtCentro: TcxDBLabel; - dxLayoutControl1Item17: TdxLayoutItem; - edtProducto: TcxDBLabel; - dxLayoutControl1Item32: TdxLayoutItem; - edtColor: TcxDBLabel; - dxLayoutControl1Item33: TdxLayoutItem; - edtHoja: TcxDBLabel; - dxLayoutControl1Item1: TdxLayoutItem; - cbEstadoHoja: TcxComboBox; - dxLayoutControl1Item5: TdxLayoutItem; - memEstadoHoja: TcxMemo; - dxLayoutControl1Item6: TdxLayoutItem; - cbContabilizarHoja: TcxCheckBox; - dxLayoutControl1Item8: TdxLayoutItem; - dxLayoutControl1Group7: TdxLayoutGroup; - dxLayoutControl1Group6: TdxLayoutGroup; - procedure FormShow(Sender: TObject); - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure bAceptarClick(Sender: TObject); - private - FItems : IBizDevoluciones; - FHayErrores : Boolean; - FAlbaranModificado : Boolean; - procedure CargarValores; - procedure SalvarValores; - procedure ModificarAlbaran; - protected - function GetItems : IBizDevoluciones; - procedure SetItems (const AValue : IBizDevoluciones); - public - property Items : IBizDevoluciones read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleDevoluciones, - uDAInterfaces; - -{$R *.dfm} - -function ShowEditorAjustarDevoluciones (ABizObject : TDADataTableRules) : TModalResult; -var - AEditor: TfEditorAjustarDevoluciones; -begin - AEditor := TfEditorAjustarDevoluciones.Create(Application); - try - AEditor.Items := (ABizObject as IBizDevoluciones); - Result := AEditor.ShowModal; - finally - AEditor.Release; - end; -end; - - -{ TfEditorCambioReferenciaGenerica } - -procedure TfEditorAjustarDevoluciones.FormShow(Sender: TObject); -begin - FHayErrores := False; - FItems.DataTable.Open; - - cbEstadoHoja.Enabled := Length(FItems.DataTable.FieldByName('NUMHOJA').AsString) > 0; - cbContabilizarHoja.Enabled := cbEstadoHoja.Enabled; - memEstadoHoja.Enabled := cbEstadoHoja.Enabled; - - CargarValores;; -end; - -function TfEditorAjustarDevoluciones.GetItems: IBizDevoluciones; -begin - Result := FItems; -end; - -procedure TfEditorAjustarDevoluciones.SetItems( - const AValue: IBizDevoluciones); -begin - FItems := AValue; - if Assigned(FItems) then - dsDataSource.DataTable := FItems.DataTable; -end; - -procedure TfEditorAjustarDevoluciones.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then - begin - ADone := True; - with AViewInfo do begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); - end; - end; -end; - -procedure TfEditorAjustarDevoluciones.bAceptarClick(Sender: TObject); -begin - ShowHourglassCursor; - Application.ProcessMessages; - try - SalvarValores; - FItems.DataTable.ApplyUpdates; - ModificarAlbaran; - finally - HideHourglassCursor; - end; - Close; -end; - -procedure TfEditorAjustarDevoluciones.CargarValores; -begin - with FItems.DataTable do - begin - if FieldByName('E38').AsInteger <> FieldByName('ER38').AsInteger then - edtRecR38.Value := FieldByName('ER38').AsInteger - else - edtRecR38.Value := FieldByName('E38').AsInteger; - - if FieldByName('E40').AsInteger <> FieldByName('ER40').AsInteger then - edtRecR40.Value := FieldByName('ER40').AsInteger - else - edtRecR40.Value := FieldByName('E40').AsInteger; - - if FieldByName('E42').AsInteger <> FieldByName('ER42').AsInteger then - edtRecR42.Value := FieldByName('ER42').AsInteger - else - edtRecR42.Value := FieldByName('E42').AsInteger; - - if FieldByName('E44').AsInteger <> FieldByName('ER44').AsInteger then - edtRecR44.Value := FieldByName('ER44').AsInteger - else - edtRecR44.Value := FieldByName('E44').AsInteger; - - if FieldByName('E46').AsInteger <> FieldByName('ER46').AsInteger then - edtRecR46.Value := FieldByName('ER46').AsInteger - else - edtRecR46.Value := FieldByName('E46').AsInteger; - - if FieldByName('E48').AsInteger <> FieldByName('ER48').AsInteger then - edtRecR48.Value := FieldByName('ER48').AsInteger - else - edtRecR48.Value := FieldByName('E48').AsInteger; - - if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then - cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0]; - - if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then - cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0] - else - cbEstadoHoja.Text := FieldByName('ESTADO_HOJA').AsString; - - cbContabilizarHoja.Checked := (FieldByName('CONTABILIZAR_HOJA').AsString = 'S'); - memEstadoHoja.Lines.Clear; - if Length(FieldByName('OBSERVACIONES_HOJA').AsString) > 0 then - memEstadoHoja.Lines.Add(FieldByName('OBSERVACIONES_HOJA').AsString) - end; -end; - -procedure TfEditorAjustarDevoluciones.SalvarValores; -var - aux : String; -begin - FAlbaranModificado := False; - with FItems.DataTable do - begin - Edit; - FieldByName('ER38').AsFloat := edtRecR38.Value; - FieldByName('ER40').AsFloat := edtRecR40.Value; - FieldByName('ER42').AsFloat := edtRecR42.Value; - FieldByName('ER44').AsFloat := edtRecR44.Value; - FieldByName('ER46').AsFloat := edtRecR46.Value; - FieldByName('ER48').AsFloat := edtRecR48.Value; - - if cbEstadoHoja.Text = cbEstadoHoja.Properties.Items[0] then - aux := '' - else - aux := cbEstadoHoja.Text; - - if FieldByName('ESTADO_HOJA').AsString <> aux then - FieldByName('ESTADO_HOJA').AsString := aux; - - if cbContabilizarHoja.Checked then - aux := 'S' - else - aux := 'N'; - - if FieldByName('CONTABILIZAR_HOJA').AsString <> aux then - FieldByName('CONTABILIZAR_HOJA').AsString := aux; - - FieldByName('OBSERVACIONES_HOJA').AsString := memEstadoHoja.Lines.Text; - Post; - end; -end; - -procedure TfEditorAjustarDevoluciones.ModificarAlbaran; -var - bm : TBookMark ; - AHoja : String; - AEstado : String; - AContabilizar : String; -begin - { Si se ha cambiado el albarán, hay - que cambiarlo en el resto de filas en las que aparezca } - - AHoja := FItems.DataTable.FieldByName('NUMHOJA').AsString; - AEstado := FItems.DataTable.FieldByName('ESTADO_HOJA').AsString; - AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString; - - bm := FItems.DataTable.GetBookMark; - FItems.DataTable.DisableControls; - FItems.DataTable.DisableEventHandlers; - FItems.DataTable.LogChanges := False; - try - FItems.DataTable.Filter := 'NUMHOJA = ''' + AHoja + ''''; - FItems.DataTable.Filtered := True; - FItems.DataTable.First; - - repeat - FItems.Edit; - FItems.DataTable.FieldByName('ESTADO_HOJA').AsString := AEstado; - FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString := AContabilizar; - FItems.Post; - FItems.DataTable.Next - until FItems.DataTable.EOF; - - try - FItems.DataTable.GotoBookMark(bm); - except - // No hacer nada - end; - finally - FItems.DataTable.Filter := ''; - FItems.DataTable.Filtered := False; - FItems.DataTable.FreeBookMark(BM); - FItems.DataTable.LogChanges := True; - FItems.DataTable.EnableEventHandlers; - FItems.DataTable.EnableControls; - end; -end; - -initialization - RegisterEditor(IBizDevoluciones, ShowEditorAjustarDevoluciones, etItem); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm deleted file mode 100644 index c37762d..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.dfm +++ /dev/null @@ -1,1708 +0,0 @@ -inherited fEditorListaDevoluciones: TfEditorListaDevoluciones - Left = 403 - Top = 247 - Caption = 'Control de devoluciones' - ClientHeight = 637 - ClientWidth = 901 - ExplicitWidth = 909 - ExplicitHeight = 671 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 901 - Caption = 'Control de devoluciones' - ExplicitWidth = 901 - inherited Image1: TImage - Left = 874 - ExplicitLeft = 874 - end - end - inherited TBXDock: TTBXDock - Width = 901 - ExplicitWidth = 901 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 583 - object TBXSubmenuItem2: TTBXSubmenuItem [5] - Caption = 'Cambiar el estado' - DropdownCombo = True - object TBXItem37: TTBXItem - Action = actPendiente - end - object TBXItem36: TTBXItem - Action = actAprobado - end - end - object TBXSeparatorItem16: TTBXSeparatorItem [8] - end - object tbxiExpandir: TTBXItem [16] - Action = actExpandir - end - object tbxiContraer: TTBXItem [17] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [18] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 901 - end - inherited tbxFiltro: TTBXToolbar - Left = 583 - ExplicitLeft = 583 - end - end - inherited StatusBar: TStatusBar - Top = 618 - Width = 901 - ExplicitTop = 618 - ExplicitWidth = 901 - end - object JvTabBar1: TJvTabBar [3] - Left = 0 - Top = 204 - Width = 901 - Height = 29 - Cursor = crHandPoint - CloseButton = False - Painter = JvModernTabBarPainter1 - Images = SmallImages - Tabs = < - item - Caption = 'Pendientes' - Selected = True - ImageIndex = 26 - end - item - Caption = 'Aprobados' - ImageIndex = 25 - end - item - Caption = 'Todos' - end> - OnTabSelected = JvTabBar1TabSelected - end - inline frViewListaDevoluciones1: TfrViewListaDevoluciones [4] - Left = 0 - Top = 233 - Width = 901 - Height = 385 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 4 - ReadOnly = False - ExplicitTop = 233 - ExplicitWidth = 901 - ExplicitHeight = 385 - inherited cxGrid: TcxGrid - Width = 901 - Height = 385 - ExplicitWidth = 901 - ExplicitHeight = 385 - inherited cxGridView: TcxGridDBTableView - PopupMenu = GridPopupMenu - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = ',0;-,0' - Kind = skSum - Position = spFooter - Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA - end - item - Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' - Kind = skSum - Column = frViewListaDevoluciones1.cxGridViewDIFERENCIA - end> - inherited cxGridViewAPROBADO: TcxGridDBColumn - IsCaptionAssigned = True - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - BuiltInReportLink = True - end - end - end - object TBXDockablePanel1: TTBXDockablePanel [5] - Left = 0 - Top = 76 - MaxClientHeight = 61 - Align = alTop - Caption = 'TBXDockablePanel1' - FloatingWidth = 128 - FloatingHeight = 128 - SupportedDocks = [dkStandardDock, dkMultiDock] - TabOrder = 5 - inline frViewParametrosCentro1: TfrViewParametrosCentro - Left = 0 - Top = 19 - Width = 425 - Height = 109 - Align = alLeft - TabOrder = 0 - ReadOnly = False - ExplicitTop = 19 - ExplicitWidth = 425 - ExplicitHeight = 109 - inherited dxLayoutControl1: TdxLayoutControl - Width = 425 - ExplicitWidth = 425 - inherited ccbCentro: TJvCheckedComboBox - Width = 392 - ExplicitWidth = 392 - end - end - end - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 901 - Height = 19 - Margins.Left = 5 - Margins.Top = 5 - Align = alTop - Caption = 'Par'#225'metros de consulta' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentColor = True - ParentFont = False - Underline = True - end - object pnlAgrupaciones: TTBXAlignmentPanel - Left = 425 - Top = 19 - Width = 476 - Height = 109 - Align = alClient - AutoSize = True - TabOrder = 2 - object TBXButton3: TTBXButton - Tag = 3 - Left = 8 - Top = 10 - Width = 90 - Height = 21 - Action = actRefrescar - AutoSize = False - Caption = 'Consultar' - ImageIndex = 0 - TabOrder = 0 - Wrapping = twEndEllipsis - end - end - end - inherited EditorActionList: TActionList [6] - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Caption = 'Modificar devoluci'#243'n' - OnExecute = actModificarExecute - end - inherited actEliminar: TAction - Enabled = False - Visible = False - end - inherited actDuplicar: TAction - Enabled = False - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - OnUpdate = actAnchoAutoUpdate - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - OnUpdate = actAnchoAutoUpdate - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - OnUpdate = actAnchoAutoUpdate - end - object actPendiente: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Pendiente' - GroupIndex = 1 - ImageIndex = 26 - OnExecute = actPendienteExecute - OnUpdate = actPendienteUpdate - end - object actAprobado: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Aprobado' - GroupIndex = 1 - ImageIndex = 25 - OnExecute = actAprobadoExecute - OnUpdate = actAprobadoUpdate - end - end - inherited SmallImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 - 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 - 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 - EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 - EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 - 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C - 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 - E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 - 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE - F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 - 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD - 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 - 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 - AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 - 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 - 051D2C6D56E60000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [8] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [9] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] - end - inherited dsDataTable: TDADataSource [11] - Top = 136 - end - inherited GridPopupMenu: TPopupMenu - Left = 112 - Top = 128 - object Cambiarelestado1: TMenuItem [3] - Caption = 'Cambiar el estado a...' - object Pendiente1: TMenuItem - Action = actPendiente - AutoCheck = True - GroupIndex = 1 - end - object Enespera1: TMenuItem - Action = actAprobado - AutoCheck = True - GroupIndex = 1 - end - end - end - object JvModernTabBarPainter1: TJvModernTabBarPainter - BorderColor = clWindow - ControlDivideColor = cl3DDkShadow - DividerColor = clBtnShadow - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - DisabledFont.Charset = DEFAULT_CHARSET - DisabledFont.Color = clGrayText - DisabledFont.Height = -11 - DisabledFont.Name = 'MS Sans Serif' - DisabledFont.Style = [] - SelectedFont.Charset = DEFAULT_CHARSET - SelectedFont.Color = clHighlight - SelectedFont.Height = -11 - SelectedFont.Name = 'MS Sans Serif' - SelectedFont.Style = [fsBold] - Left = 320 - Top = 128 - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas deleted file mode 100644 index 2b65b96..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uEditorListaDevoluciones.pas +++ /dev/null @@ -1,356 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorListaDevoluciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uBizDevoluciones, uViewListaDevoluciones, uEditorGridBase, - JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, - uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, - JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, - TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, - JvExControls, JvComponent, JvNavigationPane, TBXDkPanels, - uViewParametrosControlGrid, uViewParametrosCentro, uDAInterfaces; - - -type - IEditorListaDevoluciones = interface(IEditorGridBase) - ['{F7023263-A26E-4C09-87AF-02275AD594C4}'] - function GetItems: IBizDevoluciones; - procedure SetItems(const Value: IBizDevoluciones); - property Items: IBizDevoluciones read GetItems - write SetItems; - end; - - TfEditorListaDevoluciones = class(TfEditorGridBase, IEditorListaDevoluciones) - JvTabBar1: TJvTabBar; - JvModernTabBarPainter1: TJvModernTabBarPainter; - actPendiente: TAction; - Cambiarelestado1: TMenuItem; - Pendiente1: TMenuItem; - Enespera1: TMenuItem; - TBXSubmenuItem2: TTBXSubmenuItem; - TBXSeparatorItem16: TTBXSeparatorItem; - TBXItem36: TTBXItem; - TBXItem37: TTBXItem; - actAprobado: TAction; - frViewListaDevoluciones1: TfrViewListaDevoluciones; - TBXDockablePanel1: TTBXDockablePanel; - frViewParametrosCentro1: TfrViewParametrosCentro; - TBXLabel1: TTBXLabel; - pnlAgrupaciones: TTBXAlignmentPanel; - TBXButton3: TTBXButton; - procedure FormShow(Sender: TObject); - procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); - procedure actModificarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure actAnchoAutoUpdate(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPendienteExecute(Sender: TObject); - procedure actPendienteUpdate(Sender: TObject); - procedure actAprobadoExecute(Sender: TObject); - procedure actAprobadoUpdate(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - protected - FItems : IBizDevoluciones; - function GetItems: IBizDevoluciones; - procedure SetItems(const Value: IBizDevoluciones); - procedure CambiarEstado(const NuevoEstado: TInvDevolucionestado); - function GetModified: Boolean; override; - public - property Items: IBizDevoluciones read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, - uDBSelectionList, cxGridDBTableView, - cxGridDBDataDefinitions, uDataModuleDevoluciones, uEditorDBBase; - - -{$R *.dfm} - -constructor TfEditorListaDevoluciones.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewListaDevoluciones1; -end; - -function TfEditorListaDevoluciones.GetItems: IBizDevoluciones; -begin - Result := FItems; -end; - -procedure TfEditorListaDevoluciones.SetItems( - const Value: IBizDevoluciones); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewListaDevoluciones1.dsDataSource.DataTable := FItems.DataTable; - end; -end; - -procedure TfEditorListaDevoluciones.FormShow(Sender: TObject); -begin - inherited; - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - frViewParametrosCentro1.Refresh; - - with (ViewGrid as IViewListaDevoluciones) do - VerPendientes; -end; - -procedure TfEditorListaDevoluciones.JvTabBar1TabSelected( - Sender: TObject; Item: TJvTabBarItem); -begin - inherited; - ShowHourglassCursor; - - Items.DataTable.Active := False; - - Application.ProcessMessages; - ViewGrid._FocusedView.BeginUpdate; - Application.ProcessMessages; - try - case Item.Index of - 0 : begin - Items := dmDevoluciones.GetItems(tidPendiente); - (ViewGrid as IViewListaDevoluciones).VerPendientes; - end; - - 1 : begin - Items := dmDevoluciones.GetItems(tidAprobado); - (ViewGrid as IViewListaDevoluciones).VerAprobados; - end; - - 2 : begin - Items := dmDevoluciones.GetItems; - (ViewGrid as IViewListaDevoluciones).VerTodos; - end; - end; - finally - dsDataTable.DataTable := Items.DataTable; - ViewGrid._FocusedView.EndUpdate; - HideHourglassCursor; - end; -end; - -procedure TfEditorListaDevoluciones.actModificarExecute( - Sender: TObject); -begin - ViewGrid._FocusedView.BeginUpdate; - ViewGrid.SaveGridStatus; - try - FItems.Show; - finally - // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición - ShowHourglassCursor; - Application.ProcessMessages; - try - ViewGrid._FocusedView.EndUpdate; - ViewGrid.RestoreGridStatus; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaDevoluciones.actExpandirExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorListaDevoluciones.actContraerExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -procedure TfEditorListaDevoluciones.actAnchoAutoExecute( - Sender: TObject); -begin - inherited; - ViewGrid.AjustarAncho; -end; - -procedure TfEditorListaDevoluciones.actAnchoAutoUpdate( - Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and Assigned(ViewGrid) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorListaDevoluciones.actModificarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) -end; - -procedure TfEditorListaDevoluciones.actRefrescarExecute( - Sender: TObject); -var - ACentrosList : TStringList; - AWhere : String; - i : integer; -begin - // BEGIN Adaptación a DA5 - {case (ViewGrid as IViewListaDevoluciones).VistaActiva of - tdvaPendiente, - tdvaAprobado : AWhere := ' and' - else - AWhere := ''; - end;} - AWhere := ''; - // END Adaptación a DA5 - - AWhere := AWhere + ' CENTRO in ('; - - Items.DataTable.Active := False; - ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; - - ShowHourglassCursor; - try - if ACentrosList.Count = 0 then - ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') - else begin - with Items.DataTable.Where do - begin - Clear; - for i := 0 to ACentrosList.Count - 1 do - begin - if i > 0 then - AWhere := AWhere + ', '; - AWhere := AWhere + '''' + ACentrosList[i] + ''''; - end; - AWhere := AWhere + ')'; - - AddText(AWhere); - end; - Items.DataTable.Active := True; - end; - finally - HideHourglassCursor; - FreeAndNIL(ACentrosList); - end; - - inherited; - - ViewGrid.ExpandirTodo; - ViewGrid.GotoFirst; -end; - -procedure TfEditorListaDevoluciones.actPendienteExecute( - Sender: TObject); -begin - CambiarEstado(tidPendiente); -end; - -procedure TfEditorListaDevoluciones.actPendienteUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = tidPendiente); -end; - -procedure TfEditorListaDevoluciones.actAprobadoExecute( - Sender: TObject); -begin - CambiarEstado(tidAprobado); -end; - -procedure TfEditorListaDevoluciones.actAprobadoUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = tidAprobado); -end; - -procedure TfEditorListaDevoluciones.CambiarEstado( - const NuevoEstado: TInvDevolucionestado); -var - ARecord: TcxCustomGridRecord; - i : Integer; -begin - if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then - begin - ShowHourglassCursor; - //ViewGrid._FocusedView.BeginUpdate; - FItems.DataTable.DisableControls; - - Application.ProcessMessages; - try - for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do - begin - ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; - if (ARecord is TcxGridDataRow) then - begin - (ARecord as TcxGridDataRow).Focused := True; - FItems.Edit; - FItems.Estado := NuevoEstado; - FItems.Post; - end; - Application.ProcessMessages; - end; - FItems.DataTable.ApplyUpdates; - finally - //ViewGrid._FocusedView.EndUpdate; - FItems.DataTable.EnableControls; - ViewGrid._FocusedView.Controller.ClearSelection; - HideHourglassCursor; - Application.ProcessMessages; - end; - end; -end; - -procedure TfEditorListaDevoluciones.actEliminarExecute( - Sender: TObject); -begin -// inherited; -end; - - -function TfEditorListaDevoluciones.GetModified: Boolean; -begin - Result := False; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm deleted file mode 100644 index aac76d2..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.dfm +++ /dev/null @@ -1,125 +0,0 @@ -object ModuleDevoluciones: TModuleDevoluciones - OldCreateOrder = True - DefaultAction = actDevolucion - Description = 'Control de devoluci'#243'n de prendas' - ModuleMenu = MainMenu - ModuleName = 'Control de devoluci'#243'n de prendas' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.1' - Left = 779 - Top = 651 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000019B4944415478DA - 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B - 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0 - 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41 - 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F - 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF - 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121 - 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41 - 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100 - 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5 - 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC - 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8 - 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578 - 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000 - 0049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actDevolucion: TAction - Category = 'Inventario' - Caption = 'Control de devoluci'#243'n' - ImageIndex = 0 - OnExecute = actDevolucionExecute - end - end - object MainMenu: TMainMenu - Tag = 500 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Inventario' - GroupIndex = 1 - ImageIndex = 4 - object Controldeventasenproceso1: TMenuItem - Tag = 210 - Action = actDevolucion - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000F64944415478DA - 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A - 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3 - 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788 - F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97 - DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3 - B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E - BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E - C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44 - AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001F14944415478DA - BDD64D4B02511406E03328F8270A83DA549BA09508B55082D6AD5A8414942615 - ADC2A0458BC016D1A68D21951014F8075AF4014A1FB4B05A5442216119481018 - EA980331796F3A36E39DB9F74EE60151F1CC79668EBE83822CCBD0CA121078BF - D8EEAABC3EA2F4BA597A7A5733C77A1F22AB06CA9DCB4B60B379898DE5F2266C - 8FAFC0C40EBDC7BF9F1198C09EE00B3E4855853C7E84E30EB01C4CC2F41EBDC7 - 3C581D84875D0D9141428F39F0D7203CEC61A411D4E9E1073583A05880F0AB47 - 0D1AF4F081EF6B0D83A0588470CE5F07293D7CE063004092548340AC9CBDB450 - 07293DCC208A45386AD7EBC5C3502C683DACA02B96360EF5A01DDC2C3D4D0DBE - D1D9B31477F01178176863BA0D92AE943BF85590BA8D90CF07F31110D8418350 - 2390B68DAF93610E90126A22A8D9063BC810EA0690B08DD9F534C08D8F016408 - B50AD4D946E4AC031297B106943BF82AB0BA0D677094D83F37D6059E992D15CA - 1D7CF45357C0EA369C1B537838A942D173B8882715540105813DCFB558D4B681 - D687C0442A8BDF974A127ECEE74B60B55A20F5F4A6A06641D76136A36C63D796 - 54402D56FA94401425C87D881895AFBD0237A8AD7E6F5246E0E9EDB32166FA0A - 8D4084A1122B575A14CB18FCF3774802710434E518E856614D0389D517FAF977 - AD97C37F018DEE34ADAC6FE2EA02F65CB3A8E60000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas deleted file mode 100644 index 29ba2d3..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uPluginControllerDevoluciones.pas +++ /dev/null @@ -1,73 +0,0 @@ -unit uPluginControllerDevoluciones; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCDevoluciones = interface(IInterface) - ['{46008D56-3823-4F95-8D22-89130764307B}'] - end; - - TModuleDevoluciones = class(TModuleController, IMCDevoluciones) - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - SmallImages: TPngImageList; - actDevolucion: TAction; - Controldeventasenproceso1: TMenuItem; - procedure actDevolucionExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uBizDevoluciones, - uDataModuleDevoluciones, uEditorListaDevoluciones; - - -function GetModule : TModuleController; -begin - Result := TModuleDevoluciones.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleDevoluciones.actDevolucionExecute(Sender: TObject); -var - aControl: IBizDevoluciones; - aObj: IEditorListaDevoluciones; -begin - aControl := dmDevoluciones.GetItems(tidPendiente); - aObj := TfEditorListaDevoluciones.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleDevoluciones); - -finalization - UnRegisterModuleClass(TModuleDevoluciones); - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm deleted file mode 100644 index b599fa6..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.dfm +++ /dev/null @@ -1,476 +0,0 @@ -inherited frViewListaDevoluciones: TfrViewListaDevoluciones - Width = 466 - Height = 477 - inherited cxGrid: TcxGrid - Width = 466 - Height = 477 - inherited cxGridView: TcxGridDBTableView - OnMouseDown = cxGridViewMouseDown - FilterBox.Visible = fvNever - OnCellDblClick = cxGridViewCellDblClick - DataController.KeyFieldNames = 'Centro;Codigo;Color;Fecha' - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = ',0;-,0' - Kind = skSum - Position = spFooter - Column = cxGridViewDIFERENCIA - end - item - Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' - Kind = skSum - Column = cxGridViewDIFERENCIA - end> - OptionsCustomize.ColumnGrouping = True - OptionsSelection.MultiSelect = True - OptionsView.Footer = False - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfVisibleWhenExpanded - OptionsView.GroupRowStyle = grsOffice11 - Preview.Column = cxGridViewOBSERVACIONES_HOJA - Preview.Visible = True - Styles.Footer = cxStyleFooter - OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell - object cxGridViewAPROBADO: TcxGridDBColumn - DataBinding.FieldName = 'APROBADO' - PropertiesClassName = 'TcxImageComboBoxProperties' - Properties.Alignment.Horz = taLeftJustify - Properties.Images = SmallImages - Properties.Items = < - item - Description = 'Aprobado' - ImageIndex = 0 - Value = 'S' - end - item - Description = 'Pendiente' - ImageIndex = 1 - Value = 'N' - end> - Properties.ReadOnly = True - Properties.ShowDescriptions = False - MinWidth = 15 - Width = 15 - IsCaptionAssigned = True - end - object cxGridViewCENTRO: TcxGridDBColumn - DataBinding.FieldName = 'CENTRO' - Visible = False - end - object cxGridViewFILIAL: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'FILIAL' - Visible = False - GroupIndex = 0 - SortIndex = 0 - SortOrder = soAscending - end - object cxGridViewCODIGO: TcxGridDBColumn - DataBinding.FieldName = 'CODIGO' - Visible = False - OnGetDataText = cxGridViewCODIGOGetDataText - OnGetDisplayText = cxGridViewCODIGOGetDisplayText - GroupIndex = 1 - SortIndex = 1 - SortOrder = soAscending - end - object cxGridViewPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'PRODUCTO' - Visible = False - end - object cxGridViewCOLOR: TcxGridDBColumn - DataBinding.FieldName = 'COLOR' - Visible = False - end - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - SortIndex = 2 - SortOrder = soAscending - end - object cxGridViewESTADO_HOJA: TcxGridDBColumn - DataBinding.FieldName = 'ESTADO_HOJA' - Visible = False - end - object cxGridViewNUMHOJA: TcxGridDBColumn - Caption = 'Hoja' - DataBinding.FieldName = 'NUMHOJA' - OnGetDisplayText = cxGridViewNUMHOJAGetDisplayText - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - end - object cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn - DataBinding.FieldName = 'CONTABILIZAR_HOJA' - Visible = False - end - object cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn - DataBinding.FieldName = 'OBSERVACIONES_HOJA' - PropertiesClassName = 'TcxMemoProperties' - end - object cxGridViewS38: TcxGridDBColumn - DataBinding.FieldName = 'S38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewS40: TcxGridDBColumn - DataBinding.FieldName = 'S40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewS42: TcxGridDBColumn - DataBinding.FieldName = 'S42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewS44: TcxGridDBColumn - DataBinding.FieldName = 'S44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewS46: TcxGridDBColumn - DataBinding.FieldName = 'S46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewS48: TcxGridDBColumn - DataBinding.FieldName = 'S48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridViewNUMHOJAStylesGetContentStyle - Width = 42 - end - object cxGridViewSOLICITADO: TcxGridDBColumn - Caption = 'Solicitado' - DataBinding.FieldName = 'SOLICITADO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSubtotal - Width = 43 - end - object cxGridViewE38: TcxGridDBColumn - DataBinding.FieldName = 'E38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewE40: TcxGridDBColumn - DataBinding.FieldName = 'E40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewE42: TcxGridDBColumn - DataBinding.FieldName = 'E42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewE44: TcxGridDBColumn - DataBinding.FieldName = 'E44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewE46: TcxGridDBColumn - DataBinding.FieldName = 'E46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewE48: TcxGridDBColumn - DataBinding.FieldName = 'E48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewENVIADO: TcxGridDBColumn - DataBinding.FieldName = 'ENVIADO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - end - object cxGridViewER38: TcxGridDBColumn - Caption = 'E38' - DataBinding.FieldName = 'ER38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR38GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle - Width = 41 - end - object cxGridViewER40: TcxGridDBColumn - Caption = 'E40' - DataBinding.FieldName = 'ER40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR40GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle - Width = 41 - end - object cxGridViewER42: TcxGridDBColumn - Caption = 'E42' - DataBinding.FieldName = 'ER42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR42GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle - Width = 41 - end - object cxGridViewER44: TcxGridDBColumn - Caption = 'E44' - DataBinding.FieldName = 'ER44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR44GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle - Width = 41 - end - object cxGridViewER46: TcxGridDBColumn - Caption = 'E46' - DataBinding.FieldName = 'ER46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR46GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle - Width = 41 - end - object cxGridViewER48: TcxGridDBColumn - Caption = 'E48' - DataBinding.FieldName = 'ER48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR48GetDisplayText - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle - Width = 41 - end - object cxGridViewENVIADO_RECT: TcxGridDBColumn - Caption = 'Enviado' - DataBinding.FieldName = 'ENVIADO_RECT' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDataText = cxGridViewENVIADO_RECTGetDataText - Styles.Content = cxStyleSubtotal - Width = 42 - end - object cxGridViewDIFERENCIA: TcxGridDBColumn - Caption = 'Diferencia' - DataBinding.FieldName = 'DIFERENCIA' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDataText = cxGridViewDIFERENCIAGetDataText - HeaderAlignmentHorz = taRightJustify - Width = 42 - end - end - end - inherited dsDataSource: TDADataSource - Top = 120 - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageFooter.Font.Color = clBlack - PrinterPage.PageFooter.Font.Height = -12 - PrinterPage.PageFooter.Font.Name = 'Tahoma' - PrinterPage.PageFooter.Font.Style = [] - PrinterPage.PageFooter.LeftTitle.Strings = ( - 'VARELA IMAGEN Y DISE'#209'O S.L.') - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageHeader.Font.Color = clBlack - PrinterPage.PageHeader.Font.Height = -15 - PrinterPage.PageHeader.Font.Name = 'Tahoma' - PrinterPage.PageHeader.Font.Style = [] - PrinterPage.PageHeader.LeftTitle.Strings = ( - 'CONTROL DE DEVOLUCI'#211'N') - PrinterPage.PageHeader.RightTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage.ScaleMode = smFit - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 38877.461868113420000000 - ShrinkToPageWidth = True - OptionsCards.Shadow.Depth = 0 - OptionsExpanding.ExpandGroupRows = True - OptionsFormatting.SuppressBackgroundBitmaps = True - OptionsFormatting.UseNativeStyles = True - OptionsFormatting.ConsumeSelectionStyle = True - OptionsLevels.Unwrap = True - OptionsRefinements.TransparentGraphics = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.ExpandButtons = False - OptionsView.FilterBar = False - StyleRepository = cxStyleRepositoryInforme - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - OnInitializeCell = dxComponentPrinterLink1InitializeCell - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleEnviado: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleRecibido: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleSubtotal: TcxStyle - AssignedValues = [svColor] - Color = 14803425 - end - object cxStyleCantidadRectificada: TcxStyle - AssignedValues = [svTextColor] - TextColor = 2129152 - end - object cxStyle1: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsStrikeOut] - TextColor = clGray - end - object cxStyleFooter: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 395 - Top = 80 - Bitmap = {} - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 112 - Top = 48 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas deleted file mode 100644 index 09bf22b..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Cliente/uViewListaDevoluciones.pas +++ /dev/null @@ -1,608 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewListaDevoluciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid, uBizDevoluciones, dxPSGlbl, - dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, - dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, - cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, - cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, - dxPScxCommon, dxPScxGridLnk, cxMemo; - -type - TvDevolucionesVistaActiva = (tdvaPendiente, tdvaAprobado, tdvaTodos); - - IViewListaDevoluciones = interface(IViewGrid) - ['{2179BA33-B039-4CC9-A423-F50FD2C7B880}'] - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - - function GetVistaActiva : TvDevolucionesVistaActiva; - property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; - end; - - TfrViewListaDevoluciones = class(TfrViewGrid, IViewListaDevoluciones) - cxStyleEnviado: TcxStyle; - cxStyleRecibido: TcxStyle; - cxStyleSubtotal: TcxStyle; - SmallImages: TPngImageList; - cxStyleCantidadRectificada: TcxStyle; - cxStyle1: TcxStyle; - cxGridViewAPROBADO: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewFILIAL: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewNUMHOJA: TcxGridDBColumn; - cxGridViewESTADO_HOJA: TcxGridDBColumn; - cxGridViewOBSERVACIONES_HOJA: TcxGridDBColumn; - cxGridViewCONTABILIZAR_HOJA: TcxGridDBColumn; - cxGridViewS38: TcxGridDBColumn; - cxGridViewS40: TcxGridDBColumn; - cxGridViewS42: TcxGridDBColumn; - cxGridViewS44: TcxGridDBColumn; - cxGridViewS46: TcxGridDBColumn; - cxGridViewS48: TcxGridDBColumn; - cxGridViewSOLICITADO: TcxGridDBColumn; - cxGridViewE38: TcxGridDBColumn; - cxGridViewE40: TcxGridDBColumn; - cxGridViewE42: TcxGridDBColumn; - cxGridViewE44: TcxGridDBColumn; - cxGridViewE46: TcxGridDBColumn; - cxGridViewE48: TcxGridDBColumn; - cxGridViewENVIADO: TcxGridDBColumn; - cxGridViewER38: TcxGridDBColumn; - cxGridViewER40: TcxGridDBColumn; - cxGridViewER42: TcxGridDBColumn; - cxGridViewER44: TcxGridDBColumn; - cxGridViewER46: TcxGridDBColumn; - cxGridViewER48: TcxGridDBColumn; - cxGridViewENVIADO_RECT: TcxGridDBColumn; - cxGridViewDIFERENCIA: TcxGridDBColumn; - dxComponentPrinterLink1: TdxGridReportLink; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR40GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR42GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR44GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR46GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR48GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; - var ADone: Boolean); - procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); - procedure cxGridBandedViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure cxGridViewNUMHOJAGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridViewNUMHOJAStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - procedure cxGridViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridViewENVIADO_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure cxGridViewDIFERENCIAGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); - protected - FTipo : String; - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - function GetVistaActiva : TvDevolucionesVistaActiva; - public - procedure Preview; override; - procedure Print; override; - procedure PrintSetup; override; - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - property VistaActiva : TvDevolucionesVistaActiva read GetVistaActiva; - end; - - -implementation - -uses - uDataModuleDevoluciones, DateUtils, cxGridDBDataDefinitions, - uViewGridBase, cxGridRows; - -{$R *.dfm} - -procedure TfrViewListaDevoluciones.cxGridViewMouseDown( - Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, - Y: Integer); -var - HT: TcxCustomGridHitTest; - ALevelIndex, AGroupIndex, I, AIndex: Integer; - AList: TList; - DC: TcxGridDBDataController; -begin - inherited; - HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); - if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) - and not (HT is TcxGridExpandButtonHitTest) then - begin - DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; - AList := TList.Create; - ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; - if ALevelIndex > 0 then - begin - ShowHourglassCursor; - TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; - try - AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; - DC.Groups.LoadRecordIndexes(AList, AGroupIndex); - for I := 0 to AList.Count - 1 do - begin - AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); - DC.SelectRows(AIndex, AIndex); - end; - finally - FreeAndNil(AList); - TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; - HideHourglassCursor; - end; - end; - end; -end; - -procedure TfrViewListaDevoluciones.VerAprobados; -begin - FTipo := 'S'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaDevoluciones.VerPendientes; -begin - FTipo := 'N'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaDevoluciones.VerTodos; -begin - FTipo := ''; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); - cxGridViewAPROBADO.Visible := True; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE38.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR40GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE40.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR42GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE42.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR44GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE44.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR46GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE46.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR48GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewE48.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE38.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE40.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE42.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE44.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE46.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewRR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewE48.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaDevoluciones.cxGridViewCustomDrawGroupCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); -var - ARecIndex: Integer; - Val1: string; -begin - inherited; - - if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridViewFILIAL then - begin - ARecIndex := AViewInfo.GridRecord.RecordIndex; - Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridViewFILIAL.Index]; - AViewInfo.Text := 'Centro: ' + Val1; - end; -end; - - -procedure TfrViewListaDevoluciones.cxGridViewCellDblClick( - Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); -begin - inherited; - if Assigned(FOnDblClick) then - FOnDblClick(Sender); -end; - -procedure TfrViewListaDevoluciones.cxGridBandedViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Val1: string; -begin - inherited; - Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; - AText := AText + '-' + Val1; - -end; - -procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - if Length(VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index])) > 0 then - AText := AText + ' (' + VarToStr(ARecord.Values[cxGridViewESTADO_HOJA.Index]) + ')'; -end; - -procedure TfrViewListaDevoluciones.cxGridViewNUMHOJAStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - - if VarToStr(ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]) = 'N' then - AStyle := cxStyle1; -end; - -procedure TfrViewListaDevoluciones.Preview; -begin - inherited; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewListaDevoluciones.Print; -begin - inherited; - dxComponentPrinterLink1.Print(True, nil); -end; - -procedure TfrViewListaDevoluciones.PrintSetup; -begin - inherited; - dxComponentPrinterLink1.PageSetup -end; - -procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Val1, Val2: string; -begin - inherited; - - Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; - Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; - AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; -end; - -procedure TfrViewListaDevoluciones.cxGridViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) -end; - -procedure TfrViewListaDevoluciones.cxGridViewENVIADO_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Total : Double; -begin - inherited; - - Total := 0; - with Sender.GridView.DataController do - begin - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER38.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER40.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER42.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER44.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER46.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewER48.Index], 0); - end; - AText := FloatToStr(Total); -end; - -procedure TfrViewListaDevoluciones.cxGridViewDIFERENCIAGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Total : Double; -begin - inherited; - with Sender.GridView.DataController do - begin - Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewENVIADO_RECT.Index], 0); - Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewSOLICITADO.Index], 0); - end; - AText := FloatToStr(Total); -end; - -procedure TfrViewListaDevoluciones.dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); -var - aux : string; -begin - inherited; - if Assigned(ARecord) then - begin - aux := ARecord.Values[cxGridViewCONTABILIZAR_HOJA.Index]; - if aux = 'N' then - begin - AnItem.Font.Style := cxStyle1.Font.Style; - AnItem.Font.Color := cxStyle1.Font.Color; - end; - end; -end; - -procedure TfrViewListaDevoluciones.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - - if (Length(FTIPO) > 0) then - begin - FNivelFiltrado := AItemList.AddItemList(fboAnd); - FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); - end; - - if cxGridView.DataController.Filter.IsEmpty - then cxGridView.DataController.Filter.Active := False - else cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -function TfrViewListaDevoluciones.GetVistaActiva: TvDevolucionesVistaActiva; -begin - if FTipo = 'N' then - Result := tdvaPendiente - else if FTipo = 'S' then - Result := tdvaAprobado - else - Result := tdvaTodos; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas b/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas deleted file mode 100644 index ba34a6a..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Reglas/uBizDevoluciones.pas +++ /dev/null @@ -1,77 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uBizDevoluciones; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; - - -const - BIZ_DEVOLUCIONES = 'Client.Devoluciones'; - -type - TInvDevolucionEstado = (tidPendiente, tidAprobado); - - IBizDevoluciones = interface(IDAStronglyTypedDataTable) //IRecepciones) - ['{E7196FF3-EFC9-45FC-AA50-C0C79F567ECA}'] - procedure Show; - procedure SetEstado(const AValue : TInvDevolucionEstado); - function GetEstado : TInvDevolucionEstado ; - property Estado : TInvDevolucionEstado read GetEstado write SetEstado; - end; - - - TBizDevolucionesDataTableRules = class(TDADataTableRules, IBizDevoluciones) - protected - procedure SetEstado(const AValue : TInvDevolucionEstado); - function GetEstado : TInvDevolucionEstado ; - public - procedure Show; - property Estado : TInvDevolucionEstado read GetEstado write SetEstado; - end; - - -implementation - -uses - uEditorUtils, uDataModuleDevoluciones; - -{ TBizDevolucionesDataTableRules } - -function TBizDevolucionesDataTableRules.GetEstado: TInvDevolucionEstado; -begin - if DataTable.FieldByName('APROBADO').AsString = 'S' then - Result := tidAprobado - else - Result := tidPendiente -end; - -procedure TBizDevolucionesDataTableRules.SetEstado( - const AValue: TInvDevolucionEstado); -begin - case AValue of - tidPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; - tidAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; - else - DataTable.FieldByName('APROBADO').AsString := 'N'; - end; -end; - -procedure TBizDevolucionesDataTableRules.Show; -begin - ShowEditor(IBizDevoluciones, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_DEVOLUCIONES, TBizDevolucionesDataTableRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm deleted file mode 100644 index 647da8b..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.dfm +++ /dev/null @@ -1,1505 +0,0 @@ -object srvDevoluciones: TsrvDevoluciones - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schDevoluciones - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 300 - Width = 300 - object schDevoluciones: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = DADataDictionary1 - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' - SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end - item - DatasetField = 'NUMHOJA' - TableField = 'NUMHOJA' - end - item - DatasetField = 'ESTADO_HOJA' - TableField = 'ESTADO_HOJA' - end - item - DatasetField = 'OBSERVACIONES_HOJA' - TableField = 'OBSERVACIONES_HOJA' - end - item - DatasetField = 'CONTABILIZAR_HOJA' - TableField = 'CONTABILIZAR_HOJA' - end - item - DatasetField = 'S38' - TableField = 'S38' - end - item - DatasetField = 'S40' - TableField = 'S40' - end - item - DatasetField = 'S42' - TableField = 'S42' - end - item - DatasetField = 'S44' - TableField = 'S44' - end - item - DatasetField = 'S46' - TableField = 'S46' - end - item - DatasetField = 'S48' - TableField = 'S48' - end - item - DatasetField = 'SOLICITADO' - TableField = 'SOLICITADO' - end - item - DatasetField = 'ER38' - TableField = 'ER38' - end - item - DatasetField = 'ER40' - TableField = 'ER40' - end - item - DatasetField = 'ER42' - TableField = 'ER42' - end - item - DatasetField = 'ER44' - TableField = 'ER44' - end - item - DatasetField = 'ER46' - TableField = 'ER46' - end - item - DatasetField = 'ER48' - TableField = 'ER48' - end - item - DatasetField = 'ENVIADO_RECT' - TableField = 'ENVIADO_RECT' - end> - end> - Name = 'Devoluciones' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_APROBADO' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Devoluciones_FILIAL' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Devoluciones_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - DictionaryEntry = 'Devoluciones_NUMHOJA' - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - end - item - Name = 'S38' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S38' - end - item - Name = 'S40' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S40' - end - item - Name = 'S42' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S42' - end - item - Name = 'S44' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S44' - end - item - Name = 'S46' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S46' - end - item - Name = 'S48' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S48' - end - item - Name = 'SOLICITADO' - DataType = datInteger - DictionaryEntry = 'Devoluciones_SOLICITADO' - end - item - Name = 'E38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E38' - end - item - Name = 'E40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E40' - end - item - Name = 'E42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E42' - end - item - Name = 'E44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E44' - end - item - Name = 'E46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E46' - end - item - Name = 'E48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E48' - end - item - Name = 'ENVIADO' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO' - end - item - Name = 'ER38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER38' - end - item - Name = 'ER40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER40' - end - item - Name = 'ER42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER42' - end - item - Name = 'ER44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER44' - end - item - Name = 'ER46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER46' - end - item - Name = 'ER48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER48' - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - end - item - Name = 'DIFERENCIA' - DataType = datFloat - DictionaryEntry = 'Devoluciones_DIFERENCIA' - end> - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' - SQL = - 'SELECT '#10' *'#10'FROM RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROBADO' + - ' = '#39'N'#39')' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end - item - DatasetField = 'NUMHOJA' - TableField = 'NUMHOJA' - end - item - DatasetField = 'ESTADO_HOJA' - TableField = 'ESTADO_HOJA' - end - item - DatasetField = 'OBSERVACIONES_HOJA' - TableField = 'OBSERVACIONES_HOJA' - end - item - DatasetField = 'CONTABILIZAR_HOJA' - TableField = 'CONTABILIZAR_HOJA' - end - item - DatasetField = 'S38' - TableField = 'S38' - end - item - DatasetField = 'S40' - TableField = 'S40' - end - item - DatasetField = 'S42' - TableField = 'S42' - end - item - DatasetField = 'S44' - TableField = 'S44' - end - item - DatasetField = 'S46' - TableField = 'S46' - end - item - DatasetField = 'S48' - TableField = 'S48' - end - item - DatasetField = 'SOLICITADO' - TableField = 'SOLICITADO' - end - item - DatasetField = 'ER38' - TableField = 'ER38' - end - item - DatasetField = 'ER40' - TableField = 'ER40' - end - item - DatasetField = 'ER42' - TableField = 'ER42' - end - item - DatasetField = 'ER44' - TableField = 'ER44' - end - item - DatasetField = 'ER46' - TableField = 'ER46' - end - item - DatasetField = 'ER48' - TableField = 'ER48' - end - item - DatasetField = 'ENVIADO_RECT' - TableField = 'ENVIADO_RECT' - end> - end> - Name = 'DevolucionesPendientes' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_APROBADO' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Devoluciones_FILIAL' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Devoluciones_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - DictionaryEntry = 'Devoluciones_NUMHOJA' - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - end - item - Name = 'S38' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S38' - end - item - Name = 'S40' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S40' - end - item - Name = 'S42' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S42' - end - item - Name = 'S44' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S44' - end - item - Name = 'S46' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S46' - end - item - Name = 'S48' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S48' - end - item - Name = 'SOLICITADO' - DataType = datInteger - DictionaryEntry = 'Devoluciones_SOLICITADO' - end - item - Name = 'E38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E38' - end - item - Name = 'E40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E40' - end - item - Name = 'E42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E42' - end - item - Name = 'E44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E44' - end - item - Name = 'E46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E46' - end - item - Name = 'E48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E48' - end - item - Name = 'ENVIADO' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO' - end - item - Name = 'ER38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER38' - end - item - Name = 'ER40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER40' - end - item - Name = 'ER42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER42' - end - item - Name = 'ER44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER44' - end - item - Name = 'ER46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER46' - end - item - Name = 'ER48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER48' - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - end - item - Name = 'DIFERENCIA' - DataType = datFloat - DictionaryEntry = 'Devoluciones_DIFERENCIA' - end> - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' - SQL = - 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_DEVOLUCIONES'#10'WHERE (APROB' + - 'ADO = '#39'S'#39')' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'NUMHOJA' - TableField = 'NUMHOJA' - end - item - DatasetField = 'ESTADO_HOJA' - TableField = 'ESTADO_HOJA' - end - item - DatasetField = 'OBSERVACIONES_HOJA' - TableField = 'OBSERVACIONES_HOJA' - end - item - DatasetField = 'CONTABILIZAR_HOJA' - TableField = 'CONTABILIZAR_HOJA' - end - item - DatasetField = 'S38' - TableField = 'S38' - end - item - DatasetField = 'S40' - TableField = 'S40' - end - item - DatasetField = 'S42' - TableField = 'S42' - end - item - DatasetField = 'S44' - TableField = 'S44' - end - item - DatasetField = 'S46' - TableField = 'S46' - end - item - DatasetField = 'S48' - TableField = 'S48' - end - item - DatasetField = 'SOLICITADO' - TableField = 'SOLICITADO' - end - item - DatasetField = 'ER38' - TableField = 'ER38' - end - item - DatasetField = 'ER40' - TableField = 'ER40' - end - item - DatasetField = 'ER42' - TableField = 'ER42' - end - item - DatasetField = 'ER44' - TableField = 'ER44' - end - item - DatasetField = 'ER46' - TableField = 'ER46' - end - item - DatasetField = 'ER48' - TableField = 'ER48' - end - item - DatasetField = 'ENVIADO_RECT' - TableField = 'ENVIADO_RECT' - end> - end> - Name = 'DevolucionesAprobadas' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_APROBADO' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHACAMBIO' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Devoluciones_CENTRO' - InPrimaryKey = True - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Devoluciones_FILIAL' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Devoluciones_CODIGO' - InPrimaryKey = True - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Devoluciones_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Devoluciones_COLOR' - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Devoluciones_FECHA' - InPrimaryKey = True - end - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - DictionaryEntry = 'Devoluciones_NUMHOJA' - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - DictionaryEntry = 'Devoluciones_ESTADO_HOJA' - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - DictionaryEntry = 'Devoluciones_OBSERVACIONES_HOJA' - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - DictionaryEntry = 'Devoluciones_CONTABILIZAR_HOJA' - end - item - Name = 'S38' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S38' - end - item - Name = 'S40' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S40' - end - item - Name = 'S42' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S42' - end - item - Name = 'S44' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S44' - end - item - Name = 'S46' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S46' - end - item - Name = 'S48' - DataType = datInteger - DictionaryEntry = 'Devoluciones_S48' - end - item - Name = 'SOLICITADO' - DataType = datInteger - DictionaryEntry = 'Devoluciones_SOLICITADO' - end - item - Name = 'E38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E38' - end - item - Name = 'E40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E40' - end - item - Name = 'E42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E42' - end - item - Name = 'E44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E44' - end - item - Name = 'E46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E46' - end - item - Name = 'E48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_E48' - end - item - Name = 'ENVIADO' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO' - end - item - Name = 'ER38' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER38' - end - item - Name = 'ER40' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER40' - end - item - Name = 'ER42' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER42' - end - item - Name = 'ER44' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER44' - end - item - Name = 'ER46' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER46' - end - item - Name = 'ER48' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ER48' - end - item - Name = 'ENVIADO_RECT' - DataType = datFloat - DictionaryEntry = 'Devoluciones_ENVIADO_RECT' - end - item - Name = 'DIFERENCIA' - DataType = datFloat - DictionaryEntry = 'Devoluciones_DIFERENCIA' - end> - end - item - Params = < - item - Name = 'FECHA' - DataType = datDateTime - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' - SQL = - 'SELECT '#10' ENVIADO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL' + - '_DEVOLUCIONES'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = ' + - ':CENTRO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'ENVIADO_RECT' - TableField = 'ENVIADO_RECT' - end> - end> - Name = 'RefreshDevoluciones' - Fields = < - item - Name = 'ENVIADO_RECT' - DataType = datFloat - end - item - Name = 'DIFERENCIA' - DataType = datFloat - end> - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'NUMHOJA' - DataType = datString - Size = 8 - Value = '' - ParamType = daptInput - end - item - Name = 'ESTADO_HOJA' - DataType = datString - Size = 20 - Value = '' - ParamType = daptInput - end - item - Name = 'OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - Value = '' - ParamType = daptInput - end - item - Name = 'CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'ER38' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'ER40' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'ER42' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'ER44' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'ER46' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'ER48' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA' - DataType = datDateTime - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_DEVOLUCIONES' - SQL = - 'begin'#10#9'declare @rowcount_var int'#10#10' declare @NUMHOJA char(8)'#10' ' + - ' declare @ESTADO_HOJA varchar(20)'#10' declare @OBSERVACIONES_H' + - 'OJA varchar(255)'#10' declare @CONTABILIZAR_HOJA char(1)'#10#10' dec' + - 'lare @ER38 numeric(15,0)'#10' declare @ER40 numeric(15,0)'#10' dec' + - 'lare @ER42 numeric(15,0)'#10' declare @ER44 numeric(15,0)'#10' dec' + - 'lare @ER46 numeric(15,0)'#10' declare @ER48 numeric(15,0)'#10#10' de' + - 'clare @APROBADO char(1)'#10' declare @FECHA datetime'#10' declare ' + - '@CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' declare ' + - '@COLOR varchar(10)'#10#10' set @NUMHOJA = :NUMHOJA'#10' set @ESTADO_' + - 'HOJA = :ESTADO_HOJA'#10' set @OBSERVACIONES_HOJA = :OBSERVACIONES' + - '_HOJA'#10' set @CONTABILIZAR_HOJA = :CONTABILIZAR_HOJA'#10#10' set @' + - 'ER38 = :ER38'#10' set @ER40 = :ER40'#10' set @ER42 = :ER42'#10' set' + - ' @ER44 = :ER44'#10' set @ER46 = :ER46'#10' set @ER48 = :ER48'#10#10' ' + - 'set @APROBADO = :APROBADO'#10' set @FECHA = :FECHA'#10' set @CENTR' + - 'O = :CENTRO'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10#10' ' + - ' /* *********************************** */'#10' if @NUMHOJA <> ' + - #39#39#10' begin'#10#9' update RDX_AJUSTES_HOJA_DEVOLUCIONES set'#10#9' ' + - ' ESTADO = @ESTADO_HOJA,'#10#9#9' OBSERVACIONES = @OBSERVA' + - 'CIONES_HOJA,'#10#9#9' CONTABILIZAR = @CONTABILIZAR_HOJA'#10#9' wh' + - 'ere RDX_AJUSTES_HOJA_DEVOLUCIONES.NUMHOJA = @NUMHOJA'#10#10#9#9' select ' + - '@ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9' if @ROWCOUNT_VAR = 0'#10#9#9' begin'#10 + - #9' insert into RDX_AJUSTES_HOJA_DEVOLUCIONES'#10#9' ' + - ' (NUMHOJA, ESTADO, OBSERVACIONES, CONTABILIZAR)'#10#9#9' va' + - 'lues (@NUMHOJA, @ESTADO_HOJA,'#10#9' @OBSERVACIONES_' + - 'HOJA, @CONTABILIZAR_HOJA)'#10#9' end'#10' end'#10#10#10' /* ***********' + - '************************ */'#10#9'update RDX_DEVOLUCION_AJUSTES set'#10#9 + - ' CANT38 = @ER38,'#10#9' CANT40 = @ER40,'#10#9' ' + - ' CANT42 = @ER42,'#10#9' CANT44 = @ER44,'#10#9' CANT4' + - '6 = @ER46,'#10#9' CANT48 = @ER48,'#10' APROBADO =' + - ' @APROBADO,'#10' FECHACAMBIO = CURRENT_TIMESTAMP'#10#9'wher' + - 'e'#10' (RDX_DEVOLUCION_AJUSTES.CENTRO = @CENTRO and'#10#9' ' + - ' RDX_DEVOLUCION_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_DEVOLU' + - 'CION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_DEVOLUCION_AJUSTES.FE' + - 'CHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT' + - '_VAR = 0'#10' begin'#10' insert into RDX_DEVOLUCION_AJUSTES'#10' ' + - ' (FECHA, CENTRO, CODIGO, COLOR,'#10' A' + - 'PROBADO, FECHACAMBIO,'#10' CANT38, CANT40, CANT42,'#10' ' + - ' CANT44, CANT46, CANT48)'#10' values ('#10' ' + - ' @FECHA, @CENTRO, @CODIGO,'#10' @COLOR, @A' + - 'PROBADO, CURRENT_TIMESTAMP,'#10' @ER38, @ER40, @ER42' + - ','#10' @ER44, @ER46, @ER48)'#10' end'#10'end' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_Estado_Devoluciones' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 48 - Top = 32 - end - object bpDevoluciones: TDABusinessProcessor - Schema = schDevoluciones - UpdateCommandName = 'Update_Estado_Devoluciones' - RefreshDatasetName = 'RefreshDevoluciones' - ReferencedDataset = 'Devoluciones' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 32 - end - object bpDevolucionesAprobadas: TDABusinessProcessor - Schema = schDevoluciones - UpdateCommandName = 'Update_Estado_Devoluciones' - RefreshDatasetName = 'RefreshDevoluciones' - ReferencedDataset = 'DevolucionesAprobadas' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 88 - end - object bpDevolucionesPendientes: TDABusinessProcessor - Schema = schDevoluciones - UpdateCommandName = 'Update_Estado_Devoluciones' - RefreshDatasetName = 'RefreshDevoluciones' - ReferencedDataset = 'DevolucionesPendientes' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 152 - end - object DADataDictionary1: TDADataDictionary - Fields = < - item - Name = 'Devoluciones_APROBADO' - DataType = datString - Size = 1 - DisplayLabel = 'APROBADO' - end - item - Name = 'Devoluciones_FECHACAMBIO' - DataType = datDateTime - DisplayLabel = 'FECHACAMBIO' - end - item - Name = 'Devoluciones_CENTRO' - DataType = datString - Size = 17 - DisplayLabel = 'CENTRO' - ReadOnly = True - end - item - Name = 'Devoluciones_FILIAL' - DataType = datString - Size = 25 - DisplayLabel = 'FILIAL' - ReadOnly = True - end - item - Name = 'Devoluciones_CODIGO' - DataType = datString - Size = 12 - DisplayLabel = 'CODIGO' - ReadOnly = True - end - item - Name = 'Devoluciones_PRODUCTO' - DataType = datString - Size = 40 - DisplayLabel = 'PRODUCTO' - ReadOnly = True - end - item - Name = 'Devoluciones_COLOR' - DataType = datString - Size = 10 - DisplayLabel = 'COLOR' - ReadOnly = True - end - item - Name = 'Devoluciones_FECHA' - DataType = datDateTime - DisplayLabel = 'FECHA' - ReadOnly = True - end - item - Name = 'Devoluciones_NUMHOJA' - DataType = datString - Size = 8 - DisplayLabel = 'NUMHOJA' - end - item - Name = 'Devoluciones_ESTADO_HOJA' - DataType = datString - Size = 20 - DisplayLabel = 'ESTADO_HOJA' - end - item - Name = 'Devoluciones_OBSERVACIONES_HOJA' - DataType = datString - Size = 255 - DisplayLabel = 'OBSERVACIONES_HOJA' - end - item - Name = 'Devoluciones_CONTABILIZAR_HOJA' - DataType = datString - Size = 1 - DisplayLabel = 'CONTABILIZAR_HOJA' - end - item - Name = 'Devoluciones_S38' - DataType = datInteger - DisplayLabel = 'S38' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_S40' - DataType = datInteger - DisplayLabel = 'S40' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_S42' - DataType = datInteger - DisplayLabel = 'S42' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_S44' - DataType = datInteger - DisplayLabel = 'S44' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_S46' - DataType = datInteger - DisplayLabel = 'S46' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_S48' - DataType = datInteger - DisplayLabel = 'S48' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_SOLICITADO' - DataType = datInteger - DisplayLabel = 'SOLICITADO' - ReadOnly = True - Alignment = taRightJustify - ServerAutoRefresh = True - end - item - Name = 'Devoluciones_E38' - DataType = datFloat - DisplayLabel = 'E38' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_E40' - DataType = datFloat - DisplayLabel = 'E40' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_E42' - DataType = datFloat - DisplayLabel = 'E42' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_E44' - DataType = datFloat - DisplayLabel = 'E44' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_E46' - DataType = datFloat - DisplayLabel = 'E46' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_E48' - DataType = datFloat - DisplayLabel = 'E48' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ENVIADO' - DataType = datFloat - DisplayLabel = 'ENVIADO' - ReadOnly = True - Alignment = taRightJustify - ServerAutoRefresh = True - end - item - Name = 'Devoluciones_ER38' - DataType = datFloat - DisplayLabel = 'ER38' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ER40' - DataType = datFloat - DisplayLabel = 'ER40' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ER42' - DataType = datFloat - DisplayLabel = 'ER42' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ER44' - DataType = datFloat - DisplayLabel = 'ER44' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ER46' - DataType = datFloat - DisplayLabel = 'ER46' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ER48' - DataType = datFloat - DisplayLabel = 'ER48' - Alignment = taRightJustify - end - item - Name = 'Devoluciones_ENVIADO_RECT' - DataType = datFloat - DisplayLabel = 'ENVIADO_RECT' - Alignment = taRightJustify - ServerAutoRefresh = True - end - item - Name = 'Devoluciones_DIFERENCIA' - DataType = datFloat - DisplayLabel = 'DIFERENCIA' - Alignment = taRightJustify - ServerAutoRefresh = True - end> - Left = 48 - Top = 120 - end - object DABINAdapter: TDABINAdapter - Left = 48 - Top = 184 - end -end diff --git a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas b/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas deleted file mode 100644 index e52bb6e..0000000 --- a/Varela/Varela/Source/Modulos/Devoluciones/Servidor/srvDevoluciones_Impl.pas +++ /dev/null @@ -1,51 +0,0 @@ -unit srvDevoluciones_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, - uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvDevoluciones } - TsrvDevoluciones = class(TDARemoteService, IsrvDevoluciones) - bpDevoluciones: TDABusinessProcessor; - bpDevolucionesAprobadas: TDABusinessProcessor; - bpDevolucionesPendientes: TDABusinessProcessor; - DABINAdapter: TDABINAdapter; - schDevoluciones: TDASchema; - DADataDictionary1: TDADataDictionary; - private - protected - { IsrvDevoluciones methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer; - -procedure Create_srvDevoluciones(out anInstance : IUnknown); -begin - anInstance := TsrvDevoluciones.Create(NIL); -end; - -{ srvDevoluciones } -initialization - TROClassFactory.Create('srvDevoluciones', Create_srvDevoluciones, TsrvDevoluciones_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj deleted file mode 100644 index 3469638..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - FicherosEDI.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg deleted file mode 100644 index 396e927..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof deleted file mode 100644 index c912ddd..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dof +++ /dev/null @@ -1,474 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\..\..\Lib -Item1=..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlBPLOutput] -Count=2 -Item0=..\..\..\..\Output\Cliente -Item1=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\..\..\Lib -Item1=..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk deleted file mode 100644 index 7b45b1e..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk +++ /dev/null @@ -1,74 +0,0 @@ -package FicherosEDI; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - vcl, - rtl, - PluginSDK_D10R, - GUISDK_D10, - PNG_D10, - PngComponentsD10, - BaseD10, - JvWizardD10R, - dbrtl, - vclx, - dsnap, - adortl, - cxLibraryD10, - dxThemeD10, - cxEditorsD10, - cxDataD10, - vcljpg, - vcldb, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - cxExportD10, - dxPSCoreD10, - dxComnD10, - vclactnband, - tb2k_D10, - tbx_D10, - JvCoreD10R, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R; - -contains - uPluginControllerFicherosEDI in 'uPluginControllerFicherosEDI.pas' {ModuleFicherosEDI: TModuleController}, - uAsistenteCargaFicheros in 'uAsistenteCargaFicheros.pas' {fAsistenteCargaFicheros}, - uSubirFicheros in 'uSubirFicheros.pas', - uCargarFicheros in 'uCargarFicheros.pas', - uEditorHistorialCargasEDI in 'uEditorHistorialCargasEDI.pas' {fEditorHistorialCargasEDI: TCustomEditor}, - uViewHistorialCargasEDI in 'uViewHistorialCargasEDI.pas' {frViewHistorialCargasEDI: TCustomView}, - uDataModuleFicherosEDI in 'uDataModuleFicherosEDI.pas' {dmFicherosEDI: TDAClientDataModule}, - schEDILogClient_Intf in '..\Reglas\schEDILogClient_Intf.pas', - uBizEDILog in '..\Reglas\uBizEDILog.pas', - schEDILogServer_Intf in '..\Reglas\schEDILogServer_Intf.pas'; - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.identcache deleted file mode 100644 index 41c8bfd3281985188a26730d4a3619ceb8bd58eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1531 zcmd7S!AiqG5C-6Q^(pcMK7coyR4iC1hW4}|V=|^A>rR>3Rq*6R4}v22!fsQOLn!pt zbq{+Q*pGkM|1`_8?~~%(lw5~LbY63CO-+K^|tB8@kJEkIh>PMmE(BWgJB zNpu}YdidD%lf<;Jp(R(a^TO8RpxYDLXA)ou9=e@lAKV_=TM}9o?q~>Xyw2BSl5ViI zpe9V{C8l%D?O5}XK%@0~huMA4+nMwCW7pR)T|-T*2%is^MAFPElqZybl-Y&GR^7I2 L*JAx&9PjfN!Xp}# diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm deleted file mode 100644 index f8be239..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.dfm +++ /dev/null @@ -1,2769 +0,0 @@ -object fAsistenteCargaFicheros: TfAsistenteCargaFicheros - Left = 494 - Top = 309 - ActiveControl = JvWizardWelcomePage1 - BorderStyle = bsDialog - Caption = 'Asistente para la carga de ficheros EDI' - ClientHeight = 399 - ClientWidth = 608 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - PixelsPerInch = 96 - TextHeight = 13 - object JvWizard1: TJvWizard - Left = 0 - Top = 0 - Width = 608 - Height = 399 - ActivePage = JvWizardWelcomePage1 - ButtonBarHeight = 42 - ButtonStart.Caption = 'To &Start Page' - ButtonStart.NumGlyphs = 1 - ButtonStart.Width = 85 - ButtonLast.Caption = 'To &Last Page' - ButtonLast.NumGlyphs = 1 - ButtonLast.Width = 85 - ButtonBack.Caption = '< &Atr'#225's' - ButtonBack.NumGlyphs = 1 - ButtonBack.Width = 75 - ButtonNext.Caption = '&Siguiente >' - ButtonNext.NumGlyphs = 1 - ButtonNext.Width = 75 - ButtonFinish.Caption = '&Finalizar' - ButtonFinish.NumGlyphs = 1 - ButtonFinish.Width = 75 - ButtonCancel.Caption = 'Cancelar' - ButtonCancel.NumGlyphs = 1 - ButtonCancel.ModalResult = 2 - ButtonCancel.Width = 75 - ButtonHelp.Caption = '&Ayuda' - ButtonHelp.NumGlyphs = 1 - ButtonHelp.Width = 75 - ShowRouteMap = False - OnFinishButtonClick = JvWizard1FinishButtonClick - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - DesignSize = ( - 608 - 399) - object JvWizardWelcomePage1: TJvWizardWelcomePage - Header.Height = 80 - Header.Title.Color = clNone - Header.Title.Text = 'Carga de datos de ficheros EDI' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -19 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = 'Bienvenido al asistente de carga de ficheros de datos EDI.' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -13 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - Header.ShowDivider = False - WaterMark.Image.Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 - 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 - ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 - 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF - C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE - FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 - B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD - 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 - FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 - B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 - 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 - FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 - BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 - 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 - D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 - A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 - 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 - EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 - 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 - 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 - F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB - B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB - 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD - FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 - D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 - 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF - B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C - 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF - 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E - 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 - 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F - 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 - DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 - A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 - D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 - F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 - CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 - E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 - 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F - EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 - F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 - B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 - 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 - 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B - 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 - 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 - 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B - 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 - 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 - 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 - 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 - 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB - 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 - 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C - B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F - C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 - 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E - B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 - 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 - 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A - E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA - DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B - 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 - 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD - A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 - CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B - FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A - EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 - 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C - 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 - EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F - B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 - 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB - E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 - C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D - 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 - 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 - E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED - 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 - 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A - 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 - 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 - B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 - 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC - 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 - 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 - 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 - 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF - C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A - A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 - 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E - 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD - 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C - 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 - 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 - 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA - C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 - 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 - BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A - E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 - F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED - 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE - 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 - 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F - 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC - 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 - 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 - E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A - 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 - 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 - 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C - 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 - 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF - D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 - 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 - 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 - AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE - 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 - 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 - 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 - 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB - 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 - 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F - CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E - 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 - 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA - A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 - 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A - 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 - DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 - 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 - 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 - D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F - D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 - 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 - BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 - F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 - EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 - 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 - 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED - 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 - 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A - 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 - FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 - 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 - E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 - 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 - 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F - 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 - B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B - D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B - B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 - 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB - 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA - 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 - FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F - 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 - 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 - A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC - 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD - 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 - E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 - D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 - A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 - DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED - 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 - 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 - 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF - F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B - 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 - 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B - BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 - 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B - 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 - 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 - 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 - AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 - 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 - E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 - 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC - D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B - 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 - 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C - E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 - DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F - DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF - 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 - D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 - 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF - 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 - 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 - 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 - D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 - 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA - 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 - 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 - E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D - DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 - ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A - 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 - 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C - C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 - 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E - 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 - F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C - F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 - 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C - AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB - E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 - 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 - 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA - E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E - 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 - BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 - 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D - 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 - 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F - 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC - 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 - F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 - 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 - 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C - 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 - BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F - 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 - B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD - 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF - FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 - 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 - C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A - 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 - 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 - 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 - 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 - 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 - 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 - 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C - 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE - 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC - 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC - E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 - 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 - 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 - 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F - 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C - 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 - 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 - 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 - 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 - 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E - 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A - 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE - DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 - 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 - 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 - 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E - 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 - 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 - DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 - 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 - 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC - D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 - 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 - BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C - F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 - E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 - 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 - 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 - DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 - C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 - 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 - 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 - E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 - A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 - CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD - 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C - 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 - 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 - D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB - 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 - 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 - 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 - A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 - 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 - C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 - A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 - E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E - 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 - 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 - 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 - 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 - C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 - 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 - 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E - 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 - 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 - E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 - C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 - 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E - D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 - 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D - 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C - BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 - F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 - 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 - E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 - 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 - 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C - 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 - 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 - CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 - 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E - 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 - D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD - 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 - B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A - 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C - C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 - ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F - 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C - E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 - 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD - 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 - 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 - 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C - A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 - A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB - DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 - 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 - D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 - 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 - 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F - E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 - 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF - 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E - 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 - 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 - 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 - A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A - B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F - 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 - BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 - F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 - E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 - 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC - DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 - F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 - 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 - A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D - 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 - 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D - 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 - EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 - EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 - 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D - A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 - D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 - C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 - C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 - A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 - 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 - 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C - A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 - 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 - 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB - CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D - 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 - B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E - 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 - 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 - 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B - A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 - C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 - 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 - A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 - 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 - 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A - 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 - 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 - F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 - BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B - F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD - 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 - 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 - CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 - 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC - BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE - AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 - 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF - 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 - 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 - 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 - 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 - A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 - 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 - A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 - DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 - 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D - 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 - 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 - D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 - 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 - 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 - BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 - 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 - 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A - 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF - 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 - 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 - B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D - 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 - ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 - 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F - 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 - 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C - 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 - 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 - ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 - 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F - 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD - 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 - 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 - 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 - 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 - 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 - 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D - D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 - D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 - 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB - 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 - B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 - 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 - 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F - 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 - B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB - 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 - C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 - 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 - F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 - 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 - 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 - 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 - 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF - 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 - 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A - 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 - 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 - 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 - 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE - BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF - 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 - A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB - 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 - F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 - 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C - 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 - F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A - 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 - 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 - 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 - 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 - 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 - 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 - BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 - EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 - C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC - 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 - C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 - 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B - 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 - BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 - 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 - 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 - CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 - A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D - F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 - 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD - 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 - 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E - 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 - 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC - AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB - 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 - 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D - 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D - 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 - 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C - FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 - 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 - BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 - B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF - 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 - 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 - 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 - B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 - FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A - 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 - FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 - 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC - 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A - B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 - 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 - 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F - DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED - 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 - 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B - 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 - 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA - 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 - 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 - 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 - 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 - 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 - A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 - FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 - E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 - 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 - 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC - DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C - 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D - 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 - DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 - F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 - B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 - 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 - 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F - 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 - 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A - CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B - 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF - 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB - 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D - F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 - 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 - 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 - AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 - 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF - 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 - A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 - B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B - 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 - 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 - 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA - 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 - 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 - 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C - BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 - BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC - E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD - 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 - 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC - 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 - 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 - 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 - 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 - 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C - 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 - C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F - 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 - 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB - FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F - 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 - 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 - FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 - 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 - 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 - F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C - DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 - E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 - 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC - 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF - 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 - 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 - 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 - 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 - 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 - F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 - 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E - 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 - B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C - 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 - 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 - F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 - A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 - A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 - 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA - EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 - 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F - A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 - 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 - C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 - 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB - 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 - 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF - FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC - 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A - 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 - DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 - 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD - 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 - 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 - A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 - 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 - F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B - 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF - CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 - 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA - DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 - 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A - 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC - 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 - 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 - 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 - 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A - C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 - 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F - 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 - 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A - 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB - BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 - B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB - 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC - 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 - 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 - 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 - 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 - EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF - 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 - B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 - 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 - A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 - 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F - D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C - 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 - 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B - 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 - A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 - 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 - 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF - 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 - 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 - C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B - 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 - A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 - 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 - AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 - 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB - 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 - ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 - 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 - D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 - 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C - A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB - C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 - 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 - 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 - E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 - 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F - FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 - A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 - 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C - 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE - F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F - 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A - F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 - 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB - EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 - A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 - 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 - 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 - 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A - 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F - 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 - AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 - 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 - 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 - 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 - D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 - BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 - 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF - A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 - 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A - 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA - E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 - 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 - 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 - 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 - D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B - 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD - B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 - E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 - F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 - D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 - 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 - 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F - 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F - 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 - 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F - E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 - FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C - 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 - 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 - 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE - B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 - 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 - ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 - A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF - 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B - 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 - 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 - 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 - 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 - AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C - 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC - 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB - 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A - 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 - F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 - 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B - A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 - 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB - A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 - 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 - 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 - 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 - A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 - E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF - FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 - 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 - 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C - C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 - 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 - 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD - 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D - 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C - B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 - 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC - 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E - 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 - 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 - 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 - E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 - D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 - AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF - D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 - E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 - EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 - 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 - 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 - 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 - 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 - CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 - 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA - 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 - 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E - C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E - E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 - 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 - 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 - 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 - D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C - D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D - 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC - 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 - E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 - D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 - C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 - 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C - 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 - 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E - 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 - BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 - A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B - 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A - 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 - 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C - EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E - BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 - E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 - D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 - 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 - CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 - 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE - 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A - 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 - 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 - 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E - 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 - D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 - DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 - B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 - D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D - 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 - FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D - 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 - 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B - 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 - E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 - B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 - 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 - E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F - DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 - E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 - 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 - BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F - 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE - 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 - 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E - 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 - 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 - 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B - 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 - 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 - F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 - 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 - 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 - 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A - 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B - D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 - 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA - 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 - A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 - D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A - 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 - 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 - B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 - 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 - A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 - AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D - 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC - 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F - EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE - 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA - 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 - ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A - BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 - 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 - 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE - DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 - 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 - 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B - 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 - 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD - 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E - 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 - 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 - 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F - 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 - 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 - D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 - 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 - 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC - EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 - 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 - DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 - 056401991B159005646E54401690B951015940E646056401991B159005646E54 - 401690B951015940E646056401991B159005646E54401690B951015940E64605 - 6401991B159005646E54401690B951015940E646056401991B159005646E5440 - 1690B951015940E646056401991B159005646E54401690B951015940E6460564 - 01991B159005646E54401690B951015940E646056401991B159005646E544016 - 90B951015940E646056401991B159005646E54401690B951015940E646056401 - 991B159005646E54401690B951015940E646056401991B159005646E54401690 - B951015940E646056401991B159005646E54401690B951015940E64605640199 - 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 - 51015940E646056401991B159005646E54401690B951015940E646056401991B - 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 - AE426082} - WaterMark.Image.Layout = ilTile - object Label1: TLabel - Left = 168 - Top = 344 - Width = 186 - Height = 13 - Caption = 'Haga click en Siguiente para continuar.' - end - object Label3: TLabel - Left = 168 - Top = 72 - Width = 364 - Height = 32 - Caption = - 'Este asistente le ayudar'#225' a cargar datos de ventas e inventario ' + - #13#10'desde ficheros EDI.' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - end - end - object pageRutas: TJvWizardInteriorPage - Header.Title.Color = clNone - Header.Title.Text = 'Opciones de carga' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -16 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = - 'Indique cu'#225'les son los datos que desea cargar y el nombre y la r' + - 'uta de los ficheros EDI.' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.AnchorPlacement = 8 - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -11 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - EnabledButtons = [bkStart, bkLast, bkBack, bkFinish, bkCancel, bkHelp] - object cxGroupBox1: TcxGroupBox - Left = 15 - Top = 84 - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 - Height = 121 - Width = 585 - object Label5: TLabel - Left = 28 - Top = 84 - Width = 103 - Height = 13 - Caption = 'Fichero ARTVEN.TXT:' - end - object Label4: TLabel - Left = 29 - Top = 57 - Width = 102 - Height = 13 - Caption = 'Fichero LUGVEN.TXT:' - end - object Label2: TLabel - Left = 28 - Top = 31 - Width = 103 - Height = 13 - Caption = 'Fichero CABVEN.TXT:' - end - object edtARTVEN: TJvFilenameEdit - Left = 140 - Top = 80 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - DirectInput = False - TabOrder = 2 - OnChange = edtARTVENChange - end - object edtLUGVEN: TJvFilenameEdit - Left = 140 - Top = 53 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - DirectInput = False - TabOrder = 1 - OnChange = edtLUGVENChange - end - object edtCABVEN: TJvFilenameEdit - Left = 140 - Top = 27 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - DirectInput = False - TabOrder = 0 - OnChange = edtCABVENChange - end - end - object cbVentas: TCheckBox - Left = 28 - Top = 82 - Width = 229 - Height = 17 - Caption = 'Cargar ficheros de datos relativos a ventas' - Checked = True - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - State = cbChecked - TabOrder = 0 - OnClick = cbVentasClick - end - object cxGroupBox2: TcxGroupBox - Left = 15 - Top = 219 - 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 - Height = 121 - Width = 585 - object Label8: TLabel - Left = 28 - Top = 84 - Width = 103 - Height = 13 - Caption = 'Fichero ARTVEN.TXT:' - Visible = False - end - object Label9: TLabel - Left = 29 - Top = 57 - Width = 102 - Height = 13 - Caption = 'Fichero LUGVEN.TXT:' - Visible = False - end - object Label10: TLabel - Left = 28 - Top = 31 - Width = 103 - Height = 13 - Caption = 'Fichero CABVEN.TXT:' - Visible = False - end - object JvFilenameEdit1: TJvFilenameEdit - Left = 140 - Top = 80 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - TabOrder = 2 - Visible = False - end - object JvFilenameEdit2: TJvFilenameEdit - Left = 140 - Top = 53 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - TabOrder = 1 - Visible = False - end - object JvFilenameEdit3: TJvFilenameEdit - Left = 140 - Top = 27 - Width = 420 - Height = 21 - AddQuotes = False - Filter = 'Ficheros de texto (*.TXT)|*.TXT' - DialogTitle = 'Buscar fichero de datos' - TabOrder = 0 - Visible = False - end - end - object cbInventario: TCheckBox - Left = 28 - Top = 218 - Width = 243 - Height = 17 - Caption = 'Cargar ficheros de datos relativos a inventario' - Enabled = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 2 - end - end - object pagFinal: TJvWizardWelcomePage - Header.Height = 80 - Header.Title.Color = clNone - Header.Title.Text = 'Fin del asistente de carga de ficheros' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -19 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = - 'A continuaci'#243'n, el asistente copiar'#225' los ficheros en el servidor' + - ' y realizar'#225' la carga de los datos.' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -13 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - Header.ShowDivider = False - EnabledButtons = [bkStart, bkLast, bkBack, bkNext, bkCancel, bkHelp] - VisibleButtons = [bkBack, bkFinish, bkCancel] - OnEnterPage = pagFinalEnterPage - OnPage = pagFinalPage - WaterMark.Image.Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000000A400 - 0002740803000000ABCA78750000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C00000300504C5445D9E6FB7AA9F36DD1FF204AE7F5E696EAF1FEB0CBF782A8 - ED2253E9F2F6FF619AF344B9FEF5F9FF306AEDACEFFF4186F02C68EC4183F128 - 5AEB5A9BF47897CF8888AC9293CAB2CDF883ADF3DDE8FC173BE3377BEE3B81EF - C4D9F9ABC9F78FAED9F0CC55D2E1FA84B1F5E5EEFD2459EA5995F295B9F5CDDE - FAEAB017E6E6E67CA3EB3838433379EE7677AF6B6CC8C9DBF9C1D7F93B79F033 - B3FF61A0F6FBFDFF9CBDF6CACAD8EDF3FE90B6F5A1C0F797E5FF1538E2DADADD - 8DB4F5679DF2BCD2F999BCF692B5E6A8C7F7224FE755C3FFB9D1F9F9FBFFEFF5 - FF1C43E6BDD5F96CA0F283DBFF73A5F3A48E6189B1F5A1A2CB4789F1D6E5FB89 - B0EE3873EEA4C2F73371F04488F11B40E674A8F4E3EDFD1C47E74C8CF1A6C4F7 - 3373EF6FA1F3CBDDFABABAD4E1EBFD306EED4B538D5190F1336FEE92B8F5D4E3 - FB6995E2285EEA5491F29EC0F75B8AD74F8EF11430DE3E7CF0183EE567A5F6A0 - BDF2488CF298BAF62B64EB2C64ED5052B32C5EEBB3B3CC739CE04C90F389B4F5 - 2C6FEB508BE72458E73074ED1C4CE8C3FBFF245EED4E68B02863EA89B0F2A7A7 - D13775F05479C81434E0F1F1F12860ED76A6F32F64EC5494F2CFB2627CAFF570 - A4F35396F51E51E9E7F1FDD4D4E11843E69191A067A1F54F91F48567384B8AF1 - 5598F5CFE1FA5792F068A0F36663968DB2F28DB4F270A5F5E0EBFB2B61EC2864 - EEA4A4B94685F166A5E480A1D474A6F5E7EFFD6BA5F53C4788CCCCE2B8D1F750 - 94F5A7C8DA94A0B9CFDFFA1DA6FEB5D0F94B8EF4FDF9C3AEA6851B3EE35E96F1 - 5094F36BA2F42F6CEF2555E92F71EC96BCF594B7F22E74EBF9F9F992B8F26BA8 - F68CB2F5E2EDFB173DE3B5D0F7AEC9F7FFFFFF1D45E5C1C1D08183C1265BE8AB - B0D68CB8F52D6BEF488CF5478AF56DA4F45391F5BF870D72A2F386B7F0E2E2EB - 9ABAF6877C86265FE8D3E5FB1836E11D45E7356FED153DE44A8AF33475EDFDFD - FFFDFFFFFFFDFFD7E5FDB6CFF9FDFDFD6DA2F55DB4F26FC0F69AD7EF9ED5FDA6 - D7EBD7E9FBE5EDFBBFC3E0A2C4EBC2DFEFEDEDEE2F6FF1C7CFD7089CFF2553E7 - 6E9EF0B6CFF7585D9F570A585C000068FF4944415478DA9C9D0B5C8EF7FFFFDF - B7269548B753C826CDD9DA8C3692685F91219643D3886DAD259A464E992C879C - 8A2CAAA51921DF9C45DF21DF8528135F5B73D85862738859091559FABFDEEFCF - 75DDDDD9BE8FDFEFF7BFEEBAEFEBBAAFEBFE5CCFCFEB7DF87CAEB3E113C71B8E - 44FBD2633AE574226A1A1EA35EC47F739B12FD414DFF200C3F77FA99FAF1C8F0 - 98707AC3A9C889F0671ACCC79F1B8A4E13EDFFB9538E5B29263685FDD162B81F - 8DA01B8E37CC1762045A9DD649D6B4FDB49F94276F6F13AD347C22F349418211 - DFFF01368529C31F4209488D91C2F1F1C6E93704B3C829DDEFBF81F217454E45 - A7B9D6FB73DCE22632646EBF9E9F8ED8378295B9510792E2F69EA59C7E58D1A2 - D32202FFD689218921F78DD857B497CE3224002014C528C0F0983F96CE6DAA69 - F973A7162882611912752D2272D24028DD4F4AFC5B462E8E4C907FB4E8F92951 - CFBA8C2410E3F78DA037BFC34CA2914EFAEFCD955C7D96EE62E1A5A49BFBF7E6 - E10A97344C40925012AA7AAB3557D6F4D2719FA764F6748AA14EC305F2E59B49 - 37E6B6E839D289CDFD1C249BFBEC3E235CEA653B40F29752F6D45FEA9161054F - EE2BA2F994D3A9E91F4DC5966A50720275AEE695CA2701F9B37F6BD8DBAFC8E9 - F9D7F3902C241C63FE7038132B59EF6B81A4B07D90D2DC2D1D95503958DF77F4 - B33FB57E8314E6E94DED693243627ED1DEB44E775948470A8B637FA1B070C730 - 50C685B1AE70CBA6B99D48ECAD0C1EB3DDE9EF193552252F7FE9EA9FC63E79B7 - 2994FC85ECFFC84B81378FE0656A2979859A9250E267624A65219A422B130D2B - 6E9C1DB10F90EC92B41948716102E67823268E4B51C62786FC594AE8F473A7E1 - 74AB3547B86E122E4EBD914E5AEB09A7616EEA440249BF2C993BFCBBE16F3829 - 48938E37D827E3D89A30E47770CA915CB2FCC75E6DCF4A72DC38B97231143E7B - 2B342CB58F9B680F56A84990935494FFA11B9C9351B8C4B7B208918952E959C7 - 59E934E7092EBD148CB42426B7DF224D4913A6A372B9BD6C6E5E45CF347F13A5 - 0609A18B4EDF3AFBE67E40B28E13ED4B3785952E99B709F60853D14E123D0C39 - 34532099F2D648D21C87CCB5D41353D1699501C686EB4A2E222819935B3D63A4 - 9306694EB94FF9249CF2682B7FAA0BD997D8DA34F62763278E9A799B26EA2FFB - 38A2894B80AD32A699923DD388DDE656DAF6E7031A7C62F322D337A7C50E2648 - 49949C60469839651D250139404929432C5D8C37ACD807CA22629F6C0A47749C - B8C471E226C2DF8D79B409A6DF2441246BFA439C52D99BA4B263FF426912571F - C6920E594A2F0B6449CA1BE4A4412A29C52711172F8867499A23AD64A70B8957 - 4718FA8EE0E01E4B3F19DD2024EA242AD22621855F120248F925522527081E8E - B6220DF3BFC0D552EE4D1346BABBD49195A4CFFDFAFDBC5D77CA1B245A2A6B17 - 6D8A8D96A4C749C82465ECE4133FB2929281D8DC80D400D5075A08D614490959 - 53ECBD2C93742979F82F42D61D4ECF18F0B366EEC93368C9DCBCCEDB9F33B74A - E64570396644784BF10AB362E608AA03D9DD5B83D4FF58D6258E5296266509DA - DD7D2334C65A4833FB3E378CDD3E9685DCD767E93C8A4DA4AE6FFA96E890266B - 93A6E42F39685FD3FD4A4608E5765DC9744E411C379DF6B1B985512454EF6C74 - 1583C2080DFBBD193182F675D6A4FC1B25FF823B966EB7EA04484E4174D3EBCD - A75E9DB793290999302557BFE91A89824B688472CABD23F752E1E41384E82681 - CC2137E270AE2DDD278341918AA4C68E612ABE9765EE1B7174C0D156B75B298B - FC2576F63EE7AA889CDB6523867EBD749EF5624AFC65890649BA5B3ACAFF3E4A - EBB337D2D86921450EA70886646BEF1D491514EA27E6E6E0469A0C77A45D19F8 - 9D7565DDD52A3563B424047377EEA442876A5DE7BF5A1B880425877E0D9F9C9C - 48C7BF9E3B3CD57FA452D22F565C4937F7DEC82CBF3B1E0BFDB00EEA8C82D3B6 - EF4DF31F44B48795E48C2B695229C98CF83743E5B47E43734A5A16047B73556F - B7BA1DFBC65EE4CA3A62EE1DA9BF99AC0DC87DC64E4BE7BD4C931301F973BF45 - 646ABD4D6AB24F368D498F5C18B9D0AF8400797B466CCE5E2A1BC34AF6E5D4AB - E2264E09094462466BA24AD2FD9229F778B0B9E770F074E6C5D8E2FF537CB347 - C2DCC490B18993136F7E36F7E7EA1CCDDCFBB41097DE2415F52B33A6AFD9432D - 293C82ECA815F997D98DDC3B8842DFD294C4FC4E4B63D099029FB5BE02A5A644 - 3957360C7DB65C7C5D622C61AFA456B73181EAFE7D46D7BF1D8BA5A064327CF2 - E557DC136FF63A9F5B52C04A7296D083477A6A88EEA904C8A37E80243B78FDED - 9CBDAC2419AEFB83716F2C208F5F17632BCA363749975269C9CE3357BA4230C6 - 887D763CA3951213990AD1C2A148DC5DDDCB891806C7E4C87E396C6E2A23403A - 2E9A7C22B545D24B2D4BEC724C4A6A06F7F30764BFD931E903DED973D40FAB88 - 4EBDCDB1B99D03E7A6A16F5A1F1407C83B271D89952485685213C3AD2C5192F6 - B05743CA1147CBECD4EC569D16D1DEB2898C279465134983952546EE2D4BC1C7 - 807D626E2879E260AF452D4B3AFBD3A750D12FDDE4917E686268F50BAEB426BC - 2F20C5DE287DE8C4B11BC91729A888AB1C6B410CE9D5DA5A23D431C5E42CA5F4 - 2DF7B4944E256CA320D9E2ADFCD38666621D584BED9036140BA4F11CF6893252 - 4ABE42EE9F31A45D2B49E7FB4628CC1B8E1823FFA2B10131E9F5E17E47397264 - 05889C41BEC479129465294A49AFD6F51AB4E1B9379FB4BFDAFEE693064FDAFF - C21194A4D2EEDCA6D3C88FC3FBCD663345AA56B755BE9454C45D2370F108F36A - A31CDB47CB92E7745A6AB3EE15A283492F1DF5B243670D1D3A90A58B5FA295F1 - 472F675353571A7092FA6A4EC922F897B55A45130DD7FB7027E0B645FA80938E - 13AD5BDF02E3CD3635218957DBD7143919E86A0371CDD546868C117B73E7F9CD - 08DDDE805063D0AECC0E72029EF9444A1A4A29627B869CF7B26F6EF38248860C - 9CE88485E095C084B5E143FEC831FD66BB52FDBE27FB1EA5A27B44CBF9878176 - 36EEFBC8D0DAA968935D592C65452E75A46098B9CD7F5EFFCFFA442C707565E2 - 4D4CDEACB4AE5C4D46C9E77BC8E3FD39CBEE35BBB71C26B4537EA720D11946CA - C844D6C08B32795CD06FB3AD29BA9928E940CD7F9C52F1347FF98C91DCEB0CF3 - 6321FDB8B9664BA0AB06C847B680642504720607456F28098F8B252394B4F9D4 - BAB5E15CCDEB6818266381C4AB0DC078D5E9167BA6E44A4809AF66B78E8E008A - E6988199102C13940C3AD42E4D90791C1F7007A1142563EFE436FF717E4A72F8 - F2196513F3C435186E84DABBD087C606B8D2BF8916092456D0F93605A68434ED - 70CAD01AF976680A827F4D384386249EEB01C2C4C941F2413545ED2584A2D9DE - 3108BD48D9C0898886D73064995D200C1A8809700DC5BB002292CAD437291236 - 50F2CEC9790F87B85DF9B1E6ABA345410B91059C3448C8284AF6419F368BEA1F - 24EFA7035A2EBB476A0581C959FBB60012943F45C7745A4ADF65B536D47C9FAC - 472830130CECA13775C883E755122A49A6202EA24CCA01276002C1247FA461F2 - 474A600A5B3F3A2219908BEF2ECAA5E29B9F3D2D0A9A816497C78C6A1F0DBFF7 - E1F0DDC9904ACA65BC06ACE2A4F7D4B580DC943934361ADE403611ADA996116A - 42557CD6186E52B45F16518A37F5250FCEE6C9284169C96EA9EB68F602A99491 - 799B2B42C904489BC04594FB4E3D635151506764E93CC9079210240FF4A14DB1 - 593A244247153F23D92AD004895C7FBD24E22E6C1C542B25586A5E3FD783954C - 2A3142C9459CC496D1BD663C8B48A30C6446DDDEA44FC888B23643BA754F6FC4 - 9009AD17AD8CE83C94CD4D7DF2B4C40521F3E093B777D29313802489EF0829FF - D9416F2B86442E8F6697F59D81E6AB6E0B1C940CEFAC79BDE6567444925212A6 - 58C6889A90CADE089EDBB039C1E8A40CAF0D626DA5E4FC9CD83B44F35F6BBDA8 - 65F8F2406E81F3A86EE06C82B9FFCDA36C6F767C1E9FBD01C93C8B1BE6D86427 - AAFF9DE7DAEF29F9843BD109F713E48E37778C51E27F7A186EB62E4416822CDE - 31D3B87F4FC6F06654ABA51E3D2988468C059A10954B927119390D989FDE6848 - 4288CFE4B7171DCD8F98814E619E7F511EDC519313E97A538A45BA828414F9C2 - 38625F73D22053CA18D271219D33249F103A88AE30AB2D089E5973AB90D28D90 - 5294449F720EEFBF6CC6522B4C81232DD053142F3372D782828CCBE6A40372DB - 1EB7F15930F7512F300292CDAD5B9C373AD8274D9054A444E85D08C8D69C0163 - 8DE9B426D2AFDFF701F8D5EFCDDDABC5124A4F2CCB90E9C61248E94D4F89436F - CEB23925C96C75E59B7682A5B2269900034D1E490C7966F11D1A7FF0CBA93D8E - 7AD10C31771FD241D9250572C07C1D92FB42189492E23950F2DFBE33DA9FA300 - 9EF13B35FF9D5F582435C01D2C3DCEF59882A66137E95292E42111D2AE4C4BEA - A601B20AA4D6B560259D684DF7338BBD88426E4FAD78CA90B235C574C83F4279 - 79A25212D31C9FE88BE7B3C137CC164814099FAC7FD0172E19C084402421645A - 2C974AF41A9DFB8A68372B398043879C202747B99ED29F83D4181524F1EE9735 - DD0F26015294D47C52995AC364259BD2CC432D761FF45E7468B06A1A41B941F9 - 643F761C86FC900C02E993615A1FE38AC96B1EA58B92E8A37057DEA9680EC738 - 27F5E4997F91B276D021E7A4D73F78C63B0A4A9E5B7CB7815F895D2043B2C5C5 - D4791C37BC797087CE0595F9B91320113AAED072408052129D147AFF50E7920F - D7070D61B0A8102E372184749F80943D7E68164DBB036F48128294E81FDC6BA6 - 49191DF1574A4D49099C7BAEE8970DB81E1C752F901E3B3D8C6F904F9C833675 - BCDC51792532395B9B62B306B87BA6DB79FBDE6525D3BDB2F29BDD3B5C180548 - F66EC4CDBF034B3E34D010A5A24FC6E60909A4287DF284F2A133628737E57529 - EF7170A34324ED7872D0DF8B598616911744F2A0C5807CAC940C5F4E428924D4 - 477F210395650D3874E2564EFA6E775692BCA2F176382035402067932B52FD41 - 97EF13296373E2E4099B1F862484B84DE6B109ACA53B47480B8A26A306C95EED - 5AC41249FB04C2B2BFFA264FCC8E90D0C614945CECD5F3C2E33ECFC21A503E20 - 798F982C2784AC2420E9490B0A2A4BBF2BF696AEAB436A40AA826CE6848E1A7A - 1CD5D031A1D1C32DE3891A25E26DCBE4096E53A7211951500BE22C5471D05B20 - FD90F9600B22363904859A7620326394FEA6163545C01C70CE6F8B37260E4E69 - 70029103A7E44EC665DDE8977941F4CC9FB4082297A9747730895752B3349392 - E8B61F6A81E0BE376173E2F8468953692DBCC7EA3135B2583B756D6E7351F2B5 - 5BD112DF02C91BEBF75C594DD28D6EE697226899C89BCCCBA133869EC32D97A8 - 9E74B6CF5D6F3439EC94BCC38E3A5EC61673C7CBB2A33185760E40E050F26E5F - 81C416503E9B9B0C7EEC3831DCE50D7A96BC6773E2D4B59CE6881ED396F15629 - B969FE6EB9087086CCC1AA14E480A37EE9454E685E9BDD6BE694AFC9A99A733B - D535D787E8882CD9450D73CF3F13E5DD930A77042F1ECC4A96CD905DA1A4103B - B292DC83B0DBED1B6452125A364B8B0FE5E88EA568519221B1E591D0E869CA78 - 181C42E21F5A5E11732355E62848096F40527ECC32D9619EDF4CEC4DA47731CB - 48EBC94543620E6DBF3B47A1E4C7803C2BED227C52B5F0DA9E50919221A1E4DA - 023889E694E9F9313143FD5849CE92A494ACCED8FCD48AEE1369886465456BA7 - FAA39D9CFC1A71FBAD20399F73875A8E35E4379B938E9454A449191D11ADFA2F - 3C615C76CF5536AF07A0FF234A9E3D3805E646BB6C27066348A8283B49885BC5 - 432DFCEC5C0A92EF9E90A611E6FE10EB3178236849F964F1C2EA8CB4FB56F046 - A26E853C424DB8BA889C3E1641AFDDC29292CE4999420681CD8777E6CB3685BC - 784CCD6DC62D53BAB2B66FD03AEF9E675775FD124A22BCCB389F6BFB3F1913DD - 1C241936A8E4FFDD1AA4AB0B5661F0432A6399397012C75810DD6FF21874ACE2 - E326F715A5BF0F7DF93D22E75E32EDAE85CC7795C321F9AEB03D6723BAF79734 - D9CC49DB4D3180E6FBAEFD582999DCE3287991F4E8A5E3A940D18350F14B4209 - A794B5F85DE266D10F0D38E2860B11C8C7886AABC73DCFF6A40B8FAD18F57E48 - DA3FB1E0647AADA00C4EE9CD7B5D3976480B7279F985BB4A46AA43889C90A5ED - 4A91F2B34B5CE96C93A6B0E151BF92E8E5A47AC81A61A0C40D0BEE52004AE473 - 05F9247E2819FE43626D2EA478012B091DADBA5DC08B2EB0BDEF37E1E30C3E30 - 77413328694C51520E10BFD6109036E17BCF536212EECAC7F1061CE5F2034BEF - F74CEFF5CFA8C568F4901996079A0885124906FD0B6273C329059257E242775B - 30248C82420EBA8454BF7B9FE08FC48CF27ED68AA7B1A5F44EF5648767ADA722 - 146E1CD4B424A526273357D2FEF363F42368A879BE944C26253FEBF11DD17B0B - BB2C9696397C79999D0993759C114B59BC1892399B0CF12D2B71697F55948C49 - 57852CAC7E172EC95143D051199C84D2872C82C8E1D93D122925BE071CAD239B - 501243B2823C5E24FD0A85A8941CB2F6AA1F157659DC83B70E90FC03636768F6 - 4EE1D1A6AEF9ACE45A224E422C258992C490CDB8D142E8374A06E4FD67362CA1 - 94CD7AC22F05124EF91A4DE5260749E8A46E70AA45454E134C043A6472C59F06 - AE18193274FA2F7EF987A794F9C98616677E6C03CD8086BC50AC9D04F709DFB5 - 052DEE5259BA6E6F0519C3C53DB1B5F1EB17C29056DD988E74CAC73D0B557873 - E0C05740E96ECBF6D682C74C50185EF28DB82A629E285DB7359DEC0BC8C479E9 - 94413BD02E121A4624AA194D75C78C25C98403C4275B3814703A473E47F54AFC - D27F8792482154FF518B20978FE95D6C57D874130114687E3D5652458EDE7A6B - 52A29E26B36BA88C99AEA74F9D906504A54D904BB6733AB58FDBB178376FFD83 - 727919FC90F768CF48411EE476EF09FA5AE8CBDC55E63ED48021C9437C92953C - E14BEC93F7ADA2B76A4652941C3AF79B306464F16B059266B9D15106D792FA80 - DA94A4483546FCE36BC5789010DD2648521BD6CBB9E354C6BE191B4D5A93429F - DD6DE1401CDE881CACC4C5837619FCA5C6B28593F86EE474AB0A5793FD1833BF - 9E64217F9F8C73C4BF25DEFCD6A414C71439C9F4F7FCA0843CF9C8D6863E1BB3 - D50C92B58C88FE23764653367B04E4FC3A9DF75FA4ABCE5432DC4A4112792848 - 2D4D72DCC4A7EA1E99EF2AB9B2A21E5193EA1D14C590B4B3C4E494FA506BF1BF - 8324457990CED4BB0425FDDECB29F0E68EB72402E9940093870863BA72496A71 - 579C5F4989EDDA6B0209466225E9DDFB3D55D9DAFEB80BACEB595AB580761059 - 44829221C9FB20B63A0F0D3669499A733E0F39409B8BB071EFBCB038AFA72879 - D75B5A130E9D3F9A42CCA6DAD26C6DF8245A1C76CADDBC3D004CF1490BA92E42 - 3FA8458FB4FBF4CC5521CAE152D931975FAF89B48C510B8354C308C847834FEA - 628ABD6B21EB709A201F9D706F11D4A28A7448DBA762EEBA03439E80B55D8A49 - 2099D2B66FF7E31EA9B59030F7C5E956DD948E02C86F01A9F9546F15FDE24319 - E78A6B7A1424ABF87E64CB8DA38954E7D4234937BD2E24AC1D387ADDBBFF1A7D - DCEFBD1D77932BFA92C7C2BF87F4E58DA9BBAA23245ED91D9B810C89820E6133 - ACB8C7CB1112367A2261CC7C64A47ACF8C843E46941639626F77B27DA4BBA64A - 32EAE3A816EC9AC23C1CC2A227E04E1F0FBA8AA90C40EE766F405AF364EAD571 - 9684D71D24A5A448C994669098CB4D7709AA93AE676149CE6C159B8AB885881C - C9E7BC65C53F47F4B09A27FB3E2787C9FCA62FC0C8ABE69EDA2FE4D1EABDAE53 - 9277CB7E14E9839A30D15271F872975793520C3E58999B4D72F2A02FADFD982E - 86D9C0DCB78F6B42C2DCEDA5A9332209717C1753BD66D13A24F4197CF211FBF6 - F3A48A50D7D1F611D9224B5260E2A0AB1E74FC97285652B6ABB97F073A644C7C - F28A9EB0B5399F9B206D1FCD504A0E385A1FE638C80D8E2889A5EFB6200D5325 - 23A334DF512A9D0B23029C68D121923421947F1555419E70B7652189CD0DC88C - AE5F4ED53B8B9A5B3222B720E29230360350999FEF6EF713EE8395B99592F6DB - E0936B152384F438AEAD430C0E7B535786147BEF26DFDDD99E889D472710E6B0 - 26374027FBFE3D25AA01BF00657AA3C4418E44ADDEDBE16082549B1DAED229D1 - 730CB5D020D3C52969066193F61F922216C5A3E9CE7839CC55B5B960E4BF56EA - E800E21B3DDF7FA2BBE6E0A0F584D4BE4B084A07B9F939D9F7D0605DCF5A561E - 43F6E1D1C094832D7A7C976EA6A4C418E0F249C9C8948780218C0E5A030CC8E6 - BC73E01FAA1F45DC2A3A4BC8A0240FF9D171E930F8F1EEADF716B2BD91CEA1A4 - 5FFA6EDE1D05460E72CE652709902795A0F27A0464E2E943B67D0F9D60D7F00D - 7A9638EF3631E414F2D6FA8A6AD0BA78AC648B6CD9D3CB90AC64B627B9370F10 - 2551D489ECBBFDBE4FBCB835FF2AF9DD8684B47334F1C771B5C31425BCB7F09F - 193E1CDED802F6F3A5D078F14C21E5E03949E054A104EB1F1A0C66E28CAF84CC - 8EDFCD6DC5770C49131CB0ED6F6BEA91EA9D4E4984E85E102D886248767E3348 - F80DFA409CCBC5DA1E267F3ACE9EA9ECED2A901C392E5383928D25BB7DA59EE2 - 35880C7AC48A3227DE8597691F0D9EEFAE3352D0B3D0ADB729B55DFBC35F62B3 - 9ACCA5D41A8001B590A45A6FDF50F2DC934A0C8924D122F46E3F05497F61E46C - 991F470B23BB6A4EE9C7BBCF2985A3472DE8CD8C9C360FF2986DEDBFED41F713 - BC50763CB1082F73D9E19423FBF60E0DD6959C89D64775E9E0751AA438E56E5F - 638ABBEC33FF07FBB62FF9F52BBE1419769563C6A30EA516E18591A08C5AF065 - B1430EC796D292C564086FE121389F883A98DB6A9156458D2F84A4B5213F6EBD - 9D1A40AD96442DE6ADAC937D39188E52E4F1A34A46511271C38C5AE464EF8EDF - FD8E32F7A113ECD74893DECF5CCD8CAD30E9B8A2CC8F5B88F88EA2E2D772D219 - 8ED74B262DB92F7042995E3F02C48780C4D69EE46B447F6BEDC7177D3C2835E0 - C6E1A8BBE34ADD4F2CE25E94B4F6F933B526EA10746CB1206A0129A71CE7191A - 1F1A3F213509908790C5B291818AC7D0567A0E52A9E9275968D5C27FAAF82EA3 - 74E32E4FEEFD42A250D69259B5833FFA603EE10BE1FD1A25023295026EA01BC4 - 5B30D243A1A391C725190D50791FE1B580B897C06D4E83780AF50C5C22E6E600 - 845F57AF1F5362E692BB469930594A6433234576E50D1DEEAE49BB9E25C75950 - 5B8ADFAD336942D602B23BC2854B90816A954C46D52455F2707480F22AA48445 - 4F685DD4828B5D45CA32699B43BB064349AB47F06D5F3F6A943C2672ABB990A9 - 019ABDA5A391AFE573A5248BC7AB36A24FBA3BF03DE4A35AB03A82926FE8562C - 939D44ACE435A280E3DC0DCA2EE56679B0F9821CBF8B387C89B40E97EC26CEFE - 8995FC1315F7357AF5A38F2FFE8DB585D2E3380C7E76958AEFD72847EB154BCC - 2061FA1AE54883C93FCD87C092D078327A0527D93D13C8A45C98DBA19BE7EEEC - E59CA79492B59050922E126F0690888142F9440B83D56C4F56D27971F5C5AD62 - 6D515053528DAB6C094A7FB5CDD8AC30984F6F114AF66D7E91CA9CD944705212 - 2FC507F90A7A36E99044ED3276204100F2D1E077F6A83589B9916217C5FBD926 - 316457A5245386761525B1B9E2EBE9475B48571264A96830E1963226947EE92F - 13ADE21F7C79AEC7ADE8EC24EEB82BF1C4F4EF793219A6F893B2D5CAB9F6BC8C - 5F7A76523F745FAE5E4BA25C6EBC15A42D6B7968C9BCC1B2B584166A916F5207 - 5A30288E2145493BF8A52879D47DD1D65D4964BBBEDABBA7A62462507F0BD021 - 39BEB9EFCA3D212A280BDE568635073307CBE7194AB4B564B746493A232BCCA9 - 3489EC5CBE1FB2D63115BF6887C6BB2C1D4D893BE74A6E4085114212432EB848 - 61712A7268DCB6719ED93F71E01CCD2686ECB020E3652D6E141B5A23734AEA5E - 514F94644B50B7243B7026FB5130240D0627B742A142154A5BDF237CEECEDE0A - 7F3496407448B9968A17CCBB9D6A5212959ABF683E25050F962E2938D13607EE - DAD602CD1EC569F6161D1038DB0C4703691749F085B9DED6119955A929F6D6B2 - 50BD2670CAEA2840524E3FBCF8F82C6A0BFB1ADF8364A34A388E8CBB46956092 - 33294F78424639EFFBFBD292AB73F0992BD97CD47B9EE81BA1A51A7C28698FC8 - 693B7BFE225F862450EE581075D705111AECE93760DB38866446F481DE7D7C5E - 33B6D9208222671E6748697428CA814F1F2928EB97234BA8E321C1ACE52E1AC5 - 84BB3C435944E44780FAD995D9B9E42075B7BA54E2E82690C8E6E3A4B3381F09 - DD7DF923624C779A7F22DBF7027720AEB637498934727BDCC3038605149F9DE4 - 685D9CF86EC955F2A86584FBE04F4039B10BA5DA6864AF442DEDC65DC891C336 - 8A335D621A72669BBC92A793ECC625A13A1081E6DDDE78914E40499A5246C1DC - D55B3E9BE60FE68D203E0E0F213DD716D398B0AB195A7CE7F4A31CBB97A9D143 - 40FA12626F213615B109528B9814544F83D4A5C45821B6C7A2E0143D72FA1534 - BA213A72415C631153814AF0C807B2463FB9D2E89C21794C090267DB38405A7C - F4084BEE569004D704E6224EFC106B0C11A4A4C3CAF78B1E96F12E1583110562 - E6424E939A9049C1CFEA25050D1E4541C9C1664A2A46920311F8B98B38262455 - 764742E24AE9A9881A3FE092A41E8E4EB7EE185849377756326E075D09D6B639 - 69397A4D8B3886163124C4FAD187DAEBA1C306EB79609840C22543A8FAA20F71 - DBEA164C5EA38292110FBBE850F2AE2C15421C3BED89EA35A21D68BFA9A68776 - C5C8ADD62868561E846593235B046B7E02530024C9EE63755E0D2BE90CC829E3 - 34C8A4E0DDBADF37FF9D2565251BE7A197C3FDC58CAE175F89BCDD838A9C7244 - 493E756E569E06C93A7AC92FAB1892284B0B1F0EF1F6AE6765F71A597CD4A388 - E83E97014A2525FE1931C914728C8869BB3267D4A3A82C19EEE4289014DE1509 - A21B287DDFFC6E375C911423F73AFF4D0B80D15EB337DDA647FD2AC4DC7EB356 - CCCA43BB2E9D1494BC2BCB4B416EB3CCF2AA3AC62B6C582EC992BB198D76A0FD - 4EFEC86087AED41DEA71EB0EB56C0DA323D8A9400B216D9098726E9DE3DCFA5C - 135A19B9C0BBA732371265708F1C32195CEB88ECE6D038D78AA31B4AAA844E95 - 4EA441D2ACB4FBEBABC794214DA249E88FCCB78D28DA6ECABA4FABC6EDAA1A27 - D1A320B1016EE43D190B836AF0CB1A835DD96BE75ADEE9C1FEDDEF56A1CE56FB - 0E81D977CF91811C16BCEBBC3C2963C509DA4E87A36EF7E8B3229846BDE76B02 - 65C8C62BFA7D4C83AEA2298757322487A8053D84B945C8853406C1CD421208D1 - 17E1A18C222C476D3BC68E16A01AF0EE1546C48E051FFEAEA156956034508DA1 - A6E513A71C472738909934B3BE74E9B382B378511996584FD558BB9BFB2C9FE0 - 000EEF1E39B31E8CDA556A2F1B2102C9B1467BD074935CD218C73B2340D92313 - C16898EC3C6A45A364AA7ED7198D22B2AD304E59C7A72B4C5937059D788E8760 - A52420EB35B2F827EF2DFC8895C48B57D0C4E95C13B9ACD474659A5DB3517939 - E478A35F91D3B956C5356448669FF7786508A94409EB3C120B8D7A8F0413428E - 42A3D2E17692EC8B819487DFEDB2906327B37C583694DC352A2FA49AE0D7B0B6 - 06C987FEA744E7BAF1FE62A654A1D32ADD8F77A1FBBF536D01483EE9D8901CE4 - 701BB808F61CC7FB78BF758FC82507747D10F17DF28AEEC32D1C167ED46A81C5 - 9E977D3CAE375CA1433669308A1E88C1D1C9933FBA3B8BF62CA04172E2B926E5 - C28FD6F3215243CC13BA812E107C01C19DB46B94FB9468BB59114D66ADA0FBF0 - 395022CC25C6DB89AFD858F19108AA0E5E1F8912226FAF8F2CAE59FF116683F0 - 1CDE1A3C9193BDFBE5D8F6E013A7CE610DDCC3AE2604E6B524F7592B24722C3E - 6AE2BF62D68A16BEC853BB8573F7A48D77397E2F8609E4716E1A89B5788C0D00 - 435AD10D47891B6E6F92685755F412DE63386FC98A59111B3ED8F0A1DDA7A310 - E6A4BC126DA33172016721B638180DC9605546A71EE79031F8523B5227B83B15 - C16731DE0AB5A9A63151803C51E2D94883247F42EC348667CA8F1BD383A45994 - 9074515D8078836417195633E1B7B6D58625280CED0DCD1397DC46D15F796D9E - D0369A41276C8EA079CE85D092BD72D7286E752E5845CA56230A828C1F899E48 - 490011CC26EADA4A94799F3DD5FA3610F91B76A7ABD756661BE720BCE3BAE66D - 82E8FE0C49242DD32C7A80D1842462B1DC72757B33247E0CC8FB28A8FADD486C - BA53D2B625F39C394D6E9EB0D9C1AB6D523094BC3F0F7E29CD233B349210F732 - F8F7910BA21612430291228B415A695D29748437BC401DF211A11EF451D2BBD5 - 6557AF9D5F36E544A3E076ED11DED4846ECC6230FC3F6021894F4BBF9F24E606 - E571EE65E0BBC99502C9A5ADF7A58E68B961EDD5AB68FA8F39D7266C56AF0814 - 3685C64923CE907E01B31F23BE05B21A4DCF7A14C1EF22692B484BCC66B01348 - 0EADF508B26A0BB8A4F73328E99859E23913902494FE0F0E0C63BA07AAA16F5C - 07925365860F053FE6C0590244AA1E13B5351DDB72BBAA9CA7D38FB4B9DD83C6 - 0F5E79119FFDE8158479C4B8A07A1A647EFC34348D633857566BFF24728A93B2 - CD5BDDA6262B31D264652492317F0FC8313BDE8D1A7AADFFB275259E3FD20DE3 - 3FE1947C9C8DA55C21828A92F709906C6EB75CB41CCA2B47633BC030930BAA7E - 97CE7070BBD32A2F3E3122E7A517335FB9FEA03127E3ACE953D69D6048A1CCA4 - D9561CABBBF90D6528A12C6A696BD3B97823CFC49263C80290E71784AF9BD3BD - 5D7B345BB00C36E487293C7575471AD132D221D929791B9A2655B2922BA14235 - B62CD0DBDBB59A664524BDA2D6F1E32B2FFEFA2367A917EDE884EA0D89BD695A - 238C4F68EE7E824F2AD418F52172A1247AA80955D74BC8F0127B36D34398FB7C - C28475AF36CABD614702C92980F1F874D9BC3E69E49FB0BE5A20D17F17256901 - ED400FF198A10933D29887BF20B8B7D1BA1F51EEAFB2BE17F9E3450EA215449F - 8E0AD6B25066EA5902E5049F3C72AFCE73E7C0355182178B21E6E5C51622417C - E7C42A7AB8064A667A1CAFD76819F5F2F7E17CAEB38990094DE8BEA8E548A2A4 - 64A1053BC6D4B3AC02A4349C51A8005B1B0E99C94A7A1CF738EE60F9ABC377FD - 14E494EC64D580B3535AD567A21D797D680C52E698DD1219E2A07BFEB55E5C93 - 234999FA449F313BF26815D1D36EE8042D9B12D31B4A92B17A377DA49DCE2396 - 16416153569237D728975AB1945DC75855910E494FCF33E4947599D75FE2651C - A8B8FCDE9BF4DD83A139FD187A0A67214E957E5BC65F202B78D974A4813E6171 - A44E22258B3D3E6471C25DC5BA202A8D51891D61F158C1C335CBDDB6B59D42EB - DC738FB3535AE894A49FB94F80F48D8292AFC054B99CEFE216FEF36294757516 - 435663C3823390D76AC44D0E203D2E17927361437A82BCBE991E5876718B9054 - D910F9FC6E28052CB8DF8826A439BCC559CA670C1699FE3B10ABC3E2CD4C2F94 - 7C466CC666B40A1614950A25B70F81B90119971C07E9676A7C3A27AD24867493 - 3E7300CD0EE5ED53584D20E13113F3D27F8FDD3568C8AC76F4124CFDCD90AC3F - E9853FF98458EE146E5E31059E9194CB3E793714A1438D4006C7DCDCE626D211 - 387684C5B1E955FE54B1BE870F57C0DBB1D8B7C5F7A7E6D1EDDB834E85D3BADF - 8EB56B1FB74029B97226032688A22B3F6AB292F67DC101FC90A5E49E8291A87E - 074A10C835D58B53D1E3F55A3D8BE61F77E848F40D0191FF861CA7EB2FBDB899 - 3C0F586625CD286F388A765268406A9FB553373D6C3471CBF86163B48BC9E0A1 - 6376F08BEDABE56F02392A6351DDE6A7A96BADBE1D9D7AFEE1374362BCD0A3B4 - A9BF839D987DB7099F78464CCB2E7900906ECCC8F696FD115DAF6411204FAC9A - B8D6EA3CFD5EDEBF21F53FED5338E4F275A23F5FC07F432A6FC821BE79C28B9F - 57714247E8EC0C4DCF9CFD78EA96FB9D8BC5EDF46147D84DDA416137594F3827 - BBA82FBE8CC3D70F3BFF6445DF86DEBE3ECCFD9B21A2247D322C2C9E66020B70 - F7D7CF5C8971BCC1F11687C2DC0F9553B6A7F850A3EC556B120A299E12C7CDB6 - E0CDFD89CA9D0B9DAF9BD6DD40E5A12C2A44378358C91630F8ECE557D672B6A4 - 878D9E5A49CB2331D2262EE3DB81C3D8C240DE5D2D8472FAE1DA35B3BBC19FEC - DA7DD3F0F4BD6301ADF23FD944D3DDD51A04144AAEE4089EF845FCD039A4A494 - F6AD7A67029518CE539FB0E2281A8AB8A90ACEA109DF0C39F9E0051DF1CF1718 - 92AEF7CB795C68C99B8E01BB6A1424CD864B4F4CA1FA168AAF564EC4FDF455E2 - A3199BDB14570B640A2D4F4DBF9664D76E78ECC179DD038E675ED9D4265EFB8D - 9251184329282C7E3994CCF6793833003939946CDEBA9F506298FFD6B7C5E353 - 2A4E8D4EEDBFEE47847639167E81BEF8E48B4F4C4A12847D5C4896A38203526D - 461FE7D021BAC2D70E9015D5EAA85FECD8C66F958CF314CF7C1A98C257A5A1E9 - EE3621EB8BFD2766924D6F764A189C74432B6B87DE849280CC30BA934A42F1A1 - EE09897E80ACB7E9C5204A5D5BDE9F8233A7B03FDAD0B24F6C96714E6D7EBD01 - 391403F2310924EFF3F6D8A920A903AB39710B211F3D9CBA65FCA689B4653C6D - A9061B42E5267211A668BC5CF002C8D4DBA95EF5E70FFFC46B914FEECED00B56 - D56DE22C42E3390DAD0CB55AA944859216433D3626A36F4CE8D2791C07644148 - C24DC3F9F48194B23C35DE10BBADE1849C370B5FF8B3B1D9365FF3DF9B131523 - C11F5BF16995962AEF86C6E703B2C3950ED50BEF376973819A8CA714ABF102B4 - A55A9DF96A513D7193054F8F97625296CFFEB6C5B5FEC197124286708F327376 - 20217478D75BA8E8395330436F2E26D7D1A92B7FE04342C101BC7D9A892881B9 - 6FD2C40E941A5F41FD1B1A5F71B8FEE70B36DC759AF5B98DA2042087F18BAF4C - A16CAA273ED9422E494C26CFF611CE4157DA7F75419684986BA782149A6A8829 - 8F09A9273A62395F0FE33A7A572F40CEE9BBC867467302E5A636C47C8F212340 - 8597686007D7D11B9333C8F86A23A4F39D2D3253BFA29BD6809C98C2C6D815BB - CDB9EA150FEEED30DE2CB9FB4D05D954BC74FDA58EC7D11DCA2AA4EC7A0DCB6D - 46EF9403FE72214E32BC60F9950EC99EFA855729ED06F2D826B2182F22A60476 - B892E2CC8B0EF5D8157BA27DE365FB1761D37B67E8634F40929089A02447846E - 4EEC80084E3A41044865B5E6CBE8A661FE40EA901C2490C1392F391436AEB0A1 - 59E8890AE4AC1515445E590DE8C54CCBE272E9A037AC614AD9498DADC0C2E557 - 52F88F24DE03539C0BAD687CB6E7169AF8A55CA2812D2472E6B37453E3C9107B - A2E317B4FF8BD73F1F05B79EDD6E206B194AF11A60BC08C96986CD4DBA94FD59 - C96364F1E5F241A5A377B9AD5EF60A95BF60B3AC0484B3F8972B584F50B2C125 - 76B2EBC98EC09D5CA4FDE16452E708AB379E9A4DCEB27FB23070CBF814721E78 - A4301052B2EAAEF6A5481F6D3B7E31A72FF72877E6CFC6224788D4E115256728 - 0D3C72319E7D32DB48AFC21358C9168FA8A41290F0B59D5C04ACED701D915D52 - 1B372B2A6C00F9E7909BE5DF5D9B9045BF6525B1117672CDED0F0F3A9C4CEA0A - 2C75195672D06CBEFE75B673D0B46E4C0A09793E5FB5B3934AEDFF91EAD5F2E0 - 1C7A70E51E52D96C42E8D01159094BC8FF18066607899295D6A09C9994BB73F4 - F147259504C8EC207225862C7BC3E1779898CC07B637B2A5F3B7802C1CB7EB50 - BD860448FB52661C749868500FF6B8D91C1B404C2E44734503BF0CCC862AF27B - F1DCF5F94AC9B757CE9965F4FE6D5CEEF1BBF9C861C46E29160F5590F03C15DD - 7C952F35CADD8506AED49A21B389210DE5FDDBD22B0C598772C5ACCFF9A3EBB7 - 774673D36899052177C92E207BA2D2FC41A3AD0292AD0268D0F8000925482BA8 - CB49F305664CDD52CA260564B3632564F4B67C2317B6F8488EF21DA95D555C18 - 430EFA07B93D3C85C94A4FB4DFA9013B1FA7CFBE640044D0A052860CDE39AEFC - BA8DCED8EE9A8214AFA4978AD9297F23E4737439788F05C4243A3C880E13CCAE - AEDE4BDE393A488E5A2ABB270B252F011DEDEF8F12256959C8B171C136D42233 - 7960B539E4CD3660CC0E824D0169596559E629F18DF6A0B20B43EE0423959FFF - 31E7ADF2EB9F9B10CD286DDA5D7C29AB71BF2C860423B4544BD97356C4AB3474 - 0B6C9F1AC0B8831874A7E286C08320388B2E6B58C04ACEFCD11D3908690C89D6 - 9C72209A802341AE2D3C1892AFB672A719E5013B1D2E7581923B697C3C8DDEF5 - 30B0D3E971176D4C3AF24B595C02BC61E175407E1E91CD9D1FA5A450F28FE171 - A0191F2FA8A0A2D1418394CBBADA031190BCACA1FC7CC27604E53BD60CD9E229 - 36A8A1A5408AFF0EE4080E72358C727BF803F7042C7E1B0745466D499F4D5012 - A1377A67C5B340AB3B3E22A4026C472CE60A3DA9230BF5CB2AB4ACCAA646E512 - DF9AC1954CF6F24FCA039047D90D985623E40A41C90FCA5EFDBC327E994FE119 - 045F3E67054F0BDDE483ABB937022547EF8ACD30CA444939324FC3922E0DCB0D - 9FB347A288871713EE747BE173331D59495193B5EC5A5EFC221A1D3EFAD148A4 - 44F0D893C6A108D5B4D009E161577B99CF8BC81A629FAD2C0164FF7BC7D0A8D9 - D368510FDD283E6C27DA1D8192C8F919C6F65718D22708B9A4B2B20B196E25C3 - 25A9C2ABCAD96AC2378014B876F8096BD92E6496406281AE8580A4DF0ED57B06 - 29B59DBCF64A24CD410557812AFDD8CAB2884096D3B68C9E28CED8FF5E763DB4 - BCF608B9D1A0AC3E22F61E7864603687071C2F403AFC1625E574AC61F9B288E8 - 64C3AD41E2D50F293D63D4B50A31B700AAE19A6EF17604A7A4AC0FB1F9578FE3 - 5B18EF3731212A8B97EAA4A5EA0B8D9E754497BFFF32399B2DA6F74C42E4404A - 6EA6807968A0C5218BEAC14706068F5ECFB5F9A08CCF87BD50E979E018359CFF - 6997204377D41B45947F40566F5DE404D4CEB45E66D5A56C7EBDEBB7E295C4F9 - 9C2949DB634EB5284A38327941ADCCBC8667E9F52F7ECE90F72CB31A528D50F2 - B9A974C8824907D3919D8034905B5B05892D55CB43F5967DBA9A00592A45787D - 509F38B8DB5D33A3E4813141F9C0E55B925479489CD2A0625CCC6E7FBF86CC81 - ED490B680D12F305D2B3FF62127373D82A974E325B11941416814C08B9606D59 - 382EA8D17C24335DC95E961D44C8E70849E54B091D4E4202A951828C6AE9F44F - 4DBF5A116B950C746CCC7679A7F2291A2E69B446C313F928DA11487964679282 - 8CDDD6B67D4248427FB22B642515A428D98BBABD59D8B8AEB5754CCEE80C494C - 890E5823D9D0D52C6EA8D1F434F1D419550752C425BDDAB6B309ED726DC58333 - 4FE132AA65454EDD2947FB82473323EB559EB4ADD9310A49F0AAA27B96879257 - ACDCDFD9D046AAF990023B395FFC7C45825EBEE9545495D1D1D1403E97F8A643 - 8DCA9FC9F6ACCA44BA739A90353A0E2AF942513E240AECFFFBAC76D7D22F155F - 183783347B1F1E2442066B87D705F2E1A96354622496327BF0BB4B3C08905CCD - 8783EBF77766B76E476A979A7632AA891206EF4ADFF6A324E7DF94BDB5414492 - 230835DAD127E5036A4481CB820F93777570B099D5EE52FC837B8F5354B2D533 - 16BBA61C7B923C3378D02939A2E95555E97998DA1C9F97A3201F92A7B3D55BD7 - 4CC6664C0FEDA43FD53CAEA8F8D385BEA56B0E94C2E776603B42625C6A58A3E4 - 348192C9CAFCA5760C84DCAA82AF7C71B3CB25EBCF2ED8FD96CBB9B649A92626 - 9176E8599A78AFFA761DD8A22117466F2ECFFE9A72FA19DA889034B86D27670D - D243CE410DFA89344E891D091D50727C2376EA91A2FCEF83494235943F23CFE0 - D03958F9A5258064A754AE615FBB0C871C20FB3704247A2221572C7E732E0CC0 - 66A1C15118A1E4DB17BF28514ACA29949DF9243165F26B7CA7A815D4AEC0E5DB - 0796C894A0AC47CFA8D1438EA0F2FF8956671C5CD5EDADB1ED6A21954FAB84A5 - B79DD24BF0AADF8B161B41E96551E2D0C5B8649E82647307D72F582C2E19F453 - 6DD9FA699E62F0072F74FDF6010DE5069C2D0EB702DE43317CB9B66BABF64DC8 - 1A965343350253550D43D3CD90F17995E5D85A3251EA2DAA8AC2F267835BB66F - 124EE97E460AB94ABFF1169F61DA2EAD9ACD2489B5336754A08AD258F219B9D0 - B696F4B8D05992A51A58CE679AA27CF45E5E0A4FC649D5E019B1433DF99C21DB - 246DA0A78754E3AA61EA42723A4DE2345952695D696DEC4FD6AF76BB4DA26479 - C35E966DAD9AD162B436D86EFAE9AF8C9A94E4C29044BF698CF59E7104917AE7 - 41D87456997C8665783930767956BEB81DBE7A1072EFDA536E5DCB6D0CE8F499 - F2AA2404047755DBD7A31912C9B1BF75C9106C1603B2BC616C90A77365D51E11 - 32D983BDB19F9C4245EC9AA63CB4427A191CE06809061FE2BE773D30C03DF920 - 4FED1B357CA8A08551BE65C8D5B3ACBB2DEE564E97ACFDAAA42D61838FDA6930 - 355A06D578266F6B66997593BA5CA236E45546532BAD0B0DF65CD4E02A67B497 - 8BDB5DEA82C006249F6E24A7D34049B9ABC025A8CF90BBEC1F943814979344CF - 60DDE8C9C1494108783E55A7AEAB603A496DF3620DC5F3BF591C9D1CF4A9F567 - 57CA3C0FF03ED986A63C50DB2E3DF31CF643FB04D93D9731D9CB27F34D6C7F1A - 1C5167AF51DB1AA29A0862B86467CDDCFD885A6D3751D2B51534EB33DE3DFDE2 - 6607829655E8ED0F1E255B6002318A829888C31ED3A0E68DC7E024C17F96CC07 - 2DBD32BACC5E8DA5AFC59C351696A3EFF050B5095053B6400D9C51CB9376D537 - 56BEEBA32091857EA7696B0C9CA7BC685076FF72786B172DB6FB694A086567DE - BC87962B00890E54CB6B0483F35C4BAA929311C7050916ED3AA4ED20E2DD31CF - 92B51D034C3B98AA9CBB385E4A288926FAF483F4E94357959E7C97FA059BD2D7 - A85D92F3910690054E758392AB3F25EBF41FE9C2876BE008F6A83AB264B1F5AB - 5F94B0B985B29FBAADDBED9CB1DBC76ED7E21BB95220AD8CA5AFD201293ADBD3 - F2109F746A398AB53C249AF2E9445095B3940042E26D2CFBB06C63FBC6A150D2 - 72520B8762327CF1C3675308A85B0376E9AD5279C0C67ACF3C69D8294BDFD97C - 59B775FA6FF9558FA6AD9966B047953DA9A17164F09C502205C9FE08C27E3963 - F98DEF0599DCB0FC1A8DA17F6CB16FD578C8A1023E29F68065D5B01990087A5A - 568DDB0516C2769AE7383EB37A9B25FFD1363E05741CED62C621D8849A475D82 - 3AEC8E77D9ECE52057DD7CFDE3CF236F6DFCC7EBC78C0D9705A4724678562FB4 - 009EF7CA6CACAF92327EA317F9B095C10EA6DC362CDB9AFA2CBBC98CC91EC2A8 - 4E91E40FBE176483CB3D7EF9795AC7C517F36A1C8A1D0AC28BE53CD972B31019 - 07B920189F52C453B46DDCB67180C35796830ED0B0030D3DB3AD8FCDD9F41E35 - 38E3FAEA08AAAC5198448B9AFC3036F4C886E5EF3DD80A974E0EEE4F6D2BFBB6 - BD111F1ADFF00CC5D7938CCC4AEEAA1A76A98CB0E15ED905F6E9705FD28FB8E5 - EF3F551A7B847B5E9CD47A6FA757DE97421D8AB35E5D71C3B298C73C0F0C83E1 - C73D84F1871DD0586BDFF11D030AE4A5E2099995C7D0E0ACFCF58E430C02E6FC - 8D6353E7CE174A3E11ACC9C1E45F6765BE4FDB060FA21F2A8F25FAF42A0F8D87 - C9DB847C274A0E3E0437C8B6EE7B1FD1DD8577E074B8D261FF58B9ADE2A1CEA5 - 4F8F6CE8B3FDD5504D2F87628335350EF74A2A54AD1DFEE44468A6546F78C71B - 1D1068FECEB90B1C9DE3CBDAB203D2E4E19DBFA76F0EA1F37263679A79C47063 - BEC2C4D0A45397969E2E2FFEF07AF44D928E6D0852654FEA9367180BEFA98257 - 571E9B136ADDAD9CC3F3A7CE2EB47D5BCEEDE4B38DBEFCF93E9F7CBB88EB6CD8 - 50D3DF115B1B093FFC76CD5AED1FF4A44BC5E4D0453819D0B970188F007198A2 - CD86D8970A9DA1BBB171695649BB208FEF6EA4DFEE483A258698AD2FFDFABEA2 - A40F9A273FCCB6E65C9EF0841A3CF9144AD6CBA33E50126EDD50EA59099F0C7D - F213DF4AB479CED24B3FDF971FCAC98D8E350379D77B0C5FEC9830C1AF1765F2 - 0D3D8DAF667B6A3A795E2A6405E95217EDCA1296B321BB04CFF6FC812AA91BCD - 5B4DCD9B6C3D1DB9B1D40C524AFDF59D197C079D359F5F286868AC06E4EA06A2 - 6406A5F4C9EB6348E773AA86FD50D92D21D10F2928083A02F3A720E70D5A118E - 2F5E7F2FDC545A77B2FFEE4851A6BA97E6AB3F949067365F23C2FB9E7E7855B2 - 5236A3AB8B36789A9DA44BB611907D9F2103797C77E95F9148444CA9614AA9DC - AF3C3FF793B719A52F4D61733FD94A6732264FCDEB132690C388E73C9B5549AB - 91EA98F2A7E191E3F91EBFB17BDE3E5FA7CA28EED3850B2DB2F8EE99FC5509A9 - 2B2014E90FAC2F3E4A64D2A8BEE60FA24A4BD7E89B1F77F658F3F4F4EEB0520D - 527BE04077E9087DD37679C33B946D7C9DDAFA75A3F71ABCF8EB8633193E3E7D - 28CF3012A10897AC76BDFF0ADA2228493FD1F0FB4DF6EF9CB7B4BB6C3CD7A932 - 2B79A493AB8DBA3DAEB54082B752411A8591ACAD4B8C64AA41A5B52C6349805C - FD53BFC3892EC7C79346A90D4AC86F324EBE7F9CE0921D5E219F0348D457B6D2 - 0523942443FA43F6F01F5E27748FD0F558CD2D5BF326F7C9A272F66F4378ABC3 - BCCA525C9CEF1B7DFE5325932DEF589758578A50EA86AF1A9D4E2835B1563756 - B5CC2AA95CDDBCE254FCAB6D49ED8139AF17A91829E1CD91EECE85D0ABAD4FAF - 0FF8EC8F5F37D099A51CB2291298A7887DB21290F2C30ED4EA850D7D7D869049 - 4B5395C97E4BFF1F16F00D78D0D258546A62127752CD6E9E6BAD70A123B57C00 - 4624F5BED125DDDE6BBEA15DBCCB05BE5396BEF3E0BCB235862DE9CF9AEF3596 - B0927EDD00F9EA0FBF3EF9D43A5283841F50B56B74229BBB617928D781AEFCB3 - FC8310ADB0F3DD6BEBCCC5FD5AB0E2867660B64ADD20D9B24ADD22192C6AC45A - 616B02C3D6840D4056F259A1435E3299536A88DF20A007A6A2835ED917240934 - FC2E3F1260835232F245FAB5D0C86E4DE8C421D13F612169E3B1D9F5FC9AD616 - 2615D6ECD27D6CFDEB1DF8E8018B59A564CAE746DC4227256923E5832B027FBC - 1FBD480EF6ADF9777CEAEB2494A4EF90B117464AAF2E29C6172257AF0FDE246A - B17FFB23CDDC9CD70432917C687572683C303B5CA1EB1F1C4132FDDB2AFFE7D5 - 252E075DEF37E1F312F25D4FF6E52B2B4F0208A44CA4BA1C96A45542AAE09219 - 7A71E729C6EC30D28DFBA743C87CF886DF8C1FA5CDFFA1D21AC14D3E09DB636F - DFEA3923FCD7101D329B8CC84062EE5EF4417C10B78B9DA9DA68E1A71756AAED - 0C55E505E58E6D134D7C63D4E8FE7DE57A58D7939672B1B648AA0F7C212FC051 - 0B8A5E67DA41D461E467C9DFCA98CEF9CD10617CEB87A10746C210581A0DCE8B - 740BDFB5FE75C328CD2719D2B24302435202846CF004F6BE1FDF7B7D093D5F67 - 292E2837AACB7099F47295CB43B52B77F56B8C495D13AD6E29239FB4FBC71BEA - 6EB3541C7B742C294A1AC27C1A226DEFB4FE80352C4A626D0D32E69106094638 - 0289B9BB5C5294D4FCC182BD835EAD5B65ADCE6F052D7675D72EC20F4908B942 - 597C03AB68108BA84C9815411A1D57213AA2ED9A2B8F4930877EC590A463EAC3 - 5BDFBE153465FD7FEE5954E3B7C840B69B7F481E66F5B875CCD83242A7F73D72 - 2E2D31562B97A45E67BA34FCE04903C21F35F9E8E7B17A5943349B709569FB80 - A8CC638993D57DA04212F8A455407A65B1AEEA3656BC60B4F80345DC470B17B1 - FB0A3685F9E4E918FBD8423925AB161380FCF186DBAC01F0644DC9E15B730139 - E4875F174EA33586506EB8D82549A520FA00AD261BFCD78A7AC6E4BFAB322087 - 3470226AFBE32B93D50D03D48DAB64604915BDBAE9164F13DDFC8740660E1548 - 52678E698342A43CEB19D7FF44F051DBC90AB235ED1C56428DCB8821B1C0EBEC - DBA264423CB68C3EA0ED233AFCFAE2905DB9A755293AA82A8EF29C5D3BF69C9C - 38595F4DE26FA8A169CAFC465BFA02933BEB4A0E195DCC672FF6A1BA431E914D - 607DA77CF13A8024BC7996FBF3C3E8704F5A4380447283B59590977A7DB0E103 - DAF039DAE9F0A991532BFB98EACA6F3282F29C87F0A58A66949313F9DE0E8993 - F52F13B509F9166F9A923C277EE401796082DC715201F6912B4D6CAEC96DDA05 - B2D7E7E78DDC6B7EF4EE9F0BA70132106D5B5FD284E414B4813E60735F69B0A1 - 6F4AC55FEACCE575726BD8681373D06445C397ED09A7C24CD4BF9EACF031AC51 - 90994313E36958F840D21F1CA1F8F8111BD7EBFDFB2C0B490269EB7D982F147F - 44836AE8EDC1869066F75CA5028A915D9287E1FB87EF1FD3FB2A99D759AB7227 - 1A66F9D04BDD73070C7EE91A08069F368942ABDE489FE143B54A9E4A7935F54A - CDFB9D4C4FE1901289DCB63FE36E75DBC937337C7A91ADBFD5CE74BFF41D742B - 6EDA1A7F03DF64D235DF77B20EA953B2ABFE63DDB2DA924C051E89C8A5A86BAF - 08910CEAB6194CA4DF0354BFA311C95728D9041933E4F8298FD8D405162903EB - 96EBE67EF4DF11686CF8170BC9B6DE24408E26BA55B3860E194224B7B525656D - F6487A3166EC8BBFA217F2ED94B1B9660F1E0120C68FDCE81030A437BD97E157 - 99C100195CAA7AD7652399AEFD22435712D1ED886DD4E3742A9F8A8F58BFD6C9 - 84B89866FB3B40C60801E9459FAFA24963E4A25A74287E377C2D0B69F3341DB7 - AB4EEE910B6D73F5527E96028F04564701F18053558C2234E36316751B50CAF0 - 317FF17726251DC98AF691EFAC8BDF50EA37D31E0FA4C5DA0A666FFDA645DBDF - 907F18C43616C1CDF7AF19BD93138C82D43239436E1F8B6ED18B7C6F9757B796 - A72DA7CF167FA6737E5F39D08180D8B1DC434848C32432618988A225696F32F4 - B2AB55D28A68DFF1C039DCC4A62E489BB5519D1B7A72CCA0193D95CB80C3D69B - 9EE6A7C785F9D1232F824F7E6D0A7B1246D0B55AFA167D7B6FECB7DD9E0DB925 - 2530E811AB35430268C8B2BD975BA003A0AD5FA8F431345754074DF0CEE0AFD7 - 993A4A02F21735F71B2A2E7AFD541E79659D4A34A469BE81E5A1E41DCAE7EBCA - 5D5FE03CF9353C81F40A3CFA1CCB6D9C44E7BD66787B759CB2BB26E01F52D898 - 492BFC61678C2D0B1CB7F04C2D435D2209BD330CA501EBA009BB9E838CAF6D68 - 6BFCC7341FF5CDAAD8B123358F564AE6AABB9928C80E14212125C6B60D8FD92C - BFDC8A3E6ECCFE56143C3FCB2BAB4FEE8E7F3968DD8C6581FBB44CC8AFB4B763 - BAFACB2899DEE4C30E33CA4C8B2552AA9E2715E40ABD4397BA20EFD36D549CBC - E997F651F7CC209BF532DEC1E69F288966B1836436F148DBB1DBC7BE396333DD - 5DBAFA2E2D5DFDE9B58BF5664C1FB2EBF71D43B4EBD251FD1F527F8AAAD528A1 - 0B5D0AA9A3E4D3FA7F3B63541D25FF35423BC453DC87EC7FF9E3CD7FB534D4DC - 49BE747DB438381A94EDCD7AB5DEE9FAD2181DF288E26747E01BD9A3D74E2D68 - 2BBA344B7BD1C27A2D73EB3939D4F8AFEE13A573BA9E325B77582CCD88AB03A9 - 85D9F333DA9B41EE7377BBBA99E402726CD87C9EB671F8B91B33A206CD0CF578 - 7DB496AC6D63B372D55DAA1E659213E990320B9BAEDE5E597AC1DEBBBA04B524 - 43F1DB9F4D7AB9B4F76A07F56D0DF5979CF51BBF3B140DA3CBBFD15F87E7675C - 378BEE3FDC7AB77E55BE1D74249332E90F3A171FE5465E04CA8BECD1A2243125 - C5E4F7098B83929CE4169E11460A376DBD1E1E547CE478FCCAC3DF8C71ECB17F - 92FFE7D8DC91BAD384F6B97E052A2AACDBCD6607AC24AA8D938D93642D7C76E3 - 5AF9C276EC06B2DD3FD2A464984FEF3EBDD3EEC8BC4F7F2EFD3C14901F905BFB - FA3FE786F6E8D82A55924CBB5E674AC8331CD6CEF662489B0C5D62BEF5A6840F - 237A6F3C729CCE5254EE82D01ED49486D2D0818765D60FB74E45A51448084B18 - 532FD338FFF64CAF3A8A622BEF03EEDC5898205F59B480E8AA827C7B9DFFE034 - FAE31CC5BB452D2040BE6995AA02B859AFC30A1279288E0492FB151B6C69F3A7 - 73B16DD64B76E178CFBC7C2EDE8DDA5FCD0DA51E4D29FE73FB4E6ABF414BFF53 - 792D572F141E333CD3DF73C307DB1FD93EB20D6F37ED1F712ABAE745B851EFB4 - F632F3FDBD9DECD2C4DC7C311356D428D98D4BC87E9F6F4C678B1C347A63265C - DB6023F996EBDB6C35DDCD3A3CE8F0BB7C7595CBADEFCEB1920B724549BA5C34 - E55F3A24E54E13559F97EEAF884A4BF8D16BEB7BD38FD2C168F80500AFCA1360 - 869EF8EDF61B69FC942568C98CFB1F7E55202ED28C4A3CD5AD2CD9DC64F0D0EC - 046BF308D6BE6A3A264F65F9F32FB9820CE95FF649966AE5AFF23A0A1AFE1DCF - 7F1BB867B87F3DC9E6A24F5CBD3BF049D997F9D9E0A6EFDF229692AF6FEC41D4 - 74EAD175BCC7D0D6FB0C9B9BE8A58DF81543AA721E811E2B06E324B4381B57B9 - 65F9EBF56321FD4F4F3FE1CE6B3975154A5E7DA3FEC5FF19ED919291EF253476 - 7B784CB37BE47DA6AAE28DA2D3EDE9EA3CBE99D81B8366DC3E91C2ADA13C1993 - 9A5655CAEE07DBFDEF83D116DB64F98F28332E2C4E41666FA6EDDE1C2F8701E8 - F9D246DB472E6ECBA482A8DFFE49E41FE8DEEA8F43D26139D09EF25A2E3C7451 - 51280CB57357769C6A7B4FB3376F7F943D9CF968BF27FB7B33BE597709D9BA5E - 79EA11D3BEF72A0A1C4BFE8DDED9439348289B429AAACABEA9BA51E9B02DF721 - B3EB2889223E3B78982FC7B71DBD93B798375A5B6EE43D00FB8737E567F26C6C - 157B987B4DDE4BA0C31B4E876DD5CD961EC9AE67E0A8E96C4FFE4EEDE8D5A600 - 69BB7F38DF0E17964233F2D5C4CB74BA7D6F5A455F9FFCEAD0C7444A4B0C5397 - F42FE05A2B4675E794491BBDC248298952F8F64970839736AABDC8F9D47EBFB5 - A5AA20B190F4CE9EB487B43D85A69FBA1ADEF8DF6BC813095011D992068789E1 - A8D47E26DC2FBB3800A8199F9544C422ADB816559247B8DBA26D8D9DD047FD98 - 26F169D469FEBF1D08CFBB28A600E467349D265D977D21E11417064894CCF7FA - EEC511CB88B2CB243DE6CAC9792A1D43C88D445D479F7C3594DC7A9FBA5AB0F7 - 72F87005C118D902F248A79119F8161FFBB1A944FBDFBF47EAC6C2D48BE5098F - A12B8EDD0ED0E962B7AEB7A775BCCC5A0679DFB70E58912926C916BDBCA70337 - 3386B26DB1211267785BCA1587F17C49C1A327E7971E133EB753CCB0B669FE14 - C8777BFA92D694F67E306E7E6E4CE3031DC3DFBFD7EC9ED85098F60F57EFA493 - 9B0D580698DC4C10DB503D0473F82AA7CB7C0CC523868AD1DA16049253F19FEB - 5031A53C5747E905EC4C56F26D5478380AE9C5F0CC17C36FBCDD4D3145F1A995 - 4D0EBE011DBFEC78794DABBEEF3BBC41C32EDC9013A64DCF01A0665FBF7F6FFF - FB7893319E1E2E5FE2359CAFDF6AA6F17EC6D212ECCD023B4F717ADA0DBD69FC - 8D5C52FCE7457114F5D7EC9EB7F774F294BD4A8F487CF26DD191B38FA7EC6D0A - 376DE9F9A577A1B71CE6057A50B8036A1C1E1048C30E742C9A2E5D1D2EDDD464 - DF031203338E102BE9E4EEFBCD78393EBEBB58529FEC7DCFA641DEBCF1F5B527 - 75BDB8E79D76F435E9FE234D3333EAA6088F0B6B0925A57084B6A7B2B306A8BD - 7719F9A06DC981C5D880584C2357144DDFCFFD456F3AA835DC4A226D630AA4F2 - 5FE74B1EEBC5B704A48302290731B2571DF45EAC2DC392D3D71271C4EABF8FA5 - A77B9A6E5CF7022B19A0EA490A3EBF768359869F37F2FBDE1FE797AC9BB23388 - 0F821570938475680B2C565B6A8B159346F6999A1463EA42AA35F0662843D220 - F25E5C5B0F457A4F730CD5DA68473C10DD4B0D9717734DA7AFD2140E3723F42B - 18497B0BF9C146B99F50943D19F9718F25C649FBB357F1B5958C5832C85B6CDF - CB5BF577172B209428C5AA72B41A9941424A679AA25FD247EBE8FD5AE93FD305 - 53A287738B7359FAD2D3FF428861EEDEC2F57BB571F5C82872A69125347DBFBA - DF12F1E5A7D3A956D63A83F9B7DC1B1075642A86866F949DC8DA411F1E5F4785 - 7AAF5EC14875A0E50B4B69AE419E0A317D15D6FB3C639742B9D89434CE9FE48A - 8B429A4125EBB42D836CCFE142B04A2E5ED3795691BA984DAE64E5799EF0B6EC - 49D74D2AC4FCC1FB44D948CEDA1D3E9C47A2D042539538992A488A7961E9DCA5 - 8661ABFED6D460EC3C924F26AA31D4C873FF3287E23DD3992F0E195972FC4305 - 29EF9EBC736BB8884582C5139E24DF406FFE8A31B515C48575195962DC2B1799 - 282C751EB07164C974552DCF3A282DD1C7350C232D6F86EBB774277EEE34331A - C879FA14754219F8D6EFE5C75BFD04316710A907BA6B724A2BCBEFC3F76BF707 - 235347C353FBAE7605884520C228782BD44E531B9AEB96EBF6D3C8496812B29F - 838C1325F55A9A18F97A8EB830CB940D95AB500CDF55640F8B38F805E9103AF3 - 0A3C3A988E36FEAF07B5829677E62A46A83834D758C27C084CB9C8377346813A - 06AD1605865272AE21365B8FF7701DFD4ECBB9619643DFA175EC5D85EDAE41CB - BD2827578E3A39B39D4636555EA33D2A5D7B00FDF3507500634CC636F9E250F8 - B96848DA9E8FDC0F9A9AC9053C6C0AB5C49821D6DC14BA8C2DEF74E9FC0EB5DB - 5C50625C058BC32B3F52D15D0BA9C5A9BE7A1993946102972F5415F0DE256AFC - 16FEC9E41685A407CC82281221D1DE9DF9F305B45F3F7DA89BBAE51D666C7987 - 5ADA54D8180C5C9AC9075ADE112197CE9D35F4169CB8640015ACA24278E54743 - 9590DAA569971463B8A4090D385C4DAAB11833F79130A4A8F0F64BE611852CA8 - 851C9A49F68A51DD90E54CA6F3255DC63B8C89E06849361580ACE38DCAD82D69 - EEAC2333576D3C3A003D67B84F0D070D8A7656CEE47CE9FFE68EFC64D870B9BF - 145D8D198F78366A714DA57CE7859174B91347E70D8294E19ACFF1FB1D70ACA9 - B081B94D4F6A6829DFB28E34979696424A0509B49ABDB954AA183977FC9F19D5 - 6E5981944B359592CE25A5DC9C8DBCE1C8377AE09B537C54A5AB2590CC63C390 - A6B3832DED456110AA05C8ED16B671EC57AEE3F62BD0DEED2795370059C5B630 - 47E029FCF3D1631ED58E229BBEE7590E1A245D2D8695C5673803C1DC23F7221F - D7AC7F1A62A8B91155A5D46209350A1BEA5E0B69B902E1A209A90D6E233FE28C - 8338DF038754994D20A9CB254B7973E6872ED325CB2AF5EA52A8CF92E7D31646 - 4754755133B768D656520EE5D68B3D07797CC1995E70C8F54FEB43C9BD7B442B - 8968E6E38EAB4DF7F3DD19B2E51DCBAA5A74332D4BED8D8D4300DA5935DB6A18 - A9AEAB93ABD47AC057CE698F8E53A7256A97D899CD9085B7924949A26240AAD2 - 3859F63A33926E4439A30DDE9B29361221A120EC5CC197CCB292623B09160D51 - 2AC0BE80CF3B7E7D7E3F36244A317EF815CFE85C6BE65E5F2EDE70B5A7B9E1BF - 7F4D7D54B7B73F6B3E23D3811917466A945A8E6048FB4FCEE496F2E802D85A31 - 2A2B57F04EAF0A56D21F9002AECD138D998EFDB5A274E89EB8BC3E79A7DB0CF9 - C2A8A2466A6FBA36A894DCEC33D5E557A5661FFCC20CD24E1FE7B7066432777B - 50362C74D65A46A97EE18253BF2857279D04EBEF7E9EF0E75FE04206074D5E13 - A3E0316AE017545AA5F577D6A48D2CD50C5E42FFF3506AFFFC17A224E7495692 - 9087B8CE97BA48FBBDFEF369790585F0B8DA9FB195CFE325E77EB8181CEAF061 - AEFEC0B78A4FA28666AE30CD5DD3BD77943291BDE610E68312FFBF42DB542B21 - 9992218B496533E742FB4F2AD2A6E511A55B9A5F60F0498A76BE1006976133EB - 423221D7203045EAD13B6A85F9AAD6047E512AD6795E270DF1932FB480ACC058 - ED1C7E733B2B942225305949E59029D3E4B98B1466696FAE230098AF80FF4B49 - 836415812FF29E0F3C251FDD7BD31736FC54A935D3D64CC31B6356B8654A2AB6 - D71C23104B54BC71FA9314B8D0698946157570955A753FF9E293280761AC8ED4 - 9524263C757AAEA2CAEB1366B920AA4D85AE23181990295D8EF53FA62079753C - A7B7B6D75E7DF63E936B336D0D8FE15DFEA6A1917A4D1AF1055F707539F84EDB - C8432AE1E381A74EBF2153D4FDF427EA998B3C8237372ABDCA2EA98537332EA0 - 948AB966D69855EB459FA0B0C00A3965349A4AFBB3B9D9474FBF71BEE20DDD07 - 0A44668C74DCFBFD737655B08C696FD3BD774A851477EABC3C06523989B2D379 - E52D4C8E77CC3D73565C92E6A926877AE147D3C442444BE7B29996F23D823EE1 - 225511F28CA1610788AF1F32F8705DB1229911C1E7901EA061D14C4A9DF67C4F - FE698706AB675C9B0D1554DA86577EEA7C20A5887F80E8947E1216D55A43B3C8 - A9174841564722657D42A75CD2B42AAB8F0A74BB96B2577CC1063D253F832FF6 - 3FB6920E1C5B1956DFE0A3C5B92EE2306D1D33FB0FBBBCB76B9AE99E4369669C - 30C51BBCEEF3DD3592DEA754B9242A4A79BD53CC995F6017E11DEDABA997E3CE - F3F4DC005C04D79F5C6F292022DA05C69E49045BB392D1A683472E0511C4B71F - 99B992A24BF179A5E646459DC79B6BB4047BBBFD59772DCF9D191211AD7D833A - F3E70B544AEF7FCDE6B61F79996FB2C437AED21FEEAB55DC6DE44EB302E46623 - 72870CA2A7061F52E7C9C8B36AE43B6D5879A5E632FD75604E9B2FDCFE7C0EEB - EF8708ED1C215A51CA425A10EC3DEB80A924D26F0CC5757FADD729D3AF606532 - A13C854FAA27E9C85D3D66AAFBF66873A38B0C3F935F3A5240423AFECC385FA3 - 59D1DAD3B1E5AC6875CA92143E6CE64A31959AC63FCA3C70EC23DE8F22F6BE56 - 437FAD7A5A7798B137BDA53FC04FE91556DF04794AD6421AD8D3FAF222AA8F79 - 21EB491E040ACA90FE7E32D29F08FF36676691660FAA1D81177339F6A572C71A - 2971A5AA3A7AB340AC5C69514D91EF538F104279EAF4792E900AF8315CC8E06F - 09DE4CD27EF394EACB1F7CB29F26DCD3FAEA5BF5B50C2109EB43F8EBF521EAD9 - AADAF355FB0FFB96BE59A96B4F725F15752B9D3A06E15B5269B36706D5384582 - 9168D2574586E4042E352104A4C7E440A59C474FC3BE75ECA879C74C75B49779 - 34485DD35A387D98F29ADC6F4E5B92D54DF8081309E597D57DDDFECB20842B95 - 6D9EC62909823654AE24B9B5D0B575F831285175BDD2702854257AB42159BBB9 - D14C9646568A379702170559CBA7D288695D7586F51A7388DCC28FFD42F711D3 - BB7297BA9FFCF5949C491BE5D1ACC490520EDB473F3C2EC347EB4DCF0EAFAB97 - 8BA1F77F13445A1E177DAAC0448FD54A594F95C6F549F7E2A7F575FBD4F98EBF - A5A075D87E6F377355B505EF61538D9AEE71BCF894D7422888EFC54A53D63D67 - 5251F2A9AE9E8BE6C1F281FF099BCD97D5BE2C509CF4FF31AC9C39A59D4A725A - 31E683C9A7D454F44CCDA8020525574D979AADDC5CF767EA011703A8F656FDDA - E7F32B501D2ABDD082BFCC2393045CED09335DCCB4206E7ECDCCA48655D3C588 - 4A17ACD5904B1B35058F9A2FA73F6A4B7BEAD600B3591366CAA3FB266D944256 - 6D54236AA540905926067D551A0E4A9B409BE9A85187D006F90557DF4589E0A2 - 7E35E14379AA96A13702EBC3E71E4BF877C300E25F4CF8102322FA84CD4AD849 - D34520AC56493D89F72888AB2877317BCA94F6C5571F9A4DA32C86E27796934B - 2E30D553332019824C4FFFAA1D7C6A4FE722B3D3CECC1E99AD8BFDD587FA23CD - B467B47CF5A1F61031ADDE58E0ABCD47CD7FA23D140D95FC6AF38499BCCF77E5 - E6098A5B7D6D32E000FD296A868E75D8F80E4FDAE970E8B2E2B3F64C344C66D0 - F3C380DA2295DC4735E7386A5A131DFDAF361A60F6E8B101B54FECFCCBF280F4 - D1A8483FD9ACF6E433391B8DB40F3391FF2AEB5F17A83B97FECBE2FFABC1D031 - 259015D4CEDB939FD6394D413BAB4FE735D9BFEE4A6001A95FED934765319934 - 3D34555DD6A98950F7C77F532D75CEA32C69D076FBA9B33D1646CA5608512F9F - 487ECBE0835E0B337C221762D933EA5C17CCE9A589A3F4D1AA4819701466C55F - 20978F8AF8F077B22699241FA9BF8F3C27193F820B05FAE828F25B2988CBF151 - 9C5873A0CF1943A19CDDCA7B587BF13B1C9D2FA2FB2746E5EDAB0FBF4A9C4C1F - E2E3439EF715EF6B4954A79D9EF9CA749AEC6475EA71A23EA5EA5D3BBF763843 - FF97B337FE5F7BD7135BE575E5CF25A9E3924A03D8F23FD088A85667516BB01C - 8F27B1149819B9C048F5826816291AA91DA116A2B240A8A29A45562CAA4491E5 - 0551612AA4D9147533A091230DA990AA26929BB11CC4547413B16061FC87E115 - 7731885801F7FCBFF7FBDE7BC62430DC48F7F8F9FBEE3DFFEEEF9CCFF8E1FBEE - B9971FC7FC68F8BBF3FC718760703A2F78A905479C03C6E0CE28E5F6FCCFE745 - 63D4EFCA7FF388ACC2E1C08E90FC08A501053F9F67B1AE10B427E3CF088DDEA4 - ACA0DAE89B404EC3DFBC180B39B9C81D62113995B95B61B95598BF08ACF2AB23 - A055F1E7DF00B02A7EFBC628467FFB223F0CFE989406E49FA2DF4AE1BCD6CFEF - 9B3FFF46B261017DA67AFEC8FFED7B93B5C9F511C94E88477E3E258A49F0702B - 6CADFC4F7969DE28254F1FE4A3E8576F3C5245408EBDF0118CCDE18BBF60EEB5 - 8FC6E085CF009B2CB0DB9C5D5EFB482E643AA717166D44AD15D89F3B6A03F2C7 - 574700D1CC3D3F82A890A80B206D6D48E7858F9E1F21D8F8922890E6E8EF6F62 - 684B87D4C990B9D8142D0A855D70E0E0BA73AF7D268EE752276A8EB7A0ABF147 - AECAFDD5DF8D204C7E5D0569881CA831425C6EBFFA19B05C6D5930F2C2EF463C - 4CE18D68DC575909D4ABDC4C789536891D011D54743F1F63C9082700C2ABF0EC - 8823BE5A635439CC7DA620374BE155DA5F953606BCA5DB02CB96ABB2EFAA7CCB - 97B678C33B9553035859376D5517A278CB9DD98EAEE6D6F4AA14997571F8A74A - 97403C8A4447E02AE8A457BD13D69DD2D24C405DC5C754AD980035DC798B41D2 - F9F6F7E32501641DBA5704CA6DE6D54C3750686DD0F271FFF3FD4EC0B13AB9A7 - 6DBEA902354C4E5E3AF9D669026177AAEC7E6734B8AF41984BC5DC190D3AEF5B - A08A2F6981A48CA120483E8867637AA48687F4085E6B7664DDD7B06A6A29C8C5 - 814518E0DB4004872C622C02303BE265EE805A313B95E35D5EAD6206374DF5DB - A723FC439D33B058EFD638A96C0052B1B7625C200DE2494D27489F4DF5E29E44 - 595B1A097122C81B3048D7416B692712F6E465CA37065395445CB553A9332B52 - 75D76C906A04AEE61E94FA1806A824ED41660CF2107211167344AEB6D6B44135 - 0231A95C457350BC38472C6F98BD04A52309C82A0DDEA8F6AAFD563AAD1815C1 - A0459FA8B57731982AE325FCA51CF4230712F9614FAFF3C93A17ED881DFE02E9 - E9A13B7C6432DB5C8CCAA2E0773DFA465D432A8F4D314F756A7AF80F87FF5FFF - FAF22C6C8EEC8CA50D997C5ED4EB175D42382F265AF13C294DCFC5D40F43BE28 - 0DE1848EBE8BB47C6896CFAD90B32BE85895F13EC63D2E8B9FB8D9B7EC3CD6E9 - 13D7E3C00D35E0BBB86337A0524902DAC88BED542B92F870C7769F0D1DA9962C - C74A1B51320BE3299FBBAE393B6E225D31D5C69BA5002423EA469CCF4A4AF845 - 682D3B94C9560FB5B27B6465E7D3F6B4FD6EBBCD27BF3869ECA1D7BC56F707B5 - 819D675BD96EBF1B453100DF6C340DC9BD256E55116A5970872DB3157AA11DDD - 957D4353CEF6EACA05D5B89B6C80AB0A77FD09D886AEB01DDCD8B6CCF5CD736D - 0B5D91DF8564F33F9255412E35865AC1A50F34E367B0E9A7B14BFDD5BEB2BE0C - B5B00F0FFB917D7D68A91FAF5DD8A643CCE80AD8C3167F72DD4577610E01ABF3 - 47B162619FCB9A07D6C30EF4F380C4663F128C749509F6ADE824193C06C2E8DC - 2EA2EB5DE17F6FBEFCC99D5180A1F7817662FEEEBFFDE87A5703F1D136C48D2E - 68743586C8423ABC816F17F31A881D1A43FF4E33C7071AF33F586A000345AF88 - 75E647D787DE7FB9FF3A747144A8CD310CD1B3BA0E4304BE313F2A4214030F72 - 7D485384E3A373491D3EDBA5F05FA3F3DD776896A9EB83B50E9A42BA79676DE0 - E5C67CF7228CCFAFC1246DC745F339071A300FDD8B938D796CCEAF75607F9676 - D31BE599B279E4F15C154F10E277374633DFBD5B2A69751AAB7B77D72777D0A0 - AB015D9FF0E6CF5DC009829B2FC3078C43A620310DB4F4E90374828ABB6F86FF - D405704CB195106D3BC6DBA721685618D83D2B1C64CD76AC7574DF610DB11E67 - E8480766487F7416263FC0E0D413EF82324060D6F8BF681DD00D8B1DE8197DE0 - EDE66E9E049D1DBF79A77B91C645C9E8EC38823C731CF89BAE726F4567808478 - 3565372256A55DF773262A40C5F2788DD126531DE13BC7B5EA06BCE1ADFADDE9 - 38574E2214854E0AA2C4BC68C3F0AC61E0D92246AD57712A9ED49F70F05FF777 - 64531ADB36871E953C147A80F43C60CDDF94D6E20E366BFA506D431BEFBB2A33 - 75539E8E542CFECCEB1A408B37BDB50A2FEC83C7A1763FB47161679356C7DAD6 - CF15A3B13B9EFF7C2DD1EA10A06B95314C8772F098209F0D857DBC16712B9F49 - 2057599E08F77499E2D67BBEF449D654BA16E84234D337DDADEE0520B185C4CA - 29EAD60D139D4005F0F7B6262CEAD802CB5A44F76CE9E5D6D894F355CC486D24 - 6E374B98A6AF2C59051907BAA72A2CD731EE41189677A5A5BFD8BA64EF63FA4E - C5D77B7F52793FC87B5AFADE2AEF6D9B20F352CB479A091554F3A50B52C33F2E - E93B2DBED097BEAFF28984F22E0E864499F2F6AED1880EEBAB1753A1B8FF04F6 - 2E6D8AFAA69E44B744A7EC6EADE7C0CCFA49DC1F7811AEBCE52E5904B155A154 - 41C2D2A68495F8F1AEE9540C95A37695612B23738A882D20332706D9E8D24B83 - 0A6DB8275DFE5F9035A291B0A2559709532572C6FEC46B4B6AB413D440D22618 - D0A5C5CB425D8D784DFAA41399FC3F36E16B6C20A01AA992A875095E6F01687C - D2933CB472ACB10AC8CC8940EED8CCAAEC670A72CF1F79134BDEFA90B7BBA43D - 23B5211B48CA3E97DA2252B128705D9F6EE3A80ABE17A56A590E521DD81117AC - 2749B2C1AA76618F60938D182BF86BDD966C898250835D4D4BFA6A61BB669A86 - E4412E604DD572535382B0E7893D947A506D63563CA9BC956E0C2CEC19BE06C3 - D7F8C2BC61C0FB705C169D345DA5221DAE2FA17EF214BE0F887058CB3F18DF30 - C41EE3E01814BDC8AE5964161F5BA18287386CDED870D8021F161D0B6CD886F4 - 4093813D0FC30852E9DAFD4ED2F8589701E2FDE3B822D0C310DEB5FBAFC4360C - 7B85CBB05F1576B4E7D860B8CA30637BA57EAE7958C3E1AFE8C8AE8F6DA93EC4 - 35FBC84DFBC00BB5057C5C40FE8AEAD8326E7989445C68ACD2162DEE9BF52B9E - 978F7514104B12800C1678972FAED805AEAA35E266D26F458F103F822CD066C1 - BEB75FD164E8CF2455565945B11C89CB70ED25CC5874CC65D053CAE1A0B40819 - A42D25CA522B2DC5CA27B5C0DA542D25C2B1D69465C9028F499A3A195E3A032B - 70FA8C578F4901D18A54CA81D61AADC4BA2855590129DB8AAC15D74ED4B46A4A - 9AF036A15C79FBA7BD277FDAAB5CB20214E8B0BD527A7D72CA13B78246E1A5B7 - 4E03433C7E66A557FEF2674E2FFF757DFC2DC4DFBB72FAAD5E1293026DEB8D4C - EAA202F2B123AA675650F7B4FC590D1C22FEE98C0CD289B1CA1FEB6FF546F85E - BBA67F71AF9C1600D461EF2BE1A52FF363D5969A6742646240E605EA8ABC19F9 - E954CF85D43DF394403E594290742261FDC2776B6917126113B5153C21902007 - D2D1797F7CDB6F17E3F159800ADABF55C4004145FBE9C840B1601590FEAF5551 - 8E1404D1F9B5BB11FBFD6059F0EC280BF687A370BBA78ABBDE7F4C8A65AE9B21 - CB06B77FF3334DD16F7EE6D9D9FFAF7F8F206FF7DC067CE1B73514E96DE2F438 - 665661AD1E15DA459521B6414462A63DB68D19483DF7F83526284D55380470EE - 28E845286956DA8F491A92775241C2D1A0C1AFB721117027C0A17347CFF51C3A - 07472F51F312457D945874BD74F4DC211252D48780788AFC12F5892E91B90649 - 7714912F56C5FE25B580A8235FA6DF94211CE55074A7994CB29C64F836C20046 - 4C8F993051483DF2F048CAEAB745431F0FA58105D411A47008158E9EE3278E4E - 88C30D16C83828E4F0E507058D743404A93F3847CF85DA4F4613297EE8A9C4D0 - D36C628AB0F1BFBBD63F88743F74AE27FEC482FEC4B324543CB4995FD99836F9 - DBC0467C5C3B4840B6C257E7B59D23BABD07257C81FAECCF239D6E06A44F38F9 - B458323D16E7C85299CC24D9F41AF8FC95735AF4A2D2526D560BACD77471DB00 - D51946FF38EDD36F01F8EC5E6DEA92189FC67A040902C03EA92342B1B34D3B9D - 374C263CFDA3BC746A94EC3D61C13126A33A6068FE3CB2955AF354AA98D612D0 - FCD9E6527FF2F162CC443A368EF769788CCF54E3A61EB677C81730FD2214FA7D - 8B12DDFCC4362DB19D55929B8DE6BC04ACECD0E23B7F34595419B68DC9BB3FA9 - 7A7307D1146FE197572E1F9CF8C9BBE9D63AD8BA7259B67D3978D9B780A1B31B - 4902973D0C60B9E81CBCAC7BDD54BE0E4E3433AD1FEF90769396E10FBFA42376 - E91C603A8693369E9A40307A82F104F899B1C4BBFCAE3401C15E998827085F26 - B4AC8E7C625EE62DCAD8E3849CEFC9E14D6024078599444CF96097B241CE1576 - 6368C57BF8173A28544FDB667C1357ECEC6D104800C76EF0F5ACDC13F4A0F827 - E08AE9AA33159A6798B0A8A2738D3F65A88904066681202BCE0831A33E76565F - DE152226543866660145A1C4343128A7528A9584893C32886A32D0B1B313F180 - E7C453F8EFEA3F2471774CDAC0A7879E6560C2D6F3444D03C4B71E8E29DF67E1 - 98A9709357F4B10733C2960044508328224CFEB0CE0A36D0167B0ADF9B1B3BC1 - BB2DD1965187C74E1CBE40CD69380156254E02EC4BBDF87454D65D9AF0FEED3F - 4807D4D068FA84DF95CF96DFFE2177542A4ED4210B349869F714BE877E75F9FE - 89C3BAB67F0E2E1CA6A5F2CC00AF128031D2BD40AEA6917D010ED3F2FF0BD368 - 7081761E39C1DB8FA0118AC5016A5394E683CC2E10146A9335793BCCE302872E - 150A6324BC30AD57EC866F4A7105F0C1501B944A48C502AB999C58FFF3C38AB2 - 9678CC893AC78BB75FE84C2D1F3DC5750F7363BFD8A35AEC11E692029139AB05 - 6129E20EDF3C29933900E99CD093A18DCA4ADA5494A42D8E892EE13D9B19EA5B - 9E82779661EA1D3A11EE944C51E904D2547D4ACB67AD40E7A26C6E4B0255ED93 - 533E61E57D100B1C496D13BF09798F35C27F2C33C2533E99A5536288F964DF32 - F4D1F61FDCB2B92FDA3073B94F2201D2C0E158935CF49DA2D1DF610932FA4EC9 - 84DB3BA4D6B72C8EF8E83D76B08C0249033581954E71D42CB059B6A9F09E5B68 - 43485AB19FB20563135B028A36D650EFDEB57CA44EAA3A1EF2B23CD7F01EFFC2 - 01FD3D30EDBF1C74A320E2309B24F22DFF8CF99FB2FC364A55ABE0D5B0C6AD2A - 5474CD736A72623A703DBDFC8E13DEB4C09CAEFDBEF3DF8D8C0D9268E26F380B - D60D78388FDC829D8EBF2535416C2F20635CFECB15C2D720334A13A6941FC816 - 8420BDE649EB9EB8B6EB6AD2E0822E80E6EAA8A4AF26D1CA9D45D564A0BA93AA - 5FD7565EF85A6448159AD59369FD1968119A94B425356EA6EC256FF265456A16 - A78568457123B1602D81222E204D892508AFE16F0DBD14BF69D19B35156C9D94 - D52415F057ADCECE83F06B745FF5EA8356D48CAB20B7AD6E5BD5865DF19B3B2A - 50B62BB6A0F6922FA38E3011A4E20258DDA65F11123249B46A70234F182CDAE6 - 0C88B14947CD2D0B6C9E283B1B9D82A6874FA35BAD24241C9061B7A995AA3312 - B657B620DDA67AE6299AAE6E4B78160C40A2E3836A2A20C62B6CF3A449D16849 - 1A0E001D780E7C343B35567FCFA7B5137DF8D76C2567B6A37475DB877B952726 - A241BEB5ABA668B1FA7BD8AB8AE458878E793003494A14C42425C384038AC168 - AF9DD1BE57CE48A68E2A300452370389CD6CF67A347ECC7B127C850731A40F5D - 4955455D2CD47BF83A3C598A21B493579BADB5532DF8F089837C1AF4D503F9DC - 837A27E15484CF0224011050F0407671328CF4453778E06A82D6EF6037B1550F - EEA24D0A12667322EA9AE1EBCFE1959C02DF9F93E603C567181F38E0282025FE - 667AC07E4C8941AB4A6C45A1E826F60F2A8FAE661DBE01EDE9C1738FF554EAEA - 8ABBCE33F603CDBFAA58A25CD152021B83CC85BE1A20F77BC91B57D169BDDDF8 - ACBE121A6F5D3638BEC96AC2CDEAB502F90D290884F1B490CF8BE7A420D0F05A - BDA05CC7B5E2CE6AE73450EE79B460117BF495E0ADC6AE92A67A54E3617F0DF5 - 2C24D57D097BBC5E2638EB005B95019A943D56AA076368522C9994024A13AC18 - 504A10B111469B1620A62B0CDBD3066BF6366DB7399AA54CA62B1865B12780AE - DBDC515D25982E83AC33E43CF4DA5A4C6BD6961AFAFA48D87895A6810954FD14 - 578D0AB23FA657E5C665A61613C8C24C90505CAAC2F4B4F6B8EE744744EFAB28 - 7D29A52C77D586ACF51446789C8D9036A41DE986CD9565C2E91AD8945B5D471B - 59555D5A89FAC4403E45FAEA826C71ACD13307E98744C9713F7CA0C6A4A19D01 - 3E22CA0E64E2038B5871261E2EE5E736252737A970867D4596CADBA6616632BD - 6913410A281E5AD8E8277C57BC1BE2196D8A9AA34409ED90BCCEB1CC88581A1E - 6CE40A6FD260730240CF699AB1B1241A9884880526C3525887B01E80AEB4DA81 - 7BD4229EB1AB3449FBACB20A7F6340A2C3576FBA1D221097FAEC24FEF7D721B1 - 9AD4B4E095E2D644908CC087653A5C469662E0EDD640E0C6E2CE5B03A07C946F - 59973BF6916F10D8FD220C30842DEB0C11D6B73C5CDC49F22D0F0387B2E52190 - 39EBD27E21A8C802E41BCAA0C2B0EEE1A0946581DC869505EEEDBCB50B9D0658 - D805EB8889F7C809DC09EB8B406DE0ED7310C5FAE200693ED4349094C3D28D84 - 7833A181104072878618059A84F55B03049CB7270A0B641414262146D12D76B4 - 850D2830CD1DEA2DAF2FEE5AD0DD89762D085A04A9C8F5119948BE772D501DAC - EF5BB40B47E77CA27B20E3B020361CE83A1BD076427843E902AA2C320B078685 - 9D14352CA2001EF263E3AADB9D9CAE051E08DBE193A7FF1B24A1647725F07D98 - DA90E5059FC6FF2FC82F46056401991B159005646E54401690B951015940E646 - 056401991B159005646E54401690B951015940E646056401991B159005646E54 - 401690B951015940E646056401991B159005646E54401690B951015940E64605 - 6401991B159005646E54401690B951015940E646056401991B159005646E5440 - 1690B951015940E646056401991B159005646E54401690B951015940E6460564 - 01991B159005646E54401690B951015940E646056401991B159005646E544016 - 90B951015940E646056401991B159005646E54401690B951015940E646056401 - 991B159005646E54401690B951015940E646056401991B159005646E54401690 - B951015940E646056401991B159005646E54401690B951015940E64605640199 - 1B159005646E54401690B951015940E646056401991B159005646E54401690B9 - 51015940E646056401991B159005646E54401690B951015940E646056401991B - 159005646E54401690B9D15702E49F01D151EA2F0513EC9F0000000049454E44 - AE426082} - WaterMark.Image.Layout = ilTile - object lblFinalizar: TLabel - Left = 168 - Top = 344 - Width = 219 - Height = 13 - Caption = 'Haga click en Finalizar para salir del asistente.' - Visible = False - end - object Label7: TLabel - Left = 224 - Top = 86 - Width = 254 - Height = 14 - Caption = 'Copiando fichero CABVEN en el servidor...' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object Label11: TLabel - Left = 224 - Top = 136 - Width = 252 - Height = 14 - Caption = 'Copiando fichero LUGVEN en el servidor...' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object Label12: TLabel - Left = 224 - Top = 185 - Width = 254 - Height = 14 - Caption = 'Copiando fichero ARTVEN en el servidor...' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object Label13: TLabel - Left = 224 - Top = 296 - Width = 223 - Height = 14 - Caption = 'Cargando datos desde los ficheros...' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - Visible = False - end - object imgOK1: TImage - Left = 200 - Top = 87 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 - 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C - 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F - BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F - A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 - 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 - 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD - 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 - 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 - 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF - E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC - 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C - FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 - FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B - F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF - 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} - Visible = False - end - object imgOK2: TImage - Left = 200 - Top = 137 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 - 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C - 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F - BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F - A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 - 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 - 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD - 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 - 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 - 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF - E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC - 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C - FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 - FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B - F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF - 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} - Visible = False - end - object imgOK3: TImage - Left = 200 - Top = 186 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 - 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C - 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F - BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F - A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 - 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 - 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD - 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 - 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 - 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF - E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC - 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C - FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 - FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B - F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF - 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} - Visible = False - end - object Bevel1: TBevel - Left = 200 - Top = 236 - Width = 404 - Height = 10 - Shape = bsBottomLine - end - object imgBAD1: TImage - Left = 198 - Top = 87 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 - 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 - 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C - 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 - FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F - F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 - 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F - 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 - 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 - 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 - 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE - C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D - 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 - 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 - 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 - 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 - 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 - A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 - 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 - 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 - 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 - 5B380000000049454E44AE426082} - Visible = False - end - object imgBAD2: TImage - Left = 198 - Top = 137 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 - 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 - 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C - 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 - FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F - F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 - 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F - 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 - 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 - 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 - 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE - C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D - 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 - 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 - 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 - 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 - 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 - A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 - 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 - 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 - 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 - 5B380000000049454E44AE426082} - Visible = False - end - object imgBAD3: TImage - Left = 198 - Top = 186 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 - 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 - 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C - 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 - FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F - F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 - 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F - 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 - 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 - 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 - 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE - C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D - 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 - 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 - 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 - 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 - 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 - A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 - 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 - 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 - 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 - 5B380000000049454E44AE426082} - Visible = False - end - object imgOK4: TImage - Left = 200 - Top = 296 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A00000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000001DC4944415478DA63FCFFFF3F032580912C5DF3 - 8539E438B9E2DFFE78FF95640338E6F0C95B2B9BCCFAC1CB617EFEE6B170920C - 10582C68EBA86CBBF425DB5FA1B33FEF07FFB4BEB693680394D7AB04D8C89B2F - BAF1FB25F3F9FFAFC27E595CDA4A7418C8AF920DF7D7F59B73E6F32DD60BBF5F - A57EB3BEB898E840945A2E11E4ABEDBDF0DEEFD75C477EDCCBFD6E7D653A50F8 - 3F510608CE13B0F537F4D9F1E2DF67CEA35FEF767EB6BB5289AE066C00C74406 - 3E265E4E7526C6EF97BF2432FC008971CDE190F7D4F13CC8CCC126BFF3FDE5DD - 1F2F3DF065C8FFF613C300D14562FA96CA668B39F9F83577DC3FBCFAE359AE38 - 06A147CCB65A469BD5C5555D767DBAF2E6E5CF77963F9DEFDEC5E64A46D1C5A2 - 21FE7A3ED3595958440E7DBEF9F7DEFD4B61CA5C921A568A562D073E5FFB7FFF - E5DD98DF41AF96E3F226D80B7A1B7402EDD5ED563DFAF694E5F0ABAB777CC4CC - 25EFFD7AC17DFEF5CD2D5FFD9EF821071A560318EA35989CEDA5762A08CBBA3C - FFF2F23F2350F8C2AF675F5E3FBA6BFE2BFECB757C010D8F059E85BC36E106C1 - FB9F7F7ECEF298E1CBFF9B6FEF4EFFE5FF229B503423A2B15E83C5C541FAC46B - F63F46F7DEDCDBFFF9E9933886CCFF4F89370008F817F0E633B2B2C97E78F1AF - 96A1F8FD77429A410000C7D2C22769B7653D0000000049454E44AE426082} - Visible = False - end - object imgBAD4: TImage - Left = 198 - Top = 296 - Width = 16 - Height = 16 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 - 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D - 5A0000000467414D410000B18E7CFB5193000002854944415478DAA5935D4853 - 6118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304451021A651 - 362821B1ABA49B6EA4460961D88542055D84DD65454159921749949625CC8F9C - 329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F9FF330CE39 - FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546031A3D6E5F - F329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B81AD2066414 - 14DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA9C27A4439F - 5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E9F80C335C0 - 5BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8E3C8655BD6 - 86D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F03AD1843C15 - 125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD85A01A8A1DE - C5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC3760A7351E3D - 061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB7E5F4CB482 - 2509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF298493275A60CCA08 - 8739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04E6035AF142 - 101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148D92E7BE794 - 778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED245A0729AC6 - A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56A08C20ED94 - 76027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301EAEB507B700 - 334968A6631D019C759C5F627780822413BA194312CDFB41958C137FDB405273 - 9000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F00585538F0EAB2 - 5B380000000049454E44AE426082} - Visible = False - end - object lblError: TLabel - Left = 225 - Top = 316 - Width = 127 - Height = 13 - Caption = 'Mensaje de error al cargar' - Font.Charset = DEFAULT_CHARSET - Font.Color = clRed - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - Transparent = True - Visible = False - end - object pbarCABVEN: TProgressBar - Left = 224 - Top = 104 - Width = 344 - Height = 17 - TabOrder = 0 - end - object pbarLUGVEN: TProgressBar - Left = 224 - Top = 154 - Width = 344 - Height = 17 - TabOrder = 1 - end - object pbarARTVEN: TProgressBar - Left = 224 - Top = 203 - Width = 344 - Height = 17 - TabOrder = 2 - end - object JvAnimate1: TJvAnimate - Left = 200 - Top = 296 - Width = 16 - Height = 16 - CommonAVI = aviFindComputer - StopFrame = 8 - Visible = False - end - object bCargar: TButton - Left = 200 - Top = 253 - Width = 97 - Height = 25 - Caption = '&Cargar ficheros' - Enabled = False - TabOrder = 4 - OnClick = bCargarClick - end - end - end - object RORemoteService: TRORemoteService - ServiceName = 'srvTransfereciaFicheros' - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - Left = 80 - Top = 256 - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas deleted file mode 100644 index c2d2d34..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteCargaFicheros.pas +++ /dev/null @@ -1,344 +0,0 @@ -unit uAsistenteCargaFicheros; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, - cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, - cxGraphics, cxDropDownEdit, Mask, JvExMask, JvToolEdit, cxGroupBox, - ComCtrls, uROClient, SyncObjs, VARELA_Intf, - uROServiceComponent, uRORemoteService, uDataModuleBase, pngimage, - ExtCtrls, JvExComCtrls, JvAnimate; - -type - TfAsistenteCargaFicheros = class(TForm) - JvWizard1: TJvWizard; - JvWizardWelcomePage1: TJvWizardWelcomePage; - Label1: TLabel; - pageRutas: TJvWizardInteriorPage; - Label3: TLabel; - pagFinal: TJvWizardWelcomePage; - lblFinalizar: TLabel; - cbVentas: TCheckBox; - cbInventario: TCheckBox; - Label2: TLabel; - Label4: TLabel; - Label5: TLabel; - edtCABVEN: TJvFilenameEdit; - edtLUGVEN: TJvFilenameEdit; - edtARTVEN: TJvFilenameEdit; - cxGroupBox1: TcxGroupBox; - cxGroupBox2: TcxGroupBox; - Label8: TLabel; - Label9: TLabel; - Label10: TLabel; - JvFilenameEdit1: TJvFilenameEdit; - JvFilenameEdit2: TJvFilenameEdit; - JvFilenameEdit3: TJvFilenameEdit; - Label7: TLabel; - Label11: TLabel; - Label12: TLabel; - Label13: TLabel; - pbarCABVEN: TProgressBar; - pbarLUGVEN: TProgressBar; - pbarARTVEN: TProgressBar; - RORemoteService: TRORemoteService; - imgOK1: TImage; - imgOK2: TImage; - imgOK3: TImage; - Bevel1: TBevel; - imgBAD1: TImage; - imgBAD2: TImage; - imgBAD3: TImage; - imgOK4: TImage; - imgBAD4: TImage; - lblError: TLabel; - JvAnimate1: TJvAnimate; - bCargar: TButton; - procedure JvWizard1FinishButtonClick(Sender: TObject); - procedure cbVentasClick(Sender: TObject); - procedure edtCABVENChange(Sender: TObject); - procedure edtLUGVENChange(Sender: TObject); - procedure edtARTVENChange(Sender: TObject); - procedure pagFinalEnterPage(Sender: TObject; - const FromPage: TJvWizardCustomPage); - procedure bCargarClick(Sender: TObject); - procedure pagFinalPage(Sender: TObject); - private - { Private declarations } - FCritical: TCriticalSection; - FFileService: IsrvTransfereciaFicheros; - procedure ActualizarBotonesNav; - procedure OnUploadAborted(Sender: TObject); - procedure OnUploadError(Sender: TObject); - procedure OnUploadFinished(Sender: TObject); - procedure OnUploadProgress(Sender: TObject); - procedure OnUploadStarted(Sender: TObject); - procedure OnLoadSuccess(Sender: TObject); - procedure OnLoadError(Sender : TObject); - procedure CargarFicherosEDI; - procedure SubirFicheros; - public - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - end; - - procedure VerAsistenteEtiquetasMontajes; - -implementation - -uses - uSubirFicheros, uCargarFicheros; - -{$R *.dfm} - -procedure VerAsistenteEtiquetasMontajes; -var - fAsistenteCargaFicheros: TfAsistenteCargaFicheros; -begin - with TfAsistenteCargaFicheros.Create(NIL) do - try - ShowModal; - finally - Free; - end; -end; - - -procedure TfAsistenteCargaFicheros.JvWizard1FinishButtonClick( - Sender: TObject); -begin - Close; -end; - -procedure TfAsistenteCargaFicheros.cbVentasClick(Sender: TObject); -begin - edtCABVEN.Enabled := (Sender as TCheckBox).Checked; - edtLUGVEN.Enabled := (Sender as TCheckBox).Checked; - edtARTVEN.Enabled := (Sender as TCheckBox).Checked; - ActualizarBotonesNav; -end; - -procedure TfAsistenteCargaFicheros.ActualizarBotonesNav; -var - bActivarNext : Boolean; -begin - bActivarNext := True; - if JvWizard1.ActivePageIndex = 1 then // Rutas de ficheros - begin - bActivarNext := bActivarNext and (cbVentas.Checked or cbInventario.Checked); - - bActivarNext := bActivarNext and - ((Length(edtCABVEN.Text) > 0) and - (Length(edtLUGVEN.Text) > 0) and - (Length(edtARTVEN.Text) > 0)); - pageRutas.EnableButton(bkNext, bActivarNext); - end; -end; - -procedure TfAsistenteCargaFicheros.edtCABVENChange(Sender: TObject); -begin - ActualizarBotonesNav; -end; - -procedure TfAsistenteCargaFicheros.edtLUGVENChange(Sender: TObject); -begin - ActualizarBotonesNav; -end; - -procedure TfAsistenteCargaFicheros.edtARTVENChange(Sender: TObject); -begin - ActualizarBotonesNav; -end; - -procedure TfAsistenteCargaFicheros.OnUploadAborted(Sender: TObject); -begin - fCritical.Enter; - with Sender as TSubirFicheroThread do - try - if Pos(FileName, edtCABVEN.Text) > 0 then - imgBAD1.Visible := True; - if Pos(FileName, edtLUGVEN.Text) > 0 then - imgBAD2.Visible := True; - if Pos(FileName, edtARTVEN.Text) > 0 then - imgBAD3.Visible := True; - finally - fCritical.Leave; - end; -end; - -procedure TfAsistenteCargaFicheros.OnUploadError(Sender: TObject); -begin - fCritical.Enter; - with Sender as TSubirFicheroThread do - try - if Pos(FileName, edtCABVEN.Text) > 0 then - imgBAD1.Visible := True; - if Pos(FileName, edtLUGVEN.Text) > 0 then - imgBAD2.Visible := True; - if Pos(FileName, edtARTVEN.Text) > 0 then - imgBAD3.Visible := True; - finally - fCritical.Leave; - end; -end; - -procedure TfAsistenteCargaFicheros.OnUploadFinished(Sender: TObject); -begin - fCritical.Enter; - with Sender as TSubirFicheroThread do - try - if UploadOK then - begin - if Pos(FileName, edtCABVEN.Text) > 0 then - imgOK1.Visible := True; - if Pos(FileName, edtLUGVEN.Text) > 0 then - imgOK2.Visible := True; - if Pos(FileName, edtARTVEN.Text) > 0 then - imgOK3.Visible := True; - end; - finally - fCritical.Leave; - end; - if imgOK1.Visible and imgOK2.Visible and imgOK3.Visible then - bCargar.Enabled := True; -end; - -procedure TfAsistenteCargaFicheros.OnUploadProgress(Sender: TObject); -begin - FCritical.Enter; - try - with Sender as TSubirFicheroThread do - begin - if Pos(FileName, edtCABVEN.Text) > 0 then - pbarCABVEN.Position := CurrentBytePos; - if Pos(FileName, edtLUGVEN.Text) > 0 then - pbarLUGVEN.Position := CurrentBytePos; - if Pos(FileName, edtARTVEN.Text) > 0 then - pbarARTVEN.Position := CurrentBytePos; - end; - finally - fCritical.Leave; - end; -end; - -procedure TfAsistenteCargaFicheros.OnUploadStarted(Sender: TObject); -begin - FCritical.Enter; - with Sender as TSubirFicheroThread do - try - if Pos(FileName, edtCABVEN.Text) > 0 then - pbarCABVEN.Max := FileSize; - if Pos(FileName, edtLUGVEN.Text) > 0 then - pbarLUGVEN.Max := FileSize; - if Pos(FileName, edtARTVEN.Text) > 0 then - pbarARTVEN.Max := FileSize; - finally - FCritical.Leave; - end; -end; - -constructor TfAsistenteCargaFicheros.Create(AOwner: TComponent); -begin - inherited; - FCritical := TCriticalSection.create; - FFileService := RORemoteService as IsrvTransfereciaFicheros; -end; - -destructor TfAsistenteCargaFicheros.Destroy; -begin - FFileService := nil; - FCritical.Free; - inherited; -end; - -procedure TfAsistenteCargaFicheros.pagFinalEnterPage( - Sender: TObject; const FromPage: TJvWizardCustomPage); -begin - SubirFicheros; -end; - -procedure TfAsistenteCargaFicheros.CargarFicherosEDI; -begin - JvAnimate1.Visible := True; - JvAnimate1.Active := True; - Label13.Visible := True; - pagFinal.EnableButton(bkBack, False); - pagFinal.EnableButton(bkCancel, False); - imgBAD4.Visible := False; - imgOK4.Visible := False; - lblError.Visible := False; - - TCargarVentasThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), - ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError); - -{ TCargarInventarioThread.Create(ExtractFileName(edtCABVEN.Text), ExtractFileName(edtLUGVEN.Text), - ExtractFileName(edtARTVEN.Text), OnLoadSuccess, OnLoadError);} -end; - -procedure TfAsistenteCargaFicheros.SubirFicheros; -begin - TSubirFicheroThread.Create(edtCABVEN.Text, OnUploadStarted, OnUploadProgress, - OnUploadFinished, OnUploadAborted, OnUploadError); - - TSubirFicheroThread.Create(edtLUGVEN.Text, OnUploadStarted, OnUploadProgress, - OnUploadFinished, OnUploadAborted, OnUploadError); - - TSubirFicheroThread.Create(edtARTVEN.Text, OnUploadStarted, OnUploadProgress, - OnUploadFinished, OnUploadAborted, OnUploadError); -end; - -procedure TfAsistenteCargaFicheros.OnLoadError(Sender: TObject); -begin - JvAnimate1.Visible := False; - JvAnimate1.Active := False; - imgBAD4.Visible := True; - lblError.Caption := (Sender as TCargarFicherosThread).ErrorText; - lblError.Visible := True; - pagFinal.EnableButton(bkBack, True); - pagFinal.EnableButton(bkCancel, True); -end; - -procedure TfAsistenteCargaFicheros.OnLoadSuccess(Sender: TObject); -begin - Beep; - JvAnimate1.Visible := False; - JvAnimate1.Active := False; - imgOK4.Visible := True; - Label13.Caption := 'Ficheros cargados correctamente'; - lblFinalizar.Visible := True; - pagFinal.EnableButton(bkFinish, True); -end; - -procedure TfAsistenteCargaFicheros.bCargarClick(Sender: TObject); -begin - bCargar.Enabled := False; - CargarFicherosEDI; -end; - -procedure TfAsistenteCargaFicheros.pagFinalPage(Sender: TObject); -begin - bCargar.Enabled := False; - imgOK1.Visible := False; - imgOK2.Visible := False; - imgOK3.Visible := False; - imgOK4.Visible := False; - imgBAD1.Visible := False; - imgBAD2.Visible := False; - imgBAD3.Visible := False; - imgBAD4.Visible := False; - pbarCABVEN.Position := 0; - pbarLUGVEN.Position := 0; - pbarARTVEN.Position := 0; - JvAnimate1.Visible := False; - lblFinalizar.Visible := False; - lblError.Visible := False; - Label13.Visible := False; - Label13.Caption := 'Cargando datos desde los ficheros...'; - pagFinal.EnableButton(bkBack, True); - pagFinal.EnableButton(bkCancel, True); - pagFinal.EnableButton(bkFinish, False); -end; - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm deleted file mode 100644 index cd43bed..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.dfm +++ /dev/null @@ -1,6759 +0,0 @@ -object fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes - Left = 159 - Top = 496 - ActiveControl = bImprimir - BorderStyle = bsDialog - Caption = 'Asistente para la impresi'#243'n de etiquetas' - ClientHeight = 376 - ClientWidth = 520 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object JvWizard1: TJvWizard - Left = 0 - Top = 0 - Width = 520 - Height = 376 - ActivePage = JvWizardWelcomePage2 - ButtonBarHeight = 42 - ButtonStart.Caption = 'To &Start Page' - ButtonStart.NumGlyphs = 1 - ButtonStart.Width = 85 - ButtonLast.Caption = 'To &Last Page' - ButtonLast.NumGlyphs = 1 - ButtonLast.Width = 85 - ButtonBack.Caption = '< &Atr'#225's' - ButtonBack.NumGlyphs = 1 - ButtonBack.Width = 75 - ButtonNext.Caption = '&Siguiente >' - ButtonNext.NumGlyphs = 1 - ButtonNext.Width = 75 - ButtonFinish.Caption = '&Finalizar' - ButtonFinish.NumGlyphs = 1 - ButtonFinish.Width = 75 - ButtonCancel.Caption = 'Cancelar' - ButtonCancel.NumGlyphs = 1 - ButtonCancel.ModalResult = 2 - ButtonCancel.Width = 75 - ButtonHelp.Caption = '&Ayuda' - ButtonHelp.NumGlyphs = 1 - ButtonHelp.Width = 75 - ShowRouteMap = False - OnFinishButtonClick = JvWizard1FinishButtonClick - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - DesignSize = ( - 520 - 376) - object JvWizardWelcomePage1: TJvWizardWelcomePage - Header.Height = 80 - Header.Title.Color = clNone - Header.Title.Text = 'Impresi'#243'n de etiquetas' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -19 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = 'Bienvenido al asistente de impresi'#243'n de etiquetas para montajes.' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -13 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - Header.ShowDivider = False - WaterMark.Image.Picture.Data = { - 07544269746D617082960100424D82960100000000003204000028000000A400 - 000074020000010008000000000050920100120B0000120B0000FF000000FF00 - 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 - 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 - 07005B2509005923090057230900552309005D270B005B250B0059250B005222 - 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C - 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 - 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 - 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 - 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 - 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 - 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A - 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 - 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 - 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F - 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F - 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C - 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D - 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 - 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 - 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E - 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F - 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 - 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F - 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F - 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A - 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 - 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 - C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED - DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC - FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF - DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 - F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 - B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020203110311110303030303030303030303030303030303030303 - 0303030303030303030303030303030303111103111111111111111111321132 - 3232321132111111111111111111111111111111111111111111111111111111 - 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E - 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303031111111111111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 111111031111111111111111321616161616321111111103030303030E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 1111111103031111111111111111111111321616161632111111110303030303 - 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311111111111111111111111111111111111111111111111110111111111111 - 1111111111111111030311111103111111111111113216161616321111110303 - 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303111111111111111111111111111111111111111111111111111111 - 1111111111111111111111111111110303111111111111111132161616163211 - 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111111111111111 - 1111111111111111111111111111111111110311030311111111111111323216 - 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303031111111111111111111111111111111111111111 - 1111111111111111111111111111111111110311110303031111111111111111 - 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111111111111111111111111111111103110303030303031111 - 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303031111111111111111111111 - 1111111111111111111111111111111111111111111111111111110303030303 - 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111111111111111111111111111111103 - 0303030303030311111111111111113232111111111103030303030E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030311 - 1111111111111111111111111111111111111111111111111111111111111111 - 111111030303030303030311111111111111113232111111111103030303030E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030311111111111111111111111111111111111111111111111111111111 - 1111111111031103030303030303111111111111111111323211111111110303 - 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303031111111111111111111111111111111111111111111111111111 - 1111111111111111110303030303030303030303111111111111111111111111 - 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303111111111111111111111111111111111111111111 - 1111111111111111111111111103030303030303030303031111111111111111 - 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303031103111111111111111111111111111111 - 1111111111111111111111111111031111030303030303030303030311111111 - 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111111111111111111103030303030303030303030303 - 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303111111111111111111 - 1111111111111111111111111111111111111111111111031103030303030303 - 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111111111111111111111111111111111103031103030303 - 0303030303030303031111111111111111111111110303030303030E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311111111111111111111111111111111111111111111111111111111110303 - 030303030303030303030303031111111111111111111111110303030303030E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303111111111111111111111111111111111111111111111111111111 - 1111030303030303030303030303030303031111111111111111111111030303 - 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111111111111111 - 1111111103030303030303030303030303030303030311111111111111111111 - 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303111111111111111111111111111111111111 - 1111111111111111030303030303030303030303030303030303111111111111 - 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111110311030303030303030303030303030303030303031111 - 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303031111111111111111111111 - 1111111111111111111111111111030303030303030303030303030303030303 - 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111110303030303030303030303030303 - 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030311 - 1111111111111111111111111111111111111111111103030303030303030303 - 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303111111111111111111111111111111111111111111110303030303030303 - 0303030303030303030303030303031111111111111111110303030303030E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111110311030303 - 0303030303030303030303030303030303030311111111111111110303030303 - 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030311110303111111111111111111111111111111111103 - 0303030303030303030303030303030303030303030303031111111111110303 - 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 0311110303030303030303030303030303030303030303030303030303111111 - 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111111111111111111 - 1111111111111103030303030303030303030303030303030303030303030303 - 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303031103111111111111 - 1111111111111111111111030303030303030303030303030303030303030303 - 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030311031111 - 0311111111111111031103110303030303030303030303030303030303030303 - 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303110303030303 - 0303111111111111111111111111111103030303030303030303030303030303 - 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303110311110311110311111111111103110303030303030303030303 - 03030303030303030303030303030303030303030303030303030303030E0E0E - 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303031111111111111111111111030303030303030303 - 0303030303030303030303030303030303030303030311110303030303030303 - 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311111111110311111103110303030303 - 0303030303030303030303030303030303030303030303030311111111110303 - 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111103111103111103 - 0303030303030303030303030303030303030303030303030303030303031111 - 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303110303031111111111 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 1111031103030303030303030303030303030303030303030303030303030303 - 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030311030303030303030303030303030303030303030303030303030303 - 03030303030303030303111103030303030303030303030E0E03030E030E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303110311030303030303030303030303 - 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311111111111111110303030303030303 - 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311030311110303030303030303 - 0303030303030303030303030303030303030303031111111111111103030303 - 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303110303031103110303030303 - 0303030303030303030303030303030303030303030303030311111111111103 - 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111031103030303111111111111 - 0303030303030303030303030303030303030303030303030303030303031111 - 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111103111111110311 - 1111031103030303030303030303030303030303030303030303030303030311 - 111111111111111103030303030303030303030303030303030303030303030E - 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031103030303030303030311110311 - 1103111111030303030303030303030303030303030303030303030303030303 - 0303031111111111111111110303030303030303030303030303030303030303 - 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 - 03036A6AB4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311110311110311031103031103111111030303030303030303030303030303 - 0311030303111111111111111111111111110303030303030303030303030303 - 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E - 0303030303036A6AB4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303110303030303111103110303031111111103030303030303030303030303 - 0303030303030303030311111111111111111111111103030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 030303030303030303036A6AB4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030311110303111111111103030303030303030303 - 0303030303030303030303030303111111111111111111111103030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 03030303030303030303030303036A6AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303031111111111111111110303110311111111 - 0303111111030303030303030303030303110311111111111111111111110303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303036AA2B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111030311030303030303030303111111111111111111111111 - 1103030303030303030303030303030303030303030303030303030303030303 - 030303030303030303030303030303030303030303036A6AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111110303031103030303030303031111111111111111 - 1111111111030303030303030303030303030303030303030303030303030303 - 03030303030303030303030303030303030303030303030303036A6AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311031111111111111111111111111111 - 1111111111111111111111111111111111111103031103030311031103111111 - 1111113211111111111111030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303036A6A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111111111111111111111111103111103031103031111 - 1111111111111132111111111111110303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 03036AA2B4C40203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 1103111111111111111111113211111111111103030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303036AA2B4C402030303030303030303030303030303030303030303 - 0303030303030303110303030303030303030303030303030303030303111111 - 1111111111111111111110113232111110111132111111111010111111111111 - 1111111111111111111111113232113210321011111111111111030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 030303030303030303036AA2B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303031103111111 - 1111111111111110111111101010103210101111111010111010101032111111 - 1111111111111111111111111111111111323210101010321111111103030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303A2A2B4C40203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111110101010101010321010101010101010101010101010 - 1010101010111111111111111111111111111111113210321010101111111111 - 1103030303030303030303030303030303030303030303030303030303030303 - 030303030303030303030303030303031230A2A2B4C402030303030303030303 - 0303030303030303030303030303030303030303030303030303030303031111 - 1111111111111111101111111010101010101010101010101010101010101010 - 10101010101010111010101011111111111110111110113211110D1111113232 - 1011111111110311111111111103110303030303030303030303030303030303 - 03030303030303030303030303030303030303030303A2A2B4C4020303030303 - 0303030303030303030303030303030303030303030303030303111111111111 - 1111111111111111111111111010111010101010101010101010101010101010 - 1032321111113232101010101010101010101010113210323211111112121313 - 0D340D1111111111111111111111111111111103030303030303030303030303 - 0303030303030303030303030303030303030303030311110311A2A2B4C40203 - 0303030303030303030303030303030303030303030303030303031111111111 - 1111111111111111111111111111111011111010101010101010101010101010 - 10101032101112120D0D11111111321010101010101010321010103211111213 - 0F0F0F171713130D121111111111111111111111111111111111110303030303 - 030303030303030303030303030303030303030303030303030311111111A2A2 - B4C4020303030303030303030303030303030303030303110311111111111111 - 1111111111111111111111111111111110101010101010101010101010101010 - 10101010101010160D121213130E13130D0D1111323210101010101010321111 - 12130F0F17021917191717171313121212111111111111111111111111111111 - 1103030303030303030303030303030303030303030303031103030311111111 - 1111A2B4B4C40203030303030303030303030303030303111111111111111111 - 1111111111111111111111111111111010101010101010101010101010101010 - 1010101010101010101616121317170F1719170F0F1312121111113232101032 - 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 - 1111111111110311111103030303110311110303030303030311030311111111 - 111111111111A2A2B4C402030303030303030303030303030303111111111111 - 1111111111111111111111111011101010101010101010101010101010101010 - 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 - 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 - 1011101011111111111111111111110303111111111111031111111111110311 - 11111111111111111132A2A2C3C4020303030303030303031103030303111111 - 1111111111111111111111111111113210101010101010101010101010101010 - 1010101010101010101010101010160D12131719192A62626262622A1D191919 - 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 - 1212111132101010111011111111111111111111111111111111111111111111 - 1111111111111111111111113232A2A2C3C40203030303030303030311111111 - 1111111111111111111111111011101010101010101010101010101010101010 - 10101010101010101010101010101010161612131717191D6262622D66626262 - 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D - 190219020F0F1312111132101010103232323211111111111111111111111111 - 111111111111111111111111111132323216A2A2C3C402030303030303030311 - 1111111111111111111111111132111010101010101010101010101010101010 - 101010101010101010101010101010101010101012121317191D6262622D67D2 - 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 - 6441622A2A2A191902020F131312111132101010103211111111111111111111 - 11111111111111111111111111111111323232161616A2A2C3C4020303030303 - 0303031111111111111111321132321032101010101010101010101010101010 - 1010101010101010101010101010101014141414101532121317171962626263 - 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 - B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 - 1111111111111111111111111111111111113232323216101010A2B4B4C40203 - 0303030303031111111111111111113210101010101010101010101010101010 - 1010101010101010101010101010101010101414141010101634131717192A62 - 626265D2686868686766666666666666652D63626262622A622A6465669F6566 - 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 - 101032323232323232323232321132113211323232321010101010101010A2A2 - C3C4020303030303031111111111111132101010101010101010101010101010 - 101010101010101010101010101410101010141414141414101515160D131719 - 1D62636264D268686868D26867666666666666666666666563622A622D656566 - 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D - 1611113210101010101010101010103232323211321616101010101010101010 - 1010A2A2C3C40203030303031111111111113232321010101010101010101010 - 1010101010101010101010101410101010141414141414141414141515160D13 - 17171D6262632D676868686868686868676766666666666666666666662D2D65 - 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 - 1919171713120D0D0D1610101010101010101010323216103210101010101010 - 101010101010A2B4C3C402030303031103111111113210321010101010101010 - 1010101010101010101010101014141414141414141414141414141414141516 - 0D0D17171D6262622D6668686868686868686868676666666666666666666666 - 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 - 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 - 10101010101010101010A2B4B5C4020303031111111111321110101010101010 - 1010101010101010101010101414141414141414141414141414141414141414 - 151016341317172A6262636668686868686868686868D2686766666666666666 - 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 - B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 - 1010101010101010101010101515A2B4C3C40203030311111111113210101010 - 1010101010101010101010101414141414141414141414141414141414141414 - 1414141516161317172A62626265686868686868686868686868686867676666 - 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 - 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 - 101010101010101010101010151015153515B4A2C3C402030311111111321010 - 1010101010101010101010101414141414141414141414141414141414141414 - 14141414141515163417173F626263646868B368686868686868686868686868 - 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 - 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 - 10101010101010101010101010101010351414141414B4B4C3C4020311111111 - 1110101010101010101010101014141414141414141414141414141414141414 - 1414141414141414151634180F1C6262622D6768686868686868686868686868 - 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D - 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 - 1717121616101010101010101010101010101014351414141414A2B4B5C50203 - 0311111011101010101010101010101014141414141414141414141414141414 - 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 - 6868686868686868676666666666666666666666652D6363636363632D632D63 - 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 - 6262622A1D17171216101010101010101010151510101414141414141414B4B4 - C3C4020311111111101010101010101010101014141414141414141414141414 - 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 - 686868686868686868686868676666666666666666666666652D2D6363636363 - 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 - B3B3B3B36865622A622A17123410101510101510151415141514141414141414 - 1414B4B4C3C50211111110101010101010101010101414141414141414141414 - 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 - 68686868686868686868686868686868676666666666666666666666652D2D62 - 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 - 666666676868686868B36866636263130D151415151515101514151414141414 - 141414141414B4B4B5C502111111101010101010101010141414141414141414 - 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 - 68686868686868686868686868686868686867D2666666656666666666666666 - 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 - 66666666666666676667D268B368B368682A62130D1015101514101515141414 - 14141414141414141414B4B4B5C5021111101010101010101010141414141414 - 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 - 686868686868686868686868686868686868686867D267676565646565656566 - 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 - 6565656566656666666666666766676767686868682A2A130D10101414101414 - 141414141414141414141414141AB4B4B5C50211111010101010101010141414 - 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 - B368B368B36868686868686868686868686868686868D2D26767666664646464 - 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E - 64646464656565656566656666666666666766666766676868622A1316151414 - 141414141414141414141414141414141414B4B4B5C502111010101010101010 - 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 - 636568686868686868686868686868686868686868686868D267676666656464 - 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C - 2F2F632D2D646464656565656566666666666667666667676767676665622A34 - 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 - 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F - 6362626468686868686868686868686868686868686868686868686767676665 - 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C - 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 - 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 - 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 - 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 - 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 - 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D - 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 - B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 - 383838381A143C632D6868686868686868686868686868686868686868686867 - D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C - 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 - 2D622A626262621C131615141414141414141414141414141414141414141A1A - 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 - 3838383838383838381A3C622D68686868686868686868686868686868686868 - 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C - 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 - 656464622A622D656763621C3416351414141414141414141414141414141A14 - 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 - 383838383838383836363838381A3C632D686868686868686868686868686868 - 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 - 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C - 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 - 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 - 38383838383838383838363836363638381A3C632D6868686868686868686868 - 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 - E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 - 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 - 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A - 1A38383838383838383836383939393639393938381A3C638568686868686868 - 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 - F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 - 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 - 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 - 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 - 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB - E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 - EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 - 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 - 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 - 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 - E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 - 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C - 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 - 101414141414141A1A1A33383838383836393939393939393939393939393939 - 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 - F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 - 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E - 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 - C7C602101010141414141A1A1A1A383838383838363939393939393939393939 - 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF - F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 - 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 - 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A - 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 - 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE - EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 - DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 - 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A - 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 - 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE - FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 - E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 - E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A - 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 - 3939393939393939393B393939393939393841872D6868676767666564642E2F - 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 - F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 - F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 - 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 - 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 - 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 - F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD - FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 - 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 - 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 - 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB - E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC - DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 - 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 - 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 - 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 - E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 - 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 - F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 - 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 - 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 - E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB - 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE - EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 - C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B - 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF - F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD - DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 - E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 - 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B - 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 - F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 - E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 - E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 - 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B - 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 - F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 - F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB - FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A - 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B - 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC - F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 - F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 - F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A - 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 - 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF - DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 - F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 - 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A - 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 - 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 - 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 - FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE - EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 - 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 - 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE - 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 - E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 - E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C - 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 - 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 - 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 - F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 - E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA - E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 - B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D - 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF - EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 - E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA - EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 - 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D - 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 - F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 - E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 - DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 - 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D - 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 - F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE - FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 - E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 - 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B - 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC - F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 - F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 - E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 - 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B - 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF - DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 - F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED - EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 - 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 - 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 - 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 - E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE - EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 - 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 - 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE - 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 - E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC - F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C - 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 - 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D - 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 - E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 - EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA - E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 - C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 - 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 - E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB - FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA - EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 - 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 - 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 - E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC - FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 - E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D - 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 - 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 - E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 - FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 - E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B - 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 - 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB - E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB - E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE - FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B - 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D - 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 - F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 - F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 - 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B - 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB - FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB - EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 - F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B - 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 - 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE - FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB - EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA - FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B - 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 - 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 - 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB - E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 - FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE - E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 - C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 - 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF - F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 - DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E - 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F - 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED - EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 - E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 - 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 - 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 - F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 - F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 - 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 - 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC - DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 - E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D - 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E - 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF - DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 - E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B - 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 - 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 - FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF - EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D - 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B - 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE - 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 - F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 - FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B - 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B - 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 - 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA - E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 - F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 - E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 - B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C - 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 - E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 - F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 - E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E - 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 - 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 - E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 - F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 - EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A - 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C - 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 - E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 - F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 - E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 - 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 - 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 - E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC - DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 - F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 - 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 - 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA - E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 - DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF - EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D - 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E - 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F - F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 - DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF - EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 - 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 - 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D - 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC - F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 - EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B - 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D - 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 - 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB - ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 - F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE - 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 - 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 - 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A - 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 - F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 - DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 - 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 - 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 - 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 - F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE - F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D - 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 - 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 - E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC - ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 - F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 - 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 - 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 - 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE - EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 - F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 - 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C - 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B - 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 - E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF - F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 - 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 - 454556747D818A8A83838390899089898989898989897C907C83838379585858 - 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 - E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE - EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 - 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E - 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 - 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC - DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 - ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 - 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 - 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 - 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE - FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 - EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 - 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A - CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 - 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC - DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA - EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 - 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 - 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 - 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC - B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 - E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 - 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E - 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 - 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC - ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC - ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 - D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 - 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 - 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 - 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD - DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E - 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 - 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D - 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E - 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 - D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F - 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 - 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 - 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 - 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC - EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 - 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E - 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C - 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F - 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 - 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 - 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 - 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 - DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E - 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA - C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C - 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 - 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 - 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C - 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 - CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B - 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 - 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C - 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 - 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 - 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E - 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 - 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 - 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF - D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B - A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 - 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D - 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E - 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C - 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A - 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 - 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 - 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 - 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 - 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E - 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C - 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 - 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 - 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 - 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C - 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF - D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF - D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 - 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 - C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C - 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 - CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 - CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 - 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C - 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C - 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 - D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D - 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D - 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C - 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 - D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C - 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 - 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 - 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 - 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 - ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C - 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D - 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C - 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 - D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F - 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 - 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 - 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C - 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C - 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E - 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E - 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 - 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 - 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E - 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 - 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C - 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 - 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 - 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB - CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB - A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA - D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA - D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 - 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D - 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB - A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA - DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA - DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 - 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E - 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C - ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 - D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA - DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B - 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C - 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 - 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 - 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA - DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE - 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A - 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D - 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 - 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 - 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B - 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 - 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B - A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 - 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E - 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E - 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B - 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C - 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E - 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 - 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA - A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD - DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B - 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E - 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC - CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA - AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD - DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 - D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 - 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D - 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF - DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD - DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A - 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 - B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 - 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF - DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF - DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 - 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D - 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB - 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 - DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF - DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF - 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 - 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 - 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 - B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 - 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 - A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D - 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 - 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 - 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 - DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 - 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E - 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B - 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 - A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 - D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C - 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E - 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E - 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 - B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 - D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 - 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E - 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC - CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE - AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 - 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 - 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 - 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 - 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE - AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D - 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F - 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D - 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 - 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 - AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 - 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A - 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB - 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E - B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 - BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F - 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 - 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF - 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 - 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 - A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 - A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 - 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 - AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D - 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 - 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 - A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 - 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 - 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E - 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 - 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD - ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D - 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C - 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A - 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 - 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD - BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C - 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E - 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E - 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD - CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF - B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F - 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 - 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B - 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A - 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF - BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F - 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 - 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D - 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 - 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B - B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 - 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 - 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C - 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 - B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF - BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F - 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 - 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF - 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 - 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA - BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 - A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 - 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF - 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D - 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C - 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD - ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 - 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 - 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A - 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B - 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC - B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F - 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C - 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A - 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 - 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 - C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C - 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 - 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A - 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD - CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 - C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C - 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 - 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 - 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 - 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 - C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F - 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 - 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F - 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E - 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 - C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 - 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 - 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C - 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 - B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B - BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F - 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 - 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF - 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 - 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 - B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 - A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 - 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD - B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 - 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 - 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD - ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 - 545554545555505055595555505550505559555554205420206D4C4C716F7375 - 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A - 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C - 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC - BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 - 202054545454556E6E555055505550505055555055505555555554204F4F4F4C - 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 - 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 - 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 - C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 - 6D4F6D20205454555454545555555550505550505055505055506E5555545420 - 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 - 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC - CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 - C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C - 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 - 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E - 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 - 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 - C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F - 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 - 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 - 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D - 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 - C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 - 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 - 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 - 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 - B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD - BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 - 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 - 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE - 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A - 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 - B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 - A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 - 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B - B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 - 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 - 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD - ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 - 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 - 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A - 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 - 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC - BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 - 4F5520555555555550505050505059505050505950555055555554546E6D4F4C - 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 - 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 - 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 - BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D - 4F2020546E5555555455505555505950505050505050505050505550556E5554 - 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A - 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC - CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 - C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D - 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 - 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E - 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 - 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 - C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F - 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 - 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 - 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 - AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 - C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 - 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 - 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 - 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 - B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD - BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F - 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 - 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE - 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C - 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC - B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 - A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 - 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 - B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F - 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 - 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD - ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 - 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 - 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A - 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 - 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC - BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 - 54205455555555595059595050502450525050505050505555556E54204F6D4C - 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 - 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 - 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 - C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 - 2054545455555554555050595950505052507452742448505959505055556E54 - 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 - 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC - CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 - C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C - 4C2020205555545454546E555555555059505050247450272424245024595050 - 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A - 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 - 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 - C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F - 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 - 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B - 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB - 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 - C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 - 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 - 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 - 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E - 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD - B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F - 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 - 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 - AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D - 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC - B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 - A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 - 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 - B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F - 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 - 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD - ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 - 505050505959502474242424247452242424505059555454204F4C4C716F7375 - A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A - 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 - 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC - BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 - 55505555505050505050245924525224242424745250505050555554204F4C4C - 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 - 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 - 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 - BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 - 20205554556E5555595959502450505924245224502452522448245050505555 - 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 - 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC - CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 - C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F - 6D6D205420205420555455555050505024747424242424525252522424505050 - 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A - 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A - 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 - C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 - 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 - 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 - 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 - 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 - C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 - 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 - 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 - 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D - 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE - BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 - 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 - 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 - AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E - C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC - B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 - A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 - 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 - B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 - 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F - 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD - A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 - 505059505052522448521E214821522724242450505555544F204C4C6F6F737B - 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A - 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 - 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD - BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 - 55555055505050245024244848521E52481E48524852505050505555204F6D4C - 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 - 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A - 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC - BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E - 6E556E555050505050505059272424522748212752481E521E74245050555555 - 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 - 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC - CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 - C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F - 202054546E555555555555505050507424242427522152525221525248525C59 - 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 - 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 - 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 - BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C - 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 - 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 - 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 - 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF - BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F - 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 - 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 - 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C - 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE - BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 - 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 - 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 - 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D - CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA - BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 - A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 - 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 - B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 - 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 - 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 - A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 - 505024745252212174481E5622527452525274242450555555544F4C716F737B - 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A - 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 - 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD - ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 - 555050505274242424522121564B524852522224212124245950555554204F4C - 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 - 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 - 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD - BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 - 205555555950502424242452245252272752487474272152521E522424505555 - 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 - 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC - CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC - BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F - 545555545555555050505024502424521E5274564848562752212152521E5224 - 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 - 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F - 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF - BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C - 6D4F20206E545455555550505024245050747452747448564B744856524B5622 - 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A - 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A - 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF - BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F - 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 - 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C - 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 - 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE - BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B - 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 - 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC - AB89815957535E492877777760888888515188886060827A5E919495989C9D9D - 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA - 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 - A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 - 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 - B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 - 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D - 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 - A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 - 27484821484856527452222174484B524852487424505055556D4F4C716F757B - A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A - 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 - 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD - ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 - 50502424245227525652525248484B22224B5674522148742424505555544F4C - 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 - 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 - 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD - BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 - 5559505024747424525221485221214B22214A22224822275648525252505555 - 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 - 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC - CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD - BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 - 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 - 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 - 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 - 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD - BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F - 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 - 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A - 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D - 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE - BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F - 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 - 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C - 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 - 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF - BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 - 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E - 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 - 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C - 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 - AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 - A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E - 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 - B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 - 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C - 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 - A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 - 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 - A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A - 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 - 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF - ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 - 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F - 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 - 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 - 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD - AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 - 5024507424525252522127524B222223224B4B22234D222222484B4852505050 - 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 - 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC - CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE - BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 - 5555505559505050244852485622272122221E4A575722222257222256224B1E - 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 - 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C - 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE - BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E - 545454555555555050502424745252524822221E22224A22224A234A4B232222 - 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 - 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C - 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE - BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 - 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 - 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 - 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A - 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE - AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 - 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A - 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B - 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 - 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 - AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 - 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 - 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 - 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 - 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 - 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 - A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 - 224A4A22225622222323226C7023232223564A48482450505555204F716F757F - A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E - 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A - 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 - B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 - 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F - 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 - 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 - 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 - A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 - 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 - 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 - 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC - CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE - AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 - 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 - 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 - 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 - 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE - AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E - 545555555550505024244821221E52564A2256232222232323235723564B5723 - 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 - 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C - 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE - AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F - 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 - 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 - 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E - 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB - B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 - 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 - 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C - 835F27267E7A777788888585858686868685868588827A7E9194959898989896 - 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 - A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 - 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D - 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 - BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 - 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 - 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 - A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 - 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F - A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E - 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 - 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB - A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 - 564A56232356564D232329232323575D572257222223221E74524850556E544F - 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 - 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 - 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 - B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 - 52565648224A22232322222323572323232323572323292223224A224B482450 - 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 - 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB - CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 - B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 - 505252522722272221224D57574A2323235723292323235B5B29232357572222 - 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 - 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 - 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 - B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 - 5050595950247474222152224B4A225622232223232325235323252323232329 - 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 - 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 - 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 - B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F - 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 - 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E - 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C - 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC - BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F - 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 - 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 - 815C535E7A82608885858686868787868686868888827A918494959696959090 - 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 - ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B - 758C736F7171584F545550555050597452527474524B2222704D22222357235B - 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B - AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 - 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 - 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA - 7F808BA5A573897C71784F545455555550592474745252522222222222222323 - 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 - A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E - 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 - 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC - A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 - 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F - 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 - 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 - 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB - A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B - 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 - 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 - 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB - CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB - ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 - 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 - 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 - 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 - 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB - ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 - 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 - 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 - 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 - 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC - BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E - 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B - 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 - 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 - 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA - BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 - 714F796E6E505059747452212756224A22222223232229252353235B5B53535B - 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A - 5F575E7A286088858686878787878787878686858860825E6193939595938A8D - 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 - B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 - 6F7C6F717879546E5550505074525656225622225623235723232323535B535B - 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE - 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 - 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E - 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 - 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 - 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 - A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 - 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 - 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 - A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 - 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 - 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 - 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 - 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA - AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 - 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 - 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 - 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB - CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA - BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 - 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 - 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 - 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B - 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA - BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 - 5674222223224B572357235B5B295B53535B2626262626252626262626262626 - 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 - 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 - 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA - BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D - 50747452525222224A4B232323232323535B5B5B262626262626262626262626 - 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 - 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 - 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 - A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 - 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 - 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E - 765E7A827788858687878787878787878787868588827E918F949393938F8F5C - 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A - 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C - 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 - 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE - AC8B897D765E7E827788858687878787878787878787868560827E916194938D - 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A - 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 - B88C7C897C787879545450507448485648222323235753535B5B23255B262626 - 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 - A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 - 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 - 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB - A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 - 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 - 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 - 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 - 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB - A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 - 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 - 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 - 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB - CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 - A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 - 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 - 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 - 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 - 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 - 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 - 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 - 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 - 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B - 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 - 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 - 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 - 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 - 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B - 5B5B5B5B2626265B2626C2CBCBCB} - WaterMark.Image.Layout = ilTile - object Label1: TLabel - Left = 176 - Top = 312 - Width = 186 - Height = 13 - Caption = 'Haga click en Siguiente para continuar.' - end - object Label3: TLabel - Left = 168 - Top = 72 - Width = 346 - Height = 32 - Caption = - 'Este asistente le ayudar'#225' a imprimir el n'#250'mero de etiquetas '#13#10'qu' + - 'e desee para el montaje de:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - end - object lblNombreCliente: TLabel - Left = 169 - Top = 112 - Width = 353 - Height = 49 - Alignment = taCenter - AutoSize = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - Transparent = True - Layout = tlCenter - end - end - object JvWizardInteriorPage1: TJvWizardInteriorPage - Header.Title.Color = clNone - Header.Title.Text = 'Opciones de impresi'#243'n' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -16 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = - 'Indique el n'#250'mero de etiquetas a imprimir y la impresora a utili' + - 'zar.' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.AnchorPlacement = 8 - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -11 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - object Label2: TLabel - Left = 24 - Top = 96 - Width = 152 - Height = 13 - Caption = 'N'#250'mero de etiquetas a imprimir:' - end - object Label4: TLabel - Left = 24 - Top = 144 - Width = 146 - Height = 13 - Caption = #191'Qu'#233' impresora desea utilizar?' - end - object Label5: TLabel - Left = 248 - Top = 96 - Width = 259 - Height = 13 - Caption = '(En cada hoja se imprimir'#225'n como m'#225'ximo 4 etiquetas)' - end - object edtLabelCount: TcxSpinEdit - Left = 182 - Top = 92 - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Value = 4 - Width = 57 - end - object cbImpresoras: TcxComboBox - Left = 24 - Top = 161 - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 - Text = 'cbImpresoras' - Width = 273 - end - end - object JvWizardWelcomePage2: TJvWizardWelcomePage - Header.Height = 80 - Header.Title.Color = clNone - Header.Title.Text = 'Fin del asistente de impresi'#243'n' - Header.Title.Anchors = [akLeft, akTop, akRight] - Header.Title.Font.Charset = DEFAULT_CHARSET - Header.Title.Font.Color = clWindowText - Header.Title.Font.Height = -19 - Header.Title.Font.Name = 'Tahoma' - Header.Title.Font.Style = [fsBold] - Header.Subtitle.Color = clNone - Header.Subtitle.Text = ' ' - Header.Subtitle.Anchors = [akLeft, akTop, akRight, akBottom] - Header.Subtitle.Font.Charset = DEFAULT_CHARSET - Header.Subtitle.Font.Color = clWindowText - Header.Subtitle.Font.Height = -13 - Header.Subtitle.Font.Name = 'Tahoma' - Header.Subtitle.Font.Style = [] - Header.ShowDivider = False - VisibleButtons = [bkBack, bkFinish] - WaterMark.Image.Picture.Data = { - 07544269746D617082960100424D82960100000000003204000028000000A400 - 000074020000010008000000000050920100120B0000120B0000FF000000FF00 - 000000000000FFFFFF005320060057230800F6E7E900AD9B9C003F3838006B68 - 6800615E5E0058565600E7DEDD00483D3A0041312B0057230B00552107005321 - 07005B2509005923090057230900552309005D270B005B250B0059250B005222 - 0A0055230B004D210A005F290D005D270D0053250D004F240E0087411D007C3C - 1C009147210087411F0085411F0083411F0089432100813F1F007E3F1F008643 - 2100753B1D0082422100502A17004427180038201400623D2B005B4032004E37 - 2B0057230700552307005925090061290B0056250A005B270B00652C0D005927 - 0C00622B0E00652D0F00632D0F00683011005A290F006C331300763816005528 - 1000723616005D2C12006E3516007E3E1A007A3B190082401B00733918006431 - 150087431D007A3D1A0085411D0085431D00954B210083411D00763A1A00924A - 21008A461F007038190087431F0080411D008F4921008E47210085431F008343 - 1F00924B23008A462100793D1D0080411F0086462100804320007C411F008947 - 2300723B1D0083482600532F1C005A3623006A48360073503D007A564300825F - 4C00926E5A00652D0A006A300B00793B160085421B00924A1F008E491F009A4F - 220083431D00964D2200773D1B009E52250086451F00A255260083451F00723C - 1B00924D23008F4C2300763E1D00A5582900965025008A49220079401E00AB5D - 2C00A85B2B008D4B2400723D1D00924F2600824622006B3A1C0068381B006436 - 1A006E3B1D00965228008E4D2600A25A2C009A552A008A4D26008A4B26008649 - 2500925129007D452400AF6233008C4E2900884C280090512B0095542D00A35E - 320098583000B46839009D5B3200C2734100A05F3600A5623900AB673C007D4F - 3300CEC4BE00672F0B006D340C00AE602D00B3632F009E582A00B8693300B366 - 3200A25E2E00BB6D3600A86030009D592D00AC643300C0713A00B76D3A00BB6F - 3C00C6774200CB7A4600B16D40009276640074390E007B411500864A1C008A4F - 220097592A00B56C3600A5633100B0683500CA7A3F00C4763D00BE733C00C77A - 4000CD7E4300D1814600A76B3E007F400E0083451100884914008B4D18008146 - 18008D501C0090552300A2673800B0764700B57B4D00BC825300D3B8A100FFE0 - C600BAA390009E8B7C00826D5B00FFDBBB00EAD0B900FFE7D200B6A99D00FFED - DD00C1B6AC00FFF7F000FFF3E7004E4D4C00FBFAF900FEFBF5007E7E7D00FCFC - FB0090908F00E8E9E800D0D1D000BFC0BF00BBBCBB00B7B8B700B1B2B100DCDF - DD00CBCECC00D1D6D300D6DAD800E2E4E30072797600C6C9C800C2C5C400F0F1 - F100EDEEEE00ACADAD0097989800F9F9F900F7F7F700F5F5F500F3F3F300B4B4 - B400AFAFAF00AAAAAA00A6A6A600A2A2A2009D9D9D0087878700434343000202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020202020202020202020202020202020202020202020202020202 - 0202020202020203110311110303030303030303030303030303030303030303 - 0303030303030303030303030303030303111103111111111111111111321132 - 3232321132111111111111111111111111111111111111111111111111111111 - 1111111111111111321616161616321111111103030303030E0E0E0E0E0E0E0E - 300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E6969A2C302030303110303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303031111111111111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 111111031111111111111111321616161616321111111103030303030E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 1111111103031111111111111111111111321616161632111111110303030303 - 0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311111111111111111111111111111111111111111111111110111111111111 - 1111111111111111030311111103111111111111113216161616321111110303 - 030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303111111111111111111111111111111111111111111111111111111 - 1111111111111111111111111111110303111111111111111132161616163211 - 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969A2C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111111111111111 - 1111111111111111111111111111111111110311030311111111111111323216 - 1616321111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303031111111111111111111111111111111111111111 - 1111111111111111111111111111111111110311110303031111111111111111 - 111132161632111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111111111111111111111111111111103110303030303031111 - 11111111113232323232111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303031111111111111111111111 - 1111111111111111111111111111111111111111111111111111110303030303 - 0311031111111111111132323232111111110303030303030E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E6969A2C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111111111111111111111111111111103 - 0303030303030311111111111111113232111111111103030303030E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E6969B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030311 - 1111111111111111111111111111111111111111111111111111111111111111 - 111111030303030303030311111111111111113232111111111103030303030E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030311111111111111111111111111111111111111111111111111111111 - 1111111111031103030303030303111111111111111111323211111111110303 - 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303031111111111111111111111111111111111111111111111111111 - 1111111111111111110303030303030303030303111111111111111111111111 - 111103030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303111111111111111111111111111111111111111111 - 1111111111111111111111111103030303030303030303031111111111111111 - 11111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303031103111111111111111111111111111111 - 1111111111111111111111111111031111030303030303030303030311111111 - 111111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111111111111111111103030303030303030303030303 - 111111111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303111111111111111111 - 1111111111111111111111111111111111111111111111031103030303030303 - 03030303031111111111111111111111110303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111111111111111111111111111111111103031103030303 - 0303030303030303031111111111111111111111110303030303030E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311111111111111111111111111111111111111111111111111111111110303 - 030303030303030303030303031111111111111111111111110303030303030E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303111111111111111111111111111111111111111111111111111111 - 1111030303030303030303030303030303031111111111111111111111030303 - 0303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6969B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111111111111111 - 1111111103030303030303030303030303030303030311111111111111111111 - 110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303111111111111111111111111111111111111 - 1111111111111111030303030303030303030303030303030303111111111111 - 111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111110311030303030303030303030303030303030303031111 - 1111111111111111030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303031111111111111111111111 - 1111111111111111111111111111030303030303030303030303030303030303 - 0303111111111111111111110303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E6969B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111110303030303030303030303030303 - 03030303030303111111111111111111030303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030311 - 1111111111111111111111111111111111111111111103030303030303030303 - 03030303030303030303031111111111111111110303030303030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303111111111111111111111111111111111111111111110303030303030303 - 0303030303030303030303030303031111111111111111110303030303030E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303031111111111111111111111111111111111110311030303 - 0303030303030303030303030303030303030311111111111111110303030303 - 0303030E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030311110303111111111111111111111111111111111103 - 0303030303030303030303030303030303030303030303031111111111110303 - 030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 0311110303030303030303030303030303030303030303030303030303111111 - 111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1B4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111111111111111111 - 1111111111111103030303030303030303030303030303030303030303030303 - 03031111111103030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E69A1 - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303031103111111111111 - 1111111111111111111111030303030303030303030303030303030303030303 - 030303030303111111110303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E69A1B4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030311031111 - 0311111111111111031103110303030303030303030303030303030303030303 - 0303030303030303030303110303030303030303030E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E69A1B4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303110303030303 - 0303111111111111111111111111111103030303030303030303030303030303 - 03030303030303030303030303030303030303030303030303030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E69A1B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303110311110311110311111111111103110303030303030303030303 - 03030303030303030303030303030303030303030303030303030303030E0E0E - 0E0E0E0E0E0E0E0E0E0E300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E696AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303031111111111111111111111030303030303030303 - 0303030303030303030303030303030303030303030311110303030303030303 - 0303030E0E0E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311111111110311111103110303030303 - 0303030303030303030303030303030303030303030303030311111111110303 - 030303030303030E0E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111103111103111103 - 0303030303030303030303030303030303030303030303030303030303031111 - 11110303030303030303030E030E0E030E0E03030E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303110303031111111111 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303031111111103030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 1111031103030303030303030303030303030303030303030303030303030303 - 03030303030311111111030303030303030303030E0E0E0E0E030E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0EA16AB4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030311030303030303030303030303030303030303030303030303030303 - 03030303030303030303111103030303030303030303030E0E03030E030E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0EA16AB4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303110311030303030303030303030303 - 030E03300E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0EA16AB4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311111111111111110303030303030303 - 0303030303030303030E030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0EA16AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311030311110303030303030303 - 0303030303030303030303030303030303030303031111111111111103030303 - 03030303030303030303030303030E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030EA16AB4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303110303031103110303030303 - 0303030303030303030303030303030303030303030303030311111111111103 - 0303030303030303030303030303030303030E0E030E0E0E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E030E0E6A6AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111031103030303111111111111 - 0303030303030303030303030303030303030303030303030303030303031111 - 11111111030303030303030303030303030303030303030E0E0E0E0E0E0E0E0E - 0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E6A6AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030311111103111111110311 - 1111031103030303030303030303030303030303030303030303030303030311 - 111111111111111103030303030303030303030303030303030303030303030E - 03030E0E0E0E0E0E0E0E0E0E03030E0E030E0E0E0E030E0E03030303030E6A6A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031103030303030303030311110311 - 1103111111030303030303030303030303030303030303030303030303030303 - 0303031111111111111111110303030303030303030303030303030303030303 - 0303030E0303030E0E0E0E0E0E0E0E0E0E030E0E0303030E0E0E0E0E03030303 - 03036A6AB4C30203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0311110311110311031103031103111111030303030303030303030303030303 - 0311030303111111111111111111111111110303030303030303030303030303 - 0303030303030303030303030303030E030E0E0E0E030E0E030E0E0E0303030E - 0303030303036A6AB4C302030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303110303030303111103110303031111111103030303030303030303030303 - 0303030303030303030311111111111111111111111103030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 030303030303030303036A6AB4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030311110303111111111103030303030303030303 - 0303030303030303030303030303111111111111111111111103030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 03030303030303030303030303036A6AB4C30203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303031111111111111111110303110311111111 - 0303111111030303030303030303030303110311111111111111111111110303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303036AA2B4C302030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303031111111111111111111111111111 - 1111111111111111030311030303030303030303111111111111111111111111 - 1103030303030303030303030303030303030303030303030303030303030303 - 030303030303030303030303030303030303030303036A6AB4C3020303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111110303031103030303030303031111111111111111 - 1111111111030303030303030303030303030303030303030303030303030303 - 03030303030303030303030303030303030303030303030303036A6AB4C30203 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030311031111111111111111111111111111 - 1111111111111111111111111111111111111103031103030311031103111111 - 1111113211111111111111030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303036A6A - B4C3020303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030311111111111111111111111111 - 1111111111111111111111111111111111111111111103111103031103031111 - 1111111111111132111111111111110303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 03036AA2B4C40203030303030303030303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030311111111111111 - 1111111111111111111111111111111111111111111111111111111111111111 - 1103111111111111111111113211111111111103030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303036AA2B4C402030303030303030303030303030303030303030303 - 0303030303030303110303030303030303030303030303030303030303111111 - 1111111111111111111110113232111110111132111111111010111111111111 - 1111111111111111111111113232113210321011111111111111030303030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 030303030303030303036AA2B4C3020303030303030303030303030303030303 - 0303030303030303030303030303030303030303030303030303031103111111 - 1111111111111110111111101010103210101111111010111010101032111111 - 1111111111111111111111111111111111323210101010321111111103030303 - 0303030303030303030303030303030303030303030303030303030303030303 - 0303030303030303030303030303A2A2B4C40203030303030303030303030303 - 0303030303030303030303030303030303030303030303030303030303111111 - 1111111111111111111110101010101010321010101010101010101010101010 - 1010101010111111111111111111111111111111113210321010101111111111 - 1103030303030303030303030303030303030303030303030303030303030303 - 030303030303030303030303030303031230A2A2B4C402030303030303030303 - 0303030303030303030303030303030303030303030303030303030303031111 - 1111111111111111101111111010101010101010101010101010101010101010 - 10101010101010111010101011111111111110111110113211110D1111113232 - 1011111111110311111111111103110303030303030303030303030303030303 - 03030303030303030303030303030303030303030303A2A2B4C4020303030303 - 0303030303030303030303030303030303030303030303030303111111111111 - 1111111111111111111111111010111010101010101010101010101010101010 - 1032321111113232101010101010101010101010113210323211111112121313 - 0D340D1111111111111111111111111111111103030303030303030303030303 - 0303030303030303030303030303030303030303030311110311A2A2B4C40203 - 0303030303030303030303030303030303030303030303030303031111111111 - 1111111111111111111111111111111011111010101010101010101010101010 - 10101032101112120D0D11111111321010101010101010321010103211111213 - 0F0F0F171713130D121111111111111111111111111111111111110303030303 - 030303030303030303030303030303030303030303030303030311111111A2A2 - B4C4020303030303030303030303030303030303030303110311111111111111 - 1111111111111111111111111111111110101010101010101010101010101010 - 10101010101010160D121213130E13130D0D1111323210101010101010321111 - 12130F0F17021917191717171313121212111111111111111111111111111111 - 1103030303030303030303030303030303030303030303031103030311111111 - 1111A2B4B4C40203030303030303030303030303030303111111111111111111 - 1111111111111111111111111111111010101010101010101010101010101010 - 1010101010101010101616121317170F1719170F0F1312121111113232101032 - 111112130F0F1919192A2A2A2A191917170F0F13121112111111111111111111 - 1111111111110311111103030303110311110303030303030311030311111111 - 111111111111A2A2B4C402030303030303030303030303030303111111111111 - 1111111111111111111111111011101010101010101010101010101010101010 - 101010101010101010101016160D13171719192A2A1D19190F17171313120D11 - 1111111112130E0F0F19192A2A622A2A2A622A1D1919170F0F31121211113210 - 1011101011111111111111111111110303111111111111031111111111110311 - 11111111111111111132A2A2C3C4020303030303030303031103030303111111 - 1111111111111111111111111111113210101010101010101010101010101010 - 1010101010101010101010101010160D12131719192A62626262622A1D191919 - 170F1330121212130E0F0219191D2A2A622D6565412A62622A1D191917170F13 - 1212111132101010111011111111111111111111111111111111111111111111 - 1111111111111111111111113232A2A2C3C40203030303030303030311111111 - 1111111111111111111111111011101010101010101010101010101010101010 - 10101010101010101010101010101010161612131717191D6262622D66626262 - 62622A1D191919170F0F0F170219191D2A2A2A2D656667B3B367632A2A622A1D - 190219020F0F1312111132101010103232323211111111111111111111111111 - 111111111111111111111111111132323216A2A2C3C402030303030303030311 - 1111111111111111111111111132111010101010101010101010101010101010 - 101010101010101010101010101010101010101012121317191D6262622D67D2 - 6766666463626262622A191919191919191D2A2A2A636566666668B3B3B3B368 - 6441622A2A2A191902020F131312111132101010103211111111111111111111 - 11111111111111111111111111111111323232161616A2A2C3C4020303030303 - 0303031111111111111111321132321032101010101010101010101010101010 - 1010101010101010101010101010101014141414101532121317171962626263 - 666868686767666666652E636262622A2A19191D2A2A2A62646666656566B3B3 - B3B3B3B3B3B366632A2A2A2A1719190F0F0E120D121132321010101032321111 - 1111111111111111111111111111111111113232323216101010A2B4B4C40203 - 0303030303031111111111111111113210101010101010101010101010101010 - 1010101010101010101010101010101010101414141010101634131717192A62 - 626265D2686868686766666666666666652D63626262622A622A6465669F6566 - 666465D2B3B3B3B3B3B3B3B3682D62622A2A1D1919170F131212321111321010 - 101032323232323232323232321132113211323232321010101010101010A2A2 - C3C4020303030303031111111111111132101010101010101010101010101010 - 101010101010101010101010101410101010141414141414101515160D131719 - 1D62636264D268686868D26867666666666666666666666563622A622D656566 - 65666565642D2D2D646768B3B3B368B3B3B36864622A2A2A1D19190F1713130D - 1611113210101010101010101010103232323211321616101010101010101010 - 1010A2A2C3C40203030303031111111111113232321010101010101010101010 - 1010101010101010101010101410101010141414141414141414141515160D13 - 17171D6262632D676868686868686868676766666666666666666666662D2D65 - 9F66669F6665642D632D2D2D2D642D66D268B3B3B368B3B3B367632A2A623F19 - 1919171713120D0D0D1610101010101010101010323216103210101010101010 - 101010101010A2B4C3C402030303031103111111113210321010101010101010 - 1010101010101010101010101014141414141414141414141414141414141516 - 0D0D17171D6262622D6668686868686868686868676666666666666666666666 - 662D2D6665666565642D632D2D2D2D2D2D2D2D642D656768B3B368B3B368B368 - 2D2A62622A1D19171717131234160D1032101010101010101010101010101010 - 10101010101010101010A2B4B5C4020303031111111111321110101010101010 - 1010101010101010101010101414141414141414141414141414141414141414 - 151016341317172A6262636668686868686868686868D2686766666666666666 - 66666666662D2D666665642D63632D632D2D2D2D2D2D642D642D64646668B3B3 - B3B3B3B3B3686462622A2A1D1719171713120D0D161616101010101010101010 - 1010101010101010101010101515A2B4C3C40203030311111111113210101010 - 1010101010101010101010101414141414141414141414141414141414141414 - 1414141516161317172A62626265686868686868686868686868686867676666 - 6666666666666666662D2D65642D636363632D2D2D2D2D2D2D2D642D64646464 - 646465676868B368B368B3686663622A2A1D1919171713120D16111010101010 - 101010101010101010101010151015153515B4A2C3C402030311111111321010 - 1010101010101010101010101414141414141414141414141414141414141414 - 14141414141515163417173F626263646868B368686868686868686868686868 - 676666666666666666666666652D2D2D636363632D632D632D2D2D2D642D2D64 - 2D64646464646465656768B3B3B3B3B368B3662D622A621D1919171713121616 - 10101010101010101010101010101010351414141414B4B4C3C4020311111111 - 1110101010101010101010101014141414141414141414141414141414141414 - 1414141414141414151634180F1C6262622D6768686868686868686868686868 - 68D26868666666666666666666666666652D2D636363636363632D2D2D2D2D2D - 2D2D642D6464646464646564656565666768B368B368B36867642A2A621D1919 - 1717121616101010101010101010101010101014351414141414A2B4B5C50203 - 0311111011101010101010101010101014141414141414141414141414141414 - 1A1A14141A1A1414141435153418171C62626263676868B36868686868686868 - 6868686868686868676666666666666666666666652D6363636363632D632D63 - 2D2D2D2D2D642D642D646464646465646565656565666768B3B368B368686864 - 6262622A1D17171216101010101010101010151510101414141414141414B4B4 - C3C4020311111111101010101010101010101014141414141414141414141414 - 141A1A1A1A1A1A1A1A1414141415163417182A626263666868B3686868686868 - 686868686868686868686868676666666666666666666666652D2D6363636363 - 63632D2D2D2D2D2D2D2D642D642D6464656465656565656565666666666868B3 - B3B3B3B36865622A622A17123410101510101510151415141514141414141414 - 1414B4B4C3C50211111110101010101010101010101414141414141414141414 - 141A1A1A1A1A1A1A1A1A1A1A14141415163434173F6262626568686868686868 - 68686868686868686868686868686868676666666666666666666666652D2D62 - 62626363632D632D632D632D2D2D2D6464646464646464646565656565656666 - 666666676868686868B36866636263130D151415151515101514151414141414 - 141414141414B4B4B5C502111111101010101010101010141414141414141414 - 141A141A1A1A1A1A1A1A1A1A1A1A1A14143516340D173F62626364686868B368 - 68686868686868686868686868686868686867D2666666656666666666666666 - 66652D6262622A6263636363632F2F6363632E2D2D6464646464656565656565 - 66666666666666676667D268B368B368682A62130D1015101514101515141414 - 14141414141414141414B4B4B5C5021111101010101010101010141414141414 - 14141A141A1A1A1A1A1A1A1A1A1A1A1A1A1A1414351634133F6262632D676868 - 686868686868686868686868686868686868686867D267676565646565656566 - 66666666666666666463622A2A2A2B2A6262622F2F63632D2E2D646464646465 - 6565656566656666666666666766676767686868682A2A130D10101414101414 - 141414141414141414141414141AB4B4B5C50211111010101010101010141414 - 1414141414141A1A1A1A1A1A1A1A1A1A1A3838381A1A1437370D3F6262636366 - B368B368B36868686868686868686868686868686868D2D26767666664646464 - 6464656565666666666666666666662E622B2B2C2C2C2C2B2B0C2F62632D2D2E - 64646464656565656566656666666666666766666766676868622A1316151414 - 141414141414141414141414141414141414B4B4B5C502111010101010101010 - 141414141414141A1A141A1A1A1A1A1A1A1A1A38383838381A1A14373F626362 - 636568686868686868686868686868686868686868686868D267676666656464 - 2E2E2F2E2E646464656565656666666666656564642E2F2C2C0C0C060C2C2B0C - 2F2F632D2D646464656565656566666666666667666667676767676665622A34 - 161514141414141414141414141414141414141A1A1AB4B4B5C5023210101010 - 10101014141414141414141A1A1A1A1A1A1A1A1A383838383838381A1A1A353F - 6362626468686868686868686868686868686868686868686868686767676665 - 642E2E0B06060C2F2F2F2E2E64646465656565656464642E2E2F0C0C0606060C - 06060C2C2C2B2F2F2E2D2E646464656565666566666666666667666666652D62 - 622A3F1615141414141414141414141414141414141414141A1AB4B4C4C50210 - 10101010101010141414141414141A1A1A1A1A1A1A1A38383838383838383838 - 1A1A3C3F2D64686868686868686868686868686868686868686868686867D267 - 6665652E2F0BFEFEFEFEFE060C0C2F2F632E2E6464646464642E2E2F0C0C0606 - 060705F20B0C0606062C2C2C2B2F2E2D6464646565656666666666666666652D - 62622A622A3F16151414141414141414141414141414141414141A1A1A1AB4B4 - B5C502101010101010101014141414141A1A1A1A1A1A38383838383838383838 - 383838381A143C632D6868686868686868686868686868686868686868686867 - D2676665642E2F0BFEFEFEECFBFEFEFEFEFE060C0C2F2F632E2E2E2E2E2F0C0C - 06060B070505A00101ED080C06060C0C2C2C2C2F2F2D64646465656666666664 - 2D622A626262621C131615141414141414141414141414141414141414141A1A - 1A1AB46BC4C5021010101010101014141414141A1A1A1A1A1A38383838383838 - 3838383838383838381A3C622D68686868686868686868686868686868686868 - 6867D267666664642E0B0BFEFE08EEEBE3E5FBDE09FEFEFEFE060C0C2F2F2F0C - 0C0C0C060CDBD1050505E101010101F0FD0B0606060C2C2C2C2B2F2E64646565 - 656464622A622D656763621C3416351414141414141414141414141414141A14 - 1A1A1A1A1A1AB4B4C7C50210101010101414141414141A1A1A1A1A1A38383838 - 383838383838383836363838381A3C632D686868686868686868686868686868 - 686868686767676665642E2F0BFEFE09F9E1E1EBE3F7F9F9F9FCECDBFEFEFE06 - 0C0C2B0C0C06060BFD05050505D8DF01010101010101F7DB0606060C2C2C2C2C - 2B63646464632D2D65676767672D621C0D151414141414141414141414141414 - 1414141A1A1A1A1A1A1AB46BC4C502101010101010141414141A1A1A1A1A1A38 - 38383838383838383838363836363638381A3C632D6868686868686868686868 - 686868686768D267676665642E2F0BFEFEDBFCEBE1E1E1EBE3F7F9F9F9F9F9F1 - E007DBFEFE0B0606060BDE050505050505FDF2E901010101010101010A070606 - 06062C2C2C2C2C2B2D636366676767676763621C161514141414141414141414 - 141414141414141A1A1A1A1A1A1A6BB4C4C602101010101414141414141A1A1A - 1A38383838383838383836383939393639393938381A3C638568686868686868 - 68686868686868686867676665642E2E0BFEFEFEFDEAE1E1E1E1E1E1E3E5F9F9 - F9F9F9F1F1F1F9E00806060B0705050505050505DE070707DEE5EF0101010101 - 0101F4E00B06060C0C2C2C2C2C622F65666666676763621C1635141414141414 - 14141414141414141414141A1A1A1A1A1A1AB4B5C4C602101010141014141414 - 1A1A1A383838383838383839363939393939393939393939381A3C632D686868 - 686868686868686868686767676666642E2E0B0BFEFEECE8F0E1E1E1E1E1E1EB - E3E5F9F9F9F9F9F9F1F1F1F8F1080705050505050505DE080807080707ECEC05 - EA0101010101010101E4DB0606060C2C2C2B2E64646566666663621C34151414 - 14141414141414141414141414141A1A1A1A1A1A1A1A6BB4C4C6021010101414 - 1414141A1A1A1A3838383838383839393939393939393939393939393A1A4163 - 2D68686868686868686867686767676765652E2E2F0BFEFE08F7F0E1F0E1E1E1 - E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8FA07070505050505FD08080808080707 - 0707ECECDEFDE3F501010101010101EA070B06060C0C2F2E2E64646565632A1C - 3415141414141414141414141414141414141A1A1A1A1A1A1A1AB46BC4C60210 - 101414141414141A1A1A33383838383836393939393939393939393939393939 - 3A1A3C872D686868686868686868686767676565642E2F0BFEFEDBFAF0F0F0F0 - F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F1F90807050505FD0809090808 - 0807070707EC07ECECDEDEFDF1E701010101010101E1FD0B06060C0C2F2F2E2E - 64622A1902123714141414141414141414141414141A1A1A1A1A1A1A1A1A6BB5 - C7C602101010141414141A1A1A1A383838383838363939393939393939393939 - 393939393A383C638568676867686868686767676665642E2F0BFEFEFEE0E1EF - F0F0F0F0F0F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F8FA070705FD080909 - 09090808080807070707ECECDEDEDEDEFDFDF2E8F4010101010101F5F9DB0606 - 060C2F2F2E2B2C19190F1635141414141414141414141414141A1A1A1A1A1A1A - 1A38B4B5C7C602101414141414141A1A33383838383838393939393939393939 - 39393939393939393A1A41872D6868686868676767676665642E2F0BFEFEFEDE - EAEFEFEFF0F0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F9F1F1F1F1FC080708 - DB090909090808080807070707EC07DEECDEDEFDFDFDE0E0F2E4EB0101010101 - 01DFE5080606060C0C2C2C2C1919020D3714141414141414141414141A1A1A1A - 1A1A1A1A38386BB5C4C602101414141414141A1A383838383838363939393939 - 393939393939393939393B39393841632D676867686767676665642E2E2FFEFE - FE08E8F5F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F1F1F1F1F8 - E00708DB090909090809080807080707EC07ECECDEDEDEFDFDFDE0E0E0F2FCF1 - E9F3010101010101E2EC0606060C2C2C2C19191716151414141414141414141A - 1A1A1A1A1A1A1A383838B4B5C7C6021414141414141A1A1A3838383838363939 - 3939393939393939393B393939393939393841872D6868676767666564642E2F - 0BFEFE09E6F5F5F5F6EFEFEFF0F0F0E1F0E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9 - F1F1F8F8F2080809DB090909090808080807070707ECECECDEDEDEFDFDE0E0E0 - F2F2FCFCFBFAEDE10101010101010AFD0B06060C2C2C19171837141414141414 - 141414141A1A1A1A1A1A1A1A381AB5B5C7C60214141414141A1A1A1A38383838 - 383939393939393939393B3B393B3B393B393B3939381A638867676766656564 - 2E2F06FEFEDBFBEFF4F4F5F5F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9 - F9F9F9F1F1F1F1F8E00708DB0909090909090808080707070707ECECDEDEDEFD - FDFDE0E0F2F2FCFCFBFAF9F1E4E7F30101010101EFFBDB06060C2C1917161414 - 14141414141414141A1A1A1A1A1A1A3838386BB5C7C6021414141414141A3338 - 3838383836393939393939393939393B3B3B3B3B3B3B39393938416363676665 - 65642E2F0CFEFEFEFDEBF3F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1EB - E3E5F9F9F9F9F9F9F1F1F1F8F207070606FEDB090908080808070707ECECECEC - DEDEDEFDFDFDE0E0F2F2FCFCFBFAF9F1F8E6E5E2F00101010101F3F8090BDB19 - 19161414141414141414141A1A1A1A1A1A1A383838386BB5C7C6021414141414 - 1A1A383838383836363939393939393B3B3B3B3B3B3B3B3B3B3B3B3939384162 - 636564642E2F0C06FEFEECEAF3F3F4F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1 - E1E1E1E1E3F7F9F9F9F9F9F1F1F1F1F8F8F207FE06060606DB09080807070707 - 0707ECDEDEDEDEFDFDE0E0E0F2F2FCFBFBFAF9F1F8E6E5E5E4EDEBDC01010101 - F0060619193414141414141414141A1A1A1A1A1A1A383838383A6BB5C7C60214 - 1414141A1A1A383838383636393939393939393B3B3B3B3B3B3B3B3B3B3B3B39 - 391A3C6262642E2F2B06FEFE08E3DFDCF3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0 - E1E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9F1F1F1F8F8F8E6F1FDDB0606060606DB - 09070707ECECECECDEDEFDFDFDFDE0F2F2F2FCFBFBFAF9F1F8F7F7E5E4E4E3EE - EAEF0101F0060C191716141A14141414141A1A1A1A1A1A1A1A3838383838B5B5 - C7C602141414141A1A333838383836363939393939393B3B3B3B3B3B3B3B3B3B - 3B3B3B39383C3F2B2B2F0C06FEFEDBF8F3DFDFDCF3F3F4F4F4F5F5F6F6EFEFEF - F0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9F9F9F9F1F1F1F1F1F8F8E6E6F7F7E6FD - DB06060606FEDB0807ECECDEDEDEDEFDFDE0E0E0F2FCFCFBFAFAF9F1F8F7E5E5 - E4E3E3E3EEEEE2E1E10606191716141414141414141A1A1A1A1A1A1A38383838 - 3A386BB5C7C602141414141A1A333838383636393939393939393B3B3B3B3B3B - 3B3B3B3B3B3B3B39383C1D2B2B06FEFEFEF2F6DFDFDFDFDCF3F3F3F4F4F5F5F5 - F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3E5F9F9F9F9F9F1F1F1F1F8F8F8E6E6 - E6F7F7F7E5E5FD0906060606FEDB07ECDEDEFDFDFDE0E0E0F2FCFCFBFAFAF9F8 - E6F7E5E5E4E4E3E3EEEDEDEEF2060C19181514141414141A1A1A1A1A1A1A1A38 - 383838383A3AB5B5C7C8021414141A1A1A33383838363639393939393B3B3B3B - 3B3B3B3B3B3B3B3B3B3B3B39383F192BFEFEFEDEEB01DFDFDFDFDCDCF3F3F3F4 - F4F5F5F6F6F6EFEFF0F0F0F0E1E1E1E1E1E1E1E1E3F7F9F9F9F9F9F9F1F1F1F8 - F8E6E6E6E6F7F7E5E5E5E5E4E4FD0906060606FEDBECDEFDFDE0E0F2F2F2FCFB - FAFAF1F8E6F7E5E4E4E3E3EEE3F2070B060C0C173435141A141A1A1A1A1A1A1A - 1A1A1A383838383A3A3AB5B5C7C802143314331A33333838383636393939393B - 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1C2B0C09FDEA01DF01DFDFDFDFDCDC - F3F3F3F4F4F5F5F6F6EFEFEFEFF0F0F0F0E1E1E1E1E1E1EBE3F7F9F9F9F9F9F9 - F1F1F1F8F8F8E6E6E6F7F7E5E5E5E5E4E4E4E4E3FD0906060606FE09ECE0E0F2 - F2FCFCFBFAF9F9F1E6F7E5E5E4E5F2080B0606060C2B1734351A141A1A1A1A1A - 1A1A1A1A1A38383838383A3A3939B5B5C5C8021414141A1A3333383838363939 - 3939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B393C1C2BFE070101010101DFDF - DFDFDCDCF3F3F4F4F4F5F5F6F6F6EFEFF0F0F0F0E1F0E1E1E1E1E1E1E3E5F9F9 - F9F9F9F9F1F1F1F8F8F8E6E6E6F7F7F7E5E5E5E5E4E4E4E3E3E3E3E009060606 - 06FE09DEF2FCFCFBFAFAF1F8E6F7F1E00806060606FE062C2C1918351B1A1A1A - 1A1A1A1A1A1A1A1A1A383838383A39393939B5B5B6C802141A1A1A3338383838 - 3636393939393B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B391A1D2BFE07010101 - 010101DFDFDFDFDCF3F3F3F4F4F5F5F6F6EFEFEFF0F0F0F0F0E1E1E1E1E1EBE1 - FBFCFBFAF9F9F9F9F1F1F1F8F8F8E6E6F7F7F7E5E5E5E5E4E4E4E4E3E3E3EEEE - EEEEE00906060606FE09FDFBFAF1F1F8F1F2FD06060607FCE808FE2C19193714 - 1A1A1A1A1A1A1A1A1A1A1A1A383838383A3A39393939B5B5C5C80214331A1A33 - 3338383836393939393B3B3B3B3B3B3B3B3B3B3B3B3B3D3B3B3B3B39411C2BFE - 070101010101DFDFDFDFDFF3F3F3F4F4F4F5F5F6F6F6EFEFEFF0F0F0E1E1E1E1 - E1E7FB08FEDBFE08DEFBF9F1F1F1F8F8F8E6E6E6E6F7F7E5E5E5E4E4E4E4E3E3 - E3E3EEEEEEEDEDEDEEE00906060606FE09FDF9F1F1070707FBE8E7EAE708FE2C - 1917351A1A1A1A1A1A1A1A1A1A383838383838383A3939393939B5B5B6C80214 - 1A1A1A333338383836393939393B3B3B3B3B3B3B3B3B3D3B3D3B3B3D3B3D3B39 - 3C1C2BFE0801010101DFDFDFDFDFDFDCDCF3F4F4F4F5F5F6F6F6EFEFF0F0F0F0 - F0E1E1E8FDDBFEFEDB07FEFEFEFE08DEFBF1F1F8F8E6E6E6F7F7F7E5E5E5E5E4 - E4E4E4E3E3E3EEEEEEEEEDEDEDE8E8EDF20906060606FE08FD08ECEAEAEAE7EA - E708FE2C1934351A1A1A1A1A1A1A1A1A1A3838383838383A39393939393BB5B5 - B6C8021A1A1A33333838383636393939393B3B3B3B3B3B3B3B3B3B3B3B3D3B3D - 3B3B3B391A1D2BFE07010101010101DFDFDFDCDCF3F3F4F4F4F5F5F6F6EFEFEF - EFF0F0F0F0F7ECFEFEFE07E4E3E5F2DE08FEFEFEFE08FDFAF8F8E6E6F7F7F7F7 - E5E5E5E4E4E4E4E3E3E3EEEEEEEDEDEDE8EDE8E8E8E2EDF209060606060807EA - EAEAEAE7EA08FE2C1934141A1A1A1A1A1A1A1A383838383838383A3939393939 - 3B3BB5B5B6C8021A1A1A333338383836363939393B3B3B3B3B3B3B3B3D3D3D3D - 3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4F4F5F5F6 - F6EFEFEFF0F0EBFB09FEFEDBFDE8E1E1E3F7FCF2F2E0DE08FEFEFEFE08FDF9F7 - E6F7F7E5E5E5E4E4E4E4E4E3E3E3EEEEEEEEEDEDEDEDE8E8E8E8E2E2E9EDF208 - DBDEEEEAEAEAE7EAE708FE2B191C14381A3838383838383838383838383A3A39 - 39393B3B3B3BB5B5B6C8021A1A333333383838363939393B3B3B3B3B3B3D3B3D - 3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE070101010101DFDFDFDFDCDCF3F3F3F4 - F4F5F5F6F6F6EFEFE9FDDBFEFE09FBE7E1E1E1E1E3F7FCF2F2F2F2F2E0DE08FE - FEFEFE08FDF8F7F7E5E5E5E5E4E4E3E3E3E3EEEEEEEDEDEDEDE8E8E8E8E2E2E2 - E9E9E9E9EAEAEAEAEAEAEAE7E708FE2C19341B38383838383838383838383838 - 3A3A3939393B3B3B3B3BB5B5B6C8021A1A333833383836363939393B3B3B3B3B - 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B411C2BFE0801010101DF01DFDFDFDCDC - F3F3F4F4F4F5F5F6F6EFE407FEFEFE07E4E1E1E1E1E1E1E1E3F7FCF2F2F2F2F2 - F2F2F2F2EC08FEFEFEFE07E0F7E5E4E4E4E4E4E3E3EEEEEEEEEDEDEDEDE8E8E8 - E8E8E2E2E9E9E9EAE9EAEAEAEAE7EAE7EA08FE2C19341A383838383838383838 - 38383A3A393939393B3B3B3B3B3BB5C7B6C8021A333333383836363939393B3B - 3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A1C2BFE070101010101DFDF - DFDFDCDCF3F3F3F4F4F5F5E1FC09FEFEDBFDE2E1E1E1E1E1E1E1E1E1E3E5FCF2 - F2F2F2F2F2F2F2F2FCF2F2EC09FEFEFEFE07E0E5E4E4E3E3E3E3EEEEEEEEEDED - EDEDE8E8E8E2E2E2E9E9E9E9E9EAEAEAEAEAEAEAE708FE2B19341A3838383838 - 383838383A3A393A3939393B3B3B3B3B3B3DB5C7C6C902333333333838363639 - 39393B3B3B3B3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3B3A3F2BFE07010101 - 01DF01DFDFDFDFDCF3F3F4F4F4E9FDDBFEFE08FCE7E1E1E1E1E1E1E1E1E1E1E1 - E3F7FCF2F2F2F2F2F2F2FCF2F2FCFCFCFCF2EC09FEFEFEDB07F2E4E4E3E3EEEE - EEEDEDEDEDE8E8E8E8E8E8E2E9E9E9E9E9E9EAEAEAEAE7E7EA08FE2B19371A38 - 383A3838383A3A3A3939393939393B3B3B3B3B3D3D3DB5C7B6C8021A33333838 - 38363639393B3B3B3B3B3D3D3D3D3D3D3D3D3D423D423D423D3D3D3D3A3F2BFE - 08010101010101DFDFDFDFDCF3F3F4E407FEFEFE07E4E1E1E1E1E1E1E1E1E1E1 - E1E1E1E1E3F7FCF2F2F2F2F2F2F2F2F2FCF2FCFCFCFCFCFCF2EC09FEFEFEDBEC - F2E3E3EEEEEDEDEDEDEDE8E8E8E2E9E2E9E9E9E9EAEAEAEAEAEAE7EAE708FE2C - 19371A3A3A3A383A3A3A39393939393939393B3B3B3B3D3D3D3DC7C7B6C90233 - 3338383836363939393B3B3B3B3D3D3D3D3D3D42423D423D423D423D423D423D - 3A3F2BFE0701010101DFDFDFDFDFDCF3E1FB09FEFEDBFDE2E1E1E1E1E1E1E1E1 - E1E1E1E1E1E1E1E1E2FCFAF2F2F2F2F2F2F2FCF2FCFCFCFCFCFCFCFCFBFBFBF2 - EC09FEFEFEDBECFCEEEDEDEDE8EDE8E8E8E8E2E2E9E9E9EAE9EAEAEAEAEAE7EA - E708FE2B17371A393939393A393A3939393939393B3B3B3B3D3D3D3D4242C7C7 - C6C9023333383636363639393B3B3B3B3D3D3D3D3D3D3D3D4242424242424240 - 4242423D473C2AFE07010101010101DFDFDFEAFDDBFEFE08FBE7E1E1E1E1E1E1 - E1E1E1E1E1E1E1E1E1E1E1E1E2E5F9F2F2F2F2F2F2F2F2F2F2FCFCFCFCFCFCFB - FCFBFBFBFBFBF2EC09FEFEFEDBECFBEDEDEDE8E8E2E8E2E2E9E9E9E9EAE9EAEA - EAEAE7EAEA08FE2B1D371A3939393939393939393939393B3B3B3B3B3D3D3D42 - 4242C7C7C6C90233383836363639393B3B3B3B3B3D3D3D3D3D42424242404240 - 404040404040403D3B3F2BFE080101010101DFF4E407FEFEFEECE4E1E1E1E1E1 - E1E1E1EBE1E1E1EBE1E1E1E1E1EBE1E1E2F7E4E4F7FAF2F2F2F2FCF2FCFCFCFC - FCFCFCFCFBFBFBFBFBFAFAFAFAF2ECDBFEFEFEDBDEFAE8E8E8E8E2E2E9E9E9E9 - E9EAEAEAEAEAEAE7E708FE2B173C38393939393939393939393B3B3B3B3B3B3D - 3D3D42424242C7C7B7C90238383836363939393B3B3B3D3D3D3D3D4242424242 - 4040404040404040404040423B412AFE0701010101F0FA09FEFEDBFDE2E1EBE1 - E1EBE1EBE1EBE1E1E1EBE1E1E1E1EBE1E1E1E1E1DEDED8EBE1E7EDE6FAFCF2F2 - FCF2FCFCFCFCFCFBFCFBFBFBFBFAFBFAFAFAF9F9F2ECDBFEFEFEDBDEF1E2E2E2 - E9E9E9E9EAEAEAEAEAE7EAE7EA08FE2B1C3C3839393939393939393B3B3B3B3B - 3B3D3D3D424242425140C7C7B7C90238383836363939393B3B3D3D3D3D3D4242 - 4242404040404046404040403E4640423B412BFE070101EAFDFEFEFE08FAE7EB - E1EBE1EBEBE1EBE1EBE1EBE1EBE1EBE1EBEBE1EBE1EBEBE1EBE7E1EFEFF0E1EB - E7E8E5F9FCFCFCFCFCFCFCFCFBFBFBFBFBFAFAFAFAFAF9F9F9F9F1F2ECDBFEFE - FEDBFDE6E2E9E9E9E9E9EAEAEAEAEAE7E708FE2B1C3C38393939393939393B3B - 3B3B3B3B3B3D3D3D424242514051C7C7C8C902383836363939393B3B3B3D3D3D - 42424242404040404646464646463E3E463E3E423D412AFE08E407FEFEFEECE5 - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBF0F6EFEFF6 - F6EFF6F6EFE1EBE1E2E4F9FBFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAF9F9F9F1F1 - F1F8F2ECDBFEFEFE09FDE5E9EAEAEAEAEAEAE7EAEA08FE2B1C3C3A3939393939 - 393B3B3B3B3B3B3B3D3D3D4242514051464676B6B7C902383636393936393B3B - 3B3D3D3D3D424040464046464646463E3E3E3E3E3E3E3E403D412AFEFEFEFEDB - FDE2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EB - EFF6F0E4EDE1EFEFEFF6F6F6F0EBEAEAE4F1FBFBFCFBFBFBFBFBFAFAFAFAF9F9 - F9F9F1F1F1F8F8F8E6F2ECDBFEFEFE09FDE4EAEAEAEAEAE7E708FE2B1C3C3A3B - 3B3B393B3B3B3B3B3B3B3B3D3D3D424251515146464676B6C8C9023636363936 - 3B3B3B3B3D3D3D42424040404646464646464E3E4E4E4E4E4E4E4E463D4162FE - FE08FBEAEBEBEBEBEBEBEBEBE7EBEBEBEBEBEBEBEBEBEBEBEBEBEBE7EBEBEBEB - EBEBF0F6EFF00508F2E3E2EAEBF0EFF6EFEFEFF0E1E1E7EDF8FAFBFBFBFAFAFA - FAFAF9FAF9F9F1F1F1F8F8F8F8E6E6F7F2ECDBFEFEFE09E0E3E7EAE7EA08FE2B - 1C41393B3B3B3B3B3B3B3B3B3B3B3D3D3D424242514646464E46B6B6B7B80236 - 3639363B393B3B3B3D3DA2424040404646463E4E3E4E4E444444444444444446 - 42412AFE08E7EBEBEBE7EBE7EBE7E7EBEBE7E7EBE7E7E7E7E7EBE7EBE7E7EBEB - E7EBE7EBE7E1EBEFF6EB07FCFAE5FBFAE4E2EAE7EFF6F6EFF6EFF0E1E1EBE8E6 - FAFAFAFAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F207DBFEFEFE09E0EE - E708FE2B1C1A393B3B3B3B3B3B3B3B3B3D3D3D3D3D4242514646464E4E4EB6B6 - C9C9023639393B363B3B3B3D3D3D424040403E3E4E4E4E724472494949494949 - 4943494E42472AFE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7F0F6EFF005FDFCEDDFF6EAE4FBFAF7E8E9EBF0EFF6EFEF - F6EFE1E1E8E2E5FAFAFAF9F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7E5F7F207 - DBFEFEFE08DBFE2B1C41393B3B3B3B3B3B3B3B3B3B3D3D3D4242404646464E4E - 7272B6B6C9B802363939393B3B3BA23D3D404040403E464E4E4E72724949491F - 4949434949434349514762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7E7E7E7E1F0EFF0E8ECFCF9F4DCDCDFF3F6EAE4FAFAF7ED - EAEBF0EFF6EFEFF6EFE1EBEAE9E4F1F9F9F9F1F1F1F8F8F8E6E6E6E6F7F7F7F7 - E5E5E5E5E5F207DBFEFEFE2B3F41393B3B3B3B3B3B3D3B3D3D3D3D4242425146 - 464E72727272B6B6C9B8023939393B6A3B3B3D3D3D424040463E4E4E49494949 - 49431F494343435353434349464762FE08E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EBE2F6F6E1E0F2FCE7DFDFDFDCDFF3F3F3 - F4E7E4FAFAF8EEEAEBF0EFEFF6F6F6F6F0E1E7E7EEF8F1F1F1F1F8F8E6E6E6E6 - F7F7F7E5E5E5E5E5E5E4E4F7F2DBFE2B3441393B3B3B3B3D3B3D3B3D3D3D4242 - 405146464E72725A5A5AB6B7C9B802393939363B3B3D3D3D4040403E3E4E4444 - 4949491F434326535353535353535349464762FE08EAEAEAEAEAEAEAEAE7EAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E1F6F6EFA0E0FCE4DFDFDFDCDC - DCDCF3F3F3F3F3F5E7EEF9FAF1E3EAE1EFF6F6F6F6F6F6F0F0F0E7EDF7F8F8F8 - E6E6E6F7F7F7F7F7E5E5E5E5E4E5E4E4E409FE2B3F413B3D3B3D3B3B3D3D3D3D - 3D3D4242404646464E725A5A5A5A7DB7C9B80239393B3B3B6A3DA23D40403E3E - 46444949491F43432653535353535353234D53264E4762FE08EAEAEAEAEAEAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBE1F6EF0AE0FCFAF6DF - DFDCDCDFDCF3F3F3F3F3F3F3F4F4F4E7EEF9FBFAE4E2E1F6F6F6F6F6F6EFEFF0 - E1EBE2E5E6E6E6F7F7F7F7F7E5E5E5E5E5E5E4E4E409FE2B3F413B3D3D3B3D3B - 3D3D3D3D3D42424246464E4E727E5A5E7E7EB7B7C9B8023B3B3B6A3B3D3D3D42 - 40403E46444949491F2626535D5353234D4D5757575757264E8662FE08EAEAEA - EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E2F6EFEFF9F2 - FBEADCDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F5F5EBEDF9FBFBE5E8E1EFEF - EFF6F6EFF6EFF0F0EBE9E3F7F7F7F7F7E5E5E5E5E5E4E5E4E409FE2B3F3A3B3D - 3D3D3D3D3D3D3D3D4242424046464E725A5A7E7E5E5EB7B7C9B8023B3B3B3D3B - 3D3D3D40403E3E4444491F1F2653535357235757565676745674565D724262FE - 08E9E9EAEAE9E9EAE9E9E9E9EAEAE9E9E9E9EAE9EAE9E9EAEAE9EAE9E7E1F6F0 - F6EEFAFCEDDFDFDFDFDCDFDCDCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5EBEDF8 - FBFBE6E8EBEFEFF6EFEFF6F6EFF0E1EBEAEEE5E5E5E5E5E5E5E4E4E4E409FE2B - 3C3A3B3D3D3D3D3D3D3D3D424242405146464E725A5A5E5E5E5EB78AB8A8023B - 3B3B6A3D3DA242403E3E44444943435353535D29575656767474745C74567657 - 7E5162FE08E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EA - E1F6EFF6E2F7FCE4F3DFDFDFDFDCDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5 - F6F6F6EFE1E8F7FBFBF8EEE7EFF6EFF6F6EFF6F6EFE1E1EAE8E4E5E5E5E5E4E4 - E409FE2A3C3A3B3D3D3D3D3D3D423D4242424046464E725A7E5E5E5B5B5EC9B7 - B8B8023B3B3B3D3D3D4040403E46444949435353535D57745C565C5C74745C5C - 595C50577E5163FE08EBE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 - E9E9E9EBF0F6EFE1E4FBF7F3DFDFDFDFDFDFDCDCDCDCF3F3F3F3F3F3F4F4F4F4 - F5F5F5F5F6F6F6F6F6F6EFE1E8E5FBFAF1EEEAF0F6F6EFF6F6EFF6EFE1E1E7E2 - E3E5E5E4F8DBFE2A41473B3D3D3D3D3D3D42424242424046464E725A5E5E265E - 5B5EB7C9B8A8023B3B3B3D3DA23D403E3E44444953265353575676745C5C5C59 - 595F7D7D597D7D565D2887FEDBEFEBE9E9E9E9E9E2E9E9E9E9E9E9E9E9E9E9E9 - E9E9E2E9E2E9EBEAF6F6F0EEFAF7F3DFDFF3DFF3DFDCDCDCDCF3DCF3F3F3F3F4 - F4F4F4F4F5F5F5F5F6F6F6F6F6EFEFEFEFEFE1E2E5FAFAF1E3E9F0EFF6F6F6F6 - EFEFF0F0EBE9E3E4ECFE0B2A413B3D3D3D3D3D3D3D3D4242424040464E725A5A - 5E5E5E5D5D5DC995B8A8023B3B3D3D3D4040403E3E4444435353575756745C5C - 5F5F7D7D7D7D7D7D7D7D7D50577E85FEFEE2EFEBE9E9E2E9E9E9E2E9E2E2E9E8 - E9E9E9E2E2E9E9E9E7E1EBEFF6E7EEF9E5F4DFF3DFDFDFDFDFF3DFDCDCDCF3F3 - F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFEFE1E9E5FAFAF1E3 - E8F0F6F6F6F6EFF6F6F0E1E3DBFE2A3C3A3B3D3D3D3D3D3D4242424240405146 - 4E725A7E5E265D5D5D5D9595B8BA023D3D6A3D403D40403E6B44494353235774 - 5C5C5C5F5F7D7D7D7D7D817D7D7D7D5F5C5E772FFE09F0F0F0EAE2E2E2E2E2E2 - E2E9E2E9E2E2E2E9E2E9EAE1EAEFEFEFE5E6FBE3F4DFDFDFDFF3DFDFDFF3DFDC - DCDCF3F3F3F3F3F3F4F4F4F4F5F5F5F5F5F5F6F6F6EFF6EFEFEFEFEFF0EFF0F0 - F0EAE4FAFAF1E5E8EBEFF6F6F6EFEFE0FE063F413B3D3D3D3D3D3D423D424242 - 4040464E4E725A7E265D5D5D5D5DC9C9B8BA023B3D3D3D3DB4403E3E44444353 - 5357565C5C5F5F7D7D7D7D818181818181817D7D5C767E2DFEFE64EAF6EFE1EA - E9E2E2E2E2E2E2E2E2E2E2E2EAEBF0F0F6F6EDFCFAFCE2F3DFDFF3DFDFDFDFF3 - DFDFDFDCDCDCF3F3F3F3F3F3F4F4F4F4F4F5F5F5F6F6F6F6EFF6EFEFEFEFEFEF - EFF0F0F0F0F0F0F0EAE3FAFAF1FAEEEFF6EFE709FE623C3A3B3D3D3D3D3D3D3D - 3D42424240404646725A5A5E265D5D5D5D8495B8B8A8023D3D3D403D403E3E3E - 4449435357565C5C5F5F7D81818181818A81818181817979815C5D7A2EFEFE2F - F20AF6E1F0EBE7E9E2E2E2E2E9E9E7E1F0EFF6F0E4FDECDEFD09EBDFF3F3DFF3 - DFF3DFDFDFDCDFDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F6F5F5F6F6F6F6EFEF - EFEFEFEFF0EFF0F0F0F0F0F0F0F0F0E7F2E5E7EFEFF0FAFE0B3F41473D423D42 - 3D3D4242424242425146464E725A7E5E5B5D8484295D95B89ACA023D3D3D3DB4 - 403E3E444443435357745C5F5F5F8181818A8A7979798A797979797979815C5D - 722EFEFE07FAFAE8F0F60AF0E1EBE7E7EBE1EFF6F0EDE0ECECECECEC07ECECEC - F2F8E8E1DFDFDFDFF3DFDCDCDCDCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5F6F6F6 - EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F0E9FBE8EFF6EF0506FE2F3C473B - 3D3D3D3D3D3D3D3D424242404046464E725A5E5E5D298484848496B89ACA023D - 3D404040403E3E44444353574B5C597D7D818181798A8A838383787879837978 - 798A7D5C5D722EFEFE09F2FAFBF8E8EFF6EFE1EFEFF0EDE0ECECECECE0E40AFB - ECFDDEECECECECECDEF2E5E2EFF3F3F3DCDCF3F3F3F3F3F4F4F4F4F4F5F5F5F5 - F6F6F6F6F6EFEFEFEFEFEFEFF0EFF0F0F0F0F0F0F0F0F0F8E5EBF6F60A09FEFE - 2A41473D42423D3D423D3D424242425140464672725A265D5D848484848496B8 - 9CCA023D3DA23D403E3E6B6B43434D4B745C5F7D81818A8A8A838A8383838383 - 83838383787981815C5D722DFEFEFE08ECE0FAF1E5E3F7FCDEECECECECF2E50A - 040404FBECFCF7E6FAF2FDDEECECECECECFDFBE3EAF5F3F3F3F3F3F4F4F4F4F4 - F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0F0F0E9FAE8EFF6E1 - DEFEFE6241473D3D423D3D423D424242424242405146464E497E5E5D5D848484 - 8484B8B8A8CA023D3D4040403E3E6B6B4345534B5C597D81818A8A8383838383 - 838383838383838378787879545C577E880B0BFEFEFEFEDB08ECECECECECF2E4 - 0A040404040404FBECFCE6F7F7F7E5E5F7FAF2FDECECECECECECE0FAEEE7F3F3 - F4F4F5F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFF0EFEFF0F0F0F0F0F0F0F0F8EE - F0EFF0FBFEFE2F41473D424242423D423D3D42424242404246464672497E5D5D - 84845C848484B8B89CCA023D4040B4403E3E6B44434570745C7D7D818A8A8383 - 838383838990838383838383838378797981505C535A882D2F0BFEFEFE07ECF2 - E40A040404040404040404FBECFCE6F7F7E5E5E5E5E4E4E3E3E5FAF2FDECECEC - ECECECE0F1EDEBF4F5F5F5F5F5F6F6F6F6F6EFEFEFEFEFEFEFF0F0F0F0F0F0F0 - F0EDF7E7F6F6E5FEFE2F41473D3D4242423D3D3D424242424240405146464E72 - 7E5E5D5D848461848484989ACACA02403D40403E3E3E6B4443534B5C5F7D8181 - 8A8383838383908390837C9083837C7C83838378787981505C56534372518762 - 2FECEC0A040404E104040404040404FBECFCF7F7F7F7E5E5E4E4E4E3E3E3EEEE - EEEDE5FAF2FDECECECECECDEF2F7E8E1EFEFF5EFEFEFEFEFEFEFEFF0EFF0F0F0 - F0F0F0F0E7F1EAF6F6E5FEFE2F41473D42424242424242424242424242424051 - 46464E5A7E5E5D84848F8F8F8F8F98B8CACA023D4040B43E3E6B4449454D4B5C - 5F7D8179798383839089908989897C9089907C7C7C838383787979795050744B - 704346473F07EC0A0A04040404040404040404FBECFCE6F7F7F7E5E5E4E4E4E3 - E3E3EEA0EDEDEDE8E8E2E8E4F9F2DEECECECECECFDFCE5E9F0EFEFEFEFEFEFEF - F0F0F0F0F0F0F0EDFAEDF0F0FDFEFE2F413B3D42424242424242424242424242 - 42404046464E725A7E265D848F8F8F8F8F849A98BACA02404040403E3E6B4443 - 454556747D818A8A83838390899089898989898989897C907C83838379585858 - 79547D50504D494241ECEC0A0404E10404040404040404FCECF2E6F7F7E5E5E5 - E5E4E4E3E3E3EEEEEDEDE8E8E8E2E2E2E9E9EAE2E4F9E0DEECECECECECFDFBEE - EBEFEFF0EFEFF0F0F0EBF7FCE5EBE208FEFE2E41473D42424042424242424242 - 4242424240404046464E727E5E5D845C8F8F8F8F8F8F9A9ACACA0240B440403E - 3E6B4443454D4B597D81818A83838989899089898989898989897C7C7C837C83 - 8378787954546E55554843514707EC0AE104040404040404E2F8FDECECECECEC - DEE0F9F7E4E4E4E3E3E3EEEEEEEDEDE8E8E2E2E9E9EAEAEAE7EAE7E7E2E4FAE0 - ECECECECE0F0EFEFF0F0F0F0E3FCFBE4EAF9DBFE096447474242404040424240 - 4242424242424240424040464E4E725A5E5D84618F8E8E8E8E8F9A9ACACA0240 - 40403E3E3E6B4443434D74507D818A8383838989898989898989898989898989 - 8989837C83787879795454505048534647ECEC0A0404040404E8FADEECECECDE - FBE0ECECECECECECECDEF2F9E4EEEEEEEDEDEDE8E8E2E2E2E9E9EAEAEAE7E7E7 - EB0AEBEBEBE2FCECECEBEFEFEFF0EBF9FBE3EAEBDEFEFEDE67473D4240404040 - 404042424242424242425140404046464E725A5E5B5D848F948D94948E8F9A9A - CAC2024040B43E3E3E6B4343454A747D7D818A83839089898989898989898989 - 89898989897C7C83838378795479545555484D4E4707EC0A040AA0F2DEECECEC - DEF9E9D9DDDDDDEBEDF1F2ECECECECECECECDEF2F1E3E8E8E8E2E2E9E9EAEAEA - EAE7E7E7E7E7EBEBEBEBE7DEECEBEFEFE7E3FBFBF8F8DEFEFEDBDE6885424046 - 3E463E40404040404242424240424040404046464E495A5E5D84848F8E8D9394 - 8E949A9CCAC2024040403E3E6B6B4343454B5C7D7D818A838389898989898C89 - 898C898989898989897C897C7C78787879546E6E505045443DECECF7F2ECECEC - B3D1D4D4D7DDDDDDDDDDDDDDDDDDDDDDEBE8E6F2DEECECECECECECDEFCE6EEE2 - E9E9EAEAEAE7E7E7EBE7EBEBEBEBEBDEECEDEAE6FCFCDEDBFEFEFEFEE0D86651 - 51463E463E46463E4040405142424240424040404640464E72495A265D848F8E - 8D9393938E8E9C9CCAC20240403E3E3E6B444443454A747D7D8A838389898989 - 898C898C8C89898C898C898989897C7C8383835858796E6E55504B4342ECECEC - ECEC0708B3D0D3D3D3D3CFCFCFD5D7DADDDDDDDDDDDDDDDDDDE1E8E5FCFDECEC - ECECECECFDF2F7EDEAEAE7E7E7EBE7EBEBEBEBDEEC09ECEC09FEFEFEFE09FAA0 - D19F604E4444443E3E46464040404040514042425140515146464E4E725A5E53 - 848F8F8D93939393938D9C9CCAC2024040403E3E6B6B4443454B507D818A8383 - 898989898C898C89898C8C898989898989897C7C7C8378787979545555504843 - 442D07ECEC07DBD2B3CED3D3D3D3D3D3D3D3D3CFCFD5D5D7DAD9D9DDDDDDDDDD - DDDDF0E9E4FCFDECECECECECECFDFCF7EDEBEBEBEBEBEBF8EC07FEFEFEFE0B2E - 8867D19F7E72491F1F49443E4E46463E46404040405151404040404046464E72 - 497E5E5D848F8E939395959593949CCACAC20240403E3E3E3E4443434D4B507D - 818A83908989898C8C898C8C898C8C898C898C898989897C838378787979546E - 6E50746C433E0707ECECECD2B3D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D5 - D7DADAD9DDDDDDDDDDDDDDF6EAE4FAE0ECECECECECECFDFCF7EDE7E4EC080B2F - 2D827E5D5D5D5D5B53532653434949443E4E4E46464646514051514051464646 - 464E4E72492653845C8F9493959595959593CA9CC2C20240403E3E3E6B44B543 - 4D4B507D818A838389898989898C8C898C8C8C8C8C898989897C898983838378 - 58796E556E50504845434642872EDBB3B3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3CFCFD5D7DADAD9D9DDDDDDDDDDDDF6E7E3F9E0ECECECECECECEC - EC0842725B5C5F817D8159507457234D43434949444E4E464646464651404040 - 464646464E4E4E495A5E5D848F8E8A959595969595959C9CC2C202403E3E3E3E - 6B4443434D74507D798A83898989898C8C8C8C8C8C8C8C8C8C89898989897C7C - 7C7C785858796E54505050486C4543463D4163B3D1D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9D9DDDDDDDDDDDDE72F - 08ECECEC076449748158837C8383797D50504B4D45434949444E4E3E4E464646 - 46464046464646464E4E72497E5B5D618E8D9395969696969595CACACAC20240 - 3E3E3E3E6B4443434D48507D8183838989898C8C8C8C8C8C8C8C8C8C8C8C8C89 - 8989897C838383785854546E505050481E6C4544424764B3D0D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3CFD5D7DAD9D9D9 - DDE1E407ECECEC07825E565458898989898378797D50744D53531F4944444E4E - 3E464E4646464646463E464E4E72721F5E5D848F8E9395969696969696959CCA - C2C20240403E3E3E6B6B43454D74507D81838389898996968C8C8C8C8C8C8C8C - 8C8C898C8989897C7C8383785879546E6E505050486C4549516265B3CED3D3D3 - D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3CFD5D4F2ECECEC086472265255587C738C8C8C898379815974564D534349 - 4949724E4E4E4E4646464646464E4E4E72725A7E5357848E9395969698989896 - 96909CCAC2B202403E3E3E6B6B6B43454D74507D798383898989898C8C8C8C8C - 8C8C8C8C8C8C8C8C8989897C7C7C83787979546E556E5048484B45494241D2B3 - CECFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3D3D4D1D264474244535055587C898C8CA58C898358817D744B - 7053431F1F4949444E4E4E464E4E46464E4E4E72725A7E535D295C8E93959698 - 989898989696CACAC2C202403E3E3E3E6B4443454548507D7983839089898C8C - 8C8C8C8C8C8C8C8C8C8C8C898989897C7C837878587954545550504848484549 - 3D41D2B3D4D3D3D3CFD3D3D3D3D3D3D3CFD3D3D3CFD3D3D3D3D3D3D3D3D3D3D3 - D3D3D3D3D3D3D3CFD3D3D3D3D4B3D28786444A50544F71898CA5ABAB8C8C8983 - 817D5074224D53431F1F4949444E4E4E4E4646464E4E725A725A5A265D848F8E - 95969698989A989898969DCAC2CB0240403E3E3E6B4443454D74507D79838389 - 8989898C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C8378584F6E6E55505050 - 504B454E3D63B3D1CFCFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CFD3CF - D3CFD3CFD3CFD3CFD3CFD3D3D3CFD3CFD4D2D23A465350554F58718C738B8B8B - A58C898958547D50564D4343435A1F494E4E724E4E4E4E4E4E72725A495A5E53 - 5D5C8E939596989A9A9A9A989896C2CAC2B20240403E3E3E6B6B43454D74507D - 7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C898989837C8378794F4F6E - 6E505050504B2646472EB3D1CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3D4D2D247724D5554584C6F8C - 8B8B8B8B8B8C897C78817D50744B5343431F4949724E4E4E4E4E4E4E7272725A - 5A5A265D848F8E939596989A9A9A9A9A9898CACAC2B202403E3E3E3E6B6B4343 - 4D4850548183838989898C8C8C8C8C8C8C8C8C8C8C8C8C898989897C7C7C7C78 - 7858546E6E505050484B53464765B3D6CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD3CED26686491E2058 - 587C8C758B8B97978BA58C8983587D595C4B70532643261F5A5A72724E5A7272 - 72285A5A7E26535D848F8E9096989A9A9C9C9A9A9A989DC2C2CB0240403E3E3E - 6B4443434D74507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C8989897C - 7C7C7C787858586E556E5050507443514167B3CED5CFCFCFCFCFCFCFCFCFCFCF - CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFD0D26540 - 4350544C716F73A57BAAAAAA808B8C897C588150744B4D534326431F49497272 - 5A72727272725A1F265E5B5D5C8E8A9596989A9C9C9C9C9A9A98C2CAB2CB0240 - 403E3E3E6B4443434D4B507D7983838989898C8C8C8C8C8C8C8C8C8C8C8C8C8C - 8C89897C7C837883785854546E505550554B5A4241D2B3D4CFCFCFCFD5CFCFCF - D5CFD5CFCFCFD5CFD5CFCFCFCFCFCFCFD5CFCFCFCFCFCFCFCFD5CFCFCFCFCFCF - D1D22D4E4D504F717173737B977FAAAA978BA5897C78817D5074705353264349 - 1F5A72725A727272725A7E7E43265D848F8E9395989A9C9C9C9D9C9C9A98C2C2 - C2CB0240403E3E3E6B6B4343454B507D81838389898C8C8C8C8C8C8C8C8C8C8C - 8C8C8C8C8C898989897C7C8378584F5854546E55594B4E8662B3B3D5D5CFD5D5 - CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFD5CFCFCFD5 - CFCFD5D4B3D286494A554F717173A57BAA92AC92AA8BA58C7C838A7D50744B23 - 53264326495A5A5A727A725A5A5A495E5E535D848F8D9596989A9C9C9D9D9C9C - 9C98C2C2B2CB0240403E3E3E6B4443434D4B507D8183838989898C8C8C8C8C8C - 8C8C8C8C8C8C8C8C8C8989897C7C7C7878585854546E6E6E4853464764B3D1D5 - D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D4D2D23D49484F4C716F737B8BAA929292AA978B8C8983797D - 7D505723535326261F1F495A5A727272725A5A5A535B84848F8D9596989A9C9D - 9D9D9D9C9A9AC2C2CBCB02403E3E3E3E6B6B43434D74507D79837C8989898C8C - 8C8C8CA58C8C8C8C8C8C8C8C897389897C7C7C837878584F5455545548435147 - D2B3A0D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D5D5D5D5CED266514350584C6F6F737B8092929292AC808B8C - 897C7954595C56702353261F5E1F5A7E5A725A725A5A7E535B5D845C8F8A9596 - 9A9C9D9D9D9D9D97979AC2C2CBCB0240403E3E3E6B4449434D4B507D79839089 - 89898C8C8CA58C8C8C8C8C8C8C8C8C8C8C898989897C7C7C787858584F6E6E50 - 48494241B3D2D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - D5D5D5D5D5D5D5D5D7D5D5D5D5D50AD0D265464D554C716F73737B7F92999292 - ACAA8BA5897C79797D5C4B57235326267E5A5A7E5A5A5A7E5A7E5E5E5E5D845C - 8E8A96989A9C9D9D9D9D9D9D9C9AC2C2CBCB0240403E3E3E6B6B44434D48507D - 8A839089898C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C7C897C897C7C7878584C - 4F546D6E48494263D2D1D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5D7D5 - D7D5D7D5D5D7D5D5D5D7D5D5D5D5D5D5D5D5CFD1D288491E204C6F6F73A57B7F - 9299999992AA8BA5898358797D5C4B56575B2626261F5A5A7E5A7E5A1F7E7E26 - 295D5C8F8D9596989A9C9D9E9D9D9D9D979ACBC2CBCC0240403E3E3E6B6B4343 - 4548507D79839089898C8C8C8C8C8C8CA58CA58C8C8C8C8C8C8C8C8989897C7C - 7C7878584F4F4F504A493D64B3D0D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D4D2D24243246D716F7C - 737580A39299999992AAA8AB8C7C83797D74744B295B26267E7E5A495A7E7A7E - 7E7E7E5E5B5D848F8D9396989C9C9D9E9E9E9D9D979AC2CBCBCC0240403E3E3E - 3E4444434D4B507D8A838389898C8C8C8C8C8C8CA5A58CA5A58C8C8C8C8C8C89 - 7389897C7C7C7178584F4F6E706B8765B3D8D7D7D7D7D7D7D7D7D7D7D7D7D7D7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D5D6D266515354 - 4C716F73737580929299999992928BA5898983817D50745657535326261F5A7E - 7E7E7A7E7E7E5E265D27847D8A9596989C9D9D9E9E9E9D9D9C97CBC2CCCC0240 - 403E3E3E3E6B4443454B507D8A8390898C8C8C8C8C8C8CAB8C8C8CA58CA5A58C - 8C8C8C8C897C897C7C7C71714C4C54554D7741D2B3D4D7D7D7D7D7D7D7D7DAD7 - D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7DAD7D7D7D70AD1D2 - 82494B6E4C716F73738B7F929999A999BB92808B8C7C838A7D597429235B2626 - 5A495E7E7E7E7E7E7E7E5E5E29295C8E8A95989A9C9D9E9E9E9E9E9D979ACBCB - CBCC0240403E3E3E3E6B43434548507D79838989898C8C8C8CAB8CABABABA5AB - A5A5A5A58CA58C8C8C8C8C89897C7C7C714C4F50534263B3D2D7DAD7DADAD7DA - D7DAD7DAD7DAD7DAD7DADAD7DAD7D7DAD7DAD7D7DAD7D7DAD7D7DAD7D7D7D7DA - D7D4D2D2421F484F4C6F7373737B7F9299AEAE999292808B8C8983797D505C56 - 575326265E5E7E5E7E7E7A7E5E7E5E5D5D848F8E9395989A9C9E9E9E9E9E9E9D - 9C9ACBCBCBCC0240403E3E3E6B6B4343457450548A839089898C8C8CAB8CABAB - A5ABABABABA5A5A5A5A58CA58C8C8C89737C7C7C7C714F74438664B3D1D9DADA - DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA - DADADADAD7D6D266464D554F6F6F6F73757B7F929999AFAE9992AA8B8C898379 - 7D7D745656535B53535E7E7E7E7E7E7E7E5E5E5D5D845C8E8A96989A9D9E9E9E - 9E9E9D9D9C9ACBCBCCCC0240403E3E3E3E6B4443454B7D81798389898C8C8C8C - ABABABA5A5ABA5ABA5A5A5A5ABA5A5A58C8C8C738C8C89736F6F4F50728767B3 - D8DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA - DADADADADADADADA0AD1D2827A744F4C716F737373807F9299AFAF999992AA8B - 8C89838A817D5C56575D5B2626267E7E7E7E7E7E7E5E5E5D575C8F8D9096989C - 9D9E9EB2B29E9E9D9C97CBCBCCCC0240403E3E3E3E444943454B7D7D79838989 - 8C8C8CABABA5ABABABAB8BABABABAB8BABABA58BA5A5A58C737373737C717957 - 4687D2B304D9DADAD9DADADADADADADADADAD9DADADADADADADADADADADADADA - DADADADADADADADADADADADAA0D2D25143504F71716F6F73757B7F92A9AFAFAE - 9992978B8C8983797D5F5C56575B5B26265E7E7E7E7E7E7E7E5E5E5B845C8F8A - 9596989C9D9E9EB29E9E9E9D979ACCCBCCCD024040403E3E3E6B6B434D74507D - 8A8389898C8C8CABABAB8BAB8BABAB8B8B8B8B8B8B8BA5AB8BA5A5A5A5A57389 - 7378555E8664B3D1D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9DAD9D9D9D9DAD9D9DAD9D9D705D2654E4A504F4C6F6F7373757B7FA7 - 99AFAFAE9992AAA58C89838A7D7D7474575B265E267E7E7E7E7E7E7E7E5E5E5B - 298F8F8D95969A9C9D9EB2B29E9E9E9D979ACCCBCCCC024040B43E3E3E6B4443 - 454B50818383898C8C8CA5ABABABAB8B8B8B8B8BA88B8BA88B8B8B8B8B8B8B8B - A5A573757C78745A8767D2D8D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D90AD2D2881F486E4F71716F7373 - 757B7FA799ADAFAF9992AA8B8C7C83797D597656575B2626267E7E7E7E7E7E7E - 7E7E5E5D5D848F8D95969A9C9D9E9EB2B29E9D9D979ACCCCCCCD0240403E3E3E - 3E6B444345745081838389898C8CA5ABAB8B8B8BA8A8A8A8A88BA8A8A88B8B8B - 8B8B8B8B8B7B75737C5453852DB3D2D9DDD9DDD9D9D9D9D9D9D9D9D9D9D9D9D9 - D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9DDDAD6D267465350204C4C - 71716F73758092A7AFAFAF999992AA8B8C8983797D505C74295B5B267E5E7E7E - 7E7E7E7E7E7E265D765C8F8A95969A9C9E9EB2B29E9E9E9D979ACCCCCDCD0240 - 40403E3E6B6B444345747D818383898C8CABABAB8BA8A8A8A897A8A89797AAAA - A8AAA8A8808B8B808B8BA58978747A47D2B3D8DDDDDDDDDDDDDDDDDDDDDDDDDD - DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD9DDDDD9DD04D1D264494B - 55204C4C4C6F7373757BA39999AFAFAF9992978B8C8983797D595C76575B265E - 5E7E7E7E7E7E7E7E7E7E5E5D295C8F8A90989A9C9E9E9EB29E9E9E9D979ACCCC - CDCD0240403E3E3E3E6BB54370747D798389898C8CABAB8BA8A88B9797AA97AA - AAAAAAAAAAAAAAAAAAAA7F8B8BA58C7C7D7E8564D2D2D9DDDDDDDDDDDDDDDDDD - DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE2D2 - D251265255204C4C716F7373757BA392AFAFAFAE9992AA8B8C8983817D5C7457 - 575D265E265E7E7A7E5A7E7E7E5E5E5D848F8F9395989A9D9E9EB2B2B29E9D9D - 979ACCCCCDCD0240403E3E3E6B44434370507D798389898CABAB8B8B97979797 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80A57C795D8863D2B3E8DDDFDFDDDFDF - DDDFDDDDDFDDDDDDDFDDDFDDDFDDDFDDDFDFDDDFDDDDDFDDDDDFDDDDDDDDDDDD - DFDAD1D2654E4D50554F4C4C716F73737580A399A9AFAFAE9992808B8C89838A - 505074575B5B26267E7E7E7E5A5A7E7E7E5E5E5D845C7D8A90989A9D9EB2B2B2 - B29E9E97979ACDCCCDCD0240403E3E6B6B6B43436C50548A7C898CABAB8BA8A8 - 97AAAAAAAAAAAAACACACACACAC92ACACACAAAAAA80A5898F7A2DD2B3F8DDDFDF - DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF - DFDFDFDDDCE9D2D2421F5255204F4F4C716F6F7375809299AFADAFAF9992AAA5 - 8C8958797D5C27575B26265E7E7E7E5A7E7E7E7E7E5E5E5D848F8E8A90989A9D - 9E9EB2B29E9E9D9D979ACCCCCDCD0240403E3E6B446B43454B50547889898CAB - 8B8B9797AAAAAAAAACACACACACACAC9292ACACACACA3A3AA8BA5838482D2B366 - DD01DF01DFDFDF01DF01DFDFDFDFDFDFDFDF01DFDFDFDFDFDFDFDF01DFDFDFDF - DFDFDFDFDFDFDF01DA05D2654E45505520204C4C6F6F7373757B92A6999BAFAF - 9992AA8B8C8978797D5C5C575353265E5E7E7E7E7E5A7E7E7E5E265B848F8E93 - 96989C9D9E9EB2B29E9E9D9D979ACDCCCDCD02403E3E3E6B446B434548507983 - 898CABAB8B97AAAABAACACACACACBBBB92BBBBBBBBBBA7929292A39280A590D2 - B3D2D1E7F0E1DFDFDFDF01010101010101010101010101010101DF010101DF01 - 01DF01DFDFDF01DFDF010101E7D2D2881F746E544F4F4F4C716F7373757BA399 - A99BADAE999280A58C8978817D505C57575B265E7E7E7E5A7E5A7E7E7E7E5E5D - 298F8E9396989C9D9EB2B2B29E9E9D979AABCCCCCDCD02403E3E3E446B6B4345 - 48557983898CAB8BA897AAAAACACACBBBBBBBBBBBB99BB99A7BBA7BB92A7AC92 - 7F8B89B3B3B3B3B3B3DED1D1D105D6D6E6A0A0A0E7EBEBEFF4F4DF0101010101 - DF0101010101010101010101010101F0D1B3655A23506E4F4F4F4C4C716F7373 - 75809299AFAD9BAE999297A58C7C78815F2456575B265E5E7E7E7E7A7E7E7E7E - 7E5E5E5D848F8E9396989C9D9EB2B2B2B29E9D979A9ACDCDCDCD02403E3E6B6B - 44434345747D797C8CA58BA8A8AAAAACACACBBBBBBBB9999B9B999B99999A6A7 - A7A7A7A7AC80A5676767D2D2D2D1B3B3D2B3B3B3B3D1B3D1D1D1D1D1050505D8 - D6D8A0E8E2EA0AEBEBEFF6EFF3DFDF0101DFD9D6D2D251534850542020204C4C - 716F6F73758092A6AFAD9BAF999297A58C7C83817D7456235B265E7E7E7E7E7E - 7A5A7E7E7E5E5B29848F8E9596989C9E9EB2B2B29E9E9D979A9ACDCCCDCD023E - 3E3E446B4343456C505478898CAB8B97AAAAACACBBBB999999B9B9AEAEB9AEB9 - B9A69999B999A7A792AA80A589898A8A8E946161619F9F9F6666666767D267D2 - D2D2B3D2D2D2B3B3B3DED1D1D10505D6D8E3A0E8EAE7E3D2D2911F4B50542020 - 204C4F4C716F6F73758092A6AD9BAFAF999280AB899083817D7474235B261F7E - 7E7E7E5A7E5A7E7E7E7E5E5D848F8E95969A9C9D9EB2B2B29E9E9D979AABCDCC - CDCD023E3E3E444443436C6C50798389A58B97AAAAACACBBBBB9B999B9AEAEAE - AEAEA9A9AEAEA9B9A6A699A6A792A37F8075A5736F71784F546E5050745C7676 - 619161919F9F66669F66666666676767D267D267D2D2D2D2D2D2D2D29F494A50 - 55544F54206D4C4C716F6F7375809299AF9B9BAF999297A58C8378815F5C5629 - 53435E7E7E5A7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B29E9E9D97 - 9A98CDCDCDCD023E3E4444434345454B5079838CA58B97AAACACBBBBB9AEAEAE - AEAEAEAEAFAFAFA9A9A9A9AEA699A6A6A6A4A4A3A37F807B757573736F6F4C6D - 6D6D6E50504848486C4D5345434326265A919191919F9F9F666666B367D2689F - 436C5050204F4F4F204F4C4C716F6F73758092A9AF9B9BAF99AC97AB897C8A7D - 7D5C56295B265E7E7A7E7E7E7A7A7E7E7E7E5E5D848F9495969A9C9EB2B2B2B2 - 9E9E9D979AABCDCDCDCD023E3E6B444343456C4850797C8CABA8AAACACBB9999 - AEAEAEAEAEAFAFAFBEBEAFAFAFAFA9A9A9A9A6A6A6A6A7A4A3A37F7F7B7B7575 - 73736F6F6F4C4C4C6D6D6D6E505550505050481E4B4B2370232653262649495A - 491F43534824506E204F54206D4C4C4C716F737375809299AD9BADAF999280AB - 8C83797D7D74565B5B267E7E7E7A7E7E7A7A7A7E7E5E5E5D848F8D95969A9D9E - B2B2B2B29E9E97979A98CDCDCDCD026B44441F43434548487D78898C8BAAAA92 - BB99B9AEAEAEAFAFBEBEBEAFBEBEBEBEAFADA9AFA9A9A9A6A6A6A7A4A4A3A37F - 807B75757573736F6F6F4C4C4C6D4C6D6D4C6D2020556E6E5050505050525252 - 2452484B564B48745055556E55204F204F20204C6F6F6F73758092AFAD9B9BAF - 99AC97AB89838A7D5C5C56295B5E265E7E7A7A7E7E7A7A7A7E7E5E5D848F8D95 - 969A9D9EB2B2B2B29E9E9D979A98CDCDCDCD024E44441F4345454850547C89A5 - A8AAAC929999AEAEAFAFAFBEBEBEBEBDBEBEBEADADADADA9AFA9A9A9A6A6A7A4 - A4A3A37F7F807B7575736F6F6F6F6F6F4C4C4C6D204C204C4F6D20206E205455 - 5555555555505550555059556E55556E206E4F6D4F4F4C4C716F6F737580A799 - AD9B9BAF999297A58C838A7D505C295B535E7E7E7E7A7E7A7E7A7A7E7E7E5E5D - 848F9395989A9D9EB2B2B2B29E9E9D9AABABCDCDCDCD0244441F4343456C4850 - 547C8CA5A8AAACBBB9AEAEAEBEBEBEBEBEBEBDBDBE9BBEBDADADADADADA9A9A9 - A6A6A6A7A4A4A37F7F7B75757373736F6F6F6F6F4C4C4C4C6D4F4F4C4F6D2055 - 6D6E555554542055556E5455555554555555206E206E4F20204F6D4C716F7373 - 757F9299AD9B9BAF99928BA5897C797D5C5C295B5B7E7E7E5A5A7E7A727A7A7E - 7E7E5E5D848F9390989C9D9EB2B2B2B29E9D9C9A9A98CDCDCDCD024444434343 - 454A4850797C8C8BAAACBBBBAEAEAFBEBEBEBEBDBEBD9BB0BD9BB0BD9BADBDAD - ADADA9A9A9A6A6A7A4A4A3A38080757575736F6F6F6F6F6F4C4C4C6D6D4C4F6D - 6D2020555420556E6E5520555454546E6E555555542055545420544F204F4F4C - 716F6F737B8092A99B9B9BAF999297A58983797D595C575B265E7E7E5A7A7A7A - 7A7A7A7E7E5E5E5D848F9390989C9D9EB2B2B2B29E9D9D9AAB98CDCDCDCD0249 - 441F43456C1E506E787CA58BAA92BB99B9AFBEBEBEBEBE9BBDBDB0BDB0B0BDBD - BDBDADADADADADA9A9A9A6A6A7A4A47F807B7B7573736F6F6F6F4C4C4C4C4C4C - 4F20204F204F2054556E55555520556E54545455555555555554552054546D6E - 6D4F4F4C4C6F7373757FA4AEAD9B9BAF99928BAB8983797D5074565D267E7E7E - 5A7E7A7A7A7A7A7E7E7E5E5D848F8D95989C9E9EB2B2B29E9E9D979A988CCDCD - CDCD021F1F43534D4A48506E787CA58BAABB99AEAEBEBEBEBD9B9BB0B0BFBFBF - B0B0BDBFBDBDBDBDBDADADADA9A9A6A6A6A4A3A37F80757575736F6F6F6F6F6F - 4C4C4C4C4F204C4F6D202055555454556E54555420542054545555546E205454 - 20544F4F4F6D4C4C4C6F6F73757F92A99B9B9BAF9992978C8983795F5027295B - 267E7E5A7A7A7A7A7A7A7A7E7E5E5E5D5C8F9396989C9DB2B2B2B29E9E9D9C9A - 9898CDCDCDCD021F4343454D4B48506E788CA58092BBA7AEBEBEBE9BBD9BBFBF - BFBFB1BFBFBFBFB0BDBDBDBDBDADADADADA9A9A6A4A4A47F7F7B7B7573736F6F - 6F6F6F4C4C4C6D4C4C4C20204F202020546E6E6E545455555555556E55555555 - 205454545554546D4F4F4C4C716F6F737B7FA7AEAD9B9BAF99928BAB8983797D - 5C57575B5E5E7E7E7E7A727A727A7A7E7E7E5E84848E9396989C9EB2B2B2B2B2 - 9E9D9CAB988CCDCDCDCD021F4343456C48486E6E788C8BAAAC99AEAEAFBEBD9B - B0B0B0BFBFBFBFBCBCBFB0BCBFB0BDBDBDBDADADADA9A6A6A6A4A3A380807575 - 75736F6F6F6F6F4C4C4C4C4C4C4C204F4F2054204F5455555555555554555555 - 5555555455552020556E5420206D4C4C716F6F73757F92A99B9B9BAF9992A88C - 8983817D5C57575B7E7E7E7E7E7A7A7A7E7A7A7A7E5E5E5D848E9396989C9EB2 - B2B2B2B29E97979A9896CDCDCDCD021F4345454A48506E797C738BAAACA7AEAF - BE9B9BB0BFBFBFB1BCBCBCC0B1BCBCBCBCBCB0BDBDBDADADADADA6A6A4A4A47F - 7F7B7B7573736F6F6F6F4C4C4C4C4C4C4C6D20202055546E2055555455555420 - 55555554556E5555556E555520555420204F4F4C4C6F73737B7FA7AF9B9B9BAF - 99928BA58983817D5C56295B267E5E7E7A7A7A7A7A7A7A5A7E7E5D84848E9596 - 989C9EB2B2B2B29E9E9D97AB988CCDCDCDCD021F4345457448506E58718C8BAA - BB99AEBEBEBDB0BFBFBFC0BCC0C0B1C0C0C0C0B1C0BCBCBCBCBDBDADADA9A9A6 - A6A4A3A38080757575736F6F6F6F6F4C4C4C4C4F4F6D4F204F20202055556E55 - 555555555555555555555555556E6E556E54204F6D4F4F4C4C6F6F73757FA7AF - 9BB09BAF99AC8B8C8983817D5C565B53267E7E7E7A7A7A7A7A7A7A5A7E5E5E5D - 848E93969A9D9EB2B2B2B29E9E9D9A9A9896CDCDCDCD02435345534B50506E4C - 7CA580AABB99AFAFBEBDB0BFB1B1B1C0C0C0C0C0C0C0C0C0BCC0BCBCBCBDADBD - ADA9A9A6A4A4A3A3807B757573736F6F6F6F4C4C4C4C6D4F6D4C204F6E202055 - 556E5555546E55555555555555556E55556E55555420204F206D4C4C716F7373 - 7B7FA7AF9B9B9BAF99928B8C898381595C235B535E7E7E7E7A725A7A7A7A7A7A - 7E5E5E5D8F9493969A9D9EB2B2B2B29E9D9D9AAB8C96CDCDCDCD021F43454D4B - 505054587CA580AA99AEAFBEBDB0BFBFBFC0C0C0C0C0C0C0C0C0C0C0C0BCC0BC - B0BDBDADADA9A9A6A7A4A4A37F7B7B75736F736F6F6F4C4C4C4C6D4C4F204F4F - 202054205455546E556E55555555555555556E55556E5520546E2020204F4C4C - 4C7173737B7F99AF9BB09BAF99928B8C8978815027565B267E7E7E7A7A7A7A7A - 7A7A7A7A7E5E5E848F8E95969A9D9EB2B2B2B29E9E979AAB9696CDCDCDCD0226 - 53456C48505054587CA58092A7AEAFBEBDB0BFBFC0C0C0C0C0C1C1C1C1C0C0C0 - C0C0BCBCBDBDBDADADA9A6A6A6A4A37F807B757573736F6F6F6F4C4C4C4C4C4C - 6D6D4F206D2020545455545555555555556E5555555555555555555555542020 - 54204C4C716F6F75757F99AF9BB09BAF99AC8B8C89838159742953267E7E7E7A - 727A7A7A7A7A727A7E5E5E848F8D93989A9D9EB2B2B2B29E9E9C9AAB8C96CDCD - CDCD024325534B74506E4F4C7CA5809299AEBEBEB0B0BFC0B1C0C0C1C0C1C1C1 - C1C1C0C0C0C0BCBCBCBDBDADADADA6A6A6A4A3A37F7B757573736F6F6F6F6F4C - 4C4C4C6D4F4F4F20542054542055555454555550556E6E555555555555505555 - 552020204F4F4C4C717173737B7FA7AD9BB09BAF99AC8B8C8979815F74295326 - 7E7E7E7A7A7A7A7A7A7A7A7A7E5E5E5D8F9495969A9D9EB2B2B2B29E9D979A98 - 9889CDCDCDCD0226454D4A74506E5471738B7F92A6A9ADBEBDB0BFB1C0C0C1C1 - C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDADADA9A9A6A6A4A47F8080757573736F6F - 6F6F4C4C6D4C4C4C4C20204F2020205420555455555555555555555555505555 - 55505555542020544F6D4F4C716F73737BA399AF9BB09BAF99928B8C908A7D5F - 565729265E7E727A7A7A287A7A287A7A7E5E5E848F8D90969C9DB2B2B2B2B29E - 9D979AB89696CDCDCDCD0226454D4B74506E547889A5AA9299A9ADBDB0BCBCC0 - C0C1C1C1C1C1C1C1C1C1C0C0C0B1BCBCBCBDBDADADA9A9A6A4A4A3A3807B7575 - 736F6F6F6F4C6F4C4C4C4C4F6D20204F20555455555454556E55555555505555 - 505055555555555554206E204F4F6D4C716F6F737B7F99AD9BB09BAF92AA8B8C - 898A815F565726267E7E7E7A7A7A727A7A7A7A7A7E7E5D848F9395989C9E9EB2 - B2B2B29E9D979A989690CDCCCDCD0225534A4A74506E4F71898B7F9299AFAD9B - BFBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A6A4A37F - 807B7B7573736F6F6F6F714C4C4C4C4F4F4F4F20206E6E556E20545455555555 - 55555555555055505555505454542020204F6D4C4C6F6F737BA3A6AF9BB09BAF - 99AC8B8C7C8A7D5F5629535E7E7E7A727A7A282872287A7A7E7E91848F8D9598 - 9C9DB2B2B2B29E9E9D9A9A988C90CDCDCDCD02532545707450554F7873A5AA92 - B9AFBEBDBFB0C0C0C1C1C1C1C1C1C1C1C1C1C0C1C0BCC0BCBDBCBDADADA9A6A6 - A6A4A47F7F7B7575736F6F6F6F6F6F4C4C4C4F4F204F4F20206E555554545554 - 5455555055555055555050505555555555555520206D4C4C716F6F757BA3A6AD - B0B09BAF99AA8B8C838A7D50272953537E7E5A727A7A282828287A7A7E5E5E84 - 8F9395989C9EB2B2B2B29E9E9D9C9A8C9689CDCDCDCD025353221E50506E7971 - 6F8BAA92B9AFADBDBFC0C0C1C1C0C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBDBDAD - ADA9A9A6A4A4A3A3807B7B7573736F6F6F4C4C4C6D6D4C4C4F4F4F20206E5454 - 545554545555505055595555505550505559555554205420206D4C4C716F7375 - 7BA399ADB0B0B0AF99AA8B8983817D5C57235B5E5A7E7A7A7A7A7A28287A7A7A - 7E5E5D848F8A95989C9EB2B2B2B29E9D9DABAB969690CDCDCDCD0226234D225C - 59554F71738BAA92AEADADBDBFBCC0C0C1C1C1C1C1C1C1C1C1C1C0C1C0C0BCBC - BCBDADBDADADA9A6A6A4A3A3807B7575736F6F6F6F4C6F4C4C4C4C4C20202020 - 202054545454556E6E555055505550505055555055505555555554204F4F4F4C - 716F6F737BA3A6AD9BB09BAF99AA8B8C83815F5C5623537E7E7E7A7A7A827A28 - 2882287A5A5E5D848F93959A9C9EB2B2B2B29E9E9C9AAB969690CDCCCDCD0253 - 23234B7450545878738BAA92B9AFBEB0BCB1C0C0C0C1C1C1C1C1C1C1C1C1C1C0 - C0BCBCBCBCBCBDADADA9A9A6A6A4A37F7F7B757373736F6F6F6F4C4C4C6D4C20 - 6D4F6D20205454555454545555555550505550505055505055506E5555545420 - 204F4F4C716F73737BA399ADB0B19BAF99AA8B8983797D5C575D265E7E7E7A28 - 7A7A282828287A727E7E5D848F8D96989D9EB2B2B2B29E9D9C9A98B89090CDCC - CDCD022523234B5055545871737BAABBB9ADBEB0BFBFC0C0C1C1C1C1C1C1C1C1 - C1C1C1C0C0C0BCBCBCBDBDBDADA9A9A6A7A4A3A37F80757573736F6F716F4C4C - 4C6D6D4C204F6D6E20206E2020556E5550555550505550505955555055555555 - 55545420204F6D4C4C6F6F757B92A6ADB0B09BAF99AAA58C83817D74575D267E - 7E7A7A827A7A282828287A7A7E5E5D848E9396989D9EB2B2B2B29E9D979A9896 - 8983CDCDCDCD02264D224B50506E78718CA5AAA7AEAFBEBDBFC0C0C0C1C1C1C1 - C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6A6A4A37F7F7B7575736F6F6F - 6F6F4C4C6D4C6D4C20202054546E546E6E555555555550505050505055505955 - 55505555552055544F4F4C4C716F73737B92999BB0B09BAF92AAAB8983817D74 - 575B265E7E7E7A282828287A2828827A5A5E5D848E93969A9D9EB2B2B29E9E9D - 9CAB98968990CDCCCDCD025325224B7450554F7C738BAAA7B9ADBDBDBFBFC0C0 - C0C1C1C1C1C1C1C1C1C1C0C1C0C0BCBCBCBCBDADADA9A9A6A6A4A3A3807B7575 - 736F6F6F714C4C4C4C6D4F204F4F20556E545455556E55555555505959505950 - 505050555050556E556E2055206D4F4C716F73757BA3A69BB1B19BAF9997AB89 - 83795F5C575B5E7E7E7E7A28772828282828287A7E7E5D848F93969A9D9EB2B2 - B2B29E9D97AB98969090CDCCCDCD025353231E48507D587C898BAAA7B9AFBDBD - BCC0C0C0C0C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBDBCBDBDADA9A6A6A7A4A3A3 - 807B7575736F6F6F6F4C4C6D4C4C4F4F6D2020202054555454546E5059555050 - 505050505050595950505555556E6E206D6D6D4C6F6F6F737B92A9ADB0B1B0AE - 99978B898A817D5C575B5E5A5A7A7A82727A282828287A7A7E5E5D848F93969A - 9D9EB2B2B29E9E9D9A9A8C969083CDCDCDCD025B5B23487450544F7C738BAA92 - B9AFBEBDBFB1C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0C0BCBCBCBDBDADADA9A9A6 - A6A4A37F807B7573736F6F6F6F6F4C4C4C4C4F4F4F4F6E204F20555454555555 - 555550505050505050505050555555505555546E206D4F71716F6F758092AE9B - B0B19BAF92AAAB8983817D76535B265A5A727282282828287A777A7A7E5E5D84 - 9495969A9D9EB2B2B29E9E9D97ABB8968983CDCCCDCD022623234B4850555871 - 7C7BAABBAEAFBEBDBFC0C0C0C1C1C1C1C1C1C1C1C1C1C0C0C0BCBCBCBCBCBDAD - ADA9A6A6A6A4A37F807B7575736F6F6F714C4C4C4C4C6D204F205454206E2055 - 6E5555555050505050505050505050505055555555555420204F4F4C716F7375 - 7BA4A99BB0B19BAEBB97A58983815976575B5E7E7E7A7272282828282877287A - 7E7E5D848D93969A9D9EB2B2B29E9D9D9AAB96909090CDCCCDCD022625234B48 - 50554F7C898BAAA7B9AFBDBDBFBCC0C0C0C1C1C1C1C1C1C1C1C0C0C0C0C0BCBC - BCBDBDADADADA9A6A4A4A4A380757573736F6F6F6F4C4C6D4C4C6D4F4F4F5454 - 4F5520555555555550505050505059505050505950555055555554546E6D4F4C - 716F737580A4999BB1B19BAF9997A589587D5F275B5B5E7E7A5A287728282828 - 4E28287A7E7E5D618E95969C9DB2B2B2B29E9D979A9896898383CDCCCDCD0253 - 254D4A52506E5471898BAAA7AEAFBEB0BCC0C0C0C0C1C1C1C1C1C1C1C1C0C0C0 - BCC0BCBCBCBDBDBDADA9A9A6A7A4A37F807B7575736F6F6F4C4C4C6D4C6D6D6D - 4F2020546E5555555455505555505950505050505050505050505550556E5554 - 20204C4C4C6F6F758092AD9BB1B19BAF9297A589837D5C74295B5E7A7A727A7A - 28284E287A28287A7E7E5D848E95989C9DB2B2B2B29E9D9CAB989690908ACDCC - CDCD0226534B4B48505479718CA5A8A7B9AFBEBDBFC0BFC0C0C1C1C1C1C1C1C1 - C0C1C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F7F7B7575736F6F6F71714C6D - 4C4C6D4C6D202020542055556E55505955505050505050505050595050505955 - 555555546E4F4C4C4C6F73758092A9BDB1B19BAFACAAAB898A7D5C765D5E5E7E - 7A727A7A287777827A287A7A7A5E5D848E95989C9DB2B2B2B29E9D9C9A989690 - 908ACDCCCDCD0226252356485055547889A5AAACB9AFBEBDBCB1C0C0C0C1C1C1 - C1C1C1C1C0C0C0C0C0C0BCBCBCBDBDADADA9A9A6A7A4A37F807B7575736F6F6F - 71714C4C6D4F4F4F4F206E202055555455555555505055505050505050505059 - 505955555555556E6D4F4F4C716F737580A4A99BB1B19BAF92978C89587D5957 - 5D267E5A7A7A2828282828288228827A7E5E5D8F8D95989C9E9EB2B29E9E9D97 - AB8C96909083CDCCCDCD022653234A74506E4F787C7B7FA7B9AFBEBDBFBCC0C0 - C0C1C0C1C1C1C1C1C1C0C0C0C0BCBCBCBDBCBDBDADA9A9A6A4A4A3A380757573 - 6F6F6F6F4C4C4C4C4C4C206D2020552054556E6E555555555050505050505074 - 5250505059595550555454204F4F4C4C716F737580A4A9B0B1B1B0AE92978C89 - 837D59575D267E7A7A28287777827A607728827A7E5E5D619495989C9E9EB2B2 - B29E9D9A98988990838ACCCDCDCD022653232348505054786FA5AAACB9BEBEBD - BFBFC0C0C1C0C1C1C1C1C1C1C1C0C0C0C0BCBCBCBCBDBDADADA9A6A6A7A4A37F - 807B7575736F6F6F714C4C4C4F4F206D2054546E6E5454545555595050595050 - 50505050505024505050505555556E546E4F4C4C6F6F6F7580A4AD9BB1B19BAE - 9297AB898A7D5C765D5E7E7A7A282882822882828260287A7E5E5D8F8D95989C - 9EB2B2B29E9E9D9AAB968990838ACCCCCDCD025E265322525055547889A5AAAC - B9AFADBDBFBFC0C0C0C0C1C1C1C1C1C0C0C1C0BCC0C0BCBCBDBCBDADADA9A9A6 - A4A4A37F807B7575736F6F6F714C4C4F6D4F6D20202020206E5454546E555055 - 505050595050242450595059505059555055546E204F4C716F6F73757FA4A9B0 - B1B19BAEAC978C7C7959275D5B5E7E5A7A7A2882772860828228827A7E5E848F - 9395989C9EB2B2B29E9E9D9AAB969683838ACCCCCDCD02262653224848505478 - 7C75AA92B9AFADBDBFBFC0C0C0C1C0C1C0C1C1C0C1C0C0C0C0BCBCBCBCBDBDBD - ADA9A6A6A4A4A37F807B75736F6F6F71714C4C6D4C4F4F6D545420556E545555 - 556E55505050505924502450595074505050505055555555204F4C4C6F6F7375 - 7FA7ADB0B1B19BAEAC978C838A7D7457535E7E7A7A2828607760826060287A7A - 7E5E84619395989DC2B2B29E9E9D979A98968990838ACDCCCDCD022653532348 - 24506E7889A5AAACB9AFBEBDBFC0C0C0C0C0C1C1C1C1C1C1C0C1C0C0BCBCBCBC - BCBDADADA9A9A6A6A7A4A37F807B7575736F6F6F4C4C4C4C4F4F204F20542054 - 54205455555555595059595050502450525050505050505555556E54204F6D4C - 716F737580A7ADB0B1B19BAEAC978C9081505C5B265E5A5A7A7A778282606077 - 6060827A7E5E5D8F93959A9C9EB2B2B29E9D979A968990838A8ACCCCCDCD0226 - 53534A48525054787CA58092B9AFBEBDBFBFC0C0C0C0C0C1C1C1C1C0C1C0C0C0 - C0BCBCBCBCBDBDADADA9A6A6A4A3A37F807B7573736F6F6F4C4C4C6D6D4F4F20 - 2054545455555554555050595950505052507452742448505959505055556E54 - 204F4C4C6F6F6F757FA4ADB0B1B19BAE928B8C83815F5C57267E7E7A7A282882 - 828282608282287A7E5E848F93969A9D9EB2B2B29E9D979A989690838A8ACDCC - CDCD022626534D4B485054587CA5AAACB9AFBEBDBFBFBFC0C0C0C1C1C1C1C1C0 - C0C0C0C0BCBCBCBDBCBDBDADADA9A6A6A4A4A37F807B7573736F6F714C6D4C4C - 4C2020205555545454546E555555555059505050247450272424245024595050 - 595555204F6D4C71716F737580A7ADB0B1B19B99ACA88C83817D745B5E7E5A7A - 7A282828606060606060827A7E7E848F93969A9D9EB2B29E9E9D97AB96968983 - 8A81CCCCCDCD02265B53234B745054587CA5A8ACB9AFBEBDBFBFC0C0C0C0C0C1 - C0C1C0C1C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A37F807B7573736F6F6F - 4C4C4C4C204F204F202055545454555550555050502424245974745274522450 - 5924505050556E55206D4C716F6F737B7FA7ADB0B1B19BAEAC978C83815F565B - 5E7E7E727A8277776060606060607A7A7E5E848F93969A9D9EB2B29E9E9D9AAB - 969690838A81CCCCCCCD021F265B534B485054587CA580ACB9AFBEBDBFBFC0C0 - C0C0C0C0C1C1C0C0C1C0C0BCC0BCBCBCBDBDADADADA9A6A6A4A4A37F7B7B7573 - 736F6F6F4C4C6D4F4C6D4F20546E545555555555555550555059745250747424 - 527424745950505055555454204F4C4C716F73757FA7ADB0B1B19BAE928B8C83 - 815029535E7E7A72777782778260606060287A7A7E5E848F93969A9D9EB2B29E - 9E9C97AB9689908A8A8ACCCCCDCD021F2653234B485054787CA580ACA6AFBEBD - B0BFBCC0C0C0C0C0C1C1C0C0C0C0C0C0BCBCBCBCBDBDBDADA9A9A6A6A4A3A37F - 807B75736F6F6F714C4C4C4C20204F2055205455555555555555505050595052 - 50242424242452745050505055555520204F6D4C716F73757FA6ADB0B1B19B99 - AC8B8C837D5F7653267E7E7A82287777608260606028827A7E5E848F93969A9D - 9EB2B29E9D9D9A989689908A8A81CCCCCDCD022626255B4B745055787C73A8AC - B9AFBEBDBFBFBCC0C0C0C0C1C0C1C0C1C0C0C0C0C0BCBCBCBDBDBDADADA9A6A6 - A4A4A37F80757573736F6F4C4C6D4C4C4F206E20545520556E557D5555505050 - 505050507424245252242424505050505055556E6E6D6D4C716F737B7FA6ADB1 - B1B19BAEAA8B8C837D5C565B5E7E7E7228777760607760608260827A7E5E848F - 93989A9D9EB2B29E9D9CAB98968990838A81CCCCCDCD02262653232274505478 - 71A580ACB9A9ADBDB0BFC0C0BFC0C0C0C1C0C0C0C0C0C0C0BCBCBCBCBDBDADAD - ADA9A6A6A4A4A37F7B7B7573736F6F714C4C4C6D4C2020205420205555556E55 - 505050505959502474242424247452242424505059555454204F4C4C716F7375 - A3A6ADB0B1B19B99ACAB8C8A815C7653267E5A7277777760606060828260287A - 7E5E848F95969C9D9EB2B29E9D9C9A8C9690838A8A81CCCCCCCD0226265B2322 - 52507D587CA580ACB9AFBEBDBDBFBCC0C0C0C0C0C0C1C1C0C0C0C0C0BCBCBCBC - BDBDADADADA9A6A6A7A3A37F807575736F6F6F714C6D6D6D4F4F202020205554 - 55505555505050505050245924525224242424745250505050555554204F4C4C - 6F6F737B7FA6ADB1B1B19B9992AB89837D5C5753265A5A287728607760776060 - 82827A7A7E5E619493969C9D9EB29E9E9D97AB988990838A8181CCCCCCCD0249 - 265B534B2774555871A5A8AC99A9BEBDBDBFBFC0C0C0C0C0C0C0C0C0C0C0C0C0 - BCBCBCBCBDBDADADA9A9A6A4A4A4A37F7B7B75736F6F6F4C4C4C4F4C204F4F20 - 20205554556E5555595959502450505924245224502452522448245050505555 - 546D4F4C6F6F737BA3A6ADBCB1B1AF99AA9A89837D5C575B5E7E7A7A7A826060 - 827760606082827A7E5E849495969C9D9EB29E9E9D97988C9690838A818ECCCC - CDCD02262626234B745055797C73A8ACB9AFBEBDBDBFBCC0BFC0C0C0C1C0C0C0 - C0C0C0C0BCBCBCBCBDADADADA9A9A6A6A4A4A3807B7575736F6F71714C4C4C4F - 6D6D205420205420555455555050505024747424242424525252522424505050 - 505555554F4F4F4C716F737BA3A6BDB1B1B19B99ACAB898A7D5C57537E5A727A - 28776060827760826082825A7E5E848F95989C9E9EB29E9D9D9A98969090838A - 8181CCCCCCCD027E5E2625224B507D587C8CA8ACA7A9BEBEBDB0BCBFC0C0C0C0 - C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADA9A9A6A4A4A3A37F7B757573736F6F71 - 4C4C4C4F4F4F5420206E55545555556E50555924592459272424241E52215224 - 522450507D555555206D6D4C6F6F757BA3A6ADB1B1B1AF99AAAB898A7D5C5753 - 7E5A7A7A28776060828260826082827A7E5E849495989C9D9EB29E9E9D9A9896 - 90908A81818ECCCCCDCC027E26535B234B507D587173A8A3B9AFADBDBDBFBCC0 - C0B1C0C0C0C0C0C0C0BCC0C0BCBCBCBDBDBDADADA9A9A6A6A4A47F7F7B7B7573 - 6F6F6F4C4C4C4F4F4F4F20202020556E6E555555505950505059242724245252 - 2121485224245050505055544F4F4C4C716F737BA3A6ADB1B1B19B9997AB8979 - 7D745B267E5A727A776060776060886077607A7A7E5E849495989C9EB29E9E9D - 9C9A988990838A8A8181CCCCCCCD025A262625234B505079718C8BACBBA9BEBE - BDBFBCBCC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDADADADA9A6A6A6A4A47F80 - 7B7575736F6F71714C4C4F206D206E55556E206E54505055505950505C592424 - 2452524827211E522452505050505554544F4C4C6F6F737BA3A6BDB1B1B0AF99 - AAAB89795F5C5D5E7E7A7A77286060777760608860607A7A7E5E849495989C9E - C29E9E9D979A9896908A8A817D81CCCCCDCD025A1F535B4B48507D79718C8BAC - B9AEBEBDBDBFBFBFBFC0C0C0C0C0C0C0C0C0C0C0BCBCBCBDBDBDADA9A9A9A6A4 - A4A37F7F7B7B75736F6F71714C4C4F6D202020546E5555555055555050505074 - 7452242452525252521E52482474505050555554546D6D4C716F737BA3A69BB1 - B1B1AF99AAAB898A7D5C5D5E7E7A282877606060607760778260827A7E5E8494 - 95989C9E9E9E9E9D97AB969690838A81817DCCCCCCCD027E2653254D4B527D4F - 7C738BAAA7A9ADBEBDBFBFBFC0BFC0C0C0C0C0C0C0C0C0BCBCBCBCBDBDBDADAD - A9A6A6A6A4A4A3807B7575736F6F4C4C4C4C6D2054546E20556E545555555550 - 505059505052522448521E214821522724242450505555544F204C4C6F6F737B - 92A9ADB1B1B0AF99AA8C898A7D5C5D267E72828277776060608860608260777A - 7E5E849395989CC2C29E9E979CAB9690908381818E7DCCCCCCCD025A5E5B5323 - 4A5C50547C8C8BAAA7AEADBEBDBFBFBCBCC0C0C0C0C0C0BCC0C0C0BCBCBCBFBD - BDADADA9A9A9A6A7A4A3A3807B7575736F6F71714C4F4F4F4F206E5520545555 - 55555055505050245024244848521E52481E48524852505050505555204F6D4C - 716F737BA3A69BB1B1B09BBB97AB89815F765B267E7A28607760828288608860 - 7782287A7E5D618D95989DCA9E9E9E9D97AB9690908A81818E7DCCCBCCCD025A - 5E26535B4B745954788C8BAABBA9ADBDBDB0BFBFBCC0C0BFC0BCC0C0BCBCC0BC - BCBCBDBDBDADADADA9A9A6A4A4A37F807B75756F6F6F714C4C4F6D4F6D20206E - 6E556E555050505050505059272424522748212752481E521E74245050555555 - 6E4F4F4C716F757BA3A6BDB1B1B0AF99978C83815C765D5E5A7A286060828288 - 6088607760607A7A7E5E618D95989DC29E9E9D9D9A989690838A8A81817DCCCC - CCCD025A5A26262356485079718C8BA3BBB9AFBDBDBDBFBFBFBCC0C0C0C0C0C0 - C0C0BCBCBCBCBDBDBDADADA9A9A6A6A7A4A3A3807B7573736F6F714C4C6D4F4F - 202054546E555555555555505050507424242427522152525221525248525C59 - 50595555204F4F4C6F6F737BA3A6BDB1B1B0AF92978C83815C295D5E7E722877 - 60606060888288608260827A7E5D6194969A9C9D9E9E9D9C9A989690838A8181 - 7D8FCCCCCCCD025A5A2653234B747D54838C8BAABBB9ADBEBDBDBFBFBFBFBFC0 - BFC0BCBCC0BCC0BCBCBCBDBDBDADADA9A9A9A6A7A4A37F807B7573736F6F4C4C - 6D4C4F4F206E545454206E555050505050507474502448482421525248485252 - 52272474505555546E4F4F4C716F737BA3A99BB1B1B1AF998B8C90815C295B26 - 5A7A827777606088828288607760827A7E91618D96989D9E9E9E9D9C9A8C9690 - 8381817D7D7DCCCCCCCC025A7E4353532274505478898BAABBB9AFBEBDBDBFBF - BFBFBFBFC0C0C0C0C0BCBCBCBCBDBDBDADADADA9A9A6A6A4A4A37F807B75736F - 6F6F4C4C6D4C4F4F205454556E545555555050505024597452524852241E5227 - 7452521E52522424505055556E4F4F4C716F757BA3A99BB1B1B0AFBB978C8381 - 5C765B5E5A82772882886088888860778860287A7E5D6193969ACAC29E9E9D9C - 9A9689908A81817D7D7DCCCCCCCD027E7E2653235674506E7C898BAABBB9BEBE - BDBDBDBFBFBFB1BCBCBCC0C0BCBCBCBFBFBCBDBDADADADA9A9A6A6A7A4A37F80 - 7B7573736F716F4C4C6D204F205554556E6E556E555050595024507424521E74 - 48525621747421485248242450595055204F4F4C6F6F737BA4A9B0B1B1B0AF92 - 978C837D5C575B7E7E7A288277608288888860778282287A7E5D8F8D969A9D9D - CA9E9D9798989090838A8E7D7D5FCCCCCCCD025A5A265323565250817873ABAA - BBB9A9BEBDBDBDBFBFBFBCBFC0BCBCBCC0BCBCBCBFBDBDBDBDADADA9A9A6A6A4 - A4A37F807B75736F6F714C4C4F4F204F55545455556E55555559595050507424 - 24521E1E242756567448214821212424505055556E4F6D4C716F757BA3A9B0B1 - B19BAFBBA88C837D5C29537E7A28827782777777888888608282827A7E918F93 - 969A9DC29E9D9D9A989690838A818E7D5F59CCCCCCCC025A5A26265323485081 - 78898BAABBB9AFBEBDBDBFBFBFBFBCB1BFBCC0BCBCBCBCBCBCBDBDBDADADA9A9 - A9A6A7A4A4A37F807B7573736F714C4C4F20206D202055545454555555595050 - 505024745252212174481E5622527452525274242450555555544F4C716F737B - 92A99BB1B1B0AE928B96837D745D267E7A28778277608888888877607782827A - 7E5D8F93969A9D9D9E9D9C9AAB9690838A817D7D7D5FCCCCCCCD025A7E262653 - 234B50818389A5AABBB9AFBEBDBDB0BFBFBFBFBCBFBFC0BCBCBCBCBCBDBDBDBD - ADADA9A9A9A6A6A4A3A37F7B7B75736F6F71714C6D4F204F2054545454555555 - 555050505274242424522121564B524852522224212124245950555554204F4C - 716F7380A4A6B0B1B19BAFAC9A8C837D765D5B7E7A2882606060888588888888 - 8877827A5E918F93969A9D9EC29D9C9A9889908A817D7D5F7D5FCCCBCCCD0272 - 5A2626535774597D7889A5AABBB9AFBEBDBDBDBDBFBFBFBFBFBCBFBFBCBFBCBD - BFBDBDBDADADADA9A9A6A7A4A4A37F80757573736F714C4C4F6D202054205520 - 205555555950502424242452245252272752487474272152521E522424505555 - 55544F4C4C6F737BA4A9BDB1B1B0AFAC8B898A5F5C5D5E7E5A82826088888888 - 888888886060777A7E848F93989A9D9D9D9D9C9A9896908A8A817D7D7D5FCCCC - CCCD02727249265B4D56596E787CA5AABBB9A9BEBEBDBFBDBDBFBFBFBFBFBFBC - BCBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A37F807B75736F6F714C4C4F6D204F - 545555545555555050505024502424521E5274564848562752212152521E5224 - 5050555555544F4C6F6F737BA4A9B0B1B1B0AEAC8B898A7D765D5E7E7A7A8277 - 77607788858888886060827A7E918F93969C9D9D9D9D9C9A9690908A81817D5F - 5F74CCCCCCCC025A7E5A26535722507D7889A5AA92B9AFBEBDBEBDBDBFBFBFBF - BFBFBFBFBFBFBFBFBDBDBDADADADA9A9A6A6A4A4A4A3807B7B75736F6F714C4C - 6D4F20206E545455555550505024245050747452747448564B744856524B5622 - 212452242450505554206D4C716F738092A9B0B1B19BAEAC9A89795F5C5B265A - 8277777777888888858888606060287A7E848F93989C9D9D9D9C9C989690838A - 817D7D5F5F5CCCCCCCCC025A497E26535D56747D7889A5AABBB9AFBEBEBDBDBF - BDBFBDBFBFBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9A6A6A4A3A380807575736F - 6F4C4C4F4F204F2020545555556E505050245074742474522152522756524874 - 2227485252525224505055552054544C716F737BA4A99BB1B19BAEACAB89795C - 565B5E7E7228608288518888888888888882827A7E918F93989ACA9D9D9C9A98 - 9690838A817D8F5F5F5FCCCBCCCC027A5A7E265B235750545889A5AAACB9AEBE - BEBEBDBDBFBDBFBFBFB0BFBFBFBDBFBDBDBDADADADADA9A9A6A6A7A7A37F7F7B - 7575736F714C4C4C6D6D54545455555455555550505024592424525227527448 - 2748524852274856277452525250506E55204F4F716F738092A9B0B1B19B99AC - AB89815957535E492877777760888888515188886060827A5E919495989C9D9D - 9D9C9A989690838A8E7D5F5C595CCCCCCCCC027A5A5A2653234B527D7989A5AA - 92B9A9BEBEBDBDBDBDBDBFBFBFBFBDBFBFBDBDBDBDBDBDADADADA9A9A6A6A7A4 - A3A3807B7B756F6F714C4F4F6D4F6E2055555555555555555959485024524848 - 5221564B2227522221524822275252522459505554544F4F6F6F7580A4A9B0B1 - B19BAEAAAB89815C575E5E5A7282607788888888888888886082827A5E848F95 - 989C9D9D9D9C9A9896908A8A8E7D7D5F5C5CCBCCCCCC027A727E26532356747D - 787CA5A8ACB9AEBEBEBDBDBDBDBFBDBDBFBFBFBFBFBFBFBDBDBDBDADADA9A9A9 - A6A6A7A4A3A3807B7B73736F6F4C4C4C20205420545455555550505050507424 - 27484821484856527452222174484B524852487424505055556D4F4C716F757B - A4A9B0B1B19B99AAAB90795C575D5E7A7A826077888888518588518888827A7A - 7E849495989C9DCA9D9C9A9890908A817D5F5F5C5C5CCCCCCCCC027A725A1F26 - 5356747D5889A5A8ACB9A9AFBEBEBDBDBDBDBDBFBDBFB0BFBDBDBDBDBDBDADAD - ADADA9A9A6A6A4A4A37F807B75736F6F714C4C4F20206E6E5555555555555050 - 50502424245227525652525248484B22224B5674522148742424505555544F4C - 716F7580A4A9B0B1B19B99AAAB90795C575B5E72827777888888888885888888 - 88607A7A5E849495989C9C9D9D9A9A98908A8A8E7D7D5F5C5C5CCCCCCCCC0228 - 5A5A1F265357747D587CA5A8ACB9AEBEBEBDBEBDBDBDBDBDBDBDBFBDBDBFBDBD - BDBDBDADADA9A9A6A6A7A4A3A37F807B75756F6F714C4C4F204F546E55556E55 - 5559505024747424525221485221214B22214A22224822275648525252505555 - 55544F4C716F7380A4A9B0B1B09B99AAAB90815C295E7E7A8277777788888888 - 888888888882827A5E848E95989C9D9D9C9A9896908A8A817D5F5F595C5CCCCC - CCCC025A725A1F2653297450797CA5A8ACB9A9AFBEBEBDBDBDBDBDBDBDBDBDBD - BFBDBDBEBDBDADADADA9A9A9A6A6A7A4A37F7B7B75736F6F714C4F4F20542055 - 55556E555555555059745024274848272148214B221E4A224B2222274B4B5224 - 2450505555204F4C716F7380A4A9B0B1B19B99AAAB907D5C76265A7228777788 - 778888858888888860827A7A7E849495989C9D9D9C9A9896908A8D8E7D5F5C59 - 5C5CCCCCCCCC0272725A7E2653577450797C8CA8ACA7A9AFBEBEBDBEBEBDBDBD - BDBDBDBDBDBDBDBDBDADBEADA9A9A9A9A6A6A7A3A37F807B75736F6F714C4C4F - 4F6E54546E6E5555555050505050242452527456274821224B1E22224A221E22 - 2752525224595050554F6D6D716F7580A7ADB0B1B1AF99AA8C837D5C5D5E7E7A - 2860888888888885858888886060827A5E849495989C9C9C9C9A9896908A8A7D - 7D5F5F595C5CCCCCCCCC027A7A5A7E2653237459797C8CA8ACBBAEAFBEBEBDBE - BDBDBDBDBDBDBDBEBDBDBDBDBEBDADADA9ADA9B9A6A4A4A3A37F807B75736F6F - 714C4F6D4F205554545555555050505052242452525274565648481E4A224B22 - 4A4A2248275252522450505555544F4C6F6F7380A4A9B0B1B09BBB978C837D5C - 5D5E7E728277778888858885858888858877827A5E619495989C9D9C9C9A9696 - 907981817D5F5F5C5C5CCCCCCCCC0228725A7E265B23567D79838C8BACBBB9AF - BEBEBEBDBDBDBEBEBDBDBDBDBDBDBEBDBDADADADA9A9A9A6A6A4A7A37F7F7B75 - 75736F714C4C6D4F205455555555555555505050242474521E521E4B561E211E - 1E4B4A2222562221214821212459505055204F4C716F7580A4A9B0B1B09B9997 - 8C835F765D5E5A7A8277888888858585858588886082607A5E619396989C9C9C - 9A9A9690838A817D5F5F5C5F5C5CCCCCCCCC02287A727E265323747D797C8CA8 - AABBB9AEAFBEBEBEBEBDBDBDBDBDBDBDBDBDBDBEADADADADADA9A6A6A6A7A4A3 - A380807575736F6F4C4C4F4F4F5454546E55555550505950502448742156481E - 4B1E2222561E1E4A22222222224848485250505555204F4F4C6F7580A4A9B0B1 - B0AF99978C8A7D745D7E7E7A7777778888858585858588888882827A5E849495 - 989C9C9C9A9896908A8A8E7D5F5F5C5F5C5CCCCCCCCC0228285A5A26264D565C - 81788C8BBABBB9AFAFBEBEBDBEBDBEBDBDBEBDBDBDBDBEADBDBEADA9A9A9A9A6 - A6A4A4A37F807B7575736F714C4F6D6D545455556E5550555050745024525252 - 52225248214A1E1E4A22524B2222224A2252275252595055556E204F716F7580 - A4ADB0B1B0AFBB978C837D765B265A7277607788858888858585858588827A7A - 5E849396989C9C9A9A9896908A8A815F5F5F5F5F5C5CCCCCCCCC022828724926 - 535B575079838C8BAABBB9AEAFBEBEBEBDBEBEBDBDBEBDBEADBEBDADBEADBEAF - ADA9B9A6A7A4A4A37F807B75756F6F714C4C4F4F545454545455505050594874 - 522452482727221E224A1E4B4822234D22224A4A225256564859505055546D4F - 4C6F7580A4ADB0BCB0AF9E97968A5F5C5B7E7A60826088888885858585858588 - 88827A7A5E619395989C9C9A989896908A817D5F7D5F5C5C5C74CCCBCCCC0228 - 827A5A26265B56597D788C8BAABBB9AFAFBEBEBEBEBEBDBEBEBDBEBDBEBEADAD - AFADA9A9A9A9B9A6A7A7A4A37F807B7573736F714F4C4F4F2054205555555055 - 5024507424525252522127524B222223224B4B22234D222222484B4852505050 - 55544F4F716F757FA4ADB0B1B0AF92978C8A5C295B7E72827760778888888586 - 858588888882827A5E619396989C9C9A989696908A817D5F5C5C5C747474CCCC - CCCC022828725A1F535B57506E838C8BAABBB9AEAFBEBEBEBEBDBEBDBEBEBDBE - BDBEAFADADAFADA9A9A9A6A6A7A4ACA37F807B75736F71714C6D6D4F4F206E55 - 5555505559505050244852485622272122221E4A575722222257222256224B1E - 482459555555544F4C6F757FA4A9BDB1B0AFBB8B89795C575E7E7A7760608885 - 858585858585858888827A7A5E8F9396989A9C9A989690938A8E7D7D5C5C5C5C - 5C5CCCCCCCCC022872285A7E265B5750817889A5AABBB9AEAFBEBEBEBEBEBEBE - BEBEBEBEBEADBEBEADADA9A9A9A9B9B9A7A7A3A37F807B7573736F714C6D4F6E - 545454555555555050502424745252524822221E22224A22224A234A4B232222 - 2256561E2450505055204F4F4C6F7580A7ADB0B19BAFACA8968A5F295E7E7A77 - 7777888885858585858585856082827A5E619396989A9C989896908A8A817D5C - 5F5C5C745C5CCCCCCCCC0228287A5A5A2625575C7D838C8BAABBB9AEAFAFBEBE - BEBEBEBEBEBEBEBEBEBEADA9AFADA9A9A9B9A6A7A7A7A3A380807B75736F6F71 - 4C4F6D206E545555505550505024505974245252521E52574A4A574B4A4A2322 - 4A23224B4A221E527450505055544F4F716F757FA7A9BCB1B0AFAC8B89795F57 - 267E7A2860888585858585858585858588827A7A91619396989C9A9A9896958A - 81817D5F5F5C5C5C5C74CCCCCCCC027728285A5A265B575C7D78B8A5AAACB9AE - AEAFAFBEBEBEBEBEBEBEBEADBEADAFA9ADA9AFA9A9B9A6A6A7A4A37F7F7B7B75 - 736F71714F4F4F545454556E50555050505274245248484B561E211E4B22224A - 4B2222224A22234D221E48271E4850505555204F4C6F757FA7ADB0B09BAFAC8B - 89815C575E7E7A6060888885858585868585858888607A7E5E8F9396989A9A98 - 9696838A8E7D5F5F5C5C5C5C7674CCCCCCCC0228287A727E265B575C7D7889A5 - AAACBBB9AEAFAFAFBEBEBEBEBEBEBEAFADAFBEBEA9A9AEA9A9A6A6A7A4ACA3A3 - 807B75A5736F714C4C4F4F545454545555505050505052525252527456222222 - 23224A4A2223234B5722574A4B4A4A5648485059552020204C6F757FA7ADB0B1 - 9BAFACAB89815C5D5E7A7A286077888586858585868585886060827A918F9396 - 989A9A9896908A8A8E8E5F5C5C5C5C5C7476CCCCCCCC027772285A7E1F5B5774 - 7D8389A5A8ACBBB9AFAEAFAFBEBEAFBEBEBEBEA9BEADA9A9A9A9A9A9A6A6B9A7 - A7A4A37F807B7B73736F6F4F4F4F4F6E55546E50555550502474505248485274 - 224A4A22225622222323226C7023232223564A48482450505555204F716F757F - A4ADB0B19BAEACAB90815C5D5E5A7A7777888585858586858686858888607A7E - 5E8F9396989A989896908A81817D5C5C5F5C5C275627CBCCCCCC024E77285A5A - 265323567D7989A5A8ACBBAEAEAFAFBEAFBEBEA9BEBEAFBEBEA9AFA9AFA9A9B9 - B9A6A7A7A7A3A3AA807B7573736F71714C4F4F4F55556E6E5055505924242452 - 484B2756221E22564A4B2270704B4B562223224A4B224B5674245050506E6E4F - 4C6F757FA7ADB0B09BAEACAB90815C575E7A8260778885858585858685858585 - 88607A7E91619398989A9A9895908A8D817D5F5C5C5C5C575657CCCBCCCC0277 - 77287A5A262623747D8A89A597ACBBB9AEAEBEAEAFAFBEAEBEAFBEA9A9AFA9A9 - A9AEB9A9A6B9A7A7A3A7AA7F808B75736F6F714F4F6D4F54556E6E5555505050 - 50525248485652486C4A4B221E4B4A2323224B5622222222234A225648522450 - 5055204F4C6F757FA7ADB0B09BAEAAAB897D5C535E7A77608288888585868686 - 858585858860827E916195969A9A989896908A8E7D5F5F5C745C5C567684CCCC - CCCC026028285A5A1F2653767D797CABA8ACBBB9B9AFAEBEAFBEAFAFBEA9AFBE - AFAFAEA9B9A9A9B9B9A7A7ACA7A3A3AA807B758C736F714C4F4F54546E555550 - 55505059505252525221524B4A23234A4A22224A222223295656574B224A4A27 - 522450505555206D4C6F757FA7ADB0B09BAEAAAB907D5C5B495A827760888585 - 858586868585858888827A7E919493989898989690838A8D8E5F5F5C5C275629 - 5657CBCCCCCC02607728285A5A265B76507989A5A8AABBB9AEAEAFA9AFB9AEBE - AEBEAEA9A9A9A9A9B9A9B9B9A6A6A7A7A3A3AA80807BA5736F6F784C4F546E6E - 545555555550505024244821221E52564A2256232222232323235723564B5723 - 23232248525224245555204F4C6F757FA7ADB0B09B99AAAB837D5C5B7E5A7A82 - 88858585858686868686858588607A7E919495969898989690958A8E8F5F5C5C - 5C7476575629CCCBCCCC0260282828725A265B565979838CA8ACBBBBB9AEAEAE - AFAFBEAEBEAEA9AEAEAEA9B9A9B9A6B9A7B9BBA7ACA37F808B7575736F71714F - 4F6D546E555555555050505250527474745222224B222222224A4D2322572223 - 232322232223221E272724505055206D4C6F757FA7ADB0B09B99AA98907D7626 - 7E7A827788888585868686868685868888607A7E918F959698989896908A8A8E - 7D5F5C5C5C5656575729CCCBCCCC026060287A5A5A265356507989A5A8ACBBBB - B9B9B9AEAFAEAFA9AFA9AFAFA9A9AEA9B9B9A6B9B9A7A7A792A3AA807B8B7373 - 6F6F4C4C4F4F5454555559505050502424485274524822564B222256234A4D23 - 22225623232323234A224B1E215224505555544F4C6F757FA7ADB0B09B99978C - 835F27267E7A777788888585858686868685868588827A7E9194959898989896 - 908A817D5F5F5C5C842757575729CCCCCCCC02606060285A1F2653575C7983A5 - A8BAACBBB9B9AEAEAEAEA9AEAEAEAEAEAEA9A9B9B9B9B9B9BBA7A7ACA3A38080 - 8B75A5736F71714C4F545455555555505050747474482756524A222222224B4D - 4A56232323222323232229574A22224A52527450555554204C6F757FA7ADB0B0 - BE99978C837D295E7E7A77608885858586868686868685858882827E848F9596 - 98989695908A8E7D5C5C5C5C5C2757222323CBCBCCCC02607777285A5A265B57 - 5C81838C8BAABBBBB9B9B9AEAEAEAEAEAEAEAEAEA9AEAEB9B9B9B9B9B9BBA4A7 - A3AA7F807B75736F7C71714F4F206E5555555550505074747448274B524B2223 - 4B2322234D23232322232323222223232222561E522774505055544F4C6F757F - A6ADBDB09B99978C838F575E7E72606051858586868686868686858560607A7E - 9194959698989696908A8E8F5F5C5C5C5C5757232329CBCCCCCC026028827A72 - 5A5E53575C797C8CA8BAACBBBBB9AEB9B9AEAEAEAEB9B9B9B9B9B9B9B9B9A7BB - A4A4ACA3AC7FAA8BA5A573736F714C4F6D4F546E555550505074247452485248 - 564A56232356564D232329232323575D572257222223221E74524850556E544F - 4C6F757FA7ADB0B0AF99978C8A5C575E5A7A6088888586868686868686868685 - 60827A7E9194959696989695908A8E5F5F5C5C5C565729232929CBCBCCCC0277 - 60777A7A5A2653575C81838CA5BAACBBBBB9B9B9B9B9B9AEAEAEB9AEB9B9B9B9 - B9B9BBA7BBA7A7ACA37F807B7B75A57C6F71714F6E54556E5550505050502452 - 52565648224A22232322222323572323232323572323292223224A224B482450 - 5555556D4C6F757FA6ADBDB0AF99978C8A5C5B5E5A7A82888885858586868686 - 8686868888827A7E84949596989696958A8A8E8F5C5C8456562729292329CBCB - CCCC0260602828725A1F26575C7D838CABBAACBBBBB9B9B9B9B9B9B9B9B9B9B9 - B9B9B9B9A7B9A7B9A7BBA3ACA3AAA880A575736F71714C4F5454545550555050 - 505252522722272221224D57574A2323235723292323235B5B29232357572222 - 4B4824505555554F4C6F757FA6ADBD9BAF999A968A5C5D5E7228775188868686 - 868686868686868588607A7E61949596969696958A8E7D5F5C5C277657562729 - 2929CBCBCCCC02606060285A7A5A26235C7D83B8ABBABAACB9BBB9B9B9B9B9B9 - B9B9B9B9B9B9B9B9B9BBBBA7ACA7ACA3AA7F808B75A56F6F6F71584F546E6E55 - 5050595950247474222152224B4A225622232223232325235323252323232329 - 23574A221E52245050556E6D4C6F757FA6ADBD9BAFBB97968A5C5D7E7E287760 - 88858686868687868686868588827A7E61949596989695958A8D8F5C5C747627 - 275657292929CBCBCCCC0260606082725A5A265B5C7D8389ABBAACBBBBBBBBB9 - B9B9B9B9B9B9B9BBB9B9BBBBA7BBA4BBA7A3ACAAAA80A87BA573897371784F4F - 6E545555505050597452485652524B2221224B22222223572323234D5B5B2325 - 2323235723232323482724595055204F4C6F75A3A6ADBD9BAFBB9789815C5B7E - 7A82828885858686868786878786868588827A5E84949596969690938A8E5F5C - 5C842956572923235B57CBCBCCCC0260606077287A5A7E535C7D838CA5A8BAAC - BBBBB9B9BBB9B9BBB9B9BBB9B9B9BBBBBBA7ACA7ACACACA37FA8807BA573736F - 7178784F5454555555505050245274275248481E4B4B222323235757235B2323 - 5B29232553235B232323224A48224850505555204C6F757FA6ADBD9BAFAC9A89 - 815C535E7A82608885858686868787868686868888827A918494959696959090 - 8A7D5F5C5C272756572929295B5BCBCBCCCC0260606077285A5A2653767D8389 - ABA8BAACBBBBBBBBB9BBB9B9BBB9B9BBBBBBBBBBA7BBA7ACA3ACAA7FBA808B7B - 758C736F7171584F545550555050597452527474524B2222704D22222357235B - 5B2323235B5B232323232329232323221E4852245055554F4C6F75A3A6ADBD9B - AFAC8B90815C5D7E7A60778885868686868687878686858888827A7E61949596 - 969695958D8E5F5C5C565656292929295B5BCBCBCBCC027760777728725A5E53 - 765F7989A5A8AAACACBBBBBBBBBBB9BBBBBBBBBBBBBBA7BBBBACA7ACACA3AAAA - 7F808BA5A573897C71784F545455555550592474745252522222222222222323 - 2323235B23235B53235B5B5B295B235B23234B224A5252245055544F4C6F75A3 - A6AD9B9BAE929A89815C5B7E8282778585868686878787868686868588827A5E - 619395969595958A8D7D5C5C5C845C57572329235B5BCBCBCCCC028877606028 - 7A5A7E535C5C8A89ABA8BABAACACBBBBBBBBBBBBBBBBBBBBBBBBBBA7ACA7ACAC - A3ACAAAA80A87BA573737C7C71784F4F6E545550507474745227524B1E212222 - 4D23234D2323232325535B53535B5B5B5B26235B29224D22222152505055544F - 4C6F75A3A6AD9B9BAEACAB898D5C5E7E28778851858686868787878787868685 - 88827A91619495959695938A8D5F5F5C27275757292929535B29CBCBCCCC0288 - 776077287A721F5B567D8189B8A8BAACBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB - A7ACACA3ACAAAA80A87B8BA5A5737C7171784F5454555550505048747456564B - 4B48224B6C4B222323292323535B5B29535B25255B5B5B5B23234D6C21524850 - 505555204C6F75A3A6ADBDBEAE9DAB907D765B7E7A7760858586868687878787 - 8786868588827A91619395959695958A8E5F5C5C8427575723295B255B5BCBCB - CCCC02886060772828724926575F8A89ABABBABABAACBBBBBBBBBBBBBBACBBBB - ACBBACACACACACACA3AAAAAA808BA5A5738C7C7C785879546E6E505050507474 - 52215222564A234B4A4D2323235B23535B5B25252525255B255B532323232323 - 225624595055546D4C6F75A3A6ADBD9BAEACAB908E765E5A8260608886868686 - 878787878786868588827A5E6194959595958A8D7D5F5C5C2756225729295B25 - 5B5BCBCBCCCC028888606028287A5A5E765C8A898CA8A8BAACACACBBACBBACBB - ACBBBBACBBACACACACACA3AAAABAAAA88B8BA5B873897C714C4F795455555550 - 7450522452521E22224A4A5757235323292525255B255B2625255B5B255B5B23 - 23232323224B525250556E4F4F6F75A3A6AD9B9B99AC98907D295E7E7A778885 - 85868687878787878687868588827A91619495959595938A8E5F5C5C27575757 - 29295B5B235BCBCBCCCB0288606077777A7A7E5E5D5C81908CA8A8BABAACACAC - BBACACACBBACACACACACACACACACAABAAA7FAAA88B8BA5A5737C7C7C78786E6E - 6E5550505074525652274A4D224A1E23232329235B2353255B535B53265B5B5B - 2626255B5B23234D4B2252745059544F4C6F75A3A6AD9BBE99AAAB837D765E72 - 7777888585868787878787878786868588827A91619395959593938D8F5F5C27 - 5757235B292925292329CBCBCBCC02886077777772725A26575C8190B8A8A8BA - BABAACACACACBBACACACACACACACBAACACAABAAAAAA8A88B8B8BA5738C7C7C78 - 714F796E6E505059747452212756224A22222223232229252353235B5B53535B - 2625255B53265B53535B2357702221245059556D4C6F75A3A6AD9BBE99AA988A - 5F575E7A286088858686878787878787878686858860825E6193939595938A8D - 5F5C5C27575D29295B23295D5B29CBCBCBCC02888860776028725A7E5D5C7D83 - B8ABA8BABAACBAACBAACACACBAACACACBAACACAAACAAAABAAAA88BA88BA5A5A5 - 6F7C6F717879546E5550505074525656225622225623235723232323535B535B - 255B5B26532626265326255B5B2323234A1E21745050546D4C6F75A3A6AD9BBE - 99978C8A5F297E7A8277888586868787878787878786868588827A9161949595 - 95938D8E5F5C5C7657292929295B25235B5BCBCBCBCC02888877608282285A5E - 5B5C8183B8ABA8BABABAACBAACACACACACACACBAACBAAABAAAAAAAAA80A88BA8 - 7BA5A5A5897C7C78584F54545059507452524B524B224B222222564D575B2325 - 53255B252626262625532626265B265B232323234A1E48745055556D4C6F75A3 - A6AD9BBE99978C8A5C5D5E7A7777888586868787878787878786868588827E91 - 6193959595938D8E5F5C5C76232929235B5B255B5B29CBCBCBCC028888606077 - 287A7A7E5B5C8190B8ABABA8BABABABABABABABAACBAACBAAAAAAAAAAABABAA8 - A8A8A88BA5A5A58C6F7C7C78784F81557D50745C52525252222222564B4D2323 - 5729235B5B5B5B53262626262626262626265326252323234B48484850555420 - 4C6F75A3A6AD9BAF99978C8A5C5D5A7A77888586868787878787878787878685 - 88827A918F939395938A8D5F5F745C272729295B5B235B295B5BCBCBCBCC0285 - 88886060287A5A7E5D847D8389ABA8A897BABABABABABABABABABABABABABABA - AABAA8A8A88B8B8BA5B873898C7C7178784F6E55505950527456525652222323 - 56234B2323235B5B5B5B5326265B2626262626265B2653255B2329234D4A7448 - 5050554F4C6F75A3A6ADBEAF99978C815C5D7E7A776085858687878787878787 - 8787868588827E918F949395938A8D5F5C5C5629292329255B295B265B5BCBCB - CCCB028588886060287A727E5D5C7D8A96B8A8A8BABABABABABABABABABABABA - BAAABAA8AAA8A8A88BA8A8A5A5A5A5B87C7C837879547D555074507456744B22 - 23224B2223235723235B5B5B5B5B5B2626262626262626262626265B25532923 - 4D4B52525055554F4C6F75A3A6ADADAF929789815C5E7E7A7751888586878787 - 874787878786868588827A9161949395938D8F8F5C2729292329295D5B255B5B - 2526CBCBCBCC0285885188606077727E5E847D8AB8ABA8A8A8BABABABABABABA - BAA8BABABABABAAAAAA8A8A8A8A88BABA5A5B8737C7C787878546E7D59244874 - 5674222223224B572357235B5B295B53535B2626262626252626262626262626 - 25232323222221527455556E4C6F75A3A6ADBEAFBB9796795C5D7E7A77888586 - 86878787878787878786868588827E9161949393938D8E5C5C27272723295B29 - 295B26252525CBCBCBCB0285858860606028725A26767D8A90B8ABA8BAA8BABA - BABABAA8BABABAA8BABAA8BAA8A8A8A88BA8A5A5A58C73897C7C785879547D7D - 50747452525222224A4B232323232323535B5B5B262626262626262626262626 - 2626262625252322704A22245050556E4C6F7BA3A6ADADAFBB9789815C5D7E82 - 7760858686878787878787878787868588827E9161939393938E7D8F5C5C2729 - 292925295B53535B265BCBCBCBCC02858885606060827A5A26765F8A90B8ABA8 - A8A89CBABABABA97BAA897BAA8A8BAA8A8A8A8A8A8A5ABA5A58C8C897C837879 - 5454505050747456564B4A226C57234D2323295B5B25255B2626262626262626 - 26262626262626265B5B232223225252485055204C6F75A3A6A9ADAE92A8898E - 765E7A827788858687878787878787878787868588827E918F949393938F8F5C - 5C7657292923235B25535B535B25CBCBCBCB0285888860606082285A5E767D8A - 90B8AB9AA8A8A8A8A8BAA8BABAA8A8A8A8A8A8A8A8A8A8AB8BABA5A58C8C8C7C - 7C837879797D55595C745656564B704A2223234D5B255B5B25255B2626262626 - 262626262626262626262626262529294D4B2152505055544F6F75A3A6ADADAE - AC8B897D765E7E827788858687878787878787878787868560827E916194938D - 8D8E8F5C84275723295B5B5B255B26535B26CBCBCBCB0285518888887782285A - 5E5D5C8D90B8B8ABA8A8A8A8A89AA8A8A8A8A8A8A89AA8A8ABA8ABA8ABABA5A5 - B88C7C897C787879545450507448485648222323235753535B5B23255B262626 - 262626262626265E262626262626262526255B5B574D1E245250554F4C6F75A3 - A6AFAFAE929A908D845E7A777785868686878787876287878787868588827E91 - 8F9494938D8F8F5C5C292929295B265B255B265B5B26CBCBCBCC028585856060 - 7728827A5E5D8F8D90B8ABA8ABA8A8A8A8A8A8A8A89CA8A8A8A8ABA8A8ABA8AB - A5ABA5B88C8C897C837878797D7D5074745648562222222223232323535B2325 - 5B5B2626262626267E26265E5E5A26262626262626532329234D565224505554 - 6D6F75A3A6A9AFAEACAB907D845E7A6060858686878787878747878787878685 - 88827E918F9494938D8F8F5C7457295B29255B5B25255B265B26CBCBCBCB0285 - 8588886060777A5A7E5D5C819096ABABA89AA89AA8A8A8A8A8A8A8A8ABA8A8AB - A8ABABABABB8A5A58C8C89897C7879796E7D5C507456565656222223235B2323 - 5B5B255B5B26262626262626265E7E2626261F261F2626262625232323221E52 - 74505554786F7BA3A6A9AF99ACAB905F5D5E7A82608586868787878787878787 - 8787868588827E91619494948E8F8F5C5629295B295B5326262526535326CBCB - CBCB0285858588606077725A7E5D848D8396B898A8A89AA8A8A89A9AA89AA8A8 - A8A8A89AABA8ABABABA5B8B88C898989837878796E505050742756271E224B23 - 2323295B5B5B255B26262626262626267E26265A267E7E2626262626265B2523 - 2322215274505554586F7BA3A6AFAF99ACAB908E295E7A776085868687878762 - 878762878787868588827E916194948D8F8F845C57295725235B5B5B5B262626 - 265ECBCBCBCB0285858888887760287A5E5D5CB79590B8ABA8AB9AABA8A8A8A8 - 9AA8ABA8ABA8ABA8ABABABABB8A5A58C8C897C83837879547D505074744B5622 - 4A5623232329235B5B535B262526262626267E26262649267E5A267E265E2626 - 2626532522572252505055544C6F7BA3A7A9AF99AAAB905F5D5E7A8288858687 - 87878787876287878787868588827E91619494948E5C5C5C2757295B5B5B265B - 26265B5B2626CBCBCBCC0285858588887760287A7E5D848D9096B8ABABA89AA8 - 9A9A9A9AA8A8A8A8A8ABA8ABABABABABABAB8C8C8C898983837879547D7D5C74 - 744B224A222223234D2323535B25262626262626262626267E5E1F5E5E7E5A26 - 26262626265B5B2323222248505055544C6F7BA3A7A9AF99AAAB908F5D5E7A60 - 8885868687878787478787878786868588827E91618F94948E8F5C5C5757295B - 5B5B5B5B2626265B2626C2CBCBCB} - WaterMark.Image.Layout = ilTile - object Label6: TLabel - Left = 176 - Top = 312 - Width = 219 - Height = 13 - Caption = 'Haga click en Finalizar para salir del asistente.' - end - object Label7: TLabel - Left = 168 - Top = 88 - Width = 155 - Height = 16 - Caption = 'Por favor, elija una opci'#243'n:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - end - object bImprimir: TButton - Left = 352 - Top = 112 - Width = 150 - Height = 25 - Caption = '&Imprimir las etiquetas' - TabOrder = 0 - OnClick = bImprimirClick - end - object Button2: TButton - Left = 184 - Top = 112 - Width = 150 - Height = 25 - Caption = '&Vista previa de las etiquetas' - TabOrder = 1 - OnClick = Button2Click - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas deleted file mode 100644 index cdd1671..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uAsistenteEtiquetasMontajes.pas +++ /dev/null @@ -1,99 +0,0 @@ -unit uAsistenteEtiquetasMontajes; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, JvWizard, JvExControls, JvComponent, StdCtrls, cxControls, - cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, - uBizMontajes, cxGraphics, cxDropDownEdit, uCustomView, uViewBase, - uViewPreview; - -type - TfAsistenteEtiquetasMontajes = class(TForm) - JvWizard1: TJvWizard; - JvWizardWelcomePage1: TJvWizardWelcomePage; - Label1: TLabel; - JvWizardInteriorPage1: TJvWizardInteriorPage; - edtLabelCount: TcxSpinEdit; - Label2: TLabel; - Label3: TLabel; - lblNombreCliente: TLabel; - Label4: TLabel; - cbImpresoras: TcxComboBox; - Label5: TLabel; - JvWizardWelcomePage2: TJvWizardWelcomePage; - Label6: TLabel; - Label7: TLabel; - bImprimir: TButton; - Button2: TButton; - procedure FormCreate(Sender: TObject); - procedure bImprimirClick(Sender: TObject); - procedure Button2Click(Sender: TObject); - procedure JvWizard1FinishButtonClick(Sender: TObject); - private - FMontaje : IBizMontaje; - procedure SetMontaje(const Value: IBizMontaje); - public - property Montaje : IBizMontaje read FMontaje write SetMontaje; - end; - - procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); - -implementation - -uses Printers; - -{$R *.dfm} - -procedure VerAsistenteEtiquetasMontajes(AMontaje : IBizMontaje); -var - fAsistenteEtiquetasMontajes: TfAsistenteEtiquetasMontajes; -begin - if not Assigned(AMontaje) then - raise Exception.Create('Montaje no asignado (VerAsistenteEtiquetasMontajes)'); - - with TfAsistenteEtiquetasMontajes.Create(NIL) do - try - Montaje := AMontaje; - ShowModal; - finally - Free; - end; -end; - - -procedure TfAsistenteEtiquetasMontajes.FormCreate(Sender: TObject); -begin - cbImpresoras.Properties.Items := Printer.Printers; - Printer.PrinterIndex := -1; - cbImpresoras.Text := Printer.Printers.Strings[Printer.PrinterIndex]; -end; - -procedure TfAsistenteEtiquetasMontajes.bImprimirClick(Sender: TObject); -begin - FMontaje.LabelCount := edtLabelCount.Value; - FMontaje.PrintLabels; -end; - -procedure TfAsistenteEtiquetasMontajes.SetMontaje( - const Value: IBizMontaje); -begin - FMontaje := Value; - if Assigned(FMontaje) then - lblNombreCliente.Caption := FMontaje.Cliente.NOMBRE; -end; - -procedure TfAsistenteEtiquetasMontajes.Button2Click(Sender: TObject); -begin - FMontaje.LabelCount := edtLabelCount.Value; - FMontaje.PreviewLabels; -end; - -procedure TfAsistenteEtiquetasMontajes.JvWizard1FinishButtonClick( - Sender: TObject); -begin - Close; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas deleted file mode 100644 index 5fd37ac..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uCargarFicheros.pas +++ /dev/null @@ -1,258 +0,0 @@ -unit uCargarFicheros; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, - uROClient, uROClientIntf, uRORemoteService, uROBinMessage, - uROServiceComponent, uROWinInetHttpChannel, Forms, - VARELA_Intf, uROTypes, uROEventRepository; - -type - TCargarFicherosThread = class(TThread) - private - FROMessage: TROBinMessage; - fROChannel: TROWinInetHTTPChannel; - fRORemoteService: TRORemoteService; - FEventReceiver : TROEventReceiver; - - fOnSuccess: TNotifyEvent; - fOnError: TNotifyEvent; - - fLoadOK: Boolean; - fTimeStarted: TDateTime; - fErrorText: string; - fInfoStr: string; - - FMaxConnectionErrors : Integer; - FChannelErrorscount: Integer; - - procedure Run; - protected - FNombre : String; - procedure CargarFicheros; virtual; abstract; - procedure OnChannelFailure(Sender: TROTransportChannel; - anException: Exception; var Retry: Boolean); - procedure OnLoadSuccess; virtual; - procedure OnLoadError(const ErrorMsg: String); virtual; - public - property Nombre : string read FNombre; - property LoadOK: Boolean read floadOK; - property TimeStarted: TDateTime read fTimeStarted; - property ErrorText: string read fErrortext; - property InfoStr: string read fInfoStr; - destructor Destroy; override; - procedure Execute; override; - constructor Create; - end; - - - { TCargarVentasThread } - TCargarVentasThread = class(TCargarFicherosThread) - private - fEDISalesService: IEDI_Sales; - - FFicheroCAB : String; - FFicheroLUG : String; - FFicheroART : String; - protected - procedure CargarFicheros; override; - public - destructor Destroy; override; - constructor Create(const FicheroCAB: String; const FicheroLUG: String; - const FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); - end; - - - { TCargarInventarioThread } - TCargarInventarioThread = class(TCargarFicherosThread) - private - fEDIInventaryService: IEDI_Inventary; - - FFicheroCAB : String; - FFicheroLIN : String; - FFicheroCANT : String; - - protected - procedure CargarFicheros; override; - public - destructor Destroy; override; - constructor Create(const FicheroCAB: String; const FicheroLIN: String; - const FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); - end; - - -implementation - -uses - uDataModuleBase, cxControls; - -{ TROThread } - - -destructor TCargarFicherosThread.Destroy; -begin - fROChannel.OnFailure := NIL; - - FreeAndNil(fRORemoteService); - FreeAndNil(fROChannel); - FreeAndNil(fROMessage); - inherited; -end; - -procedure TCargarFicherosThread.Run; -begin - ShowHourglassCursor; - try - CargarFicheros; - finally - HideHourglassCursor; - end; -end; - -procedure TCargarFicherosThread.Execute; -begin - try - Run; - finally - Self.Destroy; - end; -end; - -procedure TCargarFicherosThread.OnLoadError(const ErrorMsg: String); -begin - FErrorText := ErrorMsg; - if assigned(FOnError) then - FOnError(Self); -end; - -procedure TCargarFicherosThread.OnLoadSuccess; -begin - fLoadOK := True; - if assigned(FOnSuccess) then - FOnSuccess(Self); -end; - -procedure TCargarFicherosThread.OnChannelFailure( - Sender: TROTransportChannel; anException: Exception; var Retry: Boolean); -begin - if FChannelErrorsCount > FMaxConnectionErrors then - begin - FErrorText := anException.Message; - Self.Terminate; - end - else - begin - Inc(FChannelErrorsCount); - Sleep(1000); - Retry := true; - end; -end; - -constructor TCargarFicherosThread.Create; -begin - inherited Create(True); - FMaxConnectionErrors := 5; //try 5 times on channel-error - fLoadOK := False; - - fROMessage := TROBinMessage.Create(nil); - fROChannel := TROWinInetHTTPChannel.Create(NIL); - fROChannel.OnFailure := OnChannelFailure; - fROChannel.TargetURL := dmBase.Channel.TargetURL; -end; - -{ TCargarVentasThread } - -procedure TCargarVentasThread.CargarFicheros; -var - MsgError : String; -begin - try - if not fEDISalesService.CargarFicheroEDI(FFicheroCAB, FFicheroLUG, - FFicheroART, MsgError) then - OnLoadError(MsgError) - else - OnLoadSuccess; - except - on e: Exception do - OnLoadError(e.Message); - end; -end; - -constructor TCargarVentasThread.Create(const FicheroCAB, FicheroLUG, - FicheroART: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); -begin - inherited Create; - FNombre := 'SLSRPT'; - fRORemoteService := TRORemoteService.Create(nil); - fRORemoteService.Channel := fROChannel; - fRORemoteService.Message := fROMessage; - fRORemoteService.ServiceName := 'EDI_Sales'; - fEDISalesService := fRORemoteService as IEDI_Sales; - - FFicheroCAB := FicheroCAB; - FFicheroLUG := FicheroLUG; - FFicheroART := FicheroART; - - if assigned(aOnLoadSuccess) then - fOnSuccess := aOnLoadSuccess; - if assigned(aOnLoadError) then - fOnError := aOnLoadError; - Resume; -end; - -destructor TCargarVentasThread.Destroy; -begin - FEDISalesService := NIL; - inherited; -end; - -{ TCargarInventarioThread } - -procedure TCargarInventarioThread.CargarFicheros; -var - MsgError : String; -begin - inherited; - try - if not fEDIInventaryService.CargarFicheroEDI(FFicheroCAB, FFicheroLIN, - FFicheroCANT, MsgError) then - OnLoadError(MsgError) - else - OnLoadSuccess; - except - on e: Exception do - OnLoadError(e.Message); - end; -end; - -constructor TCargarInventarioThread.Create(const FicheroCAB, FicheroLIN, - FicheroCANT: String; aOnLoadSuccess, aOnLoadError: TNotifyEvent); -begin - inherited Create; - FNombre := 'INVRPT'; - fRORemoteService := TRORemoteService.Create(nil); - fRORemoteService.Channel := fROChannel; - fRORemoteService.Message := fROMessage; - fRORemoteService.ServiceName := 'EDI_Inventary'; - fEDIInventaryService := fRORemoteService as IEDI_Inventary; - - FFicheroCAB := FicheroCAB; - FFicheroLIN := FicheroLIN; - FFicheroCANT := FicheroCANT; - - if assigned(aOnLoadSuccess) then - fOnSuccess := aOnLoadSuccess; - if assigned(aOnLoadError) then - fOnError := aOnLoadError; - Resume; -end; - -destructor TCargarInventarioThread.Destroy; -begin - fEDIInventaryService := nil; - inherited; -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm deleted file mode 100644 index ad25fb4..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm +++ /dev/null @@ -1,192 +0,0 @@ -object dmFicherosEDI: TdmFicherosEDI - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 186 - Width = 300 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'EDI_Log' - Left = 40 - Top = 16 - end - object tbl_EDILog: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datInteger - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'EDILog' - IndexDefs = <> - Left = 152 - Top = 24 - end - object ds_EDILog: TDADataSource - DataSet = tbl_EDILog.Dataset - DataTable = tbl_EDILog - Left = 152 - Top = 80 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 40 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk deleted file mode 100644 index d10077e..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.dfm.cbk +++ /dev/null @@ -1,193 +0,0 @@ -object dmFicherosEDI: TdmFicherosEDI - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 186 - Width = 300 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'EDI_Log' - Left = 40 - Top = 16 - end - object tbl_EDILog: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datInteger - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'EDILog' - IndexDefs = <> - Left = 152 - Top = 24 - end - object ds_EDILog: TDADataSource - DataSet = tbl_EDILog.Dataset - DataTable = tbl_EDILog - Left = 152 - Top = 80 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 40 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas deleted file mode 100644 index c21f9ad..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uDataModuleFicherosEDI.pas +++ /dev/null @@ -1,61 +0,0 @@ -unit uDataModuleFicherosEDI; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, - uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, - schEDILogClient_Intf, uBizEDILog, uDARemoteDataAdapter, uDAInterfaces; - -type - TdmFicherosEDI = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_EDILog: TDACDSDataTable; - ds_EDILog: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - private - { Private declarations } - public - function GetItems : IBizEDILog; - end; - -var - dmFicherosEDI: TdmFicherosEDI; - -implementation - -{$R *.DFM} - -uses - uDataTableUtils, Forms, Controls, cxControls; - -procedure TdmFicherosEDI.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmFicherosEDI.GetItems: IBizEDILog; -var - dtLog: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLog := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_EDILog, dtLog); - dtLog.BusinessRulesID := BIZ_EDILOG; - Result := (dtLog as IBizEDILog); - finally - HideHourglassCursor; - end; -end; - -initialization - dmFicherosEDI := TdmFicherosEDI.Create(nil); - -finalization - FreeAndNil(dmFicherosEDI); - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm deleted file mode 100644 index 5f3fd16..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.dfm +++ /dev/null @@ -1,147 +0,0 @@ -inherited fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI - Left = 525 - Top = 313 - Caption = 'fEditorHistorialCargasEDI' - ClientHeight = 451 - ClientWidth = 660 - OnCreate = CustomEditorCreate - ExplicitWidth = 668 - ExplicitHeight = 485 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 660 - Caption = 'Historial de cargas de ficheros EDI' - ExplicitWidth = 660 - inherited Image1: TImage - Left = 633 - ExplicitLeft = 633 - end - end - inherited TBXDock: TTBXDock - Width = 660 - Visible = False - ExplicitWidth = 660 - inherited tbxMain: TTBXToolbar - Visible = False - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 660 - end - inherited tbxFiltro: TTBXToolbar - Visible = False - end - end - inherited StatusBar: TStatusBar - Top = 432 - Width = 660 - ExplicitTop = 432 - ExplicitWidth = 660 - end - inline frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI [3] - Left = 0 - Top = 76 - Width = 660 - Height = 356 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitTop = 76 - ExplicitWidth = 660 - ExplicitHeight = 356 - inherited cxGrid: TcxGrid - Width = 660 - Height = 356 - ExplicitWidth = 660 - ExplicitHeight = 356 - inherited cxGridView: TcxGridDBTableView - inherited cxGridViewOK: TcxGridDBColumn - IsCaptionAssigned = True - end - inherited cxGridViewFECHA: TcxGridDBColumn - Width = 92 - end - inherited cxGridViewREPORT: TcxGridDBColumn - Width = 54 - end - inherited cxGridViewERROR_MSG: TcxGridDBColumn - Width = 492 - end - end - end - end - inherited EditorActionList: TActionList [4] - inherited actNuevo: TAction - Enabled = False - end - inherited actModificar: TAction - Enabled = False - end - inherited actEliminar: TAction - Enabled = False - end - inherited actDeshacer: TEditUndo - Enabled = False - end - inherited actCortar: TEditCut - Enabled = False - end - inherited actCopiar: TEditCopy - Enabled = False - end - inherited actPegar: TEditPaste - Enabled = False - end - inherited actSeleccionarTodo: TEditSelectAll - Enabled = False - end - inherited actLimpiar: TEditDelete - Enabled = False - end - inherited actDuplicar: TAction - Enabled = False - end - end - inherited SmallImages: TPngImageList [5] - end - inherited LargeImages: TPngImageList [6] - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] - end - inherited dsDataTable: TDADataSource [9] - end - inherited GridPopupMenu: TPopupMenu - inherited Modificar1: TMenuItem - Visible = False - end - inherited Duplicar1: TMenuItem - Visible = False - end - inherited Eliminar1: TMenuItem - Visible = False - end - inherited N1: TMenuItem - Visible = False - end - inherited Nuevo1: TMenuItem - Visible = False - end - inherited N2: TMenuItem - Visible = False - end - inherited Previsualizar1: TMenuItem - Visible = False - end - inherited Imprimir1: TMenuItem - Visible = False - end - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas deleted file mode 100644 index 1daa18b..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uEditorHistorialCargasEDI.pas +++ /dev/null @@ -1,76 +0,0 @@ -unit uEditorHistorialCargasEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, - TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, - JvNavigationPane, uBizEDILog, uCustomView, uViewBase, - uViewHistorialCargasEDI, uViewGrid, uViewGridBase, StdCtrls, uDAInterfaces; - -type - IEditorHistorialCargasEDI = interface(IEditorGridBase) - ['{6C84E101-C4FB-48F9-A9A9-93F8606DF4FF}'] - function GetEDILog: IBizEDILog; - procedure SetEDILog(const Value: IBizEDILog); - property EDILog: IBizEDILog read GetEDILog write SetEDILog; - end; - - TfEditorHistorialCargasEDI = class(TfEditorGridBase, IEditorHistorialCargasEDI) - frViewHistorialCargasEDI1: TfrViewHistorialCargasEDI; - procedure CustomEditorCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - protected - FEDILog : IBizEDILog; - function GetEDILog: IBizEDILog; - procedure SetEDILog(const Value: IBizEDILog); - public - property EDILog: IBizEDILog read GetEDILog write SetEDILog; - end; - -var - fEditorHistorialCargasEDI: TfEditorHistorialCargasEDI; - -implementation - -{$R *.dfm} - -{ TfEditorHistorialCargasEDI } - -function TfEditorHistorialCargasEDI.GetEDILog: IBizEDILog; -begin - Result := FEDILog; -end; - -procedure TfEditorHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); -begin - FEDILog := Value; - dsDataTable.DataTable := FEDILog.DataTable; - if Assigned(ViewGrid) then - (ViewGrid as IViewHistorialCargasEDI).EDILog := FEDILog; -end; - -procedure TfEditorHistorialCargasEDI.CustomEditorCreate(Sender: TObject); -begin - inherited; - ViewGrid := frViewHistorialCargasEDI1; -end; - -procedure TfEditorHistorialCargasEDI.FormShow(Sender: TObject); -begin - inherited; - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay ninguna vista asignada'); - - if not Assigned(FEDILog) then - raise Exception.Create('No hay ningún control asignado'); - - FEDILog.DataTable.Active := True; - ViewGrid.GotoFirst; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm deleted file mode 100644 index b83f315..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.dfm +++ /dev/null @@ -1,601 +0,0 @@ -object ModuleFicherosEDI: TModuleFicherosEDI - OldCreateOrder = True - Description = 'Gesti'#243'n de ficheros EDI' - ModuleMenu = MainMenu - ModuleName = 'Ficheros EDI' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.4' - Left = 779 - Top = 651 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000003954944415478DA95967B48145114 - C6BF6D6975FB472AA2C28AA03F2203234B24437C656A98665A6996424F94A428 - 0B212289DE490F2ACB34D135B32CCB16297B10F6C4324CEDA9926CF6B0D53202 - AD7DCE76EF9DE6EE8E6EBBEB81D93B7367F6FB9DEF9CBB7747715273CB060F22 - 3B3D5641C75DF9A51E3D4F63CFB60C85820236AD8E71F9E0A9F23A9454681117 - 1544BFC4E77F1B050C18AD1830D05160D7D2DCEBE606F4FFD48303A888ABE8E9 - D17371B3D5260A19AC30596C4EC5552A2F682E5C91039C3911041BF28E699C8A - 0FB091089B44719345E0E2DEDE6A9C2BD6B80648E273E7047A54F3F79D5D5C9C - 864B80243E9C686C6A4142E2727EED14105ED8C61F08E96F9035D55504C46461 - FC586FF7009AB9C52AC04A8E03A72F3280B6FEED7F85E3C3FCD8FDBC83A71820 - 2E2109B537AA196808202B2D1A9145ED431C50012A4463E08F09BD7DFDD07DE9 - C3A11305A829CDC7ED27EF39800685284728ED808DA95128ACBC8B0D29512C73 - C9C1D1A22A0E385354ECD44145E1613C7ED1CE01E1910B59A347AA54385F5221 - 02D62447A0E4EA7DAC5D168945659D6E7B60254BD548D6BFC12CC068B6A1B1A5 - 8303E68784E1C9A37A44C72EB6FF0E562F094579CD03642C0D777060C5E9B2EB - 6E7BE0EF370DAD6F3FC84A44212AE2E052955604A4C485E052ED23AC4A084562 - 65D7B07A70FCF07EB4757472C0ACD97399383DAED5D48980A4986054D73D0505 - D1CC2DA404564140F145ADDB1E1CDAB7173A9D8E0366CCF4C7BB37AD080C0A46 - EDCDFB22207E4110B4F79E61596C3052AABB8738185C73A3E348E6BB3F7F9495 - 8842A8833BF71E8B00BA53AE498B47E2C2792C73D607B2AF9457DFC4EE2DE92E - C5E9FC4FFD270EF0F59D029517D92ED46AD43F7C0E8594ADE44412A78DAE2435 - CCC95C8515EBB773578101B3B0243199895390816C74A65F5F3860DCB8F16C99 - 524843E32B0990673BA909627BBE63D0FD3F7BDD4A51C822CF5C12A70E46FCEE - E6001F9FD1FF9AEC85A6D6763B801C8AC10DA4FF5E1B3252B17E73AECC4144CC - 522E4E416AF3370E50AB47890E0864EAE4098E00E493D15E0B32B72B7F2AD2D3 - 5638CDFCB2290CA5CDCD289DDE8BD1E8E100A552C900BACF7D68AA2B50488023 - E423470E6150BCEEDA819CDC9D320701216441BC1C03E880B3117A4C1CF95DB6 - 8AF43F0C4C9C9E3B94854378F86C4DC6AFA357F1B46D9BACE6ECDC2C9E93B580 - 495E7680A3F820C0E0101D50F1DEAF5D70171440C351DC03409E627674A647AF - 29FFDE3886E8FD050279B575ACF985ED0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000006BD4944415478DA - 8D566B5054E7197ECEEED91BBBB2ECCAB20A2C4210B0108C012A511062443183 - 522BE3C4D814C6361D4D26924B53E35012A74D676A5A6352C7A989D30495C48C - 284AA8C6A891315A85AE82B05111D95D592EBBEB72D95DF6BE67CF39FD58B4A6 - 4D4D7366BE3FDFE5799EEF7DDFE7FD0E85FFF7157FAA42249C2DA0058F49C5F4 - 0CF01C1561797F98633B11085F47E726F7F71DA71E3A5FB83F2F7161F38EC7D3 - B9B2FB939C5C11495116B27324CF72E661976BC032366CB8693BE9980C34E142 - 4DEF0F235874302136F9FA6FE4190DAF6BD385884879D82D5E78DD2168A9240C - 3A075153B6070B9237231C6278CBD078E4F2E5BEE1DBB7EDEFF95C9E83FF7DA3 - FF2428F858975274EA8850FB5561D1121D7AFBC7C058E2B1B56C2BCEE969F87B - CC5015AC4480A3A1D5C661D66C35385A8C7142DED5690A765FBBD37877C25F87 - AF7F36F65D02A23C297DF8AF91B43F56AD5A3D0FA15008174FBAB17EDE1E94E5 - 162056C663D3863AB45CFC103D662F2E748D61F8AE07293A3512E7CC86D5C5C2 - 60B0B05DFABEFDA356DF6BD0FF7CF2DB04145D72706BF9DAC33B325706A3E07D - BD362CD76CC16B4B6BC15314BC81108E1E69C3BAEAA7E10D030344A32FC0A0ED - D200B941000B0A32D06B0DA1FBAA8919E81F7EDDD6BC66F70382C2FDF9E54B52 - 1A0CF29FE656D72C46381C86BEC38C3D15A790199F15DDC4DE1B11321C7EC01F - 0204645FDBE953B007D470314A2466A4E2B63580AE8E5B76DE1F5CD9FFC9CA1E - 2A7D8736673632AE4FF1D8D08F0DCF3D112530F65971F5BC0B6A311FD5F0B72D - 67A09B990517516FF702816008FF683E80F61387F1AB37DF43BB5104914C0607 - AF80C9E4E087FA47F6591A576CA690FF617CEEAA3DA36B7E9909590C0D966511 - 669828C9D438D16A80C22343E31B1604887C3F030409785BD37EE84F1FC7BA97 - EAB0A274098CA361341C3140959602A33D08E33766BB36217E014592FBD44BD5 - 05FB9A0797A63FFF4231143324D3E084E444EBB5A96BE1E0560B9C24242C87E8 - 5A14FCCB63A8D8B40D190525982513402906FEF2D937E065E4061E1AC61B038C - 5C26FA0525283AF0EB9D75E56F597D54EC17C61C543D571A25B9D66546DF792B - 0E11E5E341A29A8960B0EF263ACFB6A2FBE259AC7DE56DCCCD2F06C70B409324 - FD58037CF6F530F4BD4E38C52A988D36DEE570FE89923ED9F8DBF77F5F59DF69 - 189446FA2EE15C423D2A2AF2D071FC163EAFB7C0E2218925CACD377A70E8775B - B0666D153A6F1A9192574AB22C8462E62CCCC95D84BE638731429498D86488D2 - 32601A98807BD87E86129736BEF9EEF6D575DD3786A4DEDE763C313F01BB076B - 71E50F160C1170D7BDD05C39FB77B4ECAA437945252EB7778092C781A204D065 - E7E3A98DDB603C7E186E5F1897C635A05333611D71223836A127F5DFF872FDCB - CBDEB1793809825EBCF26C1614B269E0B100514F6A9323041EB713AD1FBC03C7 - A00925CF6C46EA638B4978C81A25044DDCBC5C079C338C626FAB194EA99AEC73 - 20C2445A28143714D5AC2B3C96949698D0D569446DF5E388570AE063A7433305 - CEF2538327BD271CAD209154118D7D749EACC791042F4902761DBB8DAF6EFAE0 - E064181FB0F2B442B173AA4C95254F669F5B5E9E9777FE422F55B9EC112CCE56 - 212C40D4B1D3E0D340DF1EF789A7125CA005A4420EAFEEBE8A5E7F0CDC010EEE - 117B3846ABD9187572C2AAA6ED3FA95A544FC241BBC69CD8FC4C0E92E304B091 - 1005D887834F1DCE8C03B2D4408BDE8EF79B4978C471981C73211408DDE555CA - BCE9565172E047F3B3755F2C5DBE20B5A7FB0EE667C56343990E9A180A03DE07 - 89E6EE93DC539E4380E72801E35810B53BF5B0D22AF8822C3C23760894CABDFE - 8F17BFF8EF6E2A5F76A8B6B068DE9F331F4D155F69EF43FEA30958B72C05696A - 1A0C01B5139696A36DA85CFF74D45489724042F3B8629EC4DB1F1930C4CD4080 - 17C23B6C43442436314AF90AEC5D687ED0AEF39B941A1DFD6E6EFEDC8D49295A - C1AD1B83901280D282242CCA51414D87F042D5ABF8B2BD81988E43EFE0244EEB - 6D38F9CFBBF04A9488104FF8EC0E300CEB42AC6A13D350D8F4DD07A7F8238D66 - A67A876E6E6275D223B3E949B71F0EDB04782604955C0057C7296455AE87CDE1 - 81C3CD202094123FC849FB8810F0D1A9D0B978A5EAAD082DFC00FB0A98FFFD64 - 2E6C8C9D95AC7C9E9689DFD0246B340AB5920A937A0D04C3C413A4541996B46D - 0A1C511C0E45E077BA117079480F8A3151B2986D6111FDF97DF0EF7BF4915E73 - 3A9F84E2458A16AD164A242A21F9A5A0C42212020E417F908C0031121BE184A2 - 09C8E54783427A170136FDD0BF8A07A9D97E3D65D2E52B778E7B728935B288E1 - 24BC90F6B112E91D4864D742ACF04C706FEED0C3CEFF0B07FB54E0B6F6EF4600 - 00000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actCargarFicheros: TAction - Category = 'Ficheros' - Caption = 'Cargar ficheros...' - ImageIndex = 0 - OnExecute = actCargarFicherosExecute - end - object actHistorial: TAction - Category = 'Ficheros' - Caption = 'Historial de cargas' - ImageIndex = 1 - OnExecute = actHistorialExecute - end - end - object MainMenu: TMainMenu - Tag = 100 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 10 - Caption = '&Ficheros' - GroupIndex = 1 - ImageIndex = 4 - OnClick = actCargarFicherosExecute - object Ficheros1: TMenuItem - Tag = 100 - Action = actCargarFicheros - end - object Historialdecargas1: TMenuItem - Tag = 200 - Action = actHistorial - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000002284944415478DA635CB2F9C47F06 - 2C20C6D7821144D7F62CC02A0F038C2003A27DCCE1024BB79C6470B2D066D877 - E22AC3CD9B37189A8AE3E1726F3EFD6178F5F13790FECBB067C75A862DBB4F22 - 0C0069440684344BC9AB33CC9AB308D500984BEA7A173298189B6275F299B3A7 - C19A41006E40889B31C39A5D67C1068034E3027FFEFC659053D682F3E106F83A - E8336C3E70116E00B2D39181914716434C5430C3EE9D5B19FC03C31006B85969 - 33EC3A769501E492D6C94BC1067CFDFE8BE1F5BB2F0C0F9EBE63D877F8284369 - 560C837D602E83B8300783ABBB3703171737C2007B13758683676E32805CD233 - 7325D80074AF64244632F844153078B8DA329C3F771A6CC892656B2106CC59BA - 832125DA8301E492C9F3D7A278E1F3F7BF60FC0988A3928BC12E30343205BB60 - DDC61D0C8C30853097CC5ABA11AB177CFD4318D2734A194C8D34191E3DBC0F36 - 64C7EEC3A806805C626BA2C050931FCBD03271318A179C3C82188A8ACBC12E90 - 935764E0E4E4623874F42C03A38147C2FF0B3B16C00D0225DDFCB468864FDF20 - CEFEF5E73FC3D79FFF18BEFCF8CB50575DC5A0A220C6C001D4CCC9C9C970FADC - 75EC0624C64430CC5FB202CCB77109041A0232E01F4357730D83B4380FD8F63B - 0F5E319CDB318D1164C077A0BA5B4043F44186F9BA3830040787426D85D81C7C - 418861B6CA2B8669DDF5602FBC7CFB03AC199C994004D4100E982BA64E980CD7 - 0CC1FFC0E273FA1BC0344C33DC001880B90094CB700164CD2000002110375C5F - 4EB13C0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000003824944415478DA - 5D530D4C94751C7EFEF70177AF1EBC753B4EA0B8148EEB0E439423CE4411B58D - 0C0DC92648AECC465B6DCD4D572BC714AA4DDB4CD7206DB38F65E55C6B358A8C - 8D558640C725C981E7D9911D1F1EDC07C7DD61F7F5BEF7FE7BA11CCCDFF66CFF - FDF67B9EFD7FBF3D0FC1BD653A9A06812D351566ADD7E76B8A922948DC13332E - F7B8BF3B7675661068E1978E93C52725283AF598A52A713AB0A2DDCCC725A09C - D8CA7E969AF20ED2E04C3CD67FD96E730DFFF53A3FF4AA6D9EB0448012B6ECEC - DE271B979D0869DB730DEB54B874D10DCD7533D4F90F034229F28ACD80428581 - 3E4768B8D7DE74A7FFC5AF16058CEF6F6C38A0BE10D0B5E63E52FCE002F99D92 - D3B08F4CA0EEB95A38A72518724531EE892023EF21F4FC3C1271D95D8FC77A9E - 1F20F33B576D2AFF9ED77FB9ADAC669ACC93DF341E87656305EED36A11E680BF - 83220607D0DF3F84045B8E884283AB97AF0D78BCCA0DC4D85A40EF5E61F77E13 - 7CBE107EEDF4201A4B8051A6E3585D1FC64647F1C3B99338FCD649F43A388CCE - 4A607706F9E098670759BDFDBD1329CB07AF556D2F40AE2E03F1781CDD5D3710 - F250EC54BD01814861EBFE0EB587DF854EB70A2C8DE3F8A776DC4E2EC7A4DD79 - 966C7BF9D2F9070A358DD6483DA9ACCE4728740743BF79B14324DFB2DB10F0FB - 51B4E909A8F30CD0EAD7823AACB8D81B46586D847BF086955434757E5EB0D6B0 - 573A7E85F429DF5E58E5A9CC2322A110DFB6B520430EC464AA857EF5A136B01E - 073EFB6516538C1E813F6F39897EE785239B9FDED2CA858392BAAD6A8CFC6183 - 82CD42B6B114419F17A19900D43A13784102B904A8CCE1D1D0DC8389F8324426 - A7BA88ACB8AD7CCF4B353F4D8EFB98832FAC8372B914B371801344889EE352FF - 4110B13E0770386FA3F9BC1BC1609426F954ABE883A3B2C2FAB26E83D9589921 - 4BE2953D060445077AFF59245351AC4403642979EC3B760537430A443D9E2861 - B31E5D30D2FC2F4AB698BBE40C9399CB02FB7719B08295E3E30FBF46E381DDD0 - 3014635311349FB986EBC13444A7BD3425959FA23FD61CBA9B05A2B07CF4CCAA - 35FA730A9655CDF9035899CDC06BEDC4E6FA06D86F06303C16434CCA20E1F7D3 - 14641D94B97F1F3A2AE6C8D26429377C6261D8CC76558E760D49534893BC8064 - 92176F419188CC21110E47693A7386A6F32DE8A89DBB278DFF57D3EF72B5D753 - CD71A95D0291AC1604CA709CE043BAD2CAA529BEC03755234BC7FF05ED0D8747 - EEB393300000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000003AF4944415478DABDD75B48145118 - 07F0FF28AC094550425174A1B21B1474A33B5694EC8369B1565A59D44B11F550 - BDD44377ACEC4A37CB5CCBB4B5581575B5DA4A532B53D36C230ABA41D7070D83 - C03477D6DDCE37DB9C9D19B77136A20F86B33AEEF9EDFF3B676656C1E7F3E17F - 967026E7962171738A59F867209B4CF78FCEE63A71C9E64093335D85EE3E7E25 - A4F6ECDFBE56E0204D1A4A52C2D804AA73ED6E2F3A3ABD68A7C3ED1F3B7E8FED - DF3E63EFE1B350814693C62D9A8E50B1C6270D28BB5BDF1D9C9FF1AA1B54B961 - 0CBC5E2FD26D77D0D2D2FC57D8A0616370D19A632C216161616182B68D62978F - 4F2C7A7CBA1895219030D1E345EA191BA64E9916CA1E51617F0483B5746E5B5D - 48905C0D4DCF90B074B93EA84D268A5D3872E17AB775D32B377BDF8CB8CD18D0 - BF97049614D9A591831B921721E3DA5D0E2A31D1D38593D67C097454BDEC1133 - CF198B2C7B3932738A25904A4EC9C1F5890B70A9E09E6E4B65307EDE78FEFB1F - 1D6E7CFDD6861676B4B3D769A7D261B71EC5D5A20A0E066D69CA9218E4165783 - 92CAA9A4841EFF6B6B9E8383E733ADBA09732FA421BFB4928371F11694390AD5 - 2D4D8A9B8BEB650F4049B598871DD9F61BBA6B486BD629FAD0C946371B4B9C55 - AA96121A1E1E1E002DE65928743E02255D92F751B7A53DD5847123E1ACA8E660 - CCFC58444444C0643221EBB2CD0FC62F9C0E47793D28A93299BC71ECA5770CAF - E1B143A9B8FFF0010767CE8E416D4D3562CD8B916BCBF783747F5CBF2A1E9454 - 8BD1CF45B72A0CAF61EA8103A8AFAB51B59450932902F6020704F901CCAE439E - 545BCAFB6797D7C7D68CAD971858371ADDF21AB2734F1B1F7170C2C449126662 - 6D2D76DC5683943458C94F0723181D2F5CB51C1C153D16919191127AF3765500 - D42BBA69EFD9BAC61046E7DFBEA8E7E0D06123A40D43687965AD7170E79614EC - 389881D76FDEA8CE8D8E8E46F2CA94C08761E3A7578F393870E060A99D84D6D4 - B9FCA020EC63C31E410FDCB671D51F93D1A348BE06096C7DDFC8C17EFDA2F81A - 3634BD340E6E5C978CB4D35941139A1392394629DBBE3471B077EF3E7E901D43 - 06450540F6DE448616CA13293F0481EB562705D249EBA5BEBB14FB1620DBE542 - E6A81688CD4F3948AD24ECDD87AFD2973019B4B0790B94E8EF0F0142095C99B4 - 9C5D83D94113CE8E5D8115CFFB03EF8173F39A21B4BA54D76173EB4FFE8D8F6F - 1A05CAABEFB6447C3F51805DC786C36259163459A762B3D079692E05A8C454A0 - B6B409172724A2F1714D8F3B5A2E02A9B4DF657541E5469A6CDE14F2FF045A8C - EA17B3DA9C7AF449C9A20000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 94000000097048597300000E9C00000E9C01079453DD0000091A4944415478DA - 9596097054F51DC7BFEFDA3B7B41D8DD64D71C24241009844024014492101014 - D4160A28D8B18E38C5BBD45A5B6B6BE980B6D57A0D18A8022A6D119C16396A51 - 4A0847249098262CB903B93661B3F7BEDD7DBB6FDFEB3F412A9DE2D137F36667 - 67DFFE3FEFFBFB7D7F07856F7315BFC581D158C024B3398ECA6159460159A244 - 8916E564B25D8C0B5D386B74012B93DF7414F5B5BFCED866802239CDA455DF75 - 537A8A3D3FC33C715ADE84346D8A9A91641A570271AEA7D7E7E9EE0FB5F7BA82 - 8D1E3FBF2FC1C7DA707E7DE4FF0312459C4E33236B3CFBD2F442ED6C45865321 - 1B6A21533CC4483E287E06D2B58530181DD0684DA0295A760D78C4DA339D818E - CEA18F433E614BE24C9713F895F4CDC0C2DD5A8551FEE1EC69B6B565B7C993C3 - E6AD6CFAE423308E4F201167202758F8878D387B220DDEE1A55898BB06068B1D - B4420D7F302A77760C49276B5B5B3DBED06BE17E66279C2BE35F0D243068A5C7 - EE2AB7AFBCA554C80D99DFD65A0A8F43A3F4C2EF55A2E3733BFAEAACE8DA1FC1 - D4F23B31C2EB2151139039291F45337241A934084424B886FCF267A7DB026DAD - FDCF4487B877AE8752D78751A1D33C71E7ADD9F796CE31E57746B729ED257FC2 - 04EB08DCC34AF4D69540DF3B0FE11E011F7FD488F70EBC0699D3A0F30A83F6BE - 182E76F990E130213B270D03210A235E5E3E55D3121E1A18D9E83BB4623B41C9 - FF0D9CB5AB744AAEFEE5271F2A2B68F57D96E2B5BE88ECC99F816124B83B7290 - A8A9842D3E11F69B1CE0230CEE5EB30432C3A1D74B8117806058C0917F762221 - 4AB8A52C0F1707E3E81FF4A3FEE4857642B9BBF7FD25CE2F8125EFEA53F474F5 - 0B8FCFAF12947193D3B30396791F40ABEF06CFABD15B9B0D7B77154AF3E723AF - B000A9361B18A512BC48E14A185093537CBE104E1E3B0A97604338A1417E6116 - 9C2E11BD9786E5F67F751F94786995EBE0B2C855E0BCDD6577CFCFDC5D75FBCC - 9BDABA9AB87EE64DA4CF390656338250400FD7F11C4C13EEC092797722232B1B - 0A8D0602290B170F8488BA783888E37BB6A1BEE61F58FDD4669C6AE7909AAA47 - 5869C2803B820B0D1D7105850A67F5829314A6EC558CCF4CFEFA178F2D581B94 - 54D6E68BB5943CED1528D3CE13153262211DC2A7F351422F45E582E59890E640 - 9C56C01F030411E043211CFCE31F70EE9303D8F0EC26DC726B259C8351ECDAD7 - 8CE925B96819242A7B8689B33DFBBBECF42A0A25BBB30AF2F4AF3FFD4845D5E7 - AD03DC69E7DB485D7C189C79001258C4790DF83A07D6A43E0CEBCD25D09AAD90 - 69962483418C8FE0F0CED7D17CEA532C7EE049CC2C5F821C2387404CC69E436D - 0812F5018511C39E08717847B7232BFD1E0AA55B17D92AB6FCFDFAEAC89E2342 - 65023100B963444D970AFEBE2F9B87ABFF325E5D558BD61335A83FFA572CDFF0 - 7314DE7607690C0C8C0A20470F1C6FF162CFC15618B333D1EF13D1D5D4195769 - 94EB28BAB4FAD1DB2B06B71CEAFFA526A7C24C14A8C0722C24994152A2904CD2 - 044C214678814B3C02ED839895A884CECB2274E50AEE796A1326975582A239F2 - 3CC01057CCB6006DC3023657D7C3929B81F69124FA5A7BE5444CF80DA59CBFEB - 918DEB6EDED4D45F6338D8F314B2AAD2C1EA75489252250EBF0A26D0982B025F - 53370ABD73801E2F56AC5885CEEE6E98F34BA050EBC873407ADE74D8720B51B7 - BD1AD1848C86010653AA2AD07245C6F0A5214851FE6FA3C0479F595FF64284A6 - 8C1FEEF829BAEC1FC0343B1394210549F1AA4271248C584B272A35EB90B8EC07 - 3FD08D6577DD83C686F37007A3A059EE6A752D5B87A2C56B70764735F926A3AE - 9785A9B80C83310EEECB2EB049F104C5CE7B77FD86B5337F373ED3AE3BB0FF28 - A6E5766347CB46B0459320A718207B43905A5A51A92587E55782A568D4FCA51A - 8948101367CE47C5FD3F22E164C714729A9431B5E576529791047EF25A3D026A - 33DC02992C9DFD6015CC3E8A9DBB6BFEF285793BE72C9C9579F8F0394CCD240E - 144FE295BAC781295980B307159AB5282E58848905C5305BED10222497DE1198 - D33249E9682191D027097034871AF2F70A07D0D817C6CFDE38871871F5A85BDD - ED97C11AF52F92B2A8B617163876DEF7FDF2F2E60B0354C8E7C3AA4A2B6A1B77 - E1CDBA675161BA17B3729622ABA008E36C0EF2966AE2467AEC70E90BC835E068 - 17C9310093CC32FE5C33806D1FF5206E4C4598F4BE409F4B54DB2C0F9267F632 - D665F40BDF5B39FB69558A8E3D76AC050FAF9E8A346D14EEA14B70F9C2449503 - 464B3A38029308EC1A40BA0E36FA69D59019401CEA8F8978EEAD46B48595F090 - 71161A1E21A32DD9AF48B57C77ACB571B7EE292A2C4C3B5A5955646E6EE9A38C - 5A062B1665C2AE4B22144F22282B49B17363CAA41B2893C96D20F537CB0A2849 - 48777FDA8B3D9FF462446146241A47A8CF0566FCB8036130ABA92F4693C66431 - 6DAF5C347D55BA23953E79C289B9250EAC586087554BC14F4AA49FF4CD44F2C6 - 301B5156301ED012B3360F46F0E357EBE166F4E0650EBCDB8B7854006D1AF79D - 6875F187FF194F5CE9EE9BAD0ED3DECA25C59325D068A8EFC0DC59762C2E4D43 - BE45018626A122C9BF44464E43BD13F316968D19640281D9B4408CD03F6D1AC1 - 1B7B2FC2051DA29402D14008D1E11189B658F60B81E4FDF8A02C7ADDC47F9ED6 - 2DCA7B2823D3F66271E9E494585CA49C4D3DB05B75A89A9B81E26C1DD28D0C2E - 3638F1DC93BFC7D1BA77C86BC9A4C0250C90101C3A3388FDC7FBE0A3344892C9 - 2FF0514406864869E93A6030AC4E6C2D3EFFBF2B06991C6AABF88023DBF2DBBC - A9593AA5568DCB5D2E621E1F8C7A25F2B38CD027DC38FBFE2E3CF8F216787C11 - 34B57BD0D8EE434064A11C6786C43088FA8288BA3D802EC525E9B43F486E2F39 - F2D54B14819AB2A907546AF5467B4E5AB631D5488DE62AE0E3E1F70448CB2371 - 8D8548C2CC24A724914A15D96554C4540C849880A8C70F21C84B943EA553D268 - 1F4F76463E41CD02F11BF65299CA5A77646A884FBCA45028CB8D5633674825E3 - 8365094486484071D2684781A32B85404C11F10610F387C89E437664837E1F99 - 009B13D5331BBEDD5EFAC565B9EF63AD51A32C8925A42762426206C530369A63 - 198AE32012503C1627E34BC058A5A8D46EA854E7928CE2EDB856388257CAA237 - 3AF3EB37EF6B517EBE45C10A6251C01B9C128B8A532996CE92245921D1743C41 - B37D32C7B549B4B2391C94CFE3BDE9FCD79DF56F9BAC2EA7B114766B00000000 - 49454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 232 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas deleted file mode 100644 index 5aa8a3d..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uPluginControllerFicherosEDI.pas +++ /dev/null @@ -1,76 +0,0 @@ -unit uPluginControllerFicherosEDI; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCFicherosEDI = interface(IInterface) - ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] - end; - - TModuleFicherosEDI = class(TModuleController, IMCFicherosEDI) - actCargarFicheros: TAction; - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - Ficheros1: TMenuItem; - SmallImages: TPngImageList; - actHistorial: TAction; - Historialdecargas1: TMenuItem; - procedure actCargarFicherosExecute(Sender: TObject); - procedure actHistorialExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uAsistenteCargaFicheros, - uEditorHistorialCargasEDI, uBizEDILog, uDataModuleFicherosEDI; - -function GetModule : TModuleController; -begin - Result := TModuleFicherosEDI.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -procedure TModuleFicherosEDI.actCargarFicherosExecute(Sender: TObject); -begin - VerAsistenteEtiquetasMontajes; -end; - -procedure TModuleFicherosEDI.actHistorialExecute(Sender: TObject); -var - aControl: IBizEDILog; - aObj: IEditorHistorialCargasEDI; -begin - aControl := dmFicherosEDI.GetItems; - aObj := TfEditorHistorialCargasEDI.Create(Application); - try - with aObj do - begin - EDILog := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleFicherosEDI); - -finalization - UnRegisterModuleClass(TModuleFicherosEDI); - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas deleted file mode 100644 index ad5180a..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uSubirFicheros.pas +++ /dev/null @@ -1,233 +0,0 @@ -unit uSubirFicheros; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, - uROClient, uROClientIntf, uRORemoteService, uROBinMessage, - uROServiceComponent, uROWinInetHttpChannel, - VARELA_Intf, uROTypes; - -type - - { TROThread } - TSubirFicheroThread = class(TThread) - private - fROMessage: TROBinMessage; - fROChannel: TROWinInetHTTPChannel; - fRORemoteService: TRORemoteService; - fOnAbort: TNotifyEvent; - fOnFinished: TNotifyEvent; - fOnProgress: TNotifyEvent; - fOnStartUpload: TNotifyEvent; - fOnError: TNotifyEvent; - fFileName: string; - fUploadOK: Boolean; - fFileSize: Int64; - fCurrentBytePos: Int64; - fTimeStarted: TDateTime; - fFileService: IsrvTransfereciaFicheros; - fErrorText: string; - fInfoStr: string; - fMaxConnectionErrors, fChannelErrorscount: Integer; - procedure RunUpload; - function GetUploadChunk(FileMemStream: TMemoryStream; aSize: Int64; - const Sequence: Integer): Binary; - procedure OnChannelFailure(Sender: TROTransportChannel; - anException: Exception; var Retry: Boolean); - procedure Run; - protected - public - property UploadOK: Boolean read fUploadOK; - property FileSize: Int64 read fFileSize; - property CurrentBytePos: Int64 read fCurrentBytePos; - property TimeStarted: TDateTime read fTimeStarted; - property ErrorText: string read fErrortext; - property Filename: string read fFilename; - property InfoStr: string read fInfoStr; - constructor Create(aFileName: string; aOnStartUpload, aOnProgress, - aOnFinished, aOnAbort, aOnError: TNotifyEvent); - destructor Destroy; override; - - procedure Execute; override; - end; - -implementation - -uses - uDataModuleBase; - -{ TROThread } - -constructor TSubirFicheroThread.Create(aFileName: string; aOnStartUpload, aOnProgress, - aOnFinished, aOnAbort, aOnError: TNotifyEvent); -begin - inherited Create(TRUE); - fFilename := aFilename; - fmaxconnectionerrors := 5; //try 5 times on channel-error - - fROMessage := TROBinMessage.Create(nil); - fROChannel := TROWinInetHTTPChannel.Create(NIL); - fROChannel.OnFailure := OnChannelFailure; - fROChannel.TargetURL := dmBase.Channel.TargetURL; - - fRORemoteService := TRORemoteService.Create(nil); - fRORemoteService.Channel := fROChannel; - fRORemoteService.Message := fROMessage; - fRORemoteService.ServiceName := 'srvTransfereciaFicheros'; - fFileService := fRORemoteService as IsrvTransfereciaFicheros; - - if assigned(aOnAbort) then - fOnAbort := aOnAbort; - if assigned(aOnFinished) then - fOnFinished := aOnFinished; - if assigned(aOnProgress) then - fOnProgress := aOnProgress; - if assigned(aOnStartUpload) then - fOnStartUpload := aOnStartUpload; - if assigned(aOnError) then - fOnError := aOnError; - Resume; -end; - -destructor TSubirFicheroThread.Destroy; -begin - fFileService := nil; - fROChannel.OnFailure := NIL; - - FreeAndNil(fRORemoteService); - FreeAndNil(fROChannel); - FreeAndNil(fROMessage); - inherited; -end; - -procedure TSubirFicheroThread.Run; -begin - try - RunUpload; - finally - if assigned(fOnFinished) then - fOnFinished(Self); - end; -end; - -procedure TSubirFicheroThread.Execute; -begin - try - Run; - finally - Self.Destroy; - end; -end; - -function TSubirFicheroThread.GetUploadChunk(FileMemStream: TMemoryStream; aSize: - Int64; const Sequence: Integer): Binary; -const - Block: Integer = 65536; -var - Position: Int64; -begin - Result := Binary.Create; - Position := Block * (Sequence - 1); - if Position <= aSize then - begin - FileMemStream.Position := Position; - if Position + Block > aSize then - Result.CopyFrom(FileMemStream, aSize - Position) - else - Result.CopyFrom(FileMemStream, Block); - end; -end; - -procedure TSubirFicheroThread.RunUpload; -var - FileMemStream: TMemoryStream; - Chunk: Binary; - Sequence: Int64; - isfirst: Boolean; -begin - fErrorText := ''; - fUploadOK := false; - fChannelErrorscount := 0; - fCurrentBytePos := 0; - Sequence := 1; - fTimeStarted := Now; - FileMemStream := nil; - isfirst := true; - try - if FileExists(fFilename) then - begin - try - FileMemStream := TMemoryStream.Create; - FileMemStream.LoadFromFile(fFileName); - fFileName := ExtractFileName(fFileName); - fFileSize := FileMemStream.Size; - - fInfoStr := DateTimetoStr(fTimeStarted) + ' ' + - fFileName + ' ' + - FloatToStrF(Filesize / 1024, fffixed, 15, 1) + ' KB'; - - if assigned(fOnStartUpload) then - fOnStartUpload(Self); - Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); - try - while Chunk.Size > 0 do - begin - if Terminated then - begin - if assigned(fOnAbort) then - fOnAbort(Self); - exit; - end; - fFileService.uploadChunk(isfirst, fFileName, Chunk); - isfirst := false; - - Inc(fCurrentBytePos, Chunk.Size); - FreeAndNil(Chunk); - - Inc(Sequence); - if assigned(fOnProgress) then - fOnProgress(Self); - Chunk := GetUploadChunk(FileMemStream, fFileSize, Sequence); - end; - fUploadOK := (FileSize > 0) and (FileSize = CurrentBytePos); - finally - FreeAndNil(Chunk); - end; - finally - FileMemStream.Free; - end; - end - else begin - fErrorText := 'No existe el fichero ' + fFileName; - if assigned(fOnError) then - fOnError(Self); - end; - except - on e: Exception do - begin - fErrorText := e.Message; - if assigned(fOnError) then - fOnError(Self); - end; - end; -end; - -procedure TSubirFicheroThread.OnChannelFailure(Sender: TROTransportChannel; - anException: Exception; var Retry: Boolean); -begin - if FChannelErrorsCount > FMaxConnectionErrors then - begin - FErrorText := anException.Message; - Self.Terminate; - end - else - begin - Inc(FChannelErrorsCount); - Sleep(1000); - Retry := true; - end; -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm deleted file mode 100644 index 0432b04..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm +++ /dev/null @@ -1,123 +0,0 @@ -inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI - Width = 736 - Height = 430 - ExplicitWidth = 736 - ExplicitHeight = 430 - inherited cxGrid: TcxGrid - Width = 736 - Height = 430 - ExplicitWidth = 736 - ExplicitHeight = 430 - inherited cxGridView: TcxGridDBTableView - OptionsCustomize.ColumnGrouping = True - OptionsView.GridLines = glHorizontal - OptionsView.GroupRowStyle = grsOffice11 - object cxGridViewOK: TcxGridDBColumn - DataBinding.FieldName = 'OK' - PropertiesClassName = 'TcxCheckBoxProperties' - Properties.Glyph.Data = { - 36090000424D3609000000000000360000002800000030000000100000000100 - 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 - 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE - E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 - B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 - 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B - 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 - E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 - 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD - CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 - 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 - 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 - A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA - C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} - Properties.GlyphCount = 3 - Width = 20 - IsCaptionAssigned = True - end - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxDateEditProperties' - Properties.Alignment.Vert = taVCenter - OnGetDisplayText = cxGridViewFECHAGetDisplayText - SortIndex = 0 - SortOrder = soDescending - Width = 61 - end - object cxGridViewREPORT: TcxGridDBColumn - Caption = 'Report' - DataBinding.FieldName = 'REPORT' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Vert = taVCenter - Width = 35 - end - object cxGridViewERROR_MSG: TcxGridDBColumn - Caption = 'Error' - DataBinding.FieldName = 'ERROR_MSG' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Vert = taVCenter - Width = 323 - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk deleted file mode 100644 index 0432b04..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.dfm.cbk +++ /dev/null @@ -1,123 +0,0 @@ -inherited frViewHistorialCargasEDI: TfrViewHistorialCargasEDI - Width = 736 - Height = 430 - ExplicitWidth = 736 - ExplicitHeight = 430 - inherited cxGrid: TcxGrid - Width = 736 - Height = 430 - ExplicitWidth = 736 - ExplicitHeight = 430 - inherited cxGridView: TcxGridDBTableView - OptionsCustomize.ColumnGrouping = True - OptionsView.GridLines = glHorizontal - OptionsView.GroupRowStyle = grsOffice11 - object cxGridViewOK: TcxGridDBColumn - DataBinding.FieldName = 'OK' - PropertiesClassName = 'TcxCheckBoxProperties' - Properties.Glyph.Data = { - 36090000424D3609000000000000360000002800000030000000100000000100 - 18000000000000090000120B0000120B00000000000000000000EBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB8599CD1028908B99CAEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB70 - 88E01048FF102890EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBE1E7E09EC395B0DCADEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBADB9DD7088E0ABB5D8EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB709F5E3F812065B259CE - E4CCEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEB92A0CAEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - D8E0D459993B65CD505CC74042AA3083C87AE0E6DFEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4050B0EBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBD8E0D450943065CD5079EA6082E0776AD06057 - B247A2C799EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB92 - 9CC30038F0848EAEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB4F9D3B - 6AD95079EA60A3ED96D9E7D89DED8E6AD0604CAE3BD5DED2EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEB2040C00038F00E3395EBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBAAEB9BA7EC9090ED87EBEBEBEBEBEBE3E9E197 - E28E6AD06059A247D1EAC2EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBA7B1D850 - 70E00040FF0030D0BFC3CEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE1EDDD - CAEBC3EBEBEBEBEBEBEBEBEBEBEBEBE3E9E182E07765CD505EB359D5EACDEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEB7688CB5078E01048FF0040F07581A5EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBE3E9E182E0774CBE4085C177D5EACDEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB5068D070 - 90FF1050FF1040F00E33A4EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE3EAE189E07F4CBE4094D0 - 86D8E5D3EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEB6078D08098FF3060FF1050FF1D43C3EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBE3EAE1B0EDA164BE50C7DFC3EBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB7088E090 - A8F080A0FF6080F03955A9EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE4EBE2CBEA - C196CF8AEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBD4D8E37088E06078D05068D0D6DBE8EBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB} - Properties.GlyphCount = 3 - Width = 20 - IsCaptionAssigned = True - end - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxDateEditProperties' - Properties.Alignment.Vert = taVCenter - OnGetDisplayText = cxGridViewFECHAGetDisplayText - SortIndex = 0 - SortOrder = soDescending - Width = 61 - end - object cxGridViewREPORT: TcxGridDBColumn - Caption = 'Report' - DataBinding.FieldName = 'REPORT' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Vert = taVCenter - Width = 35 - end - object cxGridViewERROR_MSG: TcxGridDBColumn - Caption = 'Error' - DataBinding.FieldName = 'ERROR_MSG' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Vert = taVCenter - Width = 323 - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas deleted file mode 100644 index 1324623..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Cliente/uViewHistorialCargasEDI.pas +++ /dev/null @@ -1,72 +0,0 @@ -unit uViewHistorialCargasEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGridBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, - dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, uBizEDILog, cxCheckBox, - uViewGrid, cxCalendar, cxTextEdit, uDataModuleFicherosEDI, uDAInterfaces; - -type - IViewHistorialCargasEDI = interface(IViewGrid) - ['{556EBF85-7F86-49CB-A8BF-EBF299AAF9E5}'] - function GetEDILog: IBizEDILog; - procedure SetEDILog(const Value: IBizEDILog); - property EDILog: IBizEDILog read GetEDILog write SetEDILog; - end; - - TfrViewHistorialCargasEDI = class(TfrViewGrid, IViewHistorialCargasEDI) - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewOK: TcxGridDBColumn; - cxGridViewERROR_MSG: TcxGridDBColumn; - cxGridViewREPORT: TcxGridDBColumn; - procedure cxGridViewFECHAGetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - protected - FEDILog : IBizEDILog; - function GetEDILog: IBizEDILog; - procedure SetEDILog(const Value: IBizEDILog); - public - property EDILog: IBizEDILog read GetEDILog write SetEDILog; - end; - - -implementation - -uses DateUtils; - - - -{$R *.dfm} - -{ TfrViewHistorialCargasEDI } - -function TfrViewHistorialCargasEDI.GetEDILog: IBizEDILog; -begin - Result := FEDILog; -end; - -procedure TfrViewHistorialCargasEDI.SetEDILog(const Value: IBizEDILog); -begin - FEDILog := Value; - dsDataSource.DataTable := FEDILog.DataTable; -end; - -procedure TfrViewHistorialCargasEDI.cxGridViewFECHAGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - ADate : TDateTime; -begin - inherited; -{ ADate := ARecord.Values[Sender.Index]; - if DaysBetween(ADate, Now) = 0 then - AText := FormatDateTime('hh:mm', ADate)} -end; - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas deleted file mode 100644 index 80f2f87..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogClient_Intf.pas +++ /dev/null @@ -1,154 +0,0 @@ -unit schEDILogClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_EDILog = '{301F7728-2A2A-465E-89CD-4D36F00E1B31}'; - - { Data table names } - nme_EDILog = 'EDILog'; - - { EDILog fields } - fld_EDILogID = 'ID'; - fld_EDILogREPORT = 'REPORT'; - fld_EDILogFECHA = 'FECHA'; - fld_EDILogOK = 'OK'; - fld_EDILogERROR_MSG = 'ERROR_MSG'; - - { EDILog field indexes } - idx_EDILogID = 0; - idx_EDILogREPORT = 1; - idx_EDILogFECHA = 2; - idx_EDILogOK = 3; - idx_EDILogERROR_MSG = 4; - -type - { IEDILog } - IEDILog = interface(IDAStronglyTypedDataTable) - ['{7B8F10CA-504A-4F10-ADA7-4B805DB211FE}'] - { Property getters and setters } - function GetIDValue: Integer; - procedure SetIDValue(const aValue: Integer); - function GetREPORTValue: String; - procedure SetREPORTValue(const aValue: String); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetOKValue: Boolean; - procedure SetOKValue(const aValue: Boolean); - function GetERROR_MSGValue: String; - procedure SetERROR_MSGValue(const aValue: String); - - - { Properties } - property ID: Integer read GetIDValue write SetIDValue; - property REPORT: String read GetREPORTValue write SetREPORTValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property OK: Boolean read GetOKValue write SetOKValue; - property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; - end; - - { TEDILogDataTableRules } - TEDILogDataTableRules = class(TDADataTableRules, IEDILog) - private - protected - { Property getters and setters } - function GetIDValue: Integer; virtual; - procedure SetIDValue(const aValue: Integer); virtual; - function GetREPORTValue: String; virtual; - procedure SetREPORTValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetOKValue: Boolean; virtual; - procedure SetOKValue(const aValue: Boolean); virtual; - function GetERROR_MSGValue: String; virtual; - procedure SetERROR_MSGValue(const aValue: String); virtual; - - { Properties } - property ID: Integer read GetIDValue write SetIDValue; - property REPORT: String read GetREPORTValue write SetREPORTValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property OK: Boolean read GetOKValue write SetOKValue; - property ERROR_MSG: String read GetERROR_MSGValue write SetERROR_MSGValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TEDILogDataTableRules } -constructor TEDILogDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TEDILogDataTableRules.Destroy; -begin - inherited; -end; - -function TEDILogDataTableRules.GetIDValue: Integer; -begin - result := DataTable.Fields[idx_EDILogID].AsInteger; -end; - -procedure TEDILogDataTableRules.SetIDValue(const aValue: Integer); -begin - DataTable.Fields[idx_EDILogID].AsInteger := aValue; -end; - -function TEDILogDataTableRules.GetREPORTValue: String; -begin - result := DataTable.Fields[idx_EDILogREPORT].AsString; -end; - -procedure TEDILogDataTableRules.SetREPORTValue(const aValue: String); -begin - DataTable.Fields[idx_EDILogREPORT].AsString := aValue; -end; - -function TEDILogDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_EDILogFECHA].AsDateTime; -end; - -procedure TEDILogDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_EDILogFECHA].AsDateTime := aValue; -end; - -function TEDILogDataTableRules.GetOKValue: Boolean; -begin - result := DataTable.Fields[idx_EDILogOK].AsBoolean; -end; - -procedure TEDILogDataTableRules.SetOKValue(const aValue: Boolean); -begin - DataTable.Fields[idx_EDILogOK].AsBoolean := aValue; -end; - -function TEDILogDataTableRules.GetERROR_MSGValue: String; -begin - result := DataTable.Fields[idx_EDILogERROR_MSG].AsString; -end; - -procedure TEDILogDataTableRules.SetERROR_MSGValue(const aValue: String); -begin - DataTable.Fields[idx_EDILogERROR_MSG].AsString := aValue; -end; - - -initialization - RegisterDataTableRules(RID_EDILog, TEDILogDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas deleted file mode 100644 index e0b923b..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/schEDILogServer_Intf.pas +++ /dev/null @@ -1,167 +0,0 @@ -unit schEDILogServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDILogClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_EDILogDelta = '{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'; - -type - { IEDILogDelta } - IEDILogDelta = interface(IEDILog) - ['{6BA63DE2-08BB-4D9F-8C99-EBE412CE6FEC}'] - { Property getters and setters } - function GetOldIDValue : Integer; - function GetOldREPORTValue : String; - function GetOldFECHAValue : DateTime; - function GetOldOKValue : Boolean; - function GetOldERROR_MSGValue : String; - - { Properties } - property OldID : Integer read GetOldIDValue; - property OldREPORT : String read GetOldREPORTValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldOK : Boolean read GetOldOKValue; - property OldERROR_MSG : String read GetOldERROR_MSGValue; - end; - - { TEDILogBusinessProcessorRules } - TEDILogBusinessProcessorRules = class(TDABusinessProcessorRules, IEDILog, IEDILogDelta) - private - protected - { Property getters and setters } - function GetIDValue: Integer; virtual; - function GetOldIDValue: Integer; virtual; - procedure SetIDValue(const aValue: Integer); virtual; - function GetREPORTValue: String; virtual; - function GetOldREPORTValue: String; virtual; - procedure SetREPORTValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - function GetOldFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetOKValue: Boolean; virtual; - function GetOldOKValue: Boolean; virtual; - procedure SetOKValue(const aValue: Boolean); virtual; - function GetERROR_MSGValue: String; virtual; - function GetOldERROR_MSGValue: String; virtual; - procedure SetERROR_MSGValue(const aValue: String); virtual; - - { Properties } - property ID : Integer read GetIDValue write SetIDValue; - property OldID : Integer read GetOldIDValue; - property REPORT : String read GetREPORTValue write SetREPORTValue; - property OldREPORT : String read GetOldREPORTValue; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property OK : Boolean read GetOKValue write SetOKValue; - property OldOK : Boolean read GetOldOKValue; - property ERROR_MSG : String read GetERROR_MSGValue write SetERROR_MSGValue; - property OldERROR_MSG : String read GetOldERROR_MSGValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TEDILogBusinessProcessorRules } -constructor TEDILogBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TEDILogBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TEDILogBusinessProcessorRules.GetIDValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID]; -end; - -function TEDILogBusinessProcessorRules.GetOldIDValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogID]; -end; - -procedure TEDILogBusinessProcessorRules.SetIDValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogID] := aValue; -end; - -function TEDILogBusinessProcessorRules.GetREPORTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT]; -end; - -function TEDILogBusinessProcessorRules.GetOldREPORTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogREPORT]; -end; - -procedure TEDILogBusinessProcessorRules.SetREPORTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogREPORT] := aValue; -end; - -function TEDILogBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA]; -end; - -function TEDILogBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogFECHA]; -end; - -procedure TEDILogBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogFECHA] := aValue; -end; - -function TEDILogBusinessProcessorRules.GetOKValue: Boolean; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK]; -end; - -function TEDILogBusinessProcessorRules.GetOldOKValue: Boolean; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogOK]; -end; - -procedure TEDILogBusinessProcessorRules.SetOKValue(const aValue: Boolean); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogOK] := aValue; -end; - -function TEDILogBusinessProcessorRules.GetERROR_MSGValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG]; -end; - -function TEDILogBusinessProcessorRules.GetOldERROR_MSGValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_EDILogERROR_MSG]; -end; - -procedure TEDILogBusinessProcessorRules.SetERROR_MSGValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_EDILogERROR_MSG] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_EDILogDelta, TEDILogBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas b/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas deleted file mode 100644 index 3c79abf..0000000 --- a/Varela/Varela/Source/Modulos/FicherosEDI/Reglas/uBizEDILog.pas +++ /dev/null @@ -1,30 +0,0 @@ -unit uBizEDILog; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, - DataAbstract3_Intf, uROTypes, schEDILogClient_Intf; - -const - BIZ_EDILOG = 'Client.EDILog'; - - -type - IBizEDILog = interface(IEDILog) - ['{EED6A5BD-DC2A-4233-8097-5D212264CA22}'] - end; - - TBizEDILogDataTableRules = class(TEDILogDataTableRules, IBizEDILog) - end; - - -implementation - -initialization - RegisterDataTableRules(BIZ_EDILOG, TBizEDILogDataTableRules); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj deleted file mode 100644 index 954f701..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Parametros.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg deleted file mode 100644 index 53e7995..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof deleted file mode 100644 index 454c088..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=rtl;vcl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;indy;cxTreeListVCLD7;dxThemeD7;cxLibraryVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxsbD7;dxComnD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxIntlPrintSys3D7;PluginSDK_D7R;PngComponentsD7;PNG_D7;tb2k_d7;tbx_d7;cxExportVCLD7;cxIntlSchedulerD7;TMSD7;CEToolsPkgd7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxPSTeeChartD7;dxPScxCommonD7;dxPSLnksD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxScheduler2LnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;cxVerticalGridVCLD7;EasyListviewD7;VirtualTreesD7;cxIntl5D7;ccpack70;ccpack70dsg;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;FR7;SMImportD7;SMExportD7;FRIBX7;DataAbstract_IDE_D7;GUISDK_D7;fsTee7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;frxTee7;fsADO7;fsBDE7;fsDB7;fsIBX7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk deleted file mode 100644 index 5242dc8..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.dpk +++ /dev/null @@ -1,57 +0,0 @@ -package Parametros; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES ON} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - vcl, - dbrtl, - dsnap, - cxLibraryD10, - dxThemeD10, - adortl, - BaseD10, - ControlesBaseD10, - dxLayoutControlD10, - dxComnD10, - JvCoreD10R, - vcldb, - vcljpg, - vclx, - Jcl, - JclVcl, - JvStdCtrlsD10R, - JvSystemD10R, - tbx_D10, - tb2k_D10; - -contains - uDataModuleParametros in 'uDataModuleParametros.pas' {dmParametros: TDAClientDataModule}, - schParametrosClient_Intf in '..\Reglas\schParametrosClient_Intf.pas', - uBizParametros in '..\Reglas\uBizParametros.pas', - uViewParametrosCentro in 'uViewParametrosCentro.pas' {frViewParametrosCentro: TCustomView}, - uViewParametrosColeccion in 'uViewParametrosColeccion.pas' {frViewParametrosColeccion: TCustomView}; - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.identcache deleted file mode 100644 index cb628def9d1344ab9cc475e22333f2707cdefcda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc)Iu?oU45C-5n_#S-%AHdOeaVQjvoetzk&l*W{l1mU=9YvqnP>Yp+WioDmh71&BZrx^+@X){DvV8zb#IUgF$Y3cY#$_v!!$RJc4 zoFXW=2_~jXbl8!1@w%bbpn#~u_?Q_TKi;ja-!D!mQS?5KAJSe7f>3KZf9TkdQkw15 lcKe4dM~{82GzzD%>knbWJi|&~zJvbK)MScr!yHeWdICAN5dr`J diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc deleted file mode 100644 index 153736a..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res b/Varela/Varela/Source/Modulos/Parametros/Cliente/Parametros.res deleted file mode 100644 index ea6f55be3be373bb77635abcf5cb62b4a1d7e3e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!`F$75hlhW6Znuj?mK*AD#yu zyD#i}D-7Op{Esw$$7f;tP&`q4$G+Cec!K8`_qihW>`Se?FaOBC5tDo(_GZaJ)xb^O z^u`KAjXqWE17-V8+7DJ3nreye<(O6VtJ+_8T~T|`s6jHk=0ta$cd{CH)9g(@388Rb PtL`asx)+zP{Bh}DvbcG> diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm deleted file mode 100644 index 4d5c1f1..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.dfm +++ /dev/null @@ -1,214 +0,0 @@ -object dmParametros: TdmParametros - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 297 - Width = 620 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvParametros' - Left = 40 - Top = 32 - end - object tbl_ListaCentros: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'CODFILIAL' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODBARRA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = True - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'ListaCentros' - IndexDefs = <> - Left = 160 - Top = 96 - end - object ds_ListaCentros: TDADataSource - DataSet = tbl_ListaCentros.Dataset - DataTable = tbl_ListaCentros - Left = 160 - Top = 32 - end - object tbl_ListaColecciones: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'COLECAO' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESC_COLECAO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = True - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'ListaColecciones' - IndexDefs = <> - Left = 296 - Top = 96 - end - object dsListaColecciones: TDADataSource - DataSet = tbl_ListaColecciones.Dataset - DataTable = tbl_ListaColecciones - Left = 296 - Top = 32 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas deleted file mode 100644 index c2f730f..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uDataModuleParametros.pas +++ /dev/null @@ -1,78 +0,0 @@ -unit uDataModuleParametros; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, - uROServiceComponent, uRORemoteService, uBizParametros, uDARemoteDataAdapter, - uDAInterfaces; - -type - TdmParametros = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_ListaCentros: TDACDSDataTable; - ds_ListaCentros: TDADataSource; - tbl_ListaColecciones: TDACDSDataTable; - dsListaColecciones: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - public - function GetCentros : IBizCentros; - function GetColecciones : IBizColecciones; - end; - -var - dmParametros: TdmParametros; - -implementation - -{$R *.DFM} - -uses - Forms, Windows, Controls, VARELA_Intf, uEditorPreview, - uDataTableUtils, uROTypes, cxControls; - -procedure TdmParametros.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmParametros.GetCentros: IBizCentros; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_ListaCentros, dtLista); - dtLista.BusinessRulesID := BIZ_CENTROS; - Result := (dtLista as IBizCentros); - finally - HideHourglassCursor; - end; -end; - -function TdmParametros.GetColecciones: IBizColecciones; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_ListaColecciones, dtLista); - dtLista.BusinessRulesID := BIZ_COLECCIONES; - Result := (dtLista as IBizColecciones); - finally - HideHourglassCursor; - end; -end; - -initialization - dmParametros := TdmParametros.Create(nil); - -finalization - FreeAndNil(dmParametros); - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm deleted file mode 100644 index 5c280e3..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.dfm +++ /dev/null @@ -1,36 +0,0 @@ -inherited frViewParametrosCentro: TfrViewParametrosCentro - Width = 587 - Height = 42 - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 0 - Width = 587 - Height = 42 - Align = alTop - ParentBackground = True - TabOrder = 0 - AutoContentSizes = [acsWidth, acsHeight] - object ccbCentro: TJvCheckedComboBox - Left = 49 - Top = 10 - Width = 392 - Height = 21 - CapSelectAll = '&Select all' - CapDeSelectAll = '&Deselect all' - NoFocusColor = clWindow - QuoteStyle = qsSingle - DropDownLines = 20 - TabOrder = 0 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item1: TdxLayoutItem - Caption = 'Centro:' - Control = ccbCentro - ControlOptions.ShowBorder = False - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas deleted file mode 100644 index 55d2ffe..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosCentro.pas +++ /dev/null @@ -1,91 +0,0 @@ -unit uViewParametrosCentro; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, - JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, - uBizParametros; - -type - IViewParametrosCentro = interface(IViewParametrosControlGrid) - ['{AE4FC794-6D44-40A0-A138-09286870CBB0}'] - - function GetCentrosSeleccionados: TStringList; - property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; - end; - - TfrViewParametrosCentro = class(TfrViewParametrosControlGrid, IViewParametrosCentro) - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - dxLayoutControl1Item1: TdxLayoutItem; - ccbCentro: TJvCheckedComboBox; - private - FCentros : IBizCentros; - procedure RellenarListaCentros; - function GetCentrosSeleccionados: TStringList; - public - procedure Execute; override; - procedure Refresh; override; - property CentrosSeleccionados : TStringList read GetCentrosSeleccionados; - end; - -implementation - -uses - uDataModuleParametros, uDADataTable; - -{$R *.dfm} - -{ TfrViewParametrosCentro } - -procedure TfrViewParametrosCentro.Execute; -begin - // inherited; <- no descomentar -end; - -function TfrViewParametrosCentro.GetCentrosSeleccionados: TStringList; -var - i : integer; -begin - Result := TStringList.Create; - - FCentros.DataTable.First; - for i := 0 to ccbCentro.Items.Count - 1 do - begin - if ccbCentro.Checked[i] then - Result.Add(FCentros.CODBARRA); - FCentros.DataTable.Next; - end; -end; - -procedure TfrViewParametrosCentro.Refresh; -begin - // inherited; <- no descomentar - RellenarListaCentros; -end; - -procedure TfrViewParametrosCentro.RellenarListaCentros; -var - i : Integer; -begin - FCentros := dmParametros.GetCentros; - ccbCentro.Items.BeginUpdate; - - ShowHourglassCursor; - try - ccbCentro.Items.Clear; - FCentros.DataTable.Active := True; - for i := 0 to FCentros.DataTable.RecordCount - 1 do - begin - ccbCentro.Items.Add(FCentros.FILIAL); - FCentros.DataTable.Next; - end; - finally - ccbCentro.Items.EndUpdate; - HideHourglassCursor; - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm deleted file mode 100644 index d268eee..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.dfm +++ /dev/null @@ -1,36 +0,0 @@ -inherited frViewParametrosColeccion: TfrViewParametrosColeccion - Width = 587 - Height = 42 - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 0 - Width = 587 - Height = 42 - Align = alTop - ParentBackground = True - TabOrder = 0 - AutoContentSizes = [acsWidth, acsHeight] - object ccbColeccion: TJvCheckedComboBox - Left = 65 - Top = 10 - Width = 512 - Height = 21 - CapSelectAll = '&Select all' - CapDeSelectAll = '&Deselect all' - NoFocusColor = clWindow - QuoteStyle = qsSingle - DropDownLines = 20 - TabOrder = 0 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item1: TdxLayoutItem - Caption = 'Colecci'#243'n:' - Control = ccbColeccion - ControlOptions.ShowBorder = False - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas b/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas deleted file mode 100644 index f8ee182..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Cliente/uViewParametrosColeccion.pas +++ /dev/null @@ -1,91 +0,0 @@ -unit uViewParametrosColeccion; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit, - JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels, - uBizParametros; - -type - IViewParametrosColeccion = interface(IViewParametrosControlGrid) - ['{5523284E-4445-4026-AFAC-B243C19F0DA7}'] - - function GetColeccionesSeleccionadas: TStringList; - property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; - end; - - TfrViewParametrosColeccion = class(TfrViewParametrosControlGrid, IViewParametrosColeccion) - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - ccbColeccion: TJvCheckedComboBox; - dxLayoutControl1Item1: TdxLayoutItem; - private - FColecciones : IBizColecciones; - procedure RellenarListaColecciones; - function GetColeccionesSeleccionadas: TStringList; - public - procedure Execute; override; - procedure Refresh; override; - property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas; - end; - -implementation - -uses - uDataModuleParametros, uDADataTable; - -{$R *.dfm} - -{ TfrViewParametrosColeccion } - -procedure TfrViewParametrosColeccion.Execute; -begin - // inherited; <- no descomentar -end; - -function TfrViewParametrosColeccion.GetColeccionesSeleccionadas: TStringList; -var - i : integer; -begin - Result := TStringList.Create; - - FColecciones.DataTable.First; - for i := 0 to ccbColeccion.Items.Count - 1 do - begin - if ccbColeccion.Checked[i] then - Result.Add(FColecciones.COLECAO); - FColecciones.DataTable.Next; - end; -end; - -procedure TfrViewParametrosColeccion.Refresh; -begin - // inherited; <- no descomentar - RellenarListaColecciones; -end; - -procedure TfrViewParametrosColeccion.RellenarListaColecciones; -var - i : Integer; -begin - FColecciones := dmParametros.GetColecciones; - ccbColeccion.Items.BeginUpdate; - - ShowHourglassCursor; - try - ccbColeccion.Items.Clear; - FColecciones.DataTable.Active := True; - for i := 0 to FColecciones.DataTable.RecordCount - 1 do - begin - ccbColeccion.Items.Add(FColecciones.DESC_COLECAO); - FColecciones.DataTable.Next; - end; - finally - ccbColeccion.Items.EndUpdate; - HideHourglassCursor; - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas deleted file mode 100644 index fb835f0..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosClient_Intf.pas +++ /dev/null @@ -1,196 +0,0 @@ -unit schParametrosClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_ListaCentros = '{CE7EAA4D-6A5B-418E-931E-61BC59E87921}'; - RID_ListaColecciones = '{30AF285C-6577-445D-A759-78E8EC8275BF}'; - - { Data table names } - nme_ListaCentros = 'ListaCentros'; - nme_ListaColecciones = 'ListaColecciones'; - - { ListaCentros fields } - fld_ListaCentrosCODFILIAL = 'CODFILIAL'; - fld_ListaCentrosCODBARRA = 'CODBARRA'; - fld_ListaCentrosFILIAL = 'FILIAL'; - - { ListaCentros field indexes } - idx_ListaCentrosCODFILIAL = 0; - idx_ListaCentrosCODBARRA = 1; - idx_ListaCentrosFILIAL = 2; - - { ListaColecciones fields } - fld_ListaColeccionesCOLECAO = 'COLECAO'; - fld_ListaColeccionesDESC_COLECAO = 'DESC_COLECAO'; - - { ListaColecciones field indexes } - idx_ListaColeccionesCOLECAO = 0; - idx_ListaColeccionesDESC_COLECAO = 1; - -type - { IListaCentros } - IListaCentros = interface(IDAStronglyTypedDataTable) - ['{FF4F6460-CEBC-40C5-A2B9-7ED81AE90A7A}'] - { Property getters and setters } - function GetCODFILIALValue: String; - procedure SetCODFILIALValue(const aValue: String); - function GetCODBARRAValue: String; - procedure SetCODBARRAValue(const aValue: String); - function GetFILIALValue: String; - procedure SetFILIALValue(const aValue: String); - - - { Properties } - property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; - property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; - property FILIAL: String read GetFILIALValue write SetFILIALValue; - end; - - { TListaCentrosDataTableRules } - TListaCentrosDataTableRules = class(TDADataTableRules, IListaCentros) - private - protected - { Property getters and setters } - function GetCODFILIALValue: String; virtual; - procedure SetCODFILIALValue(const aValue: String); virtual; - function GetCODBARRAValue: String; virtual; - procedure SetCODBARRAValue(const aValue: String); virtual; - function GetFILIALValue: String; virtual; - procedure SetFILIALValue(const aValue: String); virtual; - - { Properties } - property CODFILIAL: String read GetCODFILIALValue write SetCODFILIALValue; - property CODBARRA: String read GetCODBARRAValue write SetCODBARRAValue; - property FILIAL: String read GetFILIALValue write SetFILIALValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IListaColecciones } - IListaColecciones = interface(IDAStronglyTypedDataTable) - ['{6EACE103-97D5-4D08-9BA5-DC24826BD4C8}'] - { Property getters and setters } - function GetCOLECAOValue: String; - procedure SetCOLECAOValue(const aValue: String); - function GetDESC_COLECAOValue: String; - procedure SetDESC_COLECAOValue(const aValue: String); - - - { Properties } - property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; - property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; - end; - - { TListaColeccionesDataTableRules } - TListaColeccionesDataTableRules = class(TDADataTableRules, IListaColecciones) - private - protected - { Property getters and setters } - function GetCOLECAOValue: String; virtual; - procedure SetCOLECAOValue(const aValue: String); virtual; - function GetDESC_COLECAOValue: String; virtual; - procedure SetDESC_COLECAOValue(const aValue: String); virtual; - - { Properties } - property COLECAO: String read GetCOLECAOValue write SetCOLECAOValue; - property DESC_COLECAO: String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TListaCentrosDataTableRules } -constructor TListaCentrosDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TListaCentrosDataTableRules.Destroy; -begin - inherited; -end; - -function TListaCentrosDataTableRules.GetCODFILIALValue: String; -begin - result := DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString; -end; - -procedure TListaCentrosDataTableRules.SetCODFILIALValue(const aValue: String); -begin - DataTable.Fields[idx_ListaCentrosCODFILIAL].AsString := aValue; -end; - -function TListaCentrosDataTableRules.GetCODBARRAValue: String; -begin - result := DataTable.Fields[idx_ListaCentrosCODBARRA].AsString; -end; - -procedure TListaCentrosDataTableRules.SetCODBARRAValue(const aValue: String); -begin - DataTable.Fields[idx_ListaCentrosCODBARRA].AsString := aValue; -end; - -function TListaCentrosDataTableRules.GetFILIALValue: String; -begin - result := DataTable.Fields[idx_ListaCentrosFILIAL].AsString; -end; - -procedure TListaCentrosDataTableRules.SetFILIALValue(const aValue: String); -begin - DataTable.Fields[idx_ListaCentrosFILIAL].AsString := aValue; -end; - - -{ TListaColeccionesDataTableRules } -constructor TListaColeccionesDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TListaColeccionesDataTableRules.Destroy; -begin - inherited; -end; - -function TListaColeccionesDataTableRules.GetCOLECAOValue: String; -begin - result := DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString; -end; - -procedure TListaColeccionesDataTableRules.SetCOLECAOValue(const aValue: String); -begin - DataTable.Fields[idx_ListaColeccionesCOLECAO].AsString := aValue; -end; - -function TListaColeccionesDataTableRules.GetDESC_COLECAOValue: String; -begin - result := DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString; -end; - -procedure TListaColeccionesDataTableRules.SetDESC_COLECAOValue(const aValue: String); -begin - DataTable.Fields[idx_ListaColeccionesDESC_COLECAO].AsString := aValue; -end; - - -initialization - RegisterDataTableRules(RID_ListaCentros, TListaCentrosDataTableRules); - RegisterDataTableRules(RID_ListaColecciones, TListaColeccionesDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas deleted file mode 100644 index 9bd380b..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Reglas/schParametrosServer_Intf.pas +++ /dev/null @@ -1,203 +0,0 @@ -unit schParametrosServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schParametrosClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_ListaCentrosDelta = '{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'; - RID_ListaColeccionesDelta = '{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'; - -type - { IListaCentrosDelta } - IListaCentrosDelta = interface(IListaCentros) - ['{5AAFEEF2-8098-4A72-BC66-D67CF1CE1D1A}'] - { Property getters and setters } - function GetOldCODFILIALValue : String; - function GetOldCODBARRAValue : String; - function GetOldFILIALValue : String; - - { Properties } - property OldCODFILIAL : String read GetOldCODFILIALValue; - property OldCODBARRA : String read GetOldCODBARRAValue; - property OldFILIAL : String read GetOldFILIALValue; - end; - - { TListaCentrosBusinessProcessorRules } - TListaCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IListaCentros, IListaCentrosDelta) - private - protected - { Property getters and setters } - function GetCODFILIALValue: String; virtual; - function GetOldCODFILIALValue: String; virtual; - procedure SetCODFILIALValue(const aValue: String); virtual; - function GetCODBARRAValue: String; virtual; - function GetOldCODBARRAValue: String; virtual; - procedure SetCODBARRAValue(const aValue: String); virtual; - function GetFILIALValue: String; virtual; - function GetOldFILIALValue: String; virtual; - procedure SetFILIALValue(const aValue: String); virtual; - - { Properties } - property CODFILIAL : String read GetCODFILIALValue write SetCODFILIALValue; - property OldCODFILIAL : String read GetOldCODFILIALValue; - property CODBARRA : String read GetCODBARRAValue write SetCODBARRAValue; - property OldCODBARRA : String read GetOldCODBARRAValue; - property FILIAL : String read GetFILIALValue write SetFILIALValue; - property OldFILIAL : String read GetOldFILIALValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IListaColeccionesDelta } - IListaColeccionesDelta = interface(IListaColecciones) - ['{98EF7287-301A-462F-AF86-9EDE8B21DFA7}'] - { Property getters and setters } - function GetOldCOLECAOValue : String; - function GetOldDESC_COLECAOValue : String; - - { Properties } - property OldCOLECAO : String read GetOldCOLECAOValue; - property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; - end; - - { TListaColeccionesBusinessProcessorRules } - TListaColeccionesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaColecciones, IListaColeccionesDelta) - private - protected - { Property getters and setters } - function GetCOLECAOValue: String; virtual; - function GetOldCOLECAOValue: String; virtual; - procedure SetCOLECAOValue(const aValue: String); virtual; - function GetDESC_COLECAOValue: String; virtual; - function GetOldDESC_COLECAOValue: String; virtual; - procedure SetDESC_COLECAOValue(const aValue: String); virtual; - - { Properties } - property COLECAO : String read GetCOLECAOValue write SetCOLECAOValue; - property OldCOLECAO : String read GetOldCOLECAOValue; - property DESC_COLECAO : String read GetDESC_COLECAOValue write SetDESC_COLECAOValue; - property OldDESC_COLECAO : String read GetOldDESC_COLECAOValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TListaCentrosBusinessProcessorRules } -constructor TListaCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TListaCentrosBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TListaCentrosBusinessProcessorRules.GetCODFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL]; -end; - -function TListaCentrosBusinessProcessorRules.GetOldCODFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODFILIAL]; -end; - -procedure TListaCentrosBusinessProcessorRules.SetCODFILIALValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODFILIAL] := aValue; -end; - -function TListaCentrosBusinessProcessorRules.GetCODBARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA]; -end; - -function TListaCentrosBusinessProcessorRules.GetOldCODBARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosCODBARRA]; -end; - -procedure TListaCentrosBusinessProcessorRules.SetCODBARRAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosCODBARRA] := aValue; -end; - -function TListaCentrosBusinessProcessorRules.GetFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL]; -end; - -function TListaCentrosBusinessProcessorRules.GetOldFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaCentrosFILIAL]; -end; - -procedure TListaCentrosBusinessProcessorRules.SetFILIALValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ListaCentrosFILIAL] := aValue; -end; - - -{ TListaColeccionesBusinessProcessorRules } -constructor TListaColeccionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TListaColeccionesBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TListaColeccionesBusinessProcessorRules.GetCOLECAOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO]; -end; - -function TListaColeccionesBusinessProcessorRules.GetOldCOLECAOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesCOLECAO]; -end; - -procedure TListaColeccionesBusinessProcessorRules.SetCOLECAOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesCOLECAO] := aValue; -end; - -function TListaColeccionesBusinessProcessorRules.GetDESC_COLECAOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO]; -end; - -function TListaColeccionesBusinessProcessorRules.GetOldDESC_COLECAOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaColeccionesDESC_COLECAO]; -end; - -procedure TListaColeccionesBusinessProcessorRules.SetDESC_COLECAOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ListaColeccionesDESC_COLECAO] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_ListaCentrosDelta, TListaCentrosBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_ListaColeccionesDelta, TListaColeccionesBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas b/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas deleted file mode 100644 index b7ec883..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Reglas/uBizParametros.pas +++ /dev/null @@ -1,49 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2007 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uBizParametros; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, - schParametrosClient_Intf; - - -const - BIZ_CENTROS = 'Client.Centros'; - BIZ_COLECCIONES = 'Client.Colecciones'; - -type - IBizCentros = interface(IListaCentros) - ['{1B5A35E8-1243-4222-BB86-558574C0F2AE}'] - end; - - IBizColecciones = interface(IListaColecciones) - ['{BF62BD66-69B4-4134-954E-724C7C65CB5C}'] - end; - - TBizCentrosDataTableRules = class(TListaCentrosDataTableRules, IBizCentros) - end; - - TBizColeccionesDataTableRules = class(TListaColeccionesDataTableRules, IBizColecciones) - end; - -implementation - -uses - uDataModuleParametros; - -{ TBizCentrosDataTableRules } - -initialization - RegisterDataTableRules(BIZ_CENTROS, TBizCentrosDataTableRules); - RegisterDataTableRules(BIZ_COLECCIONES, TBizColeccionesDataTableRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm deleted file mode 100644 index fb27827..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.dfm +++ /dev/null @@ -1,155 +0,0 @@ -object srvParametros: TsrvParametros - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schParametros - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 300 - Width = 300 - object schParametros: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'SELECT'#10' RDX_FILIALES.CODFILIAL, RDX_FILIALES.CODBARRA, FILI' + - 'AIS.FILIAL'#10'FROM'#10' RDX_FILIALES INNER JOIN FILIAIS ON (RDX_FILI' + - 'ALES.CODFILIAL = FILIAIS.COD_FILIAL)'#10'WHERE'#10' RDX_FILIALES.COD' + - 'FILIAL <> '#39'000001'#39 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CODFILIAL' - TableField = 'CODFILIAL' - end - item - DatasetField = 'CODBARRA' - TableField = 'CODBARRA' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end> - end> - Name = 'ListaCentros' - Fields = < - item - Name = 'CODFILIAL' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODBARRA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'SELECT'#10' COLECOES.COLECAO, COLECOES.DESC_COLECAO'#10'FROM'#10' CO' + - 'LECOES'#10'WHERE'#10' COLECOES.COLECAO NOT IN ('#39'IND'#39', '#39'PRI'#39', '#39'009'#39')'#10 + - 'ORDER BY COLECOES.COLECAO DESC' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'COLECAO' - TableField = 'COLECAO' - end - item - DatasetField = 'DESC_COLECAO' - TableField = 'DESC_COLECAO' - end> - end> - Name = 'ListaColecciones' - Fields = < - item - Name = 'COLECAO' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESC_COLECAO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = <> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 40 - Top = 24 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas b/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas deleted file mode 100644 index 3cc706d..0000000 --- a/Varela/Varela/Source/Modulos/Parametros/Servidor/srvParametros_Impl.pas +++ /dev/null @@ -1,48 +0,0 @@ -unit srvParametros_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAScriptingProvider, uDABusinessProcessor, - uDAClasses, uDADataTable, uDABINAdapter, uDADataStreamer; - - -type - { TsrvParametros } - TsrvParametros = class(TDARemoteService, IsrvParametros) - DABINAdapter: TDABINAdapter; - schParametros: TDASchema; - private - protected - { IsrvParametros methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer; - -procedure Create_srvParametros(out anInstance : IUnknown); -begin - anInstance := TsrvParametros.Create(NIL); -end; - -{ srvParametros } -initialization - TROClassFactory.Create('srvParametros', Create_srvParametros, TsrvParametros_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj deleted file mode 100644 index 6072fed..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.bdsproj +++ /dev/null @@ -1,679 +0,0 @@ - - - - - - - - - - - - Recepciones.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - Intraweb 8.0 Design Package for Borland Development Studio 2006 - - - - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg deleted file mode 100644 index a34a309..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof deleted file mode 100644 index a44450d..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=0 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk deleted file mode 100644 index 76a3206..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.dpk +++ /dev/null @@ -1,84 +0,0 @@ -package Recepciones; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - dbrtl, - dsnap, - BaseD10, - vcl, - adortl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - JvGlobusD10R, - ControlesBaseD10, - Parametros, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - dxPSCoreD10, - dxComnD10, - JvCustomD10R, - bdertl, - VclSmp, - dxPScxGridLnkD10, - dxPScxCommonD10, - dxPSLnksD10, - designide, - vclshlctrls, - dclcxLibraryD10; - -contains - uPluginControllerRecepciones in 'uPluginControllerRecepciones.pas' {ModuleRecepciones: TModuleController}, - uDataModuleRecepciones in 'uDataModuleRecepciones.pas' {dmRecepciones: TDAClientDataModule}, - uBizRecepciones in '..\Reglas\uBizRecepciones.pas', - uViewListaRecepciones in 'uViewListaRecepciones.pas' {frViewListaRecepciones: TCustomView}, - uEditorListaRecepciones in 'uEditorListaRecepciones.pas' {fEditorListaRecepciones: TCustomEditor}, - uEditorAjustarRecepciones in 'uEditorAjustarRecepciones.pas' {fEditorAjustarRecepciones}, - uViewListaRecepcionesAlbaran in 'uViewListaRecepcionesAlbaran.pas' {frViewListaRecepcionesAlbaran: TCustomView}, - uEditorListaRecepcionesAlbaran in 'uEditorListaRecepcionesAlbaran.pas' {fEditorListaRecepcionesAlbaran: TCustomEditor}; - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache b/Varela/Varela/Source/Modulos/Recepciones/Cliente/Recepciones.identcache deleted file mode 100644 index ce259cdd7a176e6b3112cfa48d7eed0ccdb01a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmc(eK}rKb5JktG$Cwj%0C&m6oq>>GR<$X+i=jf>6{@-r+`CIe5bx^{B*+kFneO$6 ze!O4*wrQHLo9-SK68wd7u@-Y|H&hDe-r&g`l?9e;ZTyXh!CW+*a>XM{yHeRvC*S2MP9alL^�Kk*LJ+7v-2DlSn#wLnsE1B S1?}<>{;_wcf_SOkaj!oRx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Recepciones' - IndexDefs = <> - Left = 208 - Top = 32 - end - object ds_Recepciones: TDADataSource - DataSet = tbl_Recepciones.Dataset - DataTable = tbl_Recepciones - Left = 208 - Top = 88 - end - object tbl_RecepcionesAprobadas: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RECIBIDO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Recepciones_RECIBIDO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Recepciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'RecepcionesAprobadas' - IndexDefs = <> - Left = 352 - Top = 32 - end - object ds_RecepcionesAprobadas: TDADataSource - DataSet = tbl_RecepcionesAprobadas.Dataset - DataTable = tbl_RecepcionesAprobadas - Left = 352 - Top = 88 - end - object tbl_RecepcionesPendientes: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_R48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - ReadOnly = True - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RECIBIDO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - DictionaryEntry = 'Recepciones_RR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Recepciones_RECIBIDO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - ServerAutoRefresh = True - DictionaryEntry = 'Recepciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'RecepcionesPendientes' - IndexDefs = <> - Left = 488 - Top = 32 - end - object ds_RecepcionesPendientes: TDADataSource - DataSet = tbl_RecepcionesPendientes.Dataset - DataTable = tbl_RecepcionesPendientes - Left = 488 - Top = 88 - end - object tbl_RecepcionesAlbaran: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADOALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADOPRODUCTO' - DataType = datString - Size = 9 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'RecepcionesAlbaran' - IndexDefs = <> - Left = 208 - Top = 192 - end - object ds_RecepcionesAlbaran: TDADataSource - DataSet = tbl_RecepcionesAlbaran.Dataset - DataTable = tbl_RecepcionesAlbaran - Left = 208 - Top = 248 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 64 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas deleted file mode 100644 index 1216728..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uDataModuleRecepciones.pas +++ /dev/null @@ -1,131 +0,0 @@ -unit uDataModuleRecepciones; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, - uROServiceComponent, uRORemoteService, uBizRecepciones, uDARemoteDataAdapter, - uDAInterfaces; - -type - TdmRecepciones = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_Recepciones: TDACDSDataTable; - ds_Recepciones: TDADataSource; - tbl_RecepcionesAprobadas: TDACDSDataTable; - ds_RecepcionesAprobadas: TDADataSource; - tbl_RecepcionesPendientes: TDACDSDataTable; - ds_RecepcionesPendientes: TDADataSource; - tbl_RecepcionesAlbaran: TDACDSDataTable; - ds_RecepcionesAlbaran: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - private - { Private declarations } - public - function GetItems : IBizRecepciones; overload; - function GetItems(const AEstado : TInvRecepcionEstado) : IBizRecepciones; overload; - function GetItemsAlbaran : IBizRecepcionesAlbaran; overload; - function GetItemsAlbaran(const AEstado : TInvRecepcionAlbaranEstado) : IBizRecepcionesAlbaran; overload; - end; - -var - dmRecepciones: TdmRecepciones; - -implementation - -{$R *.DFM} - -uses - Forms, Windows, Controls, VARELA_Intf, uEditorPreview, - uDataTableUtils, uROTypes, cxControls; - - -procedure TdmRecepciones.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmRecepciones.GetItems: IBizRecepciones; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_Recepciones, dtLista); - dtLista.BusinessRulesID := BIZ_RECEPCIONES; - Result := (dtLista as IBizRecepciones); - finally - HideHourglassCursor; - end; -end; - -function TdmRecepciones.GetItems( - const AEstado: TInvRecepcionEstado): IBizRecepciones; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - - case AEstado of - tirPendiente : CloneDataTable(tbl_RecepcionesPendientes, dtLista); - tirAprobado : CloneDataTable(tbl_RecepcionesAprobadas, dtLista); - end; - - dtLista.BusinessRulesID := BIZ_RECEPCIONES; - Result := (dtLista as IBizRecepciones); - finally - HideHourglassCursor; - end; -end; - -function TdmRecepciones.GetItemsAlbaran: IBizRecepcionesAlbaran; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_RecepcionesAlbaran, dtLista); - dtLista.BusinessRulesID := BIZ_RECEPCIONESALBARAN; - Result := (dtLista as IBizRecepcionesAlbaran); - finally - HideHourglassCursor; - end; -end; - -function TdmRecepciones.GetItemsAlbaran(const AEstado: TInvRecepcionAlbaranEstado): IBizRecepcionesAlbaran; -var - dtLista: IBizRecepcionesAlbaran; -begin - ShowHourglassCursor; - try - dtLista := GetItemsAlbaran; - - with dtLista.DataTable.Where do - begin - Clear; - case AEstado of - tiraPendiente : AddCondition('ESTADOALBARAN', cEqual, 'P'); - tiraRecibido : AddCondition('ESTADOALBARAN', cEqual, 'R'); - end; - end; - - Result := dtLista; - finally - HideHourglassCursor; - end; -end; - -initialization - dmRecepciones := TdmRecepciones.Create(nil); - -finalization - FreeAndNil(dmRecepciones); - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm deleted file mode 100644 index 1bfb8a8..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.dfm +++ /dev/null @@ -1,907 +0,0 @@ -object fEditorAjustarRecepciones: TfEditorAjustarRecepciones - Left = 490 - Top = 337 - BorderStyle = bsDialog - Caption = 'Modificaci'#243'n de recepciones de productos' - ClientHeight = 536 - ClientWidth = 753 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 753 - Height = 73 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Modificaci'#243'n de recepciones de productos') - Comments.Strings = ( - '') - Gradient.FromColor = clHighlight - Gradient.ToColor = clWindow - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Bevel1: TBevel - Left = 11 - Top = 483 - Width = 730 - Height = 4 - Shape = bsBottomLine - end - object bAceptar: TButton - Left = 572 - Top = 496 - Width = 75 - Height = 25 - Caption = '&Aceptar' - ModalResult = 1 - TabOrder = 0 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 666 - Top = 496 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 1 - end - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 73 - Width = 753 - Height = 403 - ParentBackground = True - TabOrder = 2 - AutoContentSizes = [acsWidth, acsHeight] - object Bevel2: TBevel - Left = 22 - Top = 224 - Width = 50 - Height = 10 - Shape = bsBottomLine - end - object Label1: TLabel - Left = 22 - Top = 260 - Width = 86 - Height = 13 - Caption = 'Cantidad enviada:' - end - object Label2: TLabel - Left = 22 - Top = 335 - Width = 84 - Height = 13 - Caption = 'Cantidad por EDI:' - end - object Label3: TLabel - Left = 61 - Top = 364 - Width = 45 - Height = 13 - Caption = 'Cantidad:' - end - object edtEnv40: TcxDBMaskEdit - Left = 218 - Top = 258 - DataBinding.DataField = 'E40' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 - Width = 25 - end - object edtEnv38: TcxDBMaskEdit - Left = 114 - Top = 258 - DataBinding.DataField = 'E38' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 8 - Width = 25 - end - object edtEnv42: TcxDBMaskEdit - Left = 322 - Top = 258 - DataBinding.DataField = 'E42' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 10 - Width = 25 - end - object edtEnv44: TcxDBMaskEdit - Left = 426 - Top = 258 - DataBinding.DataField = 'E44' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 11 - Width = 25 - end - object edtEnv46: TcxDBMaskEdit - Left = 530 - Top = 258 - DataBinding.DataField = 'E46' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 12 - Width = 25 - end - object edtEnv48: TcxDBMaskEdit - Left = 634 - Top = 258 - DataBinding.DataField = 'E48' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 13 - Width = 25 - end - object edtRec38: TcxDBMaskEdit - Left = 112 - Top = 333 - DataBinding.DataField = 'R38' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 14 - Width = 98 - end - object edtRec40: TcxDBMaskEdit - Left = 216 - Top = 333 - DataBinding.DataField = 'R40' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 16 - Width = 98 - end - object edtRec42: TcxDBMaskEdit - Left = 320 - Top = 333 - DataBinding.DataField = 'R42' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 18 - Width = 98 - end - object edtRec44: TcxDBMaskEdit - Left = 424 - Top = 333 - DataBinding.DataField = 'R44' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 20 - Width = 98 - end - object edtRec46: TcxDBMaskEdit - Left = 528 - Top = 333 - DataBinding.DataField = 'R46' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 22 - Width = 98 - end - object edtRec48: TcxDBMaskEdit - Left = 632 - Top = 333 - DataBinding.DataField = 'R48' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 24 - Width = 98 - end - object edtRecR48: TcxCurrencyEdit - Left = 632 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 25 - Width = 98 - end - object edtRecR46: TcxCurrencyEdit - Left = 528 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 23 - Width = 98 - end - object edtRecR44: TcxCurrencyEdit - Left = 424 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 21 - Width = 98 - end - object edtRecR42: TcxCurrencyEdit - Left = 320 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 19 - Width = 98 - end - object edtRecR40: TcxCurrencyEdit - Left = 216 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 17 - Width = 98 - end - object edtRecR38: TcxCurrencyEdit - Left = 112 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 15 - Width = 98 - end - object edtFecha: TcxDBLabel - Left = 133 - Top = 28 - AutoSize = True - DataBinding.DataField = 'FECHA' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - end - object edtCentro: TcxDBLabel - Left = 185 - Top = 28 - AutoSize = True - DataBinding.DataField = 'FILIAL' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - end - object edtProducto: TcxDBLabel - Left = 133 - Top = 51 - AutoSize = True - DataBinding.DataField = 'PRODUCTO' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - end - object edtColor: TcxDBLabel - Left = 613 - Top = 51 - DataBinding.DataField = 'COLOR' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 118 - end - object edtAlbaran: TcxDBLabel - Left = 133 - Top = 104 - AutoSize = True - DataBinding.DataField = 'ALBARAN' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - end - object cbEstadoAlbaran: TcxComboBox - Left = 133 - Top = 127 - Properties.Items.Strings = ( - 'Ninguna' - 'Env'#237'o perdido' - 'Env'#237'o retrasado' - 'Env'#237'o devuelto' - 'Otros') - 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 = 5 - Text = 'cbEstadoAlbaran' - Width = 156 - end - object memEstadoAlbaran: TcxMemo - Left = 22 - Top = 172 - Lines.Strings = ( - 'memEstadoAlbaran') - 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 = 7 - Height = 46 - Width = 708 - end - object cbContabilizarAlbaran: TcxCheckBox - Left = 348 - Top = 127 - Caption = 'Contabilizar este albar'#225'n' - Properties.ImmediatePost = True - Properties.NullStyle = nssUnchecked - Properties.ValueChecked = 'S' - Properties.ValueUnchecked = 'N' - State = cbsGrayed - 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 = 6 - Width = 319 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group1: TdxLayoutGroup - Caption = 'Datos generales' - object dxLayoutControl1Group2: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item31: TdxLayoutItem - Caption = 'Fecha del movimiento:' - Control = edtFecha - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item17: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Centro:' - Control = edtCentro - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group3: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item32: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Producto:' - Control = edtProducto - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item33: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - Caption = 'Color:' - Control = edtColor - ControlOptions.MinWidth = 50 - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Group4: TdxLayoutGroup - Caption = 'Datos del albar'#225'n de env'#237'o' - object dxLayoutControl1Group8: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group7: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item1: TdxLayoutItem - Caption = 'Albar'#225'n de env'#237'o:' - Control = edtAlbaran - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group6: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item5: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Estado del env'#237'o' - Control = cbEstadoAlbaran - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item8: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'cxCheckBox1' - ShowCaption = False - Control = cbContabilizarAlbaran - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Item6: TdxLayoutItem - Caption = 'Observaciones sobre el albar'#225'n:' - CaptionOptions.AlignVert = tavTop - CaptionOptions.Layout = clTop - Control = memEstadoAlbaran - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Item9: TdxLayoutItem - Control = Bevel2 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group9: TdxLayoutGroup - Caption = 'New Group' - ShowCaption = False - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item16: TdxLayoutItem - Caption = 'Tallas:' - CaptionOptions.AlignHorz = taRightJustify - CaptionOptions.Layout = clTop - Offsets.Top = 2 - Control = Label1 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item11: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '38' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv38 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item10: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '40' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv40 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item12: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '42' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv42 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item13: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '44' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv44 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item14: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '46' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv46 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item15: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '48' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtEnv48 - ControlOptions.ShowBorder = False - end - end - end - object dxLayoutControl1Group5: TdxLayoutGroup - Caption = 'Datos de recepci'#243'n del env'#237'o' - LayoutDirection = ldHorizontal - object dxLayoutControl1Group16: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item23: TdxLayoutItem - Caption = 'Tallas:' - CaptionOptions.AlignHorz = taRightJustify - CaptionOptions.Layout = clTop - Offsets.Top = 2 - Control = Label2 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item30: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - CaptionOptions.Layout = clTop - Offsets.Top = 10 - ShowCaption = False - Control = Label3 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group10: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item2: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '38' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec38 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item29: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR38 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group11: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item3: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '40' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec40 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item28: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR40 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group12: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item4: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '42' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec42 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item27: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR42 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group13: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item20: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '44' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec44 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item26: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR44 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group14: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item21: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '46' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec46 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item25: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR46 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group15: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item22: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '48' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec48 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item24: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR48 - ControlOptions.ShowBorder = False - end - end - end - end - end - object dsDataSource: TDADataSource - Left = 200 - Top = 496 - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas deleted file mode 100644 index 633791b..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorAjustarRecepciones.pas +++ /dev/null @@ -1,352 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorAjustarRecepciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, JvExControls, JvComponent, - JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizRecepciones, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, - cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, - cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, - cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, - cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, - cxCheckBox, cxCalendar, cxLabel, cxDBLabel; - -type - IEditorAjustarRecepciones = interface - ['{549191AB-7CF0-464A-872B-ECBCD0088A25}'] - function GetItems : IBizRecepciones; - procedure SetItems (const AValue : IBizRecepciones); - property Items : IBizRecepciones read GetItems write SetItems; - end; - - TfEditorAjustarRecepciones = class(TForm, IEditorAjustarRecepciones) - bAceptar: TButton; - bCancelar: TButton; - JvgWizardHeader1: TJvgWizardHeader; - Bevel1: TBevel; - dsDataSource: TDADataSource; - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - dxLayoutControl1Group1: TdxLayoutGroup; - dxLayoutControl1Group2: TdxLayoutGroup; - dxLayoutControl1Group3: TdxLayoutGroup; - dxLayoutControl1Group4: TdxLayoutGroup; - dxLayoutControl1Group5: TdxLayoutGroup; - dxLayoutControl1Item9: TdxLayoutItem; - Bevel2: TBevel; - dxLayoutControl1Group8: TdxLayoutGroup; - dxLayoutControl1Item10: TdxLayoutItem; - edtEnv40: TcxDBMaskEdit; - dxLayoutControl1Group9: TdxLayoutGroup; - dxLayoutControl1Item11: TdxLayoutItem; - edtEnv38: TcxDBMaskEdit; - dxLayoutControl1Item12: TdxLayoutItem; - edtEnv42: TcxDBMaskEdit; - dxLayoutControl1Item13: TdxLayoutItem; - edtEnv44: TcxDBMaskEdit; - dxLayoutControl1Item14: TdxLayoutItem; - edtEnv46: TcxDBMaskEdit; - dxLayoutControl1Item15: TdxLayoutItem; - edtEnv48: TcxDBMaskEdit; - dxLayoutControl1Item16: TdxLayoutItem; - Label1: TLabel; - dxLayoutControl1Item2: TdxLayoutItem; - edtRec38: TcxDBMaskEdit; - dxLayoutControl1Item3: TdxLayoutItem; - edtRec40: TcxDBMaskEdit; - dxLayoutControl1Item4: TdxLayoutItem; - edtRec42: TcxDBMaskEdit; - dxLayoutControl1Item20: TdxLayoutItem; - edtRec44: TcxDBMaskEdit; - dxLayoutControl1Item21: TdxLayoutItem; - edtRec46: TcxDBMaskEdit; - dxLayoutControl1Item22: TdxLayoutItem; - edtRec48: TcxDBMaskEdit; - dxLayoutControl1Item23: TdxLayoutItem; - Label2: TLabel; - dxLayoutControl1Item24: TdxLayoutItem; - edtRecR48: TcxCurrencyEdit; - dxLayoutControl1Item25: TdxLayoutItem; - edtRecR46: TcxCurrencyEdit; - dxLayoutControl1Item26: TdxLayoutItem; - edtRecR44: TcxCurrencyEdit; - dxLayoutControl1Item27: TdxLayoutItem; - edtRecR42: TcxCurrencyEdit; - dxLayoutControl1Item28: TdxLayoutItem; - edtRecR40: TcxCurrencyEdit; - dxLayoutControl1Item29: TdxLayoutItem; - edtRecR38: TcxCurrencyEdit; - dxLayoutControl1Group10: TdxLayoutGroup; - dxLayoutControl1Group11: TdxLayoutGroup; - dxLayoutControl1Group12: TdxLayoutGroup; - dxLayoutControl1Group13: TdxLayoutGroup; - dxLayoutControl1Group14: TdxLayoutGroup; - dxLayoutControl1Group15: TdxLayoutGroup; - dxLayoutControl1Item30: TdxLayoutItem; - Label3: TLabel; - dxLayoutControl1Group16: TdxLayoutGroup; - edtFecha: TcxDBLabel; - dxLayoutControl1Item31: TdxLayoutItem; - edtCentro: TcxDBLabel; - dxLayoutControl1Item17: TdxLayoutItem; - edtProducto: TcxDBLabel; - dxLayoutControl1Item32: TdxLayoutItem; - edtColor: TcxDBLabel; - dxLayoutControl1Item33: TdxLayoutItem; - edtAlbaran: TcxDBLabel; - dxLayoutControl1Item1: TdxLayoutItem; - cbEstadoAlbaran: TcxComboBox; - dxLayoutControl1Item5: TdxLayoutItem; - memEstadoAlbaran: TcxMemo; - dxLayoutControl1Item6: TdxLayoutItem; - cbContabilizarAlbaran: TcxCheckBox; - dxLayoutControl1Item8: TdxLayoutItem; - dxLayoutControl1Group7: TdxLayoutGroup; - dxLayoutControl1Group6: TdxLayoutGroup; - procedure FormShow(Sender: TObject); - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure bAceptarClick(Sender: TObject); - private - FItems : IBizRecepciones; - FHayErrores : Boolean; - FAlbaranModificado : Boolean; - procedure CargarValores; - procedure SalvarValores; - procedure ModificarAlbaran; - protected - function GetItems : IBizRecepciones; - procedure SetItems (const AValue : IBizRecepciones); - public - property Items : IBizRecepciones read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleRecepciones; - -{$R *.dfm} - -function ShowEditorAjustarRecepciones (ABizObject : TDADataTableRules) : TModalResult; -var - AEditor: TfEditorAjustarRecepciones; -begin - AEditor := TfEditorAjustarRecepciones.Create(Application); - try - AEditor.Items := (ABizObject as IBizRecepciones); - Result := AEditor.ShowModal; - finally - AEditor.Release; - end; -end; - - -{ TfEditorCambioReferenciaGenerica } - -procedure TfEditorAjustarRecepciones.FormShow(Sender: TObject); -begin - FHayErrores := False; - FAlbaranModificado := False; - FItems.DataTable.Open; - - cbEstadoAlbaran.Enabled := Length(FItems.DataTable.FieldByName('ALBARAN').AsString) > 0; - cbContabilizarAlbaran.Enabled := cbEstadoAlbaran.Enabled; - memEstadoAlbaran.Enabled := cbEstadoAlbaran.Enabled; - - CargarValores; -end; - -function TfEditorAjustarRecepciones.GetItems: IBizRecepciones; -begin - Result := FItems; -end; - -procedure TfEditorAjustarRecepciones.SetItems( - const AValue: IBizRecepciones); -begin - FItems := AValue; - if Assigned(FItems) then - dsDataSource.DataTable := FItems.DataTable; -end; - -procedure TfEditorAjustarRecepciones.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then - begin - ADone := True; - with AViewInfo do begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); - end; - end; -end; - -procedure TfEditorAjustarRecepciones.bAceptarClick(Sender: TObject); -begin - ShowHourglassCursor; - Application.ProcessMessages; - try - SalvarValores; - FItems.DataTable.ApplyUpdates; - if FAlbaranModificado then - ModificarAlbaran; - finally - HideHourglassCursor; - end; - Close; -end; - -procedure TfEditorAjustarRecepciones.CargarValores; -begin - with FItems.DataTable do - begin - if FieldByName('R38').AsInteger <> FieldByName('RR38').AsInteger then - edtRecR38.Value := FieldByName('RR38').AsInteger - else - edtRecR38.Value := FieldByName('R38').AsInteger; - - if FieldByName('R40').AsInteger <> FieldByName('RR40').AsInteger then - edtRecR40.Value := FieldByName('RR40').AsInteger - else - edtRecR40.Value := FieldByName('R40').AsInteger; - - if FieldByName('R42').AsInteger <> FieldByName('RR42').AsInteger then - edtRecR42.Value := FieldByName('RR42').AsInteger - else - edtRecR42.Value := FieldByName('R42').AsInteger; - - if FieldByName('R44').AsInteger <> FieldByName('RR44').AsInteger then - edtRecR44.Value := FieldByName('RR44').AsInteger - else - edtRecR44.Value := FieldByName('R44').AsInteger; - - if FieldByName('R46').AsInteger <> FieldByName('RR46').AsInteger then - edtRecR46.Value := FieldByName('RR46').AsInteger - else - edtRecR46.Value := FieldByName('R46').AsInteger; - - if FieldByName('R48').AsInteger <> FieldByName('RR48').AsInteger then - edtRecR48.Value := FieldByName('RR48').AsInteger - else - edtRecR48.Value := FieldByName('R48').AsInteger; - - if Length(FieldByName('ESTADO_ALBARAN').AsString) = 0 then - cbEstadoAlbaran.Text := cbEstadoAlbaran.Properties.Items[0] - else - cbEstadoAlbaran.Text := FieldByName('ESTADO_ALBARAN').AsString; - - cbContabilizarAlbaran.Checked := (FieldByName('CONTABILIZAR_ALBARAN').AsString = 'S'); - memEstadoAlbaran.Lines.Clear; - if Length(FieldByName('OBSERVACIONES_ALBARAN').AsString) > 0 then - memEstadoAlbaran.Lines.Add(FieldByName('OBSERVACIONES_ALBARAN').AsString) - end; -end; - -procedure TfEditorAjustarRecepciones.SalvarValores; -var - aux : String; -begin - FAlbaranModificado := False; - with FItems.DataTable do - begin - Edit; - FieldByName('RR38').AsVariant := edtRecR38.Value; - FieldByName('RR40').AsVariant := edtRecR40.Value; - FieldByName('RR42').AsVariant := edtRecR42.Value; - FieldByName('RR44').AsVariant := edtRecR44.Value; - FieldByName('RR46').AsVariant := edtRecR46.Value; - FieldByName('RR48').AsVariant := edtRecR48.Value; - - if cbEstadoAlbaran.Text = cbEstadoAlbaran.Properties.Items[0] then - aux := '' - else - aux := cbEstadoAlbaran.Text; - - if FieldByName('ESTADO_ALBARAN').AsString <> aux then - begin - FAlbaranModificado := True; - FieldByName('ESTADO_ALBARAN').AsString := aux; - end; - - if cbContabilizarAlbaran.Checked then - aux := 'S' - else - aux := 'N'; - - if FieldByName('CONTABILIZAR_ALBARAN').AsString <> aux then - begin - FAlbaranModificado := True; - FieldByName('CONTABILIZAR_ALBARAN').AsString := aux; - end; - - FieldByName('OBSERVACIONES_ALBARAN').AsString := memEstadoAlbaran.Lines.Text; - - Post; - end; -end; - -procedure TfEditorAjustarRecepciones.ModificarAlbaran; -var - bm : TBookMark ; - AAlbaran : String; - AEstado : String; - AContabilizar : String; -begin - { Si se ha cambiado el albarán, hay - que cambiarlo en el resto de filas en las que aparezca } - - AAlbaran := FItems.DataTable.FieldByName('ALBARAN').AsString; - AEstado := FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString; - AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString; - - bm := FItems.DataTable.GetBookMark; - FItems.DataTable.DisableControls; - FItems.DataTable.DisableEventHandlers; - FItems.DataTable.LogChanges := False; - try - FItems.DataTable.Filter := 'ALBARAN = ''' + AAlbaran + ''''; - FItems.DataTable.Filtered := True; - FItems.DataTable.First; - - repeat - FItems.Edit; - FItems.DataTable.FieldByName('ESTADO_ALBARAN').AsString := AEstado; - FItems.DataTable.FieldByName('CONTABILIZAR_ALBARAN').AsString := AContabilizar; - FItems.Post; - FItems.DataTable.Next - until FItems.DataTable.EOF; - - FItems.DataTable.GotoBookMark(bm); - finally - FItems.DataTable.Filter := ''; - FItems.DataTable.Filtered := False; - FItems.DataTable.FreeBookMark(BM); - FItems.DataTable.LogChanges := True; - FItems.DataTable.EnableEventHandlers; - FItems.DataTable.EnableControls; - end; -end; - -initialization - RegisterEditor(IBizRecepciones, ShowEditorAjustarRecepciones, etItem); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm deleted file mode 100644 index f42f185..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.dfm +++ /dev/null @@ -1,1715 +0,0 @@ -inherited fEditorListaRecepciones: TfEditorListaRecepciones - Left = 448 - Top = 221 - Caption = 'Control de recepciones' - ClientHeight = 664 - ClientWidth = 816 - ExplicitWidth = 824 - ExplicitHeight = 698 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 816 - Caption = 'Control de recepciones' - ExplicitWidth = 816 - inherited Image1: TImage - Left = 789 - ExplicitLeft = 789 - end - end - inherited TBXDock: TTBXDock - Width = 816 - ExplicitWidth = 816 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 578 - object TBXSubmenuItem2: TTBXSubmenuItem [5] - Caption = 'Cambiar el estado' - DropdownCombo = True - object TBXItem37: TTBXItem - Action = actPendiente - end - object TBXItem36: TTBXItem - Action = actAprobado - end - end - object TBXSeparatorItem16: TTBXSeparatorItem [8] - end - object tbxiExpandir: TTBXItem [16] - Action = actExpandir - end - object tbxiContraer: TTBXItem [17] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [18] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 816 - end - inherited tbxFiltro: TTBXToolbar - Left = 578 - ExplicitLeft = 578 - end - end - inherited StatusBar: TStatusBar - Top = 645 - Width = 816 - ExplicitTop = 645 - ExplicitWidth = 816 - end - object JvTabBar1: TJvTabBar [3] - Left = 0 - Top = 204 - Width = 816 - Height = 29 - Cursor = crHandPoint - CloseButton = False - Painter = JvModernTabBarPainter1 - Images = SmallImages - Tabs = < - item - Caption = 'Pendientes' - Selected = True - ImageIndex = 26 - end - item - Caption = 'Aprobados' - ImageIndex = 25 - end - item - Caption = 'Todos' - end> - OnTabSelected = JvTabBar1TabSelected - end - inline frViewListaRecepciones1: TfrViewListaRecepciones [4] - Left = 0 - Top = 233 - Width = 816 - Height = 412 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 4 - ReadOnly = False - ExplicitTop = 233 - ExplicitWidth = 816 - ExplicitHeight = 412 - inherited cxGrid: TcxGrid - Width = 816 - Height = 412 - ExplicitWidth = 816 - ExplicitHeight = 412 - inherited cxGridView: TcxGridDBTableView - PopupMenu = GridPopupMenu - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = ',0;-,0' - Kind = skSum - Position = spFooter - Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA - end - item - Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' - Kind = skSum - Column = frViewListaRecepciones1.cxGridBandedViewDIFERENCIA - end> - inherited cxGridBandedViewAPROBADO: TcxGridDBColumn - IsCaptionAssigned = True - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - BuiltInReportLink = True - end - end - end - object TBXDockablePanel1: TTBXDockablePanel [5] - Left = 0 - Top = 76 - MaxClientHeight = 61 - Align = alTop - Caption = 'TBXDockablePanel1' - FloatingWidth = 128 - FloatingHeight = 128 - SupportedDocks = [dkStandardDock, dkMultiDock] - TabOrder = 5 - inline frViewParametrosCentro1: TfrViewParametrosCentro - Left = 0 - Top = 19 - Width = 425 - Height = 109 - Align = alLeft - TabOrder = 0 - ReadOnly = False - ExplicitTop = 19 - ExplicitWidth = 425 - ExplicitHeight = 109 - inherited dxLayoutControl1: TdxLayoutControl - Width = 425 - ExplicitWidth = 425 - inherited ccbCentro: TJvCheckedComboBox - Width = 392 - ExplicitWidth = 392 - end - end - end - object TBXLabel1: TTBXLabel - Left = 0 - Top = 0 - Width = 816 - Height = 19 - Margins.Left = 5 - Margins.Top = 5 - Align = alTop - Caption = 'Par'#225'metros de consulta' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentColor = True - ParentFont = False - Underline = True - end - object pnlAgrupaciones: TTBXAlignmentPanel - Left = 425 - Top = 19 - Width = 391 - Height = 109 - Align = alClient - AutoSize = True - TabOrder = 2 - object TBXButton3: TTBXButton - Tag = 3 - Left = 8 - Top = 10 - Width = 90 - Height = 21 - Action = actRefrescar - AutoSize = False - Caption = 'Consultar' - ImageIndex = 0 - TabOrder = 0 - Wrapping = twEndEllipsis - end - end - end - inherited EditorActionList: TActionList [6] - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Caption = 'Modificar recepci'#243'n' - OnExecute = actModificarExecute - end - inherited actEliminar: TAction - Enabled = False - Visible = False - end - inherited actDuplicar: TAction - Enabled = False - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - OnUpdate = actAnchoAutoUpdate - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - OnUpdate = actAnchoAutoUpdate - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - OnUpdate = actAnchoAutoUpdate - end - object actPendiente: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Pendiente' - GroupIndex = 1 - ImageIndex = 26 - OnExecute = actPendienteExecute - OnUpdate = actPendienteUpdate - end - object actAprobado: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Aprobado' - GroupIndex = 1 - ImageIndex = 25 - OnExecute = actAprobadoExecute - OnUpdate = actAprobadoUpdate - end - end - inherited SmallImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 - 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 - 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 - EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 - EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 - 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C - 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 - E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 - 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE - F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 - 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD - 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 - 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 - AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 - 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 - 051D2C6D56E60000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - Left = 331 - Bitmap = {} - end - inherited LargeImages: TPngImageList [8] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end> - Left = 251 - Top = 88 - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [9] - Left = 416 - Top = 224 - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] - Left = 368 - Top = 168 - end - inherited dsDataTable: TDADataSource [11] - Top = 136 - end - inherited GridPopupMenu: TPopupMenu - Left = 112 - Top = 128 - object Cambiarelestado1: TMenuItem [3] - Caption = 'Cambiar el estado a...' - object Pendiente1: TMenuItem - Action = actPendiente - AutoCheck = True - GroupIndex = 1 - end - object Enespera1: TMenuItem - Action = actAprobado - AutoCheck = True - GroupIndex = 1 - end - end - end - object JvModernTabBarPainter1: TJvModernTabBarPainter - BorderColor = clWindow - ControlDivideColor = cl3DDkShadow - DividerColor = clBtnShadow - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - DisabledFont.Charset = DEFAULT_CHARSET - DisabledFont.Color = clGrayText - DisabledFont.Height = -11 - DisabledFont.Name = 'MS Sans Serif' - DisabledFont.Style = [] - SelectedFont.Charset = DEFAULT_CHARSET - SelectedFont.Color = clHighlight - SelectedFont.Height = -11 - SelectedFont.Name = 'MS Sans Serif' - SelectedFont.Style = [fsBold] - Left = 320 - Top = 128 - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas deleted file mode 100644 index 008f4a6..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepciones.pas +++ /dev/null @@ -1,370 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorListaRecepciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uBizRecepciones, uViewListaRecepciones, uEditorGridBase, - JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, - uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, - JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, - TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, - JvExControls, JvComponent, JvNavigationPane, StdCtrls, TBXDkPanels, - uViewParametrosCentro, uViewParametrosControlGrid, uDAInterfaces; - -const - CM_SETFOCUSEDRECORD = WM_USER + 1002; - -type - IEditorListaRecepciones = interface(IEditorGridBase) - ['{5CF9C341-A9BB-4A42-A132-0145827FBD9C}'] - function GetItems: IBizRecepciones; - procedure SetItems(const Value: IBizRecepciones); - property Items: IBizRecepciones read GetItems - write SetItems; - end; - - TfEditorListaRecepciones = class(TfEditorGridBase, IEditorListaRecepciones) - JvTabBar1: TJvTabBar; - JvModernTabBarPainter1: TJvModernTabBarPainter; - actPendiente: TAction; - Cambiarelestado1: TMenuItem; - Pendiente1: TMenuItem; - Enespera1: TMenuItem; - TBXSubmenuItem2: TTBXSubmenuItem; - TBXSeparatorItem16: TTBXSeparatorItem; - TBXItem36: TTBXItem; - TBXItem37: TTBXItem; - actAprobado: TAction; - frViewListaRecepciones1: TfrViewListaRecepciones; - TBXDockablePanel1: TTBXDockablePanel; - frViewParametrosCentro1: TfrViewParametrosCentro; - TBXLabel1: TTBXLabel; - pnlAgrupaciones: TTBXAlignmentPanel; - TBXButton3: TTBXButton; - procedure FormShow(Sender: TObject); - procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); - procedure actModificarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure actAnchoAutoUpdate(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPendienteExecute(Sender: TObject); - procedure actPendienteUpdate(Sender: TObject); - procedure actAprobadoExecute(Sender: TObject); - procedure actAprobadoUpdate(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - protected - FItems : IBizRecepciones; - function GetItems: IBizRecepciones; - procedure SetItems(const Value: IBizRecepciones); - procedure CambiarEstado(const NuevoEstado: TInvRecepcionEstado); - function GetModified: Boolean; override; - procedure CMSetFocusedRecord(var Msg: TMessage); message CM_SETFOCUSEDRECORD; - public - property Items: IBizRecepciones read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, - uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, - uDataModuleRecepciones, uEditorDBBase; - - -{$R *.dfm} - -constructor TfEditorListaRecepciones.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewListaRecepciones1; -end; - -function TfEditorListaRecepciones.GetItems: IBizRecepciones; -begin - Result := FItems; -end; - -procedure TfEditorListaRecepciones.SetItems( - const Value: IBizRecepciones); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewListaRecepciones1.dsDataSource.DataTable := FItems.DataTable; - end; -end; - -procedure TfEditorListaRecepciones.FormShow(Sender: TObject); -begin - inherited; - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - //FItems.DataTable.Active := True; - - frViewParametrosCentro1.Refresh; - with (ViewGrid as IViewListaRecepciones) do - VerPendientes; -end; - -procedure TfEditorListaRecepciones.JvTabBar1TabSelected( - Sender: TObject; Item: TJvTabBarItem); -begin - inherited; - ShowHourglassCursor; - - Items.DataTable.Active := False; - - Application.ProcessMessages; - ViewGrid._FocusedView.BeginUpdate; - Application.ProcessMessages; - try - case Item.Index of - 0 : begin - Items := dmRecepciones.GetItems(tirPendiente); - (ViewGrid as IViewListaRecepciones).VerPendientes; - end; - - 1 : begin - Items := dmRecepciones.GetItems(tirAprobado); - (ViewGrid as IViewListaRecepciones).VerAprobados; - end; - - 2 : begin - Items := dmRecepciones.GetItems; - (ViewGrid as IViewListaRecepciones).VerTodos; - end; - end; - finally - dsDataTable.DataTable := Items.DataTable; - ViewGrid._FocusedView.EndUpdate; - HideHourglassCursor; - end; -end; - -procedure TfEditorListaRecepciones.actModificarExecute( - Sender: TObject); -begin - ViewGrid._FocusedView.BeginUpdate; - ViewGrid.SaveGridStatus; - try - FItems.Show; - finally - // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición - ShowHourglassCursor; - Application.ProcessMessages; - try - ViewGrid._FocusedView.EndUpdate; - ViewGrid.RestoreGridStatus; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaRecepciones.actExpandirExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorListaRecepciones.actContraerExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -procedure TfEditorListaRecepciones.actAnchoAutoExecute( - Sender: TObject); -begin - inherited; - ViewGrid.AjustarAncho; -end; - -procedure TfEditorListaRecepciones.actAnchoAutoUpdate( - Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and Assigned(ViewGrid) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorListaRecepciones.actModificarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) -end; - -procedure TfEditorListaRecepciones.actRefrescarExecute( - Sender: TObject); -var - ACentrosList : TStringList; - AWhere : String; - i : integer; -begin - AWhere := ''; - - {case (ViewGrid as IViewListaRecepciones).VistaActiva of - trvaPendiente, - trvaAprobado : AWhere := ' and' - else - AWhere := ''; - end;} - - AWhere := AWhere + ' CENTRO in ('; - - Items.DataTable.Active := False; - ACentrosList := frViewParametrosCentro1.CentrosSeleccionados; - - ShowHourglassCursor; - try - if ACentrosList.Count = 0 then - ShowMessage('Debe seleccionar al menos un centro en los parámetros de la consulta.') - else begin - with Items.DataTable.Where do - begin - Clear; - for i := 0 to ACentrosList.Count - 1 do - begin - if i > 0 then - AWhere := AWhere + ', '; - AWhere := AWhere + '''' + ACentrosList[i] + ''''; - end; - AWhere := AWhere + ')'; - AddText(AWhere, False); - end; - Items.DataTable.Active := True; - end; - finally - HideHourglassCursor; - FreeAndNIL(ACentrosList); - end; - - inherited; - - ViewGrid.ExpandirTodo; - ViewGrid.GotoFirst; -end; - -procedure TfEditorListaRecepciones.actPendienteExecute( - Sender: TObject); -begin - CambiarEstado(tirPendiente); -end; - -procedure TfEditorListaRecepciones.actPendienteUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = tirPendiente); -end; - -procedure TfEditorListaRecepciones.actAprobadoExecute( - Sender: TObject); -begin - CambiarEstado(tirAprobado); -end; - -procedure TfEditorListaRecepciones.actAprobadoUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - (ViewGrid._FocusedView.Controller.FocusedRow.Level <> 0)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = tirAprobado); -end; - -procedure TfEditorListaRecepciones.CambiarEstado( - const NuevoEstado: TInvRecepcionEstado); -var - ARecord: TcxCustomGridRecord; - i : Integer; - bm : TBookMark ; -begin - if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then - begin - ShowHourglassCursor; - bm := FItems.DataTable.GetBookMark; - //FItems.DataTable.DisableControls; <- No descomentar - ViewGrid._FocusedView.BeginUpdate; - try - for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do - begin - ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; - if (ARecord is TcxGridDataRow) then - begin - if (ARecord as TcxGridDataRow).CanFocus then - begin - (ARecord as TcxGridDataRow).Focused := True; - FItems.Edit; - FItems.Estado := NuevoEstado; - FItems.Post; - end; - end; - end; - FItems.DataTable.ApplyUpdates; - FItems.DataTable.GotoBookMark(bm); - finally - FItems.DataTable.FreeBookMark(BM); - //FItems.DataTable.EnableControls; <- No descomentar - ViewGrid._FocusedView.EndUpdate; - ViewGrid._FocusedView.Controller.ClearSelection; - PostMessage(Handle, CM_SETFOCUSEDRECORD, Integer(ViewGrid._FocusedView), - MakeLParam(ViewGrid._FocusedView.Controller.FocusedRowIndex, - ViewGrid._FocusedView.Controller.TopRowIndex)); - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaRecepciones.actEliminarExecute( - Sender: TObject); -begin -// inherited; -end; - - -function TfEditorListaRecepciones.GetModified: Boolean; -begin - Result := False; -end; - -procedure TfEditorListaRecepciones.CMSetFocusedRecord(var Msg: TMessage); -begin - TcxGridDBTableView(msg.WParam).Controller.FocusedRowIndex := Msg.LParamLo; - TcxGridDBTableView(msg.WParam).Controller.TopRowIndex := Msg.LParamHi; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm deleted file mode 100644 index 04d1789..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.dfm +++ /dev/null @@ -1,1576 +0,0 @@ -inherited fEditorListaRecepcionesAlbaran: TfEditorListaRecepcionesAlbaran - Left = 286 - Top = 168 - Width = 850 - Height = 671 - Caption = 'Control de '#225'lbaranes' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 842 - Caption = 'Control de albaranes' - inherited Image1: TImage - Left = 815 - end - end - inherited TBXDock: TTBXDock - Width = 842 - inherited tbxMain: TTBXToolbar - object TBXSeparatorItem16: TTBXSeparatorItem [7] - end - object tbxiExpandir: TTBXItem [15] - Action = actExpandir - end - object tbxiContraer: TTBXItem [16] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [17] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxFiltro: TTBXToolbar - Left = 344 - DockPos = 344 - end - end - inherited StatusBar: TStatusBar - Top = 618 - Width = 842 - end - object JvTabBar1: TJvTabBar [3] - Left = 0 - Top = 76 - Width = 842 - Height = 29 - Cursor = crHandPoint - CloseButton = False - Painter = JvModernTabBarPainter1 - Images = SmallImages - Tabs = < - item - Caption = 'Pendientes' - Selected = True - ImageIndex = 26 - end - item - Caption = 'Aprobados' - ImageIndex = 25 - end - item - Caption = 'Todos' - end> - OnTabSelected = JvTabBar1TabSelected - end - inline frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran [4] - Left = 0 - Top = 105 - Width = 842 - Height = 513 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 4 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 842 - Height = 513 - inherited cxGridView: TcxGridDBTableView - inherited cxGridViewESTADOPRODUCTO: TcxGridDBColumn - Caption = 'Situaci'#243'n' - end - inherited cxGridViewCODIGO: TcxGridDBColumn - Caption = 'C'#243'digo' - end - inherited cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - end - inherited cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - BuiltInReportLink = True - end - end - end - inherited EditorActionList: TActionList [5] - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Caption = 'Modificar recepci'#243'n' - Visible = False - end - inherited actEliminar: TAction - Enabled = False - Visible = False - end - inherited actDuplicar: TAction - Enabled = False - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - OnUpdate = actAnchoAutoUpdate - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - OnUpdate = actAnchoAutoUpdate - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - OnUpdate = actAnchoAutoUpdate - end - end - inherited SmallImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 - 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 - 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 - EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 - EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 - 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C - 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 - E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 - 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE - F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 - 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD - 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 - 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 - AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 - 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 - 051D2C6D56E60000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [8] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - inherited dsDataTable: TDADataSource [10] - Top = 136 - end - inherited GridPopupMenu: TPopupMenu - Left = 112 - Top = 128 - end - object JvModernTabBarPainter1: TJvModernTabBarPainter - BorderColor = clWindow - ControlDivideColor = cl3DDkShadow - DividerColor = clBtnShadow - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - DisabledFont.Charset = DEFAULT_CHARSET - DisabledFont.Color = clGrayText - DisabledFont.Height = -11 - DisabledFont.Name = 'MS Sans Serif' - DisabledFont.Style = [] - SelectedFont.Charset = DEFAULT_CHARSET - SelectedFont.Color = clHighlight - SelectedFont.Height = -11 - SelectedFont.Name = 'MS Sans Serif' - SelectedFont.Style = [fsBold] - Left = 320 - Top = 128 - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas deleted file mode 100644 index b6218d1..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uEditorListaRecepcionesAlbaran.pas +++ /dev/null @@ -1,184 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorListaRecepcionesAlbaran; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uBizRecepciones, uEditorGridBase, JvTabBar, uCustomView, uViewBase, - uViewGridBase, uViewGrid, Menus, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, - StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, StdCtrls, - uViewListaRecepcionesAlbaran; - - -type - IEditorListaRecepcionesAlbaran = interface(IEditorGridBase) - ['{143EEF14-E999-4570-85A6-3F06F0F22044}'] - function GetItems: IBizRecepcionesAlbaran; - procedure SetItems(const Value: IBizRecepcionesAlbaran); - property Items: IBizRecepcionesAlbaran read GetItems write SetItems; - end; - - TfEditorListaRecepcionesAlbaran = class(TfEditorGridBase, IEditorListaRecepcionesAlbaran) - JvTabBar1: TJvTabBar; - JvModernTabBarPainter1: TJvModernTabBarPainter; - TBXSeparatorItem16: TTBXSeparatorItem; - frViewListaRecepcionesAlbaran1: TfrViewListaRecepcionesAlbaran; - procedure FormShow(Sender: TObject); - procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure actAnchoAutoUpdate(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - protected - FItems : IBizRecepcionesAlbaran; - function GetItems: IBizRecepcionesAlbaran; - procedure SetItems(const Value: IBizRecepcionesAlbaran); - public - property Items: IBizRecepcionesAlbaran read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, - uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, - uDataModuleRecepciones, uEditorDBBase; - - -{$R *.dfm} - -constructor TfEditorListaRecepcionesAlbaran.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewListaRecepcionesAlbaran1; -end; - -function TfEditorListaRecepcionesAlbaran.GetItems: IBizRecepcionesAlbaran; -begin - Result := FItems; -end; - -procedure TfEditorListaRecepcionesAlbaran.SetItems(const Value: IBizRecepcionesAlbaran); -begin - FItems := Value; - if Assigned(FItems) then - begin - ShowHourglassCursor; - try - dsDataTable.DataTable := FItems.DataTable; - frViewListaRecepcionesAlbaran1.dsDataSource.DataTable := FItems.DataTable; - - if not FItems.DataTable.Active then - FItems.DataTable.Active := True; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaRecepcionesAlbaran.FormShow(Sender: TObject); -begin - inherited; - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - with (ViewGrid as IViewListaRecepcionesAlbaran) do - begin - AjustarAncho; - ContraerTodo; - GotoFirst; - end; -end; - -procedure TfEditorListaRecepcionesAlbaran.JvTabBar1TabSelected( - Sender: TObject; Item: TJvTabBarItem); -begin - inherited; - ShowHourglassCursor; - Items.DataTable.Active := False; - Application.ProcessMessages; - ViewGrid._FocusedView.BeginUpdate; - Application.ProcessMessages; - try - case Item.Index of - 0 : begin - Items := dmRecepciones.GetItemsAlbaran(tiraPendiente); - end; - - 1 : begin - Items := dmRecepciones.GetItemsAlbaran(tiraRecibido); - end; - - 2 : begin - Items := dmRecepciones.GetItemsAlbaran; - end; - end; - finally - dsDataTable.DataTable := Items.DataTable; - with (ViewGrid as IViewListaRecepcionesAlbaran) do - begin - ExpandirTodo; - AjustarAncho; - ContraerTodo; - _FocusedView.EndUpdate; - GotoFirst; - end; - HideHourglassCursor; - end; -end; - -procedure TfEditorListaRecepcionesAlbaran.actExpandirExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorListaRecepcionesAlbaran.actContraerExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoExecute( - Sender: TObject); -begin - inherited; - ViewGrid.AjustarAncho; -end; - -procedure TfEditorListaRecepcionesAlbaran.actAnchoAutoUpdate( - Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and Assigned(ViewGrid) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorListaRecepcionesAlbaran.actRefrescarExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; - ViewGrid.GotoFirst; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm deleted file mode 100644 index f7f43f4..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.dfm +++ /dev/null @@ -1,756 +0,0 @@ -object ModuleRecepciones: TModuleRecepciones - OldCreateOrder = True - DefaultAction = actRecepcion - Description = 'Control de recepci'#243'n de prendas' - ModuleMenu = MainMenu - ModuleName = 'Control de recepci'#243'n de prendas' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.3' - Left = 701 - Top = 547 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000001CC4944415478DA63FCFFFF3F032D - 0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B66C17FE5861A06 - 76F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD06A7F0C560C073F - 7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE410C38E584690116 - 79E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F3E405CF82A0561 - 011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF92C79A06410680 - 52113E794216381F7C883B9DDBCB33B81092A7381F6073212140523E0059805C - AC1093FB8166EE253A1FA05B303D4AF63FBEDC7DB7A18501682623D1F9009B05 - 59D76B187EEC78CFC0C0C109C41C703990A54033B15840209D235BC06838F3BF - B1B93DC3D1C279100B0484E096E0B680403A87590032BCBC328061CFBEF72841 - 73B47327D812AC1610CA07300B40865BDA6932648459A1A899B4F80EC3D1CAE5 - 609FB0F3E7635840301F80D3B9C10CB0E1C24A926071111E5606715E4E062D69 - 61880599532116C837A25AC0C8485C1247F601B2258E1A32600B12AC1F80C552 - C31EA2A622522C80C501C892E387AEC3E540119EFCC915C5D7F07C40AC052800 - 185C60FA4206238AE54866C173325916C02C41B200DD1CB805B40434B7000019 - B523EF6A240B860000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000004FB4944415478DA9D957B50547514 - C7BFF7B54F6079DC85856569C1911115F101E1F8C8473435E334D51F65FED38C - 4EE6A4A533CDD41F0565A6D230E39868F218922173CAD2EC9D35D604BE928780 - 4248C28ABB8AC0E2021BCBB2F7D9EFAE3BC60CF888737FBFFB9BFD3DCEE777CE - D97B0EA5AA2A2EECA30015064541148850E467681CB872955D6C309BAA199A02 - CDD0100591ACA9E8EB0FFCA93361FDAA3C20184258281A32280CE56F533151A8 - 08C048069B2C228380C2807102E8E98DCA4B74A617732C039D9E41E09F20B988 - 80AEBFBA3A141AAFAF5A44F60911450C42A43711407012A0BE942B63B8D825D1 - C973E6317A725B42181B95D0D6E4C2DA9D1FC2D5D886AEBF6F63E59AA5A083D7 - F0C5EE1DF0B34EAC7D310BBE811168E60B237E84463BCB176E165F9D04683C18 - 25C424E7729905AF01EC28409B517BB80A09BC01B37373B0BFF8083CAD2EBCB9 - 6F0B0C7A16DD4DB53877DE8B27376EC6CC2C2BA4E101B4FF7214AE8E0EF1B912 - 513709D05C69F65AD317F0E319DBD1E93142A9DF86B414E091393990C5107A3D - 5E58628DB024392004FCE038153DCD75A8FDC30BE7332588776441AE7D1C9DED - 18DC54A35A27015A2A4D04309FEF892B069FB4180D75C7106CD80A451234EBC1 - 720C28D6005992C85C8804940123CBE406EB70D29D8D817E0FB6E77E048F4B1C - 7CA9E23E80EBF1BB90E6588C14AB11474EFC0685FCADEE6EA4EEC4868AF490A8 - 6059DE5C74B86EA2A4F413BC9F5F819B3DF28301A9F67CA4D94CB89FC83209AA - 2811E3289CAC6B4169C5A728CA3D387DC048F7598C36550192198A4A6BC7A02A - 01283A1DDC010BDEFD690C458B3E9E3EA0EDE712E8E93ED81CCB8962ED90161A - 15FE2BDFC0773B80ADA752A70FD0D67F3DB411E3FC7CAC591D073ADA00853C2C - 66C377F60C86AF3660C30FE6E901C8122449C67B7B8E2323DE8B975734039638 - 4831D1A04DCB31547B053ED765BCF22387C2E900044146E9E71DA8AE65F0EC5C - 370A52CE21A48B8573C63866E5CCC7EDBAEBF0756B00F67F00520920C91476CD - DE9A669CEE12B172590E3ADD21083207DF0885998693D8B98DC6687D3F863B1B - B1E17B230A173E0C206117EC291AC0881DE54D38D13484ECEC34F0B106449938 - E8F51C4CC482D6DFBFC3BA471BE110AF41F04B78E394FD01808A0880DF85A4C4 - 5C3888055B8A4FE352BF8A34270F867CB92623516E36C2694B45DFD92A2CCBE8 - 039F988E5E3F8BF2E3E7F1CEC203F706345718BD7C5A36EFE17723C19A17FE92 - 87FD41EC3ED4827AB704DE1A0D2924C36864614B4A874DB88835AB66123752E8 - 76DF44F5675F3D1890E0981D06C426E4C36ED5933C2F223826E18343AD3876CA - 8DA7972491E09B21CA34B266A5223399D4179AC635CFC300CA0D0490C5BB490C - AC29CB11635010088A90640523A321ECA969C3534B529035C342E66492A3D470 - 67190637FA07505573146F2FD87F3F80DE1B6FCFE46FD8F6A2BBCF8EE6D6168C - 9152459152A93D5AD35E5464BCD3282DD18263599C397F01254B4B09409A1A70 - B1CCE0B52467F2BA394538FC6D3B7C837DE4204DD2824CFC2CDF19235DCB15AA - ACCD2BE14AA689D9C0A280FF1AAE2E69707DE51480C6B298718B7D9E3E2ED10E - 65A81D2C4B45942BFF298F80886F48D34679422A27F5DB3D844B9795D0A66AD5 - 301970802BD499A256F4DE100A6EB9C74881892CDE7D4D3C31750A67751013E2 - B1E3892275E72440C37EFA059663575EEF919FBFD5AB10F7DC5BD154202D67E9 - F518723A51F8D85BEA9713B7FD0B5B96F1EFAB7DEF880000000049454E44AE42 - 6082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actRecepcion: TAction - Category = 'Inventario' - Caption = 'Control de recepci'#243'n' - ImageIndex = 0 - OnExecute = actRecepcionExecute - end - object actRecepcionAlbaranes: TAction - Category = 'Inventario' - Caption = 'Control de albaranes' - ImageIndex = 1 - OnExecute = actRecepcionAlbaranesExecute - end - end - object MainMenu: TMainMenu - Tag = 500 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Inventario' - GroupIndex = 1 - ImageIndex = 4 - object Controldeventasenproceso1: TMenuItem - Tag = 110 - Action = actRecepcion - end - object Controldealbaranes1: TMenuItem - Tag = 600 - Action = actRecepcionAlbaranes - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F330000013A4944415478DA63BC5A21F39F81 - 48A0DDF1841199FFFFFF7F06469001CA0D3510911F3F18181EDC6198D7B98121 - 693EA658D6727C064015CEBEE4CDC0BC3D1562009A186E032A4AC00A196E5C65 - 98FDAB0C62C0744C31DC064404806D8101B001E59862380D38F890B840C41F06 - 04020C1BC01B882003400A40E05AA52CD6A8D66A7FCC883310910D981E25FB1F - 14260C0A2A0C0C1C1C60B1BB0D2D480644600F3098018C8633FF4F2E926748D5 - DB0A3704C5006C81083300A4D9D8DC9E21C1FA01432A5B1703838636D890BB1D - 3D1003F08692C18CFFFDAD910C42FC5C0C9316DF810B1FCD9CCA7077C5060206 - 00354747D980352BC908836910001994FCC995C15E9E81381778F9183128CB8A - 304C9EBE0B2C04F2CE99191A707D04E31A640898BE90C1088B7BB046A0DDE030 - 226800CC10240318A10E07B101D716EAE1AF47BD0C0000000049454E44AE4260 - 82} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F330000030F4944415478DA85D35F6C53551C - C0F1EFBDB7F7AEAEAD5BB775CA836E14D6CE2CCCCA26B39B1A9CBEB820E3C168 - 4C7C20C1277DF0C527252EFA26181CC14C08983461C4E1BF88C1180631FC892B - 0ECB4A906D256066270E57D6F5CFD6BBDDF6DEE35D595089915F72929393733E - F99DFC7E3FE97C3F080BA554C4AB4858A939C9359B711FAAAE713F61168DE54C - 66512FE84BAF758618312D5CB24A4192D13BDE14267648E7FB95EDB2A37293A7 - AE31A4B99CD6AF13B30E5FCB932D8B8B92BBBAA686627A8273277EBCD2D3BB21 - 5DD273CE4266EE8659CC9D6C7B431F2803B10157DCED0B3E5AFFD44EF2A94932 - 89B3F85B9BF9EEB333843A36D0B0D6CDE96F86A96D798EE0C676E247DFE3CFE4 - F4A517F7885019B8F269C588B32E10CE068698BE7C81A5F1F7512B34244942D1 - EEC3B2FF26F479AEEACF30AD3D4E77F12D8C8C117D794074DE01546F53B8D07C - 187F63888B1747595A365014194950866487466DFD43ECFE783FCF3BFAA81444 - 7BF7DC052C06223437B5E1D428C7ADB12F2195C0141E8459A0602C707C3449BD - 3188B324A2DBFAEF01C43E7F9D86D62EDC2E3796A930FFD35724A6F3CCDEFCFA - DE80690A3ED8DDCF8E2D0B3C10B0ABA585499D1CE7DAB5297EBBBEEF7F80800D - A8B02B32C985A493CD6BE2B8DC697A7BAA90E34926C6934C5DDFFBDFC04230C2 - 23EBDBF8301223362308B5FA592879C8DE9CA7DB374858BB4462CA20FDC7D1BB - 80432BC0FA70DECEC0DFB891BE4FA28C671CF8EA3C786BAAA82C59B4F3050F3E - 1CE4D8F0393AD84545F11FC0E583DA885ABD369C6F8AB0CEBF895251A7EFC018 - 3F8CA5E80856D9908FAD9D6EBB9432834347D86CEEFC7706BF1C54CAC09CFF08 - 866820974B93CA189C199DA1EB311FAAA6A0C81292E2E0C4F071B6686FDB8015 - DDF6D12A103FA0FEECF135B5A5D6BCCBB1530996F51CF67D8428816595274D58 - A6DD503624F27469432C658DD84BFB44FBED59D85FF56DC5FDF5DD8A5AED2AA4 - 7F2F77E0CA83DBAB74676F8BA8AACC8D9902D9ACF5FD2B7B45CFEA30C92F80FC - F4D549F3D5F95B4272A80824FE0E6975514EC8595BCB88D7CBD0B3EF88C32B67 - 7F01C53983F0FCEC7FE90000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000002334944415478DABDD4CD4B14611C - 07F0EF20CCBAA38B422042E5128BA2D641F3105628A4F50F04DEC4378636A14B - 88B8D0C18390872EBD1CD6160A111204CF42E42141BC847852B084243D0641AE - B08B31CDEF7166765E9E99791E151F186661BEF3FB3C0CFB7D14C33070994B21 - 703B77BDCFFCFD2526DB2F92B9397BB01AF6902C1B3432D32F90483CE1064BA5 - 397C1899C1E8C7F8CCF8E2812204B6BFFCC55EF2ACA3BFEC2AAC75A36A45C7D3 - 4FF199B383D620366CF3111FE464CE06BA06B161BB8F836048461EF40D42F108 - 85C3212F189191037FBF0A0C42B188C29FF10A18939103BF4F01E5B267108ECD - DD97272B604C4618A45A1496D26159368C6A11971105FBBEEE4797BA378D7E91 - CC85163F6AF7224BBAF804F2CE5ED1A3D13456A58A1F06BE1E518C6C3E1FF985 - F6A667601A8A54F1A3C0AA072BD07B3680DAD4E9E55AB411D30801634A1D09DE - FE5C015D683828506A1EA874CE196F9FA7A1B72C7B410B0D07054AED0709EBBA - D38BE17B3FA15F9D076A6A0328171429BE1F246CFEDD18DE2CFCE0BEB39E5B3C - 05AF4C0440A1E253A96D90B0EE9E366407EE72F3B489F567EF015545A279D60B - 2A8A789F59DEC232371A7072F20FA954923D4B265576EFCA3432903E332D7D60 - DF5B0B19101D7986D5D769D03415C96A3580DAE060A9CD79ED61E3B54AF1A540 - 01F4FEAD26067ECBB73A83C9708E3669D0851258A325A0599F93503F68CF3F1F - E84237D676028FA82A04BA679F1FB45076DFCA3A439C7FB26FEEC58036EA0379 - 331DF032D77F05B2A7E7C969F3360000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000003C64944415478DABD967B4C53571C - C7BFF7D25ADAF14644C40EB48A0614182A746ADC5466073EC77CA3A6262693A8 - 2B3A3715A73173260CFD07B486A9F3B5B06C3EA395971A256AA2F808C5075A10 - 6696A8640E1519D0C77D78EFA1B71115466BE73739F99D73EEEF9ECFF99D9CDF - 2F87E2791EEF539404A428AA4BA7423DBADCD5D2FDE8F2C7B705E30256E6533A - C19439A75D0E66330F7DAEF1AD0B56FFBE0245260E9953E93761E03E4F31F0E5 - DD01F9E8919B103428AC93C3FEB5CB3033FB6BD2FFE19B0262F38A8CF8B7D182 - FA8A1D04987B301F3CEB00C732E039079EDDAD45E3FD22241B58AA5B60E25C63 - 9730092846A3F974B96B4E826ED9934B609C00B694FC882A3387AFF6F1FF0D3C - 76631419BF389C8CC90BA7BD7154CAD06862DB9B1EB8E61EDD3A45A0DA5557C9 - 5853A7750F382F7D1476FC5A06F65C1A7A2ABFF4F330FE7288F40BD37E761F28 - 4A847672166EB2D868C9D294738EC6AC342D0E1EAFC0DEA2939E03BB13C7F160 - 580E0CC33A2D87DF4C17FE1FE0AB30BBD50EBB737CACFCB21781825F63453E98 - BA6238986011DB314D3E35818E4E43F1D378EF01198715BB7334F862DD11F40D - 11735549703C58A14C38505FB008A5C11BBD07B459DB51F85D1234BA0D989270 - 0556FF7E80AF52C8BD5628957A34EC5C8912FFC5DE018A17A2B9A50D9F2DDE0B - 63961C1F4709F9E61F013E301436B90CBE8A2FD160CC4649C09277078AB0C74F - 5A31677D25DA646A18922F604448356CAA300485FBE1438D1D8A804502D0E01D - E08387CD98BBE61C3217A4C2F2A71DCF5A85B2CCF9A0A51D50D86A71D4B00708 - FF1EF53BD7A0D45FEF39508CACA9D98A8CD567E11BDE071FC546A277B08A24BB - 0F4D23C82F00C565379135D68C786D0CEC7FE4E0C4076B3D03CE9A3442C82B16 - 63F42628FA8441DD3FD8556554AA5EF091C91017ADC619D369A4B2ABA10CB022 - 297E212A19AD7BC084D9DB71BC2A05D3C72790E4BE76E76F2CCDBB0AF5E04804 - 06AAE0A752402EF7412F851C4943A270B1FC1296658493D3E02839CC35B5EE01 - 87676CC3895BE33079DC70B28818E58D9A2758995F85BE0322D0D2DC468E5326 - A331B05F081E3F0FC596F98E8EAA23B4DB96FBEE01E3A6E7C2543301BAD17104 - 26D5C8AA7BFF202BEF3A6C2FDA60C88C15A2E7C00A2D521D81615134F113E536 - 3076EA669CBAA7C3C494A12E98B4FB6A4B137E3A701BBBD66B5D9B916AAA24B7 - 8143D337A2A46E0A3E1919430AB127720B38449783D28619D85AB0CF2398A41E - 036352BF256F129E633AEC6BFD0EFBCA37675F70EAB4E8D3BFAEF70C38687C36 - EACF17BC5374927A0224EF52B3D92B3C2426A2FB77E9FBD24BF00815F6456737 - F30000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 232 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas deleted file mode 100644 index 808042e..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uPluginControllerRecepciones.pas +++ /dev/null @@ -1,94 +0,0 @@ -unit uPluginControllerRecepciones; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList, uBizRecepciones; - -type - IMCRecepciones = interface(IInterface) - ['{3BA48DD2-A9D3-4168-9507-84065E8F839B}'] - end; - - TModuleRecepciones = class(TModuleController, IMCRecepciones) - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - SmallImages: TPngImageList; - actRecepcion: TAction; - Controldeventasenproceso1: TMenuItem; - actRecepcionAlbaranes: TAction; - Controldealbaranes1: TMenuItem; - procedure actRecepcionExecute(Sender: TObject); - procedure actRecepcionAlbaranesExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uDataModuleRecepciones, - uEditorListaRecepciones, uEditorListaRecepcionesAlbaran; - -function GetModule : TModuleController; -begin - Result := TModuleRecepciones.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleRecepciones.actRecepcionExecute(Sender: TObject); -var - aControl: IBizRecepciones; - aObj: IEditorListaRecepciones; -begin - aControl := dmRecepciones.GetItems(tirPendiente); - aObj := TfEditorListaRecepciones.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -procedure TModuleRecepciones.actRecepcionAlbaranesExecute(Sender: TObject); -var - aControl: IBizRecepcionesAlbaran; - aObj: IEditorListaRecepcionesAlbaran; -begin - aControl := dmRecepciones.GetItemsAlbaran(tiraPendiente); - aObj := TfEditorListaRecepcionesAlbaran.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleRecepciones); - -finalization - UnRegisterModuleClass(TModuleRecepciones); - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm deleted file mode 100644 index cfce401..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.dfm +++ /dev/null @@ -1,513 +0,0 @@ -inherited frViewListaRecepciones: TfrViewListaRecepciones - Width = 695 - Height = 477 - ExplicitWidth = 695 - ExplicitHeight = 477 - inherited cxGrid: TcxGrid - Width = 695 - Height = 477 - ExplicitWidth = 695 - ExplicitHeight = 477 - inherited cxGridView: TcxGridDBTableView - OnMouseDown = cxGridViewMouseDown - FilterBox.Visible = fvNever - OnCellDblClick = cxGridViewCellDblClick - DataController.KeyFieldNames = 'RecID' - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = ',0;-,0' - Kind = skSum - Position = spFooter - Column = cxGridBandedViewDIFERENCIA - end - item - Format = 'Diferencia: ,0 unidades;Diferencia: -,0 unidades' - Kind = skSum - Column = cxGridBandedViewDIFERENCIA - end> - OptionsCustomize.ColumnGrouping = True - OptionsSelection.MultiSelect = True - OptionsView.Footer = False - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfVisibleWhenExpanded - OptionsView.GroupRowStyle = grsOffice11 - Preview.Column = cxGridViewColumnOBSERVACIONES - Preview.Visible = True - Styles.Footer = cxStyleFooter - OnCustomDrawGroupCell = cxGridViewCustomDrawGroupCell - object cxGridBandedViewAPROBADO: TcxGridDBColumn - DataBinding.FieldName = 'APROBADO' - PropertiesClassName = 'TcxImageComboBoxProperties' - Properties.Alignment.Horz = taLeftJustify - Properties.Images = SmallImages - Properties.Items = < - item - Description = 'Aprobado' - ImageIndex = 0 - Value = 'S' - end - item - Description = 'Pendiente' - ImageIndex = 1 - Value = 'N' - end> - Properties.ReadOnly = True - Properties.ShowDescriptions = False - MinWidth = 15 - Width = 15 - IsCaptionAssigned = True - end - object cxGridBandedViewCENTRO: TcxGridDBColumn - DataBinding.FieldName = 'CENTRO' - Visible = False - Width = 44 - end - object cxGridBandedViewFILIAL: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'FILIAL' - Visible = False - GroupIndex = 0 - SortIndex = 0 - SortOrder = soAscending - Width = 64 - end - object cxGridBandedViewCODIGO: TcxGridDBColumn - DataBinding.FieldName = 'CODIGO' - Visible = False - OnGetDataText = cxGridBandedViewCODIGOGetDataText - OnGetDisplayText = cxGridBandedViewCODIGOGetDisplayText - GroupIndex = 1 - SortIndex = 1 - SortOrder = soAscending - Width = 32 - end - object cxGridBandedViewPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'PRODUCTO' - Visible = False - Width = 76 - end - object cxGridBandedViewCOLOR: TcxGridDBColumn - DataBinding.FieldName = 'COLOR' - Visible = False - Width = 49 - end - object cxGridBandedViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxDateEditProperties' - SortIndex = 2 - SortOrder = soAscending - Width = 49 - end - object cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn - DataBinding.FieldName = 'ESTADO_ALBARAN' - Visible = False - Width = 94 - end - object cxGridBandedViewALBARAN: TcxGridDBColumn - Caption = 'Albar'#225'n' - DataBinding.FieldName = 'ALBARAN' - OnGetDisplayText = cxGridBandedViewALBARANGetDisplayText - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 71 - end - object cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn - DataBinding.FieldName = 'CONTABILIZAR_ALBARAN' - Visible = False - Width = 20 - end - object cxGridBandedViewE38: TcxGridDBColumn - DataBinding.FieldName = 'E38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 36 - end - object cxGridBandedViewE40: TcxGridDBColumn - DataBinding.FieldName = 'E40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 35 - end - object cxGridBandedViewE42: TcxGridDBColumn - DataBinding.FieldName = 'E42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 34 - end - object cxGridBandedViewE44: TcxGridDBColumn - DataBinding.FieldName = 'E44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 35 - end - object cxGridBandedViewE46: TcxGridDBColumn - DataBinding.FieldName = 'E46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 35 - end - object cxGridBandedViewE48: TcxGridDBColumn - DataBinding.FieldName = 'E48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEnviado - Styles.OnGetContentStyle = cxGridBandedViewALBARANStylesGetContentStyle - Width = 36 - end - object cxGridBandedViewENVIADO: TcxGridDBColumn - Caption = 'Enviado' - DataBinding.FieldName = 'ENVIADO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSubtotal - Width = 36 - end - object cxGridBandedViewR38: TcxGridDBColumn - DataBinding.FieldName = 'R38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewR40: TcxGridDBColumn - DataBinding.FieldName = 'R40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewR42: TcxGridDBColumn - DataBinding.FieldName = 'R42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewR44: TcxGridDBColumn - DataBinding.FieldName = 'R44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewR46: TcxGridDBColumn - DataBinding.FieldName = 'R46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewR48: TcxGridDBColumn - DataBinding.FieldName = 'R48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewRECIBIDO: TcxGridDBColumn - DataBinding.FieldName = 'RECIBIDO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Visible = False - HeaderAlignmentHorz = taRightJustify - Width = 25 - end - object cxGridBandedViewRR38: TcxGridDBColumn - Caption = 'R38' - DataBinding.FieldName = 'RR38' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR38GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR38StylesGetContentStyle - Width = 34 - end - object cxGridBandedViewRR40: TcxGridDBColumn - Caption = 'R40' - DataBinding.FieldName = 'RR40' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR40GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR40StylesGetContentStyle - Width = 35 - end - object cxGridBandedViewRR42: TcxGridDBColumn - Caption = 'R42' - DataBinding.FieldName = 'RR42' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR42GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR42StylesGetContentStyle - Width = 35 - end - object cxGridBandedViewRR44: TcxGridDBColumn - Caption = 'R44' - DataBinding.FieldName = 'RR44' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR44GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR44StylesGetContentStyle - Width = 35 - end - object cxGridBandedViewRR46: TcxGridDBColumn - Caption = 'R46' - DataBinding.FieldName = 'RR46' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR46GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR46StylesGetContentStyle - Width = 35 - end - object cxGridBandedViewRR48: TcxGridDBColumn - Caption = 'R48' - DataBinding.FieldName = 'RR48' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - OnGetDisplayText = cxGridBandedViewRR48GetDisplayText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleRecibido - Styles.OnGetContentStyle = cxGridBandedViewRR48StylesGetContentStyle - Width = 35 - end - object cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn - Caption = 'Recibido' - DataBinding.FieldName = 'RECIBIDO_RECT' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridBandedViewRECIBIDO_RECTGetDataText - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleSubtotal - Width = 20 - end - object cxGridBandedViewDIFERENCIA: TcxGridDBColumn - Caption = 'Diferencia' - DataBinding.FieldName = 'DIFERENCIA' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridBandedViewDIFERENCIAGetDataText - HeaderAlignmentHorz = taRightJustify - HeaderGlyphAlignmentHorz = taRightJustify - Width = 50 - end - object cxGridViewColumnOBSERVACIONES: TcxGridDBColumn - Caption = 'OBSERVACIONES' - DataBinding.FieldName = 'OBSERVACIONES_ALBARAN' - PropertiesClassName = 'TcxMemoProperties' - end - end - end - inherited dsDataSource: TDADataSource - Top = 120 - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageFooter.Font.Color = clBlack - PrinterPage.PageFooter.Font.Height = -12 - PrinterPage.PageFooter.Font.Name = 'Tahoma' - PrinterPage.PageFooter.Font.Style = [] - PrinterPage.PageFooter.LeftTitle.Strings = ( - 'VARELA IMAGEN Y DISE'#209'O S.L.') - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageHeader.Font.Color = clBlack - PrinterPage.PageHeader.Font.Height = -15 - PrinterPage.PageHeader.Font.Name = 'Tahoma' - PrinterPage.PageHeader.Font.Style = [] - PrinterPage.PageHeader.LeftTitle.Strings = ( - 'CONTROL DE RECEPCI'#211'N') - PrinterPage.PageHeader.RightTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage.ScaleMode = smFit - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 38877.461868113420000000 - ShrinkToPageWidth = True - OptionsCards.Shadow.Depth = 0 - OptionsExpanding.ExpandGroupRows = True - OptionsFormatting.SuppressBackgroundBitmaps = True - OptionsFormatting.UseNativeStyles = True - OptionsFormatting.ConsumeSelectionStyle = True - OptionsLevels.Unwrap = True - OptionsRefinements.TransparentGraphics = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.ExpandButtons = False - OptionsView.FilterBar = False - StyleRepository = cxStyleRepositoryInforme - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - OnInitializeCell = dxComponentPrinterLink1InitializeCell - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleEnviado: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleRecibido: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleSubtotal: TcxStyle - AssignedValues = [svColor] - Color = 14803425 - end - object cxStyleCantidadRectificada: TcxStyle - AssignedValues = [svTextColor] - TextColor = 2129152 - end - object cxStyle1: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsStrikeOut] - TextColor = clGray - end - object cxStyleFooter: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 395 - Top = 80 - Bitmap = {} - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 112 - Top = 48 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas deleted file mode 100644 index 080d655..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepciones.pas +++ /dev/null @@ -1,595 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewListaRecepciones; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, - dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, - dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, - cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, - cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, - dxPScxCommon, dxPScxGridLnk, cxMemo, uDAInterfaces; - -type - TvRecepcionVistaActiva = (trvaPendiente, trvaAprobado, trvaTodos); - - IViewListaRecepciones = interface(IViewGrid) - ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - - function GetVistaActiva : TvRecepcionVistaActiva; - property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; - end; - - TfrViewListaRecepciones = class(TfrViewGrid, IViewListaRecepciones) - cxGridBandedViewCENTRO: TcxGridDBColumn; - cxGridBandedViewFILIAL: TcxGridDBColumn; - cxGridBandedViewCODIGO: TcxGridDBColumn; - cxGridBandedViewPRODUCTO: TcxGridDBColumn; - cxGridBandedViewCOLOR: TcxGridDBColumn; - cxGridBandedViewFECHA: TcxGridDBColumn; - cxGridBandedViewALBARAN: TcxGridDBColumn; - cxGridBandedViewE38: TcxGridDBColumn; - cxGridBandedViewE40: TcxGridDBColumn; - cxGridBandedViewE42: TcxGridDBColumn; - cxGridBandedViewE44: TcxGridDBColumn; - cxGridBandedViewE46: TcxGridDBColumn; - cxGridBandedViewE48: TcxGridDBColumn; - cxGridBandedViewENVIADO: TcxGridDBColumn; - cxGridBandedViewR38: TcxGridDBColumn; - cxGridBandedViewR40: TcxGridDBColumn; - cxGridBandedViewR42: TcxGridDBColumn; - cxGridBandedViewR44: TcxGridDBColumn; - cxGridBandedViewR46: TcxGridDBColumn; - cxGridBandedViewR48: TcxGridDBColumn; - cxGridBandedViewRECIBIDO: TcxGridDBColumn; - cxGridBandedViewDIFERENCIA: TcxGridDBColumn; - cxGridBandedViewESTADO_ALBARAN: TcxGridDBColumn; - cxGridBandedViewCONTABILIZAR_ALBARAN: TcxGridDBColumn; - cxGridBandedViewRR38: TcxGridDBColumn; - cxGridBandedViewRR40: TcxGridDBColumn; - cxGridBandedViewRR42: TcxGridDBColumn; - cxGridBandedViewRR44: TcxGridDBColumn; - cxGridBandedViewRR46: TcxGridDBColumn; - cxGridBandedViewRR48: TcxGridDBColumn; - cxGridBandedViewRECIBIDO_RECT: TcxGridDBColumn; - cxGridBandedViewAPROBADO: TcxGridDBColumn; - cxStyleEnviado: TcxStyle; - cxStyleRecibido: TcxStyle; - cxStyleSubtotal: TcxStyle; - SmallImages: TPngImageList; - cxStyleCantidadRectificada: TcxStyle; - cxStyle1: TcxStyle; - cxStyleFooter: TcxStyle; - dxComponentPrinterLink1: TdxGridReportLink; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxGridViewColumnOBSERVACIONES: TcxGridDBColumn; - procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewALBARANGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR40GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR42GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR44GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR46GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR48GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewRR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridBandedViewALBARANStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewCustomDrawGroupCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableCellViewInfo; - var ADone: Boolean); - procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); - procedure cxGridBandedViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure cxGridBandedViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridBandedViewRECIBIDO_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure cxGridBandedViewDIFERENCIAGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); - protected - FTipo : String; - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - function GetVistaActiva : TvRecepcionVistaActiva; - public - procedure Preview; override; - procedure Print; override; - procedure PrintSetup; override; - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - property VistaActiva : TvRecepcionVistaActiva read GetVistaActiva; - end; - - -implementation - -uses - uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, - uViewGridBase, cxGridRows; - -{$R *.dfm} - -procedure TfrViewListaRecepciones.cxGridViewMouseDown( - Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, - Y: Integer); -var - HT: TcxCustomGridHitTest; - ALevelIndex, AGroupIndex, I, AIndex: Integer; - AList: TList; - DC: TcxGridDBDataController; -begin - inherited; - HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); - if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) - and not (HT is TcxGridExpandButtonHitTest) then - begin - DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; - AList := TList.Create; - ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; - if ALevelIndex > 0 then - begin - ShowHourglassCursor; - TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; - try - AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; - DC.Groups.LoadRecordIndexes(AList, AGroupIndex); - for I := 0 to AList.Count - 1 do - begin - AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); - DC.SelectRows(AIndex, AIndex); - end; - finally - FreeAndNil(AList); - TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; - HideHourglassCursor; - end; - end; - end; -end; - -procedure TfrViewListaRecepciones.VerAprobados; -begin - FTipo := 'S'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaRecepciones.VerPendientes; -begin - FTipo := 'N'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaRecepciones.VerTodos; -begin - FTipo := ''; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); - cxGridBandedViewAPROBADO.Visible := True; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewALBARANGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - if Length(VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index])) > 0 then - AText := AText + ' (' + VarToStr(ARecord.Values[cxGridBandedViewESTADO_ALBARAN.Index]) + ')'; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR38.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR40GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR40.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR42GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR42.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR44GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR44.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR46GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR46.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR48GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridBandedViewR48.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR38.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR40.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR42.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR44.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR46.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridBandedViewR48.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewALBARANStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - - if VarToStr(ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]) = 'N' then - AStyle := cxStyle1; -end; - -procedure TfrViewListaRecepciones.cxGridViewCustomDrawGroupCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean); -var - ARecIndex: Integer; - Val1: string; -begin - inherited; - - if TcxGridGroupCellViewInfo(AViewInfo).GridRecord.GroupedColumn = cxGridBandedViewFILIAL then - begin - ARecIndex := AViewInfo.GridRecord.RecordIndex; - Val1 := Sender.DataController.DisplayTexts[ARecIndex, cxGridBandedViewFILIAL.Index]; - AViewInfo.Text := 'Centro: ' + Val1; - end; -end; - - -procedure TfrViewListaRecepciones.cxGridViewCellDblClick( - Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); -begin - inherited; - if Assigned(FOnDblClick) then - FOnDblClick(Sender); -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Val1, Val2: string; -begin - inherited; - - Val1 := AText + ' ' + Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewPRODUCTO.Index]; - Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridBandedViewCOLOR.Index]; - AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; -end; - -procedure TfrViewListaRecepciones.Preview; -begin - inherited; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewListaRecepciones.Print; -begin - inherited; - dxComponentPrinterLink1.Print(True, nil); -end; - -procedure TfrViewListaRecepciones.PrintSetup; -begin - inherited; - dxComponentPrinterLink1.PageSetup; -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewRECIBIDO_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Total : Double; -begin - inherited; - - Total := 0; - with Sender.GridView.DataController do - begin - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR38.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR40.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR42.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR44.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR46.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRR48.Index], 0); - end; - AText := FloatToStr(Total); -end; - -procedure TfrViewListaRecepciones.cxGridBandedViewDIFERENCIAGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Total : Double; -begin - inherited; - with Sender.GridView.DataController do - begin - Total := StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewRECIBIDO_RECT.Index], 0); - Total := Total - StrToFloatDef(DisplayTexts[ARecordIndex, cxGridBandedViewENVIADO.Index], 0); - end; - AText := FloatToStr(Total); -end; - -procedure TfrViewListaRecepciones.dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); -var - aux : string; -begin - inherited; - if Assigned(ARecord) then - begin - aux := ARecord.Values[cxGridBandedViewCONTABILIZAR_ALBARAN.Index]; - if aux = 'N' then - begin - AnItem.Font.Style := cxStyle1.Font.Style; - AnItem.Font.Color := cxStyle1.Font.Color; - end; - end; -end; - -procedure TfrViewListaRecepciones.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - - if (Length(FTIPO) > 0) then - begin - FNivelFiltrado := AItemList.AddItemList(fboAnd); - FNivelFiltrado.AddItem(cxGridBandedViewAPROBADO, foEqual, FTIPO, FTIPO); - end; - - if cxGridView.DataController.Filter.IsEmpty - then cxGridView.DataController.Filter.Active := False - else cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -function TfrViewListaRecepciones.GetVistaActiva: TvRecepcionVistaActiva; -begin - if FTipo = 'N' then - Result := trvaPendiente - else if FTipo = 'S' then - Result := trvaAprobado - else - Result := trvaTodos; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm deleted file mode 100644 index 8d07c37..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.dfm +++ /dev/null @@ -1,262 +0,0 @@ -inherited frViewListaRecepcionesAlbaran: TfrViewListaRecepcionesAlbaran - Width = 695 - Height = 477 - inherited cxGrid: TcxGrid - Width = 695 - Height = 477 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - DataController.KeyFieldNames = 'Albaran;Codigo;Color' - OptionsCustomize.ColumnGrouping = True - OptionsSelection.MultiSelect = True - OptionsView.Footer = False - OptionsView.GridLines = glHorizontal - OptionsView.GroupRowStyle = grsOffice11 - Preview.Visible = True - Styles.Footer = cxStyleFooter - object cxGridViewRecID: TcxGridDBColumn - DataBinding.FieldName = 'RecID' - Visible = False - end - object cxGridViewALBARAN: TcxGridDBColumn - DataBinding.FieldName = 'ALBARAN' - Visible = False - OnGetDataText = cxGridViewALBARANGetDataText - GroupIndex = 0 - Width = 63 - end - object cxGridViewESTADOALBARAN: TcxGridDBColumn - DataBinding.FieldName = 'ESTADOALBARAN' - Visible = False - Width = 21 - end - object cxGridViewFILIAL: TcxGridDBColumn - DataBinding.FieldName = 'FILIAL' - Visible = False - Width = 111 - end - object cxGridViewESTADOPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'ESTADOPRODUCTO' - Width = 35 - end - object cxGridViewCODIGO: TcxGridDBColumn - DataBinding.FieldName = 'CODIGO' - Width = 43 - end - object cxGridViewPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'PRODUCTO' - Width = 143 - end - object cxGridViewCOLOR: TcxGridDBColumn - DataBinding.FieldName = 'COLOR' - Width = 35 - end - object cxGridViewE38: TcxGridDBColumn - DataBinding.FieldName = 'E38' - Width = 38 - end - object cxGridViewE40: TcxGridDBColumn - DataBinding.FieldName = 'E40' - Width = 38 - end - object cxGridViewE42: TcxGridDBColumn - DataBinding.FieldName = 'E42' - Width = 36 - end - object cxGridViewE44: TcxGridDBColumn - DataBinding.FieldName = 'E44' - Width = 39 - end - object cxGridViewE46: TcxGridDBColumn - DataBinding.FieldName = 'E46' - Width = 37 - end - object cxGridViewE48: TcxGridDBColumn - DataBinding.FieldName = 'E48' - Width = 37 - end - end - end - inherited dsDataSource: TDADataSource - Top = 120 - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageFooter.Font.Color = clBlack - PrinterPage.PageFooter.Font.Height = -12 - PrinterPage.PageFooter.Font.Name = 'Tahoma' - PrinterPage.PageFooter.Font.Style = [] - PrinterPage.PageFooter.LeftTitle.Strings = ( - 'VARELA IMAGEN Y DISE'#209'O S.L.') - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageHeader.Font.Color = clBlack - PrinterPage.PageHeader.Font.Height = -15 - PrinterPage.PageHeader.Font.Name = 'Tahoma' - PrinterPage.PageHeader.Font.Style = [] - PrinterPage.PageHeader.LeftTitle.Strings = ( - 'CONTROL DE ALBARANES') - PrinterPage.PageHeader.RightTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage.ScaleMode = smFit - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.Caption = 'Informe nuevo' - ReportDocument.CreationDate = 38877.461868113420000000 - ShrinkToPageWidth = True - OptionsCards.Shadow.Depth = 0 - OptionsExpanding.ExpandGroupRows = True - OptionsFormatting.SuppressBackgroundBitmaps = True - OptionsFormatting.UseNativeStyles = True - OptionsFormatting.ConsumeSelectionStyle = True - OptionsLevels.Unwrap = True - OptionsRefinements.TransparentGraphics = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.ExpandButtons = False - OptionsView.FilterBar = False - StyleRepository = cxStyleRepositoryInforme - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleEnviado: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleRecibido: TcxStyle - AssignedValues = [svColor] - Color = 16119285 - end - object cxStyleSubtotal: TcxStyle - AssignedValues = [svColor] - Color = 14803425 - end - object cxStyleCantidadRectificada: TcxStyle - AssignedValues = [svTextColor] - TextColor = 2129152 - end - object cxStyle1: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsStrikeOut] - TextColor = clGray - end - object cxStyleFooter: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 395 - Top = 80 - Bitmap = {} - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 112 - Top = 48 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas b/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas deleted file mode 100644 index 0ef731b..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Cliente/uViewListaRecepcionesAlbaran.pas +++ /dev/null @@ -1,111 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewListaRecepcionesAlbaran; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid, uBizRecepciones, dxPSGlbl, - dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, - dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, - cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, - cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, - dxPScxCommon, dxPScxGridLnk, cxMemo; - -type - IViewListaRecepcionesAlbaran = interface(IViewGrid) - ['{F0B4B97B-158B-4FD8-B3F1-8ECAC7AE40D5}'] - end; - - TfrViewListaRecepcionesAlbaran = class(TfrViewGrid, IViewListaRecepcionesAlbaran) - cxStyleEnviado: TcxStyle; - cxStyleRecibido: TcxStyle; - cxStyleSubtotal: TcxStyle; - SmallImages: TPngImageList; - cxStyleCantidadRectificada: TcxStyle; - cxStyle1: TcxStyle; - cxStyleFooter: TcxStyle; - dxComponentPrinterLink1: TdxGridReportLink; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxGridViewRecID: TcxGridDBColumn; - cxGridViewALBARAN: TcxGridDBColumn; - cxGridViewESTADOALBARAN: TcxGridDBColumn; - cxGridViewFILIAL: TcxGridDBColumn; - cxGridViewESTADOPRODUCTO: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewE38: TcxGridDBColumn; - cxGridViewE40: TcxGridDBColumn; - cxGridViewE42: TcxGridDBColumn; - cxGridViewE44: TcxGridDBColumn; - cxGridViewE46: TcxGridDBColumn; - cxGridViewE48: TcxGridDBColumn; - procedure cxGridViewALBARANGetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - public - procedure Preview; override; - procedure Print; override; - procedure PrintSetup; override; - end; - - -implementation - -uses - uDataModuleRecepciones, DateUtils, cxGridDBDataDefinitions, - uViewGridBase, cxGridRows; - -{$R *.dfm} -procedure TfrViewListaRecepcionesAlbaran.Preview; -begin - inherited; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewListaRecepcionesAlbaran.Print; -begin - inherited; - dxComponentPrinterLink1.Print(True, nil); -end; - -procedure TfrViewListaRecepcionesAlbaran.PrintSetup; -begin - inherited; - dxComponentPrinterLink1.PageSetup; -end; - -procedure TfrViewListaRecepcionesAlbaran.cxGridViewALBARANGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - ARecIndex: Integer; - Val1: string; -begin - inherited; - - if Assigned(Sender) then - begin - Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewALBARAN.Index]; - AText := Val1; - Val1 := cxGridView.DataController.Values[ARecordIndex, cxGridViewFILIAL.Index]; - AText := AText + ' - Destino: ' + Val1; - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup deleted file mode 100644 index bb8123f..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - ..\..\Base\BaseD10.bdsproj - ..\..\ControlesBase\ControlesBaseD10.bdsproj - ..\Parametros\Cliente\Parametros.bdsproj - ..\..\Usuarios\Usuarios.bdsproj - ..\..\Configuracion\Configuracion.bdsproj - Cliente\Recepciones.bdsproj - ..\..\Cliente\AdminPV.bdsproj - ..\..\Servidor\AdminPV_Server.bdsproj - BaseD10.bpl ControlesBaseD10.bpl Parametros.bpl Usuarios.bpl Configuracion.bpl Recepciones.bpl AdminPV.exe AdminPV_Server.exe - - - - diff --git a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local b/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local deleted file mode 100644 index b451b7b..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/RecepcionesGroup.bdsgroup.local +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas b/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas deleted file mode 100644 index b9531a4..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Reglas/uBizRecepciones.pas +++ /dev/null @@ -1,85 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uBizRecepciones; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; - - -const - BIZ_RECEPCIONES = 'Client.Recepciones'; - BIZ_RECEPCIONESALBARAN = 'Client.RecepcionesAlbaran'; - -type - TInvRecepcionEstado = (tirPendiente, tirAprobado); - TInvRecepcionAlbaranEstado = (tiraPendiente, tiraRecibido); - - IBizRecepciones = interface(IDAStronglyTypedDataTable) //IRecepciones) - ['{51AA574C-78B9-43B7-B278-CDD95B729F60}'] - procedure Show; - procedure SetEstado(const AValue : TInvRecepcionEstado); - function GetEstado : TInvRecepcionEstado ; - property Estado : TInvRecepcionEstado read GetEstado write SetEstado; - end; - - IBizRecepcionesAlbaran = interface(IDAStronglyTypedDataTable) //IRecepcionesAlbaran) - ['{167478EB-ECE5-48D6-A0F2-66F07B62CA3F}'] - end; - - TBizRecepcionesDataTableRules = class(TDADataTableRules, IBizRecepciones) //TRecepcionesDataTableRules, IBizRecepciones, - protected - procedure SetEstado(const AValue : TInvRecepcionEstado); - function GetEstado : TInvRecepcionEstado ; - public - procedure Show; - property Estado : TInvRecepcionEstado read GetEstado write SetEstado; - end; - - TBizRecepcionesAlbaranDataTableRules = class(TDADataTableRules, IBizRecepcionesAlbaran) //TRecepcionesAlbaranDataTableRules, IBizRecepcionesAlbaran, - end; - -implementation - -uses - uEditorUtils, uDataModuleRecepciones; - -{ TBizRecepcionDataTableRules } - -function TBizRecepcionesDataTableRules.GetEstado: TInvRecepcionEstado; -begin - if DataTable.FieldByName('APROBADO').AsString = 'S' then - Result := tirAprobado - else - Result := tirPendiente -end; - -procedure TBizRecepcionesDataTableRules.SetEstado( - const AValue: TInvRecepcionEstado); -begin - case AValue of - tirPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; - tirAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; - else - DataTable.FieldByName('APROBADO').AsString := 'N'; - end; -end; - -procedure TBizRecepcionesDataTableRules.Show; -begin - ShowEditor(IBizRecepciones, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_RECEPCIONES, TBizRecepcionesDataTableRules); - RegisterDataTableRules(BIZ_RECEPCIONESALBARAN, TBizRecepcionesAlbaranDataTableRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm deleted file mode 100644 index 538d1bc..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.dfm +++ /dev/null @@ -1,2482 +0,0 @@ -object srvRecepciones: TsrvRecepciones - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schRecepciones - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 300 - Width = 300 - object schRecepciones: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = DADataDictionary1 - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION_ALBARANES' - SQL = - 'SELECT ALBARAN, ESTADOALBARAN, FILIAL, ESTADOPRODUCTO, CODIGO, P' + - 'RODUCTO, COLOR, E38,'#10'E40, E42, E44, E46, E48'#10'FROM RDX_V_CONTROL_' + - 'RECEPCION_ALBARANES' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ALBARAN' - TableField = 'ALBARAN' - end - item - DatasetField = 'ESTADOALBARAN' - TableField = 'ESTADOALBARAN' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'ESTADOPRODUCTO' - TableField = 'ESTADOPRODUCTO' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end> - end> - Name = 'RecepcionesAlbaran' - Fields = < - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADOALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADOPRODUCTO' - DataType = datString - Size = 9 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION' - SQL = 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'ALBARAN' - TableField = 'ALBARAN' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'R38' - TableField = 'R38' - end - item - DatasetField = 'R40' - TableField = 'R40' - end - item - DatasetField = 'R42' - TableField = 'R42' - end - item - DatasetField = 'R44' - TableField = 'R44' - end - item - DatasetField = 'R46' - TableField = 'R46' - end - item - DatasetField = 'R48' - TableField = 'R48' - end - item - DatasetField = 'RECIBIDO' - TableField = 'RECIBIDO' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'ESTADO_ALBARAN' - TableField = 'ESTADO_ALBARAN' - end - item - DatasetField = 'OBSERVACIONES_ALBARAN' - TableField = 'OBSERVACIONES_ALBARAN' - end - item - DatasetField = 'CONTABILIZAR_ALBARAN' - TableField = 'CONTABILIZAR_ALBARAN' - end - item - DatasetField = 'RR38' - TableField = 'RR38' - end - item - DatasetField = 'RR40' - TableField = 'RR40' - end - item - DatasetField = 'RR42' - TableField = 'RR42' - end - item - DatasetField = 'RR44' - TableField = 'RR44' - end - item - DatasetField = 'RR46' - TableField = 'RR46' - end - item - DatasetField = 'RR48' - TableField = 'RR48' - end - item - DatasetField = 'RECIBIDO_RECT' - TableField = 'RECIBIDO_RECT' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end> - end> - Name = 'Recepciones' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION' - SQL = - 'SELECT'#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO ' + - '= '#39'N'#39')' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'ALBARAN' - TableField = 'ALBARAN' - end - item - DatasetField = 'ESTADO_ALBARAN' - TableField = 'ESTADO_ALBARAN' - end - item - DatasetField = 'OBSERVACIONES_ALBARAN' - TableField = 'OBSERVACIONES_ALBARAN' - end - item - DatasetField = 'CONTABILIZAR_ALBARAN' - TableField = 'CONTABILIZAR_ALBARAN' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'R38' - TableField = 'R38' - end - item - DatasetField = 'R40' - TableField = 'R40' - end - item - DatasetField = 'R42' - TableField = 'R42' - end - item - DatasetField = 'R44' - TableField = 'R44' - end - item - DatasetField = 'R46' - TableField = 'R46' - end - item - DatasetField = 'R48' - TableField = 'R48' - end - item - DatasetField = 'RECIBIDO' - TableField = 'RECIBIDO' - end - item - DatasetField = 'RR38' - TableField = 'RR38' - end - item - DatasetField = 'RR40' - TableField = 'RR40' - end - item - DatasetField = 'RR42' - TableField = 'RR42' - end - item - DatasetField = 'RR44' - TableField = 'RR44' - end - item - DatasetField = 'RR46' - TableField = 'RR46' - end - item - DatasetField = 'RR48' - TableField = 'RR48' - end - item - DatasetField = 'RECIBIDO_RECT' - TableField = 'RECIBIDO_RECT' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end> - end> - Name = 'RecepcionesPendientes' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION' - SQL = - 'SELECT '#10' *'#10' FROM'#10' RDX_V_CONTROL_RECEPCION'#10'WHERE (APROBADO' + - ' = '#39'S'#39')' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'ALBARAN' - TableField = 'ALBARAN' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'ENVIADO' - TableField = 'ENVIADO' - end - item - DatasetField = 'R38' - TableField = 'R38' - end - item - DatasetField = 'R40' - TableField = 'R40' - end - item - DatasetField = 'R42' - TableField = 'R42' - end - item - DatasetField = 'R44' - TableField = 'R44' - end - item - DatasetField = 'R46' - TableField = 'R46' - end - item - DatasetField = 'R48' - TableField = 'R48' - end - item - DatasetField = 'RECIBIDO' - TableField = 'RECIBIDO' - end - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'ESTADO_ALBARAN' - TableField = 'ESTADO_ALBARAN' - end - item - DatasetField = 'OBSERVACIONES_ALBARAN' - TableField = 'OBSERVACIONES_ALBARAN' - end - item - DatasetField = 'CONTABILIZAR_ALBARAN' - TableField = 'CONTABILIZAR_ALBARAN' - end - item - DatasetField = 'RR38' - TableField = 'RR38' - end - item - DatasetField = 'RR40' - TableField = 'RR40' - end - item - DatasetField = 'RR42' - TableField = 'RR42' - end - item - DatasetField = 'RR44' - TableField = 'RR44' - end - item - DatasetField = 'RR46' - TableField = 'RR46' - end - item - DatasetField = 'RR48' - TableField = 'RR48' - end - item - DatasetField = 'RECIBIDO_RECT' - TableField = 'RECIBIDO_RECT' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end> - end> - Name = 'RecepcionesAprobadas' - Fields = < - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CENTRO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CODIGO' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_COLOR' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_FECHA' - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ESTADO_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_OBSERVACIONES_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_CONTABILIZAR_ALBARAN' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_E48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_ENVIADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'R48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_R48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_RECIBIDO_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DictionaryEntry = 'Recepciones_DIFERENCIA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = < - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION' - SQL = - 'SELECT '#10' RECIBIDO_RECT, DIFERENCIA'#10' FROM'#10' RDX_V_CONTROL_R' + - 'ECEPCION'#10' WHERE'#10' FECHA = :FECHA AND'#10' CENTRO = :CENT' + - 'RO AND'#10' CODIGO = :CODIGO AND'#10' COLOR = :COLOR' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'DIFERENCIA' - TableField = 'DIFERENCIA' - end - item - DatasetField = 'RECIBIDO_RECT' - TableField = 'RECIBIDO_RECT' - end> - end> - Name = 'RefreshRecepciones' - Fields = < - item - Name = 'RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR38' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR40' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR42' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR44' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR46' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RR48' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_RECEPCION' - SQL = - 'begin'#10' declare @rowcount_var int'#10' declare @ALBARAN char(7)' + - #10' declare @ESTADO_ALBARAN varchar(20)'#10' declare @OBSERVACIO' + - 'NES_ALBARAN varchar(255)'#10' declare @CONTABILIZAR_ALBARAN char(' + - '1)'#10#10' declare @RR38 numeric(15,0)'#10' declare @RR40 numeric(15' + - ',0)'#10' declare @RR42 numeric(15,0)'#10' declare @RR44 numeric(15' + - ',0)'#10' declare @RR46 numeric(15,0)'#10' declare @RR48 numeric(15' + - ',0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA datetime'#10' ' + - ' declare @CENTRO varchar(17)'#10' declare @CODIGO varchar(12)'#10' ' + - ' declare @COLOR varchar(10)'#10#10' set @ALBARAN = :ALBARAN'#10' s' + - 'et @ESTADO_ALBARAN = :ESTADO_ALBARAN'#10' set @OBSERVACIONES_ALBA' + - 'RAN = :OBSERVACIONES_ALBARAN'#10' set @CONTABILIZAR_ALBARAN = :CO' + - 'NTABILIZAR_ALBARAN'#10#10' set @RR38 = :RR38'#10' set @RR40 = :RR40'#10 + - ' set @RR42 = :RR42'#10' set @RR44 = :RR44'#10' set @RR46 = :RR4' + - '6'#10' set @RR48 = :RR48'#10#10' set @APROBADO = :APROBADO'#10' set @' + - 'FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CODIGO = :CODI' + - 'GO'#10' set @COLOR = :COLOR'#10#10#10' /* ****************************' + - '******* */'#10' if @ALBARAN <> '#39#39#10' begin'#10' update RDX_A' + - 'JUSTES_ALBARAN set'#10#9' ESTADO = @ESTADO_ALBARAN,'#10#9' OBS' + - 'ERVACIONES = @OBSERVACIONES_ALBARAN,'#10#9' CONTABILIZAR = @CON' + - 'TABILIZAR_ALBARAN'#10' where RDX_AJUSTES_ALBARAN.ALBARAN = @' + - 'ALBARAN'#10#10#9' select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10' if @ROWCO' + - 'UNT_VAR = 0'#10#9' begin'#10' insert into RDX_AJUSTES_ALBARAN' + - #10' (ALBARAN, ESTADO, OBSERVACIONES, CONTABILIZ' + - 'AR)'#10' values (@ALBARAN, @ESTADO_ALBARAN,'#10' ' + - ' @OBSERVACIONES_ALBARAN, @CONTABILIZAR_ALBARAN)'#10#10' ' + - ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10' end'#10#10' ' + - ' /* *********************************** */'#10#9'update RDX_RECEPCI' + - 'ON_AJUSTES set'#10#9' CANT38 = @RR38,'#10#9' CANT40 = ' + - '@RR40,'#10#9' CANT42 = @RR42,'#10#9' CANT44 = @RR44,'#10#9 + - ' CANT46 = @RR46,'#10#9' CANT48 = @RR48,'#10' ' + - ' APROBADO = @APROBADO,'#10' FECHACAMBIO = CURRENT' + - '_TIMESTAMP'#10#9'where'#10' (RDX_RECEPCION_AJUSTES.CENTRO = @' + - 'CENTRO and'#10#9' RDX_RECEPCION_AJUSTES.CODIGO = @CODIGO and'#10#9' ' + - ' RDX_RECEPCION_AJUSTES.COLOR = @COLOR and'#10#9' RDX_RECEPCIO' + - 'N_AJUSTES.FECHA = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9 + - 'if @ROWCOUNT_VAR = 0'#10' begin'#10' insert into RDX_RECE' + - 'PCION_AJUSTES'#10' (FECHA, CENTRO, CODIGO, COLOR,'#10' ' + - ' APROBADO, FECHACAMBIO,'#10' CANT38, CA' + - 'NT40, CANT42,'#10' CANT44, CANT46, CANT48)'#10' ' + - 'values ('#10' @FECHA, @CENTRO, @CODIGO,'#10' ' + - ' @COLOR, @APROBADO, CURRENT_TIMESTAMP,'#10' @RR3' + - '8, @RR40, @RR42,'#10' @RR44, @RR46, @RR48)'#10#10' ' + - ' select @ROWCOUNT_VAR = @@ROWCOUNT'#10' end'#10'end'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_Estado_Recepciones' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 48 - Top = 32 - end - object bpRecepciones: TDABusinessProcessor - Schema = schRecepciones - UpdateCommandName = 'Update_Estado_Recepciones' - RefreshDatasetName = 'RefreshRecepciones' - ReferencedDataset = 'Recepciones' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 32 - end - object bpRecepcionesAprobadas: TDABusinessProcessor - Schema = schRecepciones - UpdateCommandName = 'Update_Estado_Recepciones' - RefreshDatasetName = 'RefreshRecepciones' - ReferencedDataset = 'RecepcionesAprobadas' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 88 - end - object bpRecepcionesPendientes: TDABusinessProcessor - Schema = schRecepciones - UpdateCommandName = 'Update_Estado_Recepciones' - RefreshDatasetName = 'RefreshRecepciones' - ReferencedDataset = 'RecepcionesPendientes' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 152 - end - object DADataDictionary1: TDADataDictionary - Fields = < - item - Name = 'Recepciones_APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'APROBADO' - Alignment = taLeftJustify - end - item - Name = 'Recepciones_FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'FECHACAMBIO' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'CENTRO' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'FILIAL' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'CODIGO' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'PRODUCTO' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'COLOR' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'FECHA' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_ALBARAN' - DataType = datString - Size = 7 - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'ALBARAN' - ReadOnly = True - Alignment = taLeftJustify - end - item - Name = 'Recepciones_ESTADO_ALBARAN' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'ESTADO_ALBARAN' - Alignment = taLeftJustify - end - item - Name = 'Recepciones_OBSERVACIONES_ALBARAN' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'OBSERVACIONES_ALBARAN' - Alignment = taLeftJustify - end - item - Name = 'Recepciones_CONTABILIZAR_ALBARAN' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'CONTABILIZAR_ALBARAN' - Alignment = taLeftJustify - end - item - Name = 'Recepciones_E38' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E38' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_E40' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E40' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_E42' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E42' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_E44' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E44' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_E46' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E46' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_E48' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'E48' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_ENVIADO' - DataType = datInteger - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'ENVIADO' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R38' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R38' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R40' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R40' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R42' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R42' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R44' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R44' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R46' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R46' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_R48' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'R48' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_RECIBIDO' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'RECIBIDO' - ReadOnly = True - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR38' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR40' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR42' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR44' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR46' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'RR48' - Alignment = taRightJustify - end - item - Name = 'Recepciones_RECIBIDO_RECT' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'RECIBIDO_RECT' - Alignment = taRightJustify - end - item - Name = 'Recepciones_DIFERENCIA' - DataType = datFloat - BlobType = dabtUnknown - LogChanges = False - DisplayWidth = 0 - DisplayLabel = 'DIFERENCIA' - Alignment = taRightJustify - end> - Left = 48 - Top = 104 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 48 - Top = 168 - end -end diff --git a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas b/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas deleted file mode 100644 index 0e9d902..0000000 --- a/Varela/Varela/Source/Modulos/Recepciones/Servidor/srvRecepciones_Impl.pas +++ /dev/null @@ -1,52 +0,0 @@ -unit srvRecepciones_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - uDAScriptingProvider, uDABusinessProcessor, - {Generated:} VARELA_Intf, uDAClasses, - uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvRecepciones } - TsrvRecepciones = class(TDARemoteService, IsrvRecepciones) - bpRecepciones: TDABusinessProcessor; - bpRecepcionesAprobadas: TDABusinessProcessor; - bpRecepcionesPendientes: TDABusinessProcessor; - DABINAdapter: TDABINAdapter; - schRecepciones: TDASchema; - DADataDictionary1: TDADataDictionary; - private - protected - { IsrvRecepciones methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, Variants; - -procedure Create_srvRecepciones(out anInstance : IUnknown); -begin - anInstance := TsrvRecepciones.Create(NIL); -end; - -{ srvRecepciones } -initialization - TROClassFactory.Create('srvRecepciones', Create_srvRecepciones, TsrvRecepciones_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj deleted file mode 100644 index d5c0d3d..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - ReferenciaGenerica.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg deleted file mode 100644 index a34a309..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof deleted file mode 100644 index f5bd34e..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=0 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Servidor -Item1=..\..\Output\Cliente -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk deleted file mode 100644 index 041fc26..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dpk +++ /dev/null @@ -1,75 +0,0 @@ -package ReferenciaGenerica; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - dbrtl, - dsnap, - BaseD10, - vcl, - adortl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - JvGlobusD10R, - ControlesBaseD10, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - dxPSCoreD10, - dxComnD10, - JvCustomD10R; - -contains - uPluginControllerReferenciaGenerica in 'uPluginControllerReferenciaGenerica.pas' {ModuleReferenciaGenerica: TModuleController}, - uDataModuleReferenciaGenerica in 'uDataModuleReferenciaGenerica.pas' {dmReferenciaGenerica: TDAClientDataModule}, - uBizReferenciaGenerica in '..\Reglas\uBizReferenciaGenerica.pas', - schReferenciaGenericaClient_Intf in '..\Reglas\schReferenciaGenericaClient_Intf.pas', - uEditorListaReferenciaGenerica in 'uEditorListaReferenciaGenerica.pas' {fEditorListaReferenciaGenerica: TCustomEditor}, - uViewListaReferenciaGenerica in 'uViewListaReferenciaGenerica.pas' {frViewListaReferenciaGenerica: TCustomView}, - uEditorCambioReferenciaGenerica in 'uEditorCambioReferenciaGenerica.pas' {fEditorCambioReferenciaGenerica}, - schReferenciaGenericaServer_Intf in '..\Reglas\schReferenciaGenericaServer_Intf.pas'; - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.identcache deleted file mode 100644 index 5cbf90e3bbf830a342122ca0bd172835e3c64e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 zcmd6lJx&8b4274DW9$hy0A)4^ArUEJMJh|k%s7kDWQ=SNNL+)CpMsmR3Wy>>TDpl# z`xT$xd&f=Fd>nPBFqcp^l-*j)vF*v7^I&jo1(gLBY;F9Jh`~%WZFOEEOS@FLr{D%F zR7wcF6b%Fmi6xEdD_WCM4vgoNNjc!S8WI{rRG7unY*4`?Id@4VDQEi-=J zXWa#SuK?I39)lw&XOUg>lFf0N^w3iO{^HNn-)fpVN5^fE=`cOrNx#F*Ez30OYfVpA YOi%x;>1R#OWhw*bPO__{L^^Hj7v@RmPyhe` diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm deleted file mode 100644 index fa19a3d..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.dfm +++ /dev/null @@ -1,227 +0,0 @@ -object dmReferenciaGenerica: TdmReferenciaGenerica - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 297 - Width = 298 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvReferenciaGenerica' - Left = 40 - Top = 32 - end - object ds_ReferenciaGenerica: TDADataSource - Left = 192 - Top = 96 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetData' - GetDataCall.Params = < - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'ReferenciaGenerica' - end - item - Name = 'Params' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - Value = False - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = DABinDataStreamer1 - Left = 40 - Top = 96 - end - object DABinDataStreamer1: TDABinDataStreamer - IsCompatibleV4 = False - Left = 40 - Top = 160 - end - object tbl_ReferenciaGenerica: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - InPrimaryKey = True - end - item - Name = 'CLAVE1' - DataType = datFloat - InPrimaryKey = True - end - item - Name = 'CLAVE2' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'CLAVE3' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'NUMCON' - DataType = datInteger - end - item - Name = 'FECHA' - DataType = datDateTime - end - item - Name = 'CODCENTRO' - DataType = datString - Size = 17 - end - item - Name = 'CENTRO' - DataType = datString - Size = 45 - end - item - Name = 'CODVENDEDOR' - DataType = datString - Size = 17 - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 86 - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - end - item - Name = 'CODIGO_BARRA' - DataType = datString - Size = 25 - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - end - item - Name = 'VTAPROCESO' - DataType = datFloat - end - item - Name = 'VTAFINAL' - DataType = datFloat - end - item - Name = 'VTATERM' - DataType = datFloat - end - item - Name = 'VALTOT' - DataType = datFloat - end - item - Name = 'ESTADO' - DataType = datString - Size = 1 - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - end> - Params = <> - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'ReferenciaGenerica' - IndexDefs = <> - Left = 192 - Top = 40 - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas deleted file mode 100644 index 2615ede..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uDataModuleReferenciaGenerica.pas +++ /dev/null @@ -1,139 +0,0 @@ -unit uDataModuleReferenciaGenerica; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, - uROClient, uROBinMessage, uROWinInetHttpChannel, uDataModuleBase, - uBizReferenciaGenerica, uDARemoteDataAdapter, uDAInterfaces, uDADataStreamer; - -type - TdmReferenciaGenerica = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - ds_ReferenciaGenerica: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - DABinDataStreamer1: TDABinDataStreamer; - tbl_ReferenciaGenerica: TDACDSDataTable; - procedure DAClientDataModuleCreate(Sender: TObject); - private - { Private declarations } - public - procedure Print(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); - procedure Preview(const Centro: string; const Vendedor : String; const Estado : String; const AFiltro : string = ''); - function GetItems : IBizReferenciaGenerica; - function GetProducto(const Codigo: String; const Talla: String; - const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; - function GetSelectedItems(const AItems : IBizReferenciaGenerica): IBizReferenciaGenerica; - end; - -var - dmReferenciaGenerica: TdmReferenciaGenerica; - -implementation - -{$R *.DFM} - -uses - Forms, Windows, Controls, VARELA_Intf, uEditorPreview, - uDataTableUtils, uROTypes, cxControls; - -procedure TdmReferenciaGenerica.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmReferenciaGenerica.GetItems: IBizReferenciaGenerica; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_ReferenciaGenerica, dtLista); - dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; - Result := (dtLista as IBizReferenciaGenerica); - finally - HideHourglassCursor; - end; -end; - -function TdmReferenciaGenerica.GetProducto(const Codigo, Talla, - Color: String; out CodigoBarras, Descripcion: String): Boolean; -begin - Result := (RORemoteService as IsrvReferenciaGenerica).GetProducto(Codigo, - Talla, Color, CodigoBarras, Descripcion); -end; - -function TdmReferenciaGenerica.GetSelectedItems( - const AItems: IBizReferenciaGenerica): IBizReferenciaGenerica; -var - dtLista : TDACDSDataTable; - ATarget : TDADataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_ReferenciaGenerica, dtLista, False); - CopyDataTable(AItems.DataTable, dtLista, True); - dtLista.BusinessRulesID := BIZ_REFERENCIAGENERICA; - dtLista.LogChanges := True; // Para guardar los cambios - dtLista.RemoteFetchEnabled := True; // Para guardar los cambios - Result := (dtLista as IBizReferenciaGenerica); - finally - HideHourglassCursor; - end; -end; - -procedure TdmReferenciaGenerica.Preview(const Centro, Vendedor: String; const Estado : String; - const AFiltro : String); -var - AStream: TROBinaryMemoryStream; - AEditorPreview : TfEditorPreview; -begin - AEditorPreview := TfEditorPreview.Create(Application); - try - ShowHourglassCursor; - try - AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); - AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); - finally - HideHourglassCursor; - end; - AEditorPreview.ShowModal; - finally - AEditorPreview.Release; - AStream.Free; - end; -end; - -procedure TdmReferenciaGenerica.Print(const Centro, Vendedor: String; const Estado : String; - const AFiltro : String); -var - AStream: TROBinaryMemoryStream; - AEditorPreview : TfEditorPreview; -begin - AEditorPreview := TfEditorPreview.Create(Application); - try - ShowHourglassCursor; - try - AStream := (RORemoteService as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, AFiltro); - AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); - finally - HideHourglassCursor; - end; - AEditorPreview.Print; - finally - AEditorPreview.Release; - AStream.Free; - end; -end; - -initialization - dmReferenciaGenerica := TdmReferenciaGenerica.Create(nil); - -finalization - FreeAndNil(dmReferenciaGenerica); - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm deleted file mode 100644 index 9562cb5..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm +++ /dev/null @@ -1,574 +0,0 @@ -object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica - Left = 418 - Top = 278 - BorderIcons = [biSystemMenu, biMaximize] - Caption = 'Rectificar referencia gen'#233'rica de producto' - ClientHeight = 535 - ClientWidth = 759 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnShow = FormShow - DesignSize = ( - 759 - 535) - PixelsPerInch = 96 - TextHeight = 13 - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 759 - Height = 73 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Rectificar referencia gen'#233'rica de producto') - Comments.Strings = ( - - 'Indique el c'#243'digo de producto, el color y la talla que correspon' + - 'de a la referencia gen'#233'rica.') - Gradient.FromColor = clHighlight - Gradient.ToColor = clWindow - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Bevel1: TBevel - Left = 16 - Top = 483 - Width = 730 - Height = 4 - Anchors = [akLeft, akRight, akBottom] - Shape = bsBottomLine - end - object lblImporteTotal: TLabel - Left = 85 - Top = 460 - Width = 5 - Height = 13 - Anchors = [akLeft, akBottom] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False - end - object bAceptar: TButton - Left = 577 - Top = 496 - Width = 75 - Height = 25 - Anchors = [akRight, akBottom] - Caption = '&Aceptar' - ModalResult = 1 - TabOrder = 0 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 671 - Top = 496 - Width = 75 - Height = 25 - Anchors = [akRight, akBottom] - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 1 - end - object bComprobar: TButton - Left = 17 - Top = 496 - Width = 152 - Height = 25 - Anchors = [akLeft, akBottom] - Caption = 'Comprobar todos los c'#243'digos' - TabOrder = 2 - OnClick = bComprobarClick - end - object cxGrid: TcxGrid - Left = 16 - Top = 88 - Width = 729 - Height = 385 - Anchors = [akLeft, akTop, akRight, akBottom] - TabOrder = 3 - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - object cxGridView: TcxGridDBBandedTableView - NavigatorButtons.ConfirmDelete = False - OnCustomDrawCell = cxGridViewCustomDrawCell - DataController.DataSource = dsDataSource - DataController.Summary.DefaultGroupSummaryItems = <> - DataController.Summary.FooterSummaryItems = < - item - Format = '#,##0.##' - Kind = skSum - Column = cxGridViewVALTOT - end> - DataController.Summary.SummaryGroups = <> - OptionsBehavior.AlwaysShowEditor = True - OptionsBehavior.FocusCellOnTab = True - OptionsBehavior.GoToNextCellOnEnter = True - OptionsBehavior.FocusCellOnCycle = True - OptionsCustomize.ColumnFiltering = False - OptionsCustomize.ColumnGrouping = False - OptionsData.Deleting = False - OptionsData.Inserting = False - OptionsSelection.InvertSelect = False - OptionsSelection.UnselectFocusedRecordOnExit = False - OptionsView.Navigator = True - OptionsView.ScrollBars = ssVertical - OptionsView.ShowEditButtons = gsebAlways - OptionsView.CellAutoHeight = True - OptionsView.ColumnAutoWidth = True - OptionsView.GridLines = glNone - OptionsView.GroupByBox = False - OptionsView.NewItemRowInfoText = 'Click here to add a new row' - OptionsView.BandHeaders = False - Bands = < - item - Width = 667 - end> - object cxGridViewRecID: TcxGridDBBandedColumn - DataBinding.FieldName = 'RecID' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewOperacion: TcxGridDBBandedColumn - OnGetProperties = cxGridViewOperacionGetProperties - Options.ShowEditButtons = isebAlways - Options.Grouping = False - Options.Moving = False - Styles.Content = cxStyleNoEditable - Width = 26 - Position.BandIndex = 0 - Position.ColIndex = 0 - Position.RowIndex = 0 - end - object cxGridViewNUMINF: TcxGridDBBandedColumn - DataBinding.FieldName = 'NUMINF' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - SortIndex = 1 - SortOrder = soAscending - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewCLAVE1: TcxGridDBBandedColumn - DataBinding.FieldName = 'CLAVE1' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - SortIndex = 2 - SortOrder = soAscending - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewCLAVE2: TcxGridDBBandedColumn - DataBinding.FieldName = 'CLAVE2' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - SortIndex = 3 - SortOrder = soAscending - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewCLAVE3: TcxGridDBBandedColumn - DataBinding.FieldName = 'CLAVE3' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - SortIndex = 4 - SortOrder = soAscending - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewNUMCON: TcxGridDBBandedColumn - DataBinding.FieldName = 'NUMCON' - Visible = False - SortIndex = 5 - SortOrder = soAscending - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewFECHA: TcxGridDBBandedColumn - Caption = 'Fecha venta' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxTextEditProperties' - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - SortIndex = 0 - SortOrder = soAscending - Styles.Content = cxStyleNoEditable - Width = 73 - Position.BandIndex = 0 - Position.ColIndex = 1 - Position.RowIndex = 0 - end - object cxGridViewCODCENTRO: TcxGridDBBandedColumn - DataBinding.FieldName = 'CODCENTRO' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewCENTRO: TcxGridDBBandedColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Styles.Content = cxStyleNoEditable - Width = 304 - Position.BandIndex = 0 - Position.ColIndex = 2 - Position.RowIndex = 0 - end - object cxGridViewCODVENDEDOR: TcxGridDBBandedColumn - DataBinding.FieldName = 'CODVENDEDOR' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Width = 348 - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewVENDEDOR: TcxGridDBBandedColumn - Caption = 'Vendedor' - DataBinding.FieldName = 'VENDEDOR' - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Styles.Content = cxStyleNoEditable - Width = 173 - Position.BandIndex = 0 - Position.ColIndex = 3 - Position.RowIndex = 0 - end - object cxGridViewNUMTALON: TcxGridDBBandedColumn - Caption = 'Tal'#243'n' - DataBinding.FieldName = 'NUMTALON' - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Styles.Content = cxStyleNoEditable - Width = 87 - Position.BandIndex = 0 - Position.ColIndex = 0 - Position.RowIndex = 1 - end - object cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn - DataBinding.FieldName = 'CODIGO_BARRA' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewCODIGO: TcxGridDBBandedColumn - Caption = 'C'#243'digo' - DataBinding.FieldName = 'CODIGO' - Styles.Content = cxStyleEditable - Width = 114 - Position.BandIndex = 0 - Position.ColIndex = 1 - Position.RowIndex = 1 - end - object cxGridViewPRODUCTO: TcxGridDBBandedColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Styles.Content = cxStyleProductor - Styles.OnGetContentStyle = cxGridViewPRODUCTOStylesGetContentStyle - Width = 300 - Position.BandIndex = 0 - Position.ColIndex = 4 - Position.RowIndex = 1 - end - object cxGridViewCOLOR: TcxGridDBBandedColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - Styles.Content = cxStyleEditable - Width = 60 - Position.BandIndex = 0 - Position.ColIndex = 2 - Position.RowIndex = 1 - end - object cxGridViewTALLA: TcxGridDBBandedColumn - Caption = 'Talla' - DataBinding.FieldName = 'TALLA' - Styles.Content = cxStyleEditable - Width = 59 - Position.BandIndex = 0 - Position.ColIndex = 3 - Position.RowIndex = 1 - end - object cxGridViewVTAPROCESO: TcxGridDBBandedColumn - Caption = 'Proceso' - DataBinding.FieldName = 'VTAPROCESO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Properties.UseLeftAlignmentOnEditing = False - FooterAlignmentHorz = taRightJustify - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleEditable - Width = 49 - Position.BandIndex = 0 - Position.ColIndex = 4 - Position.RowIndex = 0 - end - object cxGridViewVTAFINAL: TcxGridDBBandedColumn - Caption = 'Final/Resc.' - DataBinding.FieldName = 'VTAFINAL' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Properties.UseLeftAlignmentOnEditing = False - FooterAlignmentHorz = taRightJustify - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleEditable - Width = 51 - Position.BandIndex = 0 - Position.ColIndex = 5 - Position.RowIndex = 0 - end - object cxGridViewVTATERM: TcxGridDBBandedColumn - Caption = 'Term./Dev.' - DataBinding.FieldName = 'VTATERM' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taCenter - Properties.UseLeftAlignmentOnEditing = False - FooterAlignmentHorz = taRightJustify - HeaderGlyphAlignmentHorz = taRightJustify - Styles.Content = cxStyleEditable - Width = 51 - Position.BandIndex = 0 - Position.ColIndex = 6 - Position.RowIndex = 0 - end - object cxGridViewVALTOT: TcxGridDBBandedColumn - Caption = 'Importe' - DataBinding.FieldName = 'VALTOT' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.UseLeftAlignmentOnEditing = False - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - HeaderGlyphAlignmentHorz = taRightJustify - Options.Moving = False - Styles.Content = cxStyleEditable - Width = 90 - Position.BandIndex = 0 - Position.ColIndex = 5 - Position.RowIndex = 1 - end - object cxGridViewESTADO: TcxGridDBBandedColumn - DataBinding.FieldName = 'ESTADO' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Width = 144 - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - object cxGridViewFECHACAMBIO: TcxGridDBBandedColumn - DataBinding.FieldName = 'FECHACAMBIO' - Visible = False - Options.Editing = False - Options.Focusing = False - Options.Grouping = False - Options.Moving = False - Position.BandIndex = -1 - Position.ColIndex = -1 - Position.RowIndex = -1 - end - end - object cxGridLevel: TcxGridLevel - GridView = cxGridView - end - end - object dsDataSource: TDADataSource - Left = 200 - Top = 496 - end - object cxStyleRepository1: TcxStyleRepository - Left = 368 - Top = 272 - object cxStyleEditable: TcxStyle - AssignedValues = [svFont] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - object cxStyleNoEditable: TcxStyle - AssignedValues = [svTextColor] - TextColor = 6250335 - end - object cxStyleProductor: TcxStyle - AssignedValues = [svTextColor] - TextColor = 14898176 - end - object cxStyleNoEncontrado: TcxStyle - AssignedValues = [svTextColor] - TextColor = clRed - end - end - object cxEditRepository1: TcxEditRepository - Left = 240 - Top = 272 - object cxEditButtonDesglosar: TcxEditRepositoryButtonItem - Properties.Buttons = < - item - Caption = '+' - Default = True - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000AF4F1F00A9471700A33F0F000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000B5572600FDA66A00A94717000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000BA5F2D00FCB07600AF4F1F000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00CE794700C9724000C46C3A00BF653300FBB98200B5572600AF4F - 1F00A9471700A33F0F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00D3804E00F8DAA900F9D29F00F9C99500FAC18B00FBB98200FCB0 - 7600FDA66A00A9471700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00D8865400D3804E00CE794700C9724000F9C99500BF653300BA5F - 2D00B5572600AF4F1F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000CE794700F9D29F00C46C3A000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000D3804E00F8DAA900C97240000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00000000000000000000000000D8865400D3804E00CE7947000000 - 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} - Kind = bkText - Stretchable = False - end> - Properties.ViewStyle = vsButtonsOnly - Properties.OnButtonClick = cxEditButtonDesglosarPropertiesButtonClick - end - object cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem - Properties.Buttons = < - item - Caption = '-' - Default = True - Glyph.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000000000000000000000000000000000000FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00D7855300CF7A4800C7703E00BF653300B85B2A00AE4E1D00A441 - 10009B34040098300000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00D8865400F8E0B000F8E0B000F8E0B000F9D3A100FAC18B00FCAE - 7300FE9859009B340400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00D8865400D8865400D7855300CF7A4800C7703E00BF653300B85B - 2A00AE4E1D00A4411000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00} - Kind = bkText - Stretchable = False - end> - Properties.ViewStyle = vsButtonsOnly - Properties.OnButtonClick = cxEditButtonEliminarDesglosePropertiesButtonClick - end - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ deleted file mode 100644 index d9923d1..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.dfm_ +++ /dev/null @@ -1,144 +0,0 @@ -object fEditorCambioReferenciaGenerica: TfEditorCambioReferenciaGenerica - Left = 421 - Top = 281 - Width = 767 - Height = 569 - BorderIcons = [biSystemMenu, biMaximize] - Caption = 'Rectificar referencia gen'#233'rica de producto' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnShow = FormShow - DesignSize = ( - 759 - 535) - PixelsPerInch = 96 - TextHeight = 13 - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 759 - Height = 73 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Rectificar referencia gen'#233'rica de producto') - Comments.Strings = ( - - 'Indique el c'#243'digo de producto, el color y la talla que correspon' + - 'de a la referencia gen'#233'rica.') - Gradient.FromColor = clHighlight - Gradient.ToColor = clWindow - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Bevel1: TBevel - Left = 16 - Top = 483 - Width = 730 - Height = 4 - Anchors = [akLeft, akBottom] - Shape = bsBottomLine - end - object Label1: TLabel - Left = 16 - Top = 460 - Width = 61 - Height = 13 - Anchors = [akLeft, akBottom] - Caption = 'Importe total:' - end - object lblImporteTotal: TLabel - Left = 85 - Top = 460 - Width = 5 - Height = 13 - Anchors = [akLeft, akBottom] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False - end - object bAceptar: TButton - Left = 577 - Top = 496 - Width = 75 - Height = 25 - Anchors = [akLeft, akBottom] - Caption = '&Aceptar' - ModalResult = 1 - TabOrder = 0 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 671 - Top = 496 - Width = 75 - Height = 25 - Anchors = [akLeft, akBottom] - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 1 - end - object bComprobar: TButton - Left = 17 - Top = 496 - Width = 152 - Height = 25 - Anchors = [akLeft, akBottom] - Caption = 'Comprobar todos los c'#243'digos' - TabOrder = 2 - OnClick = bComprobarClick - end - object dsDataSource: TDADataSource - DataTable = dmReferenciaGenerica.tbl_ReferenciaGenerica - Left = 200 - Top = 496 - end - object cxStyleRepository1: TcxStyleRepository - Left = 368 - Top = 272 - object cxStyleEditable: TcxStyle - AssignedValues = [svFont] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - object cxStyleNoEditable: TcxStyle - AssignedValues = [svTextColor] - TextColor = 6250335 - end - object cxStyleProductor: TcxStyle - AssignedValues = [svTextColor] - TextColor = 14898176 - end - object cxStyleNoEncontrado: TcxStyle - AssignedValues = [svTextColor] - TextColor = clRed - end - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas deleted file mode 100644 index 3740253..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas +++ /dev/null @@ -1,314 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorCambioReferenciaGenerica; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, - JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, - cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, - cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit, cxButtonEdit, - cxTextEdit, cxEditRepositoryItems, uDAInterfaces; - -type - IEditorCambioReferenciaGenerica = interface - ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] - function GetItems : IBizReferenciaGenerica; - procedure SetItems (const AValue : IBizReferenciaGenerica); - property Items : IBizReferenciaGenerica read GetItems write SetItems; - end; - - TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) - bAceptar: TButton; - bCancelar: TButton; - JvgWizardHeader1: TJvgWizardHeader; - Bevel1: TBevel; - bComprobar: TButton; - dsDataSource: TDADataSource; - cxStyleRepository1: TcxStyleRepository; - cxStyleEditable: TcxStyle; - cxStyleNoEditable: TcxStyle; - cxStyleProductor: TcxStyle; - cxStyleNoEncontrado: TcxStyle; - cxGrid: TcxGrid; - cxGridView: TcxGridDBBandedTableView; - cxGridViewRecID: TcxGridDBBandedColumn; - cxGridViewNUMINF: TcxGridDBBandedColumn; - cxGridViewCLAVE1: TcxGridDBBandedColumn; - cxGridViewCLAVE2: TcxGridDBBandedColumn; - cxGridViewCLAVE3: TcxGridDBBandedColumn; - cxGridViewFECHA: TcxGridDBBandedColumn; - cxGridViewCODCENTRO: TcxGridDBBandedColumn; - cxGridViewCENTRO: TcxGridDBBandedColumn; - cxGridViewCODVENDEDOR: TcxGridDBBandedColumn; - cxGridViewVENDEDOR: TcxGridDBBandedColumn; - cxGridViewNUMTALON: TcxGridDBBandedColumn; - cxGridViewCODIGO_BARRA: TcxGridDBBandedColumn; - cxGridViewCODIGO: TcxGridDBBandedColumn; - cxGridViewPRODUCTO: TcxGridDBBandedColumn; - cxGridViewCOLOR: TcxGridDBBandedColumn; - cxGridViewTALLA: TcxGridDBBandedColumn; - cxGridViewVTAPROCESO: TcxGridDBBandedColumn; - cxGridViewVTAFINAL: TcxGridDBBandedColumn; - cxGridViewVTATERM: TcxGridDBBandedColumn; - cxGridViewVALTOT: TcxGridDBBandedColumn; - cxGridViewESTADO: TcxGridDBBandedColumn; - cxGridViewFECHACAMBIO: TcxGridDBBandedColumn; - cxGridLevel: TcxGridLevel; - lblImporteTotal: TLabel; - cxGridViewOperacion: TcxGridDBBandedColumn; - cxEditRepository1: TcxEditRepository; - cxEditButtonDesglosar: TcxEditRepositoryButtonItem; - cxEditButtonEliminarDesglose: TcxEditRepositoryButtonItem; - cxGridViewNUMCON: TcxGridDBBandedColumn; - procedure FormShow(Sender: TObject); - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure bComprobarClick(Sender: TObject); - procedure cxGridViewPRODUCTOStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure bAceptarClick(Sender: TObject); - procedure cxGridViewOperacionGetProperties( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AProperties: TcxCustomEditProperties); - procedure cxEditButtonDesglosarPropertiesButtonClick(Sender: TObject; - AButtonIndex: Integer); - procedure cxEditButtonEliminarDesglosePropertiesButtonClick( - Sender: TObject; AButtonIndex: Integer); - private - FItems : IBizReferenciaGenerica; - FCodigoBarras : String; - FHayErrores : Boolean; - FItemsErroneos : Integer; - procedure DesglosarReferencia; - protected - function GetItems : IBizReferenciaGenerica; - procedure SetItems (const AValue : IBizReferenciaGenerica); - public - property Items : IBizReferenciaGenerica read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleReferenciaGenerica, - schReferenciaGenericaClient_Intf, Math; - -{$R *.dfm} - -function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; -var - AEditor: TfEditorCambioReferenciaGenerica; -begin - AEditor := TfEditorCambioReferenciaGenerica.Create(Application); - try - AEditor.Items := (ABizObject as IBizReferenciaGenerica); - Result := AEditor.ShowModal; - if Result = mrOk then - begin - {(ABizObject as IBizReferenciaGenerica).Edit; - (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; - (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; - (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; - (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; - (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; - (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; - (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; - (ABizObject as IBizReferenciaGenerica).Post; - (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} - end; - -{ if Result = mrIgnore then - begin - (ABizObject as IBizReferenciaGenerica).Delete; - (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; - end;} - - finally - AEditor.Release; - end; -end; - - -{ TfEditorCambioReferenciaGenerica } - -procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); -begin - FCodigoBarras := ''; - FHayErrores := False; - FItemsErroneos := 0; - FItems.DataTable.Open; - cxGridView.DataController.GotoFirst; -end; - -function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; -begin - Result := FItems; -end; - -procedure TfEditorCambioReferenciaGenerica.SetItems( - const AValue: IBizReferenciaGenerica); -begin - FItems := AValue; - if Assigned(FItems) then - dsDataSource.DataTable := FItems.DataTable; -end; - -procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if VarToStrDef(AViewInfo.GridRecord.Values[cxGridViewNUMCON.Index], '0') <> '0' then - ACanvas.Brush.Color := clInfoBk; - - if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then - begin - ADone := True; - with AViewInfo do begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - - if (AViewInfo.Item.Index = cxGridViewCOLOR.Index) or - (AViewInfo.Item.Index = cxGridViewTALLA.Index) or - (AViewInfo.Item.Index = cxGridViewCODIGO.Index) or - (AViewInfo.Item.Index = cxGridViewVALTOT.Index) then - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]) - else - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); - end; - end - else - if (AViewInfo.Item.Index = cxGridViewVTAPROCESO.Index) or - (AViewInfo.Item.Index = cxGridViewVTAFINAL.Index) or - (AViewInfo.Item.Index = cxGridViewVTATERM.Index) then - begin - ADone := True; - with AViewInfo do - begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom, bTop, bLeft, bRight]); - end; - end; -end; - -procedure TfEditorCambioReferenciaGenerica.bComprobarClick( - Sender: TObject); -var - Descripcion : String; - CodigoBarras : String; - bEncontrado : Boolean; - i : Integer; - ABookmark : Pointer; -begin - FHayErrores := False; - FItemsErroneos := 0; - FItems.DataTable.DisableControls; - ABookmark := FItems.DataTable.GetBookMark; - try - FItems.First; - for i := 0 to FItems.RecordCount - 1 do - begin - bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, - FItems.COLOR, CodigoBarras, Descripcion); - FItems.Edit; - if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then - begin - FItems.PRODUCTO := Descripcion; - FItems.CODIGO_BARRA := CodigoBarras; - FItems.Estado := rgResuelto; - FItems.FECHACAMBIO := Now; - end - else begin - FHayErrores := True; - FItemsErroneos := FItemsErroneos + 1; - FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; - end; - FItems.Post; - FItems.Next; - end; - finally - FItems.DataTable.EnableControls; - FItems.DataTable.GotoBookmark(ABookmark); - FItems.DataTable.FreeBookmark(ABookmark); - end; -end; - -procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then - AStyle := cxStyleNoEncontrado; -end; - -procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); -begin - bComprobar.Click; - if FHayErrores then - if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + - '¿Desea guardar los cambios de solamente aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then - Exit; - - // Adaptación a DA5 - // Sólo guardar en el caso de que haya algún item correcto. Si todos están mal da una excepción el servidor - // porque no hay filas a actualizar. - if FItemsErroneos < FItems.DataTable.RecordCount then - FItems.DataTable.ApplyUpdates; - Close; -end; - -procedure TfEditorCambioReferenciaGenerica.cxGridViewOperacionGetProperties( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AProperties: TcxCustomEditProperties); -begin - if Assigned(ARecord) then - begin - // Sólo aparecerá el botón '+' si alguna cantidad es mayor que 1 - if (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAPROCESO.Index], 0)) > 1) or - (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTAFINAL.Index], 0)) > 1) or - (Abs(StrToIntDef(ARecord.DisplayTexts[cxGridViewVTATERM.Index], 0)) > 1) then - AProperties := cxEditButtonDesglosar.Properties - else - if (StrToIntDef(ARecord.DisplayTexts[cxGridViewNUMCON.Index], 0) > 0) then - AProperties := cxEditButtonEliminarDesglose.Properties - end; -end; - -procedure TfEditorCambioReferenciaGenerica.DesglosarReferencia; -begin - FItems.DesglosarReferencia; -end; - -procedure TfEditorCambioReferenciaGenerica.cxEditButtonDesglosarPropertiesButtonClick( - Sender: TObject; AButtonIndex: Integer); -begin - DesglosarReferencia; -end; - -procedure TfEditorCambioReferenciaGenerica.cxEditButtonEliminarDesglosePropertiesButtonClick( - Sender: TObject; AButtonIndex: Integer); -begin - FItems.Delete; -end; - -initialization - RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ deleted file mode 100644 index 833fcb5..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorCambioReferenciaGenerica.pas_ +++ /dev/null @@ -1,210 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorCambioReferenciaGenerica; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uBizReferenciaGenerica, StdCtrls, JvExControls, JvComponent, - JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, - cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, - cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, cxGridBandedTableView, - cxGridDBBandedTableView, cxCurrencyEdit, cxSpinEdit; - -type - IEditorCambioReferenciaGenerica = interface - ['{11A66FAC-E782-43DE-A3E6-68473F351F43}'] - function GetItems : IBizReferenciaGenerica; - procedure SetItems (const AValue : IBizReferenciaGenerica); - property Items : IBizReferenciaGenerica read GetItems write SetItems; - end; - - TfEditorCambioReferenciaGenerica = class(TForm, IEditorCambioReferenciaGenerica) - bAceptar: TButton; - bCancelar: TButton; - JvgWizardHeader1: TJvgWizardHeader; - Bevel1: TBevel; - bComprobar: TButton; - dsDataSource: TDADataSource; - cxStyleRepository1: TcxStyleRepository; - cxStyleEditable: TcxStyle; - cxStyleNoEditable: TcxStyle; - cxStyleProductor: TcxStyle; - cxStyleNoEncontrado: TcxStyle; - Label1: TLabel; - lblImporteTotal: TLabel; - procedure FormShow(Sender: TObject); - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure bComprobarClick(Sender: TObject); - procedure cxGridViewPRODUCTOStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure bAceptarClick(Sender: TObject); - private - FItems : IBizReferenciaGenerica; - FCodigoBarras : String; - FHayErrores : Boolean; - protected - function GetItems : IBizReferenciaGenerica; - procedure SetItems (const AValue : IBizReferenciaGenerica); - public - property Items : IBizReferenciaGenerica read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleReferenciaGenerica, - schReferenciaGenericaClient_Intf; - -{$R *.dfm} - -function ShowEditorCambioReferenciaGenerica (ABizObject : TDADataTableRules) : TModalResult; -var - AEditor: TfEditorCambioReferenciaGenerica; -begin - AEditor := TfEditorCambioReferenciaGenerica.Create(Application); - try - AEditor.Items := (ABizObject as IBizReferenciaGenerica); - Result := AEditor.ShowModal; - if Result = mrOk then - begin - {(ABizObject as IBizReferenciaGenerica).Edit; - (ABizObject as IBizReferenciaGenerica).CODIGO := AEditor.Codigo; - (ABizObject as IBizReferenciaGenerica).TALLA := AEditor.Talla; - (ABizObject as IBizReferenciaGenerica).COLOR := AEditor.Color; - (ABizObject as IBizReferenciaGenerica).CODIGO_BARRA := AEditor.CodigoBarras; - (ABizObject as IBizReferenciaGenerica).PRODUCTO := AEditor.Label3.Caption; - (ABizObject as IBizReferenciaGenerica).FECHACAMBIO := Now; - (ABizObject as IBizReferenciaGenerica).ESTADO := rgResuelto; - (ABizObject as IBizReferenciaGenerica).Post; - (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates;} - end; - -{ if Result = mrIgnore then - begin - (ABizObject as IBizReferenciaGenerica).Delete; - (ABizObject as IBizReferenciaGenerica).DataTable.ApplyUpdates; - end;} - - finally - AEditor.Release; - end; -end; - - -{ TfEditorCambioReferenciaGenerica } - -procedure TfEditorCambioReferenciaGenerica.FormShow(Sender: TObject); -begin - FCodigoBarras := ''; - FHayErrores := False; - FItems.DataTable.Open; - cxGridView.DataController.GotoFirst; -end; - -function TfEditorCambioReferenciaGenerica.GetItems: IBizReferenciaGenerica; -begin - Result := FItems; -end; - -procedure TfEditorCambioReferenciaGenerica.SetItems( - const AValue: IBizReferenciaGenerica); -begin - FItems := AValue; - if Assigned(FItems) then - dsDataSource.DataTable := FItems.DataTable; -end; - -procedure TfEditorCambioReferenciaGenerica.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then - begin - ADone := True; - with AViewInfo do begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); - end; - end; -end; - -procedure TfEditorCambioReferenciaGenerica.bComprobarClick( - Sender: TObject); -var - Descripcion : String; - CodigoBarras : String; - bEncontrado : Boolean; - i : Integer; - ABookmark : Pointer; -begin - FHayErrores := False; - FItems.DataTable.DisableControls; - ABookmark := FItems.DataTable.GetBookMark; - try - FItems.First; - for i := 0 to FItems.RecordCount - 1 do - begin - bEncontrado := dmReferenciaGenerica.GetProducto(FItems.CODIGO, FItems.TALLA, - FItems.COLOR, CodigoBarras, Descripcion); - FItems.Edit; - if bEncontrado and (Pos('ERROR REFERENCIA', Descripcion) = 0) then - begin - FItems.PRODUCTO := Descripcion; - FItems.CODIGO_BARRA := CodigoBarras; - FItems.Estado := rgResuelto; - FItems.FECHACAMBIO := Now; - end - else begin - FHayErrores := True; - FItems.PRODUCTO := '*** PRODUCTO NO ENCONTRADO ***'; - end; - FItems.Post; - FItems.Next; - end; - finally - FItems.DataTable.EnableControls; - FItems.DataTable.GotoBookmark(ABookmark); - FItems.DataTable.FreeBookmark(ABookmark); - end; -end; - -procedure TfEditorCambioReferenciaGenerica.cxGridViewPRODUCTOStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - if ARecord.Values[AItem.Index] = '*** PRODUCTO NO ENCONTRADO ***' then - AStyle := cxStyleNoEncontrado; -end; - -procedure TfEditorCambioReferenciaGenerica.bAceptarClick(Sender: TObject); -begin - bComprobar.Click; - if FHayErrores then - if (Application.MessageBox('Hay códigos de producto que no se han encontrado o son incorrectos.' + #10#13 + - '¿Desea guardar los cambios de aquellos que están bien?', 'Atención', MB_YESNO) = IDNO) then - Exit; - FItems.DataTable.ApplyUpdates; - Close; -end; - -initialization - RegisterEditor(IBizReferenciaGenerica, ShowEditorCambioReferenciaGenerica, etItem); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm deleted file mode 100644 index 4f2abe1..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.dfm +++ /dev/null @@ -1,1652 +0,0 @@ -inherited fEditorListaReferenciaGenerica: TfEditorListaReferenciaGenerica - Left = 301 - Top = 227 - Caption = 'Control de referencias gen'#233'ricas' - ClientHeight = 637 - ClientWidth = 901 - ExplicitWidth = 909 - ExplicitHeight = 671 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 901 - Caption = 'Control de referencias gen'#233'ricas' - ExplicitWidth = 901 - inherited Image1: TImage - Left = 874 - ExplicitLeft = 874 - end - end - inherited TBXDock: TTBXDock - Width = 901 - ExplicitWidth = 901 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 691 - object TBXSubmenuItem2: TTBXSubmenuItem [7] - Caption = 'Cambiar el estado' - DropdownCombo = True - object TBXItem37: TTBXItem - Action = actPendiente - end - object TBXItem36: TTBXItem - Action = actEspera - end - object TBXItem35: TTBXItem - Action = actResuelto - end - end - object TBXSeparatorItem16: TTBXSeparatorItem [8] - end - object tbxiExpandir: TTBXItem [16] - Action = actExpandir - end - object tbxiContraer: TTBXItem [17] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [18] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 901 - end - inherited tbxFiltro: TTBXToolbar - Left = 691 - ExplicitLeft = 691 - end - end - inherited StatusBar: TStatusBar - Top = 618 - Width = 901 - ExplicitTop = 618 - ExplicitWidth = 901 - end - inline frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica [3] - Left = 0 - Top = 105 - Width = 901 - Height = 513 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitTop = 105 - ExplicitWidth = 901 - ExplicitHeight = 513 - inherited cxGrid: TcxGrid - Width = 901 - Height = 513 - ExplicitWidth = 901 - ExplicitHeight = 513 - inherited cxGridView: TcxGridDBTableView - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = 'N'#186' de ventas: 0' - Kind = skCount - FieldName = 'NUMTALON' - Column = frViewListaReferenciaGenerica1.cxGridViewNUMTALON - end> - end - end - end - object JvTabBar1: TJvTabBar [4] - Left = 0 - Top = 76 - Width = 901 - Height = 29 - Cursor = crHandPoint - CloseButton = False - Painter = JvModernTabBarPainter1 - Images = SmallImages - Tabs = < - item - Caption = 'Pendientes' - Selected = True - ImageIndex = 26 - end - item - Caption = 'En espera' - ImageIndex = 24 - end - item - Caption = 'Resueltos' - ImageIndex = 25 - end> - OnTabSelected = JvTabBar1TabSelected - end - inherited EditorActionList: TActionList [5] - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Caption = 'Rectificar referencia' - Hint = 'Asocia un producto con'#13#10'la venta de referencia gen'#233'rica' - OnExecute = actModificarExecute - end - inherited actEliminar: TAction - Caption = 'Eliminar rectificaci'#243'n' - Hint = - 'Elimina la asociaci'#243'n de un producto'#13#10'con esta venta con referen' + - 'cia gen'#233'rica' - end - inherited actPrevisualizar: TAction - Caption = '&Previsualizar formulario' - Hint = 'Previsualizar el formulario '#13#10'para indicar los productos' - end - inherited actImprimir: TAction - Caption = 'Imprimir formulario' - Hint = 'Imprimir el formulario'#13#10'para indicar los productos' - end - inherited actDuplicar: TAction - Enabled = False - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - OnUpdate = actAnchoAutoUpdate - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - OnUpdate = actAnchoAutoUpdate - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - OnUpdate = actAnchoAutoUpdate - end - object actPendiente: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Pendiente' - GroupIndex = 1 - ImageIndex = 26 - OnExecute = actPendienteExecute - OnUpdate = actPendienteUpdate - end - object actEspera: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'En espera' - GroupIndex = 1 - ImageIndex = 24 - OnExecute = actEsperaExecute - OnUpdate = actEsperaUpdate - end - object actResuelto: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Resuelto' - GroupIndex = 1 - ImageIndex = 25 - OnExecute = actResueltoExecute - OnUpdate = actResueltoUpdate - end - end - inherited SmallImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 - 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 - 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 - EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 - EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 - 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C - 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 - E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 - 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE - F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 - 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD - 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 - 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 - AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 - 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 - 051D2C6D56E60000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [8] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - inherited dsDataTable: TDADataSource [10] - Top = 136 - end - inherited GridPopupMenu: TPopupMenu - Left = 112 - Top = 128 - object Cambiarelestado1: TMenuItem [3] - Caption = 'Cambiar el estado a...' - object Pendiente1: TMenuItem - Action = actPendiente - AutoCheck = True - GroupIndex = 1 - end - object Enespera1: TMenuItem - Action = actEspera - AutoCheck = True - GroupIndex = 1 - end - object Resuelto1: TMenuItem - Action = actResuelto - AutoCheck = True - GroupIndex = 1 - end - end - end - object JvModernTabBarPainter1: TJvModernTabBarPainter - BorderColor = clWindow - ControlDivideColor = cl3DDkShadow - DividerColor = clBtnShadow - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - DisabledFont.Charset = DEFAULT_CHARSET - DisabledFont.Color = clGrayText - DisabledFont.Height = -11 - DisabledFont.Name = 'MS Sans Serif' - DisabledFont.Style = [] - SelectedFont.Charset = DEFAULT_CHARSET - SelectedFont.Color = clHighlight - SelectedFont.Height = -11 - SelectedFont.Name = 'MS Sans Serif' - SelectedFont.Style = [fsBold] - Left = 320 - Top = 128 - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas deleted file mode 100644 index d4e4299..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uEditorListaReferenciaGenerica.pas +++ /dev/null @@ -1,447 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorListaReferenciaGenerica; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorGridBase, Menus, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, - TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, - JvNavigationPane, uBizReferenciaGenerica, uCustomView, uViewBase, - uViewControlGrid, uViewListaReferenciaGenerica, uViewGridBase, uViewGrid, - JvTabBar, Grids, DBGrids, StdCtrls, Buttons, uDAInterfaces; - -type - IEditorListaReferenciaGenerica = interface(IEditorGridBase) - ['{875E6A40-3243-4325-A28B-D415BEC291BF}'] - function GetItems: IBizReferenciaGenerica; - procedure SetItems(const Value: IBizReferenciaGenerica); - property Items: IBizReferenciaGenerica read GetItems - write SetItems; - end; - - TfEditorListaReferenciaGenerica = class(TfEditorGridBase, IEditorListaReferenciaGenerica) - frViewListaReferenciaGenerica1: TfrViewListaReferenciaGenerica; - JvTabBar1: TJvTabBar; - JvModernTabBarPainter1: TJvModernTabBarPainter; - actPendiente: TAction; - Cambiarelestado1: TMenuItem; - Pendiente1: TMenuItem; - Enespera1: TMenuItem; - Resuelto1: TMenuItem; - TBXSubmenuItem2: TTBXSubmenuItem; - TBXSeparatorItem16: TTBXSeparatorItem; - TBXItem35: TTBXItem; - TBXItem36: TTBXItem; - TBXItem37: TTBXItem; - actEspera: TAction; - actResuelto: TAction; - procedure FormShow(Sender: TObject); - procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); - procedure actModificarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure actAnchoAutoUpdate(Sender: TObject); - procedure actEliminarUpdate(Sender: TObject); - procedure actPrevisualizarUpdate(Sender: TObject); - procedure actImprimirUpdate(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPendienteExecute(Sender: TObject); - procedure actPendienteUpdate(Sender: TObject); - procedure actEsperaExecute(Sender: TObject); - procedure actEsperaUpdate(Sender: TObject); - procedure actResueltoUpdate(Sender: TObject); - procedure actResueltoExecute(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - protected - FItems : IBizReferenciaGenerica; - function GetItems: IBizReferenciaGenerica; - procedure SetItems(const Value: IBizReferenciaGenerica); - procedure CambiarEstado (const NuevoEstado : TRefGenEstado); - public - property Items: IBizReferenciaGenerica read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, - uDBSelectionList, uDataModuleReferenciaGenerica, cxGridDBTableView, - cxGridDBDataDefinitions; - - -{$R *.dfm} - -{ TfEditorListaReferenciaGenerica } - -constructor TfEditorListaReferenciaGenerica.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewListaReferenciaGenerica1; -end; - -function TfEditorListaReferenciaGenerica.GetItems: IBizReferenciaGenerica; -begin - Result := FItems; -end; - -procedure TfEditorListaReferenciaGenerica.SetItems( - const Value: IBizReferenciaGenerica); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewListaReferenciaGenerica1.dsDataSource.DataTable := FItems.DataTable; - end; -end; - -procedure TfEditorListaReferenciaGenerica.FormShow(Sender: TObject); -begin - inherited; - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - FItems.DataTable.Active := True; - Items.VerPendientes; - with (ViewGrid as IViewListaReferenciaGenerica) do - begin - VerPendientes; - ExpandirTodo; - GotoFirst; - end; -end; - -procedure TfEditorListaReferenciaGenerica.JvTabBar1TabSelected( - Sender: TObject; Item: TJvTabBarItem); -begin - inherited; - case Item.Index of - 0 : begin - Items.VerPendientes; - (ViewGrid as IViewListaReferenciaGenerica).VerPendientes; - end; - - 1 : begin - Items.VerEnEspera; - (ViewGrid as IViewListaReferenciaGenerica).VerEnEspera; - end; - - 2 : begin - Items.VerResueltos; - (ViewGrid as IViewListaReferenciaGenerica).VerResueltos - end; - end; - ViewGrid.ExpandirTodo; - ViewGrid.GotoFirst; -end; - -procedure TfEditorListaReferenciaGenerica.actModificarExecute( - Sender: TObject); -var - AObj : IBizReferenciaGenerica; - ASelectedRowList : ISelectedRowList; -begin - inherited; - if Supports(FItems, ISelectedRowList, ASelectedRowList) then - begin - ShowHourglassCursor; - try - ViewGrid._FocusedView.BeginUpdate; - try - SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); - AObj := dmReferenciaGenerica.GetSelectedItems(Items); - finally - ViewGrid._FocusedView.EndUpdate; - end; - AObj.Show; - finally - AObj := nil; - ASelectedRowList := nil; - actRefrescar.Execute; - HideHourglassCursor - end; - end; -end; - -procedure TfEditorListaReferenciaGenerica.actExpandirExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorListaReferenciaGenerica.actContraerExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -procedure TfEditorListaReferenciaGenerica.actAnchoAutoExecute( - Sender: TObject); -begin - inherited; - ViewGrid.AjustarAncho; -end; - -procedure TfEditorListaReferenciaGenerica.actAnchoAutoUpdate( - Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and Assigned(ViewGrid) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorListaReferenciaGenerica.actEliminarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (JvTabBar1.SelectedTab.Index = 2); - -end; - -procedure TfEditorListaReferenciaGenerica.actPrevisualizarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (JvTabBar1.SelectedTab.Index < 2) and - (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) -end; - -procedure TfEditorListaReferenciaGenerica.actImprimirUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (JvTabBar1.SelectedTab.Index < 2) and - (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) -end; - -procedure TfEditorListaReferenciaGenerica.actPrevisualizarExecute( - Sender: TObject); -var - ACentro : String; - AVendedor : String; - AGroupIndexInicial : Integer; - AEstado : TRefGenEstado; - AFiltro : String; -begin - // inherited; - AGroupIndexInicial := 0; - - while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do - begin - (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); - ViewGrid._FocusedView.Controller.GoToNext(True); - AGroupIndexInicial := AGroupIndexInicial + 1; - end; - - ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; - if AGroupIndexInicial < 2 then - AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; - - case JvTabBar1.SelectedTab.Index of - 0 : AEstado := rgPendiente; - 1 : AEstado := rgEnEspera; - 2 : AEstado := rgResuelto; - else - AEstado := rgPendiente; - end; - - AFiltro := ViewGrid.GetFilterAsSQL; - - Items.Preview(ACentro, AVendedor, AEstado, AFiltro); -end; - -procedure TfEditorListaReferenciaGenerica.actImprimirExecute( - Sender: TObject); -var - ACentro : String; - AVendedor : String; - AGroupIndexInicial : Integer; - AString : String; - AEstado : TRefGenEstado; - AFiltro : String; -begin - // inherited; - AGroupIndexInicial := 0; - - while (ViewGrid._FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do - begin - (ViewGrid._FocusedView.Controller.FocusedRecord as TcxGridGroupRow).Expand(True); - ViewGrid._FocusedView.Controller.GoToNext(True); - AGroupIndexInicial := AGroupIndexInicial + 1; - end; - - ACentro := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODCENTRO').Index]; - if AGroupIndexInicial < 2 then - AVendedor := ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CODVENDEDOR').Index]; - - case JvTabBar1.SelectedTab.Index of - 0 : AEstado := rgPendiente; - 1 : AEstado := rgEnEspera; - 2 : AEstado := rgResuelto; - else - AEstado := rgPendiente; - end; - - AFiltro := ViewGrid.GetFilterAsSQL; - - Items.Print(ACentro, AVendedor, AEstado, AFiltro); - - AString := '¿Desea que las ventas del centro ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('CENTRO').Index]; - if Length(AVendedor) > 0 then - AString := AString + #10#13 + 'y del vendedor ' + ViewGrid._FocusedView.Controller.FocusedRecord.Values[ViewGrid._FocusedView.GetColumnByFieldName('VENDEDOR').Index]; - - AString := AString + #10#13 + 'pasen a espera de la rectificación?'; - - if (Application.MessageBox(PAnsiChar(AString), 'Atención', MB_YESNO) = IDYES) then - CambiarEstado(rgEnEspera); -end; - -procedure TfEditorListaReferenciaGenerica.actModificarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (ViewGrid._FocusedView.Controller.SelectedRecordCount > 0) -end; - -procedure TfEditorListaReferenciaGenerica.actRefrescarExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; - ViewGrid.GotoFirst; -end; - -procedure TfEditorListaReferenciaGenerica.actPendienteExecute( - Sender: TObject); -begin - CambiarEstado(rgPendiente); -end; - -procedure TfEditorListaReferenciaGenerica.actPendienteUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = rgPendiente); -end; - -procedure TfEditorListaReferenciaGenerica.actEsperaExecute( - Sender: TObject); -begin - CambiarEstado(rgEnEspera); -end; - -procedure TfEditorListaReferenciaGenerica.actEsperaUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = rgEnEspera); -end; - -procedure TfEditorListaReferenciaGenerica.actResueltoUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = rgResuelto); -end; - -procedure TfEditorListaReferenciaGenerica.actResueltoExecute( - Sender: TObject); -begin - CambiarEstado(rgResuelto); -end; - -procedure TfEditorListaReferenciaGenerica.CambiarEstado( - const NuevoEstado: TRefGenEstado); -var - ASelectedRowList : ISelectedRowList; - i : Integer; -begin - inherited; - if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then - if Supports(FItems, ISelectedRowList, ASelectedRowList) then - begin - ShowHourglassCursor; - FItems.DataTable.DisableControls; - - try - SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); - try - for i := 0 to ASelectedRowList.SelectedRows.Count - 1 do - begin - FItems.First; - if FItems.Locate('RecID', ASelectedRowList.SelectedRows[i]) then - begin - FItems.Edit; - FItems.FECHACAMBIO := Now; - FItems.Estado := NuevoEstado; - FItems.Post; - end; - end; - FItems.DataTable.ApplyUpdates; - ViewGrid._FocusedView.Controller.ClearSelection; - except - FItems.DataTable.CancelUpdates; - end; - finally - FItems.DataTable.EnableControls; - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaReferenciaGenerica.actEliminarExecute( - Sender: TObject); -var - AObj : IBizReferenciaGenerica; - ASelectedRowList : ISelectedRowList; - i : integer; -begin -// inherited; - if Supports(FItems, ISelectedRowList, ASelectedRowList) then - begin - ShowHourglassCursor; - try - SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, ASelectedRowList); - AObj := dmReferenciaGenerica.GetSelectedItems(Items); - while not AObj.DataTable.EOF do - AObj.Delete; - AObj.DataTable.ApplyUpdates; - finally - AObj := nil; - ASelectedRowList := nil; - HideHourglassCursor; - actRefrescar.Execute; - end; - end; -end; - - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm deleted file mode 100644 index 872b578..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.dfm +++ /dev/null @@ -1,132 +0,0 @@ -object ModuleReferenciaGenerica: TModuleReferenciaGenerica - OldCreateOrder = True - DefaultAction = actRefGenericas - Description = 'Control de referencia gen'#233'rica' - ModuleMenu = MainMenu - ModuleName = 'Control de referencia gen'#233'rica' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.3' - Left = 779 - Top = 651 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002024944415478DA - 63FCFFFF3F0323232303B5C04603C6FF40AAC2FFC2FF4E109F919A16800CF789 - CA61607AB89861D3D18F604BA866C19A1533FFB3766430F859F333301CFBC0B0 - E93FD8CC16AA580032DCC6C19FE1C58B170CEB162D6430DE3781E1F985FF0C19 - C010A2D882030B32FEDFF861C0606161C1F0E0C103B0252B96AF603870F00023 - C5710032DCCC458781E9C9198605172CC062C88613B4A063FABAFF7FFFFD63F8 - FBF71FC33F28FDF7DF5F867F40DA43E23803CCF0E7DF5E31BCBCB58D21A44586 - C12BBA9C01A667415F21EE2002195E9E110834F83F54C37FB8C6F36B0BB11A7E - E8F805B0BA3F403551590D0CE7774EC76E01A586EF397A8E61DED24DD82DA0D4 - 7090BAFD272E60B7009FE1A797A432EC7FE2C750EBBB0DAFE17F80EA0F9FBA84 - 6901BAE1E63EB90C87D74F8046F07F86964C6D869A684B869E63010CBEB26138 - 0D07D1C7CE5E41B5A073C67AAC86CF5FB38F21C6DF9E61E7E22C86D3C70E3264 - 1B2932F46EBDC7B0F1F61F9C8683F8A72E5CC3F481A17BE6FFBEA622060B7D05 - B02530C341ECE4E424867BB7AF33B8E97E61C8EB3E0B0F3E6C8683E8B3976F60 - 8F039825465A3248F1F08FC1C5D19A4149559361D2E419040D07E10BD76EE14E - 45304B74D524A1190B622072C4E3331CC4BE72F30E6E0B902D51571425D97010 - 206801B22520C5E4008216C02C21CB7428805B404B306AC1C05B000079BE9B8D - E3C07E050000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actRefGenericas: TAction - Category = 'Ventas' - Caption = 'Control de referencias gen'#233'ricas' - ImageIndex = 0 - OnExecute = actRefGenericasExecute - end - end - object MainMenu: TMainMenu - Tag = 1000 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Ventas' - GroupIndex = 1 - ImageIndex = 4 - object Controldeventasenproceso1: TMenuItem - Tag = 110 - Action = actRefGenericas - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63642011FC3060F80FA2392E30308268465235B346E532FC5E369961D1050686 - 34A07EA20D383183E1FF13A54B0C6F2E2D65602AE9048B116D0048B39ECF1486 - 97B7B6312C3C64C620D5D000D68CD50B7D7337FFFFF3E72FC39F3F7F1840B41B - 7B38034C330887B4C830F8C65781E5FEFEFD8B6A00487361920FC3BFFFFF810A - FE319C9FC782A1F9C8C94B60CDBF81B86DD2128401A46ABEFFE41DC3A2959B20 - 06A06B9EBF783983C1EF580671352FAC9A7F01F1D3171F19E62E5DC7C008D2EC - E960CAA0A628C6E01A59C1B0797E33C3E2E5AB18126223192E005D814DF39FDF - FF185EBEFDCC3063E12A880BDAA6AEF91FE861C3202729C8F0E7EF3F066D4D55 - 78B860D30CA2DF7FFCC63079CE324418D4F52DFB1FE9EFC4202AC403F6C61F60 - 08FFF9FB1FAB6610FFCBD79F0C7D3316A1C64269DBFCFF49E19EE0002206744E - 9E87990E72EB66FE07DB0E8DE7DFBFFF40F01F28FE8D4A33FEFFFF9F94EC8001 - 06DE00000C3C25BBC192F80F0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD2520000020F4944415478DA - 63FCFFFF3F033D01E3C8B09091919126866F346004FBC6FFC27FB00560BB6865 - 21C8329FA81C06A6878B19361DFD08B6946616AE5931F33F6B4706839F353F03 - C3B10F0C9B201E64F03BFF8F91EA16822CB371F06778F1E205C3BA450B198CF7 - 4D6080052BD57D786041C6FF1B3F0C182C2C2C181E3C7800B674C5F2150C070E - 1EA07E1C822C3373D161607A728661C1050BB018B26544593879D176A2F28CEE - BF8D0C30CB9E7F7BC5F0F2D6368690161986F2B6D928EA72623D70C721C832A0 - 02BC16FDF9FB9FE1E8922CAC961D3B7599E1EFBF7F4035FF18FE0271646603C3 - B91DD3B05B486DCB761F39C7306FE926EC1652DB3210BDFFF805EC16D2C2B2DF - BFFF321C397319D34264CB2E5C7FCA9054D8CA30AFBF9AC140531AC5B28A3865 - 060EC54E865ADF6D445906A24F9CBF8A6AE194C53B507C66E4910592048933C0 - C44196810CAA4E5465A889B664E83916C0E02B1B46D03210FFF4A5EB983E3474 - CFFCDFD754C4E060A602F62128186C4C74C13E8459B661760AC3E9630719B28D - 14197AB7DE63D878FB0F41CB40F4F9AB37B1C721B2A5C8C108D3181D13C370EF - F6750637DD2F0C45FD17C0E2842C03E1CB376EE34EA5C896225B06A26DAC4C19 - 94543519A64D9F4DB46520F3AFDCBC83DB42644B2D0D14E106FCFEF317C57262 - 2D03018216225B6AA4254B9165445B886C294803A580280B6196526C1B14C02D - A42718B570E85B0800B34ACDE7425C769D0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas deleted file mode 100644 index 6a7c6fc..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uPluginControllerReferenciaGenerica.pas +++ /dev/null @@ -1,72 +0,0 @@ -unit uPluginControllerReferenciaGenerica; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCReferenciaGenerica = interface(IInterface) - ['{11391827-E14C-449B-AA0A-56193B945226}'] - end; - - TModuleReferenciaGenerica = class(TModuleController, IMCReferenciaGenerica) - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - SmallImages: TPngImageList; - actRefGenericas: TAction; - Controldeventasenproceso1: TMenuItem; - procedure actRefGenericasExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uEditorListaReferenciaGenerica, - uBizReferenciaGenerica, uDataModuleReferenciaGenerica; - -function GetModule : TModuleController; -begin - Result := TModuleReferenciaGenerica.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleReferenciaGenerica.actRefGenericasExecute(Sender: TObject); -var - aControl: IBizReferenciaGenerica; - aObj: IEditorListaReferenciaGenerica; -begin - aControl := dmReferenciaGenerica.GetItems; - aObj := TfEditorListaReferenciaGenerica.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleReferenciaGenerica); - -finalization - UnRegisterModuleClass(TModuleReferenciaGenerica); - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm deleted file mode 100644 index dc062a3..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.dfm +++ /dev/null @@ -1,140 +0,0 @@ -inherited frViewListaReferenciaGenerica: TfrViewListaReferenciaGenerica - Width = 504 - ExplicitWidth = 504 - inherited cxGrid: TcxGrid - Width = 504 - ExplicitWidth = 504 - inherited cxGridView: TcxGridDBTableView - OnMouseDown = cxGridViewMouseDown - FilterBox.Visible = fvNever - OnCellDblClick = cxGridViewCellDblClick - DataController.Filter.Options = [] - DataController.KeyFieldNames = 'RecID' - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = 'N'#186' de ventas: 0' - Kind = skCount - FieldName = 'NUMTALON' - Column = cxGridViewNUMTALON - end> - OptionsSelection.MultiSelect = True - OptionsSelection.UnselectFocusedRecordOnExit = True - OptionsView.GridLines = glVertical - OptionsView.GroupRowStyle = grsOffice11 - object cxGridViewColumn1: TcxGridDBColumn - DataBinding.FieldName = 'RECID' - Visible = False - end - object cxGridViewFECHACAMBIO: TcxGridDBColumn - Caption = 'Cambiado' - DataBinding.FieldName = 'FECHACAMBIO' - Visible = False - end - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha venta' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxDateEditProperties' - SortIndex = 0 - SortOrder = soAscending - end - object cxGridViewCODCENTRO: TcxGridDBColumn - DataBinding.FieldName = 'CODCENTRO' - Visible = False - end - object cxGridViewCENTRO: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - PropertiesClassName = 'TcxTextEditProperties' - Visible = False - GroupIndex = 0 - end - object cxGridViewCODVENDEDOR: TcxGridDBColumn - DataBinding.FieldName = 'CODVENDEDOR' - Visible = False - end - object cxGridViewVENDEDOR: TcxGridDBColumn - Caption = 'Vendedor' - DataBinding.FieldName = 'VENDEDOR' - PropertiesClassName = 'TcxTextEditProperties' - Visible = False - GroupIndex = 1 - end - object cxGridViewNUMTALON: TcxGridDBColumn - Caption = 'Tal'#243'n' - DataBinding.FieldName = 'NUMTALON' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'C'#243'digo' - DataBinding.FieldName = 'CODIGO' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewTALLA: TcxGridDBColumn - Caption = 'Talla' - DataBinding.FieldName = 'TALLA' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewVTAPROCESO: TcxGridDBColumn - Caption = 'Proceso' - DataBinding.FieldName = 'VTAPROCESO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVTAFINAL: TcxGridDBColumn - Caption = 'Final/Resc' - DataBinding.FieldName = 'VTAFINAL' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVTATERM: TcxGridDBColumn - Caption = 'Term/Dev' - DataBinding.FieldName = 'VTATERM' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVALTOT: TcxGridDBColumn - Caption = 'Importe' - DataBinding.FieldName = 'VALTOT' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleResuelto: TcxStyle - AssignedValues = [svTextColor] - TextColor = 5921370 - end - object cxStyleEnEspera1semana: TcxStyle - AssignedValues = [svTextColor] - TextColor = clRed - end - object cxStyleResueltoRectificado: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas deleted file mode 100644 index 5150184..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Cliente/uViewListaReferenciaGenerica.pas +++ /dev/null @@ -1,180 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewListaReferenciaGenerica; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid, uBizReferenciaGenerica, dxPSGlbl, - dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, - dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, - cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, uDAInterfaces; - -type - IViewListaReferenciaGenerica = interface(IViewGrid) - ['{2D43B302-DAA6-45FE-BC72-BAD3591CCE67}'] - procedure VerPendientes; - procedure VerEnEspera; - procedure VerResueltos; - end; - - TfrViewListaReferenciaGenerica = class(TfrViewGrid, IViewListaReferenciaGenerica) - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewVENDEDOR: TcxGridDBColumn; - cxGridViewNUMTALON: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewTALLA: TcxGridDBColumn; - cxGridViewVTAPROCESO: TcxGridDBColumn; - cxGridViewVTAFINAL: TcxGridDBColumn; - cxGridViewVTATERM: TcxGridDBColumn; - cxGridViewVALTOT: TcxGridDBColumn; - cxGridViewCODCENTRO: TcxGridDBColumn; - cxGridViewCODVENDEDOR: TcxGridDBColumn; - cxGridViewFECHACAMBIO: TcxGridDBColumn; - cxStyleResuelto: TcxStyle; - cxStyleEnEspera1semana: TcxStyle; - cxStyleResueltoRectificado: TcxStyle; - cxGridViewColumn1: TcxGridDBColumn; - procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - private - FEstado : TRefGenEstado; - public - procedure VerPendientes; - procedure VerEnEspera; - procedure VerResueltos; - end; - - -implementation - -uses uDataModuleReferenciaGenerica, DateUtils, cxGridDBDataDefinitions; - -{$R *.dfm} - -procedure TfrViewListaReferenciaGenerica.cxGridViewCellDblClick( - Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); -begin - inherited; - if Assigned(FOnDblClick) then - FOnDblClick(Sender); -end; - -procedure TfrViewListaReferenciaGenerica.VerEnEspera; -begin - cxGridViewFECHACAMBIO.Visible := True; - cxGridViewFECHACAMBIO.Caption := 'En espera desde'; - FEstado := rgEnEspera; -end; - -procedure TfrViewListaReferenciaGenerica.VerPendientes; -begin - cxGridViewFECHACAMBIO.Visible := False; - FEstado := rgPendiente; -end; - -procedure TfrViewListaReferenciaGenerica.VerResueltos; -begin - cxGridViewFECHACAMBIO.Visible := True; - cxGridViewFECHACAMBIO.Caption := 'Fecha de rectificación'; - FEstado := rgResuelto; -end; - -procedure TfrViewListaReferenciaGenerica.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -var - AColumn : TcxGridDBColumn; - AFecha : TDateTime; -begin - inherited; - - // La fila es la cabecera de un grupo - if ARecord.Expandable then - Exit; - - if FEstado = rgResuelto then - begin - if AItem.Index in [cxGridViewPRODUCTO.Index, cxGridViewCOLOR.Index, - cxGridViewTALLA.Index] then - AStyle := cxStyleResueltoRectificado - else - AStyle := cxStyleResuelto; - Exit; - end; - - if FEstado = rgEnEspera then - begin - AColumn := cxGridViewFECHACAMBIO; - if Assigned(AColumn) and (AColumn.Visible) then - begin - try - AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); - except - on Exception do - AFecha := Now; - end; - - if DaysBetween(Now, AFecha) > 7 then - AStyle := cxStyleEnEspera1semana - end; - end; -end; - -procedure TfrViewListaReferenciaGenerica.cxGridViewMouseDown( - Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, - Y: Integer); -var - HT: TcxCustomGridHitTest; - ARecord: TcxCustomGridRecord; - AGroupIndex, I, AIndex: Integer; - AList: TList; - DC: TcxGridDBDataController; -begin - inherited; - HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); - if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) - and not (HT is TcxGridExpandButtonHitTest) then - begin - DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; - AList := TList.Create; - ShowHourglassCursor; - TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; - try - AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; - DC.Groups.LoadRecordIndexes(AList, AGroupIndex); - for I := 0 to AList.Count - 1 do - begin - AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); - DC.SelectRows(AIndex, AIndex); - end; - finally - FreeAndNil(AList); - TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; - HideHourglassCursor; - end; - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas deleted file mode 100644 index 9210b56..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaClient_Intf.pas +++ /dev/null @@ -1,913 +0,0 @@ -unit schReferenciaGenericaClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID__ExisteFilaReferenciaGenerica = '{D1595576-9979-4EBB-840B-FF8B69E9AF21}'; - RID_InformeRefGenerica = '{C8CFA7EB-16B5-4AB4-A583-3EBD915B44B8}'; - RID_GetProducto = '{5D97B590-D22E-4D97-AFC6-400986B4D9FA}'; - RID_ReferenciaGenerica = '{A40BCD4C-E370-497D-8C28-118CBC1A3664}'; - - { Data table names } - nme__ExisteFilaReferenciaGenerica = '_ExisteFilaReferenciaGenerica'; - nme_InformeRefGenerica = 'InformeRefGenerica'; - nme_GetProducto = 'GetProducto'; - nme_ReferenciaGenerica = 'ReferenciaGenerica'; - - { _ExisteFilaReferenciaGenerica fields } - fld__ExisteFilaReferenciaGenericaNUMINF = 'NUMINF'; - fld__ExisteFilaReferenciaGenericaCLAVE1 = 'CLAVE1'; - fld__ExisteFilaReferenciaGenericaCLAVE2 = 'CLAVE2'; - fld__ExisteFilaReferenciaGenericaCLAVE3 = 'CLAVE3'; - fld__ExisteFilaReferenciaGenericaNUMCON = 'NUMCON'; - - { _ExisteFilaReferenciaGenerica field indexes } - idx__ExisteFilaReferenciaGenericaNUMINF = 0; - idx__ExisteFilaReferenciaGenericaCLAVE1 = 1; - idx__ExisteFilaReferenciaGenericaCLAVE2 = 2; - idx__ExisteFilaReferenciaGenericaCLAVE3 = 3; - idx__ExisteFilaReferenciaGenericaNUMCON = 4; - - { InformeRefGenerica fields } - fld_InformeRefGenericaCODCENTRO = 'CODCENTRO'; - fld_InformeRefGenericaCENTRO = 'CENTRO'; - fld_InformeRefGenericaCODVENDEDOR = 'CODVENDEDOR'; - fld_InformeRefGenericaVENDEDOR = 'VENDEDOR'; - fld_InformeRefGenericaFECHA = 'FECHA'; - fld_InformeRefGenericaNUMTALON = 'NUMTALON'; - fld_InformeRefGenericaCANTIDAD = 'CANTIDAD'; - fld_InformeRefGenericaVALTOT = 'VALTOT'; - - { InformeRefGenerica field indexes } - idx_InformeRefGenericaCODCENTRO = 0; - idx_InformeRefGenericaCENTRO = 1; - idx_InformeRefGenericaCODVENDEDOR = 2; - idx_InformeRefGenericaVENDEDOR = 3; - idx_InformeRefGenericaFECHA = 4; - idx_InformeRefGenericaNUMTALON = 5; - idx_InformeRefGenericaCANTIDAD = 6; - idx_InformeRefGenericaVALTOT = 7; - - { GetProducto fields } - fld_GetProductoCODIGO_BARRA = 'CODIGO_BARRA'; - fld_GetProductoCOR_PRODUTO = 'COR_PRODUTO'; - fld_GetProductoDESC_PRODUTO = 'DESC_PRODUTO'; - fld_GetProductoPRODUTO = 'PRODUTO'; - fld_GetProductoGRADE = 'GRADE'; - - { GetProducto field indexes } - idx_GetProductoCODIGO_BARRA = 0; - idx_GetProductoCOR_PRODUTO = 1; - idx_GetProductoDESC_PRODUTO = 2; - idx_GetProductoPRODUTO = 3; - idx_GetProductoGRADE = 4; - - { ReferenciaGenerica fields } - fld_ReferenciaGenericaNUMINF = 'NUMINF'; - fld_ReferenciaGenericaCLAVE1 = 'CLAVE1'; - fld_ReferenciaGenericaCLAVE2 = 'CLAVE2'; - fld_ReferenciaGenericaCLAVE3 = 'CLAVE3'; - fld_ReferenciaGenericaNUMCON = 'NUMCON'; - fld_ReferenciaGenericaFECHA = 'FECHA'; - fld_ReferenciaGenericaCODCENTRO = 'CODCENTRO'; - fld_ReferenciaGenericaCENTRO = 'CENTRO'; - fld_ReferenciaGenericaCODVENDEDOR = 'CODVENDEDOR'; - fld_ReferenciaGenericaVENDEDOR = 'VENDEDOR'; - fld_ReferenciaGenericaNUMTALON = 'NUMTALON'; - fld_ReferenciaGenericaCODIGO_BARRA = 'CODIGO_BARRA'; - fld_ReferenciaGenericaCODIGO = 'CODIGO'; - fld_ReferenciaGenericaPRODUCTO = 'PRODUCTO'; - fld_ReferenciaGenericaCOLOR = 'COLOR'; - fld_ReferenciaGenericaTALLA = 'TALLA'; - fld_ReferenciaGenericaVTAPROCESO = 'VTAPROCESO'; - fld_ReferenciaGenericaVTAFINAL = 'VTAFINAL'; - fld_ReferenciaGenericaVTATERM = 'VTATERM'; - fld_ReferenciaGenericaVALTOT = 'VALTOT'; - fld_ReferenciaGenericaESTADO = 'ESTADO'; - fld_ReferenciaGenericaFECHACAMBIO = 'FECHACAMBIO'; - - { ReferenciaGenerica field indexes } - idx_ReferenciaGenericaNUMINF = 0; - idx_ReferenciaGenericaCLAVE1 = 1; - idx_ReferenciaGenericaCLAVE2 = 2; - idx_ReferenciaGenericaCLAVE3 = 3; - idx_ReferenciaGenericaNUMCON = 4; - idx_ReferenciaGenericaFECHA = 5; - idx_ReferenciaGenericaCODCENTRO = 6; - idx_ReferenciaGenericaCENTRO = 7; - idx_ReferenciaGenericaCODVENDEDOR = 8; - idx_ReferenciaGenericaVENDEDOR = 9; - idx_ReferenciaGenericaNUMTALON = 10; - idx_ReferenciaGenericaCODIGO_BARRA = 11; - idx_ReferenciaGenericaCODIGO = 12; - idx_ReferenciaGenericaPRODUCTO = 13; - idx_ReferenciaGenericaCOLOR = 14; - idx_ReferenciaGenericaTALLA = 15; - idx_ReferenciaGenericaVTAPROCESO = 16; - idx_ReferenciaGenericaVTAFINAL = 17; - idx_ReferenciaGenericaVTATERM = 18; - idx_ReferenciaGenericaVALTOT = 19; - idx_ReferenciaGenericaESTADO = 20; - idx_ReferenciaGenericaFECHACAMBIO = 21; - -type - { I_ExisteFilaReferenciaGenerica } - I_ExisteFilaReferenciaGenerica = interface(IDAStronglyTypedDataTable) - ['{98972C64-DAD7-4646-90BE-053EFD062BBF}'] - { Property getters and setters } - function GetNUMINFValue: String; - procedure SetNUMINFValue(const aValue: String); - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetCLAVE2Value: Integer; - procedure SetCLAVE2Value(const aValue: Integer); - function GetCLAVE3Value: Integer; - procedure SetCLAVE3Value(const aValue: Integer); - function GetNUMCONValue: Integer; - procedure SetNUMCONValue(const aValue: Integer); - - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; - end; - - { T_ExisteFilaReferenciaGenericaDataTableRules } - T_ExisteFilaReferenciaGenericaDataTableRules = class(TDADataTableRules, I_ExisteFilaReferenciaGenerica) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetNUMCONValue: Integer; virtual; - procedure SetNUMCONValue(const aValue: Integer); virtual; - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IInformeRefGenerica } - IInformeRefGenerica = interface(IDAStronglyTypedDataTable) - ['{6AFE9984-0F66-4AC2-B5E7-87F3C48B81B9}'] - { Property getters and setters } - function GetCODCENTROValue: String; - procedure SetCODCENTROValue(const aValue: String); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetCODVENDEDORValue: String; - procedure SetCODVENDEDORValue(const aValue: String); - function GetVENDEDORValue: String; - procedure SetVENDEDORValue(const aValue: String); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetNUMTALONValue: String; - procedure SetNUMTALONValue(const aValue: String); - function GetCANTIDADValue: String; - procedure SetCANTIDADValue(const aValue: String); - function GetVALTOTValue: Float; - procedure SetVALTOTValue(const aValue: Float); - - - { Properties } - property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; - property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; - end; - - { TInformeRefGenericaDataTableRules } - TInformeRefGenericaDataTableRules = class(TDADataTableRules, IInformeRefGenerica) - private - protected - { Property getters and setters } - function GetCODCENTROValue: String; virtual; - procedure SetCODCENTROValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODVENDEDORValue: String; virtual; - procedure SetCODVENDEDORValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCANTIDADValue: String; virtual; - procedure SetCANTIDADValue(const aValue: String); virtual; - function GetVALTOTValue: Float; virtual; - procedure SetVALTOTValue(const aValue: Float); virtual; - - { Properties } - property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CANTIDAD: String read GetCANTIDADValue write SetCANTIDADValue; - property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { - Datos de una prenda - } - { IGetProducto } - IGetProducto = interface(IDAStronglyTypedDataTable) - ['{66AEFCA5-9C07-41F0-A81B-9A0965270310}'] - { Property getters and setters } - function GetCODIGO_BARRAValue: String; - procedure SetCODIGO_BARRAValue(const aValue: String); - function GetCOR_PRODUTOValue: String; - procedure SetCOR_PRODUTOValue(const aValue: String); - function GetDESC_PRODUTOValue: String; - procedure SetDESC_PRODUTOValue(const aValue: String); - function GetPRODUTOValue: String; - procedure SetPRODUTOValue(const aValue: String); - function GetGRADEValue: String; - procedure SetGRADEValue(const aValue: String); - - - { Properties } - property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; - property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; - property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; - property GRADE: String read GetGRADEValue write SetGRADEValue; - end; - - { TGetProductoDataTableRules } - TGetProductoDataTableRules = class(TDADataTableRules, IGetProducto) - private - protected - { Property getters and setters } - function GetCODIGO_BARRAValue: String; virtual; - procedure SetCODIGO_BARRAValue(const aValue: String); virtual; - function GetCOR_PRODUTOValue: String; virtual; - procedure SetCOR_PRODUTOValue(const aValue: String); virtual; - function GetDESC_PRODUTOValue: String; virtual; - procedure SetDESC_PRODUTOValue(const aValue: String); virtual; - function GetPRODUTOValue: String; virtual; - procedure SetPRODUTOValue(const aValue: String); virtual; - function GetGRADEValue: String; virtual; - procedure SetGRADEValue(const aValue: String); virtual; - - { Properties } - property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property COR_PRODUTO: String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; - property DESC_PRODUTO: String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; - property PRODUTO: String read GetPRODUTOValue write SetPRODUTOValue; - property GRADE: String read GetGRADEValue write SetGRADEValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IReferenciaGenerica } - IReferenciaGenerica = interface(IDAStronglyTypedDataTable) - ['{0D8DB24C-6B9C-4DBA-8B26-D007BD14ED85}'] - { Property getters and setters } - function GetNUMINFValue: String; - procedure SetNUMINFValue(const aValue: String); - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetCLAVE2Value: Integer; - procedure SetCLAVE2Value(const aValue: Integer); - function GetCLAVE3Value: Integer; - procedure SetCLAVE3Value(const aValue: Integer); - function GetNUMCONValue: Integer; - procedure SetNUMCONValue(const aValue: Integer); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetCODCENTROValue: String; - procedure SetCODCENTROValue(const aValue: String); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetCODVENDEDORValue: String; - procedure SetCODVENDEDORValue(const aValue: String); - function GetVENDEDORValue: String; - procedure SetVENDEDORValue(const aValue: String); - function GetNUMTALONValue: String; - procedure SetNUMTALONValue(const aValue: String); - function GetCODIGO_BARRAValue: String; - procedure SetCODIGO_BARRAValue(const aValue: String); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetTALLAValue: String; - procedure SetTALLAValue(const aValue: String); - function GetVTAPROCESOValue: Float; - procedure SetVTAPROCESOValue(const aValue: Float); - function GetVTAFINALValue: Float; - procedure SetVTAFINALValue(const aValue: Float); - function GetVTATERMValue: Float; - procedure SetVTATERMValue(const aValue: Float); - function GetVALTOTValue: Float; - procedure SetVALTOTValue(const aValue: Float); - function GetESTADOValue: String; - procedure SetESTADOValue(const aValue: String); - function GetFECHACAMBIOValue: DateTime; - procedure SetFECHACAMBIOValue(const aValue: DateTime); - - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; - property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; - property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; - property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; - property ESTADO: String read GetESTADOValue write SetESTADOValue; - property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; - end; - - { TReferenciaGenericaDataTableRules } - TReferenciaGenericaDataTableRules = class(TDADataTableRules, IReferenciaGenerica) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetNUMCONValue: Integer; virtual; - procedure SetNUMCONValue(const aValue: Integer); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetCODCENTROValue: String; virtual; - procedure SetCODCENTROValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODVENDEDORValue: String; virtual; - procedure SetCODVENDEDORValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCODIGO_BARRAValue: String; virtual; - procedure SetCODIGO_BARRAValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetVTAPROCESOValue: Float; virtual; - procedure SetVTAPROCESOValue(const aValue: Float); virtual; - function GetVTAFINALValue: Float; virtual; - procedure SetVTAFINALValue(const aValue: Float); virtual; - function GetVTATERMValue: Float; virtual; - procedure SetVTATERMValue(const aValue: Float); virtual; - function GetVALTOTValue: Float; virtual; - procedure SetVALTOTValue(const aValue: Float); virtual; - function GetESTADOValue: String; virtual; - procedure SetESTADOValue(const aValue: String); virtual; - function GetFECHACAMBIOValue: DateTime; virtual; - procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property NUMCON: Integer read GetNUMCONValue write SetNUMCONValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property CODCENTRO: String read GetCODCENTROValue write SetCODCENTROValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODVENDEDOR: String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CODIGO_BARRA: String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property VTAPROCESO: Float read GetVTAPROCESOValue write SetVTAPROCESOValue; - property VTAFINAL: Float read GetVTAFINALValue write SetVTAFINALValue; - property VTATERM: Float read GetVTATERMValue write SetVTATERMValue; - property VALTOT: Float read GetVALTOTValue write SetVALTOTValue; - property ESTADO: String read GetESTADOValue write SetESTADOValue; - property FECHACAMBIO: DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ T_ExisteFilaReferenciaGenericaDataTableRules } -constructor T_ExisteFilaReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor T_ExisteFilaReferenciaGenericaDataTableRules.Destroy; -begin - inherited; -end; - -function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMINFValue: String; -begin - result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString; -end; - -procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); -begin - DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMINF].AsString := aValue; -end; - -function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat; -end; - -procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE1].AsFloat := aValue; -end; - -function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; -begin - result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger; -end; - -procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); -begin - DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE2].AsInteger := aValue; -end; - -function T_ExisteFilaReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; -begin - result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger; -end; - -procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); -begin - DataTable.Fields[idx__ExisteFilaReferenciaGenericaCLAVE3].AsInteger := aValue; -end; - -function T_ExisteFilaReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; -begin - result := DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger; -end; - -procedure T_ExisteFilaReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); -begin - DataTable.Fields[idx__ExisteFilaReferenciaGenericaNUMCON].AsInteger := aValue; -end; - - -{ TInformeRefGenericaDataTableRules } -constructor TInformeRefGenericaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TInformeRefGenericaDataTableRules.Destroy; -begin - inherited; -end; - -function TInformeRefGenericaDataTableRules.GetCODCENTROValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetCODCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaCODCENTRO].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaCENTRO].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetCODVENDEDORValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaCODVENDEDOR].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetVENDEDORValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaVENDEDOR].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime; -end; - -procedure TInformeRefGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_InformeRefGenericaFECHA].AsDateTime := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetNUMTALONValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetNUMTALONValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaNUMTALON].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetCANTIDADValue: String; -begin - result := DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString; -end; - -procedure TInformeRefGenericaDataTableRules.SetCANTIDADValue(const aValue: String); -begin - DataTable.Fields[idx_InformeRefGenericaCANTIDAD].AsString := aValue; -end; - -function TInformeRefGenericaDataTableRules.GetVALTOTValue: Float; -begin - result := DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat; -end; - -procedure TInformeRefGenericaDataTableRules.SetVALTOTValue(const aValue: Float); -begin - DataTable.Fields[idx_InformeRefGenericaVALTOT].AsFloat := aValue; -end; - - -{ TGetProductoDataTableRules } -constructor TGetProductoDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TGetProductoDataTableRules.Destroy; -begin - inherited; -end; - -function TGetProductoDataTableRules.GetCODIGO_BARRAValue: String; -begin - result := DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString; -end; - -procedure TGetProductoDataTableRules.SetCODIGO_BARRAValue(const aValue: String); -begin - DataTable.Fields[idx_GetProductoCODIGO_BARRA].AsString := aValue; -end; - -function TGetProductoDataTableRules.GetCOR_PRODUTOValue: String; -begin - result := DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString; -end; - -procedure TGetProductoDataTableRules.SetCOR_PRODUTOValue(const aValue: String); -begin - DataTable.Fields[idx_GetProductoCOR_PRODUTO].AsString := aValue; -end; - -function TGetProductoDataTableRules.GetDESC_PRODUTOValue: String; -begin - result := DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString; -end; - -procedure TGetProductoDataTableRules.SetDESC_PRODUTOValue(const aValue: String); -begin - DataTable.Fields[idx_GetProductoDESC_PRODUTO].AsString := aValue; -end; - -function TGetProductoDataTableRules.GetPRODUTOValue: String; -begin - result := DataTable.Fields[idx_GetProductoPRODUTO].AsString; -end; - -procedure TGetProductoDataTableRules.SetPRODUTOValue(const aValue: String); -begin - DataTable.Fields[idx_GetProductoPRODUTO].AsString := aValue; -end; - -function TGetProductoDataTableRules.GetGRADEValue: String; -begin - result := DataTable.Fields[idx_GetProductoGRADE].AsString; -end; - -procedure TGetProductoDataTableRules.SetGRADEValue(const aValue: String); -begin - DataTable.Fields[idx_GetProductoGRADE].AsString := aValue; -end; - - -{ TReferenciaGenericaDataTableRules } -constructor TReferenciaGenericaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TReferenciaGenericaDataTableRules.Destroy; -begin - inherited; -end; - -function TReferenciaGenericaDataTableRules.GetNUMINFValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetNUMINFValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaNUMINF].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat; -end; - -procedure TReferenciaGenericaDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx_ReferenciaGenericaCLAVE1].AsFloat := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCLAVE2Value: Integer; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger; -end; - -procedure TReferenciaGenericaDataTableRules.SetCLAVE2Value(const aValue: Integer); -begin - DataTable.Fields[idx_ReferenciaGenericaCLAVE2].AsInteger := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCLAVE3Value: Integer; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger; -end; - -procedure TReferenciaGenericaDataTableRules.SetCLAVE3Value(const aValue: Integer); -begin - DataTable.Fields[idx_ReferenciaGenericaCLAVE3].AsInteger := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetNUMCONValue: Integer; -begin - result := DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger; -end; - -procedure TReferenciaGenericaDataTableRules.SetNUMCONValue(const aValue: Integer); -begin - DataTable.Fields[idx_ReferenciaGenericaNUMCON].AsInteger := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime; -end; - -procedure TReferenciaGenericaDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_ReferenciaGenericaFECHA].AsDateTime := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCODCENTROValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCODCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCODCENTRO].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCENTRO].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCODVENDEDORValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCODVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCODVENDEDOR].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetVENDEDORValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaVENDEDOR].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetNUMTALONValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetNUMTALONValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaNUMTALON].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCODIGO_BARRAValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCODIGO_BARRAValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCODIGO_BARRA].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCODIGO].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaPRODUCTO].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaCOLOR].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetTALLAValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetTALLAValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaTALLA].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetVTAPROCESOValue: Float; -begin - result := DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat; -end; - -procedure TReferenciaGenericaDataTableRules.SetVTAPROCESOValue(const aValue: Float); -begin - DataTable.Fields[idx_ReferenciaGenericaVTAPROCESO].AsFloat := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetVTAFINALValue: Float; -begin - result := DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat; -end; - -procedure TReferenciaGenericaDataTableRules.SetVTAFINALValue(const aValue: Float); -begin - DataTable.Fields[idx_ReferenciaGenericaVTAFINAL].AsFloat := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetVTATERMValue: Float; -begin - result := DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat; -end; - -procedure TReferenciaGenericaDataTableRules.SetVTATERMValue(const aValue: Float); -begin - DataTable.Fields[idx_ReferenciaGenericaVTATERM].AsFloat := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetVALTOTValue: Float; -begin - result := DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat; -end; - -procedure TReferenciaGenericaDataTableRules.SetVALTOTValue(const aValue: Float); -begin - DataTable.Fields[idx_ReferenciaGenericaVALTOT].AsFloat := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetESTADOValue: String; -begin - result := DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString; -end; - -procedure TReferenciaGenericaDataTableRules.SetESTADOValue(const aValue: String); -begin - DataTable.Fields[idx_ReferenciaGenericaESTADO].AsString := aValue; -end; - -function TReferenciaGenericaDataTableRules.GetFECHACAMBIOValue: DateTime; -begin - result := DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime; -end; - -procedure TReferenciaGenericaDataTableRules.SetFECHACAMBIOValue(const aValue: DateTime); -begin - DataTable.Fields[idx_ReferenciaGenericaFECHACAMBIO].AsDateTime := aValue; -end; - - -initialization - RegisterDataTableRules(RID__ExisteFilaReferenciaGenerica, T_ExisteFilaReferenciaGenericaDataTableRules); - RegisterDataTableRules(RID_InformeRefGenerica, TInformeRefGenericaDataTableRules); - RegisterDataTableRules(RID_GetProducto, TGetProductoDataTableRules); - RegisterDataTableRules(RID_ReferenciaGenerica, TReferenciaGenericaDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas deleted file mode 100644 index 725953b..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/schReferenciaGenericaServer_Intf.pas +++ /dev/null @@ -1,1045 +0,0 @@ -unit schReferenciaGenericaServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schReferenciaGenericaClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID__ExisteFilaReferenciaGenericaDelta = '{4C9816CA-AD0C-473A-B192-0F3331601D04}'; - RID_InformeRefGenericaDelta = '{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'; - RID_GetProductoDelta = '{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'; - RID_ReferenciaGenericaDelta = '{C8170A4A-6B29-465D-99F4-773795682573}'; - -type - { I_ExisteFilaReferenciaGenericaDelta } - I_ExisteFilaReferenciaGenericaDelta = interface(I_ExisteFilaReferenciaGenerica) - ['{4C9816CA-AD0C-473A-B192-0F3331601D04}'] - { Property getters and setters } - function GetOldNUMINFValue : String; - function GetOldCLAVE1Value : Float; - function GetOldCLAVE2Value : Integer; - function GetOldCLAVE3Value : Integer; - function GetOldNUMCONValue : Integer; - - { Properties } - property OldNUMINF : String read GetOldNUMINFValue; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property OldNUMCON : Integer read GetOldNUMCONValue; - end; - - { T_ExisteFilaReferenciaGenericaBusinessProcessorRules } - T_ExisteFilaReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, I_ExisteFilaReferenciaGenerica, I_ExisteFilaReferenciaGenericaDelta) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - function GetOldNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - function GetOldCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - function GetOldCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetNUMCONValue: Integer; virtual; - function GetOldNUMCONValue: Integer; virtual; - procedure SetNUMCONValue(const aValue: Integer); virtual; - - { Properties } - property NUMINF : String read GetNUMINFValue write SetNUMINFValue; - property OldNUMINF : String read GetOldNUMINFValue; - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; - property OldNUMCON : Integer read GetOldNUMCONValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IInformeRefGenericaDelta } - IInformeRefGenericaDelta = interface(IInformeRefGenerica) - ['{2C606C5E-D12E-443D-B4E6-C0B16320F16B}'] - { Property getters and setters } - function GetOldCODCENTROValue : String; - function GetOldCENTROValue : String; - function GetOldCODVENDEDORValue : String; - function GetOldVENDEDORValue : String; - function GetOldFECHAValue : DateTime; - function GetOldNUMTALONValue : String; - function GetOldCANTIDADValue : String; - function GetOldVALTOTValue : Float; - - { Properties } - property OldCODCENTRO : String read GetOldCODCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldCANTIDAD : String read GetOldCANTIDADValue; - property OldVALTOT : Float read GetOldVALTOTValue; - end; - - { TInformeRefGenericaBusinessProcessorRules } - TInformeRefGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeRefGenerica, IInformeRefGenericaDelta) - private - protected - { Property getters and setters } - function GetCODCENTROValue: String; virtual; - function GetOldCODCENTROValue: String; virtual; - procedure SetCODCENTROValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODVENDEDORValue: String; virtual; - function GetOldCODVENDEDORValue: String; virtual; - procedure SetCODVENDEDORValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - function GetOldVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - function GetOldFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetNUMTALONValue: String; virtual; - function GetOldNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCANTIDADValue: String; virtual; - function GetOldCANTIDADValue: String; virtual; - procedure SetCANTIDADValue(const aValue: String); virtual; - function GetVALTOTValue: Float; virtual; - function GetOldVALTOTValue: Float; virtual; - procedure SetVALTOTValue(const aValue: Float); virtual; - - { Properties } - property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; - property OldCODCENTRO : String read GetOldCODCENTROValue; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; - property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property CANTIDAD : String read GetCANTIDADValue write SetCANTIDADValue; - property OldCANTIDAD : String read GetOldCANTIDADValue; - property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; - property OldVALTOT : Float read GetOldVALTOTValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IGetProductoDelta } - IGetProductoDelta = interface(IGetProducto) - ['{A606AA38-2F35-4FC5-BB96-3C6FD80EBFB6}'] - { Property getters and setters } - function GetOldCODIGO_BARRAValue : String; - function GetOldCOR_PRODUTOValue : String; - function GetOldDESC_PRODUTOValue : String; - function GetOldPRODUTOValue : String; - function GetOldGRADEValue : String; - - { Properties } - property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; - property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; - property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; - property OldPRODUTO : String read GetOldPRODUTOValue; - property OldGRADE : String read GetOldGRADEValue; - end; - - { TGetProductoBusinessProcessorRules } - TGetProductoBusinessProcessorRules = class(TDABusinessProcessorRules, IGetProducto, IGetProductoDelta) - private - protected - { Property getters and setters } - function GetCODIGO_BARRAValue: String; virtual; - function GetOldCODIGO_BARRAValue: String; virtual; - procedure SetCODIGO_BARRAValue(const aValue: String); virtual; - function GetCOR_PRODUTOValue: String; virtual; - function GetOldCOR_PRODUTOValue: String; virtual; - procedure SetCOR_PRODUTOValue(const aValue: String); virtual; - function GetDESC_PRODUTOValue: String; virtual; - function GetOldDESC_PRODUTOValue: String; virtual; - procedure SetDESC_PRODUTOValue(const aValue: String); virtual; - function GetPRODUTOValue: String; virtual; - function GetOldPRODUTOValue: String; virtual; - procedure SetPRODUTOValue(const aValue: String); virtual; - function GetGRADEValue: String; virtual; - function GetOldGRADEValue: String; virtual; - procedure SetGRADEValue(const aValue: String); virtual; - - { Properties } - property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; - property COR_PRODUTO : String read GetCOR_PRODUTOValue write SetCOR_PRODUTOValue; - property OldCOR_PRODUTO : String read GetOldCOR_PRODUTOValue; - property DESC_PRODUTO : String read GetDESC_PRODUTOValue write SetDESC_PRODUTOValue; - property OldDESC_PRODUTO : String read GetOldDESC_PRODUTOValue; - property PRODUTO : String read GetPRODUTOValue write SetPRODUTOValue; - property OldPRODUTO : String read GetOldPRODUTOValue; - property GRADE : String read GetGRADEValue write SetGRADEValue; - property OldGRADE : String read GetOldGRADEValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IReferenciaGenericaDelta } - IReferenciaGenericaDelta = interface(IReferenciaGenerica) - ['{C8170A4A-6B29-465D-99F4-773795682573}'] - { Property getters and setters } - function GetOldNUMINFValue : String; - function GetOldCLAVE1Value : Float; - function GetOldCLAVE2Value : Integer; - function GetOldCLAVE3Value : Integer; - function GetOldNUMCONValue : Integer; - function GetOldFECHAValue : DateTime; - function GetOldCODCENTROValue : String; - function GetOldCENTROValue : String; - function GetOldCODVENDEDORValue : String; - function GetOldVENDEDORValue : String; - function GetOldNUMTALONValue : String; - function GetOldCODIGO_BARRAValue : String; - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldCOLORValue : String; - function GetOldTALLAValue : String; - function GetOldVTAPROCESOValue : Float; - function GetOldVTAFINALValue : Float; - function GetOldVTATERMValue : Float; - function GetOldVALTOTValue : Float; - function GetOldESTADOValue : String; - function GetOldFECHACAMBIOValue : DateTime; - - { Properties } - property OldNUMINF : String read GetOldNUMINFValue; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property OldNUMCON : Integer read GetOldNUMCONValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldCODCENTRO : String read GetOldCODCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldTALLA : String read GetOldTALLAValue; - property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; - property OldVTAFINAL : Float read GetOldVTAFINALValue; - property OldVTATERM : Float read GetOldVTATERMValue; - property OldVALTOT : Float read GetOldVALTOTValue; - property OldESTADO : String read GetOldESTADOValue; - property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; - end; - - { TReferenciaGenericaBusinessProcessorRules } - TReferenciaGenericaBusinessProcessorRules = class(TDABusinessProcessorRules, IReferenciaGenerica, IReferenciaGenericaDelta) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - function GetOldNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - function GetOldCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - function GetOldCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetNUMCONValue: Integer; virtual; - function GetOldNUMCONValue: Integer; virtual; - procedure SetNUMCONValue(const aValue: Integer); virtual; - function GetFECHAValue: DateTime; virtual; - function GetOldFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetCODCENTROValue: String; virtual; - function GetOldCODCENTROValue: String; virtual; - procedure SetCODCENTROValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODVENDEDORValue: String; virtual; - function GetOldCODVENDEDORValue: String; virtual; - procedure SetCODVENDEDORValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - function GetOldVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - function GetOldNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCODIGO_BARRAValue: String; virtual; - function GetOldCODIGO_BARRAValue: String; virtual; - procedure SetCODIGO_BARRAValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - function GetOldTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetVTAPROCESOValue: Float; virtual; - function GetOldVTAPROCESOValue: Float; virtual; - procedure SetVTAPROCESOValue(const aValue: Float); virtual; - function GetVTAFINALValue: Float; virtual; - function GetOldVTAFINALValue: Float; virtual; - procedure SetVTAFINALValue(const aValue: Float); virtual; - function GetVTATERMValue: Float; virtual; - function GetOldVTATERMValue: Float; virtual; - procedure SetVTATERMValue(const aValue: Float); virtual; - function GetVALTOTValue: Float; virtual; - function GetOldVALTOTValue: Float; virtual; - procedure SetVALTOTValue(const aValue: Float); virtual; - function GetESTADOValue: String; virtual; - function GetOldESTADOValue: String; virtual; - procedure SetESTADOValue(const aValue: String); virtual; - function GetFECHACAMBIOValue: DateTime; virtual; - function GetOldFECHACAMBIOValue: DateTime; virtual; - procedure SetFECHACAMBIOValue(const aValue: DateTime); virtual; - - { Properties } - property NUMINF : String read GetNUMINFValue write SetNUMINFValue; - property OldNUMINF : String read GetOldNUMINFValue; - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property NUMCON : Integer read GetNUMCONValue write SetNUMCONValue; - property OldNUMCON : Integer read GetOldNUMCONValue; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property CODCENTRO : String read GetCODCENTROValue write SetCODCENTROValue; - property OldCODCENTRO : String read GetOldCODCENTROValue; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property CODVENDEDOR : String read GetCODVENDEDORValue write SetCODVENDEDORValue; - property OldCODVENDEDOR : String read GetOldCODVENDEDORValue; - property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property CODIGO_BARRA : String read GetCODIGO_BARRAValue write SetCODIGO_BARRAValue; - property OldCODIGO_BARRA : String read GetOldCODIGO_BARRAValue; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property TALLA : String read GetTALLAValue write SetTALLAValue; - property OldTALLA : String read GetOldTALLAValue; - property VTAPROCESO : Float read GetVTAPROCESOValue write SetVTAPROCESOValue; - property OldVTAPROCESO : Float read GetOldVTAPROCESOValue; - property VTAFINAL : Float read GetVTAFINALValue write SetVTAFINALValue; - property OldVTAFINAL : Float read GetOldVTAFINALValue; - property VTATERM : Float read GetVTATERMValue write SetVTATERMValue; - property OldVTATERM : Float read GetOldVTATERMValue; - property VALTOT : Float read GetVALTOTValue write SetVALTOTValue; - property OldVALTOT : Float read GetOldVALTOTValue; - property ESTADO : String read GetESTADOValue write SetESTADOValue; - property OldESTADO : String read GetOldESTADOValue; - property FECHACAMBIO : DateTime read GetFECHACAMBIOValue write SetFECHACAMBIOValue; - property OldFECHACAMBIO : DateTime read GetOldFECHACAMBIOValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ T_ExisteFilaReferenciaGenericaBusinessProcessorRules } -constructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor T_ExisteFilaReferenciaGenericaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMINF]; -end; - -procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMINF] := aValue; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1]; -end; - -procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE1] := aValue; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2]; -end; - -procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE2] := aValue; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3]; -end; - -procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaCLAVE3] := aValue; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; -end; - -function T_ExisteFilaReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld__ExisteFilaReferenciaGenericaNUMCON]; -end; - -procedure T_ExisteFilaReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld__ExisteFilaReferenciaGenericaNUMCON] := aValue; -end; - - -{ TInformeRefGenericaBusinessProcessorRules } -constructor TInformeRefGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TInformeRefGenericaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetCODCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODCENTRO]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODCENTRO] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCENTRO]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCENTRO] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCODVENDEDOR]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCODVENDEDOR] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVENDEDOR]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVENDEDOR] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaFECHA]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaFECHA] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaNUMTALON]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaNUMTALON] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetCANTIDADValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldCANTIDADValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaCANTIDAD]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetCANTIDADValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaCANTIDAD] := aValue; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetVALTOTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT]; -end; - -function TInformeRefGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeRefGenericaVALTOT]; -end; - -procedure TInformeRefGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_InformeRefGenericaVALTOT] := aValue; -end; - - -{ TGetProductoBusinessProcessorRules } -constructor TGetProductoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TGetProductoBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TGetProductoBusinessProcessorRules.GetCODIGO_BARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA]; -end; - -function TGetProductoBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCODIGO_BARRA]; -end; - -procedure TGetProductoBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCODIGO_BARRA] := aValue; -end; - -function TGetProductoBusinessProcessorRules.GetCOR_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO]; -end; - -function TGetProductoBusinessProcessorRules.GetOldCOR_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoCOR_PRODUTO]; -end; - -procedure TGetProductoBusinessProcessorRules.SetCOR_PRODUTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoCOR_PRODUTO] := aValue; -end; - -function TGetProductoBusinessProcessorRules.GetDESC_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO]; -end; - -function TGetProductoBusinessProcessorRules.GetOldDESC_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoDESC_PRODUTO]; -end; - -procedure TGetProductoBusinessProcessorRules.SetDESC_PRODUTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoDESC_PRODUTO] := aValue; -end; - -function TGetProductoBusinessProcessorRules.GetPRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO]; -end; - -function TGetProductoBusinessProcessorRules.GetOldPRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoPRODUTO]; -end; - -procedure TGetProductoBusinessProcessorRules.SetPRODUTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoPRODUTO] := aValue; -end; - -function TGetProductoBusinessProcessorRules.GetGRADEValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE]; -end; - -function TGetProductoBusinessProcessorRules.GetOldGRADEValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_GetProductoGRADE]; -end; - -procedure TGetProductoBusinessProcessorRules.SetGRADEValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_GetProductoGRADE] := aValue; -end; - - -{ TReferenciaGenericaBusinessProcessorRules } -constructor TReferenciaGenericaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TReferenciaGenericaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMINF]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetNUMINFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMINF] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE1]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE1] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE2]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE2] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCLAVE3]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCLAVE3] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetNUMCONValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldNUMCONValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMCON]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetNUMCONValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMCON] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHA]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHA] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCODCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCODCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODCENTRO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCODCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODCENTRO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCENTRO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCENTRO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCODVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCODVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODVENDEDOR]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCODVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODVENDEDOR] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVENDEDOR]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVENDEDOR] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaNUMTALON]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetNUMTALONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaNUMTALON] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCODIGO_BARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGO_BARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO_BARRA]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGO_BARRAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO_BARRA] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCODIGO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCODIGO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaPRODUCTO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaPRODUCTO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaCOLOR]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaCOLOR] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaTALLA]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetTALLAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaTALLA] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetVTAPROCESOValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldVTAPROCESOValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAPROCESO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetVTAPROCESOValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAPROCESO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetVTAFINALValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldVTAFINALValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTAFINAL]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetVTAFINALValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTAFINAL] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetVTATERMValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldVTATERMValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVTATERM]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetVTATERMValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVTATERM] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetVALTOTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldVALTOTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaVALTOT]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetVALTOTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaVALTOT] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetESTADOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldESTADOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaESTADO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetESTADOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaESTADO] := aValue; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetFECHACAMBIOValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO]; -end; - -function TReferenciaGenericaBusinessProcessorRules.GetOldFECHACAMBIOValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciaGenericaFECHACAMBIO]; -end; - -procedure TReferenciaGenericaBusinessProcessorRules.SetFECHACAMBIOValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciaGenericaFECHACAMBIO] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID__ExisteFilaReferenciaGenericaDelta, T_ExisteFilaReferenciaGenericaBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_InformeRefGenericaDelta, TInformeRefGenericaBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_GetProductoDelta, TGetProductoBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_ReferenciaGenericaDelta, TReferenciaGenericaBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas deleted file mode 100644 index 811e49d..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenerica.pas +++ /dev/null @@ -1,317 +0,0 @@ -unit uBizReferenciaGenerica; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList, - schReferenciaGenericaClient_Intf; - -const - BIZ_REFERENCIAGENERICA = 'Client.ReferenciaGenerica'; - -type - TRefGenEstado = (rgPendiente, rgEnEspera, rgResuelto); - - IBizReferenciaGenerica = interface(IReferenciaGenerica) - ['{31C0DE0B-9B92-43A6-810D-7E94F5FF12FE}'] - procedure VerTodos; - procedure VerPendientes; - procedure VerEnEspera; - procedure VerResueltos; - procedure DesglosarReferencia; - procedure Show; - procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); - procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); - procedure SetEstado(const AValue : TRefGenEstado); - function GetEstado : TRefGenEstado ; - property Estado : TRefGenEstado read GetEstado write SetEstado; - end; - - TBizReferenciaGenericaDataTableRules = class(TReferenciaGenericaDataTableRules, - IBizReferenciaGenerica, ISelectedRowList) - private - FSelectedRows : TSelectedRowList; - protected - procedure SetEstado(const AValue : TRefGenEstado); - function GetEstado : TRefGenEstado ; - function GetSelectedRows : TSelectedRowList; - procedure OnNewRecord(Sender: TDADataTable); override; - public - procedure VerTodos; - procedure VerPendientes; - procedure VerEnEspera; - procedure VerResueltos; - procedure DesglosarReferencia; - procedure Show; - procedure Print (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); - procedure Preview (const Centro, Vendedor : string; const Estado : TRefGenEstado; const AFiltro : String = ''); - property Estado : TRefGenEstado read GetEstado write SetEstado; - property SelectedRows : TSelectedRowList read GetSelectedRows; - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - end; - -implementation - -uses - uEditorUtils, uDataModuleReferenciaGenerica, uDataTableUtils, uDACDSDataTable; - - -{ TBizReferenciaGenericaDataTableRules } - -constructor TBizReferenciaGenericaDataTableRules.Create( - aDataTable: TDADataTable); -begin - inherited; - FSelectedRows := TSelectedRowList.Create(aDataTable); -end; - -procedure TBizReferenciaGenericaDataTableRules.DesglosarReferencia; -var - ADataTable : TDACDSDataTable; - AEstado : TRefGenEstado; - i : integer; -begin - - if (Abs(VTAPROCESO) < 2) and - (Abs(VTAFINAL) < 2) and - (Abs(VTATERM) < 2) then - Exit; // No se puede desglosar si la cantidad es menor que 2. - - AEstado := Estado; - DataTable.Edit; - try - if (VTAPROCESO <> 0) then - begin - if (VTAPROCESO > 0) then - VTAPROCESO := VTAPROCESO - 1 - else - VTAPROCESO := VTAPROCESO + 1 - end - else begin - if (VTAFINAL <> 0) then - begin - if (VTAFINAL > 0) then - VTAFINAL := VTAFINAL - 1 - else - VTAFINAL := VTAFINAL + 1 - end - else begin - if (VTATERM <> 0) then - begin - if (VTATERM > 0) then - VTATERM := VTATERM - 1 - else - VTATERM := VTATERM + 1 - end - end; - end; - finally - DataTable.Post; - end; - - SelectedRows.Clear; - SelectedRows.CurrentRowSelected := True; - ADataTable := TDACDSDataTable.Create(nil); - try - ADataTable.RemoteFetchEnabled := False; - ADataTable.LogChanges := False; - CopyDataTable(DataTable, ADataTable, True); - - // Duplicar el registro - DataTable.Next; - if not DataTable.EOF then - DataTable.Insert - else - DataTable.Append; - for i := 0 to DataTable.FieldCount - 1 do - DataTable.Fields[i].Value := ADataTable.Fields[i].Value; - DataTable.Post; - - finally - ADataTable.Free; - end; - - DataTable.Edit; - Estado := AEstado; - FECHACAMBIO := Now; - - { Todavía no sé el valor que va a tener asi que le asigno uno cualquiera para - que en el cliente pueda diferenciar la fila nueva } - NUMCON := 99; - - - try - if (VTAPROCESO <> 0) then - begin - if (VTAPROCESO > 0) then - VTAPROCESO := 1 - else - VTAPROCESO := -1 - end - else begin - if (VTAFINAL <> 0) then - begin - if (VTAFINAL > 0) then - VTAFINAL := 1 - else - VTAFINAL := -1 - end - else begin - if (VTATERM <> 0) then - begin - if (VTATERM > 0) then - VTATERM := 1 - else - VTATERM := -1 - end - end; - end; - finally - DataTable.Post; - end; -end; - -destructor TBizReferenciaGenericaDataTableRules.Destroy; -begin - FreeAndNil(FSelectedRows); - inherited; -end; - -function TBizReferenciaGenericaDataTableRules.GetEstado: TRefGenEstado; -var - aux : String; -begin - aux := GetESTADOValue; - Result := rgPendiente; - if aux = 'E' then - Result := rgEnEspera - else - if aux = 'R' then - Result := rgResuelto; -end; - -function TBizReferenciaGenericaDataTableRules.GetSelectedRows: TSelectedRowList; -begin - Result := FSelectedRows; -end; - -procedure TBizReferenciaGenericaDataTableRules.OnNewRecord( - Sender: TDADataTable); -begin - inherited; - ESTADO := rgPendiente; - FECHACAMBIO := Now; -end; - -procedure TBizReferenciaGenericaDataTableRules.Preview(const Centro, - Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); -var - AEstado : String; -begin - case Estado of - rgPendiente : AEstado := 'P'; - rgEnEspera : AEstado := 'E'; - rgResuelto : AEstado := 'R'; - else - AEstado := ''; - end; - - dmReferenciaGenerica.Preview(Centro, Vendedor, AEstado, AFiltro); -end; - -procedure TBizReferenciaGenericaDataTableRules.Print(const Centro, - Vendedor: string; const Estado : TRefGenEstado; const AFiltro : String); -var - AEstado : String; -begin - case Estado of - rgPendiente : AEstado := 'P'; - rgEnEspera : AEstado := 'E'; - rgResuelto : AEstado := 'R'; - else - AEstado := ''; - end; - - dmReferenciaGenerica.Print(Centro, Vendedor, AEstado, AFiltro); -end; - -procedure TBizReferenciaGenericaDataTableRules.SetEstado( - const AValue: TRefGenEstado); -begin - case AValue of - rgPendiente : SetESTADOValue('P'); - rgEnEspera : SetESTADOValue('E'); - rgResuelto : SetESTADOValue('R'); - else - SetESTADOValue('P'); - end; -end; - -procedure TBizReferenciaGenericaDataTableRules.Show; -begin - ShowEditor(IBizReferenciaGenerica, Self, etItem); -end; - -procedure TBizReferenciaGenericaDataTableRules.VerEnEspera; -begin - with Self.DataTable do - begin - DisableControls; - DisableEventHandlers; - try - Filtered := False; - Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''E'')'; - Filtered := True; - finally - EnableEventHandlers; - EnableControls; - end; - end; -end; - -procedure TBizReferenciaGenericaDataTableRules.VerPendientes; -begin - with Self.DataTable do - begin - DisableControls; - DisableEventHandlers; - try - Filtered := False; - Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''P'') OR ' - + '(' + fld_ReferenciaGenericaESTADO + ' IS NULL)'; - Filtered := True; - finally - EnableEventHandlers; - EnableControls; - end; - end; -end; - -procedure TBizReferenciaGenericaDataTableRules.VerResueltos; -begin - with Self.DataTable do - begin - DisableControls; - DisableEventHandlers; - try - Filtered := False; - Filter := '(' + fld_ReferenciaGenericaESTADO + ' = ''R'')'; - Filtered := True; - finally - EnableEventHandlers; - EnableControls; - end; - end; -end; - -procedure TBizReferenciaGenericaDataTableRules.VerTodos; -begin - Self.DataTable.Filtered := False; -end; - -initialization - RegisterDataTableRules(BIZ_REFERENCIAGENERICA, TBizReferenciaGenericaDataTableRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas deleted file mode 100644 index 0604d66..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Reglas/uBizReferenciaGenericaServer.pas +++ /dev/null @@ -1,145 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uBizReferenciaGenericaServer; - -interface - -uses - Classes, SysUtils, - uDADataTable, - uDAInterfaces, schReferenciaGenericaServer_Intf, - uDABusinessProcessor, uDADelta; - -const - BIZ_SERVER_REFERENCIA_GENERICA = 'Server.ReferenciaGenerica'; - -type - { TBizReferenciaGenericaServerRules } - TBizReferenciaGenericaServerRules = class(TReferenciaGenericaBusinessProcessorRules) - private - function GetConnection: IDAConnection; - function GetSchema: IDASchema; - function GetDataSet(const AName : String) : IDADataset; - function GetCommand(const AName : String) : IDASQLCommand; - protected - function ExisteFila: Boolean; - function InsertarFila: Boolean; - procedure BeforeProcessChange(Sender: TDABusinessProcessor; - aChangeType: TDAChangeType; aChange: TDADeltaChange; - var ProcessChange: Boolean); override; - end; - -implementation - -uses - Dialogs, Variants, uDAClasses; - - -{ TBizReferenciaGenericaServerRules } - -procedure TBizReferenciaGenericaServerRules.BeforeProcessChange( - Sender: TDABusinessProcessor; aChangeType: TDAChangeType; - aChange: TDADeltaChange; var ProcessChange: Boolean); -begin - inherited; - if aChangeType = ctUpdate then - begin - if not ExisteFila then - InsertarFila; - end; -end; - -function TBizReferenciaGenericaServerRules.ExisteFila: Boolean; -var - Connection : IDAConnection; - ADataSet: IDADataSet; -begin - Result := True; - Connection := GetConnection; - ADataSet := GetDataSet('_ExisteFilaReferenciaGenerica'); - with ADataSet do - begin - ParamByName('NUMINF').AsString := NUMINF; - ParamByName('CLAVE1').AsFloat := CLAVE1; - ParamByName('CLAVE2').AsInteger := CLAVE2; - ParamByName('CLAVE3').AsInteger := CLAVE3; - ParamByName('NUMCON').AsInteger := NUMCON; - end; - Connection.BeginTransaction; - try - ADataSet.Open; - Result := not ADataSet.IsEmpty; - ADataSet.Close; - finally - Connection.RollbackTransaction; - ADataSet := nil; - Connection := nil; - end; -end; - -function TBizReferenciaGenericaServerRules.GetCommand( - const AName: String): IDASQLCommand; -begin - Result := GetSchema.NewCommand(GetConnection, AName); -end; - -function TBizReferenciaGenericaServerRules.GetConnection: IDAConnection; -begin - Result := BusinessProcessor.Schema.ConnectionManager.NewConnection(BusinessProcessor.Schema.ConnectionManager.GetDefaultConnectionName); -end; - -function TBizReferenciaGenericaServerRules.GetDataSet( - const AName: String): IDADataset; -begin - Result := GetSchema.NewDataset(GetConnection, AName); -end; - -function TBizReferenciaGenericaServerRules.GetSchema: IDASchema; -begin - Result := BusinessProcessor.Schema; -end; - -function TBizReferenciaGenericaServerRules.InsertarFila: Boolean; -var - Connection : IDAConnection; - ACommand: IDASQLCommand; -begin - Result := False; - Connection := GetConnection; - ACommand := GetCommand(BusinessProcessor.InsertCommandName); - with ACommand do - begin - ParamByName('NUMINF').AsString := NUMINF; - ParamByName('CLAVE1').AsFloat := CLAVE1; - ParamByName('CLAVE2').AsInteger := CLAVE2; - ParamByName('CLAVE3').AsInteger := CLAVE3; - ParamByName('FECHACAMBIO').AsDateTime := Now; - ParamByName('ESTADO').AsString := 'P'; // Pendiente por defecto - ParamByName('VTATERM').AsVariant := Null; - ParamByName('VTAPROCESO').AsVariant := Null; - ParamByName('VTAFINAL').AsVariant := Null; - ParamByName('VALTOT').AsVariant := Null; - ParamByName('CODIGO_BARRA').AsVariant := Null; - end; - - Connection.BeginTransaction; - try - ACommand.Execute; - Connection.CommitTransaction; - Result := True; - except - Connection.RollbackTransaction; - end; -end; - -initialization - RegisterBusinessProcessorRules(BIZ_SERVER_REFERENCIA_GENERICA, TBizReferenciaGenericaServerRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm deleted file mode 100644 index 6095da5..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.dfm +++ /dev/null @@ -1,1302 +0,0 @@ -object srvReferenciaGenerica: TsrvReferenciaGenerica - OldCreateOrder = True - OnCreate = DARemoteServiceCreate - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schReferenciaGenerica - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 362 - Width = 469 - object schReferenciaGenerica: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = < - item - Name = 'NUMINF' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE1' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE2' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE3' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMCON' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON'#10'FROM RDX_REFERENCI' + - 'A_GENERICA'#10'WHERE NUMINF = :NUMINF AND'#10' CLAVE1 = :CLAVE1 AND' + - #10' CLAVE2 = :CLAVE2 AND'#10' CLAVE3 = :CLAVE3 AND'#10' NUM' + - 'CON = :NUMCON' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMINF' - TableField = 'NUMINF' - end - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'CLAVE3' - TableField = 'CLAVE3' - end - item - DatasetField = 'NUMCON' - TableField = 'NUMCON' - end> - end> - Name = '_ExisteFilaReferenciaGenerica' - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE2' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE3' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMCON' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT'#10' CODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = ' + - 'CENTRO) THEN'#10' CENTRO'#10' ELS' + - 'E'#10' CODCENTRO + '#39' - '#39' + CENTRO'#10' ' + - ' END,'#10' CODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVE' + - 'NDEDOR = VENDEDOR) THEN'#10' VENDEDOR'#10' ' + - ' ELSE'#10' CODVENDEDOR + '#39' - '#39' + VENDE' + - 'DOR'#10' END,'#10' FECHA,'#10' NUMTALON,'#10' ' + - ' CANTIDAD ='#10' CASE WHEN (VTAPROCESO <> 0) THEN'#10' ' + - ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (ve' + - 'nta proceso)'#39#10' ELSE'#10' CASE WHEN (VTAFINAL' + - ' <> 0) THEN'#10' REPLACE(CAST(VTAFINAL AS VARCHAR' + - '), '#39'.000'#39', '#39#39') + '#39' (venta final/resc.)'#39#10' ELSE'#10' ' + - ' CASE WHEN (VTATERM <> 0) THEN'#10' ' + - ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39', '#39#39') + '#39' (venta te' + - 'rm./dev.)'#39#10' ELSE'#10' '#39'0'#39#10' ' + - ' END'#10' END'#10' END,'#10' VALTOT' + - #10'FROM RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDEDOR, FECHA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'VENDEDOR' - TableField = 'VENDEDOR' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'NUMTALON' - TableField = 'NUMTALON' - end - item - DatasetField = 'VALTOT' - TableField = 'VALTOT' - end - item - DatasetField = 'CANTIDAD' - TableField = 'CANTIDAD' - end - item - DatasetField = 'CODCENTRO' - TableField = 'CODCENTRO' - end - item - DatasetField = 'CODVENDEDOR' - TableField = 'CODVENDEDOR' - end> - end> - Name = 'InformeRefGenerica' - Fields = < - item - Name = 'CODCENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODVENDEDOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANTIDAD' - DataType = datString - Size = 8000 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VALTOT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = < - item - Name = 'CODIGO' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TALLA' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT'#10' PRODUTOS_BARRA.CODIGO_BARRA,'#10' PRODUTOS_BARRA.COR_PRODU' + - 'TO,'#10' PRODUTOS.DESC_PRODUTO,'#10' PRODUTOS.PRODUTO,'#10' PRODUTOS_BARR' + - 'A.GRADE'#10'FROM'#10' PRODUTOS'#10' INNER JOIN PRODUTOS_BARRA ON (PRODUTOS' + - '.PRODUTO = PRODUTOS_BARRA.PRODUTO)'#10'WHERE PRODUTOS_BARRA.PRODUTO ' + - '= :CODIGO'#10'AND PRODUTOS_BARRA.GRADE = :TALLA'#10'AND PRODUTOS_BARRA.C' + - 'OR_PRODUTO = :COLOR' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CODIGO_BARRA' - TableField = 'CODIGO_BARRA' - end - item - DatasetField = 'COR_PRODUTO' - TableField = 'COR_PRODUTO' - end - item - DatasetField = 'DESC_PRODUTO' - TableField = 'DESC_PRODUTO' - end - item - DatasetField = 'PRODUTO' - TableField = 'PRODUTO' - end - item - DatasetField = 'GRADE' - TableField = 'GRADE' - end> - end> - Name = 'GetProducto' - Description = 'Datos de una prenda' - Fields = < - item - Name = 'CODIGO_BARRA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COR_PRODUTO' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESC_PRODUTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUTO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRADE' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_REFERENCIA_GENERICA' - SQL = - 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, NUMCON, FECHA,'#10' C' + - 'ODCENTRO,'#10' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN'#10' ' + - ' CENTRO'#10' ELSE'#10' ' + - ' CODCENTRO + '#39' - '#39' + CENTRO'#10' END,'#10' C' + - 'ODVENDEDOR,'#10' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR)' + - ' THEN'#10' VENDEDOR'#10' ELSE'#10' ' + - ' CODVENDEDOR + '#39' - '#39' + VENDEDOR'#10' ' + - ' END,'#10' NUMTALON, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TA' + - 'LLA, VTAPROCESO,'#10' VTAFINAL, VTATERM, VALTOT, ESTADO, FECHACAM' + - 'BIO'#10' FROM'#10' RDX_V_REFERENCIA_GENERICA'#10'ORDER BY CENTRO, VENDED' + - 'OR, FECHA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMINF' - TableField = 'NUMINF' - end - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'CLAVE3' - TableField = 'CLAVE3' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'CODCENTRO' - TableField = 'CODCENTRO' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'CODVENDEDOR' - TableField = 'CODVENDEDOR' - end - item - DatasetField = 'VENDEDOR' - TableField = 'VENDEDOR' - end - item - DatasetField = 'NUMTALON' - TableField = 'NUMTALON' - end - item - DatasetField = 'CODIGO_BARRA' - TableField = 'CODIGO_BARRA' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'TALLA' - TableField = 'TALLA' - end - item - DatasetField = 'VTAPROCESO' - TableField = 'VTAPROCESO' - end - item - DatasetField = 'VTAFINAL' - TableField = 'VTAFINAL' - end - item - DatasetField = 'VTATERM' - TableField = 'VTATERM' - end - item - DatasetField = 'VALTOT' - TableField = 'VALTOT' - end - item - DatasetField = 'ESTADO' - TableField = 'ESTADO' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end - item - DatasetField = 'NUMCON' - TableField = 'NUMCON' - end> - end> - Name = 'ReferenciaGenerica' - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE2' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE3' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMCON' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODCENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 45 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODVENDEDOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 86 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO_BARRA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VTAPROCESO' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VTAFINAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VTATERM' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VALTOT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'ESTADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO_BARRA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTAPROCESO' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTAFINAL' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTATERM' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VALTOT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE3' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_NUMCON' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_REFERENCIA_GENERICA' - SQL = - 'UPDATE RDX_REFERENCIA_GENERICA'#10' SET '#10' ESTADO = :ESTADO,'#10' ' + - 'FECHACAMBIO = :FECHACAMBIO,'#10' CODIGO_BARRA = :CODIGO_BARRA,'#10' ' + - ' CANESP = :VTAPROCESO,'#10' CANVENNET = :VTAFINAL,'#10' CANVEN = ' + - ':VTATERM,'#10' VALVEN = :VALTOT'#10' WHERE'#10' (NUMINF = :OLD_NUMINF' + - ') AND'#10' (CLAVE1 = :OLD_CLAVE1) AND'#10' (CLAVE2 = :OLD_CLAVE2) ' + - 'AND'#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = :OLD_NUMCON)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_ReferenciaGenerica' - end - item - Params = < - item - Name = 'ESTADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_REFERENCIA_GENERICA' - SQL = - 'INSERT INTO RDX_REFERENCIA_GENERICA'#10'(NUMINF, CLAVE1, CLAVE2, CLA' + - 'VE3, ENESPERA, FECHACAMBIO)'#10'SELECT V.NUMINF, V.CLAVE1, V.CLAVE2,' + - ' V.CLAVE3, :ESTADO, CURRENT_TIMESTAMP'#10'FROM RDX_V_REFERENCIA_GENE' + - 'RICA V' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'CambiarEstado' - end - item - Params = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE3' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ESTADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO_BARRA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTATERM' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTAPROCESO' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VTAFINAL' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VALTOT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_REFERENCIA_GENERICA' - SQL = - 'begin'#10' declare @NUMINF varchar(35)'#10' declare @CLAVE1 nume' + - 'ric(10, 0)'#10' declare @CLAVE2 numeric(5, 0)'#10' declare @CLAV' + - 'E3 numeric(5, 0)'#10' declare @ESTADO char(1)'#10' declare @FECH' + - 'ACAMBIO datetime'#10' declare @CODIGO_BARRA varchar(25)'#10' dec' + - 'lare @VTATERM numeric(15, 3)'#10' declare @VTAPROCESO numeric(15' + - ', 3)'#10' declare @VTAFINAL numeric(15, 3)'#10' declare @NUMCON ' + - 'smallint'#10' declare @VALTOT numeric(15, 3)'#10#10' set @NUMINF =' + - ' :NUMINF'#10' set @CLAVE1 = :CLAVE1'#10' set @CLAVE2 = :CLAVE2'#10' ' + - ' set @CLAVE3 = :CLAVE3'#10' set @ESTADO = :ESTADO'#10' set @F' + - 'ECHACAMBIO = :FECHACAMBIO'#10' set @CODIGO_BARRA = :CODIGO_BARRA' + - #10' set @VTATERM = :VTATERM'#10' set @VTAPROCESO = :VTAPROCESO' + - #10' set @VTAFINAL = :VTAFINAL'#10' set @VALTOT = :VALTOT'#10#10' ' + - ' set @NUMCON = 0'#10#10' select @NUMCON = isnull(max(NUMCON) + 1, ' + - '0)'#10' from RDX_REFERENCIA_GENERICA'#10' where (NUMINF = @NUMIN' + - 'F) and'#10' (CLAVE1 = @CLAVE1) and'#10' (CLAVE2 = @C' + - 'LAVE2) and'#10' (CLAVE3 = @CLAVE3)'#10#10' INSERT INTO RDX_R' + - 'EFERENCIA_GENERICA'#10' (NUMINF, CLAVE1, CLAVE2, CLAVE3,'#10' ' + - ' ESTADO, FECHACAMBIO, CODIGO_BARRA,'#10' CANVEN, CANESP, CANV' + - 'ENNET, VALVEN, NUMCON)'#10' VALUES'#10' (@NUMINF, @CLAVE1, @CLA' + - 'VE2, @CLAVE3,'#10' @ESTADO, @FECHACAMBIO, @CODIGO_BARRA,'#10' ' + - '@VTATERM, @VTAPROCESO, @VTAFINAL, @VALTOT, @NUMCON)'#10#10'end' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_ReferenciaGenerica' - end - item - Params = < - item - Name = 'OLD_NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_CLAVE3' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_NUMCON' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_REFERENCIA_GENERICA' - SQL = - 'DELETE '#10' FROM'#10' RDX_REFERENCIA_GENERICA'#10' WHERE'#10' (NUMINF =' + - ' :OLD_NUMINF) AND '#10' (CLAVE1 = :OLD_CLAVE1) AND '#10' (CLAVE2 =' + - ' :OLD_CLAVE2) AND '#10' (CLAVE3 = :OLD_CLAVE3) AND'#10' (NUMCON = ' + - ':OLD_NUMCON)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Delete_ReferenciaGenerica' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 56 - Top = 32 - end - object bpReferenciaGenerica: TDABusinessProcessor - Schema = schReferenciaGenerica - InsertCommandName = 'Insert_ReferenciaGenerica' - DeleteCommandName = 'Delete_ReferenciaGenerica' - UpdateCommandName = 'Update_ReferenciaGenerica' - ReferencedDataset = 'ReferenciaGenerica' - ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] - UpdateMode = updWhereKeyOnly - Left = 208 - Top = 32 - end - object frxDBCabecera: TfrxDBDataset - UserName = 'frxReferenciasGenericas' - CloseDataSource = False - DataSource = dsReferenciasGenericas - Left = 120 - Top = 128 - end - object dsReferenciasGenericas: TDADataSource - DataSet = tbl_ReferenciasGenericas.Dataset - DataTable = tbl_ReferenciasGenericas - Left = 120 - Top = 176 - end - object frxReport1: TfrxReport - Version = '3.23.7' - DotMatrixReport = False - EngineOptions.DoublePass = True - IniFile = '\Software\Fast Reports' - PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] - PreviewOptions.OutlineWidth = 180 - PreviewOptions.Zoom = 1.000000000000000000 - PrintOptions.Printer = 'Default' - ReportOptions.CreateDate = 37871.995398692100000000 - ReportOptions.Description.Strings = ( - 'Demonstrates how to create simple list report.') - ReportOptions.LastChange = 38902.414757476900000000 - ReportOptions.VersionBuild = '1' - ReportOptions.VersionMajor = '12' - ReportOptions.VersionMinor = '13' - ReportOptions.VersionRelease = '1' - ScriptLanguage = 'PascalScript' - ScriptText.Strings = ( - 'begin' - '' - 'end.') - StoreInDFM = False - Left = 40 - Top = 128 - Datasets = < - item - DataSet = frxDBCabecera - DataSetName = 'frxReferenciasGenericas' - end> - Variables = <> - Style = < - item - Name = 'Concepto normal' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [] - end - item - Name = 'Concepto subtotal' - Color = 15790320 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end - item - Name = 'Cabecera de columna' - Color = 15790320 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] - end - item - Name = 'Concepto titulo' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end> - end - object tbl_ReferenciasGenericas: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = <> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteFetchEnabled = False - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - IndexDefs = <> - Left = 120 - Top = 232 - end - object ADOConnection1: TADOConnection - ConnectionString = - 'Provider=SQLNCLI.1;Password=123456;Persist Security Info=True;Us' + - 'er ID=usuario_gft;Initial Catalog=gft_varela;Data Source=localho' + - 'st' - Provider = 'SQLNCLI.1' - Left = 344 - Top = 136 - end - object ADOQuery1: TADOQuery - Connection = ADOConnection1 - CursorType = ctStatic - Parameters = <> - SQL.Strings = ( - 'SELECT' - ' CENTRO = CASE WHEN (CODCENTRO = CENTRO) THEN' - ' CENTRO' - ' ELSE' - ' CODCENTRO + '#39' - '#39' + CENTRO' - ' END,' - ' VENDEDOR = CASE WHEN (CODVENDEDOR = VENDEDOR) THEN' - ' VENDEDOR' - ' ELSE' - ' CODVENDEDOR + '#39' - '#39' + VENDEDOR' - ' END,' - ' FECHA,' - ' NUMTALON,' - ' CANTIDAD =' - ' CASE WHEN (VTAPROCESO <> 0) THEN' - - ' REPLACE(CAST(VTAPROCESO AS VARCHAR), '#39'.000'#39', '#39#39')' + - ' + '#39' (venta proceso)'#39 - ' ELSE' - ' CASE WHEN (VTAFINAL <> 0) THEN' - - ' REPLACE(CAST(VTAFINAL AS VARCHAR), '#39'.000'#39', '#39 + - #39') + '#39' (venta final/resc.)'#39 - ' ELSE' - ' CASE WHEN (VTATERM <> 0) THEN' - - ' REPLACE(CAST(VTATERM AS VARCHAR), '#39'.000'#39 + - ', '#39#39') + '#39' (venta term./dev.)'#39 - ' ELSE' - ' '#39'0'#39 - ' END' - ' END' - ' END,' - ' VALTOT' - 'FROM RDX_V_REFERENCIA_GENERICA' - 'ORDER BY CENTRO, VENDEDOR, FECHA') - Left = 344 - Top = 200 - end - object DataSource1: TDataSource - DataSet = ADOQuery1 - Left = 240 - Top = 144 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 336 - Top = 32 - end -end diff --git a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas b/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas deleted file mode 100644 index 47b0d33..0000000 --- a/Varela/Varela/Source/Modulos/ReferenciaGenerica/Servidor/srvReferenciaGenerica_Impl.pas +++ /dev/null @@ -1,178 +0,0 @@ -unit srvReferenciaGenerica_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, - uDABusinessProcessor, uDADataTable, uDACDSDataTable, frxClass, DB, - frxDBSet, ADODB, uDAInterfaces, uROClient, uROEventRepository, - uDABINAdapter, uDADataStreamer; - -type - { TsrvReferenciaGenerica } - TsrvReferenciaGenerica = class(TDARemoteService, IsrvReferenciaGenerica) - bpReferenciaGenerica: TDABusinessProcessor; - frxDBCabecera: TfrxDBDataset; - dsReferenciasGenericas: TDADataSource; - tbl_ReferenciasGenericas: TDACDSDataTable; - ADOConnection1: TADOConnection; - ADOQuery1: TADOQuery; - DataSource1: TDataSource; - frxReport1: TfrxReport; - DABINAdapter: TDABINAdapter; - schReferenciaGenerica: TDASchema; - procedure DARemoteServiceCreate(Sender: TObject); - private - protected - function GetProducto(const Codigo: String; const Talla: String; - const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; - function GenerateReport(const Centro: String; const Vendedor: String; - const Estado: String; const FiltroUsuario: String): Binary; - procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, - schReferenciaGenericaClient_Intf, uBizReferenciaGenericaServer, Dialogs; - -procedure Create_srvReferenciaGenerica(out anInstance : IUnknown); -begin - anInstance := TsrvReferenciaGenerica.Create(NIL); -end; - -{ srvReferenciaGenerica } -{ TsrvReferenciaGenerica } - -function TsrvReferenciaGenerica.GenerateReport(const Centro, - Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; -var - ds: IDADataset; - AStream: TMemoryStream; - AWhere : String; -begin - AStream := TMemoryStream.Create; - Result := Binary.Create; - AWhere := ''; - try - ds := schReferenciaGenerica.NewDataset(Connection, 'InformeRefGenerica'); - - if Length(Centro) > 0 then - begin - AWhere := 'CODCENTRO = ''' + Centro + ''''; - end; - - if Length(Vendedor) > 0 then - begin - if Length(AWhere) > 0 then - AWhere := AWhere + ' AND '; - AWhere := AWhere + 'CODVENDEDOR = ''' + Vendedor + ''''; - end; - - if Length(Estado) > 0 then - begin - if Length(AWhere) > 0 then - AWhere := AWhere + ' AND '; - AWhere := AWhere + '((ESTADO = ''' + Estado + ''') '; - if Estado = 'P' then - AWhere := AWhere + 'OR (ESTADO is null)'; - AWhere := AWhere + ')'; - end; - - if Length(FiltroUsuario) > 0 then - begin - if Length(AWhere) > 0 then - AWhere := AWhere + ' AND '; - AWhere := AWhere + '(' + FiltroUsuario + ')'; - end; - - ds.Where.AddText(AWhere); - - AStream.Clear; - ServiceAdapter.WriteDataset(AStream, ds, [woRows, woSchema], -1); - ServiceAdapter.ReadDataset(AStream, tbl_ReferenciasGenericas, TRUE, '', TRUE, TRUE); - - frxReport1.LoadFromFile(DarRutaInformes + 'InformeReferenciaGenerica.fr3', True); - frxReport1.PrepareReport; - frxReport1.PreviewPages.SaveToStream(Result); - finally - AStream.Free; - end; -end; - - -function TsrvReferenciaGenerica.GetProducto(const Codigo: String; const Talla: String; - const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; -var - ds : IDADataset; - conn : IDAConnection; -begin - conn := dmServer.ConnectionManager.NewConnection(ConnectionName); - ds := schReferenciaGenerica.NewDataset(conn, nme_GetProducto); - - ds.ParamByName('CODIGO').AsString := Codigo; - ds.ParamByName('TALLA').AsString := Talla; - ds.ParamByName('COLOR').AsString := Color; - try - ds.Open; - Result := not ds.IsEmpty; - if Result then - begin - Descripcion := ds.FieldValues[idx_GetProductoDESC_PRODUTO]; - CodigoBarras := ds.FieldValues[idx_GetProductoCODIGO_BARRA]; - end; - finally - ds.Close; - ds := nil; - conn := nil; - end; -end; - -procedure TsrvReferenciaGenerica.PasarProductosAEspera(const Centro, - Vendedor: String); -var - cmd : IDASQLCommand; - conn : IDAConnection; -begin - conn := dmServer.ConnectionManager.NewConnection(ConnectionName); - conn.BeginTransaction; - - cmd := schReferenciaGenerica.NewCommand(conn, 'CambiarEstado'); - try - if Length(Centro) > 0 then - begin - cmd.Where.AddText('V.CODCENTRO = ''' + Centro + ''''); - if Length(Vendedor) > 0 then - cmd.Where.AddText('AND V.CODVENDEDOR = ''' + Vendedor + ''''); - end; - cmd.Execute; - conn.CommitTransaction; - except - conn.RollbackTransaction; - end; -end; - -procedure TsrvReferenciaGenerica.DARemoteServiceCreate(Sender: TObject); -begin - bpReferenciaGenerica.BusinessRulesID := BIZ_SERVER_REFERENCIA_GENERICA; -end; - -initialization - TROClassFactory.Create('srvReferenciaGenerica', Create_srvReferenciaGenerica, TsrvReferenciaGenerica_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj deleted file mode 100644 index 3e22257..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Stock.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 2 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.2.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg deleted file mode 100644 index 53e7995..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof deleted file mode 100644 index 326e1c7..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;PluginSDK_D7R;DJcl;JvStdCtrlsD7R;JvAppFrmD7R;JvCoreD7R;JvBandsD7R;JvBDED7R;JvDBD7R;JvDlgsD7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;qrpt;JvGlobusD7R;JvHMID7R;JvInspectorD7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvSystemD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;GUISDK_D7;RemObjects_WebBroker_D7;RemObjects_Indy_D7;RemObjects_RODX_D7;RemObjects_BPDX_D7;PascalScript_RO_D7;DataAbstract_Core_D7;DataAbstract_IDE_D7;DataAbstract_DBXDriver_D7;DataAbstract_Scripting_D7;dxBarD7;dxComnD7;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxNavBarD7;dxPSCoreD7;dxsbD7;dxPSLnksD7;dxPSTeeChartD7;EPCOTAUtils70;PNG_D7;PngComponentsD7;tb2k_d7;tbx_d7;UserControlD7_RT;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;dxPScxCommonD7;dxPScxExtCommonD7;dxPScxGridLnkD7;dxPScxPCProdD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7;TMSD7;FR7;FRIBX7;cxIntlSchedulerD7;dxLayoutControlD7;dxPScxScheduler2LnkD7;ComparerD7;dxPSdxLCLnkD7;dxLayoutControlcxEditAdaptersD7;cxVerticalGridVCLD7;vclShX_Generic_V3D7.bpl;vclShX_Namespace_V3D7.bpl -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=2 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.2.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk deleted file mode 100644 index 1626dfe..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.dpk +++ /dev/null @@ -1,81 +0,0 @@ -package Stock; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - vcl, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - PluginSDK_D10R, - GUISDK_D10, - BaseD10, - ControlesBaseD10, - dbrtl, - dsnap, - adortl, - cxLibraryD10, - dxThemeD10, - cxEditorsD10, - cxDataD10, - vcljpg, - vcldb, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - cxExportD10, - dxPSCoreD10, - dxComnD10, - dxPScxGridLnkD10, - dxPScxCommonD10, - dxPSLnksD10, - designide, - vclshlctrls, - dclcxLibraryD10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - Parametros; - -contains - uPluginControllerStock in 'uPluginControllerStock.pas' {ModuleStock: TModuleController}, - uDataModuleStock in 'uDataModuleStock.pas' {dmStock: TDAClientDataModule}, - uBizStock in '..\Reglas\uBizStock.pas', - uViewControGridStockPrendasCentros in 'uViewControGridStockPrendasCentros.pas' {frViewControlGridStockPrendasCentros: TCustomView}, - uViewControGridStockEDI in 'uViewControGridStockEDI.pas' {frViewControlGridStockEDI: TCustomView}, - uEditorControlStockEDI in 'uEditorControlStockEDI.pas' {fEditorControlStockEDI: TCustomEditor}, - uEditorControlStockVARELA in 'uEditorControlStockVARELA.pas' {fEditorControlStockVARELA: TCustomEditor}, - uViewFiltrosStock in 'uViewFiltrosStock.pas' {frViewFiltrosStock: TCustomView}, - uViewControGridStockVARELA in 'uViewControGridStockVARELA.pas' {frViewControlGridStockVARELA: TCustomView}, - uViewControGridStockEDIInventario in 'uViewControGridStockEDIInventario.pas' {frViewControlGridStockEDIInventario: TCustomView}; - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.identcache deleted file mode 100644 index b248b7d82e8a0520c82914518fd632def94ab3c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1499 zcmc)Ku};J=3VK(N6JlPf2Nk~z&9 zEBfU8_IXhhA7|C2s%Z!h;JlRDnX&`#(T$>RC1^%cTa?nAN=Ve2*iLmm7^Jdgx`V-s z>NSJas-wUIs4babV|C|gxL1|M_&%u681%#yInQLLyMDE6ZdMnMS|aD~yk~ax2!~(Q zHKUneO}&|`-ZHCN8%A`eZdu^THAlT31Q?dCC%~9gJ3s3Tu2$D!wx}C6S+& z!5J-83_g?0f9-2|U<~-i?IZ6v<#XTX^1k$D$UTGqH&$XXye`nKE40U8CFB1C8qyOg diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc deleted file mode 100644 index f4e84f6..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,2,0 -PRODUCTVERSION 1,0,2,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.2.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res b/Varela/Varela/Source/Modulos/Stock/Cliente/Stock.res deleted file mode 100644 index 31c891c793c14bddb38063f7b351f28a1e100258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5J8vXa5QWRw5@@vo2jt^`06AC_-nK+c8)h~|7%x4LJ>V`I}+x$dKGol|w|-f6X&*@2|*L)2V*e%a6YUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1k zY~p)gcb)%sB*tXC|GfUxCnpH}xWDj4T*U6&6gxT0So2x1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8b6~2;>lIU&LZsTwze(H0n{VKl$wDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BWbfHy`&jb6eIlLD>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDV9S$M(c({r}KDQ|qxK)Q;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm deleted file mode 100644 index 2f888c3..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.dfm +++ /dev/null @@ -1,1209 +0,0 @@ -object dmStock: TdmStock - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 322 - Width = 267 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvStock' - Left = 48 - Top = 20 - end - object tbl_StockEDI: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'CENTRO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TE' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TS' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'KT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'StockEDI' - IndexDefs = <> - Left = 184 - Top = 16 - end - object tbl_StockVARELA: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'KT' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'StockVARELA' - IndexDefs = <> - Left = 184 - Top = 72 - end - object tbl_StockPrendasCentros: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'C'#243'digo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Producto' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Tipo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Grupo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Colecci'#243'n' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Color' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '38' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '40' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '42' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '44' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '46' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '48' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'StockPrendasCentros' - IndexDefs = <> - Left = 48 - Top = 176 - end - object ds_StockPrendasCentros: TDADataSource - DataSet = tbl_StockPrendasCentros.Dataset - DataTable = tbl_StockPrendasCentros - Left = 48 - Top = 232 - end - object tbl_StockEDIInventario: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'CENTRO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TI' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TK' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'StockEDIInventario' - IndexDefs = <> - Left = 185 - Top = 136 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 48 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas deleted file mode 100644 index 0e5ed7c..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uDataModuleStock.pas +++ /dev/null @@ -1,112 +0,0 @@ -unit uDataModuleStock; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, - uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, - uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, - uBizStock, uDARemoteDataAdapter, uDAInterfaces; - -type - TdmStock = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_StockEDI: TDACDSDataTable; - tbl_StockVARELA: TDACDSDataTable; - tbl_StockPrendasCentros: TDACDSDataTable; - ds_StockPrendasCentros: TDADataSource; - tbl_StockEDIInventario: TDACDSDataTable; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - public - function GetItemsStockVarela : IBizStockVARELA; - function GetItemsStockEDI : IBizStockEDI; - function GetItemsStockEDIInventario : IBizStockEDIInventario; - function GetItemsStockPrendasCentros : IBizStockPrendasCentros; - end; - -var - dmStock: TdmStock; - -implementation - -{$R *.DFM} - -uses - uDataModuleBase, Controls, Forms, cxControls, uDataTableUtils; - - -procedure TdmStock.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmStock.GetItemsStockEDI: IBizStockEDI; -var - dtItemsStockEDI: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtItemsStockEDI := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_StockEDI, dtItemsStockEDI); - dtItemsStockEDI.BusinessRulesID := BIZ_STOCK_EDI; - Result := (dtItemsStockEDI as IBizStockEDI); - finally - HideHourglassCursor; - end; -end; - -function TdmStock.GetItemsStockEDIInventario: IBizStockEDIInventario; -var - dtItemsStockEDIInventario: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtItemsStockEDIInventario := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_StockEDIInventario, dtItemsStockEDIInventario); - dtItemsStockEDIInventario.BusinessRulesID := BIZ_STOCK_EDIINVENTARIO; - Result := (dtItemsStockEDIInventario as IBizStockEDIInventario); - finally - HideHourglassCursor; - end; -end; - -function TdmStock.GetItemsStockPrendasCentros: IBizStockPrendasCentros; -var - dtItemsStock: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtItemsStock := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_StockPrendasCentros, dtItemsStock); - dtItemsStock.BusinessRulesID := BIZ_STOCK_PRENDAS_CENTROS; - Result := (dtItemsStock as IBizStockPrendasCentros); - finally - HideHourglassCursor; - end; -end; - -function TdmStock.GetItemsStockVarela: IBizStockVARELA; -var - dtItemsStockVARELA: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtItemsStockVARELA := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_StockVARELA, dtItemsStockVARELA); - dtItemsStockVARELA.BusinessRulesID := BIZ_STOCK_VARELA; - Result := (dtItemsStockVARELA as IBizStockVARELA); - finally - HideHourglassCursor; - end; -end; - -initialization - dmStock := TdmStock.Create(nil); - -finalization - FreeAndNil(dmStock); - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm deleted file mode 100644 index ee5fffe..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.dfm +++ /dev/null @@ -1,2230 +0,0 @@ -inherited fEditorControlStockEDI: TfEditorControlStockEDI - Left = 467 - Top = 265 - Width = 687 - Height = 607 - Caption = 'Control de stock de centros' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 679 - inherited Image1: TImage - Left = 652 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C - 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 - 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF - EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 - B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B - 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 - 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF - 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C - 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 - C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 - 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 - 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 - 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 - FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 - 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 - B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F - 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 - A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F - E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 - B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 - F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 - 3F01A44422D9EF203E7B0000000049454E44AE426082} - end - end - inherited TBXDock: TTBXDock - Width = 679 - inherited tbxMain: TTBXToolbar - inherited TBXItem33: TTBXItem - Visible = False - end - object TBXSeparatorItem16: TTBXSeparatorItem [13] - end - object TBXItem39: TTBXItem [14] - Action = actExpandir - end - object TBXItem38: TTBXItem [15] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [16] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - inherited TBXSubmenuItem6: TTBXSubmenuItem - object TBXItem37: TTBXItem [0] - Action = actExpandir - end - object TBXItem36: TTBXItem [1] - Action = actContraer - end - object TBXItem35: TTBXItem [2] - Action = actAnchoAuto - end - object TBXSeparatorItem17: TTBXSeparatorItem [3] - end - end - end - inherited tbxFiltro: TTBXToolbar - Left = 350 - DockPos = 304 - end - end - inherited StatusBar: TStatusBar - Top = 554 - Width = 679 - end - object PageControl1: TPageControl [3] - Left = 0 - Top = 76 - Width = 679 - Height = 478 - ActivePage = tabResumen - Align = alClient - TabOrder = 3 - OnChange = PageControl1Change - object tabResumen: TTabSheet - Caption = 'Resumido por prendas' - inline frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros - Left = 0 - Top = 0 - Width = 671 - Height = 450 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 671 - Height = 407 - inherited cxGridView: TcxGridDBTableView - DataController.Summary.FooterSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Column = frViewControlGridStockPrendasCentros1.cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridView48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockPrendasCentros1.cxGridViewTOTAL - end> - end - end - inherited frViewFiltrosStock1: TfrViewFiltrosStock - Width = 671 - inherited dxLayoutControl1: TdxLayoutControl - Width = 671 - inherited cbColeccion: TcxComboBox - Width = 242 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 354 - Width = 249 - end - end - end - inherited dsDataSource: TDADataSource - Left = 16 - Top = 152 - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - ReportDocument.CreationDate = 38966.445252812500000000 - ReportDocument.IsCaptionAssigned = True - BuiltInReportLink = True - end - end - end - end - object tabDesglose: TTabSheet - Caption = 'Detallado por centros' - ImageIndex = 1 - inline frViewControlGridStockEDI1: TfrViewControlGridStockEDI - Left = 0 - Top = 0 - Width = 671 - Height = 450 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 671 - Height = 401 - inherited cxGridView: TcxGridDBTableView - PopupMenu = GridPopupMenu - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewE48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewTE - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewS48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewTS - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDI1.cxGridViewKT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewE48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewTE - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewS48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewTS - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDI1.cxGridViewKT - end> - end - end - inherited frViewFiltrosStock1: TfrViewFiltrosStock - Width = 671 - inherited dxLayoutControl1: TdxLayoutControl - Width = 671 - inherited cbColeccion: TcxComboBox - Width = 242 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 354 - Width = 249 - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - ReportDocument.CreationDate = 38965.499016562500000000 - BuiltInReportLink = True - end - end - end - end - object tabInventario: TTabSheet - Caption = 'Diferencias con '#250'ltimo inventario' - ImageIndex = 2 - inline frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario - Left = 0 - Top = 0 - Width = 671 - Height = 450 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 671 - Height = 401 - inherited cxGridView: TcxGridDBTableView - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewI48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewTI - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewTK - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewD48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockEDIInventario1.cxGridViewDT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewI48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewTI - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewTK - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewD48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockEDIInventario1.cxGridViewDT - end> - end - end - inherited frViewFiltrosStock1: TfrViewFiltrosStock - Width = 671 - inherited dxLayoutControl1: TdxLayoutControl - Width = 671 - inherited cbColeccion: TcxComboBox - Width = 242 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 354 - Width = 65 - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - ReportDocument.CreationDate = 38993.574718599530000000 - BuiltInReportLink = True - end - end - end - end - end - inherited EditorActionList: TActionList - Top = 208 - inherited actNuevo: TAction - Visible = False - end - inherited actModificar: TAction - Visible = False - end - inherited actEliminar: TAction - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - end - end - inherited SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited dsDataTable: TDADataSource [8] - Left = 8 - Top = 208 - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - inherited GridPopupMenu: TPopupMenu - Left = 40 - Top = 208 - inherited Duplicar1: TMenuItem - Visible = False - end - end - object dsVentasTerminadas: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas deleted file mode 100644 index 74a8780..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockEDI.pas +++ /dev/null @@ -1,242 +0,0 @@ -unit uEditorControlStockEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, - uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, - uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, - - uBizStock,uViewControGridStockEDI, uViewControGridStockPrendasCentros, - uViewControGridStockEDIInventario; - -type - IEditorControlStockEDI = interface(IEditorGridBase) - ['{8CDABF14-FD43-48BF-8B33-B6B5A9B03CEB}'] -{ function GetItems: IBizStockEDI; - procedure SetItems(const Value: IBizStockEDI); - property Items: IBizStockEDI read GetItems write SetItems;} - end; - - TfEditorControlStockEDI = class(TfEditorGridBase, IEditorControlStockEDI) - dsVentasTerminadas: TDADataSource; - TBXSeparatorItem16: TTBXSeparatorItem; - tbxiAnchoAuto: TTBXItem; - actExpandir: TAction; - actContraer: TAction; - actAnchoAuto: TAction; - TBXItem37: TTBXItem; - TBXItem36: TTBXItem; - TBXItem35: TTBXItem; - TBXSeparatorItem17: TTBXSeparatorItem; - TBXItem38: TTBXItem; - TBXItem39: TTBXItem; - frViewControlGridStockEDI1: TfrViewControlGridStockEDI; - PageControl1: TPageControl; - tabResumen: TTabSheet; - tabDesglose: TTabSheet; - frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros; - tabInventario: TTabSheet; - frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario; - procedure actAnchoAutoExecute(Sender: TObject); - procedure FormShow(Sender: TObject); override; - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure PageControl1Change(Sender: TObject); - protected - FDesglose : IBizStockEDI; - FInventario : IBizStockEDIInventario; - FResumen : IBizStockPrendasCentros; - - function GetItemsDesglose: IBizStockEDI; - procedure SetItemsDesglose(const Value: IBizStockEDI); - - function GetItemsInventario: IBizStockEDIInventario; - procedure SetItemsInventario(const Value: IBizStockEDIInventario); - - function GetItemsResumen: IBizStockPrendasCentros; - procedure SetItemsResumen(const Value: IBizStockPrendasCentros); - public - property ItemsDesglose: IBizStockEDI read GetItemsDesglose write SetItemsDesglose; - property ItemsInventario: IBizStockEDIInventario read GetItemsInventario write SetItemsInventario; - property ItemsResumen: IBizStockPrendasCentros read GetItemsResumen write SetItemsResumen; - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -uses - cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase, - uDataModuleStock, uDAInterfaces; - -{$R *.dfm} - -{ TfEditorControlStockEDI } - -procedure TfEditorControlStockEDI.actAnchoAutoExecute(Sender: TObject); -begin - inherited; - case PageControl1.ActivePageIndex of - 0 : frViewControlGridStockPrendasCentros1.AjustarAncho; - 1 : frViewControlGridStockEDI1.AjustarAncho; - 2 : frViewControlGridStockEDIInventario1.AjustarAncho; - end; -end; - -procedure TfEditorControlStockEDI.FormShow(Sender: TObject); -begin -// inherited; <- No descomentar - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - case PageControl1.ActivePageIndex of - 0 : ViewGrid.ShowEmbedded(tabResumen); - 1 : ViewGrid.ShowEmbedded(tabDesglose); - 2 : ViewGrid.ShowEmbedded(tabInventario); - end; - - ViewGrid.ExpandirTodo; -end; - -constructor TfEditorControlStockEDI.Create(AOwner: TComponent); -begin - inherited; - FResumen := nil; - FDesglose := nil; - FInventario := nil; - - Self.Caption := 'Control de stock en centros'; - JvNavPanelHeader.Caption := Self.Caption; - PageControl1.ActivePageIndex := 0; - - if not Assigned(FResumen) then - ItemsResumen := dmStock.GetItemsStockPrendasCentros; - - ViewGrid := frViewControlGridStockPrendasCentros1; -end; - -procedure TfEditorControlStockEDI.actExpandirExecute(Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorControlStockEDI.actContraerExecute(Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -function TfEditorControlStockEDI.GetItemsDesglose: IBizStockEDI; -begin - Result := FDesglose; -end; - -function TfEditorControlStockEDI.GetItemsResumen: IBizStockPrendasCentros; -begin - Result := FResumen; -end; - -procedure TfEditorControlStockEDI.SetItemsDesglose(const Value: IBizStockEDI); -begin - FDesglose := Value; - if Assigned(FDesglose) then - begin - ShowHourglassCursor; - try - dsDataTable.DataTable := FDesglose.DataTable; - frViewControlGridStockEDI1.dsDataSource.DataTable := FDesglose.DataTable; - - if not FDesglose.DataTable.Active then - FDesglose.DataTable.Active := True; - - actAnchoAuto.Execute; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorControlStockEDI.SetItemsResumen( - const Value: IBizStockPrendasCentros); -begin - FResumen := Value; - if Assigned(FResumen) then - begin - ShowHourglassCursor; - try - dsDataTable.DataTable := FResumen.DataTable; - frViewControlGridStockPrendasCentros1.dsDataSource.DataTable := FResumen.DataTable; - - if not FResumen.DataTable.Active then - FResumen.DataTable.Active := True; - - actAnchoAuto.Execute; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorControlStockEDI.PageControl1Change(Sender: TObject); -begin - inherited; - Self.Update; - - //Quitamos el filtro que hubiera - actQuitarFiltro.Execute; - - case PageControl1.ActivePageIndex of - 0 : begin - ViewGrid := frViewControlGridStockPrendasCentros1; - if not Assigned(FResumen) then - ItemsResumen := dmStock.GetItemsStockPrendasCentros; - end; - 1 : begin - ViewGrid := frViewControlGridStockEDI1; - if not Assigned(FDesglose) then - ItemsDesglose := dmStock.GetItemsStockEDI; - end; - 2 : begin - ViewGrid := frViewControlGridStockEDIInventario1; - if not Assigned(FInventario) then - ItemsInventario := dmStock.GetItemsStockEDIInventario; - end; - end; - - ViewGrid.Refresh; -end; - -function TfEditorControlStockEDI.GetItemsInventario: IBizStockEDIInventario; -begin - Result := FInventario; -end; - -procedure TfEditorControlStockEDI.SetItemsInventario(const Value: IBizStockEDIInventario); -begin - FInventario := Value; - if Assigned(FInventario) then - begin - ShowHourglassCursor; - try - dsDataTable.DataTable := FInventario.DataTable; - frViewControlGridStockEDIInventario1.dsDataSource.DataTable := FInventario.DataTable; - - if not FInventario.DataTable.Active then - FInventario.DataTable.Active := True; - - actAnchoAuto.Execute; - finally - HideHourglassCursor; - end; - end; -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm deleted file mode 100644 index 089709c..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.dfm +++ /dev/null @@ -1,1716 +0,0 @@ -inherited fEditorControlStockVARELA: TfEditorControlStockVARELA - Left = 408 - Top = 342 - Width = 687 - Height = 607 - Caption = 'Stock VARELA' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 679 - Caption = 'Control de stock de almac'#233'n' - inherited Image1: TImage - Left = 652 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C - 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 - 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF - EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 - B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B - 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 - 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF - 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C - 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 - C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 - 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 - 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 - 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 - FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 - 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 - B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F - 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 - A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F - E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 - B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 - F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 - 3F01A44422D9EF203E7B0000000049454E44AE426082} - end - end - inherited TBXDock: TTBXDock - Width = 679 - inherited tbxMain: TTBXToolbar - inherited TBXItem33: TTBXItem - Visible = False - end - object TBXSeparatorItem16: TTBXSeparatorItem [13] - end - object tbxiExpandir: TTBXItem [14] - Action = actExpandir - end - object tbxiContraer: TTBXItem [15] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [16] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - inherited TBXSubmenuItem6: TTBXSubmenuItem - object TBXItem37: TTBXItem [0] - Action = actExpandir - end - object TBXItem36: TTBXItem [1] - Action = actContraer - end - object TBXItem35: TTBXItem [2] - Action = actAnchoAuto - end - object TBXSeparatorItem17: TTBXSeparatorItem [3] - end - end - end - inherited tbxFiltro: TTBXToolbar - Left = 350 - DockPos = 350 - end - end - inherited StatusBar: TStatusBar - Top = 554 - Width = 679 - end - inline frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA [3] - Left = 0 - Top = 76 - Width = 679 - Height = 478 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 679 - Height = 435 - inherited cxGridView: TcxGridDBTableView - PopupMenu = GridPopupMenu - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = frViewControlGridStockVARELA1.cxGridViewKT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Column = frViewControlGridStockVARELA1.cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = frViewControlGridStockVARELA1.cxGridViewKT - end> - end - end - inherited frViewFiltrosStock1: TfrViewFiltrosStock - Width = 679 - inherited dxLayoutControl1: TdxLayoutControl - Width = 679 - inherited cbColeccion: TcxComboBox - Width = 242 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 354 - Width = 191 - end - end - end - inherited dsDataSource: TDADataSource - Top = 48 - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - ReportDocument.CreationDate = 38965.703007268520000000 - ReportDocument.IsCaptionAssigned = True - BuiltInReportLink = True - end - end - end - inherited EditorActionList: TActionList [4] - inherited actNuevo: TAction - Visible = False - end - inherited actModificar: TAction - Visible = False - end - inherited actEliminar: TAction - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - end - end - inherited SmallImages: TPngImageList [5] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited dsDataTable: TDADataSource - Left = 32 - Top = 136 - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - inherited GridPopupMenu: TPopupMenu - Left = 64 - Top = 152 - inherited Duplicar1: TMenuItem - Visible = False - end - inherited N2: TMenuItem - Visible = False - end - end - object dsVentasTerminadas: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas deleted file mode 100644 index 13a247e..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uEditorControlStockVARELA.pas +++ /dev/null @@ -1,134 +0,0 @@ -unit uEditorControlStockVARELA; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, - uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, - uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, - uBizStock, uViewControGridStockVARELA, uViewControlGrid; - -type - IEditorControlStockVARELA = interface(IEditorGridBase) - ['{E73FFD61-E345-43EF-A3D1-56B8A5D3DA8B}'] - function GetItems: IBizStockVARELA; - procedure SetItems(const Value: IBizStockVARELA); - property Items: IBizStockVARELA read GetItems write SetItems; - end; - - TfEditorControlStockVARELA = class(TfEditorGridBase, IEditorControlStockVARELA) - dsVentasTerminadas: TDADataSource; - TBXSeparatorItem16: TTBXSeparatorItem; - tbxiExpandir: TTBXItem; - tbxiContraer: TTBXItem; - tbxiAnchoAuto: TTBXItem; - actExpandir: TAction; - actContraer: TAction; - actAnchoAuto: TAction; - TBXItem37: TTBXItem; - TBXItem36: TTBXItem; - TBXItem35: TTBXItem; - TBXSeparatorItem17: TTBXSeparatorItem; - frViewControlGridStockVARELA1: TfrViewControlGridStockVARELA; - procedure actAnchoAutoExecute(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - private - property ViewGrid; - protected - FItems : IBizStockVARELA; - function GetItems: IBizStockVARELA; - procedure SetItems(const Value: IBizStockVARELA); - public - property Items: IBizStockVARELA read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -uses - cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase; - -{$R *.dfm} - -{ TfEditorControlStockEDI } - -procedure TfEditorControlStockVARELA.actAnchoAutoExecute(Sender: TObject); -begin - inherited; - frViewControlGridStockVARELA1.AjustarAncho; -end; - -procedure TfEditorControlStockVARELA.FormShow(Sender: TObject); -begin - inherited; - - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorControlStockVARELA.actImprimirExecute(Sender: TObject); -begin - frViewControlGridStockVARELA1.Print; -end; - -constructor TfEditorControlStockVARELA.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewControlGridStockVARELA1; - Self.Caption := 'Control de stock de almacén'; - JvNavPanelHeader.Caption := Self.Caption; -end; - -function TfEditorControlStockVARELA.GetItems: IBizStockVARELA; -begin - Result := FItems; -end; - -procedure TfEditorControlStockVARELA.SetItems(const Value: IBizStockVARELA); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewControlGridStockVARELA1.dsDataSource.DataTable := FItems.DataTable; - - if not FItems.DataTable.Active then - FItems.DataTable.Active := True; - - actAnchoAuto.Execute; - end; -end; - -procedure TfEditorControlStockVARELA.actPrevisualizarExecute(Sender: TObject); -begin - frViewControlGridStockVARELA1.Preview; -end; - -procedure TfEditorControlStockVARELA.actExpandirExecute(Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorControlStockVARELA.actContraerExecute(Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm deleted file mode 100644 index 467f3e3..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.dfm +++ /dev/null @@ -1,126 +0,0 @@ -object ModuleStock: TModuleStock - OldCreateOrder = True - Description = 'Control de stock' - ModuleMenu = MainMenu - ModuleName = 'Control de stock' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.6' - Left = 701 - Top = 547 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002B14944415478DA - B5955B48145118C7FFB30B65F89219452F1148588AB60F5A5B123E58ED6E6896 - 1015DB4314515426B8043E54A25DB044D844CB2EB6661962B5586EE9166B6D58 - A829AE6D7941B3EC8658544850BA33679A736C366FEBCEAAFDE1F0CDF966CEEF - 370387399C288AA0E1380EBE52B40BE2D8DEFE12F85C203319579E349CE37452 - A919FB70BD4B82E5148EEAB596A7A2AC8AC098A41A0F07D1AF4A13ED130944CD - F6D1A0A28C830CFEB3AF13D9A67C6FFF78DE61BC7952C02439A566888207441A - B4DE3C99897D1691F329B036C7B279FFAD950CFEE5B51DBEF2D96D63126D7A23 - 9B877569D1E222FE053B36C6A2E07A0D845A03FC25D8E08031792DE292D35064 - B8A85C404325234337828A0E956AF85AC5317871850357CBEE052E982C3C4FE0 - 110456AF591FCFAC40860F3C7762C061833D5C3F7382218F00CFE010FACCD918 - ECEEC0BCB316DCB6D74F5F4088085E200CFE21D50822ADA370E96350F9689A82 - 91F0773BF510D56ACCBF606570DAB7D5364E5D30F6CD7FB7B76241F95390A060 - D6A7A3C6D914B8A0DF52888F678E62C9652B66C7C4A12F2F13DF8BCD5878C301 - 2E2CC20BF7F0021CCF5AA62028BB82DE237B1114B102A1A613F8B46713E69A4E - 618EF180173E38C43341DD0BB73241F456332A5D6BB04D1FC300BDE9BBF1E34E - 29D421A1502F5A8C909287E0A59F28DBA612581E0D2D6DCA045129B9B8EB8EC7 - E6040D83FCEAE942AF2E8ADD0FB954059566F538389D37BB3B940922934FA3AA - 6D1D12E3A3A5851240FA8AAF596998B57E8B4F38AD2FDBBB94092212B360EB34 - 401F17C9E0FC5F084F884F38DD65AF3ABB950996198EE141771212B4CB5171BF - CEEFFF68641409C23764A0FA6D0A72F32D01C1E5F8152C4D30FD3B9D08EF3DA5 - 862B3FEA5ABE479F93F3ED7DD3E482B0F843E8719E9FD2DBCB994CA073B9C61F - FA8146A3C1C487FEFFCA1F9AC3C3EF68FFCFAC0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actStockEdi: TAction - Category = 'Stock' - Caption = 'Control de stock de centros' - ImageIndex = 0 - OnExecute = actStockEdiExecute - end - object actStockVarela: TAction - Category = 'Stock' - Caption = 'Control de stock de almac'#233'n' - ImageIndex = 0 - OnExecute = actStockVarelaExecute - end - end - object MainMenu: TMainMenu - Tag = 1000 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 8000 - Caption = '&Stock' - GroupIndex = 1 - ImageIndex = 4 - OnClick = actStockEdiExecute - object Stock1: TMenuItem - Tag = 100 - Action = actStockEdi - end - object Stock2: TMenuItem - Tag = 500 - Action = actStockVarela - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001D34944415478DA - 63FCFFFF3F03232323033A9891C0F01F999FB180014311582F889835B92D58FF - 5FF51A64C90B171818123AA682D965D1D90C51BEA89A2F32B586A4E556AD051B - 707222E37F8388A970C90515D960CD208D2050D79BC7D0543C89A16BE954867F - 7F7E30FCFDFD93A13AA58A61E29EFF8C7003EEA99E022BFEB4DA0CACF9CB8B9B - 604D20CDDFDF3E607879632FC3A2755F192C8A4E3128DFB66058BAF91FA60191 - 5EA60C33131919AE3D66C00A84BF33306CE0CD6498E13913B701D8C0CF5F7F18 - 9E4DEF65F8F1E23943F4F95FA41900D2FCB0BE90E1F7E7CF0C7C351318FC13AA - 883700A6F9FB8DAB0C42535733FCFAF39F2134AD0EBB010FD44E33847B9A30DC - 2D4E65F87CF20883C68E330C2F96CC66783DBD87416CD521863F9C7C60036372 - 9AB01BF050FD0C43988731C3E7534719AE0639300804C5327C58BB984178F20A - 0626137BB0E61F409C52D486DD80479A671942DD8CC00AEF1526813573798731 - F0D44F856B06D1D9155DD80D78A2758EC1C75E17ACE8F3CDEB0CAF2734327097 - 7531FC063A1DA619848BEAFAB01BF054FB3C8383A91A5C21320619F0F7EF3F70 - C0E234E0B9CE0586A6EE990CC400AC06A8BB9533DCDAD54D9401208062002837 - 5EDD889A1B09016D7F486E0400CE5079F0BCD676180000000049454E44AE4260 - 82} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = <> - Left = 232 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas deleted file mode 100644 index 17b42d8..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uPluginControllerStock.pas +++ /dev/null @@ -1,97 +0,0 @@ -unit uPluginControllerStock; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCStock = interface(IInterface) - ['{52C5C467-6FBE-476C-BE2A-A97D2752526C}'] - end; - - TModuleStock = class(TModuleController, IMCStock) - actStockEdi: TAction; - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - Stock1: TMenuItem; - SmallImages: TPngImageList; - actStockVarela: TAction; - Stock2: TMenuItem; - procedure actStockEdiExecute(Sender: TObject); - procedure actStockVarelaExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uEditorControlesBase, - uDataModuleStock, uEditorControlStockEDI, uBizStock, cxControls, - uEditorControlStockVARELA; - -function GetModule : TModuleController; -begin - Result := TModuleStock.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleStock.actStockEdiExecute(Sender: TObject); -var - aControl: IBizStockEDI; - aObj: IEditorControlStockEDI; -begin - //aControl := dmStock.GetItemsStockEDI; - aObj := TfEditorControlStockEDI.Create(Application); - - try - with aObj do - begin - //Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -procedure TModuleStock.actStockVarelaExecute(Sender: TObject); -var - aControl: IBizStockVARELA; - aObj: IEditorControlStockVARELA; -begin - aControl := dmStock.GetItemsStockVARELA; - aObj := TfEditorControlStockVARELA.Create(Application); - - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleStock); - -finalization - UnRegisterModuleClass(TModuleStock); - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm deleted file mode 100644 index 53bd0f2..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.dfm +++ /dev/null @@ -1,609 +0,0 @@ -inherited frViewControlGridStockEDI: TfrViewControlGridStockEDI - Width = 553 - Height = 477 - inherited cxGrid: TcxGrid - Top = 49 - Width = 553 - Height = 428 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewE48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewTE - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewS48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewTS - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewKT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewE48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewTE - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewS48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewTS - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewKT - end> - OptionsView.CellAutoHeight = False - OptionsView.FooterAutoHeight = False - OptionsView.GridLineColor = clDefault - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.GroupRowStyle = grsOffice11 - Preview.AutoHeight = False - Styles.Footer = cxStyleEven - object cxGridViewRecID: TcxGridDBColumn - DataBinding.FieldName = 'RecID' - Visible = False - end - object cxGridViewCENTRO: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - Visible = False - GroupIndex = 1 - end - object cxGridViewCOLECCION: TcxGridDBColumn - Caption = 'Colecci'#243'n' - DataBinding.FieldName = 'COLECCION' - Visible = False - GroupIndex = 0 - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'C'#243'digo' - DataBinding.FieldName = 'CODIGO' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - end - object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'TIPO_PRODUCTO' - Visible = False - end - object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'GRUPO_PRODUCTO' - Visible = False - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - end - object cxGridViewE38: TcxGridDBColumn - DataBinding.FieldName = 'E38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewE40: TcxGridDBColumn - DataBinding.FieldName = 'E40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewE42: TcxGridDBColumn - DataBinding.FieldName = 'E42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewE44: TcxGridDBColumn - DataBinding.FieldName = 'E44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewE46: TcxGridDBColumn - DataBinding.FieldName = 'E46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewE48: TcxGridDBColumn - DataBinding.FieldName = 'E48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewTE: TcxGridDBColumn - DataBinding.FieldName = 'TE' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle - end - object cxGridViewS38: TcxGridDBColumn - DataBinding.FieldName = 'S38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewS40: TcxGridDBColumn - DataBinding.FieldName = 'S40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewS42: TcxGridDBColumn - DataBinding.FieldName = 'S42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewS44: TcxGridDBColumn - DataBinding.FieldName = 'S44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewS46: TcxGridDBColumn - DataBinding.FieldName = 'S46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewS48: TcxGridDBColumn - DataBinding.FieldName = 'S48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewTS: TcxGridDBColumn - DataBinding.FieldName = 'TS' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK38: TcxGridDBColumn - DataBinding.FieldName = 'K38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK40: TcxGridDBColumn - DataBinding.FieldName = 'K40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK42: TcxGridDBColumn - DataBinding.FieldName = 'K42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK44: TcxGridDBColumn - DataBinding.FieldName = 'K44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK46: TcxGridDBColumn - DataBinding.FieldName = 'K46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK48: TcxGridDBColumn - DataBinding.FieldName = 'K48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewKT: TcxGridDBColumn - DataBinding.FieldName = 'KT' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridViewE38GetDataText - HeaderAlignmentHorz = taRightJustify - end - end - end - inline frViewFiltrosStock1: TfrViewFiltrosStock [1] - Left = 0 - Top = 0 - Width = 553 - Height = 49 - Align = alTop - Color = clWindow - ParentBackground = False - ParentColor = False - TabOrder = 1 - inherited dxLayoutControl1: TdxLayoutControl - Width = 553 - inherited cbColeccion: TcxComboBox - Left = 64 - Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged - Width = 121 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 284 - Width = 191 - OnChange = frViewFiltrosStock1ccbCentroChange - end - end - end - inherited dsDataSource: TDADataSource [2] - Left = 72 - Top = 88 - end - inherited dxComponentPrinter: TdxComponentPrinter [3] - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.LeftTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.Caption = 'Venta mensual' - ReportDocument.CreationDate = 39129.445520289350000000 - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsOnEveryPage.Footers = False - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.FilterBar = False - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - BuiltInReportLink = True - end - end - inherited dxPSEngineController1: TdxPSEngineController [4] - end - inherited cxStyleRepository1: TcxStyleRepository - inherited cxStyleEven: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - object cxStyleEntrada: TcxStyle - AssignedValues = [svTextColor] - TextColor = clNavy - end - object cxStyleSalida: TcxStyle - AssignedValues = [svTextColor] - TextColor = clGreen - end - object cxStyleTotales: TcxStyle - AssignedValues = [svColor, svFont] - Color = 13619151 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - end - object cxEditRepository1: TcxEditRepository - Left = 32 - Top = 88 - object cxEditDia: TcxEditRepositoryTextItem - Properties.Alignment.Horz = taRightJustify - end - object cxEditImporte: TcxEditRepositoryCurrencyItem - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 - Properties.UseThousandSeparator = True - end - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 296 - Top = 168 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas deleted file mode 100644 index cce71fc..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDI.pas +++ /dev/null @@ -1,220 +0,0 @@ -unit uViewControGridStockEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, - cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; - -type - IViewControlGridStockEDI = interface(IViewGrid) - ['{9342442A-28CD-4EA9-95C3-79B1B5302BCE}'] - end; - - TfrViewControlGridStockEDI = class(TfrViewGrid, IViewControlGridStockEDI) - dxComponentPrinterLink1: TdxGridReportLink; - cxEditRepository1: TcxEditRepository; - cxEditDia: TcxEditRepositoryTextItem; - cxEditImporte: TcxEditRepositoryCurrencyItem; - cxGridViewRecID: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; - cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewE38: TcxGridDBColumn; - cxGridViewE40: TcxGridDBColumn; - cxGridViewE42: TcxGridDBColumn; - cxGridViewE44: TcxGridDBColumn; - cxGridViewE46: TcxGridDBColumn; - cxGridViewE48: TcxGridDBColumn; - cxGridViewTE: TcxGridDBColumn; - cxGridViewS38: TcxGridDBColumn; - cxGridViewS40: TcxGridDBColumn; - cxGridViewS42: TcxGridDBColumn; - cxGridViewS44: TcxGridDBColumn; - cxGridViewS46: TcxGridDBColumn; - cxGridViewS48: TcxGridDBColumn; - cxGridViewTS: TcxGridDBColumn; - cxGridViewK38: TcxGridDBColumn; - cxGridViewK40: TcxGridDBColumn; - cxGridViewK42: TcxGridDBColumn; - cxGridViewK44: TcxGridDBColumn; - cxGridViewK46: TcxGridDBColumn; - cxGridViewK48: TcxGridDBColumn; - cxGridViewKT: TcxGridDBColumn; - frViewFiltrosStock1: TfrViewFiltrosStock; - cxStyleEntrada: TcxStyle; - cxStyleSalida: TcxStyle; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxStyleTotales: TcxStyle; - procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewE38GetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - procedure cxGridViewTEStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); - procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); - protected - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - public - procedure Preview; override; - procedure Print; override; - constructor Create(AOwner: TComponent); override; - procedure ShowEmbedded(const AParent : TWinControl); override; - procedure Refresh; override; - end; - -implementation -{$R *.dfm} - -uses uViewGridBase; - -{ TfrViewControlGridResumenVentas } - -procedure TfrViewControlGridStockEDI.Preview; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewControlGridStockEDI.Print; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; - dxComponentPrinterLink1.Print(True, Nil); -end; - -procedure TfrViewControlGridStockEDI.cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - inherited; - if not VarIsNull(AViewInfo.Value) then - if Pos('-', AViewInfo.Value) > 0 then - ACanvas.Canvas.Font.Color := $000000CC; -end; - -constructor TfrViewControlGridStockEDI.Create(AOwner: TComponent); -begin - inherited; - frViewFiltrosStock1.FocusedView := cxGridView; - frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; - frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; -end; - -procedure TfrViewControlGridStockEDI.ShowEmbedded( - const AParent: TWinControl); -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockEDI.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - // - if Assigned(AItem) then - if (AItem.Index = cxGridViewTE.Index) or - (AItem.Index = cxGridViewTS.Index) or - (AItem.Index = cxGridViewKT.Index) then - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockEDI.cxGridViewE38GetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -begin - inherited; - if AText = '0' then - AText := ''; -end; - -procedure TfrViewControlGridStockEDI.cxGridViewTEStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockEDI.Refresh; -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - - -procedure TfrViewControlGridStockEDI.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged( - Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewControlGridStockEDI.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; - i : integer; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - FNivelFiltrado := AItemList.AddItemList(fboAnd); - - if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); - - if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and - (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then - begin - FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); - for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do - if frViewFiltrosStock1.ccbCentro.IsChecked(i) then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); - end; - - if cxGridView.DataController.Filter.IsEmpty then - cxGridView.DataController.Filter.Active := False - else - cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -procedure TfrViewControlGridStockEDI.frViewFiltrosStock1ccbCentroChange( - Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm deleted file mode 100644 index e5c482c..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.dfm +++ /dev/null @@ -1,609 +0,0 @@ -inherited frViewControlGridStockEDIInventario: TfrViewControlGridStockEDIInventario - Width = 553 - Height = 477 - inherited cxGrid: TcxGrid - Top = 49 - Width = 553 - Height = 428 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewI48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewTI - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewTK - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewD48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewDT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewI48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewTI - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewTK - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewD48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewDT - end> - OptionsView.CellAutoHeight = False - OptionsView.FooterAutoHeight = False - OptionsView.GridLineColor = clDefault - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.GroupRowStyle = grsOffice11 - Preview.AutoHeight = False - Styles.Footer = cxStyleEven - object cxGridViewRecID: TcxGridDBColumn - DataBinding.FieldName = 'RecID' - Visible = False - end - object cxGridViewCENTRO: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - Visible = False - GroupIndex = 1 - end - object cxGridViewCOLECCION: TcxGridDBColumn - Caption = 'Colecci'#243'n' - DataBinding.FieldName = 'COLECCION' - Visible = False - GroupIndex = 0 - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'C'#243'digo' - DataBinding.FieldName = 'CODIGO' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - end - object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'TIPO_PRODUCTO' - Visible = False - end - object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'GRUPO_PRODUCTO' - Visible = False - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - end - object cxGridViewI38: TcxGridDBColumn - DataBinding.FieldName = 'I38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewI40: TcxGridDBColumn - DataBinding.FieldName = 'I40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewI42: TcxGridDBColumn - DataBinding.FieldName = 'I42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewI44: TcxGridDBColumn - DataBinding.FieldName = 'I44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewI46: TcxGridDBColumn - DataBinding.FieldName = 'I46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewI48: TcxGridDBColumn - DataBinding.FieldName = 'I48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleEntrada - end - object cxGridViewTI: TcxGridDBColumn - DataBinding.FieldName = 'TI' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.OnGetContentStyle = cxGridViewTEStylesGetContentStyle - end - object cxGridViewK38: TcxGridDBColumn - DataBinding.FieldName = 'K38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewK40: TcxGridDBColumn - DataBinding.FieldName = 'K40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewK42: TcxGridDBColumn - DataBinding.FieldName = 'K42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewK44: TcxGridDBColumn - DataBinding.FieldName = 'K44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewK46: TcxGridDBColumn - DataBinding.FieldName = 'K46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewK48: TcxGridDBColumn - DataBinding.FieldName = 'K48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.Content = cxStyleSalida - end - object cxGridViewTK: TcxGridDBColumn - DataBinding.FieldName = 'TK' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD38: TcxGridDBColumn - DataBinding.FieldName = 'D38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD40: TcxGridDBColumn - DataBinding.FieldName = 'D40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD42: TcxGridDBColumn - DataBinding.FieldName = 'D42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD44: TcxGridDBColumn - DataBinding.FieldName = 'D44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD46: TcxGridDBColumn - DataBinding.FieldName = 'D46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewD48: TcxGridDBColumn - DataBinding.FieldName = 'D48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewDT: TcxGridDBColumn - DataBinding.FieldName = 'DT' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - OnCustomDrawCell = cxGridViewDTCustomDrawCell - OnGetDataText = cxGridViewI38GetDataText - HeaderAlignmentHorz = taRightJustify - end - end - end - inline frViewFiltrosStock1: TfrViewFiltrosStock [1] - Left = 0 - Top = 0 - Width = 553 - Height = 49 - Align = alTop - Color = clWindow - ParentBackground = False - ParentColor = False - TabOrder = 1 - inherited dxLayoutControl1: TdxLayoutControl - Width = 553 - inherited cbColeccion: TcxComboBox - Left = 64 - Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged - Width = 145 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 257 - Width = 184 - OnChange = frViewFiltrosStock1ccbCentroChange - end - end - end - inherited dsDataSource: TDADataSource [2] - Left = 72 - Top = 88 - end - inherited dxComponentPrinter: TdxComponentPrinter [3] - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.LeftTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.Caption = 'Venta mensual' - ReportDocument.CreationDate = 39129.445522280090000000 - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsOnEveryPage.Footers = False - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.FilterBar = False - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Selection = cxStyleSelectionInforme - BuiltInReportLink = True - end - end - inherited dxPSEngineController1: TdxPSEngineController [4] - end - inherited cxStyleRepository1: TcxStyleRepository - inherited cxStyleEven: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - object cxStyleEntrada: TcxStyle - AssignedValues = [svTextColor] - TextColor = clNavy - end - object cxStyleSalida: TcxStyle - AssignedValues = [svTextColor] - TextColor = clGreen - end - object cxStyleTotales: TcxStyle - AssignedValues = [svColor, svFont] - Color = 13619151 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - end - object cxEditRepository1: TcxEditRepository - Left = 32 - Top = 88 - object cxEditDia: TcxEditRepositoryTextItem - Properties.Alignment.Horz = taRightJustify - end - object cxEditImporte: TcxEditRepositoryCurrencyItem - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 - Properties.UseThousandSeparator = True - end - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 296 - Top = 168 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas deleted file mode 100644 index cb8e1b5..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas +++ /dev/null @@ -1,224 +0,0 @@ -unit uViewControGridStockEDIInventario; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, - cxEditRepositoryItems, uDataModuleStock, uViewFiltrosStock; - -type - IViewControlGridStockEDIInventario = interface(IViewGrid) - ['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}'] - end; - - TfrViewControlGridStockEDIInventario = class(TfrViewGrid, IViewControlGridStockEDIInventario) - dxComponentPrinterLink1: TdxGridReportLink; - cxEditRepository1: TcxEditRepository; - cxEditDia: TcxEditRepositoryTextItem; - cxEditImporte: TcxEditRepositoryCurrencyItem; - cxGridViewRecID: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; - cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewI38: TcxGridDBColumn; - cxGridViewI40: TcxGridDBColumn; - cxGridViewI42: TcxGridDBColumn; - cxGridViewI44: TcxGridDBColumn; - cxGridViewI46: TcxGridDBColumn; - cxGridViewI48: TcxGridDBColumn; - cxGridViewTI: TcxGridDBColumn; - cxGridViewK38: TcxGridDBColumn; - cxGridViewK40: TcxGridDBColumn; - cxGridViewK42: TcxGridDBColumn; - cxGridViewK44: TcxGridDBColumn; - cxGridViewK46: TcxGridDBColumn; - cxGridViewK48: TcxGridDBColumn; - cxGridViewTK: TcxGridDBColumn; - cxGridViewD38: TcxGridDBColumn; - cxGridViewD40: TcxGridDBColumn; - cxGridViewD42: TcxGridDBColumn; - cxGridViewD44: TcxGridDBColumn; - cxGridViewD46: TcxGridDBColumn; - cxGridViewD48: TcxGridDBColumn; - cxGridViewDT: TcxGridDBColumn; - frViewFiltrosStock1: TfrViewFiltrosStock; - cxStyleEntrada: TcxStyle; - cxStyleSalida: TcxStyle; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxStyleTotales: TcxStyle; - procedure cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewI38GetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - procedure cxGridViewTEStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); - procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); - protected - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - public - procedure Preview; override; - procedure Print; override; - constructor Create(AOwner: TComponent); override; - procedure ShowEmbedded(const AParent : TWinControl); override; - procedure Refresh; override; - end; - -implementation -{$R *.dfm} - -uses - uViewGridBase; - -{ TfrViewControlGridResumenVentas } - -procedure TfrViewControlGridStockEDIInventario.Preview; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewControlGridStockEDIInventario.Print; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con último inventario de colección ' + frViewFiltrosStock1.cbColeccion.Text + ' en centro(s) ' + frViewFiltrosStock1.ccbCentro.Text; - dxComponentPrinterLink1.Print(True, Nil); -end; - -procedure TfrViewControlGridStockEDIInventario.cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - inherited; - if not VarIsNull(AViewInfo.Value) then - if Pos('-', AViewInfo.Value) > 0 then - ACanvas.Canvas.Font.Color := $000000CC; -end; - -constructor TfrViewControlGridStockEDIInventario.Create(AOwner: TComponent); -begin - inherited; - frViewFiltrosStock1.FocusedView := cxGridView; - frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; - frViewFiltrosStock1.CentroColumnIndex := cxGridViewCENTRO.Index; -end; - -procedure TfrViewControlGridStockEDIInventario.ShowEmbedded( - const AParent: TWinControl); -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockEDIInventario.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - // - if Assigned(AItem) then - if (AItem.Index = cxGridViewTI.Index) or - (AItem.Index = cxGridViewTK.Index) or - (AItem.Index = cxGridViewDT.Index) then - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockEDIInventario.cxGridViewI38GetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -begin - inherited; - if AText = '0' then - AText := ''; -end; - -procedure TfrViewControlGridStockEDIInventario.cxGridViewTEStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockEDIInventario.Refresh; -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewControlGridStockEDIInventario.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; - i : Integer; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - ShowHourglassCursor; - try - AItemList := cxGridView.DataController.Filter.Root; - AItemList.Clear; - FNivelFiltrado := AItemList.AddItemList(fboAnd); - - if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); - - if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and - (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then - begin - FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); - for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do - if frViewFiltrosStock1.ccbCentro.IsChecked(i) then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); - end; - - if cxGridView.DataController.Filter.IsEmpty then - cxGridView.DataController.Filter.Active := False - else - cxGridView.DataController.Filter.Active := True; - finally - cxGridView.DataController.Filter.EndUpdate; - HideHourglassCursor; - end; -end; - -procedure TfrViewControlGridStockEDIInventario.frViewFiltrosStock1ccbCentroChange( - Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm deleted file mode 100644 index 2f3e4dd..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.dfm +++ /dev/null @@ -1,351 +0,0 @@ -inherited frViewControlGridStockPrendasCentros: TfrViewControlGridStockPrendasCentros - Width = 621 - Height = 459 - inherited cxGrid: TcxGrid - Top = 43 - Width = 621 - Height = 416 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Column = cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridView48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewTOTAL - end> - OptionsView.GridLineColor = clDefault - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.GroupRowStyle = grsOffice11 - Preview.AutoHeight = False - Styles.Footer = cxStyleEven - object cxGridViewCODIGO: TcxGridDBColumn - DataBinding.FieldName = 'CODIGO' - SortIndex = 0 - SortOrder = soAscending - end - object cxGridViewPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'PRODUCTO' - end - object cxGridViewTIPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'TIPO_PRODUCTO' - Visible = False - end - object cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'GRUPO_PRODUCTO' - Visible = False - end - object cxGridViewCOLECCION: TcxGridDBColumn - DataBinding.FieldName = 'COLECCION' - Visible = False - end - object cxGridViewCOLOR: TcxGridDBColumn - DataBinding.FieldName = 'COLOR' - end - object cxGridView38: TcxGridDBColumn - DataBinding.FieldName = 'T38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridView40: TcxGridDBColumn - DataBinding.FieldName = 'T40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridView42: TcxGridDBColumn - DataBinding.FieldName = 'T42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridView44: TcxGridDBColumn - DataBinding.FieldName = 'T44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridView46: TcxGridDBColumn - DataBinding.FieldName = 'T46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridView48: TcxGridDBColumn - DataBinding.FieldName = 'T48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTOTAL: TcxGridDBColumn - DataBinding.FieldName = 'TOTAL' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,###' - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridView38GetDataText - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - Styles.OnGetContentStyle = cxGridViewCOLUMN7StylesGetContentStyle - end - end - end - inline frViewFiltrosStock1: TfrViewFiltrosStock [1] - Left = 0 - Top = 0 - Width = 621 - Height = 43 - Align = alTop - Color = clWindow - ParentBackground = False - ParentColor = False - TabOrder = 1 - inherited dxLayoutControl1: TdxLayoutControl - Width = 621 - inherited cbColeccion: TcxComboBox - Left = 64 - Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged - Width = 161 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 273 - OnChange = frViewFiltrosStock1ccbCentroChange - end - inherited dxLayoutControl1Group_Root: TdxLayoutGroup - inherited dxLayoutControl1Item3: TdxLayoutItem - Visible = False - end - end - end - end - inherited dsDataSource: TDADataSource [2] - Left = 24 - Top = 120 - end - inherited dxComponentPrinter: TdxComponentPrinter [3] - CurrentLink = dxComponentPrinterLink1 - PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] - Left = 184 - Top = 120 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.LeftTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 39129.445565682870000000 - ReportDocument.IsCaptionAssigned = True - ReportTitle.AdjustOnReportScale = True - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsFormatting.UseNativeStyles = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.FilterBar = False - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - SupportedCustomDraw = True - BuiltInReportLink = True - end - end - inherited dxPSEngineController1: TdxPSEngineController [4] - Left = 96 - Top = 104 - end - inherited cxStyleRepository1: TcxStyleRepository - inherited cxStyleEven: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - object cxStyleEntrada: TcxStyle - AssignedValues = [svTextColor] - TextColor = clNavy - end - object cxStyleSalida: TcxStyle - AssignedValues = [svTextColor] - TextColor = clGreen - end - object cxStyleTotales: TcxStyle - AssignedValues = [svColor, svFont] - Color = 13619151 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 296 - Top = 168 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas deleted file mode 100644 index 3a06f07..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockPrendasCentros.pas +++ /dev/null @@ -1,199 +0,0 @@ -unit uViewControGridStockPrendasCentros; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, - cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, - uViewParametrosControlGrid, uViewFiltrosStock, Grids, DBGrids; - -type - IViewControlGridStockPrendasCentros = interface(IViewGrid) - ['{E6251B25-10FE-4D0C-94CD-0E554F88B54D}'] - end; - - TfrViewControlGridStockPrendasCentros = class(TfrViewGrid, IViewControlGridStockPrendasCentros) - dxComponentPrinterLink1: TdxGridReportLink; - frViewFiltrosStock1: TfrViewFiltrosStock; - cxStyleEntrada: TcxStyle; - cxStyleSalida: TcxStyle; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxStyleTotales: TcxStyle; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewTIPO_PRODUCTO: TcxGridDBColumn; - cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridView38: TcxGridDBColumn; - cxGridView40: TcxGridDBColumn; - cxGridView42: TcxGridDBColumn; - cxGridView44: TcxGridDBColumn; - cxGridView46: TcxGridDBColumn; - cxGridView48: TcxGridDBColumn; - cxGridViewTOTAL: TcxGridDBColumn; - procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure cxGridViewCOLUMN7StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridView38GetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: String); - procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); - procedure frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); - procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); - protected - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - function GetFocusedView : TcxGridDBTableView; override; - public - procedure ShowEmbedded(const AParent : TWinControl); override; - procedure Preview; override; - procedure Print; override; - constructor Create(AOwner: TComponent); override; - procedure Refresh; override; - end; - -implementation -{$R *.dfm} - -uses uViewGridBase; - -{ TfrViewControlGridResumenVentas } - -procedure TfrViewControlGridStockPrendasCentros.Preview; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewControlGridStockPrendasCentros.Print; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Resumen de stock por centros de colección: ' + frViewFiltrosStock1.cbColeccion.Text; - dxComponentPrinterLink1.Print(True, Nil); -end; - -procedure TfrViewControlGridStockPrendasCentros.cxGridViewKTCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - inherited; - if not VarIsNull(AViewInfo.Value) then - if Pos('-', AViewInfo.Value) > 0 then - ACanvas.Canvas.Font.Color := $000000CC; -end; - -constructor TfrViewControlGridStockPrendasCentros.Create(AOwner: TComponent); -begin - inherited; - frViewFiltrosStock1.FocusedView := cxGridView; - frViewFiltrosStock1.CentroColumnIndex := -1; - frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; -end; - -function TfrViewControlGridStockPrendasCentros.GetFocusedView: TcxGridDBTableView; -begin - Result := cxGridView; -end; - -procedure TfrViewControlGridStockPrendasCentros.ShowEmbedded( - const AParent: TWinControl); -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockPrendasCentros.cxGridViewCOLUMN7StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockPrendasCentros.Refresh; -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockPrendasCentros.cxGridView38GetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -begin - inherited; - if AText = '0' then - AText := ''; -end; - -procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1cbCentroPropertiesEditValueChanged(Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewControlGridStockPrendasCentros.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; - i : Integer; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - FNivelFiltrado := AItemList.AddItemList(fboAnd); - - if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); - - - if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and - (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then - begin - FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); - for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do - if frViewFiltrosStock1.ccbCentro.IsChecked(i) then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); - end; - - if cxGridView.DataController.Filter.IsEmpty then - cxGridView.DataController.Filter.Active := False - else - cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -procedure TfrViewControlGridStockPrendasCentros.frViewFiltrosStock1ccbCentroChange( - Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm deleted file mode 100644 index bbfa397..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.dfm +++ /dev/null @@ -1,365 +0,0 @@ -inherited frViewControlGridStockVARELA: TfrViewControlGridStockVARELA - Width = 621 - Height = 459 - inherited cxGrid: TcxGrid - Top = 43 - Width = 621 - Height = 416 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - DataController.Summary.DefaultGroupSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Position = spFooter - Column = cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Position = spFooter - Column = cxGridViewKT - end> - DataController.Summary.FooterSummaryItems = < - item - Format = '0 referencias' - Kind = skCount - Column = cxGridViewPRODUCTO - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK38 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK40 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK42 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK44 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK46 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewK48 - end - item - Format = '#,##0' - Kind = skSum - Column = cxGridViewKT - end> - OptionsView.GridLineColor = clDefault - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.GroupRowStyle = grsOffice11 - Preview.AutoHeight = False - Styles.Footer = cxStyleEven - object cxGridViewRecID: TcxGridDBColumn - DataBinding.FieldName = 'RecID' - Visible = False - end - object cxGridViewFILIAL: TcxGridDBColumn - DataBinding.FieldName = 'FILIAL' - Visible = False - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'C'#243'digo' - DataBinding.FieldName = 'CODIGO' - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - SortIndex = 0 - SortOrder = soAscending - end - object cxGridViewTIPO_PRODUTO: TcxGridDBColumn - DataBinding.FieldName = 'TIPO_PRODUTO' - Visible = False - end - object cxGridViewGRUPO_PRODUTO: TcxGridDBColumn - DataBinding.FieldName = 'GRUPO_PRODUTO' - Visible = False - end - object cxGridViewCOLECCION: TcxGridDBColumn - Caption = 'Colecci'#243'n' - DataBinding.FieldName = 'COLECCION' - Visible = False - GroupIndex = 0 - end - object cxGridViewK38: TcxGridDBColumn - DataBinding.FieldName = 'K38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK40: TcxGridDBColumn - DataBinding.FieldName = 'K40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK42: TcxGridDBColumn - DataBinding.FieldName = 'K42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK44: TcxGridDBColumn - DataBinding.FieldName = 'K44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK46: TcxGridDBColumn - DataBinding.FieldName = 'K46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewK48: TcxGridDBColumn - DataBinding.FieldName = 'K48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewKT: TcxGridDBColumn - DataBinding.FieldName = 'KT' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = '#,##0' - Properties.ValueType = vtInt - OnCustomDrawCell = cxGridViewKTCustomDrawCell - OnGetDataText = cxGridViewK38GetDataText - HeaderAlignmentHorz = taRightJustify - Styles.OnGetContentStyle = cxGridViewKTStylesGetContentStyle - end - end - end - inline frViewFiltrosStock1: TfrViewFiltrosStock [1] - Left = 0 - Top = 0 - Width = 621 - Height = 43 - Align = alTop - Color = clWindow - ParentBackground = False - ParentColor = False - TabOrder = 1 - inherited dxLayoutControl1: TdxLayoutControl - Width = 621 - inherited cbColeccion: TcxComboBox - Left = 64 - Properties.OnEditValueChanged = frViewFiltrosStock1cbColeccionPropertiesEditValueChanged - Width = 177 - end - inherited ccbCentro: TJvCheckedComboBox - Left = 289 - Width = 191 - OnChange = frViewFiltrosStock1ccbCentroChange - end - inherited dxLayoutControl1Group_Root: TdxLayoutGroup - inherited dxLayoutControl1Item3: TdxLayoutItem - Visible = False - end - end - end - end - inherited dsDataSource: TDADataSource [2] - end - inherited dxComponentPrinter: TdxComponentPrinter [3] - CurrentLink = dxComponentPrinterLink1 - PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] - Left = 184 - Top = 120 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.LeftTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 39141.797618263890000000 - ReportDocument.IsCaptionAssigned = True - ReportTitle.AdjustOnReportScale = True - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsFormatting.UseNativeStyles = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.FilterBar = False - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - SupportedCustomDraw = True - BuiltInReportLink = True - end - end - inherited dxPSEngineController1: TdxPSEngineController [4] - Left = 96 - Top = 104 - end - inherited cxStyleRepository1: TcxStyleRepository - inherited cxStyleEven: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - object cxStyleEntrada: TcxStyle - AssignedValues = [svTextColor] - TextColor = clNavy - end - object cxStyleSalida: TcxStyle - AssignedValues = [svTextColor] - TextColor = clGreen - end - object cxStyleTotales: TcxStyle - AssignedValues = [svColor, svFont] - Color = 13619151 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 296 - Top = 168 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas deleted file mode 100644 index 26f5667..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewControGridStockVARELA.pas +++ /dev/null @@ -1,187 +0,0 @@ -unit uViewControGridStockVARELA; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, - cxEditRepositoryItems, uDataModuleStock, uCustomView, uViewBase, - uViewParametrosControlGrid, uViewFiltrosStock; - -type - IViewControlGridStockVARELA = interface(IViewGrid) - ['{19831B1A-1D3B-4352-A848-52B00BFEF4EF}'] - end; - - TfrViewControlGridStockVARELA = class(TfrViewGrid, IViewControlGridStockVARELA) - dxComponentPrinterLink1: TdxGridReportLink; - cxGridViewRecID: TcxGridDBColumn; - cxGridViewFILIAL: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewTIPO_PRODUTO: TcxGridDBColumn; - cxGridViewGRUPO_PRODUTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewK38: TcxGridDBColumn; - cxGridViewK40: TcxGridDBColumn; - cxGridViewK42: TcxGridDBColumn; - cxGridViewK44: TcxGridDBColumn; - cxGridViewK46: TcxGridDBColumn; - cxGridViewK48: TcxGridDBColumn; - cxGridViewKT: TcxGridDBColumn; - frViewFiltrosStock1: TfrViewFiltrosStock; - cxStyleEntrada: TcxStyle; - cxStyleSalida: TcxStyle; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxStyleTotales: TcxStyle; - procedure cxGridViewKTCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure cxGridViewK38GetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - procedure cxGridViewKTStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); - procedure frViewFiltrosStock1ccbCentroChange(Sender: TObject); - protected - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - function GetFocusedView : TcxGridDBTableView; override; - public - procedure ShowEmbedded(const AParent : TWinControl); override; - procedure Preview; override; - procedure Print; override; - constructor Create(AOwner: TComponent); override; - end; - -implementation -{$R *.dfm} - -uses uViewGridBase; - -{ TfrViewControlGridResumenVentas } - -procedure TfrViewControlGridStockVARELA.Preview; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewControlGridStockVARELA.Print; -begin - inherited; - dxComponentPrinterLink1.ReportTitle.Text := 'Control de stock en almacén'; - dxComponentPrinterLink1.Print(True, Nil); -end; - -procedure TfrViewControlGridStockVARELA.cxGridViewKTCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - inherited; - if not VarIsNull(AViewInfo.Value) then - if Pos('-', AViewInfo.Value) > 0 then - ACanvas.Canvas.Font.Color := $000000CC; -end; - -constructor TfrViewControlGridStockVARELA.Create(AOwner: TComponent); -begin - inherited; - frViewFiltrosStock1.FocusedView := cxGridView; - frViewFiltrosStock1.CentroColumnIndex := cxGridViewFILIAL.Index; - frViewFiltrosStock1.ColeccionColumnIndex := cxGridViewCOLECCION.Index; -end; - -function TfrViewControlGridStockVARELA.GetFocusedView: TcxGridDBTableView; -begin - Result := cxGridView; -end; - -procedure TfrViewControlGridStockVARELA.ShowEmbedded( - const AParent: TWinControl); -begin - inherited; - frViewFiltrosStock1.Refresh; -end; - -procedure TfrViewControlGridStockVARELA.cxGridViewK38GetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -begin - inherited; - ShowMessage(AText); - if AText = '0' then - AText := ''; -end; - -procedure TfrViewControlGridStockVARELA.cxGridViewKTStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - AStyle := cxStyleTotales; -end; - -procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1cbColeccionPropertiesEditValueChanged(Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewControlGridStockVARELA.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; - i : integer; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - FNivelFiltrado := AItemList.AddItemList(fboAnd); - - if (Length(frViewFiltrosStock1.cbColeccion.Text) > 0) and (frViewFiltrosStock1.cbColeccion.Text <> 'Todos') then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.ColeccionColumnIndex], foEqual, frViewFiltrosStock1.cbColeccion.Text, frViewFiltrosStock1.cbColeccion.Text); - - if (Length(frViewFiltrosStock1.ccbCentro.Text) > 0) and - (Pos('Todos', frViewFiltrosStock1.ccbCentro.Text) = 0) then - begin - FNivelFiltrado := FNivelFiltrado.AddItemList(fboOr); - for i := 0 to frViewFiltrosStock1.ccbCentro.Items.Count - 1 do - if frViewFiltrosStock1.ccbCentro.IsChecked(i) then - FNivelFiltrado.AddItem(cxGridView.Columns[frViewFiltrosStock1.CentroColumnIndex], foEqual, frViewFiltrosStock1.ccbCentro.Items[i], frViewFiltrosStock1.ccbCentro.Items[i]); - end; - - if cxGridView.DataController.Filter.IsEmpty then - cxGridView.DataController.Filter.Active := False - else - cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -procedure TfrViewControlGridStockVARELA.frViewFiltrosStock1ccbCentroChange( - Sender: TObject); -begin - inherited; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm deleted file mode 100644 index e2ead5c..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.dfm +++ /dev/null @@ -1,72 +0,0 @@ -object frViewFiltrosStock: TfrViewFiltrosStock - Left = 0 - Top = 0 - Width = 537 - Height = 105 - Color = clWindow - ParentBackground = False - ParentColor = False - TabOrder = 0 - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 0 - Width = 537 - Height = 41 - Align = alTop - ParentBackground = True - TabOrder = 0 - AutoContentSizes = [acsWidth, acsHeight] - object cbColeccion: TcxComboBox - Left = 64 - Top = 10 - Properties.DropDownListStyle = lsFixedList - Properties.DropDownRows = 18 - Properties.ReadOnly = False - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - Style.ButtonStyle = bts3D - Style.PopupBorderStyle = epbsFrame3D - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Width = 168 - end - object ccbCentro: TJvCheckedComboBox - Left = 280 - Top = 10 - Width = 191 - Height = 21 - CapSelectAll = '&Select all' - CapDeSelectAll = '&Deselect all' - NoFocusColor = clWindow - QuoteStyle = qsSingle - DropDownLines = 20 - TabOrder = 1 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item1: TdxLayoutItem - AutoAligns = [aaVertical] - Caption = 'Colecci'#243'n:' - Control = cbColeccion - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item3: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Centro:' - Control = ccbCentro - ControlOptions.ShowBorder = False - end - end - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas b/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas deleted file mode 100644 index c7f43ba..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Cliente/uViewFiltrosStock.pas +++ /dev/null @@ -1,111 +0,0 @@ -unit uViewFiltrosStock; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, dxLayoutControl, cxControls, uViewControlGrid, - cxGraphics, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, - cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, DB, cxDBData, - cxGridLevel, cxClasses, cxGridCustomView, cxGridCustomTableView, - cxGridTableView, cxGridDBTableView, cxGrid, cxCheckComboBox, StdCtrls, - Mask, JvExMask, JvToolEdit, JvCombobox; - -type - IViewFiltrosStock = interface - ['{ABC745C3-64F0-44E4-AF4B-118AE5060150}'] - procedure SetFocusedView (const Value : TcxGridDBTableView); - function GetFocusedView : TcxGridDBTableView; - property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; - procedure Refresh; - end; - - TfrViewFiltrosStock = class(TFrame, IViewFiltrosStock) - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - cbColeccion: TcxComboBox; - dxLayoutControl1Item1: TdxLayoutItem; - dxLayoutControl1Item3: TdxLayoutItem; - ccbCentro: TJvCheckedComboBox; - private - FFocusedView : TcxGridDBTableView; - function GetFilterValueList(AColumnIndex: Integer): TStringList; - protected - procedure RellenarFiltros; - procedure SetFocusedView (const Value : TcxGridDBTableView); - function GetFocusedView : TcxGridDBTableView; - public - CentroColumnIndex : Integer; - ColeccionColumnIndex : Integer; - property FocusedView : TcxGridDBTableView read GetFocusedView write SetFocusedView; - procedure Refresh; - end; - - -implementation - -{$R *.dfm} - -{ TfrViewFiltrosStock } - -function TfrViewFiltrosStock.GetFilterValueList(AColumnIndex: Integer): TStringList; -var - AValueList : TcxDataFilterValueList; - i : Integer; -begin - Result := TStringList.Create; - - if AColumnIndex < 0 then - Exit; - - AValueList := TcxDataFilterValueList.Create(FFocusedView.DataController.Filter); - try - AValueList.Load(AColumnIndex); - for i := 0 to AValueList.Count - 1 do - Result.Add(AValueList[i].DisplayText); - finally - FreeAndNil(AValueList); - end; -end; - -function TfrViewFiltrosStock.GetFocusedView: TcxGridDBTableView; -begin - Result := FFocusedView; -end; - -procedure TfrViewFiltrosStock.Refresh; -begin - inherited; - RellenarFiltros; -end; - -procedure TfrViewFiltrosStock.RellenarFiltros; -begin - if ColeccionColumnIndex >= 0 then - with cbColeccion.Properties do - begin - Items.Clear; - Items.AddStrings(GetFilterValueList(ColeccionColumnIndex)); - Items.Delete(1); - Items.Strings[0] := 'Todos'; - cbColeccion.Text := 'Todos'; - end; - - if CentroColumnIndex >= 0 then - with ccbCentro do - begin - Items.Clear; - Items.AddStrings(GetFilterValueList(CentroColumnIndex)); - Items.Delete(1); - Items.Strings[0] := 'Todos'; - Checked[0] := True; - end; -end; - -procedure TfrViewFiltrosStock.SetFocusedView( - const Value: TcxGridDBTableView); -begin - FFocusedView := Value; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas deleted file mode 100644 index e984ff2..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockClient_Intf.pas +++ /dev/null @@ -1,1684 +0,0 @@ -unit schStockClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_StockPrendasCentros = '{A01C38D3-19DC-42D1-A0CB-6ABF3E9D5507}'; - RID_StockEDI = '{0CB949AB-F343-4ECF-9163-69234641CEB1}'; - RID_StockVARELA = '{DFB28AB8-F8C4-4AAD-AA73-8015541091D0}'; - RID_StockEDIInventario = '{5496215D-7A4A-43E1-929A-D0538C931177}'; - - { Data table names } - nme_StockPrendasCentros = 'StockPrendasCentros'; - nme_StockEDI = 'StockEDI'; - nme_StockVARELA = 'StockVARELA'; - nme_StockEDIInventario = 'StockEDIInventario'; - - { StockPrendasCentros fields } - fld_StockPrendasCentrosCODIGO = 'CODIGO'; - fld_StockPrendasCentrosPRODUCTO = 'PRODUCTO'; - fld_StockPrendasCentrosTIPO_PRODUCTO = 'TIPO_PRODUCTO'; - fld_StockPrendasCentrosGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; - fld_StockPrendasCentrosCOLECCION = 'COLECCION'; - fld_StockPrendasCentrosCOLOR = 'COLOR'; - fld_StockPrendasCentrosT38 = 'T38'; - fld_StockPrendasCentrosT40 = 'T40'; - fld_StockPrendasCentrosT42 = 'T42'; - fld_StockPrendasCentrosT44 = 'T44'; - fld_StockPrendasCentrosT46 = 'T46'; - fld_StockPrendasCentrosT48 = 'T48'; - fld_StockPrendasCentrosTOTAL = 'TOTAL'; - - { StockPrendasCentros field indexes } - idx_StockPrendasCentrosCODIGO = 0; - idx_StockPrendasCentrosPRODUCTO = 1; - idx_StockPrendasCentrosTIPO_PRODUCTO = 2; - idx_StockPrendasCentrosGRUPO_PRODUCTO = 3; - idx_StockPrendasCentrosCOLECCION = 4; - idx_StockPrendasCentrosCOLOR = 5; - idx_StockPrendasCentrosT38 = 6; - idx_StockPrendasCentrosT40 = 7; - idx_StockPrendasCentrosT42 = 8; - idx_StockPrendasCentrosT44 = 9; - idx_StockPrendasCentrosT46 = 10; - idx_StockPrendasCentrosT48 = 11; - idx_StockPrendasCentrosTOTAL = 12; - - { StockEDI fields } - fld_StockEDICENTRO = 'CENTRO'; - fld_StockEDICODIGO = 'CODIGO'; - fld_StockEDIPRODUCTO = 'PRODUCTO'; - fld_StockEDITIPO_PRODUCTO = 'TIPO_PRODUCTO'; - fld_StockEDIGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; - fld_StockEDICOLECCION = 'COLECCION'; - fld_StockEDICOLOR = 'COLOR'; - fld_StockEDIE38 = 'E38'; - fld_StockEDIE40 = 'E40'; - fld_StockEDIE42 = 'E42'; - fld_StockEDIE44 = 'E44'; - fld_StockEDIE46 = 'E46'; - fld_StockEDIE48 = 'E48'; - fld_StockEDITE = 'TE'; - fld_StockEDIS38 = 'S38'; - fld_StockEDIS40 = 'S40'; - fld_StockEDIS42 = 'S42'; - fld_StockEDIS44 = 'S44'; - fld_StockEDIS46 = 'S46'; - fld_StockEDIS48 = 'S48'; - fld_StockEDITS = 'TS'; - fld_StockEDIK38 = 'K38'; - fld_StockEDIK40 = 'K40'; - fld_StockEDIK42 = 'K42'; - fld_StockEDIK44 = 'K44'; - fld_StockEDIK46 = 'K46'; - fld_StockEDIK48 = 'K48'; - fld_StockEDIKT = 'KT'; - - { StockEDI field indexes } - idx_StockEDICENTRO = 0; - idx_StockEDICODIGO = 1; - idx_StockEDIPRODUCTO = 2; - idx_StockEDITIPO_PRODUCTO = 3; - idx_StockEDIGRUPO_PRODUCTO = 4; - idx_StockEDICOLECCION = 5; - idx_StockEDICOLOR = 6; - idx_StockEDIE38 = 7; - idx_StockEDIE40 = 8; - idx_StockEDIE42 = 9; - idx_StockEDIE44 = 10; - idx_StockEDIE46 = 11; - idx_StockEDIE48 = 12; - idx_StockEDITE = 13; - idx_StockEDIS38 = 14; - idx_StockEDIS40 = 15; - idx_StockEDIS42 = 16; - idx_StockEDIS44 = 17; - idx_StockEDIS46 = 18; - idx_StockEDIS48 = 19; - idx_StockEDITS = 20; - idx_StockEDIK38 = 21; - idx_StockEDIK40 = 22; - idx_StockEDIK42 = 23; - idx_StockEDIK44 = 24; - idx_StockEDIK46 = 25; - idx_StockEDIK48 = 26; - idx_StockEDIKT = 27; - - { StockVARELA fields } - fld_StockVARELAFILIAL = 'FILIAL'; - fld_StockVARELACODIGO = 'CODIGO'; - fld_StockVARELACOLOR = 'COLOR'; - fld_StockVARELAPRODUCTO = 'PRODUCTO'; - fld_StockVARELATIPO_PRODUTO = 'TIPO_PRODUTO'; - fld_StockVARELAGRUPO_PRODUTO = 'GRUPO_PRODUTO'; - fld_StockVARELACOLECCION = 'COLECCION'; - fld_StockVARELAK38 = 'K38'; - fld_StockVARELAK40 = 'K40'; - fld_StockVARELAK42 = 'K42'; - fld_StockVARELAK44 = 'K44'; - fld_StockVARELAK46 = 'K46'; - fld_StockVARELAK48 = 'K48'; - fld_StockVARELAKT = 'KT'; - - { StockVARELA field indexes } - idx_StockVARELAFILIAL = 0; - idx_StockVARELACODIGO = 1; - idx_StockVARELACOLOR = 2; - idx_StockVARELAPRODUCTO = 3; - idx_StockVARELATIPO_PRODUTO = 4; - idx_StockVARELAGRUPO_PRODUTO = 5; - idx_StockVARELACOLECCION = 6; - idx_StockVARELAK38 = 7; - idx_StockVARELAK40 = 8; - idx_StockVARELAK42 = 9; - idx_StockVARELAK44 = 10; - idx_StockVARELAK46 = 11; - idx_StockVARELAK48 = 12; - idx_StockVARELAKT = 13; - - { StockEDIInventario fields } - fld_StockEDIInventarioCENTRO = 'CENTRO'; - fld_StockEDIInventarioCODIGO = 'CODIGO'; - fld_StockEDIInventarioPRODUCTO = 'PRODUCTO'; - fld_StockEDIInventarioCOLOR = 'COLOR'; - fld_StockEDIInventarioTIPO_PRODUCTO = 'TIPO_PRODUCTO'; - fld_StockEDIInventarioGRUPO_PRODUCTO = 'GRUPO_PRODUCTO'; - fld_StockEDIInventarioCOLECCION = 'COLECCION'; - fld_StockEDIInventarioI38 = 'I38'; - fld_StockEDIInventarioI40 = 'I40'; - fld_StockEDIInventarioI42 = 'I42'; - fld_StockEDIInventarioI44 = 'I44'; - fld_StockEDIInventarioI46 = 'I46'; - fld_StockEDIInventarioI48 = 'I48'; - fld_StockEDIInventarioTI = 'TI'; - fld_StockEDIInventarioK38 = 'K38'; - fld_StockEDIInventarioK40 = 'K40'; - fld_StockEDIInventarioK42 = 'K42'; - fld_StockEDIInventarioK44 = 'K44'; - fld_StockEDIInventarioK46 = 'K46'; - fld_StockEDIInventarioK48 = 'K48'; - fld_StockEDIInventarioTK = 'TK'; - fld_StockEDIInventarioD38 = 'D38'; - fld_StockEDIInventarioD40 = 'D40'; - fld_StockEDIInventarioD42 = 'D42'; - fld_StockEDIInventarioD44 = 'D44'; - fld_StockEDIInventarioD46 = 'D46'; - fld_StockEDIInventarioD48 = 'D48'; - fld_StockEDIInventarioDT = 'DT'; - - { StockEDIInventario field indexes } - idx_StockEDIInventarioCENTRO = 0; - idx_StockEDIInventarioCODIGO = 1; - idx_StockEDIInventarioPRODUCTO = 2; - idx_StockEDIInventarioCOLOR = 3; - idx_StockEDIInventarioTIPO_PRODUCTO = 4; - idx_StockEDIInventarioGRUPO_PRODUCTO = 5; - idx_StockEDIInventarioCOLECCION = 6; - idx_StockEDIInventarioI38 = 7; - idx_StockEDIInventarioI40 = 8; - idx_StockEDIInventarioI42 = 9; - idx_StockEDIInventarioI44 = 10; - idx_StockEDIInventarioI46 = 11; - idx_StockEDIInventarioI48 = 12; - idx_StockEDIInventarioTI = 13; - idx_StockEDIInventarioK38 = 14; - idx_StockEDIInventarioK40 = 15; - idx_StockEDIInventarioK42 = 16; - idx_StockEDIInventarioK44 = 17; - idx_StockEDIInventarioK46 = 18; - idx_StockEDIInventarioK48 = 19; - idx_StockEDIInventarioTK = 20; - idx_StockEDIInventarioD38 = 21; - idx_StockEDIInventarioD40 = 22; - idx_StockEDIInventarioD42 = 23; - idx_StockEDIInventarioD44 = 24; - idx_StockEDIInventarioD46 = 25; - idx_StockEDIInventarioD48 = 26; - idx_StockEDIInventarioDT = 27; - -type - { IStockPrendasCentros } - IStockPrendasCentros = interface(IDAStronglyTypedDataTable) - ['{9147A7A9-8562-4C08-8D0F-4E08050ED78D}'] - { Property getters and setters } - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetTIPO_PRODUCTOValue: String; - procedure SetTIPO_PRODUCTOValue(const aValue: String); - function GetGRUPO_PRODUCTOValue: String; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetT38Value: Float; - procedure SetT38Value(const aValue: Float); - function GetT40Value: Float; - procedure SetT40Value(const aValue: Float); - function GetT42Value: Float; - procedure SetT42Value(const aValue: Float); - function GetT44Value: Float; - procedure SetT44Value(const aValue: Float); - function GetT46Value: Float; - procedure SetT46Value(const aValue: Float); - function GetT48Value: Float; - procedure SetT48Value(const aValue: Float); - function GetTOTALValue: Float; - procedure SetTOTALValue(const aValue: Float); - - - { Properties } - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property T38: Float read GetT38Value write SetT38Value; - property T40: Float read GetT40Value write SetT40Value; - property T42: Float read GetT42Value write SetT42Value; - property T44: Float read GetT44Value write SetT44Value; - property T46: Float read GetT46Value write SetT46Value; - property T48: Float read GetT48Value write SetT48Value; - property TOTAL: Float read GetTOTALValue write SetTOTALValue; - end; - - { TStockPrendasCentrosDataTableRules } - TStockPrendasCentrosDataTableRules = class(TDADataTableRules, IStockPrendasCentros) - private - protected - { Property getters and setters } - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetT38Value: Float; virtual; - procedure SetT38Value(const aValue: Float); virtual; - function GetT40Value: Float; virtual; - procedure SetT40Value(const aValue: Float); virtual; - function GetT42Value: Float; virtual; - procedure SetT42Value(const aValue: Float); virtual; - function GetT44Value: Float; virtual; - procedure SetT44Value(const aValue: Float); virtual; - function GetT46Value: Float; virtual; - procedure SetT46Value(const aValue: Float); virtual; - function GetT48Value: Float; virtual; - procedure SetT48Value(const aValue: Float); virtual; - function GetTOTALValue: Float; virtual; - procedure SetTOTALValue(const aValue: Float); virtual; - - { Properties } - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property T38: Float read GetT38Value write SetT38Value; - property T40: Float read GetT40Value write SetT40Value; - property T42: Float read GetT42Value write SetT42Value; - property T44: Float read GetT44Value write SetT44Value; - property T46: Float read GetT46Value write SetT46Value; - property T48: Float read GetT48Value write SetT48Value; - property TOTAL: Float read GetTOTALValue write SetTOTALValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IStockEDI } - IStockEDI = interface(IDAStronglyTypedDataTable) - ['{759266B9-20F4-4F29-9B8B-96F6E62E2560}'] - { Property getters and setters } - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetTIPO_PRODUCTOValue: String; - procedure SetTIPO_PRODUCTOValue(const aValue: String); - function GetGRUPO_PRODUCTOValue: String; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetE38Value: Float; - procedure SetE38Value(const aValue: Float); - function GetE40Value: Float; - procedure SetE40Value(const aValue: Float); - function GetE42Value: Float; - procedure SetE42Value(const aValue: Float); - function GetE44Value: Float; - procedure SetE44Value(const aValue: Float); - function GetE46Value: Float; - procedure SetE46Value(const aValue: Float); - function GetE48Value: Float; - procedure SetE48Value(const aValue: Float); - function GetTEValue: Float; - procedure SetTEValue(const aValue: Float); - function GetS38Value: Float; - procedure SetS38Value(const aValue: Float); - function GetS40Value: Float; - procedure SetS40Value(const aValue: Float); - function GetS42Value: Float; - procedure SetS42Value(const aValue: Float); - function GetS44Value: Float; - procedure SetS44Value(const aValue: Float); - function GetS46Value: Float; - procedure SetS46Value(const aValue: Float); - function GetS48Value: Float; - procedure SetS48Value(const aValue: Float); - function GetTSValue: Float; - procedure SetTSValue(const aValue: Float); - function GetK38Value: Float; - procedure SetK38Value(const aValue: Float); - function GetK40Value: Float; - procedure SetK40Value(const aValue: Float); - function GetK42Value: Float; - procedure SetK42Value(const aValue: Float); - function GetK44Value: Float; - procedure SetK44Value(const aValue: Float); - function GetK46Value: Float; - procedure SetK46Value(const aValue: Float); - function GetK48Value: Float; - procedure SetK48Value(const aValue: Float); - function GetKTValue: Float; - procedure SetKTValue(const aValue: Float); - - - { Properties } - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property E38: Float read GetE38Value write SetE38Value; - property E40: Float read GetE40Value write SetE40Value; - property E42: Float read GetE42Value write SetE42Value; - property E44: Float read GetE44Value write SetE44Value; - property E46: Float read GetE46Value write SetE46Value; - property E48: Float read GetE48Value write SetE48Value; - property TE: Float read GetTEValue write SetTEValue; - property S38: Float read GetS38Value write SetS38Value; - property S40: Float read GetS40Value write SetS40Value; - property S42: Float read GetS42Value write SetS42Value; - property S44: Float read GetS44Value write SetS44Value; - property S46: Float read GetS46Value write SetS46Value; - property S48: Float read GetS48Value write SetS48Value; - property TS: Float read GetTSValue write SetTSValue; - property K38: Float read GetK38Value write SetK38Value; - property K40: Float read GetK40Value write SetK40Value; - property K42: Float read GetK42Value write SetK42Value; - property K44: Float read GetK44Value write SetK44Value; - property K46: Float read GetK46Value write SetK46Value; - property K48: Float read GetK48Value write SetK48Value; - property KT: Float read GetKTValue write SetKTValue; - end; - - { TStockEDIDataTableRules } - TStockEDIDataTableRules = class(TDADataTableRules, IStockEDI) - private - protected - { Property getters and setters } - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetE38Value: Float; virtual; - procedure SetE38Value(const aValue: Float); virtual; - function GetE40Value: Float; virtual; - procedure SetE40Value(const aValue: Float); virtual; - function GetE42Value: Float; virtual; - procedure SetE42Value(const aValue: Float); virtual; - function GetE44Value: Float; virtual; - procedure SetE44Value(const aValue: Float); virtual; - function GetE46Value: Float; virtual; - procedure SetE46Value(const aValue: Float); virtual; - function GetE48Value: Float; virtual; - procedure SetE48Value(const aValue: Float); virtual; - function GetTEValue: Float; virtual; - procedure SetTEValue(const aValue: Float); virtual; - function GetS38Value: Float; virtual; - procedure SetS38Value(const aValue: Float); virtual; - function GetS40Value: Float; virtual; - procedure SetS40Value(const aValue: Float); virtual; - function GetS42Value: Float; virtual; - procedure SetS42Value(const aValue: Float); virtual; - function GetS44Value: Float; virtual; - procedure SetS44Value(const aValue: Float); virtual; - function GetS46Value: Float; virtual; - procedure SetS46Value(const aValue: Float); virtual; - function GetS48Value: Float; virtual; - procedure SetS48Value(const aValue: Float); virtual; - function GetTSValue: Float; virtual; - procedure SetTSValue(const aValue: Float); virtual; - function GetK38Value: Float; virtual; - procedure SetK38Value(const aValue: Float); virtual; - function GetK40Value: Float; virtual; - procedure SetK40Value(const aValue: Float); virtual; - function GetK42Value: Float; virtual; - procedure SetK42Value(const aValue: Float); virtual; - function GetK44Value: Float; virtual; - procedure SetK44Value(const aValue: Float); virtual; - function GetK46Value: Float; virtual; - procedure SetK46Value(const aValue: Float); virtual; - function GetK48Value: Float; virtual; - procedure SetK48Value(const aValue: Float); virtual; - function GetKTValue: Float; virtual; - procedure SetKTValue(const aValue: Float); virtual; - - { Properties } - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property E38: Float read GetE38Value write SetE38Value; - property E40: Float read GetE40Value write SetE40Value; - property E42: Float read GetE42Value write SetE42Value; - property E44: Float read GetE44Value write SetE44Value; - property E46: Float read GetE46Value write SetE46Value; - property E48: Float read GetE48Value write SetE48Value; - property TE: Float read GetTEValue write SetTEValue; - property S38: Float read GetS38Value write SetS38Value; - property S40: Float read GetS40Value write SetS40Value; - property S42: Float read GetS42Value write SetS42Value; - property S44: Float read GetS44Value write SetS44Value; - property S46: Float read GetS46Value write SetS46Value; - property S48: Float read GetS48Value write SetS48Value; - property TS: Float read GetTSValue write SetTSValue; - property K38: Float read GetK38Value write SetK38Value; - property K40: Float read GetK40Value write SetK40Value; - property K42: Float read GetK42Value write SetK42Value; - property K44: Float read GetK44Value write SetK44Value; - property K46: Float read GetK46Value write SetK46Value; - property K48: Float read GetK48Value write SetK48Value; - property KT: Float read GetKTValue write SetKTValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IStockVARELA } - IStockVARELA = interface(IDAStronglyTypedDataTable) - ['{29240A98-CF0E-4E1C-AE1B-17DE8E33837F}'] - { Property getters and setters } - function GetFILIALValue: String; - procedure SetFILIALValue(const aValue: String); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetTIPO_PRODUTOValue: String; - procedure SetTIPO_PRODUTOValue(const aValue: String); - function GetGRUPO_PRODUTOValue: String; - procedure SetGRUPO_PRODUTOValue(const aValue: String); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetK38Value: Integer; - procedure SetK38Value(const aValue: Integer); - function GetK40Value: Integer; - procedure SetK40Value(const aValue: Integer); - function GetK42Value: Integer; - procedure SetK42Value(const aValue: Integer); - function GetK44Value: Integer; - procedure SetK44Value(const aValue: Integer); - function GetK46Value: Integer; - procedure SetK46Value(const aValue: Integer); - function GetK48Value: Integer; - procedure SetK48Value(const aValue: Integer); - function GetKTValue: Integer; - procedure SetKTValue(const aValue: Integer); - - - { Properties } - property FILIAL: String read GetFILIALValue write SetFILIALValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; - property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property K38: Integer read GetK38Value write SetK38Value; - property K40: Integer read GetK40Value write SetK40Value; - property K42: Integer read GetK42Value write SetK42Value; - property K44: Integer read GetK44Value write SetK44Value; - property K46: Integer read GetK46Value write SetK46Value; - property K48: Integer read GetK48Value write SetK48Value; - property KT: Integer read GetKTValue write SetKTValue; - end; - - { TStockVARELADataTableRules } - TStockVARELADataTableRules = class(TDADataTableRules, IStockVARELA) - private - protected - { Property getters and setters } - function GetFILIALValue: String; virtual; - procedure SetFILIALValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUTOValue: String; virtual; - procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUTOValue: String; virtual; - procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetK38Value: Integer; virtual; - procedure SetK38Value(const aValue: Integer); virtual; - function GetK40Value: Integer; virtual; - procedure SetK40Value(const aValue: Integer); virtual; - function GetK42Value: Integer; virtual; - procedure SetK42Value(const aValue: Integer); virtual; - function GetK44Value: Integer; virtual; - procedure SetK44Value(const aValue: Integer); virtual; - function GetK46Value: Integer; virtual; - procedure SetK46Value(const aValue: Integer); virtual; - function GetK48Value: Integer; virtual; - procedure SetK48Value(const aValue: Integer); virtual; - function GetKTValue: Integer; virtual; - procedure SetKTValue(const aValue: Integer); virtual; - - { Properties } - property FILIAL: String read GetFILIALValue write SetFILIALValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property TIPO_PRODUTO: String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; - property GRUPO_PRODUTO: String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property K38: Integer read GetK38Value write SetK38Value; - property K40: Integer read GetK40Value write SetK40Value; - property K42: Integer read GetK42Value write SetK42Value; - property K44: Integer read GetK44Value write SetK44Value; - property K46: Integer read GetK46Value write SetK46Value; - property K48: Integer read GetK48Value write SetK48Value; - property KT: Integer read GetKTValue write SetKTValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IStockEDIInventario } - IStockEDIInventario = interface(IDAStronglyTypedDataTable) - ['{ECFA34AB-357B-4817-BB85-10D0BF34884F}'] - { Property getters and setters } - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetTIPO_PRODUCTOValue: String; - procedure SetTIPO_PRODUCTOValue(const aValue: String); - function GetGRUPO_PRODUCTOValue: String; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetI38Value: Float; - procedure SetI38Value(const aValue: Float); - function GetI40Value: Float; - procedure SetI40Value(const aValue: Float); - function GetI42Value: Float; - procedure SetI42Value(const aValue: Float); - function GetI44Value: Float; - procedure SetI44Value(const aValue: Float); - function GetI46Value: Float; - procedure SetI46Value(const aValue: Float); - function GetI48Value: Float; - procedure SetI48Value(const aValue: Float); - function GetTIValue: Float; - procedure SetTIValue(const aValue: Float); - function GetK38Value: Float; - procedure SetK38Value(const aValue: Float); - function GetK40Value: Float; - procedure SetK40Value(const aValue: Float); - function GetK42Value: Float; - procedure SetK42Value(const aValue: Float); - function GetK44Value: Float; - procedure SetK44Value(const aValue: Float); - function GetK46Value: Float; - procedure SetK46Value(const aValue: Float); - function GetK48Value: Float; - procedure SetK48Value(const aValue: Float); - function GetTKValue: Float; - procedure SetTKValue(const aValue: Float); - function GetD38Value: Float; - procedure SetD38Value(const aValue: Float); - function GetD40Value: Float; - procedure SetD40Value(const aValue: Float); - function GetD42Value: Float; - procedure SetD42Value(const aValue: Float); - function GetD44Value: Float; - procedure SetD44Value(const aValue: Float); - function GetD46Value: Float; - procedure SetD46Value(const aValue: Float); - function GetD48Value: Float; - procedure SetD48Value(const aValue: Float); - function GetDTValue: Float; - procedure SetDTValue(const aValue: Float); - - - { Properties } - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property I38: Float read GetI38Value write SetI38Value; - property I40: Float read GetI40Value write SetI40Value; - property I42: Float read GetI42Value write SetI42Value; - property I44: Float read GetI44Value write SetI44Value; - property I46: Float read GetI46Value write SetI46Value; - property I48: Float read GetI48Value write SetI48Value; - property TI: Float read GetTIValue write SetTIValue; - property K38: Float read GetK38Value write SetK38Value; - property K40: Float read GetK40Value write SetK40Value; - property K42: Float read GetK42Value write SetK42Value; - property K44: Float read GetK44Value write SetK44Value; - property K46: Float read GetK46Value write SetK46Value; - property K48: Float read GetK48Value write SetK48Value; - property TK: Float read GetTKValue write SetTKValue; - property D38: Float read GetD38Value write SetD38Value; - property D40: Float read GetD40Value write SetD40Value; - property D42: Float read GetD42Value write SetD42Value; - property D44: Float read GetD44Value write SetD44Value; - property D46: Float read GetD46Value write SetD46Value; - property D48: Float read GetD48Value write SetD48Value; - property DT: Float read GetDTValue write SetDTValue; - end; - - { TStockEDIInventarioDataTableRules } - TStockEDIInventarioDataTableRules = class(TDADataTableRules, IStockEDIInventario) - private - protected - { Property getters and setters } - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetI38Value: Float; virtual; - procedure SetI38Value(const aValue: Float); virtual; - function GetI40Value: Float; virtual; - procedure SetI40Value(const aValue: Float); virtual; - function GetI42Value: Float; virtual; - procedure SetI42Value(const aValue: Float); virtual; - function GetI44Value: Float; virtual; - procedure SetI44Value(const aValue: Float); virtual; - function GetI46Value: Float; virtual; - procedure SetI46Value(const aValue: Float); virtual; - function GetI48Value: Float; virtual; - procedure SetI48Value(const aValue: Float); virtual; - function GetTIValue: Float; virtual; - procedure SetTIValue(const aValue: Float); virtual; - function GetK38Value: Float; virtual; - procedure SetK38Value(const aValue: Float); virtual; - function GetK40Value: Float; virtual; - procedure SetK40Value(const aValue: Float); virtual; - function GetK42Value: Float; virtual; - procedure SetK42Value(const aValue: Float); virtual; - function GetK44Value: Float; virtual; - procedure SetK44Value(const aValue: Float); virtual; - function GetK46Value: Float; virtual; - procedure SetK46Value(const aValue: Float); virtual; - function GetK48Value: Float; virtual; - procedure SetK48Value(const aValue: Float); virtual; - function GetTKValue: Float; virtual; - procedure SetTKValue(const aValue: Float); virtual; - function GetD38Value: Float; virtual; - procedure SetD38Value(const aValue: Float); virtual; - function GetD40Value: Float; virtual; - procedure SetD40Value(const aValue: Float); virtual; - function GetD42Value: Float; virtual; - procedure SetD42Value(const aValue: Float); virtual; - function GetD44Value: Float; virtual; - procedure SetD44Value(const aValue: Float); virtual; - function GetD46Value: Float; virtual; - procedure SetD46Value(const aValue: Float); virtual; - function GetD48Value: Float; virtual; - procedure SetD48Value(const aValue: Float); virtual; - function GetDTValue: Float; virtual; - procedure SetDTValue(const aValue: Float); virtual; - - { Properties } - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TIPO_PRODUCTO: String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO: String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property I38: Float read GetI38Value write SetI38Value; - property I40: Float read GetI40Value write SetI40Value; - property I42: Float read GetI42Value write SetI42Value; - property I44: Float read GetI44Value write SetI44Value; - property I46: Float read GetI46Value write SetI46Value; - property I48: Float read GetI48Value write SetI48Value; - property TI: Float read GetTIValue write SetTIValue; - property K38: Float read GetK38Value write SetK38Value; - property K40: Float read GetK40Value write SetK40Value; - property K42: Float read GetK42Value write SetK42Value; - property K44: Float read GetK44Value write SetK44Value; - property K46: Float read GetK46Value write SetK46Value; - property K48: Float read GetK48Value write SetK48Value; - property TK: Float read GetTKValue write SetTKValue; - property D38: Float read GetD38Value write SetD38Value; - property D40: Float read GetD40Value write SetD40Value; - property D42: Float read GetD42Value write SetD42Value; - property D44: Float read GetD44Value write SetD44Value; - property D46: Float read GetD46Value write SetD46Value; - property D48: Float read GetD48Value write SetD48Value; - property DT: Float read GetDTValue write SetDTValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TStockPrendasCentrosDataTableRules } -constructor TStockPrendasCentrosDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TStockPrendasCentrosDataTableRules.Destroy; -begin - inherited; -end; - -function TStockPrendasCentrosDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosCODIGO].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosPRODUCTO].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetTIPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosTIPO_PRODUCTO].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetGRUPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosGRUPO_PRODUCTO].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosCOLECCION].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString; -end; - -procedure TStockPrendasCentrosDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_StockPrendasCentrosCOLOR].AsString := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT38Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT38].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT40Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT40].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT42Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT42].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT44Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT44].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT46Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT46].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetT48Value: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetT48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosT48].AsFloat := aValue; -end; - -function TStockPrendasCentrosDataTableRules.GetTOTALValue: Float; -begin - result := DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat; -end; - -procedure TStockPrendasCentrosDataTableRules.SetTOTALValue(const aValue: Float); -begin - DataTable.Fields[idx_StockPrendasCentrosTOTAL].AsFloat := aValue; -end; - - -{ TStockEDIDataTableRules } -constructor TStockEDIDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TStockEDIDataTableRules.Destroy; -begin - inherited; -end; - -function TStockEDIDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_StockEDICENTRO].AsString; -end; - -procedure TStockEDIDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDICENTRO].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_StockEDICODIGO].AsString; -end; - -procedure TStockEDIDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDICODIGO].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDIPRODUCTO].AsString; -end; - -procedure TStockEDIDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIPRODUCTO].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetTIPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString; -end; - -procedure TStockEDIDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDITIPO_PRODUCTO].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetGRUPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString; -end; - -procedure TStockEDIDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIGRUPO_PRODUCTO].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_StockEDICOLECCION].AsString; -end; - -procedure TStockEDIDataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDICOLECCION].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_StockEDICOLOR].AsString; -end; - -procedure TStockEDIDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDICOLOR].AsString := aValue; -end; - -function TStockEDIDataTableRules.GetE38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE38].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE38].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetE40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE40].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE40].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetE42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE42].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE42].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetE44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE44].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE44].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetE46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE46].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE46].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetE48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIE48].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetE48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIE48].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetTEValue: Float; -begin - result := DataTable.Fields[idx_StockEDITE].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetTEValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDITE].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS38].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS38].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS40].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS40].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS42].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS42].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS44].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS44].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS46].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS46].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetS48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIS48].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetS48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIS48].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetTSValue: Float; -begin - result := DataTable.Fields[idx_StockEDITS].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetTSValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDITS].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK38].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK38].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK40].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK40].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK42].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK42].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK44].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK44].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK46].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK46].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetK48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIK48].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetK48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIK48].AsFloat := aValue; -end; - -function TStockEDIDataTableRules.GetKTValue: Float; -begin - result := DataTable.Fields[idx_StockEDIKT].AsFloat; -end; - -procedure TStockEDIDataTableRules.SetKTValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIKT].AsFloat := aValue; -end; - - -{ TStockVARELADataTableRules } -constructor TStockVARELADataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TStockVARELADataTableRules.Destroy; -begin - inherited; -end; - -function TStockVARELADataTableRules.GetFILIALValue: String; -begin - result := DataTable.Fields[idx_StockVARELAFILIAL].AsString; -end; - -procedure TStockVARELADataTableRules.SetFILIALValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELAFILIAL].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_StockVARELACODIGO].AsString; -end; - -procedure TStockVARELADataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELACODIGO].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_StockVARELACOLOR].AsString; -end; - -procedure TStockVARELADataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELACOLOR].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockVARELAPRODUCTO].AsString; -end; - -procedure TStockVARELADataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELAPRODUCTO].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetTIPO_PRODUTOValue: String; -begin - result := DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString; -end; - -procedure TStockVARELADataTableRules.SetTIPO_PRODUTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELATIPO_PRODUTO].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetGRUPO_PRODUTOValue: String; -begin - result := DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString; -end; - -procedure TStockVARELADataTableRules.SetGRUPO_PRODUTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELAGRUPO_PRODUTO].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_StockVARELACOLECCION].AsString; -end; - -procedure TStockVARELADataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_StockVARELACOLECCION].AsString := aValue; -end; - -function TStockVARELADataTableRules.GetK38Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK38].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK38Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK38].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetK40Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK40].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK40Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK40].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetK42Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK42].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK42Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK42].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetK44Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK44].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK44Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK44].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetK46Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK46].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK46Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK46].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetK48Value: Integer; -begin - result := DataTable.Fields[idx_StockVARELAK48].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetK48Value(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAK48].AsInteger := aValue; -end; - -function TStockVARELADataTableRules.GetKTValue: Integer; -begin - result := DataTable.Fields[idx_StockVARELAKT].AsInteger; -end; - -procedure TStockVARELADataTableRules.SetKTValue(const aValue: Integer); -begin - DataTable.Fields[idx_StockVARELAKT].AsInteger := aValue; -end; - - -{ TStockEDIInventarioDataTableRules } -constructor TStockEDIInventarioDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TStockEDIInventarioDataTableRules.Destroy; -begin - inherited; -end; - -function TStockEDIInventarioDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioCENTRO].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioCODIGO].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioPRODUCTO].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioCOLOR].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetTIPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioTIPO_PRODUCTO].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetGRUPO_PRODUCTOValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioGRUPO_PRODUCTO].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString; -end; - -procedure TStockEDIInventarioDataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_StockEDIInventarioCOLECCION].AsString := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI38].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI38].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI40].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI40].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI42].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI42].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI44].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI44].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI46].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI46].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetI48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioI48].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetI48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioI48].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetTIValue: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioTI].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetTIValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioTI].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK38].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK38].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK40].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK40].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK42].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK42].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK44].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK44].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK46].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK46].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetK48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioK48].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetK48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioK48].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetTKValue: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioTK].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetTKValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioTK].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD38Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD38].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD38Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD38].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD40Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD40].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD40Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD40].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD42Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD42].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD42Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD42].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD44Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD44].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD44Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD44].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD46Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD46].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD46Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD46].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetD48Value: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioD48].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetD48Value(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioD48].AsFloat := aValue; -end; - -function TStockEDIInventarioDataTableRules.GetDTValue: Float; -begin - result := DataTable.Fields[idx_StockEDIInventarioDT].AsFloat; -end; - -procedure TStockEDIInventarioDataTableRules.SetDTValue(const aValue: Float); -begin - DataTable.Fields[idx_StockEDIInventarioDT].AsFloat := aValue; -end; - - -initialization - RegisterDataTableRules(RID_StockPrendasCentros, TStockPrendasCentrosDataTableRules); - RegisterDataTableRules(RID_StockEDI, TStockEDIDataTableRules); - RegisterDataTableRules(RID_StockVARELA, TStockVARELADataTableRules); - RegisterDataTableRules(RID_StockEDIInventario, TStockEDIInventarioDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas deleted file mode 100644 index a732519..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Reglas/schStockServer_Intf.pas +++ /dev/null @@ -1,1991 +0,0 @@ -unit schStockServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schStockClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_StockPrendasCentrosDelta = '{161451C4-A2CF-4468-A880-DBA417307512}'; - RID_StockEDIDelta = '{F20A87B8-0277-4819-B7A6-667A9904EFA9}'; - RID_StockVARELADelta = '{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'; - RID_StockEDIInventarioDelta = '{11EC9F46-F7DD-486E-ACD2-5873746C963D}'; - -type - { IStockPrendasCentrosDelta } - IStockPrendasCentrosDelta = interface(IStockPrendasCentros) - ['{161451C4-A2CF-4468-A880-DBA417307512}'] - { Property getters and setters } - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldTIPO_PRODUCTOValue : String; - function GetOldGRUPO_PRODUCTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldCOLORValue : String; - function GetOldT38Value : Float; - function GetOldT40Value : Float; - function GetOldT42Value : Float; - function GetOldT44Value : Float; - function GetOldT46Value : Float; - function GetOldT48Value : Float; - function GetOldTOTALValue : Float; - - { Properties } - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldT38 : Float read GetOldT38Value; - property OldT40 : Float read GetOldT40Value; - property OldT42 : Float read GetOldT42Value; - property OldT44 : Float read GetOldT44Value; - property OldT46 : Float read GetOldT46Value; - property OldT48 : Float read GetOldT48Value; - property OldTOTAL : Float read GetOldTOTALValue; - end; - - { TStockPrendasCentrosBusinessProcessorRules } - TStockPrendasCentrosBusinessProcessorRules = class(TDABusinessProcessorRules, IStockPrendasCentros, IStockPrendasCentrosDelta) - private - protected - { Property getters and setters } - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - function GetOldTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - function GetOldGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - function GetOldCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetT38Value: Float; virtual; - function GetOldT38Value: Float; virtual; - procedure SetT38Value(const aValue: Float); virtual; - function GetT40Value: Float; virtual; - function GetOldT40Value: Float; virtual; - procedure SetT40Value(const aValue: Float); virtual; - function GetT42Value: Float; virtual; - function GetOldT42Value: Float; virtual; - procedure SetT42Value(const aValue: Float); virtual; - function GetT44Value: Float; virtual; - function GetOldT44Value: Float; virtual; - procedure SetT44Value(const aValue: Float); virtual; - function GetT46Value: Float; virtual; - function GetOldT46Value: Float; virtual; - procedure SetT46Value(const aValue: Float); virtual; - function GetT48Value: Float; virtual; - function GetOldT48Value: Float; virtual; - procedure SetT48Value(const aValue: Float); virtual; - function GetTOTALValue: Float; virtual; - function GetOldTOTALValue: Float; virtual; - procedure SetTOTALValue(const aValue: Float); virtual; - - { Properties } - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property T38 : Float read GetT38Value write SetT38Value; - property OldT38 : Float read GetOldT38Value; - property T40 : Float read GetT40Value write SetT40Value; - property OldT40 : Float read GetOldT40Value; - property T42 : Float read GetT42Value write SetT42Value; - property OldT42 : Float read GetOldT42Value; - property T44 : Float read GetT44Value write SetT44Value; - property OldT44 : Float read GetOldT44Value; - property T46 : Float read GetT46Value write SetT46Value; - property OldT46 : Float read GetOldT46Value; - property T48 : Float read GetT48Value write SetT48Value; - property OldT48 : Float read GetOldT48Value; - property TOTAL : Float read GetTOTALValue write SetTOTALValue; - property OldTOTAL : Float read GetOldTOTALValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IStockEDIDelta } - IStockEDIDelta = interface(IStockEDI) - ['{F20A87B8-0277-4819-B7A6-667A9904EFA9}'] - { Property getters and setters } - function GetOldCENTROValue : String; - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldTIPO_PRODUCTOValue : String; - function GetOldGRUPO_PRODUCTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldCOLORValue : String; - function GetOldE38Value : Float; - function GetOldE40Value : Float; - function GetOldE42Value : Float; - function GetOldE44Value : Float; - function GetOldE46Value : Float; - function GetOldE48Value : Float; - function GetOldTEValue : Float; - function GetOldS38Value : Float; - function GetOldS40Value : Float; - function GetOldS42Value : Float; - function GetOldS44Value : Float; - function GetOldS46Value : Float; - function GetOldS48Value : Float; - function GetOldTSValue : Float; - function GetOldK38Value : Float; - function GetOldK40Value : Float; - function GetOldK42Value : Float; - function GetOldK44Value : Float; - function GetOldK46Value : Float; - function GetOldK48Value : Float; - function GetOldKTValue : Float; - - { Properties } - property OldCENTRO : String read GetOldCENTROValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldE38 : Float read GetOldE38Value; - property OldE40 : Float read GetOldE40Value; - property OldE42 : Float read GetOldE42Value; - property OldE44 : Float read GetOldE44Value; - property OldE46 : Float read GetOldE46Value; - property OldE48 : Float read GetOldE48Value; - property OldTE : Float read GetOldTEValue; - property OldS38 : Float read GetOldS38Value; - property OldS40 : Float read GetOldS40Value; - property OldS42 : Float read GetOldS42Value; - property OldS44 : Float read GetOldS44Value; - property OldS46 : Float read GetOldS46Value; - property OldS48 : Float read GetOldS48Value; - property OldTS : Float read GetOldTSValue; - property OldK38 : Float read GetOldK38Value; - property OldK40 : Float read GetOldK40Value; - property OldK42 : Float read GetOldK42Value; - property OldK44 : Float read GetOldK44Value; - property OldK46 : Float read GetOldK46Value; - property OldK48 : Float read GetOldK48Value; - property OldKT : Float read GetOldKTValue; - end; - - { TStockEDIBusinessProcessorRules } - TStockEDIBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDI, IStockEDIDelta) - private - protected - { Property getters and setters } - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - function GetOldTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - function GetOldGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - function GetOldCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetE38Value: Float; virtual; - function GetOldE38Value: Float; virtual; - procedure SetE38Value(const aValue: Float); virtual; - function GetE40Value: Float; virtual; - function GetOldE40Value: Float; virtual; - procedure SetE40Value(const aValue: Float); virtual; - function GetE42Value: Float; virtual; - function GetOldE42Value: Float; virtual; - procedure SetE42Value(const aValue: Float); virtual; - function GetE44Value: Float; virtual; - function GetOldE44Value: Float; virtual; - procedure SetE44Value(const aValue: Float); virtual; - function GetE46Value: Float; virtual; - function GetOldE46Value: Float; virtual; - procedure SetE46Value(const aValue: Float); virtual; - function GetE48Value: Float; virtual; - function GetOldE48Value: Float; virtual; - procedure SetE48Value(const aValue: Float); virtual; - function GetTEValue: Float; virtual; - function GetOldTEValue: Float; virtual; - procedure SetTEValue(const aValue: Float); virtual; - function GetS38Value: Float; virtual; - function GetOldS38Value: Float; virtual; - procedure SetS38Value(const aValue: Float); virtual; - function GetS40Value: Float; virtual; - function GetOldS40Value: Float; virtual; - procedure SetS40Value(const aValue: Float); virtual; - function GetS42Value: Float; virtual; - function GetOldS42Value: Float; virtual; - procedure SetS42Value(const aValue: Float); virtual; - function GetS44Value: Float; virtual; - function GetOldS44Value: Float; virtual; - procedure SetS44Value(const aValue: Float); virtual; - function GetS46Value: Float; virtual; - function GetOldS46Value: Float; virtual; - procedure SetS46Value(const aValue: Float); virtual; - function GetS48Value: Float; virtual; - function GetOldS48Value: Float; virtual; - procedure SetS48Value(const aValue: Float); virtual; - function GetTSValue: Float; virtual; - function GetOldTSValue: Float; virtual; - procedure SetTSValue(const aValue: Float); virtual; - function GetK38Value: Float; virtual; - function GetOldK38Value: Float; virtual; - procedure SetK38Value(const aValue: Float); virtual; - function GetK40Value: Float; virtual; - function GetOldK40Value: Float; virtual; - procedure SetK40Value(const aValue: Float); virtual; - function GetK42Value: Float; virtual; - function GetOldK42Value: Float; virtual; - procedure SetK42Value(const aValue: Float); virtual; - function GetK44Value: Float; virtual; - function GetOldK44Value: Float; virtual; - procedure SetK44Value(const aValue: Float); virtual; - function GetK46Value: Float; virtual; - function GetOldK46Value: Float; virtual; - procedure SetK46Value(const aValue: Float); virtual; - function GetK48Value: Float; virtual; - function GetOldK48Value: Float; virtual; - procedure SetK48Value(const aValue: Float); virtual; - function GetKTValue: Float; virtual; - function GetOldKTValue: Float; virtual; - procedure SetKTValue(const aValue: Float); virtual; - - { Properties } - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property E38 : Float read GetE38Value write SetE38Value; - property OldE38 : Float read GetOldE38Value; - property E40 : Float read GetE40Value write SetE40Value; - property OldE40 : Float read GetOldE40Value; - property E42 : Float read GetE42Value write SetE42Value; - property OldE42 : Float read GetOldE42Value; - property E44 : Float read GetE44Value write SetE44Value; - property OldE44 : Float read GetOldE44Value; - property E46 : Float read GetE46Value write SetE46Value; - property OldE46 : Float read GetOldE46Value; - property E48 : Float read GetE48Value write SetE48Value; - property OldE48 : Float read GetOldE48Value; - property TE : Float read GetTEValue write SetTEValue; - property OldTE : Float read GetOldTEValue; - property S38 : Float read GetS38Value write SetS38Value; - property OldS38 : Float read GetOldS38Value; - property S40 : Float read GetS40Value write SetS40Value; - property OldS40 : Float read GetOldS40Value; - property S42 : Float read GetS42Value write SetS42Value; - property OldS42 : Float read GetOldS42Value; - property S44 : Float read GetS44Value write SetS44Value; - property OldS44 : Float read GetOldS44Value; - property S46 : Float read GetS46Value write SetS46Value; - property OldS46 : Float read GetOldS46Value; - property S48 : Float read GetS48Value write SetS48Value; - property OldS48 : Float read GetOldS48Value; - property TS : Float read GetTSValue write SetTSValue; - property OldTS : Float read GetOldTSValue; - property K38 : Float read GetK38Value write SetK38Value; - property OldK38 : Float read GetOldK38Value; - property K40 : Float read GetK40Value write SetK40Value; - property OldK40 : Float read GetOldK40Value; - property K42 : Float read GetK42Value write SetK42Value; - property OldK42 : Float read GetOldK42Value; - property K44 : Float read GetK44Value write SetK44Value; - property OldK44 : Float read GetOldK44Value; - property K46 : Float read GetK46Value write SetK46Value; - property OldK46 : Float read GetOldK46Value; - property K48 : Float read GetK48Value write SetK48Value; - property OldK48 : Float read GetOldK48Value; - property KT : Float read GetKTValue write SetKTValue; - property OldKT : Float read GetOldKTValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IStockVARELADelta } - IStockVARELADelta = interface(IStockVARELA) - ['{B999E959-A4E5-4C5F-B87A-9CFB862CF28A}'] - { Property getters and setters } - function GetOldFILIALValue : String; - function GetOldCODIGOValue : String; - function GetOldCOLORValue : String; - function GetOldPRODUCTOValue : String; - function GetOldTIPO_PRODUTOValue : String; - function GetOldGRUPO_PRODUTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldK38Value : Integer; - function GetOldK40Value : Integer; - function GetOldK42Value : Integer; - function GetOldK44Value : Integer; - function GetOldK46Value : Integer; - function GetOldK48Value : Integer; - function GetOldKTValue : Integer; - - { Properties } - property OldFILIAL : String read GetOldFILIALValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; - property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldK38 : Integer read GetOldK38Value; - property OldK40 : Integer read GetOldK40Value; - property OldK42 : Integer read GetOldK42Value; - property OldK44 : Integer read GetOldK44Value; - property OldK46 : Integer read GetOldK46Value; - property OldK48 : Integer read GetOldK48Value; - property OldKT : Integer read GetOldKTValue; - end; - - { TStockVARELABusinessProcessorRules } - TStockVARELABusinessProcessorRules = class(TDABusinessProcessorRules, IStockVARELA, IStockVARELADelta) - private - protected - { Property getters and setters } - function GetFILIALValue: String; virtual; - function GetOldFILIALValue: String; virtual; - procedure SetFILIALValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetTIPO_PRODUTOValue: String; virtual; - function GetOldTIPO_PRODUTOValue: String; virtual; - procedure SetTIPO_PRODUTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUTOValue: String; virtual; - function GetOldGRUPO_PRODUTOValue: String; virtual; - procedure SetGRUPO_PRODUTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - function GetOldCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetK38Value: Integer; virtual; - function GetOldK38Value: Integer; virtual; - procedure SetK38Value(const aValue: Integer); virtual; - function GetK40Value: Integer; virtual; - function GetOldK40Value: Integer; virtual; - procedure SetK40Value(const aValue: Integer); virtual; - function GetK42Value: Integer; virtual; - function GetOldK42Value: Integer; virtual; - procedure SetK42Value(const aValue: Integer); virtual; - function GetK44Value: Integer; virtual; - function GetOldK44Value: Integer; virtual; - procedure SetK44Value(const aValue: Integer); virtual; - function GetK46Value: Integer; virtual; - function GetOldK46Value: Integer; virtual; - procedure SetK46Value(const aValue: Integer); virtual; - function GetK48Value: Integer; virtual; - function GetOldK48Value: Integer; virtual; - procedure SetK48Value(const aValue: Integer); virtual; - function GetKTValue: Integer; virtual; - function GetOldKTValue: Integer; virtual; - procedure SetKTValue(const aValue: Integer); virtual; - - { Properties } - property FILIAL : String read GetFILIALValue write SetFILIALValue; - property OldFILIAL : String read GetOldFILIALValue; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property TIPO_PRODUTO : String read GetTIPO_PRODUTOValue write SetTIPO_PRODUTOValue; - property OldTIPO_PRODUTO : String read GetOldTIPO_PRODUTOValue; - property GRUPO_PRODUTO : String read GetGRUPO_PRODUTOValue write SetGRUPO_PRODUTOValue; - property OldGRUPO_PRODUTO : String read GetOldGRUPO_PRODUTOValue; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property K38 : Integer read GetK38Value write SetK38Value; - property OldK38 : Integer read GetOldK38Value; - property K40 : Integer read GetK40Value write SetK40Value; - property OldK40 : Integer read GetOldK40Value; - property K42 : Integer read GetK42Value write SetK42Value; - property OldK42 : Integer read GetOldK42Value; - property K44 : Integer read GetK44Value write SetK44Value; - property OldK44 : Integer read GetOldK44Value; - property K46 : Integer read GetK46Value write SetK46Value; - property OldK46 : Integer read GetOldK46Value; - property K48 : Integer read GetK48Value write SetK48Value; - property OldK48 : Integer read GetOldK48Value; - property KT : Integer read GetKTValue write SetKTValue; - property OldKT : Integer read GetOldKTValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IStockEDIInventarioDelta } - IStockEDIInventarioDelta = interface(IStockEDIInventario) - ['{11EC9F46-F7DD-486E-ACD2-5873746C963D}'] - { Property getters and setters } - function GetOldCENTROValue : String; - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldCOLORValue : String; - function GetOldTIPO_PRODUCTOValue : String; - function GetOldGRUPO_PRODUCTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldI38Value : Float; - function GetOldI40Value : Float; - function GetOldI42Value : Float; - function GetOldI44Value : Float; - function GetOldI46Value : Float; - function GetOldI48Value : Float; - function GetOldTIValue : Float; - function GetOldK38Value : Float; - function GetOldK40Value : Float; - function GetOldK42Value : Float; - function GetOldK44Value : Float; - function GetOldK46Value : Float; - function GetOldK48Value : Float; - function GetOldTKValue : Float; - function GetOldD38Value : Float; - function GetOldD40Value : Float; - function GetOldD42Value : Float; - function GetOldD44Value : Float; - function GetOldD46Value : Float; - function GetOldD48Value : Float; - function GetOldDTValue : Float; - - { Properties } - property OldCENTRO : String read GetOldCENTROValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldI38 : Float read GetOldI38Value; - property OldI40 : Float read GetOldI40Value; - property OldI42 : Float read GetOldI42Value; - property OldI44 : Float read GetOldI44Value; - property OldI46 : Float read GetOldI46Value; - property OldI48 : Float read GetOldI48Value; - property OldTI : Float read GetOldTIValue; - property OldK38 : Float read GetOldK38Value; - property OldK40 : Float read GetOldK40Value; - property OldK42 : Float read GetOldK42Value; - property OldK44 : Float read GetOldK44Value; - property OldK46 : Float read GetOldK46Value; - property OldK48 : Float read GetOldK48Value; - property OldTK : Float read GetOldTKValue; - property OldD38 : Float read GetOldD38Value; - property OldD40 : Float read GetOldD40Value; - property OldD42 : Float read GetOldD42Value; - property OldD44 : Float read GetOldD44Value; - property OldD46 : Float read GetOldD46Value; - property OldD48 : Float read GetOldD48Value; - property OldDT : Float read GetOldDTValue; - end; - - { TStockEDIInventarioBusinessProcessorRules } - TStockEDIInventarioBusinessProcessorRules = class(TDABusinessProcessorRules, IStockEDIInventario, IStockEDIInventarioDelta) - private - protected - { Property getters and setters } - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTIPO_PRODUCTOValue: String; virtual; - function GetOldTIPO_PRODUCTOValue: String; virtual; - procedure SetTIPO_PRODUCTOValue(const aValue: String); virtual; - function GetGRUPO_PRODUCTOValue: String; virtual; - function GetOldGRUPO_PRODUCTOValue: String; virtual; - procedure SetGRUPO_PRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - function GetOldCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetI38Value: Float; virtual; - function GetOldI38Value: Float; virtual; - procedure SetI38Value(const aValue: Float); virtual; - function GetI40Value: Float; virtual; - function GetOldI40Value: Float; virtual; - procedure SetI40Value(const aValue: Float); virtual; - function GetI42Value: Float; virtual; - function GetOldI42Value: Float; virtual; - procedure SetI42Value(const aValue: Float); virtual; - function GetI44Value: Float; virtual; - function GetOldI44Value: Float; virtual; - procedure SetI44Value(const aValue: Float); virtual; - function GetI46Value: Float; virtual; - function GetOldI46Value: Float; virtual; - procedure SetI46Value(const aValue: Float); virtual; - function GetI48Value: Float; virtual; - function GetOldI48Value: Float; virtual; - procedure SetI48Value(const aValue: Float); virtual; - function GetTIValue: Float; virtual; - function GetOldTIValue: Float; virtual; - procedure SetTIValue(const aValue: Float); virtual; - function GetK38Value: Float; virtual; - function GetOldK38Value: Float; virtual; - procedure SetK38Value(const aValue: Float); virtual; - function GetK40Value: Float; virtual; - function GetOldK40Value: Float; virtual; - procedure SetK40Value(const aValue: Float); virtual; - function GetK42Value: Float; virtual; - function GetOldK42Value: Float; virtual; - procedure SetK42Value(const aValue: Float); virtual; - function GetK44Value: Float; virtual; - function GetOldK44Value: Float; virtual; - procedure SetK44Value(const aValue: Float); virtual; - function GetK46Value: Float; virtual; - function GetOldK46Value: Float; virtual; - procedure SetK46Value(const aValue: Float); virtual; - function GetK48Value: Float; virtual; - function GetOldK48Value: Float; virtual; - procedure SetK48Value(const aValue: Float); virtual; - function GetTKValue: Float; virtual; - function GetOldTKValue: Float; virtual; - procedure SetTKValue(const aValue: Float); virtual; - function GetD38Value: Float; virtual; - function GetOldD38Value: Float; virtual; - procedure SetD38Value(const aValue: Float); virtual; - function GetD40Value: Float; virtual; - function GetOldD40Value: Float; virtual; - procedure SetD40Value(const aValue: Float); virtual; - function GetD42Value: Float; virtual; - function GetOldD42Value: Float; virtual; - procedure SetD42Value(const aValue: Float); virtual; - function GetD44Value: Float; virtual; - function GetOldD44Value: Float; virtual; - procedure SetD44Value(const aValue: Float); virtual; - function GetD46Value: Float; virtual; - function GetOldD46Value: Float; virtual; - procedure SetD46Value(const aValue: Float); virtual; - function GetD48Value: Float; virtual; - function GetOldD48Value: Float; virtual; - procedure SetD48Value(const aValue: Float); virtual; - function GetDTValue: Float; virtual; - function GetOldDTValue: Float; virtual; - procedure SetDTValue(const aValue: Float); virtual; - - { Properties } - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property TIPO_PRODUCTO : String read GetTIPO_PRODUCTOValue write SetTIPO_PRODUCTOValue; - property OldTIPO_PRODUCTO : String read GetOldTIPO_PRODUCTOValue; - property GRUPO_PRODUCTO : String read GetGRUPO_PRODUCTOValue write SetGRUPO_PRODUCTOValue; - property OldGRUPO_PRODUCTO : String read GetOldGRUPO_PRODUCTOValue; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property I38 : Float read GetI38Value write SetI38Value; - property OldI38 : Float read GetOldI38Value; - property I40 : Float read GetI40Value write SetI40Value; - property OldI40 : Float read GetOldI40Value; - property I42 : Float read GetI42Value write SetI42Value; - property OldI42 : Float read GetOldI42Value; - property I44 : Float read GetI44Value write SetI44Value; - property OldI44 : Float read GetOldI44Value; - property I46 : Float read GetI46Value write SetI46Value; - property OldI46 : Float read GetOldI46Value; - property I48 : Float read GetI48Value write SetI48Value; - property OldI48 : Float read GetOldI48Value; - property TI : Float read GetTIValue write SetTIValue; - property OldTI : Float read GetOldTIValue; - property K38 : Float read GetK38Value write SetK38Value; - property OldK38 : Float read GetOldK38Value; - property K40 : Float read GetK40Value write SetK40Value; - property OldK40 : Float read GetOldK40Value; - property K42 : Float read GetK42Value write SetK42Value; - property OldK42 : Float read GetOldK42Value; - property K44 : Float read GetK44Value write SetK44Value; - property OldK44 : Float read GetOldK44Value; - property K46 : Float read GetK46Value write SetK46Value; - property OldK46 : Float read GetOldK46Value; - property K48 : Float read GetK48Value write SetK48Value; - property OldK48 : Float read GetOldK48Value; - property TK : Float read GetTKValue write SetTKValue; - property OldTK : Float read GetOldTKValue; - property D38 : Float read GetD38Value write SetD38Value; - property OldD38 : Float read GetOldD38Value; - property D40 : Float read GetD40Value write SetD40Value; - property OldD40 : Float read GetOldD40Value; - property D42 : Float read GetD42Value write SetD42Value; - property OldD42 : Float read GetOldD42Value; - property D44 : Float read GetD44Value write SetD44Value; - property OldD44 : Float read GetOldD44Value; - property D46 : Float read GetD46Value write SetD46Value; - property OldD46 : Float read GetOldD46Value; - property D48 : Float read GetD48Value write SetD48Value; - property OldD48 : Float read GetOldD48Value; - property DT : Float read GetDTValue write SetDTValue; - property OldDT : Float read GetOldDTValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TStockPrendasCentrosBusinessProcessorRules } -constructor TStockPrendasCentrosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TStockPrendasCentrosBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCODIGO]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCODIGO] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosPRODUCTO]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosPRODUCTO] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTIPO_PRODUCTO] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosGRUPO_PRODUCTO] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLECCION]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLECCION] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosCOLOR]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosCOLOR] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT38]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT38] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT40]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT40] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT42]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT42] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT44]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT44] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT46]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT46] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetT48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldT48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosT48]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetT48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosT48] := aValue; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetTOTALValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL]; -end; - -function TStockPrendasCentrosBusinessProcessorRules.GetOldTOTALValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockPrendasCentrosTOTAL]; -end; - -procedure TStockPrendasCentrosBusinessProcessorRules.SetTOTALValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockPrendasCentrosTOTAL] := aValue; -end; - - -{ TStockEDIBusinessProcessorRules } -constructor TStockEDIBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TStockEDIBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TStockEDIBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO]; -end; - -function TStockEDIBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICENTRO]; -end; - -procedure TStockEDIBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICENTRO] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO]; -end; - -function TStockEDIBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICODIGO]; -end; - -procedure TStockEDIBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICODIGO] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO]; -end; - -function TStockEDIBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIPRODUCTO]; -end; - -procedure TStockEDIBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIPRODUCTO] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO]; -end; - -function TStockEDIBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITIPO_PRODUCTO]; -end; - -procedure TStockEDIBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITIPO_PRODUCTO] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO]; -end; - -function TStockEDIBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIGRUPO_PRODUCTO]; -end; - -procedure TStockEDIBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIGRUPO_PRODUCTO] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION]; -end; - -function TStockEDIBusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLECCION]; -end; - -procedure TStockEDIBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLECCION] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR]; -end; - -function TStockEDIBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDICOLOR]; -end; - -procedure TStockEDIBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDICOLOR] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE38]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE38] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE40]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE40] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE42]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE42] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE44]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE44] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE46]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE46] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetE48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48]; -end; - -function TStockEDIBusinessProcessorRules.GetOldE48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIE48]; -end; - -procedure TStockEDIBusinessProcessorRules.SetE48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIE48] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetTEValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE]; -end; - -function TStockEDIBusinessProcessorRules.GetOldTEValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITE]; -end; - -procedure TStockEDIBusinessProcessorRules.SetTEValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITE] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS38]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS38] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS40]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS40] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS42]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS42] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS44]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS44] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS46]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS46] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetS48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48]; -end; - -function TStockEDIBusinessProcessorRules.GetOldS48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIS48]; -end; - -procedure TStockEDIBusinessProcessorRules.SetS48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIS48] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetTSValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS]; -end; - -function TStockEDIBusinessProcessorRules.GetOldTSValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDITS]; -end; - -procedure TStockEDIBusinessProcessorRules.SetTSValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDITS] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK38]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK38] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK40]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK40] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK42]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK42] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK44]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK44] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK46]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK46] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetK48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48]; -end; - -function TStockEDIBusinessProcessorRules.GetOldK48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIK48]; -end; - -procedure TStockEDIBusinessProcessorRules.SetK48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIK48] := aValue; -end; - -function TStockEDIBusinessProcessorRules.GetKTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT]; -end; - -function TStockEDIBusinessProcessorRules.GetOldKTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIKT]; -end; - -procedure TStockEDIBusinessProcessorRules.SetKTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIKT] := aValue; -end; - - -{ TStockVARELABusinessProcessorRules } -constructor TStockVARELABusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TStockVARELABusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TStockVARELABusinessProcessorRules.GetFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL]; -end; - -function TStockVARELABusinessProcessorRules.GetOldFILIALValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAFILIAL]; -end; - -procedure TStockVARELABusinessProcessorRules.SetFILIALValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAFILIAL] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO]; -end; - -function TStockVARELABusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACODIGO]; -end; - -procedure TStockVARELABusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACODIGO] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR]; -end; - -function TStockVARELABusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLOR]; -end; - -procedure TStockVARELABusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLOR] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO]; -end; - -function TStockVARELABusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAPRODUCTO]; -end; - -procedure TStockVARELABusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAPRODUCTO] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetTIPO_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO]; -end; - -function TStockVARELABusinessProcessorRules.GetOldTIPO_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELATIPO_PRODUTO]; -end; - -procedure TStockVARELABusinessProcessorRules.SetTIPO_PRODUTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELATIPO_PRODUTO] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetGRUPO_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO]; -end; - -function TStockVARELABusinessProcessorRules.GetOldGRUPO_PRODUTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAGRUPO_PRODUTO]; -end; - -procedure TStockVARELABusinessProcessorRules.SetGRUPO_PRODUTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAGRUPO_PRODUTO] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION]; -end; - -function TStockVARELABusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELACOLECCION]; -end; - -procedure TStockVARELABusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELACOLECCION] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK38Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK38Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK38]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK38Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK38] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK40Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK40Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK40]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK40Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK40] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK42Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK42Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK42]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK42Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK42] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK44Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK44Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK44]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK44Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK44] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK46Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK46Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK46]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK46Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK46] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetK48Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48]; -end; - -function TStockVARELABusinessProcessorRules.GetOldK48Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAK48]; -end; - -procedure TStockVARELABusinessProcessorRules.SetK48Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAK48] := aValue; -end; - -function TStockVARELABusinessProcessorRules.GetKTValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT]; -end; - -function TStockVARELABusinessProcessorRules.GetOldKTValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockVARELAKT]; -end; - -procedure TStockVARELABusinessProcessorRules.SetKTValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockVARELAKT] := aValue; -end; - - -{ TStockEDIInventarioBusinessProcessorRules } -constructor TStockEDIInventarioBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TStockEDIInventarioBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCENTRO]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCENTRO] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCODIGO]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCODIGO] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioPRODUCTO]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioPRODUCTO] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLOR]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLOR] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldTIPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTIPO_PRODUCTO]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetTIPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTIPO_PRODUCTO] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldGRUPO_PRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetGRUPO_PRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioGRUPO_PRODUCTO] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioCOLECCION]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioCOLECCION] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI38]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI38] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI40]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI40] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI42]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI42] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI44]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI44] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI46]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI46] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetI48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldI48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioI48]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetI48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioI48] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetTIValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldTIValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTI]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetTIValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTI] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK38]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK38] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK40]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK40] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK42]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK42] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK44]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK44] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK46]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK46] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetK48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldK48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioK48]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetK48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioK48] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetTKValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldTKValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioTK]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetTKValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioTK] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD38Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD38Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD38]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD38Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD38] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD40Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD40Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD40]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD40Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD40] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD42Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD42Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD42]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD42Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD42] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD44Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD44Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD44]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD44Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD44] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD46Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD46Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD46]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD46Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD46] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetD48Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldD48Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioD48]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetD48Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioD48] := aValue; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetDTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT]; -end; - -function TStockEDIInventarioBusinessProcessorRules.GetOldDTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_StockEDIInventarioDT]; -end; - -procedure TStockEDIInventarioBusinessProcessorRules.SetDTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_StockEDIInventarioDT] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_StockPrendasCentrosDelta, TStockPrendasCentrosBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_StockEDIDelta, TStockEDIBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_StockVARELADelta, TStockVARELABusinessProcessorRules); - RegisterBusinessProcessorRules(RID_StockEDIInventarioDelta, TStockEDIInventarioBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas b/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas deleted file mode 100644 index 9f0ff64..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Reglas/uBizStock.pas +++ /dev/null @@ -1,58 +0,0 @@ -unit uBizStock; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, - DataAbstract3_Intf, uROTypes, schStockClient_Intf; - -const - BIZ_STOCK_EDI = 'Client.StockEDI'; - BIZ_STOCK_EDIINVENTARIO = 'Client.StockEDIInventario'; - BIZ_STOCK_VARELA = 'Client.StockVARELA'; - BIZ_STOCK_PRENDAS_CENTROS = 'Client.StockPrendasCentros'; - -type - IBizStockEDI = interface(IStockEDI) - ['{01767388-AF6D-4EF0-A2A4-092D698ECD19}'] - end; - - IBizStockEDIInventario = interface(IStockEDIInventario) - ['{156E243C-7B4D-4223-8FAF-A965E8C5A94D}'] - end; - - IBizStockVARELA = interface(IStockVARELA) - ['{2DC85C8D-E7CA-4B13-A7CE-46E412D05D76}'] - end; - - IBizStockPrendasCentros = interface(IStockPrendasCentros) - ['{F17984D3-1262-4D0B-94F3-E86DA3B1357E}'] - end; - - TBizStockEDIDataTableRules = class(TStockEDIDataTableRules, IBizStockEDI) - end; - - TBizStockEDIInventarioDataTableRules = class(TStockEDIInventarioDataTableRules, IBizStockEDIInventario) - end; - - TBizStockVARELADataTableRules = class(TStockVARELADataTableRules, IBizStockVARELA) - end; - - TBizStockPrendasCentrosDataTableRules = class(TStockPrendasCentrosDataTableRules, IBizStockPrendasCentros) - end; - - -implementation - -{uses - Dialogs, uEditorUtils, uDataModuleVentasTerminadas;} - -initialization - RegisterDataTableRules(BIZ_STOCK_EDI, TBizStockEDIDataTableRules); - RegisterDataTableRules(BIZ_STOCK_EDIINVENTARIO, TBizStockEDIInventarioDataTableRules); - RegisterDataTableRules(BIZ_STOCK_VARELA, TBizStockVarelaDataTableRules); - RegisterDataTableRules(BIZ_STOCK_PRENDAS_CENTROS, TBizStockPrendasCentrosDataTableRules); -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm deleted file mode 100644 index 4fce771..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.dfm +++ /dev/null @@ -1,1389 +0,0 @@ -object srvStock: TsrvStock - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schStock - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - OnAfterAcquireConnection = DARemoteServiceAfterAcquireConnection - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 300 - Width = 300 - object DABINAdapter: TDABINAdapter - Left = 56 - Top = 96 - end - object schStock: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT'#10' CODIGO,'#10' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' ' + - 'GRUPO_PRODUCTO,'#10' COLECCION,'#10' COLOR,'#10' SUM(K38) AS ' + - 'T38,'#10' SUM(K40) AS T40,'#10' SUM(K42) AS T42,'#10' SUM(K44' + - ') AS T44,'#10' SUM(K46) AS T46,'#10' SUM(K48) AS T48,'#10' SU' + - 'M(KT) AS TOTAL'#10'FROM RDX_V_STOCK_CALCULADO'#10'GROUP BY CODIGO,'#10' ' + - ' PRODUCTO,'#10' TIPO_PRODUCTO,'#10' GRUPO_PRODUCTO,'#10' COLE' + - 'CCION,'#10' COLOR' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'TIPO_PRODUCTO' - TableField = 'TIPO_PRODUCTO' - end - item - DatasetField = 'GRUPO_PRODUCTO' - TableField = 'GRUPO_PRODUCTO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'T38' - TableField = 'T38' - end - item - DatasetField = 'T40' - TableField = 'T40' - end - item - DatasetField = 'T42' - TableField = 'T42' - end - item - DatasetField = 'T44' - TableField = 'T44' - end - item - DatasetField = 'T46' - TableField = 'T46' - end - item - DatasetField = 'T48' - TableField = 'T48' - end - item - DatasetField = 'TOTAL' - TableField = 'TOTAL' - end> - end> - Name = 'StockPrendasCentros' - Fields = < - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'C'#243'digo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Producto' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Tipo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Grupo' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Colecci'#243'n' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Color' - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '38' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '40' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '42' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '44' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '46' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = '48' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT CENTRO, CODIGO, PRODUCTO, TIPO_PRODUCTO, GRUPO_PRODUCTO, ' + - 'COLECCION, COLOR,'#10' E38, E40, E42, E44, E46, E48, TE,'#10' ' + - 'S38, S40, S42, S44, S46, S48, TS,'#10' K38, K40, K42, K44, K46,' + - ' K48, KT'#10' '#10'FROM RDX_V_STOCK_CALCULADO' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end - item - DatasetField = 'TIPO_PRODUCTO' - TableField = 'TIPO_PRODUCTO' - end - item - DatasetField = 'GRUPO_PRODUCTO' - TableField = 'GRUPO_PRODUCTO' - end - item - DatasetField = 'E38' - TableField = 'E38' - end - item - DatasetField = 'E40' - TableField = 'E40' - end - item - DatasetField = 'E42' - TableField = 'E42' - end - item - DatasetField = 'E44' - TableField = 'E44' - end - item - DatasetField = 'E46' - TableField = 'E46' - end - item - DatasetField = 'E48' - TableField = 'E48' - end - item - DatasetField = 'TE' - TableField = 'TE' - end - item - DatasetField = 'S38' - TableField = 'S38' - end - item - DatasetField = 'S40' - TableField = 'S40' - end - item - DatasetField = 'S42' - TableField = 'S42' - end - item - DatasetField = 'S44' - TableField = 'S44' - end - item - DatasetField = 'S46' - TableField = 'S46' - end - item - DatasetField = 'S48' - TableField = 'S48' - end - item - DatasetField = 'TS' - TableField = 'TS' - end - item - DatasetField = 'K38' - TableField = 'K38' - end - item - DatasetField = 'K40' - TableField = 'K40' - end - item - DatasetField = 'K42' - TableField = 'K42' - end - item - DatasetField = 'K44' - TableField = 'K44' - end - item - DatasetField = 'K46' - TableField = 'K46' - end - item - DatasetField = 'K48' - TableField = 'K48' - end - item - DatasetField = 'KT' - TableField = 'KT' - end> - end> - Name = 'StockEDI' - Fields = < - item - Name = 'CENTRO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'E48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TE' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'S48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TS' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'KT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT FILIAL, CODIGO, COLOR, PRODUCTO, TIPO_PRODUTO, GRUPO_PROD' + - 'UTO,'#10' COLECCION, K38, K40, K42, K44, K46, K48, KT'#10' '#10'F' + - 'ROM RDX_V_STOCK_VARELA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end - item - DatasetField = 'K38' - TableField = 'K38' - end - item - DatasetField = 'K40' - TableField = 'K40' - end - item - DatasetField = 'K42' - TableField = 'K42' - end - item - DatasetField = 'K44' - TableField = 'K44' - end - item - DatasetField = 'K46' - TableField = 'K46' - end - item - DatasetField = 'K48' - TableField = 'K48' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'TIPO_PRODUTO' - TableField = 'TIPO_PRODUTO' - end - item - DatasetField = 'GRUPO_PRODUTO' - TableField = 'GRUPO_PRODUTO' - end - item - DatasetField = 'KT' - TableField = 'KT' - end> - end> - Name = 'StockVARELA' - Fields = < - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'KT' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taRightJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_INVENTARIO' - SQL = - 'SELECT '#10' CENTRO, CODIGO, PRODUCTO, COLOR, TIPO_PRODUCTO, GRUP' + - 'O_PRODUCTO, '#10' COLECCION, I38, I40, I42, I44, I46, I48, TI, K3' + - '8, K40, '#10' K42, K44, K46, K48, TK, D38, D40, D42, D44, D46, D4' + - '8, '#10' DT'#10' FROM'#10' RDX_V_CONTROL_INVENTARIO' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'TIPO_PRODUCTO' - TableField = 'TIPO_PRODUCTO' - end - item - DatasetField = 'GRUPO_PRODUCTO' - TableField = 'GRUPO_PRODUCTO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end - item - DatasetField = 'I38' - TableField = 'I38' - end - item - DatasetField = 'I40' - TableField = 'I40' - end - item - DatasetField = 'I42' - TableField = 'I42' - end - item - DatasetField = 'I44' - TableField = 'I44' - end - item - DatasetField = 'I46' - TableField = 'I46' - end - item - DatasetField = 'I48' - TableField = 'I48' - end - item - DatasetField = 'TI' - TableField = 'TI' - end - item - DatasetField = 'K38' - TableField = 'K38' - end - item - DatasetField = 'K40' - TableField = 'K40' - end - item - DatasetField = 'K42' - TableField = 'K42' - end - item - DatasetField = 'K44' - TableField = 'K44' - end - item - DatasetField = 'K46' - TableField = 'K46' - end - item - DatasetField = 'K48' - TableField = 'K48' - end - item - DatasetField = 'TK' - TableField = 'TK' - end - item - DatasetField = 'D38' - TableField = 'D38' - end - item - DatasetField = 'D40' - TableField = 'D40' - end - item - DatasetField = 'D42' - TableField = 'D42' - end - item - DatasetField = 'D44' - TableField = 'D44' - end - item - DatasetField = 'D46' - TableField = 'D46' - end - item - DatasetField = 'D48' - TableField = 'D48' - end - item - DatasetField = 'DT' - TableField = 'DT' - end> - end> - Name = 'StockEDIInventario' - Fields = < - item - Name = 'CENTRO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'GRUPO_PRODUCTO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'I48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TI' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'K48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TK' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'D48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - Commands = <> - RelationShips = <> - UpdateRules = <> - Left = 56 - Top = 32 - end -end diff --git a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas b/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas deleted file mode 100644 index fc27fcc..0000000 --- a/Varela/Varela/Source/Modulos/Stock/Servidor/srvStock_Impl.pas +++ /dev/null @@ -1,59 +0,0 @@ -unit srvStock_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, - uDAInterfaces, uDADataStreamer; - -type - { TsrvStock } - TsrvStock = class(TDARemoteService, IsrvStock) - DABINAdapter: TDABINAdapter; - schStock: TDASchema; - procedure DARemoteServiceAfterAcquireConnection( - Sender: TDARemoteService; const ConnectionName: String; - const AcquiredConnection: IDAConnection); - private - protected - { IsrvStock methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, ADODB; - -procedure Create_srvStock(out anInstance : IUnknown); -begin - anInstance := TsrvStock.Create(NIL); -end; - -{ srvStock } -procedure TsrvStock.DARemoteServiceAfterAcquireConnection( - Sender: TDARemoteService; const ConnectionName: String; - const AcquiredConnection: IDAConnection); -begin -{ with (Connection as IDAConnectionObjectAccess) do - if ConnectionObject is TADOConnection then - TADOConnection(ConnectionObject).CommandTimeout:= 0;} -end; - -initialization - TROClassFactory.Create('srvStock', Create_srvStock, TsrvStock_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj deleted file mode 100644 index 89713a6..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Traspasos.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg deleted file mode 100644 index a34a309..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof deleted file mode 100644 index f5bd34e..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=0 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Servidor -Item1=..\..\Output\Cliente -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk deleted file mode 100644 index f3b8eae..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.dpk +++ /dev/null @@ -1,82 +0,0 @@ -package Traspasos; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - dbrtl, - dsnap, - BaseD10, - vcl, - adortl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - JvGlobusD10R, - ControlesBaseD10, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - dxPSCoreD10, - dxComnD10, - JvCustomD10R, - bdertl, - VclSmp, - dxPScxCommonD10, - dxPSLnksD10, - designide, - vclshlctrls, - dxPScxGridLnkD10, - dclcxLibraryD10, - dxLayoutControlD10; - -contains - uDataModuleTraspasos in 'uDataModuleTraspasos.pas' {dmTraspasos: TDAClientDataModule}, - uBizTraspasos in '..\Reglas\uBizTraspasos.pas', - uPluginControllerTraspasos in 'uPluginControllerTraspasos.pas' {ModuleTraspasos: TModuleController}, - uViewListaTraspasos in 'uViewListaTraspasos.pas' {frViewListaTraspasos: TCustomView}, - uEditorListaTraspasos in 'uEditorListaTraspasos.pas' {fEditorListaTraspasos: TCustomEditor}, - uEditorAjustarTraspasos in 'uEditorAjustarTraspasos.pas' {fEditorAjustarTraspasos}; - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res b/Varela/Varela/Source/Modulos/Traspasos/Cliente/Traspasos.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm deleted file mode 100644 index a407ef1..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.dfm +++ /dev/null @@ -1,1406 +0,0 @@ -object dmTraspasos: TdmTraspasos - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 297 - Width = 620 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvTraspasos' - Left = 40 - Top = 32 - end - object tbl_Traspasos: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Tipo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TIPO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Aprobado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Estado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Observaciones' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_OBSERVACIONES' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Contabilizar' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CONTABILIZAR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha cambio' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'C'#243'digo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CODIGO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Producto' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Color' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_COLOR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TOTAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - Alignment = taLeftJustify - ServerAutoRefresh = True - DictionaryEntry = 'Traspasos_TOTAL_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Traspasos' - IndexDefs = <> - Left = 136 - Top = 32 - end - object ds_Traspasos: TDADataSource - DataSet = tbl_Traspasos.Dataset - DataTable = tbl_Traspasos - Left = 136 - Top = 88 - end - object tbl_TraspasosAprobados: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Tipo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TIPO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Aprobado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Estado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Observaciones' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_OBSERVACIONES' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Contabilizar' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CONTABILIZAR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha cambio' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'C'#243'digo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CODIGO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Producto' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Color' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_COLOR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TOTAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - Alignment = taLeftJustify - ServerAutoRefresh = True - DictionaryEntry = 'Traspasos_TOTAL_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'TraspasosAprobados' - IndexDefs = <> - Left = 272 - Top = 32 - end - object ds_TraspasosAprobados: TDADataSource - DataSet = tbl_TraspasosAprobados.Dataset - DataTable = tbl_TraspasosAprobados - Left = 272 - Top = 88 - end - object tbl_TraspasosPendientes: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Tipo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TIPO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHA' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Centro2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CENTRO2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Filial2' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FILIAL2' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Aprobado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_APROBADO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Estado' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Observaciones' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_OBSERVACIONES' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Contabilizar' - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CONTABILIZAR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Fecha cambio' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_FECHACAMBIO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'C'#243'digo' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_CODIGO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - DisplayLabel = 'Producto' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_PRODUCTO' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Color' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_COLOR' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'T48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_T48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - ReadOnly = True - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TOTAL' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR38' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR38' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR40' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR40' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR42' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR42' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR44' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR44' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR46' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR46' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TR48' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - DictionaryEntry = 'Traspasos_TR48' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - DisplayLabel = 'Total' - Alignment = taLeftJustify - ServerAutoRefresh = True - DictionaryEntry = 'Traspasos_TOTAL_RECT' - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'TraspasosPendientes' - IndexDefs = <> - Left = 408 - Top = 32 - end - object ds_TraspasosPendientes: TDADataSource - DataSet = tbl_TraspasosPendientes.Dataset - DataTable = tbl_TraspasosPendientes - Left = 408 - Top = 88 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas deleted file mode 100644 index b24c908..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uDataModuleTraspasos.pas +++ /dev/null @@ -1,87 +0,0 @@ -unit uDataModuleTraspasos; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider, - uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient, - uROServiceComponent, uRORemoteService, uBizTraspasos, uDARemoteDataAdapter, - uDAInterfaces; - -type - TdmTraspasos = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_Traspasos: TDACDSDataTable; - ds_Traspasos: TDADataSource; - tbl_TraspasosAprobados: TDACDSDataTable; - ds_TraspasosAprobados: TDADataSource; - tbl_TraspasosPendientes: TDACDSDataTable; - ds_TraspasosPendientes: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - public - function GetItems : IBizTraspasos; overload; - function GetItems(const AEstado : TInvTraspasoEstado) : IBizTraspasos; overload; - end; - -var - dmTraspasos: TdmTraspasos; - -implementation - -{$R *.DFM} - -uses - Forms, Windows, Controls, VARELA_Intf, uEditorPreview, - uDataTableUtils, uROTypes, cxControls; - -procedure TdmTraspasos.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmTraspasos.GetItems: IBizTraspasos; -var - dtLista: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_Traspasos, dtLista); - dtLista.BusinessRulesID := BIZ_TRASPASOS; - Result := (dtLista as IBizTraspasos); - finally - HideHourglassCursor; - end; -end; - -function TdmTraspasos.GetItems( - const AEstado: TInvTraspasoEstado): IBizTraspasos; -var - dtLista: TDACDSDataTable; - AStr : String; -begin - ShowHourglassCursor; - try - dtLista := TDACDSDataTable.Create(NIL); - - case AEstado of - titPendiente : CloneDataTable(tbl_TraspasosPendientes, dtLista); - titAprobado : CloneDataTable(tbl_TraspasosAprobados, dtLista); - end; - - dtLista.BusinessRulesID := BIZ_TRASPASOS; - Result := (dtLista as IBizTraspasos); - finally - HideHourglassCursor; - end; -end; - -initialization - dmTraspasos := TdmTraspasos.Create(nil); - -finalization - FreeAndNil(dmTraspasos); - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm deleted file mode 100644 index 6b1235d..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.dfm +++ /dev/null @@ -1,725 +0,0 @@ -object fEditorAjustarTraspasos: TfEditorAjustarTraspasos - Left = 344 - Top = 312 - BorderStyle = bsDialog - Caption = 'Modificaci'#243'n de recepciones de productos' - ClientHeight = 536 - ClientWidth = 752 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object JvgWizardHeader1: TJvgWizardHeader - Left = 0 - Top = 0 - Width = 752 - Height = 73 - CaptionFont.Charset = DEFAULT_CHARSET - CaptionFont.Color = clWindowText - CaptionFont.Height = -11 - CaptionFont.Name = 'MS Sans Serif' - CaptionFont.Style = [fsBold] - CommentFont.Charset = DEFAULT_CHARSET - CommentFont.Color = clWindowText - CommentFont.Height = -11 - CommentFont.Name = 'MS Sans Serif' - CommentFont.Style = [] - SymbolFont.Charset = DEFAULT_CHARSET - SymbolFont.Color = clHighlightText - SymbolFont.Height = -35 - SymbolFont.Name = 'Wingdings' - SymbolFont.Style = [fsBold] - Captions.Strings = ( - 'Modificaci'#243'n de recepciones de productos') - Comments.Strings = ( - '') - Gradient.FromColor = clHighlight - Gradient.ToColor = clWindow - Gradient.Active = True - Gradient.Orientation = fgdVertical - BufferedDraw = False - end - object Bevel1: TBevel - Left = 11 - Top = 483 - Width = 730 - Height = 4 - Shape = bsBottomLine - end - object bAceptar: TButton - Left = 572 - Top = 496 - Width = 75 - Height = 25 - Caption = '&Aceptar' - ModalResult = 1 - TabOrder = 0 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 666 - Top = 496 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Cancelar' - ModalResult = 2 - TabOrder = 1 - end - object dxLayoutControl1: TdxLayoutControl - Left = 0 - Top = 73 - Width = 753 - Height = 403 - ParentBackground = True - TabOrder = 2 - AutoContentSizes = [acsWidth, acsHeight] - object Bevel2: TBevel - Left = 22 - Top = 130 - Width = 50 - Height = 10 - Shape = bsBottomLine - end - object Label2: TLabel - Left = 22 - Top = 335 - Width = 84 - Height = 13 - Caption = 'Cantidad por EDI:' - end - object Label3: TLabel - Left = 61 - Top = 364 - Width = 45 - Height = 13 - Caption = 'Cantidad:' - end - object Bevel3: TBevel - Left = 22 - Top = 74 - Width = 734 - Height = 10 - Shape = bsBottomLine - end - object lblCentroOrigen: TLabel - Left = 133 - Top = 90 - Width = 31 - Height = 13 - Caption = 'Centro' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentFont = False - end - object lblCentroDestino: TLabel - Left = 133 - Top = 110 - Width = 31 - Height = 13 - Caption = 'Centro' - Font.Charset = DEFAULT_CHARSET - Font.Color = clActiveCaption - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentFont = False - end - object edtRec38: TcxDBMaskEdit - Left = 112 - Top = 333 - DataBinding.DataField = 'T38' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 6 - Width = 98 - end - object edtRec40: TcxDBMaskEdit - Left = 216 - Top = 333 - DataBinding.DataField = 'T40' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 8 - Width = 98 - end - object edtRec42: TcxDBMaskEdit - Left = 320 - Top = 333 - DataBinding.DataField = 'T42' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 10 - Width = 98 - end - object edtRec44: TcxDBMaskEdit - Left = 424 - Top = 333 - DataBinding.DataField = 'T44' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 12 - Width = 98 - end - object edtRec46: TcxDBMaskEdit - Left = 528 - Top = 333 - DataBinding.DataField = 'T46' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 14 - Width = 98 - end - object edtRec48: TcxDBMaskEdit - Left = 632 - Top = 333 - DataBinding.DataField = 'T48' - DataBinding.DataSource = dsDataSource - Enabled = False - Properties.Alignment.Horz = taRightJustify - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 16 - Width = 98 - end - object edtRecR48: TcxCurrencyEdit - Left = 632 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 17 - Width = 98 - end - object edtRecR46: TcxCurrencyEdit - Left = 528 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 15 - Width = 98 - end - object edtRecR44: TcxCurrencyEdit - Left = 424 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 13 - Width = 98 - end - object edtRecR42: TcxCurrencyEdit - Left = 320 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 11 - Width = 98 - end - object edtRecR40: TcxCurrencyEdit - Left = 216 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 - Width = 98 - end - object edtRecR38: TcxCurrencyEdit - Left = 112 - Top = 360 - Properties.Alignment.Horz = taRightJustify - Properties.DecimalPlaces = 0 - Properties.DisplayFormat = ',0;-,0' - Properties.UseThousandSeparator = True - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clActiveCaption - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 7 - Width = 98 - end - object edtFecha: TcxDBLabel - Left = 133 - Top = 28 - DataBinding.DataField = 'FECHA' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 420 - end - object edtProducto: TcxDBLabel - Left = 133 - Top = 51 - DataBinding.DataField = 'PRODUCTO' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 460 - end - object edtColor: TcxDBLabel - Left = 655 - Top = 51 - DataBinding.DataField = 'COLOR' - DataBinding.DataSource = dsDataSource - ParentColor = False - ParentFont = False - Style.Font.Charset = DEFAULT_CHARSET - Style.Font.Color = clActiveCaption - Style.Font.Height = -11 - Style.Font.Name = 'MS Sans Serif' - Style.Font.Style = [] - Style.IsFontAssigned = True - Height = 17 - Width = 76 - end - object cbEstado: TcxComboBox - Left = 133 - Top = 146 - Properties.Items.Strings = ( - 'Ninguna' - 'Env'#237'o perdido' - 'Env'#237'o retrasado' - 'Env'#237'o devuelto' - 'Otros') - 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 - Text = 'cbEstado' - Width = 156 - end - object memObservaciones: TcxMemo - Left = 22 - Top = 191 - Lines.Strings = ( - 'memEstadoAlbaran') - 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 = 5 - Height = 88 - Width = 333 - end - object cbContabilizar: TcxCheckBox - Left = 348 - Top = 146 - Caption = 'Contabilizar este traspaso' - Properties.ImmediatePost = True - Properties.NullStyle = nssUnchecked - Properties.ValueChecked = 'S' - Properties.ValueUnchecked = 'N' - State = cbsGrayed - 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 = 4 - Width = 319 - end - object dxLayoutControl1Group_Root: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group1: TdxLayoutGroup - Caption = 'Datos generales del traspaso' - object dxLayoutControl1Item31: TdxLayoutItem - Caption = 'Fecha del movimiento:' - Control = edtFecha - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group3: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group17: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item32: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Producto:' - Control = edtProducto - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item33: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - Caption = 'Color:' - Control = edtColor - ControlOptions.MinWidth = 50 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group7: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item7: TdxLayoutItem - Control = Bevel3 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item1: TdxLayoutItem - Caption = 'Centro de origen:' - Control = lblCentroOrigen - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item10: TdxLayoutItem - Caption = 'Centro de destino:' - Control = lblCentroDestino - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item9: TdxLayoutItem - Control = Bevel2 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group6: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Group2: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item5: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Estado del env'#237'o:' - Control = cbEstado - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item8: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'cxCheckBox1' - ShowCaption = False - Control = cbContabilizar - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Item6: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Observaciones:' - CaptionOptions.AlignVert = tavTop - CaptionOptions.Layout = clTop - Control = memObservaciones - ControlOptions.ShowBorder = False - end - end - end - end - end - object dxLayoutControl1Group5: TdxLayoutGroup - Caption = 'Cantidades' - LayoutDirection = ldHorizontal - object dxLayoutControl1Group16: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item23: TdxLayoutItem - Caption = 'Tallas:' - CaptionOptions.AlignHorz = taRightJustify - CaptionOptions.Layout = clTop - Offsets.Top = 2 - Control = Label2 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item30: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - CaptionOptions.Layout = clTop - Offsets.Top = 10 - ShowCaption = False - Control = Label3 - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group10: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item2: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '38' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec38 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item29: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR38 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group11: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item3: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '40' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec40 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item28: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR40 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group12: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item4: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '42' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec42 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item27: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR42 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group13: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item20: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '44' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec44 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item26: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR44 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group14: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item21: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '46' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec46 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item25: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR46 - ControlOptions.ShowBorder = False - end - end - object dxLayoutControl1Group15: TdxLayoutGroup - ShowCaption = False - Hidden = True - ShowBorder = False - object dxLayoutControl1Item22: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = '48' - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRec48 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item24: TdxLayoutItem - CaptionOptions.AlignHorz = taCenter - CaptionOptions.Layout = clTop - Control = edtRecR48 - ControlOptions.ShowBorder = False - end - end - end - end - end - object dsDataSource: TDADataSource - DataTable = dmTraspasos.tbl_Traspasos - Left = 200 - Top = 496 - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas deleted file mode 100644 index 6093469..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorAjustarTraspasos.pas +++ /dev/null @@ -1,288 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorAjustarTraspasos; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, JvExControls, JvComponent, - JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizTraspasos, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, - cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView, - cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, - cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl, - cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit, - cxCheckBox, cxCalendar, cxLabel, cxDBLabel; - -type - IEditorAjustarTraspasos = interface - ['{40E4185E-595B-48DF-AFA8-E86509F7354F}'] - function GetItems : IBizTraspasos; - procedure SetItems (const AValue : IBizTraspasos); - property Items : IBizTraspasos read GetItems write SetItems; - end; - - TfEditorAjustarTraspasos = class(TForm, IEditorAjustarTraspasos) - bAceptar: TButton; - bCancelar: TButton; - JvgWizardHeader1: TJvgWizardHeader; - Bevel1: TBevel; - dsDataSource: TDADataSource; - dxLayoutControl1Group_Root: TdxLayoutGroup; - dxLayoutControl1: TdxLayoutControl; - dxLayoutControl1Group1: TdxLayoutGroup; - dxLayoutControl1Group3: TdxLayoutGroup; - dxLayoutControl1Group5: TdxLayoutGroup; - dxLayoutControl1Item9: TdxLayoutItem; - Bevel2: TBevel; - dxLayoutControl1Item2: TdxLayoutItem; - edtRec38: TcxDBMaskEdit; - dxLayoutControl1Item3: TdxLayoutItem; - edtRec40: TcxDBMaskEdit; - dxLayoutControl1Item4: TdxLayoutItem; - edtRec42: TcxDBMaskEdit; - dxLayoutControl1Item20: TdxLayoutItem; - edtRec44: TcxDBMaskEdit; - dxLayoutControl1Item21: TdxLayoutItem; - edtRec46: TcxDBMaskEdit; - dxLayoutControl1Item22: TdxLayoutItem; - edtRec48: TcxDBMaskEdit; - dxLayoutControl1Item23: TdxLayoutItem; - Label2: TLabel; - dxLayoutControl1Item24: TdxLayoutItem; - edtRecR48: TcxCurrencyEdit; - dxLayoutControl1Item25: TdxLayoutItem; - edtRecR46: TcxCurrencyEdit; - dxLayoutControl1Item26: TdxLayoutItem; - edtRecR44: TcxCurrencyEdit; - dxLayoutControl1Item27: TdxLayoutItem; - edtRecR42: TcxCurrencyEdit; - dxLayoutControl1Item28: TdxLayoutItem; - edtRecR40: TcxCurrencyEdit; - dxLayoutControl1Item29: TdxLayoutItem; - edtRecR38: TcxCurrencyEdit; - dxLayoutControl1Group10: TdxLayoutGroup; - dxLayoutControl1Group11: TdxLayoutGroup; - dxLayoutControl1Group12: TdxLayoutGroup; - dxLayoutControl1Group13: TdxLayoutGroup; - dxLayoutControl1Group14: TdxLayoutGroup; - dxLayoutControl1Group15: TdxLayoutGroup; - dxLayoutControl1Item30: TdxLayoutItem; - Label3: TLabel; - dxLayoutControl1Group16: TdxLayoutGroup; - edtFecha: TcxDBLabel; - dxLayoutControl1Item31: TdxLayoutItem; - edtProducto: TcxDBLabel; - dxLayoutControl1Item32: TdxLayoutItem; - edtColor: TcxDBLabel; - dxLayoutControl1Item33: TdxLayoutItem; - cbEstado: TcxComboBox; - dxLayoutControl1Item5: TdxLayoutItem; - memObservaciones: TcxMemo; - dxLayoutControl1Item6: TdxLayoutItem; - cbContabilizar: TcxCheckBox; - dxLayoutControl1Item8: TdxLayoutItem; - dxLayoutControl1Group17: TdxLayoutGroup; - dxLayoutControl1Group7: TdxLayoutGroup; - dxLayoutControl1Group6: TdxLayoutGroup; - dxLayoutControl1Item7: TdxLayoutItem; - Bevel3: TBevel; - dxLayoutControl1Item1: TdxLayoutItem; - lblCentroOrigen: TLabel; - dxLayoutControl1Item10: TdxLayoutItem; - lblCentroDestino: TLabel; - dxLayoutControl1Group2: TdxLayoutGroup; - procedure FormShow(Sender: TObject); - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure bAceptarClick(Sender: TObject); - private - FItems : IBizTraspasos; - FHayErrores : Boolean; - procedure CargarValores; - procedure SalvarValores; - protected - function GetItems : IBizTraspasos; - procedure SetItems (const AValue : IBizTraspasos); - public - property Items : IBizTraspasos read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleTraspasos; - -{$R *.dfm} - -function ShowEditorAjustarTraspasos (ABizObject : TDADataTableRules) : TModalResult; -var - AEditor: TfEditorAjustarTraspasos; -begin - AEditor := TfEditorAjustarTraspasos.Create(Application); - try - AEditor.Items := (ABizObject as IBizTraspasos); - Result := AEditor.ShowModal; - finally - AEditor.Release; - end; -end; - - -{ TfEditorCambioReferenciaGenerica } - -procedure TfEditorAjustarTraspasos.FormShow(Sender: TObject); -begin - FHayErrores := False; - FItems.DataTable.Open; - - CargarValores; -end; - -function TfEditorAjustarTraspasos.GetItems: IBizTraspasos; -begin - Result := FItems; -end; - -procedure TfEditorAjustarTraspasos.SetItems( - const AValue: IBizTraspasos); -begin - FItems := AValue; - if Assigned(FItems) then - dsDataSource.DataTable := FItems.DataTable; -end; - -procedure TfEditorAjustarTraspasos.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; - AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then - begin - ADone := True; - with AViewInfo do begin - ACanvas.FillRect(Bounds); - ACanvas.DrawTexT(Text, TextAreaBounds, 0); - ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]); - end; - end; -end; - -procedure TfEditorAjustarTraspasos.bAceptarClick(Sender: TObject); -begin - ShowHourglassCursor; - try - SalvarValores; - FItems.DataTable.ApplyUpdates; - finally - HideHourglassCursor; - end; - Close; -end; - -procedure TfEditorAjustarTraspasos.CargarValores; -begin - with FItems.DataTable do - begin - if FieldByName('T38').AsInteger <> FieldByName('TR38').AsInteger then - edtRecR38.Value := FieldByName('TR38').AsInteger - else - edtRecR38.Value := FieldByName('T38').AsInteger; - - if FieldByName('T40').AsInteger <> FieldByName('TR40').AsInteger then - edtRecR40.Value := FieldByName('TR40').AsInteger - else - edtRecR40.Value := FieldByName('T40').AsInteger; - - if FieldByName('T42').AsInteger <> FieldByName('TR42').AsInteger then - edtRecR42.Value := FieldByName('TR42').AsInteger - else - edtRecR42.Value := FieldByName('T42').AsInteger; - - if FieldByName('T44').AsInteger <> FieldByName('TR44').AsInteger then - edtRecR44.Value := FieldByName('TR44').AsInteger - else - edtRecR44.Value := FieldByName('T44').AsInteger; - - if FieldByName('T46').AsInteger <> FieldByName('TR46').AsInteger then - edtRecR46.Value := FieldByName('TR46').AsInteger - else - edtRecR46.Value := FieldByName('T46').AsInteger; - - if FieldByName('T48').AsInteger <> FieldByName('TR48').AsInteger then - edtRecR48.Value := FieldByName('TR48').AsInteger - else - edtRecR48.Value := FieldByName('T48').AsInteger; - - if Length(FieldByName('ESTADO_TRASPASO').AsString) = 0 then - cbEstado.Text := cbEstado.Properties.Items[0] - else - cbEstado.Text := FieldByName('ESTADO_TRASPASO').AsString; - - if FieldByName('TIPO').AsString = 'S' then - begin - lblCentroOrigen.Caption := FieldByName('CENTRO').AsString; - lblCentroDestino.Caption := FieldByName('CENTRO2').AsString; - end - else begin - lblCentroOrigen.Caption := FieldByName('CENTRO2').AsString; - lblCentroDestino.Caption := FieldByName('CENTRO').AsString; - end; - - cbContabilizar.Checked := (FieldByName('CONTABILIZAR').AsString = 'S'); - memObservaciones.Lines.Clear; - if Length(FieldByName('OBSERVACIONES').AsString) > 0 then - memObservaciones.Lines.Add(FieldByName('OBSERVACIONES').AsString) - end; -end; - -procedure TfEditorAjustarTraspasos.SalvarValores; -var - aux : String; -begin - with FItems.DataTable do - begin - Edit; - FieldByName('TR38').AsVariant := edtRecR38.Value; - FieldByName('TR40').AsVariant := edtRecR40.Value; - FieldByName('TR42').AsVariant := edtRecR42.Value; - FieldByName('TR44').AsVariant := edtRecR44.Value; - FieldByName('TR46').AsVariant := edtRecR46.Value; - FieldByName('TR48').AsVariant := edtRecR48.Value; - - if Length(memObservaciones.Lines.Text) > 0 then - FieldByName('OBSERVACIONES').AsString := memObservaciones.Lines.Text - else - FieldByName('OBSERVACIONES').AsVariant := null; - - if cbContabilizar.Checked then - FieldByName('CONTABILIZAR').AsString := 'S' - else - FieldByName('CONTABILIZAR').AsString := 'N'; - - - if cbEstado.Text = cbEstado.Properties.Items[0] then - FieldByName('ESTADO_TRASPASO').AsVariant := null - else - FieldByName('ESTADO_TRASPASO').AsString := cbEstado.Text; - - Post; - end; -end; - - -initialization - RegisterEditor(IBizTraspasos, ShowEditorAjustarTraspasos, etItem); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm deleted file mode 100644 index 98db9b3..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.dfm +++ /dev/null @@ -1,1607 +0,0 @@ -inherited fEditorListaTraspasos: TfEditorListaTraspasos - Left = 271 - Top = 250 - Width = 909 - Height = 659 - Caption = 'Control de traspasos' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 901 - Caption = 'Control de traspasos' - inherited Image1: TImage - Left = 874 - end - end - inherited TBXDock: TTBXDock - Width = 901 - inherited tbxMain: TTBXToolbar - object TBXSubmenuItem2: TTBXSubmenuItem [5] - Caption = 'Cambiar el estado' - DropdownCombo = True - object TBXItem37: TTBXItem - Action = actPendiente - end - object TBXItem36: TTBXItem - Action = actAprobado - end - end - object TBXSeparatorItem16: TTBXSeparatorItem [8] - end - object tbxiExpandir: TTBXItem [16] - Action = actExpandir - end - object tbxiContraer: TTBXItem [17] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [18] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxFiltro: TTBXToolbar - Left = 571 - end - end - inherited StatusBar: TStatusBar - Top = 606 - Width = 901 - end - object JvTabBar1: TJvTabBar [3] - Left = 0 - Top = 76 - Width = 901 - Height = 29 - Cursor = crHandPoint - CloseButton = False - Painter = JvModernTabBarPainter1 - Images = SmallImages - Tabs = < - item - Caption = 'Pendientes' - Selected = True - ImageIndex = 26 - end - item - Caption = 'Aprobados' - ImageIndex = 25 - end - item - Caption = 'Todos' - end> - OnTabSelected = JvTabBar1TabSelected - end - inline frViewListaTraspasos1: TfrViewListaTraspasos [4] - Left = 0 - Top = 105 - Width = 901 - Height = 501 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 901 - Height = 501 - inherited cxGridView: TcxGridDBTableView - inherited cxGridViewAPROBADO: TcxGridDBColumn - IsCaptionAssigned = True - end - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - BuiltInReportLink = True - end - end - end - inherited EditorActionList: TActionList [5] - inherited actNuevo: TAction - Enabled = False - Visible = False - end - inherited actModificar: TAction - Caption = 'Modificar traslado' - OnExecute = actModificarExecute - end - inherited actEliminar: TAction - Enabled = False - Visible = False - end - inherited actDuplicar: TAction - Enabled = False - Visible = False - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - OnUpdate = actAnchoAutoUpdate - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - OnUpdate = actAnchoAutoUpdate - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - OnUpdate = actAnchoAutoUpdate - end - object actPendiente: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Pendiente' - GroupIndex = 1 - ImageIndex = 26 - OnExecute = actPendienteExecute - OnUpdate = actPendienteUpdate - end - object actAprobado: TAction - Category = 'Estado' - AutoCheck = True - Caption = 'Aprobado' - GroupIndex = 1 - ImageIndex = 25 - OnExecute = actAprobadoExecute - OnUpdate = actAprobadoUpdate - end - end - inherited SmallImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001034944415478DA - 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 - 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D - 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A - 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 - 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 - 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE - B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 - F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A - 7A68BA98860000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001D94944415478DA9D9321781B310C859F59580CCB66B6B21886CDF0A0 - 61A061E19595CD6585375678B0D030D0B0D065851E2B74589827E9B26CFDF205 - 6C427767E9E9D7934FE114F5A3F5522AB0A29723D08E0DC61858A3A1B556B812 - EA77717EADF0C3E67CD0DA01F5BDA23612D21A766BA0579742F2813AF74CDDC3 - EE1BC6F1510EA6E9FB22F471E006A8B50A91DB1A7549505B8FCFB3A01B423637 - 1A4CD41A533978EFE8591AD1382011AB2E04D26B41182CD6AB350EC703E6974C - 9DAB14C518606F37C8E5A734F1EE0F85E2F9D3BE301A9B859412AC7554A02539 - E50C7281881A0A7B42E330A11F0CA6D12935CDB93B67C9209A9BC6F08397E238 - 9D9E69A4F09449A82D2D4F5BC2AA61DC39A8E92577460F63447C88D87C5DE3FE - F1C7B938BF37F8872CB561D098A35736A45EE8BBDB6AA8382521E0644922A110 - 02DCAD11FC4CDEF89D472153E3E889B8F4712A923B060B353ECD9D67276701FD - 05561F04719A9398C8778123EF67159F738FF3F23EEE2C796095E20D945208B5 - 8A89764B2B23A3E6294AA2730E4CC8AB7377A9B399DC998BCF6B5C2ECCB24A46 - AE24686804BE038BC1CB0D34C3DCD9CAB60F9FEFC1DFD18EBDD7F2263424F2E9 - 9C572E4237FABAC0B5E062332459634DFE2CF21F02F45FA4F0EF02D7E217D845 - 051D2C6D56E60000000049454E44AE426082} - Name = 'PngImage24' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001B74944415478DA - B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 - BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 - 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 - 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 - F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B - 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 - C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D - 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 - 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C - B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 - D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 - 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 - 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE - F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E - 44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [8] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - inherited dsDataTable: TDADataSource [10] - Top = 136 - end - inherited GridPopupMenu: TPopupMenu - Left = 112 - Top = 128 - object Cambiarelestado1: TMenuItem [3] - Caption = 'Cambiar el estado a...' - object Pendiente1: TMenuItem - Action = actPendiente - AutoCheck = True - GroupIndex = 1 - end - object Enespera1: TMenuItem - Action = actAprobado - AutoCheck = True - GroupIndex = 1 - end - end - end - object JvModernTabBarPainter1: TJvModernTabBarPainter - BorderColor = clWindow - ControlDivideColor = cl3DDkShadow - DividerColor = clBtnShadow - Font.Charset = DEFAULT_CHARSET - Font.Color = clHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - DisabledFont.Charset = DEFAULT_CHARSET - DisabledFont.Color = clGrayText - DisabledFont.Height = -11 - DisabledFont.Name = 'MS Sans Serif' - DisabledFont.Style = [] - SelectedFont.Charset = DEFAULT_CHARSET - SelectedFont.Color = clHighlight - SelectedFont.Height = -11 - SelectedFont.Name = 'MS Sans Serif' - SelectedFont.Style = [fsBold] - Left = 320 - Top = 128 - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas deleted file mode 100644 index 0f6e376..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uEditorListaTraspasos.pas +++ /dev/null @@ -1,308 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uEditorListaTraspasos; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorGridBase, - JvTabBar, uCustomView, uViewBase, uViewGridBase, uViewGrid, Menus, DB, - uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, - JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, - TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, - JvExControls, JvComponent, JvNavigationPane, StdCtrls, - uViewListaTraspasos, uBizTraspasos; - - -type - IEditorListaTraspasos = interface(IEditorGridBase) - ['{729D3CD7-88E7-4D97-A9A0-8E0E1CF74716}'] - function GetItems: IBizTraspasos; - procedure SetItems(const Value: IBizTraspasos); - property Items: IBizTraspasos read GetItems - write SetItems; - end; - - TfEditorListaTraspasos = class(TfEditorGridBase, IEditorListaTraspasos) - JvTabBar1: TJvTabBar; - JvModernTabBarPainter1: TJvModernTabBarPainter; - actPendiente: TAction; - Cambiarelestado1: TMenuItem; - Pendiente1: TMenuItem; - Enespera1: TMenuItem; - TBXSubmenuItem2: TTBXSubmenuItem; - TBXSeparatorItem16: TTBXSeparatorItem; - TBXItem36: TTBXItem; - TBXItem37: TTBXItem; - actAprobado: TAction; - frViewListaTraspasos1: TfrViewListaTraspasos; - procedure FormShow(Sender: TObject); - procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); - procedure actModificarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure actAnchoAutoUpdate(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPendienteExecute(Sender: TObject); - procedure actPendienteUpdate(Sender: TObject); - procedure actAprobadoExecute(Sender: TObject); - procedure actAprobadoUpdate(Sender: TObject); - procedure actEliminarExecute(Sender: TObject); - protected - FItems : IBizTraspasos; - function GetItems: IBizTraspasos; - procedure SetItems(const Value: IBizTraspasos); - procedure CambiarEstado(const NuevoEstado: TInvTraspasoEstado); - function GetModified: Boolean; override; - public - property Items: IBizTraspasos read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses uEditorBase, cxGridTableView, cxGridCustomTableView, cxControls, - uDBSelectionList, cxGridDBTableView, cxGridDBDataDefinitions, - uDataModuleTraspasos, uEditorDBBase; - - -{$R *.dfm} - -constructor TfEditorListaTraspasos.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewListaTraspasos1; -end; - -function TfEditorListaTraspasos.GetItems: IBizTraspasos; -begin - Result := FItems; -end; - -procedure TfEditorListaTraspasos.SetItems( - const Value: IBizTraspasos); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewListaTraspasos1.dsDataSource.DataTable := FItems.DataTable; - end; -end; - -procedure TfEditorListaTraspasos.FormShow(Sender: TObject); -begin - inherited; - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - FItems.DataTable.Active := True; - - with (ViewGrid as IViewListaTraspasos) do - begin - VerPendientes; - ContraerTodo; - GotoFirst; - end; -end; - -procedure TfEditorListaTraspasos.JvTabBar1TabSelected( - Sender: TObject; Item: TJvTabBarItem); -begin - inherited; - ShowHourglassCursor; - Items.DataTable.Active := False; - Application.ProcessMessages; - ViewGrid._FocusedView.BeginUpdate; - Application.ProcessMessages; - try - case Item.Index of - 0 : begin - Items := dmTraspasos.GetItems(titPendiente); - (ViewGrid as IViewListaTraspasos).VerPendientes; - end; - - 1 : begin - Items := dmTraspasos.GetItems(titAprobado); - (ViewGrid as IViewListaTraspasos).VerAprobados; - end; - - 2 : begin - Items := dmTraspasos.GetItems; - (ViewGrid as IViewListaTraspasos).VerTodos; - end; - end; - finally - dsDataTable.DataTable := Items.DataTable; - ViewGrid._FocusedView.EndUpdate; - Items.DataTable.Active := True; - ViewGrid.ContraerTodo; - ViewGrid.GotoFirst; - HideHourglassCursor; - end; -end; - -procedure TfEditorListaTraspasos.actModificarExecute( - Sender: TObject); -begin - ViewGrid._FocusedView.BeginUpdate; - ViewGrid.SaveGridStatus; - try - FItems.Show; - finally - // Que salga el reloj de espera mientras el grid refresca datos y restaura la posición - ShowHourglassCursor; - Application.ProcessMessages; - try - ViewGrid._FocusedView.EndUpdate; - ViewGrid.RestoreGridStatus; - finally - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaTraspasos.actExpandirExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ExpandirTodo; -end; - -procedure TfEditorListaTraspasos.actContraerExecute( - Sender: TObject); -begin - inherited; - ViewGrid.ContraerTodo; -end; - -procedure TfEditorListaTraspasos.actAnchoAutoExecute( - Sender: TObject); -begin - inherited; - ViewGrid.AjustarAncho; -end; - -procedure TfEditorListaTraspasos.actAnchoAutoUpdate( - Sender: TObject); -begin - inherited; - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - and Assigned(ViewGrid) - else - (Sender as TAction).Enabled := False; -end; - -procedure TfEditorListaTraspasos.actModificarUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Sender as TAction).Enabled and - (ViewGrid._FocusedView.Controller.SelectedRecordCount < 2) and - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)) -end; - -procedure TfEditorListaTraspasos.actRefrescarExecute( - Sender: TObject); -begin - inherited; - ViewGrid.GotoFirst; -end; - -procedure TfEditorListaTraspasos.actPendienteExecute( - Sender: TObject); -begin - CambiarEstado(titPendiente); -end; - -procedure TfEditorListaTraspasos.actPendienteUpdate( - Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = titPendiente); -end; - -procedure TfEditorListaTraspasos.actAprobadoExecute( - Sender: TObject); -begin - CambiarEstado(titAprobado); -end; - -procedure TfEditorListaTraspasos.actAprobadoUpdate(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := - (Assigned(ViewGrid._FocusedView.Controller.FocusedRow) and - not (ViewGrid._FocusedView.Controller.FocusedRow.Expandable)); - - (Sender as TAction).Checked := Assigned(FItems) and - (FItems.Estado = titAprobado); -end; - -procedure TfEditorListaTraspasos.CambiarEstado( - const NuevoEstado: TInvTraspasoEstado); -var - ARecord: TcxCustomGridRecord; - i : Integer; - bm : TBookMark ; -begin - if Assigned(FItems) and Assigned(ViewGrid) and (ViewGrid.MultiSelect) then - begin - ShowHourglassCursor; - bm := FItems.DataTable.GetBookMark; - FItems.DataTable.DisableControls; - try - for i := 0 to ViewGrid._FocusedView.Controller.SelectedRecordCount-1 do - begin - ARecord := ViewGrid._FocusedView.Controller.SelectedRecords[i]; - if (ARecord is TcxGridDataRow) then - begin - (ARecord as TcxGridDataRow).Focused := True; - FItems.Edit; - FItems.Estado := NuevoEstado; - FItems.Post; - end; - end; - FItems.DataTable.ApplyUpdates; - FItems.DataTable.GotoBookMark(bm); - finally - FItems.DataTable.FreeBookMark(BM); - FItems.DataTable.EnableControls; - ViewGrid._FocusedView.Controller.ClearSelection; - HideHourglassCursor; - end; - end; -end; - -procedure TfEditorListaTraspasos.actEliminarExecute( - Sender: TObject); -begin -// inherited; -end; - - -function TfEditorListaTraspasos.GetModified: Boolean; -begin - Result := False; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm deleted file mode 100644 index d56401d..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.dfm +++ /dev/null @@ -1,126 +0,0 @@ -object ModuleTraspasos: TModuleTraspasos - OldCreateOrder = True - DefaultAction = actTraspasos - Description = 'Control de traspasos entre centros' - ModuleMenu = MainMenu - ModuleName = 'Control de traspasos entre centros' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.3' - Left = 779 - Top = 651 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001A44944415478DA - 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A - 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C - 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433 - A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10 - 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB - E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786 - 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3 - CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F - 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB - 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6 - A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348 - A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C - 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5 - 4BB30B8819120000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actTraspasos: TAction - Category = 'Inventario' - Caption = 'Control de traspasos' - ImageIndex = 0 - OnExecute = actTraspasosExecute - end - end - object MainMenu: TMainMenu - Tag = 500 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Inventario' - GroupIndex = 1 - ImageIndex = 4 - object Controldeventasenproceso1: TMenuItem - Tag = 310 - Action = actTraspasos - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000013A4944415478DA - 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB - 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3 - F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788 - F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21 - 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A - 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48 - 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569 - 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377 - 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103 - 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000 - 49454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF - 940000000970485973000017120000171201679FD252000001B84944415478DA - 63FCFFFF3F033D0123C8C22BA552CE40F61E026A5D8851A3D3FD6C2F3116FE57 - 6DA9616067CFC2AAE8E7CF690CB3635B185217135693B3EA19235116025D06D6 - 84023E7F6260F8F29961FA012B06966DA920C3885143A6855083183E030D3BEB - 8EDD42EC6AC8B010C920B0EB6F86605A885B0D8916A219C4F0F50BC3F42709A8 - 16E2574382856F3A300C62F8F29561FA876C848584D59060E1CD1206865FBF50 - 0C62F80674FDAF72848584D5106721285B4C5F2E8F5321C83050B620A486580B - 9D0F3CC49FA91DE4195C8851339AF14733FE08CEF8161333184E44D4E3CCF88C - 7AD3FEFFBF94C588D3425232FEC2238A60B1789BFB186A60161AA65CFB7FE1D4 - 0106744B49C9F8A54035DD73F9F630E4C5AB314C5A780B453EF9930B03480E19 - 383B0B31F4B6AF43B1949194360DC8D520CBAE3E79C3A02D2302174FCA9E0536 - 14268F0CA6AF38C270FAF035B8A5445B088A937953D3C096BDFCFC1D2CF6E6F3 - 2F86B7F79EC30D447610480D481E0490D590E44390A51EF1CE70436000DDC27D - D71F63B58CE42085596A6AAB05360419C02C0425141880A9233B0E912D855942 - AA1AB22C841948C8429CF9909E80EE16020010A9C8E7BBF6D9B3000000004945 - 4E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas deleted file mode 100644 index cb6aed3..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uPluginControllerTraspasos.pas +++ /dev/null @@ -1,72 +0,0 @@ -unit uPluginControllerTraspasos; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList, uBizTraspasos; - -type - IMCTraspasos = interface(IInterface) - ['{FF27B168-B706-414A-B584-1A6E4C984BDC}'] - end; - - TModuleTraspasos = class(TModuleController, IMCTraspasos) - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - SmallImages: TPngImageList; - actTraspasos: TAction; - Controldeventasenproceso1: TMenuItem; - procedure actTraspasosExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uDataModuleTraspasos, - uEditorListaTraspasos; - -function GetModule : TModuleController; -begin - Result := TModuleTraspasos.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleTraspasos.actTraspasosExecute(Sender: TObject); -var - aControl: IBizTraspasos; - aObj: IEditorListaTraspasos; -begin - aControl := dmTraspasos.GetItems(titPendiente); - aObj := TfEditorListaTraspasos.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleTraspasos); - -finalization - UnRegisterModuleClass(TModuleTraspasos); - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm deleted file mode 100644 index db977c5..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.dfm +++ /dev/null @@ -1,514 +0,0 @@ -inherited frViewListaTraspasos: TfrViewListaTraspasos - Width = 676 - Height = 486 - inherited cxGrid: TcxGrid - Width = 676 - Height = 486 - inherited cxGridView: TcxGridDBTableView - OnMouseDown = cxGridViewMouseDown - FilterBox.Visible = fvNever - OnCellDblClick = cxGridViewCellDblClick - DataController.KeyFieldNames = 'Fecha;Centro;Centro2;Codigo;Color;Tipo;' - OptionsCustomize.ColumnGrouping = True - OptionsSelection.MultiSelect = True - OptionsView.Footer = False - OptionsView.GridLines = glHorizontal - OptionsView.GroupFooters = gfVisibleWhenExpanded - OptionsView.GroupRowStyle = grsOffice11 - Preview.Column = cxGridViewObservaciones - Preview.Visible = True - Styles.Footer = cxStyleFooter - object cxGridViewAPROBADO: TcxGridDBColumn - DataBinding.FieldName = 'APROBADO' - PropertiesClassName = 'TcxImageComboBoxProperties' - Properties.Alignment.Horz = taLeftJustify - Properties.Images = SmallImages - Properties.Items = < - item - Description = 'Aprobado' - ImageIndex = 0 - Value = 'S' - end - item - Description = 'Pendiente' - ImageIndex = 1 - Value = 'N' - end> - Properties.ReadOnly = True - Properties.ShowDescriptions = False - MinWidth = 15 - Width = 34 - IsCaptionAssigned = True - end - object cxGridViewFECHA: TcxGridDBColumn - DataBinding.FieldName = 'FECHA' - SortIndex = 1 - SortOrder = soAscending - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 87 - end - object cxGridViewCENTRO: TcxGridDBColumn - DataBinding.FieldName = 'CENTRO' - Visible = False - end - object cxGridViewESTADO_TRASPASO: TcxGridDBColumn - DataBinding.FieldName = 'ESTADO_TRASPASO' - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 59 - end - object cxGridViewFILIAL: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'FILIAL' - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 296 - end - object cxGridViewCENTRO2: TcxGridDBColumn - DataBinding.FieldName = 'CENTRO2' - Visible = False - end - object cxGridViewTIPO: TcxGridDBColumn - Caption = 'E/S' - DataBinding.FieldName = 'TIPO' - PropertiesClassName = 'TcxImageComboBoxProperties' - Properties.Images = PngImageListTipo - Properties.Items = < - item - Description = 'Entrada' - ImageIndex = 0 - Value = 'E' - end - item - Description = 'Salida' - ImageIndex = 1 - Tag = 1 - Value = 'S' - end> - Properties.Revertable = True - Properties.ShowDescriptions = False - Width = 51 - end - object cxGridViewFILIAL2: TcxGridDBColumn - Caption = 'Centro 2' - DataBinding.FieldName = 'FILIAL2' - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 328 - end - object cxGridViewCONTABILIZAR: TcxGridDBColumn - DataBinding.FieldName = 'CONTABILIZAR' - Visible = False - Width = 72 - end - object cxGridViewCODIGO: TcxGridDBColumn - DataBinding.FieldName = 'CODIGO' - Visible = False - OnGetDataText = cxGridViewCODIGOGetDataText - OnGetDisplayText = cxGridViewCODIGOGetDisplayText - GroupIndex = 0 - Width = 53 - end - object cxGridViewPRODUCTO: TcxGridDBColumn - DataBinding.FieldName = 'PRODUCTO' - Visible = False - SortIndex = 0 - SortOrder = soAscending - end - object cxGridViewCOLOR: TcxGridDBColumn - DataBinding.FieldName = 'COLOR' - Visible = False - end - object cxGridViewT38: TcxGridDBColumn - DataBinding.FieldName = 'T38' - Visible = False - end - object cxGridViewT40: TcxGridDBColumn - DataBinding.FieldName = 'T40' - Visible = False - end - object cxGridViewT42: TcxGridDBColumn - DataBinding.FieldName = 'T42' - Visible = False - end - object cxGridViewT44: TcxGridDBColumn - DataBinding.FieldName = 'T44' - Visible = False - end - object cxGridViewT46: TcxGridDBColumn - DataBinding.FieldName = 'T46' - Visible = False - end - object cxGridViewT48: TcxGridDBColumn - DataBinding.FieldName = 'T48' - Visible = False - end - object cxGridViewTOTAL: TcxGridDBColumn - DataBinding.FieldName = 'TOTAL' - Visible = False - end - object cxGridViewTR38: TcxGridDBColumn - Caption = '38' - DataBinding.FieldName = 'TR38' - OnGetDisplayText = cxGridViewTR38GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 59 - end - object cxGridViewTR40: TcxGridDBColumn - Caption = '40' - DataBinding.FieldName = 'TR40' - OnGetDisplayText = cxGridViewTR40GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 57 - end - object cxGridViewTR42: TcxGridDBColumn - Caption = '42' - DataBinding.FieldName = 'TR42' - OnGetDisplayText = cxGridViewTR42GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 59 - end - object cxGridViewTR44: TcxGridDBColumn - Caption = '44' - DataBinding.FieldName = 'TR44' - OnGetDisplayText = cxGridViewTR44GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 55 - end - object cxGridViewTR46: TcxGridDBColumn - Caption = '46' - DataBinding.FieldName = 'TR46' - OnGetDisplayText = cxGridViewTR46GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 60 - end - object cxGridViewTR48: TcxGridDBColumn - Caption = '48' - DataBinding.FieldName = 'TR48' - OnGetDisplayText = cxGridViewTR48GetDisplayText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 57 - end - object cxGridViewTOTAL_RECT: TcxGridDBColumn - DataBinding.FieldName = 'TOTAL_RECT' - OnGetDataText = cxGridViewTOTAL_RECTGetDataText - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - Width = 59 - end - object cxGridViewObservaciones: TcxGridDBColumn - DataBinding.FieldName = 'OBSERVACIONES' - PropertiesClassName = 'TcxMemoProperties' - Styles.OnGetContentStyle = cxGridViewFECHAStylesGetContentStyle - end - end - end - inherited dsDataSource: TDADataSource - DataTable = dmTraspasos.tbl_TraspasosPendientes - Top = 120 - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint, peoReportDesign] - object dxComponentPrinterLink1: TdxGridReportLink - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageFooter.Font.Color = clBlack - PrinterPage.PageFooter.Font.Height = -12 - PrinterPage.PageFooter.Font.Name = 'Tahoma' - PrinterPage.PageFooter.Font.Style = [] - PrinterPage.PageFooter.LeftTitle.Strings = ( - 'VARELA IMAGEN Y DISE'#209'O S.L.') - PrinterPage.PageFooter.RightTitle.Strings = ( - '[Page #] de [Total Pages]') - PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET - PrinterPage.PageHeader.Font.Color = clBlack - PrinterPage.PageHeader.Font.Height = -15 - PrinterPage.PageHeader.Font.Name = 'Tahoma' - PrinterPage.PageHeader.Font.Style = [] - PrinterPage.PageHeader.LeftTitle.Strings = ( - 'CONTROL DE TRASPASOS') - PrinterPage.PageHeader.RightTitle.Strings = ( - '[Date & Time Printed]') - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage.ScaleMode = smFit - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 38877.461868113420000000 - ShrinkToPageWidth = True - OptionsCards.Shadow.Depth = 0 - OptionsExpanding.ExpandGroupRows = True - OptionsFormatting.SuppressBackgroundBitmaps = True - OptionsFormatting.UseNativeStyles = True - OptionsFormatting.ConsumeSelectionStyle = True - OptionsLevels.Unwrap = True - OptionsRefinements.TransparentGraphics = True - OptionsSize.AutoWidth = True - OptionsView.Caption = False - OptionsView.ExpandButtons = False - OptionsView.FilterBar = False - StyleRepository = cxStyleRepositoryInforme - Styles.Content = cxStyleContentInforme - Styles.Footer = cxStyleFooterInforme - Styles.Group = cxStyleGroupInforme - Styles.Header = cxStyleHeaderInforme - Styles.Preview = cxStyleObservacionesInforme - Styles.Selection = cxStyleSelectionInforme - OnInitializeCell = dxComponentPrinterLink1InitializeCell - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleSubtotal: TcxStyle - AssignedValues = [svColor] - Color = 14803425 - end - object cxStyleCantidadRectificada: TcxStyle - AssignedValues = [svTextColor] - TextColor = 2129152 - end - object cxStyleNoContabilizar: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsStrikeOut] - TextColor = clGray - end - object cxStyleFooter: TcxStyle - AssignedValues = [svColor] - Color = clWindow - end - object cxStyleCentro2: TcxStyle - AssignedValues = [svTextColor] - TextColor = 6579300 - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000001004944415478DACD92A152C4301086FF3A1C7BAE8E3C427095952757 - D611890C4F401E216F4025F22432B232F2E4CA3AB6AEEE480F8368872908F867 - 32BB93C97EBBF9930ABF54F5BF00FC18856A7B676FF4701A32816CA69A6E69D6 - FB3E72FE1ED0C50B3B872C0A390B8808B631902C5045590A9D15A9E76A1DE07B - 87192FDC3D94C3136454989A50784B35D290C0C91DC208DDF4A0ED4299C2A380 - 3EBB96B88044D2C46FCE7C2D5E07B818689467C3E13A723EA72B2CBFBA55C357 - 375B0E17D33072CE13275FBAAA6243EB8063E88B5DECF464FC209BC59B007B0C - 54EEFE5ED2274921EE062C32AD0FCBC3488AF66780C69B1296CF636488FB3CD8 - A3BF077C00CC5678110543289A0000000049454E44AE426082} - Name = 'PngImage25' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000FE4944415478DAA5D22157C3301007F07FDD1CFD060D0EB7E270544E - 866F10399939DC8AAB5B71C87E8448E4E1E6086EF27091899B2B5734F4A5DBBD - 1793E4FD7277B9025746F1D72675B656C0678C119816E26DFD469C0D7067C752 - 29DC9C2312331CD1B72156D9807F36E35A001C9D3CCEF80848CD3196F9C0568F - EB3B016840920A5C88C99C900FD056932AF15879429232EC092F4340BB04B06A - 8543E51DBE248336E0DE05F86CE01769D4589F1983F4D1FE93FE2CD03F286BC0 - 07CBD849FAFD62600AA79B513B9ABD337B38349205717F11E03BDB4AE17BFFEE - 9E34B15B0C4CD358C91CBC32E41B63B118701BD532C77DB9C2CEF878591373E2 - 6AE007B3FF721173EAE95F0000000049454E44AE426082} - Name = 'PngImage26' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 395 - Top = 80 - Bitmap = {} - end - object cxStyleRepositoryInforme: TcxStyleRepository - Left = 112 - Top = 48 - object cxStyleContentInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleFooterInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleGroupInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleHeaderInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = 14803425 - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - TextColor = clBlack - end - object cxStyleSelectionInforme: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - object cxStyleObservacionesInforme: TcxStyle - AssignedValues = [svFont, svTextColor] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - TextColor = clBlack - end - end - object PngImageListTipo: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000000FD4944415478DA63FCFFFF3F0325 - 8091AA06585A5A622860156DFAFFFB751D23B2D8F1E3C7893300A499E1FF1F86 - DF6F9A483700A439BDC49C6166D72186DF6F5B493300A6F9DBD79F0C8BA71C65 - F8FFFF2F501488FFFD01D38777C432E2340059F3D72F3F18BE7D01D25F7F307C - F9F483E1F3A7EF0CB72EDC6138B22311BB01767EBBF16A7EF3EA13C3BB27CF18 - 8EEC4AC5E302E1EAFF02628C0C16B6EA0C270EDFC48895B74F1E311CDD9589DB - 001060112CF92F28C10166BF7FF68EE13FC31FB0FFC13430568EEECEC56F00D8 - 10FEDCFF8252FC0CEF9EBD62F8FB711679E980993FED3FC8E6BF9FE791670008 - 30F1C6FDFFF779117106900306DE00006A32C2E1ABAC85280000000049454E44 - AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000FE4944415478DA - 63FCFFFF3F03258091AA06303232A248F2ACE2F8FF25EC0723BA26143DF80CE0 - 5EC2FEFFFFAFFF0CDF927E31926500D73CB6FFED4E450CE51B7B197EE4FF6624 - 6800EF5ACEFF0CFF800A80B682F14F06860ABB6486F7DF3F314CDFB992E167F5 - 1F46FC06ACE6FCBFCCBB8FE1C3D78F0CEFBF7D84D040CD6F3EBF6778F3E51DC3 - DE6367187EB7FF61C46900CF528EFFD3DD1AB06A06E12F3FBE32DC3EF39CE1CF - 94BF8C580DE09ECF0EF6F3F4FD8B516383831BAEF9EFD47FB85DC0350312EA0C - E03000FAF537038392BC38580EA699A45860AD64F9AFAC268EA2992403588A98 - FFFFFFF91F45334906306733FD47D78CD70072C0C01B0000F574D6E150544812 - 0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 451 - Top = 80 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas deleted file mode 100644 index 6c05e5e..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Cliente/uViewListaTraspasos.pas +++ /dev/null @@ -1,554 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uViewListaTraspasos; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, DBTables, cxGridLevel, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid, uBizTraspasos, dxPSGlbl, - dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, - dxPSFillPatterns, dxPSEdgePatterns, cxCalendar, cxTextEdit, - cxCurrencyEdit, dxPSCore, uDADataTable, StdCtrls, cxGridBandedTableView, - cxGridDBBandedTableView, cxImageComboBox, ImgList, PngImageList, - dxPScxCommon, dxPScxGridLnk, cxMemo; - -type - IViewListaTraspasos = interface(IViewGrid) - ['{E4401ABB-E95D-43AC-9155-BA57DC2B88C2}'] - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - end; - - TfrViewListaTraspasos = class(TfrViewGrid, IViewListaTraspasos) - cxStyleSubtotal: TcxStyle; - SmallImages: TPngImageList; - cxStyleCantidadRectificada: TcxStyle; - cxStyleNoContabilizar: TcxStyle; - cxStyleFooter: TcxStyle; - dxComponentPrinterLink1: TdxGridReportLink; - cxStyleRepositoryInforme: TcxStyleRepository; - cxStyleContentInforme: TcxStyle; - cxStyleFooterInforme: TcxStyle; - cxStyleGroupInforme: TcxStyle; - cxStyleHeaderInforme: TcxStyle; - cxStyleSelectionInforme: TcxStyle; - cxGridViewTIPO: TcxGridDBColumn; - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewFILIAL: TcxGridDBColumn; - cxGridViewCENTRO2: TcxGridDBColumn; - cxGridViewFILIAL2: TcxGridDBColumn; - cxGridViewAPROBADO: TcxGridDBColumn; - cxGridViewESTADO_TRASPASO: TcxGridDBColumn; - cxGridViewCONTABILIZAR: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewTR38: TcxGridDBColumn; - cxGridViewTR40: TcxGridDBColumn; - cxGridViewTR42: TcxGridDBColumn; - cxGridViewTR44: TcxGridDBColumn; - cxGridViewTR46: TcxGridDBColumn; - cxGridViewTR48: TcxGridDBColumn; - cxGridViewTOTAL_RECT: TcxGridDBColumn; - cxGridViewT38: TcxGridDBColumn; - cxGridViewT40: TcxGridDBColumn; - cxGridViewT42: TcxGridDBColumn; - cxGridViewT44: TcxGridDBColumn; - cxGridViewT46: TcxGridDBColumn; - cxGridViewT48: TcxGridDBColumn; - cxGridViewTOTAL: TcxGridDBColumn; - PngImageListTipo: TPngImageList; - cxStyleCentro2: TcxStyle; - cxGridViewObservaciones: TcxGridDBColumn; - cxStyleObservacionesInforme: TcxStyle; - procedure cxGridViewMouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridViewCellDblClick(Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); - procedure cxGridBandedViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridViewTR38GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR40GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR42GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR44GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR46GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR48GetDisplayText(Sender: TcxCustomGridTableItem; - ARecord: TcxCustomGridRecord; var AText: String); - procedure cxGridViewTR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewTR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewTR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewTR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewTR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewTR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewCODIGOGetDataText(Sender: TcxCustomGridTableItem; - ARecordIndex: Integer; var AText: String); - procedure cxGridViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); - procedure cxGridViewTOTAL_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); - procedure cxGridViewFECHAStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); - protected - FTipo : String; - FNivelFiltrado : TcxFilterCriteriaItemList; - procedure FilterChanged(Sender: TObject); override; - public - procedure Preview; override; - procedure Print; override; - procedure PrintSetup; override; - procedure VerPendientes; - procedure VerAprobados; - procedure VerTodos; - end; - - -implementation - -uses - uDataModuleTraspasos, DateUtils, cxGridDBDataDefinitions, - uViewGridBase, cxGridRows; - -{$R *.dfm} - -procedure TfrViewListaTraspasos.cxGridViewMouseDown( - Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, - Y: Integer); -var - HT: TcxCustomGridHitTest; - ALevelIndex, AGroupIndex, I, AIndex: Integer; - AList: TList; - DC: TcxGridDBDataController; -begin - inherited; - HT := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(X, Y); - if (HT is TcxGridRecordHitTest) and not (HT is TcxGridRecordCellHitTest) - and not (HT is TcxGridExpandButtonHitTest) then - begin - DC := TcxGridDBTableView(TcxGridSite(Sender).GridView).DataController; - AList := TList.Create; - ALevelIndex := TcxGridRecordHitTest(HT).GridRecord.Level; - if ALevelIndex > 0 then - begin - ShowHourglassCursor; - TcxGridDBTableView(TcxGridSite(Sender).GridView).BeginUpdate; - try - AGroupIndex := DC.Groups.DataGroupIndexByRowIndex[TcxGridRecordHitTest(HT).GridRecord.Index]; - DC.Groups.LoadRecordIndexes(AList, AGroupIndex); - for I := 0 to AList.Count - 1 do - begin - AIndex := DC.GetRowIndexByRecordIndex(Integer(AList[I]), True); - DC.SelectRows(AIndex, AIndex); - end; - finally - FreeAndNil(AList); - TcxGridDBTableView(TcxGridSite(Sender).GridView).EndUpdate; - HideHourglassCursor; - end; - end; - end; -end; - -procedure TfrViewListaTraspasos.VerAprobados; -begin - FTipo := 'S'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaTraspasos.VerPendientes; -begin - FTipo := 'N'; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); -end; - -procedure TfrViewListaTraspasos.VerTodos; -begin - FTipo := ''; - FreeAndNil(FNivelFiltrado); - FilterChanged(self); - cxGridViewAPROBADO.Visible := True; -end; - -procedure TfrViewListaTraspasos.cxGridBandedViewRR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewCellDblClick( - Sender: TcxCustomGridTableView; - ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; - AShift: TShiftState; var AHandled: Boolean); -begin - inherited; - if Assigned(FOnDblClick) then - FOnDblClick(Sender); -end; - -procedure TfrViewListaTraspasos.Preview; -begin - inherited; -// dxComponentPrinterLink1.OnInitializeCell := dxComponentPrinterLink1InitializeCell; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewListaTraspasos.Print; -begin - inherited; - dxComponentPrinterLink1.Print(True, nil); -end; - -procedure TfrViewListaTraspasos.PrintSetup; -begin - inherited; - dxComponentPrinterLink1.PageSetup; -end; - -procedure TfrViewListaTraspasos.cxGridBandedViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - AText := StringReplace(AText, 'CODIGO : ', '', [rfReplaceAll, rfIgnoreCase]) -end; - -procedure TfrViewListaTraspasos.cxGridViewTR38GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT38.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR40GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT40.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR42GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT42.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR44GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT44.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR46GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT46.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR48GetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -var - AStr : String; -begin - inherited; - if not Assigned( ARecord ) then - Exit; - - AStr := VarToStrDef(ARecord.Values[cxGridViewT48.Index], ''); - if not ((AStr = '') and (AText = '0')) and (AStr <> AText) then - begin - if Length(AStr) = 0 then - AStr := '0'; - AText := AText + ' (' + AStr + ')'; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR38StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT38.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR40StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT40.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR42StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT42.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR44StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT44.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR46StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT46.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewTR48StylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -begin - inherited; - if Assigned(ARecord) and Assigned(AItem) then - begin - if ARecord.Values[AItem.Index] <> ARecord.Values[cxGridViewT48.Index] then - AStyle := cxStyleCantidadRectificada; - end; -end; - -procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Val1, Val2: string; -begin - inherited; - - Val1 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewPRODUCTO.Index]; - Val2 := Sender.GridView.DataController.DisplayTexts[ARecordIndex, cxGridViewCOLOR.Index]; - AText := 'Producto: ' + Val1 + ' - Color: ' + Val2; -end; - -procedure TfrViewListaTraspasos.cxGridViewCODIGOGetDisplayText( - Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; - var AText: String); -begin - inherited; - AText := StringReplace(AText, 'Código : ', '', [rfReplaceAll, rfIgnoreCase]) -end; - -procedure TfrViewListaTraspasos.cxGridViewTOTAL_RECTGetDataText( - Sender: TcxCustomGridTableItem; ARecordIndex: Integer; - var AText: String); -var - Total : Double; -begin - inherited; - - Total := 0; - with Sender.GridView.DataController do - begin - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR38.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR40.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR42.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR44.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR46.Index], 0); - Total := Total + StrToFloatDef(DisplayTexts[ARecordIndex, cxGridViewTR48.Index], 0); - end; - AText := FloatToStr(Total); -end; - -procedure TfrViewListaTraspasos.cxGridViewFECHAStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -var - aux : string; -begin - inherited; - if Assigned(ARecord) then - begin - aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; - if aux = 'N' then - AStyle := cxStyleNoContabilizar - end; -end; - -procedure TfrViewListaTraspasos.dxComponentPrinterLink1InitializeCell( - Sender: TdxGridReportLink; AView: TcxCustomGridTableView; - ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; - AnItem: TAbstractdxReportCellData); -var - aux : string; -begin - inherited; - if Assigned(ARecord) then - begin - aux := ARecord.Values[cxGridViewCONTABILIZAR.Index]; - if aux = 'N' then - begin - AnItem.Font.Style := cxStyleNoContabilizar.Font.Style; - AnItem.Font.Color := cxStyleNoContabilizar.Font.Color; - end; - end; -end; - -procedure TfrViewListaTraspasos.FilterChanged(Sender: TObject); -var - AItemList: TcxFilterCriteriaItemList; -begin - inherited; - - cxGridView.DataController.Filter.BeginUpdate; - AItemList := cxGridView.DataController.Filter.Root; - - if (Length(FTIPO) > 0) then - begin - FNivelFiltrado := AItemList.AddItemList(fboAnd); - FNivelFiltrado.AddItem(cxGridViewAPROBADO, foEqual, FTIPO, FTIPO); - end; - - if cxGridView.DataController.Filter.IsEmpty - then cxGridView.DataController.Filter.Active := False - else cxGridView.DataController.Filter.Active := True; - - cxGridView.DataController.Filter.EndUpdate; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas b/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas deleted file mode 100644 index cd4df37..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Reglas/uBizTraspasos.pas +++ /dev/null @@ -1,77 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uBizTraspasos; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList; - - -const - BIZ_TRASPASOS = 'Client.Traspasos'; - -type - TInvTraspasoEstado = (titPendiente, titAprobado); - - IBizTraspasos = interface(IDAStronglyTypedDataTable) //ITraspasos) - ['{91E16E44-2A50-4459-A758-B14948E0A134}'] - procedure Show; - procedure SetEstado(const AValue : TInvTraspasoEstado); - function GetEstado : TInvTraspasoEstado ; - property Estado : TInvTraspasoEstado read GetEstado write SetEstado; - end; - - - TBizTraspasosDataTableRules = class(TDADataTableRules, IBizTraspasos) //TTraspasosDataTableRules, IBizTraspasos, - protected - procedure SetEstado(const AValue : TInvTraspasoEstado); - function GetEstado : TInvTraspasoEstado ; - public - procedure Show; - property Estado : TInvTraspasoEstado read GetEstado write SetEstado; - end; - - -implementation - -uses - uEditorUtils, uDataModuleTraspasos; - -{ TBizRecepcionDataTableRules } - -function TBizTraspasosDataTableRules.GetEstado: TInvTraspasoEstado; -begin - if DataTable.FieldByName('APROBADO').AsString = 'S' then - Result := titAprobado - else - Result := titPendiente -end; - -procedure TBizTraspasosDataTableRules.SetEstado( - const AValue: TInvTraspasoEstado); -begin - case AValue of - titPendiente : DataTable.FieldByName('APROBADO').AsString := 'N'; - titAprobado : DataTable.FieldByName('APROBADO').AsString := 'S'; - else - DataTable.FieldByName('APROBADO').AsString := 'N'; - end; -end; - -procedure TBizTraspasosDataTableRules.Show; -begin - ShowEditor(IBizTraspasos, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_TRASPASOS, TBizTraspasosDataTableRules); - -end. - diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm deleted file mode 100644 index 8e32c08..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.dfm +++ /dev/null @@ -1,1293 +0,0 @@ -object srvTraspasos: TsrvTraspasos - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schTraspasos - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 300 - Width = 300 - object DABINAdapter: TDABINAdapter - Left = 40 - Top = 96 - end - object schTraspasos: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = DADataDictionary1 - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_TRASPASOS' - SQL = - 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + - 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + - 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + - ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + - 'OM'#10' RDX_V_CONTROL_TRASPASOS' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'TIPO' - TableField = 'TIPO' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CENTRO2' - TableField = 'CENTRO2' - end - item - DatasetField = 'FILIAL2' - TableField = 'FILIAL2' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'T38' - TableField = 'T38' - end - item - DatasetField = 'T40' - TableField = 'T40' - end - item - DatasetField = 'T42' - TableField = 'T42' - end - item - DatasetField = 'T44' - TableField = 'T44' - end - item - DatasetField = 'T46' - TableField = 'T46' - end - item - DatasetField = 'T48' - TableField = 'T48' - end - item - DatasetField = 'TOTAL' - TableField = 'TOTAL' - end - item - DatasetField = 'TR38' - TableField = 'TR38' - end - item - DatasetField = 'TR40' - TableField = 'TR40' - end - item - DatasetField = 'TR42' - TableField = 'TR42' - end - item - DatasetField = 'TR44' - TableField = 'TR44' - end - item - DatasetField = 'TR46' - TableField = 'TR46' - end - item - DatasetField = 'TR48' - TableField = 'TR48' - end - item - DatasetField = 'TOTAL_RECT' - TableField = 'TOTAL_RECT' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'ESTADO_TRASPASO' - TableField = 'ESTADO_TRASPASO' - end - item - DatasetField = 'OBSERVACIONES' - TableField = 'OBSERVACIONES' - end - item - DatasetField = 'CONTABILIZAR' - TableField = 'CONTABILIZAR' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end> - end> - Name = 'Traspasos' - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_TIPO' - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHA' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO' - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL' - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO2' - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL2' - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_APROBADO' - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - DictionaryEntry = 'Traspasos_OBSERVACIONES' - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_CONTABILIZAR' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHACAMBIO' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Traspasos_CODIGO' - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Traspasos_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Traspasos_COLOR' - end - item - Name = 'T38' - DataType = datFloat - DictionaryEntry = 'Traspasos_T38' - end - item - Name = 'T40' - DataType = datFloat - DictionaryEntry = 'Traspasos_T40' - end - item - Name = 'T42' - DataType = datFloat - DictionaryEntry = 'Traspasos_T42' - end - item - Name = 'T44' - DataType = datFloat - DictionaryEntry = 'Traspasos_T44' - end - item - Name = 'T46' - DataType = datFloat - DictionaryEntry = 'Traspasos_T46' - end - item - Name = 'T48' - DataType = datFloat - DictionaryEntry = 'Traspasos_T48' - end - item - Name = 'TOTAL' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL' - end - item - Name = 'TR38' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR38' - end - item - Name = 'TR40' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR40' - end - item - Name = 'TR42' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR42' - end - item - Name = 'TR44' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR44' - end - item - Name = 'TR46' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR46' - end - item - Name = 'TR48' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR48' - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL_RECT' - end> - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_TRASPASOS' - SQL = - 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + - 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + - 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + - ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + - 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'N'#39 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'TIPO' - TableField = 'TIPO' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CENTRO2' - TableField = 'CENTRO2' - end - item - DatasetField = 'FILIAL2' - TableField = 'FILIAL2' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'T38' - TableField = 'T38' - end - item - DatasetField = 'T40' - TableField = 'T40' - end - item - DatasetField = 'T42' - TableField = 'T42' - end - item - DatasetField = 'T44' - TableField = 'T44' - end - item - DatasetField = 'T46' - TableField = 'T46' - end - item - DatasetField = 'T48' - TableField = 'T48' - end - item - DatasetField = 'TOTAL' - TableField = 'TOTAL' - end - item - DatasetField = 'TR38' - TableField = 'TR38' - end - item - DatasetField = 'TR40' - TableField = 'TR40' - end - item - DatasetField = 'TR42' - TableField = 'TR42' - end - item - DatasetField = 'TR44' - TableField = 'TR44' - end - item - DatasetField = 'TR46' - TableField = 'TR46' - end - item - DatasetField = 'TR48' - TableField = 'TR48' - end - item - DatasetField = 'TOTAL_RECT' - TableField = 'TOTAL_RECT' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'ESTADO_TRASPASO' - TableField = 'ESTADO_TRASPASO' - end - item - DatasetField = 'OBSERVACIONES' - TableField = 'OBSERVACIONES' - end - item - DatasetField = 'CONTABILIZAR' - TableField = 'CONTABILIZAR' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end> - end> - Name = 'TraspasosPendientes' - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_TIPO' - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHA' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO' - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL' - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO2' - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL2' - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_APROBADO' - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - DictionaryEntry = 'Traspasos_OBSERVACIONES' - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_CONTABILIZAR' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHACAMBIO' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Traspasos_CODIGO' - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Traspasos_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Traspasos_COLOR' - end - item - Name = 'T38' - DataType = datFloat - DictionaryEntry = 'Traspasos_T38' - end - item - Name = 'T40' - DataType = datFloat - DictionaryEntry = 'Traspasos_T40' - end - item - Name = 'T42' - DataType = datFloat - DictionaryEntry = 'Traspasos_T42' - end - item - Name = 'T44' - DataType = datFloat - DictionaryEntry = 'Traspasos_T44' - end - item - Name = 'T46' - DataType = datFloat - DictionaryEntry = 'Traspasos_T46' - end - item - Name = 'T48' - DataType = datFloat - DictionaryEntry = 'Traspasos_T48' - end - item - Name = 'TOTAL' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL' - end - item - Name = 'TR38' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR38' - end - item - Name = 'TR40' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR40' - end - item - Name = 'TR42' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR42' - end - item - Name = 'TR44' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR44' - end - item - Name = 'TR46' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR46' - end - item - Name = 'TR48' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR48' - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL_RECT' - end> - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_TRASPASOS' - SQL = - 'SELECT '#10' TIPO, FECHA, CENTRO, FILIAL, CENTRO2, FILIAL2, APROB' + - 'ADO, '#10' ESTADO_TRASPASO, OBSERVACIONES, CONTABILIZAR, FECHACAM' + - 'BIO, '#10' CODIGO, PRODUCTO, COLOR, T38, T40, T42, T44, T46, T48,' + - ' '#10' TOTAL, TR38, TR40, TR42, TR44, TR46, TR48, TOTAL_RECT'#10' FR' + - 'OM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHERE APROBADO = '#39'S'#39 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'TIPO' - TableField = 'TIPO' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FILIAL' - TableField = 'FILIAL' - end - item - DatasetField = 'CENTRO2' - TableField = 'CENTRO2' - end - item - DatasetField = 'FILIAL2' - TableField = 'FILIAL2' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'T38' - TableField = 'T38' - end - item - DatasetField = 'T40' - TableField = 'T40' - end - item - DatasetField = 'T42' - TableField = 'T42' - end - item - DatasetField = 'T44' - TableField = 'T44' - end - item - DatasetField = 'T46' - TableField = 'T46' - end - item - DatasetField = 'T48' - TableField = 'T48' - end - item - DatasetField = 'TOTAL' - TableField = 'TOTAL' - end - item - DatasetField = 'TR38' - TableField = 'TR38' - end - item - DatasetField = 'TR40' - TableField = 'TR40' - end - item - DatasetField = 'TR42' - TableField = 'TR42' - end - item - DatasetField = 'TR44' - TableField = 'TR44' - end - item - DatasetField = 'TR46' - TableField = 'TR46' - end - item - DatasetField = 'TR48' - TableField = 'TR48' - end - item - DatasetField = 'TOTAL_RECT' - TableField = 'TOTAL_RECT' - end - item - DatasetField = 'APROBADO' - TableField = 'APROBADO' - end - item - DatasetField = 'ESTADO_TRASPASO' - TableField = 'ESTADO_TRASPASO' - end - item - DatasetField = 'OBSERVACIONES' - TableField = 'OBSERVACIONES' - end - item - DatasetField = 'CONTABILIZAR' - TableField = 'CONTABILIZAR' - end - item - DatasetField = 'FECHACAMBIO' - TableField = 'FECHACAMBIO' - end> - end> - Name = 'TraspasosAprobados' - Fields = < - item - Name = 'TIPO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_TIPO' - end - item - Name = 'FECHA' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHA' - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO' - end - item - Name = 'FILIAL' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL' - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - DictionaryEntry = 'Traspasos_CENTRO2' - end - item - Name = 'FILIAL2' - DataType = datString - Size = 25 - DictionaryEntry = 'Traspasos_FILIAL2' - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_APROBADO' - end - item - Name = 'ESTADO_TRASPASO' - DataType = datString - Size = 20 - DictionaryEntry = 'Traspasos_ESTADO_TRASPASO' - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - DictionaryEntry = 'Traspasos_OBSERVACIONES' - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - DictionaryEntry = 'Traspasos_CONTABILIZAR' - end - item - Name = 'FECHACAMBIO' - DataType = datDateTime - DictionaryEntry = 'Traspasos_FECHACAMBIO' - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DictionaryEntry = 'Traspasos_CODIGO' - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DictionaryEntry = 'Traspasos_PRODUCTO' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DictionaryEntry = 'Traspasos_COLOR' - end - item - Name = 'T38' - DataType = datFloat - DictionaryEntry = 'Traspasos_T38' - end - item - Name = 'T40' - DataType = datFloat - DictionaryEntry = 'Traspasos_T40' - end - item - Name = 'T42' - DataType = datFloat - DictionaryEntry = 'Traspasos_T42' - end - item - Name = 'T44' - DataType = datFloat - DictionaryEntry = 'Traspasos_T44' - end - item - Name = 'T46' - DataType = datFloat - DictionaryEntry = 'Traspasos_T46' - end - item - Name = 'T48' - DataType = datFloat - DictionaryEntry = 'Traspasos_T48' - end - item - Name = 'TOTAL' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL' - end - item - Name = 'TR38' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR38' - end - item - Name = 'TR40' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR40' - end - item - Name = 'TR42' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR42' - end - item - Name = 'TR44' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR44' - end - item - Name = 'TR46' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR46' - end - item - Name = 'TR48' - DataType = datFloat - DictionaryEntry = 'Traspasos_TR48' - end - item - Name = 'TOTAL_RECT' - DataType = datFloat - DictionaryEntry = 'Traspasos_TOTAL_RECT' - end> - end - item - Params = < - item - Name = 'FECHA' - DataType = datDateTime - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_TRASPASOS' - SQL = - 'SELECT '#10' TOTAL_RECT'#10' FROM'#10' RDX_V_CONTROL_TRASPASOS'#10' WHER' + - 'E'#10' FECHA = :FECHA AND'#10' CENTRO = :CENTRO AND'#10' C' + - 'ENTRO2 = :CENTRO2 AND'#10' CODIGO = :CODIGO AND'#10' COLOR =' + - ' :COLOR' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'TOTAL_RECT' - TableField = 'TOTAL_RECT' - end> - end> - Name = 'RefreshTraspasos' - Fields = < - item - Name = 'TOTAL_RECT' - DataType = datFloat - end> - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'ESTADO' - Value = '' - end - item - Name = 'OBSERVACIONES' - DataType = datString - Size = 255 - Value = '' - ParamType = daptInput - end - item - Name = 'CONTABILIZAR' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'TR38' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'TR40' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'TR42' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'TR44' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'TR46' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'TR48' - DataType = datFloat - Value = '' - ParamType = daptInput - end - item - Name = 'APROBADO' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA' - DataType = datDateTime - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO2' - DataType = datString - Size = 17 - Value = '' - ParamType = daptInput - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - Value = '' - ParamType = daptInput - end - item - Name = 'TIPO' - DataType = datString - Size = 1 - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_CONTROL_TRASPASOS' - SQL = - 'begin'#10' declare @rowcount_var int'#10' declare @ESTADO varchar(' + - '20)'#10' declare @OBSERVACIONES varchar(255)'#10' declare @CONTABI' + - 'LIZAR char(1)'#10#10' declare @TR38 numeric(15,0)'#10' declare @TR40' + - ' numeric(15,0)'#10' declare @TR42 numeric(15,0)'#10' declare @TR44' + - ' numeric(15,0)'#10' declare @TR46 numeric(15,0)'#10' declare @TR48' + - ' numeric(15,0)'#10#10' declare @APROBADO char(1)'#10' declare @FECHA' + - ' datetime'#10' declare @CENTRO varchar(17)'#10' declare @CENTRO2 v' + - 'archar(17)'#10' declare @CODIGO varchar(12)'#10' declare @COLOR va' + - 'rchar(10)'#10' declare @TIPOCANT varchar(3)'#10#10' set @ESTADO = :E' + - 'STADO'#10' set @OBSERVACIONES = :OBSERVACIONES'#10' set @CONTABILI' + - 'ZAR = :CONTABILIZAR'#10#10' set @TR38 = :TR38'#10' set @TR40 = :TR40' + - #10' set @TR42 = :TR42'#10' set @TR44 = :TR44'#10' set @TR46 = :TR' + - '46'#10' set @TR48 = :TR48'#10#10' set @APROBADO = :APROBADO'#10' set ' + - '@FECHA = :FECHA'#10' set @CENTRO = :CENTRO'#10' set @CENTRO2 = :CE' + - 'NTRO2'#10' set @CODIGO = :CODIGO'#10' set @COLOR = :COLOR'#10' set ' + - '@TIPOCANT = :TIPO'#10#10' /* *********************************** */' + - #10#9'update RDX_TRASPASOS_AJUSTES set'#10#9' CANT38 = @TR38,'#10#9 + - ' CANT40 = @TR40,'#10#9' CANT42 = @TR42,'#10#9' ' + - ' CANT44 = @TR44,'#10#9' CANT46 = @TR46,'#10#9' CANT4' + - '8 = @TR48,'#10' APROBADO = @APROBADO,'#10' E' + - 'STADO = @ESTADO,'#10' TIPOCANT = @TIPOCANT,'#10' ' + - ' OBSERVACIONES = @OBSERVACIONES,'#10' CONTABILIZAR' + - ' = @CONTABILIZAR,'#10' FECHACAMBIO = CURRENT_TIMESTAMP' + - #10#9'where'#10' (RDX_TRASPASOS_AJUSTES.CENTRO = @CENTRO and' + - #10' RDX_TRASPASOS_AJUSTES.CENTRO2 = @CENTRO2 and'#10#9' ' + - ' RDX_TRASPASOS_AJUSTES.CODIGO = @CODIGO and'#10#9' RDX_TRASPAS' + - 'OS_AJUSTES.COLOR = @COLOR and'#10#9' RDX_TRASPASOS_AJUSTES.FECHA' + - ' = @FECHA)'#10#10#9'select @ROWCOUNT_VAR = @@ROWCOUNT'#10#10#9'if @ROWCOUNT_VA' + - 'R = 0'#10' begin'#10' insert into RDX_TRASPASOS_AJUSTES'#10' ' + - ' (FECHA, CENTRO, CENTRO2, CODIGO, COLOR,'#10' ' + - ' APROBADO, FECHACAMBIO, TIPOCANT,'#10' ESTADO, OB' + - 'SERVACIONES, CONTABILIZAR,'#10' CANT38, CANT40, CANT' + - '42,'#10' CANT44, CANT46, CANT48)'#10' values ('#10' ' + - ' @FECHA, @CENTRO, @CENTRO2, @CODIGO,'#10' ' + - ' @COLOR, @APROBADO, CURRENT_TIMESTAMP, @TIPOCANT,'#10' ' + - ' @ESTADO, @OBSERVACIONES, @CONTABILIZAR,'#10' ' + - '@TR38, @TR40, @TR42,'#10' @TR44, @TR46, @TR48)'#10' e' + - 'nd'#10'end' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_Estado_Traspasos' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 40 - Top = 24 - end - object DADataDictionary1: TDADataDictionary - Fields = < - item - Name = 'Traspasos_TIPO' - DataType = datString - Size = 1 - Required = True - DisplayLabel = 'Tipo' - ReadOnly = True - end - item - Name = 'Traspasos_FECHA' - DataType = datDateTime - DisplayLabel = 'Fecha' - ReadOnly = True - end - item - Name = 'Traspasos_CENTRO' - DataType = datString - Size = 17 - DisplayLabel = 'Centro' - ReadOnly = True - end - item - Name = 'Traspasos_FILIAL' - DataType = datString - Size = 25 - DisplayLabel = 'Filial' - ReadOnly = True - end - item - Name = 'Traspasos_CENTRO2' - DataType = datString - Size = 17 - DisplayLabel = 'Centro2' - ReadOnly = True - end - item - Name = 'Traspasos_FILIAL2' - DataType = datString - Size = 25 - DisplayLabel = 'Filial2' - ReadOnly = True - end - item - Name = 'Traspasos_CODIGO' - DataType = datString - Size = 12 - DisplayLabel = 'C'#243'digo' - ReadOnly = True - end - item - Name = 'Traspasos_PRODUCTO' - DataType = datString - Size = 40 - Required = True - DisplayLabel = 'Producto' - ReadOnly = True - end - item - Name = 'Traspasos_COLOR' - DataType = datString - Size = 10 - DisplayLabel = 'Color' - ReadOnly = True - end - item - Name = 'Traspasos_T38' - DataType = datFloat - DisplayLabel = 'T38' - ReadOnly = True - end - item - Name = 'Traspasos_T40' - DataType = datFloat - DisplayLabel = 'T40' - ReadOnly = True - end - item - Name = 'Traspasos_T42' - DataType = datFloat - DisplayLabel = 'T42' - ReadOnly = True - end - item - Name = 'Traspasos_T44' - DataType = datFloat - DisplayLabel = 'T44' - ReadOnly = True - end - item - Name = 'Traspasos_T46' - DataType = datFloat - DisplayLabel = 'T46' - ReadOnly = True - end - item - Name = 'Traspasos_T48' - DataType = datFloat - DisplayLabel = 'T48' - ReadOnly = True - end - item - Name = 'Traspasos_TOTAL' - DataType = datFloat - DisplayLabel = 'Total' - ReadOnly = True - end - item - Name = 'Traspasos_TR38' - DataType = datFloat - DisplayLabel = 'TR38' - end - item - Name = 'Traspasos_TR40' - DataType = datFloat - DisplayLabel = 'TR40' - end - item - Name = 'Traspasos_TR42' - DataType = datFloat - DisplayLabel = 'TR42' - end - item - Name = 'Traspasos_TR44' - DataType = datFloat - DisplayLabel = 'TR44' - end - item - Name = 'Traspasos_TR46' - DataType = datFloat - DisplayLabel = 'TR46' - end - item - Name = 'Traspasos_TR48' - DataType = datFloat - DisplayLabel = 'TR48' - end - item - Name = 'Traspasos_TOTAL_RECT' - DataType = datFloat - DisplayLabel = 'Total' - end - item - Name = 'Traspasos_APROBADO' - DataType = datString - Size = 1 - DisplayLabel = 'Aprobado' - end - item - Name = 'Traspasos_ESTADO_TRASPASO' - DataType = datString - Size = 20 - DisplayLabel = 'Estado' - end - item - Name = 'Traspasos_OBSERVACIONES' - DataType = datString - Size = 255 - DisplayLabel = 'Observaciones' - end - item - Name = 'Traspasos_CONTABILIZAR' - DataType = datString - Size = 1 - DisplayLabel = 'Contabilizar' - end - item - Name = 'Traspasos_FECHACAMBIO' - DataType = datDateTime - DisplayLabel = 'Fecha cambio' - ReadOnly = True - end> - Left = 40 - Top = 168 - end - object bpTraspasos: TDABusinessProcessor - Schema = schTraspasos - UpdateCommandName = 'Update_Estado_Traspasos' - RefreshDatasetName = 'RefreshTraspasos' - ReferencedDataset = 'Traspasos' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 32 - end - object bpTraspasosAprobadas: TDABusinessProcessor - Schema = schTraspasos - UpdateCommandName = 'Update_Estado_Traspasos' - RefreshDatasetName = 'RefreshTraspasos' - ReferencedDataset = 'TraspasosAprobados' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 88 - end - object bpTraspasosPendientes: TDABusinessProcessor - Schema = schTraspasos - UpdateCommandName = 'Update_Estado_Traspasos' - RefreshDatasetName = 'RefreshTraspasos' - ReferencedDataset = 'TraspasosPendientes' - ProcessorOptions = [poAutoGenerateInsert, poAutoGenerateDelete, poPrepareCommands, poIgnoreRowsAffected] - UpdateMode = updWhereKeyOnly - Left = 192 - Top = 152 - end -end diff --git a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas b/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas deleted file mode 100644 index bfd4368..0000000 --- a/Varela/Varela/Source/Modulos/Traspasos/Servidor/srvTraspasos_Impl.pas +++ /dev/null @@ -1,51 +0,0 @@ -unit srvTraspasos_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDAClasses, - uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer; - -type - { TsrvTraspasos } - TsrvTraspasos = class(TDARemoteService, IsrvTraspasos) - DABINAdapter: TDABINAdapter; - bpTraspasos: TDABusinessProcessor; - bpTraspasosAprobadas: TDABusinessProcessor; - bpTraspasosPendientes: TDABusinessProcessor; - schTraspasos: TDASchema; - DADataDictionary1: TDADataDictionary; - private - protected - { IsrvTraspasos methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer; - -procedure Create_srvTraspasos(out anInstance : IUnknown); -begin - anInstance := TsrvTraspasos.Create(NIL); -end; - -{ srvTraspasos } -initialization - TROClassFactory.Create('srvTraspasos', Create_srvTraspasos, TsrvTraspasos_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj deleted file mode 100644 index 72aa031..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - VentasProceso.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg deleted file mode 100644 index a34a309..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof deleted file mode 100644 index f5bd34e..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dof +++ /dev/null @@ -1,479 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=0 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Servidor -Item1=..\..\Output\Cliente -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk deleted file mode 100644 index e1e3ec7..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.dpk +++ /dev/null @@ -1,74 +0,0 @@ -package VentasProceso; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - rtl, - dbrtl, - dsnap, - BaseD10, - vcl, - adortl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - JvGlobusD10R, - ControlesBaseD10, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10; - -contains - uDataModuleVentasProceso in 'uDataModuleVentasProceso.pas' {dmVentasEnProceso: TDAClientDataModule}, - uPluginControllerVentasProceso in 'uPluginControllerVentasProceso.pas' {ModuleVentasProceso: TModuleController}, - uEditorControlesVentaProceso in 'uEditorControlesVentaProceso.pas' {fEditorControlesVentasProceso: TCustomEditor}, - uViewControlesVentaProceso in 'uViewControlesVentaProceso.pas' {frViewControlesVentaProceso: TCustomView}, - uBizControlVentasProceso in '..\Reglas\uBizControlVentasProceso.pas', - uEditorControlVentaProceso in 'uEditorControlVentaProceso.pas' {fEditorControlVentaProceso: TCustomEditor}, - uViewControlVentaProceso in 'uViewControlVentaProceso.pas' {frViewControlVentaProceso: TCustomView}, - schVentasEnProcesoClient_Intf in '..\Reglas\schVentasEnProcesoClient_Intf.pas', - uBizVentasProceso in '..\Reglas\uBizVentasProceso.pas', - uViewControGridlVentaProceso in 'uViewControGridlVentaProceso.pas' {frViewControlGridVentaProceso: TCustomView}; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.identcache deleted file mode 100644 index 8b7a0eed6e3a2cee09ce7b045adea44a3e2b0ddb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1607 zcmd6n!Ait16h-USujm)}0WPOAh>L;2!LA+*A$is(F;DUm1pi=miip2!=)_vP2(DVY zD_p|izI*R^RaI|i%_Xc^$47KQYUND5#}LSM0=E*CCx$IaZL)*~R_txB3(*kQJI@cO zgFvf1S_ONKUL$PTM4QxYdRIvjX%vRWQu;@TE#Y&+E_k-RA`32_lq9O*JI;%DgPm0Z zaYZk`xTjd3^I{FI?QHDGW#26NBINr*kQ+mR{U46|@gD$DO8J`^G3QV8{pqqBmwRza zz~S13yJ;3*=XG&Zk@1PY8$P95DuknbDPMT00bHw~`i;b5iDwSrurxpZU3oIajs60_ CUqTuH diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/VentasProceso.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm deleted file mode 100644 index ccb41df..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.dfm +++ /dev/null @@ -1,364 +0,0 @@ -object dmVentasEnProceso: TdmVentasEnProceso - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 300 - Width = 306 - object RemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvVentasEnProceso' - Left = 56 - Top = 16 - end - object tbl_VentasEnProcesoPendientes: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - InPrimaryKey = True - end - item - Name = 'CLAVE1' - DataType = datFloat - InPrimaryKey = True - end - item - Name = 'CLAVE2' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'CLAVE3' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - end - item - Name = 'DIA' - DataType = datInteger - end - item - Name = 'DIASEMANA' - DataType = datString - Size = 30 - end - item - Name = 'MES' - DataType = datString - Size = 30 - end - item - Name = 'ANO' - DataType = datInteger - end - item - Name = 'CENTRO' - DataType = datString - Size = 25 - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 66 - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - end - item - Name = 'GRUPOPRODUCTO' - DataType = datString - Size = 25 - end - item - Name = 'TIPOPRODUCTO' - DataType = datString - Size = 25 - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - end - item - Name = 'INICIO' - DataType = datFloat - Alignment = taRightJustify - end - item - Name = 'FINAL' - DataType = datFloat - Alignment = taRightJustify - end - item - Name = 'IMPORTE' - DataType = datFloat - Alignment = taRightJustify - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'VentasEnProcesoPendientes' - IndexDefs = <> - Left = 200 - Top = 16 - end - object tbl_VentasEnProcesoPendientes2: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = <> - Params = < - item - Name = 'FECHAINI' - DataType = datDateTime - Value = '' - ParamType = daptInput - end - item - Name = 'FECHAFIN' - DataType = datDateTime - Value = '' - ParamType = daptInput - end> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter2 - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'VentasEnProcesoPendientes' - IndexDefs = <> - Left = 200 - Top = 96 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - Value = Null - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasEnProcesoPendientes' - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - Value = False - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RemoteService - DataStreamer = DABinDataStreamer2 - Left = 56 - Top = 96 - end - object DARemoteDataAdapter2: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RemoteService - GetSchemaCall.MethodName = 'GetSchema' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasEnProcesoPendientes' - end - item - Name = 'Columns' - DataType = rtString - Flag = fIn - Value = Null - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetDataCall.RemoteService = RemoteService - GetDataCall.MethodName = 'GetData' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasEnProcesoPendientes' - end - item - Name = 'Columns' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'Params' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RemoteService - DataStreamer = DABinDataStreamer2 - Left = 56 - Top = 168 - end - object DABinDataStreamer2: TDABinDataStreamer - IsCompatibleV4 = False - Left = 56 - Top = 248 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas deleted file mode 100644 index cd41a85..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uDataModuleVentasProceso.pas +++ /dev/null @@ -1,113 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit uDataModuleVentasProceso; - -interface - -uses {vcl:} SysUtils, Classes, DB, uDataModuleBase, - {RemObjects:} uDAClientDataModule, uROClient, uROServiceComponent, - uRORemoteService, uDADataTable, uDAScriptingProvider, uDACDSDataTable, - uBizControlVentasProceso, uBizVentasProceso, uDARemoteDataAdapter, - uDADataStreamer, uDABinAdapter; - -const - CATEGORIA_VENTAS_PROCESO = 'VENTAPROCESO'; - -type - TdmVentasEnProceso = class(TDAClientDataModule) - RemoteService: TRORemoteService; - tbl_VentasEnProcesoPendientes: TDACDSDataTable; - tbl_VentasEnProcesoPendientes2: TDACDSDataTable; - DARemoteDataAdapter: TDARemoteDataAdapter; - DARemoteDataAdapter2: TDARemoteDataAdapter; - DABinDataStreamer2: TDABinDataStreamer; - procedure DAClientDataModuleCreate(Sender: TObject); - protected - function GetItems : IBizVentasProceso; - public - function GetNameColumns: String; - function GetControl: IBizControlVentasProceso; - end; - -var - dmVentasEnProceso: TdmVentasEnProceso; - -implementation - -{$R *.DFM} - -uses - Controls, Forms, uDataTableUtils, - uDataModuleControles, schVentasEnProcesoClient_Intf, Dialogs, cxControls; - -procedure TdmVentasEnProceso.DAClientDataModuleCreate(Sender: TObject); -begin - RemoteService.Channel := dmBase.Channel; - RemoteService.Message := dmBase.Message; -end; - -function TdmVentasEnProceso.GetControl: IBizControlVentasProceso; -var - aDataTable : TDACDSDataTable; -begin - aDataTable := dmControles.GetItems(CATEGORIA_VENTAS_PROCESO); - aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASPROCESO; - - (aDataTable as IBizControlVentasProceso).Items := GetItems; - Result := (aDataTable as IBizControlVentasProceso); -end; - -function TdmVentasEnProceso.GetItems: IBizVentasProceso; -var - dtVentas: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtVentas := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_VentasEnProcesoPendientes2, dtVentas); - dtVentas.Fields.AssignFieldCollection(tbl_VentasEnProcesoPendientes.Fields); - dtVentas.BusinessRulesID := BIZ_VENTASPROCESO; - - dtVentas.FieldByName(fld_VentasEnProcesoPendientesNUMINF).Visible := False; - dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE1).Visible := False; - dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE2).Visible := False; - dtVentas.FieldByName(fld_VentasEnProcesoPendientesCLAVE3).Visible := False; - - dtVentas.LoadSchema; - Result := (dtVentas as IBizVentasProceso); - finally - HideHourglassCursor; - end; -end; - -function TdmVentasEnProceso.GetNameColumns: String; -var - AList : TStringList; - i : integer; -begin - AList := TStringList.Create; - try - for i := 0 to tbl_VentasEnProcesoPendientes.FieldCount - 1 do - if tbl_VentasEnProcesoPendientes.Fields[i].Visible then - AList.Add(tbl_VentasEnProcesoPendientes.Fields[i].Name); - Result := AList.CommaText; - finally - FreeAndNil(AList); - end; -end; - - -initialization - dmVentasEnProceso := TdmVentasEnProceso.Create(nil); - -finalization - FreeAndNil(dmVentasEnProceso); - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm deleted file mode 100644 index 037ce6c..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.dfm +++ /dev/null @@ -1,1716 +0,0 @@ -inherited fEditorControlVentaProceso: TfEditorControlVentaProceso - Left = 231 - Top = 105 - Width = 687 - Height = 607 - ActiveControl = frViewControlVentaProceso1.bRefrescar - Caption = 'fEditorControlVentaProceso' - OnCreate = CustomEditorCreate - OnGetModified = CustomEditorGetModified - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 679 - inherited Image1: TImage - Left = 652 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D - 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 - A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 - 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 - EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 - 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 - 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E - D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 - 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C - EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF - 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 - 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C - 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 - 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 - 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 - E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F - BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 - 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 - FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D - C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 - F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B - AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} - end - end - inherited TBXDock: TTBXDock - Width = 679 - inherited tbxMain: TTBXToolbar - object TBXSeparatorItem16: TTBXSeparatorItem [13] - end - object tbxiExpandir: TTBXItem [14] - Action = actExpandir - end - object tbxiContraer: TTBXItem [15] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [16] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - inherited TBXSubmenuItem6: TTBXSubmenuItem - object TBXItem37: TTBXItem [0] - Action = actExpandir - end - object TBXItem36: TTBXItem [1] - Action = actContraer - end - object TBXItem35: TTBXItem [2] - Action = actAnchoAuto - end - object TBXSeparatorItem17: TTBXSeparatorItem [3] - end - end - end - end - inherited StatusBar: TStatusBar - Top = 554 - Width = 679 - end - inline frViewControlVentaProceso1: TfrViewControlVentaProceso [3] - Left = 0 - Top = 76 - Width = 679 - Height = 478 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - inherited TBXMultiDock1: TTBXMultiDock - Width = 238 - Height = 478 - inherited pnlParametros: TTBXDockablePanel - DockedWidth = 234 - SplitHeight = 240 - inherited TBXAlignmentPanel2: TTBXAlignmentPanel - Width = 234 - inherited TBXLink1: TTBXLink - Width = 226 - end - inherited TBXLink5: TTBXLink - Width = 226 - end - inherited TBXLink2: TTBXLink - Width = 226 - end - end - inherited pcParametros: TPageControl - Width = 234 - Height = 121 - inherited tsColumnas: TTabSheet - inherited frViewColumnas1: TfrViewColumnas - Height = 0 - inherited lbColumnas: TcxCheckListBox - Height = 0 - end - end - end - inherited tsAgrupacion: TTabSheet - inherited frViewAgrupaciones1: TfrViewAgrupaciones - Width = 226 - Height = 111 - inherited TBXLabel1: TTBXLabel - Width = 226 - end - inherited pnlAgrupaciones: TTBXAlignmentPanel - Width = 226 - inherited TBXButton1: TTBXButton - Width = 114 - end - inherited TBXButton3: TTBXButton - Width = 114 - end - inherited TBXButton2: TTBXButton - Width = 114 - end - end - end - end - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 188 - Width = 234 - inherited bRefrescar: TButton - OnClick = frViewControlVentaProceso1bRefrescarClick - end - end - end - inherited pnlTareas: TTBXDockablePanel - Top = 240 - DockedWidth = 234 - DockPos = 240 - SplitHeight = 222 - inherited TBXPageScroller1: TTBXPageScroller - Width = 234 - Height = 200 - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 234 - inherited bFiltros: TTBXLink - Width = 226 - end - inherited bSumarios: TTBXLink - Width = 226 - end - end - inherited pcTareas: TPageControl - Width = 234 - Height = 152 - inherited tsSumarios: TTabSheet - inherited frViewSumarios1: TfrViewSumarios - Height = 48 - inherited vgSumarios: TcxVerticalGrid - Height = 19 - end - end - end - inherited tsFiltros: TTabSheet - inherited frViewFiltros1: TfrViewFiltros - Width = 226 - Height = 142 - inherited vgFiltros: TcxVerticalGrid - Height = 130 - end - inherited TBXLabel1: TTBXLabel - Width = 226 - end - inherited cxFilterControl1: TcxFilterControl - Width = 226 - Height = 83 - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 112 - Width = 226 - end - inherited cxStyleRepository1: TcxStyleRepository - Left = 24 - Top = 48 - end - end - end - end - end - end - end - inherited frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso - Left = 238 - Width = 441 - Height = 478 - inherited cxGrid: TcxGrid - Width = 441 - Height = 478 - inherited cxGridView: TcxGridDBTableView - DataController.DataSource = dsVentasProceso - end - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - BuiltInReportLink = True - end - end - end - inherited SmallImages: TPngImageList - Left = 216 - Top = 176 - end - inherited LargeImages: TPngImageList - Left = 192 - Top = 176 - end - end - inherited EditorActionList: TActionList [4] - inherited actConfPagina: TAction - OnExecute = actConfPaginaExecute - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - end - end - inherited SmallImages: TPngImageList [5] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] - end - object dsVentasProceso: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas deleted file mode 100644 index b35e453..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas +++ /dev/null @@ -1,241 +0,0 @@ -unit uEditorControlVentaProceso; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, - uCustomView, uViewBase, uViewControlBase, uViewControlVentaProceso, - Grids, DBGrids, pngimage; - -type - IEditorControlVentaProceso = interface(IEditorControlBase) - ['{7F768AD2-1FF0-41E0-9157-4AB2E2CD7D32}'] - end; - - TfEditorControlVentaProceso = class(TfEditorControlBase, IEditorControlVentaProceso) - frViewControlVentaProceso1: TfrViewControlVentaProceso; - dsVentasProceso: TDADataSource; - TBXSeparatorItem16: TTBXSeparatorItem; - tbxiExpandir: TTBXItem; - tbxiContraer: TTBXItem; - tbxiAnchoAuto: TTBXItem; - actExpandir: TAction; - actContraer: TAction; - actAnchoAuto: TAction; - TBXItem37: TTBXItem; - TBXItem36: TTBXItem; - TBXItem35: TTBXItem; - TBXSeparatorItem17: TTBXSeparatorItem; - procedure actRefrescarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure CustomEditorCreate(Sender: TObject); - procedure CustomEditorGetModified(Sender: TObject; - var Modified: Boolean); - procedure actGuardarExecute(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actConfPaginaExecute(Sender: TObject); - procedure frViewControlVentaProceso1bRefrescarClick(Sender: TObject); - private - procedure RestaurarConfiguracion; - procedure GuardarConfiguracion; - protected - FModificado : Boolean; - procedure OnViewControlChanged(Sender: TObject); - procedure SetControl(const Value: IBizControlBase); override; - procedure RellenarCabeceraInforme; - public - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -uses - uEditorUtils, uBizControlVentasProceso, uROClasses, - cxGridTableView; - -{$R *.dfm} - -function ShowEditorVentasProceso (ABizObject : TDADataTableRules): TModalResult; -var - AEditor: IEditorControlVentaProceso; //TfEditorInformeVentas; -begin - AEditor := TfEditorControlVentaProceso.Create(Application); - try - AEditor.Control := (ABizObject as IBizControlVentasProceso); - Result := AEditor.ShowModal; - finally - AEditor.Release; - end; -end; - - -{ TfEditorControlVentaProceso } - -procedure TfEditorControlVentaProceso.SetControl( - const Value: IBizControlBase); -begin - inherited; - RefrescarTituloEditor; - if Assigned(FControl) then - begin - frViewControlVentaProceso1.Control := FControl; - frViewControlVentaProceso1.OnViewChanged := OnViewControlChanged; - dsDataTable.DataTable := FControl.DataTable; - with (FControl as IBizControlVentasProceso) do - begin - Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' - dsVentasProceso.DataTable := Items.DataTable; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.DataSource := dsVentasProceso; - end; - end; -end; - -procedure TfEditorControlVentaProceso.actRefrescarExecute(Sender: TObject); -begin - inherited; - frViewControlVentaProceso1.Refresh; - - while (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do - begin - frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord.Expand(True); - if (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecordIndex < - frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.RowCount - 1) then - frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.GoToNext(False, True) - else - Exit; - end; -end; - -procedure TfEditorControlVentaProceso.actExpandirExecute(Sender: TObject); -begin - inherited; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.ExpandirTodo; -end; - -procedure TfEditorControlVentaProceso.actContraerExecute(Sender: TObject); -begin - inherited; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.ContraerTodo; -end; - -procedure TfEditorControlVentaProceso.actAnchoAutoExecute(Sender: TObject); -begin - inherited; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.AjustarAncho; -end; - -procedure TfEditorControlVentaProceso.OnViewControlChanged( - Sender: TObject); -begin - FModificado := True; -end; - -procedure TfEditorControlVentaProceso.CustomEditorCreate(Sender: TObject); -begin - inherited; - FModificado := False; -end; - -procedure TfEditorControlVentaProceso.CustomEditorGetModified( - Sender: TObject; var Modified: Boolean); -begin - inherited; - Modified := FModificado; -end; - -procedure TfEditorControlVentaProceso.actGuardarExecute(Sender: TObject); -begin - GuardarConfiguracion; - inherited; - FModificado := False; -end; - -procedure TfEditorControlVentaProceso.GuardarConfiguracion; -var - Aux : IROStrings; -begin - Aux := NewROStrings(); - Aux.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties); - if not (FControl.DataTable.State in dsEditModes) then - FControl.Edit; - FControl.VISTA := Aux; -end; - -procedure TfEditorControlVentaProceso.RestaurarConfiguracion; -begin - frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties := FControl.VISTA.Text; -end; - -procedure TfEditorControlVentaProceso.FormShow(Sender: TObject); -begin - inherited; - if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando - RestaurarConfiguracion; - frViewControlVentaProceso1.frViewColumnas1.Refresh; - frViewControlVentaProceso1.frViewAgrupaciones1.Refresh; -end; - -procedure TfEditorControlVentaProceso.actPrevisualizarExecute( - Sender: TObject); -begin - inherited; - RellenarCabeceraInforme; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.Preview; -end; - -procedure TfEditorControlVentaProceso.actImprimirExecute(Sender: TObject); -begin - inherited; - RellenarCabeceraInforme; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.Print; -end; - -procedure TfEditorControlVentaProceso.actConfPaginaExecute( - Sender: TObject); -begin - inherited; - RellenarCabeceraInforme; - frViewControlVentaProceso1.frViewControlGridVentaProceso1.PrintSetup; -end; - -procedure TfEditorControlVentaProceso.RellenarCabeceraInforme; -begin - with frViewControlVentaProceso1.frViewControlGridVentaProceso1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do - begin - LeftTitle.Clear; - LeftTitle.Add(FControl.NOMBRE); - RightTitle.Clear; - RightTitle.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.Filter.FilterText); - end; -end; - -constructor TfEditorControlVentaProceso.Create(AOwner: TComponent); -begin - inherited; - FViewControl := frViewControlVentaProceso1; - Self.Caption := 'Nueva consulta de ventas en proceso'; - JvNavPanelHeader.Caption := Self.Caption; -end; - -procedure TfEditorControlVentaProceso.frViewControlVentaProceso1bRefrescarClick( - Sender: TObject); -begin - inherited; - frViewControlVentaProceso1.actRefrescarExecute(Sender); - -end; - -initialization - RegisterEditor(IBizControlVentasProceso, ShowEditorVentasProceso, etItem); - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm deleted file mode 100644 index 4100cc7..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.dfm +++ /dev/null @@ -1,154 +0,0 @@ -inherited fEditorControlesVentasProceso: TfEditorControlesVentasProceso - Left = 499 - Top = 346 - ActiveControl = frViewControlesVentaProceso1.EasyListview - Caption = 'fEditorControlesVentasProceso' - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Caption = 'Control de ventas en proceso' - inherited Image1: TImage - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB51930000029C4944415478DAB5955D48145114C7FFB32B7D - 083DD8832D0559F420F950C950E1530F421F083D4451422CD88B940829591229 - A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042E64E9A1F51 - 664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382611848A709 - EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF99CBAFA9BE0 - 6C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE995388B557A9 - 76E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B006D87C32E - D08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9DC1078530C4 - 3E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D801C581DE00C - EEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B7329E2F0FF8BF - 34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C562989D9D45 - 3C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6CC17AB039C - 104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF2940CD1125 - 31C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A3679A9031FF15 - 6565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B721475B921 - E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1A67BBA392F - BCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F805C69CED9 - 214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F1674E15217B83 - FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB02F8AEC58D - C10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71ADDBA002CF8 - F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D06667415206ECF2771B - AB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE426082} - end - end - inline frViewControlesVentaProceso1: TfrViewControlesVentaProceso [3] - Left = 0 - Top = 76 - Width = 654 - Height = 368 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - inherited EasyListview: TEasyListview - Width = 654 - Height = 368 - end - end - inherited EditorActionList: TActionList [4] - end - inherited SmallImages: TPngImageList [5] - end - inherited LargeImages: TPngImageList [6] - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] - end - inherited dsDataTable: TDADataSource [9] - end - inherited ViewPopupMenu: TPopupMenu [10] - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas deleted file mode 100644 index 8a30a92..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uEditorControlesVentaProceso.pas +++ /dev/null @@ -1,40 +0,0 @@ -unit uEditorControlesVentaProceso; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, - JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, - ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, - ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, - uViewBase, uViewControlesBase, uViewControlesVentaProceso, Menus, DB, - uDADataTable; - -type - IEditorControlesVentasProceso = interface(IEditorControlesBase) - ['{691E2C4E-32EF-4F86-9DDE-036A6BCCEF0E}'] - end; - - TfEditorControlesVentasProceso = class(TfEditorControlesBase, IEditorControlesVentasProceso) - frViewControlesVentaProceso1: TfrViewControlesVentaProceso; - private - { Private declarations } - public - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -{$R *.dfm} - -{ TfEditorControlVentaProceso } - -constructor TfEditorControlesVentasProceso.Create(AOwner: TComponent); -begin - inherited; - FViewControl := frViewControlesVentaProceso1; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm deleted file mode 100644 index ac4c156..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.dfm +++ /dev/null @@ -1,284 +0,0 @@ -object ModuleVentasProceso: TModuleVentasProceso - OldCreateOrder = True - Description = 'Controles de ventas en proceso' - ModuleMenu = MainMenu - ModuleName = 'Controles de ventas en proceso' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.4' - Left = 779 - Top = 651 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F330000029C4944415478DAB5955D48145114 - C7FFB32B7D083DD8832D0559F420F950C950E1530F421F083D4451422CD88B94 - 0829591229A460500886AD4464064B4A0F21C94A3E043D8E5ACE6AEAD256B042 - E64E9A1F51664E7367BAF74E33CDE4C7EE2A7BE070EF9D3B7B7E73CEFDDFB382 - 611848A709EDA1FEB4108A8B0E0A1C60A49882460C10A26351D5F8A8E93A1FF9 - 9CBAFA9BE06C692DE49E967F8092BEFC848109FD0E9510A89AC6C71FAA6AAE99 - 5388B557A976E0D1932E37A0A3FB75FACEC002D09AA5F4C3644BE502A4A3544B - 006D87C32ED08EE922D49DA8B7D7DE8677093F22FF59232E549C5E19C08CCD9D - C1078530C43E117819017C7B31767E11830AD0FA946068721E4C8A9FE6C64D80 - 1C581DE00CEEEDF7801CD2F9882830E01FC0297F1C5B473A57CCE0437910B732 - 9E2F0FF8BF34DE0E0A28A680A0870717DB45E40C4CA1B74A83CFE783A22888C5 - 62989D9D453C1E47202061F4D263346E0C25097066304A37362121205CDA8AE6 - CC17AB039C104295319CF1D63C832160E7FB49F45D21D8DFA4F3F7B2A5167CCF - 2940CD112531C0A92226B9DD732771A3B0864374AE75C25DBC2CA1F7B688A367 - 9A9031FF156565057670663620FFD845A3AABC644906B6B6A9CF2C2CB8D6966B - 721475B921E4E5E55140AB1DDC0560BD8E6660386FB2754BB5BF37F3E72FD5B1 - A67BBA392FBCAFA33EB7DB06DC7D709DEF311B897E5C0AB817EC49BA55340C1F - 805C69CED9214722115E22A67FCB5C803BCD6D490757F6D5F2E04C459224F167 - 4E15217B83FDAEB0967FB4ED5715C3026CAB9EC0E689305ACE093640961F0AEB - 02F8AEC58DC10A81CB3473FC0DB2225DFCB9A5A4F503AA278C2F5BBE2DBBC71A - DDBA002CF8F13D59B8E9F7F066177AA5A3F33360CC4F636672CA84D066674152 - 06ECF2771BAB353ACBD60C48D5FE0066D96D9CD7814D110000000049454E44AE - 426082} - Name = 'PngImage0' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actVentasProceso: TAction - Category = 'Ventas' - Caption = 'Control de ventas en proceso' - ImageIndex = 0 - OnExecute = actVentasProcesoExecute - end - end - object MainMenu: TMainMenu - Tag = 1000 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Ventas' - GroupIndex = 1 - ImageIndex = 4 - object Controldeventasenproceso1: TMenuItem - Tag = 101 - Action = actVentasProceso - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F330000023F4944415478DAA5936B48536118 - C7FFE76CF3D26C2859D14DC106899452D9C0CABE84945DC8A23E7841A2A612E5 - B7A02F4151F929FC9262810EA1C0465B0BA2584BB34FE939D636D7D29439626E - BAD96DDAEE97734E9D236B2E7444FDE185079EE7FD3DEFF37F78098EE3F03F22 - FA9E8DFC33A1EE98821000DB8E8AD0419F5FB628C63008C5E308C66258088785 - 5875E23994877B6036DC4D027825202A8509D96D36E46D5A8303F255A0C719B8 - BC0C589201E9FF8EED6F541049169280E53A5F9B944116F2A131CB0A2D2582FD - 3381081106290A614FEE3C1ACE55A77AF0E7181EF72EF8069BD05EFD03322909 - C78C139ED939A87563709F34A1F7F203618C14C0D231EAA434D4541477943918 - 7632F058DE214BE2834EA54755EB7E945516A6025EE637FFEECE7BC0B24079FB - 2B349716E1668F05511B8DFA53C5301BF570D4BE104C2DE83BBB3280976884C4 - E6C78FD05AC04216746190FA0AEA4C9770993FC59A26107C210F590AE0930FF7 - 598558D1F60DB70ECE20C73F8DFAABF710B8F85AC8F3EBDCF9E4421290305148 - 0A1D1838E8FB5037EEC0EE8D7ED8A65CD00F98D0FD74001F4E6B616C312E7A90 - 00DCEEE84D59A32FB30865476AA16D5907659713F31334AED710B8D149E3E397 - 002452F1E21A57FA0B924BEEAA4A79DC90BF9620343A3BB2A70DA8392E47C462 - E5264CAE43639F34FD6901EBAF7887CA4BA4155B4BA3783B29063597F1EB5901 - E459FA5138A51F369BBBF7A6056C6930442A309E51B281E1461D24EC5E16B170 - 0011B184581D9C8DBEA73B33D302FE563F01DC582D540042BC50000000004945 - 4E44AE426082} - Name = 'PngImage0' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = <> - Left = 232 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas deleted file mode 100644 index 1cd6e41..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uPluginControllerVentasProceso.pas +++ /dev/null @@ -1,73 +0,0 @@ -unit uPluginControllerVentasProceso; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCVentas = interface(IInterface) - ['{D058419C-2EFC-41A6-99DD-76E5B7FC4361}'] - end; - - TModuleVentasProceso = class(TModuleController, IMCVentas) - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - SmallImages: TPngImageList; - actVentasProceso: TAction; - Controldeventasenproceso1: TMenuItem; - procedure actVentasProcesoExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasProceso, - uEditorControlesVentaProceso, uDataModuleControles, - uBizControlVentasProceso, uEditorControlesBase; - -function GetModule : TModuleController; -begin - Result := TModuleVentasProceso.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleVentasProceso.actVentasProcesoExecute(Sender: TObject); -var - aControl: IBizControlVentasProceso; - aObj: IEditorControlesVentasProceso; -begin - aControl := dmVentasEnProceso.GetControl; - aObj := TfEditorControlesVentasProceso.Create(Application); - try - with aObj do - begin - Control := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleVentasProceso); - -finalization - UnRegisterModuleClass(TModuleVentasProceso); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm deleted file mode 100644 index 8004f66..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.dfm +++ /dev/null @@ -1,194 +0,0 @@ -inherited frViewControlGridVentaProceso: TfrViewControlGridVentaProceso - Width = 632 - Height = 419 - object cxGrid: TcxGrid [0] - Left = 0 - Top = 0 - Width = 632 - Height = 419 - Align = alClient - TabOrder = 0 - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - object cxGridView: TcxGridDBTableView - NavigatorButtons.ConfirmDelete = False - FilterBox.CustomizeDialog = False - FilterBox.Visible = fvAlways - DataController.Filter.Options = [fcoCaseInsensitive] - DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged - DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] - DataController.Summary.DefaultGroupSummaryItems = <> - DataController.Summary.FooterSummaryItems = <> - DataController.Summary.SummaryGroups = <> - DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary - DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged - DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged - OptionsBehavior.CellHints = True - OptionsCustomize.ColumnFiltering = False - OptionsCustomize.ColumnGrouping = False - OptionsCustomize.DataRowSizing = True - OptionsCustomize.GroupRowSizing = True - OptionsData.Deleting = False - OptionsData.DeletingConfirmation = False - OptionsData.Editing = False - OptionsData.Inserting = False - OptionsSelection.CellSelect = False - OptionsSelection.UnselectFocusedRecordOnExit = False - OptionsView.CellEndEllipsis = True - OptionsView.CellAutoHeight = True - OptionsView.ColumnAutoWidth = True - OptionsView.Footer = True - OptionsView.FooterAutoHeight = True - OptionsView.GridLineColor = cl3DLight - OptionsView.GroupByBox = False - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.HeaderEndEllipsis = True - OptionsView.NewItemRowInfoText = 'Click here to add a new row' - Styles.FilterBox = cxStyleFilterBox - Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle - OnColumnPosChanged = cxGridViewColumnPosChanged - OnColumnSizeChanged = cxGridViewColumnSizeChanged - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - PropertiesClassName = 'TcxDateEditProperties' - Properties.SaveTime = False - Properties.ShowTime = False - end - object cxGridViewDIA: TcxGridDBColumn - Caption = 'Dia' - DataBinding.FieldName = 'DIA' - end - object cxGridViewDIASEMANA: TcxGridDBColumn - Caption = 'Dia de la semana' - DataBinding.FieldName = 'DIASEMANA' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup - end - object cxGridViewMES: TcxGridDBColumn - Caption = 'Mes' - DataBinding.FieldName = 'MES' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup - end - object cxGridViewANO: TcxGridDBColumn - Caption = 'A'#241'o' - DataBinding.FieldName = 'ANO' - end - object cxGridViewCENTRO: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup - end - object cxGridViewVENDEDOR: TcxGridDBColumn - Caption = 'Vendedor' - DataBinding.FieldName = 'VENDEDOR' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup - end - object cxGridViewNUMTALON: TcxGridDBColumn - Caption = 'Talon' - DataBinding.FieldName = 'NUMTALON' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewNUMTALONPropertiesInitPopup - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'Codigo' - DataBinding.FieldName = 'CODIGO' - PropertiesClassName = 'TcxTextEditProperties' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup - end - object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn - Caption = 'Grupo' - DataBinding.FieldName = 'GRUPOPRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup - end - object cxGridViewTIPOPRODUCTO: TcxGridDBColumn - Caption = 'Tipo' - DataBinding.FieldName = 'TIPOPRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup - end - object cxGridViewCOLECCION: TcxGridDBColumn - Caption = 'Coleccion' - DataBinding.FieldName = 'COLECCION' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taLeftJustify - end - object cxGridViewTALLA: TcxGridDBColumn - Caption = 'Talla' - DataBinding.FieldName = 'TALLA' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taLeftJustify - end - object cxGridViewINICIO: TcxGridDBColumn - Caption = 'Inicio' - DataBinding.FieldName = 'INICIO' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewFINAL: TcxGridDBColumn - Caption = 'Final' - DataBinding.FieldName = 'FINAL' - PropertiesClassName = 'TcxTextEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewIMPORTE: TcxGridDBColumn - Caption = 'Importe' - DataBinding.FieldName = 'IMPORTE' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - end - object cxGridLevel: TcxGridLevel - GridView = cxGridView - end - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - Component = cxGrid - BuiltInReportLink = True - end - end - object cxStyleRepository1: TcxStyleRepository - Left = 16 - Top = 48 - object cxStyleRed: TcxStyle - AssignedValues = [svTextColor] - TextColor = clRed - end - object cxStyleBlue: TcxStyle - AssignedValues = [svTextColor] - TextColor = clBlue - end - object cxStyleFilterBox: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clInfoBk - TextColor = clWindowText - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas deleted file mode 100644 index b4637dd..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas +++ /dev/null @@ -1,351 +0,0 @@ -unit uViewControGridlVentaProceso; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls; - -type - IViewControlGridVentaProceso = interface(IViewControlGrid) - ['{537E8507-695E-4345-AAEE-F573C113A2CF}'] - end; - - TfrViewControlGridVentaProceso = class(TfrViewControlGrid, IViewControlGridVentaProceso) - cxGrid: TcxGrid; - cxGridView: TcxGridDBTableView; - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewDIA: TcxGridDBColumn; - cxGridViewDIASEMANA: TcxGridDBColumn; - cxGridViewMES: TcxGridDBColumn; - cxGridViewANO: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewVENDEDOR: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; - cxGridViewTIPOPRODUCTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewNUMTALON: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewTALLA: TcxGridDBColumn; - cxGridViewIMPORTE: TcxGridDBColumn; - cxGridViewINICIO: TcxGridDBColumn; - cxGridViewFINAL: TcxGridDBColumn; - cxGridLevel: TcxGridLevel; - cxStyleRepository1: TcxStyleRepository; - cxStyleRed: TcxStyle; - cxStyleBlue: TcxStyle; - cxStyleFilterBox: TcxStyle; - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; - AColumn: TcxGridColumn); - procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; - AColumn: TcxGridColumn); - procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); - procedure cxGridViewDataControllerSortingChanged(Sender: TObject); - procedure cxGridViewDataControllerSummaryAfterSummary( - ASender: TcxDataSummary); - procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); - procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); - procedure cxGridViewNUMTALONPropertiesInitPopup(Sender: TObject); - procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewDataControllerFilterChanged(Sender: TObject); - procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); - procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); - procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); - protected - procedure ActivarEventos; override; - procedure DesactivarEventos; override; - function GetFocusedView : TcxGridDBTableView; override; - public - procedure Refresh; override; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses - cxVariants, DateUtils, uDataModuleVentasProceso; - -{$R *.dfm} - -{ TfrViewControlGridVentaProceso } - -function TfrViewControlGridVentaProceso.GetFocusedView: TcxGridDBTableView; -begin - Result := cxGridView; -end; - -procedure TfrViewControlGridVentaProceso.Refresh; -var - FocusedRow, TopRow : Integer; -begin - inherited; - { Refrescar las filas del grid a partir del dataset y colocar la fila - seleccionada donde estaba } - if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then - begin - TopRow := FocusedView.Controller.TopRowIndex; - FocusedRow := FocusedView.DataController.FocusedRowIndex; - - FocusedView.DataController.UpdateItems(False); // <- Refresco - - FocusedView.DataController.FocusedRowIndex := FocusedRow; - FocusedView.Controller.TopRowIndex := TopRow; - - { Esta chapuzilla es para que se rellenen los combobox de los filtros - por que el cxFilterControl no coge los valores la 1ª vez si los - combos están vacíos. } - TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewNUMTALON.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -var - AColumn : TcxGridDBColumn; - AFecha : TDateTime; -begin - inherited; - - // La fila es la cabecera de un grupo - if ARecord.Expandable then - Exit; - - AColumn := FocusedView.GetColumnByFieldName('FECHA'); - if Assigned(AColumn) and (AColumn.Visible) then - begin - try - AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); - except - on Exception do - ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); - end; - - if DaysBetween(Now, AFecha) > 14 then - AStyle := cxStyleRed - else - if DaysBetween(Now, AFecha) > 7 then - AStyle := cxStyleBlue - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewColumnPosChanged( - Sender: TcxGridTableView; AColumn: TcxGridColumn); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewColumnSizeChanged( - Sender: TcxGridTableView; AColumn: TcxGridColumn); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerGroupingChanged( - Sender: TObject); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSortingChanged( - Sender: TObject); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSummaryAfterSummary( - ASender: TcxDataSummary); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewCENTROPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewVENDEDORPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewNUMTALONPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewNUMTALON.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewNUMTALON.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerFilterChanged( - Sender: TObject); -begin - if Assigned(FOnFilterChanged) then - FOnFilterChanged(Self); -end; - -constructor TfrViewControlGridVentaProceso.Create(AOwner: TComponent); -begin - inherited; -end; - -procedure TfrViewControlGridVentaProceso.ActivarEventos; -begin - inherited; - with cxGridView do - begin - DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; - DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; - DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; - DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; - OnColumnPosChanged := cxGridViewColumnPosChanged; - OnColumnSizeChanged := cxGridViewColumnSizeChanged; - end; -end; - -procedure TfrViewControlGridVentaProceso.DesactivarEventos; -begin - inherited; - with cxGridView do - begin - DataController.Filter.OnChanged := nil; - DataController.Summary.OnAfterSummary := nil; - DataController.OnGroupingChanged := nil; - DataController.OnSortingChanged := nil; - OnColumnPosChanged := nil; - OnColumnSizeChanged := nil; - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewDIASEMANAPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewMESPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewMES.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewMES.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewTIPOPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentaProceso.cxGridViewCOLECCIONPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm deleted file mode 100644 index e3b4ec4..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.dfm +++ /dev/null @@ -1,148 +0,0 @@ -inherited frViewControlVentaProceso: TfrViewControlVentaProceso - Height = 608 - inherited TBXMultiDock1: TTBXMultiDock - Width = 232 - Height = 608 - inherited pnlParametros: TTBXDockablePanel - DockedWidth = 228 - inherited TBXAlignmentPanel2: TTBXAlignmentPanel - Width = 228 - inherited TBXLink1: TTBXLink - Width = 220 - Visible = False - end - inherited TBXLink5: TTBXLink - Width = 220 - end - inherited TBXLink2: TTBXLink - Width = 220 - end - end - inherited pcParametros: TPageControl - Width = 228 - Height = 170 - inherited tsColumnas: TTabSheet - inherited frViewColumnas1: TfrViewColumnas - Width = 220 - Height = 160 - inherited TBXLabel1: TTBXLabel - Width = 220 - end - inherited lbColumnas: TcxCheckListBox - Width = 220 - Height = 131 - end - end - end - inherited tsAgrupacion: TTabSheet - inherited frViewAgrupaciones1: TfrViewAgrupaciones - Width = 220 - Height = 160 - inherited TBXLabel1: TTBXLabel - Width = 220 - end - inherited pnlAgrupaciones: TTBXAlignmentPanel - Width = 220 - DesignSize = ( - 220 - 77) - end - end - end - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 237 - Width = 228 - end - end - inherited pnlTareas: TTBXDockablePanel - Top = 289 - DockedWidth = 228 - DockPos = 289 - Visible = False - inherited TBXPageScroller1: TTBXPageScroller - Width = 228 - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 228 - inherited bFiltros: TTBXLink - Width = 220 - end - inherited bSumarios: TTBXLink - Width = 220 - end - end - inherited pcTareas: TPageControl - Width = 228 - inherited tsSumarios: TTabSheet - inherited frViewSumarios1: TfrViewSumarios - Width = 220 - inherited TBXLabel1: TTBXLabel - Width = 220 - end - inherited vgSumarios: TcxVerticalGrid - Width = 220 - end - end - end - inherited tsFiltros: TTabSheet - inherited frViewFiltros1: TfrViewFiltros - Width = 220 - inherited TBXLabel1: TTBXLabel - Width = 220 - end - inherited cxFilterControl1: TcxFilterControl - Width = 220 - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Width = 220 - end - end - end - end - end - end - end - inline frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso [1] - Left = 232 - Top = 0 - Width = 467 - Height = 608 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 1 - ReadOnly = False - inherited cxGrid: TcxGrid - Width = 467 - Height = 608 - inherited cxGridView: TcxGridDBTableView - FilterBox.Visible = fvNever - end - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - BuiltInReportLink = True - end - end - end - inherited SmallImages: TPngImageList [2] - end - inherited LargeImages: TPngImageList [3] - end - inherited EditorActionList: TActionList - Left = 248 - Top = 72 - inherited actRefrescar: TAction - OnExecute = actRefrescarExecute - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas deleted file mode 100644 index 97f4633..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlVentaProceso.pas +++ /dev/null @@ -1,120 +0,0 @@ -unit uViewControlVentaProceso; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, - uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, - uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, - TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, - cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, - cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, - cxTextEdit, uViewControGridlVentaProceso, uViewFiltros; - -type - IViewControlVentaProceso = interface(IViewControlBase) - ['{C3433C18-BB61-4046-BC0B-CE783A6F7189}'] - end; - - TfrViewControlVentaProceso = class(TfrViewControlBase, IViewControlVentaProceso) - frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso; - procedure actRefrescarExecute(Sender: TObject); - protected - FModificado : Boolean; - procedure OnViewControlGridChanged(Sender : TObject); - procedure OnFilterChanged(Sender : TObject); - public - constructor Create(AOwner: TComponent); override; - procedure Refresh; override; - end; - -implementation - -uses uDataModuleVentasProceso, uBizControlVentasProceso, uBizVentasProceso; - -{$R *.dfm} - -{ TfrViewControlVentaProceso } - -constructor TfrViewControlVentaProceso.Create(AOwner: TComponent); -begin - inherited; - frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; - frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; - frViewColumnas1.ViewControlGrid := frViewControlGridVentaProceso1; - frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentaProceso1; - frViewSumarios1.ViewControlGrid := frViewControlGridVentaProceso1; - frViewFiltros1.ViewControlGrid := frViewControlGridVentaProceso1; -end; - -procedure TfrViewControlVentaProceso.Refresh; -var - AColumns : TStringList; -begin - inherited; - ShowHourglassCursor; - actRefrescar.Enabled := False; - - frViewControlGridVentaProceso1.OnViewChanged := nil; - frViewControlGridVentaProceso1.OnFilterChanged := nil; - - try - // Calcular las columnas a pedir al servidor - AColumns := frViewColumnas1.GetCheckedColumns; - AColumns.Duplicates := dupIgnore; - AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); - - (Control as IBizControlVentasProceso).Items.VisibleColumns := AColumns.CommaText; - with (Control as IBizControlVentasProceso).Items.DataTable do - begin - DisableControls; - try - Active := False; - LoadSchema; - Active := True; - - frViewColumnas1.Execute; - frViewAgrupaciones1.Execute; - frViewSumarios1.Refresh; - frViewFiltros1.Refresh; - pnlTareas.Visible := True; - - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); - finally - EnableControls; - frViewControlGridVentaProceso1.Refresh; - frViewControlGridVentaProceso1.ExpandirTodo; - frViewControlGridVentaProceso1.GotoFirst; - end; - end; - finally - FreeAndNil(AColumns); - frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; - frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; - actRefrescar.Enabled := True; - HideHourglassCursor; - end; -end; - -procedure TfrViewControlVentaProceso.actRefrescarExecute(Sender: TObject); -begin - inherited; - Refresh; -end; - -procedure TfrViewControlVentaProceso.OnViewControlGridChanged( - Sender: TObject); -begin - if Assigned(Self.OnViewChanged) then - Self.OnViewChanged(Self); -end; - -procedure TfrViewControlVentaProceso.OnFilterChanged(Sender: TObject); -begin - frViewFiltros1.Refresh; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm deleted file mode 100644 index 1c5d52e..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.dfm +++ /dev/null @@ -1,2 +0,0 @@ -inherited frViewControlesVentaProceso: TfrViewControlesVentaProceso -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas deleted file mode 100644 index 637f1e4..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Cliente/uViewControlesVentaProceso.pas +++ /dev/null @@ -1,24 +0,0 @@ -unit uViewControlesVentaProceso; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, - cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, - PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, - MPCommonObjects, MPCommonUtilities, EasyListview; - -type - IViewControlesVentaProceso = interface(IViewControlesBase) - ['{FEC70D50-494A-477A-B907-A5752223ABF1}'] - end; - - TfrViewControlesVentaProceso = class(TfrViewControlesBase, IViewControlesVentaProceso) - end; - -implementation - -{$R *.dfm} - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas deleted file mode 100644 index c0cc047..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoClient_Intf.pas +++ /dev/null @@ -1,460 +0,0 @@ -unit schVentasEnProcesoClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_VentasEnProcesoPendientes = '{6A914050-F90B-4E27-992C-A010950CC420}'; - - { Data table names } - nme_VentasEnProcesoPendientes = 'VentasEnProcesoPendientes'; - - { VentasEnProcesoPendientes fields } - fld_VentasEnProcesoPendientesNUMINF = 'NUMINF'; - fld_VentasEnProcesoPendientesCLAVE1 = 'CLAVE1'; - fld_VentasEnProcesoPendientesCLAVE2 = 'CLAVE2'; - fld_VentasEnProcesoPendientesCLAVE3 = 'CLAVE3'; - fld_VentasEnProcesoPendientesFECHA = 'FECHA'; - fld_VentasEnProcesoPendientesDIA = 'DIA'; - fld_VentasEnProcesoPendientesDIASEMANA = 'DIASEMANA'; - fld_VentasEnProcesoPendientesMES = 'MES'; - fld_VentasEnProcesoPendientesANO = 'ANO'; - fld_VentasEnProcesoPendientesCENTRO = 'CENTRO'; - fld_VentasEnProcesoPendientesVENDEDOR = 'VENDEDOR'; - fld_VentasEnProcesoPendientesNUMTALON = 'NUMTALON'; - fld_VentasEnProcesoPendientesCODIGO = 'CODIGO'; - fld_VentasEnProcesoPendientesPRODUCTO = 'PRODUCTO'; - fld_VentasEnProcesoPendientesGRUPOPRODUCTO = 'GRUPOPRODUCTO'; - fld_VentasEnProcesoPendientesTIPOPRODUCTO = 'TIPOPRODUCTO'; - fld_VentasEnProcesoPendientesCOLECCION = 'COLECCION'; - fld_VentasEnProcesoPendientesCOLOR = 'COLOR'; - fld_VentasEnProcesoPendientesTALLA = 'TALLA'; - fld_VentasEnProcesoPendientesINICIO = 'INICIO'; - fld_VentasEnProcesoPendientesFINAL = 'FINAL'; - fld_VentasEnProcesoPendientesIMPORTE = 'IMPORTE'; - - { VentasEnProcesoPendientes field indexes } - idx_VentasEnProcesoPendientesNUMINF = 0; - idx_VentasEnProcesoPendientesCLAVE1 = 1; - idx_VentasEnProcesoPendientesCLAVE2 = 2; - idx_VentasEnProcesoPendientesCLAVE3 = 3; - idx_VentasEnProcesoPendientesFECHA = 4; - idx_VentasEnProcesoPendientesDIA = 5; - idx_VentasEnProcesoPendientesDIASEMANA = 6; - idx_VentasEnProcesoPendientesMES = 7; - idx_VentasEnProcesoPendientesANO = 8; - idx_VentasEnProcesoPendientesCENTRO = 9; - idx_VentasEnProcesoPendientesVENDEDOR = 10; - idx_VentasEnProcesoPendientesNUMTALON = 11; - idx_VentasEnProcesoPendientesCODIGO = 12; - idx_VentasEnProcesoPendientesPRODUCTO = 13; - idx_VentasEnProcesoPendientesGRUPOPRODUCTO = 14; - idx_VentasEnProcesoPendientesTIPOPRODUCTO = 15; - idx_VentasEnProcesoPendientesCOLECCION = 16; - idx_VentasEnProcesoPendientesCOLOR = 17; - idx_VentasEnProcesoPendientesTALLA = 18; - idx_VentasEnProcesoPendientesINICIO = 19; - idx_VentasEnProcesoPendientesFINAL = 20; - idx_VentasEnProcesoPendientesIMPORTE = 21; - -type - { IVentasEnProcesoPendientes } - IVentasEnProcesoPendientes = interface(IDAStronglyTypedDataTable) - ['{75EFCBF2-47FD-4655-A865-27703C29C80D}'] - { Property getters and setters } - function GetNUMINFValue: String; - procedure SetNUMINFValue(const aValue: String); - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetCLAVE2Value: Integer; - procedure SetCLAVE2Value(const aValue: Integer); - function GetCLAVE3Value: Integer; - procedure SetCLAVE3Value(const aValue: Integer); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetDIAValue: Integer; - procedure SetDIAValue(const aValue: Integer); - function GetDIASEMANAValue: String; - procedure SetDIASEMANAValue(const aValue: String); - function GetMESValue: String; - procedure SetMESValue(const aValue: String); - function GetANOValue: Integer; - procedure SetANOValue(const aValue: Integer); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetVENDEDORValue: String; - procedure SetVENDEDORValue(const aValue: String); - function GetNUMTALONValue: String; - procedure SetNUMTALONValue(const aValue: String); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetGRUPOPRODUCTOValue: String; - procedure SetGRUPOPRODUCTOValue(const aValue: String); - function GetTIPOPRODUCTOValue: String; - procedure SetTIPOPRODUCTOValue(const aValue: String); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetTALLAValue: String; - procedure SetTALLAValue(const aValue: String); - function GetINICIOValue: Float; - procedure SetINICIOValue(const aValue: Float); - function GetFINALValue: Float; - procedure SetFINALValue(const aValue: Float); - function GetIMPORTEValue: Float; - procedure SetIMPORTEValue(const aValue: Float); - - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property DIA: Integer read GetDIAValue write SetDIAValue; - property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; - property MES: String read GetMESValue write SetMESValue; - property ANO: Integer read GetANOValue write SetANOValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property INICIO: Float read GetINICIOValue write SetINICIOValue; - property FINAL: Float read GetFINALValue write SetFINALValue; - property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; - end; - - { TVentasEnProcesoPendientesDataTableRules } - TVentasEnProcesoPendientesDataTableRules = class(TDADataTableRules, IVentasEnProcesoPendientes) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetDIAValue: Integer; virtual; - procedure SetDIAValue(const aValue: Integer); virtual; - function GetDIASEMANAValue: String; virtual; - procedure SetDIASEMANAValue(const aValue: String); virtual; - function GetMESValue: String; virtual; - procedure SetMESValue(const aValue: String); virtual; - function GetANOValue: Integer; virtual; - procedure SetANOValue(const aValue: Integer); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetGRUPOPRODUCTOValue: String; virtual; - procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; - function GetTIPOPRODUCTOValue: String; virtual; - procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetINICIOValue: Float; virtual; - procedure SetINICIOValue(const aValue: Float); virtual; - function GetFINALValue: Float; virtual; - procedure SetFINALValue(const aValue: Float); virtual; - function GetIMPORTEValue: Float; virtual; - procedure SetIMPORTEValue(const aValue: Float); virtual; - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property DIA: Integer read GetDIAValue write SetDIAValue; - property DIASEMANA: String read GetDIASEMANAValue write SetDIASEMANAValue; - property MES: String read GetMESValue write SetMESValue; - property ANO: Integer read GetANOValue write SetANOValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property INICIO: Float read GetINICIOValue write SetINICIOValue; - property FINAL: Float read GetFINALValue write SetFINALValue; - property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TVentasEnProcesoPendientesDataTableRules } -constructor TVentasEnProcesoPendientesDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TVentasEnProcesoPendientesDataTableRules.Destroy; -begin - inherited; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetNUMINFValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetNUMINFValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesNUMINF].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE1].AsFloat := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCLAVE2Value: Integer; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE2Value(const aValue: Integer); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE2].AsInteger := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCLAVE3Value: Integer; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCLAVE3Value(const aValue: Integer); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCLAVE3].AsInteger := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesFECHA].AsDateTime := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetDIAValue: Integer; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetDIAValue(const aValue: Integer); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesDIA].AsInteger := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetDIASEMANAValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetDIASEMANAValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesDIASEMANA].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetMESValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetMESValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesMES].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetANOValue: Integer; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetANOValue(const aValue: Integer); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesANO].AsInteger := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCENTRO].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetVENDEDORValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesVENDEDOR].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetNUMTALONValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetNUMTALONValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesNUMTALON].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCODIGO].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesPRODUCTO].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetGRUPOPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesGRUPOPRODUCTO].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetTIPOPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesTIPOPRODUCTO].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCOLECCION].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesCOLOR].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetTALLAValue: String; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetTALLAValue(const aValue: String); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesTALLA].AsString := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetINICIOValue: Float; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetINICIOValue(const aValue: Float); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesINICIO].AsFloat := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetFINALValue: Float; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetFINALValue(const aValue: Float); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesFINAL].AsFloat := aValue; -end; - -function TVentasEnProcesoPendientesDataTableRules.GetIMPORTEValue: Float; -begin - result := DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat; -end; - -procedure TVentasEnProcesoPendientesDataTableRules.SetIMPORTEValue(const aValue: Float); -begin - DataTable.Fields[idx_VentasEnProcesoPendientesIMPORTE].AsFloat := aValue; -end; - - -initialization - RegisterDataTableRules(RID_VentasEnProcesoPendientes, TVentasEnProcesoPendientesDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas deleted file mode 100644 index 62901ca..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/schVentasEnProcesoServer_Intf.pas +++ /dev/null @@ -1,541 +0,0 @@ -unit schVentasEnProcesoServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schVentasEnProcesoClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_VentasEnProcesoPendientesDelta = '{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'; - -type - { IVentasEnProcesoPendientesDelta } - IVentasEnProcesoPendientesDelta = interface(IVentasEnProcesoPendientes) - ['{D3A9D8FB-B84C-4FD7-9DC6-FBBBA04E7878}'] - { Property getters and setters } - function GetOldNUMINFValue : String; - function GetOldCLAVE1Value : Float; - function GetOldCLAVE2Value : Integer; - function GetOldCLAVE3Value : Integer; - function GetOldFECHAValue : DateTime; - function GetOldDIAValue : Integer; - function GetOldDIASEMANAValue : String; - function GetOldMESValue : String; - function GetOldANOValue : Integer; - function GetOldCENTROValue : String; - function GetOldVENDEDORValue : String; - function GetOldNUMTALONValue : String; - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldGRUPOPRODUCTOValue : String; - function GetOldTIPOPRODUCTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldCOLORValue : String; - function GetOldTALLAValue : String; - function GetOldINICIOValue : Float; - function GetOldFINALValue : Float; - function GetOldIMPORTEValue : Float; - - { Properties } - property OldNUMINF : String read GetOldNUMINFValue; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldDIA : Integer read GetOldDIAValue; - property OldDIASEMANA : String read GetOldDIASEMANAValue; - property OldMES : String read GetOldMESValue; - property OldANO : Integer read GetOldANOValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; - property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldTALLA : String read GetOldTALLAValue; - property OldINICIO : Float read GetOldINICIOValue; - property OldFINAL : Float read GetOldFINALValue; - property OldIMPORTE : Float read GetOldIMPORTEValue; - end; - - { TVentasEnProcesoPendientesBusinessProcessorRules } - TVentasEnProcesoPendientesBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasEnProcesoPendientes, IVentasEnProcesoPendientesDelta) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - function GetOldNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - function GetOldCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE3Value: Integer; virtual; - function GetOldCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetFECHAValue: DateTime; virtual; - function GetOldFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetDIAValue: Integer; virtual; - function GetOldDIAValue: Integer; virtual; - procedure SetDIAValue(const aValue: Integer); virtual; - function GetDIASEMANAValue: String; virtual; - function GetOldDIASEMANAValue: String; virtual; - procedure SetDIASEMANAValue(const aValue: String); virtual; - function GetMESValue: String; virtual; - function GetOldMESValue: String; virtual; - procedure SetMESValue(const aValue: String); virtual; - function GetANOValue: Integer; virtual; - function GetOldANOValue: Integer; virtual; - procedure SetANOValue(const aValue: Integer); virtual; - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetVENDEDORValue: String; virtual; - function GetOldVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - function GetOldNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCODIGOValue: String; virtual; - function GetOldCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetPRODUCTOValue: String; virtual; - function GetOldPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetGRUPOPRODUCTOValue: String; virtual; - function GetOldGRUPOPRODUCTOValue: String; virtual; - procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; - function GetTIPOPRODUCTOValue: String; virtual; - function GetOldTIPOPRODUCTOValue: String; virtual; - procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; - function GetCOLECCIONValue: String; virtual; - function GetOldCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - function GetOldTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetINICIOValue: Float; virtual; - function GetOldINICIOValue: Float; virtual; - procedure SetINICIOValue(const aValue: Float); virtual; - function GetFINALValue: Float; virtual; - function GetOldFINALValue: Float; virtual; - procedure SetFINALValue(const aValue: Float); virtual; - function GetIMPORTEValue: Float; virtual; - function GetOldIMPORTEValue: Float; virtual; - procedure SetIMPORTEValue(const aValue: Float); virtual; - - { Properties } - property NUMINF : String read GetNUMINFValue write SetNUMINFValue; - property OldNUMINF : String read GetOldNUMINFValue; - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property DIA : Integer read GetDIAValue write SetDIAValue; - property OldDIA : Integer read GetOldDIAValue; - property DIASEMANA : String read GetDIASEMANAValue write SetDIASEMANAValue; - property OldDIASEMANA : String read GetOldDIASEMANAValue; - property MES : String read GetMESValue write SetMESValue; - property OldMES : String read GetOldMESValue; - property ANO : Integer read GetANOValue write SetANOValue; - property OldANO : Integer read GetOldANOValue; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property OldCODIGO : String read GetOldCODIGOValue; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; - property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property TALLA : String read GetTALLAValue write SetTALLAValue; - property OldTALLA : String read GetOldTALLAValue; - property INICIO : Float read GetINICIOValue write SetINICIOValue; - property OldINICIO : Float read GetOldINICIOValue; - property FINAL : Float read GetFINALValue write SetFINALValue; - property OldFINAL : Float read GetOldFINALValue; - property IMPORTE : Float read GetIMPORTEValue write SetIMPORTEValue; - property OldIMPORTE : Float read GetOldIMPORTEValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TVentasEnProcesoPendientesBusinessProcessorRules } -constructor TVentasEnProcesoPendientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TVentasEnProcesoPendientesBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMINF]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMINFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMINF] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE1]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE1] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE2]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE2] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCLAVE3]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCLAVE3] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFECHA]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFECHA] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIAValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIAValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIA]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIAValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIA] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetDIASEMANAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldDIASEMANAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesDIASEMANA]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetDIASEMANAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesDIASEMANA] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetMESValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldMESValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesMES]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetMESValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesMES] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetANOValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldANOValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesANO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetANOValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesANO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCENTRO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCENTRO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesVENDEDOR]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesVENDEDOR] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesNUMTALON]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetNUMTALONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesNUMTALON] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCODIGO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCODIGO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesPRODUCTO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesPRODUCTO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesGRUPOPRODUCTO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetTIPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTIPOPRODUCTO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLECCION]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLECCION] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesCOLOR]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesCOLOR] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesTALLA]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetTALLAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesTALLA] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetINICIOValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldINICIOValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesINICIO]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetINICIOValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesINICIO] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetFINALValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldFINALValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesFINAL]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetFINALValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesFINAL] := aValue; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetIMPORTEValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE]; -end; - -function TVentasEnProcesoPendientesBusinessProcessorRules.GetOldIMPORTEValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasEnProcesoPendientesIMPORTE]; -end; - -procedure TVentasEnProcesoPendientesBusinessProcessorRules.SetIMPORTEValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasEnProcesoPendientesIMPORTE] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_VentasEnProcesoPendientesDelta, TVentasEnProcesoPendientesBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas deleted file mode 100644 index ba8031f..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizControlVentasProceso.pas +++ /dev/null @@ -1,69 +0,0 @@ -unit uBizControlVentasProceso; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, - uBizVentasProceso; - -const - BIZ_CONTROL_VENTASPROCESO = 'Client.Control_VentasProceso'; - -type - IBizControlVentasProceso = interface(IBizControlBase) - ['{3D515579-7374-444F-8983-8FFE1C7A38C4}'] - procedure SetItems(const Value : IBizVentasProceso); - function GetItems : IBizVentasProceso; - property Items : IBizVentasProceso read GetItems write SetItems; - end; - - TBizControlVentasProcesoTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasProceso) - protected - FItems : IBizVentasProceso; - procedure OnNewRecord(Sender: TDADataTable); override; - procedure SetItems(const Value : IBizVentasProceso); virtual; - function GetItems : IBizVentasProceso; virtual; - public - procedure Show; override; - property Items : IBizVentasProceso read GetItems write SetItems; - end; - - -implementation - -uses - uEditorUtils, uDataModuleVentasProceso; - -{ TBizControlVentasProcesoTableRules } - -function TBizControlVentasProcesoTableRules.GetItems: IBizVentasProceso; -begin - Result := FItems; -end; - -procedure TBizControlVentasProcesoTableRules.OnNewRecord( - Sender: TDADataTable); -begin - inherited; - CATEGORIA := CATEGORIA_VENTAS_PROCESO -end; - -procedure TBizControlVentasProcesoTableRules.SetItems( - const Value: IBizVentasProceso); -begin - FItems := Value; -end; - -procedure TBizControlVentasProcesoTableRules.Show; -begin - inherited; - ShowEditor(IBizControlVentasProceso, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_CONTROL_VENTASPROCESO, TBizControlVentasProcesoTableRules); - -finalization -end. - - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas b/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas deleted file mode 100644 index fe6e9eb..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Reglas/uBizVentasProceso.pas +++ /dev/null @@ -1,88 +0,0 @@ -unit uBizVentasProceso; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, - DataAbstract3_Intf, uROTypes, schVentasEnProcesoClient_Intf; - -const - BIZ_VENTASPROCESO = 'Client.VentasProceso'; - -type - IBizVentasProceso = interface(IVentasEnProcesoPendientes) - ['{FA9EC0B7-D12E-4088-8406-D9A86441C3B3}'] - function GetVisibleColumns: String; - procedure SetVisibleColumns(const Value: String); - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - end; - - TBizVentasProcesoDataTableRules = class(TVentasEnProcesoPendientesDataTableRules, IBizVentasProceso) - private - FVisibleColumns : String; - protected - function GetVisibleColumns: String; - procedure SetVisibleColumns(const Value: String); - procedure OnBeforeDataRequestCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - procedure OnBeforeSchemaCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - public - constructor Create(aDataTable: TDADataTable); override; - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - end; - - -implementation - -uses - uDataModuleVentasProceso; - -{ TBizVentasProcesoDataTableRules } - -constructor TBizVentasProcesoDataTableRules.Create( - aDataTable: TDADataTable); -begin - inherited; - if Assigned(DataTable) then - begin - DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; - DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; - end; -end; - -function TBizVentasProcesoDataTableRules.GetVisibleColumns: String; -begin - if Length(FVisibleColumns) = 0 then - FVisibleColumns := dmVentasEnProceso.GetNameColumns; - Result := FVisibleColumns -end; - -procedure TBizVentasProcesoDataTableRules.OnBeforeDataRequestCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('Columns').AsString := VisibleColumns; -end; - -procedure TBizVentasProcesoDataTableRules.OnBeforeSchemaCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('Columns').AsString := VisibleColumns; -end; - -procedure TBizVentasProcesoDataTableRules.SetVisibleColumns( - const Value: String); -begin - if Length(Value) > 0 then - FVisibleColumns := Value - else - FVisibleColumns := dmVentasEnProceso.GetNameColumns; -end; - -initialization - RegisterDataTableRules(BIZ_VENTASPROCESO, TBizVentasProcesoDataTableRules); - -finalization -end. - - diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm deleted file mode 100644 index c54e5ac..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.dfm +++ /dev/null @@ -1,249 +0,0 @@ -object srvVentasEnProceso: TsrvVentasEnProceso - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schVentasEnProceso - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schVentasEnProceso: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'SELECT '#10' TODAS.NUMINF, TODAS.CLAVE1, TODAS.CLAVE2, TODAS.CLAV' + - 'E3,'#10' TODAS.FECHA, TODAS.DIA, TODAS.DIASEMANA, TODAS.MES, TODA' + - 'S.ANO,'#10' TODAS.CENTRO, TODAS.VENDEDOR, TODAS.NUMTALON, TODAS.C' + - 'ODIGO,'#10' TODAS.PRODUCTO, TODAS.GRUPOPRODUCTO, TODAS.TIPOPRODUC' + - 'TO, TODAS.COLECCION,'#10' TODAS.COLOR, TODAS.TALLA, TODAS.INICIO,' + - ' TODAS.FINAL, TODAS.IMPORTE'#10' FROM'#10' RDX_V_VENTASPROCESOPEND' + - 'IENTES PENDIENTES LEFT JOIN RDX_V_VENTASPROCESO TODAS'#10'ON (TODAS.' + - 'NUMTALON = PENDIENTES.NUMTALON AND TODAS.CODIGO = PENDIENTES.COD' + - 'IGO AND'#10'TODAS.COLOR = PENDIENTES.COLOR AND TODAS.TALLA = PENDIEN' + - 'TES.TALLA)' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMINF' - TableField = 'NUMINF' - end - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'CLAVE3' - TableField = 'CLAVE3' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'VENDEDOR' - TableField = 'VENDEDOR' - end - item - DatasetField = 'NUMTALON' - TableField = 'NUMTALON' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'TALLA' - TableField = 'TALLA' - end - item - DatasetField = 'IMPORTE' - TableField = 'IMPORTE' - end - item - DatasetField = 'INICIO' - TableField = 'INICIO' - end - item - DatasetField = 'FINAL' - TableField = 'FINAL' - end - item - DatasetField = 'DIA' - TableField = 'DIA' - end - item - DatasetField = 'DIASEMANA' - TableField = 'DIASEMANA' - end - item - DatasetField = 'MES' - TableField = 'MES' - end - item - DatasetField = 'ANO' - TableField = 'ANO' - end - item - DatasetField = 'GRUPOPRODUCTO' - TableField = 'GRUPOPRODUCTO' - end - item - DatasetField = 'TIPOPRODUCTO' - TableField = 'TIPOPRODUCTO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end> - end> - Name = 'VentasEnProcesoPendientes' - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - InPrimaryKey = True - end - item - Name = 'CLAVE1' - DataType = datFloat - InPrimaryKey = True - end - item - Name = 'CLAVE2' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'CLAVE3' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - end - item - Name = 'DIA' - DataType = datInteger - end - item - Name = 'DIASEMANA' - DataType = datString - Size = 30 - end - item - Name = 'MES' - DataType = datString - Size = 30 - end - item - Name = 'ANO' - DataType = datInteger - end - item - Name = 'CENTRO' - DataType = datString - Size = 25 - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 66 - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - end - item - Name = 'GRUPOPRODUCTO' - DataType = datString - Size = 25 - end - item - Name = 'TIPOPRODUCTO' - DataType = datString - Size = 25 - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - end - item - Name = 'INICIO' - DataType = datFloat - Alignment = taRightJustify - end - item - Name = 'FINAL' - DataType = datFloat - Alignment = taRightJustify - end - item - Name = 'IMPORTE' - DataType = datFloat - Alignment = taRightJustify - end> - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = <> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 48 - Top = 32 - end - object DABINAdapter: TDABINAdapter - Left = 48 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas b/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas deleted file mode 100644 index 3d8fe32..0000000 --- a/Varela/Varela/Source/Modulos/VentasProceso/Servidor/srvVentasEnProceso_Impl.pas +++ /dev/null @@ -1,135 +0,0 @@ -unit srvVentasEnProceso_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDABusinessProcessor, - uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvVentasEnProceso } - TsrvVentasEnProceso = class(TDARemoteService, IsrvVentasEnProceso) - DABINAdapter: TDABINAdapter; - schVentasEnProceso: TDASchema; - private - protected - function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, uSchemaUtilsServer; - -const - CAMPOS_SUMA = '#INICIO#FINAL#IMPORTE#'; - -procedure Create_srvVentasEnProceso(out anInstance : IUnknown); -begin - anInstance := TsrvVentasEnProceso.Create(NIL); -end; - -{ TsrvVentasEnProceso } - -function TsrvVentasEnProceso.GetData(const DatasetName: String; - const Columns: String; const Params: String; - const MaxRecords: Integer): Binary; -var - ds : IDADataset; - i : integer; - pars: TStringList; - parnames: array of string; - parvalues: array of Variant; -begin - pars := TStringList.Create; - result := Binary.Create; - try - try - pars.Text := Params; - SetLength(parnames, pars.Count); - SetLength(parvalues, pars.Count); - for i := 0 to (pars.Count-1) do begin - parnames[i] := pars.Names[i]; - parvalues[i] := pars.Values[pars.Names[i]]; - end; - - { Prepares the parameter arrays} - - with TReplicarDataSet.Create do - begin - SourceDataSetName := DatasetName; - Service := Self; - Columnas := Columns; - ColumnasQueSuman := CAMPOS_SUMA; - try - ds := GetNewDataSet; - finally - Free; - end; - end; - - // Fills the parameters (if any are specified) - if (Length(parnames) > 0) then - begin - for i := 0 to (Length(parnames) - 1) do - ds.ParamByName(parnames[i]).Value := parvalues[i]; - end; - - ds.Open; - ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); - except - FreeAndNIl(result); - raise; - end; - finally - FreeANDNil(pars); - end; -end; - - -function TsrvVentasEnProceso.GetSchema(const DatasetName, - Columns: String): Binary; -var - ds : IDADataset; -begin - result := Binary.Create; - try - with TReplicarDataSet.Create do - begin - SourceDataSetName := DatasetName; - Service := Self; - Columnas := Columns; - ColumnasQueSuman := CAMPOS_SUMA; - try - ds := GetNewDataSet; - finally - Free; - end; - end; - - ServiceAdapter.WriteDataset(result, ds, [woSchema]); - except - FreeAndNIl(result); - raise; - end; -end; - -initialization - TROClassFactory.Create('srvVentasEnProceso', Create_srvVentasEnProceso, TsrvVentasEnProceso_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj deleted file mode 100644 index 92783e2..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - VentasTerminadas.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - .\ - ..\..\..\..\Output\Debug\Cliente - ..\..\..\Lib - ..\..\..\Lib - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg deleted file mode 100644 index 396e927..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O- --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\..\..\Output\Cliente" --LN"..\..\..\Lib" --U"..\..\..\Lib" --O"..\..\..\Lib" --I"..\..\..\Lib" --R"..\..\..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof deleted file mode 100644 index 67fc858..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dof +++ /dev/null @@ -1,474 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\..\..\Output\Cliente -PackageDCPOutputDir=..\..\..\Lib -SearchPath=..\..\..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=2 -Item0=..\..\..\Lib -Item1=..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlBPLOutput] -Count=2 -Item0=..\..\..\..\Output\Cliente -Item1=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\..\..\Lib -Item1=..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk deleted file mode 100644 index c9847eb..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dpk +++ /dev/null @@ -1,84 +0,0 @@ -package VentasTerminadas; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION OFF} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD ON} - -requires - BaseD10, - rtl, - vcl, - PluginSDK_D10R, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - GUISDK_D10, - dbrtl, - dsnap, - adortl, - tb2k_D10, - tbx_D10, - JvCoreD10R, - vcljpg, - Jcl, - JclVcl, - JvSystemD10R, - JvPageCompsD10R, - JvStdCtrlsD10R, - cxTreeListD10, - dxThemeD10, - cxLibraryD10, - cxExportD10, - cxEditorsD10, - cxDataD10, - vcldb, - cxGridD10, - cxPageControlD10, - cxExtEditorsD10, - dxPSCoreD10, - dxComnD10, - dxPScxCommonD10, - dxPSLnksD10, - designide, - vclshlctrls, - dxPScxGridLnkD10, - dclcxLibraryD10, - ControlesBaseD10; - -contains - uPluginControllerVentasTerminadas in 'uPluginControllerVentasTerminadas.pas' {ModuleVentasTerminadas: TModuleController}, - uDataModuleVentasTerminadas in 'uDataModuleVentasTerminadas.pas' {dmVentasTerminadas: TDAClientDataModule}, - uBizVentasTerminadas in '..\Reglas\uBizVentasTerminadas.pas', - uBizControlVentasTerminadas in '..\Reglas\uBizControlVentasTerminadas.pas', - uEditorControlesVentasTerminadas in 'uEditorControlesVentasTerminadas.pas' {fEditorControlesVentasTerminadas: TCustomEditor}, - uViewControlesVentasTerminadas in 'uViewControlesVentasTerminadas.pas' {frViewControlesVentasTerminadas: TCustomView}, - uViewControlVentasTerminadas in 'uViewControlVentasTerminadas.pas' {frViewControlVentasTerminadas: TCustomView}, - uEditorControlVentasTerminadas in 'uEditorControlVentasTerminadas.pas' {fEditorControlVentasTerminadas: TCustomEditor}, - uViewControGridlVentasTerminadas in 'uViewControGridlVentasTerminadas.pas' {frViewControlGridVentasTerminadas: TCustomView}, - uViewControGridResumenVentas in 'uViewControGridResumenVentas.pas' {frViewControlGridResumenVentas: TCustomView}, - uEditorControlResumenVentas in 'uEditorControlResumenVentas.pas' {fEditorControlResumenVentas: TCustomEditor}, - schVentasTerminadasClient_Intf in '..\Reglas\schVentasTerminadasClient_Intf.pas', - schVentasTerminadasServer_Intf in '..\Reglas\schVentasTerminadasServer_Intf.pas'; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.identcache deleted file mode 100644 index 2c7033327ee07e471365e4f3aa36262c0850bd19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2168 zcmd6oO-{ow5JtlRxI<3B0a!Lgh()EUfvhYcD;~li*Mny4R^k%u_!Hcfq>T!)D$FX0 zm)6L7df&|WG|RHjlj2;>sSay!UUKbBUV``N8c{bAG$W}6N^bfR5;Y^XyE-2XQodw* zfZB_yG=tTuq`)<(1({&m>Z*NL%Qf&CoiF&b8OOuM|=$NBqfudb3k$Q>5QF?GM8M diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc deleted file mode 100644 index 169f997..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.rc +++ /dev/null @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res deleted file mode 100644 index bf4c1a49a442bef039b348cda86ff716dc7726f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp - Bitmap = {} - end - inherited LargeImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [9] - end - object dsVentasTerminadas: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm deleted file mode 100644 index 76a3061..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/_uViewControGridlVentasTerminadasCrossTab.dfm +++ /dev/null @@ -1,204 +0,0 @@ -inherited frViewControlGridVentasTerminadasCrossTab: TfrViewControlGridVentasTerminadasCrossTab - inherited cxGrid: TcxGrid - inherited cxGridView: TcxGridDBTableView - OnCustomDrawCell = cxGridViewCustomDrawCell - DataController.Summary.FooterSummaryItems = < - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = '0,0 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end> - OptionsView.CellAutoHeight = False - OptionsView.FooterAutoHeight = False - Preview.AutoHeight = False - end - end - inherited dsDataSource: TDADataSource - OnStateChange = dsDataSourceStateChange - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.Orientation = poLandscape - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.Caption = 'Venta mensual' - ReportDocument.CreationDate = 38952.779695636570000000 - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsFormatting.UseNativeStyles = True - OptionsView.Caption = False - OptionsView.FilterBar = False - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleDia: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clInactiveCaptionText - TextColor = clHighlightText - end - object cxStyleTotal: TcxStyle - AssignedValues = [svFont] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - object cxStyleImporte: TcxStyle - end - end - object cxEditRepository1: TcxEditRepository - Left = 32 - Top = 88 - object cxEditDia: TcxEditRepositoryTextItem - end - object cxEditImporte: TcxEditRepositoryCurrencyItem - Properties.Alignment.Horz = taRightJustify - Properties.UseThousandSeparator = True - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm deleted file mode 100644 index 700e83c..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.dfm +++ /dev/null @@ -1,576 +0,0 @@ -object dmVentasTerminadas: TdmVentasTerminadas - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 363 - Width = 600 - object RORemoteService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvVentasTerminadas' - Left = 48 - Top = 20 - end - object tbl_VentasTerminadas2: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = <> - Params = < - item - Name = 'FECHAINI' - DataType = datString - Value = '2006/01/01' - ParamType = daptInput - end - item - Name = 'FECHAFIN' - DataType = datString - Value = '2006/12/12' - ParamType = daptInput - end> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas2 - LocalDataStreamer = DABinDataStreamer1 - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'VentasTerminadas' - IndexDefs = <> - Left = 464 - Top = 72 - end - object tbl_VentasTerminadasCrossTab: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = <> - Params = < - item - Name = 'fechaini' - DataType = datString - Value = '' - ParamType = daptInput - end - item - Name = 'fechafin' - DataType = datString - Value = '' - ParamType = daptInput - end - item - Name = 'coleccion' - DataType = datString - Value = '%' - ParamType = daptInput - end> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapterCrossTab - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'VentasTerminadasCrossTab' - IndexDefs = <> - Left = 216 - Top = 224 - end - object ds_VentasTerminadasCrossTab: TDADataSource - DataSet = tbl_VentasTerminadasCrossTab.Dataset - DataTable = tbl_VentasTerminadasCrossTab - Left = 216 - Top = 288 - end - object DARemoteDataAdapterCrossTab: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaCrossTab' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'FechaIni' - DataType = rtString - Flag = fIn - Value = '01/01/2007' - end - item - Name = 'FechaFin' - DataType = rtString - Flag = fIn - Value = '31/01/2007' - end - item - Name = 'Coleccion' - DataType = rtString - Flag = fIn - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDataCrossTab' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'FechaIni' - DataType = rtString - Flag = fIn - Value = '01/01/2007' - end - item - Name = 'FechaFin' - DataType = rtString - Flag = fIn - Value = '31/01/2007' - end - item - Name = 'Coleccion' - DataType = rtString - Flag = fIn - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = dmBase.DABINAdapter - Left = 216 - Top = 168 - end - object DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchema' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasTerminadas' - end - item - Name = 'Columns' - DataType = rtString - Flag = fIn - Value = Null - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasTerminadas' - end - item - Name = 'Columns' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = RORemoteService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = RORemoteService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = RORemoteService - DataStreamer = DABinDataStreamer1 - Left = 464 - Top = 16 - end - object DABinDataStreamer1: TDABinDataStreamer - IsCompatibleV4 = False - Left = 48 - Top = 96 - end - object DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter - GetSchemaCall.RemoteService = RORemoteService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = RORemoteService - GetDataCall.MethodName = 'GetDatasetDataEx' - GetDataCall.Params = < - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - Value = Null - end - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - Value = 'VentasTerminadas' - end - item - Name = 'Params' - DataType = rtUserDefined - Flag = fIn - TypeName = 'TDADatasetParamArray' - Value = Null - end - item - Name = 'UserFilter' - DataType = rtString - Flag = fIn - Value = Null - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - Value = True - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - Value = -1 - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'aTableNameArray' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - UpdateDataCall.RemoteService = RORemoteService - GetScriptsCall.RemoteService = RORemoteService - RemoteService = RORemoteService - DataStreamer = DABinDataStreamer1 - Left = 216 - Top = 16 - end - object tbl_VentasTerminadas: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - InPrimaryKey = True - end - item - Name = 'CLAVE1' - DataType = datDecimal - InPrimaryKey = True - end - item - Name = 'CLAVE2' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'CLAVE3' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - DisplayLabel = 'Fecha' - end - item - Name = 'DIA' - DataType = datInteger - DisplayLabel = 'D'#237'a' - end - item - Name = 'DIASEMANA' - DataType = datWideString - Size = 30 - DisplayLabel = 'D'#237'a de la semana' - end - item - Name = 'MES' - DataType = datWideString - Size = 30 - DisplayLabel = 'Mes' - end - item - Name = 'ANO' - DataType = datInteger - DisplayLabel = 'A'#241'o' - end - item - Name = 'CENTRO' - DataType = datString - Size = 25 - DisplayLabel = 'Centro' - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 66 - DisplayLabel = 'Vendedor' - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DisplayLabel = 'C'#243'digo producto' - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DisplayLabel = 'Producto' - end - item - Name = 'GRUPOPRODUCTO' - DataType = datString - Size = 25 - DisplayLabel = 'Grupo' - end - item - Name = 'TIPOPRODUCTO' - DataType = datString - Size = 25 - DisplayLabel = 'Tipo' - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - DisplayLabel = 'Colecci'#243'n' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DisplayLabel = 'Color' - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - DisplayLabel = 'Talla' - Alignment = taRightJustify - end - item - Name = 'TALLA38' - DataType = datDecimal - DisplayLabel = '38' - Alignment = taRightJustify - end - item - Name = 'TALLA40' - DataType = datDecimal - DisplayLabel = '40' - Alignment = taRightJustify - end - item - Name = 'TALLA42' - DataType = datDecimal - DisplayLabel = '42' - Alignment = taRightJustify - end - item - Name = 'TALLA44' - DataType = datDecimal - DisplayLabel = '44' - Alignment = taRightJustify - end - item - Name = 'TALLA46' - DataType = datDecimal - DisplayLabel = '46' - Alignment = taRightJustify - end - item - Name = 'TALLA48' - DataType = datDecimal - DisplayLabel = '48' - Alignment = taRightJustify - end - item - Name = 'VTATERMDEV' - DataType = datDecimal - DisplayLabel = 'Vta.Term/Dev' - Alignment = taRightJustify - end - item - Name = 'VTAFINALRESC' - DataType = datDecimal - DisplayLabel = 'Vta.Final/Resc' - Alignment = taRightJustify - end - item - Name = 'VENTAS' - DataType = datDecimal - DisplayLabel = 'Ventas' - Alignment = taRightJustify - end - item - Name = 'DEVOLUCIONES' - DataType = datDecimal - DisplayLabel = 'Devoluciones' - Alignment = taRightJustify - end - item - Name = 'TOTAL' - DataType = datDecimal - DisplayLabel = 'Total ventas' - Alignment = taRightJustify - end - item - Name = 'VALTERMDEV' - DataType = datDecimal - DisplayLabel = 'Val.Term/Dev' - Alignment = taRightJustify - end - item - Name = 'VALFINALRESC' - DataType = datDecimal - DisplayLabel = 'Val.Final/Resc' - Alignment = taRightJustify - end - item - Name = 'VALVEN' - DataType = datDecimal - DisplayLabel = 'Imp. ventas' - Alignment = taRightJustify - end - item - Name = 'VALDEV' - DataType = datDecimal - DisplayLabel = 'Imp. devoluciones' - Alignment = taRightJustify - end - item - Name = 'VALTOT' - DataType = datDecimal - DisplayLabel = 'Imp. Total' - Alignment = taRightJustify - end> - Params = < - item - Name = 'FECHAINI' - Value = '' - ParamType = daptInput - end - item - Name = 'FECHAFIN' - Value = '' - ParamType = daptInput - end> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter_VentasTerminadas - LocalDataStreamer = DABinDataStreamer1 - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'VentasTerminadas' - IndexDefs = <> - Left = 216 - Top = 72 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas deleted file mode 100644 index 57a300c..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uDataModuleVentasTerminadas.pas +++ /dev/null @@ -1,127 +0,0 @@ -unit uDataModuleVentasTerminadas; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, - uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, - uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, - uBizVentasTerminadas, uBizControlVentasTerminadas, uDARemoteDataAdapter, - uDAInterfaces, uDAMemDataTable, uDADataStreamer; - -const - CATEGORIA_VENTA_TERMINADA = 'VENTATERMINADA'; - -type - TdmVentasTerminadas = class(TDAClientDataModule) - RORemoteService: TRORemoteService; - tbl_VentasTerminadas2: TDACDSDataTable; - tbl_VentasTerminadasCrossTab: TDACDSDataTable; - ds_VentasTerminadasCrossTab: TDADataSource; - DARemoteDataAdapterCrossTab: TDARemoteDataAdapter; - DARemoteDataAdapter_VentasTerminadas2: TDARemoteDataAdapter; - DABinDataStreamer1: TDABinDataStreamer; - DARemoteDataAdapter_VentasTerminadas: TDARemoteDataAdapter; - tbl_VentasTerminadas: TDACDSDataTable; - procedure DAClientDataModuleCreate(Sender: TObject); - protected - function GetItems : IBizVentasTerminadas; - public - function GetNameColumns: String; - function GetControl: IBizControlVentasTerminadas; - function GetItemsCrossTab : IBizResumenVentas; - end; - -var - dmVentasTerminadas: TdmVentasTerminadas; - -implementation - -{$R *.DFM} - -uses - Controls, Forms, DataAbstract3_Intf, uDataTableUtils, - uROTypes, uEditorPreview, Dialogs, uDataModuleControles, - uDataModuleBase, uDBSelectionList, schVentasTerminadasClient_Intf, cxControls; - - -procedure TdmVentasTerminadas.DAClientDataModuleCreate(Sender: TObject); -begin - RORemoteService.Channel := dmBase.Channel; - RORemoteService.Message := dmBase.Message; -end; - -function TdmVentasTerminadas.GetControl: IBizControlVentasTerminadas; -var - aDataTable : TDACDSDataTable; -begin - aDataTable := dmControles.GetItems(CATEGORIA_VENTA_TERMINADA); - aDataTable.BusinessRulesID := BIZ_CONTROL_VENTASTERMINADAS; - - (aDataTable as IBizControlVentasTerminadas).Items := GetItems; - Result := (aDataTable as IBizControlVentasTerminadas); -end; - -function TdmVentasTerminadas.GetItems: IBizVentasTerminadas; -var - dtVentas: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtVentas := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_VentasTerminadas2, dtVentas); - dtVentas.Fields.AssignFieldCollection(tbl_VentasTerminadas.Fields); - dtVentas.BusinessRulesID := BIZ_VENTASTERMINADAS; - - dtVentas.FieldByName(fld_VentasTerminadasNUMINF).Visible := False; - dtVentas.FieldByName(fld_VentasTerminadasCLAVE1).Visible := False; - dtVentas.FieldByName(fld_VentasTerminadasCLAVE2).Visible := False; - dtVentas.FieldByName(fld_VentasTerminadasCLAVE3).Visible := False; - - dtVentas.LoadSchema; - Result := (dtVentas as IBizVentasTerminadas); - finally - HideHourglassCursor; - end; -end; - - -function TdmVentasTerminadas.GetItemsCrossTab: IBizResumenVentas; -var - dtVentas: TDACDSDataTable; -begin - ShowHourglassCursor; - try - dtVentas := TDACDSDataTable.Create(NIL); - CloneDataTable(tbl_VentasTerminadasCrossTab, dtVentas); - dtVentas.BusinessRulesID := BIZ_RESUMENVENTAS; - Result := (dtVentas as IBizResumenVentas); - finally - HideHourglassCursor; - end; -end; - -function TdmVentasTerminadas.GetNameColumns: String; -var - AList : TStringList; - i : integer; -begin - AList := TStringList.Create; - try - for i := 0 to tbl_VentasTerminadas.FieldCount - 1 do - if tbl_VentasTerminadas.Fields[i].Visible then - AList.Add(tbl_VentasTerminadas.Fields[i].Name); - Result := AList.CommaText; - finally - FreeAndNil(AList); - end; -end; - -initialization - dmVentasTerminadas := TdmVentasTerminadas.Create(nil); - -finalization - FreeAndNil(dmVentasTerminadas); - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm deleted file mode 100644 index 2812d8b..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.dfm +++ /dev/null @@ -1,1700 +0,0 @@ -inherited fEditorControlResumenVentas: TfEditorControlResumenVentas - Left = 419 - Top = 239 - Caption = 'Resumen de ventas' - ClientHeight = 573 - ClientWidth = 679 - ExplicitWidth = 687 - ExplicitHeight = 607 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 679 - ExplicitWidth = 679 - inherited Image1: TImage - Left = 652 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C - 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 - 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF - EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 - B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B - 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 - 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF - 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C - 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 - C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 - 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 - 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 - 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 - FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 - 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 - B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F - 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 - A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F - E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 - B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 - F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 - 3F01A44422D9EF203E7B0000000049454E44AE426082} - ExplicitLeft = 652 - end - end - inherited TBXDock: TTBXDock - Width = 679 - ExplicitWidth = 679 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 469 - object TBXLabelItem2: TTBXLabelItem [0] - Caption = ' Mes:' - end - object edtMes: TTBXComboBoxItem [1] - Caption = 'Mes:' - EditWidth = 110 - DropDownList = True - MaxVisibleItems = 12 - MinListWidth = 100 - Strings.Strings = ( - 'Enero' - 'Febrero' - 'Marzo' - 'Abril' - 'Mayo' - 'Junio' - 'Julio' - 'Agosto' - 'Septiembre' - 'Octubre' - 'Noviembre' - 'Diciembre') - end - object TBXLabelItem3: TTBXLabelItem [2] - Caption = ' A'#241'o:' - end - object edtAno: TTBXSpinEditItem [3] - Caption = 'A'#241'o:' - SpaceAfterPrefix = False - SpaceBeforePostfix = False - end - object TBXLabelItem4: TTBXLabelItem [4] - Caption = ' Colecci'#243'n:' - end - object edtColeccion: TTBXEditItem [5] - Caption = 'Colecci'#243'n:' - ExtendedAccept = True - end - object TBXSeparatorItem19: TTBXSeparatorItem [6] - Blank = True - end - inherited TBXItem6: TTBXItem [7] - DisplayMode = nbdmImageAndText - end - object TBXSeparatorItem18: TTBXSeparatorItem [8] - end - inherited TBXItem2: TTBXItem [9] - end - inherited TBXSeparatorItem1: TTBXSeparatorItem [10] - end - inherited TBXItem29: TTBXItem [11] - end - inherited TBXItem27: TTBXItem [12] - end - inherited TBXItem5: TTBXItem [13] - end - inherited TBXItem4: TTBXItem [14] - end - inherited TBXSeparatorItem14: TTBXSeparatorItem [15] - end - inherited TBXItem33: TTBXItem [16] - Visible = False - end - inherited TBXSeparatorItem3: TTBXSeparatorItem [17] - end - inherited TBXItem23: TTBXItem [18] - end - inherited TBXSeparatorItem2: TTBXSeparatorItem [19] - end - inherited TBXItem24: TTBXItem [20] - end - inherited TBXItem3: TTBXItem [21] - end - object TBXSeparatorItem16: TTBXSeparatorItem [22] - end - object tbxiExpandir: TTBXItem [23] - Action = actExpandir - end - object tbxiContraer: TTBXItem [24] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [25] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - inherited TBXSeparatorItem10: TTBXSeparatorItem [26] - end - inherited TBXItem26: TTBXItem [27] - end - inherited TBXItem25: TTBXItem [28] - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 679 - inherited TBXSubmenuItem6: TTBXSubmenuItem - object TBXItem37: TTBXItem [0] - Action = actExpandir - end - object TBXItem36: TTBXItem [1] - Action = actContraer - end - object TBXItem35: TTBXItem [2] - Action = actAnchoAuto - end - object TBXSeparatorItem17: TTBXSeparatorItem [3] - end - end - end - inherited tbxFiltro: TTBXToolbar - Left = 469 - Visible = False - ExplicitLeft = 469 - end - end - inherited StatusBar: TStatusBar - Top = 554 - Width = 679 - ExplicitTop = 554 - ExplicitWidth = 679 - end - inline frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas [3] - Left = 0 - Top = 76 - Width = 679 - Height = 284 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitTop = 76 - ExplicitWidth = 679 - ExplicitHeight = 478 - inherited cxGrid: TcxGrid - Width = 679 - Height = 284 - ExplicitWidth = 679 - ExplicitHeight = 478 - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxComponentPrinterLink1: TdxGridReportLink - ReportDocument.CreationDate = 38952.790681423610000000 - BuiltInReportLink = True - end - end - end - object DBGrid1: TDBGrid [4] - Left = 0 - Top = 360 - Width = 679 - Height = 194 - Align = alBottom - DataSource = dsDataTable - TabOrder = 4 - TitleFont.Charset = DEFAULT_CHARSET - TitleFont.Color = clWindowText - TitleFont.Height = -11 - TitleFont.Name = 'Tahoma' - TitleFont.Style = [] - end - inherited EditorActionList: TActionList [5] - inherited actNuevo: TAction - Visible = False - end - inherited actModificar: TAction - Visible = False - end - inherited actEliminar: TAction - Visible = False - end - inherited actRefrescar: TAction - Caption = 'Ir' - ImageIndex = 16 - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - Visible = False - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - Visible = False - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - end - end - inherited SmallImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [7] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [8] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] - end - object dsVentasTerminadas: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas deleted file mode 100644 index 0abc4e6..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlResumenVentas.pas +++ /dev/null @@ -1,156 +0,0 @@ -unit uEditorControlResumenVentas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, - uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, - uViewControlVentasTerminadas, uEditorGridBase, uViewGridBase, uViewGrid, - uViewControGridResumenVentas, Menus, TB2ExtItems, TBXExtItems, - uBizVentasTerminadas, StdCtrls, uDAInterfaces; - -type - IEditorControlResumenVentas = interface(IEditorGridBase) - ['{FC3218D5-319A-4ECF-88E9-0CB8655EDFA9}'] - function GetItems: IBizResumenVentas; - procedure SetItems(const Value: IBizResumenVentas); - property Items: IBizResumenVentas read GetItems write SetItems; - end; - - TfEditorControlResumenVentas = class(TfEditorGridBase, IEditorControlResumenVentas) - dsVentasTerminadas: TDADataSource; - TBXSeparatorItem16: TTBXSeparatorItem; - tbxiExpandir: TTBXItem; - tbxiContraer: TTBXItem; - tbxiAnchoAuto: TTBXItem; - actExpandir: TAction; - actContraer: TAction; - actAnchoAuto: TAction; - TBXItem37: TTBXItem; - TBXItem36: TTBXItem; - TBXItem35: TTBXItem; - TBXSeparatorItem17: TTBXSeparatorItem; - edtMes: TTBXComboBoxItem; - edtAno: TTBXSpinEditItem; - frViewControlGridResumenVentas1: TfrViewControlGridResumenVentas; - TBXLabelItem2: TTBXLabelItem; - TBXLabelItem3: TTBXLabelItem; - TBXSeparatorItem18: TTBXSeparatorItem; - edtColeccion: TTBXEditItem; - TBXLabelItem4: TTBXLabelItem; - TBXSeparatorItem19: TTBXSeparatorItem; - DBGrid1: TDBGrid; - procedure actAnchoAutoExecute(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure actRefrescarExecute(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - protected - FItems : IBizResumenVentas; - function GetItems: IBizResumenVentas; - procedure SetItems(const Value: IBizResumenVentas); - public - property Items: IBizResumenVentas read GetItems write SetItems; - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -uses - cxControls, uEditorUtils, DateUtils, uROClasses, cxGridTableView, uCustomEditor, uEditorBase; - -{$R *.dfm} - -{ TfEditorControlVentasTerminadas } - -procedure TfEditorControlResumenVentas.actAnchoAutoExecute(Sender: TObject); -begin - inherited; - frViewControlGridResumenVentas1.AjustarAncho; -end; - -procedure TfEditorControlResumenVentas.FormShow(Sender: TObject); -begin - inherited; - - if not Assigned(FItems) then - raise Exception.Create('No hay items asignados'); - - if not Assigned(ViewGrid) then - raise Exception.Create('No hay una vista asignada'); - - //Inicializar - edtMes.ItemIndex := (MonthOf(Today)-1); - edtAno.Value := YearOf(Today); -end; - -procedure TfEditorControlResumenVentas.actImprimirExecute(Sender: TObject); -begin - inherited; - frViewControlGridResumenVentas1.Print(edtMes.Text, edtAno.Text); -end; - -constructor TfEditorControlResumenVentas.Create(AOwner: TComponent); -begin - inherited; - ViewGrid := frViewControlGridResumenVentas1; - Self.Caption := 'Resumen de ventas mensuales por centro'; - JvNavPanelHeader.Caption := Self.Caption; -end; - -function TfEditorControlResumenVentas.GetItems: IBizResumenVentas; -begin - Result := FItems; -end; - -procedure TfEditorControlResumenVentas.SetItems( - const Value: IBizResumenVentas); -begin - FItems := Value; - if Assigned(FItems) then - begin - dsDataTable.DataTable := FItems.DataTable; - frViewControlGridResumenVentas1.dsDataSource.DataTable := FItems.DataTable; - end; -end; - -procedure TfEditorControlResumenVentas.actRefrescarExecute(Sender: TObject); -var - AuxDate: TDateTime; - UltimoDia: Integer; - i : Integer; - -begin - AuxDate := EncodeDate(edtAno.AsInteger , (edtMes.ItemIndex + 1), 1); - - ShowHourglassCursor; - try - with FItems do - begin - if DataTable.Active then - DataTable.Active := False; - - DataTable.ParamByName('FECHAINI').AsString := DateToStr(StartOfTheMonth(AuxDate)); - DataTable.ParamByName('FECHAFIN').AsString := DateToStr(EndOfTheMonth(AuxDate)); - DataTable.ParamByName('COLECCION').AsString := edtColeccion.Text; - - if not DataTable.Active then - DataTable.Active := True; - end; - finally - HideHourglassCursor; - end; -end; - -procedure TfEditorControlResumenVentas.actPrevisualizarExecute(Sender: TObject); -begin - frViewControlGridResumenVentas1.Preview(edtMes.Text, edtAno.Text); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm deleted file mode 100644 index f500fce..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.dfm +++ /dev/null @@ -1,1776 +0,0 @@ -inherited fEditorControlVentasTerminadas: TfEditorControlVentasTerminadas - Left = 531 - Top = 329 - Caption = 'fEditorControlVentasTerminadas' - ClientHeight = 573 - ClientWidth = 679 - OnCreate = CustomEditorCreate - OnGetModified = CustomEditorGetModified - ExplicitWidth = 687 - ExplicitHeight = 607 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 679 - ExplicitWidth = 679 - inherited Image1: TImage - Left = 652 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C - 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 - 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF - EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 - B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B - 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 - 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF - 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C - 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 - C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 - 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 - 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 - 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 - FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 - 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 - B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F - 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 - A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F - E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 - B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 - F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 - 3F01A44422D9EF203E7B0000000049454E44AE426082} - ExplicitLeft = 652 - end - end - inherited TBXDock: TTBXDock - Width = 679 - ExplicitWidth = 679 - inherited tbxMain: TTBXToolbar - ExplicitWidth = 679 - object TBXSeparatorItem16: TTBXSeparatorItem [13] - end - object tbxiExpandir: TTBXItem [14] - Action = actExpandir - end - object tbxiContraer: TTBXItem [15] - Action = actContraer - end - object tbxiAnchoAuto: TTBXItem [16] - Action = actAnchoAuto - DisplayMode = nbdmImageAndText - end - end - inherited tbxMenu: TTBXToolbar - ExplicitWidth = 679 - inherited TBXSubmenuItem6: TTBXSubmenuItem - object TBXItem37: TTBXItem [0] - Action = actExpandir - end - object TBXItem36: TTBXItem [1] - Action = actContraer - end - object TBXItem35: TTBXItem [2] - Action = actAnchoAuto - end - object TBXSeparatorItem17: TTBXSeparatorItem [3] - end - end - end - end - inherited StatusBar: TStatusBar - Top = 554 - Width = 679 - ExplicitTop = 554 - ExplicitWidth = 679 - end - inline frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas [3] - Left = 0 - Top = 76 - Width = 679 - Height = 478 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitTop = 76 - ExplicitWidth = 679 - ExplicitHeight = 478 - inherited TBXMultiDock1: TTBXMultiDock - Width = 234 - Height = 478 - ExplicitWidth = 234 - ExplicitHeight = 478 - inherited pnlParametros: TTBXDockablePanel - DockedWidth = 230 - SplitHeight = 258 - ExplicitWidth = 234 - ExplicitHeight = 258 - inherited TBXAlignmentPanel2: TTBXAlignmentPanel - Width = 230 - ExplicitWidth = 230 - inherited TBXLink1: TTBXLink - Width = 222 - ExplicitWidth = 222 - end - inherited TBXLink5: TTBXLink - Width = 222 - ExplicitWidth = 222 - end - inherited TBXLink2: TTBXLink - Width = 222 - ExplicitWidth = 222 - end - end - inherited pcParametros: TPageControl - Width = 230 - Height = 138 - ExplicitWidth = 230 - ExplicitHeight = 138 - inherited TabSheet5: TTabSheet - ExplicitHeight = 0 - inherited frViewPeriodoFechas1: TfrViewPeriodoFechas - Height = 0 - ExplicitHeight = 0 - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - inherited cbPeriodo: TcxComboBox - ExplicitWidth = 125 - Width = 125 - end - end - end - end - inherited tsColumnas: TTabSheet - ExplicitHeight = 0 - inherited frViewColumnas1: TfrViewColumnas - Height = 0 - ExplicitHeight = 0 - inherited lbColumnas: TcxCheckListBox - Height = 0 - ExplicitHeight = 0 - end - end - end - inherited tsAgrupacion: TTabSheet - ExplicitWidth = 222 - ExplicitHeight = 128 - inherited frViewAgrupaciones1: TfrViewAgrupaciones - Width = 222 - Height = 128 - ExplicitWidth = 222 - ExplicitHeight = 128 - inherited TBXLabel1: TTBXLabel - Width = 222 - ExplicitWidth = 222 - end - inherited pnlAgrupaciones: TTBXAlignmentPanel - Width = 222 - ExplicitWidth = 222 - inherited TBXButton1: TTBXButton - Width = 109 - ExplicitWidth = 109 - end - inherited TBXButton3: TTBXButton - Width = 109 - ExplicitWidth = 109 - end - inherited TBXButton2: TTBXButton - Width = 109 - ExplicitWidth = 109 - end - end - end - end - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 206 - Width = 230 - ExplicitTop = 206 - ExplicitWidth = 230 - end - end - inherited pnlTareas: TTBXDockablePanel - Top = 258 - DockedWidth = 230 - DockPos = 258 - SplitHeight = 204 - ExplicitTop = 258 - ExplicitWidth = 234 - ExplicitHeight = 204 - inherited TBXPageScroller1: TTBXPageScroller - Width = 230 - Height = 182 - ExplicitWidth = 230 - ExplicitHeight = 182 - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 230 - ExplicitWidth = 230 - inherited bFiltros: TTBXLink - Width = 222 - ExplicitWidth = 222 - end - inherited bSumarios: TTBXLink - Width = 222 - ExplicitWidth = 222 - end - end - inherited pcTareas: TPageControl - Width = 230 - Height = 134 - ExplicitWidth = 230 - ExplicitHeight = 134 - inherited tsSumarios: TTabSheet - ExplicitHeight = 48 - inherited frViewSumarios1: TfrViewSumarios - Height = 48 - ExplicitHeight = 48 - inherited vgSumarios: TcxVerticalGrid - Height = 19 - ExplicitHeight = 19 - end - end - end - inherited tsFiltros: TTabSheet - ExplicitWidth = 222 - ExplicitHeight = 124 - inherited frViewFiltros1: TfrViewFiltros - Width = 222 - Height = 124 - ExplicitWidth = 222 - ExplicitHeight = 124 - inherited TBXLabel1: TTBXLabel - Width = 222 - ExplicitWidth = 222 - end - inherited cxFilterControl1: TcxFilterControl - Width = 222 - Height = 65 - ExplicitWidth = 222 - ExplicitHeight = 65 - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 94 - Width = 222 - ExplicitTop = 94 - ExplicitWidth = 222 - end - inherited cxStyleRepository1: TcxStyleRepository - Top = 72 - end - end - end - end - end - end - end - inherited frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas - Left = 234 - Width = 445 - Height = 478 - ExplicitLeft = 234 - ExplicitWidth = 445 - ExplicitHeight = 478 - inherited cxGrid: TcxGrid - Width = 445 - Height = 478 - ExplicitWidth = 445 - ExplicitHeight = 478 - inherited cxGridView: TcxGridDBTableView - DataController.DataSource = dsVentasTerminadas - end - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - BuiltInReportLink = True - end - end - end - end - inherited EditorActionList: TActionList [4] - inherited actConfPagina: TAction - OnExecute = actConfPaginaExecute - end - object actExpandir: TAction - Category = 'Ver' - Caption = 'Expandir todo' - ImageIndex = 21 - OnExecute = actExpandirExecute - end - object actContraer: TAction - Category = 'Ver' - Caption = 'Contraer todo' - ImageIndex = 22 - OnExecute = actContraerExecute - end - object actAnchoAuto: TAction - Category = 'Ver' - Caption = 'Ancho autom'#225'tico' - ImageIndex = 23 - OnExecute = actAnchoAutoExecute - end - end - inherited SmallImages: TPngImageList [5] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 - 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD - 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E - E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 - 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF - FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 - E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 - C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF - 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 - 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A - 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA - 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 - 000005100EB8572466A60000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001074944415478DA - 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A - C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 - AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 - 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 - C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 - CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 - B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 - 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 - 0029AC32F01825AACD0000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001514944415478DA - 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 - CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 - 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 - 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D - F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 - C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 - 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 - 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB - FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E - 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED - 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA - 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF - 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 - 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 - E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 - BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 - 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F - E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D - CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C - 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 - B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 - 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF - DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 - 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F - D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE - D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 - CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 - FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED - 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 - EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E - 44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA - A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 - 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 - 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F - 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 - 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 - 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA - 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E - 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 - E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 - 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 - 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 - 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB - 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 - 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 - E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 - D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 - 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 - A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E - AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 - 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 - 5538F0EAB25B380000000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001934944415478DA - 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 - 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 - 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F - FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F - B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 - 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 - 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC - 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 - 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF - 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E - C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 - 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 - 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 - 82} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD - D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 - 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF - DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C - 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B - B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD - D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 - AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 - 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 - DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 - 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 - D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 - 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 - 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 - F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A - A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F - AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 - 19FE00839434866373C4BA0000000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 - E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 - 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 - CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 - D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 - AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 - 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 - D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD - 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 - C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D - E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 - 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F - 16FA1194E3DBC30000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 - 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA - 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 - 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B - A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 - B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE - 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 - 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E - 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D - 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE - F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 - E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000016A4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA - 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA - 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 - F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 - FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD - D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 - 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C - E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 - FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B - CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 - BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 - 0090010087546EF0ACB0C7920000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001024944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 - FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 - 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 - 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 - B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 - 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B - 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 - CDA578040000000049454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001C04944415478DA - 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 - 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F - 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 - 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF - 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E - 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F - 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB - 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 - CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 - 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 - F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C - 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 - F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 - 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C - 80060000000049454E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA - 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF - CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B - 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E - 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 - B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 - 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 - EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 - 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 - 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB - 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 - A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A - 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA - E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C - EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 - D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E - 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 - 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 - 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA - 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 - A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D - 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF - 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 - EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 - 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 - 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 - CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 - 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 - F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D - B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D - 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 - 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE - 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 - 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D - 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 - 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 - FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 - 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 - E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 - 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 - 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD - BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 - 503A4EA60D6AAC070000000049454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA - 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 - 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E - C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC - 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 - 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 - BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 - 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB - B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 - 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 - E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 - 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 - 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 - 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 - 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF - 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF - 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 - 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF - AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 - 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 - E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 - 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 - CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD - DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 - 3FA68502A9830000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA - 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD - 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 - 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 - E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF - 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 - 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 - EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 - EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 - 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF - 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 - BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 - 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 - EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 - 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 - 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 - 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 - 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 - FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 - D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 - 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB - EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F - A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE - CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 - D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF - EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 - EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA - 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B - 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB - 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 - F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED - AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F - 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB - C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF - A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C - 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C - CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A - 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A - 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF - 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 - FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 - 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 - 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 - F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB - 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C - B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 - 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 - F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C - E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F - CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E - 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 - 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 - 000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F - FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA - 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 - D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 - 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 - 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 - DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C - 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 - 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 - ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 - 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 - 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 - 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA - 0000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000015D4944415478DA - 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 - 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 - 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 - E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 - 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 - 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 - 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 - BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 - 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 - E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 - 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 - 00000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001B04944415478DA - 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 - C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 - FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 - 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E - 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 - 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 - CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 - 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 - 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 - 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 - F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 - D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 - 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A - 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD2520000019E4944415478DA - 63FCFFFF3F032580119FE4D64553FE7FF8F001437C9FC439C20680343B392269 - FEF11E883F30DCBFCFC070FE81220383A3006E03609A6BCAF631B47439C135C3 - E9EFEF197A3F00C5253F3030AEDB73092510D89F1D62006BAE3BC7D0D2640431 - A44A11AEF9C3FBFB0CEF8166CCFD013440E13DC48040675DB0E66D8BA7C23597 - 141931F4F4010D291264A8E9BBCF5012F89EE1FD0BA017809A7BD73130280619 - 32306830200C00693632FC00D1347D05434D66044349922043CFBCF70C2D91F7 - 19BCEB10E1A169AAC9709DE70783A2A100AA0B4A9282C19A7FFFF90BC4FF18DA - 0A6319923DEF33E4F47D6098B1E22443787A3DC3F99DD3C1E1E654E904F63ADC - 803F7FFF31FC016B846806D1207E7F6532437AFD0C865FBFFF32C4E634C10D80 - 4723C8005F076DAC9A4186823482F06F204E2A6CC56E80A78D06C3DC45BBC102 - 2141B60C6BD61DC6885A530B1D868CD20EEC06B858A8E2B5F9D71F089D5BD58D - DD007B136586E5AB0E80057CBC2D18B66C3D81E1026D7D3586A2BA3EEC065819 - 28E0B519E43210C0694073F77442990E0E300CA0343B030039812D6AB16B7539 - 0000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000DF4944415478DA - 63FCFFFF3F032580916203600C9E351CFF19FE3130FCFF09A47EFD67F89EFC0B - 2E67E09180D596F3DBE733220C58C5F17F89572FC3FBAF1F1832D73630FCC8FA - CDC84000805CCF886CF314B73A86F7DF3E32546EEC63F8FF0B22F6BBF62FDCA0 - 8482061497CCEFAF676444B619A41946BFF9FC8E61CDBE7D0C7F5AFF32E27501 - F762F6FF309B9135BF06E20347CE33FCEDF987DF059C73D9FE839CFA1F1870A9 - 56C1709BC181F903283EE53F7E17C0386C5D2CFF838C1DB1DA4C542CB03633FF - FFFF8381289BB1BA801880350C48316008BB006F2C509A1B0127B3B6E11C11A1 - 6B0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000000914944415478DA - 63FCFFFF3F032580916203885164E09180D596F3DBE733320265C09220E23312 - FE02C41F80D8158F2520D7430C9838112CF0F7F74F868F4F6F33BC7F7283E1CB - EBC70C770E3C6008413220A1A001C525F3FBEB1919FF010D60041A80AE1904CE - 000D4821E4828F401ADDD91FA1F41F20CE20E4024A6200EC028A63812E2E18F8 - 30187817E0CF0B14E64600B6F869E1FAECCCBE0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001124944415478DA - 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 - 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC - 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 - 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 - 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC - E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC - 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 - CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 - 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited LargeImages: TPngImageList [6] - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000774494D45000000000000000973942E000000097048597300001712 - 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 - 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F - 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 - B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 - A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 - EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 - 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 - 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 - F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 - CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A - C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 - 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 - B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 - 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 - F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 - 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 - 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 - 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 - 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 - BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 - 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 - C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 - 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 - C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 - C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F - 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E - A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 - 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA - 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 - 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 - F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 - 682F0000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000032A4944415478DA - BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 - 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C - 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D - 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC - 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 - EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F - 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 - 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 - AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C - AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 - F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D - ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 - 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 - 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 - 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F - F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 - C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 - FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C - C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 - E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 - E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 - A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D - 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD - AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A - 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 - B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} - Name = 'PngImage2' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000022C4944415478DA - 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF - 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 - 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 - 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 - 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 - 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 - D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 - 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 - 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 - 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 - F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 - 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F - 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 - FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE - 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC - 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 - 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 - 02140B6805009C1383EFACA508270000000049454E44AE426082} - Name = 'PngImage3' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA - B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 - 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E - 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 - 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 - E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 - 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA - BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 - 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 - 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F - 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 - 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 - D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 - EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 - 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D - 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D - 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 - 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA - 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 - 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 - 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E - 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 - BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 - 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 - A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 - 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 - 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA - 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 - C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 - 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C - 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D - 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 - 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 - F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 - 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 - 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 - BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 - 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D - 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C - 4A0000000049454E44AE426082} - Name = 'PngImage4' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA - B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B - 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 - 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 - B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE - A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 - 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 - 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C - 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 - D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E - A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C - EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A - 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 - BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC - 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E - 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F - BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 - 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 - D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 - 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 - 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 - C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 - 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E - 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 - 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 - FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 - 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C - 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 - DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 - 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 - BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 - A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C - A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 - C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C - 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 - 00000049454E44AE426082} - Name = 'PngImage5' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000027F4944415478DA - 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 - 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 - F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 - 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D - 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F - E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 - 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 - 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA - 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B - C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 - F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF - 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F - C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 - 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D - 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 - C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 - 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 - 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB - 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 - 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 - FA0000000049454E44AE426082} - Name = 'PngImage6' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000037C4944415478DA - B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 - 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 - 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 - 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F - 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 - FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 - E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 - CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 - 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB - 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 - C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 - 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 - 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 - C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 - 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE - 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 - 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B - 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB - B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 - F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 - B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F - E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 - 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C - 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C - E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E - 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 - 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 - 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 - 000049454E44AE426082} - Name = 'PngImage7' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA - 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 - 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 - E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D - 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 - 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 - D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 - 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF - C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 - CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 - AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F - 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 - 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 - A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 - DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 - 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 - F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 - 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 - 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 - 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 - 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} - Name = 'PngImage8' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA - B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 - D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 - 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F - EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 - B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE - 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 - CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 - 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C - 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 - 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E - 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 - 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED - 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 - 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D - CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 - D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 - 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A - B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 - 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 - 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 - 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE - 426082} - Name = 'PngImage9' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000029E4944415478DA - 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 - 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 - F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 - 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 - C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 - 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD - D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA - 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 - CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 - 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 - 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 - 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B - E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC - DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 - 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 - E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 - EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 - AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 - 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 - 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B - 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 - 0000000049454E44AE426082} - Name = 'PngImage10' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA - ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 - F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 - F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF - CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B - 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D - 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD - 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 - A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE - 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 - F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 - 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF - A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C - D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 - 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 - 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F - EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E - 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 - 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 - DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C - A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA - F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 - 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E - 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC - BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D - 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 - 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 - F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 - 49454E44AE426082} - Name = 'PngImage11' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000003784944415478DA - B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 - AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A - BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 - 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A - 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 - 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 - 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 - E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 - 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 - 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A - B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 - FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 - 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 - DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 - 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 - 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC - 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 - FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 - 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 - 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F - 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B - 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 - D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA - 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F - 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 - EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 - 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F - 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 - 4E44AE426082} - Name = 'PngImage12' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA - BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 - 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 - 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C - 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 - A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F - 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 - E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA - 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F - 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE - 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A - B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 - 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 - 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 - 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 - 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F - 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 - B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE - AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 - E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 - 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA - 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD - E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 - E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 - 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 - 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 - 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C - 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 - 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE - 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 - 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C - 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 - 000049454E44AE426082} - Name = 'PngImage13' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA - AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 - 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 - A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 - 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 - CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 - 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 - B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E - 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 - 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 - 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 - 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F - 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D - F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D - AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 - 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E - C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 - 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 - CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A - 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 - 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 - D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D - D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA - 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 - C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 - 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 - D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 - 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 - 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 - 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE - 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 - B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 - 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 - 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 - 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 - 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 - 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 - 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB - 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 - 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF - 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 - F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 - F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 - 49454E44AE426082} - Name = 'PngImage14' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA - AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED - C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B - 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 - 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 - 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 - B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB - 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 - 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 - 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 - 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 - 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 - A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 - E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A - EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 - 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 - 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 - 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A - 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 - 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC - 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 - F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 - 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 - B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A - 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 - 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E - 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F - 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC - 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 - D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D - 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B - D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC - F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 - 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA - 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 - C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF - BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 - 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F - 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 - 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 - 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 - 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 - 88E7298D620000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA - 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E - 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 - D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 - F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B - 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 - C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB - B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A - 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD - 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 - 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 - 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C - 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 - 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 - 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E - 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 - 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 - 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F - 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 - 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA - 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 - 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 - 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 - 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 - 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC - 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 - 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 - D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 - 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 - 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 - F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 - 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 - FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 - 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B - FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 - 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 - 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 - E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF - 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 - 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F - 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 - 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 - 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 - 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 - 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 - 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 - FE66E507F40000000049454E44AE426082} - Name = 'PngImage16' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA - 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 - F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 - 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 - F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC - AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 - 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 - ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA - A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 - E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 - 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 - 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 - 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 - BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 - C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 - E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 - 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF - 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF - 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B - C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 - 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 - C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B - 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 - 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B - 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 - A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 - 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 - EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 - DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 - 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F - 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D - F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D - 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 - 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 - A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 - E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 - 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 - 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A - 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 - 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 - 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 - AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 - 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB - 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 - 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C - 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 - 2F15D20000000049454E44AE426082} - Name = 'PngImage15' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002814944415478DA - 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF - 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 - EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A - 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC - 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 - E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 - 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 - 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 - 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F - 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 - BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A - 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 - 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A - 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 - 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 - 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F - C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 - 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 - 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 - CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 - 5838D40000000049454E44AE426082} - Name = 'PngImage17' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000026D4944415478DA - B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 - 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 - ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C - F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB - 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB - 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 - E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A - 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D - 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 - 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B - 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 - 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 - D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 - C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C - 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 - 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F - 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 - CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 - 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 - 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} - Name = 'PngImage18' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F8000000097048597300004E2000004E2001167D99DE000004124944415478DA - ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 - 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 - 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A - 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 - 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB - A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 - 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 - 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 - 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 - E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B - 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F - BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 - 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD - 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A - 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 - D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 - 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 - 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 - BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C - 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 - E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D - B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 - F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 - D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 - D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB - 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 - D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 - 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 - BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 - 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF - 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC - 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A - 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} - Name = 'PngImage19' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000002F14944415478DA - D596494C135118C7FF25404B03B614098807C1A84823081421EC0112A322211E - B89078E064E2050F9A885E8C8683CB4D0D116334C881C42A1A448301458C0BC4 - 22298A6C6915D9B1EDD0D26576674ADAD8141968C2C1974CBE37F3BDF9FDDEFB - 66DE64643CCF632B9B6CCB051B1DD8D972AB5E08E7098248FCD798D78983A109 - 04F89C10128B8B098487B1E0680A2C4582A53DE07C71651EEFEC51988C49813A - 4EBD718100E7755A13E8DFA3502B59C8927282E134098E7481A11C3050F1988B - CB822A761B3C24B5BE4084E76698E1FC69C0AB4F6158B2F238532B03A9D606C0 - 59CA03561070941B46670C4C09B9881104768713B2F61EE39ACF593EDB87C2AC - 092C7C1F42FF68246AEA4A414C0EA1456FC1C9232CC2637782659855B8001605 - 2CE98191D4602C4E8748A502F61541F0A4DBC89FA8480F80BF7878DB0B9F1B31 - E2DB8F0854D69678E1C3331A704E2B2CF356E469192855D1A0296A55E2718126 - DD18B0A930AAC946A45A29AC60255820C2C5B258C73F63782A1EF21D3A6C978F - E1D70C8D283987FC4C0568B7036F7A1790B68B44B48201CFD26084076F5E64D0 - 33AD06959A8E70B502B6657BA04084A7259B10661B449F51859A737AB01C07FD - DDCB48D698A04D910975A76018F64097AE80FEE957B4F79301AB4FCADD078536 - 01B4503E1B610F5EC1E3E60B981E1FC4A9C6E75E38CB72E0381E2F5B2F41EE1A - 00870814E5A8B06C36E274338DB3D73A71B1F126BE7435F95F98F286725EA190 - 83A2E84081085A85F201705FFFDED57AD41D73F8E177DA063031B51424F049BC - FBC0279082FB72F76F34A0F77D9717CE08D7CD33963505FE8D260AAACB0E6C08 - FEF72444B8989B9AB7490B8E976A438233C2F9ECE2B2B4E068519AF7E607ADDD - FE447555019E757C58F733925F9881058B435A70B82075D333F746E1B0104E69 - 4145DEDE90E062241C6E6941D9A13D5E50DBA3B7FE4455653E3A3A3FAE5BA283 - D9FBE17091D28212DDEE4DCFDCD77793B4B4A030331986916984DA240557AE37 - 850CF7B57F0AFEFBBF8A3FEEF0D2AAE4F624F60000000049454E44AE426082} - Name = 'PngImage20' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000014D4944415478DA - 63FCFFFF3F032D0123CD2D40E6182E3104DBF6EFEF3F86BF7FFF32FCFD03C1B7 - B26EC1D519782490E4220C0BB2A24D5114744CD9CB7037F72E5C1D171717F916 - E82FD4FF9F1367CEF0F5DB2F861F3FFF30FCFCF58761FEF2130C0F0A1F309262 - 288A05E8C1929F68C5F0F6FD37B0E13F7FFD6558B2EA244A70BDAE7F8D6219A1 - 2063C4162CCF5E7E021B0EF30588FDFDC71F86EDDBCE30BC6B7E47926F18B105 - 0B36C39FBEFACC70FEC435868FED1F49F381CE3C9DFFE8C1826EF8F79FBF19DE - 7DFCC170FAC82586AFDD5F49F381E62CCDFF45A9B65883E5CEA3F7288A4FEC3F - CFF063C20FD27CA0364DED3F2C124111EDEBA98F112C7FFEFC61F8FB1BA2E6F7 - 94DFA4F9009923DD29FDDFD34D1F6FB05094D1245A25FE3B3BE9815D8E2B5828 - CA68A28DA2FF61E99D9260C1690139806024536AC1A80F86A10F28CA68C40092 - 33DA906F550000E7732B02C862110D0000000049454E44AE426082} - Name = 'PngImage21' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000000AA4944415478DA - 63FCFFFF3F032D0123CD2D205583814702492E22D9022E2E2EDA5A402A60043A - 07EE2210E33B10FFC0427F05E26F40EC85E628424106B160E24484C8C78F0C0C - 1F3E3030BC7F0FA1DFBD636078FB9681E1CD1B86B52F5E308490E86B540BF018 - 0EC28BFFFC618823D507FF801630822C20603803D0F099400D19A4FA0018B6FF - F185393266C06201411F90E21A72C06846A3BD05432F92477D30F03E187C196D - C8B72A00572A73F3ECEFF30C0000000049454E44AE426082} - Name = 'PngImage22' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD2520000018C4944415478DA - 63FCFFFF3F032D01E3A8054459C0C8C8C860E091F0FFC28E058C843490AA8E3E - 16187A26D22C9C864910812CA079102DD87000251E40E23F7FFE62F8F90B827F - C0D8405A47439528753D15A98C2816C4FBDBA3D8FEFBCF5F08FEFD17CEEE98B1 - 9461626D1651EA26D565E3B6009BA64BB75E306CD8B183617A733E51EA66B414 - 60B7009BA6DF7FFE315CBFF78A61F9860D0C0BBACB8952B7B0A70261C1FCF5FB - FF270438E0D404A2EF3C7ACB307FC54A861593EB8852B7724A3DC282192B76FE - 4F0A76C6A9E91750ECD1F30F0CD3162C625833BD8928759BE6B4212C98B868F3 - FF9450379C9A40F8C59BCF0C7D336633AC9FDD4694BA5D4B7A111674CD59FB3F - 2DCC13A7A65FBFFF30BCFBF89DA175E21486CD73BB88527778F51484054D5397 - FFCF8CF4C1A9E9D7AFBF0C5FBEFF62A8EDEC61D8B6B09F2875A737CF415850DD - BFF07F76B43F3889E103152D1D0CDB164D204A1D4A5151D231FBFF2F600EFCF5 - EB37C3F71F3F187EFCF809A47F42E89F20FA0730DCFF8035DB599912A50E6E01 - 2DC1D0B7000029AD9AF9DFD03E1F0000000049454E44AE426082} - Name = 'PngImage23' - Background = clWindow - end> - Bitmap = {} - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] - end - object dsVentasTerminadas: TDADataSource - Left = 320 - Top = 232 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas deleted file mode 100644 index cfb7138..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlVentasTerminadas.pas +++ /dev/null @@ -1,241 +0,0 @@ -unit uEditorControlVentasTerminadas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, - JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, - PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, - TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, - uCustomView, uViewBase, uViewControlBase, uViewControlVentasTerminadas, - Grids, DBGrids, pngimage, uDAInterfaces; - -type - IEditorControlVentasTerminadas = interface(IEditorControlBase) - ['{721FAE24-2440-44FA-B681-6E3C2BD656FE}'] - end; - - TfEditorControlVentasTerminadas = class(TfEditorControlBase, IEditorControlVentasTerminadas) - dsVentasTerminadas: TDADataSource; - TBXSeparatorItem16: TTBXSeparatorItem; - tbxiExpandir: TTBXItem; - tbxiContraer: TTBXItem; - tbxiAnchoAuto: TTBXItem; - actExpandir: TAction; - actContraer: TAction; - actAnchoAuto: TAction; - TBXItem37: TTBXItem; - TBXItem36: TTBXItem; - TBXItem35: TTBXItem; - TBXSeparatorItem17: TTBXSeparatorItem; - frViewControlVentasTerminadas1: TfrViewControlVentasTerminadas; - procedure actRefrescarExecute(Sender: TObject); - procedure actExpandirExecute(Sender: TObject); - procedure actContraerExecute(Sender: TObject); - procedure actAnchoAutoExecute(Sender: TObject); - procedure CustomEditorCreate(Sender: TObject); - procedure CustomEditorGetModified(Sender: TObject; - var Modified: Boolean); - procedure actGuardarExecute(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure actPrevisualizarExecute(Sender: TObject); - procedure actImprimirExecute(Sender: TObject); - procedure actConfPaginaExecute(Sender: TObject); - procedure frViewControlVentasTerminadas1bRefrescarClick( - Sender: TObject); - private - procedure RestaurarConfiguracion; - procedure GuardarConfiguracion; - protected - FModificado : Boolean; - procedure OnViewControlChanged(Sender: TObject); - procedure SetControl(const Value: IBizControlBase); override; - procedure RellenarCabeceraInforme; override; - public - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -uses - uEditorUtils, uBizControlVentasTerminadas, uROClasses, - cxGridTableView, uCustomEditor; - -{$R *.dfm} - -function ShowEditorVentasTerminadas (ABizObject : TDADataTableRules): TModalResult; -var - AEditor: IEditorControlVentasTerminadas; -begin - AEditor := TfEditorControlVentasTerminadas.Create(Application); - try - AEditor.Control := (ABizObject as IBizControlVentasTerminadas); - Result := AEditor.ShowModal; - finally - AEditor.Release; - end; -end; - - -{ TfEditorControlVentasTerminadas } - -procedure TfEditorControlVentasTerminadas.SetControl( - const Value: IBizControlBase); -begin - inherited; - RefrescarTituloEditor; - if Assigned(FControl) then - begin - frViewControlVentasTerminadas1.OnViewChanged := OnViewControlChanged; - with (FControl as IBizControlVentasTerminadas) do - begin - Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' - dsVentasTerminadas.DataTable := Items.DataTable; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.DataSource := dsVentasTerminadas; - end; - end; -end; - -procedure TfEditorControlVentasTerminadas.actRefrescarExecute(Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.Refresh; - while (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do - begin - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecord.Expand(True); - if (frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.FocusedRecordIndex < - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.RowCount - 1) then - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.Controller.GoToNext(False, True) - else - Exit; - end; -end; - -procedure TfEditorControlVentasTerminadas.actExpandirExecute(Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ExpandirTodo; -end; - -procedure TfEditorControlVentasTerminadas.actContraerExecute(Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ContraerTodo; -end; - -procedure TfEditorControlVentasTerminadas.actAnchoAutoExecute(Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.AjustarAncho; -end; - -procedure TfEditorControlVentasTerminadas.OnViewControlChanged( - Sender: TObject); -begin - if FControl.EsModificable then - FModificado := True; -end; - -procedure TfEditorControlVentasTerminadas.CustomEditorCreate(Sender: TObject); -begin - inherited; - FModificado := False; -end; - -procedure TfEditorControlVentasTerminadas.CustomEditorGetModified( - Sender: TObject; var Modified: Boolean); -begin - inherited; - Modified := FModificado; -end; - -procedure TfEditorControlVentasTerminadas.actGuardarExecute(Sender: TObject); -begin - if FModificado then - GuardarConfiguracion; - inherited; - FModificado := False; -end; - -procedure TfEditorControlVentasTerminadas.GuardarConfiguracion; -var - Aux : IROStrings; -begin - Aux := NewROStrings(); - Aux.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties); - if not (FControl.DataTable.State in dsEditModes) then - FControl.Edit; - FControl.VISTA := Aux; -end; - -procedure TfEditorControlVentasTerminadas.RestaurarConfiguracion; -begin - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.ViewProperties := FControl.VISTA.Text; -end; - -procedure TfEditorControlVentasTerminadas.FormShow(Sender: TObject); -begin - inherited; - if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando - RestaurarConfiguracion; - frViewControlVentasTerminadas1.frViewColumnas1.Refresh; - frViewControlVentasTerminadas1.frViewAgrupaciones1.Refresh; -end; - -procedure TfEditorControlVentasTerminadas.actPrevisualizarExecute( - Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Preview; -end; - -procedure TfEditorControlVentasTerminadas.actImprimirExecute(Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.Print; -end; - -procedure TfEditorControlVentasTerminadas.actConfPaginaExecute( - Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.PrintSetup; -end; - -procedure TfEditorControlVentasTerminadas.frViewControlVentasTerminadas1bRefrescarClick( - Sender: TObject); -begin - inherited; - frViewControlVentasTerminadas1.actRefrescarExecute(Sender); -end; - -constructor TfEditorControlVentasTerminadas.Create(AOwner: TComponent); -begin - inherited; - FViewControl := frViewControlVentasTerminadas1; - Self.Caption := 'Nueva consulta de ventas terminadas'; - JvNavPanelHeader.Caption := Self.Caption; -end; - -procedure TfEditorControlVentasTerminadas.RellenarCabeceraInforme; -begin - inherited; - with frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do - begin - LeftTitle.Clear; - LeftTitle.Add(FControl.NOMBRE); - - RightTitle.Clear; - RightTitle.Add(DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaIni.Date) + - ' - ' + DateToStr(frViewControlVentasTerminadas1.frViewPeriodoFechas1.edtFechaFin.Date)); - RightTitle.Add(frViewControlVentasTerminadas1.frViewControlGridVentasTerminadas1.FocusedView.DataController.Filter.FilterText); - end; -end; - -initialization - RegisterEditor(IBizControlVentasTerminadas, ShowEditorVentasTerminadas, etItem); - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm deleted file mode 100644 index 72533a3..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.dfm +++ /dev/null @@ -1,176 +0,0 @@ -inherited fEditorControlesVentasTerminadas: TfEditorControlesVentasTerminadas - Left = 470 - Top = 325 - ActiveControl = frViewControlesVentasTerminadas1.EasyListview - Caption = 'fEditorControlesVentasTerminadas' - ExplicitWidth = 660 - ExplicitHeight = 494 - PixelsPerInch = 96 - TextHeight = 13 - inherited JvNavPanelHeader: TJvNavPanelHeader - Caption = 'Control de ventas terminadas' - inherited Image1: TImage - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 - 0000180806000000E0773DF80000000970485973000017120000171201679FD2 - 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 - 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 - 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A - 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 - 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 - 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 - 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C - 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 - 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 - 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F - 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 - 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 - 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 - 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E - 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB - 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F - FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 - F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E - F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 - 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 - 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 - C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 - 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D - 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 - A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D - 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 - 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC - 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE - 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 - 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 - B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 - 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 - 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 - 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F - 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F - AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F - A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 - 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 - 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 - DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 - BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF - D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 - C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 - 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 - 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 - 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B - ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 - F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 - 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE - BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 - F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D - C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE - 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 - 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 - 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 - 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 - 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC - 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A - 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 - 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 - E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 - D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 - 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 - 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 - F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 - 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 - 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D - DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 - 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A - 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 - 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 - 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 - 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 - 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F - 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D - BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D - AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 - 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC - 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E - 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 - B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 - 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC - 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 - 4D410000B18E7CFB5193000002944944415478DAD5955F4853511CC7BFD7CD9C - 9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D582441B58782 - 0A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C9B685A5EEF - EEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB85C361A4D3 - B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C4A8AC2221B - 13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C579518CCCA9 - 1388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED592808E32AF - 06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B6B19E48C7C - 3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E098FB3026B2 - C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583DE0DB096837 - 30573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF91E44014E02 - 682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF814FF2A1E4 - 5B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB30BE711CD6 - FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D7847164A22 - 7BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6B9F2F30CA2 - B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED1149741F46C139F - 5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF38720B23877 - A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C9242B6A23A39F - E201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B8183CD4BDF45 - B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB431DBA95582 - F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F00A95ADA01 - 3F01A44422D9EF203E7B0000000049454E44AE426082} - end - end - inline frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas [3] - Left = 0 - Top = 76 - Width = 652 - Height = 365 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitTop = 76 - ExplicitWidth = 652 - ExplicitHeight = 365 - inherited EasyListview: TEasyListview - Width = 652 - Height = 365 - Groups.Items = { - 0400000002000000FFFECE000400000000000400000000000000010000000E00 - 0000730064006600730020006100640066002000610073006400660020000000 - 00000000000000000000FFFECE00040000000000040000000000000001000000 - 1300000020007300640066006100730064002000200061007300200074003400 - 74002000740034003300000000000000000000000000} - Header.Columns.Items = { - 0400000004000000FFFECE000400000000110001000001010000000000013200 - 00000100000005000000490063006F006E006F00000000000000000000000000 - FFFECE0004000000001100010000010000000000000132000000010000000600 - 00004E006F006D00620072006500000000000000000000000000FFFECE000400 - 0000001100010000010200000000000132000000010000000B00000044006500 - 7300630072006900700063006900F3006E00000000000000000000000000FFFE - CE00040000000011000100000103000000010001320000000100000005000000 - 4F007200640065006E00000000000000000000000000} - ExplicitWidth = 652 - ExplicitHeight = 365 - end - end - inherited EditorActionList: TActionList [4] - end - inherited SmallImages: TPngImageList [5] - end - inherited LargeImages: TPngImageList [6] - end - inherited JvFormStorage: TJvFormStorage [7] - end - inherited JvAppRegistryStorage: TJvAppRegistryStorage [8] - end - inherited dsDataTable: TDADataSource [9] - end - inherited ViewPopupMenu: TPopupMenu [10] - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas deleted file mode 100644 index c4ffdd2..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uEditorControlesVentasTerminadas.pas +++ /dev/null @@ -1,43 +0,0 @@ -unit uEditorControlesVentasTerminadas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uEditorControlesBase, JvAppStorage, JvAppRegistryStorage, - JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, - ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, - ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, - uViewBase, uViewControlesBase, Menus, DB, EasyListview, - uDADataTable, uViewControlesVentasTerminadas, uDAInterfaces; - -type - IEditorControlesVentasTerminadas = interface(IEditorControlesBase) - ['{6FF8D6DA-A997-40E9-8482-B0E4A77ECCC6}'] - end; - - TfEditorControlesVentasTerminadas = class(TfEditorControlesBase, IEditorControlesVentasTerminadas) - frViewControlesVentasTerminadas1: TfrViewControlesVentasTerminadas; - private - { Private declarations } - public - constructor Create(AOwner: TComponent); override; - end; - - -implementation - -{$R *.dfm} - -uses - uEditorBase; - -{ TfEditorControlesVentasTerminadas } - -constructor TfEditorControlesVentasTerminadas.Create(AOwner: TComponent); -begin - inherited; - FViewControl := frViewControlesVentasTerminadas1; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm deleted file mode 100644 index bceea99..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.dfm +++ /dev/null @@ -1,329 +0,0 @@ -object ModuleVentasTerminadas: TModuleVentasTerminadas - OldCreateOrder = True - Description = 'Control de ventas terminadas' - ModuleMenu = MainMenu - ModuleName = 'Control de ventas terminadas' - SmallImages = SmallImages - LargeImages = LargeImages - Author = 'Rodax Software' - Version = '1.0.5' - Left = 701 - Top = 547 - Height = 252 - Width = 401 - object LargeImages: TPngImageList - Height = 24 - Width = 24 - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000002944944415478DAD5955F4853511C - C7BFD7CD9C9BD21F4188FECFA83443E262BED5831689249688BA60E0934F3D58 - 2441B587820A02291641050A8E1C150B8C454669181269AC2D3398D9C31E940C - 9B685A5EEFEEBDEB9CB3EEDA656EAE720FFDE0C7EF1CCEBDDFCFFDFDCEF99DCB - 85C361A4D3B8FF1FD0E51E4A1BA1B1AA94630032F8A31725390C5956B0284A2C - 4A8AC2221B13174332EA9B6D78DB73F337A06970EFB2C23229A728CB102589C5 - 79518CCCA91388BA765274A2FDEE232DC0F9F84DFAF64005A4A3547180952ED5 - 92808E32AF06B42158850B9517E3400A11A35EF9E0006673024C7CB86612E67B - 6B19E48C7C3F31801A1DC78AFB382FF8411E1825939D80A7CC8342A10822C9E0 - 98FB3026B2C6E0AF9D62CFE63B4CB0C1953C03555C379401799FC22215F7583D - E0DB09683730573C8FDC911C4C6DFF8AFAA747D06B7985BC4E23CBE0B2BE3BF9 - 1E44014E02682400474644BC8B87C742E26D1E330DB358E35E8DC98A2FB03CAF - 814FF2A1E45B3EDAFACD18A86E4D11109BC107B260202E806510DC318DBC8FEB - 30BE711CD6FE3AB4751BA19314EC39F40276E393E54F910A9149CAEFF5C3913D - 7847164A227BB039B8058B82C0C4AFBB0CEC1D2A4E2D2120F614D15A6E9BA9C6 - B9F2F30CA2B0B32E479DCE8FF71E8D8A17BBFAC0DDE2B480ABF60E9C3ED11497 - 41F46C139F5E58D0CC63FDD9C352CD97ABC600EA754D32D05C7A6A974ABF3AF3 - 8720B23877A905D24400592D5720ADDF0AE5AC154A4882D06A4728333BD2C924 - 2B6A23A39FE201371C3D49BB98F7B96108F8910905FEFD0D2878499AC9948B81 - 83CD4BDF45B1005AAA54ACD3E427D783846CBD0EBA0C0ED6EFBB123EFB577FB4 - 31DBA95582F7F5673AD61714D5155EBBD3B7A20056DFDA7245B7C95C914CFC9F - 00A95ADA013F01A44422D9EF203E7B0000000049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D - F80000000970485973000017120000171201679FD252000001924944415478DA - 63FCFFFF3F032D01235D2C58BEED344D6C89F43265845B00E49065C8DF7FFF18 - FEFEFD0FA5A1F8DF7F0697F01286733BA661B7807126234390A62656033FFFFA - C5F0F9E74F862F40FA0B12FB4DD457B8E1CB361D6298B774137E0B48051FA2BE - 810DFF03B464D5D623F82D4089A444DC967D9BF10B2558FE40D96B771C23DE02 - 74F0E9F727866F7FBE81B118B33486E1A0B8D8B0EB04760BF0B99658F0A0F52D - C3E6BDA7705BF07F3E24C55E5C69C8A01F7E1E838D0CD0C541FAEF34BE66D87E - F00C6E0B12320CC08A0B1E30304C5060C060230374F105332E30DCAC7BC5B0EB - C859DAF9E05AF50B86BDC7CFD3CE07972A9F311C3C7991763E385FF684E1C899 - CBB4F3C199E2470CC7CF5FA59D0F8EE7DF673873F906A605119E260C4C494C14 - FBE070EE5D860B576F615A10EC6AC4C09EC642B10F0E64DD66B87CE30EA60501 - CE060C5C196C14FB607FE66D862B37B158E0EBA0C7C09BCDC14029C0698197AD - 0E46A105A2FF812B13247120FEF30F938D5CF362B5C0DD5A1B5C51500B6058D0 - 3D693ED50C8701B805B40400A09529EFB6636A250000000049454E44AE426082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 232 - Top = 16 - Bitmap = {} - end - object ModuleActionList: TActionList - Images = LargeImages - Left = 40 - Top = 72 - object actVentas: TAction - Category = 'Ventas' - Caption = 'Control de ventas terminadas' - ImageIndex = 0 - OnExecute = actVentasExecute - end - object actResumenVentas: TAction - Category = 'Ventas' - Caption = 'Resumen de ventas mensuales' - ImageIndex = 1 - OnExecute = actResumenVentasExecute - end - end - object MainMenu: TMainMenu - Tag = 1000 - Images = LargeImages - Left = 40 - Top = 16 - object menu: TMenuItem - Tag = 100 - Caption = '&Ventas' - GroupIndex = 1 - ImageIndex = 4 - OnClick = actVentasExecute - object Ventas1: TMenuItem - Tag = 100 - Action = actVentas - end - object N1: TMenuItem - Tag = 9998 - Caption = '-' - end - object Resumenventasmensual1: TMenuItem - Tag = 9999 - Action = actResumenVentas - end - end - end - object SmallImages: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD25200000A4D694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF - F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A - 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 - 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 - 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC - 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 - C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 - 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 - 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C - CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 - 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 - 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F - 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA - 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED - 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 - FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A - F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 - 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 - 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 - 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C - 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 - 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 - 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA - 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F - 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 - 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 - 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 - 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 - 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 - 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 - A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 - 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 - 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 - 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 - 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 - 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 - 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 - EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C - 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED - EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB - 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 - 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 - 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 - 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 - A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 - 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 - D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B - 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 - 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD - D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 - C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E - 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B - FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 - 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 - 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 - 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 - BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 - F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC - A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 - 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA - 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C - 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 - F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 - DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 - 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 - A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 - 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 - EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E - CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 - 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD - 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF - B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C - 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD - EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 - E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 - 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F - EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 - EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 - FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 - CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 - ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC - CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F - F73EE77CFEFC2FF784F3FB25D29F33000001624944415478DA63FCFFFF3F0325 - 8071D99653649B10E96DCA083640DD9B9961F2C964AC8A7EFFFDCBF0FDCF1F86 - 6FBF7F337CFCF103CC9EEBBF9521C5630EC3B91DD310068000CC90B966E7300C - B2D92607D70C02280650250CC8F5068A01A47883F9CE5306868A8908037689A4 - C115C234339F6282085C6560F89BF80FCCD45C2BCAB06A8D0103F3EF7F0C715F - 358830E02A440C66C0B51067306DE675984163752A032328212DDF7AFA3FB201 - 20BF2EB7BE8CE10564CD20AF18AECF4418000B4490E6EF40FC0D8A6181B776B9 - 1E8AE6B3E96721810833A07BF27CB84D13845F30F07F7BC7D0CBACC970E50B23 - C302BE3B0CBF7FFE6428F9ABCDF0F10F5A3462CB0B3792430EFE7EF55C87918D - 5D88555621EAD7DD9B539878F818B4976F17C64807B832D39560A7FFFF7FFD7C - C7C8C2CAC7C0C4C4A2B3761F23D68484CB80DB75C56C3FCE9F780E62B3286B85 - 6A4E98BD8F240320AE70FEC72CABE4824B33080000E911EEC1FB93056C000000 - 0049454E44AE426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 610000000970485973000017120000171201679FD252000001334944415478DA - 63FCFFFF3F0325801164C0F26DA7C936056E40A49729511A7EFFF9CBF0FBF75F - 30ED185A8CDD00C64446AC9A7FCCFC0DD7BC74D32186794B3711E7827FFFFE01 - 35FD836B06E155DB8E621A80CB6674F0A4E33DC3FA5D27B01BF07FFE7F868B2B - 0D19F4C3CF836DBEBCDA9841D9E704DC66F1123E86FB2D6F19B6EC3B85DD8084 - 0C038682070C0C131420B621B34160C18C0B0CB71A5E31EC3C7416BF0B34024F - 83FD7C778B0583A4CB21A80BFE3128D608335CAE7CC670E0E445F25D70AEF431 - C3D1B357B01BF075DA4F86DB9BCC19A4DD8E806D7DB5CF9E81D76A373C1674DB - A5184E163E603875F13AAA01216E460C6CA92C44C5C291DCBB0CE7AFDE4235C0 - DF511FEE4F5888FF81F191E21FA6E6CACD3BA80678D9EA302CDE7090A47C8062 - 40F7A4F9246986277B4AB333009B9C2E9EBC2508450000000049454E44AE4260 - 82} - Name = 'PngImage1' - Background = clWindow - end> - PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] - Left = 308 - Top = 16 - Bitmap = {} - end - object ExtraImages: TPngImageList - Height = 28 - Width = 28 - PngImages = <> - Left = 232 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas deleted file mode 100644 index c581256..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uPluginControllerVentasTerminadas.pas +++ /dev/null @@ -1,96 +0,0 @@ -unit uPluginControllerVentasTerminadas; - -interface - -uses - uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; - -type - IMCVentasTerminadas = interface(IInterface) - ['{D7C41472-C5C7-43C1-849F-2056CC98D9B1}'] - end; - - TModuleVentasTerminadas = class(TModuleController, IMCVentasTerminadas) - actVentas: TAction; - menu: TMenuItem; - ExtraImages: TPngImageList; - LargeImages: TPngImageList; - MainMenu: TMainMenu; - ModuleActionList: TActionList; - Ventas1: TMenuItem; - SmallImages: TPngImageList; - actResumenVentas: TAction; - Resumenventasmensual1: TMenuItem; - N1: TMenuItem; - procedure actVentasExecute(Sender: TObject); - procedure actResumenVentasExecute(Sender: TObject); - public - end; - -implementation - -{$R *.dfm} - -uses - Forms, Dialogs, uGUIBase, SysUtils, uDataModuleVentasTerminadas, - uEditorControlesVentasTerminadas, uEditorControlResumenVentas, - uBizControlVentasTerminadas, uBizVentasTerminadas, uEditorControlesBase; - -function GetModule : TModuleController; -begin - Result := TModuleVentasTerminadas.Create(NIL); -end; - -exports - GetModule name GET_MODULE_FUNC; - -{ -******************************* TModuleContactos ******************************* -} - -procedure TModuleVentasTerminadas.actVentasExecute(Sender: TObject); -var - aControl: IBizControlVentasTerminadas; - aObj: IEditorControlesVentasTerminadas; -begin - aControl := dmVentasTerminadas.GetControl; - aObj := TfEditorControlesVentasTerminadas.Create(Application); - try - with aObj do - begin - Control := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -procedure TModuleVentasTerminadas.actResumenVentasExecute(Sender: TObject); -var - aControl: IBizResumenVentas; - aObj: IEditorControlResumenVentas; -begin - aControl := dmVentasTerminadas.GetItemsCrossTab; - aObj := TfEditorControlResumenVentas.Create(Application); - try - with aObj do - begin - Items := aControl; - ShowEmbedded; - end; - finally - aControl := NIL; - aObj := NIL; - end; -end; - -initialization - RegisterModuleClass(TModuleVentasTerminadas); - -finalization - UnRegisterModuleClass(TModuleVentasTerminadas); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm deleted file mode 100644 index e92c347..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.dfm +++ /dev/null @@ -1,211 +0,0 @@ -inherited frViewControlGridResumenVentas: TfrViewControlGridResumenVentas - inherited cxGrid: TcxGrid - inherited cxGridView: TcxGridDBTableView - OnCustomDrawCell = cxGridViewCustomDrawCell - DataController.Summary.FooterSummaryItems = < - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = '0,0 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end - item - Format = ',0.00 '#8364';-,0.00 '#8364 - Kind = skSum - end> - OptionsView.CellAutoHeight = False - OptionsView.FooterAutoHeight = False - Preview.AutoHeight = False - end - end - inherited dsDataSource: TDADataSource - OnStateChange = dsDataSourceStateChange - end - inherited dxComponentPrinter: TdxComponentPrinter - CurrentLink = dxComponentPrinterLink1 - object dxComponentPrinterLink1: TdxGridReportLink - Active = True - Component = cxGrid - PrinterPage.DMPaper = 9 - PrinterPage.Footer = 6350 - PrinterPage.Header = 6350 - PrinterPage.Margins.Bottom = 12700 - PrinterPage.Margins.Left = 12700 - PrinterPage.Margins.Right = 12700 - PrinterPage.Margins.Top = 12700 - PrinterPage.Orientation = poLandscape - PrinterPage.PageSize.X = 210000 - PrinterPage.PageSize.Y = 297000 - PrinterPage._dxMeasurementUnits_ = 0 - PrinterPage._dxLastMU_ = 2 - ReportDocument.Caption = 'Venta mensual' - ReportDocument.CreationDate = 39329.694692372690000000 - ReportTitle.Text = 'Venta mensual' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlack - Font.Height = 10 - Font.Name = 'Tahoma' - Font.Style = [] - OptionsFormatting.UseNativeStyles = True - OptionsView.Caption = False - OptionsView.FilterBar = False - BuiltInReportLink = True - end - end - inherited cxStyleRepository1: TcxStyleRepository - object cxStyleDia: TcxStyle - AssignedValues = [svColor, svFont, svTextColor] - Color = cl3DLight - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - TextColor = clWindowText - end - object cxStyleTotal: TcxStyle - AssignedValues = [svFont] - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - end - object cxStyleImporte: TcxStyle - end - end - object cxEditRepository1: TcxEditRepository - Left = 32 - Top = 88 - object cxEditDia: TcxEditRepositoryTextItem - Properties.Alignment.Horz = taRightJustify - end - object cxEditImporte: TcxEditRepositoryCurrencyItem - Properties.Alignment.Horz = taRightJustify - Properties.DisplayFormat = ',0.## '#8364';-,0.## '#8364 - Properties.UseThousandSeparator = True - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas deleted file mode 100644 index adcd752..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridResumenVentas.pas +++ /dev/null @@ -1,144 +0,0 @@ -unit uViewControGridResumenVentas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo, - cxEditRepositoryItems, uDAInterfaces; - -type - IViewControlGridResumenVentas = interface(IViewGrid) - ['{E6D7FF0F-7E64-4E8C-8844-CAC011A62CDE}'] - end; - - TfrViewControlGridResumenVentas = class(TfrViewGrid, IViewControlGridResumenVentas) - dxComponentPrinterLink1: TdxGridReportLink; - cxEditRepository1: TcxEditRepository; - cxEditDia: TcxEditRepositoryTextItem; - cxEditImporte: TcxEditRepositoryCurrencyItem; - cxStyleDia: TcxStyle; - cxStyleTotal: TcxStyle; - cxStyleImporte: TcxStyle; - procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView; - ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; - var ADone: Boolean); - procedure dsDataSourceStateChange(Sender: TObject); - private - procedure LimpiarGrid; - procedure GenerarGrid; - public - procedure Preview(Mes: String; Ano: String); overload; - procedure Print(Mes: String; Ano: String); overload; - end; - -implementation -{$R *.dfm} - -uses schVentasTerminadasClient_Intf, uViewGridBase; - -{ TfrViewControlGridResumenVentas } - -procedure TfrViewControlGridResumenVentas.Preview(Mes: String; Ano: String); -begin - inherited Preview; - dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; - dxComponentPrinterLink1.Preview; -end; - -procedure TfrViewControlGridResumenVentas.cxGridViewCustomDrawCell( - Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); -begin - if not VarIsNull(AViewInfo.Value) then - if Pos('-', AViewInfo.Value) > 0 then - ACanvas.Canvas.Font.Color := $000000CC; -end; - -procedure TfrViewControlGridResumenVentas.dsDataSourceStateChange(Sender: TObject); -begin - if dsDataSource.State = dsInactive then - LimpiarGrid - else - GenerarGrid; -end; - -procedure TfrViewControlGridResumenVentas.GenerarGrid; -var - i, AuxPos, AuxLen: Integer; - -begin - cxGridView.BeginUpdate; - - try - cxGridView.DataController.CreateAllItems; - - for i := 0 to cxGridView.ColumnCount - 1 do - begin - case i of - 0: cxGridView.Columns[i].Visible := False; - 1: begin - cxGridView.Columns[i].Styles.Content := cxStyleDia; - cxGridView.Columns[i].Properties := cxEditDia.Properties; - cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; - cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; - cxGridView.Columns[i].Width := 30; - cxGridView.Columns[i].SortIndex := 0; - cxGridView.Columns[i].SortOrder := soAscending; - - end; - else begin - cxGridView.Columns[i].Styles.Content := cxStyleImporte; - cxGridView.Columns[i].PropertiesClassName := 'TcxCurrencyEditProperties'; - cxGridView.Columns[i].Properties := cxEditImporte.Properties; - cxGridView.Columns[i].Summary.FooterKind := skSum; - cxGridView.Columns[i].Summary.FooterFormat := ',0.## €;-,0.## €'; - cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify; - cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify; - cxGridView.Columns[i].Width := 175; - end; - end; - - if i = 2 then - begin - cxGridView.Columns[i].HeaderAlignmentHorz := taLeftJustify; - cxGridView.Columns[i].Styles.Content := cxStyleTotal; - end; - - //Dejamos de la descripción del centro lo más corta y representativa posible - AuxPos := Pos('INGLES', cxGridView.Columns[i].Caption); - if AuxPos > 0 then AuxPos := AuxPos + 6; - AuxLen := Length(cxGridView.Columns[i].Caption) - AuxPos; - cxGridView.Columns[i].Caption := Trim(Copy(cxGridView.Columns[i].Caption, AuxPos, AuxLen)); - end; - - finally - cxGridView.EndUpdate; - end; -end; - -procedure TfrViewControlGridResumenVentas.LimpiarGrid; -begin - cxGridView.BeginUpdate; - try - cxGridView.ClearItems; - finally - cxGridView.EndUpdate; - end; -end; - -procedure TfrViewControlGridResumenVentas.Print(Mes, Ano: String); -begin - inherited Print; - dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano; - dxComponentPrinterLink1.Print(True, Nil); -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm deleted file mode 100644 index ca341d0..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.dfm +++ /dev/null @@ -1,278 +0,0 @@ -inherited frViewControlGridVentasTerminadas: TfrViewControlGridVentasTerminadas - Width = 733 - Height = 572 - object cxGrid: TcxGrid [0] - Left = 0 - Top = 0 - Width = 733 - Height = 572 - Align = alClient - TabOrder = 0 - LookAndFeel.Kind = lfStandard - LookAndFeel.NativeStyle = True - object cxGridView: TcxGridDBTableView - NavigatorButtons.ConfirmDelete = False - FilterBox.CustomizeDialog = False - DataController.Filter.Options = [fcoCaseInsensitive] - DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged - DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText] - DataController.Summary.DefaultGroupSummaryItems = <> - DataController.Summary.FooterSummaryItems = <> - DataController.Summary.SummaryGroups = <> - DataController.Summary.OnAfterSummary = cxGridViewDataControllerSummaryAfterSummary - DataController.OnCompare = cxGridViewDataControllerCompare - DataController.OnGroupingChanged = cxGridViewDataControllerGroupingChanged - DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged - OptionsBehavior.CellHints = True - OptionsCustomize.ColumnFiltering = False - OptionsCustomize.ColumnGrouping = False - OptionsCustomize.DataRowSizing = True - OptionsCustomize.GroupRowSizing = True - OptionsData.Deleting = False - OptionsData.DeletingConfirmation = False - OptionsData.Editing = False - OptionsData.Inserting = False - OptionsSelection.CellSelect = False - OptionsSelection.UnselectFocusedRecordOnExit = False - OptionsView.CellEndEllipsis = True - OptionsView.CellAutoHeight = True - OptionsView.ColumnAutoWidth = True - OptionsView.Footer = True - OptionsView.FooterAutoHeight = True - OptionsView.GridLineColor = cl3DLight - OptionsView.GroupByBox = False - OptionsView.GroupFooters = gfAlwaysVisible - OptionsView.HeaderEndEllipsis = True - Styles.FilterBox = cxStyleFilterBox - Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle - OnColumnPosChanged = cxGridViewColumnPosChanged - OnColumnSizeChanged = cxGridViewColumnSizeChanged - object cxGridViewFECHA: TcxGridDBColumn - Caption = 'Fecha' - DataBinding.FieldName = 'FECHA' - end - object cxGridViewDIA: TcxGridDBColumn - Caption = 'Dia' - DataBinding.FieldName = 'DIA' - end - object cxGridViewDIASEMANA: TcxGridDBColumn - Caption = 'Dia de la semana' - DataBinding.FieldName = 'DIASEMANA' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewDIASEMANAPropertiesInitPopup - end - object cxGridViewMES: TcxGridDBColumn - Caption = 'Mes' - DataBinding.FieldName = 'MES' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewMESPropertiesInitPopup - end - object cxGridViewANO: TcxGridDBColumn - Caption = 'A'#241'o' - DataBinding.FieldName = 'ANO' - end - object cxGridViewCENTRO: TcxGridDBColumn - Caption = 'Centro' - DataBinding.FieldName = 'CENTRO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewCENTROPropertiesInitPopup - end - object cxGridViewVENDEDOR: TcxGridDBColumn - Caption = 'Vendedor' - DataBinding.FieldName = 'VENDEDOR' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewVENDEDORPropertiesInitPopup - end - object cxGridViewNUMTALON: TcxGridDBColumn - Caption = 'Tal'#243'n' - DataBinding.FieldName = 'NUMTALON' - end - object cxGridViewCODIGO: TcxGridDBColumn - Caption = 'Codigo' - DataBinding.FieldName = 'CODIGO' - end - object cxGridViewPRODUCTO: TcxGridDBColumn - Caption = 'Producto' - DataBinding.FieldName = 'PRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewPRODUCTOPropertiesInitPopup - end - object cxGridViewGRUPOPRODUCTO: TcxGridDBColumn - Caption = 'Grupo' - DataBinding.FieldName = 'GRUPOPRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewGRUPOPRODUCTOPropertiesInitPopup - end - object cxGridViewTIPOPRODUCTO: TcxGridDBColumn - Caption = 'Tipo' - DataBinding.FieldName = 'TIPOPRODUCTO' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewTIPOPRODUCTOPropertiesInitPopup - end - object cxGridViewCOLECCION: TcxGridDBColumn - Caption = 'Coleccion' - DataBinding.FieldName = 'COLECCION' - PropertiesClassName = 'TcxComboBoxProperties' - Properties.OnInitPopup = cxGridViewCOLECCIONPropertiesInitPopup - end - object cxGridViewCOLOR: TcxGridDBColumn - Caption = 'Color' - DataBinding.FieldName = 'COLOR' - end - object cxGridViewTALLA: TcxGridDBColumn - Caption = 'Talla' - DataBinding.FieldName = 'TALLA' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA38: TcxGridDBColumn - Caption = '38' - DataBinding.FieldName = 'TALLA38' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA40: TcxGridDBColumn - Caption = '40' - DataBinding.FieldName = 'TALLA40' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA42: TcxGridDBColumn - Caption = '42' - DataBinding.FieldName = 'TALLA42' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA44: TcxGridDBColumn - Caption = '44' - DataBinding.FieldName = 'TALLA44' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA46: TcxGridDBColumn - Caption = '46' - DataBinding.FieldName = 'TALLA46' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTALLA48: TcxGridDBColumn - Caption = '48' - DataBinding.FieldName = 'TALLA48' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVTATERMDEV: TcxGridDBColumn - Caption = 'Vta. Term/Dev' - DataBinding.FieldName = 'VTATERMDEV' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVTAFINALRESC: TcxGridDBColumn - Caption = 'Vta. Final/Resc' - DataBinding.FieldName = 'VTAFINALRESC' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVENTAS: TcxGridDBColumn - Caption = 'Ventas' - DataBinding.FieldName = 'VENTAS' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewDEVOLUCIONES: TcxGridDBColumn - Caption = 'Devoluciones' - DataBinding.FieldName = 'DEVOLUCIONES' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewTOTAL: TcxGridDBColumn - Caption = 'Total' - DataBinding.FieldName = 'TOTAL' - PropertiesClassName = 'TcxSpinEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVALTERMDEV: TcxGridDBColumn - Caption = 'Val. Term/Dev' - DataBinding.FieldName = 'VALTERMDEV' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewVALFINALRESC: TcxGridDBColumn - Caption = 'Val. Final/Resc' - DataBinding.FieldName = 'VALFINALRESC' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - FooterAlignmentHorz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewIMPVEN: TcxGridDBColumn - Caption = 'Imp. ventas' - DataBinding.FieldName = 'VALVEN' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewIMPDEV: TcxGridDBColumn - Caption = 'Imp. devoluciones' - DataBinding.FieldName = 'VALDEV' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - object cxGridViewIMPTOT: TcxGridDBColumn - Caption = 'Imp. total' - DataBinding.FieldName = 'VALTOT' - PropertiesClassName = 'TcxCurrencyEditProperties' - Properties.Alignment.Horz = taRightJustify - HeaderAlignmentHorz = taRightJustify - end - end - object cxGridLevel: TcxGridLevel - GridView = cxGridView - end - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - Component = cxGrid - BuiltInReportLink = True - end - end - object cxStyleRepository1: TcxStyleRepository - Left = 16 - Top = 48 - object cxStyleRed: TcxStyle - AssignedValues = [svTextColor] - TextColor = clRed - end - object cxStyleBlue: TcxStyle - AssignedValues = [svTextColor] - TextColor = clBlue - end - object cxStyleFilterBox: TcxStyle - AssignedValues = [svColor, svTextColor] - Color = clInfoBk - TextColor = clWindowText - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas deleted file mode 100644 index 57a3752..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControGridlVentasTerminadas.pas +++ /dev/null @@ -1,385 +0,0 @@ -unit uViewControGridlVentasTerminadas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData, - cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, - cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, - cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, - cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap, - dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns, - dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg, - cxDropDownEdit, StdCtrls, cxSpinEdit; - -type - IViewControlGridVentasTerminadas = interface(IViewControlGrid) - ['{95B6857B-0F06-470B-8099-CDB07017B63F}'] - end; - - TfrViewControlGridVentasTerminadas = class(TfrViewControlGrid, IViewControlGridVentasTerminadas) - cxGrid: TcxGrid; - cxGridView: TcxGridDBTableView; - cxGridLevel: TcxGridLevel; - cxStyleRepository1: TcxStyleRepository; - cxStyleRed: TcxStyle; - cxStyleBlue: TcxStyle; - cxStyleFilterBox: TcxStyle; - cxGridViewFECHA: TcxGridDBColumn; - cxGridViewDIA: TcxGridDBColumn; - cxGridViewDIASEMANA: TcxGridDBColumn; - cxGridViewMES: TcxGridDBColumn; - cxGridViewANO: TcxGridDBColumn; - cxGridViewCENTRO: TcxGridDBColumn; - cxGridViewVENDEDOR: TcxGridDBColumn; - cxGridViewCODIGO: TcxGridDBColumn; - cxGridViewPRODUCTO: TcxGridDBColumn; - cxGridViewGRUPOPRODUCTO: TcxGridDBColumn; - cxGridViewTIPOPRODUCTO: TcxGridDBColumn; - cxGridViewCOLECCION: TcxGridDBColumn; - cxGridViewCOLOR: TcxGridDBColumn; - cxGridViewTALLA: TcxGridDBColumn; - cxGridViewTALLA38: TcxGridDBColumn; - cxGridViewTALLA40: TcxGridDBColumn; - cxGridViewTALLA42: TcxGridDBColumn; - cxGridViewTALLA44: TcxGridDBColumn; - cxGridViewTALLA46: TcxGridDBColumn; - cxGridViewTALLA48: TcxGridDBColumn; - cxGridViewVENTAS: TcxGridDBColumn; - cxGridViewDEVOLUCIONES: TcxGridDBColumn; - cxGridViewTOTAL: TcxGridDBColumn; - cxGridViewIMPVEN: TcxGridDBColumn; - cxGridViewIMPDEV: TcxGridDBColumn; - cxGridViewIMPTOT: TcxGridDBColumn; - cxGridViewNUMTALON: TcxGridDBColumn; - cxGridViewVTATERMDEV: TcxGridDBColumn; - cxGridViewVTAFINALRESC: TcxGridDBColumn; - cxGridViewVALTERMDEV: TcxGridDBColumn; - cxGridViewVALFINALRESC: TcxGridDBColumn; - procedure cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); - procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView; - AColumn: TcxGridColumn); - procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView; - AColumn: TcxGridColumn); - procedure cxGridViewDataControllerGroupingChanged(Sender: TObject); - procedure cxGridViewDataControllerSortingChanged(Sender: TObject); - procedure cxGridViewDataControllerSummaryAfterSummary( - ASender: TcxDataSummary); - procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject); - procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject); - procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewDataControllerFilterChanged(Sender: TObject); - procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject); - procedure cxGridViewMESPropertiesInitPopup(Sender: TObject); - procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject); - procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject); - procedure cxGridViewDataControllerCompare( - ADataController: TcxCustomDataController; ARecordIndex1, - ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant; - var Compare: Integer); - protected - procedure ActivarEventos; override; - procedure DesactivarEventos; override; - function GetFocusedView : TcxGridDBTableView; override; - public - procedure Refresh; override; - constructor Create(AOwner: TComponent); override; - end; - -implementation - -uses - cxVariants, uDateUtils; - -{$R *.dfm} - -{ TfrViewControlGridVentasTerminadas } - -function TfrViewControlGridVentasTerminadas.GetFocusedView: TcxGridDBTableView; -begin - Result := cxGridView; -end; - -procedure TfrViewControlGridVentasTerminadas.Refresh; -var - FocusedRow, TopRow : Integer; -begin - inherited; - { Refrescar las filas del grid a partir del dataset y colocar la fila - seleccionada donde estaba } - if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then - begin - TopRow := FocusedView.Controller.TopRowIndex; - FocusedRow := FocusedView.DataController.FocusedRowIndex; - - FocusedView.DataController.UpdateItems(False); // <- Refresco - - FocusedView.DataController.FocusedRowIndex := FocusedRow; - FocusedView.Controller.TopRowIndex := TopRow; - - { Esta chapuzilla es para que se rellenen los combobox de los filtros - por que el cxFilterControl no coge los valores la 1ª vez si los - combos están vacíos. } - TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil); - TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil); - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewStylesGetContentStyle( - Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; - AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); -var - AColumn : TcxGridDBColumn; - AFecha : TDateTime; -begin - inherited; - - // La fila es la cabecera de un grupo -{ if ARecord.Expandable then - Exit; - - AColumn := FocusedView.GetColumnByFieldName('FECHA'); - if Assigned(AColumn) and (AColumn.Visible) then - begin - try - AFecha := VarToDateTime(ARecord.Values[AColumn.Index]); - except - on Exception do - ShowMessage(VarToStr(ARecord.Values[AColumn.Index])); - end; - - if DaysBetween(Now, AFecha) > 14 then - AStyle := cxStyleRed - else - if DaysBetween(Now, AFecha) > 7 then - AStyle := cxStyleBlue - end; } -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnPosChanged( - Sender: TcxGridTableView; AColumn: TcxGridColumn); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewColumnSizeChanged( - Sender: TcxGridTableView; AColumn: TcxGridColumn); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerGroupingChanged( - Sender: TObject); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSortingChanged( - Sender: TObject); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerSummaryAfterSummary( - ASender: TcxDataSummary); -begin - inherited; - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewCENTROPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewVENDEDORPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerFilterChanged( - Sender: TObject); -begin - if Assigned(FOnFilterChanged) then - FOnFilterChanged(Self); -end; - -constructor TfrViewControlGridVentasTerminadas.Create(AOwner: TComponent); -begin - inherited; -end; - -procedure TfrViewControlGridVentasTerminadas.ActivarEventos; -begin - inherited; - with cxGridView do - begin - DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged; - DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary; - DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged; - DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged; - OnColumnPosChanged := cxGridViewColumnPosChanged; - OnColumnSizeChanged := cxGridViewColumnSizeChanged; - end; -end; - -procedure TfrViewControlGridVentasTerminadas.DesactivarEventos; -begin - inherited; - with cxGridView do - begin - DataController.Filter.OnChanged := nil; - DataController.Summary.OnAfterSummary := nil; - DataController.OnGroupingChanged := nil; - DataController.OnSortingChanged := nil; - OnColumnPosChanged := nil; - OnColumnSizeChanged := nil; - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDIASEMANAPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewMESPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewMES.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewMES.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewGRUPOPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewTIPOPRODUCTOPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewCOLECCIONPropertiesInitPopup( - Sender: TObject); -begin - inherited; - with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do - begin - Items.Clear; - Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]); - Items.Delete(1); // "Personalizado" - Items.Delete(0); // "Todos" - end; -end; - -procedure TfrViewControlGridVentasTerminadas.cxGridViewDataControllerCompare( - ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, - AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); -var - AValue1, - AValue2 : Variant; -begin - // Por defecto - Compare := VarCompare(V1, V2); - try - if (AItemIndex = cxGridViewDIASEMANA.Index) then - begin - AValue1 := ADataController.Values[ARecordIndex1, cxGridViewDIASEMANA.Index]; - AValue2 := ADataController.Values[ARecordIndex2, cxGridViewDIASEMANA.Index]; - if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then - Compare := VarCompare(NumberDayOfTheWeek(AValue1), NumberDayOfTheWeek(AValue2)) - end - else begin - if (AItemIndex = cxGridViewMES.Index) then - begin - AValue1 := ADataController.Values[ARecordIndex1, cxGridViewMES.Index]; - AValue2 := ADataController.Values[ARecordIndex2, cxGridViewMES.Index]; - if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then - Compare := VarCompare(NumberMonthOfTheYear(AValue1), NumberMonthOfTheYear(AValue2)) - end - end; - except - //ShowMessage(VarToStr(ARecordIndex1) + ' ' + VarToStr(ARecordIndex1)); - end; -end; - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm deleted file mode 100644 index bc80b1d..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.dfm +++ /dev/null @@ -1,248 +0,0 @@ -inherited frViewControlVentasTerminadas: TfrViewControlVentasTerminadas - Height = 608 - ExplicitHeight = 608 - inherited TBXMultiDock1: TTBXMultiDock - Width = 232 - Height = 608 - ExplicitWidth = 232 - ExplicitHeight = 608 - inherited pnlParametros: TTBXDockablePanel - DockedWidth = 228 - ExplicitWidth = 232 - ExplicitHeight = 289 - inherited TBXAlignmentPanel2: TTBXAlignmentPanel - Width = 228 - Height = 68 - ExplicitWidth = 228 - ExplicitHeight = 68 - inherited TBXLink1: TTBXLink - Width = 220 - Height = 20 - Action = actPeriodoFechas - ImageIndex = 4 - Images = SmallImages - ExplicitWidth = 220 - ExplicitHeight = 20 - end - inherited TBXLink5: TTBXLink - Top = 24 - Width = 220 - ExplicitTop = 24 - ExplicitWidth = 220 - end - inherited TBXLink2: TTBXLink - Top = 44 - Width = 220 - ExplicitTop = 44 - ExplicitWidth = 220 - end - end - inherited pcParametros: TPageControl - Top = 68 - Width = 228 - ExplicitTop = 68 - ExplicitWidth = 228 - inherited TabSheet5: TTabSheet - ExplicitWidth = 220 - inline frViewPeriodoFechas1: TfrViewPeriodoFechas - Left = 0 - Top = 0 - Width = 220 - Height = 159 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentFont = False - TabOrder = 0 - ReadOnly = False - ExplicitWidth = 220 - ExplicitHeight = 159 - inherited TBXLabel1: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - inherited TBXLabel2: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 220 - ExplicitWidth = 220 - inherited cbPeriodo: TcxComboBox - ExplicitWidth = 176 - Width = 176 - end - end - inherited TBXAlignmentPanel2: TTBXAlignmentPanel - Width = 220 - ExplicitWidth = 220 - inherited Label2: TLabel - Width = 29 - ExplicitWidth = 29 - end - end - end - end - inherited tsColumnas: TTabSheet - ExplicitWidth = 220 - inherited frViewColumnas1: TfrViewColumnas - Width = 220 - ExplicitWidth = 220 - inherited lbColumnas: TcxCheckListBox - Width = 220 - ExplicitWidth = 220 - end - inherited TBXLabel1: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - end - end - inherited tsAgrupacion: TTabSheet - ExplicitWidth = 220 - inherited frViewAgrupaciones1: TfrViewAgrupaciones - Width = 220 - ExplicitWidth = 220 - inherited TBXLabel1: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - inherited pnlAgrupaciones: TTBXAlignmentPanel - Width = 220 - ExplicitWidth = 220 - DesignSize = ( - 220 - 77) - end - end - end - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Top = 237 - Width = 228 - ExplicitTop = 237 - ExplicitWidth = 228 - end - end - inherited pnlTareas: TTBXDockablePanel - Top = 289 - DockedWidth = 228 - DockPos = 289 - Visible = False - ExplicitTop = 289 - ExplicitWidth = 232 - inherited TBXPageScroller1: TTBXPageScroller - Width = 228 - ExplicitWidth = 228 - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 228 - ExplicitWidth = 228 - inherited bFiltros: TTBXLink - Width = 220 - ExplicitWidth = 220 - end - inherited bSumarios: TTBXLink - Width = 220 - ExplicitWidth = 220 - end - end - inherited pcTareas: TPageControl - Width = 228 - ExplicitWidth = 228 - inherited tsSumarios: TTabSheet - ExplicitWidth = 220 - inherited frViewSumarios1: TfrViewSumarios - Width = 220 - ExplicitWidth = 220 - inherited TBXLabel1: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - inherited vgSumarios: TcxVerticalGrid - Width = 220 - ExplicitWidth = 220 - end - end - end - inherited tsFiltros: TTabSheet - ExplicitWidth = 220 - inherited frViewFiltros1: TfrViewFiltros - Width = 220 - ExplicitWidth = 220 - inherited TBXLabel1: TTBXLabel - Width = 220 - ExplicitWidth = 220 - end - inherited cxFilterControl1: TcxFilterControl - Width = 220 - ExplicitWidth = 220 - end - inherited TBXAlignmentPanel3: TTBXAlignmentPanel - Width = 220 - ExplicitWidth = 220 - end - inherited cxStyleRepository1: TcxStyleRepository - Left = 136 - Top = 64 - end - end - end - end - end - end - end - inline frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas [1] - Left = 232 - Top = 0 - Width = 467 - Height = 608 - Align = alClient - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - TabOrder = 1 - ReadOnly = False - ExplicitLeft = 232 - ExplicitWidth = 467 - ExplicitHeight = 608 - inherited cxGrid: TcxGrid - Width = 467 - Height = 608 - ExplicitWidth = 467 - ExplicitHeight = 608 - end - inherited dxPrintStyleManager1: TdxPrintStyleManager - inherited dxPrintStyleManager1Style1: TdxPSPrintStyle - BuiltInStyle = True - end - end - inherited dxComponentPrinter: TdxComponentPrinter - inherited dxPrinterLinkcxGrid: TdxGridReportLink - BuiltInReportLink = True - end - end - end - inherited SmallImages: TPngImageList [2] - end - inherited LargeImages: TPngImageList [3] - end - inherited EditorActionList: TActionList - Left = 248 - Top = 72 - inherited actRefrescar: TAction - OnExecute = actRefrescarExecute - end - object actPeriodoFechas: TAction - Category = 'Tareas' - Caption = 'Periodo de fechas' - ImageIndex = 4 - OnExecute = actPeriodoFechasExecute - end - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas deleted file mode 100644 index efa6b59..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlVentasTerminadas.pas +++ /dev/null @@ -1,148 +0,0 @@ -unit uViewControlVentasTerminadas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, - uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, - uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, - TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, - cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, - cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, - cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, - cxTextEdit, uViewFiltros, - uViewControGridlVentasTerminadas, uViewPeriodoFechas; - -type - IViewControlVentasTerminadas = interface(IViewControlBase) - ['{B8B9105B-E833-4E7D-BA36-EB9A7EBDCE69}'] - end; - - TfrViewControlVentasTerminadas = class(TfrViewControlBase, IViewControlVentasTerminadas) - frViewPeriodoFechas1: TfrViewPeriodoFechas; - actPeriodoFechas: TAction; - frViewControlGridVentasTerminadas1: TfrViewControlGridVentasTerminadas; - procedure actRefrescarExecute(Sender: TObject); - procedure actPeriodoFechasExecute(Sender: TObject); - protected - FModificado : Boolean; - procedure OnViewControlGridChanged(Sender : TObject); - procedure OnFilterChanged(Sender : TObject); - procedure ActivarTarea(const ATarea: Integer); override; - public - constructor Create(AOwner: TComponent); override; - procedure Refresh; override; - end; - -implementation - -uses - uDataModuleVentasTerminadas, uBizControlVentasTerminadas, uBizVentasTerminadas; - -const - PERIODO = 0; - -{$R *.dfm} - -{ TfrViewControlVentasTerminadas } - -constructor TfrViewControlVentasTerminadas.Create(AOwner: TComponent); -begin - inherited; - frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; - frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; - frViewColumnas1.ViewControlGrid := frViewControlGridVentasTerminadas1; - frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentasTerminadas1; - frViewSumarios1.ViewControlGrid := frViewControlGridVentasTerminadas1; - frViewFiltros1.ViewControlGrid := frViewControlGridVentasTerminadas1; - pcParametros.ActivePage := TabSheet5; -end; - -procedure TfrViewControlVentasTerminadas.Refresh; -var - AColumns : TStringList; -begin - inherited; - ShowHourglassCursor; - actRefrescar.Enabled := False; - - frViewControlGridVentasTerminadas1.OnViewChanged := nil; - frViewControlGridVentasTerminadas1.OnFilterChanged := nil; - - try - // Calcular las columnas a pedir al servidor - AColumns := frViewColumnas1.GetCheckedColumns; - AColumns.Duplicates := dupIgnore; - AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); - - (Control as IBizControlVentasTerminadas).Items.VisibleColumns := AColumns.CommaText; - with (Control as IBizControlVentasTerminadas).Items.DataTable do - begin - DisableControls; - try - Active := False; - LoadSchema; - ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial; - ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal; - Active := True; - - frViewColumnas1.Execute; - frViewAgrupaciones1.Execute; - frViewSumarios1.Refresh; - frViewFiltros1.Refresh; - pnlTareas.Visible := True; - - if Assigned(FOnViewChanged) then - FOnViewChanged(Self); - finally - EnableControls; - frViewControlGridVentasTerminadas1.Refresh; - frViewControlGridVentasTerminadas1.ExpandirTodo; - frViewControlGridVentasTerminadas1.GotoFirst; - end; - end; - finally - FreeAndNil(AColumns); - frViewControlGridVentasTerminadas1.OnViewChanged := OnViewControlGridChanged; - frViewControlGridVentasTerminadas1.OnFilterChanged := OnFilterChanged; - actRefrescar.Enabled := True; - HideHourglassCursor; - end; -end; - -procedure TfrViewControlVentasTerminadas.actRefrescarExecute(Sender: TObject); -begin - inherited; - Refresh; -end; - -procedure TfrViewControlVentasTerminadas.OnViewControlGridChanged( - Sender: TObject); -begin - if Assigned(Self.OnViewChanged) then - Self.OnViewChanged(Self); -end; - -procedure TfrViewControlVentasTerminadas.OnFilterChanged(Sender: TObject); -begin - frViewFiltros1.Refresh; -end; - -procedure TfrViewControlVentasTerminadas.actPeriodoFechasExecute( - Sender: TObject); -begin - inherited; - ActivarTarea(PERIODO); -end; - -procedure TfrViewControlVentasTerminadas.ActivarTarea( - const ATarea: Integer); -begin - inherited; - case ATarea of - PERIODO : pcParametros.ActivePage := TabSheet5; - end; -end; - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm deleted file mode 100644 index 65e3160..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.dfm +++ /dev/null @@ -1,11 +0,0 @@ -inherited frViewControlesVentasTerminadas: TfrViewControlesVentasTerminadas - inherited EasyListview: TEasyListview - Header.Columns.Items = { - 0400000002000000FFFECE000400000000110001000001000000000100013200 - 000001000000060000004E006F006D0062007200650000000000000000000000 - 0000FFFECE000400000000110001000001010000000000013200000001000000 - 0B000000440065007300630072006900700063006900F3006E00000000000000 - 000000000000} - Header.Visible = True - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas deleted file mode 100644 index c031e43..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Cliente/uViewControlesVentasTerminadas.pas +++ /dev/null @@ -1,24 +0,0 @@ -unit uViewControlesVentasTerminadas; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uViewControlesBase, cxGraphics, cxCustomData, cxStyles, cxTL, - cxImageComboBox, cxMaskEdit, cxTextEdit, DB, uDADataTable, ImgList, - PngImageList, cxInplaceContainer, cxDBTL, cxControls, cxTLData, - MPCommonObjects, MPCommonUtilities, EasyListview, uDAInterfaces; - -type - IViewControlesVentasTerminadas = interface(IViewControlesBase) - ['{0AFCCF6C-F5FB-4E88-9E8C-5B27D84F0D56}'] - end; - - TfrViewControlesVentasTerminadas = class(TfrViewControlesBase, IViewControlesVentasTerminadas) - end; - -implementation - -{$R *.dfm} - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas deleted file mode 100644 index 8f7213b..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasClient_Intf.pas +++ /dev/null @@ -1,1331 +0,0 @@ -unit schVentasTerminadasClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_VentasTerminadasCrossTab = '{2E68D174-CE7E-4597-A951-7670FA84D874}'; - RID_VentasTerminadas = '{F20667F0-C1D2-4500-8E10-1B8577467C80}'; - - { Data table names } - nme_VentasTerminadasCrossTab = 'VentasTerminadasCrossTab'; - nme_VentasTerminadas = 'VentasTerminadas'; - - { VentasTerminadasCrossTab fields } - - { VentasTerminadasCrossTab field indexes } - - { VentasTerminadas fields } - fld_VentasTerminadasNUMINF = 'NUMINF'; - fld_VentasTerminadasCLAVE1 = 'CLAVE1'; - fld_VentasTerminadasCLAVE2 = 'CLAVE2'; - fld_VentasTerminadasCLAVE3 = 'CLAVE3'; - fld_VentasTerminadasFECHA = 'FECHA'; - fld_VentasTerminadasDIA = 'DIA'; - fld_VentasTerminadasDIASEMANA = 'DIASEMANA'; - fld_VentasTerminadasMES = 'MES'; - fld_VentasTerminadasANO = 'ANO'; - fld_VentasTerminadasCENTRO = 'CENTRO'; - fld_VentasTerminadasVENDEDOR = 'VENDEDOR'; - fld_VentasTerminadasNUMTALON = 'NUMTALON'; - fld_VentasTerminadasCODIGO = 'CODIGO'; - fld_VentasTerminadasPRODUCTO = 'PRODUCTO'; - fld_VentasTerminadasGRUPOPRODUCTO = 'GRUPOPRODUCTO'; - fld_VentasTerminadasTIPOPRODUCTO = 'TIPOPRODUCTO'; - fld_VentasTerminadasCOLECCION = 'COLECCION'; - fld_VentasTerminadasCOLOR = 'COLOR'; - fld_VentasTerminadasTALLA = 'TALLA'; - fld_VentasTerminadasTALLA38 = 'TALLA38'; - fld_VentasTerminadasTALLA40 = 'TALLA40'; - fld_VentasTerminadasTALLA42 = 'TALLA42'; - fld_VentasTerminadasTALLA44 = 'TALLA44'; - fld_VentasTerminadasTALLA46 = 'TALLA46'; - fld_VentasTerminadasTALLA48 = 'TALLA48'; - fld_VentasTerminadasVTATERMDEV = 'VTATERMDEV'; - fld_VentasTerminadasVTAFINALRESC = 'VTAFINALRESC'; - fld_VentasTerminadasVENTAS = 'VENTAS'; - fld_VentasTerminadasDEVOLUCIONES = 'DEVOLUCIONES'; - fld_VentasTerminadasTOTAL = 'TOTAL'; - fld_VentasTerminadasVALTERMDEV = 'VALTERMDEV'; - fld_VentasTerminadasVALFINALRESC = 'VALFINALRESC'; - fld_VentasTerminadasVALVEN = 'VALVEN'; - fld_VentasTerminadasVALDEV = 'VALDEV'; - fld_VentasTerminadasVALTOT = 'VALTOT'; - - { VentasTerminadas field indexes } - idx_VentasTerminadasNUMINF = 0; - idx_VentasTerminadasCLAVE1 = 1; - idx_VentasTerminadasCLAVE2 = 2; - idx_VentasTerminadasCLAVE3 = 3; - idx_VentasTerminadasFECHA = 4; - idx_VentasTerminadasDIA = 5; - idx_VentasTerminadasDIASEMANA = 6; - idx_VentasTerminadasMES = 7; - idx_VentasTerminadasANO = 8; - idx_VentasTerminadasCENTRO = 9; - idx_VentasTerminadasVENDEDOR = 10; - idx_VentasTerminadasNUMTALON = 11; - idx_VentasTerminadasCODIGO = 12; - idx_VentasTerminadasPRODUCTO = 13; - idx_VentasTerminadasGRUPOPRODUCTO = 14; - idx_VentasTerminadasTIPOPRODUCTO = 15; - idx_VentasTerminadasCOLECCION = 16; - idx_VentasTerminadasCOLOR = 17; - idx_VentasTerminadasTALLA = 18; - idx_VentasTerminadasTALLA38 = 19; - idx_VentasTerminadasTALLA40 = 20; - idx_VentasTerminadasTALLA42 = 21; - idx_VentasTerminadasTALLA44 = 22; - idx_VentasTerminadasTALLA46 = 23; - idx_VentasTerminadasTALLA48 = 24; - idx_VentasTerminadasVTATERMDEV = 25; - idx_VentasTerminadasVTAFINALRESC = 26; - idx_VentasTerminadasVENTAS = 27; - idx_VentasTerminadasDEVOLUCIONES = 28; - idx_VentasTerminadasTOTAL = 29; - idx_VentasTerminadasVALTERMDEV = 30; - idx_VentasTerminadasVALFINALRESC = 31; - idx_VentasTerminadasVALVEN = 32; - idx_VentasTerminadasVALDEV = 33; - idx_VentasTerminadasVALTOT = 34; - -type - { IVentasTerminadasCrossTab } - IVentasTerminadasCrossTab = interface(IDAStronglyTypedDataTable) - ['{F1FA92FE-5A97-4645-A93A-CAFA9775A238}'] - { Property getters and setters } - - - { Properties } - end; - - { TVentasTerminadasCrossTabDataTableRules } - TVentasTerminadasCrossTabDataTableRules = class(TDADataTableRules, IVentasTerminadasCrossTab) - private - protected - { Property getters and setters } - - { Properties } - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IVentasTerminadas } - IVentasTerminadas = interface(IDAStronglyTypedDataTable) - ['{78DAAFC9-9EAE-4237-B301-3103B6C18EF2}'] - { Property getters and setters } - function GetNUMINFValue: String; - procedure SetNUMINFValue(const aValue: String); - function GetNUMINFIsNull: Boolean; - procedure SetNUMINFIsNull(const aValue: Boolean); - function GetCLAVE1Value: TBcd; - procedure SetCLAVE1Value(const aValue: TBcd); - function GetCLAVE1IsNull: Boolean; - procedure SetCLAVE1IsNull(const aValue: Boolean); - function GetCLAVE2Value: Integer; - procedure SetCLAVE2Value(const aValue: Integer); - function GetCLAVE2IsNull: Boolean; - procedure SetCLAVE2IsNull(const aValue: Boolean); - function GetCLAVE3Value: Integer; - procedure SetCLAVE3Value(const aValue: Integer); - function GetCLAVE3IsNull: Boolean; - procedure SetCLAVE3IsNull(const aValue: Boolean); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetFECHAIsNull: Boolean; - procedure SetFECHAIsNull(const aValue: Boolean); - function GetDIAValue: Integer; - procedure SetDIAValue(const aValue: Integer); - function GetDIAIsNull: Boolean; - procedure SetDIAIsNull(const aValue: Boolean); - function GetDIASEMANAValue: WideString; - procedure SetDIASEMANAValue(const aValue: WideString); - function GetDIASEMANAIsNull: Boolean; - procedure SetDIASEMANAIsNull(const aValue: Boolean); - function GetMESValue: WideString; - procedure SetMESValue(const aValue: WideString); - function GetMESIsNull: Boolean; - procedure SetMESIsNull(const aValue: Boolean); - function GetANOValue: Integer; - procedure SetANOValue(const aValue: Integer); - function GetANOIsNull: Boolean; - procedure SetANOIsNull(const aValue: Boolean); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetCENTROIsNull: Boolean; - procedure SetCENTROIsNull(const aValue: Boolean); - function GetVENDEDORValue: String; - procedure SetVENDEDORValue(const aValue: String); - function GetVENDEDORIsNull: Boolean; - procedure SetVENDEDORIsNull(const aValue: Boolean); - function GetNUMTALONValue: String; - procedure SetNUMTALONValue(const aValue: String); - function GetNUMTALONIsNull: Boolean; - procedure SetNUMTALONIsNull(const aValue: Boolean); - function GetCODIGOValue: String; - procedure SetCODIGOValue(const aValue: String); - function GetCODIGOIsNull: Boolean; - procedure SetCODIGOIsNull(const aValue: Boolean); - function GetPRODUCTOValue: String; - procedure SetPRODUCTOValue(const aValue: String); - function GetPRODUCTOIsNull: Boolean; - procedure SetPRODUCTOIsNull(const aValue: Boolean); - function GetGRUPOPRODUCTOValue: String; - procedure SetGRUPOPRODUCTOValue(const aValue: String); - function GetGRUPOPRODUCTOIsNull: Boolean; - procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); - function GetTIPOPRODUCTOValue: String; - procedure SetTIPOPRODUCTOValue(const aValue: String); - function GetTIPOPRODUCTOIsNull: Boolean; - procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); - function GetCOLECCIONValue: String; - procedure SetCOLECCIONValue(const aValue: String); - function GetCOLECCIONIsNull: Boolean; - procedure SetCOLECCIONIsNull(const aValue: Boolean); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetCOLORIsNull: Boolean; - procedure SetCOLORIsNull(const aValue: Boolean); - function GetTALLAValue: String; - procedure SetTALLAValue(const aValue: String); - function GetTALLAIsNull: Boolean; - procedure SetTALLAIsNull(const aValue: Boolean); - function GetTALLA38Value: TBcd; - procedure SetTALLA38Value(const aValue: TBcd); - function GetTALLA38IsNull: Boolean; - procedure SetTALLA38IsNull(const aValue: Boolean); - function GetTALLA40Value: TBcd; - procedure SetTALLA40Value(const aValue: TBcd); - function GetTALLA40IsNull: Boolean; - procedure SetTALLA40IsNull(const aValue: Boolean); - function GetTALLA42Value: TBcd; - procedure SetTALLA42Value(const aValue: TBcd); - function GetTALLA42IsNull: Boolean; - procedure SetTALLA42IsNull(const aValue: Boolean); - function GetTALLA44Value: TBcd; - procedure SetTALLA44Value(const aValue: TBcd); - function GetTALLA44IsNull: Boolean; - procedure SetTALLA44IsNull(const aValue: Boolean); - function GetTALLA46Value: TBcd; - procedure SetTALLA46Value(const aValue: TBcd); - function GetTALLA46IsNull: Boolean; - procedure SetTALLA46IsNull(const aValue: Boolean); - function GetTALLA48Value: TBcd; - procedure SetTALLA48Value(const aValue: TBcd); - function GetTALLA48IsNull: Boolean; - procedure SetTALLA48IsNull(const aValue: Boolean); - function GetVTATERMDEVValue: TBcd; - procedure SetVTATERMDEVValue(const aValue: TBcd); - function GetVTATERMDEVIsNull: Boolean; - procedure SetVTATERMDEVIsNull(const aValue: Boolean); - function GetVTAFINALRESCValue: TBcd; - procedure SetVTAFINALRESCValue(const aValue: TBcd); - function GetVTAFINALRESCIsNull: Boolean; - procedure SetVTAFINALRESCIsNull(const aValue: Boolean); - function GetVENTASValue: TBcd; - procedure SetVENTASValue(const aValue: TBcd); - function GetVENTASIsNull: Boolean; - procedure SetVENTASIsNull(const aValue: Boolean); - function GetDEVOLUCIONESValue: TBcd; - procedure SetDEVOLUCIONESValue(const aValue: TBcd); - function GetDEVOLUCIONESIsNull: Boolean; - procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); - function GetTOTALValue: TBcd; - procedure SetTOTALValue(const aValue: TBcd); - function GetTOTALIsNull: Boolean; - procedure SetTOTALIsNull(const aValue: Boolean); - function GetVALTERMDEVValue: TBcd; - procedure SetVALTERMDEVValue(const aValue: TBcd); - function GetVALTERMDEVIsNull: Boolean; - procedure SetVALTERMDEVIsNull(const aValue: Boolean); - function GetVALFINALRESCValue: TBcd; - procedure SetVALFINALRESCValue(const aValue: TBcd); - function GetVALFINALRESCIsNull: Boolean; - procedure SetVALFINALRESCIsNull(const aValue: Boolean); - function GetVALVENValue: TBcd; - procedure SetVALVENValue(const aValue: TBcd); - function GetVALVENIsNull: Boolean; - procedure SetVALVENIsNull(const aValue: Boolean); - function GetVALDEVValue: TBcd; - procedure SetVALDEVValue(const aValue: TBcd); - function GetVALDEVIsNull: Boolean; - procedure SetVALDEVIsNull(const aValue: Boolean); - function GetVALTOTValue: TBcd; - procedure SetVALTOTValue(const aValue: TBcd); - function GetVALTOTIsNull: Boolean; - procedure SetVALTOTIsNull(const aValue: Boolean); - - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; - property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; - property DIA: Integer read GetDIAValue write SetDIAValue; - property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; - property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; - property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; - property MES: WideString read GetMESValue write SetMESValue; - property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; - property ANO: Integer read GetANOValue write SetANOValue; - property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; - property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; - property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; - property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; - property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; - property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; - property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; - property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; - property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; - property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; - property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; - property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; - property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; - property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; - property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; - property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; - property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; - property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; - property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; - property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; - property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; - property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; - property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; - property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; - property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; - property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; - property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; - property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; - property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; - property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; - property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; - property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; - property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; - property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; - property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; - end; - - { TVentasTerminadasDataTableRules } - TVentasTerminadasDataTableRules = class(TDADataTableRules, IVentasTerminadas) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetNUMINFIsNull: Boolean; virtual; - procedure SetNUMINFIsNull(const aValue: Boolean); virtual; - function GetCLAVE1Value: TBcd; virtual; - procedure SetCLAVE1Value(const aValue: TBcd); virtual; - function GetCLAVE1IsNull: Boolean; virtual; - procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; - function GetCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetCLAVE2IsNull: Boolean; virtual; - procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; - function GetCLAVE3Value: Integer; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - function GetCLAVE3IsNull: Boolean; virtual; - procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetFECHAIsNull: Boolean; virtual; - procedure SetFECHAIsNull(const aValue: Boolean); virtual; - function GetDIAValue: Integer; virtual; - procedure SetDIAValue(const aValue: Integer); virtual; - function GetDIAIsNull: Boolean; virtual; - procedure SetDIAIsNull(const aValue: Boolean); virtual; - function GetDIASEMANAValue: WideString; virtual; - procedure SetDIASEMANAValue(const aValue: WideString); virtual; - function GetDIASEMANAIsNull: Boolean; virtual; - procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; - function GetMESValue: WideString; virtual; - procedure SetMESValue(const aValue: WideString); virtual; - function GetMESIsNull: Boolean; virtual; - procedure SetMESIsNull(const aValue: Boolean); virtual; - function GetANOValue: Integer; virtual; - procedure SetANOValue(const aValue: Integer); virtual; - function GetANOIsNull: Boolean; virtual; - procedure SetANOIsNull(const aValue: Boolean); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetCENTROIsNull: Boolean; virtual; - procedure SetCENTROIsNull(const aValue: Boolean); virtual; - function GetVENDEDORValue: String; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - function GetVENDEDORIsNull: Boolean; virtual; - procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; - function GetNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetNUMTALONIsNull: Boolean; virtual; - procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; - function GetCODIGOValue: String; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - function GetCODIGOIsNull: Boolean; virtual; - procedure SetCODIGOIsNull(const aValue: Boolean); virtual; - function GetPRODUCTOValue: String; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - function GetPRODUCTOIsNull: Boolean; virtual; - procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetGRUPOPRODUCTOValue: String; virtual; - procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; - function GetGRUPOPRODUCTOIsNull: Boolean; virtual; - procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetTIPOPRODUCTOValue: String; virtual; - procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; - function GetTIPOPRODUCTOIsNull: Boolean; virtual; - procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetCOLECCIONValue: String; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - function GetCOLECCIONIsNull: Boolean; virtual; - procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetCOLORIsNull: Boolean; virtual; - procedure SetCOLORIsNull(const aValue: Boolean); virtual; - function GetTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetTALLAIsNull: Boolean; virtual; - procedure SetTALLAIsNull(const aValue: Boolean); virtual; - function GetTALLA38Value: TBcd; virtual; - procedure SetTALLA38Value(const aValue: TBcd); virtual; - function GetTALLA38IsNull: Boolean; virtual; - procedure SetTALLA38IsNull(const aValue: Boolean); virtual; - function GetTALLA40Value: TBcd; virtual; - procedure SetTALLA40Value(const aValue: TBcd); virtual; - function GetTALLA40IsNull: Boolean; virtual; - procedure SetTALLA40IsNull(const aValue: Boolean); virtual; - function GetTALLA42Value: TBcd; virtual; - procedure SetTALLA42Value(const aValue: TBcd); virtual; - function GetTALLA42IsNull: Boolean; virtual; - procedure SetTALLA42IsNull(const aValue: Boolean); virtual; - function GetTALLA44Value: TBcd; virtual; - procedure SetTALLA44Value(const aValue: TBcd); virtual; - function GetTALLA44IsNull: Boolean; virtual; - procedure SetTALLA44IsNull(const aValue: Boolean); virtual; - function GetTALLA46Value: TBcd; virtual; - procedure SetTALLA46Value(const aValue: TBcd); virtual; - function GetTALLA46IsNull: Boolean; virtual; - procedure SetTALLA46IsNull(const aValue: Boolean); virtual; - function GetTALLA48Value: TBcd; virtual; - procedure SetTALLA48Value(const aValue: TBcd); virtual; - function GetTALLA48IsNull: Boolean; virtual; - procedure SetTALLA48IsNull(const aValue: Boolean); virtual; - function GetVTATERMDEVValue: TBcd; virtual; - procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; - function GetVTATERMDEVIsNull: Boolean; virtual; - procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; - function GetVTAFINALRESCValue: TBcd; virtual; - procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; - function GetVTAFINALRESCIsNull: Boolean; virtual; - procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; - function GetVENTASValue: TBcd; virtual; - procedure SetVENTASValue(const aValue: TBcd); virtual; - function GetVENTASIsNull: Boolean; virtual; - procedure SetVENTASIsNull(const aValue: Boolean); virtual; - function GetDEVOLUCIONESValue: TBcd; virtual; - procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; - function GetDEVOLUCIONESIsNull: Boolean; virtual; - procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; - function GetTOTALValue: TBcd; virtual; - procedure SetTOTALValue(const aValue: TBcd); virtual; - function GetTOTALIsNull: Boolean; virtual; - procedure SetTOTALIsNull(const aValue: Boolean); virtual; - function GetVALTERMDEVValue: TBcd; virtual; - procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; - function GetVALTERMDEVIsNull: Boolean; virtual; - procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; - function GetVALFINALRESCValue: TBcd; virtual; - procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; - function GetVALFINALRESCIsNull: Boolean; virtual; - procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; - function GetVALVENValue: TBcd; virtual; - procedure SetVALVENValue(const aValue: TBcd); virtual; - function GetVALVENIsNull: Boolean; virtual; - procedure SetVALVENIsNull(const aValue: Boolean); virtual; - function GetVALDEVValue: TBcd; virtual; - procedure SetVALDEVValue(const aValue: TBcd); virtual; - function GetVALDEVIsNull: Boolean; virtual; - procedure SetVALDEVIsNull(const aValue: Boolean); virtual; - function GetVALTOTValue: TBcd; virtual; - procedure SetVALTOTValue(const aValue: TBcd); virtual; - function GetVALTOTIsNull: Boolean; virtual; - procedure SetVALTOTIsNull(const aValue: Boolean); virtual; - - { Properties } - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property NUMINFIsNull: Boolean read GetNUMINFIsNull write SetNUMINFIsNull; - property CLAVE1: TBcd read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE1IsNull: Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE2IsNull: Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; - property CLAVE3: Integer read GetCLAVE3Value write SetCLAVE3Value; - property CLAVE3IsNull: Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; - property DIA: Integer read GetDIAValue write SetDIAValue; - property DIAIsNull: Boolean read GetDIAIsNull write SetDIAIsNull; - property DIASEMANA: WideString read GetDIASEMANAValue write SetDIASEMANAValue; - property DIASEMANAIsNull: Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; - property MES: WideString read GetMESValue write SetMESValue; - property MESIsNull: Boolean read GetMESIsNull write SetMESIsNull; - property ANO: Integer read GetANOValue write SetANOValue; - property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property CENTROIsNull: Boolean read GetCENTROIsNull write SetCENTROIsNull; - property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue; - property VENDEDORIsNull: Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property NUMTALONIsNull: Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; - property CODIGO: String read GetCODIGOValue write SetCODIGOValue; - property CODIGOIsNull: Boolean read GetCODIGOIsNull write SetCODIGOIsNull; - property PRODUCTO: String read GetPRODUCTOValue write SetPRODUCTOValue; - property PRODUCTOIsNull: Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; - property GRUPOPRODUCTO: String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property GRUPOPRODUCTOIsNull: Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; - property TIPOPRODUCTO: String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property TIPOPRODUCTOIsNull: Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; - property COLECCION: String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLECCIONIsNull: Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property COLORIsNull: Boolean read GetCOLORIsNull write SetCOLORIsNull; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property TALLAIsNull: Boolean read GetTALLAIsNull write SetTALLAIsNull; - property TALLA38: TBcd read GetTALLA38Value write SetTALLA38Value; - property TALLA38IsNull: Boolean read GetTALLA38IsNull write SetTALLA38IsNull; - property TALLA40: TBcd read GetTALLA40Value write SetTALLA40Value; - property TALLA40IsNull: Boolean read GetTALLA40IsNull write SetTALLA40IsNull; - property TALLA42: TBcd read GetTALLA42Value write SetTALLA42Value; - property TALLA42IsNull: Boolean read GetTALLA42IsNull write SetTALLA42IsNull; - property TALLA44: TBcd read GetTALLA44Value write SetTALLA44Value; - property TALLA44IsNull: Boolean read GetTALLA44IsNull write SetTALLA44IsNull; - property TALLA46: TBcd read GetTALLA46Value write SetTALLA46Value; - property TALLA46IsNull: Boolean read GetTALLA46IsNull write SetTALLA46IsNull; - property TALLA48: TBcd read GetTALLA48Value write SetTALLA48Value; - property TALLA48IsNull: Boolean read GetTALLA48IsNull write SetTALLA48IsNull; - property VTATERMDEV: TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; - property VTATERMDEVIsNull: Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; - property VTAFINALRESC: TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; - property VTAFINALRESCIsNull: Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; - property VENTAS: TBcd read GetVENTASValue write SetVENTASValue; - property VENTASIsNull: Boolean read GetVENTASIsNull write SetVENTASIsNull; - property DEVOLUCIONES: TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; - property DEVOLUCIONESIsNull: Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; - property TOTAL: TBcd read GetTOTALValue write SetTOTALValue; - property TOTALIsNull: Boolean read GetTOTALIsNull write SetTOTALIsNull; - property VALTERMDEV: TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; - property VALTERMDEVIsNull: Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; - property VALFINALRESC: TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; - property VALFINALRESCIsNull: Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; - property VALVEN: TBcd read GetVALVENValue write SetVALVENValue; - property VALVENIsNull: Boolean read GetVALVENIsNull write SetVALVENIsNull; - property VALDEV: TBcd read GetVALDEVValue write SetVALDEVValue; - property VALDEVIsNull: Boolean read GetVALDEVIsNull write SetVALDEVIsNull; - property VALTOT: TBcd read GetVALTOTValue write SetVALTOTValue; - property VALTOTIsNull: Boolean read GetVALTOTIsNull write SetVALTOTIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants, uROBinaryHelpers; - -{ TVentasTerminadasCrossTabDataTableRules } -constructor TVentasTerminadasCrossTabDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TVentasTerminadasCrossTabDataTableRules.Destroy; -begin - inherited; -end; - - -{ TVentasTerminadasDataTableRules } -constructor TVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TVentasTerminadasDataTableRules.Destroy; -begin - inherited; -end; - -function TVentasTerminadasDataTableRules.GetNUMINFValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasNUMINF].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetNUMINFValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasNUMINF].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetNUMINFIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasNUMINF].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetNUMINFIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasNUMINF].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE1Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE1Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasCLAVE1].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE1IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE1].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE1IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCLAVE1].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE2Value: Integer; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE2Value(const aValue: Integer); -begin - DataTable.Fields[idx_VentasTerminadasCLAVE2].AsInteger := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE2IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE2].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE2IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCLAVE2].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE3Value: Integer; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE3Value(const aValue: Integer); -begin - DataTable.Fields[idx_VentasTerminadasCLAVE3].AsInteger := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCLAVE3IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCLAVE3].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCLAVE3IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCLAVE3].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime; -end; - -procedure TVentasTerminadasDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_VentasTerminadasFECHA].AsDateTime := aValue; -end; - -function TVentasTerminadasDataTableRules.GetFECHAIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasFECHA].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetFECHAIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasFECHA].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetDIAValue: Integer; -begin - result := DataTable.Fields[idx_VentasTerminadasDIA].AsInteger; -end; - -procedure TVentasTerminadasDataTableRules.SetDIAValue(const aValue: Integer); -begin - DataTable.Fields[idx_VentasTerminadasDIA].AsInteger := aValue; -end; - -function TVentasTerminadasDataTableRules.GetDIAIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasDIA].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetDIAIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasDIA].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetDIASEMANAValue: WideString; -begin - result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString; -end; - -procedure TVentasTerminadasDataTableRules.SetDIASEMANAValue(const aValue: WideString); -begin - DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsWideString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetDIASEMANAIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasDIASEMANA].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetDIASEMANAIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasDIASEMANA].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetMESValue: WideString; -begin - result := DataTable.Fields[idx_VentasTerminadasMES].AsWideString; -end; - -procedure TVentasTerminadasDataTableRules.SetMESValue(const aValue: WideString); -begin - DataTable.Fields[idx_VentasTerminadasMES].AsWideString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetMESIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasMES].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetMESIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasMES].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetANOValue: Integer; -begin - result := DataTable.Fields[idx_VentasTerminadasANO].AsInteger; -end; - -procedure TVentasTerminadasDataTableRules.SetANOValue(const aValue: Integer); -begin - DataTable.Fields[idx_VentasTerminadasANO].AsInteger := aValue; -end; - -function TVentasTerminadasDataTableRules.GetANOIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasANO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetANOIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasANO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasCENTRO].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasCENTRO].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCENTROIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCENTRO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCENTROIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCENTRO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVENDEDORValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetVENDEDORValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVENDEDORIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVENDEDOR].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVENDEDORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVENDEDOR].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetNUMTALONValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetNUMTALONValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasNUMTALON].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetNUMTALONIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasNUMTALON].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetNUMTALONIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasNUMTALON].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCODIGOValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasCODIGO].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetCODIGOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasCODIGO].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCODIGOIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCODIGO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCODIGOIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCODIGO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetPRODUCTOIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasPRODUCTO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasPRODUCTO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetGRUPOPRODUCTOIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasGRUPOPRODUCTO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTIPOPRODUCTOIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTIPOPRODUCTO].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCOLECCIONValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetCOLECCIONValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasCOLECCION].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCOLECCIONIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCOLECCION].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCOLECCIONIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCOLECCION].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasCOLOR].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasCOLOR].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetCOLORIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasCOLOR].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetCOLORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasCOLOR].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLAValue: String; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA].AsString; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLAValue(const aValue: String); -begin - DataTable.Fields[idx_VentasTerminadasTALLA].AsString := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLAIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLAIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA38Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA38Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA38].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA38IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA38].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA38IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA38].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA40Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA40Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA40].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA40IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA40].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA40IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA40].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA42Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA42Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA42].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA42IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA42].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA42IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA42].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA44Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA44Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA44].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA44IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA44].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA44IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA44].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA46Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA46Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA46].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA46IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA46].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA46IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA46].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTALLA48Value: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA48Value(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTALLA48].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTALLA48IsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTALLA48].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTALLA48IsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTALLA48].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVTATERMDEVValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVTATERMDEVValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVTATERMDEVIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVTATERMDEV].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVTATERMDEVIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVTATERMDEV].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVTAFINALRESCValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVTAFINALRESCIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVTAFINALRESCIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVTAFINALRESC].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVENTASValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVENTASValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVENTAS].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVENTASIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVENTAS].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVENTASIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVENTAS].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetDEVOLUCIONESValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetDEVOLUCIONESIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasDEVOLUCIONES].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetTOTALValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetTOTALValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasTOTAL].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetTOTALIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasTOTAL].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetTOTALIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasTOTAL].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVALTERMDEVValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVALTERMDEVValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVALTERMDEVIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVALTERMDEV].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVALTERMDEVIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVALTERMDEV].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVALFINALRESCValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVALFINALRESCValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVALFINALRESCIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVALFINALRESC].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVALFINALRESCIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVALFINALRESC].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVALVENValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVALVENValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVALVEN].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVALVENIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVALVEN].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVALVENIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVALVEN].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVALDEVValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVALDEVValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVALDEV].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVALDEVIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVALDEV].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVALDEVIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVALDEV].AsVariant := Null; -end; - -function TVentasTerminadasDataTableRules.GetVALTOTValue: TBcd; -begin - result := DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal; -end; - -procedure TVentasTerminadasDataTableRules.SetVALTOTValue(const aValue: TBcd); -begin - DataTable.Fields[idx_VentasTerminadasVALTOT].AsDecimal := aValue; -end; - -function TVentasTerminadasDataTableRules.GetVALTOTIsNull: boolean; -begin - result := DataTable.Fields[idx_VentasTerminadasVALTOT].IsNull; -end; - -procedure TVentasTerminadasDataTableRules.SetVALTOTIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_VentasTerminadasVALTOT].AsVariant := Null; -end; - - -initialization - RegisterDataTableRules(RID_VentasTerminadasCrossTab, TVentasTerminadasCrossTabDataTableRules); - RegisterDataTableRules(RID_VentasTerminadas, TVentasTerminadasDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas deleted file mode 100644 index cdee0f2..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/schVentasTerminadasServer_Intf.pas +++ /dev/null @@ -1,1598 +0,0 @@ -unit schVentasTerminadasServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schVentasTerminadasClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_VentasTerminadasCrossTabDelta = '{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'; - RID_VentasTerminadasDelta = '{05A89678-2248-4B09-9BEC-354E07FD2CE5}'; - -type - { IVentasTerminadasCrossTabDelta } - IVentasTerminadasCrossTabDelta = interface(IVentasTerminadasCrossTab) - ['{450CE6EB-71EE-4A59-9D2A-558F4D5346A3}'] - { Property getters and setters } - - { Properties } - end; - - { TVentasTerminadasCrossTabBusinessProcessorRules } - TVentasTerminadasCrossTabBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadasCrossTab, IVentasTerminadasCrossTabDelta) - private - protected - { Property getters and setters } - - { Properties } - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IVentasTerminadasDelta } - IVentasTerminadasDelta = interface(IVentasTerminadas) - ['{05A89678-2248-4B09-9BEC-354E07FD2CE5}'] - { Property getters and setters } - function GetOldNUMINFValue : String; - function GetOldCLAVE1Value : TBcd; - function GetOldCLAVE2Value : Integer; - function GetOldCLAVE3Value : Integer; - function GetOldFECHAValue : DateTime; - function GetOldDIAValue : Integer; - function GetOldDIASEMANAValue : WideString; - function GetOldMESValue : WideString; - function GetOldANOValue : Integer; - function GetOldCENTROValue : String; - function GetOldVENDEDORValue : String; - function GetOldNUMTALONValue : String; - function GetOldCODIGOValue : String; - function GetOldPRODUCTOValue : String; - function GetOldGRUPOPRODUCTOValue : String; - function GetOldTIPOPRODUCTOValue : String; - function GetOldCOLECCIONValue : String; - function GetOldCOLORValue : String; - function GetOldTALLAValue : String; - function GetOldTALLA38Value : TBcd; - function GetOldTALLA40Value : TBcd; - function GetOldTALLA42Value : TBcd; - function GetOldTALLA44Value : TBcd; - function GetOldTALLA46Value : TBcd; - function GetOldTALLA48Value : TBcd; - function GetOldVTATERMDEVValue : TBcd; - function GetOldVTAFINALRESCValue : TBcd; - function GetOldVENTASValue : TBcd; - function GetOldDEVOLUCIONESValue : TBcd; - function GetOldTOTALValue : TBcd; - function GetOldVALTERMDEVValue : TBcd; - function GetOldVALFINALRESCValue : TBcd; - function GetOldVALVENValue : TBcd; - function GetOldVALDEVValue : TBcd; - function GetOldVALTOTValue : TBcd; - - { Properties } - property OldNUMINF : String read GetOldNUMINFValue; - property OldCLAVE1 : TBcd read GetOldCLAVE1Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldDIA : Integer read GetOldDIAValue; - property OldDIASEMANA : WideString read GetOldDIASEMANAValue; - property OldMES : WideString read GetOldMESValue; - property OldANO : Integer read GetOldANOValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldCODIGO : String read GetOldCODIGOValue; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; - property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldTALLA : String read GetOldTALLAValue; - property OldTALLA38 : TBcd read GetOldTALLA38Value; - property OldTALLA40 : TBcd read GetOldTALLA40Value; - property OldTALLA42 : TBcd read GetOldTALLA42Value; - property OldTALLA44 : TBcd read GetOldTALLA44Value; - property OldTALLA46 : TBcd read GetOldTALLA46Value; - property OldTALLA48 : TBcd read GetOldTALLA48Value; - property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; - property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; - property OldVENTAS : TBcd read GetOldVENTASValue; - property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; - property OldTOTAL : TBcd read GetOldTOTALValue; - property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; - property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; - property OldVALVEN : TBcd read GetOldVALVENValue; - property OldVALDEV : TBcd read GetOldVALDEVValue; - property OldVALTOT : TBcd read GetOldVALTOTValue; - end; - - { TVentasTerminadasBusinessProcessorRules } - TVentasTerminadasBusinessProcessorRules = class(TDABusinessProcessorRules, IVentasTerminadas, IVentasTerminadasDelta) - private - protected - { Property getters and setters } - function GetNUMINFValue: String; virtual; - function GetNUMINFIsNull: Boolean; virtual; - function GetOldNUMINFValue: String; virtual; - function GetOldNUMINFIsNull: Boolean; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - procedure SetNUMINFIsNull(const aValue: Boolean); virtual; - function GetCLAVE1Value: TBcd; virtual; - function GetCLAVE1IsNull: Boolean; virtual; - function GetOldCLAVE1Value: TBcd; virtual; - function GetOldCLAVE1IsNull: Boolean; virtual; - procedure SetCLAVE1Value(const aValue: TBcd); virtual; - procedure SetCLAVE1IsNull(const aValue: Boolean); virtual; - function GetCLAVE2Value: Integer; virtual; - function GetCLAVE2IsNull: Boolean; virtual; - function GetOldCLAVE2Value: Integer; virtual; - function GetOldCLAVE2IsNull: Boolean; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - procedure SetCLAVE2IsNull(const aValue: Boolean); virtual; - function GetCLAVE3Value: Integer; virtual; - function GetCLAVE3IsNull: Boolean; virtual; - function GetOldCLAVE3Value: Integer; virtual; - function GetOldCLAVE3IsNull: Boolean; virtual; - procedure SetCLAVE3Value(const aValue: Integer); virtual; - procedure SetCLAVE3IsNull(const aValue: Boolean); virtual; - function GetFECHAValue: DateTime; virtual; - function GetFECHAIsNull: Boolean; virtual; - function GetOldFECHAValue: DateTime; virtual; - function GetOldFECHAIsNull: Boolean; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - procedure SetFECHAIsNull(const aValue: Boolean); virtual; - function GetDIAValue: Integer; virtual; - function GetDIAIsNull: Boolean; virtual; - function GetOldDIAValue: Integer; virtual; - function GetOldDIAIsNull: Boolean; virtual; - procedure SetDIAValue(const aValue: Integer); virtual; - procedure SetDIAIsNull(const aValue: Boolean); virtual; - function GetDIASEMANAValue: WideString; virtual; - function GetDIASEMANAIsNull: Boolean; virtual; - function GetOldDIASEMANAValue: WideString; virtual; - function GetOldDIASEMANAIsNull: Boolean; virtual; - procedure SetDIASEMANAValue(const aValue: WideString); virtual; - procedure SetDIASEMANAIsNull(const aValue: Boolean); virtual; - function GetMESValue: WideString; virtual; - function GetMESIsNull: Boolean; virtual; - function GetOldMESValue: WideString; virtual; - function GetOldMESIsNull: Boolean; virtual; - procedure SetMESValue(const aValue: WideString); virtual; - procedure SetMESIsNull(const aValue: Boolean); virtual; - function GetANOValue: Integer; virtual; - function GetANOIsNull: Boolean; virtual; - function GetOldANOValue: Integer; virtual; - function GetOldANOIsNull: Boolean; virtual; - procedure SetANOValue(const aValue: Integer); virtual; - procedure SetANOIsNull(const aValue: Boolean); virtual; - function GetCENTROValue: String; virtual; - function GetCENTROIsNull: Boolean; virtual; - function GetOldCENTROValue: String; virtual; - function GetOldCENTROIsNull: Boolean; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - procedure SetCENTROIsNull(const aValue: Boolean); virtual; - function GetVENDEDORValue: String; virtual; - function GetVENDEDORIsNull: Boolean; virtual; - function GetOldVENDEDORValue: String; virtual; - function GetOldVENDEDORIsNull: Boolean; virtual; - procedure SetVENDEDORValue(const aValue: String); virtual; - procedure SetVENDEDORIsNull(const aValue: Boolean); virtual; - function GetNUMTALONValue: String; virtual; - function GetNUMTALONIsNull: Boolean; virtual; - function GetOldNUMTALONValue: String; virtual; - function GetOldNUMTALONIsNull: Boolean; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - procedure SetNUMTALONIsNull(const aValue: Boolean); virtual; - function GetCODIGOValue: String; virtual; - function GetCODIGOIsNull: Boolean; virtual; - function GetOldCODIGOValue: String; virtual; - function GetOldCODIGOIsNull: Boolean; virtual; - procedure SetCODIGOValue(const aValue: String); virtual; - procedure SetCODIGOIsNull(const aValue: Boolean); virtual; - function GetPRODUCTOValue: String; virtual; - function GetPRODUCTOIsNull: Boolean; virtual; - function GetOldPRODUCTOValue: String; virtual; - function GetOldPRODUCTOIsNull: Boolean; virtual; - procedure SetPRODUCTOValue(const aValue: String); virtual; - procedure SetPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetGRUPOPRODUCTOValue: String; virtual; - function GetGRUPOPRODUCTOIsNull: Boolean; virtual; - function GetOldGRUPOPRODUCTOValue: String; virtual; - function GetOldGRUPOPRODUCTOIsNull: Boolean; virtual; - procedure SetGRUPOPRODUCTOValue(const aValue: String); virtual; - procedure SetGRUPOPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetTIPOPRODUCTOValue: String; virtual; - function GetTIPOPRODUCTOIsNull: Boolean; virtual; - function GetOldTIPOPRODUCTOValue: String; virtual; - function GetOldTIPOPRODUCTOIsNull: Boolean; virtual; - procedure SetTIPOPRODUCTOValue(const aValue: String); virtual; - procedure SetTIPOPRODUCTOIsNull(const aValue: Boolean); virtual; - function GetCOLECCIONValue: String; virtual; - function GetCOLECCIONIsNull: Boolean; virtual; - function GetOldCOLECCIONValue: String; virtual; - function GetOldCOLECCIONIsNull: Boolean; virtual; - procedure SetCOLECCIONValue(const aValue: String); virtual; - procedure SetCOLECCIONIsNull(const aValue: Boolean); virtual; - function GetCOLORValue: String; virtual; - function GetCOLORIsNull: Boolean; virtual; - function GetOldCOLORValue: String; virtual; - function GetOldCOLORIsNull: Boolean; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - procedure SetCOLORIsNull(const aValue: Boolean); virtual; - function GetTALLAValue: String; virtual; - function GetTALLAIsNull: Boolean; virtual; - function GetOldTALLAValue: String; virtual; - function GetOldTALLAIsNull: Boolean; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - procedure SetTALLAIsNull(const aValue: Boolean); virtual; - function GetTALLA38Value: TBcd; virtual; - function GetTALLA38IsNull: Boolean; virtual; - function GetOldTALLA38Value: TBcd; virtual; - function GetOldTALLA38IsNull: Boolean; virtual; - procedure SetTALLA38Value(const aValue: TBcd); virtual; - procedure SetTALLA38IsNull(const aValue: Boolean); virtual; - function GetTALLA40Value: TBcd; virtual; - function GetTALLA40IsNull: Boolean; virtual; - function GetOldTALLA40Value: TBcd; virtual; - function GetOldTALLA40IsNull: Boolean; virtual; - procedure SetTALLA40Value(const aValue: TBcd); virtual; - procedure SetTALLA40IsNull(const aValue: Boolean); virtual; - function GetTALLA42Value: TBcd; virtual; - function GetTALLA42IsNull: Boolean; virtual; - function GetOldTALLA42Value: TBcd; virtual; - function GetOldTALLA42IsNull: Boolean; virtual; - procedure SetTALLA42Value(const aValue: TBcd); virtual; - procedure SetTALLA42IsNull(const aValue: Boolean); virtual; - function GetTALLA44Value: TBcd; virtual; - function GetTALLA44IsNull: Boolean; virtual; - function GetOldTALLA44Value: TBcd; virtual; - function GetOldTALLA44IsNull: Boolean; virtual; - procedure SetTALLA44Value(const aValue: TBcd); virtual; - procedure SetTALLA44IsNull(const aValue: Boolean); virtual; - function GetTALLA46Value: TBcd; virtual; - function GetTALLA46IsNull: Boolean; virtual; - function GetOldTALLA46Value: TBcd; virtual; - function GetOldTALLA46IsNull: Boolean; virtual; - procedure SetTALLA46Value(const aValue: TBcd); virtual; - procedure SetTALLA46IsNull(const aValue: Boolean); virtual; - function GetTALLA48Value: TBcd; virtual; - function GetTALLA48IsNull: Boolean; virtual; - function GetOldTALLA48Value: TBcd; virtual; - function GetOldTALLA48IsNull: Boolean; virtual; - procedure SetTALLA48Value(const aValue: TBcd); virtual; - procedure SetTALLA48IsNull(const aValue: Boolean); virtual; - function GetVTATERMDEVValue: TBcd; virtual; - function GetVTATERMDEVIsNull: Boolean; virtual; - function GetOldVTATERMDEVValue: TBcd; virtual; - function GetOldVTATERMDEVIsNull: Boolean; virtual; - procedure SetVTATERMDEVValue(const aValue: TBcd); virtual; - procedure SetVTATERMDEVIsNull(const aValue: Boolean); virtual; - function GetVTAFINALRESCValue: TBcd; virtual; - function GetVTAFINALRESCIsNull: Boolean; virtual; - function GetOldVTAFINALRESCValue: TBcd; virtual; - function GetOldVTAFINALRESCIsNull: Boolean; virtual; - procedure SetVTAFINALRESCValue(const aValue: TBcd); virtual; - procedure SetVTAFINALRESCIsNull(const aValue: Boolean); virtual; - function GetVENTASValue: TBcd; virtual; - function GetVENTASIsNull: Boolean; virtual; - function GetOldVENTASValue: TBcd; virtual; - function GetOldVENTASIsNull: Boolean; virtual; - procedure SetVENTASValue(const aValue: TBcd); virtual; - procedure SetVENTASIsNull(const aValue: Boolean); virtual; - function GetDEVOLUCIONESValue: TBcd; virtual; - function GetDEVOLUCIONESIsNull: Boolean; virtual; - function GetOldDEVOLUCIONESValue: TBcd; virtual; - function GetOldDEVOLUCIONESIsNull: Boolean; virtual; - procedure SetDEVOLUCIONESValue(const aValue: TBcd); virtual; - procedure SetDEVOLUCIONESIsNull(const aValue: Boolean); virtual; - function GetTOTALValue: TBcd; virtual; - function GetTOTALIsNull: Boolean; virtual; - function GetOldTOTALValue: TBcd; virtual; - function GetOldTOTALIsNull: Boolean; virtual; - procedure SetTOTALValue(const aValue: TBcd); virtual; - procedure SetTOTALIsNull(const aValue: Boolean); virtual; - function GetVALTERMDEVValue: TBcd; virtual; - function GetVALTERMDEVIsNull: Boolean; virtual; - function GetOldVALTERMDEVValue: TBcd; virtual; - function GetOldVALTERMDEVIsNull: Boolean; virtual; - procedure SetVALTERMDEVValue(const aValue: TBcd); virtual; - procedure SetVALTERMDEVIsNull(const aValue: Boolean); virtual; - function GetVALFINALRESCValue: TBcd; virtual; - function GetVALFINALRESCIsNull: Boolean; virtual; - function GetOldVALFINALRESCValue: TBcd; virtual; - function GetOldVALFINALRESCIsNull: Boolean; virtual; - procedure SetVALFINALRESCValue(const aValue: TBcd); virtual; - procedure SetVALFINALRESCIsNull(const aValue: Boolean); virtual; - function GetVALVENValue: TBcd; virtual; - function GetVALVENIsNull: Boolean; virtual; - function GetOldVALVENValue: TBcd; virtual; - function GetOldVALVENIsNull: Boolean; virtual; - procedure SetVALVENValue(const aValue: TBcd); virtual; - procedure SetVALVENIsNull(const aValue: Boolean); virtual; - function GetVALDEVValue: TBcd; virtual; - function GetVALDEVIsNull: Boolean; virtual; - function GetOldVALDEVValue: TBcd; virtual; - function GetOldVALDEVIsNull: Boolean; virtual; - procedure SetVALDEVValue(const aValue: TBcd); virtual; - procedure SetVALDEVIsNull(const aValue: Boolean); virtual; - function GetVALTOTValue: TBcd; virtual; - function GetVALTOTIsNull: Boolean; virtual; - function GetOldVALTOTValue: TBcd; virtual; - function GetOldVALTOTIsNull: Boolean; virtual; - procedure SetVALTOTValue(const aValue: TBcd); virtual; - procedure SetVALTOTIsNull(const aValue: Boolean); virtual; - - { Properties } - property NUMINF : String read GetNUMINFValue write SetNUMINFValue; - property NUMINFIsNull : Boolean read GetNUMINFIsNull write SetNUMINFIsNull; - property OldNUMINF : String read GetOldNUMINFValue; - property OldNUMINFIsNull : Boolean read GetOldNUMINFIsNull; - property CLAVE1 : TBcd read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE1IsNull : Boolean read GetCLAVE1IsNull write SetCLAVE1IsNull; - property OldCLAVE1 : TBcd read GetOldCLAVE1Value; - property OldCLAVE1IsNull : Boolean read GetOldCLAVE1IsNull; - property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE2IsNull : Boolean read GetCLAVE2IsNull write SetCLAVE2IsNull; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldCLAVE2IsNull : Boolean read GetOldCLAVE2IsNull; - property CLAVE3 : Integer read GetCLAVE3Value write SetCLAVE3Value; - property CLAVE3IsNull : Boolean read GetCLAVE3IsNull write SetCLAVE3IsNull; - property OldCLAVE3 : Integer read GetOldCLAVE3Value; - property OldCLAVE3IsNull : Boolean read GetOldCLAVE3IsNull; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; - property DIA : Integer read GetDIAValue write SetDIAValue; - property DIAIsNull : Boolean read GetDIAIsNull write SetDIAIsNull; - property OldDIA : Integer read GetOldDIAValue; - property OldDIAIsNull : Boolean read GetOldDIAIsNull; - property DIASEMANA : WideString read GetDIASEMANAValue write SetDIASEMANAValue; - property DIASEMANAIsNull : Boolean read GetDIASEMANAIsNull write SetDIASEMANAIsNull; - property OldDIASEMANA : WideString read GetOldDIASEMANAValue; - property OldDIASEMANAIsNull : Boolean read GetOldDIASEMANAIsNull; - property MES : WideString read GetMESValue write SetMESValue; - property MESIsNull : Boolean read GetMESIsNull write SetMESIsNull; - property OldMES : WideString read GetOldMESValue; - property OldMESIsNull : Boolean read GetOldMESIsNull; - property ANO : Integer read GetANOValue write SetANOValue; - property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull; - property OldANO : Integer read GetOldANOValue; - property OldANOIsNull : Boolean read GetOldANOIsNull; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property CENTROIsNull : Boolean read GetCENTROIsNull write SetCENTROIsNull; - property OldCENTRO : String read GetOldCENTROValue; - property OldCENTROIsNull : Boolean read GetOldCENTROIsNull; - property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue; - property VENDEDORIsNull : Boolean read GetVENDEDORIsNull write SetVENDEDORIsNull; - property OldVENDEDOR : String read GetOldVENDEDORValue; - property OldVENDEDORIsNull : Boolean read GetOldVENDEDORIsNull; - property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; - property NUMTALONIsNull : Boolean read GetNUMTALONIsNull write SetNUMTALONIsNull; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldNUMTALONIsNull : Boolean read GetOldNUMTALONIsNull; - property CODIGO : String read GetCODIGOValue write SetCODIGOValue; - property CODIGOIsNull : Boolean read GetCODIGOIsNull write SetCODIGOIsNull; - property OldCODIGO : String read GetOldCODIGOValue; - property OldCODIGOIsNull : Boolean read GetOldCODIGOIsNull; - property PRODUCTO : String read GetPRODUCTOValue write SetPRODUCTOValue; - property PRODUCTOIsNull : Boolean read GetPRODUCTOIsNull write SetPRODUCTOIsNull; - property OldPRODUCTO : String read GetOldPRODUCTOValue; - property OldPRODUCTOIsNull : Boolean read GetOldPRODUCTOIsNull; - property GRUPOPRODUCTO : String read GetGRUPOPRODUCTOValue write SetGRUPOPRODUCTOValue; - property GRUPOPRODUCTOIsNull : Boolean read GetGRUPOPRODUCTOIsNull write SetGRUPOPRODUCTOIsNull; - property OldGRUPOPRODUCTO : String read GetOldGRUPOPRODUCTOValue; - property OldGRUPOPRODUCTOIsNull : Boolean read GetOldGRUPOPRODUCTOIsNull; - property TIPOPRODUCTO : String read GetTIPOPRODUCTOValue write SetTIPOPRODUCTOValue; - property TIPOPRODUCTOIsNull : Boolean read GetTIPOPRODUCTOIsNull write SetTIPOPRODUCTOIsNull; - property OldTIPOPRODUCTO : String read GetOldTIPOPRODUCTOValue; - property OldTIPOPRODUCTOIsNull : Boolean read GetOldTIPOPRODUCTOIsNull; - property COLECCION : String read GetCOLECCIONValue write SetCOLECCIONValue; - property COLECCIONIsNull : Boolean read GetCOLECCIONIsNull write SetCOLECCIONIsNull; - property OldCOLECCION : String read GetOldCOLECCIONValue; - property OldCOLECCIONIsNull : Boolean read GetOldCOLECCIONIsNull; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property COLORIsNull : Boolean read GetCOLORIsNull write SetCOLORIsNull; - property OldCOLOR : String read GetOldCOLORValue; - property OldCOLORIsNull : Boolean read GetOldCOLORIsNull; - property TALLA : String read GetTALLAValue write SetTALLAValue; - property TALLAIsNull : Boolean read GetTALLAIsNull write SetTALLAIsNull; - property OldTALLA : String read GetOldTALLAValue; - property OldTALLAIsNull : Boolean read GetOldTALLAIsNull; - property TALLA38 : TBcd read GetTALLA38Value write SetTALLA38Value; - property TALLA38IsNull : Boolean read GetTALLA38IsNull write SetTALLA38IsNull; - property OldTALLA38 : TBcd read GetOldTALLA38Value; - property OldTALLA38IsNull : Boolean read GetOldTALLA38IsNull; - property TALLA40 : TBcd read GetTALLA40Value write SetTALLA40Value; - property TALLA40IsNull : Boolean read GetTALLA40IsNull write SetTALLA40IsNull; - property OldTALLA40 : TBcd read GetOldTALLA40Value; - property OldTALLA40IsNull : Boolean read GetOldTALLA40IsNull; - property TALLA42 : TBcd read GetTALLA42Value write SetTALLA42Value; - property TALLA42IsNull : Boolean read GetTALLA42IsNull write SetTALLA42IsNull; - property OldTALLA42 : TBcd read GetOldTALLA42Value; - property OldTALLA42IsNull : Boolean read GetOldTALLA42IsNull; - property TALLA44 : TBcd read GetTALLA44Value write SetTALLA44Value; - property TALLA44IsNull : Boolean read GetTALLA44IsNull write SetTALLA44IsNull; - property OldTALLA44 : TBcd read GetOldTALLA44Value; - property OldTALLA44IsNull : Boolean read GetOldTALLA44IsNull; - property TALLA46 : TBcd read GetTALLA46Value write SetTALLA46Value; - property TALLA46IsNull : Boolean read GetTALLA46IsNull write SetTALLA46IsNull; - property OldTALLA46 : TBcd read GetOldTALLA46Value; - property OldTALLA46IsNull : Boolean read GetOldTALLA46IsNull; - property TALLA48 : TBcd read GetTALLA48Value write SetTALLA48Value; - property TALLA48IsNull : Boolean read GetTALLA48IsNull write SetTALLA48IsNull; - property OldTALLA48 : TBcd read GetOldTALLA48Value; - property OldTALLA48IsNull : Boolean read GetOldTALLA48IsNull; - property VTATERMDEV : TBcd read GetVTATERMDEVValue write SetVTATERMDEVValue; - property VTATERMDEVIsNull : Boolean read GetVTATERMDEVIsNull write SetVTATERMDEVIsNull; - property OldVTATERMDEV : TBcd read GetOldVTATERMDEVValue; - property OldVTATERMDEVIsNull : Boolean read GetOldVTATERMDEVIsNull; - property VTAFINALRESC : TBcd read GetVTAFINALRESCValue write SetVTAFINALRESCValue; - property VTAFINALRESCIsNull : Boolean read GetVTAFINALRESCIsNull write SetVTAFINALRESCIsNull; - property OldVTAFINALRESC : TBcd read GetOldVTAFINALRESCValue; - property OldVTAFINALRESCIsNull : Boolean read GetOldVTAFINALRESCIsNull; - property VENTAS : TBcd read GetVENTASValue write SetVENTASValue; - property VENTASIsNull : Boolean read GetVENTASIsNull write SetVENTASIsNull; - property OldVENTAS : TBcd read GetOldVENTASValue; - property OldVENTASIsNull : Boolean read GetOldVENTASIsNull; - property DEVOLUCIONES : TBcd read GetDEVOLUCIONESValue write SetDEVOLUCIONESValue; - property DEVOLUCIONESIsNull : Boolean read GetDEVOLUCIONESIsNull write SetDEVOLUCIONESIsNull; - property OldDEVOLUCIONES : TBcd read GetOldDEVOLUCIONESValue; - property OldDEVOLUCIONESIsNull : Boolean read GetOldDEVOLUCIONESIsNull; - property TOTAL : TBcd read GetTOTALValue write SetTOTALValue; - property TOTALIsNull : Boolean read GetTOTALIsNull write SetTOTALIsNull; - property OldTOTAL : TBcd read GetOldTOTALValue; - property OldTOTALIsNull : Boolean read GetOldTOTALIsNull; - property VALTERMDEV : TBcd read GetVALTERMDEVValue write SetVALTERMDEVValue; - property VALTERMDEVIsNull : Boolean read GetVALTERMDEVIsNull write SetVALTERMDEVIsNull; - property OldVALTERMDEV : TBcd read GetOldVALTERMDEVValue; - property OldVALTERMDEVIsNull : Boolean read GetOldVALTERMDEVIsNull; - property VALFINALRESC : TBcd read GetVALFINALRESCValue write SetVALFINALRESCValue; - property VALFINALRESCIsNull : Boolean read GetVALFINALRESCIsNull write SetVALFINALRESCIsNull; - property OldVALFINALRESC : TBcd read GetOldVALFINALRESCValue; - property OldVALFINALRESCIsNull : Boolean read GetOldVALFINALRESCIsNull; - property VALVEN : TBcd read GetVALVENValue write SetVALVENValue; - property VALVENIsNull : Boolean read GetVALVENIsNull write SetVALVENIsNull; - property OldVALVEN : TBcd read GetOldVALVENValue; - property OldVALVENIsNull : Boolean read GetOldVALVENIsNull; - property VALDEV : TBcd read GetVALDEVValue write SetVALDEVValue; - property VALDEVIsNull : Boolean read GetVALDEVIsNull write SetVALDEVIsNull; - property OldVALDEV : TBcd read GetOldVALDEVValue; - property OldVALDEVIsNull : Boolean read GetOldVALDEVIsNull; - property VALTOT : TBcd read GetVALTOTValue write SetVALTOTValue; - property VALTOTIsNull : Boolean read GetVALTOTIsNull write SetVALTOTIsNull; - property OldVALTOT : TBcd read GetOldVALTOTValue; - property OldVALTOTIsNull : Boolean read GetOldVALTOTIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers, uDAInterfaces; - -{ TVentasTerminadasCrossTabBusinessProcessorRules } -constructor TVentasTerminadasCrossTabBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TVentasTerminadasCrossTabBusinessProcessorRules.Destroy; -begin - inherited; -end; - - -{ TVentasTerminadasBusinessProcessorRules } -constructor TVentasTerminadasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TVentasTerminadasBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TVentasTerminadasBusinessProcessorRules.GetNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetNUMINFIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldNUMINFIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMINF]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetNUMINFIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMINF] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE1Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE1IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE1IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE1]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE1IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE1] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE2IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE2IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE2]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE2IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE2] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCLAVE3IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCLAVE3IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCLAVE3]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCLAVE3IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCLAVE3] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetFECHAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldFECHAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasFECHA]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasFECHA] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetDIAValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetDIAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDIAValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDIAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIA]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDIAValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDIAIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIA] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAValue: WideString; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetDIASEMANAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAValue: WideString; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDIASEMANAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDIASEMANA]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAValue(const aValue: WideString); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDIASEMANAIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDIASEMANA] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetMESValue: WideString; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetMESIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldMESValue: WideString; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldMESIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasMES]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetMESValue(const aValue: WideString); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetMESIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasMES] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetANOValue: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetANOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldANOValue: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldANOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasANO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetANOValue(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetANOIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasANO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCENTROIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCENTROIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCENTRO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCENTROIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCENTRO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVENDEDORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVENDEDORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENDEDOR]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVENDEDORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENDEDOR] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetNUMTALONIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldNUMTALONIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasNUMTALON]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetNUMTALONIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasNUMTALON] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCODIGOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCODIGOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCODIGO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCODIGOIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCODIGO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasPRODUCTO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasPRODUCTO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetGRUPOPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldGRUPOPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasGRUPOPRODUCTO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetGRUPOPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasGRUPOPRODUCTO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTIPOPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTIPOPRODUCTOIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTIPOPRODUCTO]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTIPOPRODUCTOIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTIPOPRODUCTO] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCOLECCIONIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCOLECCIONIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLECCION]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCOLECCIONIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLECCION] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetCOLORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldCOLORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasCOLOR]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetCOLORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasCOLOR] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]; -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLAIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := aValue; -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLAIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA38Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA38IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA38IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA38]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA38IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA38] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA40Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA40IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA40IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA40]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA40IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA40] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA42Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA42IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA42IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA42]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA42IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA42] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA44Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA44IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA44IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA44]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA44IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA44] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA46Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA46IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA46IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA46]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA46IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA46] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA48Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTALLA48IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48Value: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTALLA48IsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTALLA48]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48Value(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTALLA48IsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTALLA48] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVTATERMDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVTATERMDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTATERMDEV]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVTATERMDEVIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTATERMDEV] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVTAFINALRESCIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVTAFINALRESCIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVTAFINALRESC]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVTAFINALRESCIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVTAFINALRESC] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVENTASValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVENTASIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVENTASValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVENTASIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVENTAS]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVENTASValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVENTASIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVENTAS] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetDEVOLUCIONESIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldDEVOLUCIONESIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasDEVOLUCIONES]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetDEVOLUCIONESIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasDEVOLUCIONES] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetTOTALValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetTOTALIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTOTALValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldTOTALIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasTOTAL]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTOTALValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetTOTALIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasTOTAL] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALTERMDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALTERMDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTERMDEV]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALTERMDEVIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTERMDEV] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALFINALRESCIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALFINALRESCIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALFINALRESC]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALFINALRESCIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALFINALRESC] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALVENValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALVENIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALVENValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALVENIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALVEN]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALVENValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALVENIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALVEN] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALDEVIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALDEV]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALDEVIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALDEV] := Null; -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALTOTValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetVALTOTIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTValue: TBcd; -begin - result := GetVarDecimal(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); -end; - -function TVentasTerminadasBusinessProcessorRules.GetOldVALTOTIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_VentasTerminadasVALTOT]); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTValue(const aValue: TBcd); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := BCDToVariant(aValue); -end; - -procedure TVentasTerminadasBusinessProcessorRules.SetVALTOTIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_VentasTerminadasVALTOT] := Null; -end; - - -initialization - RegisterBusinessProcessorRules(RID_VentasTerminadasCrossTabDelta, TVentasTerminadasCrossTabBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_VentasTerminadasDelta, TVentasTerminadasBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas deleted file mode 100644 index 143ea69..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizControlVentasTerminadas.pas +++ /dev/null @@ -1,65 +0,0 @@ -unit uBizControlVentasTerminadas; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uBizControlesBase, - uBizVentasTerminadas; - -const - BIZ_CONTROL_VENTASTERMINADAS = 'Client.Control_VentasTerminadas'; - -type - IBizControlVentasTerminadas = interface(IBizControlBase) - ['{BC0C313D-E667-4AC6-BB30-55469970F919}'] - procedure SetItems(const Value : IBizVentasTerminadas); - function GetItems : IBizVentasTerminadas; - property Items : IBizVentasTerminadas read GetItems write SetItems; - end; - - TBizControlVentasTerminadasTableRules = class(TBizControlBaseDataTableRules, IBizControlVentasTerminadas) - protected - FItems : IBizVentasTerminadas; - procedure OnNewRecord(Sender: TDADataTable); override; - procedure SetItems(const Value : IBizVentasTerminadas); virtual; - function GetItems : IBizVentasTerminadas; virtual; - public - procedure Show; override; - property Items : IBizVentasTerminadas read GetItems write SetItems; - end; - -implementation - -uses - uEditorUtils, uDataModuleVentasTerminadas; - -{ TBizControlVentasTerminadasTableRules } - -function TBizControlVentasTerminadasTableRules.GetItems: IBizVentasTerminadas; -begin - Result := FItems; -end; - -procedure TBizControlVentasTerminadasTableRules.OnNewRecord( - Sender: TDADataTable); -begin - inherited; - CATEGORIA := CATEGORIA_VENTA_TERMINADA -end; - -procedure TBizControlVentasTerminadasTableRules.SetItems( - const Value: IBizVentasTerminadas); -begin - FItems := Value; -end; - -procedure TBizControlVentasTerminadasTableRules.Show; -begin - inherited; - ShowEditor(IBizControlVentasTerminadas, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_CONTROL_VENTASTERMINADAS, TBizControlVentasTerminadasTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas deleted file mode 100644 index b87673d..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizInformesVentas.pas +++ /dev/null @@ -1,82 +0,0 @@ -unit uBizInformesVentas; - -interface - -uses - Classes, DB, SysUtils, uROClasses, schInformesVentasClient_Intf, uDADataTable; - -const - BIZ_INFORMESVENTAS = 'Client.InformesVentas'; - VALOR_CATEGORIA = 'VENTAS'; - -type - IBizInformesVentas = interface(IListaInformesPorCategoria) - ['{78F747A5-9A35-44D6-8C73-8682A41FE573}'] - procedure Show; - procedure VerPropiedades; - end; - - TBizInformesVentasDataTableRules = class(TListaInformesPorCategoriaDataTableRules, IBizInformesVentas) - protected - function GetVISTAValue: IROStrings; override; - procedure BeforePost(Sender: TDADataTable); override; - public - procedure Show; - procedure VerPropiedades; - end; - -implementation - -uses - Windows, Dialogs, uDACDSDataTable, uDataModuleBase, - uEditorUtils, Variants, uFormPropiedadesInforme, Forms, Controls; - -{ TBizInformesVentasDataTableRules } - -procedure TBizInformesVentasDataTableRules.BeforePost( - Sender: TDADataTable); -begin - inherited; - if Length(CATEGORIA) = 0 then - begin - Edit; - CATEGORIA := VALOR_CATEGORIA; - end; - - if Length(NOMBRE) = 0 then - VerPropiedades; -end; - -function TBizInformesVentasDataTableRules.GetVISTAValue: IROStrings; -begin - result := NewROStrings(); - result.Add(DataTable.Fields[idx_ListaInformesPorCategoriaVISTA].AsString); -end; - -procedure TBizInformesVentasDataTableRules.Show; -begin - ShowEditor(IBizInformesVentas, Self, etItem); -end; - -procedure TBizInformesVentasDataTableRules.VerPropiedades; -begin - with TfrPropiedadesInforme.Create(NIL) do - try - Nombre := Self.NOMBRE; - Descripcion := Self.DESCRIPCION; - if (ShowModal = mrOK) then - begin - DataTable.Edit; - Self.NOMBRE := Nombre; - Self.DESCRIPCION := Descripcion; - Self.ICONO := 2; - end; - finally - Free; - end; -end; - -initialization - RegisterDataTableRules(BIZ_INFORMESVENTAS, TBizInformesVentasDataTableRules); - -end. diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas deleted file mode 100644 index 31b0782..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentas.pas +++ /dev/null @@ -1,115 +0,0 @@ -unit uBizVentas; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, - DataAbstract_Intf, uROTypes; - -const - BIZ_VENTAS = 'Client.Ventas'; - - { ListaInformesPorCategoria fields } - fld_VentasCLAVE1 = 'CLAVE1'; - fld_VentasCLAVE2 = 'CLAVE2'; - fld_VentasCLAVE3 = 'CLAVE3'; - fld_VentasNUMINF = 'NUMINF'; - -type - { IRDX_ARTVEN } - IBizVentas = interface(IDAStronglyTypedDataTable) - ['{E82C7F84-0CD4-4A27-80FB-BD608FDCA091}'] - function GetVisibleColumns: String; - procedure SetVisibleColumns(AValue : String); - procedure Show; - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - end; - - { TRDX_ARTVENDataTableRules } - TBIZ_VENTASDataTableRules = class(TDADataTableRules, IBizVentas) - private - FVisibleColumns : String; - FDateParams : TDADatasetParamArray; - protected - function GetVisibleColumns: String; - procedure SetVisibleColumns(AValue : String); - procedure OnBeforeDataRequestCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - procedure OnBeforeSchemaCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - public - constructor Create(aDataTable: TDADataTable); override; - - procedure Show; - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - destructor Destroy; override; - end; - - -implementation - -{ TBIZ_VENTASDataTableRules } - -uses - Dialogs, uEditorUtils, uDataModuleVentas; - -constructor TBIZ_VENTASDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; - FDateParams := TDADatasetParamArray.Create; - if Assigned(DataTable) then - begin - DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; - DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; - end; -end; - -destructor TBIZ_VENTASDataTableRules.Destroy; -begin - FreeAndNIL(FDateParams); - inherited; -end; - -function TBIZ_VENTASDataTableRules.GetVisibleColumns: String; -begin - if Length(FVisibleColumns) = 0 then - FVisibleColumns := dmVentas.GetNameColumns; - Result := FVisibleColumns -end; - -procedure TBIZ_VENTASDataTableRules.OnBeforeDataRequestCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('Columns').AsString := VisibleColumns; - FDateParams.Clear; - NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); - NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); - Request.ParamByName('Params').AsComplexType := FDateParams; -end; - -procedure TBIZ_VENTASDataTableRules.OnBeforeSchemaCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('Columns').AsString := VisibleColumns; -end; - -procedure TBIZ_VENTASDataTableRules.SetVisibleColumns(AValue: String); -begin - if Length(AValue) > 0 then - FVisibleColumns := Avalue - else - FVisibleColumns := dmVentas.GetNameColumns; -end; - -procedure TBIZ_VENTASDataTableRules.Show; -begin - ShowEditor(IBizVentas, Self, etItem); -end; - -initialization - RegisterDataTableRules(BIZ_VENTAS, TBIZ_VENTASDataTableRules); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas deleted file mode 100644 index 2b05c77..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Reglas/uBizVentasTerminadas.pas +++ /dev/null @@ -1,158 +0,0 @@ -unit uBizVentasTerminadas; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces, - DataAbstract3_Intf, uROTypes, schVentasTerminadasClient_Intf; - -const - BIZ_VENTASTERMINADAS = 'Client.VentasTerminadas'; - BIZ_RESUMENVENTAS = 'Client.ResumenVentas'; - -type - IBizVentasTerminadas = interface(IVentasTerminadas) - ['{A8E22BA0-970A-461D-8C69-E3C37F099F76}'] - function GetVisibleColumns: String; - procedure SetVisibleColumns(const Value: String); - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - end; - - IBizResumenVentas = interface(IVentasTerminadasCrossTab) - ['{F7536368-285D-45B4-B0F0-7DBE724982A3}'] - end; - - TBizResumenVentasDataTableRules = class(TVentasTerminadasCrossTabDataTableRules, IBizResumenVentas) - protected - procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); - procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); - public - constructor Create(aDataTable: TDADataTable); override; - end; - - TBizVentasTerminadasDataTableRules = class(TVentasTerminadasDataTableRules, IBizVentasTerminadas) - private - FVisibleColumns : String; - FDateParams : TDADatasetParamArray; - protected - function GetVisibleColumns: String; - procedure SetVisibleColumns(const Value: String); - procedure OnBeforeDataRequestCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - procedure OnBeforeSchemaCall(DataTable: TDADataTable; - Request: TDARemoteRequest); - public - constructor Create(aDataTable: TDADataTable); override; - property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns; - destructor Destroy; override; - end; - - -implementation - -{ TBIZ_VENTASDataTableRules } - -uses - Dialogs, uEditorUtils, uDataModuleVentasTerminadas; - -constructor TBizVentasTerminadasDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; - FDateParams := TDADatasetParamArray.Create; - if Assigned(DataTable) then - begin - DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; - DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; - end; -end; - -destructor TBizVentasTerminadasDataTableRules.Destroy; -begin - FreeAndNIL(FDateParams); - inherited; -end; - -function TBizVentasTerminadasDataTableRules.GetVisibleColumns: String; -begin - if Length(FVisibleColumns) = 0 then - FVisibleColumns := dmVentasTerminadas.GetNameColumns; - Result := FVisibleColumns -end; - -procedure TBizVentasTerminadasDataTableRules.OnBeforeDataRequestCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -var - params : TStringList; -begin - Request.ParamByName('Columns').AsString := VisibleColumns; - - // Begin adaptación a DA5 - params := TStringList.Create; - try - params.Add('FECHAINI'); - params.Values['FECHAINI'] := DataTable.ParamByName('FECHAINI').AsString; - - params.Add('FECHAFIN'); - params.Values['FECHAFIN'] := DataTable.ParamByName('FECHAFIN').AsString; - - Request.ParamByName('Params').AsString := params.text; - finally - FreeAndNIL(params); - end; - // End adaptación a DA5 - -{ FDateParams.Clear; - - NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); - NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); - Request.ParamByName('Params').AsComplexType := FDateParams;} -end; - -procedure TBizVentasTerminadasDataTableRules.OnBeforeSchemaCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('Columns').AsString := VisibleColumns; -end; - -procedure TBizVentasTerminadasDataTableRules.SetVisibleColumns(const Value: String); -begin - if Length(Value) > 0 then - FVisibleColumns := Value - else - FVisibleColumns := dmVentasTerminadas.GetNameColumns; -end; - - -{ TBizResumenVentasDataTableRules } - -constructor TBizResumenVentasDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; - if Assigned(DataTable) then - begin - DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall; - DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall; - end; -end; - -procedure TBizResumenVentasDataTableRules.OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; - Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; -end; - -procedure TBizResumenVentasDataTableRules.OnBeforeSchemaCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - Request.ParamByName('FechaIni').AsString := DataTable.ParamByName('FechaIni').AsString; - Request.ParamByName('FechaFin').AsString := DataTable.ParamByName('FechaFin').AsString; -end; - -initialization - RegisterDataTableRules(BIZ_VENTASTERMINADAS, TBizVentasTerminadasDataTableRules); - RegisterDataTableRules(BIZ_RESUMENVENTAS, TBizResumenVentasDataTableRules); - -finalization - -end. - diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm deleted file mode 100644 index 82f7044..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.dfm +++ /dev/null @@ -1,445 +0,0 @@ -object srvVentasTerminadas: TsrvVentasTerminadas - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schVentasTerminadas - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schVentasTerminadas: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = < - item - Name = 'fechaini' - DataType = datString - Value = '' - ParamType = daptInput - end - item - Name = 'fechafin' - DataType = datString - Value = '' - ParamType = daptInput - end - item - Name = 'coleccion' - DataType = datString - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = - 'begin'#10' declare @fechaini varchar(10)'#10' declare @fechafin ' + - 'varchar(10)'#10' declare @coleccion varchar(10)'#10' declare @sq' + - 'l varchar(8000)'#10#10' set @fechaini = :fechaini'#10' set @fechaf' + - 'in = :fechafin'#10' set @coleccion = :coleccion'#10#10' select @sq' + - 'l = '#39'SELECT DIA, SUM(VALTOT) AS TOTAL FROM RDX_V_VENTASTERMINADA' + - 'S WHERE FECHA BETWEEN CONVERT(DATETIME, '#39#39#39' + @FECHAINI + '#39#39#39', 1' + - '03) AND CONVERT(DATETIME, '#39#39#39' + @FECHAFIN + '#39#39#39', 103) AND COLECC' + - 'ION LIKE '#39#39#39' + @COLECCION + '#39#39#39' GROUP BY DIA'#39#10#10' EXECUTE cros' + - 'stab @sql,'#10' '#39'SUM(VALTOT)'#39','#10' '#39'CENTRO'#39','#10' ' + - ' '#39'RDX_V_VENTASTERMINADAS'#39#10'end'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'VentasTerminadasCrossTab' - Fields = <> - end - item - Params = < - item - Name = 'FECHAINI' - Value = '' - ParamType = daptInput - end - item - Name = 'FECHAFIN' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_V_VENTASTERMINADAS' - SQL = - 'SELECT '#10' NUMINF, CLAVE1, CLAVE2, CLAVE3, FECHA, DIA, DIASEMAN' + - 'A, '#10' MES, ANO, CENTRO, VENDEDOR, NUMTALON, CODIGO, PRODUCTO,'#10 + - ' GRUPOPRODUCTO, TIPOPRODUCTO, COLECCION, COLOR,'#10' TALLA, TA' + - 'LLA38, TALLA40, TALLA42, TALLA44, TALLA46, '#10' TALLA48, VTATERM' + - 'DEV, VTAFINALRESC, VENTAS, DEVOLUCIONES, TOTAL,'#10' VALTERMDEV, ' + - 'VALFINALRESC, VALVEN, VALDEV, VALTOT'#10' FROM'#10' RDX_V_VENTASTERM' + - 'INADAS'#10' WHERE FECHA BETWEEN :FECHAINI AND :FECHAFIN' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMINF' - TableField = 'NUMINF' - end - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'CLAVE3' - TableField = 'CLAVE3' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'DIA' - TableField = 'DIA' - end - item - DatasetField = 'DIASEMANA' - TableField = 'DIASEMANA' - end - item - DatasetField = 'MES' - TableField = 'MES' - end - item - DatasetField = 'ANO' - TableField = 'ANO' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'VENDEDOR' - TableField = 'VENDEDOR' - end - item - DatasetField = 'NUMTALON' - TableField = 'NUMTALON' - end - item - DatasetField = 'CODIGO' - TableField = 'CODIGO' - end - item - DatasetField = 'PRODUCTO' - TableField = 'PRODUCTO' - end - item - DatasetField = 'GRUPOPRODUCTO' - TableField = 'GRUPOPRODUCTO' - end - item - DatasetField = 'TIPOPRODUCTO' - TableField = 'TIPOPRODUCTO' - end - item - DatasetField = 'COLECCION' - TableField = 'COLECCION' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'TALLA' - TableField = 'TALLA' - end - item - DatasetField = 'TALLA38' - TableField = 'TALLA38' - end - item - DatasetField = 'TALLA40' - TableField = 'TALLA40' - end - item - DatasetField = 'TALLA42' - TableField = 'TALLA42' - end - item - DatasetField = 'TALLA44' - TableField = 'TALLA44' - end - item - DatasetField = 'TALLA46' - TableField = 'TALLA46' - end - item - DatasetField = 'TALLA48' - TableField = 'TALLA48' - end - item - DatasetField = 'VTATERMDEV' - TableField = 'VTATERMDEV' - end - item - DatasetField = 'VTAFINALRESC' - TableField = 'VTAFINALRESC' - end - item - DatasetField = 'VENTAS' - TableField = 'VENTAS' - end - item - DatasetField = 'DEVOLUCIONES' - TableField = 'DEVOLUCIONES' - end - item - DatasetField = 'TOTAL' - TableField = 'TOTAL' - end - item - DatasetField = 'VALTERMDEV' - TableField = 'VALTERMDEV' - end - item - DatasetField = 'VALFINALRESC' - TableField = 'VALFINALRESC' - end - item - DatasetField = 'VALVEN' - TableField = 'VALVEN' - end - item - DatasetField = 'VALDEV' - TableField = 'VALDEV' - end - item - DatasetField = 'VALTOT' - TableField = 'VALTOT' - end> - end> - Name = 'VentasTerminadas' - Fields = < - item - Name = 'NUMINF' - DataType = datString - Size = 35 - InPrimaryKey = True - end - item - Name = 'CLAVE1' - DataType = datDecimal - InPrimaryKey = True - end - item - Name = 'CLAVE2' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'CLAVE3' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'FECHA' - DataType = datDateTime - DisplayLabel = 'Fecha' - end - item - Name = 'DIA' - DataType = datInteger - DisplayLabel = 'D'#237'a' - end - item - Name = 'DIASEMANA' - DataType = datWideString - Size = 30 - DisplayLabel = 'D'#237'a de la semana' - end - item - Name = 'MES' - DataType = datWideString - Size = 30 - DisplayLabel = 'Mes' - end - item - Name = 'ANO' - DataType = datInteger - DisplayLabel = 'A'#241'o' - end - item - Name = 'CENTRO' - DataType = datString - Size = 25 - DisplayLabel = 'Centro' - end - item - Name = 'VENDEDOR' - DataType = datString - Size = 66 - DisplayLabel = 'Vendedor' - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - end - item - Name = 'CODIGO' - DataType = datString - Size = 12 - DisplayLabel = 'C'#243'digo producto' - end - item - Name = 'PRODUCTO' - DataType = datString - Size = 40 - DisplayLabel = 'Producto' - end - item - Name = 'GRUPOPRODUCTO' - DataType = datString - Size = 25 - DisplayLabel = 'Grupo' - end - item - Name = 'TIPOPRODUCTO' - DataType = datString - Size = 25 - DisplayLabel = 'Tipo' - end - item - Name = 'COLECCION' - DataType = datString - Size = 6 - DisplayLabel = 'Colecci'#243'n' - end - item - Name = 'COLOR' - DataType = datString - Size = 10 - DisplayLabel = 'Color' - end - item - Name = 'TALLA' - DataType = datString - Size = 8 - DisplayLabel = 'Talla' - Alignment = taRightJustify - end - item - Name = 'TALLA38' - DataType = datDecimal - DisplayLabel = '38' - Alignment = taRightJustify - end - item - Name = 'TALLA40' - DataType = datDecimal - DisplayLabel = '40' - Alignment = taRightJustify - end - item - Name = 'TALLA42' - DataType = datDecimal - DisplayLabel = '42' - Alignment = taRightJustify - end - item - Name = 'TALLA44' - DataType = datDecimal - DisplayLabel = '44' - Alignment = taRightJustify - end - item - Name = 'TALLA46' - DataType = datDecimal - DisplayLabel = '46' - Alignment = taRightJustify - end - item - Name = 'TALLA48' - DataType = datDecimal - DisplayLabel = '48' - Alignment = taRightJustify - end - item - Name = 'VTATERMDEV' - DataType = datDecimal - DisplayLabel = 'Vta.Term/Dev' - Alignment = taRightJustify - end - item - Name = 'VTAFINALRESC' - DataType = datDecimal - DisplayLabel = 'Vta.Final/Resc' - Alignment = taRightJustify - end - item - Name = 'VENTAS' - DataType = datDecimal - DisplayLabel = 'Ventas' - Alignment = taRightJustify - end - item - Name = 'DEVOLUCIONES' - DataType = datDecimal - DisplayLabel = 'Devoluciones' - Alignment = taRightJustify - end - item - Name = 'TOTAL' - DataType = datDecimal - DisplayLabel = 'Total ventas' - Alignment = taRightJustify - end - item - Name = 'VALTERMDEV' - DataType = datDecimal - DisplayLabel = 'Val.Term/Dev' - Alignment = taRightJustify - end - item - Name = 'VALFINALRESC' - DataType = datDecimal - DisplayLabel = 'Val.Final/Resc' - Alignment = taRightJustify - end - item - Name = 'VALVEN' - DataType = datDecimal - DisplayLabel = 'Imp. ventas' - Alignment = taRightJustify - end - item - Name = 'VALDEV' - DataType = datDecimal - DisplayLabel = 'Imp. devoluciones' - Alignment = taRightJustify - end - item - Name = 'VALTOT' - DataType = datDecimal - DisplayLabel = 'Imp. Total' - Alignment = taRightJustify - end> - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = <> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 56 - Top = 32 - end - object DABINAdapter: TDABINAdapter - Left = 56 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas b/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas deleted file mode 100644 index 780429f..0000000 --- a/Varela/Varela/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas +++ /dev/null @@ -1,210 +0,0 @@ -unit srvVentasTerminadas_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, - uDataModuleServer, uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvVentasTerminadas } - TsrvVentasTerminadas = class(TDARemoteService, IsrvVentasTerminadas) - DABINAdapter: TDABINAdapter; - schVentasTerminadas: TDASchema; - private - protected - { IsrvVentasTerminadas methods } - function GetData(const DatasetName: String; const MaxRecords: Integer; const Columns: String; const Params: TDADatasetParamArray): Binary; - function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uSchemaUtilsServer, dialogs; - -const - CAMPOS_SUMA = '#TALLA38#TALLA40#TALLA42#TALLA44#TALLA46#TALLA48#VENTAS#DEVOLUCIONES#TOTAL#VALVEN#VALDEV#VALTOT#VTATERMDEV#VTAFINALRESC#VALTERMDEV#VALFINALRESC#'; - -procedure Create_srvVentasTerminadas(out anInstance : IUnknown); -begin - anInstance := TsrvVentasTerminadas.Create(NIL); -end; - -{ srvVentasTerminadas } - -function TsrvVentasTerminadas.GetData(const DatasetName: String; - const MaxRecords: Integer; const Columns: String; - const Params: TDADatasetParamArray): TROBinaryMemoryStream; -var - ds : IDADataset; - i : integer; -begin - result := Binary.Create; - try - { Prepares the parameter arrays} - - with TReplicarDataSet.Create do - begin - SourceDataSetName := DatasetName; - Service := Self; - Columnas := Columns; - ColumnasQueSuman := CAMPOS_SUMA; - try - ds := GetNewDataSet; - finally - Free; - end; - end; - - for i := 0 to (Params.Count-1) do - ds.ParamByName(Params[i].Name).Value := Params[i].Value; - ds.Open; - ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); - except - FreeAndNIl(result); - raise; - end; -end; - -function TsrvVentasTerminadas.GetDataCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; -var - ds : IDADataset; - AColeccion : String; -begin - if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then - AColeccion := '%' - else - AColeccion := Coleccion; - - try - Result := Binary.Create; - ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); - ds.Open; - ServiceAdapter.WriteDataset(Result, ds, [woSchema, woRows], -1); - except - FreeAndNIl(result); - raise; - end; -end; - -function TsrvVentasTerminadas.GetDataEx(const DatasetName, Columns, - Params: String; const MaxRecords: Integer): Binary; -var - ds : IDADataset; - i : integer; - pars: TStringList; - parnames: array of string; - parvalues: array of Variant; -begin - pars := TStringList.Create; - result := Binary.Create; - try - try - pars.Text := Params; - SetLength(parnames, pars.Count); - SetLength(parvalues, pars.Count); - for i := 0 to (pars.Count-1) do begin - parnames[i] := pars.Names[i]; - parvalues[i] := pars.Values[pars.Names[i]]; - end; - - with TReplicarDataSet.Create do - begin - SourceDataSetName := DatasetName; - Service := Self; - Columnas := Columns; - ColumnasQueSuman := CAMPOS_SUMA; - try - ds := GetNewDataSet; - finally - Free; - end; - end; - - // Fills the parameters (if any are specified) - if (Length(parnames) > 0) then - begin - for i := 0 to (Length(parnames) - 1) do - ds.ParamByName(parnames[i]).Value := parvalues[i]; - end; - - ds.Open; - ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords); - except - FreeAndNIl(result); - raise; - end; - finally - FreeANDNil(pars); - end; -end; - -function TsrvVentasTerminadas.GetSchema(const DatasetName: String; const Columns: String): TROBinaryMemoryStream; -var - ds : IDADataset; -begin - result := Binary.Create; - try - with TReplicarDataSet.Create do - begin - SourceDataSetName := DatasetName; - Service := Self; - Columnas := Columns; - ColumnasQueSuman := CAMPOS_SUMA; - try - ds := GetNewDataSet; - finally - Free; - end; - end; - - ServiceAdapter.WriteDataset(result, ds, [woSchema]); - except - FreeAndNIl(result); - raise; - end; -end; - -function TsrvVentasTerminadas.GetSchemaCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary; -var - ds : IDADataset; - AColeccion : String; -begin - if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then - AColeccion := '%' - else - AColeccion := Coleccion; - - try - Result := Binary.Create; - ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']); - ds.Open; - ServiceAdapter.WriteDataset(Result, ds, [woSchema]); - except - FreeAndNIl(result); - raise; - end; -end; - -initialization - TROClassFactory.Create('srvVentasTerminadas', Create_srvVentasTerminadas, TsrvVentasTerminadas_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj b/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj deleted file mode 100644 index e4f8c61..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.bdsproj +++ /dev/null @@ -1,678 +0,0 @@ - - - - - - - - - - - - AdminPV_Server.dpr - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - ..\..\Output\Debug\Servidor - .\ - ..\Lib - ..\Lib - ..\Lib;..\Base - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7;RemObjects_Indy_D10;IndyProtocols;IndyCore;IndySystem;PascalScript_RO_D10;DataAbstract_Core_D10;DataAbstract_Scripting_D10;DataAbstract_IDE_D10 - EUREKALOG;EUREKALOG_VER6 - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 2 - 5 - 0 - False - False - False - False - False - 3082 - 1252 - - - Rodax Software S.L. - - 1.2.5.0 - - - - - AdminPV_Server - 1.2.5.0 - - miércoles, 05 de septiembre de 2007 19:15 - - - - diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.cfg b/Varela/Varela/Source/Servidor/AdminPV_Server.cfg deleted file mode 100644 index 7d0152a..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --E"..\..\Output\Servidor" --N".\" --LE"..\Lib" --LN"..\Lib" --U"..\Lib;..\Base" --O"..\Lib;..\Base" --I"..\Lib;..\Base" --R"..\Lib;..\Base" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.dof b/Varela/Varela/Source/Servidor/AdminPV_Server.dof deleted file mode 100644 index 1804a4b..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.dof +++ /dev/null @@ -1,480 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir=..\..\Output\Servidor -UnitOutputDir=.\ -PackageDLLOutputDir=..\Lib -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib;..\Base -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=2 -Release=5 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName=Rodax Software S.L. -FileDescription= -FileVersion=1.2.5.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName=AdminPV_Server -ProductVersion=1.1.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=3 -Item0=..\Lib -Item1=..\Lib;..\Base -Item2=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=0 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.dpr b/Varela/Varela/Source/Servidor/AdminPV_Server.dpr deleted file mode 100644 index 7ed1aae..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.dpr +++ /dev/null @@ -1,73 +0,0 @@ -program AdminPV_Server; - -{#ROGEN:VARELA.rodl} // RemObjects: Careful, do not remove! - -uses - uROComInit, - Forms, - fServerForm in 'fServerForm.pas' {ServerForm}, - VARELA_Intf in 'VARELA_Intf.pas', - VARELA_Invk in 'VARELA_Invk.pas', - EDI_Reader in 'EDI\EDI_Reader.pas', - EDI_INVRPT in 'EDI\EDI_INVRPT.pas', - EDI_SLSRPT in 'EDI\EDI_SLSRPT.pas', - schEDILogClient_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogClient_Intf.pas', - schEDILogServer_Intf in '..\Modulos\FicherosEDI\Reglas\schEDILogServer_Intf.pas', - uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule}, - uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame}, - uConexionBD in 'Configuracion\uConexionBD.pas' {frConexionBD: TFrame}, - uConfGeneral in 'Configuracion\uConfGeneral.pas' {frConfGeneral: TFrame}, - uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion}, - uBizEDISales in 'Services\EDI_Sales\uBizEDISales.pas', - schEDISalesClient_Intf in 'Services\EDI_Sales\schEDISalesClient_Intf.pas', - schEDISalesServer_Intf in 'Services\EDI_Sales\schEDISalesServer_Intf.pas', - uConfFicherosEDI in 'Configuracion\uConfFicherosEDI.pas' {frConfFicherosEDI: TFrame}, - uDataModuleEDI_Sales in 'Services\EDI_Sales\uDataModuleEDI_Sales.pas' {dmEDISales: TDataModule}, - uDataTableUtils in '..\Base\uDataTableUtils.pas', - srvLogin_Impl in 'Services\Login\srvLogin_Impl.pas' {srvLogin: TDARemoteService}, - srvInformes_Impl in 'srvInformes_Impl.pas' {srvInformes: TDARemoteService}, - srvTransfereciaFicheros_Impl in 'Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.pas' {srvTransfereciaFicheros: TRORemoteDataModule}, - srvControles_Impl in '..\ControlesBase\Servidor\srvControles_Impl.pas' {srvControles: TDARemoteService}, - srvVentasEnProceso_Impl in '..\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.pas' {srvVentasEnProceso: TDARemoteService}, - schVentasEnProcesoClient_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoClient_Intf.pas', - schVentasEnProcesoServer_Intf in '..\Modulos\VentasProceso\Reglas\schVentasEnProcesoServer_Intf.pas', - uSchemaUtilsServer in 'uSchemaUtilsServer.pas', - srvVentasTerminadas_Impl in '..\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.pas' {srvVentasTerminadas: TDARemoteService}, - schVentasTerminadasClient_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.pas', - schVentasTerminadasServer_Intf in '..\Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.pas', - srvReferenciaGenerica_Impl in '..\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.pas' {srvReferenciaGenerica: TDARemoteService}, - schReferenciaGenericaClient_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaClient_Intf.pas', - schReferenciaGenericaServer_Intf in '..\Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaServer_Intf.pas', - uBizReferenciaGenericaServer in '..\Modulos\ReferenciaGenerica\Reglas\uBizReferenciaGenericaServer.pas', - uDataModuleEDI_Inventary in 'Services\EDI_Inventary\uDataModuleEDI_Inventary.pas' {dmEDIInventary: TDataModule}, - schEDIInventaryClient_Intf in 'Services\EDI_Inventary\schEDIInventaryClient_Intf.pas', - schEDIInventaryServer_Intf in 'Services\EDI_Inventary\schEDIInventaryServer_Intf.pas', - uBizEDIInventary in 'Services\EDI_Inventary\uBizEDIInventary.pas', - EDI_Utils in 'EDI_Utils.pas', - srvRecepciones_Impl in '..\Modulos\Recepciones\Servidor\srvRecepciones_Impl.pas' {srvRecepciones: TDARemoteService}, - srvDevoluciones_Impl in '..\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.pas' {srvDevoluciones: TDARemoteService}, - srvTraspasos_Impl in '..\Modulos\Traspasos\Servidor\srvTraspasos_Impl.pas' {srvTraspasos: TDARemoteService}, - srvStock_Impl in '..\Modulos\Stock\Servidor\srvStock_Impl.pas' {srvStock: TDARemoteService}, - schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', - schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', - uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, - srvParametros_Impl in '..\Modulos\Parametros\Servidor\srvParametros_Impl.pas' {srvParametros: TDARemoteService}, - schParametrosClient_Intf in '..\Modulos\Parametros\Reglas\schParametrosClient_Intf.pas', - schParametrosServer_Intf in '..\Modulos\Parametros\Reglas\schParametrosServer_Intf.pas', - EDI_Inventary_Impl in 'EDI_Inventary_Impl.pas', - EDI_Sales_Impl in 'EDI_Sales_Impl.pas', - EDI_Log_Impl in 'EDI_Log_Impl.pas', - schControlesClient_Intf in '..\ControlesBase\Reglas\schControlesClient_Intf.pas', - schControlesServer_Intf in '..\ControlesBase\Reglas\schControlesServer_Intf.pas', - RegExpr in 'RegExpr.pas'; - -{$R *.res} -{$R RODLFile.res} - -begin - Application.Initialize; - Application.Title := ''; - Application.CreateForm(TdmServer, dmServer); - Application.CreateForm(TServerForm, ServerForm); - Application.Run; -end. diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.drc b/Varela/Varela/Source/Servidor/AdminPV_Server.drc deleted file mode 100644 index 7d1135a..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.drc +++ /dev/null @@ -1,2579 +0,0 @@ -/* VER185 - Generated by the CodeGear Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -#define cxGridStrs_scxGridCustomizationFormColumnsPageCaption 64272 -#define cxGridStrs_scxGridGroupByBoxCaption 64273 -#define cxGridStrs_scxGridFilterCustomizeButtonCaption 64274 -#define cxGridStrs_scxGridColumnsQuickCustomizationHint 64275 -#define cxPCConsts_scxPCNoBaseImages 64288 -#define cxPCConsts_scxPCNoRegisteredStyles 64289 -#define cxPCConsts_scxPCPageIndexError 64290 -#define cxPCConsts_scxPCPainterClassError 64291 -#define cxPCConsts_scxPCTabCountEqualsZero 64292 -#define cxPCConsts_scxPCTabIndexError 64293 -#define cxPCConsts_scxPCTabVisibleIndexOutsOfBounds 64294 -#define cxPCConsts_scxPCVisibleTabListEmpty 64295 -#define cxPCConsts_scxPCAllowRotateError 64296 -#define cxGridStrs_scxGridDeletingConfirmationCaption 64297 -#define cxGridStrs_scxGridDeletingFocusedConfirmationText 64298 -#define cxGridStrs_scxGridDeletingSelectedConfirmationText 64299 -#define cxGridStrs_scxGridNoDataInfoText 64300 -#define cxGridStrs_scxGridNewItemRowInfoText 64301 -#define cxGridStrs_scxGridFilterIsEmpty 64302 -#define cxGridStrs_scxGridCustomizationFormCaption 64303 -#define MidConst_SErrorLoadingMidas 64304 -#define MidConst_SCannotCreateDataSet 64305 -#define MidConst_SNoConnectToBroker 64306 -#define MidConst_SNoParentConnection 64307 -#define MidConst_SInvalidOptParamType 64308 -#define MidConst_SConstraintFailed 64309 -#define MidConst_SField 64310 -#define MidConst_SRecConstFail 64311 -#define MidConst_SFieldConstFail 64312 -#define MidConst_SDefExprFail 64313 -#define MidConst_SNoEditsAllowed 64314 -#define MidConst_SNoDeletesAllowed 64315 -#define MidConst_SNoInsertsAllowed 64316 -#define MidConst_SConnectionMissing 64317 -#define MidConst_SNoCircularConnection 64318 -#define cxPCConsts_scxPCImageListIndexError 64319 -#define cxFilterControlStrs_cxSFilterDialogRows 64320 -#define cxFilterControlStrs_cxSFilterControlDialogCaption 64321 -#define cxFilterControlStrs_cxSFilterControlDialogNewFile 64322 -#define cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption 64323 -#define cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption 64324 -#define cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption 64325 -#define cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption 64326 -#define cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption 64327 -#define cxFilterControlStrs_cxSFilterControlDialogActionOkCaption 64328 -#define cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption 64329 -#define cxFilterControlStrs_cxSFilterControlDialogFileExt 64330 -#define cxFilterControlStrs_cxSFilterControlDialogFileFilter 64331 -#define MidConst_SNoDataProvider 64332 -#define MidConst_SInvalidDataPacket 64333 -#define MidConst_SRefreshError 64334 -#define MidConst_SNoCircularReference 64335 -#define cxFilterControlStrs_cxSFilterAddCondition 64336 -#define cxFilterControlStrs_cxSFilterAddGroup 64337 -#define cxFilterControlStrs_cxSFilterRemoveRow 64338 -#define cxFilterControlStrs_cxSFilterClearAll 64339 -#define cxFilterControlStrs_cxSFilterFooterAddCondition 64340 -#define cxFilterControlStrs_cxSFilterGroupCaption 64341 -#define cxFilterControlStrs_cxSFilterRootGroupCaption 64342 -#define cxFilterControlStrs_cxSFilterControlNullString 64343 -#define cxFilterControlStrs_cxSFilterErrorBuilding 64344 -#define cxFilterControlStrs_cxSFilterDialogCaption 64345 -#define cxFilterControlStrs_cxSFilterDialogInvalidValue 64346 -#define cxFilterControlStrs_cxSFilterDialogUse 64347 -#define cxFilterControlStrs_cxSFilterDialogSingleCharacter 64348 -#define cxFilterControlStrs_cxSFilterDialogCharactersSeries 64349 -#define cxFilterControlStrs_cxSFilterDialogOperationAnd 64350 -#define cxFilterControlStrs_cxSFilterDialogOperationOr 64351 -#define cxEditConsts_scxRegExprHexNumberExpected0 64352 -#define cxEditConsts_scxRegExprHexNumberExpected 64353 -#define cxEditConsts_scxRegExprMissing 64354 -#define cxEditConsts_scxRegExprUnnecessary 64355 -#define cxEditConsts_scxRegExprIncorrectSpace 64356 -#define cxEditConsts_scxRegExprNotCompiled 64357 -#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64358 -#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64359 -#define cxEditConsts_scxMaskEditRegExprError 64360 -#define cxEditConsts_scxMaskEditInvalidEditValue 64361 -#define cxEditConsts_cxSSpinEditInvalidNumericValue 64362 -#define cxFilterControlStrs_cxSFilterBoolOperatorAnd 64363 -#define cxFilterControlStrs_cxSFilterBoolOperatorOr 64364 -#define cxFilterControlStrs_cxSFilterBoolOperatorNotAnd 64365 -#define cxFilterControlStrs_cxSFilterBoolOperatorNotOr 64366 -#define cxFilterControlStrs_cxSFilterRootButtonCaption 64367 -#define cxEditConsts_scxSEditRepositoryTextItem 64368 -#define cxEditConsts_scxSEditRepositoryTimeItem 64369 -#define cxEditConsts_scxRegExprLine 64370 -#define cxEditConsts_scxRegExprChar 64371 -#define cxEditConsts_scxRegExprNotAssignedSourceStream 64372 -#define cxEditConsts_scxRegExprEmptySourceStream 64373 -#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64374 -#define cxEditConsts_scxRegExprCantUseStarQuantifier 64375 -#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64376 -#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64377 -#define cxEditConsts_scxRegExprIllegalSymbol 64378 -#define cxEditConsts_scxRegExprIllegalQuantifier 64379 -#define cxEditConsts_scxRegExprIllegalIntegerValue 64380 -#define cxEditConsts_scxRegExprTooBigReferenceNumber 64381 -#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64382 -#define cxEditConsts_scxRegExprSubrangeOrder 64383 -#define cxEditConsts_scxSEditRepositoryBlobItem 64384 -#define cxEditConsts_scxSEditRepositoryButtonItem 64385 -#define cxEditConsts_scxSEditRepositoryCalcItem 64386 -#define cxEditConsts_scxSEditRepositoryCheckBoxItem 64387 -#define cxEditConsts_scxSEditRepositoryComboBoxItem 64388 -#define cxEditConsts_scxSEditRepositoryCurrencyItem 64389 -#define cxEditConsts_scxSEditRepositoryDateItem 64390 -#define cxEditConsts_scxSEditRepositoryHyperLinkItem 64391 -#define cxEditConsts_scxSEditRepositoryImageComboBoxItem 64392 -#define cxEditConsts_scxSEditRepositoryImageItem 64393 -#define cxEditConsts_scxSEditRepositoryMaskItem 64394 -#define cxEditConsts_scxSEditRepositoryMemoItem 64395 -#define cxEditConsts_scxSEditRepositoryMRUItem 64396 -#define cxEditConsts_scxSEditRepositoryPopupItem 64397 -#define cxEditConsts_scxSEditRepositorySpinItem 64398 -#define cxEditConsts_scxSEditRepositoryRadioGroupItem 64399 -#define cxEditConsts_scxSHyperLinkPrefix 64400 -#define cxEditConsts_cxNavigatorHint_First 64401 -#define cxEditConsts_cxNavigatorHint_Prior 64402 -#define cxEditConsts_cxNavigatorHint_PriorPage 64403 -#define cxEditConsts_cxNavigatorHint_Next 64404 -#define cxEditConsts_cxNavigatorHint_NextPage 64405 -#define cxEditConsts_cxNavigatorHint_Last 64406 -#define cxEditConsts_cxNavigatorHint_Insert 64407 -#define cxEditConsts_cxNavigatorHint_Delete 64408 -#define cxEditConsts_cxNavigatorHint_Edit 64409 -#define cxEditConsts_cxNavigatorHint_Post 64410 -#define cxEditConsts_cxNavigatorHint_Cancel 64411 -#define cxEditConsts_cxNavigatorHint_Refresh 64412 -#define cxEditConsts_cxNavigatorHint_SaveBookmark 64413 -#define cxEditConsts_cxNavigatorHint_GotoBookmark 64414 -#define cxEditConsts_cxNavigatorHint_Filter 64415 -#define cxEditConsts_cxSDateTuesday 64416 -#define cxEditConsts_cxSDateWednesday 64417 -#define cxEditConsts_cxSDateThursday 64418 -#define cxEditConsts_cxSDateFriday 64419 -#define cxEditConsts_cxSDateSaturday 64420 -#define cxEditConsts_cxSDateFirst 64421 -#define cxEditConsts_cxSDateSecond 64422 -#define cxEditConsts_cxSDateThird 64423 -#define cxEditConsts_cxSDateFourth 64424 -#define cxEditConsts_cxSDateFifth 64425 -#define cxEditConsts_cxSDateSixth 64426 -#define cxEditConsts_cxSDateSeventh 64427 -#define cxEditConsts_cxSDateBOM 64428 -#define cxEditConsts_cxSDateEOM 64429 -#define cxEditConsts_cxSDateNow 64430 -#define cxEditConsts_scxSCalcError 64431 -#define cxEditConsts_cxSMenuItemCaptionCut 64432 -#define cxEditConsts_cxSMenuItemCaptionCopy 64433 -#define cxEditConsts_cxSMenuItemCaptionPaste 64434 -#define cxEditConsts_cxSMenuItemCaptionDelete 64435 -#define cxEditConsts_cxSMenuItemCaptionLoad 64436 -#define cxEditConsts_cxSMenuItemCaptionSave 64437 -#define cxEditConsts_cxSDatePopupClear 64438 -#define cxEditConsts_cxSDatePopupNow 64439 -#define cxEditConsts_cxSDatePopupOK 64440 -#define cxEditConsts_cxSDatePopupToday 64441 -#define cxEditConsts_cxSDateError 64442 -#define cxEditConsts_cxSDateToday 64443 -#define cxEditConsts_cxSDateYesterday 64444 -#define cxEditConsts_cxSDateTomorrow 64445 -#define cxEditConsts_cxSDateSunday 64446 -#define cxEditConsts_cxSDateMonday 64447 -#define cxEditConsts_cxSEditNumericValueConvertError 64448 -#define cxEditConsts_cxSEditPopupCircularReferencingError 64449 -#define cxEditConsts_cxSEditTimeConvertError 64450 -#define cxEditConsts_cxSEditValidateErrorText 64451 -#define cxEditConsts_cxSEditValueOutOfBounds 64452 -#define cxEditConsts_cxSEditCheckBoxChecked 64453 -#define cxEditConsts_cxSEditCheckBoxGrayed 64454 -#define cxEditConsts_cxSEditCheckBoxUnchecked 64455 -#define cxEditConsts_cxSRadioGroupDefaultCaption 64456 -#define cxEditConsts_cxSBlobButtonOK 64457 -#define cxEditConsts_cxSBlobButtonCancel 64458 -#define cxEditConsts_cxSBlobButtonClose 64459 -#define cxEditConsts_cxSBlobMemo 64460 -#define cxEditConsts_cxSBlobMemoEmpty 64461 -#define cxEditConsts_cxSBlobPicture 64462 -#define cxEditConsts_cxSBlobPictureEmpty 64463 -#define cxFilterConsts_cxSFilterNotCaption 64464 -#define cxFilterConsts_cxSFilterBlankCaption 64465 -#define cxFilterConsts_cxSFilterOperatorIsNull 64466 -#define cxFilterConsts_cxSFilterOperatorIsNotNull 64467 -#define cxFilterConsts_cxSFilterOperatorBeginsWith 64468 -#define cxFilterConsts_cxSFilterOperatorDoesNotBeginWith 64469 -#define cxFilterConsts_cxSFilterOperatorEndsWith 64470 -#define cxFilterConsts_cxSFilterOperatorDoesNotEndWith 64471 -#define cxFilterConsts_cxSFilterOperatorContains 64472 -#define cxFilterConsts_cxSFilterOperatorDoesNotContain 64473 -#define cxFilterConsts_cxSFilterBoxAllCaption 64474 -#define cxFilterConsts_cxSFilterBoxCustomCaption 64475 -#define cxFilterConsts_cxSFilterBoxBlanksCaption 64476 -#define cxFilterConsts_cxSFilterBoxNonBlanksCaption 64477 -#define cxEditConsts_cxSEditDateConvertError 64478 -#define cxEditConsts_cxSEditInvalidRepositoryItem 64479 -#define cxFilterConsts_cxSFilterOperatorLastMonth 64480 -#define cxFilterConsts_cxSFilterOperatorLastYear 64481 -#define cxFilterConsts_cxSFilterOperatorPast 64482 -#define cxFilterConsts_cxSFilterOperatorThisWeek 64483 -#define cxFilterConsts_cxSFilterOperatorThisMonth 64484 -#define cxFilterConsts_cxSFilterOperatorThisYear 64485 -#define cxFilterConsts_cxSFilterOperatorNext7Days 64486 -#define cxFilterConsts_cxSFilterOperatorNextWeek 64487 -#define cxFilterConsts_cxSFilterOperatorNext14Days 64488 -#define cxFilterConsts_cxSFilterOperatorNextTwoWeeks 64489 -#define cxFilterConsts_cxSFilterOperatorNext30Days 64490 -#define cxFilterConsts_cxSFilterOperatorNextMonth 64491 -#define cxFilterConsts_cxSFilterOperatorNextYear 64492 -#define cxFilterConsts_cxSFilterOperatorFuture 64493 -#define cxFilterConsts_cxSFilterAndCaption 64494 -#define cxFilterConsts_cxSFilterOrCaption 64495 -#define cxFilterConsts_cxSFilterOperatorGreater 64496 -#define cxFilterConsts_cxSFilterOperatorGreaterEqual 64497 -#define cxFilterConsts_cxSFilterOperatorLike 64498 -#define cxFilterConsts_cxSFilterOperatorNotLike 64499 -#define cxFilterConsts_cxSFilterOperatorBetween 64500 -#define cxFilterConsts_cxSFilterOperatorNotBetween 64501 -#define cxFilterConsts_cxSFilterOperatorInList 64502 -#define cxFilterConsts_cxSFilterOperatorNotInList 64503 -#define cxFilterConsts_cxSFilterOperatorYesterday 64504 -#define cxFilterConsts_cxSFilterOperatorToday 64505 -#define cxFilterConsts_cxSFilterOperatorTomorrow 64506 -#define cxFilterConsts_cxSFilterOperatorLast7Days 64507 -#define cxFilterConsts_cxSFilterOperatorLastWeek 64508 -#define cxFilterConsts_cxSFilterOperatorLast14Days 64509 -#define cxFilterConsts_cxSFilterOperatorLastTwoWeeks 64510 -#define cxFilterConsts_cxSFilterOperatorLast30Days 64511 -#define pnglang_EPNGCannotAddChunkText 64512 -#define pnglang_EPNGCannotAddInvalidImageText 64513 -#define pnglang_EPNGOutMemoryText 64514 -#define pnglang_EPNGHeaderNotPresentText 64515 -#define cxDataConsts_cxSDataReadError 64516 -#define cxDataConsts_cxSDataWriteError 64517 -#define cxDataConsts_cxSDataItemExistError 64518 -#define cxDataConsts_cxSDataRecordIndexError 64519 -#define cxDataConsts_cxSDataItemIndexError 64520 -#define cxDataConsts_cxSDataProviderModeError 64521 -#define cxDataConsts_cxSDataInvalidStreamFormat 64522 -#define cxDataConsts_cxSDataRowIndexError 64523 -#define cxFilterConsts_cxSFilterOperatorEqual 64524 -#define cxFilterConsts_cxSFilterOperatorNotEqual 64525 -#define cxFilterConsts_cxSFilterOperatorLess 64526 -#define cxFilterConsts_cxSFilterOperatorLessEqual 64527 -#define pnglang_EPngInvalidCRCText 64528 -#define pnglang_EPNGInvalidIHDRText 64529 -#define pnglang_EPNGMissingMultipleIDATText 64530 -#define pnglang_EPNGZLIBErrorText 64531 -#define pnglang_EPNGInvalidPaletteText 64532 -#define pnglang_EPNGInvalidFileHeaderText 64533 -#define pnglang_EPNGIHDRNotFirstText 64534 -#define pnglang_EPNGSizeExceedsText 64535 -#define pnglang_EPNGUnknownPalEntryText 64536 -#define pnglang_EPNGUnknownCriticalChunkText 64537 -#define pnglang_EPNGUnknownCompressionText 64538 -#define pnglang_EPNGUnknownInterlaceText 64539 -#define pnglang_EPNGCannotAssignChunkText 64540 -#define pnglang_EPNGUnexpectedEndText 64541 -#define pnglang_EPNGNoImageDataText 64542 -#define pnglang_EPNGCannotChangeSizeText 64543 -#define IBSQLMonitor_StrStartTransaction 64544 -#define IBSQLMonitor_StrApplication 64545 -#define ADOConst_SMissingConnection 64546 -#define ADOConst_SNoDetailFilter 64547 -#define ADOConst_SBookmarksRequired 64548 -#define ADOConst_SMissingCommandText 64549 -#define ADOConst_SNoResultSet 64550 -#define ADOConst_SADOCreateError 64551 -#define ADOConst_SEventsNotSupported 64552 -#define ADOConst_SUsupportedFieldType 64553 -#define ADOConst_SConnectionRequired 64554 -#define ADOConst_SCantRequery 64555 -#define ADOConst_SNoFilterOptions 64556 -#define ADOConst_SRecordsetNotOpen 64557 -#define ADOConst_sNameAttr 64558 -#define ADOConst_sValueAttr 64559 -#define IBSQLMonitor_StrError 64560 -#define IBSQLMonitor_StrAttach 64561 -#define IBSQLMonitor_StrDetach 64562 -#define IBSQLMonitor_StrQuery 64563 -#define IBSQLMonitor_StrStart 64564 -#define IBSQLMonitor_StrExecute 64565 -#define IBSQLMonitor_StrNULL 64566 -#define IBSQLMonitor_StrBLOB 64567 -#define IBSQLMonitor_StrFetch 64568 -#define IBSQLMonitor_StrPrepare 64569 -#define IBSQLMonitor_StrPlan 64570 -#define IBSQLMonitor_StrPlanCantRetrive 64571 -#define IBSQLMonitor_StrCommitHardComm 64572 -#define IBSQLMonitor_StrCommitRetaining 64573 -#define IBSQLMonitor_StrRollback 64574 -#define IBSQLMonitor_StrRollbackRetainin 64575 -#define IBXConst_SInvalidOnStatusResult 64576 -#define IBXConst_SDPBConstantUnknownEx 64577 -#define IBXConst_STPBConstantUnknownEx 64578 -#define IBXConst_SUnknownPlan 64579 -#define IBXConst_SFieldSizeMismatch 64580 -#define IBXConst_SEventAlreadyRegistered 64581 -#define IBXConst_SStringTooLarge 64582 -#define IBXConst_SNoTimers 64583 -#define IBXConst_SIB65feature 64584 -#define IBXConst_SLoginPromptFailure 64585 -#define IBXConst_SIB70feature 64586 -#define IBXConst_SIB71feature 64587 -#define IBXConst_SIB80feature 64588 -#define IBSQLMonitor_StrConnect 64589 -#define IBSQLMonitor_StrDisconnect 64590 -#define IBSQLMonitor_StrMisc 64591 -#define IBXConst_SSQLMonitorAlreadyPresent 64592 -#define IBXConst_SCantPrintValue 64593 -#define IBXConst_SEOFReached 64594 -#define IBXConst_SEOFInComment 64595 -#define IBXConst_SEOFInString 64596 -#define IBXConst_SParamNameExpected 64597 -#define IBXConst_SSuccess 64598 -#define IBXConst_SDelphiException 64599 -#define IBXConst_SNoOptionsSet 64600 -#define IBXConst_SNoDestinationDirectory 64601 -#define IBXConst_SNosourceDirectory 64602 -#define IBXConst_SNoUninstallFile 64603 -#define IBXConst_SOptionNeedsClient 64604 -#define IBXConst_SOptionNeedsServer 64605 -#define IBXConst_SInvalidOption 64606 -#define IBXConst_SInvalidOnErrorResult 64607 -#define IBXConst_SInvalidEvent 64608 -#define IBXConst_SMaximumEvents 64609 -#define IBXConst_SNoEventsRegistered 64610 -#define IBXConst_SInvalidQueueing 64611 -#define IBXConst_SInvalidRegistration 64612 -#define IBXConst_SInvalidBatchMove 64613 -#define IBXConst_SSQLDialectInvalid 64614 -#define IBXConst_SSPBConstantNotSupported 64615 -#define IBXConst_SSPBConstantUnknown 64616 -#define IBXConst_SServiceActive 64617 -#define IBXConst_SServiceInActive 64618 -#define IBXConst_SServerNameMissing 64619 -#define IBXConst_SQueryParamsError 64620 -#define IBXConst_SStartParamsError 64621 -#define IBXConst_SOutputParsingError 64622 -#define IBXConst_SUseSpecificProcedures 64623 -#define IBXConst_SEmptySQLStatement 64624 -#define IBXConst_SIsASelectStatement 64625 -#define IBXConst_SRequiredParamNotSet 64626 -#define IBXConst_SNoStoredProcName 64627 -#define IBXConst_SIsAExecuteProcedure 64628 -#define IBXConst_SUpdateFailed 64629 -#define IBXConst_SNotCachedUpdates 64630 -#define IBXConst_SNotLiveRequest 64631 -#define IBXConst_SNoProvider 64632 -#define IBXConst_SNoRecordsAffected 64633 -#define IBXConst_SNoTableName 64634 -#define IBXConst_SCannotCreatePrimaryIndex 64635 -#define IBXConst_SCannotDropSystemIndex 64636 -#define IBXConst_STableNameMismatch 64637 -#define IBXConst_SIndexFieldMissing 64638 -#define IBXConst_SInvalidCancellation 64639 -#define IBXConst_SCannotPost 64640 -#define IBXConst_SCannotUpdate 64641 -#define IBXConst_SCannotDelete 64642 -#define IBXConst_SCannotRefresh 64643 -#define IBXConst_SBufferNotSet 64644 -#define IBXConst_SCircularReference 64645 -#define IBXConst_SSQLParseError 64646 -#define IBXConst_SUserAbort 64647 -#define IBXConst_SDataSetUniDirectional 64648 -#define IBXConst_SCannotCreateSharedResource 64649 -#define IBXConst_SWindowsAPIError 64650 -#define IBXConst_SColumnListsDontMatch 64651 -#define IBXConst_SColumnTypesDontMatch 64652 -#define IBXConst_SCantEndSharedTransaction 64653 -#define IBXConst_SFieldUnsupportedType 64654 -#define IBXConst_SCircularDataLink 64655 -#define IBXConst_SDatasetOpen 64656 -#define IBXConst_SDatasetClosed 64657 -#define IBXConst_SUnknownSQLDataType 64658 -#define IBXConst_SInvalidColumnIndex 64659 -#define IBXConst_SInvalidParamColumnIndex 64660 -#define IBXConst_SInvalidDataConversion 64661 -#define IBXConst_SColumnIsNotNullable 64662 -#define IBXConst_SBlobCannotBeRead 64663 -#define IBXConst_SBlobCannotBeWritten 64664 -#define IBXConst_SEmptyQuery 64665 -#define IBXConst_SCannotOpenNonSQLSelect 64666 -#define IBXConst_SNoFieldAccess 64667 -#define IBXConst_SFieldReadOnly 64668 -#define IBXConst_SFieldNotFound 64669 -#define IBXConst_SNotEditing 64670 -#define IBXConst_SCannotInsert 64671 -#define IBXConst_SDatabaseNameMissing 64672 -#define IBXConst_SNotInTransaction 64673 -#define IBXConst_SInTransaction 64674 -#define IBXConst_STimeoutNegative 64675 -#define IBXConst_SNoDatabasesInTransaction 64676 -#define IBXConst_SUpdateWrongDB 64677 -#define IBXConst_SUpdateWrongTR 64678 -#define IBXConst_SDatabaseNotAssigned 64679 -#define IBXConst_STransactionNotAssigned 64680 -#define IBXConst_SXSQLDAIndexOutOfRange 64681 -#define IBXConst_SXSQLDANameDoesNotExist 64682 -#define IBXConst_SEOF 64683 -#define IBXConst_SBOF 64684 -#define IBXConst_SInvalidStatementHandle 64685 -#define IBXConst_SSQLOpen 64686 -#define IBXConst_SSQLClosed 64687 -#define IBXConst_SInterBaseMissing 64688 -#define IBXConst_SInterBaseInstallMissing 64689 -#define IBXConst_SIB60feature 64690 -#define IBXConst_SNotSupported 64691 -#define IBXConst_SNotPermitted 64692 -#define IBXConst_SFileAccessError 64693 -#define IBXConst_SConnectionTimeout 64694 -#define IBXConst_SCannotSetDatabase 64695 -#define IBXConst_SCannotSetTransaction 64696 -#define IBXConst_SOperationCancelled 64697 -#define IBXConst_SDPBConstantNotSupported 64698 -#define IBXConst_SDPBConstantUnknown 64699 -#define IBXConst_STPBConstantNotSupported 64700 -#define IBXConst_STPBConstantUnknown 64701 -#define IBXConst_SDatabaseClosed 64702 -#define IBXConst_SDatabaseOpen 64703 -#define uDARes_err_LoadPackageFailed 64704 -#define uDARes_err_InvalidDriverReference 64705 -#define uDARes_err_CannotFindStatement 64706 -#define uDARes_err_CannotFindDefaultItem 64707 -#define uDARes_err_PoolIsNotEmpty 64708 -#define uDARes_err_MaxPoolSizeReached 64709 -#define uDARes_err_LAMEDataset 64710 -#define uDARes_err_HETConnectionNotSupportedInV3 64711 -#define uDARes_err_DARDMInvalidSchema 64712 -#define uDARes_err_DARDMUnassignedAdapter 64713 -#define uDARes_err_DARDMConnectionIsNotAssigned 64714 -#define uDARes_err_DARDMCannotFindProxessorForDelta 64715 -#define uDARes_err_NeedShareMem 64716 -#define uDARes_err_ExecuteSQLCommandNotAllowed 64717 -#define uDARes_err_DatasetNotAccessible 64718 -#define IBXConst_SUnknownError 64719 -#define JvResources_RsHotLight 64720 -#define JvResources_RsMenuBar 64721 -#define JvResources_RsMenuHighlight 64722 -#define uDARes_err_ChangeLogAlreadyStarted 64723 -#define uDARes_err_NotAttachedToDataTable 64724 -#define uDARes_err_DriverProcAlreadyRegistered 64725 -#define uDARes_err_DriverManagerAlreadyCreated 64726 -#define uDARes_err_DriverManagerNotAssigned 64727 -#define uDARes_err_FieldTypeNotSupported 64728 -#define uDARes_err_InvalidDataset 64729 -#define uDARes_err_CannotFindItem 64730 -#define uDARes_err_DriverAlreadyLoaded 64731 -#define uDARes_err_InvalidDLL 64732 -#define uDARes_err_UnknownDriver 64733 -#define uDARes_err_FieldIsNotBound 64734 -#define uDARes_err_CannotFindField 64735 -#define JvResources_RsClInactiveBorder 64736 -#define JvResources_RsClAppWorkSpace 64737 -#define JvResources_RsClHighlight 64738 -#define JvResources_RsClHighlightText 64739 -#define JvResources_RsClBtnFace 64740 -#define JvResources_RsClBtnShadow 64741 -#define JvResources_RsClGrayText 64742 -#define JvResources_RsClBtnText 64743 -#define JvResources_RsClInactiveCaptionText 64744 -#define JvResources_RsClBtnHighlight 64745 -#define JvResources_RsCl3DDkShadow 64746 -#define JvResources_RsCl3DLight 64747 -#define JvResources_RsClInfoText 64748 -#define JvResources_RsClInfoBk 64749 -#define JvResources_RsGradientActiveCaption 64750 -#define JvResources_RsGradientInactiveCaption 64751 -#define JvResources_RsClLightYellow 64752 -#define JvResources_RsClLightGreen 64753 -#define JvResources_RsClLightTurquoise 64754 -#define JvResources_RsClPaleBlue 64755 -#define JvResources_RsClLavender 64756 -#define JvResources_RsClScrollBar 64757 -#define JvResources_RsClBackground 64758 -#define JvResources_RsClActiveCaption 64759 -#define JvResources_RsClInactiveCaption 64760 -#define JvResources_RsClMenu 64761 -#define JvResources_RsClWindow 64762 -#define JvResources_RsClWindowFrame 64763 -#define JvResources_RsClMenuText 64764 -#define JvResources_RsClWindowText 64765 -#define JvResources_RsClCaptionText 64766 -#define JvResources_RsClActiveBorder 64767 -#define JvResources_RsClDarkYellow 64768 -#define JvResources_RsClBlueGray 64769 -#define JvResources_RsClGray50 64770 -#define JvResources_RsClLightOrange 64771 -#define JvResources_RsClSeaGreen 64772 -#define JvResources_RsClLightBlue 64773 -#define JvResources_RsClViolet 64774 -#define JvResources_RsClGray40 64775 -#define JvResources_RsClPink 64776 -#define JvResources_RsClGold 64777 -#define JvResources_RsClBrightGreen 64778 -#define JvResources_RsClTurquoise 64779 -#define JvResources_RsClPlum 64780 -#define JvResources_RsClGray25 64781 -#define JvResources_RsClRose 64782 -#define JvResources_RsClTan 64783 -#define JvResources_RsClFuchsia 64784 -#define JvResources_RsClAqua 64785 -#define JvResources_RsClWhite 64786 -#define JvResources_RsClMoneyGreen 64787 -#define JvResources_RsClSkyBlue 64788 -#define JvResources_RsClCream 64789 -#define JvResources_RsClMedGray 64790 -#define JvResources_RsClBrown 64791 -#define JvResources_RsClOliveGreen 64792 -#define JvResources_RsClDarkGreen 64793 -#define JvResources_RsClDarkTeal 64794 -#define JvResources_RsClDarkBlue 64795 -#define JvResources_RsClIndigo 64796 -#define JvResources_RsClGray80 64797 -#define JvResources_RsClDarkRed 64798 -#define JvResources_RsClOrange 64799 -#define JvResources_RsEGIFVersion 64800 -#define JvResources_RsEPixelFormatNotImplemented 64801 -#define JvResources_RsEBitCountNotImplemented 64802 -#define JvResources_RsClBlack 64803 -#define JvResources_RsClMaroon 64804 -#define JvResources_RsClGreen 64805 -#define JvResources_RsClOlive 64806 -#define JvResources_RsClNavy 64807 -#define JvResources_RsClPurple 64808 -#define JvResources_RsClTeal 64809 -#define JvResources_RsClGray 64810 -#define JvResources_RsClSilver 64811 -#define JvResources_RsClRed 64812 -#define JvResources_RsClLime 64813 -#define JvResources_RsClYellow 64814 -#define JvResources_RsClBlue 64815 -#define JvResources_RsEUnableToCreateKey 64816 -#define JvResources_RsEEnumeratingRegistry 64817 -#define JvResources_RsEInvalidType 64818 -#define JvResources_RsEUnknownBaseType 64819 -#define JvResources_RsEInvalidPath 64820 -#define JvResources_RsENotAUniqueRootPath 64821 -#define JvResources_RsECircularReferenceOfStorages 64822 -#define JvResources_RsEShellNotCompatible 64823 -#define JvResources_RsGIFImage 64824 -#define JvResources_RsEChangeGIFSize 64825 -#define JvResources_RsENoGIFData 64826 -#define JvResources_RsEUnrecognizedGIFExt 64827 -#define JvResources_RsEWrongGIFColors 64828 -#define JvResources_RsEBadGIFCodeSize 64829 -#define JvResources_RsEGIFDecodeError 64830 -#define JvResources_RsEGIFEncodeError 64831 -#define JclResources_RsIntelCacheDescr7D 64832 -#define JclResources_RsIntelCacheDescr7F 64833 -#define JclResources_RsIntelCacheDescr82 64834 -#define JclResources_RsIntelCacheDescr83 64835 -#define JclResources_RsIntelCacheDescr84 64836 -#define JclResources_RsIntelCacheDescr85 64837 -#define JclResources_RsIntelCacheDescr86 64838 -#define JclResources_RsIntelCacheDescr87 64839 -#define JclResources_RsIntelCacheDescrB0 64840 -#define JclResources_RsIntelCacheDescrB3 64841 -#define JclResources_RsIntelCacheDescrB4 64842 -#define JclResources_RsIntelCacheDescrF0 64843 -#define JclResources_RsIntelCacheDescrF1 64844 -#define JvResources_RsAniExtension 64845 -#define JvResources_RsAniFilterName 64846 -#define JvResources_RsRootValueReplaceFmt 64847 -#define JclResources_RsIntelCacheDescr57 64848 -#define JclResources_RsIntelCacheDescr5B 64849 -#define JclResources_RsIntelCacheDescr5C 64850 -#define JclResources_RsIntelCacheDescr5D 64851 -#define JclResources_RsIntelCacheDescr60 64852 -#define JclResources_RsIntelCacheDescr66 64853 -#define JclResources_RsIntelCacheDescr67 64854 -#define JclResources_RsIntelCacheDescr68 64855 -#define JclResources_RsIntelCacheDescr70 64856 -#define JclResources_RsIntelCacheDescr71 64857 -#define JclResources_RsIntelCacheDescr72 64858 -#define JclResources_RsIntelCacheDescr78 64859 -#define JclResources_RsIntelCacheDescr79 64860 -#define JclResources_RsIntelCacheDescr7A 64861 -#define JclResources_RsIntelCacheDescr7B 64862 -#define JclResources_RsIntelCacheDescr7C 64863 -#define JclResources_RsIntelCacheDescr29 64864 -#define JclResources_RsIntelCacheDescr2C 64865 -#define JclResources_RsIntelCacheDescr30 64866 -#define JclResources_RsIntelCacheDescr40 64867 -#define JclResources_RsIntelCacheDescr41 64868 -#define JclResources_RsIntelCacheDescr42 64869 -#define JclResources_RsIntelCacheDescr43 64870 -#define JclResources_RsIntelCacheDescr44 64871 -#define JclResources_RsIntelCacheDescr45 64872 -#define JclResources_RsIntelCacheDescr46 64873 -#define JclResources_RsIntelCacheDescr47 64874 -#define JclResources_RsIntelCacheDescr49 64875 -#define JclResources_RsIntelCacheDescr50 64876 -#define JclResources_RsIntelCacheDescr51 64877 -#define JclResources_RsIntelCacheDescr52 64878 -#define JclResources_RsIntelCacheDescr56 64879 -#define JclResources_RsRTTIVarType 64880 -#define JclResources_RsDeclarationFormat 64881 -#define JclResources_RsIntelCacheDescr00 64882 -#define JclResources_RsIntelCacheDescr01 64883 -#define JclResources_RsIntelCacheDescr02 64884 -#define JclResources_RsIntelCacheDescr03 64885 -#define JclResources_RsIntelCacheDescr04 64886 -#define JclResources_RsIntelCacheDescr05 64887 -#define JclResources_RsIntelCacheDescr06 64888 -#define JclResources_RsIntelCacheDescr08 64889 -#define JclResources_RsIntelCacheDescr0A 64890 -#define JclResources_RsIntelCacheDescr0B 64891 -#define JclResources_RsIntelCacheDescr0C 64892 -#define JclResources_RsIntelCacheDescr22 64893 -#define JclResources_RsIntelCacheDescr23 64894 -#define JclResources_RsIntelCacheDescr25 64895 -#define JclResources_RsRTTIMinValue 64896 -#define JclResources_RsRTTIMaxValue 64897 -#define JclResources_RsRTTINameList 64898 -#define JclResources_RsRTTIClassName 64899 -#define JclResources_RsRTTIParent 64900 -#define JclResources_RsRTTIPropCount 64901 -#define JclResources_RsRTTIUnitName 64902 -#define JclResources_RsRTTIBasedOn 64903 -#define JclResources_RsRTTIFloatType 64904 -#define JclResources_RsRTTIMethodKind 64905 -#define JclResources_RsRTTIParamCount 64906 -#define JclResources_RsRTTIReturnType 64907 -#define JclResources_RsRTTIMaxLen 64908 -#define JclResources_RsRTTIElSize 64909 -#define JclResources_RsRTTIElType 64910 -#define JclResources_RsRTTIElNeedCleanup 64911 -#define JclResources_RsRTTITypeError 64912 -#define JclResources_RsRTTITypeInfoAt 64913 -#define JclResources_RsRTTIPropRead 64914 -#define JclResources_RsRTTIPropWrite 64915 -#define JclResources_RsRTTIPropStored 64916 -#define JclResources_RsRTTIField 64917 -#define JclResources_RsRTTIStaticMethod 64918 -#define JclResources_RsRTTIVirtualMethod 64919 -#define JclResources_RsRTTIIndex 64920 -#define JclResources_RsRTTIDefault 64921 -#define JclResources_RsRTTIName 64922 -#define JclResources_RsRTTIType 64923 -#define JclResources_RsRTTIFlags 64924 -#define JclResources_RsRTTIGUID 64925 -#define JclResources_RsRTTITypeKind 64926 -#define JclResources_RsRTTIOrdinalType 64927 -#define JclResources_RsHKCRShort 64928 -#define JclResources_RsHKCUShort 64929 -#define JclResources_RsHKLMShort 64930 -#define JclResources_RsHKUSShort 64931 -#define JclResources_RsHKPDShort 64932 -#define JclResources_RsHKCCShort 64933 -#define JclResources_RsHKDDShort 64934 -#define JclResources_RsRTTIValueOutOfRange 64935 -#define JclResources_RsRTTIUnknownIdentifier 64936 -#define JclResources_RsRTTIVar 64937 -#define JclResources_RsRTTIConst 64938 -#define JclResources_RsRTTIArrayOf 64939 -#define JclResources_RsRTTIOut 64940 -#define JclResources_RsRTTIOrdinal 64941 -#define JclResources_RsRTTITrue 64942 -#define JclResources_RsRTTIFalse 64943 -#define JConsts_sChangeJPGSize 64944 -#define JConsts_sJPEGError 64945 -#define JConsts_sJPEGImageFile 64946 -#define JclResources_RsFileUtilsNoVersionInfo 64947 -#define JclResources_RsUnableToOpenKeyRead 64948 -#define JclResources_RsUnableToOpenKeyWrite 64949 -#define JclResources_RsUnableToAccessValue 64950 -#define JclResources_RsWrongDataType 64951 -#define JclResources_RsInconsistentPath 64952 -#define JclResources_RsHKCRLong 64953 -#define JclResources_RsHKCULong 64954 -#define JclResources_RsHKLMLong 64955 -#define JclResources_RsHKUSLong 64956 -#define JclResources_RsHKPDLong 64957 -#define JclResources_RsHKCCLong 64958 -#define JclResources_RsHKDDLong 64959 -#define IdResourceStringsCore_RSConnectTimeout 64960 -#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 64961 -#define IdResourceStringsCore_RSAlreadyConnected 64962 -#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 64963 -#define IdResourceStringsCore_RSchedMaxThreadEx 64964 -#define IdResourceStringsCore_RSTransparentProxyCannotBind 64965 -#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 64966 -#define IdResourceStringsCore_RSBufferMissingTerminator 64967 -#define IdResourceStringsCore_RSBufferInvalidStartPos 64968 -#define IdResourceStringsCore_RSReplyInvalidCode 64969 -#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 64970 -#define IdResourceStringsCore_RSNoOnExecute 64971 -#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 64972 -#define ComStrs_sInvalidIndex 64973 -#define ComStrs_sInsertError 64974 -#define ComStrs_sUDAssociated 64975 -#define IdResourceStringsCore_RSSocksServerPermissionError 64976 -#define IdResourceStringsCore_RSSocksServerNetUnreachableError 64977 -#define IdResourceStringsCore_RSSocksServerHostUnreachableError 64978 -#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 64979 -#define IdResourceStringsCore_RSSocksServerTTLExpiredError 64980 -#define IdResourceStringsCore_RSSocksServerCommandError 64981 -#define IdResourceStringsCore_RSSocksServerAddressError 64982 -#define IdResourceStringsCore_RSInterceptCircularLink 64983 -#define IdResourceStringsCore_RSNotEnoughDataInBuffer 64984 -#define IdResourceStringsCore_RSTooMuchDataInBuffer 64985 -#define IdResourceStringsCore_RSFileNotFound 64986 -#define IdResourceStringsCore_RSNotConnected 64987 -#define IdResourceStringsCore_RSObjectTypeNotSupported 64988 -#define IdResourceStringsCore_RSIdNoDataToRead 64989 -#define IdResourceStringsCore_RSReadTimeout 64990 -#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 64991 -#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 64992 -#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 64993 -#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 64994 -#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 64995 -#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 64996 -#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 64997 -#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 64998 -#define IdResourceStringsCore_RSSocksUDPNotSupported 64999 -#define IdResourceStringsCore_RSSocksRequestFailed 65000 -#define IdResourceStringsCore_RSSocksRequestServerFailed 65001 -#define IdResourceStringsCore_RSSocksRequestIdentFailed 65002 -#define IdResourceStringsCore_RSSocksUnknownError 65003 -#define IdResourceStringsCore_RSSocksServerRespondError 65004 -#define IdResourceStringsCore_RSSocksAuthMethodError 65005 -#define IdResourceStringsCore_RSSocksAuthError 65006 -#define IdResourceStringsCore_RSSocksServerGeneralError 65007 -#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 65008 -#define IdResourceStringsProtocols_RSHTTPNotAcceptable 65009 -#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 65010 -#define IdResourceStringsProtocols_RSHTTPRequestTimeout 65011 -#define IdResourceStringsProtocols_RSHTTPConflict 65012 -#define IdResourceStringsProtocols_RSHTTPGone 65013 -#define IdResourceStringsProtocols_RSHTTPLengthRequired 65014 -#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 65015 -#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 65016 -#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 65017 -#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 65018 -#define IdResourceStringsProtocols_RSHTTPInternalServerError 65019 -#define IdResourceStringsProtocols_RSHTTPNotImplemented 65020 -#define IdResourceStringsProtocols_RSHTTPBadGateway 65021 -#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 65022 -#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 65023 -#define IdResourceStringsProtocols_RSHTTPOK 65024 -#define IdResourceStringsProtocols_RSHTTPCreated 65025 -#define IdResourceStringsProtocols_RSHTTPAccepted 65026 -#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 65027 -#define IdResourceStringsProtocols_RSHTTPNoContent 65028 -#define IdResourceStringsProtocols_RSHTTPResetContent 65029 -#define IdResourceStringsProtocols_RSHTTPPartialContent 65030 -#define IdResourceStringsProtocols_RSHTTPMovedPermanently 65031 -#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 65032 -#define IdResourceStringsProtocols_RSHTTPSeeOther 65033 -#define IdResourceStringsProtocols_RSHTTPNotModified 65034 -#define IdResourceStringsProtocols_RSHTTPUseProxy 65035 -#define IdResourceStringsProtocols_RSHTTPBadRequest 65036 -#define IdResourceStringsProtocols_RSHTTPUnauthorized 65037 -#define IdResourceStringsProtocols_RSHTTPForbidden 65038 -#define IdResourceStringsProtocols_RSHTTPNotFound 65039 -#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 65040 -#define IdResourceStrings_RSCannotBindRange 65041 -#define IdResourceStrings_RSConnectionClosedGracefully 65042 -#define IdResourceStrings_RSCouldNotBindSocket 65043 -#define IdResourceStrings_RSInvalidPortRange 65044 -#define IdResourceStrings_RSInvalidServiceName 65045 -#define IdResourceStrings_RSIPv6Unavailable 65046 -#define IdResourceStrings_RSInvalidIPv6Address 65047 -#define IdResourceStrings_RSIPVersionUnsupported 65048 -#define IdResourceStrings_RSNotAllBytesSent 65049 -#define IdResourceStrings_RSPackageSizeTooBig 65050 -#define IdResourceStrings_RSSetSizeExceeded 65051 -#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 65052 -#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 65053 -#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 65054 -#define IdResourceStringsProtocols_RSHTTPContinue 65055 -#define IdResourceStrings_RSStackENOBUFS 65056 -#define IdResourceStrings_RSStackEISCONN 65057 -#define IdResourceStrings_RSStackENOTCONN 65058 -#define IdResourceStrings_RSStackESHUTDOWN 65059 -#define IdResourceStrings_RSStackETOOMANYREFS 65060 -#define IdResourceStrings_RSStackETIMEDOUT 65061 -#define IdResourceStrings_RSStackECONNREFUSED 65062 -#define IdResourceStrings_RSStackELOOP 65063 -#define IdResourceStrings_RSStackENAMETOOLONG 65064 -#define IdResourceStrings_RSStackEHOSTDOWN 65065 -#define IdResourceStrings_RSStackEHOSTUNREACH 65066 -#define IdResourceStrings_RSStackENOTEMPTY 65067 -#define IdResourceStrings_RSStackHOST_NOT_FOUND 65068 -#define IdResourceStrings_RSStackClassUndefined 65069 -#define IdResourceStrings_RSStackAlreadyCreated 65070 -#define IdResourceStrings_RSAntiFreezeOnlyOne 65071 -#define IdResourceStrings_RSStackEDESTADDRREQ 65072 -#define IdResourceStrings_RSStackEMSGSIZE 65073 -#define IdResourceStrings_RSStackEPROTOTYPE 65074 -#define IdResourceStrings_RSStackENOPROTOOPT 65075 -#define IdResourceStrings_RSStackEPROTONOSUPPORT 65076 -#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65077 -#define IdResourceStrings_RSStackEOPNOTSUPP 65078 -#define IdResourceStrings_RSStackEPFNOSUPPORT 65079 -#define IdResourceStrings_RSStackEAFNOSUPPORT 65080 -#define IdResourceStrings_RSStackEADDRINUSE 65081 -#define IdResourceStrings_RSStackEADDRNOTAVAIL 65082 -#define IdResourceStrings_RSStackENETDOWN 65083 -#define IdResourceStrings_RSStackENETUNREACH 65084 -#define IdResourceStrings_RSStackENETRESET 65085 -#define IdResourceStrings_RSStackECONNABORTED 65086 -#define IdResourceStrings_RSStackECONNRESET 65087 -#define IdResourceStrings_RSStatusConnecting 65088 -#define IdResourceStrings_RSStatusConnected 65089 -#define IdResourceStrings_RSStatusDisconnecting 65090 -#define IdResourceStrings_RSStatusDisconnected 65091 -#define IdResourceStrings_RSStatusText 65092 -#define IdResourceStrings_RSStackError 65093 -#define IdResourceStrings_RSStackEINTR 65094 -#define IdResourceStrings_RSStackEBADF 65095 -#define IdResourceStrings_RSStackEACCES 65096 -#define IdResourceStrings_RSStackEFAULT 65097 -#define IdResourceStrings_RSStackEINVAL 65098 -#define IdResourceStrings_RSStackEMFILE 65099 -#define IdResourceStrings_RSStackEWOULDBLOCK 65100 -#define IdResourceStrings_RSStackEINPROGRESS 65101 -#define IdResourceStrings_RSStackEALREADY 65102 -#define IdResourceStrings_RSStackENOTSOCK 65103 -#define DBConsts_SProviderSQLNotSupported 65104 -#define DBConsts_SProviderExecuteNotSupported 65105 -#define DBConsts_SExprNoAggOnCalcs 65106 -#define DBConsts_SDataSetUnidirectional 65107 -#define DBConsts_SUnassignedVar 65108 -#define DBConsts_SRecordNotFound 65109 -#define DBConsts_SBcdOverflow 65110 -#define DBConsts_SInvalidBcdValue 65111 -#define DBConsts_SInvalidFormatType 65112 -#define DBConsts_SCouldNotParseTimeStamp 65113 -#define DBConsts_SInvalidSqlTimeStamp 65114 -#define IdResourceStrings_RSFailedTimeZoneInfo 65115 -#define IdResourceStrings_RSWinsockCallError 65116 -#define IdResourceStrings_RSWinsockLoadError 65117 -#define IdResourceStrings_RSWinsockInitializationError 65118 -#define IdResourceStrings_RSStatusResolving 65119 -#define DBConsts_SExprIncorrect 65120 -#define DBConsts_SExprNothing 65121 -#define DBConsts_SExprTypeMis 65122 -#define DBConsts_SExprBadScope 65123 -#define DBConsts_SExprNoArith 65124 -#define DBConsts_SExprNotAgg 65125 -#define DBConsts_SExprBadConst 65126 -#define DBConsts_SExprNoAggFilter 65127 -#define DBConsts_SExprEmptyInList 65128 -#define DBConsts_SInvalidKeywordUse 65129 -#define DBConsts_STextFalse 65130 -#define DBConsts_STextTrue 65131 -#define DBConsts_SParameterNotFound 65132 -#define DBConsts_SInvalidVersion 65133 -#define DBConsts_SBadFieldType 65134 -#define DBConsts_SAggActive 65135 -#define DBConsts_SNotEditing 65136 -#define DBConsts_SDataSetClosed 65137 -#define DBConsts_SDataSetEmpty 65138 -#define DBConsts_SDataSetReadOnly 65139 -#define DBConsts_SNestedDataSetClass 65140 -#define DBConsts_SExprTermination 65141 -#define DBConsts_SExprNameError 65142 -#define DBConsts_SExprStringError 65143 -#define DBConsts_SExprInvalidChar 65144 -#define DBConsts_SExprNoLParen 65145 -#define DBConsts_SExprNoRParen 65146 -#define DBConsts_SExprNoRParenOrComma 65147 -#define DBConsts_SExprExpected 65148 -#define DBConsts_SExprBadField 65149 -#define DBConsts_SExprBadNullTest 65150 -#define DBConsts_SExprRangeError 65151 -#define DBConsts_SFieldOutOfRange 65152 -#define DBConsts_SFieldRequired 65153 -#define DBConsts_SDataSetMissing 65154 -#define DBConsts_SInvalidCalcType 65155 -#define DBConsts_SFieldReadOnly 65156 -#define DBConsts_SFieldIndexError 65157 -#define DBConsts_SNoFieldIndexes 65158 -#define DBConsts_SNotIndexField 65159 -#define DBConsts_SIndexFieldMissing 65160 -#define DBConsts_SNoIndexForFields 65161 -#define DBConsts_SIndexNotFound 65162 -#define DBConsts_SCircularDataLink 65163 -#define DBConsts_SLookupInfoError 65164 -#define DBConsts_SDataSourceChange 65165 -#define DBConsts_SNoNestedMasterSource 65166 -#define DBConsts_SDataSetOpen 65167 -#define DBConsts_SInvalidFieldSize 65168 -#define DBConsts_SInvalidFieldKind 65169 -#define DBConsts_SUnknownFieldType 65170 -#define DBConsts_SFieldNameMissing 65171 -#define DBConsts_SDuplicateFieldName 65172 -#define DBConsts_SFieldNotFound 65173 -#define DBConsts_SFieldAccessError 65174 -#define DBConsts_SFieldValueError 65175 -#define DBConsts_SFieldRangeError 65176 -#define DBConsts_SBcdFieldRangeError 65177 -#define DBConsts_SInvalidIntegerValue 65178 -#define DBConsts_SInvalidBoolValue 65179 -#define DBConsts_SInvalidFloatValue 65180 -#define DBConsts_SFieldTypeMismatch 65181 -#define DBConsts_SFieldSizeMismatch 65182 -#define DBConsts_SInvalidVarByteArray 65183 -#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65184 -#define uRORes_err_TooManySessions 65185 -#define uRORes_err_DOMElementIsNIL 65186 -#define uRORes_err_CannotLoadXMLDocument 65187 -#define uRORes_err_ErrorCreatingMsXmlDoc 65188 -#define uRORes_err_NoXMLParsersAvailable 65189 -#define uRORes_err_IDispatchMarshalingNotSupported 65190 -#define uRORes_err_UnsupportedVariantType 65191 -#define uRORes_err_VariantIsNotArray 65192 -#define uRORes_err_InvalidVarArrayDimCount 65193 -#define uRORes_err_CannotFindParameter 65194 -#define uRORes_err_MessageNotAssigned 65195 -#define ComConst_SOleError 65196 -#define ComConst_SNoMethod 65197 -#define ComConst_SVarNotObject 65198 -#define ComConst_STooManyParams 65199 -#define uRORes_err_ClassFactoryNotFound 65200 -#define uRORes_err_IROMessageNotSupported 65201 -#define uRORes_err_ClassAlreadyRegistered 65202 -#define uRORes_err_UnknownClass 65203 -#define uRORes_err_UnknownProxyInterface 65204 -#define uRORes_err_DispatcherAlreadyAssigned 65205 -#define uRORes_err_CannotFindMessageDispatcher 65206 -#define uRORes_err_ServerOnlySupportsOneDispatcher 65207 -#define uRORes_err_UnhandledException 65208 -#define uRORes_err_ChannelBusy 65209 -#define uRORes_err_ArrayIndexOutOfBounds 65210 -#define uRORes_err_InvalidHeader 65211 -#define uRORes_err_InvalidHeaderEncrypted 65212 -#define uRORes_err_UnknownClassInStream 65213 -#define uRORes_err_UnexpectedClassInStream 65214 -#define uRORes_err_SessionNotFound 65215 -#define uRORes_err_RodlNoOperationsDefined 65216 -#define uRORes_err_RodlUsedFileDoesNotExist 65217 -#define uRORes_err_RodlInvalidDataType 65218 -#define uRORes_err_RodlStructCannotBeNested 65219 -#define uRORes_err_RodlInvalidAncestorType 65220 -#define uRORes_str_ExceptionOnServer 65221 -#define uRORes_str_ExceptionReraisedFromServer 65222 -#define uRORes_err_AssignError 65223 -#define uRORes_err_InvalidRequestStream 65224 -#define uRORes_err_NILMessage 65225 -#define uRORes_err_UnspecifiedInterface 65226 -#define uRORes_err_UnspecifiedMessage 65227 -#define uRORes_err_UnknownMethod 65228 -#define uRORes_err_ClassFactoryDidNotReturnInstance 65229 -#define uRORes_err_ParameterNotFound 65230 -#define uRORes_err_TypeNotSupported 65231 -#define uRODECConst_sFMT_XX 65232 -#define uRODECConst_sInvalidKeySize 65233 -#define uRODECConst_sNotInitialized 65234 -#define uRORes_err_InvalidIndex 65235 -#define uRORes_err_InvalidType 65236 -#define uRORes_err_InvalidLibrary 65237 -#define uRORes_err_InvalidStream 65238 -#define uRORes_err_InvalidTargetEntity 65239 -#define uRORes_err_InvalidParamFlag 65240 -#define uRORes_err_InvalidStringLength 65241 -#define uRORes_str_InvalidClassTypeInStream 65242 -#define uRORes_err_UnexpectedEndOfStream 65243 -#define uRORes_err_RodlDuplicateName 65244 -#define uRORes_err_RodlNoDataTypeSpecified 65245 -#define uRORes_err_RodlNoEnumValues 65246 -#define uRORes_err_RodlNoStructElementsDefined 65247 -#define Consts_SANSIEncoding 65248 -#define Consts_SASCIIEncoding 65249 -#define Consts_SUnicodeEncoding 65250 -#define Consts_SBigEndianEncoding 65251 -#define Consts_SUTF8Encoding 65252 -#define Consts_SUTF7Encoding 65253 -#define Consts_SWindowsVistaRequired 65254 -#define uRODECConst_sProtectionCircular 65255 -#define uRODECConst_sStringFormatExists 65256 -#define uRODECConst_sInvalidStringFormat 65257 -#define uRODECConst_sInvalidFormatString 65258 -#define uRODECConst_sFMT_COPY 65259 -#define uRODECConst_sFMT_HEX 65260 -#define uRODECConst_sFMT_HEXL 65261 -#define uRODECConst_sFMT_MIME64 65262 -#define uRODECConst_sFMT_UU 65263 -#define Consts_SInvalidMemoSize 65264 -#define Consts_SInvalidPrinterOp 65265 -#define Consts_SNoDefaultPrinter 65266 -#define Consts_SDuplicateMenus 65267 -#define Consts_SPictureLabel 65268 -#define Consts_SPictureDesc 65269 -#define Consts_SPreviewLabel 65270 -#define Consts_SDockedCtlNeedsName 65271 -#define Consts_SDockTreeRemoveError 65272 -#define Consts_SDockZoneNotFound 65273 -#define Consts_SDockZoneHasNoCtl 65274 -#define Consts_SDockZoneVersionConflict 65275 -#define Consts_SMultiSelectRequired 65276 -#define Consts_SSeparator 65277 -#define Consts_SErrorSettingCount 65278 -#define Consts_SListBoxMustBeVirtual 65279 -#define Consts_SmkcCtrl 65280 -#define Consts_SmkcAlt 65281 -#define Consts_srNone 65282 -#define Consts_SOutOfRange 65283 -#define Consts_sAllFilter 65284 -#define Consts_SInsertLineError 65285 -#define Consts_SConfirmCreateDir 65286 -#define Consts_SSelectDirCap 65287 -#define Consts_SDirNameCap 65288 -#define Consts_SDrivesCap 65289 -#define Consts_SDirsCap 65290 -#define Consts_SFilesCap 65291 -#define Consts_SNetworkCap 65292 -#define Consts_SInvalidClipFmt 65293 -#define Consts_SIconToClipboard 65294 -#define Consts_SCannotOpenClipboard 65295 -#define Consts_SmkcBkSp 65296 -#define Consts_SmkcTab 65297 -#define Consts_SmkcEsc 65298 -#define Consts_SmkcEnter 65299 -#define Consts_SmkcSpace 65300 -#define Consts_SmkcPgUp 65301 -#define Consts_SmkcPgDn 65302 -#define Consts_SmkcEnd 65303 -#define Consts_SmkcHome 65304 -#define Consts_SmkcLeft 65305 -#define Consts_SmkcUp 65306 -#define Consts_SmkcRight 65307 -#define Consts_SmkcDown 65308 -#define Consts_SmkcIns 65309 -#define Consts_SmkcDel 65310 -#define Consts_SmkcShift 65311 -#define Consts_SMaskEditErr 65312 -#define Consts_SMsgDlgWarning 65313 -#define Consts_SMsgDlgError 65314 -#define Consts_SMsgDlgInformation 65315 -#define Consts_SMsgDlgConfirm 65316 -#define Consts_SMsgDlgYes 65317 -#define Consts_SMsgDlgNo 65318 -#define Consts_SMsgDlgOK 65319 -#define Consts_SMsgDlgCancel 65320 -#define Consts_SMsgDlgHelp 65321 -#define Consts_SMsgDlgAbort 65322 -#define Consts_SMsgDlgRetry 65323 -#define Consts_SMsgDlgIgnore 65324 -#define Consts_SMsgDlgAll 65325 -#define Consts_SMsgDlgNoToAll 65326 -#define Consts_SMsgDlgYesToAll 65327 -#define Consts_SOKButton 65328 -#define Consts_SCancelButton 65329 -#define Consts_SYesButton 65330 -#define Consts_SNoButton 65331 -#define Consts_SHelpButton 65332 -#define Consts_SCloseButton 65333 -#define Consts_SIgnoreButton 65334 -#define Consts_SRetryButton 65335 -#define Consts_SAbortButton 65336 -#define Consts_SAllButton 65337 -#define Consts_SCannotDragForm 65338 -#define Consts_SVMetafiles 65339 -#define Consts_SVEnhMetafiles 65340 -#define Consts_SVIcons 65341 -#define Consts_SVBitmaps 65342 -#define Consts_SMaskErr 65343 -#define Consts_SMDIChildNotVisible 65344 -#define Consts_SVisibleChanged 65345 -#define Consts_SCannotShowModal 65346 -#define Consts_SScrollBarRange 65347 -#define Consts_SPropertyOutOfRange 65348 -#define Consts_SMenuIndexError 65349 -#define Consts_SMenuReinserted 65350 -#define Consts_SMenuNotFound 65351 -#define Consts_SNoTimers 65352 -#define Consts_SNotPrinting 65353 -#define Consts_SPrinting 65354 -#define Consts_SInvalidPrinter 65355 -#define Consts_SDeviceOnPort 65356 -#define Consts_SGroupIndexTooLow 65357 -#define Consts_SNoMDIForm 65358 -#define Consts_SControlParentSetToSelf 65359 -#define Consts_SChangeIconSize 65360 -#define Consts_SUnknownExtension 65361 -#define Consts_SUnknownClipboardFormat 65362 -#define Consts_SOutOfResources 65363 -#define Consts_SNoCanvasHandle 65364 -#define Consts_SInvalidImageSize 65365 -#define Consts_SInvalidImageList 65366 -#define Consts_SReplaceImage 65367 -#define Consts_SImageIndexError 65368 -#define Consts_SImageReadFail 65369 -#define Consts_SImageWriteFail 65370 -#define Consts_SWindowDCError 65371 -#define Consts_SWindowClass 65372 -#define Consts_SCannotFocus 65373 -#define Consts_SParentRequired 65374 -#define Consts_SParentGivenNotAParent 65375 -#define RTLConsts_SUnknownGroup 65376 -#define RTLConsts_SUnknownProperty 65377 -#define RTLConsts_SWriteError 65378 -#define RTLConsts_SThreadCreateError 65379 -#define RTLConsts_SThreadError 65380 -#define HelpIntfs_hNoTableOfContents 65381 -#define HelpIntfs_hNothingFound 65382 -#define HelpIntfs_hNoContext 65383 -#define HelpIntfs_hNoContextFound 65384 -#define HelpIntfs_hNoTopics 65385 -#define Consts_SInvalidBitmap 65386 -#define Consts_SInvalidIcon 65387 -#define Consts_SInvalidMetafile 65388 -#define Consts_SInvalidPixelFormat 65389 -#define Consts_SInvalidImage 65390 -#define Consts_SScanLine 65391 -#define RTLConsts_SInvalidPropertyType 65392 -#define RTLConsts_SInvalidPropertyValue 65393 -#define RTLConsts_SInvalidRegType 65394 -#define RTLConsts_SListCapacityError 65395 -#define RTLConsts_SListCountError 65396 -#define RTLConsts_SListIndexError 65397 -#define RTLConsts_SMemoryStreamError 65398 -#define RTLConsts_SPropertyException 65399 -#define RTLConsts_SReadError 65400 -#define RTLConsts_SReadOnlyProperty 65401 -#define RTLConsts_SRegCreateFailed 65402 -#define RTLConsts_SRegGetDataFailed 65403 -#define RTLConsts_SRegSetDataFailed 65404 -#define RTLConsts_SResNotFound 65405 -#define RTLConsts_SSeekNotImplemented 65406 -#define RTLConsts_SSortedListError 65407 -#define RTLConsts_SCantWriteResourceStreamError 65408 -#define RTLConsts_SCheckSynchronizeError 65409 -#define RTLConsts_SClassNotFound 65410 -#define RTLConsts_SDuplicateClass 65411 -#define RTLConsts_SDuplicateItem 65412 -#define RTLConsts_SDuplicateName 65413 -#define RTLConsts_SDuplicateString 65414 -#define RTLConsts_SFCreateErrorEx 65415 -#define RTLConsts_SFOpenErrorEx 65416 -#define RTLConsts_SIniFileWriteError 65417 -#define RTLConsts_SInvalidFileName 65418 -#define RTLConsts_SInvalidImage 65419 -#define RTLConsts_SInvalidName 65420 -#define RTLConsts_SInvalidProperty 65421 -#define RTLConsts_SInvalidPropertyElement 65422 -#define RTLConsts_SInvalidPropertyPath 65423 -#define SysConst_SShortDayNameTue 65424 -#define SysConst_SShortDayNameWed 65425 -#define SysConst_SShortDayNameThu 65426 -#define SysConst_SShortDayNameFri 65427 -#define SysConst_SShortDayNameSat 65428 -#define SysConst_SLongDayNameSun 65429 -#define SysConst_SLongDayNameMon 65430 -#define SysConst_SLongDayNameTue 65431 -#define SysConst_SLongDayNameWed 65432 -#define SysConst_SLongDayNameThu 65433 -#define SysConst_SLongDayNameFri 65434 -#define SysConst_SLongDayNameSat 65435 -#define SysConst_SCannotCreateDir 65436 -#define RTLConsts_SAncestorNotFound 65437 -#define RTLConsts_SAssignError 65438 -#define RTLConsts_SBitsIndexError 65439 -#define SysConst_SShortMonthNameNov 65440 -#define SysConst_SShortMonthNameDec 65441 -#define SysConst_SLongMonthNameJan 65442 -#define SysConst_SLongMonthNameFeb 65443 -#define SysConst_SLongMonthNameMar 65444 -#define SysConst_SLongMonthNameApr 65445 -#define SysConst_SLongMonthNameMay 65446 -#define SysConst_SLongMonthNameJun 65447 -#define SysConst_SLongMonthNameJul 65448 -#define SysConst_SLongMonthNameAug 65449 -#define SysConst_SLongMonthNameSep 65450 -#define SysConst_SLongMonthNameOct 65451 -#define SysConst_SLongMonthNameNov 65452 -#define SysConst_SLongMonthNameDec 65453 -#define SysConst_SShortDayNameSun 65454 -#define SysConst_SShortDayNameMon 65455 -#define SysConst_SAssertError 65456 -#define SysConst_SAbstractError 65457 -#define SysConst_SModuleAccessViolation 65458 -#define SysConst_SOSError 65459 -#define SysConst_SUnkOSError 65460 -#define SysConst_SNL 65461 -#define SysConst_SShortMonthNameJan 65462 -#define SysConst_SShortMonthNameFeb 65463 -#define SysConst_SShortMonthNameMar 65464 -#define SysConst_SShortMonthNameApr 65465 -#define SysConst_SShortMonthNameMay 65466 -#define SysConst_SShortMonthNameJun 65467 -#define SysConst_SShortMonthNameJul 65468 -#define SysConst_SShortMonthNameAug 65469 -#define SysConst_SShortMonthNameSep 65470 -#define SysConst_SShortMonthNameOct 65471 -#define SysConst_SInvalidVarOpWithHResultWithPrefix 65472 -#define SysConst_SVarTypeOutOfRangeWithPrefix 65473 -#define SysConst_SVarTypeAlreadyUsedWithPrefix 65474 -#define SysConst_SVarTypeNotUsableWithPrefix 65475 -#define SysConst_SVarTypeTooManyCustom 65476 -#define SysConst_SVarTypeCouldNotConvert 65477 -#define SysConst_SVarTypeConvertOverflow 65478 -#define SysConst_SVarOverflow 65479 -#define SysConst_SVarInvalid 65480 -#define SysConst_SVarBadType 65481 -#define SysConst_SVarNotImplemented 65482 -#define SysConst_SVarUnexpected 65483 -#define SysConst_SExternalException 65484 -#define SysConst_SAssertionFailed 65485 -#define SysConst_SIntfCastError 65486 -#define SysConst_SSafecallException 65487 -#define SysConst_SOperationAborted 65488 -#define SysConst_SException 65489 -#define SysConst_SExceptTitle 65490 -#define SysConst_SInvalidFormat 65491 -#define SysConst_SArgumentMissing 65492 -#define SysConst_SDispatchError 65493 -#define SysConst_SReadAccess 65494 -#define SysConst_SWriteAccess 65495 -#define SysConst_SFormatTooLong 65496 -#define SysConst_SVarArrayCreate 65497 -#define SysConst_SVarArrayBounds 65498 -#define SysConst_SVarArrayLocked 65499 -#define SysConst_SVarArrayWithHResult 65500 -#define SysConst_SInvalidVarCast 65501 -#define SysConst_SInvalidVarOp 65502 -#define SysConst_SInvalidVarNullOp 65503 -#define SysConst_SDiskFull 65504 -#define SysConst_SInvalidInput 65505 -#define SysConst_SDivByZero 65506 -#define SysConst_SRangeError 65507 -#define SysConst_SIntOverflow 65508 -#define SysConst_SInvalidOp 65509 -#define SysConst_SZeroDivide 65510 -#define SysConst_SOverflow 65511 -#define SysConst_SUnderflow 65512 -#define SysConst_SInvalidPointer 65513 -#define SysConst_SInvalidCast 65514 -#define SysConst_SAccessViolationArg3 65515 -#define SysConst_SAccessViolationNoArg 65516 -#define SysConst_SStackOverflow 65517 -#define SysConst_SControlC 65518 -#define SysConst_SPrivilege 65519 -#define SysConst_SInvalidInteger 65520 -#define SysConst_SInvalidFloat 65521 -#define SysConst_SInvalidDate 65522 -#define SysConst_SInvalidTime 65523 -#define SysConst_SInvalidDateTime 65524 -#define SysConst_SInvalidTimeStamp 65525 -#define SysConst_SInvalidGUID 65526 -#define SysConst_STimeEncodeError 65527 -#define SysConst_SDateEncodeError 65528 -#define SysConst_SOutOfMemory 65529 -#define SysConst_SInOutError 65530 -#define SysConst_SFileNotFound 65531 -#define SysConst_SInvalidFilename 65532 -#define SysConst_STooManyOpenFiles 65533 -#define SysConst_SAccessDenied 65534 -#define SysConst_SEndOfFile 65535 -STRINGTABLE -BEGIN - cxGridStrs_scxGridCustomizationFormColumnsPageCaption, "Columns" - cxGridStrs_scxGridGroupByBoxCaption, "Drag a column header here to group by that column" - cxGridStrs_scxGridFilterCustomizeButtonCaption, "Customize..." - cxGridStrs_scxGridColumnsQuickCustomizationHint, "Click here to select visible columns" - cxPCConsts_scxPCNoBaseImages, "BaseImages is not assigned" - cxPCConsts_scxPCNoRegisteredStyles, "There are no styles registered" - cxPCConsts_scxPCPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d" - cxPCConsts_scxPCPainterClassError, "PCPainterClass is nil" - cxPCConsts_scxPCTabCountEqualsZero, "Tabs.Count = 0" - cxPCConsts_scxPCTabIndexError, "Tab's index (%d) out of bounds" - cxPCConsts_scxPCTabVisibleIndexOutsOfBounds, "TabVisibleIndex (%d) must be between 0 and %d" - cxPCConsts_scxPCVisibleTabListEmpty, "There are no visible tabs" - cxPCConsts_scxPCAllowRotateError, "%s style does not support rotation of tabs" - cxGridStrs_scxGridDeletingConfirmationCaption, "Confirm" - cxGridStrs_scxGridDeletingFocusedConfirmationText, "Delete record?" - cxGridStrs_scxGridDeletingSelectedConfirmationText, "Delete all selected records?" - cxGridStrs_scxGridNoDataInfoText, "" - cxGridStrs_scxGridNewItemRowInfoText, "Click here to add a new row" - cxGridStrs_scxGridFilterIsEmpty, "" - cxGridStrs_scxGridCustomizationFormCaption, "Customization" - MidConst_SErrorLoadingMidas, "Error loading MIDAS.DLL" - MidConst_SCannotCreateDataSet, "No fields defined. Cannot create dataset" - MidConst_SNoConnectToBroker, "Connection not allowed to TConnectionBroker" - MidConst_SNoParentConnection, "ParentConnection is not assigned" - MidConst_SInvalidOptParamType, "Value cannot be stored in an optional parameter" - MidConst_SConstraintFailed, "Record or field constraint failed." - MidConst_SField, "Field" - MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\"" - MidConst_SFieldConstFail, "Preparation of field constraint failed with error \"%s\"" - MidConst_SDefExprFail, "Preparation of default expression failed with error \"%s\"" - MidConst_SNoEditsAllowed, "Modifications are not allowed" - MidConst_SNoDeletesAllowed, "Deletes are not allowed" - MidConst_SNoInsertsAllowed, "Inserts are not allowed" - MidConst_SConnectionMissing, "Requires Connection before opening" - MidConst_SNoCircularConnection, "Circular reference to Connection not allowed" - cxPCConsts_scxPCImageListIndexError, "Index (%d) must be between 0 and %d" - cxFilterControlStrs_cxSFilterDialogRows, "Show rows where:" - cxFilterControlStrs_cxSFilterControlDialogCaption, "Filter builder" - cxFilterControlStrs_cxSFilterControlDialogNewFile, "untitled.flt" - cxFilterControlStrs_cxSFilterControlDialogOpenDialogCaption, "Open an existing filter" - cxFilterControlStrs_cxSFilterControlDialogSaveDialogCaption, "Save the active filter to file" - cxFilterControlStrs_cxSFilterControlDialogActionSaveCaption, "&Save As..." - cxFilterControlStrs_cxSFilterControlDialogActionOpenCaption, "&Open..." - cxFilterControlStrs_cxSFilterControlDialogActionApplyCaption, "&Apply" - cxFilterControlStrs_cxSFilterControlDialogActionOkCaption, "OK" - cxFilterControlStrs_cxSFilterControlDialogActionCancelCaption, "Cancel" - cxFilterControlStrs_cxSFilterControlDialogFileExt, "flt" - cxFilterControlStrs_cxSFilterControlDialogFileFilter, "Filters (*.flt)|*.flt" - MidConst_SNoDataProvider, "Missing data provider or data packet" - MidConst_SInvalidDataPacket, "Invalid data packet" - MidConst_SRefreshError, "Must apply updates before refreshing data" - MidConst_SNoCircularReference, "Circular provider references not allowed" - cxFilterControlStrs_cxSFilterAddCondition, "Add &Condition" - cxFilterControlStrs_cxSFilterAddGroup, "Add &Group" - cxFilterControlStrs_cxSFilterRemoveRow, "&Remove Row" - cxFilterControlStrs_cxSFilterClearAll, "Clear &All" - cxFilterControlStrs_cxSFilterFooterAddCondition, "press the button to add a new condition" - cxFilterControlStrs_cxSFilterGroupCaption, "applies to the following conditions" - cxFilterControlStrs_cxSFilterRootGroupCaption, "" - cxFilterControlStrs_cxSFilterControlNullString, "" - cxFilterControlStrs_cxSFilterErrorBuilding, "Can't build filter from source" - cxFilterControlStrs_cxSFilterDialogCaption, "Custom Filter" - cxFilterControlStrs_cxSFilterDialogInvalidValue, "Invalid value" - cxFilterControlStrs_cxSFilterDialogUse, "Use" - cxFilterControlStrs_cxSFilterDialogSingleCharacter, "to represent any single character" - cxFilterControlStrs_cxSFilterDialogCharactersSeries, "to represent any series of characters" - cxFilterControlStrs_cxSFilterDialogOperationAnd, "AND" - cxFilterControlStrs_cxSFilterDialogOperationOr, "OR" - cxEditConsts_scxRegExprHexNumberExpected0, "Hexadecimal number expected" - cxEditConsts_scxRegExprHexNumberExpected, "Hexadecimal number expected but '%s' found" - cxEditConsts_scxRegExprMissing, "Missing '%s'" - cxEditConsts_scxRegExprUnnecessary, "Unnecessary '%s'" - cxEditConsts_scxRegExprIncorrectSpace, "The space character is not allowed after '\\'" - cxEditConsts_scxRegExprNotCompiled, "Regular expression is not compiled" - cxEditConsts_scxRegExprIncorrectParameterQuantifier, "Incorrect parameter quantifier" - cxEditConsts_scxRegExprCantUseParameterQuantifier, "The parameter quantifier cannot be applied here" - cxEditConsts_scxMaskEditRegExprError, "Regular expression errors:" - cxEditConsts_scxMaskEditInvalidEditValue, "The edit value is invalid" - cxEditConsts_cxSSpinEditInvalidNumericValue, "Invalid numeric value" - cxFilterControlStrs_cxSFilterBoolOperatorAnd, "AND" - cxFilterControlStrs_cxSFilterBoolOperatorOr, "OR" - cxFilterControlStrs_cxSFilterBoolOperatorNotAnd, "NOT AND" - cxFilterControlStrs_cxSFilterBoolOperatorNotOr, "NOT OR" - cxFilterControlStrs_cxSFilterRootButtonCaption, "Filter" - cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor" - cxEditConsts_scxSEditRepositoryTimeItem, "TimeEdit|Represents an editor displaying time values" - cxEditConsts_scxRegExprLine, "Line" - cxEditConsts_scxRegExprChar, "Char" - cxEditConsts_scxRegExprNotAssignedSourceStream, "The source stream is not assigned" - cxEditConsts_scxRegExprEmptySourceStream, "The source stream is empty" - cxEditConsts_scxRegExprCantUsePlusQuantifier, "The '+' quantifier cannot be applied here" - cxEditConsts_scxRegExprCantUseStarQuantifier, "The '*' quantifier cannot be applied here" - cxEditConsts_scxRegExprCantCreateEmptyAlt, "The alternative should not be empty" - cxEditConsts_scxRegExprCantCreateEmptyBlock, "The block should not be empty" - cxEditConsts_scxRegExprIllegalSymbol, "Illegal '%s'" - cxEditConsts_scxRegExprIllegalQuantifier, "Illegal quantifier '%s'" - cxEditConsts_scxRegExprIllegalIntegerValue, "Illegal integer value" - cxEditConsts_scxRegExprTooBigReferenceNumber, "Too big reference number" - cxEditConsts_scxRegExprCantCreateEmptyEnum, "Can't create empty enumeration" - cxEditConsts_scxRegExprSubrangeOrder, "The starting character of the subrange must be less than the finishing one" - cxEditConsts_scxSEditRepositoryBlobItem, "BlobEdit|Represents the BLOB editor" - cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons" - cxEditConsts_scxSEditRepositoryCalcItem, "CalcEdit|Represents an edit control with a dropdown calculator window" - cxEditConsts_scxSEditRepositoryCheckBoxItem, "CheckBox|Represents a check box control that allows selecting an option" - cxEditConsts_scxSEditRepositoryComboBoxItem, "ComboBox|Represents the combo box editor" - cxEditConsts_scxSEditRepositoryCurrencyItem, "CurrencyEdit|Represents an editor enabling editing currency data" - cxEditConsts_scxSEditRepositoryDateItem, "DateEdit|Represents an edit control with a dropdown calendar" - cxEditConsts_scxSEditRepositoryHyperLinkItem, "HyperLink|Represents a text editor with hyperlink functionality" - cxEditConsts_scxSEditRepositoryImageComboBoxItem, "ImageComboBox|Represents an editor displaying the list of images and text strings within the dropdown window" - cxEditConsts_scxSEditRepositoryImageItem, "Image|Represents an image editor" - cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control." - cxEditConsts_scxSEditRepositoryMemoItem, "Memo|Represents an edit control that allows editing memo data" - cxEditConsts_scxSEditRepositoryMRUItem, "MRUEdit|Represents a text editor displaying the list of most recently used items (MRU) within a dropdown window" - cxEditConsts_scxSEditRepositoryPopupItem, "PopupEdit|Represents an edit control with a dropdown list" - cxEditConsts_scxSEditRepositorySpinItem, "SpinEdit|Represents a spin editor" - cxEditConsts_scxSEditRepositoryRadioGroupItem, "RadioGroup|Represents a group of radio buttons" - cxEditConsts_scxSHyperLinkPrefix, "http://" - cxEditConsts_cxNavigatorHint_First, "First record" - cxEditConsts_cxNavigatorHint_Prior, "Prior record" - cxEditConsts_cxNavigatorHint_PriorPage, "Prior page" - cxEditConsts_cxNavigatorHint_Next, "Next record" - cxEditConsts_cxNavigatorHint_NextPage, "Next page" - cxEditConsts_cxNavigatorHint_Last, "Last record" - cxEditConsts_cxNavigatorHint_Insert, "Insert record" - cxEditConsts_cxNavigatorHint_Delete, "Delete record" - cxEditConsts_cxNavigatorHint_Edit, "Edit record" - cxEditConsts_cxNavigatorHint_Post, "Post edit" - cxEditConsts_cxNavigatorHint_Cancel, "Cancel edit" - cxEditConsts_cxNavigatorHint_Refresh, "Refresh data" - cxEditConsts_cxNavigatorHint_SaveBookmark, "Save Bookmark" - cxEditConsts_cxNavigatorHint_GotoBookmark, "Goto Bookmark" - cxEditConsts_cxNavigatorHint_Filter, "Filter data" - cxEditConsts_cxSDateTuesday, "Tuesday" - cxEditConsts_cxSDateWednesday, "Wednesday" - cxEditConsts_cxSDateThursday, "Thursday" - cxEditConsts_cxSDateFriday, "Friday" - cxEditConsts_cxSDateSaturday, "Saturday" - cxEditConsts_cxSDateFirst, "first" - cxEditConsts_cxSDateSecond, "second" - cxEditConsts_cxSDateThird, "third" - cxEditConsts_cxSDateFourth, "fourth" - cxEditConsts_cxSDateFifth, "fifth" - cxEditConsts_cxSDateSixth, "sixth" - cxEditConsts_cxSDateSeventh, "seventh" - cxEditConsts_cxSDateBOM, "bom" - cxEditConsts_cxSDateEOM, "eom" - cxEditConsts_cxSDateNow, "now" - cxEditConsts_scxSCalcError, "Error" - cxEditConsts_cxSMenuItemCaptionCut, "Cu&t" - cxEditConsts_cxSMenuItemCaptionCopy, "&Copy" - cxEditConsts_cxSMenuItemCaptionPaste, "&Paste" - cxEditConsts_cxSMenuItemCaptionDelete, "&Delete" - cxEditConsts_cxSMenuItemCaptionLoad, "&Load..." - cxEditConsts_cxSMenuItemCaptionSave, "Save &As..." - cxEditConsts_cxSDatePopupClear, "Clear" - cxEditConsts_cxSDatePopupNow, "Now" - cxEditConsts_cxSDatePopupOK, "OK" - cxEditConsts_cxSDatePopupToday, "Today" - cxEditConsts_cxSDateError, "Invalid Date" - cxEditConsts_cxSDateToday, "today" - cxEditConsts_cxSDateYesterday, "yesterday" - cxEditConsts_cxSDateTomorrow, "tomorrow" - cxEditConsts_cxSDateSunday, "Sunday" - cxEditConsts_cxSDateMonday, "Monday" - cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value" - cxEditConsts_cxSEditPopupCircularReferencingError, "Circular referencing is not allowed" - cxEditConsts_cxSEditTimeConvertError, "Could not convert to time" - cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes" - cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds" - cxEditConsts_cxSEditCheckBoxChecked, "True" - cxEditConsts_cxSEditCheckBoxGrayed, "" - cxEditConsts_cxSEditCheckBoxUnchecked, "False" - cxEditConsts_cxSRadioGroupDefaultCaption, "" - cxEditConsts_cxSBlobButtonOK, "&OK" - cxEditConsts_cxSBlobButtonCancel, "&Cancel" - cxEditConsts_cxSBlobButtonClose, "&Close" - cxEditConsts_cxSBlobMemo, "(MEMO)" - cxEditConsts_cxSBlobMemoEmpty, "(memo)" - cxEditConsts_cxSBlobPicture, "(PICTURE)" - cxEditConsts_cxSBlobPictureEmpty, "(picture)" - cxFilterConsts_cxSFilterNotCaption, "not" - cxFilterConsts_cxSFilterBlankCaption, "blank" - cxFilterConsts_cxSFilterOperatorIsNull, "is blank" - cxFilterConsts_cxSFilterOperatorIsNotNull, "is not blank" - cxFilterConsts_cxSFilterOperatorBeginsWith, "begins with" - cxFilterConsts_cxSFilterOperatorDoesNotBeginWith, "does not begin with" - cxFilterConsts_cxSFilterOperatorEndsWith, "ends with" - cxFilterConsts_cxSFilterOperatorDoesNotEndWith, "does not end with" - cxFilterConsts_cxSFilterOperatorContains, "contains" - cxFilterConsts_cxSFilterOperatorDoesNotContain, "does not contain" - cxFilterConsts_cxSFilterBoxAllCaption, "(All)" - cxFilterConsts_cxSFilterBoxCustomCaption, "(Custom...)" - cxFilterConsts_cxSFilterBoxBlanksCaption, "(Blanks)" - cxFilterConsts_cxSFilterBoxNonBlanksCaption, "(NonBlanks)" - cxEditConsts_cxSEditDateConvertError, "Could not convert to date" - cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable" - cxFilterConsts_cxSFilterOperatorLastMonth, "is last month" - cxFilterConsts_cxSFilterOperatorLastYear, "is last year" - cxFilterConsts_cxSFilterOperatorPast, "is past" - cxFilterConsts_cxSFilterOperatorThisWeek, "is this week" - cxFilterConsts_cxSFilterOperatorThisMonth, "is this month" - cxFilterConsts_cxSFilterOperatorThisYear, "is this year" - cxFilterConsts_cxSFilterOperatorNext7Days, "is next 7 days" - cxFilterConsts_cxSFilterOperatorNextWeek, "is next week" - cxFilterConsts_cxSFilterOperatorNext14Days, "is next 14 days" - cxFilterConsts_cxSFilterOperatorNextTwoWeeks, "is next two weeks" - cxFilterConsts_cxSFilterOperatorNext30Days, "is next 30 days" - cxFilterConsts_cxSFilterOperatorNextMonth, "is next month" - cxFilterConsts_cxSFilterOperatorNextYear, "is next year" - cxFilterConsts_cxSFilterOperatorFuture, "is future" - cxFilterConsts_cxSFilterAndCaption, "and" - cxFilterConsts_cxSFilterOrCaption, "or" - cxFilterConsts_cxSFilterOperatorGreater, "is greater than" - cxFilterConsts_cxSFilterOperatorGreaterEqual, "is greater than or equal to" - cxFilterConsts_cxSFilterOperatorLike, "like" - cxFilterConsts_cxSFilterOperatorNotLike, "not like" - cxFilterConsts_cxSFilterOperatorBetween, "between" - cxFilterConsts_cxSFilterOperatorNotBetween, "not between" - cxFilterConsts_cxSFilterOperatorInList, "in" - cxFilterConsts_cxSFilterOperatorNotInList, "not in" - cxFilterConsts_cxSFilterOperatorYesterday, "is yesterday" - cxFilterConsts_cxSFilterOperatorToday, "is today" - cxFilterConsts_cxSFilterOperatorTomorrow, "is tomorrow" - cxFilterConsts_cxSFilterOperatorLast7Days, "is last 7 days" - cxFilterConsts_cxSFilterOperatorLastWeek, "is last week" - cxFilterConsts_cxSFilterOperatorLast14Days, "is last 14 days" - cxFilterConsts_cxSFilterOperatorLastTwoWeeks, "is last two weeks" - cxFilterConsts_cxSFilterOperatorLast30Days, "is last 30 days" - pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed." - pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid." - pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again." - pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." - cxDataConsts_cxSDataReadError, "Stream read error" - cxDataConsts_cxSDataWriteError, "Stream write error" - cxDataConsts_cxSDataItemExistError, "Item already exists" - cxDataConsts_cxSDataRecordIndexError, "RecordIndex out of range" - cxDataConsts_cxSDataItemIndexError, "ItemIndex out of range" - cxDataConsts_cxSDataProviderModeError, "This operation is not supported in provider mode" - cxDataConsts_cxSDataInvalidStreamFormat, "Invalid stream format" - cxDataConsts_cxSDataRowIndexError, "RowIndex out of range" - cxFilterConsts_cxSFilterOperatorEqual, "equals" - cxFilterConsts_cxSFilterOperatorNotEqual, "does not equal" - cxFilterConsts_cxSFilterOperatorLess, "is less than" - cxFilterConsts_cxSFilterOperatorLessEqual, "is less than or equal to" - pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)" - pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" - pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts." - pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " - pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." - pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again." - pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" - pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length." - pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." - pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." - pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." - pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." - pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." - pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." - pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data." - pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap." - IBSQLMonitor_StrStartTransaction, ": [Start transaction]" - IBSQLMonitor_StrApplication, "[Application: " - ADOConst_SMissingConnection, "Missing Connection or ConnectionString" - ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables" - ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls" - ADOConst_SMissingCommandText, "Missing %s property" - ADOConst_SNoResultSet, "CommandText does not return a result set" - ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed" - ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors" - ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s" - ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions" - ADOConst_SCantRequery, "Cannot perform a requery after connection has changed" - ADOConst_SNoFilterOptions, "FilterOptions are not supported" - ADOConst_SRecordsetNotOpen, "Recordset is not open" - ADOConst_sNameAttr, "Name" - ADOConst_sValueAttr, "Value" - IBSQLMonitor_StrError, "[Error] " - IBSQLMonitor_StrAttach, ": [Attach]" - IBSQLMonitor_StrDetach, ": [Detach]" - IBSQLMonitor_StrQuery, ": [Query]" - IBSQLMonitor_StrStart, ": [Start]" - IBSQLMonitor_StrExecute, ": [Execute] " - IBSQLMonitor_StrNULL, "" - IBSQLMonitor_StrBLOB, "" - IBSQLMonitor_StrFetch, ": [Fetch] " - IBSQLMonitor_StrPrepare, ": [Prepare] " - IBSQLMonitor_StrPlan, " Plan: " - IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large" - IBSQLMonitor_StrCommitHardComm, ": [Commit (Hard commit)]" - IBSQLMonitor_StrCommitRetaining, ": [Commit retaining (Soft commit)]" - IBSQLMonitor_StrRollback, ": [Rollback]" - IBSQLMonitor_StrRollbackRetainin, ": [Rollback retaining (Soft rollback)]" - IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value" - IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown" - IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown" - IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan" - IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data" - IBXConst_SEventAlreadyRegistered, "Events already registered" - IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d" - IBXConst_SNoTimers, "Not enough timers available" - IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality" - IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file." - IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality" - IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality" - IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality" - IBSQLMonitor_StrConnect, ": [Connect]" - IBSQLMonitor_StrDisconnect, ": [Disconnect]" - IBSQLMonitor_StrMisc, "[Misc] " - IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present" - IBXConst_SCantPrintValue, "Cannot print value" - IBXConst_SEOFReached, "SEOFReached" - IBXConst_SEOFInComment, "EOF in comment detected" - IBXConst_SEOFInString, "EOF in string detected" - IBXConst_SParamNameExpected, "Parameter name expected" - IBXConst_SSuccess, "Successful execution" - IBXConst_SDelphiException, "DelphiException %s" - IBXConst_SNoOptionsSet, "No Install Options selected" - IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set" - IBXConst_SNosourceDirectory, "SourceDirectory is not set" - IBXConst_SNoUninstallFile, "Uninstall File Name is not set" - IBXConst_SOptionNeedsClient, "%s component requires Client to function properly" - IBXConst_SOptionNeedsServer, "%s component requires Server to function properly" - IBXConst_SInvalidOption, "Invalid option specified" - IBXConst_SInvalidOnErrorResult, "Unexpected onError return value" - IBXConst_SInvalidEvent, "Invalid Event" - IBXConst_SMaximumEvents, "Exceded Maximum Event limits" - IBXConst_SNoEventsRegistered, "No Events Registered" - IBXConst_SInvalidQueueing, "Invalid Queueing" - IBXConst_SInvalidRegistration, "Invalid Registration" - IBXConst_SInvalidBatchMove, "Invalid Batch Move" - IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid" - IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported" - IBXConst_SSPBConstantUnknown, "SPB Constant Unknown" - IBXConst_SServiceActive, "Cannot perform operation -- service is not attached" - IBXConst_SServiceInActive, "Cannot perform operation -- service is attached" - IBXConst_SServerNameMissing, "Server Name Missing" - IBXConst_SQueryParamsError, "Query Parameters missing or incorrect" - IBXConst_SStartParamsError, "start Parameters missing or incorrect" - IBXConst_SOutputParsingError, "Unexpected Output buffer value" - IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params" - IBXConst_SEmptySQLStatement, "Empty SQL Statement" - IBXConst_SIsASelectStatement, "use Open for a Select Statement" - IBXConst_SRequiredParamNotSet, "Required Param value not set" - IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned" - IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures" - IBXConst_SUpdateFailed, "Update Failed" - IBXConst_SNotCachedUpdates, "CachedUpdates not enabled" - IBXConst_SNotLiveRequest, "Request is not live - cannot modify" - IBXConst_SNoProvider, "No Provider" - IBXConst_SNoRecordsAffected, "No Records Affected" - IBXConst_SNoTableName, "No Table Name assigned" - IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically" - IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index" - IBXConst_STableNameMismatch, "Table Name Mismatch" - IBXConst_SIndexFieldMissing, "Index Field Missing" - IBXConst_SInvalidCancellation, "Cannot Cancel events while processing" - IBXConst_SCannotPost, "Cannot post. (No update/insert query)" - IBXConst_SCannotUpdate, "Cannot update. (No update query)" - IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)" - IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)" - IBXConst_SBufferNotSet, "Buffer not set" - IBXConst_SCircularReference, "Circular references not permitted" - IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s" - IBXConst_SUserAbort, "User abort" - IBXConst_SDataSetUniDirectional, "Data set is uni-directional" - IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)" - IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])" - IBXConst_SColumnListsDontMatch, "Column lists do not match" - IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)" - IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction" - IBXConst_SFieldUnsupportedType, "Unsupported Field Type" - IBXConst_SCircularDataLink, "Circular DataLink Reference" - IBXConst_SDatasetOpen, "Dataset open" - IBXConst_SDatasetClosed, "Dataset closed" - IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)" - IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)" - IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)" - IBXConst_SInvalidDataConversion, "Invalid data conversion" - IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)" - IBXConst_SBlobCannotBeRead, "Blob stream cannot be read" - IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written" - IBXConst_SEmptyQuery, "Empty query" - IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery" - IBXConst_SNoFieldAccess, "No access to field \"%s\"" - IBXConst_SFieldReadOnly, "Field \"%s\" is read-only" - IBXConst_SFieldNotFound, "Field \"%s\" not found" - IBXConst_SNotEditing, "Not in edit mode" - IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)" - IBXConst_SDatabaseNameMissing, "Database name is missing" - IBXConst_SNotInTransaction, "Transaction is not active" - IBXConst_SInTransaction, "Transaction is active" - IBXConst_STimeoutNegative, "Timeout values cannot be negative" - IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component" - IBXConst_SUpdateWrongDB, "Updating wrong database" - IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set" - IBXConst_SDatabaseNotAssigned, "Database not assigned" - IBXConst_STransactionNotAssigned, "Transaction not assigned" - IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range" - IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)" - IBXConst_SEOF, "End of file" - IBXConst_SBOF, "Beginning of file" - IBXConst_SInvalidStatementHandle, "Invalid statement handle" - IBXConst_SSQLOpen, "IBSQL Open" - IBXConst_SSQLClosed, "IBSQL Closed" - IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality" - IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality" - IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality" - IBXConst_SNotSupported, "Unsupported feature" - IBXConst_SNotPermitted, "Not permitted" - IBXConst_SFileAccessError, "Temporary file access error" - IBXConst_SConnectionTimeout, "Database connection timed out" - IBXConst_SCannotSetDatabase, "Cannot set database" - IBXConst_SCannotSetTransaction, "Cannot set transaction" - IBXConst_SOperationCancelled, "Operation cancelled at user's request" - IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported" - IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown" - IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported" - IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown" - IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open" - IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open" - uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s" - uDARes_err_InvalidDriverReference, "The driver in %s could not be loaded" - uDARes_err_CannotFindStatement, "Cannot find statement %s for connection %s" - uDARes_err_CannotFindDefaultItem, "Cannot find default %s" - uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled" - uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection" - uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly" - uDARes_err_HETConnectionNotSupportedInV3, "HET Connections are not supported by te legacy v3 DARemoteService" - uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager" - uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned" - uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned" - uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\"" - uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem." - uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server." - uDARes_err_DatasetNotAccessible, "Access to dataset %s has not been permitted." - IBXConst_SUnknownError, "Unknown error" - JvResources_RsHotLight, "Hot Light" - JvResources_RsMenuBar, "Menu Bar" - JvResources_RsMenuHighlight, "Menu Highlight" - uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time." - uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable" - uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered" - uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed" - uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned" - uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported" - uDARes_err_InvalidDataset, "Invalid or NIL dataset" - uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s" - uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded" - uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver" - uDARes_err_UnknownDriver, "Unknown driver %s" - uDARes_err_FieldIsNotBound, "Field is not bound" - uDARes_err_CannotFindField, "Cannot find field %s" - JvResources_RsClInactiveBorder, "Inactive window border" - JvResources_RsClAppWorkSpace, "Application workspace" - JvResources_RsClHighlight, "Selection background" - JvResources_RsClHighlightText, "Selection text" - JvResources_RsClBtnFace, "Button face" - JvResources_RsClBtnShadow, "Button shadow" - JvResources_RsClGrayText, "Dimmed text" - JvResources_RsClBtnText, "Button text" - JvResources_RsClInactiveCaptionText, "Inactive window title bar text" - JvResources_RsClBtnHighlight, "Button highlight" - JvResources_RsCl3DDkShadow, "Dark shadow 3D elements" - JvResources_RsCl3DLight, "Highlight 3D elements" - JvResources_RsClInfoText, "Tooltip text" - JvResources_RsClInfoBk, "Tooltip background" - JvResources_RsGradientActiveCaption, "Gradient Active Caption" - JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption" - JvResources_RsClLightYellow, "Light Yellow" - JvResources_RsClLightGreen, "Light Green" - JvResources_RsClLightTurquoise, "Light Turquoise" - JvResources_RsClPaleBlue, "Pale Blue" - JvResources_RsClLavender, "Lavender" - JvResources_RsClScrollBar, "Scrollbar" - JvResources_RsClBackground, "Desktop background" - JvResources_RsClActiveCaption, "Active window title bar" - JvResources_RsClInactiveCaption, "Inactive window title bar" - JvResources_RsClMenu, "Menu background" - JvResources_RsClWindow, "Window background" - JvResources_RsClWindowFrame, "Window frame" - JvResources_RsClMenuText, "Menu text" - JvResources_RsClWindowText, "Window text" - JvResources_RsClCaptionText, "Active window title bar text" - JvResources_RsClActiveBorder, "Active window border" - JvResources_RsClDarkYellow, "Dark Yellow" - JvResources_RsClBlueGray, "Blue Gray" - JvResources_RsClGray50, "Gray 50%" - JvResources_RsClLightOrange, "Light Orange" - JvResources_RsClSeaGreen, "Sea Green" - JvResources_RsClLightBlue, "Light Blue" - JvResources_RsClViolet, "Violet" - JvResources_RsClGray40, "Gray 40%" - JvResources_RsClPink, "Pink" - JvResources_RsClGold, "Gold" - JvResources_RsClBrightGreen, "Bright Green" - JvResources_RsClTurquoise, "Turquoise" - JvResources_RsClPlum, "Plum" - JvResources_RsClGray25, "Gray 25%" - JvResources_RsClRose, "Rose" - JvResources_RsClTan, "Tan" - JvResources_RsClFuchsia, "Fuchsia" - JvResources_RsClAqua, "Aqua" - JvResources_RsClWhite, "White" - JvResources_RsClMoneyGreen, "Money green" - JvResources_RsClSkyBlue, "Sky blue" - JvResources_RsClCream, "Cream" - JvResources_RsClMedGray, "Medium gray" - JvResources_RsClBrown, "Brown" - JvResources_RsClOliveGreen, "Olive Green" - JvResources_RsClDarkGreen, "Dark Green" - JvResources_RsClDarkTeal, "Dark Teal" - JvResources_RsClDarkBlue, "Dark Blue" - JvResources_RsClIndigo, "Indigo" - JvResources_RsClGray80, "Gray 80%" - JvResources_RsClDarkRed, "Dark Red" - JvResources_RsClOrange, "Orange" - JvResources_RsEGIFVersion, "Unknown GIF version" - JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented" - JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented" - JvResources_RsClBlack, "Black" - JvResources_RsClMaroon, "Maroon" - JvResources_RsClGreen, "Green" - JvResources_RsClOlive, "Olive green" - JvResources_RsClNavy, "Navy blue" - JvResources_RsClPurple, "Purple" - JvResources_RsClTeal, "Teal" - JvResources_RsClGray, "Gray" - JvResources_RsClSilver, "Silver" - JvResources_RsClRed, "Red" - JvResources_RsClLime, "Lime" - JvResources_RsClYellow, "Yellow" - JvResources_RsClBlue, "Blue" - JvResources_RsEUnableToCreateKey, "Unable to create key '%s'" - JvResources_RsEEnumeratingRegistry, "Error enumerating registry" - JvResources_RsEInvalidType, "Invalid type" - JvResources_RsEUnknownBaseType, "Unknown base type for given set" - JvResources_RsEInvalidPath, "Invalid path" - JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path" - JvResources_RsECircularReferenceOfStorages, "Circular reference of storages" - JvResources_RsEShellNotCompatible, "Shell not compatible with BrowseForFolder" - JvResources_RsGIFImage, "CompuServe GIF Image" - JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image" - JvResources_RsENoGIFData, "No GIF Data to write" - JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x" - JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2" - JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9" - JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt" - JvResources_RsEGIFEncodeError, "GIF image encoding error" - JclResources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr7F, "2nd-level cache: 512 KBytes, 2-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr82, "2nd-level cache: 256 KBytes, 8-way associative, 32 byte line size" - JclResources_RsIntelCacheDescr83, "2nd-level cache: 512 KBytes, 8-way associative, 32 byte line size" - JclResources_RsIntelCacheDescr84, "2nd-level cache: 1 MBytes, 8-way associative, 32 byte line size" - JclResources_RsIntelCacheDescr85, "2nd-level cache: 2 MBytes, 8-way associative, 32 byte line size" - JclResources_RsIntelCacheDescr86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries" - JclResources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" - JclResources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" - JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching" - JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching" - JvResources_RsAniExtension, "ani" - JvResources_RsAniFilterName, "ANI Image" - JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties." - JclResources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" - JclResources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" - JclResources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" - JclResources_RsIntelCacheDescr5D, "Data TLB: 4 KByte and 4 MByte pages, 256 Entries" - JclResources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr67, "1st-level data cache: 16 KBytes, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative" - JclResources_RsIntelCacheDescr71, "Trace cache: 16 K-Ops, 8-way set associative" - JclResources_RsIntelCacheDescr72, "Trace cache: 32 K-Ops, 8-way set associative" - JclResources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size" - JclResources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - JclResources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - JclResources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - JclResources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - JclResources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - JclResources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr40, "No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rd-level cache" - JclResources_RsIntelCacheDescr41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" - JclResources_RsIntelCacheDescr50, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 64 Entries" - JclResources_RsIntelCacheDescr51, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 128 Entries" - JclResources_RsIntelCacheDescr52, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 256 Entries" - JclResources_RsIntelCacheDescr56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries" - JclResources_RsRTTIVarType, "Variant type: " - JclResources_RsDeclarationFormat, "// Declaration for '%s' not supported." - JclResources_RsIntelCacheDescr00, "Null descriptor" - JclResources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" - JclResources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" - JclResources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" - JclResources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" - JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries" - JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr0A, "1st level data cache: 8 KBytes, 2-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries" - JclResources_RsIntelCacheDescr0C, "1st level data cache: 16 KBytes, 4-way set associative, 32 byte line size" - JclResources_RsIntelCacheDescr22, "3rd level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector" - JclResources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - JclResources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - JclResources_RsRTTIMinValue, "Min value: " - JclResources_RsRTTIMaxValue, "Max value: " - JclResources_RsRTTINameList, "Names: " - JclResources_RsRTTIClassName, "Class name: " - JclResources_RsRTTIParent, "Parent: " - JclResources_RsRTTIPropCount, "Property count: " - JclResources_RsRTTIUnitName, "Unit name: " - JclResources_RsRTTIBasedOn, "Based on: " - JclResources_RsRTTIFloatType, "Float type: " - JclResources_RsRTTIMethodKind, "Method kind: " - JclResources_RsRTTIParamCount, "Parameter count: " - JclResources_RsRTTIReturnType, "Return type: " - JclResources_RsRTTIMaxLen, "Max length: " - JclResources_RsRTTIElSize, "Element size: " - JclResources_RsRTTIElType, "Element type: " - JclResources_RsRTTIElNeedCleanup, "Elements need clean up: " - JclResources_RsRTTITypeError, "???" - JclResources_RsRTTITypeInfoAt, "Type info: %p" - JclResources_RsRTTIPropRead, "read" - JclResources_RsRTTIPropWrite, "write" - JclResources_RsRTTIPropStored, "stored" - JclResources_RsRTTIField, "field" - JclResources_RsRTTIStaticMethod, "static method" - JclResources_RsRTTIVirtualMethod, "virtual method" - JclResources_RsRTTIIndex, "index" - JclResources_RsRTTIDefault, "default" - JclResources_RsRTTIName, "Name: " - JclResources_RsRTTIType, "Type: " - JclResources_RsRTTIFlags, "Flags: " - JclResources_RsRTTIGUID, "GUID: " - JclResources_RsRTTITypeKind, "Type kind: " - JclResources_RsRTTIOrdinalType, "Ordinal type: " - JclResources_RsHKCRShort, "HKCR" - JclResources_RsHKCUShort, "HKCU" - JclResources_RsHKLMShort, "HKLM" - JclResources_RsHKUSShort, "HKUS" - JclResources_RsHKPDShort, "HKPD" - JclResources_RsHKCCShort, "HKCC" - JclResources_RsHKDDShort, "HKDD" - JclResources_RsRTTIValueOutOfRange, "Value out of range (%s)." - JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'." - JclResources_RsRTTIVar, "var " - JclResources_RsRTTIConst, "const " - JclResources_RsRTTIArrayOf, "array of " - JclResources_RsRTTIOut, "out " - JclResources_RsRTTIOrdinal, "ordinal=" - JclResources_RsRTTITrue, "True" - JclResources_RsRTTIFalse, "False" - JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image" - JConsts_sJPEGError, "JPEG error #%d" - JConsts_sJPEGImageFile, "JPEG Image File" - JclResources_RsFileUtilsNoVersionInfo, "File contains no version information" - JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\\%s\" for read" - JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\\%s\" for write" - JclResources_RsUnableToAccessValue, "Unable to open key \"%s\\%s\" and access value \"%s\"" - JclResources_RsWrongDataType, "\"%s\\%s\\%s\" is of wrong kind or size" - JclResources_RsInconsistentPath, "\"%s\" does not match RootKey" - JclResources_RsHKCRLong, "HKEY_CLASSES_ROOT" - JclResources_RsHKCULong, "HKEY_CURRENT_USER" - JclResources_RsHKLMLong, "HKEY_LOCAL_MACHINE" - JclResources_RsHKUSLong, "HKEY_USERS" - JclResources_RsHKPDLong, "HKEY_PERFORMANCE_DATA" - JclResources_RsHKCCLong, "HKEY_CURRENT_CONFIG" - JclResources_RsHKDDLong, "HKEY_DYN_DATA" - IdResourceStringsCore_RSConnectTimeout, "Connect timed out." - IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads" - IdResourceStringsCore_RSAlreadyConnected, "Already connected." - IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded" - IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded." - IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind." - IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy." - IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified." - IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid." - IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s" - IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler." - IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event." - IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active." - ComStrs_sInvalidIndex, "Invalid index" - ComStrs_sInsertError, "Unable to insert an item" - ComStrs_sUDAssociated, "%s is already associated with %s" - IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset." - IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable." - IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable." - IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused." - IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired." - IdResourceStringsCore_RSSocksServerCommandError, "Command not supported." - IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported." - IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed" - IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer." - IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer." - IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found" - IdResourceStringsCore_RSNotConnected, "Not Connected" - IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported." - IdResourceStringsCore_RSIdNoDataToRead, "No data to read." - IdResourceStringsCore_RSReadTimeout, "Read Timeout" - IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded." - IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported" - IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code" - IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written." - IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command." - IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme." - IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active." - IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s." - IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version." - IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed." - IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect." - IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids." - IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error." - IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond." - IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method." - IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server." - IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure." - IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed" - IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable" - IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required" - IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout" - IdResourceStringsProtocols_RSHTTPConflict, "Conflict" - IdResourceStringsProtocols_RSHTTPGone, "Gone" - IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required" - IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed" - IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long" - IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max" - IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type" - IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error" - IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented" - IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway" - IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable" - IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout" - IdResourceStringsProtocols_RSHTTPOK, "OK" - IdResourceStringsProtocols_RSHTTPCreated, "Created" - IdResourceStringsProtocols_RSHTTPAccepted, "Accepted" - IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information" - IdResourceStringsProtocols_RSHTTPNoContent, "No Content" - IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content" - IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content" - IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently" - IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily" - IdResourceStringsProtocols_RSHTTPSeeOther, "See Other" - IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified" - IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy" - IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request" - IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized" - IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden" - IdResourceStringsProtocols_RSHTTPNotFound, "Not Found" - IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected" - IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)" - IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully." - IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use." - IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)" - IdResourceStrings_RSInvalidServiceName, "%s is not a valid service." - IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable" - IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address" - IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported." - IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent." - IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big." - IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded." - IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty" - IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty" - IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits" - IdResourceStringsProtocols_RSHTTPContinue, "Continue" - IdResourceStrings_RSStackENOBUFS, "No buffer space available." - IdResourceStrings_RSStackEISCONN, "Socket is already connected." - IdResourceStrings_RSStackENOTCONN, "Socket is not connected." - IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed." - IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice." - IdResourceStrings_RSStackETIMEDOUT, "Connection timed out." - IdResourceStrings_RSStackECONNREFUSED, "Connection refused." - IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links." - IdResourceStrings_RSStackENAMETOOLONG, "File name too long." - IdResourceStrings_RSStackEHOSTDOWN, "Host is down." - IdResourceStrings_RSStackEHOSTUNREACH, "No route to host." - IdResourceStrings_RSStackENOTEMPTY, "Directory not empty" - IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found." - IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined." - IdResourceStrings_RSStackAlreadyCreated, "Stack already created." - IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application." - IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required." - IdResourceStrings_RSStackEMSGSIZE, "Message too long." - IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket." - IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option." - IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported." - IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported." - IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket." - IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported." - IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family." - IdResourceStrings_RSStackEADDRINUSE, "Address already in use." - IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address." - IdResourceStrings_RSStackENETDOWN, "Network is down." - IdResourceStrings_RSStackENETUNREACH, "Network is unreachable." - IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset." - IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort." - IdResourceStrings_RSStackECONNRESET, "Connection reset by peer." - IdResourceStrings_RSStatusConnecting, "Connecting to %s." - IdResourceStrings_RSStatusConnected, "Connected." - IdResourceStrings_RSStatusDisconnecting, "Disconnecting." - IdResourceStrings_RSStatusDisconnected, "Disconnected." - IdResourceStrings_RSStatusText, "%s" - IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s" - IdResourceStrings_RSStackEINTR, "Interrupted system call." - IdResourceStrings_RSStackEBADF, "Bad file number." - IdResourceStrings_RSStackEACCES, "Access denied." - IdResourceStrings_RSStackEFAULT, "Buffer fault." - IdResourceStrings_RSStackEINVAL, "Invalid argument." - IdResourceStrings_RSStackEMFILE, "Too many open files." - IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block." - IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress." - IdResourceStrings_RSStackEALREADY, "Operation already in progress." - IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket." - DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" - DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" - DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" - DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" - DBConsts_SUnassignedVar, "Unassigned variant value" - DBConsts_SRecordNotFound, "Record not found" - DBConsts_SBcdOverflow, "BCD overflow" - DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" - DBConsts_SInvalidFormatType, "Invalid format type for BCD" - DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" - DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" - IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information." - IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s" - IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)" - IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error." - IdResourceStrings_RSStatusResolving, "Resolving hostname %s." - DBConsts_SExprIncorrect, "Incorrectly formed filter expression" - DBConsts_SExprNothing, "nothing" - DBConsts_SExprTypeMis, "Type mismatch in expression" - DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" - DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" - DBConsts_SExprNotAgg, "Expression is not an aggregate expression" - DBConsts_SExprBadConst, "Constant is not correct type %s" - DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" - DBConsts_SExprEmptyInList, "IN predicate list may not be empty" - DBConsts_SInvalidKeywordUse, "Invalid use of keyword" - DBConsts_STextFalse, "False" - DBConsts_STextTrue, "True" - DBConsts_SParameterNotFound, "Parameter '%s' not found" - DBConsts_SInvalidVersion, "Unable to load bind parameters" - DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" - DBConsts_SAggActive, "Property may not be modified while aggregate is active" - DBConsts_SNotEditing, "Dataset not in edit or insert mode" - DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset" - DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset" - DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset" - DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s" - DBConsts_SExprTermination, "Filter expression incorrectly terminated" - DBConsts_SExprNameError, "Unterminated field name" - DBConsts_SExprStringError, "Unterminated string constant" - DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" - DBConsts_SExprNoLParen, "'(' expected but %s found" - DBConsts_SExprNoRParen, "')' expected but %s found" - DBConsts_SExprNoRParenOrComma, "')' or ',' expected but %s found" - DBConsts_SExprExpected, "Expression expected but %s found" - DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" - DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" - DBConsts_SExprRangeError, "Constant out of range" - DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range" - DBConsts_SFieldRequired, "Field '%s' must have a value" - DBConsts_SDataSetMissing, "Field '%s' has no dataset" - DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field" - DBConsts_SFieldReadOnly, "Field '%s' cannot be modified" - DBConsts_SFieldIndexError, "Field index out of range" - DBConsts_SNoFieldIndexes, "No index currently active" - DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" - DBConsts_SIndexFieldMissing, "Cannot access index field '%s'" - DBConsts_SNoIndexForFields, "No index for fields '%s'" - DBConsts_SIndexNotFound, "Index '%s' not found" - DBConsts_SCircularDataLink, "Circular datalinks are not allowed" - DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" - DBConsts_SDataSourceChange, "DataSource cannot be changed" - DBConsts_SNoNestedMasterSource, "Nested datasets cannot have a MasterSource" - DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" - DBConsts_SInvalidFieldSize, "Invalid field size" - DBConsts_SInvalidFieldKind, "Invalid FieldKind" - DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type" - DBConsts_SFieldNameMissing, "Field name missing" - DBConsts_SDuplicateFieldName, "Duplicate field name '%s'" - DBConsts_SFieldNotFound, "Field '%s' not found" - DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s" - DBConsts_SFieldValueError, "Invalid value for field '%s'" - DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g" - DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s" - DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'" - DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'" - DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'" - DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s" - DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d" - DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'" - uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader" - uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)" - uRORes_err_DOMElementIsNIL, "DOMElement is NIL" - uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d" - uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s" - uRORes_err_NoXMLParsersAvailable, "MSXML is not installed" - uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported." - uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\"" - uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d" - uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d" - uRORes_err_CannotFindParameter, "Cannot find parameter %s" - uRORes_err_MessageNotAssigned, "Message is NIL" - ComConst_SOleError, "OLE error %.8x" - ComConst_SNoMethod, "Method '%s' not supported by automation object" - ComConst_SVarNotObject, "Variant does not reference an automation object" - ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" - uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found" - uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage" - uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered" - uRORes_err_UnknownClass, "Unknown class \"%s\"" - uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\"" - uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned" - uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?" - uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher" - uRORes_err_UnhandledException, "Unhandled exception" - uRORes_err_ChannelBusy, "Channel is busy. Try again later." - uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)." - uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message." - uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?" - uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream." - uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"." - uRORes_err_SessionNotFound, "Session %s could not be found" - uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements." - uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found." - uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"." - uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves." - uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"." - uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s" - uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s" - uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"." - uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)" - uRORes_err_NILMessage, "Message is NIL" - uRORes_err_UnspecifiedInterface, "The message does not have an interface name" - uRORes_err_UnspecifiedMessage, "The message does not have a name" - uRORes_err_UnknownMethod, "Unknown method %s for interface %s" - uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\"" - uRORes_err_ParameterNotFound, "Parameter \"%s\" was not found" - uRORes_err_TypeNotSupported, "Type \"%s\" not supported" - uRODECConst_sFMT_XX, "XX Coding" - uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes" - uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first." - uRORes_err_InvalidIndex, "Invalid index %d" - uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\"" - uRORes_err_InvalidLibrary, "Invalid library" - uRORes_err_InvalidStream, "Invalid stream" - uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\"" - uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\"" - uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\"" - uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\"" - uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream." - uRORes_err_RodlDuplicateName, "Duplicate name." - uRORes_err_RodlNoDataTypeSpecified, "No data type specified." - uRORes_err_RodlNoEnumValues, "Enum does not contain any values." - uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements." - Consts_SANSIEncoding, "ANSI" - Consts_SASCIIEncoding, "ASCII" - Consts_SUnicodeEncoding, "Unicode" - Consts_SBigEndianEncoding, "Big Endian Unicode" - Consts_SUTF8Encoding, "UTF-8" - Consts_SUTF7Encoding, "UTF-7" - Consts_SWindowsVistaRequired, "%s requires Windows Vista or later" - uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid." - uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist." - uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format." - uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format." - uRODECConst_sFMT_COPY, "copy Input to Output" - uRODECConst_sFMT_HEX, "Hexadecimal" - uRODECConst_sFMT_HEXL, "Hexadecimal lowercase" - uRODECConst_sFMT_MIME64, "MIME Base 64" - uRODECConst_sFMT_UU, "UU Coding" - Consts_SInvalidMemoSize, "Text exceeds memo capacity" - Consts_SInvalidPrinterOp, "Operation not supported on selected printer" - Consts_SNoDefaultPrinter, "There is no default printer currently selected" - Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" - Consts_SPictureLabel, "Picture:" - Consts_SPictureDesc, " (%dx%d)" - Consts_SPreviewLabel, "Preview" - Consts_SDockedCtlNeedsName, "Docked control must have a name" - Consts_SDockTreeRemoveError, "Error removing control from dock tree" - Consts_SDockZoneNotFound, " - Dock zone not found" - Consts_SDockZoneHasNoCtl, " - Dock zone has no control" - Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d." - Consts_SMultiSelectRequired, "Multiselect mode must be on for this feature" - Consts_SSeparator, "Separator" - Consts_SErrorSettingCount, "Error setting %s.Count" - Consts_SListBoxMustBeVirtual, "Listbox (%s) style must be virtual in order to set Count" - Consts_SmkcCtrl, "Ctrl+" - Consts_SmkcAlt, "Alt+" - Consts_srNone, "(None)" - Consts_SOutOfRange, "Value must be between %d and %d" - Consts_sAllFilter, "All" - Consts_SInsertLineError, "Unable to insert a line" - Consts_SConfirmCreateDir, "The specified directory does not exist. Create it?" - Consts_SSelectDirCap, "Select Directory" - Consts_SDirNameCap, "Directory &Name:" - Consts_SDrivesCap, "D&rives:" - Consts_SDirsCap, "&Directories:" - Consts_SFilesCap, "&Files: (*.*)" - Consts_SNetworkCap, "Ne&twork..." - Consts_SInvalidClipFmt, "Invalid clipboard format" - Consts_SIconToClipboard, "Clipboard does not support Icons" - Consts_SCannotOpenClipboard, "Cannot open clipboard" - Consts_SmkcBkSp, "BkSp" - Consts_SmkcTab, "Tab" - Consts_SmkcEsc, "Esc" - Consts_SmkcEnter, "Enter" - Consts_SmkcSpace, "Space" - Consts_SmkcPgUp, "PgUp" - Consts_SmkcPgDn, "PgDn" - Consts_SmkcEnd, "End" - Consts_SmkcHome, "Home" - Consts_SmkcLeft, "Left" - Consts_SmkcUp, "Up" - Consts_SmkcRight, "Right" - Consts_SmkcDown, "Down" - Consts_SmkcIns, "Ins" - Consts_SmkcDel, "Del" - Consts_SmkcShift, "Shift+" - Consts_SMaskEditErr, "Invalid input value. Use escape key to abandon changes" - Consts_SMsgDlgWarning, "Warning" - Consts_SMsgDlgError, "Error" - Consts_SMsgDlgInformation, "Information" - Consts_SMsgDlgConfirm, "Confirm" - Consts_SMsgDlgYes, "&Yes" - Consts_SMsgDlgNo, "&No" - Consts_SMsgDlgOK, "OK" - Consts_SMsgDlgCancel, "Cancel" - Consts_SMsgDlgHelp, "&Help" - Consts_SMsgDlgAbort, "&Abort" - Consts_SMsgDlgRetry, "&Retry" - Consts_SMsgDlgIgnore, "&Ignore" - Consts_SMsgDlgAll, "&All" - Consts_SMsgDlgNoToAll, "N&o to All" - Consts_SMsgDlgYesToAll, "Yes to &All" - Consts_SOKButton, "OK" - Consts_SCancelButton, "Cancel" - Consts_SYesButton, "&Yes" - Consts_SNoButton, "&No" - Consts_SHelpButton, "&Help" - Consts_SCloseButton, "&Close" - Consts_SIgnoreButton, "&Ignore" - Consts_SRetryButton, "&Retry" - Consts_SAbortButton, "Abort" - Consts_SAllButton, "&All" - Consts_SCannotDragForm, "Cannot drag a form" - Consts_SVMetafiles, "Metafiles" - Consts_SVEnhMetafiles, "Enhanced Metafiles" - Consts_SVIcons, "Icons" - Consts_SVBitmaps, "Bitmaps" - Consts_SMaskErr, "Invalid input value" - Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form" - Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide" - Consts_SCannotShowModal, "Cannot make a visible window modal" - Consts_SScrollBarRange, "Scrollbar property out of range" - Consts_SPropertyOutOfRange, "%s property out of range" - Consts_SMenuIndexError, "Menu index out of range" - Consts_SMenuReinserted, "Menu inserted twice" - Consts_SMenuNotFound, "Sub-menu is not in menu" - Consts_SNoTimers, "Not enough timers available" - Consts_SNotPrinting, "Printer is not currently printing" - Consts_SPrinting, "Printing in progress" - Consts_SInvalidPrinter, "Printer selected is not valid" - Consts_SDeviceOnPort, "%s on %s" - Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex" - Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active" - Consts_SControlParentSetToSelf, "A control cannot have itself as its parent" - Consts_SChangeIconSize, "Cannot change the size of an icon" - Consts_SUnknownExtension, "Unknown picture file extension (.%s)" - Consts_SUnknownClipboardFormat, "Unsupported clipboard format" - Consts_SOutOfResources, "Out of system resources" - Consts_SNoCanvasHandle, "Canvas does not allow drawing" - Consts_SInvalidImageSize, "Invalid image size" - Consts_SInvalidImageList, "Invalid ImageList" - Consts_SReplaceImage, "Unable to Replace Image" - Consts_SImageIndexError, "Invalid ImageList Index" - Consts_SImageReadFail, "Failed to read ImageList data from stream" - Consts_SImageWriteFail, "Failed to write ImageList data to stream" - Consts_SWindowDCError, "Error creating window device context" - Consts_SWindowClass, "Error creating window class" - Consts_SCannotFocus, "Cannot focus a disabled or invisible window" - Consts_SParentRequired, "Control '%s' has no parent window" - Consts_SParentGivenNotAParent, "Parent given is not a parent of '%s'" - RTLConsts_SUnknownGroup, "%s not in a class registration group" - RTLConsts_SUnknownProperty, "Property %s does not exist" - RTLConsts_SWriteError, "Stream write error" - RTLConsts_SThreadCreateError, "Thread creation error: %s" - RTLConsts_SThreadError, "Thread Error: %s (%d)" - HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" - HelpIntfs_hNothingFound, "No help found for %s" - HelpIntfs_hNoContext, "No context-sensitive help installed" - HelpIntfs_hNoContextFound, "No help found for context" - HelpIntfs_hNoTopics, "No topic-based help system installed" - Consts_SInvalidBitmap, "Bitmap image is not valid" - Consts_SInvalidIcon, "Icon image is not valid" - Consts_SInvalidMetafile, "Metafile is not valid" - Consts_SInvalidPixelFormat, "Invalid pixel format" - Consts_SInvalidImage, "Invalid image" - Consts_SScanLine, "Scan line index out of range" - RTLConsts_SInvalidPropertyType, "Invalid property type: %s" - RTLConsts_SInvalidPropertyValue, "Invalid property value" - RTLConsts_SInvalidRegType, "Invalid data type for '%s'" - RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" - RTLConsts_SListCountError, "List count out of bounds (%d)" - RTLConsts_SListIndexError, "List index out of bounds (%d)" - RTLConsts_SMemoryStreamError, "Out of memory while expanding memory stream" - RTLConsts_SPropertyException, "Error reading %s%s%s: %s" - RTLConsts_SReadError, "Stream read error" - RTLConsts_SReadOnlyProperty, "Property is read-only" - RTLConsts_SRegCreateFailed, "Failed to create key %s" - RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'" - RTLConsts_SRegSetDataFailed, "Failed to set data for '%s'" - RTLConsts_SResNotFound, "Resource %s not found" - RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" - RTLConsts_SSortedListError, "Operation not allowed on sorted list" - RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream" - RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" - RTLConsts_SClassNotFound, "Class %s not found" - RTLConsts_SDuplicateClass, "A class named %s already exists" - RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" - RTLConsts_SDuplicateName, "A component named %s already exists" - RTLConsts_SDuplicateString, "String list does not allow duplicates" - RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" - RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" - RTLConsts_SIniFileWriteError, "Unable to write to %s" - RTLConsts_SInvalidFileName, "Invalid file name - %s" - RTLConsts_SInvalidImage, "Invalid stream format" - RTLConsts_SInvalidName, "''%s'' is not a valid component name" - RTLConsts_SInvalidProperty, "Invalid property value" - RTLConsts_SInvalidPropertyElement, "Invalid property element: %s" - RTLConsts_SInvalidPropertyPath, "Invalid property path" - SysConst_SShortDayNameTue, "Tue" - SysConst_SShortDayNameWed, "Wed" - SysConst_SShortDayNameThu, "Thu" - SysConst_SShortDayNameFri, "Fri" - SysConst_SShortDayNameSat, "Sat" - SysConst_SLongDayNameSun, "Sunday" - SysConst_SLongDayNameMon, "Monday" - SysConst_SLongDayNameTue, "Tuesday" - SysConst_SLongDayNameWed, "Wednesday" - SysConst_SLongDayNameThu, "Thursday" - SysConst_SLongDayNameFri, "Friday" - SysConst_SLongDayNameSat, "Saturday" - SysConst_SCannotCreateDir, "Unable to create directory" - RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found" - RTLConsts_SAssignError, "Cannot assign a %s to a %s" - RTLConsts_SBitsIndexError, "Bits index out of range" - SysConst_SShortMonthNameNov, "Nov" - SysConst_SShortMonthNameDec, "Dec" - SysConst_SLongMonthNameJan, "January" - SysConst_SLongMonthNameFeb, "February" - SysConst_SLongMonthNameMar, "March" - SysConst_SLongMonthNameApr, "April" - SysConst_SLongMonthNameMay, "May" - SysConst_SLongMonthNameJun, "June" - SysConst_SLongMonthNameJul, "July" - SysConst_SLongMonthNameAug, "August" - SysConst_SLongMonthNameSep, "September" - SysConst_SLongMonthNameOct, "October" - SysConst_SLongMonthNameNov, "November" - SysConst_SLongMonthNameDec, "December" - SysConst_SShortDayNameSun, "Sun" - SysConst_SShortDayNameMon, "Mon" - SysConst_SAssertError, "%s (%s, line %d)" - SysConst_SAbstractError, "Abstract Error" - SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" - SysConst_SOSError, "System Error. Code: %d.\r\n%s" - SysConst_SUnkOSError, "A call to an OS function failed" - SysConst_SNL, "Application is not licensed to use this feature" - SysConst_SShortMonthNameJan, "Jan" - SysConst_SShortMonthNameFeb, "Feb" - SysConst_SShortMonthNameMar, "Mar" - SysConst_SShortMonthNameApr, "Apr" - SysConst_SShortMonthNameMay, "May" - SysConst_SShortMonthNameJun, "Jun" - SysConst_SShortMonthNameJul, "Jul" - SysConst_SShortMonthNameAug, "Aug" - SysConst_SShortMonthNameSep, "Sep" - SysConst_SShortMonthNameOct, "Oct" - SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" - SysConst_SVarTypeOutOfRangeWithPrefix, "Custom variant type (%s%.4x) is out of range" - SysConst_SVarTypeAlreadyUsedWithPrefix, "Custom variant type (%s%.4x) already used by %s" - SysConst_SVarTypeNotUsableWithPrefix, "Custom variant type (%s%.4x) is not usable" - SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered" - SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" - SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" - SysConst_SVarOverflow, "Variant overflow" - SysConst_SVarInvalid, "Invalid argument" - SysConst_SVarBadType, "Invalid variant type" - SysConst_SVarNotImplemented, "Operation not supported" - SysConst_SVarUnexpected, "Unexpected variant error" - SysConst_SExternalException, "External exception %x" - SysConst_SAssertionFailed, "Assertion failed" - SysConst_SIntfCastError, "Interface not supported" - SysConst_SSafecallException, "Exception in safecall method" - SysConst_SOperationAborted, "Operation aborted" - SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" - SysConst_SExceptTitle, "Application Error" - SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" - SysConst_SArgumentMissing, "No argument for format '%s'" - SysConst_SDispatchError, "Variant method calls not supported" - SysConst_SReadAccess, "Read" - SysConst_SWriteAccess, "Write" - SysConst_SFormatTooLong, "Format string too long" - SysConst_SVarArrayCreate, "Error creating variant or safe array" - SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" - SysConst_SVarArrayLocked, "Variant or safe array is locked" - SysConst_SVarArrayWithHResult, "Unexpected variant or safe array error: %s%.8x" - SysConst_SInvalidVarCast, "Invalid variant type conversion" - SysConst_SInvalidVarOp, "Invalid variant operation" - SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" - SysConst_SDiskFull, "Disk full" - SysConst_SInvalidInput, "Invalid numeric input" - SysConst_SDivByZero, "Division by zero" - SysConst_SRangeError, "Range check error" - SysConst_SIntOverflow, "Integer overflow" - SysConst_SInvalidOp, "Invalid floating point operation" - SysConst_SZeroDivide, "Floating point division by zero" - SysConst_SOverflow, "Floating point overflow" - SysConst_SUnderflow, "Floating point underflow" - SysConst_SInvalidPointer, "Invalid pointer operation" - SysConst_SInvalidCast, "Invalid class typecast" - SysConst_SAccessViolationArg3, "Access violation at address %p. %s of address %p" - SysConst_SAccessViolationNoArg, "Access violation" - SysConst_SStackOverflow, "Stack overflow" - SysConst_SControlC, "Control-C hit" - SysConst_SPrivilege, "Privileged instruction" - SysConst_SInvalidInteger, "'%s' is not a valid integer value" - SysConst_SInvalidFloat, "'%s' is not a valid floating point value" - SysConst_SInvalidDate, "'%s' is not a valid date" - SysConst_SInvalidTime, "'%s' is not a valid time" - SysConst_SInvalidDateTime, "'%s' is not a valid date and time" - SysConst_SInvalidTimeStamp, "'%d.%d' is not a valid timestamp" - SysConst_SInvalidGUID, "'%s' is not a valid GUID value" - SysConst_STimeEncodeError, "Invalid argument to time encode" - SysConst_SDateEncodeError, "Invalid argument to date encode" - SysConst_SOutOfMemory, "Out of memory" - SysConst_SInOutError, "I/O error %d" - SysConst_SFileNotFound, "File not found" - SysConst_SInvalidFilename, "Invalid filename" - SysConst_STooManyOpenFiles, "Too many open files" - SysConst_SAccessDenied, "File access denied" - SysConst_SEndOfFile, "Read beyond end of file" -END - -/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ -/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ -/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ -/* T:\Componentes\FastReport 3\LibD10\frxProgress.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxCtrls.RES */ -/* T:\Componentes\FastReport 3\LibD10\frxDock.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.RES */ -/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPassw.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxClass.RES */ -/* T:\Componentes\jvcl\resources\JvConsts.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ -/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ -/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */ -/* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */ -/* T:\Componentes\jvcl\lib\d10\JvLogForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uDataModuleServer.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ -/* T:\Componentes\jvcl\resources\JvToolEdit.res */ -/* T:\Componentes\jvcl\resources\JvSpin.Res */ -/* T:\Componentes\Developer Express Inc\Lib\D10\dxOffice11.res */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxLookAndFeelPainters.res */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxControls.res */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxEdit.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxShellBrowser.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConexionBD.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfGeneral.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfiguracion.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Sales_Impl.dfm */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxGrid.res */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterControlDialog.dfm */ -/* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterDialog.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Log_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uAcercaDe.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\fServerForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Inventary_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\srvInformes_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\RODLFile.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.drf */ diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.identcache b/Varela/Varela/Source/Servidor/AdminPV_Server.identcache deleted file mode 100644 index 091f9f93c5aaaa289530c471953df73f73dc1d8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7940 zcmd5>O>fgc5H0^Czo2KtEv-`&sYQ{U=42^a>`A)R*$rzuY5{=|0>l9!4jd4Fmhn1X z+mn@VleAK$^{l0xym@av*3Zw*&b~amd=UpaDL0^sd?Zvlil8W@TIca?UJ4_1d?WKw zx_?FIaX1b}QBkJ2Gc)=PBt;%Cgn>-NkuFUF@r_Q)4Bwm^k#9wgs|d_arrN~0**WWS zy4hyu_yYRj{uF~h?(}iGk!rSBRt7NV>DIV&aq*7>3wO3%Bw$fd`3elEM2ah!+<`%a zYGCS(j{W!;O@e8R|I6vCML3(&@Vw;=PZ@|pSn|L=LWCTj7*21<8WlRZk3(2z0;7@K z+2_klqAr$GRjeoy-;cu<8w#~UFNArF%M1AqEz`z8o#FuKkinHtk;stCdw=W$_2u^| z0K&j^@u_Kay!bU_3L$}QBDF${9DXSAj@_&5dj^8L^B3cAay|Bf!Ex?|$RW0po{QHR z+!iv+DM$WtaHI`FlVx9m0wWXAk#`7mb3p4Hvbxl&Fd9WU+N<=9MMdDNX4)%J zxaIh37gd{6!Q$#vod;~Zp|?RXTXV7-i~HnZYv`FQJ+Kq8m3P}#IQsyb-!p*FXsvE@ zT(~gZSc{h_j|_gelM#rOT$e^v9F9wTga=$*1T;KfIr!SZF%w2?026V)PPb++Ff7V; z$n+#sr<=O1vFice7|wY0Wa~xc1LyIFbZOZ`8S{seF?CUzgTYZ!q&O?I+NN7oAi;PW zu2V8-z^yH32r<`8)k>QUNaCPdPT|m6gsT|hOlbu zuqh|g6Ybf(JmMH;Y)-B&uvRrTS4d+TIo8g+94BBB5db}vTQ&8h?**FsXe-zdM2dHH zsi!n&KcVEZFWuEG)?wbH>y#)Ba4X|XkJSi@CD_Xvjw{-R zG~Q1`10b*t!j>{sDnults=gcAg%=doW}S+;BPhBxAS>28i!#Ems~cf&wCi|L8T|)z CkMcMG diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.rc b/Varela/Varela/Source/Servidor/AdminPV_Server.rc deleted file mode 100644 index 66b42e9..0000000 --- a/Varela/Varela/Source/Servidor/AdminPV_Server.rc +++ /dev/null @@ -1,26 +0,0 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Servidor.ico" -1 VERSIONINFO -FILEVERSION 1,2,5,0 -PRODUCTVERSION 1,2,5,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "1.2.5.0\0" - VALUE "ProductName", "AdminPV_Server\0" - VALUE "ProductVersion", "1.2.5.0\0" - VALUE "CompileDate", "jueves, 06 de septiembre de 2007 12:09\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Varela/Varela/Source/Servidor/AdminPV_Server.res b/Varela/Varela/Source/Servidor/AdminPV_Server.res deleted file mode 100644 index 77f5947782c2fa03a538f3ee3a2ad2ed2fb7384e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23588 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 bD%ycWP1No+&iDlMKVI=uwC>fcf2{a_qq}8a diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm deleted file mode 100644 index 9d1f999..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.dfm +++ /dev/null @@ -1,101 +0,0 @@ -inherited frConexionBD: TfrConexionBD - Visible = True - ExplicitWidth = 451 - ExplicitHeight = 304 - object GroupBox1: TGroupBox - Left = 8 - Top = 8 - Width = 375 - Height = 185 - Caption = 'Servidor de base de datos' - TabOrder = 0 - DesignSize = ( - 375 - 185) - object Label1: TLabel - Left = 18 - Top = 30 - Width = 100 - Height = 13 - Caption = 'Nombre del servidor:' - end - object Label3: TLabel - Left = 18 - Top = 61 - Width = 72 - Height = 13 - Caption = 'Base de datos:' - end - object Label4: TLabel - Left = 18 - Top = 118 - Width = 36 - Height = 13 - Caption = 'Usuario' - end - object Label5: TLabel - Left = 18 - Top = 148 - Width = 60 - Height = 13 - Caption = 'Contrase'#241'a:' - end - object Bevel1: TBevel - Left = 16 - Top = 88 - Width = 343 - Height = 10 - Anchors = [akLeft, akTop, akRight] - Shape = bsBottomLine - end - object edtServer: TEdit - Left = 128 - Top = 24 - Width = 231 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - Text = 'localhost' - end - object edtUser: TEdit - Left = 128 - Top = 112 - Width = 116 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 2 - end - object edtPassword: TEdit - Left = 128 - Top = 144 - Width = 116 - Height = 21 - Anchors = [akLeft, akTop, akRight] - PasswordChar = '*' - TabOrder = 3 - end - object edtBD: TEdit - Left = 128 - Top = 57 - Width = 231 - Height = 21 - TabOrder = 1 - end - end - object bProbar: TButton - Left = 240 - Top = 200 - Width = 143 - Height = 25 - Caption = 'Probar la conexi'#243'n' - TabOrder = 1 - OnClick = bProbarClick - end - object ADOConnection: TADOConnection - LoginPrompt = False - Mode = cmRead - Provider = 'SQLOLEDB.1' - Left = 48 - Top = 200 - end -end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas b/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas deleted file mode 100644 index d52c411..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConexionBD.pas +++ /dev/null @@ -1,90 +0,0 @@ -unit uConexionBD; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, cxShellBrowserDialog, cxControls, - cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, IBServices, - DB, IBDatabase, uFrameConfiguracion, ADODB; - -type - TfrConexionBD = class(TFrameConfiguracion) - GroupBox1: TGroupBox; - edtServer: TEdit; - Label1: TLabel; - Label3: TLabel; - bProbar: TButton; - Label4: TLabel; - edtUser: TEdit; - Label5: TLabel; - edtPassword: TEdit; - Bevel1: TBevel; - edtBD: TEdit; - ADOConnection: TADOConnection; - procedure bProbarClick(Sender: TObject); - protected - procedure Finalize; override; - public - procedure Init; override; - end; - -implementation - -uses uDataModuleServer; - -{$R *.dfm} - -procedure TfrConexionBD.bProbarClick(Sender: TObject); -var - Aux : string; -begin - //Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=gft_varela;Data Source=david - - Aux := 'Provider=SQLOLEDB.1;Persist Security Info=False'; - Aux := Aux + ';Data Source=' + edtServer.Text; - Aux := Aux + ';User ID=' + edtUser.Text; - Aux := Aux + ';Password=' + edtPassword.Text; - Aux := Aux + ';Initial Catalog=' + edtBD.Text; - - with ADOConnection do - begin - LoginPrompt := False; - Mode := cmRead; - Provider := 'SQLOLEDB.1'; - ConnectionString := Aux; - - ShowHourglassCursor; - try - Connected := True; - Application.MessageBox('Conexión válida con la base de datos.', 'Información', MB_OK); - Connected := False; - except - on E : Exception do - begin - HideHourglassCursor; - Aux := 'No se ha podido establecer la conexión con la base de datos.' - + #13 + #10 + #13 + #10 + PChar(E.Message); - Application.MessageBox(PAnsiChar(Aux), 'Error', MB_OK); - end; - end; - end; -end; - -procedure TfrConexionBD.Init; -begin - edtServer.Text := dmServer.FDBServer; - edtBD.Text := dmServer.FDBName; - edtUser.Text := dmServer.FDBUser; - edtPassword.Text := Decrypt(dmServer.FDBPass); -end; - -procedure TfrConexionBD.Finalize; -begin - dmServer.FDBServer := edtServer.Text; - dmServer.FDBName := edtBD.Text; - dmServer.FDBUser := edtUser.Text; - dmServer.FDBPass := Encrypt(edtPassword.Text); -end; - -end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm deleted file mode 100644 index ccb9b1b..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.dfm +++ /dev/null @@ -1,129 +0,0 @@ -inherited frConfFicherosEDI: TfrConfFicherosEDI - Visible = True - object GroupBox1: TGroupBox - Left = 8 - Top = 8 - Width = 375 - Height = 217 - Caption = 'Ubicaci'#243'n de ficheros' - Constraints.MaxHeight = 217 - TabOrder = 0 - object Label1: TLabel - Left = 16 - Top = 32 - Width = 95 - Height = 13 - Caption = 'Entrada de ficheros:' - end - object Label2: TLabel - Left = 16 - Top = 128 - Width = 146 - Height = 13 - Caption = 'Almac'#233'n de ficheros cargados:' - end - object edtEntrada: TJvDirectoryEdit - Left = 16 - Top = 48 - Width = 345 - Height = 21 - AcceptFiles = False - DialogKind = dkWin32 - DialogText = 'Directorio de entrada de ficheros EDI' - ShowButton = False - TabOrder = 0 - end - object edtAlmacen: TJvDirectoryEdit - Left = 16 - Top = 144 - Width = 345 - Height = 21 - AcceptFiles = False - DialogKind = dkWin32 - DialogText = 'Directorio para almacenar ficheros EDI cargados' - ShowButton = False - TabOrder = 1 - end - object bElegir1: TButton - Left = 16 - Top = 72 - Width = 97 - Height = 25 - Caption = 'Elegir carpeta...' - TabOrder = 2 - OnClick = bElegir1Click - end - object bElegir2: TButton - Left = 16 - Top = 168 - Width = 97 - Height = 25 - Caption = 'Elegir carpeta...' - TabOrder = 3 - OnClick = bElegir2Click - end - end - object bAbrir1: TButton - Left = 272 - Top = 80 - Width = 97 - Height = 25 - Action = actAbrir1 - TabOrder = 1 - end - object bAbrir2: TButton - Left = 272 - Top = 176 - Width = 97 - Height = 25 - Action = actAbrir2 - TabOrder = 2 - end - object Panel1: TPanel - Left = 7 - Top = 232 - Width = 377 - Height = 41 - BevelOuter = bvNone - TabOrder = 3 - object Label3: TLabel - Left = 25 - Top = 12 - Width = 298 - Height = 13 - Caption = 'N'#250'mero de d'#237'as a mantener de almac'#233'n de ficheros cargados :' - Transparent = False - end - object edtDias: TcxSpinEdit - Left = 328 - Top = 8 - Properties.MinValue = 1.000000000000000000 - Properties.ValueType = vtInt - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 0 - Value = 1 - Width = 41 - end - end - object ActionList1: TActionList - Left = 320 - Top = 120 - object actAbrir1: TAction - Caption = 'Abrir carpeta...' - OnExecute = actAbrir1Execute - OnUpdate = actAbrir1Update - end - object actAbrir2: TAction - Caption = 'Abrir carpeta...' - OnExecute = actAbrir2Execute - OnUpdate = actAbrir2Update - end - end -end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas deleted file mode 100644 index c68e629..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfFicherosEDI.pas +++ /dev/null @@ -1,102 +0,0 @@ -unit uConfFicherosEDI; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls, Mask, JvExMask, - JvToolEdit, ActnList, JvSpin, cxControls, cxContainer, cxEdit, - cxTextEdit, cxMaskEdit, cxSpinEdit; - -type - TfrConfFicherosEDI = class(TFrameConfiguracion) - GroupBox1: TGroupBox; - edtEntrada: TJvDirectoryEdit; - Label1: TLabel; - Label2: TLabel; - edtAlmacen: TJvDirectoryEdit; - bElegir1: TButton; - bElegir2: TButton; - bAbrir1: TButton; - bAbrir2: TButton; - ActionList1: TActionList; - actAbrir1: TAction; - actAbrir2: TAction; - Panel1: TPanel; - Label3: TLabel; - edtDias: TcxSpinEdit; - procedure bElegir1Click(Sender: TObject); - procedure bElegir2Click(Sender: TObject); - procedure actAbrir1Update(Sender: TObject); - procedure actAbrir2Update(Sender: TObject); - procedure actAbrir1Execute(Sender: TObject); - procedure actAbrir2Execute(Sender: TObject); - private - { Private declarations } - protected - procedure Finalize; override; - public - procedure Init; override; - end; - -implementation - -uses uDataModuleServer, JclShell; - -{$R *.dfm} - -{ TfrConfFicherosEDI } - -procedure TfrConfFicherosEDI.Finalize; -begin - inherited; - dmServer.FDirEntrada := edtEntrada.Text; - dmServer.FDirAlmacen := edtAlmacen.Text; - dmServer.FDias := edtDias.Value; -end; - -procedure TfrConfFicherosEDI.Init; -begin - inherited; - edtEntrada.Text := dmServer.FDirEntrada; - edtAlmacen.Text := dmServer.FDirAlmacen; - edtDias.Value := dmServer.FDias; -end; - -procedure TfrConfFicherosEDI.bElegir1Click(Sender: TObject); -begin - inherited; - edtEntrada.DoClick; -end; - -procedure TfrConfFicherosEDI.bElegir2Click(Sender: TObject); -begin - inherited; - edtAlmacen.DoClick; -end; - -procedure TfrConfFicherosEDI.actAbrir1Update(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Length(edtEntrada.Text) > 0) -end; - -procedure TfrConfFicherosEDI.actAbrir2Update(Sender: TObject); -begin - inherited; - (Sender as TAction).Enabled := (Length(edtAlmacen.Text) > 0) -end; - -procedure TfrConfFicherosEDI.actAbrir1Execute(Sender: TObject); -begin - inherited; - OpenFolder(edtEntrada.Text); -end; - -procedure TfrConfFicherosEDI.actAbrir2Execute(Sender: TObject); -begin - inherited; - OpenFolder(edtAlmacen.Text); -end; - -end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm deleted file mode 100644 index 7e7f40f..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.dfm +++ /dev/null @@ -1,39 +0,0 @@ -inherited frConfGeneral: TfrConfGeneral - Visible = True - object GroupBox1: TGroupBox - Left = 8 - Top = 8 - Width = 375 - Height = 105 - Caption = 'General' - TabOrder = 0 - DesignSize = ( - 375 - 105) - object Label2: TLabel - Left = 18 - Top = 60 - Width = 93 - Height = 13 - Caption = 'Puerto de escucha:' - end - object edtPort: TEdit - Left = 128 - Top = 56 - Width = 116 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - Text = '8099' - OnExit = edtPortExit - end - object cbInicioWin: TCheckBox - Left = 17 - Top = 27 - Width = 232 - Height = 17 - Caption = 'Iniciar con Windows' - TabOrder = 1 - end - end -end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas deleted file mode 100644 index b3427cc..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfGeneral.pas +++ /dev/null @@ -1,52 +0,0 @@ -unit uConfGeneral; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, uFrameConfiguracion, StdCtrls, ExtCtrls; - -type - TfrConfGeneral = class(TFrameConfiguracion) - GroupBox1: TGroupBox; - Label2: TLabel; - edtPort: TEdit; - cbInicioWin: TCheckBox; - procedure edtPortExit(Sender: TObject); - private - { Private declarations } - protected - procedure Finalize; override; - public - procedure Init; override; - end; - -implementation - -uses uDataModuleServer; - -{$R *.dfm} - -{ TfrConfGeneral } - -procedure TfrConfGeneral.Finalize; -begin - inherited; - dmServer.FInicioWindows := cbInicioWin.Checked; - dmServer.FServerPort := edtPort.Text; -end; - -procedure TfrConfGeneral.Init; -begin - cbInicioWin.Checked := dmServer.FInicioWindows; - edtPort.Text := dmServer.FServerPort; -end; - -procedure TfrConfGeneral.edtPortExit(Sender: TObject); -begin - inherited; - if Length(edtPort.Text) = 0 then - edtPort.Text := SERVER_PORT; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm deleted file mode 100644 index 75ddf1c..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.dfm +++ /dev/null @@ -1,214 +0,0 @@ -object fConfiguracion: TfConfiguracion - Left = 303 - Top = 203 - BorderStyle = bsDialog - Caption = 'Configuraci'#243'n' - ClientHeight = 442 - ClientWidth = 623 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - PixelsPerInch = 96 - TextHeight = 13 - object Button1: TButton - Left = 445 - Top = 407 - Width = 75 - Height = 25 - Action = actAceptar - ModalResult = 1 - TabOrder = 0 - end - object Button2: TButton - Left = 533 - Top = 407 - Width = 75 - Height = 25 - Action = actCancelar - Cancel = True - ModalResult = 2 - TabOrder = 1 - end - object JvSettingsTreeView1: TJvSettingsTreeView - Left = 8 - Top = 8 - Width = 193 - Height = 385 - PageDefault = 0 - PageList = JvPageList1 - Images = PngImageList1 - Indent = 19 - TabOrder = 2 - OnChanging = JvSettingsTreeView1Changing - Items.Data = { - 0300000020000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 - 0747656E6572616C28000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01000000 - 000000000F436F6E657869F36E20636F6E2042442E000000FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF02000000000000001555626963616369F36E206465206669 - 636865726F73} - Items.Links = {03000000000000000100000002000000} - end - object JvPageList1: TJvPageList - Left = 216 - Top = 8 - Width = 394 - Height = 385 - ActivePage = JvStandardPage1 - PropagateEnable = False - object JvStandardPage1: TJvStandardPage - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Caption = 'JvStandardPage1' - inline frConfGeneral1: TfrConfGeneral - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Align = alClient - ParentBackground = False - TabOrder = 0 - end - end - object JvStandardPage2: TJvStandardPage - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Caption = 'JvStandardPage2' - inline frConexionBD1: TfrConexionBD - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Align = alClient - ParentBackground = False - TabOrder = 0 - inherited GroupBox1: TGroupBox - inherited Label1: TLabel - Width = 100 - end - inherited Label3: TLabel - Width = 72 - end - inherited Label5: TLabel - Width = 60 - end - end - end - end - object JvStandardPage3: TJvStandardPage - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Caption = 'JvStandardPage3' - inline frConfFicherosEDI1: TfrConfFicherosEDI - Left = 0 - Top = 0 - Width = 394 - Height = 385 - Align = alClient - ParentBackground = False - TabOrder = 0 - inherited Label3: TLabel - Width = 299 - end - inherited GroupBox1: TGroupBox - inherited Label1: TLabel - Width = 98 - end - inherited Label2: TLabel - Width = 147 - end - end - end - end - end - object ActionList1: TActionList - Left = 8 - Top = 400 - object actAceptar: TAction - Caption = '&Aceptar' - OnExecute = actAceptarExecute - end - object actCancelar: TAction - Caption = '&Cancelar' - OnExecute = actCancelarExecute - end - end - object JvAppRegistryStorage1: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - Root = 'Software\%APPL_NAME%' - SubStorages = <> - Left = 48 - Top = 400 - end - object PngImageList1: TPngImageList - PngImages = < - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA - A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 - 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 - 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF - 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 - 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 - BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC - F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 - 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 - F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 - E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 - D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 - B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 - 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 - A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C - A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E - 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 - CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A - CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 - 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE - 426082} - Name = 'PngImage0' - Background = clWindow - end - item - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000AEB00000AEB01828B0D5A000002554944415478DA - A5934D6813411CC5DFA64D9B365A0AA558ACB50D584AA4122D6A695044AC2D88 - 88908B01B137A5B64A7B912214BD79F083B6971C154544F1504F7A5204154405 - 45432818F2614C76B39B36D9EC477793DD71369124C58045E7326F8779BFFDBF - 07C31042C0300C162E37F56FDBEEF1F5F41FF1B6B675B99B5BDABB0D3DEF80A9 - 684A2E9E5473C9101BFFFA9EE5924F67037AC8F2598BB1C4939BDEF903E373F3 - BDEE31BBADC10EEB8C14F230D65914550E86CA52CDA1A824F133F2C90806BFDC - F25FE7E72A808F2F6E14F78F5D69B00E083161EA396AE24A8092B95653D0B760 - 888CCEC46D15C0F3C071E2DAEBC78E81636871384A97ACCBD5BF97218A984022 - F1039F433CA61745A63AC1B30BC47DF00C049E87228974822C485184A1ADA2A8 - E5B02EAF4191F3D0749D1A34C463314CDEC96C040C8E9C43E3963E304D1D5897 - D250F329A862AABCD76A91452C1AD90878F7F82C193A3AB949400AE170189716 - B355C0CBBBA74877FF61383BDC68EFF2C034340AE1A88185924B20BF1A852844 - 4ADF9A9C01971630B5B0F6670462EF84244925833585A664A0AB599805196651 - A63A533FC27F77F0FA818F0C8FCF52806B731D7CA71D2CD574F0E6919F74F60C - A1796B2FDA3A7783B13134AB40412CE46CB9837C260A55E6A1D3582C2760BA5E - 070DCE9D50140DD9F44A69544D11CA1DD0FC4641A2D074FD081F96CF9B7BBC13 - CC3F7710B8BAEFF6E8E98B33AEC113B6BF01F85404A195D8FD6BF7A4890AC07A - CE53271B473CC363BEBE8191438E56E72E43133B1886D0FC311A23B796156269 - 9E4BBD4AB2A9874BCB784B7EBFE75F55B52CFF98E5CC810000000049454E44AE - 426082} - Name = 'PngImage1' - Background = clWindow - end> - Left = 88 - Top = 400 - Bitmap = {} - end -end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas b/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas deleted file mode 100644 index 6ae1174..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uConfiguracion.pas +++ /dev/null @@ -1,105 +0,0 @@ -unit uConfiguracion; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ComCtrls, ActnList, JvComponent, - JvAppStorage, JvAppRegistryStorage, Contnrs, ExtCtrls, ImgList, - PngImageList, JvExControls, JvGradientHeaderPanel, uFrameConfiguracion, - JvComponentBase, JvPageList, JvExComCtrls, JvPageListTreeView, - uConfFicherosEDI, uConexionBD, uConfGeneral; - -type - TfConfiguracion = class(TForm) - Button1: TButton; - Button2: TButton; - ActionList1: TActionList; - actAceptar: TAction; - actCancelar: TAction; - JvAppRegistryStorage1: TJvAppRegistryStorage; - PngImageList1: TPngImageList; - JvSettingsTreeView1: TJvSettingsTreeView; - JvPageList1: TJvPageList; - JvStandardPage1: TJvStandardPage; - JvStandardPage2: TJvStandardPage; - JvStandardPage3: TJvStandardPage; - frConfGeneral1: TfrConfGeneral; - frConexionBD1: TfrConexionBD; - frConfFicherosEDI1: TfrConfFicherosEDI; - procedure tvArbolChange(Sender: TObject; Node: TTreeNode); - procedure actAceptarExecute(Sender: TObject); - procedure actCancelarExecute(Sender: TObject); - procedure JvSettingsTreeView1Changing(Sender: TObject; Node: TTreeNode; - var AllowChange: Boolean); - private - FPaginaActual : IConfiguracionFrame; - end; - -var - fConfiguracion: TfConfiguracion; - -implementation - -uses uDataModuleServer; - -{$R *.dfm} - -type - TFrameClass = class of TFrameConfiguracion; - -function CreateFrame(Parent: TWinControl; FrameClass: TFrameClass): IConfiguracionFrame; -var - aFrame : TFrameConfiguracion; -begin - aFrame := FrameClass.Create(NIL); - aFrame.Name:='Frame'+IntToStr(Random(10000)); - aFrame.Parent := Parent; - aFrame.Init; - aFrame.Show; - Result := aFrame; -end; - -procedure TfConfiguracion.tvArbolChange(Sender: TObject; Node: TTreeNode); -begin -{ if Assigned(FPaginaActual) then - FPaginaActual.Finalize; - - case Node.Index of - 0 : FPaginaActual := CreateFrame(pnlPagina, TfrConfGeneral); - 1 : FPaginaActual := CreateFrame(pnlPagina, TfrConexionBD); - 2 : FPaginaActual := CreateFrame(pnlPagina, TfrConfFicherosEDI); - end; - Self.Update; - pnlHeader.LabelCaption := Node.Text;} -end; - -procedure TfConfiguracion.actAceptarExecute(Sender: TObject); -begin - if Assigned(FPaginaActual) then - FPaginaActual.Finalize; - dmServer.SalvarConfiguracion; - Close; -end; - -procedure TfConfiguracion.actCancelarExecute(Sender: TObject); -begin - Close; -end; - -procedure TfConfiguracion.JvSettingsTreeView1Changing(Sender: TObject; - Node: TTreeNode; var AllowChange: Boolean); -begin - if Assigned(FPaginaActual) then - FPaginaActual.Finalize; - - case Node.Index of - 0 : FPaginaActual := frConfGeneral1; - 1 : FPaginaActual := frConexionBD1; - 2 : FPaginaActual := frConfFicherosEDI1; - end; - if Assigned(FPaginaActual) then - FPaginaActual.Init; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm deleted file mode 100644 index a2649c6..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.dfm +++ /dev/null @@ -1,10 +0,0 @@ -object FrameConfiguracion: TFrameConfiguracion - Left = 0 - Top = 0 - Width = 443 - Height = 277 - Align = alClient - ParentBackground = False - TabOrder = 0 - Visible = False -end diff --git a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas b/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas deleted file mode 100644 index c03ed29..0000000 --- a/Varela/Varela/Source/Servidor/Configuracion/uFrameConfiguracion.pas +++ /dev/null @@ -1,30 +0,0 @@ -unit uFrameConfiguracion; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ExtCtrls; - -type - IConfiguracionFrame = interface - ['{07F3EDBF-DFED-4B76-ADC7-0D3B83FB6F9B}'] - procedure Init; - procedure Finalize; - end; - - TFrameConfiguracion = class(TFrame, IConfiguracionFrame) - protected - procedure Finalize; virtual; abstract; - public - procedure Init; virtual; abstract; - end; - -implementation - -{$R *.dfm} - -{ TFrameConfiguracion } - - -end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas b/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas deleted file mode 100644 index 5a92ec3..0000000 --- a/Varela/Varela/Source/Servidor/EDI/EDI_INVRPT.pas +++ /dev/null @@ -1,195 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit EDI_INVRPT; - -interface - -uses - Classes, EDI_Reader; - -const - LONG_LINEA_CAB = 101; - LONG_LINEA_LIN = 319; - LONG_LINEA_CANT = 100; - -type - TEDIFILE_CABINV = record - REGISTRO_OK : boolean; - NUMDOC : array[1..25] of char; - TIPODOC : array[1..3] of char; - TIPOLIQ : array[1..3] of char; - FECHA : array[1..8] of char; - FECHALIQ: array[1..8] of char; - EMISOR : array[1..17] of char; - RECEPTOR: array[1..17] of char; - DPTO : array[1..3] of char; - CENTRO : array[1..17] of char; - end; - - TEDIFILE_LININV = record - REGISTRO_OK : boolean; - NUMDOC : array[1..25] of char; - NUMLIN : array[1..6] of char; - CODART : array[1..17] of char; - FAMILIA : array[1..17] of char; - BARRA : array[1..17] of char; - TALLA : array[1..17] of char; - MARCA : array[1..25] of char; - TAMANO : array[1..25] of char; - SERIE : array[1..25] of char; - COLOR : array[1..25] of char; - MODELO : array[1..25] of char; - DIBUJO : array[1..25] of char; - DESCRIP : array[1..70] of char; - end; - - TEDITFILE_CANTINV = record - REGISTRO_OK : boolean; - NUMDOC : array[1..25] of char; - NUMLIN : array[1..6] of char; - NUMCANT : array[1..6] of char; - TIPOCANT: array[1..3] of char; - CANTIDAD: array[1..15] of char; - CENTRO : array[1..17] of char; - TMOV : array[1..3] of char; - FACT : array[1..12] of char; - DEPTO : array[1..3] of char; - IDVEN : array[1..10] of char; - end; - - PCABINV = ^TEDIFILE_CABINV; - PLININV = ^TEDIFILE_LININV; - PCANTINV= ^TEDITFILE_CANTINV; - - TCABINV_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - - TLININV_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - - TCANTINV_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - -implementation - -uses - SysUtils, Dialogs, uDataModuleEDI_Inventary; - -{ TLININV_Reader } - -function TLININV_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDIFILE_LININV; - pRegistro : PLININV; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_LIN) + '.' + IntTostr(LONG_LINEA_LIN) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDIFILE_LININV), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_LIN+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LIN); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDIFILE_LININV)); - FileData.Add(pRegistro); - Result := True; -end; - -{ TCABINV_Reader } - -function TCABINV_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDIFILE_CABINV; - pRegistro : PCABINV; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDIFILE_CABINV), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABINV)); - FileData.Add(pRegistro); - Result := True; -end; - -{ TCANTINV_Reader } - -function TCANTINV_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDITFILE_CANTINV; - pRegistro : PCANTINV; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_CANT) + '.' + IntTostr(LONG_LINEA_CANT) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDITFILE_CANTINV), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_CANT+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CANT); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDITFILE_CANTINV)); - FileData.Add(pRegistro); - Result := True; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm deleted file mode 100644 index c38a85e..0000000 --- a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.dfm +++ /dev/null @@ -1,169 +0,0 @@ -object EDI_Log: TEDI_Log - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schEDILog - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schEDILog: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LOG_CARGA' - SQL = - 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + - 'CARGA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'ID' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'OK' - TableField = 'OK' - end - item - DatasetField = 'ERROR_MSG' - TableField = 'ERROR_MSG' - end - item - DatasetField = 'REPORT' - TableField = 'REPORT' - end> - end> - Name = 'EDILog' - Fields = < - item - Name = 'ID' - DataType = datInteger - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - Commands = < - item - Params = < - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LOG_CARGA' - SQL = - 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + - ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_EDILog' - end> - RelationShips = <> - UpdateRules = <> - Left = 48 - Top = 16 - end - object DABINAdapter: TDABINAdapter - Left = 48 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas b/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas deleted file mode 100644 index 770c308..0000000 --- a/Varela/Varela/Source/Servidor/EDI/EDI_Log_Impl.pas +++ /dev/null @@ -1,73 +0,0 @@ -unit EDI_Log_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, - uDADataStreamer; - -type - { TEDI_Log } - TEDI_Log = class(TDARemoteService, IEDI_Log) - schEDILog: TDASchema; - DABINAdapter: TDABINAdapter; - private - protected - { IEDI_Log methods } - procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, - uDAInterfaces, uDataModuleServer; - -procedure Create_EDI_Log(out anInstance : IUnknown); -begin - anInstance := TEDI_Log.Create(NIL); -end; - -{ EDI_Log } -procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); -var - cmd : IDASQLCommand; - conn : IDAConnection; -begin - conn := dmServer.ConnectionManager.NewConnection(ConnectionName); - conn.BeginTransaction; - - cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); - try - cmd.ParamByName('FECHA').AsDateTime := Fecha; - cmd.ParamByName('REPORT').AsString := Report; - if OK then - cmd.ParamByName('OK').AsInteger := 1 - else - cmd.ParamByName('OK').AsInteger := 0; - cmd.ParamByName('ERROR_MSG').AsString := Error_msg; - cmd.Execute; - finally - conn.CommitTransaction; - conn := nil; - end; -end; - -initialization - TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas b/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas deleted file mode 100644 index 36e6872..0000000 --- a/Varela/Varela/Source/Servidor/EDI/EDI_Reader.pas +++ /dev/null @@ -1,109 +0,0 @@ -{ -=============================================================================== - Copyright (©) 2006. Rodax Software. -=============================================================================== - Los contenidos de este fichero son propiedad de Rodax Software titular del - copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, - en su totalidad o en parte, con el permiso escrito de Rodax Software, o de - acuerdo con los términos y condiciones establecidas en el acuerdo/contrato - bajo el que se suministra. - ----------------------------------------------------------------------------- - Web: www.rodax-software.com -=============================================================================== - Fecha primera versión: 18-04-2006 - Versión actual: 1.0.0 - Fecha versión actual: 18-04-2006 -=============================================================================== - Modificaciones: - - Fecha Comentarios - --------------------------------------------------------------------------- -=============================================================================== -} -unit EDI_Reader; - -interface - -uses - Classes; - -type - TEDIFileData = class(TList) - end; - - TEDIFile_Reader = class - private - FFilename: String; - FFileData : TEDIFileData; - protected - function ProcessLine (const ALine : String) : Boolean; virtual; abstract; - public - constructor Create; virtual; - destructor Destroy; override; - procedure ReadFile; - published - property Filename : String read FFilename write FFilename; - property FileData : TEDIFileData read FFileData; - end; - - -implementation - -uses - SysUtils, Dialogs, uDataModuleEDI_Sales; - -{ TEDIFile_Reader } - -constructor TEDIFile_Reader.Create; -begin - FFilename := ''; - FFileData := TEDIFileData.Create; -end; - -destructor TEDIFile_Reader.Destroy; -var - i : integer; -begin - try - with FFileData do - for I := Count - 1 downto 0 do - Dispose(Items[I]); - finally - FFileData.Free; - end; - inherited; -end; - -procedure TEDIFile_Reader.ReadFile; -var - i : integer; - AFichero : TStringList; -begin - if (Length(FFilename) = 0) then - raise Exception.Create('Falta indicar el nombre de todos los ficheros'); - - AFichero := TStringList.Create; - try - try - AFichero.LoadFromFile(FFilename); - for i := 0 to AFichero.Count - 1 do - begin - if not ProcessLine (AFichero.Strings[i]) then - begin - //ShowMessage('Error al procesar la línea ' +#13+#10 + AFichero.Strings[i]); - Break; - end; - end; - except - on E : Exception do - begin - //ShowMessage(E.Message); - raise; - end; - end; - finally - FreeAndNIL(AFichero); - end; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas b/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas deleted file mode 100644 index 6be4a34..0000000 --- a/Varela/Varela/Source/Servidor/EDI/EDI_SLSRPT.pas +++ /dev/null @@ -1,284 +0,0 @@ -{ -=============================================================================== - Copyright (©) 2006. Rodax Software. -=============================================================================== - Los contenidos de este fichero son propiedad de Rodax Software titular del - copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, - en su totalidad o en parte, con el permiso escrito de Rodax Software, o de - acuerdo con los términos y condiciones establecidas en el acuerdo/contrato - bajo el que se suministra. - ----------------------------------------------------------------------------- - Web: www.rodax-software.com -=============================================================================== - Fecha primera versión: 18-04-2006 - Versión actual: 1.0.0 - Fecha versión actual: 18-04-2006 -=============================================================================== - Modificaciones: - - Fecha Comentarios - --------------------------------------------------------------------------- -=============================================================================== -} - -unit EDI_SLSRPT; - -interface - -uses - Classes, EDI_Reader; - -const - LONG_LINEA_CAB = 859; - LONG_LINEA_LUG = 142; - LONG_LINEA_ART = 778; - -type - TEDIFILE_CABVEN = record - REGISTRO_OK : boolean; - CLAVE1 : array[1..10] of char; - NUMINF : array[1..35] of char; - FUNCION : array[1..3] of char; - FECINI : array[1..12] of char; - FECFIN : array[1..12] of char; - FECINF : array[1..12] of char; - PERVEN : array[1..16] of char; - - EANOFI : array[1..17] of char; - EANEMI : array[1..17] of char; - EANREC : array[1..17] of char; - EANVEN : array[1..17] of char; - EANALM : array[1..17] of char; - EANREP : array[1..17] of char; - EANPRO : array[1..17] of char; - - EANADMSA: array[1..17] of char; - EANREPSR: array[1..17] of char; - - ADMVENSA: array[1..35] of char; - REPDEPSR: array[1..35] of char; - EMAILSA : array[1..35] of char; - NUMFAXSA: array[1..35] of char; - NUMTELSA: array[1..35] of char; - NUMTLXSA: array[1..35] of char; - X400SA : array[1..35] of char; - - EMAILSR : array[1..35] of char; - NUMFAXSR: array[1..35] of char; - NUMTELSR: array[1..35] of char; - NUMTLXSR: array[1..35] of char; - X400SR : array[1..35] of char; - - NUMPRE : array[1..35] of char; - NUMINFSC: array[1..35] of char; - NUMCON : array[1..35] of char; - - FECPRE : array[1..12] of char; - FECINFSC: array[1..12] of char; - FECCON : array[1..12] of char; - - DIVPED : array[1..3] of char; - DIVPRE : array[1..3] of char; - DIVPAG : array[1..3] of char; - DIVPEDF : array[1..3] of char; - DIVPREF : array[1..3] of char; - DIVPAGF : array[1..3] of char; - - TASCAM : array[1..15] of char; - FECTAS : array[1..12] of char; - end; - - TEDIFILE_LUGVEN = record - REGISTRO_OK : boolean; - CLAVE1 : array[1..10] of char; - CLAVE2 : array[1..5] of char; - EANLUG : array[1..17] of char; - LUGVEN : array[1..70] of char; - FECINI : array[1..12] of char; - FECFIN : array[1..12] of char; - PERVEN : array[1..16] of char; - end; - - TEDIFILE_ARTVEN = record - REGISTRO_OK : boolean; - CLAVE1 : array[1..10] of char; - CLAVE2 : array[1..5] of char; - CLAVE3 : array[1..5] of char; - EANART : array[1..17] of char; - CODCOM : array[1..35] of char; - NUMVAR : array[1..35] of char; - CODPRO : array[1..35] of char; - DESARTCO: array[1..35] of char; - DESART : array[1..70] of char; - NUMCON : array[1..35] of char; - NUMLIS : array[1..35] of char; - CONESP1 : array[1..3] of char; - CONESP2 : array[1..3] of char; - CONESP3 : array[1..3] of char; - VALVEN : array[1..15] of char; - PRENETCT: array[1..15] of char; - PREBRUCT: array[1..15] of char; - PREINFET: array[1..15] of char; - PREINFFT: array[1..15] of char; - PRECALCT: array[1..15] of char; - PRENETCA: array[1..15] of char; - PREBRUCA: array[1..15] of char; - PREINFEA: array[1..15] of char; - PREINFFA: array[1..15] of char; - PRECALCA: array[1..15] of char; - BAPRUN1 : array[1..9] of char; - UNIMED1 : array[1..3] of char; - BAPRUN2 : array[1..9] of char; - UNIMED2 : array[1..3] of char; - BAPRUN3 : array[1..9] of char; - UNIMED3 : array[1..3] of char; - BAPRUN4 : array[1..9] of char; - UNIMED4 : array[1..3] of char; - BAPRUN5 : array[1..9] of char; - UNIMED5 : array[1..3] of char; - CANVEN : array[1..15] of char; - EXIPRO : array[1..15] of char; - DESEXI : array[1..15] of char; - ESPMEDCV: array[1..3] of char; - ESPMEDEP: array[1..3] of char; - ESPMEDDE: array[1..3] of char; - CANDEV : array[1..15] of char; - EANVEN : array[1..17] of char; - NOMVEN : array[1..70] of char; - NUMTALON: array[1..35] of char; - CANVENNET : array[1..15] of char; - UMEDVENNET: array[1..3] of char; - CANESP : array[1..15] of char; - UMEDESP : array[1..3] of char; - end; - - PCABVEN = ^TEDIFILE_CABVEN; - PLUGVEN = ^TEDIFILE_LUGVEN; - PARTVEN = ^TEDIFILE_ARTVEN; - - TCABVEN_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - - TLUGVEN_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - - TARTVEN_Reader = class(TEDIFile_Reader) - protected - function ProcessLine (const ALine : String) : Boolean; override; - end; - - -implementation - -uses - SysUtils, Dialogs, uDataModuleEDI_Sales; - -{ TCABVEN_Reader } - -function TCABVEN_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDIFILE_CABVEN; - pRegistro : PCABVEN; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_CAB) + '.' + IntTostr(LONG_LINEA_CAB) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDIFILE_CABVEN), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_CAB+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_CAB); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDIFILE_CABVEN)); - FileData.Add(pRegistro); - Result := True; -end; - -{ TLUGVEN_Reader } - -function TLUGVEN_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDIFILE_LUGVEN; - pRegistro : PLUGVEN; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_LUG) + '.' + IntTostr(LONG_LINEA_LUG) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDIFILE_LUGVEN), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_LUG+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_LUG); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDIFILE_LUGVEN)); - FileData.Add(pRegistro); - Result := True; -end; - -{ TARTVEN_Reader } - -function TARTVEN_Reader.ProcessLine(const ALine: String): Boolean; -var - Registro : TEDIFILE_ARTVEN; - pRegistro : PARTVEN; - LongLinea : Integer; - AuxLine : String; -begin - Result := False; - LongLinea := Length(ALine); - - { Por si la línea fuera más larga o más corta de lo normal, la hago de - de la longitud que debería tener } - AuxLine := Format('%-' + IntTostr(LONG_LINEA_ART) + '.' + IntTostr(LONG_LINEA_ART) + 's', [ALine]); - - // Inicializo los campos del registro. - FillChar(Registro, SizeOf(TEDIFILE_ARTVEN), 0); - - { Para rellenar el campo REGISTRO_OK del registro mediante el 'move', - añado al principio de AuxLine el byte #0 (valor para 'False'). } - AuxLine := Concat(#0, AuxLine); - Move(AuxLine[1], Registro, LONG_LINEA_ART+1); // +1 por el byte del concat - - // El registro es correcto si tiene la longitud adecuada. - Registro.REGISTRO_OK := (LongLinea = LONG_LINEA_ART); - - // Añado el registro a la lista de registros. - New(pRegistro); - Move(Registro, pRegistro^, SizeOf(TEDIFILE_ARTVEN)); - FileData.Add(pRegistro); - Result := True; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm deleted file mode 100644 index 29be14a..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.dfm +++ /dev/null @@ -1,7 +0,0 @@ -inherited EDI_Inventary: TEDI_Inventary - OldCreateOrder = True - Left = 200 - Top = 200 - Height = 300 - Width = 300 -end diff --git a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas deleted file mode 100644 index 27971a8..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Inventary_Impl.pas +++ /dev/null @@ -1,52 +0,0 @@ -unit EDI_Inventary_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -{$I Remobjects.inc} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Required:} uRORemoteDataModule, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf; - -type - { TEDI_Inventary } - TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) - private - protected - { IEDI_Inventary methods } - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk; - -procedure Create_EDI_Inventary(out anInstance : IUnknown); -begin - anInstance := TEDI_Inventary.Create(nil); -end; - -{ EDI_Inventary } -function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; -begin -end; - -initialization - TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm deleted file mode 100644 index cc39195..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Log_Impl.dfm +++ /dev/null @@ -1,179 +0,0 @@ -object EDI_Log: TEDI_Log - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schEDILog - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schEDILog: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LOG_CARGA' - SQL = - 'SELECT '#10' ID, REPORT, FECHA, OK, ERROR_MSG'#10' FROM'#10' RDX_LOG_' + - 'CARGA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'ID' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'OK' - TableField = 'OK' - end - item - DatasetField = 'ERROR_MSG' - TableField = 'ERROR_MSG' - end - item - DatasetField = 'REPORT' - TableField = 'REPORT' - end> - end> - Name = 'EDILog' - Fields = < - item - Name = 'ID' - DataType = datInteger - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'REPORT' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OK' - DataType = datBoolean - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ERROR_MSG' - DataType = datString - Size = 255 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LOG_CARGA' - SQL = - 'INSERT'#10' INTO RDX_LOG_CARGA'#10' (FECHA, REPORT, OK, ERROR_MSG)'#10' ' + - ' VALUES'#10' (:FECHA, :REPORT, :OK, :ERROR_MSG)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_EDILog' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 48 - Top = 16 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 48 - Top = 80 - end -end diff --git a/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas deleted file mode 100644 index 1b06759..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Log_Impl.pas +++ /dev/null @@ -1,75 +0,0 @@ -unit EDI_Log_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -{$I Remobjects.inc} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Required:} uRORemoteDataModule, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDADataStreamer, uDABinAdapter, uDAClasses, uDAInterfaces; - -type - { TEDI_Log } - TEDI_Log = class(TDARemoteService, IEDI_Log) - DABINAdapter: TDABINAdapter; - schEDILog: TDASchema; - private - protected - { IEDI_Log methods } - procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, - uDataModuleServer, Dialogs; - -procedure Create_EDI_Log(out anInstance : IUnknown); -begin - anInstance := TEDI_Log.Create(NIL); -end; - -{ EDI_Log } -procedure TEDI_Log.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); -var - cmd : IDASQLCommand; - conn : IDAConnection; -begin - conn := dmServer.ConnectionManager.NewConnection(ConnectionName); - conn.BeginTransaction; - - cmd := schEDILog.NewCommand(conn, 'Insert_EDILog'); - try - cmd.ParamByName('FECHA').AsDateTime := Fecha; - cmd.ParamByName('REPORT').AsString := Report; - if OK then - cmd.ParamByName('OK').AsInteger := 1 - else - cmd.ParamByName('OK').AsInteger := 0; - cmd.ParamByName('ERROR_MSG').AsString := Error_msg; - cmd.Execute; - finally - conn.CommitTransaction; - conn := nil; - end; -end; - -initialization - TROClassFactory.Create('EDI_Log', Create_EDI_Log, TEDI_Log_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm deleted file mode 100644 index 96f3a4b..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.dfm +++ /dev/null @@ -1,7 +0,0 @@ -inherited EDI_Sales: TEDI_Sales - OldCreateOrder = True - Left = 200 - Top = 200 - Height = 300 - Width = 300 -end diff --git a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas b/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas deleted file mode 100644 index e3a05bd..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Sales_Impl.pas +++ /dev/null @@ -1,52 +0,0 @@ -unit EDI_Sales_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -{$I Remobjects.inc} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Required:} uRORemoteDataModule, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf; - -type - { TEDI_Sales } - TEDI_Sales = class(TDARemoteService, IEDI_Sales) - private - protected - { IEDI_Sales methods } - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk; - -procedure Create_EDI_Sales(out anInstance : IUnknown); -begin - anInstance := TEDI_Sales.Create(nil); -end; - -{ EDI_Sales } -function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; -begin -end; - -initialization - TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/EDI_Utils.pas b/Varela/Varela/Source/Servidor/EDI_Utils.pas deleted file mode 100644 index 61e81b4..0000000 --- a/Varela/Varela/Source/Servidor/EDI_Utils.pas +++ /dev/null @@ -1,40 +0,0 @@ -{*******************************************************} -{ } -{ Administración de puntos de venta } -{ } -{ Copyright (C) 2006 Rodax Software S.L. } -{ } -{*******************************************************} - -unit EDI_Utils; - -interface - -uses - Controls; - -function EDIDateToDateF (const ADate : string; const AFormat : string = 'yyyymmdd' ) : TDate; - -implementation - -uses - SysUtils; - -function EDIDateToDateF (const ADate : string; const AFormat : string) : TDate; -var - aux : string; -begin - if Length(ADate) = 0 then - Result := 0 - else begin - try - if AFormat = 'yyyymmdd' then - Result := EncodeDate( StrToInt(copy(ADate, 1, 4)), StrToInt(copy(ADate, 5, 2)), StrToInt(copy(ADate, 7, 2)) ); - except - Result := 0 - end; - end; -end; - -end. - \ No newline at end of file diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections b/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections deleted file mode 100644 index b8d3686..0000000 --- a/Varela/Varela/Source/Servidor/RDX_VARELA.daConnections +++ /dev/null @@ -1 +0,0 @@ -SDAC?Server=DAVID;Database=GFT_VARELA;Integrated Security=SSPI;TrueGFT_VARELA010pbWaitTrue6001 diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary b/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary deleted file mode 100644 index e6a48a9..0000000 --- a/Varela/Varela/Source/Servidor/RDX_VARELA.daDictionary +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema b/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema deleted file mode 100644 index 0afb08f..0000000 --- a/Varela/Varela/Source/Servidor/RDX_VARELA.daSchema +++ /dev/null @@ -1,35 +0,0 @@ -TrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE30TrueTrueFalseFalseCLAVE3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANART0FalseTrueFalseFalseEANARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringCODCOM0FalseTrueFalseFalseCODCOMFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMVAR0FalseTrueFalseFalseNUMVARFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCODPRO0FalseTrueFalseFalseCODPROFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESARTCO0FalseTrueFalseFalseDESARTCOFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringDESART0FalseTrueFalseFalseDESARTFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMLIS0FalseTrueFalseFalseNUMLISFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringCONESP10FalseTrueFalseFalseCONESP1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP20FalseTrueFalseFalseCONESP2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCONESP30FalseTrueFalseFalseCONESP3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatVALVEN0FalseTrueFalseFalseVALVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCT0FalseTrueFalseFalsePRENETCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCT0FalseTrueFalseFalsePREBRUCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFET0FalseTrueFalseFalsePREINFETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFT0FalseTrueFalseFalsePREINFFTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCT0FalseTrueFalseFalsePRECALCTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRENETCA0FalseTrueFalseFalsePRENETCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREBRUCA0FalseTrueFalseFalsePREBRUCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFEA0FalseTrueFalseFalsePREINFEAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPREINFFA0FalseTrueFalseFalsePREINFFAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatPRECALCA0FalseTrueFalseFalsePRECALCAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN10FalseTrueFalseFalseBAPRUN1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED10FalseTrueFalseFalseUNIMED1FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN20FalseTrueFalseFalseBAPRUN2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED20FalseTrueFalseFalseUNIMED2FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN30FalseTrueFalseFalseBAPRUN3FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED30FalseTrueFalseFalseUNIMED3FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN40FalseTrueFalseFalseBAPRUN4FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED40FalseTrueFalseFalseUNIMED4FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatBAPRUN50FalseTrueFalseFalseBAPRUN5FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUNIMED50FalseTrueFalseFalseUNIMED5FalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANVEN0FalseTrueFalseFalseCANVENFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatEXIPRO0FalseTrueFalseFalseEXIPROFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatDESEXI0FalseTrueFalseFalseDESEXIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringESPMEDCV0FalseTrueFalseFalseESPMEDCVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDEP0FalseTrueFalseFalseESPMEDEPFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringESPMEDDE0FalseTrueFalseFalseESPMEDDEFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANDEV0FalseTrueFalseFalseCANDEVFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringNOMVEN0FalseTrueFalseFalseNOMVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatStringNUMTALON0FalseTrueFalseFalseNUMTALONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatFloatCANVENNET0FalseTrueFalseFalseCANVENNETFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDVENNET0FalseTrueFalseFalseUMEDVENNETFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANESP0FalseTrueFalseFalseCANESPFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringUMEDESP0FalseTrueFalseFalseUMEDESPFalseFalseFalse3TrueRDX_ARTVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2CLAVE3CLAVE3CLAVE3EANARTEANARTEANARTCODCOMCODCOMCODCOMNUMVARNUMVARNUMVARCODPROCODPROCODPRODESARTCODESARTCODESARTCODESARTDESARTDESARTNUMCONNUMCONNUMCONNUMLISNUMLISNUMLISCONESP1CONESP1CONESP1CONESP2CONESP2CONESP2CONESP3CONESP3CONESP3VALVENVALVENVALVENPRENETCTPRENETCTPRENETCTPREBRUCTPREBRUCTPREBRUCTPREINFETPREINFETPREINFETPREINFFTPREINFFTPREINFFTPRECALCTPRECALCTPRECALCTPRENETCAPRENETCAPRENETCAPREBRUCAPREBRUCAPREBRUCAPREINFEAPREINFEAPREINFEAPREINFFAPREINFFAPREINFFAPRECALCAPRECALCAPRECALCABAPRUN1BAPRUN1BAPRUN1UNIMED1UNIMED1UNIMED1BAPRUN2BAPRUN2BAPRUN2UNIMED2UNIMED2UNIMED2BAPRUN3BAPRUN3BAPRUN3UNIMED3UNIMED3UNIMED3BAPRUN4BAPRUN4BAPRUN4UNIMED4UNIMED4UNIMED4BAPRUN5BAPRUN5BAPRUN5UNIMED5UNIMED5UNIMED5CANVENCANVENCANVENEXIPROEXIPROEXIPRODESEXIDESEXIDESEXIESPMEDCVESPMEDCVESPMEDCVESPMEDEPESPMEDEPESPMEDEPESPMEDDEESPMEDDEESPMEDDECANDEVCANDEVCANDEVEANVENEANVENEANVENNOMVENNOMVENNOMVENNUMTALONNUMTALONNUMTALONCANVENNETCANVENNETCANVENNETUMEDVENNETUMEDVENNETUMEDVENNETCANESPCANESPCANESPUMEDESPUMEDESPUMEDESPGFT_VARELASELECT - CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODPRO, - DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, - CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, - PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, - BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, - BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, - DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, - NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDESP - FROM - RDX_ARTVENstSQLRDX_ARTVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTIPODOC0FalseTrueFalseFalseTIPODOCFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringTIPOLIQ0FalseTrueFalseFalseTIPOLIQFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHA0FalseTrueFalseFalseFECHAFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECHALIQ0FalseTrueFalseFalseFECHALIQFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEMISOR0FalseTrueFalseFalseEMISORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringRECEPTOR0FalseTrueFalseFalseRECEPTORFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringDPTO0FalseTrueFalseFalseDPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TrueRDX_CABINVNUMDOCNUMDOCNUMDOCTIPODOCTIPODOCTIPODOCTIPOLIQTIPOLIQTIPOLIQFECHAFECHAFECHAFECHALIQFECHALIQFECHALIQEMISOREMISOREMISORRECEPTORRECEPTORRECEPTORDPTODPTODPTOCENTROCENTROCENTROGFT_VARELASELECT - NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, - RECEPTOR, DPTO, CENTRO - FROM - RDX_CABINVstSQLRDX_CABINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringNUMINF0FalseTrueFalseFalseNUMINFFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringFUNCION0FalseTrueFalseFalseFUNCIONFalseFalseFalse10TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINF0FalseTrueFalseFalseFECINFFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TruetaLeftJustifydabtUnknownFalsedatStringEANOFI0FalseTrueFalseFalseEANOFIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANEMI0FalseTrueFalseFalseEANEMIFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREC0FalseTrueFalseFalseEANRECFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANVEN0FalseTrueFalseFalseEANVENFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANALM0FalseTrueFalseFalseEANALMFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREP0FalseTrueFalseFalseEANREPFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANPRO0FalseTrueFalseFalseEANPROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANADMSA0FalseTrueFalseFalseEANADMSAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringEANREPSR0FalseTrueFalseFalseEANREPSRFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringADMVENSA0FalseTrueFalseFalseADMVENSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringREPDEPSR0FalseTrueFalseFalseREPDEPSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSA0FalseTrueFalseFalseEMAILSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSA0FalseTrueFalseFalseNUMFAXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSA0FalseTrueFalseFalseNUMTELSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSA0FalseTrueFalseFalseNUMTLXSAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SA0FalseTrueFalseFalseX400SAFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringEMAILSR0FalseTrueFalseFalseEMAILSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMFAXSR0FalseTrueFalseFalseNUMFAXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTELSR0FalseTrueFalseFalseNUMTELSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMTLXSR0FalseTrueFalseFalseNUMTLXSRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringX400SR0FalseTrueFalseFalseX400SRFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMPRE0FalseTrueFalseFalseNUMPREFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMINFSC0FalseTrueFalseFalseNUMINFSCFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatStringNUMCON0FalseTrueFalseFalseNUMCONFalseFalseFalse35TruetaLeftJustifydabtUnknownFalsedatDateTimeFECPRE0FalseTrueFalseFalseFECPREFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINFSC0FalseTrueFalseFalseFECINFSCFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECCON0FalseTrueFalseFalseFECCONFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringDIVPED0FalseTrueFalseFalseDIVPEDFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPRE0FalseTrueFalseFalseDIVPREFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAG0FalseTrueFalseFalseDIVPAGFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPEDF0FalseTrueFalseFalseDIVPEDFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPREF0FalseTrueFalseFalseDIVPREFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringDIVPAGF0FalseTrueFalseFalseDIVPAGFFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatTASCAM0FalseTrueFalseFalseTASCAMFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECTAS0FalseTrueFalseFalseFECTASFalseFalseFalse0TrueRDX_CABVENCLAVE1CLAVE1CLAVE1NUMINFNUMINFNUMINFFUNCIONFUNCIONFUNCIONFECINIFECINIFECINIFECFINFECFINFECFINFECINFFECINFFECINFPERVENPERVENPERVENEANOFIEANOFIEANOFIEANEMIEANEMIEANEMIEANRECEANRECEANRECEANVENEANVENEANVENEANALMEANALMEANALMEANREPEANREPEANREPEANPROEANPROEANPROEANADMSAEANADMSAEANADMSAEANREPSREANREPSREANREPSRADMVENSAADMVENSAADMVENSAREPDEPSRREPDEPSRREPDEPSREMAILSAEMAILSAEMAILSANUMFAXSANUMFAXSANUMFAXSANUMTELSANUMTELSANUMTELSANUMTLXSANUMTLXSANUMTLXSAX400SAX400SAX400SAEMAILSREMAILSREMAILSRNUMFAXSRNUMFAXSRNUMFAXSRNUMTELSRNUMTELSRNUMTELSRNUMTLXSRNUMTLXSRNUMTLXSRX400SRX400SRX400SRNUMPRENUMPRENUMPRENUMINFSCNUMINFSCNUMINFSCNUMCONNUMCONNUMCONFECPREFECPREFECPREFECINFSCFECINFSCFECINFSCFECCONFECCONFECCONDIVPEDDIVPEDDIVPEDDIVPREDIVPREDIVPREDIVPAGDIVPAGDIVPAGDIVPEDFDIVPEDFDIVPEDFDIVPREFDIVPREFDIVPREFDIVPAGFDIVPAGFDIVPAGFTASCAMTASCAMTASCAMFECTASFECTASFECTASGFT_VARELASELECT - CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PERVEN, - EANOFI, EANEMI, EANREC, EANVEN, EANALM, EANREP, EANPRO, - EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAILSA, NUMFAXSA, - NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXSR, NUMTELSR, - NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FECPRE, - FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, - DIVPREF, DIVPAGF, TASCAM, FECTAS - FROM - RDX_CABVENstSQLRDX_CABVENTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatNUMCANT0FalseTrueFalseFalseNUMCANTFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringTIPOCANT0FalseTrueFalseFalseTIPOCANTFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatFloatCANTIDAD0FalseTrueFalseFalseCANTIDADFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCENTRO0FalseTrueFalseFalseCENTROFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTMOV0FalseTrueFalseFalseTMOVFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringFACT0FalseTrueFalseFalseFACTFalseFalseFalse12TruetaLeftJustifydabtUnknownFalsedatStringDEPTO0FalseTrueFalseFalseDEPTOFalseFalseFalse3TruetaLeftJustifydabtUnknownFalsedatStringIDVEN0FalseTrueFalseFalseIDVENFalseFalseFalse10TrueRDX_CANTINVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINNUMCANTNUMCANTNUMCANTTIPOCANTTIPOCANTTIPOCANTCANTIDADCANTIDADCANTIDADCENTROCENTROCENTROTMOVTMOVTMOVFACTFACTFACTDEPTODEPTODEPTOIDVENIDVENIDVENGFT_VARELASELECT - NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO, - TMOV, FACT, DEPTO, IDVEN - FROM - RDX_CANTINVstSQLRDX_CANTINVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringNUMDOC0TrueTrueFalseFalseNUMDOCFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatFloatNUMLIN0TrueTrueFalseFalseNUMLINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringCODART0FalseTrueFalseFalseCODARTFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringFAMILIA0FalseTrueFalseFalseFAMILIAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringBARRA0FalseTrueFalseFalseBARRAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringTALLA0FalseTrueFalseFalseTALLAFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringMARCA0FalseTrueFalseFalseMARCAFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringTAMANO0FalseTrueFalseFalseTAMANOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringSERIE0FalseTrueFalseFalseSERIEFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringCOLOR0FalseTrueFalseFalseCOLORFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringMODELO0FalseTrueFalseFalseMODELOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDIBUJO0FalseTrueFalseFalseDIBUJOFalseFalseFalse25TruetaLeftJustifydabtUnknownFalsedatStringDESCRIP0FalseTrueFalseFalseDESCRIPFalseFalseFalse70TrueRDX_LININVNUMDOCNUMDOCNUMDOCNUMLINNUMLINNUMLINCODARTCODARTCODARTFAMILIAFAMILIAFAMILIABARRABARRABARRATALLATALLATALLAMARCAMARCAMARCATAMANOTAMANOTAMANOSERIESERIESERIECOLORCOLORCOLORMODELOMODELOMODELODIBUJODIBUJODIBUJODESCRIPDESCRIPDESCRIPGFT_VARELASELECT - NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA, - TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP - FROM - RDX_LININVstSQLRDX_LININVTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatFloatCLAVE10TrueTrueFalseFalseCLAVE1FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatFloatCLAVE20TrueTrueFalseFalseCLAVE2FalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringEANLUG0FalseTrueFalseFalseEANLUGFalseFalseFalse17TruetaLeftJustifydabtUnknownFalsedatStringLUGVEN0FalseTrueFalseFalseLUGVENFalseFalseFalse70TruetaLeftJustifydabtUnknownFalsedatDateTimeFECINI0FalseTrueFalseFalseFECINIFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeFECFIN0FalseTrueFalseFalseFECFINFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatStringPERVEN0FalseTrueFalseFalsePERVENFalseFalseFalse16TrueRDX_LUGVENCLAVE1CLAVE1CLAVE1CLAVE2CLAVE2CLAVE2EANLUGEANLUGEANLUGLUGVENLUGVENLUGVENFECINIFECINIFECINIFECFINFECFINFECFINPERVENPERVENPERVENGFT_VARELASELECT - CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERVEN - FROM - RDX_LUGVENstSQLRDX_LUGVENRDX_LININVNUMDOCRDX_CABINVNUMDOCFK_RDX_LININV_RDX_CABINVRDX_CANTINVNUMDOC;NUMLINRDX_LININVNUMDOC;NUMLINFK_RDX_CANTINV_RDX_LININVRDX_LUGVENCLAVE1RDX_CABVENCLAVE1FK_RDX_LUGVEN_RDX_CABVENRDX_ARTVENCLAVE1;CLAVE2RDX_LUGVENCLAVE1;CLAVE2FK_RDX_ARTVEN_RDX_LUGVEN0 diff --git a/Varela/Varela/Source/Servidor/RODLFILE.res b/Varela/Varela/Source/Servidor/RODLFILE.res deleted file mode 100644 index 1deefbaa2fa9dcc960b18ca793812cc9b68d1e2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18469 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 B%zyv@ diff --git a/Varela/Varela/Source/Servidor/RegExpr.pas b/Varela/Varela/Source/Servidor/RegExpr.pas deleted file mode 100644 index f17279a..0000000 --- a/Varela/Varela/Source/Servidor/RegExpr.pas +++ /dev/null @@ -1,4042 +0,0 @@ -unit RegExpr; - -{ - TRegExpr class library - Delphi Regular Expressions - - Copyright (c) 1999-2004 Andrey V. Sorokin, St.Petersburg, Russia - - You may use this software in any kind of development, - including comercial, redistribute, and modify it freely, - under the following restrictions : - 1. This software is provided as it is, without any kind of - warranty given. Use it at Your own risk.The author is not - responsible for any consequences of use of this software. - 2. The origin of this software may not be mispresented, You - must not claim that You wrote the original software. If - You use this software in any kind of product, it would be - appreciated that there in a information box, or in the - documentation would be an acknowledgement like - - Partial Copyright (c) 2004 Andrey V. Sorokin - http://RegExpStudio.com - mailto:anso@mail.ru - - 3. You may not have any income from distributing this source - (or altered version of it) to other developers. When You - use this product in a comercial package, the source may - not be charged seperatly. - 4. Altered versions must be plainly marked as such, and must - not be misrepresented as being the original software. - 5. RegExp Studio application and all the visual components as - well as documentation is not part of the TRegExpr library - and is not free for usage. - - mailto:anso@mail.ru - http://RegExpStudio.com - http://anso.da.ru/ -} - -interface - -// ======== Determine compiler -{$IFDEF VER80} Sorry, TRegExpr is for 32-bits Delphi only. Delphi 1 is not supported (and whos really care today?!). {$ENDIF} -{$IFDEF VER90} {$DEFINE D2} {$ENDIF} // D2 -{$IFDEF VER93} {$DEFINE D2} {$ENDIF} // CPPB 1 -{$IFDEF VER100} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D3 -{$IFDEF VER110} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // CPPB 3 -{$IFDEF VER120} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D4 -{$IFDEF VER130} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D5 -{$IFDEF VER140} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D6 -{$IFDEF VER150} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D7 -{$IFDEF VER180} {$DEFINE D2007} {$DEFINE D10} {$DEFINE D7} {$DEFINE D6} {$DEFINE D5} {$DEFINE D4} {$DEFINE D3} {$DEFINE D2} {$ENDIF} // D10/D2007 - -// ======== Define base compiler options -{$BOOLEVAL OFF} -{$EXTENDEDSYNTAX ON} -{$LONGSTRINGS ON} -{$OPTIMIZATION ON} -{$IFDEF D6} - {$WARN SYMBOL_PLATFORM OFF} // Suppress .Net warnings -{$ENDIF} -{$IFDEF D7} - {$WARN UNSAFE_CAST OFF} // Suppress .Net warnings - {$WARN UNSAFE_TYPE OFF} // Suppress .Net warnings - {$WARN UNSAFE_CODE OFF} // Suppress .Net warnings -{$ENDIF} -{$IFDEF FPC} - {$MODE DELPHI} // Delphi-compatible mode in FreePascal -{$ENDIF} - -// ======== Define options for TRegExpr engine -{.$DEFINE UniCode} // Unicode support -{$DEFINE RegExpPCodeDump} // p-code dumping (see Dump method) -{$IFNDEF FPC} // the option is not supported in FreePascal - {$DEFINE reRealExceptionAddr} // exceptions will point to appropriate source line, not to Error procedure -{$ENDIF} -{$DEFINE ComplexBraces} // support braces in complex cases -{$IFNDEF UniCode} // the option applicable only for non-UniCode mode - {$DEFINE UseSetOfChar} // Significant optimization by using set of char -{$ENDIF} -{$IFDEF UseSetOfChar} - {$DEFINE UseFirstCharSet} // Fast skip between matches for r.e. that starts with determined set of chars -{$ENDIF} - -// ======== Define Pascal-language options -// Define 'UseAsserts' option (do not edit this definitions). -// Asserts used to catch 'strange bugs' in TRegExpr implementation (when something goes -// completely wrong). You can swith asserts on/off with help of {$C+}/{$C-} compiler options. -{$IFDEF D3} {$DEFINE UseAsserts} {$ENDIF} -{$IFDEF FPC} {$DEFINE UseAsserts} {$ENDIF} - -// Define 'use subroutine parameters default values' option (do not edit this definition). -{$IFDEF D4} {$DEFINE DefParam} {$ENDIF} - -// Define 'OverMeth' options, to use method overloading (do not edit this definitions). -{$IFDEF D5} {$DEFINE OverMeth} {$ENDIF} -{$IFDEF FPC} {$DEFINE OverMeth} {$ENDIF} - -uses - Classes, // TStrings in Split method - SysUtils; // Exception - -type - {$IFDEF UniCode} - PRegExprChar = PWideChar; - RegExprString = WideString; - REChar = WideChar; - {$ELSE} - PRegExprChar = PChar; - RegExprString = AnsiString; //###0.952 was string - REChar = Char; - {$ENDIF} - TREOp = REChar; // internal p-code type //###0.933 - PREOp = ^TREOp; - TRENextOff = integer; // internal Next "pointer" (offset to current p-code) //###0.933 - PRENextOff = ^TRENextOff; // used for extracting Next "pointers" from compiled r.e. //###0.933 - TREBracesArg = integer; // type of {m,n} arguments - PREBracesArg = ^TREBracesArg; - -const - REOpSz = SizeOf (TREOp) div SizeOf (REChar); // size of p-code in RegExprString units - RENextOffSz = SizeOf (TRENextOff) div SizeOf (REChar); // size of Next 'pointer' -"- - REBracesArgSz = SizeOf (TREBracesArg) div SizeOf (REChar); // size of BRACES arguments -"- - -type - TRegExprInvertCaseFunction = function (const Ch : REChar) : REChar - of object; - -const - EscChar = '\'; // 'Escape'-char ('\' in common r.e.) used for escaping metachars (\w, \d etc). - RegExprModifierI : boolean = False; // default value for ModifierI - RegExprModifierR : boolean = True; // default value for ModifierR - RegExprModifierS : boolean = True; // default value for ModifierS - RegExprModifierG : boolean = True; // default value for ModifierG - RegExprModifierM : boolean = False; // default value for ModifierM - RegExprModifierX : boolean = False; // default value for ModifierX - RegExprSpaceChars : RegExprString = // default value for SpaceChars - ' '#$9#$A#$D#$C; - RegExprWordChars : RegExprString = // default value for WordChars - '0123456789' //###0.940 - + 'abcdefghijklmnopqrstuvwxyz' - + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'; - RegExprLineSeparators : RegExprString =// default value for LineSeparators - #$d#$a{$IFDEF UniCode}+#$b#$c#$2028#$2029#$85{$ENDIF}; //###0.947 - RegExprLinePairedSeparator : RegExprString =// default value for LinePairedSeparator - #$d#$a; - { if You need Unix-styled line separators (only \n), then use: - RegExprLineSeparators = #$a; - RegExprLinePairedSeparator = ''; - } - - -const - NSUBEXP = 15; // max number of subexpression //###0.929 - // Cannot be more than NSUBEXPMAX - // Be carefull - don't use values which overflow CLOSE opcode - // (in this case you'll get compiler erorr). - // Big NSUBEXP will cause more slow work and more stack required - NSUBEXPMAX = 255; // Max possible value for NSUBEXP. //###0.945 - // Don't change it! It's defined by internal TRegExpr design. - - MaxBracesArg = $7FFFFFFF - 1; // max value for {n,m} arguments //###0.933 - - {$IFDEF ComplexBraces} - LoopStackMax = 10; // max depth of loops stack //###0.925 - {$ENDIF} - - TinySetLen = 3; - // if range includes more then TinySetLen chars, //###0.934 - // then use full (32 bytes) ANYOFFULL instead of ANYOF[BUT]TINYSET - // !!! Attension ! If you change TinySetLen, you must - // change code marked as "//!!!TinySet" - - -type - -{$IFDEF UseSetOfChar} - PSetOfREChar = ^TSetOfREChar; - TSetOfREChar = set of REChar; -{$ENDIF} - - TRegExpr = class; - - TRegExprReplaceFunction = function (ARegExpr : TRegExpr): string - of object; - - TRegExpr = class - private - startp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr starting points - endp : array [0 .. NSUBEXP - 1] of PRegExprChar; // founded expr end points - - {$IFDEF ComplexBraces} - LoopStack : array [1 .. LoopStackMax] of integer; // state before entering loop - LoopStackIdx : integer; // 0 - out of all loops - {$ENDIF} - - // The "internal use only" fields to pass info from compile - // to execute that permits the execute phase to run lots faster on - // simple cases. - regstart : REChar; // char that must begin a match; '\0' if none obvious - reganch : REChar; // is the match anchored (at beginning-of-line only)? - regmust : PRegExprChar; // string (pointer into program) that match must include, or nil - regmlen : integer; // length of regmust string - // Regstart and reganch permit very fast decisions on suitable starting points - // for a match, cutting down the work a lot. Regmust permits fast rejection - // of lines that cannot possibly match. The regmust tests are costly enough - // that regcomp() supplies a regmust only if the r.e. contains something - // potentially expensive (at present, the only such thing detected is * or + - // at the start of the r.e., which can involve a lot of backup). Regmlen is - // supplied because the test in regexec() needs it and regcomp() is computing - // it anyway. - {$IFDEF UseFirstCharSet} //###0.929 - FirstCharSet : TSetOfREChar; - {$ENDIF} - - // work variables for Exec's routins - save stack in recursion} - reginput : PRegExprChar; // String-input pointer. - fInputStart : PRegExprChar; // Pointer to first char of input string. - fInputEnd : PRegExprChar; // Pointer to char AFTER last char of input string - - // work variables for compiler's routines - regparse : PRegExprChar; // Input-scan pointer. - regnpar : integer; // count. - regdummy : char; - regcode : PRegExprChar; // Code-emit pointer; @regdummy = don't. - regsize : integer; // Code size. - - regexpbeg : PRegExprChar; // only for error handling. Contains - // pointer to beginning of r.e. while compiling - fExprIsCompiled : boolean; // true if r.e. successfully compiled - - // programm is essentially a linear encoding - // of a nondeterministic finite-state machine (aka syntax charts or - // "railroad normal form" in parsing technology). Each node is an opcode - // plus a "next" pointer, possibly plus an operand. "Next" pointers of - // all nodes except BRANCH implement concatenation; a "next" pointer with - // a BRANCH on both ends of it is connecting two alternatives. (Here we - // have one of the subtle syntax dependencies: an individual BRANCH (as - // opposed to a collection of them) is never concatenated with anything - // because of operator precedence.) The operand of some types of node is - // a literal string; for others, it is a node leading into a sub-FSM. In - // particular, the operand of a BRANCH node is the first node of the branch. - // (NB this is *not* a tree structure: the tail of the branch connects - // to the thing following the set of BRANCHes.) The opcodes are: - programm : PRegExprChar; // Unwarranted chumminess with compiler. - - fExpression : PRegExprChar; // source of compiled r.e. - fInputString : PRegExprChar; // input string - - fLastError : integer; // see Error, LastError - - fModifiers : integer; // modifiers - fCompModifiers : integer; // compiler's copy of modifiers - fProgModifiers : integer; // modifiers values from last programm compilation - - fSpaceChars : RegExprString; //###0.927 - fWordChars : RegExprString; //###0.929 - fInvertCase : TRegExprInvertCaseFunction; //###0.927 - - fLineSeparators : RegExprString; //###0.941 - fLinePairedSeparatorAssigned : boolean; - fLinePairedSeparatorHead, - fLinePairedSeparatorTail : REChar; - {$IFNDEF UniCode} - fLineSeparatorsSet : set of REChar; - {$ENDIF} - - procedure InvalidateProgramm; - // Mark programm as have to be [re]compiled - - function IsProgrammOk : boolean; //###0.941 - // Check if we can use precompiled r.e. or - // [re]compile it if something changed - - function GetExpression : RegExprString; - procedure SetExpression (const s : RegExprString); - - function GetModifierStr : RegExprString; - class function ParseModifiersStr (const AModifiers : RegExprString; - var AModifiersInt : integer) : boolean; //###0.941 class function now - // Parse AModifiers string and return true and set AModifiersInt - // if it's in format 'ismxrg-ismxrg'. - procedure SetModifierStr (const AModifiers : RegExprString); - - function GetModifier (AIndex : integer) : boolean; - procedure SetModifier (AIndex : integer; ASet : boolean); - - procedure Error (AErrorID : integer); virtual; // error handler. - // Default handler raise exception ERegExpr with - // Message = ErrorMsg (AErrorID), ErrorCode = AErrorID - // and CompilerErrorPos = value of property CompilerErrorPos. - - - {==================== Compiler section ===================} - function CompileRegExpr (exp : PRegExprChar) : boolean; - // compile a regular expression into internal code - - procedure Tail (p : PRegExprChar; val : PRegExprChar); - // set the next-pointer at the end of a node chain - - procedure OpTail (p : PRegExprChar; val : PRegExprChar); - // regoptail - regtail on operand of first argument; nop if operandless - - function EmitNode (op : TREOp) : PRegExprChar; - // regnode - emit a node, return location - - procedure EmitC (b : REChar); - // emit (if appropriate) a byte of code - - procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90 - // insert an operator in front of already-emitted operand - // Means relocating the operand. - - function ParseReg (paren : integer; var flagp : integer) : PRegExprChar; - // regular expression, i.e. main body or parenthesized thing - - function ParseBranch (var flagp : integer) : PRegExprChar; - // one alternative of an | operator - - function ParsePiece (var flagp : integer) : PRegExprChar; - // something followed by possible [*+?] - - function ParseAtom (var flagp : integer) : PRegExprChar; - // the lowest level - - function GetCompilerErrorPos : integer; - // current pos in r.e. - for error hanling - - {$IFDEF UseFirstCharSet} //###0.929 - procedure FillFirstCharSet (prog : PRegExprChar); - {$ENDIF} - - {===================== Mathing section ===================} - function regrepeat (p : PRegExprChar; AMax : integer) : integer; - // repeatedly match something simple, report how many - - function regnext (p : PRegExprChar) : PRegExprChar; - // dig the "next" pointer out of a node - - function MatchPrim (prog : PRegExprChar) : boolean; - // recursively matching routine - - function ExecPrim (AOffset: integer) : boolean; - // Exec for stored InputString - - {$IFDEF RegExpPCodeDump} - function DumpOp (op : REChar) : RegExprString; - {$ENDIF} - - function GetSubExprMatchCount : integer; - function GetMatchPos (Idx : integer) : integer; - function GetMatchLen (Idx : integer) : integer; - function GetMatch (Idx : integer) : RegExprString; - - function GetInputString : RegExprString; - procedure SetInputString (const AInputString : RegExprString); - - {$IFNDEF UseSetOfChar} - function StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 - {$ENDIF} - - procedure SetLineSeparators (const AStr : RegExprString); - procedure SetLinePairedSeparator (const AStr : RegExprString); - function GetLinePairedSeparator : RegExprString; - - public - constructor Create; - destructor Destroy; override; - - class function VersionMajor : integer; //###0.944 - class function VersionMinor : integer; //###0.944 - - property Expression : RegExprString read GetExpression write SetExpression; - // Regular expression. - // For optimization, TRegExpr will automatically compiles it into 'P-code' - // (You can see it with help of Dump method) and stores in internal - // structures. Real [re]compilation occures only when it really needed - - // while calling Exec[Next], Substitute, Dump, etc - // and only if Expression or other P-code affected properties was changed - // after last [re]compilation. - // If any errors while [re]compilation occures, Error method is called - // (by default Error raises exception - see below) - - property ModifierStr : RegExprString read GetModifierStr write SetModifierStr; - // Set/get default values of r.e.syntax modifiers. Modifiers in - // r.e. (?ismx-ismx) will replace this default values. - // If you try to set unsupported modifier, Error will be called - // (by defaul Error raises exception ERegExpr). - - property ModifierI : boolean index 1 read GetModifier write SetModifier; - // Modifier /i - caseinsensitive, initialized from RegExprModifierI - - property ModifierR : boolean index 2 read GetModifier write SetModifier; - // Modifier /r - use r.e.syntax extended for russian, - // (was property ExtSyntaxEnabled in previous versions) - // If true, then à-ÿ additional include russian letter '¸', - // À-ß additional include '¨', and à-ß include all russian symbols. - // You have to turn it off if it may interfere with you national alphabet. - // , initialized from RegExprModifierR - - property ModifierS : boolean index 3 read GetModifier write SetModifier; - // Modifier /s - '.' works as any char (else as [^\n]), - // , initialized from RegExprModifierS - - property ModifierG : boolean index 4 read GetModifier write SetModifier; - // Switching off modifier /g switchs all operators in - // non-greedy style, so if ModifierG = False, then - // all '*' works as '*?', all '+' as '+?' and so on. - // , initialized from RegExprModifierG - - property ModifierM : boolean index 5 read GetModifier write SetModifier; - // Treat string as multiple lines. That is, change `^' and `$' from - // matching at only the very start or end of the string to the start - // or end of any line anywhere within the string. - // , initialized from RegExprModifierM - - property ModifierX : boolean index 6 read GetModifier write SetModifier; - // Modifier /x - eXtended syntax, allow r.e. text formatting, - // see description in the help. Initialized from RegExprModifierX - - function Exec (const AInputString : RegExprString) : boolean; {$IFDEF OverMeth} overload; - {$IFNDEF FPC} // I do not know why FreePascal cannot overload methods with empty param list - function Exec : boolean; overload; //###0.949 - {$ENDIF} - function Exec (AOffset: integer) : boolean; overload; //###0.949 - {$ENDIF} - // match a programm against a string AInputString - // !!! Exec store AInputString into InputString property - // For Delphi 5 and higher available overloaded versions - first without - // parameter (uses already assigned to InputString property value) - // and second that has integer parameter and is same as ExecPos - - function ExecNext : boolean; - // find next match: - // ExecNext; - // works same as - // if MatchLen [0] = 0 then ExecPos (MatchPos [0] + 1) - // else ExecPos (MatchPos [0] + MatchLen [0]); - // but it's more simpler ! - // Raises exception if used without preceeding SUCCESSFUL call to - // Exec* (Exec, ExecPos, ExecNext). So You always must use something like - // if Exec (InputString) then repeat { proceed results} until not ExecNext; - - function ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; - // find match for InputString starting from AOffset position - // (AOffset=1 - first char of InputString) - - property InputString : RegExprString read GetInputString write SetInputString; - // returns current input string (from last Exec call or last assign - // to this property). - // Any assignment to this property clear Match* properties ! - - function Substitute (const ATemplate : RegExprString) : RegExprString; - // Returns ATemplate with '$&' or '$0' replaced by whole r.e. - // occurence and '$n' replaced by occurence of subexpression #n. - // Since v.0.929 '$' used instead of '\' (for future extensions - // and for more Perl-compatibility) and accept more then one digit. - // If you want place into template raw '$' or '\', use prefix '\' - // Example: '1\$ is $2\\rub\\' -> '1$ is \rub\' - // If you want to place raw digit after '$n' you must delimit - // n with curly braces '{}'. - // Example: 'a$12bc' -> 'abc' - // 'a${1}2bc' -> 'a2bc'. - - procedure Split (AInputStr : RegExprString; APieces : TStrings); - // Split AInputStr into APieces by r.e. occurencies - // Internally calls Exec[Next] - - function Replace (AInputStr : RegExprString; - const AReplaceStr : RegExprString; - AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) //###0.946 - : RegExprString; {$IFDEF OverMeth} overload; - function Replace (AInputStr : RegExprString; - AReplaceFunc : TRegExprReplaceFunction) - : RegExprString; overload; - {$ENDIF} - function ReplaceEx (AInputStr : RegExprString; - AReplaceFunc : TRegExprReplaceFunction) - : RegExprString; - // Returns AInputStr with r.e. occurencies replaced by AReplaceStr - // If AUseSubstitution is true, then AReplaceStr will be used - // as template for Substitution methods. - // For example: - // Expression := '({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*'; - // Replace ('BLOCK( test1)', 'def "$1" value "$2"', True); - // will return: def 'BLOCK' value 'test1' - // Replace ('BLOCK( test1)', 'def "$1" value "$2"') - // will return: def "$1" value "$2" - // Internally calls Exec[Next] - // Overloaded version and ReplaceEx operate with call-back function, - // so You can implement really complex functionality. - - property SubExprMatchCount : integer read GetSubExprMatchCount; - // Number of subexpressions has been found in last Exec* call. - // If there are no subexpr. but whole expr was found (Exec* returned True), - // then SubExprMatchCount=0, if no subexpressions nor whole - // r.e. found (Exec* returned false) then SubExprMatchCount=-1. - // Note, that some subexpr. may be not found and for such - // subexpr. MathPos=MatchLen=-1 and Match=''. - // For example: Expression := '(1)?2(3)?'; - // Exec ('123'): SubExprMatchCount=2, Match[0]='123', [1]='1', [2]='3' - // Exec ('12'): SubExprMatchCount=1, Match[0]='12', [1]='1' - // Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3' - // Exec ('2'): SubExprMatchCount=0, Match[0]='2' - // Exec ('7') - return False: SubExprMatchCount=-1 - - property MatchPos [Idx : integer] : integer read GetMatchPos; - // pos of entrance subexpr. #Idx into tested in last Exec* - // string. First subexpr. have Idx=1, last - MatchCount, - // whole r.e. have Idx=0. - // Returns -1 if in r.e. no such subexpr. or this subexpr. - // not found in input string. - - property MatchLen [Idx : integer] : integer read GetMatchLen; - // len of entrance subexpr. #Idx r.e. into tested in last Exec* - // string. First subexpr. have Idx=1, last - MatchCount, - // whole r.e. have Idx=0. - // Returns -1 if in r.e. no such subexpr. or this subexpr. - // not found in input string. - // Remember - MatchLen may be 0 (if r.e. match empty string) ! - - property Match [Idx : integer] : RegExprString read GetMatch; - // == copy (InputString, MatchPos [Idx], MatchLen [Idx]) - // Returns '' if in r.e. no such subexpr. or this subexpr. - // not found in input string. - - function LastError : integer; - // Returns ID of last error, 0 if no errors (unusable if - // Error method raises exception) and clear internal status - // into 0 (no errors). - - function ErrorMsg (AErrorID : integer) : RegExprString; virtual; - // Returns Error message for error with ID = AErrorID. - - property CompilerErrorPos : integer read GetCompilerErrorPos; - // Returns pos in r.e. there compiler stopped. - // Usefull for error diagnostics - - property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927 - // Contains chars, treated as /s (initially filled with RegExprSpaceChars - // global constant) - - property WordChars : RegExprString read fWordChars write fWordChars; //###0.929 - // Contains chars, treated as /w (initially filled with RegExprWordChars - // global constant) - - property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941 - // line separators (like \n in Unix) - - property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941 - // paired line separator (like \r\n in DOS and Windows). - // must contain exactly two chars or no chars at all - - class function InvertCaseFunction (const Ch : REChar) : REChar; - // Converts Ch into upper case if it in lower case or in lower - // if it in upper (uses current system local setings) - - property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935 - // Set this property if you want to override case-insensitive functionality. - // Create set it to RegExprInvertCaseFunction (InvertCaseFunction by default) - - procedure Compile; //###0.941 - // [Re]compile r.e. Usefull for example for GUI r.e. editors (to check - // all properties validity). - - {$IFDEF RegExpPCodeDump} - function Dump : RegExprString; - // dump a compiled regexp in vaguely comprehensible form - {$ENDIF} - end; - - ERegExpr = class (Exception) - public - ErrorCode : integer; - CompilerErrorPos : integer; - end; - -const - RegExprInvertCaseFunction : TRegExprInvertCaseFunction = {$IFDEF FPC} nil {$ELSE} TRegExpr.InvertCaseFunction{$ENDIF}; - // defaul for InvertCase property - -function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; -// true if string AInputString match regular expression ARegExpr -// ! will raise exeption if syntax errors in ARegExpr - -procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); -// Split AInputStr into APieces by r.e. ARegExpr occurencies - -function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; - AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947 -// Returns AInputStr with r.e. occurencies replaced by AReplaceStr -// If AUseSubstitution is true, then AReplaceStr will be used -// as template for Substitution methods. -// For example: -// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', -// 'BLOCK( test1)', 'def "$1" value "$2"', True) -// will return: def 'BLOCK' value 'test1' -// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*', -// 'BLOCK( test1)', 'def "$1" value "$2"') -// will return: def "$1" value "$2" - -function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; -// Replace all metachars with its safe representation, -// for example 'abc$cd.(' converts into 'abc\$cd\.\(' -// This function usefull for r.e. autogeneration from -// user input - -function RegExprSubExpressions (const ARegExpr : string; - ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; -// Makes list of subexpressions found in ARegExpr r.e. -// In ASubExps every item represent subexpression, -// from first to last, in format: -// String - subexpression text (without '()') -// low word of Object - starting position in ARegExpr, including '(' -// if exists! (first position is 1) -// high word of Object - length, including starting '(' and ending ')' -// if exist! -// AExtendedSyntax - must be True if modifier /m will be On while -// using the r.e. -// Usefull for GUI editors of r.e. etc (You can find example of using -// in TestRExp.dpr project) -// Returns -// 0 Success. No unbalanced brackets was found; -// -1 There are not enough closing brackets ')'; -// -(n+1) At position n was found opening '[' without //###0.942 -// corresponding closing ']'; -// n At position n was found closing bracket ')' without -// corresponding opening '('. -// If Result <> 0, then ASubExpr can contain empty items or illegal ones - - -implementation - -uses - Windows; // CharUpper/Lower - -const - TRegExprVersionMajor : integer = 0; - TRegExprVersionMinor : integer = 952; - // TRegExpr.VersionMajor/Minor return values of this constants - - MaskModI = 1; // modifier /i bit in fModifiers - MaskModR = 2; // -"- /r - MaskModS = 4; // -"- /s - MaskModG = 8; // -"- /g - MaskModM = 16; // -"- /m - MaskModX = 32; // -"- /x - - {$IFDEF UniCode} - XIgnoredChars = ' '#9#$d#$a; - {$ELSE} - XIgnoredChars = [' ', #9, #$d, #$a]; - {$ENDIF} - -{=============================================================} -{=================== WideString functions ====================} -{=============================================================} - -{$IFDEF UniCode} - -function StrPCopy (Dest: PRegExprChar; const Source: RegExprString): PRegExprChar; - var - i, Len : Integer; - begin - Len := length (Source); //###0.932 - for i := 1 to Len do - Dest [i - 1] := Source [i]; - Dest [Len] := #0; - Result := Dest; - end; { of function StrPCopy ---------------------------------------------------------------} - -function StrLCopy (Dest, Source: PRegExprChar; MaxLen: Cardinal): PRegExprChar; - var i: Integer; - begin - for i := 0 to MaxLen - 1 do - Dest [i] := Source [i]; - Result := Dest; - end; { of function StrLCopy ---------------------------------------------------------------} - -function StrLen (Str: PRegExprChar): Cardinal; - begin - Result:=0; - while Str [result] <> #0 - do Inc (Result); - end; { of function StrLen ---------------------------------------------------------------} - -function StrPos (Str1, Str2: PRegExprChar): PRegExprChar; - var n: Integer; - begin - Result := nil; - n := Pos (RegExprString (Str2), RegExprString (Str1)); - if n = 0 - then EXIT; - Result := Str1 + n - 1; - end; { of function StrPos ---------------------------------------------------------------} - -function StrLComp (Str1, Str2: PRegExprChar; MaxLen: Cardinal): Integer; - var S1, S2: RegExprString; - begin - S1 := Str1; - S2 := Str2; - if Copy (S1, 1, MaxLen) > Copy (S2, 1, MaxLen) - then Result := 1 - else - if Copy (S1, 1, MaxLen) < Copy (S2, 1, MaxLen) - then Result := -1 - else Result := 0; - end; { function StrLComp ---------------------------------------------------------------} - -function StrScan (Str: PRegExprChar; Chr: WideChar): PRegExprChar; - begin - Result := nil; - while (Str^ <> #0) and (Str^ <> Chr) - do Inc (Str); - if (Str^ <> #0) - then Result := Str; - end; { of function StrScan ---------------------------------------------------------------} - -{$ENDIF} - - -{=============================================================} -{===================== Global functions ======================} -{=============================================================} - -function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean; - var r : TRegExpr; - begin - r := TRegExpr.Create; - try - r.Expression := ARegExpr; - Result := r.Exec (AInputStr); - finally r.Free; - end; - end; { of function ExecRegExpr ---------------------------------------------------------------} - -procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings); - var r : TRegExpr; - begin - APieces.Clear; - r := TRegExpr.Create; - try - r.Expression := ARegExpr; - r.Split (AInputStr, APieces); - finally r.Free; - end; - end; { of procedure SplitRegExpr ---------------------------------------------------------------} - -function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString; - AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; - begin - with TRegExpr.Create do try - Expression := ARegExpr; - Result := Replace (AInputStr, AReplaceStr, AUseSubstitution); - finally Free; - end; - end; { of function ReplaceRegExpr ---------------------------------------------------------------} - -function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString; - const - RegExprMetaSet : RegExprString = '^$.[()|?+*'+EscChar+'{' - + ']}'; // - this last are additional to META. - // Very similar to META array, but slighly changed. - // !Any changes in META array must be synchronized with this set. - var - i, i0, Len : integer; - begin - Result := ''; - Len := length (AStr); - i := 1; - i0 := i; - while i <= Len do begin - if Pos (AStr [i], RegExprMetaSet) > 0 then begin - Result := Result + System.Copy (AStr, i0, i - i0) - + EscChar + AStr [i]; - i0 := i + 1; - end; - inc (i); - end; - Result := Result + System.Copy (AStr, i0, MaxInt); // Tail - end; { of function QuoteRegExprMetaChars ---------------------------------------------------------------} - -function RegExprSubExpressions (const ARegExpr : string; - ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : integer; - type - TStackItemRec = record //###0.945 - SubExprIdx : integer; - StartPos : integer; - end; - TStackArray = packed array [0 .. NSUBEXPMAX - 1] of TStackItemRec; - var - Len, SubExprLen : integer; - i, i0 : integer; - Modif : integer; - Stack : ^TStackArray; //###0.945 - StackIdx, StackSz : integer; - begin - Result := 0; // no unbalanced brackets found at this very moment - - ASubExprs.Clear; // I don't think that adding to non empty list - // can be usefull, so I simplified algorithm to work only with empty list - - Len := length (ARegExpr); // some optimization tricks - - // first we have to calculate number of subexpression to reserve - // space in Stack array (may be we'll reserve more then need, but - // it's faster then memory reallocation during parsing) - StackSz := 1; // add 1 for entire r.e. - for i := 1 to Len do - if ARegExpr [i] = '(' - then inc (StackSz); -// SetLength (Stack, StackSz); //###0.945 - GetMem (Stack, SizeOf (TStackItemRec) * StackSz); - try - - StackIdx := 0; - i := 1; - while (i <= Len) do begin - case ARegExpr [i] of - '(': begin - if (i < Len) and (ARegExpr [i + 1] = '?') then begin - // this is not subexpression, but comment or other - // Perl extension. We must check is it (?ismxrg-ismxrg) - // and change AExtendedSyntax if /x is changed. - inc (i, 2); // skip '(?' - i0 := i; - while (i <= Len) and (ARegExpr [i] <> ')') - do inc (i); - if i > Len - then Result := -1 // unbalansed '(' - else - if TRegExpr.ParseModifiersStr (System.Copy (ARegExpr, i, i - i0), Modif) - then AExtendedSyntax := (Modif and MaskModX) <> 0; - end - else begin // subexpression starts - ASubExprs.Add (''); // just reserve space - with Stack [StackIdx] do begin - SubExprIdx := ASubExprs.Count - 1; - StartPos := i; - end; - inc (StackIdx); - end; - end; - ')': begin - if StackIdx = 0 - then Result := i // unbalanced ')' - else begin - dec (StackIdx); - with Stack [StackIdx] do begin - SubExprLen := i - StartPos + 1; - ASubExprs.Objects [SubExprIdx] := - TObject (StartPos or (SubExprLen ShL 16)); - ASubExprs [SubExprIdx] := System.Copy ( - ARegExpr, StartPos + 1, SubExprLen - 2); // add without brackets - end; - end; - end; - EscChar: inc (i); // skip quoted symbol - '[': begin - // we have to skip character ranges at once, because they can - // contain '#', and '#' in it must NOT be recognized as eXtended - // comment beginning! - i0 := i; - inc (i); - if ARegExpr [i] = ']' // cannot be 'emty' ranges - this interpretes - then inc (i); // as ']' by itself - while (i <= Len) and (ARegExpr [i] <> ']') do - if ARegExpr [i] = EscChar //###0.942 - then inc (i, 2) // skip 'escaped' char to prevent stopping at '\]' - else inc (i); - if (i > Len) or (ARegExpr [i] <> ']') //###0.942 - then Result := - (i0 + 1); // unbalansed '[' //###0.942 - end; - '#': if AExtendedSyntax then begin - // skip eXtended comments - while (i <= Len) and (ARegExpr [i] <> #$d) and (ARegExpr [i] <> #$a) - // do not use [#$d, #$a] due to UniCode compatibility - do inc (i); - while (i + 1 <= Len) and ((ARegExpr [i + 1] = #$d) or (ARegExpr [i + 1] = #$a)) - do inc (i); // attempt to work with different kinds of line separators - // now we are at the line separator that must be skipped. - end; - // here is no 'else' clause - we simply skip ordinary chars - end; // of case - inc (i); // skip scanned char - // ! can move after Len due to skipping quoted symbol - end; - - // check brackets balance - if StackIdx <> 0 - then Result := -1; // unbalansed '(' - - // check if entire r.e. added - if (ASubExprs.Count = 0) - or ((integer (ASubExprs.Objects [0]) and $FFFF) <> 1) - or (((integer (ASubExprs.Objects [0]) ShR 16) and $FFFF) <> Len) - // whole r.e. wasn't added because it isn't bracketed - // well, we add it now: - then ASubExprs.InsertObject (0, ARegExpr, TObject ((Len ShL 16) or 1)); - - finally FreeMem (Stack); - end; - end; { of function RegExprSubExpressions ---------------------------------------------------------------} - - - -const - MAGIC = TREOp (216);// programm signature - -// name opcode opnd? meaning - EEND = TREOp (0); // - End of program - BOL = TREOp (1); // - Match "" at beginning of line - EOL = TREOp (2); // - Match "" at end of line - ANY = TREOp (3); // - Match any one character - ANYOF = TREOp (4); // Str Match any character in string Str - ANYBUT = TREOp (5); // Str Match any char. not in string Str - BRANCH = TREOp (6); // Node Match this alternative, or the next - BACK = TREOp (7); // - Jump backward (Next < 0) - EXACTLY = TREOp (8); // Str Match string Str - NOTHING = TREOp (9); // - Match empty string - STAR = TREOp (10); // Node Match this (simple) thing 0 or more times - PLUS = TREOp (11); // Node Match this (simple) thing 1 or more times - ANYDIGIT = TREOp (12); // - Match any digit (equiv [0-9]) - NOTDIGIT = TREOp (13); // - Match not digit (equiv [0-9]) - ANYLETTER = TREOp (14); // - Match any letter from property WordChars - NOTLETTER = TREOp (15); // - Match not letter from property WordChars - ANYSPACE = TREOp (16); // - Match any space char (see property SpaceChars) - NOTSPACE = TREOp (17); // - Match not space char (see property SpaceChars) - BRACES = TREOp (18); // Node,Min,Max Match this (simple) thing from Min to Max times. - // Min and Max are TREBracesArg - COMMENT = TREOp (19); // - Comment ;) - EXACTLYCI = TREOp (20); // Str Match string Str case insensitive - ANYOFCI = TREOp (21); // Str Match any character in string Str, case insensitive - ANYBUTCI = TREOp (22); // Str Match any char. not in string Str, case insensitive - LOOPENTRY = TREOp (23); // Node Start of loop (Node - LOOP for this loop) - LOOP = TREOp (24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY. - // Min and Max are TREBracesArg - // Node - next node in sequence, - // LoopEntryJmp - associated LOOPENTRY node addr - ANYOFTINYSET= TREOp (25); // Chrs Match any one char from Chrs (exactly TinySetLen chars) - ANYBUTTINYSET=TREOp (26); // Chrs Match any one char not in Chrs (exactly TinySetLen chars) - ANYOFFULLSET= TREOp (27); // Set Match any one char from set of char - // - very fast (one CPU instruction !) but takes 32 bytes of p-code - BSUBEXP = TREOp (28); // Idx Match previously matched subexpression #Idx (stored as REChar) //###0.936 - BSUBEXPCI = TREOp (29); // Idx -"- in case-insensitive mode - - // Non-Greedy Style Ops //###0.940 - STARNG = TREOp (30); // Same as START but in non-greedy mode - PLUSNG = TREOp (31); // Same as PLUS but in non-greedy mode - BRACESNG = TREOp (32); // Same as BRACES but in non-greedy mode - LOOPNG = TREOp (33); // Same as LOOP but in non-greedy mode - - // Multiline mode \m - BOLML = TREOp (34); // - Match "" at beginning of line - EOLML = TREOp (35); // - Match "" at end of line - ANYML = TREOp (36); // - Match any one character - - // Word boundary - BOUND = TREOp (37); // Match "" between words //###0.943 - NOTBOUND = TREOp (38); // Match "" not between words //###0.943 - - // !!! Change OPEN value if you add new opcodes !!! - - OPEN = TREOp (39); // - Mark this point in input as start of \n - // OPEN + 1 is \1, etc. - CLOSE = TREOp (ord (OPEN) + NSUBEXP); - // - Analogous to OPEN. - - // !!! Don't add new OpCodes after CLOSE !!! - -// We work with p-code thru pointers, compatible with PRegExprChar. -// Note: all code components (TRENextOff, TREOp, TREBracesArg, etc) -// must have lengths that can be divided by SizeOf (REChar) ! -// A node is TREOp of opcode followed Next "pointer" of TRENextOff type. -// The Next is a offset from the opcode of the node containing it. -// An operand, if any, simply follows the node. (Note that much of -// the code generation knows about this implicit relationship!) -// Using TRENextOff=integer speed up p-code processing. - -// Opcodes description: -// -// BRANCH The set of branches constituting a single choice are hooked -// together with their "next" pointers, since precedence prevents -// anything being concatenated to any individual branch. The -// "next" pointer of the last BRANCH in a choice points to the -// thing following the whole choice. This is also where the -// final "next" pointer of each individual branch points; each -// branch starts with the operand node of a BRANCH node. -// BACK Normal "next" pointers all implicitly point forward; BACK -// exists to make loop structures possible. -// STAR,PLUS,BRACES '?', and complex '*' and '+', are implemented as -// circular BRANCH structures using BACK. Complex '{min,max}' -// - as pair LOOPENTRY-LOOP (see below). Simple cases (one -// character per match) are implemented with STAR, PLUS and -// BRACES for speed and to minimize recursive plunges. -// LOOPENTRY,LOOP {min,max} are implemented as special pair -// LOOPENTRY-LOOP. Each LOOPENTRY initialize loopstack for -// current level. -// OPEN,CLOSE are numbered at compile time. - - -{=============================================================} -{================== Error handling section ===================} -{=============================================================} - -const - reeOk = 0; - reeCompNullArgument = 100; - reeCompRegexpTooBig = 101; - reeCompParseRegTooManyBrackets = 102; - reeCompParseRegUnmatchedBrackets = 103; - reeCompParseRegUnmatchedBrackets2 = 104; - reeCompParseRegJunkOnEnd = 105; - reePlusStarOperandCouldBeEmpty = 106; - reeNestedSQP = 107; - reeBadHexDigit = 108; - reeInvalidRange = 109; - reeParseAtomTrailingBackSlash = 110; - reeNoHexCodeAfterBSlashX = 111; - reeHexCodeAfterBSlashXTooBig = 112; - reeUnmatchedSqBrackets = 113; - reeInternalUrp = 114; - reeQPSBFollowsNothing = 115; - reeTrailingBackSlash = 116; - reeRarseAtomInternalDisaster = 119; - reeBRACESArgTooBig = 122; - reeBracesMinParamGreaterMax = 124; - reeUnclosedComment = 125; - reeComplexBracesNotImplemented = 126; - reeUrecognizedModifier = 127; - reeBadLinePairedSeparator = 128; - reeRegRepeatCalledInappropriately = 1000; - reeMatchPrimMemoryCorruption = 1001; - reeMatchPrimCorruptedPointers = 1002; - reeNoExpression = 1003; - reeCorruptedProgram = 1004; - reeNoInpitStringSpecified = 1005; - reeOffsetMustBeGreaterThen0 = 1006; - reeExecNextWithoutExec = 1007; - reeGetInputStringWithoutInputString = 1008; - reeDumpCorruptedOpcode = 1011; - reeModifierUnsupported = 1013; - reeLoopStackExceeded = 1014; - reeLoopWithoutEntry = 1015; - reeBadPCodeImported = 2000; - -function TRegExpr.ErrorMsg (AErrorID : integer) : RegExprString; - begin - case AErrorID of - reeOk: Result := 'No errors'; - reeCompNullArgument: Result := 'TRegExpr(comp): Null Argument'; - reeCompRegexpTooBig: Result := 'TRegExpr(comp): Regexp Too Big'; - reeCompParseRegTooManyBrackets: Result := 'TRegExpr(comp): ParseReg Too Many ()'; - reeCompParseRegUnmatchedBrackets: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; - reeCompParseRegUnmatchedBrackets2: Result := 'TRegExpr(comp): ParseReg Unmatched ()'; - reeCompParseRegJunkOnEnd: Result := 'TRegExpr(comp): ParseReg Junk On End'; - reePlusStarOperandCouldBeEmpty: Result := 'TRegExpr(comp): *+ Operand Could Be Empty'; - reeNestedSQP: Result := 'TRegExpr(comp): Nested *?+'; - reeBadHexDigit: Result := 'TRegExpr(comp): Bad Hex Digit'; - reeInvalidRange: Result := 'TRegExpr(comp): Invalid [] Range'; - reeParseAtomTrailingBackSlash: Result := 'TRegExpr(comp): Parse Atom Trailing \'; - reeNoHexCodeAfterBSlashX: Result := 'TRegExpr(comp): No Hex Code After \x'; - reeHexCodeAfterBSlashXTooBig: Result := 'TRegExpr(comp): Hex Code After \x Is Too Big'; - reeUnmatchedSqBrackets: Result := 'TRegExpr(comp): Unmatched []'; - reeInternalUrp: Result := 'TRegExpr(comp): Internal Urp'; - reeQPSBFollowsNothing: Result := 'TRegExpr(comp): ?+*{ Follows Nothing'; - reeTrailingBackSlash: Result := 'TRegExpr(comp): Trailing \'; - reeRarseAtomInternalDisaster: Result := 'TRegExpr(comp): RarseAtom Internal Disaster'; - reeBRACESArgTooBig: Result := 'TRegExpr(comp): BRACES Argument Too Big'; - reeBracesMinParamGreaterMax: Result := 'TRegExpr(comp): BRACE Min Param Greater then Max'; - reeUnclosedComment: Result := 'TRegExpr(comp): Unclosed (?#Comment)'; - reeComplexBracesNotImplemented: Result := 'TRegExpr(comp): If you want take part in beta-testing BRACES ''{min,max}'' and non-greedy ops ''*?'', ''+?'', ''??'' for complex cases - remove ''.'' from {.$DEFINE ComplexBraces}'; - reeUrecognizedModifier: Result := 'TRegExpr(comp): Urecognized Modifier'; - reeBadLinePairedSeparator: Result := 'TRegExpr(comp): LinePairedSeparator must countain two different chars or no chars at all'; - - reeRegRepeatCalledInappropriately: Result := 'TRegExpr(exec): RegRepeat Called Inappropriately'; - reeMatchPrimMemoryCorruption: Result := 'TRegExpr(exec): MatchPrim Memory Corruption'; - reeMatchPrimCorruptedPointers: Result := 'TRegExpr(exec): MatchPrim Corrupted Pointers'; - reeNoExpression: Result := 'TRegExpr(exec): Not Assigned Expression Property'; - reeCorruptedProgram: Result := 'TRegExpr(exec): Corrupted Program'; - reeNoInpitStringSpecified: Result := 'TRegExpr(exec): No Input String Specified'; - reeOffsetMustBeGreaterThen0: Result := 'TRegExpr(exec): Offset Must Be Greater Then 0'; - reeExecNextWithoutExec: Result := 'TRegExpr(exec): ExecNext Without Exec[Pos]'; - reeGetInputStringWithoutInputString: Result := 'TRegExpr(exec): GetInputString Without InputString'; - reeDumpCorruptedOpcode: Result := 'TRegExpr(dump): Corrupted Opcode'; - reeLoopStackExceeded: Result := 'TRegExpr(exec): Loop Stack Exceeded'; - reeLoopWithoutEntry: Result := 'TRegExpr(exec): Loop Without LoopEntry !'; - - reeBadPCodeImported: Result := 'TRegExpr(misc): Bad p-code imported'; - else Result := 'Unknown error'; - end; - end; { of procedure TRegExpr.Error ---------------------------------------------------------------} - -function TRegExpr.LastError : integer; - begin - Result := fLastError; - fLastError := reeOk; - end; { of function TRegExpr.LastError ---------------------------------------------------------------} - - -{=============================================================} -{===================== Common section ========================} -{=============================================================} - -class function TRegExpr.VersionMajor : integer; //###0.944 - begin - Result := TRegExprVersionMajor; - end; { of class function TRegExpr.VersionMajor ---------------------------------------------------------------} - -class function TRegExpr.VersionMinor : integer; //###0.944 - begin - Result := TRegExprVersionMinor; - end; { of class function TRegExpr.VersionMinor ---------------------------------------------------------------} - -constructor TRegExpr.Create; - begin - inherited; - programm := nil; - fExpression := nil; - fInputString := nil; - - regexpbeg := nil; - fExprIsCompiled := false; - - ModifierI := RegExprModifierI; - ModifierR := RegExprModifierR; - ModifierS := RegExprModifierS; - ModifierG := RegExprModifierG; - ModifierM := RegExprModifierM; //###0.940 - - SpaceChars := RegExprSpaceChars; //###0.927 - WordChars := RegExprWordChars; //###0.929 - fInvertCase := RegExprInvertCaseFunction; //###0.927 - - fLineSeparators := RegExprLineSeparators; //###0.941 - LinePairedSeparator := RegExprLinePairedSeparator; //###0.941 - end; { of constructor TRegExpr.Create ---------------------------------------------------------------} - -destructor TRegExpr.Destroy; - begin - if programm <> nil - then FreeMem (programm); - if fExpression <> nil - then FreeMem (fExpression); - if fInputString <> nil - then FreeMem (fInputString); - end; { of destructor TRegExpr.Destroy ---------------------------------------------------------------} - -class function TRegExpr.InvertCaseFunction (const Ch : REChar) : REChar; - begin - {$IFDEF UniCode} - if Ch >= #128 - then Result := Ch - else - {$ENDIF} - begin - Result := {$IFDEF FPC}AnsiUpperCase (Ch) [1]{$ELSE} REChar (CharUpper (PChar (Ch))){$ENDIF}; - if Result = Ch - then Result := {$IFDEF FPC}AnsiLowerCase (Ch) [1]{$ELSE} REChar (CharLower (PChar (Ch))){$ENDIF}; - end; - end; { of function TRegExpr.InvertCaseFunction ---------------------------------------------------------------} - -function TRegExpr.GetExpression : RegExprString; - begin - if fExpression <> nil - then Result := fExpression - else Result := ''; - end; { of function TRegExpr.GetExpression ---------------------------------------------------------------} - -procedure TRegExpr.SetExpression (const s : RegExprString); - var - Len : integer; //###0.950 - begin - if (s <> fExpression) or not fExprIsCompiled then begin - fExprIsCompiled := false; - if fExpression <> nil then begin - FreeMem (fExpression); - fExpression := nil; - end; - if s <> '' then begin - Len := length (s); //###0.950 - GetMem (fExpression, (Len + 1) * SizeOf (REChar)); -// StrPCopy (fExpression, s); //###0.950 replaced due to StrPCopy limitation of 255 chars - {$IFDEF UniCode} - StrPCopy (fExpression, Copy (s, 1, Len)); //###0.950 - {$ELSE} - StrLCopy (fExpression, PRegExprChar (s), Len); //###0.950 - {$ENDIF UniCode} - - InvalidateProgramm; //###0.941 - end; - end; - end; { of procedure TRegExpr.SetExpression ---------------------------------------------------------------} - -function TRegExpr.GetSubExprMatchCount : integer; - begin - if Assigned (fInputString) then begin - Result := NSUBEXP - 1; - while (Result > 0) and ((startp [Result] = nil) - or (endp [Result] = nil)) - do dec (Result); - end - else Result := -1; - end; { of function TRegExpr.GetSubExprMatchCount ---------------------------------------------------------------} - -function TRegExpr.GetMatchPos (Idx : integer) : integer; - begin - if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) - and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin - Result := (startp [Idx] - fInputString) + 1; - end - else Result := -1; - end; { of function TRegExpr.GetMatchPos ---------------------------------------------------------------} - -function TRegExpr.GetMatchLen (Idx : integer) : integer; - begin - if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) - and Assigned (startp [Idx]) and Assigned (endp [Idx]) then begin - Result := endp [Idx] - startp [Idx]; - end - else Result := -1; - end; { of function TRegExpr.GetMatchLen ---------------------------------------------------------------} - -function TRegExpr.GetMatch (Idx : integer) : RegExprString; - begin - if (Idx >= 0) and (Idx < NSUBEXP) and Assigned (fInputString) - and Assigned (startp [Idx]) and Assigned (endp [Idx]) - //then Result := copy (fInputString, MatchPos [Idx], MatchLen [Idx]) //###0.929 - then SetString (Result, startp [idx], endp [idx] - startp [idx]) - else Result := ''; - end; { of function TRegExpr.GetMatch ---------------------------------------------------------------} - -function TRegExpr.GetModifierStr : RegExprString; - begin - Result := '-'; - - if ModifierI - then Result := 'i' + Result - else Result := Result + 'i'; - if ModifierR - then Result := 'r' + Result - else Result := Result + 'r'; - if ModifierS - then Result := 's' + Result - else Result := Result + 's'; - if ModifierG - then Result := 'g' + Result - else Result := Result + 'g'; - if ModifierM - then Result := 'm' + Result - else Result := Result + 'm'; - if ModifierX - then Result := 'x' + Result - else Result := Result + 'x'; - - if Result [length (Result)] = '-' // remove '-' if all modifiers are 'On' - then System.Delete (Result, length (Result), 1); - end; { of function TRegExpr.GetModifierStr ---------------------------------------------------------------} - -class function TRegExpr.ParseModifiersStr (const AModifiers : RegExprString; -var AModifiersInt : integer) : boolean; -// !!! Be carefull - this is class function and must not use object instance fields - var - i : integer; - IsOn : boolean; - Mask : integer; - begin - Result := true; - IsOn := true; - Mask := 0; // prevent compiler warning - for i := 1 to length (AModifiers) do - if AModifiers [i] = '-' - then IsOn := false - else begin - if Pos (AModifiers [i], 'iI') > 0 - then Mask := MaskModI - else if Pos (AModifiers [i], 'rR') > 0 - then Mask := MaskModR - else if Pos (AModifiers [i], 'sS') > 0 - then Mask := MaskModS - else if Pos (AModifiers [i], 'gG') > 0 - then Mask := MaskModG - else if Pos (AModifiers [i], 'mM') > 0 - then Mask := MaskModM - else if Pos (AModifiers [i], 'xX') > 0 - then Mask := MaskModX - else begin - Result := false; - EXIT; - end; - if IsOn - then AModifiersInt := AModifiersInt or Mask - else AModifiersInt := AModifiersInt and not Mask; - end; - end; { of function TRegExpr.ParseModifiersStr ---------------------------------------------------------------} - -procedure TRegExpr.SetModifierStr (const AModifiers : RegExprString); - begin - if not ParseModifiersStr (AModifiers, fModifiers) - then Error (reeModifierUnsupported); - end; { of procedure TRegExpr.SetModifierStr ---------------------------------------------------------------} - -function TRegExpr.GetModifier (AIndex : integer) : boolean; - var - Mask : integer; - begin - Result := false; - case AIndex of - 1: Mask := MaskModI; - 2: Mask := MaskModR; - 3: Mask := MaskModS; - 4: Mask := MaskModG; - 5: Mask := MaskModM; - 6: Mask := MaskModX; - else begin - Error (reeModifierUnsupported); - EXIT; - end; - end; - Result := (fModifiers and Mask) <> 0; - end; { of function TRegExpr.GetModifier ---------------------------------------------------------------} - -procedure TRegExpr.SetModifier (AIndex : integer; ASet : boolean); - var - Mask : integer; - begin - case AIndex of - 1: Mask := MaskModI; - 2: Mask := MaskModR; - 3: Mask := MaskModS; - 4: Mask := MaskModG; - 5: Mask := MaskModM; - 6: Mask := MaskModX; - else begin - Error (reeModifierUnsupported); - EXIT; - end; - end; - if ASet - then fModifiers := fModifiers or Mask - else fModifiers := fModifiers and not Mask; - end; { of procedure TRegExpr.SetModifier ---------------------------------------------------------------} - - -{=============================================================} -{==================== Compiler section =======================} -{=============================================================} - -procedure TRegExpr.InvalidateProgramm; - begin - if programm <> nil then begin - FreeMem (programm); - programm := nil; - end; - end; { of procedure TRegExpr.InvalidateProgramm ---------------------------------------------------------------} - -procedure TRegExpr.Compile; //###0.941 - begin - if fExpression = nil then begin // No Expression assigned - Error (reeNoExpression); - EXIT; - end; - CompileRegExpr (fExpression); - end; { of procedure TRegExpr.Compile ---------------------------------------------------------------} - -function TRegExpr.IsProgrammOk : boolean; - {$IFNDEF UniCode} - var - i : integer; - {$ENDIF} - begin - Result := false; - - // check modifiers - if fModifiers <> fProgModifiers //###0.941 - then InvalidateProgramm; - - // can we optimize line separators by using sets? - {$IFNDEF UniCode} - fLineSeparatorsSet := []; - for i := 1 to length (fLineSeparators) - do System.Include (fLineSeparatorsSet, fLineSeparators [i]); - {$ENDIF} - - // [Re]compile if needed - if programm = nil - then Compile; //###0.941 - - // check [re]compiled programm - if programm = nil - then EXIT // error was set/raised by Compile (was reeExecAfterCompErr) - else if programm [0] <> MAGIC // Program corrupted. - then Error (reeCorruptedProgram) - else Result := true; - end; { of function TRegExpr.IsProgrammOk ---------------------------------------------------------------} - -procedure TRegExpr.Tail (p : PRegExprChar; val : PRegExprChar); -// set the next-pointer at the end of a node chain - var - scan : PRegExprChar; - temp : PRegExprChar; -// i : int64; - begin - if p = @regdummy - then EXIT; - // Find last node. - scan := p; - REPEAT - temp := regnext (scan); - if temp = nil - then BREAK; - scan := temp; - UNTIL false; - // Set Next 'pointer' - if val < scan - then PRENextOff (scan + REOpSz)^ := - (scan - val) //###0.948 - // work around PWideChar subtraction bug (Delphi uses - // shr after subtraction to calculate widechar distance %-( ) - // so, if difference is negative we have .. the "feature" :( - // I could wrap it in $IFDEF UniCode, but I didn't because - // "P – Q computes the difference between the address given - // by P (the higher address) and the address given by Q (the - // lower address)" - Delphi help quotation. - else PRENextOff (scan + REOpSz)^ := val - scan; //###0.933 - end; { of procedure TRegExpr.Tail ---------------------------------------------------------------} - -procedure TRegExpr.OpTail (p : PRegExprChar; val : PRegExprChar); -// regtail on operand of first argument; nop if operandless - begin - // "Operandless" and "op != BRANCH" are synonymous in practice. - if (p = nil) or (p = @regdummy) or (PREOp (p)^ <> BRANCH) - then EXIT; - Tail (p + REOpSz + RENextOffSz, val); //###0.933 - end; { of procedure TRegExpr.OpTail ---------------------------------------------------------------} - -function TRegExpr.EmitNode (op : TREOp) : PRegExprChar; //###0.933 -// emit a node, return location - begin - Result := regcode; - if Result <> @regdummy then begin - PREOp (regcode)^ := op; - inc (regcode, REOpSz); - PRENextOff (regcode)^ := 0; // Next "pointer" := nil - inc (regcode, RENextOffSz); - end - else inc (regsize, REOpSz + RENextOffSz); // compute code size without code generation - end; { of function TRegExpr.EmitNode ---------------------------------------------------------------} - -procedure TRegExpr.EmitC (b : REChar); -// emit a byte to code - begin - if regcode <> @regdummy then begin - regcode^ := b; - inc (regcode); - end - else inc (regsize); // Type of p-code pointer always is ^REChar - end; { of procedure TRegExpr.EmitC ---------------------------------------------------------------} - -procedure TRegExpr.InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); -// insert an operator in front of already-emitted operand -// Means relocating the operand. - var - src, dst, place : PRegExprChar; - i : integer; - begin - if regcode = @regdummy then begin - inc (regsize, sz); - EXIT; - end; - src := regcode; - inc (regcode, sz); - dst := regcode; - while src > opnd do begin - dec (dst); - dec (src); - dst^ := src^; - end; - place := opnd; // Op node, where operand used to be. - PREOp (place)^ := op; - inc (place, REOpSz); - for i := 1 + REOpSz to sz do begin - place^ := #0; - inc (place); - end; - end; { of procedure TRegExpr.InsertOperator ---------------------------------------------------------------} - -function strcspn (s1 : PRegExprChar; s2 : PRegExprChar) : integer; -// find length of initial segment of s1 consisting -// entirely of characters not from s2 - var scan1, scan2 : PRegExprChar; - begin - Result := 0; - scan1 := s1; - while scan1^ <> #0 do begin - scan2 := s2; - while scan2^ <> #0 do - if scan1^ = scan2^ - then EXIT - else inc (scan2); - inc (Result); - inc (scan1) - end; - end; { of function strcspn ---------------------------------------------------------------} - -const -// Flags to be passed up and down. - HASWIDTH = 01; // Known never to match nil string. - SIMPLE = 02; // Simple enough to be STAR/PLUS/BRACES operand. - SPSTART = 04; // Starts with * or +. - WORST = 0; // Worst case. - META : array [0 .. 12] of REChar = ( - '^', '$', '.', '[', '(', ')', '|', '?', '+', '*', EscChar, '{', #0); - // Any modification must be synchronized with QuoteRegExprMetaChars !!! - -{$IFDEF UniCode} - RusRangeLo : array [0 .. 33] of REChar = - (#$430,#$431,#$432,#$433,#$434,#$435,#$451,#$436,#$437, - #$438,#$439,#$43A,#$43B,#$43C,#$43D,#$43E,#$43F, - #$440,#$441,#$442,#$443,#$444,#$445,#$446,#$447, - #$448,#$449,#$44A,#$44B,#$44C,#$44D,#$44E,#$44F,#0); - RusRangeHi : array [0 .. 33] of REChar = - (#$410,#$411,#$412,#$413,#$414,#$415,#$401,#$416,#$417, - #$418,#$419,#$41A,#$41B,#$41C,#$41D,#$41E,#$41F, - #$420,#$421,#$422,#$423,#$424,#$425,#$426,#$427, - #$428,#$429,#$42A,#$42B,#$42C,#$42D,#$42E,#$42F,#0); - RusRangeLoLow = #$430{'à'}; - RusRangeLoHigh = #$44F{'ÿ'}; - RusRangeHiLow = #$410{'À'}; - RusRangeHiHigh = #$42F{'ß'}; -{$ELSE} - RusRangeLo = 'àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ'; - RusRangeHi = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß'; - RusRangeLoLow = 'à'; - RusRangeLoHigh = 'ÿ'; - RusRangeHiLow = 'À'; - RusRangeHiHigh = 'ß'; -{$ENDIF} - -function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean; -// compile a regular expression into internal code -// We can't allocate space until we know how big the compiled form will be, -// but we can't compile it (and thus know how big it is) until we've got a -// place to put the code. So we cheat: we compile it twice, once with code -// generation turned off and size counting turned on, and once "for real". -// This also means that we don't allocate space until we are sure that the -// thing really will compile successfully, and we never have to move the -// code and thus invalidate pointers into it. (Note that it has to be in -// one piece because free() must be able to free it all.) -// Beware that the optimization-preparation code in here knows about some -// of the structure of the compiled regexp. - var - scan, longest : PRegExprChar; - len : cardinal; - flags : integer; - begin - Result := false; // life too dark - - regparse := nil; // for correct error handling - regexpbeg := exp; - try - - if programm <> nil then begin - FreeMem (programm); - programm := nil; - end; - - if exp = nil then begin - Error (reeCompNullArgument); - EXIT; - end; - - fProgModifiers := fModifiers; - // well, may it's paranoia. I'll check it later... !!!!!!!! - - // First pass: determine size, legality. - fCompModifiers := fModifiers; - regparse := exp; - regnpar := 1; - regsize := 0; - regcode := @regdummy; - EmitC (MAGIC); - if ParseReg (0, flags) = nil - then EXIT; - - // Small enough for 2-bytes programm pointers ? - // ###0.933 no real p-code length limits now :))) -// if regsize >= 64 * 1024 then begin -// Error (reeCompRegexpTooBig); -// EXIT; -// end; - - // Allocate space. - GetMem (programm, regsize * SizeOf (REChar)); - - // Second pass: emit code. - fCompModifiers := fModifiers; - regparse := exp; - regnpar := 1; - regcode := programm; - EmitC (MAGIC); - if ParseReg (0, flags) = nil - then EXIT; - - // Dig out information for optimizations. - {$IFDEF UseFirstCharSet} //###0.929 - FirstCharSet := []; - FillFirstCharSet (programm + REOpSz); - {$ENDIF} - regstart := #0; // Worst-case defaults. - reganch := #0; - regmust := nil; - regmlen := 0; - scan := programm + REOpSz; // First BRANCH. - if PREOp (regnext (scan))^ = EEND then begin // Only one top-level choice. - scan := scan + REOpSz + RENextOffSz; - - // Starting-point info. - if PREOp (scan)^ = EXACTLY - then regstart := (scan + REOpSz + RENextOffSz)^ - else if PREOp (scan)^ = BOL - then inc (reganch); - - // If there's something expensive in the r.e., find the longest - // literal string that must appear and make it the regmust. Resolve - // ties in favor of later strings, since the regstart check works - // with the beginning of the r.e. and avoiding duplication - // strengthens checking. Not a strong reason, but sufficient in the - // absence of others. - if (flags and SPSTART) <> 0 then begin - longest := nil; - len := 0; - while scan <> nil do begin - if (PREOp (scan)^ = EXACTLY) - and (strlen (scan + REOpSz + RENextOffSz) >= len) then begin - longest := scan + REOpSz + RENextOffSz; - len := strlen (longest); - end; - scan := regnext (scan); - end; - regmust := longest; - regmlen := len; - end; - end; - - Result := true; - - finally begin - if not Result - then InvalidateProgramm; - regexpbeg := nil; - fExprIsCompiled := Result; //###0.944 - end; - end; - - end; { of function TRegExpr.CompileRegExpr ---------------------------------------------------------------} - -function TRegExpr.ParseReg (paren : integer; var flagp : integer) : PRegExprChar; -// regular expression, i.e. main body or parenthesized thing -// Caller must absorb opening parenthesis. -// Combining parenthesis handling with the base level of regular expression -// is a trifle forced, but the need to tie the tails of the branches to what -// follows makes it hard to avoid. - var - ret, br, ender : PRegExprChar; - parno : integer; - flags : integer; - SavedModifiers : integer; - begin - Result := nil; - flagp := HASWIDTH; // Tentatively. - parno := 0; // eliminate compiler stupid warning - SavedModifiers := fCompModifiers; - - // Make an OPEN node, if parenthesized. - if paren <> 0 then begin - if regnpar >= NSUBEXP then begin - Error (reeCompParseRegTooManyBrackets); - EXIT; - end; - parno := regnpar; - inc (regnpar); - ret := EmitNode (TREOp (ord (OPEN) + parno)); - end - else ret := nil; - - // Pick up the branches, linking them together. - br := ParseBranch (flags); - if br = nil then begin - Result := nil; - EXIT; - end; - if ret <> nil - then Tail (ret, br) // OPEN -> first. - else ret := br; - if (flags and HASWIDTH) = 0 - then flagp := flagp and not HASWIDTH; - flagp := flagp or flags and SPSTART; - while (regparse^ = '|') do begin - inc (regparse); - br := ParseBranch (flags); - if br = nil then begin - Result := nil; - EXIT; - end; - Tail (ret, br); // BRANCH -> BRANCH. - if (flags and HASWIDTH) = 0 - then flagp := flagp and not HASWIDTH; - flagp := flagp or flags and SPSTART; - end; - - // Make a closing node, and hook it on the end. - if paren <> 0 - then ender := EmitNode (TREOp (ord (CLOSE) + parno)) - else ender := EmitNode (EEND); - Tail (ret, ender); - - // Hook the tails of the branches to the closing node. - br := ret; - while br <> nil do begin - OpTail (br, ender); - br := regnext (br); - end; - - // Check for proper termination. - if paren <> 0 then - if regparse^ <> ')' then begin - Error (reeCompParseRegUnmatchedBrackets); - EXIT; - end - else inc (regparse); // skip trailing ')' - if (paren = 0) and (regparse^ <> #0) then begin - if regparse^ = ')' - then Error (reeCompParseRegUnmatchedBrackets2) - else Error (reeCompParseRegJunkOnEnd); - EXIT; - end; - fCompModifiers := SavedModifiers; // restore modifiers of parent - Result := ret; - end; { of function TRegExpr.ParseReg ---------------------------------------------------------------} - -function TRegExpr.ParseBranch (var flagp : integer) : PRegExprChar; -// one alternative of an | operator -// Implements the concatenation operator. - var - ret, chain, latest : PRegExprChar; - flags : integer; - begin - flagp := WORST; // Tentatively. - - ret := EmitNode (BRANCH); - chain := nil; - while (regparse^ <> #0) and (regparse^ <> '|') - and (regparse^ <> ')') do begin - latest := ParsePiece (flags); - if latest = nil then begin - Result := nil; - EXIT; - end; - flagp := flagp or flags and HASWIDTH; - if chain = nil // First piece. - then flagp := flagp or flags and SPSTART - else Tail (chain, latest); - chain := latest; - end; - if chain = nil // Loop ran zero times. - then EmitNode (NOTHING); - Result := ret; - end; { of function TRegExpr.ParseBranch ---------------------------------------------------------------} - -function TRegExpr.ParsePiece (var flagp : integer) : PRegExprChar; -// something followed by possible [*+?{] -// Note that the branching code sequences used for ? and the general cases -// of * and + and { are somewhat optimized: they use the same NOTHING node as -// both the endmarker for their branch list and the body of the last branch. -// It might seem that this node could be dispensed with entirely, but the -// endmarker role is not redundant. - function parsenum (AStart, AEnd : PRegExprChar) : TREBracesArg; - begin - Result := 0; - if AEnd - AStart + 1 > 8 then begin // prevent stupid scanning - Error (reeBRACESArgTooBig); - EXIT; - end; - while AStart <= AEnd do begin - Result := Result * 10 + (ord (AStart^) - ord ('0')); - inc (AStart); - end; - if (Result > MaxBracesArg) or (Result < 0) then begin - Error (reeBRACESArgTooBig); - EXIT; - end; - end; - - var - op : REChar; - NonGreedyOp, NonGreedyCh : boolean; //###0.940 - TheOp : TREOp; //###0.940 - NextNode : PRegExprChar; - flags : integer; - BracesMin, Bracesmax : TREBracesArg; - p, savedparse : PRegExprChar; - - procedure EmitComplexBraces (ABracesMin, ABracesMax : TREBracesArg; - ANonGreedyOp : boolean); //###0.940 - {$IFDEF ComplexBraces} - var - off : integer; - {$ENDIF} - begin - {$IFNDEF ComplexBraces} - Error (reeComplexBracesNotImplemented); - {$ELSE} - if ANonGreedyOp - then TheOp := LOOPNG - else TheOp := LOOP; - InsertOperator (LOOPENTRY, Result, REOpSz + RENextOffSz); - NextNode := EmitNode (TheOp); - if regcode <> @regdummy then begin - off := (Result + REOpSz + RENextOffSz) - - (regcode - REOpSz - RENextOffSz); // back to Atom after LOOPENTRY - PREBracesArg (regcode)^ := ABracesMin; - inc (regcode, REBracesArgSz); - PREBracesArg (regcode)^ := ABracesMax; - inc (regcode, REBracesArgSz); - PRENextOff (regcode)^ := off; - inc (regcode, RENextOffSz); - end - else inc (regsize, REBracesArgSz * 2 + RENextOffSz); - Tail (Result, NextNode); // LOOPENTRY -> LOOP - if regcode <> @regdummy then - Tail (Result + REOpSz + RENextOffSz, NextNode); // Atom -> LOOP - {$ENDIF} - end; - - procedure EmitSimpleBraces (ABracesMin, ABracesMax : TREBracesArg; - ANonGreedyOp : boolean); //###0.940 - begin - if ANonGreedyOp //###0.940 - then TheOp := BRACESNG - else TheOp := BRACES; - InsertOperator (TheOp, Result, REOpSz + RENextOffSz + REBracesArgSz * 2); - if regcode <> @regdummy then begin - PREBracesArg (Result + REOpSz + RENextOffSz)^ := ABracesMin; - PREBracesArg (Result + REOpSz + RENextOffSz + REBracesArgSz)^ := ABracesMax; - end; - end; - - begin - Result := ParseAtom (flags); - if Result = nil - then EXIT; - - op := regparse^; - if not ((op = '*') or (op = '+') or (op = '?') or (op = '{')) then begin - flagp := flags; - EXIT; - end; - if ((flags and HASWIDTH) = 0) and (op <> '?') then begin - Error (reePlusStarOperandCouldBeEmpty); - EXIT; - end; - - case op of - '*': begin - flagp := WORST or SPSTART; - NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 - NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 - if (flags and SIMPLE) = 0 then begin - if NonGreedyOp //###0.940 - then EmitComplexBraces (0, MaxBracesArg, NonGreedyOp) - else begin // Emit x* as (x&|), where & means "self". - InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x - OpTail (Result, EmitNode (BACK)); // and loop - OpTail (Result, Result); // back - Tail (Result, EmitNode (BRANCH)); // or - Tail (Result, EmitNode (NOTHING)); // nil. - end - end - else begin // Simple - if NonGreedyOp //###0.940 - then TheOp := STARNG - else TheOp := STAR; - InsertOperator (TheOp, Result, REOpSz + RENextOffSz); - end; - if NonGreedyCh //###0.940 - then inc (regparse); // Skip extra char ('?') - end; { of case '*'} - '+': begin - flagp := WORST or SPSTART or HASWIDTH; - NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 - NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 - if (flags and SIMPLE) = 0 then begin - if NonGreedyOp //###0.940 - then EmitComplexBraces (1, MaxBracesArg, NonGreedyOp) - else begin // Emit x+ as x(&|), where & means "self". - NextNode := EmitNode (BRANCH); // Either - Tail (Result, NextNode); - Tail (EmitNode (BACK), Result); // loop back - Tail (NextNode, EmitNode (BRANCH)); // or - Tail (Result, EmitNode (NOTHING)); // nil. - end - end - else begin // Simple - if NonGreedyOp //###0.940 - then TheOp := PLUSNG - else TheOp := PLUS; - InsertOperator (TheOp, Result, REOpSz + RENextOffSz); - end; - if NonGreedyCh //###0.940 - then inc (regparse); // Skip extra char ('?') - end; { of case '+'} - '?': begin - flagp := WORST; - NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 - NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 - if NonGreedyOp then begin //###0.940 // We emit x?? as x{0,1}? - if (flags and SIMPLE) = 0 - then EmitComplexBraces (0, 1, NonGreedyOp) - else EmitSimpleBraces (0, 1, NonGreedyOp); - end - else begin // greedy '?' - InsertOperator (BRANCH, Result, REOpSz + RENextOffSz); // Either x - Tail (Result, EmitNode (BRANCH)); // or - NextNode := EmitNode (NOTHING); // nil. - Tail (Result, NextNode); - OpTail (Result, NextNode); - end; - if NonGreedyCh //###0.940 - then inc (regparse); // Skip extra char ('?') - end; { of case '?'} - '{': begin - savedparse := regparse; - // !!!!!!!!!!!! - // Filip Jirsak's note - what will happen, when we are at the end of regparse? - inc (regparse); - p := regparse; - while Pos (regparse^, '0123456789') > 0 // MUST appear - do inc (regparse); - if (regparse^ <> '}') and (regparse^ <> ',') or (p = regparse) then begin - regparse := savedparse; - flagp := flags; - EXIT; - end; - BracesMin := parsenum (p, regparse - 1); - if regparse^ = ',' then begin - inc (regparse); - p := regparse; - while Pos (regparse^, '0123456789') > 0 - do inc (regparse); - if regparse^ <> '}' then begin - regparse := savedparse; - EXIT; - end; - if p = regparse - then BracesMax := MaxBracesArg - else BracesMax := parsenum (p, regparse - 1); - end - else BracesMax := BracesMin; // {n} == {n,n} - if BracesMin > BracesMax then begin - Error (reeBracesMinParamGreaterMax); - EXIT; - end; - if BracesMin > 0 - then flagp := WORST; - if BracesMax > 0 - then flagp := flagp or HASWIDTH or SPSTART; - - NonGreedyCh := (regparse + 1)^ = '?'; //###0.940 - NonGreedyOp := NonGreedyCh or ((fCompModifiers and MaskModG) = 0); //###0.940 - if (flags and SIMPLE) <> 0 - then EmitSimpleBraces (BracesMin, BracesMax, NonGreedyOp) - else EmitComplexBraces (BracesMin, BracesMax, NonGreedyOp); - if NonGreedyCh //###0.940 - then inc (regparse); // Skip extra char '?' - end; { of case '{'} -// else // here we can't be - end; { of case op} - - inc (regparse); - if (regparse^ = '*') or (regparse^ = '+') or (regparse^ = '?') or (regparse^ = '{') then begin - Error (reeNestedSQP); - EXIT; - end; - end; { of function TRegExpr.ParsePiece ---------------------------------------------------------------} - -function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar; -// the lowest level -// Optimization: gobbles an entire sequence of ordinary characters so that -// it can turn them into a single node, which is smaller to store and -// faster to run. Backslashed characters are exceptions, each becoming a -// separate node; the code is simpler that way and it's not worth fixing. - var - ret : PRegExprChar; - flags : integer; - RangeBeg, RangeEnd : REChar; - CanBeRange : boolean; - len : integer; - ender : REChar; - begmodfs : PRegExprChar; - - {$IFDEF UseSetOfChar} //###0.930 - RangePCodeBeg : PRegExprChar; - RangePCodeIdx : integer; - RangeIsCI : boolean; - RangeSet : TSetOfREChar; - RangeLen : integer; - RangeChMin, RangeChMax : REChar; - {$ENDIF} - - procedure EmitExactly (ch : REChar); - begin - if (fCompModifiers and MaskModI) <> 0 - then ret := EmitNode (EXACTLYCI) - else ret := EmitNode (EXACTLY); - EmitC (ch); - EmitC (#0); - flagp := flagp or HASWIDTH or SIMPLE; - end; - - procedure EmitStr (const s : RegExprString); - var i : integer; - begin - for i := 1 to length (s) - do EmitC (s [i]); - end; - - function HexDig (ch : REChar) : integer; - begin - Result := 0; - if (ch >= 'a') and (ch <= 'f') - then ch := REChar (ord (ch) - (ord ('a') - ord ('A'))); - if (ch < '0') or (ch > 'F') or ((ch > '9') and (ch < 'A')) then begin - Error (reeBadHexDigit); - EXIT; - end; - Result := ord (ch) - ord ('0'); - if ch >= 'A' - then Result := Result - (ord ('A') - ord ('9') - 1); - end; - - function EmitRange (AOpCode : REChar) : PRegExprChar; - begin - {$IFDEF UseSetOfChar} - case AOpCode of - ANYBUTCI, ANYBUT: - Result := EmitNode (ANYBUTTINYSET); - else // ANYOFCI, ANYOF - Result := EmitNode (ANYOFTINYSET); - end; - case AOpCode of - ANYBUTCI, ANYOFCI: - RangeIsCI := True; - else // ANYBUT, ANYOF - RangeIsCI := False; - end; - RangePCodeBeg := regcode; - RangePCodeIdx := regsize; - RangeLen := 0; - RangeSet := []; - RangeChMin := #255; - RangeChMax := #0; - {$ELSE} - Result := EmitNode (AOpCode); - // ToDo: - // !!!!!!!!!!!!! Implement ANYOF[BUT]TINYSET generation for UniCode !!!!!!!!!! - {$ENDIF} - end; - -{$IFDEF UseSetOfChar} - procedure EmitRangeCPrim (b : REChar); //###0.930 - begin - if b in RangeSet - then EXIT; - inc (RangeLen); - if b < RangeChMin - then RangeChMin := b; - if b > RangeChMax - then RangeChMax := b; - Include (RangeSet, b); - end; - {$ENDIF} - - procedure EmitRangeC (b : REChar); - {$IFDEF UseSetOfChar} - var - Ch : REChar; - {$ENDIF} - begin - CanBeRange := false; - {$IFDEF UseSetOfChar} - if b <> #0 then begin - EmitRangeCPrim (b); //###0.930 - if RangeIsCI - then EmitRangeCPrim (InvertCase (b)); //###0.930 - end - else begin - {$IFDEF UseAsserts} - Assert (RangeLen > 0, 'TRegExpr.ParseAtom(subroutine EmitRangeC): empty range'); // impossible, but who knows.. - Assert (RangeChMin <= RangeChMax, 'TRegExpr.ParseAtom(subroutine EmitRangeC): RangeChMin > RangeChMax'); // impossible, but who knows.. - {$ENDIF} - if RangeLen <= TinySetLen then begin // emit "tiny set" - if regcode = @regdummy then begin - regsize := RangePCodeIdx + TinySetLen; // RangeChMin/Max !!! - EXIT; - end; - regcode := RangePCodeBeg; - for Ch := RangeChMin to RangeChMax do //###0.930 - if Ch in RangeSet then begin - regcode^ := Ch; - inc (regcode); - end; - // fill rest: - while regcode < RangePCodeBeg + TinySetLen do begin - regcode^ := RangeChMax; - inc (regcode); - end; - end - else begin - if regcode = @regdummy then begin - regsize := RangePCodeIdx + SizeOf (TSetOfREChar); - EXIT; - end; - if (RangePCodeBeg - REOpSz - RENextOffSz)^ = ANYBUTTINYSET - then RangeSet := [#0 .. #255] - RangeSet; - PREOp (RangePCodeBeg - REOpSz - RENextOffSz)^ := ANYOFFULLSET; - regcode := RangePCodeBeg; - Move (RangeSet, regcode^, SizeOf (TSetOfREChar)); - inc (regcode, SizeOf (TSetOfREChar)); - end; - end; - {$ELSE} - EmitC (b); - {$ENDIF} - end; - - procedure EmitSimpleRangeC (b : REChar); - begin - RangeBeg := b; - EmitRangeC (b); - CanBeRange := true; - end; - - procedure EmitRangeStr (const s : RegExprString); - var i : integer; - begin - for i := 1 to length (s) - do EmitRangeC (s [i]); - end; - - function UnQuoteChar (var APtr : PRegExprChar) : REChar; //###0.934 - begin - case APtr^ of - 't': Result := #$9; // tab (HT/TAB) - 'n': Result := #$a; // newline (NL) - 'r': Result := #$d; // car.return (CR) - 'f': Result := #$c; // form feed (FF) - 'a': Result := #$7; // alarm (bell) (BEL) - 'e': Result := #$1b; // escape (ESC) - 'x': begin // hex char - Result := #0; - inc (APtr); - if APtr^ = #0 then begin - Error (reeNoHexCodeAfterBSlashX); - EXIT; - end; - if APtr^ = '{' then begin // \x{nnnn} //###0.936 - REPEAT - inc (APtr); - if APtr^ = #0 then begin - Error (reeNoHexCodeAfterBSlashX); - EXIT; - end; - if APtr^ <> '}' then begin - if (Ord (Result) - ShR (SizeOf (REChar) * 8 - 4)) and $F <> 0 then begin - Error (reeHexCodeAfterBSlashXTooBig); - EXIT; - end; - Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); - // HexDig will cause Error if bad hex digit found - end - else BREAK; - UNTIL False; - end - else begin - Result := REChar (HexDig (APtr^)); - // HexDig will cause Error if bad hex digit found - inc (APtr); - if APtr^ = #0 then begin - Error (reeNoHexCodeAfterBSlashX); - EXIT; - end; - Result := REChar ((Ord (Result) ShL 4) or HexDig (APtr^)); - // HexDig will cause Error if bad hex digit found - end; - end; - else Result := APtr^; - end; - end; - - begin - Result := nil; - flagp := WORST; // Tentatively. - - inc (regparse); - case (regparse - 1)^ of - '^': if ((fCompModifiers and MaskModM) = 0) - or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) - then ret := EmitNode (BOL) - else ret := EmitNode (BOLML); - '$': if ((fCompModifiers and MaskModM) = 0) - or ((fLineSeparators = '') and not fLinePairedSeparatorAssigned) - then ret := EmitNode (EOL) - else ret := EmitNode (EOLML); - '.': - if (fCompModifiers and MaskModS) <> 0 then begin - ret := EmitNode (ANY); - flagp := flagp or HASWIDTH or SIMPLE; - end - else begin // not /s, so emit [^:LineSeparators:] - ret := EmitNode (ANYML); - flagp := flagp or HASWIDTH; // not so simple ;) -// ret := EmitRange (ANYBUT); -// EmitRangeStr (LineSeparators); //###0.941 -// EmitRangeStr (LinePairedSeparator); // !!! isn't correct if have to accept only paired -// EmitRangeC (#0); -// flagp := flagp or HASWIDTH or SIMPLE; - end; - '[': begin - if regparse^ = '^' then begin // Complement of range. - if (fCompModifiers and MaskModI) <> 0 - then ret := EmitRange (ANYBUTCI) - else ret := EmitRange (ANYBUT); - inc (regparse); - end - else - if (fCompModifiers and MaskModI) <> 0 - then ret := EmitRange (ANYOFCI) - else ret := EmitRange (ANYOF); - - CanBeRange := false; - - if (regparse^ = ']') then begin - EmitSimpleRangeC (regparse^); // []-a] -> ']' .. 'a' - inc (regparse); - end; - - while (regparse^ <> #0) and (regparse^ <> ']') do begin - if (regparse^ = '-') - and ((regparse + 1)^ <> #0) and ((regparse + 1)^ <> ']') - and CanBeRange then begin - inc (regparse); - RangeEnd := regparse^; - if RangeEnd = EscChar then begin - {$IFDEF UniCode} //###0.935 - if (ord ((regparse + 1)^) < 256) - and (char ((regparse + 1)^) - in ['d', 'D', 's', 'S', 'w', 'W']) then begin - {$ELSE} - if (regparse + 1)^ in ['d', 'D', 's', 'S', 'w', 'W'] then begin - {$ENDIF} - EmitRangeC ('-'); // or treat as error ?!! - CONTINUE; - end; - inc (regparse); - RangeEnd := UnQuoteChar (regparse); - end; - - // r.e.ranges extension for russian - if ((fCompModifiers and MaskModR) <> 0) - and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeLoHigh) then begin - EmitRangeStr (RusRangeLo); - end - else if ((fCompModifiers and MaskModR) <> 0) - and (RangeBeg = RusRangeHiLow) and (RangeEnd = RusRangeHiHigh) then begin - EmitRangeStr (RusRangeHi); - end - else if ((fCompModifiers and MaskModR) <> 0) - and (RangeBeg = RusRangeLoLow) and (RangeEnd = RusRangeHiHigh) then begin - EmitRangeStr (RusRangeLo); - EmitRangeStr (RusRangeHi); - end - else begin // standard r.e. handling - if RangeBeg > RangeEnd then begin - Error (reeInvalidRange); - EXIT; - end; - inc (RangeBeg); - EmitRangeC (RangeEnd); // prevent infinite loop if RangeEnd=$ff - while RangeBeg < RangeEnd do begin //###0.929 - EmitRangeC (RangeBeg); - inc (RangeBeg); - end; - end; - inc (regparse); - end - else begin - if regparse^ = EscChar then begin - inc (regparse); - if regparse^ = #0 then begin - Error (reeParseAtomTrailingBackSlash); - EXIT; - end; - case regparse^ of // r.e.extensions - 'd': EmitRangeStr ('0123456789'); - 'w': EmitRangeStr (WordChars); - 's': EmitRangeStr (SpaceChars); - else EmitSimpleRangeC (UnQuoteChar (regparse)); - end; { of case} - end - else EmitSimpleRangeC (regparse^); - inc (regparse); - end; - end; { of while} - EmitRangeC (#0); - if regparse^ <> ']' then begin - Error (reeUnmatchedSqBrackets); - EXIT; - end; - inc (regparse); - flagp := flagp or HASWIDTH or SIMPLE; - end; - '(': begin - if regparse^ = '?' then begin - // check for extended Perl syntax : (?..) - if (regparse + 1)^ = '#' then begin // (?#comment) - inc (regparse, 2); // find closing ')' - while (regparse^ <> #0) and (regparse^ <> ')') - do inc (regparse); - if regparse^ <> ')' then begin - Error (reeUnclosedComment); - EXIT; - end; - inc (regparse); // skip ')' - ret := EmitNode (COMMENT); // comment - end - else begin // modifiers ? - inc (regparse); // skip '?' - begmodfs := regparse; - while (regparse^ <> #0) and (regparse^ <> ')') - do inc (regparse); - if (regparse^ <> ')') - or not ParseModifiersStr (copy (begmodfs, 1, (regparse - begmodfs)), fCompModifiers) then begin - Error (reeUrecognizedModifier); - EXIT; - end; - inc (regparse); // skip ')' - ret := EmitNode (COMMENT); // comment -// Error (reeQPSBFollowsNothing); -// EXIT; - end; - end - else begin - ret := ParseReg (1, flags); - if ret = nil then begin - Result := nil; - EXIT; - end; - flagp := flagp or flags and (HASWIDTH or SPSTART); - end; - end; - #0, '|', ')': begin // Supposed to be caught earlier. - Error (reeInternalUrp); - EXIT; - end; - '?', '+', '*': begin - Error (reeQPSBFollowsNothing); - EXIT; - end; - EscChar: begin - if regparse^ = #0 then begin - Error (reeTrailingBackSlash); - EXIT; - end; - case regparse^ of // r.e.extensions - 'b': ret := EmitNode (BOUND); //###0.943 - 'B': ret := EmitNode (NOTBOUND); //###0.943 - 'A': ret := EmitNode (BOL); //###0.941 - 'Z': ret := EmitNode (EOL); //###0.941 - 'd': begin // r.e.extension - any digit ('0' .. '9') - ret := EmitNode (ANYDIGIT); - flagp := flagp or HASWIDTH or SIMPLE; - end; - 'D': begin // r.e.extension - not digit ('0' .. '9') - ret := EmitNode (NOTDIGIT); - flagp := flagp or HASWIDTH or SIMPLE; - end; - 's': begin // r.e.extension - any space char - {$IFDEF UseSetOfChar} - ret := EmitRange (ANYOF); - EmitRangeStr (SpaceChars); - EmitRangeC (#0); - {$ELSE} - ret := EmitNode (ANYSPACE); - {$ENDIF} - flagp := flagp or HASWIDTH or SIMPLE; - end; - 'S': begin // r.e.extension - not space char - {$IFDEF UseSetOfChar} - ret := EmitRange (ANYBUT); - EmitRangeStr (SpaceChars); - EmitRangeC (#0); - {$ELSE} - ret := EmitNode (NOTSPACE); - {$ENDIF} - flagp := flagp or HASWIDTH or SIMPLE; - end; - 'w': begin // r.e.extension - any english char / digit / '_' - {$IFDEF UseSetOfChar} - ret := EmitRange (ANYOF); - EmitRangeStr (WordChars); - EmitRangeC (#0); - {$ELSE} - ret := EmitNode (ANYLETTER); - {$ENDIF} - flagp := flagp or HASWIDTH or SIMPLE; - end; - 'W': begin // r.e.extension - not english char / digit / '_' - {$IFDEF UseSetOfChar} - ret := EmitRange (ANYBUT); - EmitRangeStr (WordChars); - EmitRangeC (#0); - {$ELSE} - ret := EmitNode (NOTLETTER); - {$ENDIF} - flagp := flagp or HASWIDTH or SIMPLE; - end; - '1' .. '9': begin //###0.936 - if (fCompModifiers and MaskModI) <> 0 - then ret := EmitNode (BSUBEXPCI) - else ret := EmitNode (BSUBEXP); - EmitC (REChar (ord (regparse^) - ord ('0'))); - flagp := flagp or HASWIDTH or SIMPLE; - end; - else EmitExactly (UnQuoteChar (regparse)); - end; { of case} - inc (regparse); - end; - else begin - dec (regparse); - if ((fCompModifiers and MaskModX) <> 0) and // check for eXtended syntax - ((regparse^ = '#') - or ({$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 - {$ELSE}regparse^ in XIgnoredChars{$ENDIF})) then begin //###0.941 \x - if regparse^ = '#' then begin // Skip eXtended comment - // find comment terminator (group of \n and/or \r) - while (regparse^ <> #0) and (regparse^ <> #$d) and (regparse^ <> #$a) - do inc (regparse); - while (regparse^ = #$d) or (regparse^ = #$a) // skip comment terminator - do inc (regparse); // attempt to support different type of line separators - end - else begin // Skip the blanks! - while {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 - {$ELSE}regparse^ in XIgnoredChars{$ENDIF} - do inc (regparse); - end; - ret := EmitNode (COMMENT); // comment - end - else begin - len := strcspn (regparse, META); - if len <= 0 then - if regparse^ <> '{' then begin - Error (reeRarseAtomInternalDisaster); - EXIT; - end - else len := strcspn (regparse + 1, META) + 1; // bad {n,m} - compile as EXATLY - ender := (regparse + len)^; - if (len > 1) - and ((ender = '*') or (ender = '+') or (ender = '?') or (ender = '{')) - then dec (len); // Back off clear of ?+*{ operand. - flagp := flagp or HASWIDTH; - if len = 1 - then flagp := flagp or SIMPLE; - if (fCompModifiers and MaskModI) <> 0 - then ret := EmitNode (EXACTLYCI) - else ret := EmitNode (EXACTLY); - while (len > 0) - and (((fCompModifiers and MaskModX) = 0) or (regparse^ <> '#')) do begin - if ((fCompModifiers and MaskModX) = 0) or not ( //###0.941 - {$IFDEF UniCode}StrScan (XIgnoredChars, regparse^) <> nil //###0.947 - {$ELSE}regparse^ in XIgnoredChars{$ENDIF} ) - then EmitC (regparse^); - inc (regparse); - dec (len); - end; - EmitC (#0); - end; { of if not comment} - end; { of case else} - end; { of case} - - Result := ret; - end; { of function TRegExpr.ParseAtom ---------------------------------------------------------------} - -function TRegExpr.GetCompilerErrorPos : integer; - begin - Result := 0; - if (regexpbeg = nil) or (regparse = nil) - then EXIT; // not in compiling mode ? - Result := regparse - regexpbeg; - end; { of function TRegExpr.GetCompilerErrorPos ---------------------------------------------------------------} - - -{=============================================================} -{===================== Matching section ======================} -{=============================================================} - -{$IFNDEF UseSetOfChar} -function TRegExpr.StrScanCI (s : PRegExprChar; ch : REChar) : PRegExprChar; //###0.928 - now method of TRegExpr - begin - while (s^ <> #0) and (s^ <> ch) and (s^ <> InvertCase (ch)) - do inc (s); - if s^ <> #0 - then Result := s - else Result := nil; - end; { of function TRegExpr.StrScanCI ---------------------------------------------------------------} -{$ENDIF} - -function TRegExpr.regrepeat (p : PRegExprChar; AMax : integer) : integer; -// repeatedly match something simple, report how many - var - scan : PRegExprChar; - opnd : PRegExprChar; - TheMax : integer; - {Ch,} InvCh : REChar; //###0.931 - sestart, seend : PRegExprChar; //###0.936 - begin - Result := 0; - scan := reginput; - opnd := p + REOpSz + RENextOffSz; //OPERAND - TheMax := fInputEnd - scan; - if TheMax > AMax - then TheMax := AMax; - case PREOp (p)^ of - ANY: begin - // note - ANYML cannot be proceeded in regrepeat because can skip - // more than one char at once - Result := TheMax; - inc (scan, Result); - end; - EXACTLY: begin // in opnd can be only ONE char !!! -// Ch := opnd^; // store in register //###0.931 - while (Result < TheMax) and (opnd^ = scan^) do begin - inc (Result); - inc (scan); - end; - end; - EXACTLYCI: begin // in opnd can be only ONE char !!! -// Ch := opnd^; // store in register //###0.931 - while (Result < TheMax) and (opnd^ = scan^) do begin // prevent unneeded InvertCase //###0.931 - inc (Result); - inc (scan); - end; - if Result < TheMax then begin //###0.931 - InvCh := InvertCase (opnd^); // store in register - while (Result < TheMax) and - ((opnd^ = scan^) or (InvCh = scan^)) do begin - inc (Result); - inc (scan); - end; - end; - end; - BSUBEXP: begin //###0.936 - sestart := startp [ord (opnd^)]; - if sestart = nil - then EXIT; - seend := endp [ord (opnd^)]; - if seend = nil - then EXIT; - REPEAT - opnd := sestart; - while opnd < seend do begin - if (scan >= fInputEnd) or (scan^ <> opnd^) - then EXIT; - inc (scan); - inc (opnd); - end; - inc (Result); - reginput := scan; - UNTIL Result >= AMax; - end; - BSUBEXPCI: begin //###0.936 - sestart := startp [ord (opnd^)]; - if sestart = nil - then EXIT; - seend := endp [ord (opnd^)]; - if seend = nil - then EXIT; - REPEAT - opnd := sestart; - while opnd < seend do begin - if (scan >= fInputEnd) or - ((scan^ <> opnd^) and (scan^ <> InvertCase (opnd^))) - then EXIT; - inc (scan); - inc (opnd); - end; - inc (Result); - reginput := scan; - UNTIL Result >= AMax; - end; - ANYDIGIT: - while (Result < TheMax) and - (scan^ >= '0') and (scan^ <= '9') do begin - inc (Result); - inc (scan); - end; - NOTDIGIT: - while (Result < TheMax) and - ((scan^ < '0') or (scan^ > '9')) do begin - inc (Result); - inc (scan); - end; - {$IFNDEF UseSetOfChar} //###0.929 - ANYLETTER: - while (Result < TheMax) and - (Pos (scan^, fWordChars) > 0) //###0.940 - { ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') - or (scan^ >= 'A') and (scan^ <= 'Z') or (scan^ = '_'))} do begin - inc (Result); - inc (scan); - end; - NOTLETTER: - while (Result < TheMax) and - (Pos (scan^, fWordChars) <= 0) //###0.940 - { not ((scan^ >= 'a') and (scan^ <= 'z') !! I've forgotten (>='0') and (<='9') - or (scan^ >= 'A') and (scan^ <= 'Z') - or (scan^ = '_'))} do begin - inc (Result); - inc (scan); - end; - ANYSPACE: - while (Result < TheMax) and - (Pos (scan^, fSpaceChars) > 0) do begin - inc (Result); - inc (scan); - end; - NOTSPACE: - while (Result < TheMax) and - (Pos (scan^, fSpaceChars) <= 0) do begin - inc (Result); - inc (scan); - end; - {$ENDIF} - ANYOFTINYSET: begin - while (Result < TheMax) and //!!!TinySet - ((scan^ = opnd^) or (scan^ = (opnd + 1)^) - or (scan^ = (opnd + 2)^)) do begin - inc (Result); - inc (scan); - end; - end; - ANYBUTTINYSET: begin - while (Result < TheMax) and //!!!TinySet - (scan^ <> opnd^) and (scan^ <> (opnd + 1)^) - and (scan^ <> (opnd + 2)^) do begin - inc (Result); - inc (scan); - end; - end; - {$IFDEF UseSetOfChar} //###0.929 - ANYOFFULLSET: begin - while (Result < TheMax) and - (scan^ in PSetOfREChar (opnd)^) do begin - inc (Result); - inc (scan); - end; - end; - {$ELSE} - ANYOF: - while (Result < TheMax) and - (StrScan (opnd, scan^) <> nil) do begin - inc (Result); - inc (scan); - end; - ANYBUT: - while (Result < TheMax) and - (StrScan (opnd, scan^) = nil) do begin - inc (Result); - inc (scan); - end; - ANYOFCI: - while (Result < TheMax) and (StrScanCI (opnd, scan^) <> nil) do begin - inc (Result); - inc (scan); - end; - ANYBUTCI: - while (Result < TheMax) and (StrScanCI (opnd, scan^) = nil) do begin - inc (Result); - inc (scan); - end; - {$ENDIF} - else begin // Oh dear. Called inappropriately. - Result := 0; // Best compromise. - Error (reeRegRepeatCalledInappropriately); - EXIT; - end; - end; { of case} - reginput := scan; - end; { of function TRegExpr.regrepeat ---------------------------------------------------------------} - -function TRegExpr.regnext (p : PRegExprChar) : PRegExprChar; -// dig the "next" pointer out of a node - var offset : TRENextOff; - begin - if p = @regdummy then begin - Result := nil; - EXIT; - end; - offset := PRENextOff (p + REOpSz)^; //###0.933 inlined NEXT - if offset = 0 - then Result := nil - else Result := p + offset; - end; { of function TRegExpr.regnext ---------------------------------------------------------------} - -function TRegExpr.MatchPrim (prog : PRegExprChar) : boolean; -// recursively matching routine -// Conceptually the strategy is simple: check to see whether the current -// node matches, call self recursively to see whether the rest matches, -// and then act accordingly. In practice we make some effort to avoid -// recursion, in particular by going through "ordinary" nodes (that don't -// need to know whether the rest of the match failed) by a loop instead of -// by recursion. - var - scan : PRegExprChar; // Current node. - next : PRegExprChar; // Next node. - len : integer; - opnd : PRegExprChar; - no : integer; - save : PRegExprChar; - nextch : REChar; - BracesMin, BracesMax : integer; // we use integer instead of TREBracesArg for better support */+ - {$IFDEF ComplexBraces} - SavedLoopStack : array [1 .. LoopStackMax] of integer; // :(( very bad for recursion - SavedLoopStackIdx : integer; //###0.925 - {$ENDIF} - begin - Result := false; - scan := prog; - - while scan <> nil do begin - len := PRENextOff (scan + 1)^; //###0.932 inlined regnext - if len = 0 - then next := nil - else next := scan + len; - - case scan^ of - NOTBOUND, //###0.943 //!!! think about UseSetOfChar !!! - BOUND: - if (scan^ = BOUND) - xor ( - ((reginput = fInputStart) or (Pos ((reginput - 1)^, fWordChars) <= 0)) - and (reginput^ <> #0) and (Pos (reginput^, fWordChars) > 0) - or - (reginput <> fInputStart) and (Pos ((reginput - 1)^, fWordChars) > 0) - and ((reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0))) - then EXIT; - - BOL: if reginput <> fInputStart - then EXIT; - EOL: if reginput^ <> #0 - then EXIT; - BOLML: if reginput > fInputStart then begin - nextch := (reginput - 1)^; - if (nextch <> fLinePairedSeparatorTail) - or ((reginput - 1) <= fInputStart) - or ((reginput - 2)^ <> fLinePairedSeparatorHead) - then begin - if (nextch = fLinePairedSeparatorHead) - and (reginput^ = fLinePairedSeparatorTail) - then EXIT; // don't stop between paired separator - if - {$IFNDEF UniCode} - not (nextch in fLineSeparatorsSet) - {$ELSE} - (pos (nextch, fLineSeparators) <= 0) - {$ENDIF} - then EXIT; - end; - end; - EOLML: if reginput^ <> #0 then begin - nextch := reginput^; - if (nextch <> fLinePairedSeparatorHead) - or ((reginput + 1)^ <> fLinePairedSeparatorTail) - then begin - if (nextch = fLinePairedSeparatorTail) - and (reginput > fInputStart) - and ((reginput - 1)^ = fLinePairedSeparatorHead) - then EXIT; // don't stop between paired separator - if - {$IFNDEF UniCode} - not (nextch in fLineSeparatorsSet) - {$ELSE} - (pos (nextch, fLineSeparators) <= 0) - {$ENDIF} - then EXIT; - end; - end; - ANY: begin - if reginput^ = #0 - then EXIT; - inc (reginput); - end; - ANYML: begin //###0.941 - if (reginput^ = #0) - or ((reginput^ = fLinePairedSeparatorHead) - and ((reginput + 1)^ = fLinePairedSeparatorTail)) - or {$IFNDEF UniCode} (reginput^ in fLineSeparatorsSet) - {$ELSE} (pos (reginput^, fLineSeparators) > 0) {$ENDIF} - then EXIT; - inc (reginput); - end; - ANYDIGIT: begin - if (reginput^ = #0) or (reginput^ < '0') or (reginput^ > '9') - then EXIT; - inc (reginput); - end; - NOTDIGIT: begin - if (reginput^ = #0) or ((reginput^ >= '0') and (reginput^ <= '9')) - then EXIT; - inc (reginput); - end; - {$IFNDEF UseSetOfChar} //###0.929 - ANYLETTER: begin - if (reginput^ = #0) or (Pos (reginput^, fWordChars) <= 0) //###0.943 - then EXIT; - inc (reginput); - end; - NOTLETTER: begin - if (reginput^ = #0) or (Pos (reginput^, fWordChars) > 0) //###0.943 - then EXIT; - inc (reginput); - end; - ANYSPACE: begin - if (reginput^ = #0) or not (Pos (reginput^, fSpaceChars) > 0) //###0.943 - then EXIT; - inc (reginput); - end; - NOTSPACE: begin - if (reginput^ = #0) or (Pos (reginput^, fSpaceChars) > 0) //###0.943 - then EXIT; - inc (reginput); - end; - {$ENDIF} - EXACTLYCI: begin - opnd := scan + REOpSz + RENextOffSz; // OPERAND - // Inline the first character, for speed. - if (opnd^ <> reginput^) - and (InvertCase (opnd^) <> reginput^) - then EXIT; - len := strlen (opnd); - //###0.929 begin - no := len; - save := reginput; - while no > 1 do begin - inc (save); - inc (opnd); - if (opnd^ <> save^) - and (InvertCase (opnd^) <> save^) - then EXIT; - dec (no); - end; - //###0.929 end - inc (reginput, len); - end; - EXACTLY: begin - opnd := scan + REOpSz + RENextOffSz; // OPERAND - // Inline the first character, for speed. - if opnd^ <> reginput^ - then EXIT; - len := strlen (opnd); - //###0.929 begin - no := len; - save := reginput; - while no > 1 do begin - inc (save); - inc (opnd); - if opnd^ <> save^ - then EXIT; - dec (no); - end; - //###0.929 end - inc (reginput, len); - end; - BSUBEXP: begin //###0.936 - no := ord ((scan + REOpSz + RENextOffSz)^); - if startp [no] = nil - then EXIT; - if endp [no] = nil - then EXIT; - save := reginput; - opnd := startp [no]; - while opnd < endp [no] do begin - if (save >= fInputEnd) or (save^ <> opnd^) - then EXIT; - inc (save); - inc (opnd); - end; - reginput := save; - end; - BSUBEXPCI: begin //###0.936 - no := ord ((scan + REOpSz + RENextOffSz)^); - if startp [no] = nil - then EXIT; - if endp [no] = nil - then EXIT; - save := reginput; - opnd := startp [no]; - while opnd < endp [no] do begin - if (save >= fInputEnd) or - ((save^ <> opnd^) and (save^ <> InvertCase (opnd^))) - then EXIT; - inc (save); - inc (opnd); - end; - reginput := save; - end; - ANYOFTINYSET: begin - if (reginput^ = #0) or //!!!TinySet - ((reginput^ <> (scan + REOpSz + RENextOffSz)^) - and (reginput^ <> (scan + REOpSz + RENextOffSz + 1)^) - and (reginput^ <> (scan + REOpSz + RENextOffSz + 2)^)) - then EXIT; - inc (reginput); - end; - ANYBUTTINYSET: begin - if (reginput^ = #0) or //!!!TinySet - (reginput^ = (scan + REOpSz + RENextOffSz)^) - or (reginput^ = (scan + REOpSz + RENextOffSz + 1)^) - or (reginput^ = (scan + REOpSz + RENextOffSz + 2)^) - then EXIT; - inc (reginput); - end; - {$IFDEF UseSetOfChar} //###0.929 - ANYOFFULLSET: begin - if (reginput^ = #0) - or not (reginput^ in PSetOfREChar (scan + REOpSz + RENextOffSz)^) - then EXIT; - inc (reginput); - end; - {$ELSE} - ANYOF: begin - if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) = nil) - then EXIT; - inc (reginput); - end; - ANYBUT: begin - if (reginput^ = #0) or (StrScan (scan + REOpSz + RENextOffSz, reginput^) <> nil) - then EXIT; - inc (reginput); - end; - ANYOFCI: begin - if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) = nil) - then EXIT; - inc (reginput); - end; - ANYBUTCI: begin - if (reginput^ = #0) or (StrScanCI (scan + REOpSz + RENextOffSz, reginput^) <> nil) - then EXIT; - inc (reginput); - end; - {$ENDIF} - NOTHING: ; - COMMENT: ; - BACK: ; - Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 - no := ord (scan^) - ord (OPEN); -// save := reginput; - save := startp [no]; //###0.936 - startp [no] := reginput; //###0.936 - Result := MatchPrim (next); - if not Result //###0.936 - then startp [no] := save; -// if Result and (startp [no] = nil) -// then startp [no] := save; - // Don't set startp if some later invocation of the same - // parentheses already has. - EXIT; - end; - Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 - no := ord (scan^) - ord (CLOSE); -// save := reginput; - save := endp [no]; //###0.936 - endp [no] := reginput; //###0.936 - Result := MatchPrim (next); - if not Result //###0.936 - then endp [no] := save; -// if Result and (endp [no] = nil) -// then endp [no] := save; - // Don't set endp if some later invocation of the same - // parentheses already has. - EXIT; - end; - BRANCH: begin - if (next^ <> BRANCH) // No choice. - then next := scan + REOpSz + RENextOffSz // Avoid recursion - else begin - REPEAT - save := reginput; - Result := MatchPrim (scan + REOpSz + RENextOffSz); - if Result - then EXIT; - reginput := save; - scan := regnext (scan); - UNTIL (scan = nil) or (scan^ <> BRANCH); - EXIT; - end; - end; - {$IFDEF ComplexBraces} - LOOPENTRY: begin //###0.925 - no := LoopStackIdx; - inc (LoopStackIdx); - if LoopStackIdx > LoopStackMax then begin - Error (reeLoopStackExceeded); - EXIT; - end; - save := reginput; - LoopStack [LoopStackIdx] := 0; // init loop counter - Result := MatchPrim (next); // execute LOOP - LoopStackIdx := no; // cleanup - if Result - then EXIT; - reginput := save; - EXIT; - end; - LOOP, LOOPNG: begin //###0.940 - if LoopStackIdx <= 0 then begin - Error (reeLoopWithoutEntry); - EXIT; - end; - opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + 2 * REBracesArgSz)^; - BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; - BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; - save := reginput; - if LoopStack [LoopStackIdx] >= BracesMin then begin // Min alredy matched - we can work - if scan^ = LOOP then begin - // greedy way - first try to max deep of greed ;) - if LoopStack [LoopStackIdx] < BracesMax then begin - inc (LoopStack [LoopStackIdx]); - no := LoopStackIdx; - Result := MatchPrim (opnd); - LoopStackIdx := no; - if Result - then EXIT; - reginput := save; - end; - dec (LoopStackIdx); // Fail. May be we are too greedy? ;) - Result := MatchPrim (next); - if not Result - then reginput := save; - EXIT; - end - else begin - // non-greedy - try just now - Result := MatchPrim (next); - if Result - then EXIT - else reginput := save; // failed - move next and try again - if LoopStack [LoopStackIdx] < BracesMax then begin - inc (LoopStack [LoopStackIdx]); - no := LoopStackIdx; - Result := MatchPrim (opnd); - LoopStackIdx := no; - if Result - then EXIT; - reginput := save; - end; - dec (LoopStackIdx); // Failed - back up - EXIT; - end - end - else begin // first match a min_cnt times - inc (LoopStack [LoopStackIdx]); - no := LoopStackIdx; - Result := MatchPrim (opnd); - LoopStackIdx := no; - if Result - then EXIT; - dec (LoopStack [LoopStackIdx]); - reginput := save; - EXIT; - end; - end; - {$ENDIF} - STAR, PLUS, BRACES, STARNG, PLUSNG, BRACESNG: begin - // Lookahead to avoid useless match attempts when we know - // what character comes next. - nextch := #0; - if next^ = EXACTLY - then nextch := (next + REOpSz + RENextOffSz)^; - BracesMax := MaxInt; // infinite loop for * and + //###0.92 - if (scan^ = STAR) or (scan^ = STARNG) - then BracesMin := 0 // STAR - else if (scan^ = PLUS) or (scan^ = PLUSNG) - then BracesMin := 1 // PLUS - else begin // BRACES - BracesMin := PREBracesArg (scan + REOpSz + RENextOffSz)^; - BracesMax := PREBracesArg (scan + REOpSz + RENextOffSz + REBracesArgSz)^; - end; - save := reginput; - opnd := scan + REOpSz + RENextOffSz; - if (scan^ = BRACES) or (scan^ = BRACESNG) - then inc (opnd, 2 * REBracesArgSz); - - if (scan^ = PLUSNG) or (scan^ = STARNG) or (scan^ = BRACESNG) then begin - // non-greedy mode - BracesMax := regrepeat (opnd, BracesMax); // don't repeat more than BracesMax - // Now we know real Max limit to move forward (for recursion 'back up') - // In some cases it can be faster to check only Min positions first, - // but after that we have to check every position separtely instead - // of fast scannig in loop. - no := BracesMin; - while no <= BracesMax do begin - reginput := save + no; - // If it could work, try it. - if (nextch = #0) or (reginput^ = nextch) then begin - {$IFDEF ComplexBraces} - System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 - SavedLoopStackIdx := LoopStackIdx; - {$ENDIF} - if MatchPrim (next) then begin - Result := true; - EXIT; - end; - {$IFDEF ComplexBraces} - System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); - LoopStackIdx := SavedLoopStackIdx; - {$ENDIF} - end; - inc (no); // Couldn't or didn't - move forward. - end; { of while} - EXIT; - end - else begin // greedy mode - no := regrepeat (opnd, BracesMax); // don't repeat more than max_cnt - while no >= BracesMin do begin - // If it could work, try it. - if (nextch = #0) or (reginput^ = nextch) then begin - {$IFDEF ComplexBraces} - System.Move (LoopStack, SavedLoopStack, SizeOf (LoopStack)); //###0.925 - SavedLoopStackIdx := LoopStackIdx; - {$ENDIF} - if MatchPrim (next) then begin - Result := true; - EXIT; - end; - {$IFDEF ComplexBraces} - System.Move (SavedLoopStack, LoopStack, SizeOf (LoopStack)); - LoopStackIdx := SavedLoopStackIdx; - {$ENDIF} - end; - dec (no); // Couldn't or didn't - back up. - reginput := save + no; - end; { of while} - EXIT; - end; - end; - EEND: begin - Result := true; // Success! - EXIT; - end; - else begin - Error (reeMatchPrimMemoryCorruption); - EXIT; - end; - end; { of case scan^} - scan := next; - end; { of while scan <> nil} - - // We get here only if there's trouble -- normally "case EEND" is the - // terminating point. - Error (reeMatchPrimCorruptedPointers); - end; { of function TRegExpr.MatchPrim ---------------------------------------------------------------} - -{$IFDEF UseFirstCharSet} //###0.929 -procedure TRegExpr.FillFirstCharSet (prog : PRegExprChar); - var - scan : PRegExprChar; // Current node. - next : PRegExprChar; // Next node. - opnd : PRegExprChar; - min_cnt : integer; - begin - scan := prog; - while scan <> nil do begin - next := regnext (scan); - case PREOp (scan)^ of - BSUBEXP, BSUBEXPCI: begin //###0.938 - FirstCharSet := [#0 .. #255]; // :((( we cannot - // optimize r.e. if it starts with back reference - EXIT; - end; - BOL, BOLML: ; // EXIT; //###0.937 - EOL, EOLML: begin //###0.948 was empty in 0.947, was EXIT in 0.937 - Include (FirstCharSet, #0); - if ModifierM - then begin - opnd := PRegExprChar (LineSeparators); - while opnd^ <> #0 do begin - Include (FirstCharSet, opnd^); - inc (opnd); - end; - end; - EXIT; - end; - BOUND, NOTBOUND: ; //###0.943 ?!! - ANY, ANYML: begin // we can better define ANYML !!! - FirstCharSet := [#0 .. #255]; //###0.930 - EXIT; - end; - ANYDIGIT: begin - FirstCharSet := FirstCharSet + ['0' .. '9']; - EXIT; - end; - NOTDIGIT: begin - FirstCharSet := FirstCharSet + ([#0 .. #255] - ['0' .. '9']); //###0.948 FirstCharSet was forgotten - EXIT; - end; - EXACTLYCI: begin - Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); - Include (FirstCharSet, InvertCase ((scan + REOpSz + RENextOffSz)^)); - EXIT; - end; - EXACTLY: begin - Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); - EXIT; - end; - ANYOFFULLSET: begin - FirstCharSet := FirstCharSet + PSetOfREChar (scan + REOpSz + RENextOffSz)^; - EXIT; - end; - ANYOFTINYSET: begin - //!!!TinySet - Include (FirstCharSet, (scan + REOpSz + RENextOffSz)^); - Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 1)^); - Include (FirstCharSet, (scan + REOpSz + RENextOffSz + 2)^); - // ... // up to TinySetLen - EXIT; - end; - ANYBUTTINYSET: begin - //!!!TinySet - FirstCharSet := FirstCharSet + ([#0 .. #255] - [ //###0.948 FirstCharSet was forgotten - (scan + REOpSz + RENextOffSz)^, - (scan + REOpSz + RENextOffSz + 1)^, - (scan + REOpSz + RENextOffSz + 2)^]); - // ... // up to TinySetLen - EXIT; - end; - NOTHING: ; - COMMENT: ; - BACK: ; - Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1) : begin //###0.929 - FillFirstCharSet (next); - EXIT; - end; - Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): begin //###0.929 - FillFirstCharSet (next); - EXIT; - end; - BRANCH: begin - if (PREOp (next)^ <> BRANCH) // No choice. - then next := scan + REOpSz + RENextOffSz // Avoid recursion. - else begin - REPEAT - FillFirstCharSet (scan + REOpSz + RENextOffSz); - scan := regnext (scan); - UNTIL (scan = nil) or (PREOp (scan)^ <> BRANCH); - EXIT; - end; - end; - {$IFDEF ComplexBraces} - LOOPENTRY: begin //###0.925 -// LoopStack [LoopStackIdx] := 0; //###0.940 line removed - FillFirstCharSet (next); // execute LOOP - EXIT; - end; - LOOP, LOOPNG: begin //###0.940 - opnd := scan + PRENextOff (scan + REOpSz + RENextOffSz + REBracesArgSz * 2)^; - min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; - FillFirstCharSet (opnd); - if min_cnt = 0 - then FillFirstCharSet (next); - EXIT; - end; - {$ENDIF} - STAR, STARNG: //###0.940 - FillFirstCharSet (scan + REOpSz + RENextOffSz); - PLUS, PLUSNG: begin //###0.940 - FillFirstCharSet (scan + REOpSz + RENextOffSz); - EXIT; - end; - BRACES, BRACESNG: begin //###0.940 - opnd := scan + REOpSz + RENextOffSz + REBracesArgSz * 2; - min_cnt := PREBracesArg (scan + REOpSz + RENextOffSz)^; // BRACES - FillFirstCharSet (opnd); - if min_cnt > 0 - then EXIT; - end; - EEND: begin - FirstCharSet := [#0 .. #255]; //###0.948 - EXIT; - end; - else begin - Error (reeMatchPrimMemoryCorruption); - EXIT; - end; - end; { of case scan^} - scan := next; - end; { of while scan <> nil} - end; { of procedure FillFirstCharSet ---------------------------------------------------------------} -{$ENDIF} - -function TRegExpr.Exec (const AInputString : RegExprString) : boolean; - begin - InputString := AInputString; - Result := ExecPrim (1); - end; { of function TRegExpr.Exec ---------------------------------------------------------------} - -{$IFDEF OverMeth} -{$IFNDEF FPC} -function TRegExpr.Exec : boolean; - begin - Result := ExecPrim (1); - end; { of function TRegExpr.Exec ---------------------------------------------------------------} -{$ENDIF} -function TRegExpr.Exec (AOffset: integer) : boolean; - begin - Result := ExecPrim (AOffset); - end; { of function TRegExpr.Exec ---------------------------------------------------------------} -{$ENDIF} - -function TRegExpr.ExecPos (AOffset: integer {$IFDEF DefParam}= 1{$ENDIF}) : boolean; - begin - Result := ExecPrim (AOffset); - end; { of function TRegExpr.ExecPos ---------------------------------------------------------------} - -function TRegExpr.ExecPrim (AOffset: integer) : boolean; - procedure ClearMatchs; - // Clears matchs array - var i : integer; - begin - for i := 0 to NSUBEXP - 1 do begin - startp [i] := nil; - endp [i] := nil; - end; - end; { of procedure ClearMatchs; -..............................................................} - function RegMatch (str : PRegExprChar) : boolean; - // try match at specific point - begin - //###0.949 removed clearing of start\endp - reginput := str; - Result := MatchPrim (programm + REOpSz); - if Result then begin - startp [0] := str; - endp [0] := reginput; - end; - end; { of function RegMatch -..............................................................} - var - s : PRegExprChar; - StartPtr: PRegExprChar; - InputLen : integer; - begin - Result := false; // Be paranoid... - - ClearMatchs; //###0.949 - // ensure that Match cleared either if optimization tricks or some error - // will lead to leaving ExecPrim without actual search. That is - // importent for ExecNext logic and so on. - - if not IsProgrammOk //###0.929 - then EXIT; - - // Check InputString presence - if not Assigned (fInputString) then begin - Error (reeNoInpitStringSpecified); - EXIT; - end; - - InputLen := length (fInputString); - - //Check that the start position is not negative - if AOffset < 1 then begin - Error (reeOffsetMustBeGreaterThen0); - EXIT; - end; - // Check that the start position is not longer than the line - // If so then exit with nothing found - if AOffset > (InputLen + 1) // for matching empty string after last char. - then EXIT; - - StartPtr := fInputString + AOffset - 1; - - // If there is a "must appear" string, look for it. - if regmust <> nil then begin - s := StartPtr; - REPEAT - s := StrScan (s, regmust [0]); - if s <> nil then begin - if StrLComp (s, regmust, regmlen) = 0 - then BREAK; // Found it. - inc (s); - end; - UNTIL s = nil; - if s = nil // Not present. - then EXIT; - end; - - // Mark beginning of line for ^ . - fInputStart := fInputString; - - // Pointer to end of input stream - for - // pascal-style string processing (may include #0) - fInputEnd := fInputString + InputLen; - - {$IFDEF ComplexBraces} - // no loops started - LoopStackIdx := 0; //###0.925 - {$ENDIF} - - // Simplest case: anchored match need be tried only once. - if reganch <> #0 then begin - Result := RegMatch (StartPtr); - EXIT; - end; - - // Messy cases: unanchored match. - s := StartPtr; - if regstart <> #0 then // We know what char it must start with. - REPEAT - s := StrScan (s, regstart); - if s <> nil then begin - Result := RegMatch (s); - if Result - then EXIT - else ClearMatchs; //###0.949 - inc (s); - end; - UNTIL s = nil - else begin // We don't - general case. - repeat //###0.948 - {$IFDEF UseFirstCharSet} - if s^ in FirstCharSet - then Result := RegMatch (s); - {$ELSE} - Result := RegMatch (s); - {$ENDIF} - if Result or (s^ = #0) // Exit on a match or after testing the end-of-string. - then EXIT - else ClearMatchs; //###0.949 - inc (s); - until false; -(* optimized and fixed by Martin Fuller - empty strings - were not allowed to pass thru in UseFirstCharSet mode - {$IFDEF UseFirstCharSet} //###0.929 - while s^ <> #0 do begin - if s^ in FirstCharSet - then Result := RegMatch (s); - if Result - then EXIT; - inc (s); - end; - {$ELSE} - REPEAT - Result := RegMatch (s); - if Result - then EXIT; - inc (s); - UNTIL s^ = #0; - {$ENDIF} -*) - end; - // Failure - end; { of function TRegExpr.ExecPrim ---------------------------------------------------------------} - -function TRegExpr.ExecNext : boolean; - var offset : integer; - begin - Result := false; - if not Assigned (startp[0]) or not Assigned (endp[0]) then begin - Error (reeExecNextWithoutExec); - EXIT; - end; -// Offset := MatchPos [0] + MatchLen [0]; -// if MatchLen [0] = 0 - Offset := endp [0] - fInputString + 1; //###0.929 - if endp [0] = startp [0] //###0.929 - then inc (Offset); // prevent infinite looping if empty string match r.e. - Result := ExecPrim (Offset); - end; { of function TRegExpr.ExecNext ---------------------------------------------------------------} - -function TRegExpr.GetInputString : RegExprString; - begin - if not Assigned (fInputString) then begin - Error (reeGetInputStringWithoutInputString); - EXIT; - end; - Result := fInputString; - end; { of function TRegExpr.GetInputString ---------------------------------------------------------------} - -procedure TRegExpr.SetInputString (const AInputString : RegExprString); - var - Len : integer; - i : integer; - begin - // clear Match* - before next Exec* call it's undefined - for i := 0 to NSUBEXP - 1 do begin - startp [i] := nil; - endp [i] := nil; - end; - - // need reallocation of input string buffer ? - Len := length (AInputString); - if Assigned (fInputString) and (Length (fInputString) <> Len) then begin - FreeMem (fInputString); - fInputString := nil; - end; - // buffer [re]allocation - if not Assigned (fInputString) - then GetMem (fInputString, (Len + 1) * SizeOf (REChar)); - - // copy input string into buffer - {$IFDEF UniCode} - StrPCopy (fInputString, Copy (AInputString, 1, Len)); //###0.927 - {$ELSE} - StrLCopy (fInputString, PRegExprChar (AInputString), Len); - {$ENDIF} - - { - fInputString : string; - fInputStart, fInputEnd : PRegExprChar; - - SetInputString: - fInputString := AInputString; - UniqueString (fInputString); - fInputStart := PChar (fInputString); - Len := length (fInputString); - fInputEnd := PRegExprChar (integer (fInputStart) + Len); ?? - !! startp/endp âñå ðàâíî áóäåò îïàñíî èñïîëüçîâàòü ? - } - end; { of procedure TRegExpr.SetInputString ---------------------------------------------------------------} - -procedure TRegExpr.SetLineSeparators (const AStr : RegExprString); - begin - if AStr <> fLineSeparators then begin - fLineSeparators := AStr; - InvalidateProgramm; - end; - end; { of procedure TRegExpr.SetLineSeparators ---------------------------------------------------------------} - -procedure TRegExpr.SetLinePairedSeparator (const AStr : RegExprString); - begin - if length (AStr) = 2 then begin - if AStr [1] = AStr [2] then begin - // it's impossible for our 'one-point' checking to support - // two chars separator for identical chars - Error (reeBadLinePairedSeparator); - EXIT; - end; - if not fLinePairedSeparatorAssigned - or (AStr [1] <> fLinePairedSeparatorHead) - or (AStr [2] <> fLinePairedSeparatorTail) then begin - fLinePairedSeparatorAssigned := true; - fLinePairedSeparatorHead := AStr [1]; - fLinePairedSeparatorTail := AStr [2]; - InvalidateProgramm; - end; - end - else if length (AStr) = 0 then begin - if fLinePairedSeparatorAssigned then begin - fLinePairedSeparatorAssigned := false; - InvalidateProgramm; - end; - end - else Error (reeBadLinePairedSeparator); - end; { of procedure TRegExpr.SetLinePairedSeparator ---------------------------------------------------------------} - -function TRegExpr.GetLinePairedSeparator : RegExprString; - begin - if fLinePairedSeparatorAssigned then begin - {$IFDEF UniCode} - // Here is some UniCode 'magic' - // If You do know better decision to concatenate - // two WideChars, please, let me know! - Result := fLinePairedSeparatorHead; //###0.947 - Result := Result + fLinePairedSeparatorTail; - {$ELSE} - Result := fLinePairedSeparatorHead + fLinePairedSeparatorTail; - {$ENDIF} - end - else Result := ''; - end; { of function TRegExpr.GetLinePairedSeparator ---------------------------------------------------------------} - -function TRegExpr.Substitute (const ATemplate : RegExprString) : RegExprString; -// perform substitutions after a regexp match -// completely rewritten in 0.929 - var - TemplateLen : integer; - TemplateBeg, TemplateEnd : PRegExprChar; - p, p0, ResultPtr : PRegExprChar; - ResultLen : integer; - n : integer; - Ch : REChar; - function ParseVarName (var APtr : PRegExprChar) : integer; - // extract name of variable (digits, may be enclosed with - // curly braces) from APtr^, uses TemplateEnd !!! - const - Digits = ['0' .. '9']; - var - p : PRegExprChar; - Delimited : boolean; - begin - Result := 0; - p := APtr; - Delimited := (p < TemplateEnd) and (p^ = '{'); - if Delimited - then inc (p); // skip left curly brace - if (p < TemplateEnd) and (p^ = '&') - then inc (p) // this is '$&' or '${&}' - else - while (p < TemplateEnd) and - {$IFDEF UniCode} //###0.935 - (ord (p^) < 256) and (char (p^) in Digits) - {$ELSE} - (p^ in Digits) - {$ENDIF} - do begin - Result := Result * 10 + (ord (p^) - ord ('0')); //###0.939 - inc (p); - end; - if Delimited then - if (p < TemplateEnd) and (p^ = '}') - then inc (p) // skip right curly brace - else p := APtr; // isn't properly terminated - if p = APtr - then Result := -1; // no valid digits found or no right curly brace - APtr := p; - end; - begin - // Check programm and input string - if not IsProgrammOk - then EXIT; - if not Assigned (fInputString) then begin - Error (reeNoInpitStringSpecified); - EXIT; - end; - // Prepare for working - TemplateLen := length (ATemplate); - if TemplateLen = 0 then begin // prevent nil pointers - Result := ''; - EXIT; - end; - TemplateBeg := pointer (ATemplate); - TemplateEnd := TemplateBeg + TemplateLen; - // Count result length for speed optimization. - ResultLen := 0; - p := TemplateBeg; - while p < TemplateEnd do begin - Ch := p^; - inc (p); - if Ch = '$' - then n := ParseVarName (p) - else n := -1; - if n >= 0 then begin - if (n < NSUBEXP) and Assigned (startp [n]) and Assigned (endp [n]) - then inc (ResultLen, endp [n] - startp [n]); - end - else begin - if (Ch = EscChar) and (p < TemplateEnd) - then inc (p); // quoted or special char followed - inc (ResultLen); - end; - end; - // Get memory. We do it once and it significant speed up work ! - if ResultLen = 0 then begin - Result := ''; - EXIT; - end; - SetString (Result, nil, ResultLen); - // Fill Result - ResultPtr := pointer (Result); - p := TemplateBeg; - while p < TemplateEnd do begin - Ch := p^; - inc (p); - if Ch = '$' - then n := ParseVarName (p) - else n := -1; - if n >= 0 then begin - p0 := startp [n]; - if (n < NSUBEXP) and Assigned (p0) and Assigned (endp [n]) then - while p0 < endp [n] do begin - ResultPtr^ := p0^; - inc (ResultPtr); - inc (p0); - end; - end - else begin - if (Ch = EscChar) and (p < TemplateEnd) then begin // quoted or special char followed - Ch := p^; - inc (p); - end; - ResultPtr^ := Ch; - inc (ResultPtr); - end; - end; - end; { of function TRegExpr.Substitute ---------------------------------------------------------------} - -procedure TRegExpr.Split (AInputStr : RegExprString; APieces : TStrings); - var PrevPos : integer; - begin - PrevPos := 1; - if Exec (AInputStr) then - REPEAT - APieces.Add (System.Copy (AInputStr, PrevPos, MatchPos [0] - PrevPos)); - PrevPos := MatchPos [0] + MatchLen [0]; - UNTIL not ExecNext; - APieces.Add (System.Copy (AInputStr, PrevPos, MaxInt)); // Tail - end; { of procedure TRegExpr.Split ---------------------------------------------------------------} - -function TRegExpr.Replace (AInputStr : RegExprString; const AReplaceStr : RegExprString; - AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; - var - PrevPos : integer; - begin - Result := ''; - PrevPos := 1; - if Exec (AInputStr) then - REPEAT - Result := Result + System.Copy (AInputStr, PrevPos, - MatchPos [0] - PrevPos); - if AUseSubstitution //###0.946 - then Result := Result + Substitute (AReplaceStr) - else Result := Result + AReplaceStr; - PrevPos := MatchPos [0] + MatchLen [0]; - UNTIL not ExecNext; - Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail - end; { of function TRegExpr.Replace ---------------------------------------------------------------} - -function TRegExpr.ReplaceEx (AInputStr : RegExprString; - AReplaceFunc : TRegExprReplaceFunction) - : RegExprString; - var - PrevPos : integer; - begin - Result := ''; - PrevPos := 1; - if Exec (AInputStr) then - REPEAT - Result := Result + System.Copy (AInputStr, PrevPos, - MatchPos [0] - PrevPos) - + AReplaceFunc (Self); - PrevPos := MatchPos [0] + MatchLen [0]; - UNTIL not ExecNext; - Result := Result + System.Copy (AInputStr, PrevPos, MaxInt); // Tail - end; { of function TRegExpr.ReplaceEx ---------------------------------------------------------------} - - -{$IFDEF OverMeth} -function TRegExpr.Replace (AInputStr : RegExprString; - AReplaceFunc : TRegExprReplaceFunction) - : RegExprString; - begin - ReplaceEx (AInputStr, AReplaceFunc); - end; { of function TRegExpr.Replace ---------------------------------------------------------------} -{$ENDIF} - -{=============================================================} -{====================== Debug section ========================} -{=============================================================} - -{$IFDEF RegExpPCodeDump} -function TRegExpr.DumpOp (op : TREOp) : RegExprString; -// printable representation of opcode - begin - case op of - BOL: Result := 'BOL'; - EOL: Result := 'EOL'; - BOLML: Result := 'BOLML'; - EOLML: Result := 'EOLML'; - BOUND: Result := 'BOUND'; //###0.943 - NOTBOUND: Result := 'NOTBOUND'; //###0.943 - ANY: Result := 'ANY'; - ANYML: Result := 'ANYML'; //###0.941 - ANYLETTER: Result := 'ANYLETTER'; - NOTLETTER: Result := 'NOTLETTER'; - ANYDIGIT: Result := 'ANYDIGIT'; - NOTDIGIT: Result := 'NOTDIGIT'; - ANYSPACE: Result := 'ANYSPACE'; - NOTSPACE: Result := 'NOTSPACE'; - ANYOF: Result := 'ANYOF'; - ANYBUT: Result := 'ANYBUT'; - ANYOFCI: Result := 'ANYOF/CI'; - ANYBUTCI: Result := 'ANYBUT/CI'; - BRANCH: Result := 'BRANCH'; - EXACTLY: Result := 'EXACTLY'; - EXACTLYCI: Result := 'EXACTLY/CI'; - NOTHING: Result := 'NOTHING'; - COMMENT: Result := 'COMMENT'; - BACK: Result := 'BACK'; - EEND: Result := 'END'; - BSUBEXP: Result := 'BSUBEXP'; - BSUBEXPCI: Result := 'BSUBEXP/CI'; - Succ (OPEN) .. TREOp (Ord (OPEN) + NSUBEXP - 1): //###0.929 - Result := Format ('OPEN[%d]', [ord (op) - ord (OPEN)]); - Succ (CLOSE) .. TREOp (Ord (CLOSE) + NSUBEXP - 1): //###0.929 - Result := Format ('CLOSE[%d]', [ord (op) - ord (CLOSE)]); - STAR: Result := 'STAR'; - PLUS: Result := 'PLUS'; - BRACES: Result := 'BRACES'; - {$IFDEF ComplexBraces} - LOOPENTRY: Result := 'LOOPENTRY'; //###0.925 - LOOP: Result := 'LOOP'; //###0.925 - LOOPNG: Result := 'LOOPNG'; //###0.940 - {$ENDIF} - ANYOFTINYSET: Result:= 'ANYOFTINYSET'; - ANYBUTTINYSET:Result:= 'ANYBUTTINYSET'; - {$IFDEF UseSetOfChar} //###0.929 - ANYOFFULLSET: Result:= 'ANYOFFULLSET'; - {$ENDIF} - STARNG: Result := 'STARNG'; //###0.940 - PLUSNG: Result := 'PLUSNG'; //###0.940 - BRACESNG: Result := 'BRACESNG'; //###0.940 - else Error (reeDumpCorruptedOpcode); - end; {of case op} - Result := ':' + Result; - end; { of function TRegExpr.DumpOp ---------------------------------------------------------------} - -function TRegExpr.Dump : RegExprString; -// dump a regexp in vaguely comprehensible form - var - s : PRegExprChar; - op : TREOp; // Arbitrary non-END op. - next : PRegExprChar; - i : integer; - Diff : integer; -{$IFDEF UseSetOfChar} //###0.929 - Ch : REChar; -{$ENDIF} - begin - if not IsProgrammOk //###0.929 - then EXIT; - - op := EXACTLY; - Result := ''; - s := programm + REOpSz; - while op <> EEND do begin // While that wasn't END last time... - op := s^; - Result := Result + Format ('%2d%s', [s - programm, DumpOp (s^)]); // Where, what. - next := regnext (s); - if next = nil // Next ptr. - then Result := Result + ' (0)' - else begin - if next > s //###0.948 PWideChar subtraction workaround (see comments in Tail method for details) - then Diff := next - s - else Diff := - (s - next); - Result := Result + Format (' (%d) ', [(s - programm) + Diff]); - end; - inc (s, REOpSz + RENextOffSz); - if (op = ANYOF) or (op = ANYOFCI) or (op = ANYBUT) or (op = ANYBUTCI) - or (op = EXACTLY) or (op = EXACTLYCI) then begin - // Literal string, where present. - while s^ <> #0 do begin - Result := Result + s^; - inc (s); - end; - inc (s); - end; - if (op = ANYOFTINYSET) or (op = ANYBUTTINYSET) then begin - for i := 1 to TinySetLen do begin - Result := Result + s^; - inc (s); - end; - end; - if (op = BSUBEXP) or (op = BSUBEXPCI) then begin - Result := Result + ' \' + IntToStr (Ord (s^)); - inc (s); - end; - {$IFDEF UseSetOfChar} //###0.929 - if op = ANYOFFULLSET then begin - for Ch := #0 to #255 do - if Ch in PSetOfREChar (s)^ then - if Ch < ' ' - then Result := Result + '#' + IntToStr (Ord (Ch)) //###0.936 - else Result := Result + Ch; - inc (s, SizeOf (TSetOfREChar)); - end; - {$ENDIF} - if (op = BRACES) or (op = BRACESNG) then begin //###0.941 - // show min/max argument of BRACES operator - Result := Result + Format ('{%d,%d}', [PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); - inc (s, REBracesArgSz * 2); - end; - {$IFDEF ComplexBraces} - if (op = LOOP) or (op = LOOPNG) then begin //###0.940 - Result := Result + Format (' -> (%d) {%d,%d}', [ - (s - programm - (REOpSz + RENextOffSz)) + PRENextOff (s + 2 * REBracesArgSz)^, - PREBracesArg (s)^, PREBracesArg (s + REBracesArgSz)^]); - inc (s, 2 * REBracesArgSz + RENextOffSz); - end; - {$ENDIF} - Result := Result + #$d#$a; - end; { of while} - - // Header fields of interest. - - if regstart <> #0 - then Result := Result + 'start ' + regstart; - if reganch <> #0 - then Result := Result + 'anchored '; - if regmust <> nil - then Result := Result + 'must have ' + regmust; - {$IFDEF UseFirstCharSet} //###0.929 - Result := Result + #$d#$a'FirstCharSet:'; - for Ch := #0 to #255 do - if Ch in FirstCharSet - then begin - if Ch < ' ' - then Result := Result + '#' + IntToStr(Ord(Ch)) //###0.948 - else Result := Result + Ch; - end; - {$ENDIF} - Result := Result + #$d#$a; - end; { of function TRegExpr.Dump ---------------------------------------------------------------} -{$ENDIF} - -{$IFDEF reRealExceptionAddr} -{$OPTIMIZATION ON} -// ReturnAddr works correctly only if compiler optimization is ON -// I placed this method at very end of unit because there are no -// way to restore compiler optimization flag ... -{$ENDIF} -procedure TRegExpr.Error (AErrorID : integer); -{$IFDEF reRealExceptionAddr} - function ReturnAddr : pointer; //###0.938 - asm - mov eax,[ebp+4] - end; -{$ENDIF} - var - e : ERegExpr; - begin - fLastError := AErrorID; // dummy stub - useless because will raise exception - if AErrorID < 1000 // compilation error ? - then e := ERegExpr.Create (ErrorMsg (AErrorID) // yes - show error pos - + ' (pos ' + IntToStr (CompilerErrorPos) + ')') - else e := ERegExpr.Create (ErrorMsg (AErrorID)); - e.ErrorCode := AErrorID; - e.CompilerErrorPos := CompilerErrorPos; - raise e - {$IFDEF reRealExceptionAddr} - At ReturnAddr; //###0.938 - {$ENDIF} - end; { of procedure TRegExpr.Error ---------------------------------------------------------------} - -(* - PCode persistence: - FirstCharSet - programm, regsize - regstart // -> programm - reganch // -> programm - regmust, regmlen // -> programm - fExprIsCompiled -*) - -// be carefull - placed here code will be always compiled with -// compiler optimization flag - -{$IFDEF FPC} -initialization - RegExprInvertCaseFunction := TRegExpr.InvertCaseFunction; - -{$ENDIF} -end. - diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm deleted file mode 100644 index 31a1551..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.dfm +++ /dev/null @@ -1,16 +0,0 @@ -object EDI_Inventary: TEDI_Inventary - OldCreateOrder = True - SessionManager = dmServer.SessionManager - ServiceSchema = dmEDIInventary.schEDIInventary - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 295 - Width = 296 - object DABINAdapter: TDABINAdapter - Left = 64 - Top = 32 - end -end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas deleted file mode 100644 index 4c9f420..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/EDI_Inventary_Impl.pas +++ /dev/null @@ -1,139 +0,0 @@ -unit EDI_Inventary_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TEDI_Inventary } - TEDI_Inventary = class(TDARemoteService, IEDI_Inventary) - DABINAdapter: TDABINAdapter; - private - procedure InsertarLog(OK : Boolean; Error_msg : String = ''); - protected - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; - const FicheroCANT: String; out MsgError: String): Boolean; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, - JclFileUtils, DateUtils, EDI_Log_Impl, uDataModuleEDI_Inventary; - -procedure Create_EDI_Inventary(out anInstance : IUnknown); -begin - anInstance := TEDI_Inventary.Create(NIL); -end; - -{ EDI_Inventary } -{ TEDI_Inventary } - -function TEDI_Inventary.CargarFicheroEDI(const FicheroCAB, FicheroLIN, - FicheroCANT: String; out MsgError: String): Boolean; -var - ADirEntrada : String; - ADirTemp : String; - NumRegNuevos : Integer; - - procedure GuardarFicheros; - var - AAlmacen : String; - ADate : String; - begin - DateTimeToString(ADate, 'yyyymmddhhnn', Now); - AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); - AAlmacen := PathAddSeparator(AAlmacen + ADate); - if not DirectoryExists(AAlmacen) then - ForceDirectories(AAlmacen); - FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); - FileMove(ADirTemp + FicheroLIN, AAlmacen + FicheroLIN); - FileMove(ADirTemp + FicheroCANT, AAlmacen + FicheroCANT); - DeleteDirectory(ADirTemp, False); - end; - -begin - Result := False; - - // Hay que comprobar que existen los ficheros. - ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); - - if not FileExists(ADirEntrada + FicheroCAB) or - not FileExists(ADirEntrada + FicheroLIN) or - not FileExists(ADirEntrada + FicheroCANT) then - begin - MsgError := 'No hay ficheros de datos'; - InsertarLog(False, MsgError + ' (CargarFicheroEDI1 INV)'); - end - else begin - - // Muevo los ficheros de carga a un directorio temporal - ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); - try - if not DirectoryExists(ADirTemp) then - ForceDirectories(ADirTemp); - FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); - FileMove(ADirEntrada + FicheroLIN, ADirTemp + FicheroLIN); - FileMove(ADirEntrada + FicheroCANT, ADirTemp + FicheroCANT); - except - on E: Exception do - begin - MsgError := E.Message; - InsertarLog(False, MsgError + ' (CargarFicheroEDI2 INV)'); - Exit; - end; - end; - - try - try - dmEDIInventary.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLIN, ADirTemp + FicheroCANT, NumRegNuevos); - if NumRegNuevos > 0 then - InsertarLog(True, Format('Se han cargado %d registros de inventario nuevos', [NumRegNuevos])) - else - InsertarLog(True, 'El fichero se ha cargado pero no hay registros de inventario nuevos'); - Result := True; - finally - GuardarFicheros; - dmServer.BorrarFicherosDeCargaAntiguos; - end; - except - on E: Exception do - begin - MsgError := E.Message; - InsertarLog(False, MsgError + ' (CargarFicheroEDI3 INV)'); - end; - end; - end; -end; - -procedure TEDI_Inventary.InsertarLog(OK: Boolean; Error_msg: String); -var - LogService : IEDI_Log; -begin - LogService := EDI_Log_Impl.TEDI_Log.Create(Self); - try - LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); - finally - LogService := nil; - end; -end; - -initialization - TROClassFactory.Create('EDI_Inventary', Create_EDI_Inventary, TEDI_Inventary_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas deleted file mode 100644 index 8903964..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryClient_Intf.pas +++ /dev/null @@ -1,742 +0,0 @@ -unit schEDIInventaryClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_RDX_CANTINV = '{D890DD46-1103-4942-83FC-8BE8479D1101}'; - RID_RDX_LININV = '{B0D6E128-0438-4CA2-81F9-0893BE9A9A21}'; - RID_RDX_CABINV = '{21FBA86D-243E-4A6E-AC7D-DB040E6AA070}'; - - { Data table names } - nme_RDX_CANTINV = 'RDX_CANTINV'; - nme_RDX_LININV = 'RDX_LININV'; - nme_RDX_CABINV = 'RDX_CABINV'; - - { RDX_CANTINV fields } - fld_RDX_CANTINVNUMDOC = 'NUMDOC'; - fld_RDX_CANTINVNUMLIN = 'NUMLIN'; - fld_RDX_CANTINVNUMCANT = 'NUMCANT'; - fld_RDX_CANTINVTIPOCANT = 'TIPOCANT'; - fld_RDX_CANTINVCANTIDAD = 'CANTIDAD'; - fld_RDX_CANTINVCENTRO = 'CENTRO'; - fld_RDX_CANTINVTMOV = 'TMOV'; - fld_RDX_CANTINVFACT = 'FACT'; - fld_RDX_CANTINVDEPTO = 'DEPTO'; - fld_RDX_CANTINVIDVEN = 'IDVEN'; - - { RDX_CANTINV field indexes } - idx_RDX_CANTINVNUMDOC = 0; - idx_RDX_CANTINVNUMLIN = 1; - idx_RDX_CANTINVNUMCANT = 2; - idx_RDX_CANTINVTIPOCANT = 3; - idx_RDX_CANTINVCANTIDAD = 4; - idx_RDX_CANTINVCENTRO = 5; - idx_RDX_CANTINVTMOV = 6; - idx_RDX_CANTINVFACT = 7; - idx_RDX_CANTINVDEPTO = 8; - idx_RDX_CANTINVIDVEN = 9; - - { RDX_LININV fields } - fld_RDX_LININVNUMDOC = 'NUMDOC'; - fld_RDX_LININVNUMLIN = 'NUMLIN'; - fld_RDX_LININVCODART = 'CODART'; - fld_RDX_LININVFAMILIA = 'FAMILIA'; - fld_RDX_LININVBARRA = 'BARRA'; - fld_RDX_LININVTALLA = 'TALLA'; - fld_RDX_LININVMARCA = 'MARCA'; - fld_RDX_LININVTAMANO = 'TAMANO'; - fld_RDX_LININVSERIE = 'SERIE'; - fld_RDX_LININVCOLOR = 'COLOR'; - fld_RDX_LININVMODELO = 'MODELO'; - fld_RDX_LININVDIBUJO = 'DIBUJO'; - fld_RDX_LININVDESCRIP = 'DESCRIP'; - - { RDX_LININV field indexes } - idx_RDX_LININVNUMDOC = 0; - idx_RDX_LININVNUMLIN = 1; - idx_RDX_LININVCODART = 2; - idx_RDX_LININVFAMILIA = 3; - idx_RDX_LININVBARRA = 4; - idx_RDX_LININVTALLA = 5; - idx_RDX_LININVMARCA = 6; - idx_RDX_LININVTAMANO = 7; - idx_RDX_LININVSERIE = 8; - idx_RDX_LININVCOLOR = 9; - idx_RDX_LININVMODELO = 10; - idx_RDX_LININVDIBUJO = 11; - idx_RDX_LININVDESCRIP = 12; - - { RDX_CABINV fields } - fld_RDX_CABINVNUMDOC = 'NUMDOC'; - fld_RDX_CABINVTIPODOC = 'TIPODOC'; - fld_RDX_CABINVTIPOLIQ = 'TIPOLIQ'; - fld_RDX_CABINVFECHA = 'FECHA'; - fld_RDX_CABINVFECHALIQ = 'FECHALIQ'; - fld_RDX_CABINVEMISOR = 'EMISOR'; - fld_RDX_CABINVRECEPTOR = 'RECEPTOR'; - fld_RDX_CABINVDPTO = 'DPTO'; - fld_RDX_CABINVCENTRO = 'CENTRO'; - fld_RDX_CABINVFECHA_CARGA = 'FECHA_CARGA'; - - { RDX_CABINV field indexes } - idx_RDX_CABINVNUMDOC = 0; - idx_RDX_CABINVTIPODOC = 1; - idx_RDX_CABINVTIPOLIQ = 2; - idx_RDX_CABINVFECHA = 3; - idx_RDX_CABINVFECHALIQ = 4; - idx_RDX_CABINVEMISOR = 5; - idx_RDX_CABINVRECEPTOR = 6; - idx_RDX_CABINVDPTO = 7; - idx_RDX_CABINVCENTRO = 8; - idx_RDX_CABINVFECHA_CARGA = 9; - -type - { IRDX_CANTINV } - IRDX_CANTINV = interface(IDAStronglyTypedDataTable) - ['{2D19DA25-B122-468C-BB44-9B28F4025A0B}'] - { Property getters and setters } - function GetNUMDOCValue: String; - procedure SetNUMDOCValue(const aValue: String); - function GetNUMLINValue: Float; - procedure SetNUMLINValue(const aValue: Float); - function GetNUMCANTValue: Float; - procedure SetNUMCANTValue(const aValue: Float); - function GetTIPOCANTValue: String; - procedure SetTIPOCANTValue(const aValue: String); - function GetCANTIDADValue: Float; - procedure SetCANTIDADValue(const aValue: Float); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetTMOVValue: String; - procedure SetTMOVValue(const aValue: String); - function GetFACTValue: String; - procedure SetFACTValue(const aValue: String); - function GetDEPTOValue: String; - procedure SetDEPTOValue(const aValue: String); - function GetIDVENValue: String; - procedure SetIDVENValue(const aValue: String); - - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; - property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; - property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property TMOV: String read GetTMOVValue write SetTMOVValue; - property FACT: String read GetFACTValue write SetFACTValue; - property DEPTO: String read GetDEPTOValue write SetDEPTOValue; - property IDVEN: String read GetIDVENValue write SetIDVENValue; - end; - - { TRDX_CANTINVDataTableRules } - TRDX_CANTINVDataTableRules = class(TDADataTableRules, IRDX_CANTINV) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetNUMLINValue: Float; virtual; - procedure SetNUMLINValue(const aValue: Float); virtual; - function GetNUMCANTValue: Float; virtual; - procedure SetNUMCANTValue(const aValue: Float); virtual; - function GetTIPOCANTValue: String; virtual; - procedure SetTIPOCANTValue(const aValue: String); virtual; - function GetCANTIDADValue: Float; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetTMOVValue: String; virtual; - procedure SetTMOVValue(const aValue: String); virtual; - function GetFACTValue: String; virtual; - procedure SetFACTValue(const aValue: String); virtual; - function GetDEPTOValue: String; virtual; - procedure SetDEPTOValue(const aValue: String); virtual; - function GetIDVENValue: String; virtual; - procedure SetIDVENValue(const aValue: String); virtual; - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; - property NUMCANT: Float read GetNUMCANTValue write SetNUMCANTValue; - property TIPOCANT: String read GetTIPOCANTValue write SetTIPOCANTValue; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property TMOV: String read GetTMOVValue write SetTMOVValue; - property FACT: String read GetFACTValue write SetFACTValue; - property DEPTO: String read GetDEPTOValue write SetDEPTOValue; - property IDVEN: String read GetIDVENValue write SetIDVENValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IRDX_LININV } - IRDX_LININV = interface(IDAStronglyTypedDataTable) - ['{7DF3D736-0E00-441C-A777-864BD96FA2A4}'] - { Property getters and setters } - function GetNUMDOCValue: String; - procedure SetNUMDOCValue(const aValue: String); - function GetNUMLINValue: Float; - procedure SetNUMLINValue(const aValue: Float); - function GetCODARTValue: String; - procedure SetCODARTValue(const aValue: String); - function GetFAMILIAValue: String; - procedure SetFAMILIAValue(const aValue: String); - function GetBARRAValue: String; - procedure SetBARRAValue(const aValue: String); - function GetTALLAValue: String; - procedure SetTALLAValue(const aValue: String); - function GetMARCAValue: String; - procedure SetMARCAValue(const aValue: String); - function GetTAMANOValue: String; - procedure SetTAMANOValue(const aValue: String); - function GetSERIEValue: String; - procedure SetSERIEValue(const aValue: String); - function GetCOLORValue: String; - procedure SetCOLORValue(const aValue: String); - function GetMODELOValue: String; - procedure SetMODELOValue(const aValue: String); - function GetDIBUJOValue: String; - procedure SetDIBUJOValue(const aValue: String); - function GetDESCRIPValue: String; - procedure SetDESCRIPValue(const aValue: String); - - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; - property CODART: String read GetCODARTValue write SetCODARTValue; - property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; - property BARRA: String read GetBARRAValue write SetBARRAValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property MARCA: String read GetMARCAValue write SetMARCAValue; - property TAMANO: String read GetTAMANOValue write SetTAMANOValue; - property SERIE: String read GetSERIEValue write SetSERIEValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property MODELO: String read GetMODELOValue write SetMODELOValue; - property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; - property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; - end; - - { TRDX_LININVDataTableRules } - TRDX_LININVDataTableRules = class(TDADataTableRules, IRDX_LININV) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetNUMLINValue: Float; virtual; - procedure SetNUMLINValue(const aValue: Float); virtual; - function GetCODARTValue: String; virtual; - procedure SetCODARTValue(const aValue: String); virtual; - function GetFAMILIAValue: String; virtual; - procedure SetFAMILIAValue(const aValue: String); virtual; - function GetBARRAValue: String; virtual; - procedure SetBARRAValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetMARCAValue: String; virtual; - procedure SetMARCAValue(const aValue: String); virtual; - function GetTAMANOValue: String; virtual; - procedure SetTAMANOValue(const aValue: String); virtual; - function GetSERIEValue: String; virtual; - procedure SetSERIEValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetMODELOValue: String; virtual; - procedure SetMODELOValue(const aValue: String); virtual; - function GetDIBUJOValue: String; virtual; - procedure SetDIBUJOValue(const aValue: String); virtual; - function GetDESCRIPValue: String; virtual; - procedure SetDESCRIPValue(const aValue: String); virtual; - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property NUMLIN: Float read GetNUMLINValue write SetNUMLINValue; - property CODART: String read GetCODARTValue write SetCODARTValue; - property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue; - property BARRA: String read GetBARRAValue write SetBARRAValue; - property TALLA: String read GetTALLAValue write SetTALLAValue; - property MARCA: String read GetMARCAValue write SetMARCAValue; - property TAMANO: String read GetTAMANOValue write SetTAMANOValue; - property SERIE: String read GetSERIEValue write SetSERIEValue; - property COLOR: String read GetCOLORValue write SetCOLORValue; - property MODELO: String read GetMODELOValue write SetMODELOValue; - property DIBUJO: String read GetDIBUJOValue write SetDIBUJOValue; - property DESCRIP: String read GetDESCRIPValue write SetDESCRIPValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IRDX_CABINV } - IRDX_CABINV = interface(IDAStronglyTypedDataTable) - ['{4373F992-8872-4C21-BF37-CB9EB6F816CF}'] - { Property getters and setters } - function GetNUMDOCValue: String; - procedure SetNUMDOCValue(const aValue: String); - function GetTIPODOCValue: String; - procedure SetTIPODOCValue(const aValue: String); - function GetTIPOLIQValue: String; - procedure SetTIPOLIQValue(const aValue: String); - function GetFECHAValue: DateTime; - procedure SetFECHAValue(const aValue: DateTime); - function GetFECHALIQValue: DateTime; - procedure SetFECHALIQValue(const aValue: DateTime); - function GetEMISORValue: String; - procedure SetEMISORValue(const aValue: String); - function GetRECEPTORValue: String; - procedure SetRECEPTORValue(const aValue: String); - function GetDPTOValue: String; - procedure SetDPTOValue(const aValue: String); - function GetCENTROValue: String; - procedure SetCENTROValue(const aValue: String); - function GetFECHA_CARGAValue: DateTime; - procedure SetFECHA_CARGAValue(const aValue: DateTime); - - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; - property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; - property EMISOR: String read GetEMISORValue write SetEMISORValue; - property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; - property DPTO: String read GetDPTOValue write SetDPTOValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; - end; - - { TRDX_CABINVDataTableRules } - TRDX_CABINVDataTableRules = class(TDADataTableRules, IRDX_CABINV) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetTIPODOCValue: String; virtual; - procedure SetTIPODOCValue(const aValue: String); virtual; - function GetTIPOLIQValue: String; virtual; - procedure SetTIPOLIQValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetFECHALIQValue: DateTime; virtual; - procedure SetFECHALIQValue(const aValue: DateTime); virtual; - function GetEMISORValue: String; virtual; - procedure SetEMISORValue(const aValue: String); virtual; - function GetRECEPTORValue: String; virtual; - procedure SetRECEPTORValue(const aValue: String); virtual; - function GetDPTOValue: String; virtual; - procedure SetDPTOValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetFECHA_CARGAValue: DateTime; virtual; - procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; - - { Properties } - property NUMDOC: String read GetNUMDOCValue write SetNUMDOCValue; - property TIPODOC: String read GetTIPODOCValue write SetTIPODOCValue; - property TIPOLIQ: String read GetTIPOLIQValue write SetTIPOLIQValue; - property FECHA: DateTime read GetFECHAValue write SetFECHAValue; - property FECHALIQ: DateTime read GetFECHALIQValue write SetFECHALIQValue; - property EMISOR: String read GetEMISORValue write SetEMISORValue; - property RECEPTOR: String read GetRECEPTORValue write SetRECEPTORValue; - property DPTO: String read GetDPTOValue write SetDPTOValue; - property CENTRO: String read GetCENTROValue write SetCENTROValue; - property FECHA_CARGA: DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TRDX_CANTINVDataTableRules } -constructor TRDX_CANTINVDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_CANTINVDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_CANTINVDataTableRules.GetNUMDOCValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetNUMDOCValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVNUMDOC].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetNUMLINValue: Float; -begin - result := DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat; -end; - -procedure TRDX_CANTINVDataTableRules.SetNUMLINValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_CANTINVNUMLIN].AsFloat := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetNUMCANTValue: Float; -begin - result := DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat; -end; - -procedure TRDX_CANTINVDataTableRules.SetNUMCANTValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_CANTINVNUMCANT].AsFloat := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetTIPOCANTValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetTIPOCANTValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetCANTIDADValue: Float; -begin - result := DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat; -end; - -procedure TRDX_CANTINVDataTableRules.SetCANTIDADValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_CANTINVCANTIDAD].AsFloat := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetTMOVValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVTMOV].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetTMOVValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVTMOV].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetFACTValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVFACT].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetFACTValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetDEPTOValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetDEPTOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; -end; - -function TRDX_CANTINVDataTableRules.GetIDVENValue: String; -begin - result := DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString; -end; - -procedure TRDX_CANTINVDataTableRules.SetIDVENValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; -end; - - -{ TRDX_LININVDataTableRules } -constructor TRDX_LININVDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_LININVDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_LININVDataTableRules.GetNUMDOCValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVNUMDOC].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetNUMDOCValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVNUMDOC].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetNUMLINValue: Float; -begin - result := DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat; -end; - -procedure TRDX_LININVDataTableRules.SetNUMLINValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_LININVNUMLIN].AsFloat := aValue; -end; - -function TRDX_LININVDataTableRules.GetCODARTValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVCODART].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetCODARTValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetFAMILIAValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVFAMILIA].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetFAMILIAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetBARRAValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVBARRA].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetBARRAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetTALLAValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVTALLA].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetTALLAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetMARCAValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVMARCA].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetMARCAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetTAMANOValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVTAMANO].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetTAMANOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetSERIEValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVSERIE].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetSERIEValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetCOLORValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVCOLOR].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetCOLORValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetMODELOValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVMODELO].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetMODELOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetDIBUJOValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVDIBUJO].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetDIBUJOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; -end; - -function TRDX_LININVDataTableRules.GetDESCRIPValue: String; -begin - result := DataTable.Fields[idx_RDX_LININVDESCRIP].AsString; -end; - -procedure TRDX_LININVDataTableRules.SetDESCRIPValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; -end; - - -{ TRDX_CABINVDataTableRules } -constructor TRDX_CABINVDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_CABINVDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_CABINVDataTableRules.GetNUMDOCValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetNUMDOCValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVNUMDOC].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetTIPODOCValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetTIPODOCValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetTIPOLIQValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetTIPOLIQValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetFECHAValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime; -end; - -procedure TRDX_CABINVDataTableRules.SetFECHAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; -end; - -function TRDX_CABINVDataTableRules.GetFECHALIQValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime; -end; - -procedure TRDX_CABINVDataTableRules.SetFECHALIQValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; -end; - -function TRDX_CABINVDataTableRules.GetEMISORValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVEMISOR].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetEMISORValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetRECEPTORValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetRECEPTORValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetDPTOValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVDPTO].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetDPTOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetCENTROValue: String; -begin - result := DataTable.Fields[idx_RDX_CABINVCENTRO].AsString; -end; - -procedure TRDX_CABINVDataTableRules.SetCENTROValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; -end; - -function TRDX_CABINVDataTableRules.GetFECHA_CARGAValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime; -end; - -procedure TRDX_CABINVDataTableRules.SetFECHA_CARGAValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABINVFECHA_CARGA].AsDateTime := aValue; -end; - - -initialization - RegisterDataTableRules(RID_RDX_CANTINV, TRDX_CANTINVDataTableRules); - RegisterDataTableRules(RID_RDX_LININV, TRDX_LININVDataTableRules); - RegisterDataTableRules(RID_RDX_CABINV, TRDX_CABINVDataTableRules); - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas deleted file mode 100644 index 5429a9a..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/schEDIInventaryServer_Intf.pas +++ /dev/null @@ -1,855 +0,0 @@ -unit schEDIInventaryServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDIInventaryClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_RDX_CANTINVDelta = '{C803322D-5148-44E9-A06D-99D8B2E2781E}'; - RID_RDX_LININVDelta = '{59D21195-BB34-4A91-BD02-D48649A8F4B9}'; - RID_RDX_CABINVDelta = '{9A135F09-4540-4DAE-B701-2CDA92E0519B}'; - -type - { IRDX_CANTINVDelta } - IRDX_CANTINVDelta = interface(IRDX_CANTINV) - ['{C803322D-5148-44E9-A06D-99D8B2E2781E}'] - { Property getters and setters } - function GetOldNUMDOCValue : String; - function GetOldNUMLINValue : Float; - function GetOldNUMCANTValue : Float; - function GetOldTIPOCANTValue : String; - function GetOldCANTIDADValue : Float; - function GetOldCENTROValue : String; - function GetOldTMOVValue : String; - function GetOldFACTValue : String; - function GetOldDEPTOValue : String; - function GetOldIDVENValue : String; - - { Properties } - property OldNUMDOC : String read GetOldNUMDOCValue; - property OldNUMLIN : Float read GetOldNUMLINValue; - property OldNUMCANT : Float read GetOldNUMCANTValue; - property OldTIPOCANT : String read GetOldTIPOCANTValue; - property OldCANTIDAD : Float read GetOldCANTIDADValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldTMOV : String read GetOldTMOVValue; - property OldFACT : String read GetOldFACTValue; - property OldDEPTO : String read GetOldDEPTOValue; - property OldIDVEN : String read GetOldIDVENValue; - end; - - { TRDX_CANTINVBusinessProcessorRules } - TRDX_CANTINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CANTINV, IRDX_CANTINVDelta) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - function GetOldNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetNUMLINValue: Float; virtual; - function GetOldNUMLINValue: Float; virtual; - procedure SetNUMLINValue(const aValue: Float); virtual; - function GetNUMCANTValue: Float; virtual; - function GetOldNUMCANTValue: Float; virtual; - procedure SetNUMCANTValue(const aValue: Float); virtual; - function GetTIPOCANTValue: String; virtual; - function GetOldTIPOCANTValue: String; virtual; - procedure SetTIPOCANTValue(const aValue: String); virtual; - function GetCANTIDADValue: Float; virtual; - function GetOldCANTIDADValue: Float; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetTMOVValue: String; virtual; - function GetOldTMOVValue: String; virtual; - procedure SetTMOVValue(const aValue: String); virtual; - function GetFACTValue: String; virtual; - function GetOldFACTValue: String; virtual; - procedure SetFACTValue(const aValue: String); virtual; - function GetDEPTOValue: String; virtual; - function GetOldDEPTOValue: String; virtual; - procedure SetDEPTOValue(const aValue: String); virtual; - function GetIDVENValue: String; virtual; - function GetOldIDVENValue: String; virtual; - procedure SetIDVENValue(const aValue: String); virtual; - - { Properties } - property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; - property OldNUMDOC : String read GetOldNUMDOCValue; - property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; - property OldNUMLIN : Float read GetOldNUMLINValue; - property NUMCANT : Float read GetNUMCANTValue write SetNUMCANTValue; - property OldNUMCANT : Float read GetOldNUMCANTValue; - property TIPOCANT : String read GetTIPOCANTValue write SetTIPOCANTValue; - property OldTIPOCANT : String read GetOldTIPOCANTValue; - property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; - property OldCANTIDAD : Float read GetOldCANTIDADValue; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property TMOV : String read GetTMOVValue write SetTMOVValue; - property OldTMOV : String read GetOldTMOVValue; - property FACT : String read GetFACTValue write SetFACTValue; - property OldFACT : String read GetOldFACTValue; - property DEPTO : String read GetDEPTOValue write SetDEPTOValue; - property OldDEPTO : String read GetOldDEPTOValue; - property IDVEN : String read GetIDVENValue write SetIDVENValue; - property OldIDVEN : String read GetOldIDVENValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IRDX_LININVDelta } - IRDX_LININVDelta = interface(IRDX_LININV) - ['{59D21195-BB34-4A91-BD02-D48649A8F4B9}'] - { Property getters and setters } - function GetOldNUMDOCValue : String; - function GetOldNUMLINValue : Float; - function GetOldCODARTValue : String; - function GetOldFAMILIAValue : String; - function GetOldBARRAValue : String; - function GetOldTALLAValue : String; - function GetOldMARCAValue : String; - function GetOldTAMANOValue : String; - function GetOldSERIEValue : String; - function GetOldCOLORValue : String; - function GetOldMODELOValue : String; - function GetOldDIBUJOValue : String; - function GetOldDESCRIPValue : String; - - { Properties } - property OldNUMDOC : String read GetOldNUMDOCValue; - property OldNUMLIN : Float read GetOldNUMLINValue; - property OldCODART : String read GetOldCODARTValue; - property OldFAMILIA : String read GetOldFAMILIAValue; - property OldBARRA : String read GetOldBARRAValue; - property OldTALLA : String read GetOldTALLAValue; - property OldMARCA : String read GetOldMARCAValue; - property OldTAMANO : String read GetOldTAMANOValue; - property OldSERIE : String read GetOldSERIEValue; - property OldCOLOR : String read GetOldCOLORValue; - property OldMODELO : String read GetOldMODELOValue; - property OldDIBUJO : String read GetOldDIBUJOValue; - property OldDESCRIP : String read GetOldDESCRIPValue; - end; - - { TRDX_LININVBusinessProcessorRules } - TRDX_LININVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LININV, IRDX_LININVDelta) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - function GetOldNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetNUMLINValue: Float; virtual; - function GetOldNUMLINValue: Float; virtual; - procedure SetNUMLINValue(const aValue: Float); virtual; - function GetCODARTValue: String; virtual; - function GetOldCODARTValue: String; virtual; - procedure SetCODARTValue(const aValue: String); virtual; - function GetFAMILIAValue: String; virtual; - function GetOldFAMILIAValue: String; virtual; - procedure SetFAMILIAValue(const aValue: String); virtual; - function GetBARRAValue: String; virtual; - function GetOldBARRAValue: String; virtual; - procedure SetBARRAValue(const aValue: String); virtual; - function GetTALLAValue: String; virtual; - function GetOldTALLAValue: String; virtual; - procedure SetTALLAValue(const aValue: String); virtual; - function GetMARCAValue: String; virtual; - function GetOldMARCAValue: String; virtual; - procedure SetMARCAValue(const aValue: String); virtual; - function GetTAMANOValue: String; virtual; - function GetOldTAMANOValue: String; virtual; - procedure SetTAMANOValue(const aValue: String); virtual; - function GetSERIEValue: String; virtual; - function GetOldSERIEValue: String; virtual; - procedure SetSERIEValue(const aValue: String); virtual; - function GetCOLORValue: String; virtual; - function GetOldCOLORValue: String; virtual; - procedure SetCOLORValue(const aValue: String); virtual; - function GetMODELOValue: String; virtual; - function GetOldMODELOValue: String; virtual; - procedure SetMODELOValue(const aValue: String); virtual; - function GetDIBUJOValue: String; virtual; - function GetOldDIBUJOValue: String; virtual; - procedure SetDIBUJOValue(const aValue: String); virtual; - function GetDESCRIPValue: String; virtual; - function GetOldDESCRIPValue: String; virtual; - procedure SetDESCRIPValue(const aValue: String); virtual; - - { Properties } - property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; - property OldNUMDOC : String read GetOldNUMDOCValue; - property NUMLIN : Float read GetNUMLINValue write SetNUMLINValue; - property OldNUMLIN : Float read GetOldNUMLINValue; - property CODART : String read GetCODARTValue write SetCODARTValue; - property OldCODART : String read GetOldCODARTValue; - property FAMILIA : String read GetFAMILIAValue write SetFAMILIAValue; - property OldFAMILIA : String read GetOldFAMILIAValue; - property BARRA : String read GetBARRAValue write SetBARRAValue; - property OldBARRA : String read GetOldBARRAValue; - property TALLA : String read GetTALLAValue write SetTALLAValue; - property OldTALLA : String read GetOldTALLAValue; - property MARCA : String read GetMARCAValue write SetMARCAValue; - property OldMARCA : String read GetOldMARCAValue; - property TAMANO : String read GetTAMANOValue write SetTAMANOValue; - property OldTAMANO : String read GetOldTAMANOValue; - property SERIE : String read GetSERIEValue write SetSERIEValue; - property OldSERIE : String read GetOldSERIEValue; - property COLOR : String read GetCOLORValue write SetCOLORValue; - property OldCOLOR : String read GetOldCOLORValue; - property MODELO : String read GetMODELOValue write SetMODELOValue; - property OldMODELO : String read GetOldMODELOValue; - property DIBUJO : String read GetDIBUJOValue write SetDIBUJOValue; - property OldDIBUJO : String read GetOldDIBUJOValue; - property DESCRIP : String read GetDESCRIPValue write SetDESCRIPValue; - property OldDESCRIP : String read GetOldDESCRIPValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IRDX_CABINVDelta } - IRDX_CABINVDelta = interface(IRDX_CABINV) - ['{9A135F09-4540-4DAE-B701-2CDA92E0519B}'] - { Property getters and setters } - function GetOldNUMDOCValue : String; - function GetOldTIPODOCValue : String; - function GetOldTIPOLIQValue : String; - function GetOldFECHAValue : DateTime; - function GetOldFECHALIQValue : DateTime; - function GetOldEMISORValue : String; - function GetOldRECEPTORValue : String; - function GetOldDPTOValue : String; - function GetOldCENTROValue : String; - function GetOldFECHA_CARGAValue : DateTime; - - { Properties } - property OldNUMDOC : String read GetOldNUMDOCValue; - property OldTIPODOC : String read GetOldTIPODOCValue; - property OldTIPOLIQ : String read GetOldTIPOLIQValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property OldFECHALIQ : DateTime read GetOldFECHALIQValue; - property OldEMISOR : String read GetOldEMISORValue; - property OldRECEPTOR : String read GetOldRECEPTORValue; - property OldDPTO : String read GetOldDPTOValue; - property OldCENTRO : String read GetOldCENTROValue; - property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; - end; - - { TRDX_CABINVBusinessProcessorRules } - TRDX_CABINVBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABINV, IRDX_CABINVDelta) - private - protected - { Property getters and setters } - function GetNUMDOCValue: String; virtual; - function GetOldNUMDOCValue: String; virtual; - procedure SetNUMDOCValue(const aValue: String); virtual; - function GetTIPODOCValue: String; virtual; - function GetOldTIPODOCValue: String; virtual; - procedure SetTIPODOCValue(const aValue: String); virtual; - function GetTIPOLIQValue: String; virtual; - function GetOldTIPOLIQValue: String; virtual; - procedure SetTIPOLIQValue(const aValue: String); virtual; - function GetFECHAValue: DateTime; virtual; - function GetOldFECHAValue: DateTime; virtual; - procedure SetFECHAValue(const aValue: DateTime); virtual; - function GetFECHALIQValue: DateTime; virtual; - function GetOldFECHALIQValue: DateTime; virtual; - procedure SetFECHALIQValue(const aValue: DateTime); virtual; - function GetEMISORValue: String; virtual; - function GetOldEMISORValue: String; virtual; - procedure SetEMISORValue(const aValue: String); virtual; - function GetRECEPTORValue: String; virtual; - function GetOldRECEPTORValue: String; virtual; - procedure SetRECEPTORValue(const aValue: String); virtual; - function GetDPTOValue: String; virtual; - function GetOldDPTOValue: String; virtual; - procedure SetDPTOValue(const aValue: String); virtual; - function GetCENTROValue: String; virtual; - function GetOldCENTROValue: String; virtual; - procedure SetCENTROValue(const aValue: String); virtual; - function GetFECHA_CARGAValue: DateTime; virtual; - function GetOldFECHA_CARGAValue: DateTime; virtual; - procedure SetFECHA_CARGAValue(const aValue: DateTime); virtual; - - { Properties } - property NUMDOC : String read GetNUMDOCValue write SetNUMDOCValue; - property OldNUMDOC : String read GetOldNUMDOCValue; - property TIPODOC : String read GetTIPODOCValue write SetTIPODOCValue; - property OldTIPODOC : String read GetOldTIPODOCValue; - property TIPOLIQ : String read GetTIPOLIQValue write SetTIPOLIQValue; - property OldTIPOLIQ : String read GetOldTIPOLIQValue; - property FECHA : DateTime read GetFECHAValue write SetFECHAValue; - property OldFECHA : DateTime read GetOldFECHAValue; - property FECHALIQ : DateTime read GetFECHALIQValue write SetFECHALIQValue; - property OldFECHALIQ : DateTime read GetOldFECHALIQValue; - property EMISOR : String read GetEMISORValue write SetEMISORValue; - property OldEMISOR : String read GetOldEMISORValue; - property RECEPTOR : String read GetRECEPTORValue write SetRECEPTORValue; - property OldRECEPTOR : String read GetOldRECEPTORValue; - property DPTO : String read GetDPTOValue write SetDPTOValue; - property OldDPTO : String read GetOldDPTOValue; - property CENTRO : String read GetCENTROValue write SetCENTROValue; - property OldCENTRO : String read GetOldCENTROValue; - property FECHA_CARGA : DateTime read GetFECHA_CARGAValue write SetFECHA_CARGAValue; - property OldFECHA_CARGA : DateTime read GetOldFECHA_CARGAValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TRDX_CANTINVBusinessProcessorRules } -constructor TRDX_CANTINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_CANTINVBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMDOC]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMDOC] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetNUMLINValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldNUMLINValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMLIN]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMLIN] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetNUMCANTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldNUMCANTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVNUMCANT]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetNUMCANTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVNUMCANT] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetTIPOCANTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldTIPOCANTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTIPOCANT]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetTIPOCANTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTIPOCANT] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetCANTIDADValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldCANTIDADValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCANTIDAD]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCANTIDAD] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVCENTRO]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVCENTRO] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetTMOVValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldTMOVValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVTMOV]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetTMOVValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVTMOV] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetFACTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldFACTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVFACT]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetFACTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVFACT] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetDEPTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldDEPTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVDEPTO]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetDEPTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVDEPTO] := aValue; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetIDVENValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN]; -end; - -function TRDX_CANTINVBusinessProcessorRules.GetOldIDVENValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CANTINVIDVEN]; -end; - -procedure TRDX_CANTINVBusinessProcessorRules.SetIDVENValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CANTINVIDVEN] := aValue; -end; - - -{ TRDX_LININVBusinessProcessorRules } -constructor TRDX_LININVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_LININVBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_LININVBusinessProcessorRules.GetNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMDOC]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMDOC] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetNUMLINValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldNUMLINValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVNUMLIN]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetNUMLINValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVNUMLIN] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetCODARTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldCODARTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCODART]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetCODARTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCODART] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetFAMILIAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldFAMILIAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVFAMILIA]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetFAMILIAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVFAMILIA] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetBARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldBARRAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVBARRA]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetBARRAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVBARRA] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldTALLAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTALLA]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetTALLAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTALLA] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetMARCAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldMARCAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMARCA]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetMARCAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMARCA] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetTAMANOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldTAMANOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVTAMANO]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetTAMANOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVTAMANO] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetSERIEValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldSERIEValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVSERIE]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetSERIEValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVSERIE] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldCOLORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVCOLOR]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetCOLORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVCOLOR] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetMODELOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldMODELOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVMODELO]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetMODELOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVMODELO] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetDIBUJOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldDIBUJOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDIBUJO]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetDIBUJOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDIBUJO] := aValue; -end; - -function TRDX_LININVBusinessProcessorRules.GetDESCRIPValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP]; -end; - -function TRDX_LININVBusinessProcessorRules.GetOldDESCRIPValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LININVDESCRIP]; -end; - -procedure TRDX_LININVBusinessProcessorRules.SetDESCRIPValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LININVDESCRIP] := aValue; -end; - - -{ TRDX_CABINVBusinessProcessorRules } -constructor TRDX_CABINVBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_CABINVBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_CABINVBusinessProcessorRules.GetNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldNUMDOCValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVNUMDOC]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetNUMDOCValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVNUMDOC] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetTIPODOCValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldTIPODOCValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPODOC]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetTIPODOCValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPODOC] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetTIPOLIQValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldTIPOLIQValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVTIPOLIQ]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetTIPOLIQValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVTIPOLIQ] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldFECHAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetFECHAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetFECHALIQValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldFECHALIQValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHALIQ]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetFECHALIQValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHALIQ] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetEMISORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldEMISORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVEMISOR]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetEMISORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVEMISOR] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetRECEPTORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldRECEPTORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVRECEPTOR]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetRECEPTORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVRECEPTOR] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetDPTOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldDPTOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVDPTO]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetDPTOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVDPTO] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldCENTROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVCENTRO]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetCENTROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVCENTRO] := aValue; -end; - -function TRDX_CABINVBusinessProcessorRules.GetFECHA_CARGAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA]; -end; - -function TRDX_CABINVBusinessProcessorRules.GetOldFECHA_CARGAValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABINVFECHA_CARGA]; -end; - -procedure TRDX_CABINVBusinessProcessorRules.SetFECHA_CARGAValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABINVFECHA_CARGA] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_RDX_CANTINVDelta, TRDX_CANTINVBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_RDX_LININVDelta, TRDX_LININVBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_RDX_CABINVDelta, TRDX_CABINVBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas deleted file mode 100644 index 51c3f6e..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uBizEDIInventary.pas +++ /dev/null @@ -1,323 +0,0 @@ -unit uBizEDIInventary; - -interface - -uses - uDAInterfaces, uDADataTable, Classes, - DB, Controls, schEDIInventaryClient_Intf; - -const - BIZ_INVRPT_CAB = 'BizInvRptCab'; - BIZ_INVRPT_LIN = 'BizInvRptLin'; - BIZ_INVRPT_CANT = 'BizInvRptCant'; - -type - IBizEDIInv_Cab = interface(IRDX_CABINV) - ['{95AB3EC1-B8CC-4DB0-8052-03D1D225AC69}'] - end; - - IBizEDIInv_Lin = interface(IRDX_LININV) - ['{171361CD-EC4F-479C-9E86-2D369DEC4EA9}'] - end; - - IBizEDIInv_Cant = interface(IRDX_CANTINV) - ['{A91F8700-BD74-475A-8677-B349BB79FC07}'] - end; - - TBizEDIInv_Cab = class(TRDX_CABINVDataTableRules, IBizEDIInv_Cab) - protected - procedure SetNUMDOCValue(const aValue: String); override; - procedure SetTIPODOCValue(const aValue: String); override; - procedure SetTIPOLIQValue(const aValue: String); override; - procedure SetFECHAValue(const aValue: DateTime); override; - procedure SetFECHALIQValue(const aValue: DateTime); override; - procedure SetEMISORValue(const aValue: String); override; - procedure SetRECEPTORValue(const aValue: String); override; - procedure SetDPTOValue(const aValue: String); override; - procedure SetCENTROValue(const aValue: String); override; - end; - - TBizEDIInv_Lin = class(TRDX_LININVDataTableRules, IBizEDIInv_Lin) - protected - procedure SetNUMDOCValue(const aValue: String); override; - procedure SetNUMLINValue(const aValue: Float); override; - procedure SetCODARTValue(const aValue: String); override; - procedure SetFAMILIAValue(const aValue: String); override; - procedure SetBARRAValue(const aValue: String); override; - procedure SetTALLAValue(const aValue: String); override; - procedure SetMARCAValue(const aValue: String); override; - procedure SetTAMANOValue(const aValue: String); override; - procedure SetSERIEValue(const aValue: String); override; - procedure SetCOLORValue(const aValue: String); override; - procedure SetMODELOValue(const aValue: String); override; - procedure SetDIBUJOValue(const aValue: String); override; - procedure SetDESCRIPValue(const aValue: String); override; - end; - - TBizEDIInv_Cant = class(TRDX_CANTINVDataTableRules, IBizEDIInv_Cant) - protected - procedure SetNUMDOCValue(const aValue: String); override; - procedure SetNUMLINValue(const aValue: Float); override; - procedure SetNUMCANTValue(const aValue: Float); override; - procedure SetTIPOCANTValue(const aValue: String); override; - procedure SetCANTIDADValue(const aValue: Float); override; - procedure SetCENTROValue(const aValue: String); override; - procedure SetTMOVValue(const aValue: String); override; - procedure SetFACTValue(const aValue: String); override; - procedure SetDEPTOValue(const aValue: String); override; - procedure SetIDVENValue(const aValue: String); override; - end; - - -implementation - -uses - Variants; - -{ TBizEDIInv_Cab } - -procedure TBizEDIInv_Cab.SetCENTROValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVCENTRO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVCENTRO].AsString := aValue; -end; - -procedure TBizEDIInv_Cab.SetDPTOValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVDPTO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVDPTO].AsString := aValue; -end; - -procedure TBizEDIInv_Cab.SetEMISORValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVEMISOR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVEMISOR].AsString := aValue; -end; - -procedure TBizEDIInv_Cab.SetFECHALIQValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVFECHALIQ].AsDateTime := aValue; -end; - -procedure TBizEDIInv_Cab.SetFECHAValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABINVFECHA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVFECHA].AsDateTime := aValue; -end; - -procedure TBizEDIInv_Cab.SetNUMDOCValue(const aValue: String); -begin - inherited; -end; - -procedure TBizEDIInv_Cab.SetRECEPTORValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVRECEPTOR].AsString := aValue; -end; - -procedure TBizEDIInv_Cab.SetTIPODOCValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVTIPODOC].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVTIPODOC].AsString := aValue; -end; - -procedure TBizEDIInv_Cab.SetTIPOLIQValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABINVTIPOLIQ].AsString := aValue; -end; - -{ TBizEDIInv_Lin } - -procedure TBizEDIInv_Lin.SetBARRAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVBARRA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVBARRA].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetCODARTValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVCODART].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVCODART].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetCOLORValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVCOLOR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVCOLOR].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetDESCRIPValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVDESCRIP].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVDESCRIP].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetDIBUJOValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVDIBUJO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVDIBUJO].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetFAMILIAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVFAMILIA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVFAMILIA].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetMARCAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVMARCA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVMARCA].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetMODELOValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVMODELO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVMODELO].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetNUMDOCValue(const aValue: String); -begin - inherited; -end; - -procedure TBizEDIInv_Lin.SetNUMLINValue(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDIInv_Lin.SetSERIEValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVSERIE].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVSERIE].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetTALLAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVTALLA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVTALLA].AsString := aValue; -end; - -procedure TBizEDIInv_Lin.SetTAMANOValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_LININVTAMANO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LININVTAMANO].AsString := aValue; -end; - -{ TBizEDIInv_Cant } - -procedure TBizEDIInv_Cant.SetCANTIDADValue(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDIInv_Cant.SetCENTROValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CANTINVCENTRO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CANTINVCENTRO].AsString := aValue; -end; - -procedure TBizEDIInv_Cant.SetDEPTOValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CANTINVDEPTO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CANTINVDEPTO].AsString := aValue; -end; - -procedure TBizEDIInv_Cant.SetFACTValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CANTINVFACT].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CANTINVFACT].AsString := aValue; -end; - -procedure TBizEDIInv_Cant.SetIDVENValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CANTINVIDVEN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CANTINVIDVEN].AsString := aValue; -end; - -procedure TBizEDIInv_Cant.SetNUMCANTValue(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDIInv_Cant.SetNUMDOCValue(const aValue: String); -begin - inherited; -end; - -procedure TBizEDIInv_Cant.SetNUMLINValue(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDIInv_Cant.SetTIPOCANTValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CANTINVTIPOCANT].AsString := aValue; -end; - -procedure TBizEDIInv_Cant.SetTMOVValue(const aValue: String); -begin - inherited; - -end; - -initialization - RegisterDataTableRules(BIZ_INVRPT_CAB, TBizEDIInv_Cab); - RegisterDataTableRules(BIZ_INVRPT_LIN, TBizEDIInv_Lin); - RegisterDataTableRules(BIZ_INVRPT_CANT, TBizEDIInv_Cant); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm deleted file mode 100644 index 164e687..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.dfm +++ /dev/null @@ -1,1061 +0,0 @@ -object dmEDIInventary: TdmEDIInventary - OldCreateOrder = False - Height = 185 - Width = 396 - object schEDIInventary: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CANTINV' - SQL = - 'SELECT '#10' NUMDOC, NUMLIN, NUMCANT, TIPOCANT, CANTIDAD, CENTRO,' + - ' '#10' TMOV, FACT, DEPTO, IDVEN'#10' FROM'#10' RDX_CANTINV' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMDOC' - TableField = 'NUMDOC' - end - item - DatasetField = 'NUMLIN' - TableField = 'NUMLIN' - end - item - DatasetField = 'NUMCANT' - TableField = 'NUMCANT' - end - item - DatasetField = 'TIPOCANT' - TableField = 'TIPOCANT' - end - item - DatasetField = 'CANTIDAD' - TableField = 'CANTIDAD' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'TMOV' - TableField = 'TMOV' - end - item - DatasetField = 'FACT' - TableField = 'FACT' - end - item - DatasetField = 'DEPTO' - TableField = 'DEPTO' - end - item - DatasetField = 'IDVEN' - TableField = 'IDVEN' - end> - end> - Name = 'RDX_CANTINV' - Fields = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMLIN' - DataType = datFloat - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMCANT' - DataType = datFloat - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPOCANT' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANTIDAD' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TMOV' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FACT' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DEPTO' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'IDVEN' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LININV' - SQL = - 'SELECT '#10' NUMDOC, NUMLIN, CODART, FAMILIA, BARRA, TALLA, MARCA' + - ', '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, DESCRIP'#10' FROM'#10' ' + - 'RDX_LININV' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMDOC' - TableField = 'NUMDOC' - end - item - DatasetField = 'NUMLIN' - TableField = 'NUMLIN' - end - item - DatasetField = 'CODART' - TableField = 'CODART' - end - item - DatasetField = 'FAMILIA' - TableField = 'FAMILIA' - end - item - DatasetField = 'BARRA' - TableField = 'BARRA' - end - item - DatasetField = 'TALLA' - TableField = 'TALLA' - end - item - DatasetField = 'MARCA' - TableField = 'MARCA' - end - item - DatasetField = 'TAMANO' - TableField = 'TAMANO' - end - item - DatasetField = 'SERIE' - TableField = 'SERIE' - end - item - DatasetField = 'COLOR' - TableField = 'COLOR' - end - item - DatasetField = 'MODELO' - TableField = 'MODELO' - end - item - DatasetField = 'DIBUJO' - TableField = 'DIBUJO' - end - item - DatasetField = 'DESCRIP' - TableField = 'DESCRIP' - end> - end> - Name = 'RDX_LININV' - Fields = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMLIN' - DataType = datFloat - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODART' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FAMILIA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BARRA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TALLA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'MARCA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TAMANO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'SERIE' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'COLOR' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'MODELO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIBUJO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESCRIP' - DataType = datString - Size = 70 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CABINV' - SQL = - 'SELECT '#10' NUMDOC, TIPODOC, TIPOLIQ, FECHA, FECHALIQ, EMISOR, '#10 + - ' RECEPTOR, DPTO, CENTRO, FECHA_CARGA'#10' FROM'#10' RDX_CABINV' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'NUMDOC' - TableField = 'NUMDOC' - end - item - DatasetField = 'TIPODOC' - TableField = 'TIPODOC' - end - item - DatasetField = 'TIPOLIQ' - TableField = 'TIPOLIQ' - end - item - DatasetField = 'FECHA' - TableField = 'FECHA' - end - item - DatasetField = 'FECHALIQ' - TableField = 'FECHALIQ' - end - item - DatasetField = 'EMISOR' - TableField = 'EMISOR' - end - item - DatasetField = 'RECEPTOR' - TableField = 'RECEPTOR' - end - item - DatasetField = 'DPTO' - TableField = 'DPTO' - end - item - DatasetField = 'CENTRO' - TableField = 'CENTRO' - end - item - DatasetField = 'FECHA_CARGA' - TableField = 'FECHA_CARGA' - end> - end> - Name = 'RDX_CABINV' - Fields = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPODOC' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TIPOLIQ' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHALIQ' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EMISOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'RECEPTOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DPTO' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA_CARGA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'RETURN_VALUE' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptResult - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = 'RDX_P_SET_ULTIMOINVENTARIO' - StatementType = stStoredProcedure - ColumnMappings = <> - end> - Name = 'RDX_P_SET_ULTIMOINVENTARIO' - end - item - Params = < - item - Name = 'RETURN_VALUE' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptResult - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = 'RDX_P_CARGAR_INVENTARIOEDI' - StatementType = stStoredProcedure - ColumnMappings = <> - end> - Name = 'RDX_P_CARGAR_INVENTARIOEDI' - end - item - Params = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TIPODOC' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TIPOLIQ' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHALIQ' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EMISOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'RECEPTOR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DPTO' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA_CARGA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CABINV' - SQL = - 'INSERT'#10' INTO RDX_CABINV'#10' (NUMDOC, TIPODOC, TIPOLIQ, FECHA, F' + - 'ECHALIQ, EMISOR, '#10' RECEPTOR, DPTO, CENTRO, FECHA_CARGA)'#10' VA' + - 'LUES'#10' (:NUMDOC, :TIPODOC, :TIPOLIQ, :FECHA, :FECHALIQ, :EMISO' + - 'R, '#10' :RECEPTOR, :DPTO, :CENTRO, CURRENT_TIMESTAMP)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_CABINV' - end - item - Params = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMLIN' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODART' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FAMILIA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BARRA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TALLA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'MARCA' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TAMANO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'SERIE' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'COLOR' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'MODELO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIBUJO' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESCRIP' - DataType = datString - Size = 70 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LININV' - SQL = - 'INSERT'#10' INTO RDX_LININV'#10' (NUMDOC, NUMLIN, CODART, FAMILIA, B' + - 'ARRA, TALLA, MARCA, '#10' TAMANO, SERIE, COLOR, MODELO, DIBUJO, ' + - 'DESCRIP)'#10' VALUES'#10' (:NUMDOC, :NUMLIN, :CODART, :FAMILIA, :BAR' + - 'RA, :TALLA, '#10' :MARCA, :TAMANO, :SERIE, :COLOR, :MODELO, :DIB' + - 'UJO, '#10' :DESCRIP)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_LININV' - end - item - Params = < - item - Name = 'NUMDOC' - DataType = datString - Size = 25 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMLIN' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMCANT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TIPOCANT' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CANTIDAD' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CENTRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TMOV' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FACT' - DataType = datString - Size = 12 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DEPTO' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'IDVEN' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CANTINV' - SQL = - 'INSERT'#10' INTO RDX_CANTINV'#10' (NUMDOC, NUMLIN, NUMCANT, TIPOCANT' + - ', CANTIDAD, CENTRO, '#10' TMOV, FACT, DEPTO, IDVEN)'#10' VALUES'#10' ' + - ' (:NUMDOC, :NUMLIN, :NUMCANT, :TIPOCANT, :CANTIDAD, :CENTRO, '#10' ' + - ' :TMOV, :FACT, :DEPTO, :IDVEN)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_CANTINV' - end> - RelationShips = < - item - Name = 'FK_RDX_LININV_RDX_CABINV' - MasterDatasetName = 'RDX_CABINV' - MasterFields = 'NUMDOC' - DetailDatasetName = 'RDX_LININV' - DetailFields = 'NUMDOC' - RelationshipType = rtForeignKey - end - item - Name = 'FK_RDX_CANTINV_RDX_LININV' - MasterDatasetName = 'RDX_LININV' - MasterFields = 'NUMDOC;NUMLIN' - DetailDatasetName = 'RDX_CANTINV' - DetailFields = 'NUMDOC;NUMLIN' - RelationshipType = rtForeignKey - end> - UpdateRules = < - item - Name = 'Insert RDX_CABINV' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_CABINV' - FailureBehavior = fbRaiseException - end - item - Name = 'Insert RDX_LININV' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_LININV' - FailureBehavior = fbRaiseException - end - item - Name = 'Insert RDX_CANTINV' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_CANTINV' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_CABINV' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_CABINV' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_LININV' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_LININV' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_CANTINV' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_CANTINV' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_CANTINV' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_CANTINV' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_LININV' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_LININV' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_CABINV' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_CABINV' - FailureBehavior = fbRaiseException - end> - Version = 0 - Left = 56 - Top = 16 - end -end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas b/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas deleted file mode 100644 index e6b95a2..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Inventary/uDataModuleEDI_Inventary.pas +++ /dev/null @@ -1,318 +0,0 @@ -unit uDataModuleEDI_Inventary; - -interface - -uses - SysUtils, Classes, JvComponentBase, JvLogFile, uDAClasses, - uDABusinessProcessor, uDAScriptingProvider, uDADataTable, uDACDSDataTable, - uDataModuleServer, uBizEDIInventary, EDI_Reader, EDI_Inventary_Impl, - EDI_INVRPT, uDAInterfaces; - -type - TdmEDIInventary = class(TDataModule) - schEDIInventary: TDASchema; - private - function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - function InsertarLineas(const ALinData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - function InsertarCantidades(const ACantData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - procedure InsertarLog(OK : Boolean; Error_msg : String = ''); - function GenerarInventarioEDI: Boolean; - function MarcarRegistrosUltimoInventarioEDI: Boolean; - public - function CargarFicheros(const FicheroCAB: String; const FicheroLIN: String; - const FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; - end; - -var - dmEDIInventary: TdmEDIInventary; - -implementation - -uses - Controls, Forms, uDataTableUtils, DB, - Dialogs, Variants, schEDIInventaryClient_Intf, EDI_Utils, EDI_Log_Impl, - VARELA_Intf; - -{$R *.dfm} - -{ TdmEDIInventary } - -function TdmEDIInventary.CargarFicheros(const FicheroCAB, FicheroLIN, - FicheroCANT: String; var NumRegNuevos: Integer ): Boolean; -var - Cab_Reader : TCABINV_Reader; - Lin_Reader : TLININV_Reader; - Cant_Reader : TCANTINV_Reader; - - NumRegNuevosCab : Integer; - NumRegNuevosLin : Integer; - NumRegNuevosCant : Integer; -begin - Result := True; - - Cab_Reader := TCABINV_Reader.Create; - try - Cab_Reader.Filename := FicheroCAB; - Cab_Reader.ReadFile; - Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); - finally - FreeAndNIL(Cab_Reader); - end; - - if Result then - begin - Lin_Reader := TLININV_Reader.Create; - try - Lin_Reader.Filename := FicheroLIN; - Lin_Reader.ReadFile; - Result := InsertarLineas (Lin_Reader.FileData, NumRegNuevosLin); - finally - FreeAndNIL(Lin_Reader); - end; - - if Result then - begin - Cant_Reader := TCANTINV_Reader.Create; - try - Cant_Reader.Filename := FicheroCANT; - Cant_Reader.ReadFile; - Result := InsertarCantidades(Cant_Reader.FileData, NumRegNuevosCant); - finally - Cant_Reader.Free; - end; - end; - end; - - if Result then - begin - NumRegNuevos := NumRegNuevosCant; - Result := GenerarInventarioEDI; - if Result then - Result := MarcarRegistrosUltimoInventarioEDI; - end; -end; - -function TdmEDIInventary.GenerarInventarioEDI: Boolean; -var - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_CARGAR_INVENTARIOEDI'); - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (GenerarInventarioEDI)'); - end - end; -end; - -function TdmEDIInventary.InsertarCabecera(const ACabData: TEDIFileData; - var NumRegNuevos : integer) : Boolean; -var - i : integer; - Registro : PCABINV; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to ACabData.Count - 1 do - begin - Registro := ACabData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CABINV'); - with ACommand do - begin - ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); - ParamByName('TIPODOC').AsString := Trim(Registro.TIPODOC); - ParamByName('TIPOLIQ').AsString := Trim(Registro.TIPOLIQ); - ParamByName('FECHA').AsDateTime := EDIDateToDateF(Trim(Registro.FECHA)); - ParamByName('FECHALIQ').AsDateTime := EDIDateToDateF(Trim(Registro.FECHALIQ)); - ParamByName('EMISOR').AsString := Trim(Registro.EMISOR); - ParamByName('RECEPTOR').AsString := Trim(Registro.RECEPTOR); - ParamByName('DPTO').AsString := Trim(Registro.DPTO); - ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); - end; - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (InsertarCabecera INV)'); - end - end; - end; //for -end; - -function TdmEDIInventary.InsertarCantidades(const ACantData: TEDIFileData; - var NumRegNuevos : integer) : Boolean; -var - i : integer; - Registro : PCANTINV; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to ACantData.Count - 1 do - begin - Registro := ACantData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_CANTINV'); - with ACommand do - begin - ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); - ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); - ParamByName('NUMCANT').AsInteger := StrToInt(Trim(Registro.NUMCANT)); - ParamByName('TIPOCANT').AsString := Trim(Registro.TIPOCANT); - ParamByName('CANTIDAD').AsFloat := StrToFloat(Trim(Registro.CANTIDAD)); - ParamByName('CENTRO').AsString := Trim(Registro.CENTRO); - ParamByName('TMOV').AsString := Trim(Registro.TMOV); - ParamByName('FACT').AsString := Trim(Registro.FACT); - ParamByName('DEPTO').AsString := Trim(Registro.DEPTO); - ParamByName('IDVEN').AsString := Trim(Registro.IDVEN); - end; - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (InsertarCantidades INV)'); - end - end; - end; //for -end; - -function TdmEDIInventary.InsertarLineas(const ALinData: TEDIFileData; - var NumRegNuevos : integer) : Boolean; -var - i : integer; - Registro : PLININV; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to ALinData.Count - 1 do - begin - Registro := ALinData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDIInventary.NewCommand(AConnection, 'Insert_RDX_LININV'); - with ACommand do - begin - ParamByName('NUMDOC').AsString := Trim(Registro.NUMDOC); - ParamByName('NUMLIN').AsInteger := StrToInt(Trim(Registro.NUMLIN)); - ParamByName('CODART').AsString := Trim(Registro.CODART); - ParamByName('FAMILIA').AsString := Trim(Registro.FAMILIA); - ParamByName('BARRA').AsString := Trim(Registro.BARRA); - ParamByName('TALLA').AsString := Trim(Registro.TALLA); - ParamByName('MARCA').AsString := Trim(Registro.MARCA); - ParamByName('TAMANO').AsString := Trim(Registro.TAMANO); - ParamByName('SERIE').AsString := Trim(Registro.SERIE); - ParamByName('COLOR').AsString := Trim(Registro.COLOR); - ParamByName('MODELO').AsString := Trim(Registro.MODELO); - ParamByName('DIBUJO').AsString := Trim(Registro.DIBUJO); - ParamByName('DESCRIP').AsString := Trim(Registro.DESCRIP); - end; - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (InsertarLineas INV)'); - end - end; - end; //for - Result := True; -end; - - -procedure TdmEDIInventary.InsertarLog(OK: Boolean; Error_msg: String); -var - LogService : IEDI_Log; -begin - LogService := EDI_Log_Impl.TEDI_Log.Create(Self); - try - LogService.InsertarLog(Now, 'INVRPT', OK, Error_msg); - finally - LogService := nil; - end; -end; - -function TdmEDIInventary.MarcarRegistrosUltimoInventarioEDI: Boolean; -var - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - ACommand := schEDIInventary.NewCommand(AConnection, 'RDX_P_SET_ULTIMOINVENTARIO'); - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (MarcarRegistrosUltimoInventarioEDI)'); - end - end; -end; - -initialization - dmEDIInventary := TdmEDIInventary.Create(nil); - -finalization - FreeAndNil(dmEDIInventary); - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm deleted file mode 100644 index 2638b6c..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.dfm +++ /dev/null @@ -1,17 +0,0 @@ -object EDI_Sales: TEDI_Sales - OldCreateOrder = True - SessionManager = dmServer.SessionManager - ConnectionName = 'GFT_VARELA' - ServiceSchema = dmEDISales.schEDISales - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object DABINAdapter: TDABINAdapter - Left = 64 - Top = 32 - end -end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas deleted file mode 100644 index f7d8bc9..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Impl.pas +++ /dev/null @@ -1,143 +0,0 @@ -unit EDI_Sales_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, uDADataTable, - uDACDSDataTable, uDABusinessProcessor, uDABINAdapter, uDADataStreamer; - -type - { TEDI_Sales } - TEDI_Sales = class(TDARemoteService, IEDI_Sales) - DABINAdapter: TDABINAdapter; - private - procedure InsertarLog(OK : Boolean; Error_msg : String = ''); - protected - function CargarFicheroEDI(const FicheroCAB: String; - const FicheroLUG: String; const FicheroART: String; - out MsgError: String): Boolean; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDAInterfaces, - Dialogs, uDataModuleEDI_Sales, uDataModuleServer, - JclFileUtils, DateUtils, EDI_Log_Impl; - -procedure Create_EDI_Sales(out anInstance : IUnknown); -begin - anInstance := TEDI_Sales.Create(NIL); -end; - -{ EDI_Sales } -function TEDI_Sales.CargarFicheroEDI(const FicheroCAB: String; - const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; -var - ADirEntrada : String; - ADirTemp : String; - NumRegNuevos : Integer; - - procedure GuardarFicheros; - var - AAlmacen : String; - ADate : String; - begin - DateTimeToString(ADate, 'yyyymmddhhnn', Now); - AAlmacen := PathAddSeparator(dmServer.FDirAlmacen); - AAlmacen := PathAddSeparator(AAlmacen + ADate); - if not DirectoryExists(AAlmacen) then - ForceDirectories(AAlmacen); - FileMove(ADirTemp + FicheroCAB, AAlmacen + FicheroCAB); - FileMove(ADirTemp + FicheroLUG, AAlmacen + FicheroLUG); - FileMove(ADirTemp + FicheroART, AAlmacen + FicheroART); - FileMove(ADirTemp + FicheroART, AAlmacen + 'CONVEN.TXT'); - DeleteDirectory(ADirTemp, False); - end; - -begin - Result := False; - NumRegNuevos := 0; - - // Hay que comprobar que existen los ficheros. - ADirEntrada := PathAddSeparator(dmServer.FDirEntrada); - - if not FileExists(ADirEntrada + FicheroCAB) or - not FileExists(ADirEntrada + FicheroLUG) or - not FileExists(ADirEntrada + FicheroART) then - begin - MsgError := 'No hay ficheros de datos'; - InsertarLog(False, MsgError + ' (CargarFicheroEDI1 SLS)'); - end - else begin - - // Muevo los ficheros de carga a un directorio temporal - ADirTemp := PathAddSeparator(ADirEntrada + GetTempDirectory(ADirEntrada)); - try - if not DirectoryExists(ADirTemp) then - ForceDirectories(ADirTemp); - FileMove(ADirEntrada + FicheroCAB, ADirTemp + FicheroCAB); - FileMove(ADirEntrada + FicheroLUG, ADirTemp + FicheroLUG); - FileMove(ADirEntrada + FicheroART, ADirTemp + FicheroART); - FileMove(ADirEntrada + FicheroART, ADirTemp + 'CONVEN.TXT'); - except - on E: Exception do - begin - MsgError := E.Message; - InsertarLog(False, MsgError + ' (CargarFicheroEDI2 SLS)'); - Exit; - end; - end; - - try - try - dmEDISales.CargarFicheros (ADirTemp + FicheroCAB, ADirTemp + FicheroLUG, ADirTemp + FicheroART, NumRegNuevos); - if NumRegNuevos > 0 then - InsertarLog(True, Format('Se han cargado %d registros de ventas nuevos', [NumRegNuevos])) - else - InsertarLog(True, 'El fichero se ha cargado pero no hay registros de ventas nuevos'); - Result := True; - finally - GuardarFicheros; - dmServer.BorrarFicherosDeCargaAntiguos; - end; - except - on E: Exception do - begin - MsgError := E.Message; - InsertarLog(False, MsgError + ' (CargarFicheroEDI3 SLS)'); - end; - end; - end; -end; - -procedure TEDI_Sales.InsertarLog(OK: Boolean; Error_msg: String); -var - LogService : IEDI_Log; -begin - LogService := EDI_Log_Impl.TEDI_Log.Create(Self); - try - LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); - finally - LogService := nil; - end; -end; - -initialization - TROClassFactory.Create('EDI_Sales', Create_EDI_Sales, TEDI_Sales_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas deleted file mode 100644 index cb3a387..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/EDI_Sales_Types.pas +++ /dev/null @@ -1,9 +0,0 @@ -unit EDI_Sales_Types; - -interface - - - -implementation - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas deleted file mode 100644 index ccbf38c..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesClient_Intf.pas +++ /dev/null @@ -1,1948 +0,0 @@ -unit schEDISalesClient_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable; - -const - { Data table rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_RDX_ARTVEN = '{D0532CCF-994D-4445-B3AC-544120B18841}'; - RID_RDX_CABVEN = '{9B9CC64F-37C7-4B46-BF30-02E8CB14ED5B}'; - RID_RDX_LUGVEN = '{8CBF6BF1-7E83-43F2-BC61-6F692B9137CC}'; - - { Data table names } - nme_RDX_ARTVEN = 'RDX_ARTVEN'; - nme_RDX_CABVEN = 'RDX_CABVEN'; - nme_RDX_LUGVEN = 'RDX_LUGVEN'; - - { RDX_ARTVEN fields } - fld_RDX_ARTVENCLAVE1 = 'CLAVE1'; - fld_RDX_ARTVENCLAVE2 = 'CLAVE2'; - fld_RDX_ARTVENCLAVE3 = 'CLAVE3'; - fld_RDX_ARTVENEANART = 'EANART'; - fld_RDX_ARTVENCODCOM = 'CODCOM'; - fld_RDX_ARTVENNUMVAR = 'NUMVAR'; - fld_RDX_ARTVENCODPRO = 'CODPRO'; - fld_RDX_ARTVENDESARTCO = 'DESARTCO'; - fld_RDX_ARTVENDESART = 'DESART'; - fld_RDX_ARTVENNUMCON = 'NUMCON'; - fld_RDX_ARTVENNUMLIS = 'NUMLIS'; - fld_RDX_ARTVENCONESP1 = 'CONESP1'; - fld_RDX_ARTVENCONESP2 = 'CONESP2'; - fld_RDX_ARTVENCONESP3 = 'CONESP3'; - fld_RDX_ARTVENVALVEN = 'VALVEN'; - fld_RDX_ARTVENPRENETCT = 'PRENETCT'; - fld_RDX_ARTVENPREBRUCT = 'PREBRUCT'; - fld_RDX_ARTVENPREINFET = 'PREINFET'; - fld_RDX_ARTVENPREINFFT = 'PREINFFT'; - fld_RDX_ARTVENPRECALCT = 'PRECALCT'; - fld_RDX_ARTVENPRENETCA = 'PRENETCA'; - fld_RDX_ARTVENPREBRUCA = 'PREBRUCA'; - fld_RDX_ARTVENPREINFEA = 'PREINFEA'; - fld_RDX_ARTVENPREINFFA = 'PREINFFA'; - fld_RDX_ARTVENPRECALCA = 'PRECALCA'; - fld_RDX_ARTVENBAPRUN1 = 'BAPRUN1'; - fld_RDX_ARTVENUNIMED1 = 'UNIMED1'; - fld_RDX_ARTVENBAPRUN2 = 'BAPRUN2'; - fld_RDX_ARTVENUNIMED2 = 'UNIMED2'; - fld_RDX_ARTVENBAPRUN3 = 'BAPRUN3'; - fld_RDX_ARTVENUNIMED3 = 'UNIMED3'; - fld_RDX_ARTVENBAPRUN4 = 'BAPRUN4'; - fld_RDX_ARTVENUNIMED4 = 'UNIMED4'; - fld_RDX_ARTVENBAPRUN5 = 'BAPRUN5'; - fld_RDX_ARTVENUNIMED5 = 'UNIMED5'; - fld_RDX_ARTVENCANVEN = 'CANVEN'; - fld_RDX_ARTVENEXIPRO = 'EXIPRO'; - fld_RDX_ARTVENDESEXI = 'DESEXI'; - fld_RDX_ARTVENESPMEDCV = 'ESPMEDCV'; - fld_RDX_ARTVENESPMEDEP = 'ESPMEDEP'; - fld_RDX_ARTVENESPMEDDE = 'ESPMEDDE'; - fld_RDX_ARTVENCANDEV = 'CANDEV'; - fld_RDX_ARTVENEANVEN = 'EANVEN'; - fld_RDX_ARTVENNOMVEN = 'NOMVEN'; - fld_RDX_ARTVENNUMTALON = 'NUMTALON'; - fld_RDX_ARTVENCANVENNET = 'CANVENNET'; - fld_RDX_ARTVENUMEDVENNET = 'UMEDVENNET'; - fld_RDX_ARTVENCANESP = 'CANESP'; - fld_RDX_ARTVENUMEDESP = 'UMEDESP'; - - { RDX_ARTVEN field indexes } - idx_RDX_ARTVENCLAVE1 = 0; - idx_RDX_ARTVENCLAVE2 = 1; - idx_RDX_ARTVENCLAVE3 = 2; - idx_RDX_ARTVENEANART = 3; - idx_RDX_ARTVENCODCOM = 4; - idx_RDX_ARTVENNUMVAR = 5; - idx_RDX_ARTVENCODPRO = 6; - idx_RDX_ARTVENDESARTCO = 7; - idx_RDX_ARTVENDESART = 8; - idx_RDX_ARTVENNUMCON = 9; - idx_RDX_ARTVENNUMLIS = 10; - idx_RDX_ARTVENCONESP1 = 11; - idx_RDX_ARTVENCONESP2 = 12; - idx_RDX_ARTVENCONESP3 = 13; - idx_RDX_ARTVENVALVEN = 14; - idx_RDX_ARTVENPRENETCT = 15; - idx_RDX_ARTVENPREBRUCT = 16; - idx_RDX_ARTVENPREINFET = 17; - idx_RDX_ARTVENPREINFFT = 18; - idx_RDX_ARTVENPRECALCT = 19; - idx_RDX_ARTVENPRENETCA = 20; - idx_RDX_ARTVENPREBRUCA = 21; - idx_RDX_ARTVENPREINFEA = 22; - idx_RDX_ARTVENPREINFFA = 23; - idx_RDX_ARTVENPRECALCA = 24; - idx_RDX_ARTVENBAPRUN1 = 25; - idx_RDX_ARTVENUNIMED1 = 26; - idx_RDX_ARTVENBAPRUN2 = 27; - idx_RDX_ARTVENUNIMED2 = 28; - idx_RDX_ARTVENBAPRUN3 = 29; - idx_RDX_ARTVENUNIMED3 = 30; - idx_RDX_ARTVENBAPRUN4 = 31; - idx_RDX_ARTVENUNIMED4 = 32; - idx_RDX_ARTVENBAPRUN5 = 33; - idx_RDX_ARTVENUNIMED5 = 34; - idx_RDX_ARTVENCANVEN = 35; - idx_RDX_ARTVENEXIPRO = 36; - idx_RDX_ARTVENDESEXI = 37; - idx_RDX_ARTVENESPMEDCV = 38; - idx_RDX_ARTVENESPMEDEP = 39; - idx_RDX_ARTVENESPMEDDE = 40; - idx_RDX_ARTVENCANDEV = 41; - idx_RDX_ARTVENEANVEN = 42; - idx_RDX_ARTVENNOMVEN = 43; - idx_RDX_ARTVENNUMTALON = 44; - idx_RDX_ARTVENCANVENNET = 45; - idx_RDX_ARTVENUMEDVENNET = 46; - idx_RDX_ARTVENCANESP = 47; - idx_RDX_ARTVENUMEDESP = 48; - - { RDX_CABVEN fields } - fld_RDX_CABVENCLAVE1 = 'CLAVE1'; - fld_RDX_CABVENNUMINF = 'NUMINF'; - fld_RDX_CABVENFUNCION = 'FUNCION'; - fld_RDX_CABVENFECINI = 'FECINI'; - fld_RDX_CABVENFECFIN = 'FECFIN'; - fld_RDX_CABVENFECINF = 'FECINF'; - fld_RDX_CABVENPERVENINI = 'PERVENINI'; - fld_RDX_CABVENPERVENFIN = 'PERVENFIN'; - fld_RDX_CABVENEANOFI = 'EANOFI'; - fld_RDX_CABVENEANEMI = 'EANEMI'; - fld_RDX_CABVENEANREC = 'EANREC'; - fld_RDX_CABVENEANVEN = 'EANVEN'; - fld_RDX_CABVENEANALM = 'EANALM'; - fld_RDX_CABVENEANREP = 'EANREP'; - fld_RDX_CABVENEANPRO = 'EANPRO'; - fld_RDX_CABVENEANADMSA = 'EANADMSA'; - fld_RDX_CABVENEANREPSR = 'EANREPSR'; - fld_RDX_CABVENADMVENSA = 'ADMVENSA'; - fld_RDX_CABVENREPDEPSR = 'REPDEPSR'; - fld_RDX_CABVENEMAILSA = 'EMAILSA'; - fld_RDX_CABVENNUMFAXSA = 'NUMFAXSA'; - fld_RDX_CABVENNUMTELSA = 'NUMTELSA'; - fld_RDX_CABVENNUMTLXSA = 'NUMTLXSA'; - fld_RDX_CABVENX400SA = 'X400SA'; - fld_RDX_CABVENEMAILSR = 'EMAILSR'; - fld_RDX_CABVENNUMFAXSR = 'NUMFAXSR'; - fld_RDX_CABVENNUMTELSR = 'NUMTELSR'; - fld_RDX_CABVENNUMTLXSR = 'NUMTLXSR'; - fld_RDX_CABVENX400SR = 'X400SR'; - fld_RDX_CABVENNUMPRE = 'NUMPRE'; - fld_RDX_CABVENNUMINFSC = 'NUMINFSC'; - fld_RDX_CABVENNUMCON = 'NUMCON'; - fld_RDX_CABVENFECPRE = 'FECPRE'; - fld_RDX_CABVENFECINFSC = 'FECINFSC'; - fld_RDX_CABVENFECCON = 'FECCON'; - fld_RDX_CABVENDIVPED = 'DIVPED'; - fld_RDX_CABVENDIVPRE = 'DIVPRE'; - fld_RDX_CABVENDIVPAG = 'DIVPAG'; - fld_RDX_CABVENDIVPEDF = 'DIVPEDF'; - fld_RDX_CABVENDIVPREF = 'DIVPREF'; - fld_RDX_CABVENDIVPAGF = 'DIVPAGF'; - fld_RDX_CABVENTASCAM = 'TASCAM'; - fld_RDX_CABVENFECTAS = 'FECTAS'; - - { RDX_CABVEN field indexes } - idx_RDX_CABVENCLAVE1 = 0; - idx_RDX_CABVENNUMINF = 1; - idx_RDX_CABVENFUNCION = 2; - idx_RDX_CABVENFECINI = 3; - idx_RDX_CABVENFECFIN = 4; - idx_RDX_CABVENFECINF = 5; - idx_RDX_CABVENPERVENINI = 6; - idx_RDX_CABVENPERVENFIN = 7; - idx_RDX_CABVENEANOFI = 8; - idx_RDX_CABVENEANEMI = 9; - idx_RDX_CABVENEANREC = 10; - idx_RDX_CABVENEANVEN = 11; - idx_RDX_CABVENEANALM = 12; - idx_RDX_CABVENEANREP = 13; - idx_RDX_CABVENEANPRO = 14; - idx_RDX_CABVENEANADMSA = 15; - idx_RDX_CABVENEANREPSR = 16; - idx_RDX_CABVENADMVENSA = 17; - idx_RDX_CABVENREPDEPSR = 18; - idx_RDX_CABVENEMAILSA = 19; - idx_RDX_CABVENNUMFAXSA = 20; - idx_RDX_CABVENNUMTELSA = 21; - idx_RDX_CABVENNUMTLXSA = 22; - idx_RDX_CABVENX400SA = 23; - idx_RDX_CABVENEMAILSR = 24; - idx_RDX_CABVENNUMFAXSR = 25; - idx_RDX_CABVENNUMTELSR = 26; - idx_RDX_CABVENNUMTLXSR = 27; - idx_RDX_CABVENX400SR = 28; - idx_RDX_CABVENNUMPRE = 29; - idx_RDX_CABVENNUMINFSC = 30; - idx_RDX_CABVENNUMCON = 31; - idx_RDX_CABVENFECPRE = 32; - idx_RDX_CABVENFECINFSC = 33; - idx_RDX_CABVENFECCON = 34; - idx_RDX_CABVENDIVPED = 35; - idx_RDX_CABVENDIVPRE = 36; - idx_RDX_CABVENDIVPAG = 37; - idx_RDX_CABVENDIVPEDF = 38; - idx_RDX_CABVENDIVPREF = 39; - idx_RDX_CABVENDIVPAGF = 40; - idx_RDX_CABVENTASCAM = 41; - idx_RDX_CABVENFECTAS = 42; - - { RDX_LUGVEN fields } - fld_RDX_LUGVENCLAVE1 = 'CLAVE1'; - fld_RDX_LUGVENCLAVE2 = 'CLAVE2'; - fld_RDX_LUGVENEANLUG = 'EANLUG'; - fld_RDX_LUGVENLUGVEN = 'LUGVEN'; - fld_RDX_LUGVENFECINI = 'FECINI'; - fld_RDX_LUGVENFECFIN = 'FECFIN'; - fld_RDX_LUGVENPERVENINI = 'PERVENINI'; - fld_RDX_LUGVENPERVENFIN = 'PERVENFIN'; - - { RDX_LUGVEN field indexes } - idx_RDX_LUGVENCLAVE1 = 0; - idx_RDX_LUGVENCLAVE2 = 1; - idx_RDX_LUGVENEANLUG = 2; - idx_RDX_LUGVENLUGVEN = 3; - idx_RDX_LUGVENFECINI = 4; - idx_RDX_LUGVENFECFIN = 5; - idx_RDX_LUGVENPERVENINI = 6; - idx_RDX_LUGVENPERVENFIN = 7; - -type - { IRDX_ARTVEN } - IRDX_ARTVEN = interface(IDAStronglyTypedDataTable) - ['{9EC1A018-B12C-49B8-A8D7-852A5453C9B0}'] - { Property getters and setters } - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetCLAVE2Value: Float; - procedure SetCLAVE2Value(const aValue: Float); - function GetCLAVE3Value: Float; - procedure SetCLAVE3Value(const aValue: Float); - function GetEANARTValue: String; - procedure SetEANARTValue(const aValue: String); - function GetCODCOMValue: String; - procedure SetCODCOMValue(const aValue: String); - function GetNUMVARValue: String; - procedure SetNUMVARValue(const aValue: String); - function GetCODPROValue: String; - procedure SetCODPROValue(const aValue: String); - function GetDESARTCOValue: String; - procedure SetDESARTCOValue(const aValue: String); - function GetDESARTValue: String; - procedure SetDESARTValue(const aValue: String); - function GetNUMCONValue: String; - procedure SetNUMCONValue(const aValue: String); - function GetNUMLISValue: String; - procedure SetNUMLISValue(const aValue: String); - function GetCONESP1Value: String; - procedure SetCONESP1Value(const aValue: String); - function GetCONESP2Value: String; - procedure SetCONESP2Value(const aValue: String); - function GetCONESP3Value: String; - procedure SetCONESP3Value(const aValue: String); - function GetVALVENValue: Float; - procedure SetVALVENValue(const aValue: Float); - function GetPRENETCTValue: Float; - procedure SetPRENETCTValue(const aValue: Float); - function GetPREBRUCTValue: Float; - procedure SetPREBRUCTValue(const aValue: Float); - function GetPREINFETValue: Float; - procedure SetPREINFETValue(const aValue: Float); - function GetPREINFFTValue: Float; - procedure SetPREINFFTValue(const aValue: Float); - function GetPRECALCTValue: Float; - procedure SetPRECALCTValue(const aValue: Float); - function GetPRENETCAValue: Float; - procedure SetPRENETCAValue(const aValue: Float); - function GetPREBRUCAValue: Float; - procedure SetPREBRUCAValue(const aValue: Float); - function GetPREINFEAValue: Float; - procedure SetPREINFEAValue(const aValue: Float); - function GetPREINFFAValue: Float; - procedure SetPREINFFAValue(const aValue: Float); - function GetPRECALCAValue: Float; - procedure SetPRECALCAValue(const aValue: Float); - function GetBAPRUN1Value: Float; - procedure SetBAPRUN1Value(const aValue: Float); - function GetUNIMED1Value: String; - procedure SetUNIMED1Value(const aValue: String); - function GetBAPRUN2Value: Float; - procedure SetBAPRUN2Value(const aValue: Float); - function GetUNIMED2Value: String; - procedure SetUNIMED2Value(const aValue: String); - function GetBAPRUN3Value: Float; - procedure SetBAPRUN3Value(const aValue: Float); - function GetUNIMED3Value: String; - procedure SetUNIMED3Value(const aValue: String); - function GetBAPRUN4Value: Float; - procedure SetBAPRUN4Value(const aValue: Float); - function GetUNIMED4Value: String; - procedure SetUNIMED4Value(const aValue: String); - function GetBAPRUN5Value: Float; - procedure SetBAPRUN5Value(const aValue: Float); - function GetUNIMED5Value: String; - procedure SetUNIMED5Value(const aValue: String); - function GetCANVENValue: Float; - procedure SetCANVENValue(const aValue: Float); - function GetEXIPROValue: Float; - procedure SetEXIPROValue(const aValue: Float); - function GetDESEXIValue: Float; - procedure SetDESEXIValue(const aValue: Float); - function GetESPMEDCVValue: String; - procedure SetESPMEDCVValue(const aValue: String); - function GetESPMEDEPValue: String; - procedure SetESPMEDEPValue(const aValue: String); - function GetESPMEDDEValue: String; - procedure SetESPMEDDEValue(const aValue: String); - function GetCANDEVValue: Float; - procedure SetCANDEVValue(const aValue: Float); - function GetEANVENValue: String; - procedure SetEANVENValue(const aValue: String); - function GetNOMVENValue: String; - procedure SetNOMVENValue(const aValue: String); - function GetNUMTALONValue: String; - procedure SetNUMTALONValue(const aValue: String); - function GetCANVENNETValue: Float; - procedure SetCANVENNETValue(const aValue: Float); - function GetUMEDVENNETValue: String; - procedure SetUMEDVENNETValue(const aValue: String); - function GetCANESPValue: Float; - procedure SetCANESPValue(const aValue: Float); - function GetUMEDESPValue: String; - procedure SetUMEDESPValue(const aValue: String); - - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; - property EANART: String read GetEANARTValue write SetEANARTValue; - property CODCOM: String read GetCODCOMValue write SetCODCOMValue; - property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; - property CODPRO: String read GetCODPROValue write SetCODPROValue; - property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; - property DESART: String read GetDESARTValue write SetDESARTValue; - property NUMCON: String read GetNUMCONValue write SetNUMCONValue; - property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; - property CONESP1: String read GetCONESP1Value write SetCONESP1Value; - property CONESP2: String read GetCONESP2Value write SetCONESP2Value; - property CONESP3: String read GetCONESP3Value write SetCONESP3Value; - property VALVEN: Float read GetVALVENValue write SetVALVENValue; - property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; - property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; - property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; - property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; - property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; - property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; - property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; - property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; - property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; - property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; - property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; - property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; - property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; - property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; - property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; - property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; - property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; - property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; - property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; - property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; - property CANVEN: Float read GetCANVENValue write SetCANVENValue; - property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; - property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; - property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; - property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; - property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; - property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; - property EANVEN: String read GetEANVENValue write SetEANVENValue; - property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; - property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; - property CANESP: Float read GetCANESPValue write SetCANESPValue; - property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; - end; - - { TRDX_ARTVENDataTableRules } - TRDX_ARTVENDataTableRules = class(TDADataTableRules, IRDX_ARTVEN) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Float; virtual; - procedure SetCLAVE2Value(const aValue: Float); virtual; - function GetCLAVE3Value: Float; virtual; - procedure SetCLAVE3Value(const aValue: Float); virtual; - function GetEANARTValue: String; virtual; - procedure SetEANARTValue(const aValue: String); virtual; - function GetCODCOMValue: String; virtual; - procedure SetCODCOMValue(const aValue: String); virtual; - function GetNUMVARValue: String; virtual; - procedure SetNUMVARValue(const aValue: String); virtual; - function GetCODPROValue: String; virtual; - procedure SetCODPROValue(const aValue: String); virtual; - function GetDESARTCOValue: String; virtual; - procedure SetDESARTCOValue(const aValue: String); virtual; - function GetDESARTValue: String; virtual; - procedure SetDESARTValue(const aValue: String); virtual; - function GetNUMCONValue: String; virtual; - procedure SetNUMCONValue(const aValue: String); virtual; - function GetNUMLISValue: String; virtual; - procedure SetNUMLISValue(const aValue: String); virtual; - function GetCONESP1Value: String; virtual; - procedure SetCONESP1Value(const aValue: String); virtual; - function GetCONESP2Value: String; virtual; - procedure SetCONESP2Value(const aValue: String); virtual; - function GetCONESP3Value: String; virtual; - procedure SetCONESP3Value(const aValue: String); virtual; - function GetVALVENValue: Float; virtual; - procedure SetVALVENValue(const aValue: Float); virtual; - function GetPRENETCTValue: Float; virtual; - procedure SetPRENETCTValue(const aValue: Float); virtual; - function GetPREBRUCTValue: Float; virtual; - procedure SetPREBRUCTValue(const aValue: Float); virtual; - function GetPREINFETValue: Float; virtual; - procedure SetPREINFETValue(const aValue: Float); virtual; - function GetPREINFFTValue: Float; virtual; - procedure SetPREINFFTValue(const aValue: Float); virtual; - function GetPRECALCTValue: Float; virtual; - procedure SetPRECALCTValue(const aValue: Float); virtual; - function GetPRENETCAValue: Float; virtual; - procedure SetPRENETCAValue(const aValue: Float); virtual; - function GetPREBRUCAValue: Float; virtual; - procedure SetPREBRUCAValue(const aValue: Float); virtual; - function GetPREINFEAValue: Float; virtual; - procedure SetPREINFEAValue(const aValue: Float); virtual; - function GetPREINFFAValue: Float; virtual; - procedure SetPREINFFAValue(const aValue: Float); virtual; - function GetPRECALCAValue: Float; virtual; - procedure SetPRECALCAValue(const aValue: Float); virtual; - function GetBAPRUN1Value: Float; virtual; - procedure SetBAPRUN1Value(const aValue: Float); virtual; - function GetUNIMED1Value: String; virtual; - procedure SetUNIMED1Value(const aValue: String); virtual; - function GetBAPRUN2Value: Float; virtual; - procedure SetBAPRUN2Value(const aValue: Float); virtual; - function GetUNIMED2Value: String; virtual; - procedure SetUNIMED2Value(const aValue: String); virtual; - function GetBAPRUN3Value: Float; virtual; - procedure SetBAPRUN3Value(const aValue: Float); virtual; - function GetUNIMED3Value: String; virtual; - procedure SetUNIMED3Value(const aValue: String); virtual; - function GetBAPRUN4Value: Float; virtual; - procedure SetBAPRUN4Value(const aValue: Float); virtual; - function GetUNIMED4Value: String; virtual; - procedure SetUNIMED4Value(const aValue: String); virtual; - function GetBAPRUN5Value: Float; virtual; - procedure SetBAPRUN5Value(const aValue: Float); virtual; - function GetUNIMED5Value: String; virtual; - procedure SetUNIMED5Value(const aValue: String); virtual; - function GetCANVENValue: Float; virtual; - procedure SetCANVENValue(const aValue: Float); virtual; - function GetEXIPROValue: Float; virtual; - procedure SetEXIPROValue(const aValue: Float); virtual; - function GetDESEXIValue: Float; virtual; - procedure SetDESEXIValue(const aValue: Float); virtual; - function GetESPMEDCVValue: String; virtual; - procedure SetESPMEDCVValue(const aValue: String); virtual; - function GetESPMEDEPValue: String; virtual; - procedure SetESPMEDEPValue(const aValue: String); virtual; - function GetESPMEDDEValue: String; virtual; - procedure SetESPMEDDEValue(const aValue: String); virtual; - function GetCANDEVValue: Float; virtual; - procedure SetCANDEVValue(const aValue: Float); virtual; - function GetEANVENValue: String; virtual; - procedure SetEANVENValue(const aValue: String); virtual; - function GetNOMVENValue: String; virtual; - procedure SetNOMVENValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCANVENNETValue: Float; virtual; - procedure SetCANVENNETValue(const aValue: Float); virtual; - function GetUMEDVENNETValue: String; virtual; - procedure SetUMEDVENNETValue(const aValue: String); virtual; - function GetCANESPValue: Float; virtual; - procedure SetCANESPValue(const aValue: Float); virtual; - function GetUMEDESPValue: String; virtual; - procedure SetUMEDESPValue(const aValue: String); virtual; - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Float read GetCLAVE2Value write SetCLAVE2Value; - property CLAVE3: Float read GetCLAVE3Value write SetCLAVE3Value; - property EANART: String read GetEANARTValue write SetEANARTValue; - property CODCOM: String read GetCODCOMValue write SetCODCOMValue; - property NUMVAR: String read GetNUMVARValue write SetNUMVARValue; - property CODPRO: String read GetCODPROValue write SetCODPROValue; - property DESARTCO: String read GetDESARTCOValue write SetDESARTCOValue; - property DESART: String read GetDESARTValue write SetDESARTValue; - property NUMCON: String read GetNUMCONValue write SetNUMCONValue; - property NUMLIS: String read GetNUMLISValue write SetNUMLISValue; - property CONESP1: String read GetCONESP1Value write SetCONESP1Value; - property CONESP2: String read GetCONESP2Value write SetCONESP2Value; - property CONESP3: String read GetCONESP3Value write SetCONESP3Value; - property VALVEN: Float read GetVALVENValue write SetVALVENValue; - property PRENETCT: Float read GetPRENETCTValue write SetPRENETCTValue; - property PREBRUCT: Float read GetPREBRUCTValue write SetPREBRUCTValue; - property PREINFET: Float read GetPREINFETValue write SetPREINFETValue; - property PREINFFT: Float read GetPREINFFTValue write SetPREINFFTValue; - property PRECALCT: Float read GetPRECALCTValue write SetPRECALCTValue; - property PRENETCA: Float read GetPRENETCAValue write SetPRENETCAValue; - property PREBRUCA: Float read GetPREBRUCAValue write SetPREBRUCAValue; - property PREINFEA: Float read GetPREINFEAValue write SetPREINFEAValue; - property PREINFFA: Float read GetPREINFFAValue write SetPREINFFAValue; - property PRECALCA: Float read GetPRECALCAValue write SetPRECALCAValue; - property BAPRUN1: Float read GetBAPRUN1Value write SetBAPRUN1Value; - property UNIMED1: String read GetUNIMED1Value write SetUNIMED1Value; - property BAPRUN2: Float read GetBAPRUN2Value write SetBAPRUN2Value; - property UNIMED2: String read GetUNIMED2Value write SetUNIMED2Value; - property BAPRUN3: Float read GetBAPRUN3Value write SetBAPRUN3Value; - property UNIMED3: String read GetUNIMED3Value write SetUNIMED3Value; - property BAPRUN4: Float read GetBAPRUN4Value write SetBAPRUN4Value; - property UNIMED4: String read GetUNIMED4Value write SetUNIMED4Value; - property BAPRUN5: Float read GetBAPRUN5Value write SetBAPRUN5Value; - property UNIMED5: String read GetUNIMED5Value write SetUNIMED5Value; - property CANVEN: Float read GetCANVENValue write SetCANVENValue; - property EXIPRO: Float read GetEXIPROValue write SetEXIPROValue; - property DESEXI: Float read GetDESEXIValue write SetDESEXIValue; - property ESPMEDCV: String read GetESPMEDCVValue write SetESPMEDCVValue; - property ESPMEDEP: String read GetESPMEDEPValue write SetESPMEDEPValue; - property ESPMEDDE: String read GetESPMEDDEValue write SetESPMEDDEValue; - property CANDEV: Float read GetCANDEVValue write SetCANDEVValue; - property EANVEN: String read GetEANVENValue write SetEANVENValue; - property NOMVEN: String read GetNOMVENValue write SetNOMVENValue; - property NUMTALON: String read GetNUMTALONValue write SetNUMTALONValue; - property CANVENNET: Float read GetCANVENNETValue write SetCANVENNETValue; - property UMEDVENNET: String read GetUMEDVENNETValue write SetUMEDVENNETValue; - property CANESP: Float read GetCANESPValue write SetCANESPValue; - property UMEDESP: String read GetUMEDESPValue write SetUMEDESPValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IRDX_CABVEN } - IRDX_CABVEN = interface(IDAStronglyTypedDataTable) - ['{5180F5AB-5BAF-4C8C-80F8-498D0D1252B5}'] - { Property getters and setters } - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetNUMINFValue: String; - procedure SetNUMINFValue(const aValue: String); - function GetFUNCIONValue: String; - procedure SetFUNCIONValue(const aValue: String); - function GetFECINIValue: DateTime; - procedure SetFECINIValue(const aValue: DateTime); - function GetFECFINValue: DateTime; - procedure SetFECFINValue(const aValue: DateTime); - function GetFECINFValue: DateTime; - procedure SetFECINFValue(const aValue: DateTime); - function GetPERVENINIValue: DateTime; - procedure SetPERVENINIValue(const aValue: DateTime); - function GetPERVENFINValue: DateTime; - procedure SetPERVENFINValue(const aValue: DateTime); - function GetEANOFIValue: String; - procedure SetEANOFIValue(const aValue: String); - function GetEANEMIValue: String; - procedure SetEANEMIValue(const aValue: String); - function GetEANRECValue: String; - procedure SetEANRECValue(const aValue: String); - function GetEANVENValue: String; - procedure SetEANVENValue(const aValue: String); - function GetEANALMValue: String; - procedure SetEANALMValue(const aValue: String); - function GetEANREPValue: String; - procedure SetEANREPValue(const aValue: String); - function GetEANPROValue: String; - procedure SetEANPROValue(const aValue: String); - function GetEANADMSAValue: String; - procedure SetEANADMSAValue(const aValue: String); - function GetEANREPSRValue: String; - procedure SetEANREPSRValue(const aValue: String); - function GetADMVENSAValue: String; - procedure SetADMVENSAValue(const aValue: String); - function GetREPDEPSRValue: String; - procedure SetREPDEPSRValue(const aValue: String); - function GetEMAILSAValue: String; - procedure SetEMAILSAValue(const aValue: String); - function GetNUMFAXSAValue: String; - procedure SetNUMFAXSAValue(const aValue: String); - function GetNUMTELSAValue: String; - procedure SetNUMTELSAValue(const aValue: String); - function GetNUMTLXSAValue: String; - procedure SetNUMTLXSAValue(const aValue: String); - function GetX400SAValue: String; - procedure SetX400SAValue(const aValue: String); - function GetEMAILSRValue: String; - procedure SetEMAILSRValue(const aValue: String); - function GetNUMFAXSRValue: String; - procedure SetNUMFAXSRValue(const aValue: String); - function GetNUMTELSRValue: String; - procedure SetNUMTELSRValue(const aValue: String); - function GetNUMTLXSRValue: String; - procedure SetNUMTLXSRValue(const aValue: String); - function GetX400SRValue: String; - procedure SetX400SRValue(const aValue: String); - function GetNUMPREValue: String; - procedure SetNUMPREValue(const aValue: String); - function GetNUMINFSCValue: String; - procedure SetNUMINFSCValue(const aValue: String); - function GetNUMCONValue: String; - procedure SetNUMCONValue(const aValue: String); - function GetFECPREValue: DateTime; - procedure SetFECPREValue(const aValue: DateTime); - function GetFECINFSCValue: DateTime; - procedure SetFECINFSCValue(const aValue: DateTime); - function GetFECCONValue: DateTime; - procedure SetFECCONValue(const aValue: DateTime); - function GetDIVPEDValue: String; - procedure SetDIVPEDValue(const aValue: String); - function GetDIVPREValue: String; - procedure SetDIVPREValue(const aValue: String); - function GetDIVPAGValue: String; - procedure SetDIVPAGValue(const aValue: String); - function GetDIVPEDFValue: String; - procedure SetDIVPEDFValue(const aValue: String); - function GetDIVPREFValue: String; - procedure SetDIVPREFValue(const aValue: String); - function GetDIVPAGFValue: String; - procedure SetDIVPAGFValue(const aValue: String); - function GetTASCAMValue: Float; - procedure SetTASCAMValue(const aValue: Float); - function GetFECTASValue: DateTime; - procedure SetFECTASValue(const aValue: DateTime); - - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; - property FECINI: DateTime read GetFECINIValue write SetFECINIValue; - property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; - property FECINF: DateTime read GetFECINFValue write SetFECINFValue; - property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; - property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; - property EANOFI: String read GetEANOFIValue write SetEANOFIValue; - property EANEMI: String read GetEANEMIValue write SetEANEMIValue; - property EANREC: String read GetEANRECValue write SetEANRECValue; - property EANVEN: String read GetEANVENValue write SetEANVENValue; - property EANALM: String read GetEANALMValue write SetEANALMValue; - property EANREP: String read GetEANREPValue write SetEANREPValue; - property EANPRO: String read GetEANPROValue write SetEANPROValue; - property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; - property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; - property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; - property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; - property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; - property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; - property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; - property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; - property X400SA: String read GetX400SAValue write SetX400SAValue; - property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; - property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; - property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; - property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; - property X400SR: String read GetX400SRValue write SetX400SRValue; - property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; - property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; - property NUMCON: String read GetNUMCONValue write SetNUMCONValue; - property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; - property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; - property FECCON: DateTime read GetFECCONValue write SetFECCONValue; - property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; - property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; - property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; - property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; - property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; - property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; - property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; - property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; - end; - - { TRDX_CABVENDataTableRules } - TRDX_CABVENDataTableRules = class(TDADataTableRules, IRDX_CABVEN) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetFUNCIONValue: String; virtual; - procedure SetFUNCIONValue(const aValue: String); virtual; - function GetFECINIValue: DateTime; virtual; - procedure SetFECINIValue(const aValue: DateTime); virtual; - function GetFECFINValue: DateTime; virtual; - procedure SetFECFINValue(const aValue: DateTime); virtual; - function GetFECINFValue: DateTime; virtual; - procedure SetFECINFValue(const aValue: DateTime); virtual; - function GetPERVENINIValue: DateTime; virtual; - procedure SetPERVENINIValue(const aValue: DateTime); virtual; - function GetPERVENFINValue: DateTime; virtual; - procedure SetPERVENFINValue(const aValue: DateTime); virtual; - function GetEANOFIValue: String; virtual; - procedure SetEANOFIValue(const aValue: String); virtual; - function GetEANEMIValue: String; virtual; - procedure SetEANEMIValue(const aValue: String); virtual; - function GetEANRECValue: String; virtual; - procedure SetEANRECValue(const aValue: String); virtual; - function GetEANVENValue: String; virtual; - procedure SetEANVENValue(const aValue: String); virtual; - function GetEANALMValue: String; virtual; - procedure SetEANALMValue(const aValue: String); virtual; - function GetEANREPValue: String; virtual; - procedure SetEANREPValue(const aValue: String); virtual; - function GetEANPROValue: String; virtual; - procedure SetEANPROValue(const aValue: String); virtual; - function GetEANADMSAValue: String; virtual; - procedure SetEANADMSAValue(const aValue: String); virtual; - function GetEANREPSRValue: String; virtual; - procedure SetEANREPSRValue(const aValue: String); virtual; - function GetADMVENSAValue: String; virtual; - procedure SetADMVENSAValue(const aValue: String); virtual; - function GetREPDEPSRValue: String; virtual; - procedure SetREPDEPSRValue(const aValue: String); virtual; - function GetEMAILSAValue: String; virtual; - procedure SetEMAILSAValue(const aValue: String); virtual; - function GetNUMFAXSAValue: String; virtual; - procedure SetNUMFAXSAValue(const aValue: String); virtual; - function GetNUMTELSAValue: String; virtual; - procedure SetNUMTELSAValue(const aValue: String); virtual; - function GetNUMTLXSAValue: String; virtual; - procedure SetNUMTLXSAValue(const aValue: String); virtual; - function GetX400SAValue: String; virtual; - procedure SetX400SAValue(const aValue: String); virtual; - function GetEMAILSRValue: String; virtual; - procedure SetEMAILSRValue(const aValue: String); virtual; - function GetNUMFAXSRValue: String; virtual; - procedure SetNUMFAXSRValue(const aValue: String); virtual; - function GetNUMTELSRValue: String; virtual; - procedure SetNUMTELSRValue(const aValue: String); virtual; - function GetNUMTLXSRValue: String; virtual; - procedure SetNUMTLXSRValue(const aValue: String); virtual; - function GetX400SRValue: String; virtual; - procedure SetX400SRValue(const aValue: String); virtual; - function GetNUMPREValue: String; virtual; - procedure SetNUMPREValue(const aValue: String); virtual; - function GetNUMINFSCValue: String; virtual; - procedure SetNUMINFSCValue(const aValue: String); virtual; - function GetNUMCONValue: String; virtual; - procedure SetNUMCONValue(const aValue: String); virtual; - function GetFECPREValue: DateTime; virtual; - procedure SetFECPREValue(const aValue: DateTime); virtual; - function GetFECINFSCValue: DateTime; virtual; - procedure SetFECINFSCValue(const aValue: DateTime); virtual; - function GetFECCONValue: DateTime; virtual; - procedure SetFECCONValue(const aValue: DateTime); virtual; - function GetDIVPEDValue: String; virtual; - procedure SetDIVPEDValue(const aValue: String); virtual; - function GetDIVPREValue: String; virtual; - procedure SetDIVPREValue(const aValue: String); virtual; - function GetDIVPAGValue: String; virtual; - procedure SetDIVPAGValue(const aValue: String); virtual; - function GetDIVPEDFValue: String; virtual; - procedure SetDIVPEDFValue(const aValue: String); virtual; - function GetDIVPREFValue: String; virtual; - procedure SetDIVPREFValue(const aValue: String); virtual; - function GetDIVPAGFValue: String; virtual; - procedure SetDIVPAGFValue(const aValue: String); virtual; - function GetTASCAMValue: Float; virtual; - procedure SetTASCAMValue(const aValue: Float); virtual; - function GetFECTASValue: DateTime; virtual; - procedure SetFECTASValue(const aValue: DateTime); virtual; - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property NUMINF: String read GetNUMINFValue write SetNUMINFValue; - property FUNCION: String read GetFUNCIONValue write SetFUNCIONValue; - property FECINI: DateTime read GetFECINIValue write SetFECINIValue; - property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; - property FECINF: DateTime read GetFECINFValue write SetFECINFValue; - property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; - property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; - property EANOFI: String read GetEANOFIValue write SetEANOFIValue; - property EANEMI: String read GetEANEMIValue write SetEANEMIValue; - property EANREC: String read GetEANRECValue write SetEANRECValue; - property EANVEN: String read GetEANVENValue write SetEANVENValue; - property EANALM: String read GetEANALMValue write SetEANALMValue; - property EANREP: String read GetEANREPValue write SetEANREPValue; - property EANPRO: String read GetEANPROValue write SetEANPROValue; - property EANADMSA: String read GetEANADMSAValue write SetEANADMSAValue; - property EANREPSR: String read GetEANREPSRValue write SetEANREPSRValue; - property ADMVENSA: String read GetADMVENSAValue write SetADMVENSAValue; - property REPDEPSR: String read GetREPDEPSRValue write SetREPDEPSRValue; - property EMAILSA: String read GetEMAILSAValue write SetEMAILSAValue; - property NUMFAXSA: String read GetNUMFAXSAValue write SetNUMFAXSAValue; - property NUMTELSA: String read GetNUMTELSAValue write SetNUMTELSAValue; - property NUMTLXSA: String read GetNUMTLXSAValue write SetNUMTLXSAValue; - property X400SA: String read GetX400SAValue write SetX400SAValue; - property EMAILSR: String read GetEMAILSRValue write SetEMAILSRValue; - property NUMFAXSR: String read GetNUMFAXSRValue write SetNUMFAXSRValue; - property NUMTELSR: String read GetNUMTELSRValue write SetNUMTELSRValue; - property NUMTLXSR: String read GetNUMTLXSRValue write SetNUMTLXSRValue; - property X400SR: String read GetX400SRValue write SetX400SRValue; - property NUMPRE: String read GetNUMPREValue write SetNUMPREValue; - property NUMINFSC: String read GetNUMINFSCValue write SetNUMINFSCValue; - property NUMCON: String read GetNUMCONValue write SetNUMCONValue; - property FECPRE: DateTime read GetFECPREValue write SetFECPREValue; - property FECINFSC: DateTime read GetFECINFSCValue write SetFECINFSCValue; - property FECCON: DateTime read GetFECCONValue write SetFECCONValue; - property DIVPED: String read GetDIVPEDValue write SetDIVPEDValue; - property DIVPRE: String read GetDIVPREValue write SetDIVPREValue; - property DIVPAG: String read GetDIVPAGValue write SetDIVPAGValue; - property DIVPEDF: String read GetDIVPEDFValue write SetDIVPEDFValue; - property DIVPREF: String read GetDIVPREFValue write SetDIVPREFValue; - property DIVPAGF: String read GetDIVPAGFValue write SetDIVPAGFValue; - property TASCAM: Float read GetTASCAMValue write SetTASCAMValue; - property FECTAS: DateTime read GetFECTASValue write SetFECTASValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - - { IRDX_LUGVEN } - IRDX_LUGVEN = interface(IDAStronglyTypedDataTable) - ['{1F9C102A-BE07-4CEC-BBE3-7B062C9F8618}'] - { Property getters and setters } - function GetCLAVE1Value: Float; - procedure SetCLAVE1Value(const aValue: Float); - function GetCLAVE2Value: Integer; - procedure SetCLAVE2Value(const aValue: Integer); - function GetEANLUGValue: String; - procedure SetEANLUGValue(const aValue: String); - function GetLUGVENValue: String; - procedure SetLUGVENValue(const aValue: String); - function GetFECINIValue: DateTime; - procedure SetFECINIValue(const aValue: DateTime); - function GetFECFINValue: DateTime; - procedure SetFECFINValue(const aValue: DateTime); - function GetPERVENINIValue: DateTime; - procedure SetPERVENINIValue(const aValue: DateTime); - function GetPERVENFINValue: DateTime; - procedure SetPERVENFINValue(const aValue: DateTime); - - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property EANLUG: String read GetEANLUGValue write SetEANLUGValue; - property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; - property FECINI: DateTime read GetFECINIValue write SetFECINIValue; - property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; - property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; - property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; - end; - - { TRDX_LUGVENDataTableRules } - TRDX_LUGVENDataTableRules = class(TDADataTableRules, IRDX_LUGVEN) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetEANLUGValue: String; virtual; - procedure SetEANLUGValue(const aValue: String); virtual; - function GetLUGVENValue: String; virtual; - procedure SetLUGVENValue(const aValue: String); virtual; - function GetFECINIValue: DateTime; virtual; - procedure SetFECINIValue(const aValue: DateTime); virtual; - function GetFECFINValue: DateTime; virtual; - procedure SetFECFINValue(const aValue: DateTime); virtual; - function GetPERVENINIValue: DateTime; virtual; - procedure SetPERVENINIValue(const aValue: DateTime); virtual; - function GetPERVENFINValue: DateTime; virtual; - procedure SetPERVENFINValue(const aValue: DateTime); virtual; - - { Properties } - property CLAVE1: Float read GetCLAVE1Value write SetCLAVE1Value; - property CLAVE2: Integer read GetCLAVE2Value write SetCLAVE2Value; - property EANLUG: String read GetEANLUGValue write SetEANLUGValue; - property LUGVEN: String read GetLUGVENValue write SetLUGVENValue; - property FECINI: DateTime read GetFECINIValue write SetFECINIValue; - property FECFIN: DateTime read GetFECFINValue write SetFECFINValue; - property PERVENINI: DateTime read GetPERVENINIValue write SetPERVENINIValue; - property PERVENFIN: DateTime read GetPERVENFINValue write SetPERVENFINValue; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - -implementation - -uses Variants; - -{ TRDX_ARTVENDataTableRules } -constructor TRDX_ARTVENDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_ARTVENDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_ARTVENDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCLAVE1].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCLAVE2Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCLAVE2Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCLAVE2].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCLAVE3Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCLAVE3Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCLAVE3].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetEANARTValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENEANART].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetEANARTValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENEANART].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCODCOMValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetCODCOMValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENCODCOM].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetNUMVARValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetNUMVARValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENNUMVAR].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCODPROValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetCODPROValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENCODPRO].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetDESARTCOValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetDESARTCOValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENDESARTCO].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetDESARTValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENDESART].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetDESARTValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENDESART].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetNUMCONValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetNUMCONValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENNUMCON].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetNUMLISValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetNUMLISValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENNUMLIS].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCONESP1Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetCONESP1Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENCONESP1].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCONESP2Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetCONESP2Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENCONESP2].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCONESP3Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetCONESP3Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENCONESP3].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetVALVENValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetVALVENValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENVALVEN].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPRENETCTValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPRENETCTValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPRENETCT].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREBRUCTValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREBRUCTValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREBRUCT].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREINFETValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREINFETValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREINFET].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREINFFTValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREINFFTValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREINFFT].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPRECALCTValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPRECALCTValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPRECALCT].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPRENETCAValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPRENETCAValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPRENETCA].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREBRUCAValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREBRUCAValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREBRUCA].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREINFEAValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREINFEAValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREINFEA].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPREINFFAValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPREINFFAValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPREINFFA].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetPRECALCAValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetPRECALCAValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENPRECALCA].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetBAPRUN1Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetBAPRUN1Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENBAPRUN1].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUNIMED1Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUNIMED1Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUNIMED1].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetBAPRUN2Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetBAPRUN2Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENBAPRUN2].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUNIMED2Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUNIMED2Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUNIMED2].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetBAPRUN3Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetBAPRUN3Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENBAPRUN3].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUNIMED3Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUNIMED3Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUNIMED3].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetBAPRUN4Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetBAPRUN4Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENBAPRUN4].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUNIMED4Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUNIMED4Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUNIMED4].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetBAPRUN5Value: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetBAPRUN5Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENBAPRUN5].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUNIMED5Value: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUNIMED5Value(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUNIMED5].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCANVENValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCANVENValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCANVEN].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetEXIPROValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetEXIPROValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENEXIPRO].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetDESEXIValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetDESEXIValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENDESEXI].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetESPMEDCVValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetESPMEDCVValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENESPMEDCV].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetESPMEDEPValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetESPMEDEPValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENESPMEDEP].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetESPMEDDEValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetESPMEDDEValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENESPMEDDE].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCANDEVValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCANDEVValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCANDEV].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetEANVENValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetEANVENValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENEANVEN].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetNOMVENValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetNOMVENValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENNOMVEN].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetNUMTALONValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetNUMTALONValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENNUMTALON].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCANVENNETValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCANVENNETValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCANVENNET].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUMEDVENNETValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUMEDVENNETValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUMEDVENNET].AsString := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetCANESPValue: Float; -begin - result := DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat; -end; - -procedure TRDX_ARTVENDataTableRules.SetCANESPValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_ARTVENCANESP].AsFloat := aValue; -end; - -function TRDX_ARTVENDataTableRules.GetUMEDESPValue: String; -begin - result := DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString; -end; - -procedure TRDX_ARTVENDataTableRules.SetUMEDESPValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_ARTVENUMEDESP].AsString := aValue; -end; - - -{ TRDX_CABVENDataTableRules } -constructor TRDX_CABVENDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_CABVENDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_CABVENDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat; -end; - -procedure TRDX_CABVENDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_CABVENCLAVE1].AsFloat := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMINFValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMINF].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMINFValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFUNCIONValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENFUNCION].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetFUNCIONValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECINIValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECINIValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECFINValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECFINValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECINFValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECINFValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetPERVENINIValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetPERVENFINValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANOFIValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANOFI].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANOFIValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANEMIValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANEMI].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANEMIValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANRECValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANREC].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANRECValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANVENValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANVEN].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANVENValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANALMValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANALM].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANALMValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANREPValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANREP].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANREPValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANPROValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANPRO].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANPROValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANADMSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANADMSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEANREPSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEANREPSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetADMVENSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetADMVENSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetREPDEPSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetREPDEPSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEMAILSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEMAILSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMFAXSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMFAXSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMTELSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMTELSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMTLXSAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMTLXSAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetX400SAValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENX400SA].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetX400SAValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetEMAILSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetEMAILSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMFAXSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMFAXSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMFAXSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMTELSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMTELSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMTLXSRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMTLXSRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetX400SRValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENX400SR].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetX400SRValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMPREValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMPREValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMINFSCValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMINFSCValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetNUMCONValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENNUMCON].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetNUMCONValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECPREValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECPREValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECINFSCValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECINFSCValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECCONValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECCONValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPEDValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPED].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPEDValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPREValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPREValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPAGValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPAGValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPEDFValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPEDFValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPREFValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPREFValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetDIVPAGFValue: String; -begin - result := DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString; -end; - -procedure TRDX_CABVENDataTableRules.SetDIVPAGFValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; -end; - -function TRDX_CABVENDataTableRules.GetTASCAMValue: Float; -begin - result := DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat; -end; - -procedure TRDX_CABVENDataTableRules.SetTASCAMValue(const aValue: Float); -begin - DataTable.Fields[idx_RDX_CABVENTASCAM].AsFloat := aValue; -end; - -function TRDX_CABVENDataTableRules.GetFECTASValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime; -end; - -procedure TRDX_CABVENDataTableRules.SetFECTASValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; -end; - - -{ TRDX_LUGVENDataTableRules } -constructor TRDX_LUGVENDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TRDX_LUGVENDataTableRules.Destroy; -begin - inherited; -end; - -function TRDX_LUGVENDataTableRules.GetCLAVE1Value: Float; -begin - result := DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat; -end; - -procedure TRDX_LUGVENDataTableRules.SetCLAVE1Value(const aValue: Float); -begin - DataTable.Fields[idx_RDX_LUGVENCLAVE1].AsFloat := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetCLAVE2Value: Integer; -begin - result := DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger; -end; - -procedure TRDX_LUGVENDataTableRules.SetCLAVE2Value(const aValue: Integer); -begin - DataTable.Fields[idx_RDX_LUGVENCLAVE2].AsInteger := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetEANLUGValue: String; -begin - result := DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString; -end; - -procedure TRDX_LUGVENDataTableRules.SetEANLUGValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LUGVENEANLUG].AsString := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetLUGVENValue: String; -begin - result := DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString; -end; - -procedure TRDX_LUGVENDataTableRules.SetLUGVENValue(const aValue: String); -begin - DataTable.Fields[idx_RDX_LUGVENLUGVEN].AsString := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetFECINIValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime; -end; - -procedure TRDX_LUGVENDataTableRules.SetFECINIValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetFECFINValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime; -end; - -procedure TRDX_LUGVENDataTableRules.SetFECFINValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetPERVENINIValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime; -end; - -procedure TRDX_LUGVENDataTableRules.SetPERVENINIValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; -end; - -function TRDX_LUGVENDataTableRules.GetPERVENFINValue: DateTime; -begin - result := DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime; -end; - -procedure TRDX_LUGVENDataTableRules.SetPERVENFINValue(const aValue: DateTime); -begin - DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; -end; - - -initialization - RegisterDataTableRules(RID_RDX_ARTVEN, TRDX_ARTVENDataTableRules); - RegisterDataTableRules(RID_RDX_CABVEN, TRDX_CABVENDataTableRules); - RegisterDataTableRules(RID_RDX_LUGVEN, TRDX_LUGVENDataTableRules); - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas deleted file mode 100644 index 8c11867..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/schEDISalesServer_Intf.pas +++ /dev/null @@ -1,2329 +0,0 @@ -unit schEDISalesServer_Intf; - -interface - -uses - Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schEDISalesClient_Intf; - -const - { Delta rules ids - Feel free to change them to something more human readable - but make sure they are unique in the context of your application } - RID_RDX_ARTVENDelta = '{DBADAFB4-396F-45CF-969C-0E310CE772EF}'; - RID_RDX_CABVENDelta = '{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'; - RID_RDX_LUGVENDelta = '{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'; - -type - { IRDX_ARTVENDelta } - IRDX_ARTVENDelta = interface(IRDX_ARTVEN) - ['{DBADAFB4-396F-45CF-969C-0E310CE772EF}'] - { Property getters and setters } - function GetOldCLAVE1Value : Float; - function GetOldCLAVE2Value : Float; - function GetOldCLAVE3Value : Float; - function GetOldEANARTValue : String; - function GetOldCODCOMValue : String; - function GetOldNUMVARValue : String; - function GetOldCODPROValue : String; - function GetOldDESARTCOValue : String; - function GetOldDESARTValue : String; - function GetOldNUMCONValue : String; - function GetOldNUMLISValue : String; - function GetOldCONESP1Value : String; - function GetOldCONESP2Value : String; - function GetOldCONESP3Value : String; - function GetOldVALVENValue : Float; - function GetOldPRENETCTValue : Float; - function GetOldPREBRUCTValue : Float; - function GetOldPREINFETValue : Float; - function GetOldPREINFFTValue : Float; - function GetOldPRECALCTValue : Float; - function GetOldPRENETCAValue : Float; - function GetOldPREBRUCAValue : Float; - function GetOldPREINFEAValue : Float; - function GetOldPREINFFAValue : Float; - function GetOldPRECALCAValue : Float; - function GetOldBAPRUN1Value : Float; - function GetOldUNIMED1Value : String; - function GetOldBAPRUN2Value : Float; - function GetOldUNIMED2Value : String; - function GetOldBAPRUN3Value : Float; - function GetOldUNIMED3Value : String; - function GetOldBAPRUN4Value : Float; - function GetOldUNIMED4Value : String; - function GetOldBAPRUN5Value : Float; - function GetOldUNIMED5Value : String; - function GetOldCANVENValue : Float; - function GetOldEXIPROValue : Float; - function GetOldDESEXIValue : Float; - function GetOldESPMEDCVValue : String; - function GetOldESPMEDEPValue : String; - function GetOldESPMEDDEValue : String; - function GetOldCANDEVValue : Float; - function GetOldEANVENValue : String; - function GetOldNOMVENValue : String; - function GetOldNUMTALONValue : String; - function GetOldCANVENNETValue : Float; - function GetOldUMEDVENNETValue : String; - function GetOldCANESPValue : Float; - function GetOldUMEDESPValue : String; - - { Properties } - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldCLAVE2 : Float read GetOldCLAVE2Value; - property OldCLAVE3 : Float read GetOldCLAVE3Value; - property OldEANART : String read GetOldEANARTValue; - property OldCODCOM : String read GetOldCODCOMValue; - property OldNUMVAR : String read GetOldNUMVARValue; - property OldCODPRO : String read GetOldCODPROValue; - property OldDESARTCO : String read GetOldDESARTCOValue; - property OldDESART : String read GetOldDESARTValue; - property OldNUMCON : String read GetOldNUMCONValue; - property OldNUMLIS : String read GetOldNUMLISValue; - property OldCONESP1 : String read GetOldCONESP1Value; - property OldCONESP2 : String read GetOldCONESP2Value; - property OldCONESP3 : String read GetOldCONESP3Value; - property OldVALVEN : Float read GetOldVALVENValue; - property OldPRENETCT : Float read GetOldPRENETCTValue; - property OldPREBRUCT : Float read GetOldPREBRUCTValue; - property OldPREINFET : Float read GetOldPREINFETValue; - property OldPREINFFT : Float read GetOldPREINFFTValue; - property OldPRECALCT : Float read GetOldPRECALCTValue; - property OldPRENETCA : Float read GetOldPRENETCAValue; - property OldPREBRUCA : Float read GetOldPREBRUCAValue; - property OldPREINFEA : Float read GetOldPREINFEAValue; - property OldPREINFFA : Float read GetOldPREINFFAValue; - property OldPRECALCA : Float read GetOldPRECALCAValue; - property OldBAPRUN1 : Float read GetOldBAPRUN1Value; - property OldUNIMED1 : String read GetOldUNIMED1Value; - property OldBAPRUN2 : Float read GetOldBAPRUN2Value; - property OldUNIMED2 : String read GetOldUNIMED2Value; - property OldBAPRUN3 : Float read GetOldBAPRUN3Value; - property OldUNIMED3 : String read GetOldUNIMED3Value; - property OldBAPRUN4 : Float read GetOldBAPRUN4Value; - property OldUNIMED4 : String read GetOldUNIMED4Value; - property OldBAPRUN5 : Float read GetOldBAPRUN5Value; - property OldUNIMED5 : String read GetOldUNIMED5Value; - property OldCANVEN : Float read GetOldCANVENValue; - property OldEXIPRO : Float read GetOldEXIPROValue; - property OldDESEXI : Float read GetOldDESEXIValue; - property OldESPMEDCV : String read GetOldESPMEDCVValue; - property OldESPMEDEP : String read GetOldESPMEDEPValue; - property OldESPMEDDE : String read GetOldESPMEDDEValue; - property OldCANDEV : Float read GetOldCANDEVValue; - property OldEANVEN : String read GetOldEANVENValue; - property OldNOMVEN : String read GetOldNOMVENValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property OldCANVENNET : Float read GetOldCANVENNETValue; - property OldUMEDVENNET : String read GetOldUMEDVENNETValue; - property OldCANESP : Float read GetOldCANESPValue; - property OldUMEDESP : String read GetOldUMEDESPValue; - end; - - { TRDX_ARTVENBusinessProcessorRules } - TRDX_ARTVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_ARTVEN, IRDX_ARTVENDelta) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Float; virtual; - function GetOldCLAVE2Value: Float; virtual; - procedure SetCLAVE2Value(const aValue: Float); virtual; - function GetCLAVE3Value: Float; virtual; - function GetOldCLAVE3Value: Float; virtual; - procedure SetCLAVE3Value(const aValue: Float); virtual; - function GetEANARTValue: String; virtual; - function GetOldEANARTValue: String; virtual; - procedure SetEANARTValue(const aValue: String); virtual; - function GetCODCOMValue: String; virtual; - function GetOldCODCOMValue: String; virtual; - procedure SetCODCOMValue(const aValue: String); virtual; - function GetNUMVARValue: String; virtual; - function GetOldNUMVARValue: String; virtual; - procedure SetNUMVARValue(const aValue: String); virtual; - function GetCODPROValue: String; virtual; - function GetOldCODPROValue: String; virtual; - procedure SetCODPROValue(const aValue: String); virtual; - function GetDESARTCOValue: String; virtual; - function GetOldDESARTCOValue: String; virtual; - procedure SetDESARTCOValue(const aValue: String); virtual; - function GetDESARTValue: String; virtual; - function GetOldDESARTValue: String; virtual; - procedure SetDESARTValue(const aValue: String); virtual; - function GetNUMCONValue: String; virtual; - function GetOldNUMCONValue: String; virtual; - procedure SetNUMCONValue(const aValue: String); virtual; - function GetNUMLISValue: String; virtual; - function GetOldNUMLISValue: String; virtual; - procedure SetNUMLISValue(const aValue: String); virtual; - function GetCONESP1Value: String; virtual; - function GetOldCONESP1Value: String; virtual; - procedure SetCONESP1Value(const aValue: String); virtual; - function GetCONESP2Value: String; virtual; - function GetOldCONESP2Value: String; virtual; - procedure SetCONESP2Value(const aValue: String); virtual; - function GetCONESP3Value: String; virtual; - function GetOldCONESP3Value: String; virtual; - procedure SetCONESP3Value(const aValue: String); virtual; - function GetVALVENValue: Float; virtual; - function GetOldVALVENValue: Float; virtual; - procedure SetVALVENValue(const aValue: Float); virtual; - function GetPRENETCTValue: Float; virtual; - function GetOldPRENETCTValue: Float; virtual; - procedure SetPRENETCTValue(const aValue: Float); virtual; - function GetPREBRUCTValue: Float; virtual; - function GetOldPREBRUCTValue: Float; virtual; - procedure SetPREBRUCTValue(const aValue: Float); virtual; - function GetPREINFETValue: Float; virtual; - function GetOldPREINFETValue: Float; virtual; - procedure SetPREINFETValue(const aValue: Float); virtual; - function GetPREINFFTValue: Float; virtual; - function GetOldPREINFFTValue: Float; virtual; - procedure SetPREINFFTValue(const aValue: Float); virtual; - function GetPRECALCTValue: Float; virtual; - function GetOldPRECALCTValue: Float; virtual; - procedure SetPRECALCTValue(const aValue: Float); virtual; - function GetPRENETCAValue: Float; virtual; - function GetOldPRENETCAValue: Float; virtual; - procedure SetPRENETCAValue(const aValue: Float); virtual; - function GetPREBRUCAValue: Float; virtual; - function GetOldPREBRUCAValue: Float; virtual; - procedure SetPREBRUCAValue(const aValue: Float); virtual; - function GetPREINFEAValue: Float; virtual; - function GetOldPREINFEAValue: Float; virtual; - procedure SetPREINFEAValue(const aValue: Float); virtual; - function GetPREINFFAValue: Float; virtual; - function GetOldPREINFFAValue: Float; virtual; - procedure SetPREINFFAValue(const aValue: Float); virtual; - function GetPRECALCAValue: Float; virtual; - function GetOldPRECALCAValue: Float; virtual; - procedure SetPRECALCAValue(const aValue: Float); virtual; - function GetBAPRUN1Value: Float; virtual; - function GetOldBAPRUN1Value: Float; virtual; - procedure SetBAPRUN1Value(const aValue: Float); virtual; - function GetUNIMED1Value: String; virtual; - function GetOldUNIMED1Value: String; virtual; - procedure SetUNIMED1Value(const aValue: String); virtual; - function GetBAPRUN2Value: Float; virtual; - function GetOldBAPRUN2Value: Float; virtual; - procedure SetBAPRUN2Value(const aValue: Float); virtual; - function GetUNIMED2Value: String; virtual; - function GetOldUNIMED2Value: String; virtual; - procedure SetUNIMED2Value(const aValue: String); virtual; - function GetBAPRUN3Value: Float; virtual; - function GetOldBAPRUN3Value: Float; virtual; - procedure SetBAPRUN3Value(const aValue: Float); virtual; - function GetUNIMED3Value: String; virtual; - function GetOldUNIMED3Value: String; virtual; - procedure SetUNIMED3Value(const aValue: String); virtual; - function GetBAPRUN4Value: Float; virtual; - function GetOldBAPRUN4Value: Float; virtual; - procedure SetBAPRUN4Value(const aValue: Float); virtual; - function GetUNIMED4Value: String; virtual; - function GetOldUNIMED4Value: String; virtual; - procedure SetUNIMED4Value(const aValue: String); virtual; - function GetBAPRUN5Value: Float; virtual; - function GetOldBAPRUN5Value: Float; virtual; - procedure SetBAPRUN5Value(const aValue: Float); virtual; - function GetUNIMED5Value: String; virtual; - function GetOldUNIMED5Value: String; virtual; - procedure SetUNIMED5Value(const aValue: String); virtual; - function GetCANVENValue: Float; virtual; - function GetOldCANVENValue: Float; virtual; - procedure SetCANVENValue(const aValue: Float); virtual; - function GetEXIPROValue: Float; virtual; - function GetOldEXIPROValue: Float; virtual; - procedure SetEXIPROValue(const aValue: Float); virtual; - function GetDESEXIValue: Float; virtual; - function GetOldDESEXIValue: Float; virtual; - procedure SetDESEXIValue(const aValue: Float); virtual; - function GetESPMEDCVValue: String; virtual; - function GetOldESPMEDCVValue: String; virtual; - procedure SetESPMEDCVValue(const aValue: String); virtual; - function GetESPMEDEPValue: String; virtual; - function GetOldESPMEDEPValue: String; virtual; - procedure SetESPMEDEPValue(const aValue: String); virtual; - function GetESPMEDDEValue: String; virtual; - function GetOldESPMEDDEValue: String; virtual; - procedure SetESPMEDDEValue(const aValue: String); virtual; - function GetCANDEVValue: Float; virtual; - function GetOldCANDEVValue: Float; virtual; - procedure SetCANDEVValue(const aValue: Float); virtual; - function GetEANVENValue: String; virtual; - function GetOldEANVENValue: String; virtual; - procedure SetEANVENValue(const aValue: String); virtual; - function GetNOMVENValue: String; virtual; - function GetOldNOMVENValue: String; virtual; - procedure SetNOMVENValue(const aValue: String); virtual; - function GetNUMTALONValue: String; virtual; - function GetOldNUMTALONValue: String; virtual; - procedure SetNUMTALONValue(const aValue: String); virtual; - function GetCANVENNETValue: Float; virtual; - function GetOldCANVENNETValue: Float; virtual; - procedure SetCANVENNETValue(const aValue: Float); virtual; - function GetUMEDVENNETValue: String; virtual; - function GetOldUMEDVENNETValue: String; virtual; - procedure SetUMEDVENNETValue(const aValue: String); virtual; - function GetCANESPValue: Float; virtual; - function GetOldCANESPValue: Float; virtual; - procedure SetCANESPValue(const aValue: Float); virtual; - function GetUMEDESPValue: String; virtual; - function GetOldUMEDESPValue: String; virtual; - procedure SetUMEDESPValue(const aValue: String); virtual; - - { Properties } - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property CLAVE2 : Float read GetCLAVE2Value write SetCLAVE2Value; - property OldCLAVE2 : Float read GetOldCLAVE2Value; - property CLAVE3 : Float read GetCLAVE3Value write SetCLAVE3Value; - property OldCLAVE3 : Float read GetOldCLAVE3Value; - property EANART : String read GetEANARTValue write SetEANARTValue; - property OldEANART : String read GetOldEANARTValue; - property CODCOM : String read GetCODCOMValue write SetCODCOMValue; - property OldCODCOM : String read GetOldCODCOMValue; - property NUMVAR : String read GetNUMVARValue write SetNUMVARValue; - property OldNUMVAR : String read GetOldNUMVARValue; - property CODPRO : String read GetCODPROValue write SetCODPROValue; - property OldCODPRO : String read GetOldCODPROValue; - property DESARTCO : String read GetDESARTCOValue write SetDESARTCOValue; - property OldDESARTCO : String read GetOldDESARTCOValue; - property DESART : String read GetDESARTValue write SetDESARTValue; - property OldDESART : String read GetOldDESARTValue; - property NUMCON : String read GetNUMCONValue write SetNUMCONValue; - property OldNUMCON : String read GetOldNUMCONValue; - property NUMLIS : String read GetNUMLISValue write SetNUMLISValue; - property OldNUMLIS : String read GetOldNUMLISValue; - property CONESP1 : String read GetCONESP1Value write SetCONESP1Value; - property OldCONESP1 : String read GetOldCONESP1Value; - property CONESP2 : String read GetCONESP2Value write SetCONESP2Value; - property OldCONESP2 : String read GetOldCONESP2Value; - property CONESP3 : String read GetCONESP3Value write SetCONESP3Value; - property OldCONESP3 : String read GetOldCONESP3Value; - property VALVEN : Float read GetVALVENValue write SetVALVENValue; - property OldVALVEN : Float read GetOldVALVENValue; - property PRENETCT : Float read GetPRENETCTValue write SetPRENETCTValue; - property OldPRENETCT : Float read GetOldPRENETCTValue; - property PREBRUCT : Float read GetPREBRUCTValue write SetPREBRUCTValue; - property OldPREBRUCT : Float read GetOldPREBRUCTValue; - property PREINFET : Float read GetPREINFETValue write SetPREINFETValue; - property OldPREINFET : Float read GetOldPREINFETValue; - property PREINFFT : Float read GetPREINFFTValue write SetPREINFFTValue; - property OldPREINFFT : Float read GetOldPREINFFTValue; - property PRECALCT : Float read GetPRECALCTValue write SetPRECALCTValue; - property OldPRECALCT : Float read GetOldPRECALCTValue; - property PRENETCA : Float read GetPRENETCAValue write SetPRENETCAValue; - property OldPRENETCA : Float read GetOldPRENETCAValue; - property PREBRUCA : Float read GetPREBRUCAValue write SetPREBRUCAValue; - property OldPREBRUCA : Float read GetOldPREBRUCAValue; - property PREINFEA : Float read GetPREINFEAValue write SetPREINFEAValue; - property OldPREINFEA : Float read GetOldPREINFEAValue; - property PREINFFA : Float read GetPREINFFAValue write SetPREINFFAValue; - property OldPREINFFA : Float read GetOldPREINFFAValue; - property PRECALCA : Float read GetPRECALCAValue write SetPRECALCAValue; - property OldPRECALCA : Float read GetOldPRECALCAValue; - property BAPRUN1 : Float read GetBAPRUN1Value write SetBAPRUN1Value; - property OldBAPRUN1 : Float read GetOldBAPRUN1Value; - property UNIMED1 : String read GetUNIMED1Value write SetUNIMED1Value; - property OldUNIMED1 : String read GetOldUNIMED1Value; - property BAPRUN2 : Float read GetBAPRUN2Value write SetBAPRUN2Value; - property OldBAPRUN2 : Float read GetOldBAPRUN2Value; - property UNIMED2 : String read GetUNIMED2Value write SetUNIMED2Value; - property OldUNIMED2 : String read GetOldUNIMED2Value; - property BAPRUN3 : Float read GetBAPRUN3Value write SetBAPRUN3Value; - property OldBAPRUN3 : Float read GetOldBAPRUN3Value; - property UNIMED3 : String read GetUNIMED3Value write SetUNIMED3Value; - property OldUNIMED3 : String read GetOldUNIMED3Value; - property BAPRUN4 : Float read GetBAPRUN4Value write SetBAPRUN4Value; - property OldBAPRUN4 : Float read GetOldBAPRUN4Value; - property UNIMED4 : String read GetUNIMED4Value write SetUNIMED4Value; - property OldUNIMED4 : String read GetOldUNIMED4Value; - property BAPRUN5 : Float read GetBAPRUN5Value write SetBAPRUN5Value; - property OldBAPRUN5 : Float read GetOldBAPRUN5Value; - property UNIMED5 : String read GetUNIMED5Value write SetUNIMED5Value; - property OldUNIMED5 : String read GetOldUNIMED5Value; - property CANVEN : Float read GetCANVENValue write SetCANVENValue; - property OldCANVEN : Float read GetOldCANVENValue; - property EXIPRO : Float read GetEXIPROValue write SetEXIPROValue; - property OldEXIPRO : Float read GetOldEXIPROValue; - property DESEXI : Float read GetDESEXIValue write SetDESEXIValue; - property OldDESEXI : Float read GetOldDESEXIValue; - property ESPMEDCV : String read GetESPMEDCVValue write SetESPMEDCVValue; - property OldESPMEDCV : String read GetOldESPMEDCVValue; - property ESPMEDEP : String read GetESPMEDEPValue write SetESPMEDEPValue; - property OldESPMEDEP : String read GetOldESPMEDEPValue; - property ESPMEDDE : String read GetESPMEDDEValue write SetESPMEDDEValue; - property OldESPMEDDE : String read GetOldESPMEDDEValue; - property CANDEV : Float read GetCANDEVValue write SetCANDEVValue; - property OldCANDEV : Float read GetOldCANDEVValue; - property EANVEN : String read GetEANVENValue write SetEANVENValue; - property OldEANVEN : String read GetOldEANVENValue; - property NOMVEN : String read GetNOMVENValue write SetNOMVENValue; - property OldNOMVEN : String read GetOldNOMVENValue; - property NUMTALON : String read GetNUMTALONValue write SetNUMTALONValue; - property OldNUMTALON : String read GetOldNUMTALONValue; - property CANVENNET : Float read GetCANVENNETValue write SetCANVENNETValue; - property OldCANVENNET : Float read GetOldCANVENNETValue; - property UMEDVENNET : String read GetUMEDVENNETValue write SetUMEDVENNETValue; - property OldUMEDVENNET : String read GetOldUMEDVENNETValue; - property CANESP : Float read GetCANESPValue write SetCANESPValue; - property OldCANESP : Float read GetOldCANESPValue; - property UMEDESP : String read GetUMEDESPValue write SetUMEDESPValue; - property OldUMEDESP : String read GetOldUMEDESPValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IRDX_CABVENDelta } - IRDX_CABVENDelta = interface(IRDX_CABVEN) - ['{EDFAD481-7C5C-49FE-9B6C-9F498CEC065D}'] - { Property getters and setters } - function GetOldCLAVE1Value : Float; - function GetOldNUMINFValue : String; - function GetOldFUNCIONValue : String; - function GetOldFECINIValue : DateTime; - function GetOldFECFINValue : DateTime; - function GetOldFECINFValue : DateTime; - function GetOldPERVENINIValue : DateTime; - function GetOldPERVENFINValue : DateTime; - function GetOldEANOFIValue : String; - function GetOldEANEMIValue : String; - function GetOldEANRECValue : String; - function GetOldEANVENValue : String; - function GetOldEANALMValue : String; - function GetOldEANREPValue : String; - function GetOldEANPROValue : String; - function GetOldEANADMSAValue : String; - function GetOldEANREPSRValue : String; - function GetOldADMVENSAValue : String; - function GetOldREPDEPSRValue : String; - function GetOldEMAILSAValue : String; - function GetOldNUMFAXSAValue : String; - function GetOldNUMTELSAValue : String; - function GetOldNUMTLXSAValue : String; - function GetOldX400SAValue : String; - function GetOldEMAILSRValue : String; - function GetOldNUMFAXSRValue : String; - function GetOldNUMTELSRValue : String; - function GetOldNUMTLXSRValue : String; - function GetOldX400SRValue : String; - function GetOldNUMPREValue : String; - function GetOldNUMINFSCValue : String; - function GetOldNUMCONValue : String; - function GetOldFECPREValue : DateTime; - function GetOldFECINFSCValue : DateTime; - function GetOldFECCONValue : DateTime; - function GetOldDIVPEDValue : String; - function GetOldDIVPREValue : String; - function GetOldDIVPAGValue : String; - function GetOldDIVPEDFValue : String; - function GetOldDIVPREFValue : String; - function GetOldDIVPAGFValue : String; - function GetOldTASCAMValue : Float; - function GetOldFECTASValue : DateTime; - - { Properties } - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldNUMINF : String read GetOldNUMINFValue; - property OldFUNCION : String read GetOldFUNCIONValue; - property OldFECINI : DateTime read GetOldFECINIValue; - property OldFECFIN : DateTime read GetOldFECFINValue; - property OldFECINF : DateTime read GetOldFECINFValue; - property OldPERVENINI : DateTime read GetOldPERVENINIValue; - property OldPERVENFIN : DateTime read GetOldPERVENFINValue; - property OldEANOFI : String read GetOldEANOFIValue; - property OldEANEMI : String read GetOldEANEMIValue; - property OldEANREC : String read GetOldEANRECValue; - property OldEANVEN : String read GetOldEANVENValue; - property OldEANALM : String read GetOldEANALMValue; - property OldEANREP : String read GetOldEANREPValue; - property OldEANPRO : String read GetOldEANPROValue; - property OldEANADMSA : String read GetOldEANADMSAValue; - property OldEANREPSR : String read GetOldEANREPSRValue; - property OldADMVENSA : String read GetOldADMVENSAValue; - property OldREPDEPSR : String read GetOldREPDEPSRValue; - property OldEMAILSA : String read GetOldEMAILSAValue; - property OldNUMFAXSA : String read GetOldNUMFAXSAValue; - property OldNUMTELSA : String read GetOldNUMTELSAValue; - property OldNUMTLXSA : String read GetOldNUMTLXSAValue; - property OldX400SA : String read GetOldX400SAValue; - property OldEMAILSR : String read GetOldEMAILSRValue; - property OldNUMFAXSR : String read GetOldNUMFAXSRValue; - property OldNUMTELSR : String read GetOldNUMTELSRValue; - property OldNUMTLXSR : String read GetOldNUMTLXSRValue; - property OldX400SR : String read GetOldX400SRValue; - property OldNUMPRE : String read GetOldNUMPREValue; - property OldNUMINFSC : String read GetOldNUMINFSCValue; - property OldNUMCON : String read GetOldNUMCONValue; - property OldFECPRE : DateTime read GetOldFECPREValue; - property OldFECINFSC : DateTime read GetOldFECINFSCValue; - property OldFECCON : DateTime read GetOldFECCONValue; - property OldDIVPED : String read GetOldDIVPEDValue; - property OldDIVPRE : String read GetOldDIVPREValue; - property OldDIVPAG : String read GetOldDIVPAGValue; - property OldDIVPEDF : String read GetOldDIVPEDFValue; - property OldDIVPREF : String read GetOldDIVPREFValue; - property OldDIVPAGF : String read GetOldDIVPAGFValue; - property OldTASCAM : Float read GetOldTASCAMValue; - property OldFECTAS : DateTime read GetOldFECTASValue; - end; - - { TRDX_CABVENBusinessProcessorRules } - TRDX_CABVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_CABVEN, IRDX_CABVENDelta) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetNUMINFValue: String; virtual; - function GetOldNUMINFValue: String; virtual; - procedure SetNUMINFValue(const aValue: String); virtual; - function GetFUNCIONValue: String; virtual; - function GetOldFUNCIONValue: String; virtual; - procedure SetFUNCIONValue(const aValue: String); virtual; - function GetFECINIValue: DateTime; virtual; - function GetOldFECINIValue: DateTime; virtual; - procedure SetFECINIValue(const aValue: DateTime); virtual; - function GetFECFINValue: DateTime; virtual; - function GetOldFECFINValue: DateTime; virtual; - procedure SetFECFINValue(const aValue: DateTime); virtual; - function GetFECINFValue: DateTime; virtual; - function GetOldFECINFValue: DateTime; virtual; - procedure SetFECINFValue(const aValue: DateTime); virtual; - function GetPERVENINIValue: DateTime; virtual; - function GetOldPERVENINIValue: DateTime; virtual; - procedure SetPERVENINIValue(const aValue: DateTime); virtual; - function GetPERVENFINValue: DateTime; virtual; - function GetOldPERVENFINValue: DateTime; virtual; - procedure SetPERVENFINValue(const aValue: DateTime); virtual; - function GetEANOFIValue: String; virtual; - function GetOldEANOFIValue: String; virtual; - procedure SetEANOFIValue(const aValue: String); virtual; - function GetEANEMIValue: String; virtual; - function GetOldEANEMIValue: String; virtual; - procedure SetEANEMIValue(const aValue: String); virtual; - function GetEANRECValue: String; virtual; - function GetOldEANRECValue: String; virtual; - procedure SetEANRECValue(const aValue: String); virtual; - function GetEANVENValue: String; virtual; - function GetOldEANVENValue: String; virtual; - procedure SetEANVENValue(const aValue: String); virtual; - function GetEANALMValue: String; virtual; - function GetOldEANALMValue: String; virtual; - procedure SetEANALMValue(const aValue: String); virtual; - function GetEANREPValue: String; virtual; - function GetOldEANREPValue: String; virtual; - procedure SetEANREPValue(const aValue: String); virtual; - function GetEANPROValue: String; virtual; - function GetOldEANPROValue: String; virtual; - procedure SetEANPROValue(const aValue: String); virtual; - function GetEANADMSAValue: String; virtual; - function GetOldEANADMSAValue: String; virtual; - procedure SetEANADMSAValue(const aValue: String); virtual; - function GetEANREPSRValue: String; virtual; - function GetOldEANREPSRValue: String; virtual; - procedure SetEANREPSRValue(const aValue: String); virtual; - function GetADMVENSAValue: String; virtual; - function GetOldADMVENSAValue: String; virtual; - procedure SetADMVENSAValue(const aValue: String); virtual; - function GetREPDEPSRValue: String; virtual; - function GetOldREPDEPSRValue: String; virtual; - procedure SetREPDEPSRValue(const aValue: String); virtual; - function GetEMAILSAValue: String; virtual; - function GetOldEMAILSAValue: String; virtual; - procedure SetEMAILSAValue(const aValue: String); virtual; - function GetNUMFAXSAValue: String; virtual; - function GetOldNUMFAXSAValue: String; virtual; - procedure SetNUMFAXSAValue(const aValue: String); virtual; - function GetNUMTELSAValue: String; virtual; - function GetOldNUMTELSAValue: String; virtual; - procedure SetNUMTELSAValue(const aValue: String); virtual; - function GetNUMTLXSAValue: String; virtual; - function GetOldNUMTLXSAValue: String; virtual; - procedure SetNUMTLXSAValue(const aValue: String); virtual; - function GetX400SAValue: String; virtual; - function GetOldX400SAValue: String; virtual; - procedure SetX400SAValue(const aValue: String); virtual; - function GetEMAILSRValue: String; virtual; - function GetOldEMAILSRValue: String; virtual; - procedure SetEMAILSRValue(const aValue: String); virtual; - function GetNUMFAXSRValue: String; virtual; - function GetOldNUMFAXSRValue: String; virtual; - procedure SetNUMFAXSRValue(const aValue: String); virtual; - function GetNUMTELSRValue: String; virtual; - function GetOldNUMTELSRValue: String; virtual; - procedure SetNUMTELSRValue(const aValue: String); virtual; - function GetNUMTLXSRValue: String; virtual; - function GetOldNUMTLXSRValue: String; virtual; - procedure SetNUMTLXSRValue(const aValue: String); virtual; - function GetX400SRValue: String; virtual; - function GetOldX400SRValue: String; virtual; - procedure SetX400SRValue(const aValue: String); virtual; - function GetNUMPREValue: String; virtual; - function GetOldNUMPREValue: String; virtual; - procedure SetNUMPREValue(const aValue: String); virtual; - function GetNUMINFSCValue: String; virtual; - function GetOldNUMINFSCValue: String; virtual; - procedure SetNUMINFSCValue(const aValue: String); virtual; - function GetNUMCONValue: String; virtual; - function GetOldNUMCONValue: String; virtual; - procedure SetNUMCONValue(const aValue: String); virtual; - function GetFECPREValue: DateTime; virtual; - function GetOldFECPREValue: DateTime; virtual; - procedure SetFECPREValue(const aValue: DateTime); virtual; - function GetFECINFSCValue: DateTime; virtual; - function GetOldFECINFSCValue: DateTime; virtual; - procedure SetFECINFSCValue(const aValue: DateTime); virtual; - function GetFECCONValue: DateTime; virtual; - function GetOldFECCONValue: DateTime; virtual; - procedure SetFECCONValue(const aValue: DateTime); virtual; - function GetDIVPEDValue: String; virtual; - function GetOldDIVPEDValue: String; virtual; - procedure SetDIVPEDValue(const aValue: String); virtual; - function GetDIVPREValue: String; virtual; - function GetOldDIVPREValue: String; virtual; - procedure SetDIVPREValue(const aValue: String); virtual; - function GetDIVPAGValue: String; virtual; - function GetOldDIVPAGValue: String; virtual; - procedure SetDIVPAGValue(const aValue: String); virtual; - function GetDIVPEDFValue: String; virtual; - function GetOldDIVPEDFValue: String; virtual; - procedure SetDIVPEDFValue(const aValue: String); virtual; - function GetDIVPREFValue: String; virtual; - function GetOldDIVPREFValue: String; virtual; - procedure SetDIVPREFValue(const aValue: String); virtual; - function GetDIVPAGFValue: String; virtual; - function GetOldDIVPAGFValue: String; virtual; - procedure SetDIVPAGFValue(const aValue: String); virtual; - function GetTASCAMValue: Float; virtual; - function GetOldTASCAMValue: Float; virtual; - procedure SetTASCAMValue(const aValue: Float); virtual; - function GetFECTASValue: DateTime; virtual; - function GetOldFECTASValue: DateTime; virtual; - procedure SetFECTASValue(const aValue: DateTime); virtual; - - { Properties } - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property NUMINF : String read GetNUMINFValue write SetNUMINFValue; - property OldNUMINF : String read GetOldNUMINFValue; - property FUNCION : String read GetFUNCIONValue write SetFUNCIONValue; - property OldFUNCION : String read GetOldFUNCIONValue; - property FECINI : DateTime read GetFECINIValue write SetFECINIValue; - property OldFECINI : DateTime read GetOldFECINIValue; - property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; - property OldFECFIN : DateTime read GetOldFECFINValue; - property FECINF : DateTime read GetFECINFValue write SetFECINFValue; - property OldFECINF : DateTime read GetOldFECINFValue; - property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; - property OldPERVENINI : DateTime read GetOldPERVENINIValue; - property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; - property OldPERVENFIN : DateTime read GetOldPERVENFINValue; - property EANOFI : String read GetEANOFIValue write SetEANOFIValue; - property OldEANOFI : String read GetOldEANOFIValue; - property EANEMI : String read GetEANEMIValue write SetEANEMIValue; - property OldEANEMI : String read GetOldEANEMIValue; - property EANREC : String read GetEANRECValue write SetEANRECValue; - property OldEANREC : String read GetOldEANRECValue; - property EANVEN : String read GetEANVENValue write SetEANVENValue; - property OldEANVEN : String read GetOldEANVENValue; - property EANALM : String read GetEANALMValue write SetEANALMValue; - property OldEANALM : String read GetOldEANALMValue; - property EANREP : String read GetEANREPValue write SetEANREPValue; - property OldEANREP : String read GetOldEANREPValue; - property EANPRO : String read GetEANPROValue write SetEANPROValue; - property OldEANPRO : String read GetOldEANPROValue; - property EANADMSA : String read GetEANADMSAValue write SetEANADMSAValue; - property OldEANADMSA : String read GetOldEANADMSAValue; - property EANREPSR : String read GetEANREPSRValue write SetEANREPSRValue; - property OldEANREPSR : String read GetOldEANREPSRValue; - property ADMVENSA : String read GetADMVENSAValue write SetADMVENSAValue; - property OldADMVENSA : String read GetOldADMVENSAValue; - property REPDEPSR : String read GetREPDEPSRValue write SetREPDEPSRValue; - property OldREPDEPSR : String read GetOldREPDEPSRValue; - property EMAILSA : String read GetEMAILSAValue write SetEMAILSAValue; - property OldEMAILSA : String read GetOldEMAILSAValue; - property NUMFAXSA : String read GetNUMFAXSAValue write SetNUMFAXSAValue; - property OldNUMFAXSA : String read GetOldNUMFAXSAValue; - property NUMTELSA : String read GetNUMTELSAValue write SetNUMTELSAValue; - property OldNUMTELSA : String read GetOldNUMTELSAValue; - property NUMTLXSA : String read GetNUMTLXSAValue write SetNUMTLXSAValue; - property OldNUMTLXSA : String read GetOldNUMTLXSAValue; - property X400SA : String read GetX400SAValue write SetX400SAValue; - property OldX400SA : String read GetOldX400SAValue; - property EMAILSR : String read GetEMAILSRValue write SetEMAILSRValue; - property OldEMAILSR : String read GetOldEMAILSRValue; - property NUMFAXSR : String read GetNUMFAXSRValue write SetNUMFAXSRValue; - property OldNUMFAXSR : String read GetOldNUMFAXSRValue; - property NUMTELSR : String read GetNUMTELSRValue write SetNUMTELSRValue; - property OldNUMTELSR : String read GetOldNUMTELSRValue; - property NUMTLXSR : String read GetNUMTLXSRValue write SetNUMTLXSRValue; - property OldNUMTLXSR : String read GetOldNUMTLXSRValue; - property X400SR : String read GetX400SRValue write SetX400SRValue; - property OldX400SR : String read GetOldX400SRValue; - property NUMPRE : String read GetNUMPREValue write SetNUMPREValue; - property OldNUMPRE : String read GetOldNUMPREValue; - property NUMINFSC : String read GetNUMINFSCValue write SetNUMINFSCValue; - property OldNUMINFSC : String read GetOldNUMINFSCValue; - property NUMCON : String read GetNUMCONValue write SetNUMCONValue; - property OldNUMCON : String read GetOldNUMCONValue; - property FECPRE : DateTime read GetFECPREValue write SetFECPREValue; - property OldFECPRE : DateTime read GetOldFECPREValue; - property FECINFSC : DateTime read GetFECINFSCValue write SetFECINFSCValue; - property OldFECINFSC : DateTime read GetOldFECINFSCValue; - property FECCON : DateTime read GetFECCONValue write SetFECCONValue; - property OldFECCON : DateTime read GetOldFECCONValue; - property DIVPED : String read GetDIVPEDValue write SetDIVPEDValue; - property OldDIVPED : String read GetOldDIVPEDValue; - property DIVPRE : String read GetDIVPREValue write SetDIVPREValue; - property OldDIVPRE : String read GetOldDIVPREValue; - property DIVPAG : String read GetDIVPAGValue write SetDIVPAGValue; - property OldDIVPAG : String read GetOldDIVPAGValue; - property DIVPEDF : String read GetDIVPEDFValue write SetDIVPEDFValue; - property OldDIVPEDF : String read GetOldDIVPEDFValue; - property DIVPREF : String read GetDIVPREFValue write SetDIVPREFValue; - property OldDIVPREF : String read GetOldDIVPREFValue; - property DIVPAGF : String read GetDIVPAGFValue write SetDIVPAGFValue; - property OldDIVPAGF : String read GetOldDIVPAGFValue; - property TASCAM : Float read GetTASCAMValue write SetTASCAMValue; - property OldTASCAM : Float read GetOldTASCAMValue; - property FECTAS : DateTime read GetFECTASValue write SetFECTASValue; - property OldFECTAS : DateTime read GetOldFECTASValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - - { IRDX_LUGVENDelta } - IRDX_LUGVENDelta = interface(IRDX_LUGVEN) - ['{51ECAB19-FE1D-4141-82A8-F4078ADA6B11}'] - { Property getters and setters } - function GetOldCLAVE1Value : Float; - function GetOldCLAVE2Value : Integer; - function GetOldEANLUGValue : String; - function GetOldLUGVENValue : String; - function GetOldFECINIValue : DateTime; - function GetOldFECFINValue : DateTime; - function GetOldPERVENINIValue : DateTime; - function GetOldPERVENFINValue : DateTime; - - { Properties } - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property OldEANLUG : String read GetOldEANLUGValue; - property OldLUGVEN : String read GetOldLUGVENValue; - property OldFECINI : DateTime read GetOldFECINIValue; - property OldFECFIN : DateTime read GetOldFECFINValue; - property OldPERVENINI : DateTime read GetOldPERVENINIValue; - property OldPERVENFIN : DateTime read GetOldPERVENFINValue; - end; - - { TRDX_LUGVENBusinessProcessorRules } - TRDX_LUGVENBusinessProcessorRules = class(TDABusinessProcessorRules, IRDX_LUGVEN, IRDX_LUGVENDelta) - private - protected - { Property getters and setters } - function GetCLAVE1Value: Float; virtual; - function GetOldCLAVE1Value: Float; virtual; - procedure SetCLAVE1Value(const aValue: Float); virtual; - function GetCLAVE2Value: Integer; virtual; - function GetOldCLAVE2Value: Integer; virtual; - procedure SetCLAVE2Value(const aValue: Integer); virtual; - function GetEANLUGValue: String; virtual; - function GetOldEANLUGValue: String; virtual; - procedure SetEANLUGValue(const aValue: String); virtual; - function GetLUGVENValue: String; virtual; - function GetOldLUGVENValue: String; virtual; - procedure SetLUGVENValue(const aValue: String); virtual; - function GetFECINIValue: DateTime; virtual; - function GetOldFECINIValue: DateTime; virtual; - procedure SetFECINIValue(const aValue: DateTime); virtual; - function GetFECFINValue: DateTime; virtual; - function GetOldFECFINValue: DateTime; virtual; - procedure SetFECFINValue(const aValue: DateTime); virtual; - function GetPERVENINIValue: DateTime; virtual; - function GetOldPERVENINIValue: DateTime; virtual; - procedure SetPERVENINIValue(const aValue: DateTime); virtual; - function GetPERVENFINValue: DateTime; virtual; - function GetOldPERVENFINValue: DateTime; virtual; - procedure SetPERVENFINValue(const aValue: DateTime); virtual; - - { Properties } - property CLAVE1 : Float read GetCLAVE1Value write SetCLAVE1Value; - property OldCLAVE1 : Float read GetOldCLAVE1Value; - property CLAVE2 : Integer read GetCLAVE2Value write SetCLAVE2Value; - property OldCLAVE2 : Integer read GetOldCLAVE2Value; - property EANLUG : String read GetEANLUGValue write SetEANLUGValue; - property OldEANLUG : String read GetOldEANLUGValue; - property LUGVEN : String read GetLUGVENValue write SetLUGVENValue; - property OldLUGVEN : String read GetOldLUGVENValue; - property FECINI : DateTime read GetFECINIValue write SetFECINIValue; - property OldFECINI : DateTime read GetOldFECINIValue; - property FECFIN : DateTime read GetFECFINValue write SetFECFINValue; - property OldFECFIN : DateTime read GetOldFECFINValue; - property PERVENINI : DateTime read GetPERVENINIValue write SetPERVENINIValue; - property OldPERVENINI : DateTime read GetOldPERVENINIValue; - property PERVENFIN : DateTime read GetPERVENFINValue write SetPERVENFINValue; - property OldPERVENFIN : DateTime read GetOldPERVENFINValue; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - -implementation - -uses - Variants, uROBinaryHelpers; - -{ TRDX_ARTVENBusinessProcessorRules } -constructor TRDX_ARTVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_ARTVENBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE1]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE1] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCLAVE2Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE2Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE2]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE2] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCLAVE3Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCLAVE3Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCLAVE3]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCLAVE3Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCLAVE3] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetEANARTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldEANARTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANART]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetEANARTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANART] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCODCOMValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCODCOMValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODCOM]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCODCOMValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODCOM] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetNUMVARValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldNUMVARValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMVAR]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetNUMVARValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMVAR] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCODPROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCODPROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCODPRO]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCODPROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCODPRO] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetDESARTCOValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTCOValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESARTCO]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTCOValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESARTCO] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetDESARTValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldDESARTValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESART]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetDESARTValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESART] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetNUMCONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldNUMCONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMCON]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMCON] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetNUMLISValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldNUMLISValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMLIS]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetNUMLISValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMLIS] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCONESP1Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP1Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP1]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP1Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP1] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCONESP2Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP2Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP2]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP2Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP2] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCONESP3Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCONESP3Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCONESP3]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCONESP3Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCONESP3] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetVALVENValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldVALVENValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENVALVEN]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetVALVENValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENVALVEN] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPRENETCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCT]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCT] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCT]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCT] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREINFETValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFETValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFET]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFETValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFET] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREINFFTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFT]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFT] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPRECALCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCTValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCT]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCTValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCT] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPRENETCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPRENETCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRENETCA]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPRENETCAValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRENETCA] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREBRUCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREBRUCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREBRUCA]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREBRUCAValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREBRUCA] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREINFEAValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFEAValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFEA]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFEAValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFEA] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPREINFFAValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPREINFFAValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPREINFFA]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPREINFFAValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPREINFFA] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetPRECALCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldPRECALCAValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENPRECALCA]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetPRECALCAValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENPRECALCA] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN1]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN1] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUNIMED1Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED1Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED1]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED1Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED1] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN2Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN2Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN2]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN2Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN2] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUNIMED2Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED2Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED2]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED2Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED2] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN3Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN3Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN3]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN3Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN3] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUNIMED3Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED3Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED3]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED3Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED3] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN4Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN4Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN4]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN4Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN4] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUNIMED4Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED4Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED4]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED4Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED4] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetBAPRUN5Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldBAPRUN5Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENBAPRUN5]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetBAPRUN5Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENBAPRUN5] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUNIMED5Value: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUNIMED5Value: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUNIMED5]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUNIMED5Value(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUNIMED5] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCANVENValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVEN]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVEN] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetEXIPROValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldEXIPROValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEXIPRO]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetEXIPROValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEXIPRO] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetDESEXIValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldDESEXIValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENDESEXI]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetDESEXIValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENDESEXI] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetESPMEDCVValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDCVValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDCV]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDCVValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDCV] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetESPMEDEPValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDEPValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDEP]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDEPValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDEP] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetESPMEDDEValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldESPMEDDEValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENESPMEDDE]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetESPMEDDEValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENESPMEDDE] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCANDEVValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCANDEVValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANDEV]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCANDEVValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANDEV] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetEANVENValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldEANVENValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENEANVEN]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetEANVENValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENEANVEN] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetNOMVENValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldNOMVENValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNOMVEN]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetNOMVENValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNOMVEN] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldNUMTALONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENNUMTALON]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetNUMTALONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENNUMTALON] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCANVENNETValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCANVENNETValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANVENNET]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCANVENNETValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANVENNET] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUMEDVENNETValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDVENNETValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDVENNET]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDVENNETValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDVENNET] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetCANESPValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldCANESPValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENCANESP]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetCANESPValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENCANESP] := aValue; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetUMEDESPValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP]; -end; - -function TRDX_ARTVENBusinessProcessorRules.GetOldUMEDESPValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_ARTVENUMEDESP]; -end; - -procedure TRDX_ARTVENBusinessProcessorRules.SetUMEDESPValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_ARTVENUMEDESP] := aValue; -end; - - -{ TRDX_CABVENBusinessProcessorRules } -constructor TRDX_CABVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_CABVENBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_CABVENBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENCLAVE1]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENCLAVE1] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINF]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINF] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFUNCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFUNCIONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFUNCION]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFUNCIONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFUNCION] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINI]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINI] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECFIN]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECFIN] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECINFValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECINFValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINF]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECINFValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINF] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetPERVENINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENINI]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENINI] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetPERVENFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENPERVENFIN]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENPERVENFIN] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANOFIValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANOFIValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANOFI]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANOFIValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANOFI] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANEMIValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANEMIValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANEMI]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANEMIValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANEMI] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANRECValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANRECValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREC]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANRECValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREC] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANVENValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANVENValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANVEN]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANVENValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANVEN] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANALMValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANALMValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANALM]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANALMValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANALM] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANREPValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANREPValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREP]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANREPValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREP] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANPROValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANPROValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANPRO]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANPROValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANPRO] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANADMSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANADMSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANADMSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANADMSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANADMSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEANREPSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEANREPSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEANREPSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEANREPSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEANREPSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetADMVENSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldADMVENSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENADMVENSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetADMVENSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENADMVENSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetREPDEPSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldREPDEPSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENREPDEPSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetREPDEPSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENREPDEPSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEMAILSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMTELSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetX400SAValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldX400SAValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SA]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetX400SAValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SA] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetEMAILSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldEMAILSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENEMAILSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetEMAILSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENEMAILSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMFAXSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMFAXSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMFAXSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMFAXSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMFAXSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMTELSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMTELSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTELSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMTELSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTELSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMTLXSRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMTLXSRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMTLXSR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMTLXSRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMTLXSR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetX400SRValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldX400SRValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENX400SR]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetX400SRValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENX400SR] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMPREValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMPREValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMPRE]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMPREValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMPRE] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMINFSCValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMINFSCValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMINFSC]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMINFSCValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMINFSC] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetNUMCONValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldNUMCONValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENNUMCON]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetNUMCONValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENNUMCON] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECPREValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECPREValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECPRE]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECPREValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECPRE] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECINFSCValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECINFSCValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECINFSC]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECINFSCValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECINFSC] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECCONValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECCONValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECCON]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECCONValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECCON] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPEDValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPED]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPED] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPREValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPRE]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPRE] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPAGValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAG]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAG] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPEDFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPEDFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPEDF]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPEDFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPEDF] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPREFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPREFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPREF]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPREFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPREF] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetDIVPAGFValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldDIVPAGFValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENDIVPAGF]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetDIVPAGFValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENDIVPAGF] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetTASCAMValue: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldTASCAMValue: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENTASCAM]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetTASCAMValue(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENTASCAM] := aValue; -end; - -function TRDX_CABVENBusinessProcessorRules.GetFECTASValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS]; -end; - -function TRDX_CABVENBusinessProcessorRules.GetOldFECTASValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_CABVENFECTAS]; -end; - -procedure TRDX_CABVENBusinessProcessorRules.SetFECTASValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_CABVENFECTAS] := aValue; -end; - - -{ TRDX_LUGVENBusinessProcessorRules } -constructor TRDX_LUGVENBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TRDX_LUGVENBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE1Value: Float; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE1]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE1Value(const aValue: Float); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE1] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldCLAVE2Value: Integer; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENCLAVE2]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetCLAVE2Value(const aValue: Integer); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENCLAVE2] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetEANLUGValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldEANLUGValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENEANLUG]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetEANLUGValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENEANLUG] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetLUGVENValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldLUGVENValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENLUGVEN]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetLUGVENValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENLUGVEN] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetFECINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldFECINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECINI]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetFECINIValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECINI] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetFECFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldFECFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENFECFIN]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetFECFINValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENFECFIN] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetPERVENINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENINIValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENINI]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENINIValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENINI] := aValue; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetPERVENFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN]; -end; - -function TRDX_LUGVENBusinessProcessorRules.GetOldPERVENFINValue: DateTime; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_RDX_LUGVENPERVENFIN]; -end; - -procedure TRDX_LUGVENBusinessProcessorRules.SetPERVENFINValue(const aValue: DateTime); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_RDX_LUGVENPERVENFIN] := aValue; -end; - - -initialization - RegisterBusinessProcessorRules(RID_RDX_ARTVENDelta, TRDX_ARTVENBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_RDX_CABVENDelta, TRDX_CABVENBusinessProcessorRules); - RegisterBusinessProcessorRules(RID_RDX_LUGVENDelta, TRDX_LUGVENBusinessProcessorRules); - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas deleted file mode 100644 index a6e6cdc..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uBizEDISales.pas +++ /dev/null @@ -1,476 +0,0 @@ -unit uBizEDISales; - -interface - -uses - uDAInterfaces, uDADataTable, schEDISalesClient_Intf, Classes, - DB, Controls; - -const - BIZ_SLSRPT_CAB = 'BizSlsRptCab'; - BIZ_SLSRPT_LUG = 'BizSlsRptLug'; - BIZ_SLSRPT_ART = 'BizSlsRptArt'; - -type - IBizEDISls_Cab = interface(IRDX_CABVEN) - ['{E7A9D79B-C28F-48BC-A592-EF8C28CD8DFF}'] - end; - - IBizEDISls_Lug = interface(IRDX_LUGVEN) - ['{C3438D84-14A3-4501-879D-C24AE7847DBB}'] - end; - - IBizEDISls_Art = interface(IRDX_ARTVEN) - ['{8A2A5662-D75D-469A-95EB-03C02D2CD1F7}'] - end; - - TBizEDISls_Cab = class(TRDX_CABVENDataTableRules, IBizEDISls_Cab) - protected - procedure SetCLAVE1Value(const aValue: Float); override; - procedure SetNUMINFValue(const aValue: String); override; - procedure SetFUNCIONValue(const aValue: String); override; - - procedure SetEANOFIValue(const aValue: String); override; - procedure SetEANEMIValue(const aValue: String); override; - procedure SetEANRECValue(const aValue: String); override; - procedure SetEANVENValue(const aValue: String); override; - procedure SetEANALMValue(const aValue: String); override; - procedure SetEANREPValue(const aValue: String); override; - procedure SetEANPROValue(const aValue: String); override; - procedure SetEANADMSAValue(const aValue: String); override; - procedure SetEANREPSRValue(const aValue: String); override; - procedure SetADMVENSAValue(const aValue: String); override; - procedure SetREPDEPSRValue(const aValue: String); override; - procedure SetEMAILSAValue(const aValue: String); override; - procedure SetNUMFAXSAValue(const aValue: String); override; - procedure SetNUMTELSAValue(const aValue: String); override; - procedure SetNUMTLXSAValue(const aValue: String); override; - procedure SetX400SAValue(const aValue: String); override; - procedure SetEMAILSRValue(const aValue: String); override; - procedure SetNUMFAXSRValue(const aValue: String); override; - procedure SetNUMTELSRValue(const aValue: String); override; - procedure SetNUMTLXSRValue(const aValue: String); override; - procedure SetX400SRValue(const aValue: String); override; - procedure SetNUMPREValue(const aValue: String); override; - procedure SetNUMINFSCValue(const aValue: String); override; - procedure SetNUMCONValue(const aValue: String); override; - procedure SetDIVPEDValue(const aValue: String); override; - procedure SetDIVPREValue(const aValue: String); override; - procedure SetDIVPAGValue(const aValue: String); override; - procedure SetDIVPEDFValue(const aValue: String); override; - procedure SetDIVPREFValue(const aValue: String); override; - procedure SetDIVPAGFValue(const aValue: String); override; - - procedure SetTASCAMValue(const aValue: Float); override; - - procedure SetFECINIValue(const aValue: DateTime); override; - procedure SetFECFINValue(const aValue: DateTime); override; - procedure SetFECINFValue(const aValue: DateTime); override; - procedure SetFECPREValue(const aValue: DateTime); override; - procedure SetFECINFSCValue(const aValue: DateTime); override; - procedure SetFECCONValue(const aValue: DateTime); override; - procedure SetFECTASValue(const aValue: DateTime); override; - procedure SetPERVENINIValue(const aValue: DateTime); override; - procedure SetPERVENFINValue(const aValue: DateTime); override; - end; - - - TBizEDISls_Lug = class(TRDX_LUGVENDataTableRules, IBizEDISls_Lug) - protected - procedure SetFECINIValue(const aValue: DateTime); override; - procedure SetFECFINValue(const aValue: DateTime); override; - procedure SetPERVENINIValue(const aValue: DateTime); override; - procedure SetPERVENFINValue(const aValue: DateTime); override; - end; - - TBizEDISls_Art = class(TRDX_ARTVENDataTableRules, IBizEDISls_Art) - protected - end; - -implementation - -{ TBizEDISls_Cab } - -uses - Variants; - -procedure TBizEDISls_Cab.SetADMVENSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENADMVENSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENADMVENSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetCLAVE1Value(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDISls_Cab.SetDIVPAGFValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPAGF].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetDIVPAGValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPAG].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPAG].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetDIVPEDFValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPEDF].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetDIVPEDValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPED].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPED].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetDIVPREFValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPREF].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPREF].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetDIVPREValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENDIVPRE].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENDIVPRE].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANADMSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANADMSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANADMSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANALMValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANALM].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANALM].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANEMIValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANEMI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANEMI].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANOFIValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANOFI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANOFI].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANPROValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANPRO].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANPRO].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANRECValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANREC].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANREC].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANREPSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANREPSR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANREPSR].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANREPValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANREP].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANREP].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEANVENValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEANVEN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEANVEN].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEMAILSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEMAILSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEMAILSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetEMAILSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENEMAILSR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENEMAILSR].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetFECCONValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECCON].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECCON].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECFINValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECFIN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECFIN].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECINFSCValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECINFSC].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECINFSC].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECINFValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECINF].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECINF].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECINIValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECINI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECINI].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECPREValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECPRE].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECPRE].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFECTASValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENFECTAS].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFECTAS].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetFUNCIONValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENFUNCION].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENFUNCION].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMCONValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMCON].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMCON].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMFAXSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMFAXSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMFAXSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMINFSCValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMINFSC].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMINFValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMINF].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMINF].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMPREValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMPRE].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMPRE].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMTELSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMTELSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMTELSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMTELSR].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMTLXSAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMTLXSA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetNUMTLXSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENNUMTLXSR].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetPERVENFINValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENPERVENFIN].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetPERVENINIValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_CABVENPERVENINI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENPERVENINI].AsDateTime := aValue; -end; - -procedure TBizEDISls_Cab.SetREPDEPSRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENREPDEPSR].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetTASCAMValue(const aValue: Float); -begin - inherited; -end; - -procedure TBizEDISls_Cab.SetX400SAValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENX400SA].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENX400SA].AsString := aValue; -end; - -procedure TBizEDISls_Cab.SetX400SRValue(const aValue: String); -begin - if Length(aValue) = 0 then - DataTable.Fields[idx_RDX_CABVENX400SR].AsVariant := NULL - else - DataTable.Fields[idx_RDX_CABVENX400SR].AsString := aValue; -end; - -{ TBizEDISls_Lug } - -procedure TBizEDISls_Lug.SetFECFINValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_LUGVENFECFIN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LUGVENFECFIN].AsDateTime := aValue; -end; - -procedure TBizEDISls_Lug.SetFECINIValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_LUGVENFECINI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LUGVENFECINI].AsDateTime := aValue; -end; - -procedure TBizEDISls_Lug.SetPERVENFINValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LUGVENPERVENFIN].AsDateTime := aValue; -end; - -procedure TBizEDISls_Lug.SetPERVENINIValue(const aValue: DateTime); -begin - if aValue = 0 then - DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsVariant := NULL - else - DataTable.Fields[idx_RDX_LUGVENPERVENINI].AsDateTime := aValue; -end; - -initialization - RegisterDataTableRules(BIZ_SLSRPT_CAB, TBizEDISls_Cab); - RegisterDataTableRules(BIZ_SLSRPT_LUG, TBizEDISls_Lug); - RegisterDataTableRules(BIZ_SLSRPT_ART, TBizEDISls_Art); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm deleted file mode 100644 index 571803f..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.dfm +++ /dev/null @@ -1,2699 +0,0 @@ -object dmEDISales: TdmEDISales - OldCreateOrder = False - Height = 184 - Width = 379 - object schEDISales: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_ARTVEN' - SQL = - 'SELECT '#10' CLAVE1, CLAVE2, CLAVE3, EANART, CODCOM, NUMVAR, CODP' + - 'RO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CONESP1, CONESP2, '#10' ' + - ' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREINFET, PREINFFT, '#10' ' + - 'PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PREINFFA, PRECALCA, '#10' ' + - ' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRUN3, UNIMED3, '#10' BAPR' + - 'UN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, EXIPRO, '#10' DESEXI, ESP' + - 'MEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVEN, '#10' NOMVEN, NUMTALON' + - ', CANVENNET, UMEDVENNET, CANESP, UMEDESP'#10' FROM'#10' RDX_ARTVEN' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'CLAVE3' - TableField = 'CLAVE3' - end - item - DatasetField = 'EANART' - TableField = 'EANART' - end - item - DatasetField = 'CODCOM' - TableField = 'CODCOM' - end - item - DatasetField = 'NUMVAR' - TableField = 'NUMVAR' - end - item - DatasetField = 'CODPRO' - TableField = 'CODPRO' - end - item - DatasetField = 'DESARTCO' - TableField = 'DESARTCO' - end - item - DatasetField = 'DESART' - TableField = 'DESART' - end - item - DatasetField = 'NUMCON' - TableField = 'NUMCON' - end - item - DatasetField = 'NUMLIS' - TableField = 'NUMLIS' - end - item - DatasetField = 'CONESP1' - TableField = 'CONESP1' - end - item - DatasetField = 'CONESP2' - TableField = 'CONESP2' - end - item - DatasetField = 'CONESP3' - TableField = 'CONESP3' - end - item - DatasetField = 'VALVEN' - TableField = 'VALVEN' - end - item - DatasetField = 'PRENETCT' - TableField = 'PRENETCT' - end - item - DatasetField = 'PREBRUCT' - TableField = 'PREBRUCT' - end - item - DatasetField = 'PREINFET' - TableField = 'PREINFET' - end - item - DatasetField = 'PREINFFT' - TableField = 'PREINFFT' - end - item - DatasetField = 'PRECALCT' - TableField = 'PRECALCT' - end - item - DatasetField = 'PRENETCA' - TableField = 'PRENETCA' - end - item - DatasetField = 'PREBRUCA' - TableField = 'PREBRUCA' - end - item - DatasetField = 'PREINFEA' - TableField = 'PREINFEA' - end - item - DatasetField = 'PREINFFA' - TableField = 'PREINFFA' - end - item - DatasetField = 'PRECALCA' - TableField = 'PRECALCA' - end - item - DatasetField = 'BAPRUN1' - TableField = 'BAPRUN1' - end - item - DatasetField = 'UNIMED1' - TableField = 'UNIMED1' - end - item - DatasetField = 'BAPRUN2' - TableField = 'BAPRUN2' - end - item - DatasetField = 'UNIMED2' - TableField = 'UNIMED2' - end - item - DatasetField = 'BAPRUN3' - TableField = 'BAPRUN3' - end - item - DatasetField = 'UNIMED3' - TableField = 'UNIMED3' - end - item - DatasetField = 'BAPRUN4' - TableField = 'BAPRUN4' - end - item - DatasetField = 'UNIMED4' - TableField = 'UNIMED4' - end - item - DatasetField = 'BAPRUN5' - TableField = 'BAPRUN5' - end - item - DatasetField = 'UNIMED5' - TableField = 'UNIMED5' - end - item - DatasetField = 'CANVEN' - TableField = 'CANVEN' - end - item - DatasetField = 'EXIPRO' - TableField = 'EXIPRO' - end - item - DatasetField = 'DESEXI' - TableField = 'DESEXI' - end - item - DatasetField = 'ESPMEDCV' - TableField = 'ESPMEDCV' - end - item - DatasetField = 'ESPMEDEP' - TableField = 'ESPMEDEP' - end - item - DatasetField = 'ESPMEDDE' - TableField = 'ESPMEDDE' - end - item - DatasetField = 'CANDEV' - TableField = 'CANDEV' - end - item - DatasetField = 'EANVEN' - TableField = 'EANVEN' - end - item - DatasetField = 'NOMVEN' - TableField = 'NOMVEN' - end - item - DatasetField = 'NUMTALON' - TableField = 'NUMTALON' - end - item - DatasetField = 'CANVENNET' - TableField = 'CANVENNET' - end - item - DatasetField = 'UMEDVENNET' - TableField = 'UMEDVENNET' - end - item - DatasetField = 'CANESP' - TableField = 'CANESP' - end - item - DatasetField = 'UMEDESP' - TableField = 'UMEDESP' - end> - end> - Name = 'RDX_ARTVEN' - Fields = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE2' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE3' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANART' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODCOM' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMVAR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CODPRO' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESARTCO' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESART' - DataType = datString - Size = 70 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMCON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMLIS' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONESP1' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONESP2' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CONESP3' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VALVEN' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRENETCT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREBRUCT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREINFET' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREINFFT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRECALCT' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRENETCA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREBRUCA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREINFEA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PREINFFA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PRECALCA' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BAPRUN1' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UNIMED1' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BAPRUN2' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UNIMED2' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BAPRUN3' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UNIMED3' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BAPRUN4' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UNIMED4' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'BAPRUN5' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UNIMED5' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANVEN' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EXIPRO' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESEXI' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESPMEDCV' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESPMEDEP' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ESPMEDDE' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANDEV' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANVEN' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NOMVEN' - DataType = datString - Size = 70 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANVENNET' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UMEDVENNET' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CANESP' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'UMEDESP' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CABVEN' - SQL = - 'SELECT '#10' CLAVE1, NUMINF, FUNCION, FECINI, FECFIN, FECINF, PER' + - 'VENINI, PERVENFIN,'#10' EANOFI, EANEMI, EANREC, EANVEN, EANALM, E' + - 'ANREP, EANPRO, '#10' EANADMSA, EANREPSR, ADMVENSA, REPDEPSR, EMAI' + - 'LSA, NUMFAXSA, '#10' NUMTELSA, NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + - 'R, NUMTELSR, '#10' NUMTLXSR, X400SR, NUMPRE, NUMINFSC, NUMCON, FE' + - 'CPRE, '#10' FECINFSC, FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, '#10' ' + - ' DIVPREF, DIVPAGF, TASCAM, FECTAS, FECHA_CARGA'#10' FROM'#10' RDX_' + - 'CABVEN' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'NUMINF' - TableField = 'NUMINF' - end - item - DatasetField = 'FUNCION' - TableField = 'FUNCION' - end - item - DatasetField = 'FECINI' - TableField = 'FECINI' - end - item - DatasetField = 'FECFIN' - TableField = 'FECFIN' - end - item - DatasetField = 'FECINF' - TableField = 'FECINF' - end - item - DatasetField = 'EANOFI' - TableField = 'EANOFI' - end - item - DatasetField = 'EANEMI' - TableField = 'EANEMI' - end - item - DatasetField = 'EANREC' - TableField = 'EANREC' - end - item - DatasetField = 'EANVEN' - TableField = 'EANVEN' - end - item - DatasetField = 'EANALM' - TableField = 'EANALM' - end - item - DatasetField = 'EANREP' - TableField = 'EANREP' - end - item - DatasetField = 'EANPRO' - TableField = 'EANPRO' - end - item - DatasetField = 'EANADMSA' - TableField = 'EANADMSA' - end - item - DatasetField = 'EANREPSR' - TableField = 'EANREPSR' - end - item - DatasetField = 'ADMVENSA' - TableField = 'ADMVENSA' - end - item - DatasetField = 'REPDEPSR' - TableField = 'REPDEPSR' - end - item - DatasetField = 'EMAILSA' - TableField = 'EMAILSA' - end - item - DatasetField = 'NUMFAXSA' - TableField = 'NUMFAXSA' - end - item - DatasetField = 'NUMTELSA' - TableField = 'NUMTELSA' - end - item - DatasetField = 'NUMTLXSA' - TableField = 'NUMTLXSA' - end - item - DatasetField = 'X400SA' - TableField = 'X400SA' - end - item - DatasetField = 'EMAILSR' - TableField = 'EMAILSR' - end - item - DatasetField = 'NUMFAXSR' - TableField = 'NUMFAXSR' - end - item - DatasetField = 'NUMTELSR' - TableField = 'NUMTELSR' - end - item - DatasetField = 'NUMTLXSR' - TableField = 'NUMTLXSR' - end - item - DatasetField = 'X400SR' - TableField = 'X400SR' - end - item - DatasetField = 'NUMPRE' - TableField = 'NUMPRE' - end - item - DatasetField = 'NUMINFSC' - TableField = 'NUMINFSC' - end - item - DatasetField = 'NUMCON' - TableField = 'NUMCON' - end - item - DatasetField = 'FECPRE' - TableField = 'FECPRE' - end - item - DatasetField = 'FECINFSC' - TableField = 'FECINFSC' - end - item - DatasetField = 'FECCON' - TableField = 'FECCON' - end - item - DatasetField = 'DIVPED' - TableField = 'DIVPED' - end - item - DatasetField = 'DIVPRE' - TableField = 'DIVPRE' - end - item - DatasetField = 'DIVPAG' - TableField = 'DIVPAG' - end - item - DatasetField = 'DIVPEDF' - TableField = 'DIVPEDF' - end - item - DatasetField = 'DIVPREF' - TableField = 'DIVPREF' - end - item - DatasetField = 'DIVPAGF' - TableField = 'DIVPAGF' - end - item - DatasetField = 'TASCAM' - TableField = 'TASCAM' - end - item - DatasetField = 'FECTAS' - TableField = 'FECTAS' - end - item - DatasetField = 'PERVENINI' - TableField = 'PERVENINI' - end - item - DatasetField = 'PERVENFIN' - TableField = 'PERVENFIN' - end - item - DatasetField = 'FECHA_CARGA' - TableField = 'FECHA_CARGA' - end> - end> - Name = 'RDX_CABVEN' - Fields = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FUNCION' - DataType = datString - Size = 10 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECINI' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECFIN' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECINF' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PERVENINI' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PERVENFIN' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANOFI' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANEMI' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANREC' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANVEN' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANALM' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANREP' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANPRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANADMSA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANREPSR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ADMVENSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'REPDEPSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EMAILSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMFAXSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTELSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTLXSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'X400SA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EMAILSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMFAXSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTELSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMTLXSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'X400SR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMPRE' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMINFSC' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NUMCON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECPRE' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECINFSC' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECCON' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPED' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPRE' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPAG' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPEDF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPREF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DIVPAGF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'TASCAM' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECTAS' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECHA_CARGA' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end - item - Params = <> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LUGVEN' - SQL = - 'SELECT '#10' CLAVE1, CLAVE2, EANLUG, LUGVEN, FECINI, FECFIN, PERV' + - 'ENINI, '#10' PERVENFIN'#10' FROM'#10' RDX_LUGVEN' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'CLAVE1' - TableField = 'CLAVE1' - end - item - DatasetField = 'CLAVE2' - TableField = 'CLAVE2' - end - item - DatasetField = 'EANLUG' - TableField = 'EANLUG' - end - item - DatasetField = 'LUGVEN' - TableField = 'LUGVEN' - end - item - DatasetField = 'FECINI' - TableField = 'FECINI' - end - item - DatasetField = 'FECFIN' - TableField = 'FECFIN' - end - item - DatasetField = 'PERVENINI' - TableField = 'PERVENINI' - end - item - DatasetField = 'PERVENFIN' - TableField = 'PERVENFIN' - end> - end> - Name = 'RDX_LUGVEN' - Fields = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CLAVE2' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'EANLUG' - DataType = datString - Size = 17 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'LUGVEN' - DataType = datString - Size = 70 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECINI' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'FECFIN' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PERVENINI' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PERVENFIN' - DataType = datDateTime - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'RETURN_VALUE' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptResult - end> - Statements = < - item - Connection = 'GFT_VARELA' - SQL = 'RDX_P_CARGAR_VENTASEDI' - StatementType = stStoredProcedure - ColumnMappings = <> - end> - Name = 'RDX_P_CARGAR_VENTASEDI' - end - item - Params = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMINF' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FUNCION' - DataType = datString - Size = 10 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECINI' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECFIN' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECINF' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANOFI' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANEMI' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANREC' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANVEN' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANALM' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANREP' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANPRO' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANADMSA' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANREPSR' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ADMVENSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'REPDEPSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EMAILSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMFAXSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMTELSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMTLXSA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'X400SA' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EMAILSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMFAXSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMTELSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMTLXSR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'X400SR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMPRE' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMINFSC' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMCON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECPRE' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECINFSC' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECCON' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPED' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPRE' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPAG' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPEDF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPREF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DIVPAGF' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'TASCAM' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECTAS' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PERVENINI' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PERVENFIN' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECHA_CARGA' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_CABVEN' - SQL = - 'INSERT'#10' INTO RDX_CABVEN'#10' (CLAVE1, NUMINF, FUNCION, FECINI, F' + - 'ECFIN, FECINF, EANOFI, '#10' EANEMI, EANREC, EANVEN, EANALM, EAN' + - 'REP, EANPRO, EANADMSA, '#10' EANREPSR, ADMVENSA, REPDEPSR, EMAIL' + - 'SA, NUMFAXSA, NUMTELSA, '#10' NUMTLXSA, X400SA, EMAILSR, NUMFAXS' + - 'R, NUMTELSR, NUMTLXSR, '#10' X400SR, NUMPRE, NUMINFSC, NUMCON, F' + - 'ECPRE, FECINFSC, '#10' FECCON, DIVPED, DIVPRE, DIVPAG, DIVPEDF, ' + - 'DIVPREF, DIVPAGF, '#10' TASCAM, FECTAS, PERVENINI, PERVENFIN, FE' + - 'CHA_CARGA)'#10' VALUES'#10' (:CLAVE1, :NUMINF, :FUNCION, :FECINI, :F' + - 'ECFIN, :FECINF, '#10' :EANOFI, :EANEMI, :EANREC, :EANVEN, :EANAL' + - 'M, :EANREP, '#10' :EANPRO, :EANADMSA, :EANREPSR, :ADMVENSA, :REP' + - 'DEPSR, '#10' :EMAILSA, :NUMFAXSA, :NUMTELSA, :NUMTLXSA, :X400SA,' + - ' '#10' :EMAILSR, :NUMFAXSR, :NUMTELSR, :NUMTLXSR, :X400SR, '#10' ' + - ' :NUMPRE, :NUMINFSC, :NUMCON, :FECPRE, :FECINFSC, :FECCON, '#10' ' + - ' :DIVPED, :DIVPRE, :DIVPAG, :DIVPEDF, :DIVPREF, :DIVPAGF, '#10' ' + - ':TASCAM, :FECTAS, :PERVENINI, :PERVENFIN, CURRENT_TIMESTAMP)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_CABVEN' - end - item - Params = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANLUG' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'LUGVEN' - DataType = datString - Size = 70 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECINI' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'FECFIN' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PERVENINI' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PERVENFIN' - DataType = datDateTime - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_LUGVEN' - SQL = - 'INSERT'#10' INTO RDX_LUGVEN'#10' (CLAVE1, CLAVE2, EANLUG, LUGVEN, FE' + - 'CINI, FECFIN, PERVENINI, '#10' PERVENFIN)'#10' VALUES'#10' (:CLAVE1,' + - ' :CLAVE2, :EANLUG, :LUGVEN, :FECINI, :FECFIN, '#10' :PERVENINI, ' + - ':PERVENFIN)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_LUGVEN' - end - item - Params = < - item - Name = 'CLAVE1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CLAVE3' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANART' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODCOM' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMVAR' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CODPRO' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESARTCO' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESART' - DataType = datString - Size = 70 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMCON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMLIS' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CONESP1' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CONESP2' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CONESP3' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VALVEN' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PRENETCT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREBRUCT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREINFET' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREINFFT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PRECALCT' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PRENETCA' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREBRUCA' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREINFEA' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PREINFFA' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'PRECALCA' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BAPRUN1' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UNIMED1' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BAPRUN2' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UNIMED2' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BAPRUN3' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UNIMED3' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BAPRUN4' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UNIMED4' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'BAPRUN5' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UNIMED5' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CANVEN' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EXIPRO' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESEXI' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ESPMEDCV' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ESPMEDEP' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ESPMEDDE' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CANDEV' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'EANVEN' - DataType = datString - Size = 17 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NOMVEN' - DataType = datString - Size = 70 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NUMTALON' - DataType = datString - Size = 35 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CANVENNET' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UMEDVENNET' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'CANESP' - DataType = datFloat - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'UMEDESP' - DataType = datString - Size = 3 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_ARTVEN' - SQL = - 'INSERT'#10' INTO RDX_ARTVEN'#10' (CLAVE1, CLAVE2, CLAVE3, EANART, CO' + - 'DCOM, NUMVAR, CODPRO, '#10' DESARTCO, DESART, NUMCON, NUMLIS, CO' + - 'NESP1, CONESP2, '#10' CONESP3, VALVEN, PRENETCT, PREBRUCT, PREIN' + - 'FET, PREINFFT, '#10' PRECALCT, PRENETCA, PREBRUCA, PREINFEA, PRE' + - 'INFFA, PRECALCA, '#10' BAPRUN1, UNIMED1, BAPRUN2, UNIMED2, BAPRU' + - 'N3, UNIMED3, '#10' BAPRUN4, UNIMED4, BAPRUN5, UNIMED5, CANVEN, E' + - 'XIPRO, '#10' DESEXI, ESPMEDCV, ESPMEDEP, ESPMEDDE, CANDEV, EANVE' + - 'N, '#10' NOMVEN, NUMTALON, CANVENNET, UMEDVENNET, CANESP, UMEDES' + - 'P)'#10' VALUES'#10' (:CLAVE1, :CLAVE2, :CLAVE3, :EANART, :CODCOM, :N' + - 'UMVAR, '#10' :CODPRO, :DESARTCO, :DESART, :NUMCON, :NUMLIS, :CON' + - 'ESP1, '#10' :CONESP2, :CONESP3, :VALVEN, :PRENETCT, :PREBRUCT, '#10 + - ' :PREINFET, :PREINFFT, :PRECALCT, :PRENETCA, :PREBRUCA, '#10' ' + - ' :PREINFEA, :PREINFFA, :PRECALCA, :BAPRUN1, :UNIMED1, '#10' :BA' + - 'PRUN2, :UNIMED2, :BAPRUN3, :UNIMED3, :BAPRUN4, :UNIMED4, '#10' :' + - 'BAPRUN5, :UNIMED5, :CANVEN, :EXIPRO, :DESEXI, :ESPMEDCV, '#10' :' + - 'ESPMEDEP, :ESPMEDDE, :CANDEV, :EANVEN, :NOMVEN, :NUMTALON, '#10' ' + - ' :CANVENNET, :UMEDVENNET, :CANESP, :UMEDESP)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_RDX_ARTVEN' - end> - RelationShips = < - item - Name = 'FK_RDX_LUGVEN_RDX_CABVEN' - MasterDatasetName = 'RDX_CABVEN' - MasterFields = 'CLAVE1' - DetailDatasetName = 'RDX_LUGVEN' - DetailFields = 'CLAVE1' - RelationshipType = rtForeignKey - end - item - Name = 'FK_RDX_ARTVEN_RDX_LUGVEN' - MasterDatasetName = 'RDX_LUGVEN' - MasterFields = 'CLAVE1;CLAVE2' - DetailDatasetName = 'RDX_ARTVEN' - DetailFields = 'CLAVE1;CLAVE2' - RelationshipType = rtForeignKey - end> - UpdateRules = < - item - Name = 'Insert RDX_CABVEN' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_CABVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Insert RDX_LUGVEN' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_LUGVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Insert RDX_ARTVEN' - DoUpdate = False - DoInsert = True - DoDelete = False - DatasetName = 'RDX_ARTVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_CABVEN' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_CABVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_LUGVEN' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_LUGVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Update RDX_ARTVEN' - DoUpdate = True - DoInsert = False - DoDelete = False - DatasetName = 'RDX_ARTVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_ARTVEN' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_ARTVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_LUGVEN' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_LUGVEN' - FailureBehavior = fbRaiseException - end - item - Name = 'Delete RDX_CABVEN' - DoUpdate = False - DoInsert = False - DoDelete = True - DatasetName = 'RDX_CABVEN' - FailureBehavior = fbRaiseException - end> - Version = 0 - Left = 48 - Top = 16 - end -end diff --git a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas b/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas deleted file mode 100644 index 1208366..0000000 --- a/Varela/Varela/Source/Servidor/Services/EDI_Sales/uDataModuleEDI_Sales.pas +++ /dev/null @@ -1,483 +0,0 @@ -unit uDataModuleEDI_Sales; - -interface - -uses - SysUtils, Classes, uDAScriptingProvider, uDADataTable, uDACDSDataTable, - uBizEDISales, uDAEngine, uDAADODriver, uDABINAdapter, - uDABusinessProcessor, uDAClasses, EDI_Reader, JvComponentBase; - -type - TdmEDISales = class(TDataModule) - schEDISales: TDASchema; - private - function InsertarCabecera(const ACabData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - function InsertarLugares(const ALugData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - function InsertarArticulos(const AArtData : TEDIFileData; var NumRegNuevos : integer) : Boolean; - function GenerarVentasEDI: Boolean; - procedure InsertarLog(OK : Boolean; Error_msg : String = ''); - public - function CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; - const FicheroART: String; var NumRegNuevos: Integer ): Boolean; - end; - -var - dmEDISales: TdmEDISales; - -implementation - -uses - EDI_Sales_Impl, Controls, Forms, uDataTableUtils, EDI_SLSRPT, uDAInterfaces, - Dialogs, schEDISalesClient_Intf, uDataModuleServer, Variants, EDI_Utils, - VARELA_Intf, EDI_Log_Impl, DB; - -{$R *.dfm} - -{ TdmEDISales } - -function TdmEDISales.CargarFicheros(const FicheroCAB: String; const FicheroLUG: String; - const FicheroART: String; var NumRegNuevos: Integer ): Boolean; -var - Cab_Reader : TCABVEN_Reader; - Lug_Reader : TLUGVEN_Reader; - Art_Reader : TARTVEN_Reader; - - NumRegNuevosCab : Integer; - NumRegNuevosLug : Integer; - NumRegNuevosArt : Integer; -begin - Result := True; - - Cab_Reader := TCABVEN_Reader.Create; - try - Cab_Reader.Filename := FicheroCAB; - Cab_Reader.ReadFile; - Result := InsertarCabecera (Cab_Reader.FileData, NumRegNuevosCab); - finally - FreeAndNIL(Cab_Reader); - end; - - if Result then - begin - Lug_Reader := TLUGVEN_Reader.Create; - try - Lug_Reader.Filename := FicheroLUG; - Lug_Reader.ReadFile; - Result := InsertarLugares (Lug_Reader.FileData, NumRegNuevosLug); - finally - FreeAndNIL(Lug_Reader); - end; - - if Result then - begin - Art_Reader := TARTVEN_Reader.Create; - try - Art_Reader.Filename := FicheroART; - Art_Reader.ReadFile; - Result := InsertarArticulos(Art_Reader.FileData, NumRegNuevosArt); - finally - FreeAndNil(Art_Reader); - end; - end; - end; - - if Result then - begin - NumRegNuevos := NumRegNuevosArt; - Result := GenerarVentasEDI; - end; -end; - -function TdmEDISales.GenerarVentasEDI: Boolean; -var - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - ACommand := schEDISales.NewCommand(AConnection, 'RDX_P_CARGAR_VENTASEDI'); - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (GenerarVentasEDI)'); - end - end; -end; - -function TdmEDISales.InsertarArticulos(const AArtData: TEDIFileData; - var NumRegNuevos : integer): Boolean; -var - i : integer; - Registro : PARTVEN; - AuxStr : String; - AuxInt : Integer; - AuxNum : Double; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to AArtData.Count - 1 do - begin - Registro := AArtData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_ARTVEN'); - with ACommand do - begin - ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); - ParamByName('CLAVE2').AsFloat := StrToInt(Trim(Registro.CLAVE2)); - ParamByName('CLAVE3').AsFloat := StrToInt(Trim(Registro.CLAVE3)); - - ParamByName('EANART').AsString := Trim(Registro.EANART); - ParamByName('CODCOM').AsString := Trim(Registro.CODCOM); - ParamByName('NUMVAR').AsString := Trim(Registro.NUMVAR); - ParamByName('CODPRO').AsString := Trim(Registro.CODPRO); - ParamByName('DESARTCO').AsString := Trim(Registro.DESARTCO); - ParamByName('DESART').AsString := Trim(Registro.DESART); - ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); - ParamByName('NUMLIS').AsString := Trim(Registro.NUMLIS); - ParamByName('CONESP1').AsString := Trim(Registro.CONESP1); - ParamByName('CONESP2').AsString := Trim(Registro.CONESP2); - ParamByName('CONESP3').AsString := Trim(Registro.CONESP3); - - ParamByName('VALVEN').AsVariant := Null; - AuxStr := Trim(Registro.VALVEN); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('VALVEN').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PRENETCT').AsVariant := Null; - AuxStr := Trim(Registro.PRENETCT); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PRENETCT').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREBRUCT').AsVariant := Null; - AuxStr := Trim(Registro.PREBRUCT); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREBRUCT').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREINFET').AsVariant := Null; - AuxStr := Trim(Registro.PREINFET); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREINFET').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREINFFT').AsVariant := Null; - AuxStr := Trim(Registro.PREINFFT); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREINFFT').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PRECALCT').AsVariant := Null; - AuxStr := Trim(Registro.PRECALCT); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PRECALCT').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PRENETCA').AsVariant := Null; - AuxStr := Trim(Registro.PRENETCA); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PRENETCA').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREBRUCA').AsVariant := Null; - AuxStr := Trim(Registro.PREBRUCA); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREBRUCA').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREINFEA').AsVariant := Null; - AuxStr := Trim(Registro.PREINFEA); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREINFEA').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PREINFFA').AsVariant := Null; - AuxStr := Trim(Registro.PREINFFA); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PREINFFA').AsFloat := AuxNum/1000; //N(15,3) - - ParamByName('PRECALCA').AsVariant := Null; - AuxStr := Trim(Registro.PRECALCA); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('PRECALCA').AsFloat := AuxNum/1000; //N(15,3) - - - ParamByName('BAPRUN1').AsVariant := Null; - AuxStr := Trim(Registro.BAPRUN1); - if TryStrToInt (AuxStr, AuxInt) then - ParamByName('BAPRUN1').AsInteger := AuxInt; - ParamByName('UNIMED1').AsString := Trim(Registro.UNIMED1); - - ParamByName('BAPRUN2').AsVariant := Null; - AuxStr := Trim(Registro.BAPRUN2); - if TryStrToInt (AuxStr, AuxInt) then - ParamByName('BAPRUN2').AsInteger := AuxInt; - ParamByName('UNIMED2').AsString := Trim(Registro.UNIMED2); - - ParamByName('BAPRUN3').AsVariant := Null; - AuxStr := Trim(Registro.BAPRUN3); - if TryStrToInt (AuxStr, AuxInt) then - ParamByName('BAPRUN3').AsInteger := AuxInt; - ParamByName('UNIMED3').AsString := Trim(Registro.UNIMED3); - - ParamByName('BAPRUN4').AsVariant := Null; - AuxStr := Trim(Registro.BAPRUN4); - if TryStrToInt (AuxStr, AuxInt) then - ParamByName('BAPRUN4').AsInteger := AuxInt; - ParamByName('UNIMED4').AsString := Trim(Registro.UNIMED4); - - ParamByName('BAPRUN5').AsVariant := Null; - AuxStr := Trim(Registro.BAPRUN5); - if TryStrToInt (AuxStr, AuxInt) then - ParamByName('BAPRUN5').AsInteger := AuxInt; - ParamByName('UNIMED5').AsString := Trim(Registro.UNIMED5); - - ParamByName('CANVEN').AsVariant := Null; - AuxStr := Trim(Registro.CANVEN); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('CANVEN').AsFloat := AuxNum/1000; // N(15,3) - - ParamByName('EXIPRO').AsVariant := Null; - AuxStr := Trim(Registro.EXIPRO); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('EXIPRO').AsFloat := AuxNum/1000; // N(15,3) - - ParamByName('DESEXI').AsVariant := Null; - AuxStr := Trim(Registro.DESEXI); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('DESEXI').AsFloat := AuxNum/1000; // N(15,3) - - ParamByName('ESPMEDCV').AsString := Trim(Registro.ESPMEDCV); - ParamByName('ESPMEDEP').AsString := Trim(Registro.ESPMEDEP); - ParamByName('ESPMEDDE').AsString := Trim(Registro.ESPMEDDE); - - ParamByName('CANDEV').AsVariant := Null; - AuxStr := Trim(Registro.CANDEV); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('CANDEV').AsFloat := AuxNum/1000; // N(15,3) - - ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); - ParamByName('NOMVEN').AsString := Trim(Registro.NOMVEN); - ParamByName('NUMTALON').AsString := Trim(Registro.NUMTALON); - - ParamByName('CANVENNET').AsVariant := Null; - AuxStr := Trim(Registro.CANVENNET); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('CANVENNET').AsFloat := AuxNum/1000; // N(15,3) - ParamByName('UMEDVENNET').AsString := Trim(Registro.UMEDVENNET); - - ParamByName('CANESP').AsVariant := Null; - AuxStr := Trim(Registro.CANESP); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('CANESP').AsFloat := AuxNum/1000; // N(15,3) - ParamByName('UMEDESP').AsString := Trim(Registro.UMEDESP); - end; - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (InsertarArticulos SLS)'); - end - end; - end; //for -end; - -function TdmEDISales.InsertarCabecera(const ACabData: TEDIFileData; - var NumRegNuevos : integer): Boolean; -var - i : integer; - Registro : PCABVEN; - AuxStr : String; - AuxNum : Double; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to ACabData.Count - 1 do - begin - Registro := ACabData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_CABVEN'); - with ACommand do - begin - ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); - ParamByName('NUMINF').AsString := Trim(Registro.NUMINF); - ParamByName('FUNCION').AsString := Trim(Registro.FUNCION); - - ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); - ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); - ParamByName('FECINF').AsDateTime := EDIDateToDateF(Trim(Registro.FECINF)); - - ParamByName('PERVENINI').AsVariant := Null; - ParamByName('PERVENFIN').AsVariant := Null; - if Length(Trim(Registro.PERVEN)) = 16 then - begin - ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); - ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)); - end; - - ParamByName('EANOFI').AsString := Trim(Registro.EANOFI); - ParamByName('EANEMI').AsString := Trim(Registro.EANEMI); - ParamByName('EANREC').AsString := Trim(Registro.EANREC); - ParamByName('EANVEN').AsString := Trim(Registro.EANVEN); - ParamByName('EANALM').AsString := Trim(Registro.EANALM); - ParamByName('EANREP').AsString := Trim(Registro.EANREP); - ParamByName('EANPRO').AsString := Trim(Registro.EANPRO); - ParamByName('EANADMSA').AsString := Trim(Registro.EANADMSA); - ParamByName('EANREPSR').AsString := Trim(Registro.EANREPSR); - ParamByName('ADMVENSA').AsString := Trim(Registro.ADMVENSA); - ParamByName('REPDEPSR').AsString := Trim(Registro.REPDEPSR); - - ParamByName('EMAILSA').AsString := Trim(Registro.EMAILSA); - ParamByName('NUMFAXSA').AsString := Trim(Registro.NUMFAXSA); - ParamByName('NUMTELSA').AsString := Trim(Registro.NUMTELSA); - ParamByName('NUMTLXSA').AsString := Trim(Registro.NUMTLXSA); - ParamByName('X400SA').AsString := Trim(Registro.X400SA); - - ParamByName('EMAILSR').AsString := Trim(Registro.EMAILSR); - ParamByName('NUMFAXSR').AsString := Trim(Registro.NUMFAXSR); - ParamByName('NUMTELSR').AsString := Trim(Registro.NUMTELSR); - ParamByName('NUMTLXSR').AsString := Trim(Registro.NUMTLXSR); - ParamByName('X400SR').AsString := Trim(Registro.X400SR); - - ParamByName('NUMPRE').AsString := Trim(Registro.NUMPRE); - ParamByName('NUMINFSC').AsString := Trim(Registro.NUMINFSC); - ParamByName('NUMCON').AsString := Trim(Registro.NUMCON); - - ParamByName('FECPRE').AsDateTime := EDIDateToDateF(Trim(Registro.FECPRE)); - ParamByName('FECINFSC').AsDateTime := EDIDateToDateF(Trim(Registro.FECINFSC)); - ParamByName('FECCON').AsDateTime := EDIDateToDateF(Trim(Registro.FECCON)); - - ParamByName('DIVPED').AsString := Trim(Registro.DIVPED); - ParamByName('DIVPRE').AsString := Trim(Registro.DIVPRE); - ParamByName('DIVPAG').AsString := Trim(Registro.DIVPAG); - ParamByName('DIVPEDF').AsString := Trim(Registro.DIVPEDF); - ParamByName('DIVPREF').AsString := Trim(Registro.DIVPREF); - ParamByName('DIVPAGF').AsString := Trim(Registro.DIVPAGF); - - ParamByName('TASCAM').AsVariant := Null; - AuxStr := Trim(Registro.TASCAM); - if TryStrToFloat (AuxStr, AuxNum) then - ParamByName('TASCAM').AsFloat := AuxNum/1000; // N(15,3) - - ParamByName('FECTAS').AsDateTime := EDIDateToDateF(Trim(Registro.FECTAS)); - end; // with - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + ' (InsertarCabecera SLS)'); - end - end; - - end; //for -end; - - -procedure TdmEDISales.InsertarLog(OK: Boolean; Error_msg: String); -var - LogService : IEDI_Log; -begin - LogService := EDI_Log_Impl.TEDI_Log.Create(Self); - try - LogService.InsertarLog(Now, 'SLSRPT', OK, Error_msg); - finally - LogService := nil; - end; -end; - -function TdmEDISales.InsertarLugares(const ALugData: TEDIFileData; - var NumRegNuevos : integer): Boolean; -var - i : integer; - Registro : PLUGVEN; - ACommand: IDASQLCommand; - AConnection : IDAConnection; -begin - Result := False; - NumRegNuevos := 0; - AConnection := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionName); - - for i := 0 to ALugData.Count - 1 do - begin - Registro := ALugData[i]; - - if not Registro.REGISTRO_OK then - Continue; - - ACommand := schEDISales.NewCommand(AConnection, 'Insert_RDX_LUGVEN'); - with ACommand do - begin - ParamByName('CLAVE1').AsFloat := StrToFloat(Trim(Registro.CLAVE1)); - ParamByName('CLAVE2').AsInteger := StrToInt(Trim(Registro.CLAVE2)); - ParamByName('EANLUG').AsString := Trim(Registro.EANLUG); - ParamByName('LUGVEN').AsString := Trim(Registro.LUGVEN); - - ParamByName('FECINI').AsDateTime := EDIDateToDateF(Trim(Registro.FECINI)); - ParamByName('FECFIN').AsDateTime := EDIDateToDateF(Trim(Registro.FECFIN)); - - ParamByName('PERVENINI').AsVariant := Null; - ParamByName('PERVENFIN').AsVariant := Null; - if Length(Trim(Registro.PERVEN)) >= 8 then - begin - ParamByName('PERVENINI').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 0, 8)); - if Length(Trim(Registro.PERVEN)) = 16 then - ParamByName('PERVENFIN').AsDateTime := EDIDateToDateF(Copy(Trim(Registro.PERVEN), 9, 8)) - end - end; // with - - AConnection.BeginTransaction; - try - ACommand.Execute; - AConnection.CommitTransaction; - NumRegNuevos := NumRegNuevos + 1; - Result := True; - except - on E : Exception do - begin - AConnection.RollbackTransaction; - if Pos('PRIMARY KEY', E.Message) = 0 then - InsertarLog(False, e.Message + '(InsertarLugares SLS)'); - end - end; - end; //for -end; - - -initialization - dmEDISales := TdmEDISales.Create(nil); - -finalization - FreeAndNil(dmEDISales); - -end. - diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm deleted file mode 100644 index a3e035b..0000000 --- a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.dfm +++ /dev/null @@ -1,99 +0,0 @@ -object srvLogin: TsrvLogin - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schLogin - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 220 - Width = 339 - object schLogin: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = < - item - Name = 'USERID' - DataType = datString - BlobType = dabtUnknown - Value = 'zeus' - ParamType = daptInput - end - item - Name = 'PASSWORD' - DataType = datString - BlobType = dabtUnknown - Value = 'zvg' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'USUARIOS' - SQL = - 'SELECT'#10' CLAVE AS ID, PASSW AS PASS'#10' FROM'#10' USUARIOS'#10' WH' + - 'ERE CLAVE = :USERID AND'#10' PASSW = :PASSWORD;' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'CLAVE' - SQLOrigin = 'ID' - end - item - DatasetField = 'PASS' - TableField = 'PASSW' - SQLOrigin = 'PASS' - end> - end> - Name = 'GetLoginInfo' - Fields = < - item - Name = 'ID' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'PASS' - DataType = datString - Size = 12 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = <> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 56 - Top = 24 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 56 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas b/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas deleted file mode 100644 index 901804b..0000000 --- a/Varela/Varela/Source/Servidor/Services/Login/srvLogin_Impl.pas +++ /dev/null @@ -1,135 +0,0 @@ -unit srvLogin_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Required:} uRORemoteDataModule, uDAInterfaces, DARemoteService_Impl, DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDADataTable, uDABINAdapter, - uDADataStreamer; - -type - { TsrvLogin } - TsrvLogin = class(TDARemoteService, IsrvLogin) - DABINAdapter: TDABINAdapter; - schLogin: TDASchema; - private - protected - function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; - procedure Logout; - function UpdateUsers(const UsersDelta: Binary): Binary; - function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; - function Ping : Boolean; - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, Dialogs, IB, Variants; - - -procedure Create_srvLogin(out anInstance : IUnknown); -begin - anInstance := TsrvLogin.Create(NIL); -end; - -{ TsrvLogin } - -function TsrvLogin.Login(const UserID, Password: String; - out LoginInfo: TLoginInfo): Boolean; -var - dsUserInfo : IDADataset; -begin - LoginInfo := NIL; - Result := False; - - dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo'); - with dsUserInfo do - begin - ParamByName('UserID').AsString := UserID; - ParamByName('Password').AsString := Password; - Open; - end; - - //dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo', ['UserID', 'Password'], [UserID, Password]); - - if not (dsUserInfo.IsEmpty) then - try - Result := TRUE; - - // Packages the user information that will be sent back to the client. - // This information will be used in many places client-side and when issing service calls - // so it's good practice to cache it there - LoginInfo := TLoginInfo.Create; - FillROStruct(dsUserInfo, LoginInfo); - LoginInfo.UserID := UserID; - LoginInfo.SessionID := GUIDToString(Session.SessionID); - //LoginInfo.Roles.Add(VarToStr(dsUserInfo.FieldValues[3])); - - // Collects the privileges for this user as a comma separated list of strings -{ privs := Schema.NewDataset(Connection, ds_GetUserPrivileges, ['UserInc'], [LoginInfo.UserInc]); - - while not privs.EOF do begin - LoginInfo.Privileges := LoginInfo.Privileges+Trim(VarToStr(privs.FieldValues[0]))+','; - privs.Next; - end; - LoginInfo.Privileges := Copy(LoginInfo.Privileges,1,Length(LoginInfo.Privileges)-1); - - - // Stores all the information we retrieved in the current session since it might be - // necessary for other services} - Session.SaveStruct(LoginInfo); - except - FreeAndNIL(LoginInfo); - raise - end; -end; - -procedure TsrvLogin.Logout; -begin - DestroySession; -end; - -function TsrvLogin.Ping: Boolean; -begin - Result := True; -end; - -function TsrvLogin.SetUserPassword(const UserID, - NewPassword: String): Boolean; -var - dsCommand : IDASQLCommand; - i : Integer; -begin - Result := False; - dsCommand := schLogin.NewCommand(Connection, 'SetUserPassword'); - with dsCommand do - begin - ParamByName('UserID').AsString := UserID; - ParamByName('Password').AsString := NewPassword; - i := Execute; - end; - if i > 0 then - Result := True; -end; - -function TsrvLogin.UpdateUsers(const UsersDelta: Binary): Binary; -begin - // -end; - -initialization - TROClassFactory.Create('srvLogin', Create_srvLogin, TsrvLogin_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm deleted file mode 100644 index 51978be..0000000 --- a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.dfm +++ /dev/null @@ -1,6 +0,0 @@ -object srvTransfereciaFicheros: TsrvTransfereciaFicheros - OldCreateOrder = True - SessionManager = dmServer.SessionManager - Height = 292 - Width = 296 -end diff --git a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas b/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas deleted file mode 100644 index 5c48ec2..0000000 --- a/Varela/Varela/Source/Servidor/Services/TransferenciaFicheros/srvTransfereciaFicheros_Impl.pas +++ /dev/null @@ -1,104 +0,0 @@ -unit srvTransfereciaFicheros_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Required:} uRORemoteDataModule, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf; - -type - { TsrvTransfereciaFicheros } - TsrvTransfereciaFicheros = class(TRORemoteDataModule, IsrvTransfereciaFicheros) - private - function getFileDirectory: String; - protected - { IsrvTransfereciaFicheros methods } - procedure DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); - procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); - procedure UploadFinished(const Filename: String; const Filesize: Int64); - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer, - JclFileUtils; - -procedure Create_srvTransfereciaFicheros(out anInstance : IUnknown); -begin - anInstance := TsrvTransfereciaFicheros.Create(NIL); -end; - -{ srvTransfereciaFicheros } -procedure TsrvTransfereciaFicheros.DownloadSequence(const Filename: String; const Sequence: Integer; out Filedata: Binary; out Filesize: Int64); -const - Block: Integer = 65536; -var - Position: Int64; - MemStream: TFileStream; - localfilename:String; -begin - fileData := Binary.Create; - localfilename:=getFileDirectory+filename; - if not FileExists(localfilename) then exit; - MemStream:=TFileStream.Create(localfilename,fmopenRead); - try - FileSize := MemStream.Size; - Position := Block * (Sequence - 1); - if Position <= FileSize then begin - MemStream.Position := Position; - if Position + Block > FileSize then - fileData.CopyFrom(MemStream, FileSize - Position) - else - fileData.CopyFrom(MemStream, Block); - end; - finally - MemStream.Free; - end; -end; - -function TsrvTransfereciaFicheros.getFileDirectory: String; -begin - result := PathAddSeparator(dmServer.FDirEntrada); -end; - -procedure TsrvTransfereciaFicheros.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); -var - NewFile: TFileStream; - localfilename:String; -begin - Localfilename:= GetFileDirectory + Filename; - if isfirst and Fileexists(localfilename) then DeleteFile(localfilename); - if FileExists(localfilename) - then NewFile := TFileStream.Create(localfilename,fmOpenReadWrite) - else NewFile := TFileStream.Create(localfilename,fmCreate); - try - NewFile.Seek(0,soFromEnd); - filedata.SaveToStream(NewFile); - finally - NewFile.Free; - end; -end; - -procedure TsrvTransfereciaFicheros.UploadFinished(const Filename: String; const Filesize: Int64); -begin -// (EventRepository as IFileEvents_Writer).OnNewFileAvailable(Session.SessionID, Filename, Filesize); -end; - -initialization - TROClassFactory.Create('srvTransfereciaFicheros', Create_srvTransfereciaFicheros, TsrvTransfereciaFicheros_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/VARELA.RODL b/Varela/Varela/Source/Servidor/VARELA.RODL deleted file mode 100644 index 32036dc..0000000 --- a/Varela/Varela/Source/Servidor/VARELA.RODL +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Varela/Varela/Source/Servidor/VARELA_Intf.pas b/Varela/Varela/Source/Servidor/VARELA_Intf.pas deleted file mode 100644 index e80b443..0000000 --- a/Varela/Varela/Source/Servidor/VARELA_Intf.pas +++ /dev/null @@ -1,1079 +0,0 @@ -unit VARELA_Intf; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ Do not modify this unit manually, or your changes will be lost when this } -{ unit is regenerated the next time you compile the project. } -{----------------------------------------------------------------------------} - -{$I Remobjects.inc} - -interface - -uses - {vcl:} Classes, TypInfo, - {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, - {Used RODLs:} DataAbstract3_Intf; - -const - { Library ID } - LibraryUID = '{AD45905A-2C7F-4295-A913-3D4F93CE82CF}'; - TargetNamespace = ''; - - { Service Interface ID's } - IEDI_Inventary_IID : TGUID = '{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'; - IEDI_Sales_IID : TGUID = '{A9A65D73-350D-4530-AF81-FF69845C6B61}'; - IsrvLogin_IID : TGUID = '{6B132AE4-D45F-4AE8-8215-E95789358329}'; - IsrvVentasTerminadas_IID : TGUID = '{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'; - IsrvInformes_IID : TGUID = '{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'; - IsrvTransfereciaFicheros_IID : TGUID = '{2A7AFE06-0600-46ED-9B7A-C694A1191311}'; - IsrvControles_IID : TGUID = '{A0C11144-A1B7-408D-BA07-63565D587662}'; - IsrvVentasEnProceso_IID : TGUID = '{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'; - IEDI_Log_IID : TGUID = '{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'; - IsrvReferenciaGenerica_IID : TGUID = '{994518CC-96BD-4976-ABC6-9B421A4B65D3}'; - IsrvRecepciones_IID : TGUID = '{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'; - IsrvDevoluciones_IID : TGUID = '{87C31D12-C353-437F-A7A3-10882373AB54}'; - IsrvTraspasos_IID : TGUID = '{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'; - IsrvStock_IID : TGUID = '{F617B727-5B8B-4645-BBB2-3D645AB31981}'; - IsrvParametros_IID : TGUID = '{E5177628-952A-4217-80C0-36F59E423EC4}'; - - { Event ID's } - -type - { Forward declarations } - IEDI_Inventary = interface; - IEDI_Sales = interface; - IsrvLogin = interface; - IsrvVentasTerminadas = interface; - IsrvInformes = interface; - IsrvTransfereciaFicheros = interface; - IsrvControles = interface; - IsrvVentasEnProceso = interface; - IEDI_Log = interface; - IsrvReferenciaGenerica = interface; - IsrvRecepciones = interface; - IsrvDevoluciones = interface; - IsrvTraspasos = interface; - IsrvStock = interface; - IsrvParametros = interface; - - - TLoginInfo = class; - - - { TLoginInfo } - TLoginInfo = class(TDALoginInfo) - private - fRoles: TDAStringArray; - function GetRoles: TDAStringArray; - public - procedure Assign(iSource: TPersistent); override; - procedure ReadComplex(ASerializer: TObject); override; - procedure WriteComplex(ASerializer: TObject); override; - published - property Roles:TDAStringArray read GetRoles write fRoles; - end; - - { TLoginInfoCollection } - TLoginInfoCollection = class(TDALoginInfoCollection) - protected - constructor Create(aItemClass: TCollectionItemClass); overload; - function GetItems(aIndex: integer): TLoginInfo; - procedure SetItems(aIndex: integer; const Value: TLoginInfo); - public - constructor Create; overload; - function Add: TLoginInfo; reintroduce; - property Items[Index: integer]:TLoginInfo read GetItems write SetItems; default; - end; - - { IEDI_Inventary } - IEDI_Inventary = interface(IDARemoteService) - ['{079CAD81-712F-48D0-ACD9-3677BBB9B2AD}'] - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; - end; - - { CoEDI_Inventary } - CoEDI_Inventary = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; - end; - - { TEDI_Inventary_Proxy } - TEDI_Inventary_Proxy = class(TDARemoteService_Proxy, IEDI_Inventary) - protected - function __GetInterfaceName:string; override; - - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; - end; - - { IEDI_Sales } - IEDI_Sales = interface(IDARemoteService) - ['{A9A65D73-350D-4530-AF81-FF69845C6B61}'] - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; - end; - - { CoEDI_Sales } - CoEDI_Sales = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; - end; - - { TEDI_Sales_Proxy } - TEDI_Sales_Proxy = class(TDARemoteService_Proxy, IEDI_Sales) - protected - function __GetInterfaceName:string; override; - - function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; - end; - - { IsrvLogin } - IsrvLogin = interface - ['{6B132AE4-D45F-4AE8-8215-E95789358329}'] - function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; - procedure Logout; - function Ping: Boolean; - function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; - function UpdateUsers(const UsersDelta: Binary): Binary; - end; - - { CosrvLogin } - CosrvLogin = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; - end; - - { TsrvLogin_Proxy } - TsrvLogin_Proxy = class(TROProxy, IsrvLogin) - protected - function __GetInterfaceName:string; override; - - function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; - procedure Logout; - function Ping: Boolean; - function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; - function UpdateUsers(const UsersDelta: Binary): Binary; - end; - - { IsrvVentasTerminadas } - IsrvVentasTerminadas = interface(IDARemoteService) - ['{755D5EC4-06FD-4C26-BCD1-5C8F112B18A1}'] - function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - end; - - { CosrvVentasTerminadas } - CosrvVentasTerminadas = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; - end; - - { TsrvVentasTerminadas_Proxy } - TsrvVentasTerminadas_Proxy = class(TDARemoteService_Proxy, IsrvVentasTerminadas) - protected - function __GetInterfaceName:string; override; - - function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; - end; - - { IsrvInformes } - IsrvInformes = interface(IDARemoteService) - ['{78BEEBFF-E26F-48BB-82AF-F8D09A47E446}'] - end; - - { CosrvInformes } - CosrvInformes = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; - end; - - { TsrvInformes_Proxy } - TsrvInformes_Proxy = class(TDARemoteService_Proxy, IsrvInformes) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvTransfereciaFicheros } - IsrvTransfereciaFicheros = interface - ['{2A7AFE06-0600-46ED-9B7A-C694A1191311}'] - procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); - procedure UploadFinished(const Filename: String; const Filesize: Int64); - end; - - { CosrvTransfereciaFicheros } - CosrvTransfereciaFicheros = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; - end; - - { TsrvTransfereciaFicheros_Proxy } - TsrvTransfereciaFicheros_Proxy = class(TROProxy, IsrvTransfereciaFicheros) - protected - function __GetInterfaceName:string; override; - - procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); - procedure UploadFinished(const Filename: String; const Filesize: Int64); - end; - - { IsrvControles } - IsrvControles = interface(IDARemoteService) - ['{A0C11144-A1B7-408D-BA07-63565D587662}'] - end; - - { CosrvControles } - CosrvControles = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; - end; - - { TsrvControles_Proxy } - TsrvControles_Proxy = class(TDARemoteService_Proxy, IsrvControles) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvVentasEnProceso } - IsrvVentasEnProceso = interface(IDARemoteService) - ['{1ADA4BDF-C8B6-4CD7-910B-EDB44C10ABDB}'] - function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - end; - - { CosrvVentasEnProceso } - CosrvVentasEnProceso = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; - end; - - { TsrvVentasEnProceso_Proxy } - TsrvVentasEnProceso_Proxy = class(TDARemoteService_Proxy, IsrvVentasEnProceso) - protected - function __GetInterfaceName:string; override; - - function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; - function GetSchema(const DatasetName: String; const Columns: String): Binary; - end; - - { IEDI_Log } - IEDI_Log = interface(IDARemoteService) - ['{F4EBB9F5-A0CC-4AF7-8B81-98ED00FA95B1}'] - procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); - end; - - { CoEDI_Log } - CoEDI_Log = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; - end; - - { TEDI_Log_Proxy } - TEDI_Log_Proxy = class(TDARemoteService_Proxy, IEDI_Log) - protected - function __GetInterfaceName:string; override; - - procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); - end; - - { IsrvReferenciaGenerica } - IsrvReferenciaGenerica = interface(IDARemoteService) - ['{994518CC-96BD-4976-ABC6-9B421A4B65D3}'] - function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; - function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; - procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); - end; - - { CosrvReferenciaGenerica } - CosrvReferenciaGenerica = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; - end; - - { TsrvReferenciaGenerica_Proxy } - TsrvReferenciaGenerica_Proxy = class(TDARemoteService_Proxy, IsrvReferenciaGenerica) - protected - function __GetInterfaceName:string; override; - - function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; - function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; - procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); - end; - - { IsrvRecepciones } - IsrvRecepciones = interface(IDARemoteService) - ['{02EB4B9C-155E-477C-AE2D-3E73B7846AB3}'] - end; - - { CosrvRecepciones } - CosrvRecepciones = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; - end; - - { TsrvRecepciones_Proxy } - TsrvRecepciones_Proxy = class(TDARemoteService_Proxy, IsrvRecepciones) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvDevoluciones } - IsrvDevoluciones = interface(IDARemoteService) - ['{87C31D12-C353-437F-A7A3-10882373AB54}'] - end; - - { CosrvDevoluciones } - CosrvDevoluciones = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; - end; - - { TsrvDevoluciones_Proxy } - TsrvDevoluciones_Proxy = class(TDARemoteService_Proxy, IsrvDevoluciones) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvTraspasos } - IsrvTraspasos = interface(IDARemoteService) - ['{47DA82A0-51AD-477A-85B3-CE9EEAAB29D6}'] - end; - - { CosrvTraspasos } - CosrvTraspasos = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; - end; - - { TsrvTraspasos_Proxy } - TsrvTraspasos_Proxy = class(TDARemoteService_Proxy, IsrvTraspasos) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvStock } - IsrvStock = interface(IDARemoteService) - ['{F617B727-5B8B-4645-BBB2-3D645AB31981}'] - end; - - { CosrvStock } - CosrvStock = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; - end; - - { TsrvStock_Proxy } - TsrvStock_Proxy = class(TDARemoteService_Proxy, IsrvStock) - protected - function __GetInterfaceName:string; override; - - end; - - { IsrvParametros } - IsrvParametros = interface(IDARemoteService) - ['{E5177628-952A-4217-80C0-36F59E423EC4}'] - end; - - { CosrvParametros } - CosrvParametros = class - class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; - end; - - { TsrvParametros_Proxy } - TsrvParametros_Proxy = class(TDARemoteService_Proxy, IsrvParametros) - protected - function __GetInterfaceName:string; override; - - end; - -implementation - -uses - {vcl:} SysUtils, - {RemObjects:} uROEventRepository, uROSerializer, uRORes; - -{ TLoginInfo } - -procedure TLoginInfo.Assign(iSource: TPersistent); -var lSource: VARELA_Intf.TLoginInfo; -begin - inherited Assign(iSource); - if (iSource is VARELA_Intf.TLoginInfo) then begin - lSource := VARELA_Intf.TLoginInfo(iSource); - Roles.Assign(lSource.Roles); - end; -end; - -function TLoginInfo.GetRoles: TDAStringArray; -begin - if (fRoles = nil) then fRoles := TDAStringArray.Create(); - result := fRoles; -end; - -procedure TLoginInfo.ReadComplex(ASerializer: TObject); -var - l_Attributes: TDAStringArray; - l_Data: Binary; - l_Privileges: TDAStringArray; - l_Roles: TDAStringArray; - l_SessionID: String; - l_UserID: String; -begin - if TROSerializer(ASerializer).RecordStrictOrder then begin - inherited; - l_Roles := Roles; - TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); - if Roles <> l_Roles then Roles.Free; - Roles := l_Roles; - end - else begin - l_Attributes := Attributes; - TROSerializer(ASerializer).ReadArray('Attributes', TDAStringArray, l_Attributes); - if Attributes <> l_Attributes then Attributes.Free; - Attributes := l_Attributes; - l_Data := Data; - TROSerializer(ASerializer).ReadBinary('Data', l_Data); - if Data <> l_Data then Data.Free; - Data := l_Data; - l_Privileges := Privileges; - TROSerializer(ASerializer).ReadArray('Privileges', TDAStringArray, l_Privileges); - if Privileges <> l_Privileges then Privileges.Free; - Privileges := l_Privileges; - l_Roles := Roles; - TROSerializer(ASerializer).ReadArray('Roles', TDAStringArray, l_Roles); - if Roles <> l_Roles then Roles.Free; - Roles := l_Roles; - l_SessionID := SessionID; - TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID); - SessionID := l_SessionID; - l_UserID := UserID; - TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID); - UserID := l_UserID; - end; -end; - -procedure TLoginInfo.WriteComplex(ASerializer: TObject); -var - l_Attributes: TDAStringArray; - l_Data: Binary; - l_Privileges: TDAStringArray; - l_Roles: TDAStringArray; - l_SessionID: String; - l_UserID: String; -begin - if TROSerializer(ASerializer).RecordStrictOrder then begin - inherited; - l_Roles := Roles; - TROSerializer(ASerializer).WriteArray('Roles', l_Roles); - end - else begin - l_Attributes := Attributes; - TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes); - l_Data := Data; - TROSerializer(ASerializer).WriteBinary('Data', l_Data); - l_Privileges := Privileges; - TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges); - l_Roles := Roles; - TROSerializer(ASerializer).WriteArray('Roles', l_Roles); - l_SessionID := SessionID; - TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID); - l_UserID := UserID; - TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID); - end; -end; - -{ TLoginInfoCollection } -constructor TLoginInfoCollection.Create; -begin - inherited Create(TLoginInfo); -end; - -constructor TLoginInfoCollection.Create(aItemClass: TCollectionItemClass); -begin - inherited Create(aItemClass); -end; - -function TLoginInfoCollection.Add: TLoginInfo; -begin - result := TLoginInfo(inherited Add); -end; - -function TLoginInfoCollection.GetItems(aIndex: integer): TLoginInfo; -begin - result := TLoginInfo(inherited Items[aIndex]); -end; - -procedure TLoginInfoCollection.SetItems(aIndex: integer; const Value: TLoginInfo); -begin - TLoginInfo(inherited Items[aIndex]).Assign(Value); -end; - -{ CoEDI_Inventary } - -class function CoEDI_Inventary.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Inventary; -begin - result := TEDI_Inventary_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TEDI_Inventary_Proxy } - -function TEDI_Inventary_Proxy.__GetInterfaceName:string; -begin - result := 'EDI_Inventary'; -end; - -function TEDI_Inventary_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); - __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); - __Message.Write('FicheroLIN', TypeInfo(String), FicheroLIN, []); - __Message.Write('FicheroCANT', TypeInfo(String), FicheroCANT, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - __Message.Read('MsgError', TypeInfo(String), MsgError, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CoEDI_Sales } - -class function CoEDI_Sales.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Sales; -begin - result := TEDI_Sales_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TEDI_Sales_Proxy } - -function TEDI_Sales_Proxy.__GetInterfaceName:string; -begin - result := 'EDI_Sales'; -end; - -function TEDI_Sales_Proxy.CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'CargarFicheroEDI'); - __Message.Write('FicheroCAB', TypeInfo(String), FicheroCAB, []); - __Message.Write('FicheroLUG', TypeInfo(String), FicheroLUG, []); - __Message.Write('FicheroART', TypeInfo(String), FicheroART, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - __Message.Read('MsgError', TypeInfo(String), MsgError, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvLogin } - -class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin; -begin - result := TsrvLogin_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TsrvLogin_Proxy } - -function TsrvLogin_Proxy.__GetInterfaceName:string; -begin - result := 'srvLogin'; -end; - -function TsrvLogin_Proxy.Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; -begin - try - LoginInfo := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Login'); - __Message.Write('UserID', TypeInfo(String), UserID, []); - __Message.Write('Password', TypeInfo(String), Password, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - __Message.Read('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -procedure TsrvLogin_Proxy.Logout; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Logout'); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - finally - __Message.FreeStream; - end -end; - -function TsrvLogin_Proxy.Ping: Boolean; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'Ping'); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvLogin_Proxy.SetUserPassword(const UserID: String; const NewPassword: String): Boolean; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'SetUserPassword'); - __Message.Write('UserID', TypeInfo(String), UserID, []); - __Message.Write('NewPassword', TypeInfo(String), NewPassword, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvLogin_Proxy.UpdateUsers(const UsersDelta: Binary): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UpdateUsers'); - __Message.Write('UsersDelta', TypeInfo(Binary), UsersDelta, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvVentasTerminadas } - -class function CosrvVentasTerminadas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasTerminadas; -begin - result := TsrvVentasTerminadas_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TsrvVentasTerminadas_Proxy } - -function TsrvVentasTerminadas_Proxy.__GetInterfaceName:string; -begin - result := 'srvVentasTerminadas'; -end; - -function TsrvVentasTerminadas_Proxy.GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataEx'); - __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Write('Columns', TypeInfo(String), Columns, []); - __Message.Write('Params', TypeInfo(String), Params, []); - __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvVentasTerminadas_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); - __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Write('Columns', TypeInfo(String), Columns, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvVentasTerminadas_Proxy.GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetDataCrossTab'); - __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); - __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); - __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvVentasTerminadas_Proxy.GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchemaCrossTab'); - __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); - __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); - __Message.Write('Coleccion', TypeInfo(String), Coleccion, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvInformes } - -class function CosrvInformes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInformes; -begin - result := TsrvInformes_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvInformes_Proxy.__GetInterfaceName:string; -begin - result := 'srvInformes'; -end; - -{ CosrvTransfereciaFicheros } - -class function CosrvTransfereciaFicheros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTransfereciaFicheros; -begin - result := TsrvTransfereciaFicheros_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TsrvTransfereciaFicheros_Proxy } - -function TsrvTransfereciaFicheros_Proxy.__GetInterfaceName:string; -begin - result := 'srvTransfereciaFicheros'; -end; - -procedure TsrvTransfereciaFicheros_Proxy.UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadChunk'); - __Message.Write('IsFirst', TypeInfo(Boolean), IsFirst, []); - __Message.Write('Filename', TypeInfo(String), Filename, []); - __Message.Write('Filedata', TypeInfo(Binary), Filedata, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -procedure TsrvTransfereciaFicheros_Proxy.UploadFinished(const Filename: String; const Filesize: Int64); -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'UploadFinished'); - __Message.Write('Filename', TypeInfo(String), Filename, []); - __Message.Write('Filesize', TypeInfo(Int64), Filesize, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvControles } - -class function CosrvControles.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvControles; -begin - result := TsrvControles_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvControles_Proxy.__GetInterfaceName:string; -begin - result := 'srvControles'; -end; - -{ CosrvVentasEnProceso } - -class function CosrvVentasEnProceso.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvVentasEnProceso; -begin - result := TsrvVentasEnProceso_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TsrvVentasEnProceso_Proxy } - -function TsrvVentasEnProceso_Proxy.__GetInterfaceName:string; -begin - result := 'srvVentasEnProceso'; -end; - -function TsrvVentasEnProceso_Proxy.GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetData'); - __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Write('Columns', TypeInfo(String), Columns, []); - __Message.Write('Params', TypeInfo(String), Params, []); - __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvVentasEnProceso_Proxy.GetSchema(const DatasetName: String; const Columns: String): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetSchema'); - __Message.Write('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Write('Columns', TypeInfo(String), Columns, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CoEDI_Log } - -class function CoEDI_Log.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IEDI_Log; -begin - result := TEDI_Log_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TEDI_Log_Proxy } - -function TEDI_Log_Proxy.__GetInterfaceName:string; -begin - result := 'EDI_Log'; -end; - -procedure TEDI_Log_Proxy.InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'InsertarLog'); - __Message.Write('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); - __Message.Write('Report', TypeInfo(String), Report, []); - __Message.Write('OK', TypeInfo(Boolean), OK, []); - __Message.Write('Error_msg', TypeInfo(String), Error_msg, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvReferenciaGenerica } - -class function CosrvReferenciaGenerica.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferenciaGenerica; -begin - result := TsrvReferenciaGenerica_Proxy.Create(aMessage, aTransportChannel); -end; - -{ TsrvReferenciaGenerica_Proxy } - -function TsrvReferenciaGenerica_Proxy.__GetInterfaceName:string; -begin - result := 'srvReferenciaGenerica'; -end; - -function TsrvReferenciaGenerica_Proxy.GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GetProducto'); - __Message.Write('Codigo', TypeInfo(String), Codigo, []); - __Message.Write('Talla', TypeInfo(String), Talla, []); - __Message.Write('Color', TypeInfo(String), Color, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Boolean), result, []); - __Message.Read('CodigoBarras', TypeInfo(String), CodigoBarras, []); - __Message.Read('Descripcion', TypeInfo(String), Descripcion, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -function TsrvReferenciaGenerica_Proxy.GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; -begin - try - result := nil; - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'GenerateReport'); - __Message.Write('Centro', TypeInfo(String), Centro, []); - __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); - __Message.Write('Estado', TypeInfo(String), Estado, []); - __Message.Write('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - __Message.Read('Result', TypeInfo(Binary), result, []); - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -procedure TsrvReferenciaGenerica_Proxy.PasarProductosAEspera(const Centro: String; const Vendedor: String); -begin - try - __Message.InitializeRequestMessage(__TransportChannel, 'VARELA', __InterfaceName, 'PasarProductosAEspera'); - __Message.Write('Centro', TypeInfo(String), Centro, []); - __Message.Write('Vendedor', TypeInfo(String), Vendedor, []); - __Message.Finalize; - - __TransportChannel.Dispatch(__Message); - - finally - __Message.UnsetAttributes(__TransportChannel); - __Message.FreeStream; - end -end; - -{ CosrvRecepciones } - -class function CosrvRecepciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecepciones; -begin - result := TsrvRecepciones_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvRecepciones_Proxy.__GetInterfaceName:string; -begin - result := 'srvRecepciones'; -end; - -{ CosrvDevoluciones } - -class function CosrvDevoluciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvDevoluciones; -begin - result := TsrvDevoluciones_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvDevoluciones_Proxy.__GetInterfaceName:string; -begin - result := 'srvDevoluciones'; -end; - -{ CosrvTraspasos } - -class function CosrvTraspasos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTraspasos; -begin - result := TsrvTraspasos_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvTraspasos_Proxy.__GetInterfaceName:string; -begin - result := 'srvTraspasos'; -end; - -{ CosrvStock } - -class function CosrvStock.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvStock; -begin - result := TsrvStock_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvStock_Proxy.__GetInterfaceName:string; -begin - result := 'srvStock'; -end; - -{ CosrvParametros } - -class function CosrvParametros.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvParametros; -begin - result := TsrvParametros_Proxy.Create(aMessage, aTransportChannel); -end; - -function TsrvParametros_Proxy.__GetInterfaceName:string; -begin - result := 'srvParametros'; -end; - -initialization - RegisterROClass(TLoginInfo); - RegisterProxyClass(IEDI_Inventary_IID, TEDI_Inventary_Proxy); - RegisterProxyClass(IEDI_Sales_IID, TEDI_Sales_Proxy); - RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy); - RegisterProxyClass(IsrvVentasTerminadas_IID, TsrvVentasTerminadas_Proxy); - RegisterProxyClass(IsrvInformes_IID, TsrvInformes_Proxy); - RegisterProxyClass(IsrvTransfereciaFicheros_IID, TsrvTransfereciaFicheros_Proxy); - RegisterProxyClass(IsrvControles_IID, TsrvControles_Proxy); - RegisterProxyClass(IsrvVentasEnProceso_IID, TsrvVentasEnProceso_Proxy); - RegisterProxyClass(IEDI_Log_IID, TEDI_Log_Proxy); - RegisterProxyClass(IsrvReferenciaGenerica_IID, TsrvReferenciaGenerica_Proxy); - RegisterProxyClass(IsrvRecepciones_IID, TsrvRecepciones_Proxy); - RegisterProxyClass(IsrvDevoluciones_IID, TsrvDevoluciones_Proxy); - RegisterProxyClass(IsrvTraspasos_IID, TsrvTraspasos_Proxy); - RegisterProxyClass(IsrvStock_IID, TsrvStock_Proxy); - RegisterProxyClass(IsrvParametros_IID, TsrvParametros_Proxy); - - -finalization - UnregisterROClass(TLoginInfo); - UnregisterProxyClass(IEDI_Inventary_IID); - UnregisterProxyClass(IEDI_Sales_IID); - UnregisterProxyClass(IsrvLogin_IID); - UnregisterProxyClass(IsrvVentasTerminadas_IID); - UnregisterProxyClass(IsrvInformes_IID); - UnregisterProxyClass(IsrvTransfereciaFicheros_IID); - UnregisterProxyClass(IsrvControles_IID); - UnregisterProxyClass(IsrvVentasEnProceso_IID); - UnregisterProxyClass(IEDI_Log_IID); - UnregisterProxyClass(IsrvReferenciaGenerica_IID); - UnregisterProxyClass(IsrvRecepciones_IID); - UnregisterProxyClass(IsrvDevoluciones_IID); - UnregisterProxyClass(IsrvTraspasos_IID); - UnregisterProxyClass(IsrvStock_IID); - UnregisterProxyClass(IsrvParametros_IID); - -end. diff --git a/Varela/Varela/Source/Servidor/VARELA_Invk.pas b/Varela/Varela/Source/Servidor/VARELA_Invk.pas deleted file mode 100644 index 5bf9316..0000000 --- a/Varela/Varela/Source/Servidor/VARELA_Invk.pas +++ /dev/null @@ -1,707 +0,0 @@ -unit VARELA_Invk; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ Do not modify this unit manually, or your changes will be lost when this } -{ unit is regenerated the next time you compile the project. } -{----------------------------------------------------------------------------} - -{$I Remobjects.inc} - -interface - -uses - {vcl:} Classes, - {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf, - {Used RODL Intf's:} DataAbstract3_Intf, - {Used RODL Invk's:} DataAbstract3_Invk, - {Generated:} VARELA_Intf; - -type - {$M+} - TEDI_Inventary_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TEDI_Sales_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvLogin_Invoker = class(TROInvoker) - private - protected - published - procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvVentasTerminadas_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvInformes_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvTransfereciaFicheros_Invoker = class(TROInvoker) - private - protected - published - procedure Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvControles_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvVentasEnProceso_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TEDI_Log_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvReferenciaGenerica_Invoker = class(TDARemoteService_Invoker) - private - protected - published - procedure Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - procedure Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); - end; - {$M-} - - {$M+} - TsrvRecepciones_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvDevoluciones_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvTraspasos_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvStock_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - - {$M+} - TsrvParametros_Invoker = class(TDARemoteService_Invoker) - private - protected - published - end; - {$M-} - -implementation - -uses - {RemObjects:} uRORes, uROClient; - -{ TEDI_Inventary_Invoker } - -procedure TEDI_Inventary_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLIN: String; const FicheroCANT: String; out MsgError: String): Boolean; } -var - FicheroCAB: String; - FicheroLIN: String; - FicheroCANT: String; - MsgError: String; - lResult: Boolean; -begin - try - __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); - __Message.Read('FicheroLIN', TypeInfo(String), FicheroLIN, []); - __Message.Read('FicheroCANT', TypeInfo(String), FicheroCANT, []); - - lResult := (__Instance as IEDI_Inventary).CargarFicheroEDI(FicheroCAB, FicheroLIN, FicheroCANT, MsgError); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Inventary', 'CargarFicheroEDIResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Write('MsgError', TypeInfo(String), MsgError, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - end; -end; - -{ TEDI_Sales_Invoker } - -procedure TEDI_Sales_Invoker.Invoke_CargarFicheroEDI(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function CargarFicheroEDI(const FicheroCAB: String; const FicheroLUG: String; const FicheroART: String; out MsgError: String): Boolean; } -var - FicheroCAB: String; - FicheroLUG: String; - FicheroART: String; - MsgError: String; - lResult: Boolean; -begin - try - __Message.Read('FicheroCAB', TypeInfo(String), FicheroCAB, []); - __Message.Read('FicheroLUG', TypeInfo(String), FicheroLUG, []); - __Message.Read('FicheroART', TypeInfo(String), FicheroART, []); - - lResult := (__Instance as IEDI_Sales).CargarFicheroEDI(FicheroCAB, FicheroLUG, FicheroART, MsgError); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Sales', 'CargarFicheroEDIResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Write('MsgError', TypeInfo(String), MsgError, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - end; -end; - -{ TsrvLogin_Invoker } - -procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function Login(const UserID: String; const Password: String; out LoginInfo: TLoginInfo): Boolean; } -var - UserID: String; - Password: String; - LoginInfo: VARELA_Intf.TLoginInfo; - lResult: Boolean; - __lObjectDisposer: TROObjectDisposer; -begin - LoginInfo := nil; - try - __Message.Read('UserID', TypeInfo(String), UserID, []); - __Message.Read('Password', TypeInfo(String), Password, []); - - lResult := (__Instance as IsrvLogin).Login(UserID, Password, LoginInfo); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LoginResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Write('LoginInfo', TypeInfo(VARELA_Intf.TLoginInfo), LoginInfo, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(LoginInfo); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvLogin_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ procedure Logout; } -begin - try - (__Instance as IsrvLogin).Logout; - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'LogoutResponse'); - __Message.Finalize; - - __oResponseOptions := [roNoResponse]; - - finally - end; -end; - -procedure TsrvLogin_Invoker.Invoke_Ping(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function Ping: Boolean; } -var - lResult: Boolean; -begin - try - lResult := (__Instance as IsrvLogin).Ping; - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'PingResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - end; -end; - -procedure TsrvLogin_Invoker.Invoke_SetUserPassword(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function SetUserPassword(const UserID: String; const NewPassword: String): Boolean; } -var - UserID: String; - NewPassword: String; - lResult: Boolean; -begin - try - __Message.Read('UserID', TypeInfo(String), UserID, []); - __Message.Read('NewPassword', TypeInfo(String), NewPassword, []); - - lResult := (__Instance as IsrvLogin).SetUserPassword(UserID, NewPassword); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'SetUserPasswordResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - end; -end; - -procedure TsrvLogin_Invoker.Invoke_UpdateUsers(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function UpdateUsers(const UsersDelta: Binary): Binary; } -var - UsersDelta: Binary; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - UsersDelta := nil; - lResult := nil; - try - __Message.Read('UsersDelta', TypeInfo(Binary), UsersDelta, []); - - lResult := (__Instance as IsrvLogin).UpdateUsers(UsersDelta); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvLogin', 'UpdateUsersResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(UsersDelta); - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -{ TsrvVentasTerminadas_Invoker } - -procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } -var - DatasetName: String; - Columns: String; - Params: String; - MaxRecords: Integer; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Read('Columns', TypeInfo(String), Columns, []); - __Message.Read('Params', TypeInfo(String), Params, []); - __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); - - lResult := (__Instance as IsrvVentasTerminadas).GetDataEx(DatasetName, Columns, Params, MaxRecords); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataExResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } -var - DatasetName: String; - Columns: String; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Read('Columns', TypeInfo(String), Columns, []); - - lResult := (__Instance as IsrvVentasTerminadas).GetSchema(DatasetName, Columns); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvVentasTerminadas_Invoker.Invoke_GetDataCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } -var - FechaIni: String; - FechaFin: String; - Coleccion: String; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); - __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); - __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); - - lResult := (__Instance as IsrvVentasTerminadas).GetDataCrossTab(FechaIni, FechaFin, Coleccion); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetDataCrossTabResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvVentasTerminadas_Invoker.Invoke_GetSchemaCrossTab(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary; } -var - FechaIni: String; - FechaFin: String; - Coleccion: String; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); - __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); - __Message.Read('Coleccion', TypeInfo(String), Coleccion, []); - - lResult := (__Instance as IsrvVentasTerminadas).GetSchemaCrossTab(FechaIni, FechaFin, Coleccion); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasTerminadas', 'GetSchemaCrossTabResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -{ TsrvTransfereciaFicheros_Invoker } - -procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadChunk(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ procedure UploadChunk(const IsFirst: Boolean; const Filename: String; const Filedata: Binary); } -var - IsFirst: Boolean; - Filename: String; - Filedata: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - Filedata := nil; - try - __Message.Read('IsFirst', TypeInfo(Boolean), IsFirst, []); - __Message.Read('Filename', TypeInfo(String), Filename, []); - __Message.Read('Filedata', TypeInfo(Binary), Filedata, []); - - (__Instance as IsrvTransfereciaFicheros).UploadChunk(IsFirst, Filename, Filedata); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadChunkResponse'); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - __oResponseOptions := [roNoResponse]; - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(Filedata); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvTransfereciaFicheros_Invoker.Invoke_UploadFinished(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ procedure UploadFinished(const Filename: String; const Filesize: Int64); } -var - Filename: String; - Filesize: Int64; -begin - try - __Message.Read('Filename', TypeInfo(String), Filename, []); - __Message.Read('Filesize', TypeInfo(Int64), Filesize, []); - - (__Instance as IsrvTransfereciaFicheros).UploadFinished(Filename, Filesize); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvTransfereciaFicheros', 'UploadFinishedResponse'); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - __oResponseOptions := [roNoResponse]; - - finally - end; -end; - -{ TsrvVentasEnProceso_Invoker } - -procedure TsrvVentasEnProceso_Invoker.Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetData(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary; } -var - DatasetName: String; - Columns: String; - Params: String; - MaxRecords: Integer; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Read('Columns', TypeInfo(String), Columns, []); - __Message.Read('Params', TypeInfo(String), Params, []); - __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []); - - lResult := (__Instance as IsrvVentasEnProceso).GetData(DatasetName, Columns, Params, MaxRecords); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetDataResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvVentasEnProceso_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetSchema(const DatasetName: String; const Columns: String): Binary; } -var - DatasetName: String; - Columns: String; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('DatasetName', TypeInfo(String), DatasetName, []); - __Message.Read('Columns', TypeInfo(String), Columns, []); - - lResult := (__Instance as IsrvVentasEnProceso).GetSchema(DatasetName, Columns); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvVentasEnProceso', 'GetSchemaResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -{ TEDI_Log_Invoker } - -procedure TEDI_Log_Invoker.Invoke_InsertarLog(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ procedure InsertarLog(const Fecha: DateTime; const Report: String; const OK: Boolean; const Error_msg: String); } -var - Fecha: DateTime; - Report: String; - OK: Boolean; - Error_msg: String; -begin - try - __Message.Read('Fecha', TypeInfo(DateTime), Fecha, [paIsDateTime]); - __Message.Read('Report', TypeInfo(String), Report, []); - __Message.Read('OK', TypeInfo(Boolean), OK, []); - __Message.Read('Error_msg', TypeInfo(String), Error_msg, []); - - (__Instance as IEDI_Log).InsertarLog(Fecha, Report, OK, Error_msg); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'EDI_Log', 'InsertarLogResponse'); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - __oResponseOptions := [roNoResponse]; - - finally - end; -end; - -{ TsrvReferenciaGenerica_Invoker } - -procedure TsrvReferenciaGenerica_Invoker.Invoke_GetProducto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GetProducto(const Codigo: String; const Talla: String; const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean; } -var - Codigo: String; - Talla: String; - Color: String; - CodigoBarras: String; - Descripcion: String; - lResult: Boolean; -begin - try - __Message.Read('Codigo', TypeInfo(String), Codigo, []); - __Message.Read('Talla', TypeInfo(String), Talla, []); - __Message.Read('Color', TypeInfo(String), Color, []); - - lResult := (__Instance as IsrvReferenciaGenerica).GetProducto(Codigo, Talla, Color, CodigoBarras, Descripcion); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GetProductoResponse'); - __Message.Write('Result', TypeInfo(Boolean), lResult, []); - __Message.Write('CodigoBarras', TypeInfo(String), CodigoBarras, []); - __Message.Write('Descripcion', TypeInfo(String), Descripcion, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - end; -end; - -procedure TsrvReferenciaGenerica_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerateReport(const Centro: String; const Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary; } -var - Centro: String; - Vendedor: String; - Estado: String; - FiltroUsuario: String; - lResult: Binary; - __lObjectDisposer: TROObjectDisposer; -begin - lResult := nil; - try - __Message.Read('Centro', TypeInfo(String), Centro, []); - __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); - __Message.Read('Estado', TypeInfo(String), Estado, []); - __Message.Read('FiltroUsuario', TypeInfo(String), FiltroUsuario, []); - - lResult := (__Instance as IsrvReferenciaGenerica).GenerateReport(Centro, Vendedor, Estado, FiltroUsuario); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'GenerateReportResponse'); - __Message.Write('Result', TypeInfo(Binary), lResult, []); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - finally - __lObjectDisposer := TROObjectDisposer.Create(__Instance); - try - __lObjectDisposer.Add(lResult); - finally - __lObjectDisposer.Free(); - end; - end; -end; - -procedure TsrvReferenciaGenerica_Invoker.Invoke_PasarProductosAEspera(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ procedure PasarProductosAEspera(const Centro: String; const Vendedor: String); } -var - Centro: String; - Vendedor: String; -begin - try - __Message.Read('Centro', TypeInfo(String), Centro, []); - __Message.Read('Vendedor', TypeInfo(String), Vendedor, []); - - (__Instance as IsrvReferenciaGenerica).PasarProductosAEspera(Centro, Vendedor); - - __Message.InitializeResponseMessage(__Transport, 'VARELA', 'srvReferenciaGenerica', 'PasarProductosAEsperaResponse'); - __Message.Finalize; - __Message.UnsetAttributes(__Transport); - - __oResponseOptions := [roNoResponse]; - - finally - end; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc b/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc deleted file mode 100644 index e520ba1..0000000 --- a/Varela/Varela/Source/Servidor/cxVerticalGridD10.drc +++ /dev/null @@ -1,23 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -DESCRIPTION RCDATA -BEGIN - "\x52", "\x00", "\x65", "\x00", "\x6d", "\x00", "\x4f", "\x00", /* 0000: R.e.m.O. */ - "\x62", "\x00", "\x6a", "\x00", "\x65", "\x00", "\x63", "\x00", /* 0008: b.j.e.c. */ - "\x74", "\x00", "\x73", "\x00", "\x20", "\x00", "\x53", "\x00", /* 0010: t.s. .S. */ - "\x44", "\x00", "\x4b", "\x00", "\x20", "\x00", "\x2d", "\x00", /* 0018: D.K. .-. */ - "\x20", "\x00", "\x52", "\x00", "\x4f", "\x00", "\x44", "\x00", /* 0020: .R.O.D. */ - "\x58", "\x00", "\x53", "\x00", "\x6f", "\x00", "\x63", "\x00", /* 0028: X.S.o.c. */ - "\x6b", "\x00", "\x20", "\x00", "\x4c", "\x00", "\x69", "\x00", /* 0030: k. .L.i. */ - "\x62", "\x00", "\x72", "\x00", "\x61", "\x00", "\x72", "\x00", /* 0038: b.r.a.r. */ - "\x79", "\x00", "\x00", "\x00" /* 0040: y... */ -END - diff --git a/Varela/Varela/Source/Servidor/fServerForm.ddp b/Varela/Varela/Source/Servidor/fServerForm.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/fServerForm.dfm b/Varela/Varela/Source/Servidor/fServerForm.dfm deleted file mode 100644 index af1bd52..0000000 --- a/Varela/Varela/Source/Servidor/fServerForm.dfm +++ /dev/null @@ -1,1069 +0,0 @@ -object ServerForm: TServerForm - Left = 806 - Top = 611 - BorderStyle = bsDialog - Caption = 'Administrador de puntos de venta - Server' - ClientHeight = 255 - ClientWidth = 371 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object JvGradient1: TJvGradient - Left = 0 - Top = 57 - Width = 371 - Height = 4 - Align = alTop - StartColor = 2971346 - EndColor = 4828405 - end - object Memo1: TMemo - Left = 24 - Top = 72 - Width = 329 - Height = 129 - Lines.Strings = ( - 'Memo1') - ScrollBars = ssVertical - TabOrder = 0 - end - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 371 - Height = 57 - Align = alTop - BevelOuter = bvNone - TabOrder = 1 - object Image1: TImage - Left = 0 - Top = 0 - Width = 371 - Height = 57 - Align = alClient - Center = True - Picture.Data = { - 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF - F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A - 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC - FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA - FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 - A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 - 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 - EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 - 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD - FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 - F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF - EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 - F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 - 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 - 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 - 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 - 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED - F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 - 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 - CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F - 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C - 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 - A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 - 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 - ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 - 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 - 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 - 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E - 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F - 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 - E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C - 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 - D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 - AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 - B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 - 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 - 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 - 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E - AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 - 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 - 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 - 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 - 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 - 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 - 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 - 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B - 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD - 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 - F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 - 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 - 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A - C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E - 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 - 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 - 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A - 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 - 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 - 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 - 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 - 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 - D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 - 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 - E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C - 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E - 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 - 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 - 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D - 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A - 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B - 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 - 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB - 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 - 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 - 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 - 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA - D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 - 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 - 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 - 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 - 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 - 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 - 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 - B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B - 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 - 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB - 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B - 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE - A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC - EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B - 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 - 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 - 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C - 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 - A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 - 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 - 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 - 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F - 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B - 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 - 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 - 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F - 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB - 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D - F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 - 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 - 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C - 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 - 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 - 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F - A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 - 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 - BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 - 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 - 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 - BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 - 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B - D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B - A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A - 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 - 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 - 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 - 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 - 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 - 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A - D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 - DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 - 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 - 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 - 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE - 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 - 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B - 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E - 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 - 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 - 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 - 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 - 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 - CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 - 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 - 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E - 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 - 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 - E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA - AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 - BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 - 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 - 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 - 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B - B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD - D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C - 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 - 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 - AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F - 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C - F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 - 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E - 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 - 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 - 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B - 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 - 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA - BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE - EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 - DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 - 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 - BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 - 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 - 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 - 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 - F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 - 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E - 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF - 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 - 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C - 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 - 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 - 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 - 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF - 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 - 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 - 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 - 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 - 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 - 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA - 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB - 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA - AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 - 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E - 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 - 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E - 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 - CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C - 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 - 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 - 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 - 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C - 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 - 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 - D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 - ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 - 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF - 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 - 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 - A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E - 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A - 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 - 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 - 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 - 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 - 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 - 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 - B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 - 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF - 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A - 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 - 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 - B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 - 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 - 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 - 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 - 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA - D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 - 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A - D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA - 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 - DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 - 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 - 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA - 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 - 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 - 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 - 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 - A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C - 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B - 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C - 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 - 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC - 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A - 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC - 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 - 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 - 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 - 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D - 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 - 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 - 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B - B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F - 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 - A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 - 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B - 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 - ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 - 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E - ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 - 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 - 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 - 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 - EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D - 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F - 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA - B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 - F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E - 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 - 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 - 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 - 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C - 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 - 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 - F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 - 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C - D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 - 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 - 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 - 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D - CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 - 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C - B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D - 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 - A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F - 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 - 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C - 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C - 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 - 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 - 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 - 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C - 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 - E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 - 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 - 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 - B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 - 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F - 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 - C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 - 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F - 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 - A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 - DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 - ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA - A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC - B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E - 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F - 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 - E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 - 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E - C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C - 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B - A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 - EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB - 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F - 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 - 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B - B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 - 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E - 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 - B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F - 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 - 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D - 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E - 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C - CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B - 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A - 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 - BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 - FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 - CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD - BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 - F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 - D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 - 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE - 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D - D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D - 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 - 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 - 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 - 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 - 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 - AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 - 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E - D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B - 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 - D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 - 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF - 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 - E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 - 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 - 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E - E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E - E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 - 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 - CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 - 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 - 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 - 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 - 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 - 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 - DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 - 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 - 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 - 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF - FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A - 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 - 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E - 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 - 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 - AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 - A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 - 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C - 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 - 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 - 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE - CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 - 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 - 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 - 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 - 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 - C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB - 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 - 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 - 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 - 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 - DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 - DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B - 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E - E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 - AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E - 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 - 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 - 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC - A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA - 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 - AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC - 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 - 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 - C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 - 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE - 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 - 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 - 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 - 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 - 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 - B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 - 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 - CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A - 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 - 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A - 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 - E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 - 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 - AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A - 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 - C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 - 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 - 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 - 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 - 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 - A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C - 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 - 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 - 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C - 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 - D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C - E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA - 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 - 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 - 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 - 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 - C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB - 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B - 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA - 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 - 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 - 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E - C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D - 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E - F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B - 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 - F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 - A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A - 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 - 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 - 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 - EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 - 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 - D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 - 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 - 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B - C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 - 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 - 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C - 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 - 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC - 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E - E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB - 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 - 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 - 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E - 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 - 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 - 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 - 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 - F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA - 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 - 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 - 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D - F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 - 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 - 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 - C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B - 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 - 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D - DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 - 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC - 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 - 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 - 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE - 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A - 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED - 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A - 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 - 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 - 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D - 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 - 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 - A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE - E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 - 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 - 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 - B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C - 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 - 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 - A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 - 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E - E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC - 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE - B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 - C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B - 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E - DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 - 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 - ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB - E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B - FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 - 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC - 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 - 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 - DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 - BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E - 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F - 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 - 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE - B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 - 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E - A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 - 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 - 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F - 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 - 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC - DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB - 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E - B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 - 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 - 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 - E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 - F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 - E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 - 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E - AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E - F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C - 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 - 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC - 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 - 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE - 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 - 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B - 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E - 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 - 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D - 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 - 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 - DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 - 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D - 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 - 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C - CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 - 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A - 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 - A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 - A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C - 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 - 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 - 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B - 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 - D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB - 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 - 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 - D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 - BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F - 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 - 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 - DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 - 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 - 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 - CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B - 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 - 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 - 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C - 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 - 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 - E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 - 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 - 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA - F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 - 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E - 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D - 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 - 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 - 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 - E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 - 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 - 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 - 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 - 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 - 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D - E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 - 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 - A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE - 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C - 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 - DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 - EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C - 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F - 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 - 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D - 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 - 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB - 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D - 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 - 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D - E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF - 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D - 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B - AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 - 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 - BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F - 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 - 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 - BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 - 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F - 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA - 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 - 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C - 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 - 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 - 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 - F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 - 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D - 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 - 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 - 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F - 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D - 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 - 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 - 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 - 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 - 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D - 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 - 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A - A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 - 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 - 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 - A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 - 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D - A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 - 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 - 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 - E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F - 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 - 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 - 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A - A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 - 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 - 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 - 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 - 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 - C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC - 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E - 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 - 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 - 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 - 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 - 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 - A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 - 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B - 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 - 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 - 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E - A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD - D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B - BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 - 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 - F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 - ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF - A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C - AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 - 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 - 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C - CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 - 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 - 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B - D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 - DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 - B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 - 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 - 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB - D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 - 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 - 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 - D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 - 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 - 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED - 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 - 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D - DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 - DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B - 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D - 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 - 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D - 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 - FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE - 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 - 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 - 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 - 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 - EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 - BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 - CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB - 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C - 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 - 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E - 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 - 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 - 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 - 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 - DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D - CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 - 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 - A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C - 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 - B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE - CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF - EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 - 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 - 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 - A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 - 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A - 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 - 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 - B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 - 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D - 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 - 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C - B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 - 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 - 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 - D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E - 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B - 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 - 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 - 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C - 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 - 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 - 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C - 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 - 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 - EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 - C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A - 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 - 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 - 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 - C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A - CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 - C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F - 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D - CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 - 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 - 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 - 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E - D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 - C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A - 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A - A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 - 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 - 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 - E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 - 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 - AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 - CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 - 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D - 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD - E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C - B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C - 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA - 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E - 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 - 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A - 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 - 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F - 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 - 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 - 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 - 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 - D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A - 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD - CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 - E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 - DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 - FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 - C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F - DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 - 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 - 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD - EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F - 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 - D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 - 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 - 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 - 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 - 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 - 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 - 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 - 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 - 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE - 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C - C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 - 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE - F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 - 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF - 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 - 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 - 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 - 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F - 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 - 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE - 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D - 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 - 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D - 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 - 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 - 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 - 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 - 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B - 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 - D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF - F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B - 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A - A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 - 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E - FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 - ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B - FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 - FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF - B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 - 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 - 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B - B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 - 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 - 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 - 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 - F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F - 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D - 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A - 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 - 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 - 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B - BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B - F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A - D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 - 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 - 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 - 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE - 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 - 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 - 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E - 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF - 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 - 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 - 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A - D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB - 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 - 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD - 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 - A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF - 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 - 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 - C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D - DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B - C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 - 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A - 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C - 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 - 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 - EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 - 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE - E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 - BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB - 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 - 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 - 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 - 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 - 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF - 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 - ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 - 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 - 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 - 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 - 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 - 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D - F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 - A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F - F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 - 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A - 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC - B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC - DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 - 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C - 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD - 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 - 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 - 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 - 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C - 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 - DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE - 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 - 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 - 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C - C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 - 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 - 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 - E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 - A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D - B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE - 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D - AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A - E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 - 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 - FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 - C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 - D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 - 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 - B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA - EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F - 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F - 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 - BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 - E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 - 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 - 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B - BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 - 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 - 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 - 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 - DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 - 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 - CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B - B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 - 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C - 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 - 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 - E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 - 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 - 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A - 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA - BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 - D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 - 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B - 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 - C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 - 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 - E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 - CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC - 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 - 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C - 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 - 0DE44000003B} - end - end - object Button1: TButton - Left = 24 - Top = 216 - Width = 75 - Height = 25 - Caption = 'Button1' - TabOrder = 2 - end - object PopupMenu1: TPopupMenu - Left = 104 - Top = 16 - object Opciones1: TMenuItem - Action = actOpciones - end - object Refrescarconexin1: TMenuItem - Action = actRestart - end - object N2: TMenuItem - Caption = '-' - end - object Acercade1: TMenuItem - Action = actAcerca - end - object N1: TMenuItem - Caption = '-' - end - object Cerrar1: TMenuItem - Action = actCerrar - end - end - object ActionList: TActionList - Left = 72 - Top = 16 - object actCerrar: TAction - Caption = '&Cerrar' - OnExecute = actCerrarExecute - end - object actRestart: TAction - Caption = 'Refrescar conexi'#243'n' - OnExecute = actRestartExecute - end - object actOpciones: TAction - Caption = '&Configuraci'#243'n...' - OnExecute = actOpcionesExecute - end - object actConexiones: TAction - Caption = 'Lista de conexiones...' - end - object actAcerca: TAction - Caption = 'Acerca de...' - OnExecute = actAcercaExecute - end - end - object XPManifest1: TXPManifest - Left = 40 - Top = 16 - end - object JvTrayIcon: TJvTrayIcon - IconIndex = 0 - DropDownMenu = PopupMenu1 - PopupMenu = PopupMenu1 - Delay = 300 - Snap = True - Visibility = [tvVisibleTaskBar, tvAutoHide] - Left = 8 - Top = 16 - end -end diff --git a/Varela/Varela/Source/Servidor/fServerForm.pas b/Varela/Varela/Source/Servidor/fServerForm.pas deleted file mode 100644 index 5872ec9..0000000 --- a/Varela/Varela/Source/Servidor/fServerForm.pas +++ /dev/null @@ -1,103 +0,0 @@ -unit fServerForm; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, - uROClient, uROPoweredByRemObjectsButton, uROClientIntf, uROServer, - uROBinMessage, uROIndyHTTPServer, uROIndyTCPServer, frxClass, frxPreview, - JvComponent, JvTrayIcon, ActnList, Menus, XPMan, JvExControls, - JvGradient, JvGIF, ExtCtrls, JvComponentBase; - -type - TServerForm = class(TForm) - Memo1: TMemo; - PopupMenu1: TPopupMenu; - ActionList: TActionList; - actCerrar: TAction; - Cerrar1: TMenuItem; - actRestart: TAction; - actOpciones: TAction; - actConexiones: TAction; - Opciones1: TMenuItem; - Refrescarconexin1: TMenuItem; - N2: TMenuItem; - XPManifest1: TXPManifest; - JvTrayIcon: TJvTrayIcon; - Panel1: TPanel; - Image1: TImage; - JvGradient1: TJvGradient; - Button1: TButton; - actAcerca: TAction; - Acercade1: TMenuItem; - N1: TMenuItem; - procedure actCerrarExecute(Sender: TObject); - procedure actRestartExecute(Sender: TObject); - procedure actOpcionesExecute(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure actAcercaExecute(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - -var - ServerForm: TServerForm; - -implementation - -uses - uDataModuleServer, uConfiguracion, EDI_SLSRPT, uAcercaDe; - - -{$R *.dfm} - -procedure TServerForm.actCerrarExecute(Sender: TObject); -begin - Close; -end; - -procedure TServerForm.actRestartExecute(Sender: TObject); -begin - dmServer.RefrescarConexion; -end; - -procedure TServerForm.actOpcionesExecute(Sender: TObject); -var - AForm : TForm; -begin - AForm := TfConfiguracion.Create(NIL); - try - AForm.ShowModal; - finally - AForm.Free; - actRestart.Execute; - end; -end; - -procedure TServerForm.FormCreate(Sender: TObject); -begin - JvTrayIcon.HideApplication; - JvTrayIcon.Hint := 'Administración de puntos de venta (Servidor)' + - #10#13 + dmServer.ConnectionName; - JvTrayIcon.Active := True; -end; - -procedure TServerForm.FormClose(Sender: TObject; var Action: TCloseAction); -begin - JvTrayIcon.Active := False; -end; - -procedure TServerForm.actAcercaExecute(Sender: TObject); -begin - with TfAcercaDe.Create(NIL) do - try - ShowModal; - finally - Free; - end; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.ddp b/Varela/Varela/Source/Servidor/srvInformes_Impl.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm b/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm deleted file mode 100644 index 90074b2..0000000 --- a/Varela/Varela/Source/Servidor/srvInformes_Impl.dfm +++ /dev/null @@ -1,331 +0,0 @@ -object srvInformes: TsrvInformes - OldCreateOrder = True - SessionManager = dmServer.SessionManager - AcquireConnection = True - ServiceSchema = schInformes - ServiceAdapter = DABINAdapter - OnAfterProcessTransactionAction = pptaNone - ExportedDataTables = <> - CacheElements = <> - Options = [rsoProcessDeltasWithoutUpdateRules] - Height = 297 - Width = 298 - object schInformes: TDASchema - ConnectionManager = dmServer.ConnectionManager - DataDictionary = dmServer.DataDictionary - Diagrams = dmServer.DADiagrams - Datasets = < - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - BlobType = dabtUnknown - Value = 'VENTAS' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'SELECT '#10' ID, CATEGORIA, MODIFICABLE, ICONO, NOMBRE, DESCRIPCI' + - 'ON, ORDEN, VISTA'#10' FROM'#10' RDX_INFORMES' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'ID' - end - item - DatasetField = 'CATEGORIA' - TableField = 'CATEGORIA' - end - item - DatasetField = 'ICONO' - TableField = 'ICONO' - end - item - DatasetField = 'NOMBRE' - TableField = 'NOMBRE' - end - item - DatasetField = 'DESCRIPCION' - TableField = 'DESCRIPCION' - end - item - DatasetField = 'ORDEN' - TableField = 'ORDEN' - end - item - DatasetField = 'VISTA' - TableField = 'VISTA' - end - item - DatasetField = 'MODIFICABLE' - TableField = 'MODIFICABLE' - end> - end> - Name = 'ListaInformesPorCategoria' - Fields = < - item - Name = 'ID' - DataType = datInteger - BlobType = dabtUnknown - Required = True - DisplayWidth = 0 - Alignment = taLeftJustify - ServerAutoRefresh = True - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'MODIFICABLE' - DataType = datString - Size = 1 - BlobType = dabtUnknown - DefaultValue = 'S' - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ICONO' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'ORDEN' - DataType = datInteger - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end - item - Name = 'VISTA' - DataType = datMemo - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = False - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - BusinessRulesClient.ScriptLanguage = rslPascalScript - BusinessRulesServer.ScriptLanguage = rslPascalScript - end> - JoinDataTables = <> - UnionDataTables = <> - Commands = < - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ICONO' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ORDEN' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VISTA' - DataType = datMemo - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'INSERT'#10' INTO RDX_INFORMES'#10' (CATEGORIA, MODIFICABLE, ICONO, N' + - 'OMBRE, DESCRIPCION, ORDEN, VISTA)'#10' VALUES'#10' (:CATEGORIA, :MOD' + - 'IFICABLE, :ICONO, :NOMBRE, :DESCRIPCION, :ORDEN,'#10' :VISTA)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Insert_ListaInformesPorCategoria' - end - item - Params = < - item - Name = 'CATEGORIA' - DataType = datString - Size = 15 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ICONO' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'NOMBRE' - DataType = datString - Size = 50 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'ORDEN' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'VISTA' - DataType = datMemo - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end - item - Name = 'OLD_ID' - DataType = datInteger - BlobType = dabtUnknown - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'GFT_VARELA' - TargetTable = 'RDX_INFORMES' - SQL = - 'UPDATE RDX_INFORMES'#10' SET '#10' CATEGORIA = :CATEGORIA, '#10' MODI' + - 'FICABLE = :MODIFICABLE,'#10' ICONO = :ICONO, '#10' NOMBRE = :NOMBR' + - 'E, '#10' DESCRIPCION = :DESCRIPCION, '#10' ORDEN = :ORDEN, '#10' VI' + - 'STA = :VISTA'#10' WHERE'#10' (ID = :OLD_ID)' - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'Update_ListaInformesPorCategoria' - end> - RelationShips = <> - UpdateRules = <> - Version = 0 - Left = 40 - Top = 24 - end - object bpInformes: TDABusinessProcessor - Schema = schInformes - InsertCommandName = 'Insert_ListaInformesPorCategoria' - UpdateCommandName = 'Update_ListaInformesPorCategoria' - ReferencedDataset = 'ListaInformesPorCategoria' - ProcessorOptions = [poAutoGenerateDelete, poAutoGenerateRefreshDataset, poPrepareCommands] - UpdateMode = updWhereKeyOnly - Left = 144 - Top = 24 - end - object DABINAdapter: TDABINAdapter - BufferSize = 262144 - IsCompatibleV4 = True - Left = 40 - Top = 96 - end -end diff --git a/Varela/Varela/Source/Servidor/srvInformes_Impl.pas b/Varela/Varela/Source/Servidor/srvInformes_Impl.pas deleted file mode 100644 index 57b76b9..0000000 --- a/Varela/Varela/Source/Servidor/srvInformes_Impl.pas +++ /dev/null @@ -1,48 +0,0 @@ -unit srvInformes_Impl; - -{----------------------------------------------------------------------------} -{ This unit was automatically generated by the RemObjects SDK after reading } -{ the RODL file associated with this project . } -{ } -{ This is where you are supposed to code the implementation of your objects. } -{----------------------------------------------------------------------------} - -interface - -uses - {vcl:} Classes, SysUtils, - {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - {Ancestor Implementation:} DARemoteService_Impl, - {Used RODLs:} DataAbstract3_Intf, - {Generated:} VARELA_Intf, uDAClasses, uDAScriptingProvider, - uDABusinessProcessor, uDADataTable, uDABINAdapter, uDADataStreamer; - -type - { TsrvInformes } - TsrvInformes = class(TDARemoteService, IsrvInformes) - bpInformes: TDABusinessProcessor; - DABINAdapter: TDABINAdapter; - schInformes: TDASchema; - private - protected - { IsrvInformes methods } - end; - -implementation - -{$R *.dfm} -uses - {Generated:} VARELA_Invk, uDataModuleServer; - -procedure Create_srvInformes(out anInstance : IUnknown); -begin - anInstance := TsrvInformes.Create(NIL); -end; - -{ srvInformes } -initialization - TROClassFactory.Create('srvInformes', Create_srvInformes, TsrvInformes_Invoker); - -finalization - -end. diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.ddp b/Varela/Varela/Source/Servidor/uAcercaDe.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.dfm b/Varela/Varela/Source/Servidor/uAcercaDe.dfm deleted file mode 100644 index f4ef396..0000000 --- a/Varela/Varela/Source/Servidor/uAcercaDe.dfm +++ /dev/null @@ -1,959 +0,0 @@ -object fAcercaDe: TfAcercaDe - Left = 531 - Top = 365 - ActiveControl = bAceptar - BorderStyle = bsDialog - Caption = 'Acerca de...' - ClientHeight = 401 - ClientWidth = 427 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object JvGradient1: TJvGradient - Left = 0 - Top = 88 - Width = 427 - Height = 4 - Align = alTop - StartColor = 2971346 - EndColor = 4828405 - end - object Bevel1: TBevel - Left = 128 - Top = 359 - Width = 290 - Height = 9 - Shape = bsTopLine - end - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 427 - Height = 88 - Align = alTop - BevelOuter = bvNone - TabOrder = 0 - object Image1: TImage - Left = -19 - Top = 0 - Width = 450 - Height = 88 - Picture.Data = { - 0B544A76474946496D616765826E0000474946383961C201FA00F70000FFFFFF - 626262BD810AD3D3D3BA7C0AB36C08C9C7C4FEBC49A45103C98B28EAEAE9CDA5 - 15AB734B554F4CA9A4A3C8A645A24B020098009BD884A8DB96C99D128C4105F1 - E6D3AE66062A2F299C44036443098D8D8DCFAD8B0D120E96D77CC1890CB57108 - AF6E31A95A0588D367EFD78BB77508B3DFA6B58F6AE7D4ADCC4E3CECDBC8C695 - 10016001FCF6B8D1A931C8BBACC6831EBDA991CF6254BBE2B0D5AE68787878B7 - B7B7B4332BC38C0ED0EEC8B58855999797C5920EC4E4BCCFC3B75A39035EBD55 - AC9690F7C550E7CC79F5F4F4B88639F9F4E8C7954BDADEDAA2DA8DB16A0671C4 - 6590420477CF51E9A83BF4EBE172CD4B944204CDCBC99742028ED570B9791DFE - E79B1D221D66CB3C2EAC27DEC470CE8673C79B12BF840C0058007CD058AC4E45 - CB9B97B9760AA6591AB8780A5E575525A91CAB5F06B06807D5D1CBA75804E7B7 - AE9744029E4703874008DBB84AC63C2EAC631BA16631FCF9F56C6C6C9A561CDE - C39865C15AF9F6F10082008B817B884006B1E79CFAFAFAAD620672541E464B42 - 665C5B86BB7C1EA518AF68085868569E5E256FCD4481D15FDCBB87484906716A - 684AB0406C63618AC57B9142027FC96B968986AD751CAFB5B572663A89A88032 - 7E32E1978F9C4C0C828483C1B3A0FDFDFAAEAAA9FDFDFD964D13FDFBF9B26E1B - AD630EB8A6359EA6A6B36E08954A0B432A00FFFFFD8C4408BE9F7AAA5B0ACB9F - 1A0E940576D248A4500A8D96978D4911C997139ED269934404D6D5D5BCBFBF95 - 9290AB6306DCBC60363935914609954405934402FFFDFCA95503E2E2E2747171 - B2640463775ED7D9DAC69019D6D7D7DDDAD6A3B650676B1912A011CFD2D3A1C7 - 99A08525D2D1D1697575656665DEDEDEFBFDFDB6700CF7F7F78E480DBA7206B0 - 6409CECECE3945029B5010ADDD9ED89A32A7AEAF6BD743EEEDED994708F2F1F0 - CA9625B7730AB46E10C38F0E1F9404328232964907A85709A85810AEAEAE676A - 676E6765A1A0A0D1CFCE69615F1A8B1492511AFDFFFFC1C1C1686868CFA324D9 - D9D95ED9429DBF5A959D9EA251145A6414C78908C48212B56E05089B082C0000 - 0000C201FA000008FF0017081C48B0A0C18308132A1CA80585914D00224A9C48 - B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AACCB8B0A5CB9707 - 5DBC216161CECA9B3873EADCC9B3A7CF9F40512E5C05B32851976FB4E43012B4 - A9D3A750A34A9D4A15C0827A03B10AD47A35ABD7AD07B98AFDDA15AC40172E70 - 39ACCAB6ADDBB770E3E62C4AB72E4217432CC8DDCBB7AFDFBF50ED0A169CB405 - E0C388132B5E6C71B063BAB8549C624CB9B2E5CB4F1F6B6E29B3C51C8898438B - 1E4DDAE3020AA70B525885FA256AD4445B27942D5B60ED370EE74C2ECDBBB76F - CB028F1614DE523651E20B90DB1E483B79F27A78553CFC4DBDBA75B9CE61A78E - 9DFAF5F6EEA75983FFF74E3E7C79EEC7D3D2047DBDBDFBF73F352BDF5CF0CD10 - CFF0F3EBDF6F32F572EFCBFD371E73D98187DE800182B7805A4CF1B743001046 - 08612625CD2321841B00D5CE8501B4A3D286177A88D300DC5006A2842266A4CE - 859C3C75A0763012F8A28CDF3537E372E8D533530BBBE547C433010029649001 - 28409285433E93E14F1B2699E249ED2419C0283729B08392261229E493161141 - 8796364025DE6AAF8D3966776696A9A6796C92D9669ADDBD61474D3DBE270587 - 1286399285172EE9D38911725912A0100A5A123711FAA918A11D6A6483842D42 - 55DEA403526A699B959ED99C0B0D19D1897E576A292A857B8A8AE54FA3986AE8 - 48518ABA6A48F37CFF29A4A289A5EA6446D3D0B1A554AC51E0EBAFC006FB6BAF - 640A6BECB1C812CB9A4C347DE2E397784668A4487C4A48EB4E8CBE1A52B62855 - 9B689621663449A05391C91A9C6EA67BAEB9EC8EE9EB69BEAEFBE69AEFDAD742 - 83EF5D63AAA97AC26AEAB5FC5984A49600F346043041161C94B0C4226BACB2C3 - 46EC70C312AFB6006E2DB0D7DE83D17E4B2D870A072C91B7188AFC1417AB70F1 - AEB92AA386F2CB2B530033CB0BA0CC2EBCAFAD6CA6CD328717DD1C9FBA87F090 - 99E82AEA341F2719B2C903CF6AB25314C412B5AF5C542DB5D4BE5E3DB5CC2A4B - 6D75D554770D6CD52D6B3D3617B1B4FC6B3D6A3DA1717577B2C8B184936444C4 - 24D076380F002407FFE0E70617D610111136E4BDC1DE13D95043A2884FC46D44 - 8B4B2878443664C2B8458F4FF4CB2480F769033414756C6D449D4B1811A218AA - 9338DE1CD66083EA1BCD537888364C4B51E6144153B9E4EA487151E4114E0E80 - 3A9663D8B847C2AAAC76F232373F76F3CA1B1BBDC3D30F2B670B9FD4495DAB43 - 5E6383940AEB2BA5928F2A2DD106490A2EC5F8534604CDE2E0DFAEAA4435A40F - 002DB28A7A2DF744522911110F62DFAE2422408291CE5400B0DC9044348F020A - 890ED7C0C8358C26C07620CD71F3A3C82FD0B72F20D5801615811F910487BFF1 - 2DAD2253F31ADAC8A6C2B4B99085604BDBD7ACF62B19AE506C578B21D76C28B5 - 0768410573E8457BFFF216212210014F441098E8F0F4B7C0F52D4FD020E2854A - 2491CC010F42351880E8B89439225C5174AF90C8124B0680D245E851170221A3 - 44E7BB8AA0718C35B01D00700780B88DB15F900B1C2DB6F811B2F9D18F324B19 - D7FE58B594111290833C64CB14F947664DC73AE2D312A914A8A5E34544011DCC - E4A9CA98240A66726899B49DADB494A2FA69C993EC9323FF8094A22669B29211 - 7160C20ED849FBADEF959DBCA044CA87CB20912A22A31C60442229CB67E05184 - 4002A500E5A8112EAC6085CF4CDB3367E84C68DED09A7E94A635B529CDA945B3 - 9ADCE442385C90082B184188D5E10487F4A4CE0BEDA022731BA3C7CA28CF7A46 - 087673E45029ED19FFA1BA55519F83E3501801A08057B42E22F25C9219A315A6 - 85CAD30013D9233F0380CF2E4A718CA0CBE344F1D84C467AF4A3200D292357C1 - 3614D4C43ACA0C52467FB12F5D02E047A6CAC42FEE674AF391AE98BD1CD23B23 - E24A61D634A701D8294FA5E43F5A48498EF5B38152671A4B5C2A14970A98C6BE - 36905100844AA713E1E0AD087A5522D12189F9DCEA1CC7A7A7A611C94FC8CCA9 - 5037B2C217BAB5AD707DAB5CE34AD7B9DA156DABF0210A6C421D894A880E13B9 - E8F1EC2821DBB11464E7C3D30E92D84E0E65C248848DD02FADA8D8241A004FC2 - CB67B8F8B64E8FF4ED5A0E0D001D7C7737890C40A98FFAAAE61C2B1168E02952 - 12D10387DAF8382FFF71C89F11892C84A6F54508BD2289BA0D40663B2AD2E21A - F7B8645B850B486018EA70424A6BED2A90D6FA5CFD51047036E5A4A8329B89F1 - D96E95C295483083544A296516BCE7959288A0C1BE0D28D5921431EB26132B25 - F8DA4D71E6DDA5A9E8E052003C6A07EF9DC8789F2122620609B014A1A490F494 - D6679CD754C3CD485D277CD70A53F8C276659B5EA873517CD69143AA8D483C21 - 04DB888CAB4F89651106033791BE098FB22A1ED941FFB959005C144FEA602667 - 517C5D2472441DB38B96F01A1BA1B56EE471448690910190E44601A0B7548C88 - 8B3D42C86956D3CA55C332D9B48C362B7F33CB7F7CA698B77C6532AF422D9FF1 - 0D4B719AA4366A77FF481C95EFDFEAEB38F5B638BF3CCDE093A584C7066EB7CE - A2F21F6771EAE1411BB0C749FAA5456C005EF6092F805A2AF1913338608EFAF7 - 5F794C529F214C6569AE60CC62FE345CBFF9E950933A16A046B533450D6A565F - D9D562A6C003F28207DF34B99E4275A8253F9B62091D0F7753CE738D7B7BBC60 - 0B1B452B966794773CBA1ED7982227B6A7F01C6AE98C3C8E51967EA3C788DDE2 - 1973A4D5624635AC576D6A7197DA99E626F7ABC10DEB4FABFADCB1D011099EA0 - 3DD13438A7087E3391E28CE99B8AEAD744BDF39F81A9E79F02A9D8781EAAAB28 - 728DEEF6D27672AE0876C16491EA8E0FC0EC1DB855F9F591018BA8A741CA76BF - 1B5C6C4E77A4D428FF4FB9CA578E721EB0FCE53067B9CB3F4D0C0DF39534879D - 688468CB2149477B9EBA4E36B964CCE2630FFDC91C2A79D18D5EA88BBCAE78D1 - 822DAF9D9DA78AB856A020BCA4B7E9F852E1DA60123600AB6691CD640E2DB9C9 - 54E436D125E79198BB7DE5C478BBDC591EF752E3E6E6A3B1385087E4BFEF8D8A - 2290769ABF8704F0858F2CE1202730FDE87C788D8F35D01B5140E5A02BE3ECD2 - 179614599158739B705E3ED08DFD4E7C81F75B1105873CD39897B2C9BFFD6997 - BB7E05AF8F3DEC672FFB96CFBEF52FAF7DA9652FFB593F019DA381BACE451B91 - 9C4B88A900303ED0932EF4A6AF3D7834263BD22FA474B647FFE8BA53EAE2AAFA - 5229FAC9D8BD8E10FF7C471C008E0A1F8BADC5131EBDD8D9B10FFD88B79D4870 - C1AA76D52F7D2373973BB951BEFF15981BE6FDC7726C634EF556196BB677A6D2 - 46F92324353053C56070B334784452787C277043223C1EB778FF66812304680B - 040052157081252AF86460403253BF9075132724F0B58207560C52667A1E3411 - 10F80C91F20B0E3724C0005619A8709AA67A76867A2CD86DF67372BAC77BB497 - 8448B8844AD8844C287B5CF00091817797F1733BE774784245569850E10721BF - 0650CF877E4CE764D3E76BDD767F8F437E4E06401C3200E9D73154147414716B - 70247F3A575160485037263AB6537FCC067D27977BBB3788B8877BAF6788B797 - 8833A78884C88885FF881BF88219321800FDD55AE38360B9C26611A86F07E781 - 44F2247E7681FF24561088708E075EFE93716C6664A8A4253BE582CF005F7BA4 - 893338119A97538A267A1361829A743C2447845A126118417B3C107BC5588CC4 - 788C83A88CB0E77AC7B888CAE88CD1F88CCF488CBBB70D43A002CE8219CA3721 - 19716359175C89F2454D447DCD47867F2886EEE77C65287E67687D6398224F14 - 2D7A207694D3314F658EF0B444EDC02815B14678528FE7C825E2D87EF4C37C61 - 185E815888CB480C3CE0904EB88C11697BB6F78429078DA230136E83197E9724 - 920678FB52821DF44E0637671B584522286509D7837B76922A798A41985B2935 - 3E86420493E860B4FF947A134104B03881979624DC2765ADB879044794C9A755 - FB9209594783A6527245C811D5488D523995545995562995CD488D59598DC440 - 4ED2218978E26616B1222036110AC03A850251EDE8375D18005FF86CC6066366 - 98900FF66C523609E7D7216197118A433B07A48F16210580B201930056983445 - 17213BE4583B98938714715A575403EAB09414E187E0A711AEE790C8788CC440 - 0E3CE099A0397BA1A98CA0598C9DD9849EF97AA5599AC5989AC4480EB4470CE1 - 20274F40854F739BB88919E4009ABBF999BDB99BBCC99ABE199CC3E99BCF489C - C0599CC9D99BD4B89CBB299B18F336B9399DD4791838D099E4709DBBA99DD9D9 - 999F899DE4809DDCFF399EE2E99DE1E999E4B99DE5099AE6D99EEA199EB30644 - D5399FF4D917D9999D388003F7999FFAC99FF8B99DF8E99FFC39A0F9B99F014A - A008DA9F060AA00ADA9FE140036B519F123AA155C1A0F709A016AA9F190A9C0D - BAA006DAA120CAA1228AA1F7490C0F90089E518014BAA22C9A13FB59A002FAA1 - 013AA30D0AA330FAA2FD69A3390AA23A2AA3B33927B6D9A2423AA426D1A1C029 - A31AEAA11B1AA20A6AA14B8AA4482A9B0C42A4545AA52341A01F80A3587AA0FA - 99A509FAA5FCE9A5034A0E1F00A6664AA0E4100E3FB48D56DAA66E7A11315AA6 - 59BA9D38E0A5F759A60A2AA7376AA77C5AA72FAAA7805AA7822AA71F5AA078FA - A028406F6FBAA88CFF3AA88E1AA85D8A9F810AA81F30A9755AA98F9AA9964AA8 - 620AA9F54003D2A1A28C3AAA2B4AA9804AA6838AA9789AA95D5AA6647AA7AAEA - A790AAA98FAAAA772AA8268AA2416A321DC996BFC10930F8164942997917AC38 - 51A9C89AACCABAACCCDAACCEFAACD01AADCAFA0028506BD4A96D27441952B038 - 6EF81669541ADB1A00DD7AACCB8AAA593AA9B6CAA997AAACB25AA9641AADEB1A - ABEC8AACE6FAAEE19017D2C9AB4392AD8AA1001347AC5531ACA3E1AF4402B029 - 11AF94DA05CF4AABCC8AB00EABB0F39AACA9DAB0806AA226B5ABFC81ADBC7145 - 063B15DF6A6F12D2B12741B1EB5AAB9B8AB0128BACF1DA0FCDEAB0729AB2F27A - A938F00034306FF9FF9AB1FBBAB14362AC6D21B0F6B6B33AF1010A3BB4425BB4 - 447BB4469BB448BBB44ADBB44CFBB44E5BB41FF0A0E6949B1A5B1A5734AE6DF1 - B1A191B5412BAD601BB6623BB6CEFA0076801FFA310D16B703BFD0ABB4720DFC - E33A3A66112244425785479E278F39EB5F840700D7C04174D02F48992472740D - 7AE75E16410B9EE77595781152A040810B003E1B11D3D0975B625FBB78348135 - 244B09B717C898BBD4B77F0B24912B8184DB5AF8E58AD58611C80AB14D5BA9AE - 1BBBAD9BB4B00BB1B23BB4B6DB05440BBBB42BB542ABBBAF5BB4C4400376F004 - FAF10B17257C7E42B00CB511C053037D930960A56DF2D86CDA263B02F5977832 - 2D3C192D7440995BFF182174807C18C128E7B794F318008FF58D74F38662C8BC - EAA75FE2A76DBEA5BD1C322DE11B3C736B11B76BB4C0CBBB002CB5BACB0FBBFB - BFBE8BBB083CBB018CB4B04BC0C1DB0530400CB881076C7A1DD35083D6F552F7 - 06671A214233495EF7284CA1E8ABBD1A785A024283AB25D3729344C254B72440 - C29838C594758B6B5EF638875815C2A7C77E05A42725DC4128BC4CF7234BDA32 - 115D200047FCBBBA8BC4BABBC4499CC04D1CC54DCCC451ECBF527CC4575CB454 - 7CC5518CC45E8CC50A1B0E89F095EE91BF3C069017B2BF1AB544464296ECE82D - 4B42BFD15222A1B55B00803AA2530349343774003A034044981B117BF8AD87C9 - 8F18617CF9267C46FF82C68575696344C71D6324757C21377C114EDCC4FD80C9 - 97ACBB99CCC94BDCC95DD0C95B0CCAA01CC5A26CCA5C7CCA9AECC9ACDC05E1F0 - 00CDE21E0A16473F7956206878D0A060AB2B84011041B3B86FB5AC782F092471 - 5C4C68C5B912118244B2587C0B4B5AC55F11C109C0A0546AECB7A212260A9083 - 4102427AF7413AFC0CD07C110A063A3045CCB75C810090CB14D7AB0274CC059B - CCA212412FA54C628911530CC6F7BCC954FCC54ECCCF52BCCF5C1CD0FE1CD002 - 0DC688AAA8D741446E6646197259F3743F12A2682124215186C76C49BDCF17C7 - 884904B2354F1C2B11841562EEF74E23E65E3610C88913D112E157100242C2A7 - B56654CF13F17361FF42587B43588AA24592E5C81152221CDD6CED28B294B350 - 282D11A14CD0575CCA48BDD449CDD4AB4CD0A49CC5349BA8C0F71BE51C24B6E3 - B6C1AC49F946B75AE2662F1C5E79DB78E6DCCCA4AB5F82D7924062AC9EB7564D - 434205B403D57C8BC2DC5442024240B5CBCAFC0C24FD795B2D4080D5ABF9E679 - EEBCD6152179ECAC93F6FCC500EDC54C0CD04B2C008C8DCF92EDD8FEBCCF924D - D958DCD8479CD993BDC9530BAA91E81B856CC7F6573266CC2119F1D111C1D282 - E3C66478B557FB87682521E30A284FA2D36298DA74A0C6B8CD941182D7F55468 - 2009218095375404DB4BC4D3BE4ADB0719215A0BBF1D53D41131D9D6EDD99B9D - DD95DDD98C5DD9DEFF6DDDDCEDDDD9DDCFE1BDDDE0CDCF66EB36A21A1A57FD0C - 599DB3359C49ABFDD5202D8A848D92B66CD6CDDD34851D004B49D76E1D8CA88B - C182561174FD24029BD71911D64D9351F1CD3EFAFD7D87A6D6FE9DCC06C709B5 - 834CD40D009EFDDD962DDEE6EDE1DC5DDE22EEE1DF3DE221FEE1290EE295FD01 - C4BB911C3697F4F42D0E4D46217145152D217AC0DCE20AD1D60BD470FCDC2DFD - 7C5D0D284B465036104F5D4D11DA263C2C5DE12F4D1279033CBF84D38E02E440 - CDDA7FA86880CC1126DEE102D00F276EDE620EE666FEDD65FEE52B3EE66A6EE2 - DCDD0F0900A1781034BE11780DB8D519B2D7E5D7DAC8B4CB48D73D00500C9EA4 - 3A0F9EC15A0D849BFFF8536132537ACECCEC8C384AB501E19C405E75C8244850 - DAFC0CDC4C3419D553937E11740DCC947BCD7CBECE7B6B689BA4E8C917CC9980 - 341B94241BDEE6B2EEDD0420EBB53EEBB89EEBB9DE05CC00AAD6EA1B05D96C8C - 6CDC950CDC4BE486352E3A1A3D4F416EBF11723A75787545D6DA406D11798927 - 2054DA1DE3E7EEE363D7E7BD4934DBCD3EE317323CF514EB0270EBBA4EEBEBDE - EEEA1EE6EAFEEEEDEEDD6A2A9FBF91E95335381B4C24F28C11FB9ED643A9CDC5 - 9CDFA8EE277A2724466293AFC454292C25421DD60244C3AF24D11891E946C6C3 - 9924CF875EF01271F058FDCBE6A5D81751D9F14E00B57EF2E94EF2247FEB257F - F2269FEE2F8FF2F1FF9EF2332FD92F0FF3286FF32C4FF32AEFF2040003473027 - D4A1008205D4EFD331323DD189E258B6A35B1B50DACB6EE3E34EF41C9275DD8B - 594BA9001D1D2D493F872003284B69D17D52EC8BC6B5ADD55B57788FCC0ED454 - FFAD620F21275D751BE1F3341FF33C6FF2742FF378BFF77C8FF3768FF7759FF7 - 7E2FF87DEFF3373FBC5680B1A1A10016D70EBFA000A74E395D25B71C814CB430 - BAA265690D47BAD8BCB71BCFDF9AD35572BD8B875B6D36305E9960038D2B300A - E43A61B5CD9A333B97FB11571DC3FE35F9A04B39A70EFA12F10BA23F2DF39083 - ED0083982424146F117C9FFCCABFFCCCDFFCCEFFFCD01FFD557004896001A34D - A55A4EAA2213FDDCFFDFFDDEFFFDDC5F053040BC27D5A696AFFD4F03FD64C0F7 - EBBFFCEDCFFCEF9FFCEBFFFEF1AFFCF57FFF0450FFF22F0045001034EC3CE904 - C0E0418409152E64D8D0E1438811254AAC11C062005A13356EE4D8D1E3479021 - 458E3C48C0A4490127539E64D9D2E54B9830C9C4A4496065CD97330974099708 - 85119241850E6D58F159806719892E65DAD4E9D3A004664E955A95CCD5AB52B1 - 52E59A95AB55AF5609882123A62AD9AF53C35E35DB352D589D307AAA9803D5EE - DD85152F2AC5DBD7EF5FC01AB18A1D4CB66D59C46F0FA72D4BD8EB63B591C742 - 76CC982A5A93FD8ED8A11BD8B350A348F97E265DDA34D1C4880D635D4DB684EA - D46C61CB6E0DBB76FF6DDA885FDF8E4D66B76FDB65BB1C49D4F9F471E4C9952F - 1F8A36B5F3ADD0B7B29E2EDBFA73EAD79D4BD75E1D7BF5ED9AED58D8C4DCFC79 - F4E99597787D95FD7BF7EFE5B3C74ADFF7FCD7F9F1EF6F7F5FBEFBF8F8F3AF3E - F6C4E00FBE1286E3EC13F51A74F0410885CA0FB8092BA4F0420B33C470430D3B - E4F0430F351463B8442CE82542145354714583E8834F1C17631467400463D48F - 3D18F59BB1C61BC980F147FC689C0F481D857CED471FAB38028527EA62F14928 - A33CAD471E6DA430C8FD8CF4CF4523059C8F432CAFFCF2BD226860524A34D354 - F32901702C4192F7E0841184F7E8C4CFCE374B98334E3ED993B3043CF9C3934E - 18FFC4134E3FF504FF545144DFDBB350F88A4885C982D6B4F4524C352A420031 - C428541C5041950FD43F711435515443FD54D544493555D5501165F555585D85 - 753E4962D573C6236850C18813331576D861532902064FE904419C6541709659 - 689565569A669F5516D065A795165469B365D6DA50B3C5B6596ABFADF65C68B9 - 2DD7D96601D5561C027AFD95587AEB4DF3050E8E28428C6A088DD6DD66990538 - 5A81735C94DB1F139E53D476C50DB54E82039698E085276E98603288B3C0497B - 3BF618C2345EA0E18422A875961476513E396596D975F9E595619619049567A6 - 59E69A73C6B9E5976B56723C3C2AFD7868A2951B20E47CF715C366A6C1B57866 - 739D76795165618EFFB669ACCF75591C18046AB268B0C326AD185A42D6E48804 - AA31396BB69BAEB96DB8E38E79EB2A52198F63B1F3D6DBA901EC29DB87658C25 - 8BDDB50B279C7095A549FC64C39D2D7C71C70FA759F1C81D871C84C631971CF3 - CB4DEE7A20A1F7DE9B91084A37FD74D453577D75D65B77FD75D8556744A80106 - 289B161F3421998C7108218590020A204578528A0FBEF8E191173E78DF83171E - 78E2914F5E79E9AB1F3E7AEB8DBFDEF8E88F777E7BEABF4719E5AE7F6250F4BD - 81887D7DF6DB77DFFD2C846A6680F9ED3126F7238EA842F1E497EFFFFFEE0150 - 80E30381FFB4E73F04562F810754DECD12F8C00116501C45280EB0D0A7B73BBC - 4F831BE420FB8020FFBFF9D98E1603988726527184A53D6F7AC96BDEEF58A840 - 1716CF77D9435E0BB5D7C219522F87367CA1F570F84215CAB07855A0200AF070 - C1B0790300A4FB47049AF80F28E6C174522C1D152360452C4E518B55DCE215BB - 98452E86D18B1B6C620466171465D08F7EB4B0873D0C60875484A30A055C2129 - C6E1BC7118EF8ED82B401E5788BD3F1640097BB4A31EC557BC3C7A4F907E3460 - 1D1539C8E041F278075452718286C48F71A21D41E00420BC80814F86121033D0 - 86094A794A53A6F294DA58E50458A90D574E4096B34CC2046A298124E4129712 - E0651278E9015E4A0098C3F400153CE0886252419923A002249AD9CC11400211 - 90F80235A9F9852FFF2082112CC8030BCC213F77344319E1B4C730EC2185179C - B00A8254C20E0B003C78FEEE9DD5F35D0E87A704E7E15379F03C5E3DDF794817 - 46F29F3314643EF95850E60DF49F42C467018858C16061B25E3BB0852D760088 - 0E5C41A31AED002072D003908654A42325294867D08393A674062B65E90C4CE0 - 5213C434A6AD7CE52C6D79D35CEA3298B210A6048CE981642A73991E40861758 - C0024BC86F00699C5F33EAD70C1FC4E008E3F047439D7755AC6615AB4A208555 - 97A755B07E15ABFDD3AA57AF0AC0B07E0F9FE3F8990A2E29517AED80A2EDC8C5 - 46AF80018D7AB4A47B2D694A51DA52970656A6305DE52B61094B9BE6D296BED4 - E92F810A54630A55FFA8CCF400238C8A54A1D8A319EEB88653373B80629C339D - FAAB863FFC818602A096104A40AD12DAB9DA76BED3B5ECC42721D000CFD9BAB6 - 9D6840436DBB2A5B42C016B7F8D42D3BE1D9DBD4F25690F22C2E6F5BCB5ADBE6 - 16BAAE25445BF106D74C396007EDE0442E3AF0DD2B64B4030DC841793FCA5793 - 86D4AF2CFDEB4A5FFA5E99CED494863DAC2C6B79DF9CEED297C17C6C31FD2BD9 - C826C1B2474D6A507EA159713A957EA1A585140CC08107C0A00A77BCAD6A57FB - 4EDB16F4B6C42DE86E3BFCE10A171478B54DED87397C620D0BD2B617065E6B55 - BCE1175F189F217E6D1136E3D6D061D7526500448F77608349D820130D684021 - CA500824AF03BD7DFF6D6F7B59FA5E98CAB7B0884DEC6273BADF5F0AB3BFFF15 - AA2CEE910530C3E3B2DF0C8A37A0610FFA85D3B3B62B461A1E6CAC09B3B3C2D4 - E5AD6B9DAB5BDDF2D6B675C6336B373C5DE8F2F9CE7DCEB39EED1CDDDDF636CF - 88F6B3A2E9AC683D57D2883ACE1406C42B8583CCE31935A88878AF0052658434 - D4E95DAF93DD2BD8F8AA92BEB1C4A99519BB4BFE3E1699C674C464A930020F98 - C18B2CB86C814942046FFC021A6956F0FCD89806296862644518076BDBF9ECE0 - 5E20B52B5E6DB457DCDBD55EE0D917082EB45FABED6C1302DCD01677B9C71D6E - 6E8F9BDB7346F7B6BBCDED6A97BBBA1ADB448E292DA55CE0B503F338880D9EE1 - 8C1A9461A31858B2FF48D70BD8530F36BEF4AD6F62F18B4B2C6719B241B5B507 - B250BA7FE4A1D743990638844DBFCE3A359CA045F60B74C7ECD4923BBA7586B7 - 122E808675C35CE6E086F96BB33D739CC7FBE62F7FB9CE71CE7399DF36B8B6ED - F96E690E6E71CFBC0A3AB0E4BDD764E9F05EE32006A007A703F0DD8C96340748 - D8FA47BDDE83AF83F4BC066FF24AF92058C2AA920FACC6AF2E5F1D4CC93213D7 - 17776237093C944E745CD8B4D8AC679B410BC037230DF8D35FB3BF2D6E97137D - E8E56EADB9BBBDF8C56B3BDDE6B6F9D02F006F6BC77BF22E9F3CE679EEF86863 - 1EF4D6757A9A025008226FA01DED18450D0041E432384318B227690E92208825 - E45EF7BBE7FD12EEFFE07BDEFF5EF8C017FE1D8C6F7C20DC21F940C002F29BAF - FCE7339F1158000280994905BA677CCC44E9441F88F0713537B576B7CBDD0974 - 3061DE5E5EFDE2BE3CFBD33DF3F6AF5FFEF1A7FFFBD35D7FF7E71FE8F3BF7FFA - 61AEFFF833376E5BBAE2B8AED25B11ED6A0707F02EAC132F8F322F5043A91E40 - 022090220BF4A20BCC400CDC400DEC400E441D28822256488664C8382F923B68 - 42042AD0B5BADBB8A0382283C83B058086115AB3106A23634027752A00F50B40 - F5B386CE73BC201C421F1442011C422384B9FBBB002004C2FFEB3C202CC2CE7B - 28E3384016912B5BA02BBBC2AB2BD0ABBDCA810C7A9F101C43322C4333FC8712 - 2441121C84641884FF41C88264309D7FB8B5651A0166CA3E8DBBBBA068018EF1 - 3E614333BF530605033C29F0811392841E4C44455C44466CC444743F47544421 - 64C4238CC4F52384712882F1F8047BB3C2076907B96A078C0AAF8DEA004B282F - B0233B245802308A1D5688805724A3314CC33624412772A265BAB51150413C3C - 2ACC0A0A12E0C383E804225080031B80F06BAA625846748A810758A76050023F - 90C45BA0BF5B80C46ACCC6FA5BC45B88426EABC61ED4C66BE43FF5F3036B0047 - 6EEC41485C4471FB190B381F4F44914CC8841AC8041E038442C8857CC3800698 - 076E588665A8BD307422337043833C48841C043330832C6048876CC8865C4888 - 7CC3877C4830CB02FF46C0488C64848CF42256A0433BB443ECC3B83CF426A1D0 - 82F13082F20000EF0BB611EAAC344A2311A2057748B65408817108866050C45B - B88569ACC69F0CC769F40370ECC96964C4A3BC00A34C44A20CCACB43C71E244A - 474C4AA84CC70BA0423C88A8787410A8EB004C33084DB33A4F233590BA030B34 - 035BD22FB57C35B6D4AF2BBBAF9B8A25868B2FB4E30341302AA30AC95D440415 - 6441EDD34392700121084605988313E9BE60F31B35532363B39F34389B22A882 - 500806A054CA0B084ACCB4CCCCACCC70BC4CCDFCCCCA0C4DCF044ACA543FCEBC - CCD274CAD404CDD15C3FD2DBCA07C9B7F0E23783F0378013388D22B8910243D3 - 318324782C2D2326FFE10CCE9E02A66062CB9C8A4B59AA2F564A2513E881BBF4 - 45BDDCC53B244917248905588037D00226398518EC036F50007BE02C0513C4BF - 63235A30004D8881C8BC4CA2F4C9A6EC499F94CFA6F4CCA1544A9F2CC7FC34CA - F9E4CFCA1C4AFAA44FFD94CFA77C4FCFBC3C3F78CFF79C4F00D5C65070C77A83 - CD06A9ABD93C885A0800600086ABCB4D5534CBD2F1CD2D0B511105AAE20CA6B5 - 7CCBB8442CFA3201BBC44B16D04B44D8C51524495FF4B591580017D04E2DB082 - AF894170104F64F42CF39C1FB2B91F0E2019502084041DCA50E8C65B68D2736C - 52CBFCCF2865D26C94D29F8C52276D4D2785D227DDD22DBD4F6DBC4F73FC522D - 3DD3A1B48607DD0CFF0B804109450FD9BC825AE88369E8031B08003A000681C3 - 000CC80581ECCDDF2CD161125442354E2CBBB2569BA5FA52A5989A81E83C2A5D - B4C3181DC9163C2A32C3CEECD4CE372001BA38915EE8831F35065AB806CE1AD2 - F12B1B7C49051D08016B388304954F5885D5F88C4F590D50FE5CD05AA5D558AD - D55BED4F06F5D55DDDD5057DD02DE00C037CD3E4D8810DB02840B82B67B53440 - 402903582909A4560FCD03101D51112DD1E33CCEE4844B9B5AD1526AD4476501 - BE8CD16CFA8211F0CB92B45191C8D41C7D834DFD151894411A2436A6AA1DB219 - BC4438219C24CA33B885801DD860ED49823D58814D58845D58F964D880855586 - 3558859D58873D83FF810D8535355664350F2CD4C281CBABB1532F94E2CD0FFD - 4D12054E943DD99E3251B744D45A924B574225547ACE72A5CE738D513CBCCE1B - CD54781D0212B00023F04E00988619A4C166B80665304F7D259B4294AA100085 - 50B0588A8DD581B558A9B5DAABC5DAA9C5DA87DDDA8935D8AB5558AD3DD8ACAD - 5AB23D032A3CD68D2D8D04EC2EAC23C5F132AF1C38B81EF0D008C8566DDD326E - EDA59685CB975554C3724E168D4EA38AD19B555776AD51A1C05178CD4E17D8D4 - 1670D369084FA3153F1BA4491FE0006391048C3D83A8B5D8A815D8D0355B8105 - DD8B35DBB255D8D12D5DCF3DDD9EFC5CB3855DD5B5DAD9355DD125D85000051D - B89B4E5C5BCF2883FF06E8315B5007759884212BB23258874208006190409322 - D9BB0DD4419DDEBDEDD6B704572A0BDC996D549ABDAC173D5C9CB54E4B5D5C9E - 2D5F5C20012BC80127F984EFBB57911352117287A84A05061887330886335005 - 113883FDC5DAFDFD5FFE0D60001E60012EE0FEB558FD2DE0AA3D6002FE5FFD7D - E0063660AB558500A6E033D0DDA6F3DDD3E8CAAF0480B0EC345254296B3D4B93 - CD5B428535B74CD4707D25C11D2C47F5DEC3C5A67515DF5FC4D4F2AD874C7D83 - C1DC984AE90363F41B1B3C557B2839F694043FE05AD44562255E6226B6D803A6 - DD264662028EE22616585028020EF81578D460CF90CD7DEBB77F0BB881ABD691 - 1D48BC254E945D59FF13652C147D59E664E171E55E97824E183E576C52D79C05 - CC9D2DDFF27D83F3FD959504CF03E3BB045BB3D04A8390311650B85F06B6DA46 - 7662478E64489EE400CE5F1148E047AE644D666008B6E04CE6E44B7E64428001 - 0E480323D8622EFE8BAE943A83A03AB1042FBAB55BBCD5D6EAE5DBEB55CEE53C - ACED7561C23557444857194E5C3D7E573EE6633FE6D43908E4F00444C6742AC0 - 1BA1C1D3041D58642466DDD27D626B8EE26C4E5D2566DDB1E5667026DD6EBE60 - 2C369F540E0CD44B3D0718054E703DE41586751086E61561E805D142556396ED - A56FFDDBE58CA5F98A63287BA9932AD75FFEE53B46843C36C9A028E6627EDC21 - 601227D9841F1D06FF5A10C490EBBBFAB99F1860801008053FF85F1150833310 - 69918664921E69947660023E699646699106E0933669979EE99316019BA6699C - DE5F960E8510A081347802543E67BB48C0056C4007945B84AB5B121E5134CEE7 - 57B3B270954B164E35B47B615FBCE32F6802AD460476D5596266E8F2750117D0 - 82609C03EF3C05A2A5C16B2055BFAB1D7B68B31252D545566903C6644C16E09B - 0E65FEB56BBAD66BBFC6E4BC16E0BB06E9061E6CFECDEB0456852BE6809FD04A - A1868A8EA5D0DC04D98363A91C509F924D59EA65593676599BCAE5E6DCE5C0B2 - 6C82C6EA26C8A68476D790C8D455606DD76EED4CC50514680123E80383004FCD - 82C9B6B61DD07287FF745AD538D05F9B1E6EE22E6EE33E6EE44E6EE55E6EE66E - EEE1060519B8041F00EAC7BE0B50DCAE51CC288E222FF57AB29392E588CB675B - 863836C6E59A92A97175A9B31BED26EB01477051D3CE6AAEA6D1615E6DD7E6D9 - D6866D787D8321B0828D31884F3033BF0952BFFB3B7B8086C18B0145A6E0E1DE - 6BC23EEC076F70BF46ECBECE6B0B8FF00B77700D9FF0BEE66BFE8D839E1E88A0 - AE6EA2D8007AB4C71E6B807DC40040D006800C487A1EC841708425C087258084 - 1ABFF11A17044810047CE0711E87841E7704218704473872243FF26540720970 - 84256FF2277F710958860900021836ED2640681ABED43DA68005F07230FF7231 - 6F6D2FC7D14DED51FF50DD3BFA294F054B8306CB1DFA0505E1766E3AAF733BBF - F3E60E814B588327782B125F0A0ECEB44DAB8142F0B484FB6E2AD2382F587446 - 6F74477F74488F74498F745F6401AD3EED2568022898EF4AADE1912073B0066B - 79E554A000805E98833FA449777007C67CE69A34A1F38B5A090F69E43E6C3518 - EE5BB7E95CB7F097E6755C276E5BFF755D17765AD7750827F65E1FEE509001AF - 19F13F1F092FA64D00B04D31CE4DC07A4ECCCEB84ADF766EEF766FFF7670FFF6 - ACCE6A4D3FEDAEAE6F9010732F0775761F7331C7D1B1FE89529F5C0530860140 - 5AA712C49944D5182099E0F6855FDFF55D1FF65B2F785A1FF8622F6E833778E2 - 5EF8837F788747F8FF8857F890CEDD235883367D76A2A0D02FAE4D0CD550EDC6 - 80967A29A5361DEF0D77944F79953F2AA3C226AD86024DFF0261F67491D0EF50 - 07EB7A10CC1EA0ED8220C6192C86DA2970DB79EBC10B9C2288033C57035540F8 - E21E69859FF384D775A8C7F3395F7A9BB67AE406855428113C105A8D87762E9C - 87EEEB843BCDD340C84D911F79307C456D5F79B77F7B713FED4B3FED84E6F277 - 0DF3327F7777C77B311FEBFE2EF54EF8D1335BF3425E2AA01FBC1738812AF085 - A5578382777CC70F69C89F7C04887CCAB77CC8AF7CC7D7FCC95703CD97FCCE07 - FDCEE77CD2CF7CCCDFFCC90F695588031DC86237FDFA9050D648B08566C52BDB - EF2897AA05398E2FFF5693252A5F8624007EE10FFE292F7E4768F2634AFE5AAB - 356762FE688AA6698AA66AFA822518F74CBF7E2858022880F997DF7E99A761D5 - 068976E7D9BC2FFF0568F77AE06FDA8ED0C93DC6CF6A2A63A3851C4CFC220801 - A40F697480FCFC3F78C70708746A060A14A1C6E040830605121CA886E1438708 - 23267408F1A2448B1A156A6CA826CE91442A8C002869F224CA942A57B26CE9F2 - 25CC983267D26C996F87AD76B9AEF0BC828127A01C3386CE3051B4A889A449B5 - 9960AA4DDB04A813A64E4D62358904AC582570F520C1AB070F54C452295B7604 - 95116AD7221A8108D117B85F9ACC6D62B70994BCADCC4488F02F8F17162C2CD5 - 6CB98AC2020A8713FF3346ECB83164C40BDE0CB162014F27007DC0FDB2D7CC9D - B2CFCD9A0D18408B561A1F2F529D0861CD971AD808D4CC1E589B36EEDBBA1DCE - EE9DFBB76DDEB865FFDE1DDC77F0E4C507AA027584860A22BD0A53AF6EFD3AF6 - EC2ADBD9B2B50350879E3C3B34E043D4287AA54E9B3E951A35C904F857B766E5 - DA352CFEB166CDA255DBF6FF5B727D31575D764181575E5FF0E5571E820DA65D - 498F4918198512AE3299163D586044669D10D1D9009F29A34C88250E600F2D06 - 70704408A0A8828E2F181184003A34D626E343365EA4E38DB6C948A3453A7644 - 518E02FD5823926A84028A0E1C8C042194514A39E54C0EB4B30327B974105E78 - 40E5D0430E421935FF547A4E3DC55E545451259F56F5D9079658F9ED97565A6B - F917605C03D275D75D7A2DF857602C9803E561142866E8A186168AA8A2882E6A - A80B6F9080C2137D00E061679F5DD34C68A3B933C030D0D0228526A9E810822A - B421809CAABDADEACAAA08B8928D43D9BCEA5BACB0D6B61BAEC5AD8A9B72B9C6 - DA2AB0BAF6E60B02BEA45304744F644625B4D14A8B1D20B9E4828103D7B873CD - 0E0D045046198000820D204AA9C7DE53694AC5E67C6EBE895F9C6539C21F9D90 - AC05099E70C945D78106E605C52101EFD517A0821106E1A1892D36A1630B3BDC - 3005F5508682111C76324DA6A395481AC7A5A5A6C90992A4DA1B92BD9A5C728D - B9954C1BCA3CAECCFFA3CA2E9F6C23CB34934CF218473809CE74D3FAFC33D02A - FD7445070698540B3DC0D450867847996B66BAEEAD79557DF47D955FBC73F667 - E75B6EE9AB6781FEFE7B0814033318E8C1DA31DAA8A10A27FAF6A27173518F0B - 5AA0B061497D28004D68DA6E3A5A680314534C6A1C9C50848BC91EDB1BACB022 - DBF8E2B4214B1BE4BFCA7AF9AD8F5F2EF96CD9C0CA39E49C73BEEAE4B1927EF9 - E77130AB023841BBFEBAB43B113D8F493604000C30017489C1D34DA1EB9E36F0 - 5545759BEFC2AB9FD675FEE7F55B790E58D781D18F2DF09F0D1A0C25C31556B8 - 706387D14D590B46CC7129110AA0085AA7A39D86E20006BC10038B71C07873CD - 35239BB2CD35DE4FFF7FFE8AEBDFFFCBFE87BF01F28F80FB43C71856F7849EC1 - AE810EB4CE4FB6740D9318800E35C884EEBAE434F59C296A6AAA4A7CDA64B5E3 - C9693F5BE35ABE9E379756F0E95F002B5BF502352884396A6D6C835B0D6FE8A8 - 3768810423D90400A6B1B7628C06704534CD69DCE18318B4260EC8321DE65C15 - 45D3B5CA58A69B55AC6C25456355118AB7B29C17C318C52A2E2B1594FAC403D3 - A8C6982CA210DFBA602632F18C5C54AB01C2C884302AD13B0F4A8D5DC5B3CF57 - AE863C13D2C94EF86A0BBEE24297012DA14F796902D9C87607EA110C30D7A321 - 0E6F18B7436D5293AB88D4105430BE207A031AF60851A74C741A5A283106A960 - 401CA0F83929E2CFFF576334D92C63969B5BEDF296CB61DCB07065393524D08C - 4F5823329389122B05214B5BDAD27882C2871CF0C15CBF4BD307E76315775D8D - 8466F1407FEAC4160039EF792D945E24037608B315EC4108E3820DE329CF7932 - 8A0BF67441289F80874DF4E143D028CD118F689A6618A0540C00C5FCA0A84504 - 2C548C626C681821EAD0895274A1129555088E60070BA051991E4D2377BC031E - F1100D10D55C0A07F928BC106EF38FDDC4DA9C0AE9969906E86BFB821E82F292 - CE8061819DD673A7DA1243012EAC029EF4CCE1DA3A49D4B9B9400826C801114E - A199BD9DD21D45248D694CE30E29D820063AA8C2186AB42AB1A20E57562C6BCD - BC584B61512E56F8FFFB6201C358B9CBADD515CBD2C1463BFAD1BDBAAE1D5772 - 66977A224D31ED112A5203614BB7F92641C2B490E2A4690A55183617461260EB - 8CA16066A81D2EC462A89CB5E7518DBAB6CE7676A8A4FD2C5127B3D127A0711A - DE00D1A648D431D3D8230DEF3B9CFC56050104EC76A1BB5D95AD76FB5B866691 - B7C6ED6DAC844B5CE01AD7B7C92D2E73958B5CDD42D7B8C04DA01D7EF12CBE72 - 775A35A00330E8B08E42ACE3190DB016061A50894A64A212EBF1E09AE2C35211 - 76E5A56119247FD802D9E6999340D183E4F4787A889E6216A8D9812782871ADA - A31A2AC10EE6C264864082CB7CA213E050002D34C6318D15C394A959CD0912E7 - 45639D15AE250E66FFABAE2857619998A224667114E3A00391E8B5BB36965204 - 3B30C19254F0826578E615AE7958F9B60B90F62D213865EA1FC83A6F917CC24B - 2B746A59750EF8B295441B94EC895A0A74D69EB1D0F297BD0CE6318BB9CCA825 - 6AA47C68844FF4E1B5A7016888AE0A50292C51077118C34431F15CEAAE4ACF7C - B6AE43FD8C0041133A5682369DA0875BE83E8B310E0C4884058078E349434876 - 1DA05D496C873BDDF10403ED312C0887079FAA01123F8C8DE909F76BD33D4D16 - 419515301606EC5307A5EDC05ABE35AE73AD6B5D7B56D7E1F8A4A4468246BDFD - A2189BB2EA869B510C5A1823354C84A52F9E38458A4EF4C4D4BE36B6AF2DE38D - 3290D2DEA6CEB566FF57BB6738A30681E834EFCC844D35F9712B5B819337937C - 16FD925340E6EC93ABA7ACCE581FA2C09A3DF00A3E1BF02F0F9C0B050FB83D0F - 2EF033137CE15F8E05DDECF604239C6233C556865507904A24A2A6A03180658D - A47BDC918BBCE4243FB9C9538EF2959B5CCFCA4580EA44D287ED7EBBE631B134 - A601A069671462779F5E379189C74D78DD972C84548BBD00C45F4512E89C5226 - 5BACA38E859E0EE2CA97DCACAE1BAE755C239CEBBB3E73C23FD9C3F075620EE5 - 13559C676B1A0FBFEF54E90074B6E30EC5E122DA1574BFF670EF4E5119AFE117 - 98B139E05F12EE4B8FBBDC4CEB747B3E1874C596FAA5F83DCB6397D73C7BD705 - A74FA77295A73EF5FF7E5BDDC0D8F9ECC3412FFAD0937EF4A62F7DE85770211E - 0A7B1342FC6733AE31220D9B868874365C08A8BB5B97035AE5BE5FB9EE4F1EFC - DF13DF747C5781A502AF7C95E0BC76B7CBDDEED4C5EE1092DA7812D08FD1E965 - A7254F1E6C7BC23765F79DF9016FBEEA0CA27596BFAEFEF5B37FD7756BC186E6 - 606110794AC31A1B8031A4F0821330230E6FE72D046082AE40C0001AD7A1199A - AE08609F25E071256001EA96DD019A020E1A03EE9E032E2004C64A08CC98282D - 9F079AC4E0E59C0D909BB9A1DBCF4D9F3671C5BB1D19F2A0C5BC711FF3505EAB - 851F95451DF971DED9645696A1DEE9F5200FFE600F02DB10500C105DD83064D8 - 35FC0DEDD1C200F8FF00C89C8A2A40801462821456E1145621155EA116062016 - 76A1157EA17081A11566611872A11402A01996E118BA82A37180318CD2072A9F - A5194D49D4C2EDF01C976080F4C5574B0D9DE391C5BC40DE92C5202240427FD1 - 45231DC812FCCB2409184F6D9EE61D82F9B553AD7D5EFB5D2226AA5FC4510C1E - CCC13470863DB803685CD5680CCEA82C512A84401CC00A17A2A1DD49610412A0 - 70C5622C36E02C5621CB9D61C9BDA22CF2162DEE621546A05D318093FC5D1C02 - 9E2D444226D842B5A017063C232068C33248C032F4D17C551FBC35D659C8C201 - 0841377EA3378623388EA33896E31B08C11BDC83D4695E241658255E870FC623 - 10CEA30FC6C20AACFF403DE0821DA88005C8DF879C929C715831D416A9984A08 - BCDD17A2A115A22143E2A243EAA2184A57444264424A64C951A414EA4308A4C2 - 1A90C431DA1C77EC403B8C947874804925DED4F4E10805D2F1240F371E004CC6 - A44CCE244DD6644CBE810DB263244EE24FBDA375DC5AC005A5C10D65C2E99A50 - 1665D71DE550765DAE8559DD5881B3581CDA75CC8665956D7955088C81DD51E1 - 56A65C2DBA5C570E1A150E1AC9FD2257B62217D6225A1AE058822558CEA2CBA1 - 431C5C820AE0C147D65C1074C748769A4F78094AAECB7CF5214B12DDE371A337 - C2E4617E2362C66462362663C2643AE6A44EE2603BFD1B76D8E33D66A6666EA6 - 6662E6667A266786FF66667A2668C6C2C440551FB419DFA49DC6698C32108EFE - 315111A443159EC342EE966D06E03900E06E82616E42C06F4EA41806676D16A7 - 6F46A471F5E6198202477AE45D4E9A0388A40368099095141F5C271FA0207D2D - 169C3842F6ED07373A414C8A27798EA74D9EE701A46337AC2723685E1660417B - 26435F44000B78817DB2009404A568DEE352F2A77E66667F0A25806E66801ADC - 66AEC21BE0829A6DC227BC963D1011ED91C69BD1826AA4421168255A8EA57469 - 28870A5787F2D68766A8878E288892A88896288A8A281B1E810F74E273DE5803 - 884B2EEC402DD4E806344019144203140220148225A4E4761A4FD10D123E8483 - 2814C1039080925AFF01935A410B2829095801944AA91054A99556E90190A713 - 886738EC03327CA92CBC4198BE819892A928B8C03188829A8A4222E4E77EBE69 - 66F2009CDE233164669DCEA99CD62931A419A58003115C18341443FA08D440DA - 836A04819DF1E2707E611B7CA16D366A44FEA6A41AA7A3522A710AA71506271B - 72A4054CC38B76170670891498C43C3C430DD400A7750006C8C73572E7F521D9 - 371D433FC0000C24400B34690BE46AAE3629AF5AC1955EE9966E831308AB1314 - 8129FCC00F68C0793A6637E6276886E6B37266B4AEC0B46AA6C1556B67D68313 - D84DF8F45329B1E66C0D4E1A18800F18CE18F8C243A6211992211A52A186EAA2 - BB7261BCB62B5A6EFF61BCB2EB897AE1886A240DF880B37C2A5F8560E195A04F - E861BBA9607DD9D7E3C96A02C0C036F06AF8EC6AAF322909FCAA956E29C66E69 - 02288206742CB32A26C80E819BC6E90AC8A99C6AA6C992EC3DA6ECC9922CCB86 - E6CBAE6CC9966C2C84833EF2231E7CE22FFCD3B6704A116D4A69D49657190286 - 36AAD142C0D1266D151EAD143E2AA32EEDD3422AD42AAD1432ED4452EDD26AE4 - 11ACC113C021C02653A812CD8E018001D0C3A9665078B0AA552CC34AC209F6ED - C7BC1C03ADD6EAAD32A9AE4AECC45A6C95662CC62640B2FEC01FA0274D0A819B - B6ACE1AAECCCAE2C661EAECC366EE2DAE3E2226ECBAE4038488C8276EAC5EC4D - 12FECDC69446B3A1FFE2A9D89DD42AADD5622DE9222DD4562DEA8EEEEAA26E18 - 9AEED4BA6EEB42C0186C24D7D6D8D7AAD1331402B864C20EFCAE33884B8C3282 - 3014EFE2594D7D7913BD5081ACD2EA36402909544CC5F400F442E91090292E90 - 6982BEC13624C0367CEFF75641B27A2C397A637992272EB4430CAC2F76CCECCB - BEAFFBC62FFCCEAFFCD6EFFCD6ACC4A8D934BC9EC6219B9CD102E1D89626B89D - 2B9CAE01B7EE012730022FB00237B0EB6EEA1A5C46EE225374B6036071897562 - 679125AFE39545F6AD05F3CE6D0268010927C276A1002E90B00A6B012E1CC103 - 1C8128B8B00BD36A15CC2D0C48C2DFFE81DE0A41B00EAB0F2780291CEB0FB46F - E2CE6911F3C0E472FF66122BB111CBACC94ACC10EA13A62061FA94082D208131 - 1843419D800EC8C118A8AE038731038F710267A118B78119BB821C6C010748F0 - 04A7515EE60420F0E5D0981490BA94C27E279D8470C31E81160CC11FEB150A90 - 302017322E3C0022273222372CAD366C024842C776EC10E86D96F2EDB08EEF1F - 6007126F3239F040279BAC276FF22697AC27BBAF289332CB22F1CC76F2279FB2 - 9CB272288B3239ACC036E002A5E0816A86C835A49D4035C387998A1CA4431B0C - 331917F3191B33321F331A8F4193A880A7BEB1035D89486A09D1F484495E6712 - F081DA0ADD0879802CC44BF6C96D2303B21D68C14990C01F0F412103B2282872 - 2233B223F3832408FFB106ECB0256BECF86A8026DBAFFDAA32FDFE733FCF3240 - B36C2CD48D1DE48037F0D36B158328722E56AD9214CC03131D241893313137F0 - 453370461BED456F74327BF430A3711CB0314741730365C2A9EA4121E8288F5A - 0B1D2D432508422540024D1BE21240C2127C414E37124F43C122FE3414DC4150 - 1FC21D1C03331CB528E0022ED0002EA4010A38350D3C402AD0C03148350D1C29 - 331CA9286475115481247CB524108224C4812120832150023A0A012EA4350F0B - AB5B0FABDF766C265F07278BB25D23312CDFB55EDB755EEB752BEF3560D7AC0B - 8844D7FE29882803E79248699CC635A8C82BC5012684B4644F76489F0365B781 - 655F76656BF66667FF00676B766663F6676336EDCA402AA8006B99B4EB84AD8E - 5190D9A22A06E7C17CCA765FD07604D8366ECFF67CCEE73FB0020CD4B0F81EAB - 10232B7117B77123AB22246B1077C01F90803A0F413BCBF00B3F4011FCF6DCD6 - 302447F23E0F343F73B777AF002B77B7FC3A811058810A28803794CF2F3061B2 - 95E2E00CC05532831C886E1B6400D2763447DB7748DF3747F7377FFFF7307B76 - 804B368077B480E377811F381AEB43115CC219759B6A478BC0661A099E5B5FEE - 368667B8866F785F9443ADD26A2487B8888F38892B421037F71F6B813B27F211 - 88F07563B226CB3239CCF85FCFB85F7B328DE7388D73728DDB385FB3B28EF3B8 - 8F934341E3C210A4FF413F76C2DEB03729360313C2F755C212D27E83685B7606 - 5C797D7FC39567C03758B996D7B7687FC39753B967B3019873F995B3019673B9 - 659BB9977BF69667809B67399C7F399A5FF997ABB92B30C016A4C13145B8CF34 - 5FA6DD61CF751A871F3AA277B80D6BC0DF32BAA3373AA43FBAA307B129FC0120 - 93703B2372A653B70D37320E6B375D9B725EAFB23F933A2C9F7A2C93B240AB7A - A9BF72289FBAA9AF32391083B60AC12D138137980F2B61DCC69422164BB40EC0 - 520183399987349C9F39B19FF9988F794817FBB13B7BB327FBB10FB867173BB4 - 573B9863C246B20EA04FCBB5FC840D1081B8AB430080D7E1FD44A2A7BB867B38 - 0C30030C68C01FC0FFBBBCC73BBDCFBBBDD73BA3FF0032A0333BBB70743F8028 - 10430DD370754332BD63878EE30039283C0EE078272B3C90CF38C32F3CC5EF38 - C43B3C8D4F7CC4E3F8C4437CC6B732C513C327E9A305540A1E28C03034831464 - DCC61DA13BBC8026206A1C40409CDFB9CD6B399ED77CCEEB3CCEDBBCCEEFBCCF - 6F79CF0FBDD0177DCDEB8369A340EB743BB484D477F4C4D0F884834C3DD557BD - D55FFDD50BAED6A327898BB8227CBD2220C32974C2D863070E1083C4A3FDC2AB - FDD9A73D2BB33DDCBBFDDACB7DDBCFBD27C7FDDCE77DDBF340DD9343E5BE811D - 40E5270E915559D5C69D8631B803B0FB5F80DB39B26FF9E3C7797DAFF9E34FFE - B143FEE59FF99A53FF7EE6C3F9E6433E338701EBD01CD343481CEF655FFEC44F - 603DEBB77EEB9FE3632EA6EC83ECC786A31374BDD77FBD304009C5777CEF7FFC - C5FBBEF057FCEFFBBEC5173FF27BBCC62F3C0F986622DC8D11B8D67AAFBC1202 - 4E874143332C5110308021D0FCCF7F3FF887BFF88F3FF98FBF3E30803195BE94 - 383D498A0706B83EFCC7BF606C3DFDD3643EDF7F24837DD843C9F203040E7202 - 090E24775020C283060B1654D890A141850F255684A870C5035C242CE021E20D - 5A3391CD068C143900A5BB342F623088832943CC0CDF64D26C3333C34D9B3875 - CA8CD913284FA13B89E61C6AD46751A0FA8A705041044054A953A956B57A156B - 56AD5BB976F50A60FFC70E5BED725D317B05C3D93C2CD8B675FB166E5CB96EDF - 1CB07B176F5EBD7985DC15F24643E0C03F34FC305C581136C5C8BE6E8D3871E1 - C5C80C71245C78B932C1CA0337677E3CD921C2849DC9117B4063088A2778FA78 - FB35E0DA3577EE4E921C408BD6CA540C42D4693325E637363E83FB1C1EF37886 - E4C071CA3C4ED37974E4C5A52BAF9E3C794E303A52A998D3187C78F1E3C94B05 - E70DFD2F7B48EC415BBF1E498EF8F3E5D7A77FDF7E7EFCF39849EA4F82042B02 - B4A2052B043C304000855890C1059D7810C207090B6C9B082D7CC0095CCAA3AA - B4CB20EBF0338488A1C843D022922C34114BB48C45727858A51E5C50E8A80F70 - 1428A6996B9A51A6FFA4926819A098DC7CD0249522C680093AE26EEA89B8E698 - FBC9A824976C8ECA2477BA89BA2A637A92B86FF491E11215C0E964C332CD3C13 - CD34AF32028604DA24D0C0168C90B34003E134B0C1060FB0D0896D04FBE18005 - 031DB4AFBE484093B286325B74331319D52CB24725958C22CD1AF5CC521E16C0 - C50E157EF1C6C6617E6C86B666D2E0F1B66206F0E185201830C4959B809B3583 - 2769BDB5D65CB794C9565E7DDD95D6E17ADD95585D739DD54B195249E38953D4 - 7C16DA68A5ADCA0218AC85C14E025BD8B6CE6CF1CCD3413E9D98500327F6F24B - 0834217208870F16FA80B475C981D7DD75DB3DF15E79F56DB7337ED725261C17 - 6898B1934E40A265FF479214462948845F48458710C6C0B2562B81CDD2628C2F - D61263646BFA983A5A6742F6CBEEF09816E5945516EF896B13001040398D3042 - 40986D7EA32E9C737622816D7CF639813FDF6070CFA2CD3D808676628841930D - 37A397337AF9851AD37E2B83D7D2A817D53AB30FB0E62CEBABFD9D37DF7EBDFE - 201C1A3822021C707E81A6A4520750E6245AECD1ED0406E48069BABE8FB5CE6F - ECA2C355F0C0732D1CF0C49F1436574C18E80EAA95259F9CF2A8AABD568BCC71 - 31422A1570C91CF4CC8F78E00851461FBD0818AAB8B68A2A8466F0C10A65E799 - 5CA7B5961A77AFB716FB6BDECD9E1A6CE071EF7A6AE287A7FA6A78891138B527 - A6990624914A3D29FFD562A49887C88831C1B2D75D8C656ECAEF7F4D1C719F16 - F7D57BF047CE357D5EBD6C4A85932B9F9FFE675B76B3082D86C8BC85CE33DF1F - 805A78C0000938C070B8AC4DAE1B4CA00425AE6D4CE80F1B3A1BBD7437C17E4C - 706A15C4E0048F57C1766DD0831CFCA008CF96410EEA0E07A6498D05BC410405 - 4043553A5A1849EC360029B0246247BAD81476011CC60D078887B38E0F8548C4 - 1FF6B05653B8151B1817855DFC30035150A272901885BF31254C447056FDB8D8 - 45F154AB1F30E807E83627150BE86F08004C63010BE8A63685518C84318C1360 - 07A10A3D2801B52B4F098FD72E1888307914FC1A06FD553C1286D0901AECE308 - 3918B558B8400B9DFF52C0477E8123BA2DCC1DB418060CD330A413E8C01010C0 - 1570BC07C5201211958A1B1F29A7182CEBB48F56B064DF10ADC314A780C38BB9 - D4E5568C908023F8920689A08116D2A0826226E201C7A0C16994F9005114E199 - D12C427FAA20890414E1084588C71F90F18737E0C241B3BB631E0313C13D9E10 - 9D2364243A41C8CE43BED39DE974E70801F6864E3D81086FC3CD25E73612BADD - E686AED2C7379458D0631514A10805E214AC38AB829EF2A0065DA811AD73CA84 - 4E740A4164C337EAA003A7C86F9721152911E6F18292EAA10691E0C41F4CF183 - 961A06A63195294C0BF3871D38A01D0E78C01B06280AD23D2075ABB3D6EA2421 - 180D487082F3522AFF09EFE52EA7C6739D5E9B57521BE954433695AA4D6DEA52 - C97636626CE30D89B082028CC0B64AC6466E2329863D8C618087E9400EAE0096 - 129F58D1213231891355CE14D9F01B5ED555AF1AAD285FED2A58C14EE11B71D8 - 02079EF009913E56977878C11A5EF0023DE8C1162B35EA6639DB590DFC21080E - 704010D848C0232070A810446A3C591BCF2E28B29D517D2D6BD5C9C713D6F603 - B32DCD6950A082279CA79274BB641A6CD3B06BF82006A9D81B4D101A0526B2E1 - 894CA42B7495085D364C77BAC2A2AE7399F8C4EC5AB7BBD7E5E173A30B5EF346 - 97A1DF1883472D60842D4216BE9503C70B3441DF48D420B37F906361F8BB5FFF - F6B7A6B618AD037CFFDA5302A6EE5AD64A80240E73D473CA7383268C2A3C6D5B - E108F791A9824CA486BDC68F7AA06646A052C02F7E34BD85D9ED6E9A38811CE4 - 900DBF56573978D5AEB032BA57543EF7A1300E6C8C354AD8E7C638A34094B178 - D98009436CE105F18BEF9227D707153C590539B5C509FE504E0DB8E1B357CE32 - 96ABCC652D6B801241D04324F4E04C33FB5414C410AA828BE0BA2A9B933C679B - 6D6EE55C67AFCD19CF76A6F39DF59C673EFF79CF81F6B3A0FB5C671C84236D76 - 78C21CF00012BAD1869F3CAAA11488A487BDE595C8E7AD2E7AB97B5EE94A31A3 - E5153579491DDEF04AD1BB0C956E90D910856F1C990316702C93693DAD16D8A5 - 2FE7D2F5AE0FF040FFCF76361E64D6C30E5CA30005ACB6B5C956F6B299DDEC78 - 1243461620AB375E588C47D78624AAEAA48A9961084CF455A2431E2F5E753C64 - 1A8F5BC8E9E6F1BA7F8CE320F790DC35BEAEAB15FB82C6D61ADFCF32C2A070ED - 177FF71BE0FC2694AF7F6DD41F182212640E02389EA0006F48F0B511A7B3C429 - 3E718B571CE317D778C639BE718F773CE287D6080A90C01A6F0C0336B331094A - 7223855AA818AEFA102F4319DA439B4BD1B93D7422CEC7ABF39E5B17E7BB40F5 - 7669BE73553F71E848AF39CF710E5D4CD4E1046BC065BEA96EA67DF31AEB7B11 - C2364CF127AF0F46307F10F60E6C646C64F379CE800679A0D929F109561CD06F - D7B3DC3B4EF73D57FF66E4EDA5360C492237940009376E8DC10942908E73D4EA - BAD7456246599DE3EAAE9AD5CF4D3CE3273FF3C483DAF238766E4641FD782626 - 36156B300299AA5E7AF15C3DEB58CF75A0085EF0C15062030A3F8FD91F4CF12E - B85DD0B7CFADEE6F1FF1DEE7D9F7B8EFBDC6D14EE8E20F1FF9BC9F38EF7BDF8F - 0AD9210D1678826BEC511219F61348F6A08514289D376F2BDE893C14BFD03F7D - F3772F1DDEDE15FACDCDBFF31ED69C87520CAF12C35F74F233D1D54716BDE9F9 - CF15141CE108B6E10810A440EA244110840418284FC4859C7EE00F3841058C41 - 0590200227300291001A8C4D019EA013FAE013FA6043D62EF82E8EF94610F996 - 0FF8740FED5470E3FF58D0044BB0CE92CFEDBE2A11426CC4A00161F86986008A - 48F4261BE08DF22E8AF1AA8B8776C1E6E88F088950BC308FF29850098D50FC2C - 2F08274FBDBA63D6FA0F0BAB0205DA0406B6E14EE88466B2A50049005CC2C542 - 8A4011CAE9D82AE7F7DA5000DA100EDFF00D6F4F0EBB600EE1100FE3300FF7F0 - 0EE9D00EFFB00EEBD00FEF30106FEFAB0EA0537E61F6864119E4869F06E06E0C - 207BE480C6822E0A2E51E8948817C26F1397CE138D2EA378A1D52EF1133331FE - 688E173C710A3A5114A5A815978E0DE48003D2E03BB2D016A3620B154C0CB9C5 - 5BEC840486065C62A74FF0488EE08C726470F7BAA01FE8701999AF0F7FAF1995 - B1F990711A6F2F1AFFAFB11AFBB01909B1F704201A77EF19FDB00BF8A10BEAA9 - 0615D146ECC11E46A2476EA386DC614874200EDAA00DE66D099530FE52B1F2C6 - AF09258FE6A6300A8770F3F6D1F31A6FF23021046840053AA1176E310B73B10B - ED845BB6452225920CCB904F0E809C3E8B7E00D123B9F1F740F20FC5710F43D2 - 0DF150103FF2240B31250B711055321C9C60609060FAAAAD1179E492B2AD188C - 01B92CAD0E3061158D2EFC840E135731FED8CFFDE82F153B3129D72FE8E20FD5 - EAEF12A36029418D296F0E21D740016AD121F9CF0E5C860486202C676666C2D2 - 2CC5728D78EA0D9C402D7BC62DB72101AAA0183B321A4BD22EED3219F3302FAB - 710FBF110FEBF22EFFFFB2F7F8E1AB0646058C201D7304DB8A4B55DC2A0840E9 - 373491FEC02F15C92FFEAE6B1315CF282D13FEF4F114770EFC42F33247933341 - 4DE80C4107ECC002BAB2FFB6D04D8E2074480F00F6277434E7CCCECC8D5CA6A8 - CAA9235D52255BB21B3DF2255972247FB338459238933338819339ED50000420 - 1C1E6085A44D3D1A51364C4224ECA6936200AEEAE01B9812FD2CD129E96AE736 - D129339113851213DD8F3DCFB33D8572FD74C1104EC0073890354B0F22138036 - B56013A482043EA73671213A0D6C8012EC5A18ACA6E8A7399593418D931B7DB3 - 411754381D542587D323D1661B124135C1611A5EC81D62A3367C2448A400B952 - C1D2666E2AD96F0AFF6661285B942845F1326761FD8E9246D7F30877A11559F4 - E66C340A74F4124BE17150001C1AF23EF38D04AE651BD2487FA6222CD1328D48 - 400B5C60A7A694A7DC2401DCA41F128010684A41E5F039BFD44BC1544CC1D439 - C3B44CC9F44BCF744CC5544D9FB34DCD344DE3744DE5944DDDF4D068A053A4EF - 6D54053BB313374C85255E251B086A2ADFD3479D92452F71167861FD78615159 - 14527B545213B54779611321D551DF53512775523DE171C4A448F34D05688054 - 83699862A0B2E80B624441078E40075855079881191840566795196E41120C21 - 14B0A9087440188081121860EA28C71BBFB41FE4F058EDF0589F33598B95598D - 1559A3F55995555AFF9DD55A97F55AA195599DB359B1D54DADF55BBD954EDD94 - 183204058C013D5E6824DCA124EA461DDB8ADBC6A01452D44541F33277AE475B - 2DF166A1D5DC73FD12D532FFB55F4793479D722A3D014C942C54A96E1ADAC161 - DB61A6225662FB4B0738A11DE6C11BE6E11AE66100E6674E05A00AD634649F73 - 643FD6644F566451566557B66455D634EC0009D2F54F1386242E0961E051C518 - A00EB2612A59F452A952527FF6521D355385366827B5688BF6687D3668959669 - 9F16613F6A61F3CD1B062C08F80BECB2166BB776427E800146EB05ECC1066CA0 - 1668C16357166DD3566DD7966DD9761B86C9072C001C5C086E3E34446F03251C - 1332E96F3D7DD46FFF77EE6F1B7553717451852E7025F51C6414709D484619B5 - 525B4D4765F4C8EC8D2BA776C9C041B41C2006FEE0CDB2AC733FD77343B7621D - E005A0C106E6611EECE16CDB566D0980755FB76D5D17655DB71C13AD23DC066E - FA94E570031E1FD3DB8832528397538517536781098237538917691F757893B7 - 5291B714D6EB0564CD72AB77C9C09400C45565B3177BC5947BD754763F367CBB - 1776C557005C377BC7177C9F931FC2C19E2CE01746AC927A4461B2B318A0613B - 57AC0ED8E01CE8D55FDF13511DB7510B1780772E71FBF73CF9557177815FDD8F - 5F77A114E220157C6058ADD78277E97C09007D35388337D88335188441B88343 - 988445B8843D7884FF4DB8843B38853958853FF8844398854F5800AA214B8309 - 05A081DA5E8354E8D74F69E11AA48013564C1FCEE11198E0128D96458F380A98 - 4089A3808999808981B6892F558A9118688D378A8FF85191F88A9B788A1DD513 - C0A03B7A41362F188DEB077D67F87CDB788DDF988D4D78865D7885E11885EFD8 - 8DF3D88EF5388E5BD88E5D388F61C05C55C0D82C00096023446DA33DD220062A - C1070BD57001D78BFB56929BD8928FD789B09828BDD8472FD99289D693271993 - 852E1B1840137E611AD25895E927865BD9955F199663599667999669B90B7AE6 - 01ECA007D2B51840B466DD750024913B43A01418CA782D19156681458F579927 - 399997B947670115FF42999A45B99AAFD99A77A10E18E0057E6195BF79726A59 - 9CC7999CCBD99C637819D3660808D9D8D4316E6AE3478264DB56CC1330E11239 - B999A3199A99F998F9D99AFF199B031AA075A1A35000A4C019A1A3E59C69990C - 62B9A117DA951F7A9CC5C0A13598188E20117C207EDDA69763A35D454219D491 - 163CE955E6350A2AE0111CF58A8DB79F535A8B397913BF58A6B7D88B691A8C6B - 1AA76FFAA6E5007212DAA79FE595FD3886853AA821FA9C1F9AA86759A25D3701 - 6A109FAA8D1D7750244814620CA11438F978B33A8A7901A75FBA8959DA89B5DA - 8BB95AA7C3BA8AB31AACC19A8B57BAA362ED0A7F1AAECB830024BAA1EB7AAE41 - D8AE35D8AEF7FAAEFFF97AA9FB1AAFC9C0AF017BB0F5FAAE0DBBAE059BB0175B - B0FF9AAF43B8B119BB1F128D90E7C06D06E0434DCC368CE18620460EEAE09E8F - 9809469BB4459BB44FDBB48D77B455FBB48FF711D67AB453FB8A633B994B9BB4 - 8D97A3A28E73E29AB7C723AF015B0C14DBB0191AAF0FBBB821FB847F9B9CE9DA - B81DFBB88BDBB9873B84C3E834C4A446E637AA19A618AC47125DC510FAF7B5BD - 1815641AAC6F7AADD39A09C67BB5C37AADCFFB8AD51BADC51AAC754182BDE38C - 7B1BBFB7820C823BB805BBBFC5A0BF1B5BC0079CC0079CBF0D7CBF0B9CC0035C - C11BBCC119FCC113DCBF131CC227BCC235F80806061AA6EF17860147B0D31D5B - AE07EB605E2BA0B5FFC37ABD49DBC45B9BB54F3CBD1F61C56721C66D3BB66FDB - C64FDB5335217EEE3BBF7BBC2A0E1CC8259CC2873CC88B9CC81BDBC893FCC80F - 5CC0955CC92D7CC9A3DCC929DCA273F917F0E03C7237917F043774430E0C6117 - 8E5817563AAB477BBCC71CAC477BCC4FFBCC5D5C17C27BBDD79C09C6BCCDD59C - B4C7FC88E5E004148DC77DDCCF0120C14B20D0853CB805BDD007FDD0139D0C0C - 7DD11B9BD11F1DD11B5DD1215DB0217DD2237DC22D5DD2375DD33B5DC0FBE101 - CED5E1A88F66EBB719ECA118DC41135C450E3CE11C66DBC54FBBC5639DD64D3B - C5693DD61FC113E4600B7CEBCF7F5D2A14BCC21D9CD88BBDC98DDDC1871DD997 - 9DD8037CD80920C3FFA16F35A6A1C37524276948556E883B99A10E8CB889CD7C - CEC3DDCEC71CCFC53DDCE9FCDCEF3CDDC11DDDED7CDCD37BCEE3C1A37EE1AD81 - BDC7C940121A3BDF057BDFF15D0CC401DF2B5DD0F9DDD1FBBBDFFB7DE01B7DD1 - 4B80E119BEBF139EE1099EDFFF3DE0055EE2FD7DE2C521E22F1EE1233EDF1B5E - DFC900E00F9EE23FBE04FA9D007C29A32789FADE991D6F4354E6210622A1A451 - 7AB4571CD7735EE7771ED709FA04ECCDDEFF1CD913BED21B9CE88D5DD0935EE1 - 1D7DE905FCE88BDEE9975EE98BFDE89FBEE91B1DE2A3BE1FA25DDA6C44CBB16D - 00A0011AE0D5B3AFDAB4DB1DDEC77BBC8F18BEEB3CDCDBFEED5B5BCEC19DDDE5 - DE1096C508EA3DE8FFE33AE241DEEFFB1EF0933EF0175EF00B9FF009BFE10DFF - EF157FF017FFF01D1FF21B5FF2195FF109A008F0D4B75C0307FBC9D4F1560A0C - 803BADFAE699C0C4717EF4D3BBF449FFC4E15EF54F9FEEE15DC55B5FF557DC13 - 4280038C61B7F7BEB729BFEF1F1FEB7D5FE9173FF11F3FF08B3FF8895FF1B17E - F80B7FF9113FF9FDDEF9135FFA0BFF86138190FBC085EC4119A4C024886BBB85 - C401F47789C11DBEDDBD02D09EF4C93DEED19DFDD31EDED15DEDD75F3E53F309 - 741FBF1B5EE325A104341E0400A284B81204074A228830A142840313824078D0 - A0C2810F134AB4C850E1C185154B6C2CF1F02248811E497EEC789264C891121B - 12807184060A0B78FFBC29B0D7AC993B77CD940D18400B6833039A523130448D - 4905A54C9A2E5DEAB4A9D4A752AB5ABD3A152B54ACBA0C9D48030E80D8B164CB - 9A3D8B36ADDAB56CDB023076E9928A4F6EEBDA254BC446A646EFDA79BB0B38F0 - D98264081B1658187189C289172F169718B2E3858A2736BE6C98B163CD091B77 - 2EF8B9B264D198278A6B581AA3B89824543C01E70D1ACE9CB49BFDB4472BCD8B - 183AE4C4D32515555426C29B0A2F0EF538F1E5CA9B2F37CE3C78F4E3A518A452 - 81E794E0EDDCBB937D2143068A69DECB1B60572650203DEE1418005B3EBED991 - 0F4188B37F3AE4FDD305F3D3E7AF1F7EFBE577DF7FF51978DA800A0608A04005 - 1E689F7D074148DFFF7FFE5188E182163E781F0862149140222A1831476C035C - C3D300B401959B14BBF5068B7115CCB8142A34D6389D53C2DD88A38D333AE723 - 8DC709C95C1D0C84F10B5DF22DC9645936A493C21A733409D82F99ACA78E26EA - 48E100307AD042657C0D919420990E8E39509AFD6554669BFC81861F9BFCB9A9 - 669A6F9279A79D7566041A686AF649129C73068AA79E208913CE10C6BCE6CD2F - D0A8B8E28AB9F9A0C9097294324B541520F7E323C7794A5C72342AF5E98C4C80 - 8A0AA84A99AAAAA9A90A478D273AF8804798B696E7430A5192776B5BB404D2C8 - 3C626DA2402481B02345AFDC81C06C7DCD3E1B21B4D2420B92B4F7494311B3D5 - 46EB6CB30F4ABBEDFFB6CF863B6DB9E6364BEEB9E7EE07823420F4130E0D3E58 - E0CD34B129E3CE35B5FD34401A03CC13831EBE3155C123A1DE68B08D09171CEA - C208377CF0A605D3E830C507CBC1C12FCACAF744C7D33CF1CB13BD88D5C7132A - 9CEC8D92647D02B20A9AE813E5942CFFB2860A6B842CD634213F21163821AB9C - B302EE48610F1165C5363434468B6513270D04320F34E04C638C1E653462C32F - 0A4CA3C02FE07402401F5D1BDD09380A6C0D406C06A86343330A801DF6D94410 - 618FD26381038D14D7FCC26B5A1822882EB78746C8A1E08443C8EE83802B8EF8 - E185335EE1DFF525DE78E4DA6618E1E0035601030D76D04B84028F36A3EF8A40 - E1368F263A84F0DBFF533BBA9E2390A1AE9AA3A9CFB94A3BEE36D6A1831D4F7C - 32F2C6DCD9B0C51A3E6C91C2253CE3E14E2432A420C3162A4C295627781C1FBD - 0C70C0B106790A8411420A7040AF3C002A8421C31A9F7412C6169718113C0044 - CC034C200DB0A3CE589D4063CB3B6594B1081B84050036A8013B1A5006762CC2 - 0106D083FFAE060C5BFC22128BE0445814A0073D18407E3600C60EA0D1877634 - E27F4F8BC42FC0660F5BE8611EEA6007309255364E2C223DC01020DCCE2289FA - E410243B84560E3BD42D20F2905BCC7297344871B91FB64B874C1C22B37AD843 - 660911044A4C6213A978C52A669189E3C2E2B6A6E82E208AA173899889D9A0A1 - 0C9DEC6B00C528C6FF00A4502906D44117A21A95EC6477232011294843CAE372 - 36E51514884C78DC89440AC0C0801B8C4F050008C3F8A20786F1716069C5129F - 0C18203EEE9147056080DE161830BE4B80E3139158641A30B986F811F07F3588 - 4423F4003703CCB00C99A85F196C013675D4AF010D784720DA61033DD8EF698D - 88840232D18048180300B5F05F10CA56835B9EAD0681C8C40E5C59063D280000 - D7604720805186A7ED0000BFB01A3B361089FF39C01E7E7357119BE5CE25BE73 - 9EF2AC673CEF09CF7CD2139FFBD4A73DFDC9CF7FF673A0022D6840F15985221C - 4144AF7154506C1329DBD8430A36080233EA500A57F9E8554EA991468BE329D8 - A5CA549B220E2A6CFFC4C7519574A4BA90430C7E47C8ED6CA193C97BC116BC91 - 864ECAC03552A029237B1106F1C94505418864F700F0849ABDE6097A801ECF54 - 80C92D6CE1065BE0D95888608B32BCC318DEB88601FA203FAB2DC200BFF8C50E - 7AF95570D8C36965B0813114000E5A203310EA80C62F4258066034A30F4140A0 - 36BDD1880668A20FF373C72F88000EA705021A0070C70C1B508317B0AD0F3BB8 - 1A27BA668B062C629C6801011299F559CF360B89A41DAD68435BDACF9262B5A9 - 152D684DFBDAD79276B5AEAD2D6A616B5BDCDE36B6B9E5ED6E7B0BDCCF8AA10A - 0B4581D7CC368C13D52627031846312855898BCEC2751243298FAE8BDDECF228 - 48DABD9127AE03B4FF98DA251291AC2A397B31D5288D85138A5C0339B5B753B1 - 18A0BDD41B8B31C200CA14680C00F300031860E65EB24CA31DBC74C036C3C65F - FB711600F6A0433697668006FC619939DB40031A9186B10C40AB2F98C622021B - C05F20305964A1853A16C1CB6536831EFF334027B806D8BC92D518956D0030FC - 46CF67B933B4E5FAAD6C4FBBE3784E8BC7A785166977AC632243EB88B5ED316E - D5E5592143595AC495890AC071465A2CD736B468E3357CC09B39EEB1A4A4AA2E - 75CB8C6689A57948365A3375AB23C81B8AB72EE90DB058A6BAD3E0F5140E97E8 - 434E53B005B012707B6BA8D51CCEF7491944320556054710B667DEB218230807 - ACC13C96E680A7E5FF2F6791B8F0816B814077C04D01166E048901300D70B603 - 1A6508023577300F1B6BAC0FB470801E80018C0396014CCD404F2406C860FB6D - C0161F1EE63BFC365B528C83B4E328006D59EBD9D52E9B14CE4EADB459DBEC6B - 8BB6DA456E2D12AB3D6D65437BB5D59636B7BD1DED73475BDCAC25F7BABB7DDA - 67C3DBDDE82EAD1812E0B934BC4674C3C8094FD2E80E5AD8C31E69F0413B9811 - 8F5274D4CC15D8C38F24D65DEC3A5C48108FF849E5900AF8CC79BC3788EF58B4 - 970215C0AD19E59DC31A8C5A2B00BC409197984627F60C872D54F40621CF5918 - 6E4055469EC506286E803AC272D640D8407F160EC4816DC04B7708DA1BC87CC7 - A90190596038AD19FFEA78C7661B1084BF48E18081A8412DD4C14B7636C37F9C - 581A006811CE0DEC801D0AC47524D2428A23529BB505C8760198ACEC723BBBEE - 7BB73BDEE55E7766F77DF0D4B6BBE109CFF7C2EF9DEE878F32B90F3FF7C7231E - F28927F76A014FF9CCAF561C0A15D11CEC050D5AF08427B42986C09501661D18 - 22A51BB56EC48574D2EEC63E8FB397982E3C71240BA872E36BC1B3CEEF4C73F5 - 89E5E47CEE840F687E09EACDA3BD65D3031CC0A0F347335A2C69588422B92767 - 0074026CD0E874195E000075A4C70163F1868517F117668E78D49D7EC706C762 - 8340E4B50C48B0C70C81E1732274E2AC659807D862BD6B00D00CCF50060E006C - D0603FB6B035E030FF37730377966779052081ED466D13588115B877164881CE - 460874378112988121888123088224A881E4F681E53677255882ED26811D4808 - 2928822DA88133288326C881C49508FA360D44F00BF6A022A5930629627A52C0 - 1B94E009DCD570AEE7704DD8704FD8844C08855088520EE7060F870A134723F1 - A00385165EBC87167A4073BF070041C07270638637E05EFD1573E4E10D61000B - 37700967B708311716C6905E1A33415495481E9733B4202C61636135D007BF70 - 407A0061E11409BC82740DA0744C834C0D500B4C434EF8F7340AD0079900080D - 00082EE60D7AA0597FA10004D600621700AD066C0AF00E9A750D633151147616 - B3A5772BB881B418FF8191177920B078BB488BB3A882BD088CBC288CF2768B8B - 578CC1088C2E486DEB968CB6487773270D30806F286004A8263A03902FFB2270 - CD006627701449F170145785B1B70759B8846656854B187B3E528E0CA7851580 - 7B9AF00BF505866911091D67676F11497CD63E38377DB4B08F6110095BA00760 - A08625538760803E5B708F70C0336608072A600191240382A67D9CB01E9CC009 - AB680B2ED70EE154030ED00E5C070D7063039B28057043049CB089C0D00EB660 - 0B5F63610DA0077F418A81A03178905965B0037A10093B900B8EC84D01D000ED - 006C4490699AD50E9C90559130746831771D788CBF688C51E98CC3B8781D5895 - 55798B5A898C5E99FF95B8C88B60F98C58898CC7A88CBE588B8B370E63241353 - C335BF207AFA9246B6D146435314DF4847E618856E90857FE98456F8977E598E - 57188585C9974B489854880A816455F59816625873FAE30306897338B7537401 - 0E37779932A0090679537DC05E3807074160038A640CD04091620191A934162F - C04B9B08087A600F60338A81109441893F64D1885220689DF00B35C08941A907 - 61C1560E603406B08AC529162F10089BF803ED300F81A001C23200A76894FAA3 - 0041B08AB9D9003BF07465117862697869996D79A77865A979E9A977E7C97892 - C79ED39678F3B96C9E259F901781993779D8D677E6096E5C599E05A004D5806F - BE33077D60365A46FF7A39410B5D46702F22477B1985D5B58E87695D175A8E13 - 87A1E70898EA880A9E50041C303D90991606100637631688163D724116BFA009 - 522517E0B00697B00617D43EEEF304DE10174F600C33AA737041A337A4001515 - 091BE0006072552FD00EE8140406D03700000D0EE000FBA5619C100991D00EBE - F9161A992469530B0EF08800000E36B0A4533A0D3670A40030A40E90064F2AA6 - 3E704D1B10049C70586921A020A804ACA5042DB85A7B2A8179EA827AE7A7BFA8 - A7788AA785FAA7869AA87A77A77F4A817D7AA81E78A730B881025AA8923AA879 - 0A838ADAA81E4877996AA85540036BF004D380A072493A5BA6652E12300C9084 - 56488581B9848739FFABB52AAB196A8E86D9A16E000B60900A6B508D242AACC3 - BA24D9D71D20C8A72BC8A82C88AC16E8A718C8A7CD8AAC922AADCC5A6DD58A82 - 28D8ACDA1A832AB86E9D1A79D64A83D32AAD9E0A81D0FA82E2806F3EA00053C2 - 35CAA00CA52329FD923ADE180FE6785219EAA1B8AAAFFC7A5280F997F90AB0FC - AA8EF1C0009A303DBB47AC0BCBB073C6A97B0AA878AA0410FBB01338B1790AAA - 8BDAA8E05A81196BA914ABB1194B0A18BBB1AB1583173BB2162BB18B9AB2CEE6 - B1A00AA9216BA8111BB2D1282FF328A6BFE0460B6A1B409106B44029DE5807D4 - 40ABFE6AB4B33AB0497BB416DA980CE0034F60AC0D2BB5531B266870A7568BAC - 79EAB21B4B0884F0FFAC05400868E0B5776A795F8BA7615B815DABB515880626 - 38A862BBA7589B82564BB1717BA8564BB70590B719A8B537F8AC7BDAAD291883 - 1768AD61ABB71BFBB7613B0E9DF339783007A1630FC510293F2170C6004727A0 - 7A444B8EFFBA29469BB49B22B0ED08B0A1EBA19B827B3160011649B5AB0B867D - 10B55472B1B12BBBB38B06628B064A60BB621BB65E8BBBB53BBBB2ABB6131BB6 - B81BB6B7DBBBB98BBCBBCBBBB5CBBBB16BBBCEABBBCDFBBB175BBC702BBCB5FB - BC4A30BCDACBBCD55BBD13CBBCD6DBBBCBBBBD132B0DC4258FB5A233A697463F - D1B341410B06600395C000F1D0707B90A1F8CB9759B8078BD9AFFCEBBFFB8BBF - FFDB84FD0B0B86F0FFABAA3BAC9DE00DC096B366F76216D907D340C10286042E - 1736A67A55BF907E6133371AAC7D66D337A1A3C039C32B84451E82160DDEE00D - 16E983C0D609A173437DF0173D6891C3509241035762110DAEBBC1C0160D206C - 8D07761675ABB7B87BB5137BB5C1BBBBB7EBB527BBBB466CB7C28BBB4A7001D7 - 6BB8DCDBC45BFCC44A6CBB770AB151BCC44F0CC6659CB7B63BBC78BBC580EBC5 - C3EBB5680CB77AEBC64B4CB7624CC53A4813A7103AD0500C3C8B8DCD500C1335 - 0F1675AF9E8BAB84A9B4A880C8870CC0898CBFB0C03B76E0C0C35A0C938004D5 - A300F3300906907E0A500C548A04C5700DCAC02BDE6000D7E00DB62905FBA500 - CAB0C9A99C369A3CFF0FB0EC0DB560036FA3A6B5E0A466010EF0CA3493500B70 - 0536BF500BF380C10A700D3630CB6053CB9340CA62F10BA340CCB530407D300A - 937037B5300907263A7FC1C0F3A00C443C0C51037FB5A00C69D1B584700168B0 - CEEBFCC4EC0CCF57DCB5EEACB6E90CCFE9DCB5EC5CCFF1CCCFF28CCFF5FCCFB9 - 2BCFECACBDFF4CCF61DBCE058DD0F79CCEEEACD0057D01DF9BCEC7CBBDD1FBCF - F8CCBDFE1CD1D88BCFFC4C08E3A0832AA07F628304CD2005AA8A8D2ED20E3A60 - BF56D8BF2FED06302DD3318DBF31ED06370DC0332DD3F9CBABB0C0001C60019F - A01DC43A09AF300FD11036DCA0D4D72C16C5C00DAD2816B5C00DA3900FB05CD4 - D080C1D7900F9308FF0093209D9C706950FA0ACE9009C3201648E00CF9B05FD0 - 9009DCD0C163A100A3C00D62310C99B00EB57042FCD5D6BC3209F9700DAF700D - 468304AFD0D6DBD409D750083640D6FB159CF930409DB001F9B034C560038C35 - 0D7D3D0FBF390A99F07E7DF00A468DCE60ABCEA31DD15E1BD1A74DDAA95DDAA9 - 3DCFAAEDDAA82DCF60ABBD05B0DA64DCDAB0ADCEB26DDAAFFDDAB37DDBAE8DCF - B08DC416EDDB56ACB61ACDDA5DABDBAE8D0620BD505660042F161B5BC65C3E9B - 7AF1400D9DABBF36DDC8DC4DD38ADCBF8309DE7E49DEE3DDDD8D990A3E90320B - 3B0DDC3009B3360AB550C9730D00C3300950CD5F93300AA33040EA900F64A10C - A370CE0070CDC43CFF094613CD847DC90030D86E5D3DD0900FC3907D0A3009F4 - 8D049BEDD8FFF70ADC20684A0D0EF18DE09F6DCC00100DCAF00AF9F00AD22C16 - 459D09F8CDD4747D0D8C4504DC7059D5030E84FD7E6A3A0AAF80CEF3DCCFB6DB - CE3F1EE4F67CD0426EE407DDD1B59DE43FDED147CEE40D7DE44B1EE4ED7CD1F9 - 5CDAFA3CE5FA7CD159DECE17000A47700982D40734EC5C3B21AF5C467006E000 - 3A4009BA50D3FD7BD3370DE7714EE7733EE7745EE7787EE7BC8A716930070A0B - 86BF6003EFAD7D957CCD664D4EC03C40BFD0D7932068953C0FB86CDF035EC993 - 300920444E52BD010BFE0BF910E939A30CDC500C0AEC0DC04CD7F3B0DFE9770D - EF0D3703C00D527DFF57E4E4DEB71C36C3E0E9C0AC319D20D52FDED581484E64 - 45E248F0EA7F110D4EEDE94653884ADDE3AB8DDBCD2ECFCDCEDBD02EED060DDC - 0D9DDA568CDBBF3DEDD27E01A7DDEDD1AECEDF9EEDA3DDDAC15DEDDA9EDAE310 - 13AE310725127A750929CC65D206C01BF66BD33A7DEFF98EEFFBAEEFF96E080C - 6007D9C1BA034FF082D1BBDE5EBBDD9EF0A41DD1B8DBEDEB8CE5AAFDF0134FF1 - 155FF1CC4BF10C3FF113ABF0EC3CF1EA8CBD164FF11E2FF2E21EEEDE5EF229AF - F22B3FF1A0308D16B07D3ED36F6A643A6990060660514851D3798EE7362DE771 - BEE73D6FE7407FD3B0200761003F05AFF44BBF16CD46F216AFF1D80EF5B0CDF2 - 559FF1285FF24F6FFFF556AFF11ABFF55FAFF21FAD509FF30984253A0ABA46B8 - 41EF96E2093312E78A2CF4DECDF33D4FF4E66DD3B0100FA980CB4CCFF77D0F00 - 45300E526FF1B750F5277FF2603FF8157FF888CFF8226FF88D0FF9835F055B60 - 075E43C15DF350DA387052C00996120F740FFAA12FFAA30F0B3A70657E8FFA4A - 7F04801F0C841FF9AF0FFBB12FFBB3BFF55D0B1376801D61D3283B1BEF40F128 - DD2807D430FAC34FFCA00F0B27F0B45F98FACBBFB09502F8B44DF1AECFF2D23F - F1D26FFD564FFD2A7FFD29BFFD1790FDDDFEFDDEAFFDD8FFF0DD1FFEE75FF121 - 6D04636E13926B1B0007147DCCF996020BC56FFFC56FF461900629C7FC000140 - E04082050D1E4498FF50E142860D1D3E2C682051AA2355C659BB708BD0858C1D - 39DEF2C8B123489017368EE4B8919046932D45963CE9B264CA8F23637AC49892 - A4C7933B77FA11E9B2E6D095288516050AB3A64F944C45F60C49A8C891352A8C - 74EA434441315ACDBC0E68464BEC0003314EC841B5678F1BB66DDDBE851B576E - 5B58B00CE958F304E25EBE7DFDFE051C58705F7B3E34510C318EA39F5BB74231 - 060AF98264CA8D4335762C99E4E5979635DF8A8CB971D2C6933D83CE78FAA365 - CCA633B346FD993448C68E475F46BD79B4EBC7B961BF9E8D3B786BC6A1AA1C49 - 8402DC2600447ED9A3A54C99BBAF03A01BE0A4231EACB57035CC05FF1D7C5B39 - A97E0D469F5EFD7A67F6ED0742B327C507875445AA2C9D9CF171C7A49C99FE6C - 2A3FA69212B0C0FE00A4AD29CEF043D040FD1A6CF040FE022490C0FF0A047031 - 0A2F38A38A049203A797E614B067007794F1AA99018A81A61829CC9283BBF166 - A4F1AD784E48C33D1D77E4B1C7F50202003B} - end - end - object bAceptar: TButton - Left = 344 - Top = 367 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Aceptar' - Default = True - ModalResult = 1 - TabOrder = 1 - end - object memModulos: TMemo - Left = 128 - Top = 112 - Width = 289 - Height = 233 - BevelInner = bvNone - BevelOuter = bvNone - BorderStyle = bsNone - ParentColor = True - TabOrder = 2 - end -end diff --git a/Varela/Varela/Source/Servidor/uAcercaDe.pas b/Varela/Varela/Source/Servidor/uAcercaDe.pas deleted file mode 100644 index 466c9fe..0000000 --- a/Varela/Varela/Source/Servidor/uAcercaDe.pas +++ /dev/null @@ -1,47 +0,0 @@ -unit uAcercaDe; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls; - -type - TfAcercaDe = class(TForm) - JvGradient1: TJvGradient; - Panel1: TPanel; - Image1: TImage; - Bevel1: TBevel; - bAceptar: TButton; - memModulos: TMemo; - procedure FormShow(Sender: TObject); - end; - -implementation - -{$R *.dfm} - -uses JclFileUtils; - -procedure TfAcercaDe.FormShow(Sender: TObject); -var - Obj : TJclFileVersionInfo; -begin - memModulos.Lines.Clear; - - Obj := TJclFileVersionInfo.Create(Application.ExeName); - try - with Obj do - begin - memModulos.Lines.Add(ProductName + ' - Versión ' + FileVersion); - memModulos.Lines.Add(CompanyName); - memModulos.Lines.Add(''); - memModulos.Lines.Add('Se autoriza el uso de este programa a:'); - memModulos.Lines.Add('VARELA IMAGEN Y DISEÑO S.L.'); - end; - finally - FreeAndNil(Obj); - end; -end; - -end. diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.ddp b/Varela/Varela/Source/Servidor/uDataModuleServer.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.dfm b/Varela/Varela/Source/Servidor/uDataModuleServer.dfm deleted file mode 100644 index 6a5f4cd..0000000 --- a/Varela/Varela/Source/Servidor/uDataModuleServer.dfm +++ /dev/null @@ -1,96 +0,0 @@ -object dmServer: TdmServer - OldCreateOrder = False - OnCreate = DataModuleCreate - OnDestroy = DataModuleDestroy - Height = 307 - Width = 382 - object HTTPServer: TROIndyHTTPServer - Encryption.UseCompression = True - Dispatchers = < - item - Name = 'BINMessage' - Message = BINMessage - Enabled = True - PathInfo = 'Bin' - end> - OnBeforeServerActivate = HTTPServerBeforeServerActivate - IndyServer.Bindings = <> - IndyServer.DefaultPort = 8099 - Port = 8099 - Left = 40 - Top = 16 - end - object BINMessage: TROBinMessage - Left = 136 - Top = 16 - end - object DriverManager: TDADriverManager - DriverDirectory = '%SYSTEM%\' - TraceActive = True - TraceFlags = [toPrepare, toExecute, toFetch, toError, toStmt, toConnect, toTransact, toBlob, toService, toMisc, toParams] - OnTraceEvent = DriverManagerTraceEvent - Left = 136 - Top = 80 - end - object ConnectionManager: TDAConnectionManager - Connections = < - item - Name = 'GFT_VARELA' - ConnectionString = - 'ADO?AuxDriver=SQLOLEDB.1;Server=david;Database=GFT_VARELA;UserID' + - '=sa;Password=123456;Integrated Security=SSPI;' - Default = True - end> - DriverManager = DriverManager - PoolingEnabled = True - Left = 40 - Top = 80 - end - object DataDictionary: TDADataDictionary - Fields = < - item - Name = 'IMPORTE' - DataType = datCurrency - DisplayLabel = 'Importe' - Alignment = taRightJustify - end> - Left = 40 - Top = 144 - end - object DADiagrams: TDADiagrams - Left = 136 - Top = 144 - DiagramData = - ''#13#10' '#13#10' '#13#10''#13#10 - end - object JvAppRegistryStorage: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - RegRoot = hkLocalMachine - Root = 'Software\%APPL_NAME%' - SubStorages = <> - Left = 136 - Top = 208 - end - object DAADODriver: TDAADODriver - Left = 304 - Top = 16 - end - object SessionManager: TROInMemorySessionManager - SessionDuration = -1 - Left = 224 - Top = 16 - end - object DAServerLog1: TDAServerLog - Active = True - OnAddSQLCommandLog = DAServerLog1AddSQLCommandLog - OnAddSQLErrorLog = DAServerLog1AddSQLErrorLog - Left = 224 - Top = 80 - end - object JvLogFile1: TJvLogFile - Left = 224 - Top = 144 - end -end diff --git a/Varela/Varela/Source/Servidor/uDataModuleServer.pas b/Varela/Varela/Source/Servidor/uDataModuleServer.pas deleted file mode 100644 index 0475be5..0000000 --- a/Varela/Varela/Source/Servidor/uDataModuleServer.pas +++ /dev/null @@ -1,364 +0,0 @@ -unit uDataModuleServer; - -interface - -uses - SysUtils, Classes, uDAEngine, uDAIBXDriver, uDAClasses, uDADriverManager, - uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, - uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, - JvAppStorage, JvAppRegistryStorage, uDAInterfaces, - JvComponentBase, uDAADODriver, uROEventRepository, uDAServerLog, ExceptionLog, - JvLogFile, SyncObjs; - -const - SERVER_PORT = '8099'; - -type - TdmServer = class(TDataModule) - HTTPServer: TROIndyHTTPServer; - BINMessage: TROBinMessage; - DriverManager: TDADriverManager; - DADiagrams: TDADiagrams; - JvAppRegistryStorage: TJvAppRegistryStorage; - DAADODriver: TDAADODriver; - SessionManager: TROInMemorySessionManager; - ConnectionManager: TDAConnectionManager; - DAServerLog1: TDAServerLog; - JvLogFile1: TJvLogFile; - DataDictionary: TDADataDictionary; - procedure DataModuleCreate(Sender: TObject); - procedure DataModuleDestroy(Sender: TObject); - procedure HTTPServerBeforeServerActivate(Sender: TObject); - procedure DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; - SQLCommandLog: TDASQLCommandLog); - procedure DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; - SQLErrorLog: TDASQLErrorLog); - procedure DriverManagerTraceEvent(Sender: TObject; const Text: string; - Tag: Integer); - private - FConnectionName : string; - FEscribirLog : TCriticalSection; - function GetConnectionString: string; - procedure FindFiles(StartDir: string; var FilesList: TStringList); - procedure IniciarLog; - procedure DetenerLog; - - public - FDBServer : string; - FDBName : string; - FDBUser : string; - FDBPass : string; - FInicioWindows : Boolean; - FServerPort : string; - FDirEntrada : String; - FDirAlmacen : String; - FDias : Integer; - procedure LeerConfiguracion; - procedure SalvarConfiguracion; - procedure RefrescarConexion; - procedure BorrarFicherosDeCargaAntiguos; - procedure EscribirLog(const AMensaje : String); - property ConnectionName : string read FConnectionName write FConnectionName; - end; - - -function DarRutaInformes : String; -function Encrypt (const Source : string) : String; -function Decrypt (const Source : string) : String; -function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; -function GetTempDirectory(ABasePath : string) : string ; - - -var - dmServer: TdmServer; - -implementation - -{$R *.dfm} - -uses - DateUtils, JclFileUtils, ActiveX, Forms, fServerForm, Registry, Windows, Dialogs, - ADODB; - - -function GetTempDirectory(ABasePath : string) : string ; -var - fTime : TDateTime; - sFile : String; -Begin - Result := '' ; - - fTime := Frac(Now) ; - sFile := 'TMP' + Copy(FormatFloat('#.########', fTime), 5, 5); - - while FileExists(ABasePath + PathDelim + sFile) do - begin - fTime := Frac(Now); - sFile := 'TMP'+Copy(FormatFloat('#.########', fTime), 5, 5); - end; - Result := sFile ; -end; - -Function AddBS(s:String): String; -Begin - If Copy(s,Length(s),1)<>'\' Then - s := s + '\' ; - Result := s ; -End; - -function DarRutaInformes : String; -begin - Result := ExtractFilePath(Application.ExeName) + 'Informes' + PathDelim; -end; - -function GetNextAutoinc(AConnection : IDAConnection; const GeneratorName: string): integer; -var - ds: IDADataset; -begin - ds := AConnection.NewDataset(Format('SELECT Gen_id(%s,1) FROM RDB$Database', [GeneratorName])); - ds.Open; - result := ds.Fields[0].Value; - ds.Close; -end; - -procedure WriteAutoRun(Name, Value : String); -var - reg: TRegistry; -begin - reg := TRegistry.Create; - try - reg.RootKey := HKEY_LOCAL_MACHINE; - reg.LazyWrite := False; - reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); - reg.WriteString(Name, Value); - reg.CloseKey; - finally - reg.free; - end; -end; - -procedure DeleteAutoRun(Name : String); -var - reg: TRegistry; -begin - reg := TRegistry.Create; - try - reg.RootKey := HKEY_LOCAL_MACHINE; - reg.LazyWrite := False; - reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False); - if reg.ValueExists(Name) then - reg.DeleteValue(Name); - reg.CloseKey; - finally - reg.free; - end; -end; - - -function Encrypt (const Source : string) : String; -var - i:integer; -begin - Randseed := 28; - Result := ''; - for i:=1 to length(Source) do - Result := Result + chr(ord(Source[i]) + Random(10) + 1); -end; - -function Decrypt (const Source : string) : String; -var - i : integer; -begin - Randseed:= 28; - Result := ''; - for i := 1 to length(Source) do - Result := Result + chr(ord(Source[i]) - Random(10) - 1); -end; - -procedure TdmServer.DAServerLog1AddSQLCommandLog(Sender: TDAServerLog; - SQLCommandLog: TDASQLCommandLog); -begin - EscribirLog(SQLCommandLog.OriginalSQLText); - EscribirLog(SQLCommandLog.OriginalSQLText); - EscribirLog('-----------------------------------------------------'); -end; - -procedure TdmServer.DAServerLog1AddSQLErrorLog(Sender: TDAServerLog; - SQLErrorLog: TDASQLErrorLog); -begin - EscribirLog(SQLErrorLog.ErrorMessage); - EscribirLog(SQLErrorLog.OriginalSQLText); - EscribirLog(SQLErrorLog.OriginalSQLText); - EscribirLog('-----------------------------------------------------'); -end; - -procedure TdmServer.DataModuleCreate(Sender: TObject); -begin - LeerConfiguracion; - RefrescarConexion; - IniciarLog; -end; - -function TdmServer.GetConnectionString: string; -begin -{ Result := 'SDAC?Server=' + FDBServer - + ';Database=' + FDBName - + ';UserID=' + FDBUser - + ';Password=' + Decrypt(FDBPass);} - - Result := 'ADO?AuxDriver=SQLOLEDB.1;Server=' + FDBServer - + ';Database=' + FDBName - + ';UserID=' + FDBUser - + ';Password=' + Decrypt(FDBPass); -end; - -procedure TdmServer.LeerConfiguracion; -begin - with JvAppRegistryStorage do - begin - FDBServer := ReadString('ServerDB'); - FDBName := ReadString('DBName'); - FDBUser := ReadString('UserDB'); - FDBPass := ReadString('PassDB'); - - FServerPort := ReadString('ServerPort', SERVER_PORT); - FInicioWindows := ReadBoolean('InicioWindows'); - - FDirEntrada := ReadString('DirEntradaEDI'); - FDirAlmacen := ReadString('DirAlmacenEDI'); - FDias := ReadInteger('DiasAlmacenEDI', 1); - end; -end; - -procedure TdmServer.SalvarConfiguracion; -begin - with JvAppRegistryStorage do - begin - BeginUpdate; - try - WriteString('ServerDB', FDBServer); - WriteString('DBName', FDBName); - WriteString('UserDB', FDBUser); - WriteString('PassDB', FDBPass); - WriteString('ServerPort', FServerPort); - - WriteString('DirEntradaEDI', FDirEntrada); - WriteString('DirAlmacenEDI', FDirAlmacen); - WriteInteger('DiasAlmacenEDI', FDias); - - WriteBoolean('InicioWindows', FInicioWindows); - if FInicioWindows then - WriteAutoRun('AdminPV_Server', Application.ExeName) - else - DeleteAutoRun('AdminPV_Server'); - finally - EndUpdate - end; - end; -end; - -procedure TdmServer.DataModuleDestroy(Sender: TObject); -begin - SessionManager.ClearSessions(False); - HTTPServer.Active := False; - DetenerLog; -end; - -procedure TdmServer.DetenerLog; -begin - FEscribirLog.Free; -end; - -procedure TdmServer.DriverManagerTraceEvent(Sender: TObject; const Text: string; - Tag: Integer); -begin - EscribirLog(Text + #10#13 + #10#13); -end; - -procedure TdmServer.EscribirLog(const AMensaje: String); -begin - FEscribirLog.Acquire; - try - JvLogFile1.Add(AMensaje); - finally - FEscribirLog.Release; - end; -end; - -procedure TdmServer.RefrescarConexion; -begin - HTTPServer.Active := False; - ConnectionManager.Connections.GetDefaultConnection.ConnectionString := ''; - - ConnectionName := ConnectionManager.GetDefaultConnectionName; - ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString; - CoInitialize(nil); - HTTPServer.Active := TRUE; -end; - -procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject); -begin - HTTPServer.Port := StrToInt(FServerPort); -end; - -procedure TdmServer.IniciarLog; -begin - FEscribirLog := TCriticalSection.Create; - - JvLogFile1.Active := False; - JvLogFile1.FileName := ExtractFilePath(Application.ExeName) + 'ServerLog.txt'; - JvLogFile1.AutoSave := True; - JvLogFile1.Active := True; - JvLogFile1.Clear; -end; - -procedure TdmServer.BorrarFicherosDeCargaAntiguos; -var - AAlmacen : String; - ADate : TDateTime; - FilesList: TStringList; - i: integer; -begin - ADate := Now; - IncDay(ADate,((-1)*FDias)); //Establecemos fecha desde la que eliminaremos - - AAlmacen := PathAddSeparator(FDirAlmacen); - FilesList := TStringList.Create; - try - FindFiles(AAlmacen, FilesList); - for i:=0 to FilesList.Count-1 do - begin -// showmessage(FilesList.Strings[i]); - DeleteDirectory(FilesList.Strings[i], false) - end; - finally - FreeAndNil(FilesList); - end -end; - -procedure TdmServer.FindFiles(StartDir: string; var FilesList: TStringList); -const - MASK_ALL_FILES = '*.*'; - CHAR_POINT = '.'; -var - SR: TSearchRec; - IsFound: Boolean; - ADateTime: TDateTime; -begin - StartDir := PathAddSeparator(StartDir); - - IsFound := (FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0); - while IsFound do - begin - if (SR.Name[1] <> CHAR_POINT) then - begin - ADateTime := FileDateToDateTime(SR.Time); - if (DaysBetween(ADateTime, Now) > FDias) then - FilesList.Add(StartDir + SR.Name); - end; - IsFound := (FindNext(SR) = 0); - end; - SysUtils.FindClose(SR); -end; - -end. diff --git a/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas b/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas deleted file mode 100644 index ac5791a..0000000 --- a/Varela/Varela/Source/Servidor/uSchemaUtilsServer.pas +++ /dev/null @@ -1,161 +0,0 @@ -unit uSchemaUtilsServer; - -interface - -uses - Classes, SysUtils, - uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, - DARemoteService_Impl, - DataAbstract3_Intf, - uDAClasses, uDAInterfaces, uDADataTable; - -type - TReplicarDataSet = class - protected - function GenerateNewSQL : String; - public - Service : TDARemoteService; - Columnas : String; - ColumnasQueSuman : String; - SourceDataSetName : String; - function GetNewDataSet : IDADataset; - end; - - -implementation - -{ TReplicaDataSet } - -uses - RegExpr, - Dialogs, JclStrings; - -function TReplicarDataSet.GenerateNewSQL: String; -var - AColumnList : TStringList; - ASQL: TStringList; - ds : IDADataset; - i : integer; - Separador : String; - bHayAgrupacion : Boolean; - APos : Integer; - - function GetTrueFieldName(AField : string; ConAlias : Boolean = True) : String; - var - ARegExpr : TRegExpr; - begin - Result := AField; // Por si el campo no tuviera alias - ARegExpr := TRegExpr.Create; - try - ARegExpr.ModifierI := True; // case insensitive - ARegExpr.InputString := ds.SQL; - ARegExpr.Expression := '[^ ,]+[ ]+AS[ ]+' + AField; // buscar (xxxx.xxxx AS AField) o (xxxx AS AField) - ARegExpr.Expression := ARegExpr.Expression + '|'; // o - ARegExpr.Expression := ARegExpr.Expression + '[^ ,]+\.' + AField; // buscar xxxx.AField - if ARegExpr.Exec then - Result := ARegExpr.Match[0]; - - if not ConAlias then - begin - ARegExpr.InputString := Result; - ARegExpr.Expression := '^[^ ,]+'; // Para quedarme con el campo sin alias - if ARegExpr.Exec then - Result := ARegExpr.Match[0] - end; - finally - FreeAndNil(ARegExpr); - end; - end; - -begin - AColumnList := TStringList.Create; - ASQL := TStringList.Create; - ds := Service.ServiceSchema.NewDataset(Service.Connection, SourceDataSetName); - bHayAgrupacion := False; - try - AColumnList.CommaText := Columnas; - - with ASQL do - begin - Insert(0, 'SELECT DISTINCT'); - Insert(1, ''); // Lista de campos - Insert(2, Copy(ds.SQL, Pos('FROM', ds.SQL), Length(ds.SQL))); - Insert(3, ''); // Group by - Separador := ''; - - for i := 0 to AColumnList.Count - 1 do - begin - if Assigned(ds.FindField(AColumnList[i])) then - begin - if i > 0 then - Separador := ','; - - if Pos('#'+AColumnList[i]+'#', ColumnasQueSuman) > 0 then - begin - Strings[1] := Strings[1] + Separador + 'SUM(' + GetTrueFieldName(AColumnList[i], False) + ') AS ' + AColumnList[i]; - bHayAgrupacion := True; - end - else begin - Strings[1] := Strings[1] + Separador + GetTrueFieldName(AColumnList[i]); - if Length(Strings[3]) = 0 then - Strings[3] := 'GROUP BY ' - else begin - if (Strings[3] <> 'GROUP BY ') then - Strings[3] := Strings[3] + Separador; - end; - Strings[3] := Strings[3] + GetTrueFieldName(AColumnList[i], False); - end; - end; - end; // for - - if not bHayAgrupacion then - Delete(3); - end; - Result := ASQL.Text; - finally - AColumnList.Free; - ASQL.Free; - end; -end; - - - -function TReplicarDataSet.GetNewDataSet: IDADataset; -var - SQL: String; - ASchemaDataSet: TDADataSet; - AField: TDAField; - AColumnList : TStringList; - i, j : Integer; -begin - SQL := GenerateNewSQL; - Result := Service.Connection.NewDataset(SQL, SourceDataSetName); - - ASchemaDataSet := Service.ServiceSchema.Datasets.DatasetByName(SourceDataSetName); - if Assigned(ASchemaDataSet) then - begin - Result.Params.AssignParamCollection(ASchemaDataSet.Params); - Result.Fields.AssignFieldCollection(ASchemaDataSet.Fields); - AColumnList := TStringList.Create; - try - AColumnList.CommaText := Columnas; - j := 0; - i := Result.Fields.Count; - while i > 0 do - begin - if AColumnList.IndexOf(Result.Fields[j].Name) = -1 then - Result.Fields.Delete(j) - else - j := j + 1; // Un campo que dejo - i := i - 1; // Un campo menos por revisar - end; - finally - AColumnList.Free; - end; - end; - - Result.Close; - Result.Where.Clear; -end; - -end. diff --git a/Varela/Varela/Source/Usuarios/Usuarios.bdsproj b/Varela/Varela/Source/Usuarios/Usuarios.bdsproj deleted file mode 100644 index adb8eb4..0000000 --- a/Varela/Varela/Source/Usuarios/Usuarios.bdsproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - - - - Usuarios.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - Pedidos a proveedor - - - - .\ - ..\..\Output\Debug\Cliente - ..\Lib - ..\Lib;..\Base - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 - - - False - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 0 - 3 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.3.0 - - - - - - 1.0.0.0 - - - - - diff --git a/Varela/Varela/Source/Usuarios/Usuarios.cfg b/Varela/Varela/Source/Usuarios/Usuarios.cfg deleted file mode 100644 index 96c8d0b..0000000 --- a/Varela/Varela/Source/Usuarios/Usuarios.cfg +++ /dev/null @@ -1,45 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --N".\" --LE"..\..\Output\Cliente" --LN"..\Lib" --U"..\Lib" --O"..\Lib" --I"..\Lib" --R"..\Lib" --Z --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/Varela/Varela/Source/Usuarios/Usuarios.dof b/Varela/Varela/Source/Usuarios/Usuarios.dof deleted file mode 100644 index 908913c..0000000 --- a/Varela/Varela/Source/Usuarios/Usuarios.dof +++ /dev/null @@ -1,471 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription=Pedidos a proveedor -[Directories] -OutputDir= -UnitOutputDir=.\ -PackageDLLOutputDir=..\..\Output\Cliente -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=3 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.3.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=1 -Item0=..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlBPLOutput] -Count=1 -Item0=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=1 -Item0=..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=1 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=60 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=1 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=0 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Varela/Varela/Source/Usuarios/Usuarios.dpk b/Varela/Varela/Source/Usuarios/Usuarios.dpk deleted file mode 100644 index 584f8f1..0000000 --- a/Varela/Varela/Source/Usuarios/Usuarios.dpk +++ /dev/null @@ -1,50 +0,0 @@ -package Usuarios; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$DESCRIPTION 'Pedidos a proveedor'} -{$IMPLICITBUILD ON} - -requires - vcl, - vcldb, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, - vcljpg, - BaseD10, - rtl, - dbrtl, - dsnap, - adortl, - JvMMD10R; - -contains - uDataModuleUsuarios in 'uDataModuleUsuarios.pas' {dmUsuarios: TDAClientDataModule}, - uUsuarios in 'uUsuarios.pas' {fUsuarios}, - uUsuario in 'uUsuario.pas' {fUsuario}, - uLoginForm in 'uLoginForm.pas' {fLoginForm}, - uCambiarPassword in 'uCambiarPassword.pas' {fCambiarPassword}; - -end. diff --git a/Varela/Varela/Source/Usuarios/Usuarios.drc b/Varela/Varela/Source/Usuarios/Usuarios.drc deleted file mode 100644 index 7642ac9..0000000 --- a/Varela/Varela/Source/Usuarios/Usuarios.drc +++ /dev/null @@ -1,14 +0,0 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler - because -GD or --drc was supplied to the compiler. - - This file contains compiler-generated resources that - were bound to the executable. - If this file is empty, then no compiler-generated - resources were bound to the produced executable. -*/ - -STRINGTABLE -BEGIN -END - diff --git a/Varela/Varela/Source/Usuarios/Usuarios.identcache b/Varela/Varela/Source/Usuarios/Usuarios.identcache deleted file mode 100644 index d414da54e5d85de1e8a01197546ffcc97d461e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmcJLF%H5o3`MhWkDP!5Fw%;NN|h>@yqG4cf|3~7j(Ytf6c{Qo#`FLGJ^5gaiQNf$ znoIIo#bS1L@~R;(0yinhfnW$?U5${ynK*uOT3jGIGClpQ0(WE|5hf};`)^sG)S2T8 y<<0xu+8o@Y;y|uMUlnBUpv@gROpky(qR2|@_5!)Nz?GJeFT`n&PR-H(zPx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp edtPassword.Text then - raise Exception.Create('Por favor, introduzca la MISMA contraseña en los dos campos') - else - ModalResult := mrOK; -end; - -end. diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm deleted file mode 100644 index 5c031b4..0000000 --- a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.dfm +++ /dev/null @@ -1,132 +0,0 @@ -object dmUsuarios: TdmUsuarios - OldCreateOrder = True - OnCreate = DAClientDataModuleCreate - Height = 340 - Width = 423 - object ROLoginService: TRORemoteService - Message = dmBase.ROMessage - Channel = dmBase.ROChannel - ServiceName = 'srvLogin' - Left = 56 - Top = 40 - end - object tbl_Usuarios: TDACDSDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datString - Size = 8 - BlobType = dabtUnknown - DisplayWidth = 0 - Alignment = taLeftJustify - InPrimaryKey = True - Calculated = False - ServerCalculated = False - Lookup = False - LookupCache = False - end> - Params = <> - MasterMappingMode = mmDataRequest - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = DARemoteDataAdapter - ReadOnly = False - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Usuarios' - IndexDefs = <> - Left = 176 - Top = 40 - end - object ds_Usuarios: TDADataSource - DataSet = tbl_Usuarios.Dataset - DataTable = tbl_Usuarios - Left = 280 - Top = 40 - end - object DARemoteDataAdapter: TDARemoteDataAdapter - GetSchemaCall.RemoteService = ROLoginService - GetSchemaCall.MethodName = 'GetSchemaAsXML' - GetSchemaCall.Params = < - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetSchemaCall.Default = False - GetSchemaCall.IncomingSchemaParameter = 'Result' - GetSchemaCall.OutgoingFilterParameter = 'aFilter' - GetDataCall.RemoteService = ROLoginService - GetDataCall.MethodName = 'GetDatasetData' - GetDataCall.Params = < - item - Name = 'DatasetName' - DataType = rtString - Flag = fIn - end - item - Name = 'Params' - DataType = rtString - Flag = fIn - end - item - Name = 'IncludeSchema' - DataType = rtBoolean - Flag = fIn - end - item - Name = 'MaxRecords' - DataType = rtInteger - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - GetDataCall.Default = False - GetDataCall.OutgoingTableNamesParameter = 'DatasetName' - GetDataCall.OutgoingTableRequestInfosParameter = 'aTableRequestInfoArray' - GetDataCall.IncomingDataParameter = 'Result' - GetDataCall.OutgoingParamsParameter = 'Params' - GetDataCall.OutgoingIncludeSchemaParameter = 'IncludeSchema' - GetDataCall.OutgoingMaxRecordsParameter = 'MaxRecords' - UpdateDataCall.RemoteService = ROLoginService - UpdateDataCall.MethodName = 'UpdateData' - UpdateDataCall.Params = < - item - Name = 'Delta' - DataType = rtBinary - Flag = fIn - end - item - Name = 'Result' - DataType = rtBinary - Flag = fResult - end> - UpdateDataCall.Default = False - UpdateDataCall.OutgoingDeltaParameter = 'Delta' - UpdateDataCall.IncomingDeltaParameter = 'Result' - GetScriptsCall.RemoteService = ROLoginService - GetScriptsCall.MethodName = 'GetDatasetScripts' - GetScriptsCall.Params = < - item - Name = 'DatasetNames' - DataType = rtString - Flag = fIn - end - item - Name = 'Result' - DataType = rtString - Flag = fResult - end> - GetScriptsCall.Default = False - GetScriptsCall.OutgoingTableNamesParameter = 'DatasetNames' - GetScriptsCall.IncomingScriptParameter = 'Result' - RemoteService = ROLoginService - DataStreamer = dmBase.DABINAdapter - FailureBehavior = fbBoth - Left = 56 - Top = 104 - end -end diff --git a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas b/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas deleted file mode 100644 index 57e1667..0000000 --- a/Varela/Varela/Source/Usuarios/uDataModuleUsuarios.pas +++ /dev/null @@ -1,117 +0,0 @@ -unit uDataModuleUsuarios; - -interface - -uses {vcl:} SysUtils, Classes, DB, DBClient, - {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, - uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, - uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, - VARELA_Intf, uDARemoteDataAdapter, uDAInterfaces; - -const - ROL_ADMIN = 'Administrador'; - -type - TdmUsuarios = class(TDAClientDataModule) - ROLoginService: TRORemoteService; - tbl_Usuarios: TDACDSDataTable; - ds_Usuarios: TDADataSource; - DARemoteDataAdapter: TDARemoteDataAdapter; - procedure DAClientDataModuleCreate(Sender: TObject); - procedure DAClientDataModuleDestroy(Sender: TObject); - private - FLoginInfo: TLoginInfo; - function CambiarPassword (const APassword : String) : boolean; overload; - - public - function Login: Boolean; overload; - function Login(Usuario: String; Password: String): Boolean; overload; - procedure Logout; - procedure CambiarPassword; overload; - function EsAdmin : Boolean; - property LoginInfo: TLoginInfo read FLoginInfo write FLoginInfo; - end; - -var - dmUsuarios: TdmUsuarios; - -implementation - -{$R *.DFM} - -uses - Forms, Controls, uDataTableUtils, uDataModuleBase, uLoginForm, - uCambiarPassword, Dialogs, Windows; - -{ TDAClientDataModule1 } - -procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject); -begin - ROLoginService.Channel := dmBase.Channel; - ROLoginService.Message := dmBase.Message; - - // *********************** PENDIENTE ADAPTAR - // Adapter := dmBase.Adapter; -end; - -function TdmUsuarios.Login: Boolean; -begin - with TfLoginForm.Create(NIL) do - try - if Assigned(FLoginInfo) then - edtUser.Text := FLoginInfo.UserID; - Result := (ShowModal = mrOK) - finally - Free; - end; -end; - -function TdmUsuarios.Login(Usuario: String; Password: String): Boolean; -begin - Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo); -end; - -procedure TdmUsuarios.Logout; -begin - (ROLoginService as IsrvLogin).Logout; -end; - -procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject); -begin - FreeAndNIL(FLoginInfo); -end; - -function TdmUsuarios.EsAdmin: Boolean; -begin - Result := False; - if LoginInfo.Roles.Count > 0 then - Result := (Pos(ROL_ADMIN, LoginInfo.Roles.Items[0]) > 0); -end; - -procedure TdmUsuarios.CambiarPassword; -begin - with TfCambiarPassword.Create(NIL) do - try - if ShowModal = mrOk then - if CambiarPassword(edtPassword.Text) then - Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK); - finally - Free; - end; -end; - -function TdmUsuarios.CambiarPassword(const APassword: String): boolean; -begin - Result := False; - if not (ROLoginService as IsrvLogin).SetUserPassword(LoginInfo.UserID, APassword) then - raise Exception.Create('Error en el servidor. No se ha podido cambiar la contraseña'); - Result := True; -end; - -initialization - dmUsuarios := TdmUsuarios.Create(nil); - -finalization - FreeAndNil(dmUsuarios); - -end. diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.ddp b/Varela/Varela/Source/Usuarios/uLoginForm.ddp deleted file mode 100644 index 4370276c196a7fa73d6f8917622cba1c4e033dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxGe;K0Pl$;KI)SCUzhlbT}4#=r!G E07ZHWvj6}9 diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.dfm b/Varela/Varela/Source/Usuarios/uLoginForm.dfm deleted file mode 100644 index 049b239..0000000 --- a/Varela/Varela/Source/Usuarios/uLoginForm.dfm +++ /dev/null @@ -1,784 +0,0 @@ -object fLoginForm: TfLoginForm - Left = 790 - Top = 387 - ActiveControl = edtUser - BorderStyle = bsDialog - Caption = 'Administraci'#243'n de puntos de venta' - ClientHeight = 241 - ClientWidth = 385 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnCreate = FormCreate - OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 13 - object Label3: TLabel - Left = 24 - Top = 108 - Width = 39 - Height = 13 - Caption = 'Usuario:' - Transparent = False - end - object Label4: TLabel - Left = 24 - Top = 138 - Width = 57 - Height = 13 - Caption = 'Contrase'#241'a:' - Transparent = False - end - object Label1: TLabel - Left = 16 - Top = 72 - Width = 94 - Height = 13 - Caption = 'Inicio de sesi'#243'n:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clMenuHighlight - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False - end - object JvGradient1: TJvGradient - Left = 0 - Top = 57 - Width = 385 - Height = 4 - Align = alTop - StartColor = 2971346 - EndColor = 4828405 - end - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 385 - Height = 57 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object Image1: TImage - Left = 0 - Top = 0 - Width = 385 - Height = 57 - Align = alClient - Picture.Data = { - 0B544A76474946496D616765E84E0000474946383961C201FA00F70000FFFFFF - BD810BE3CEAFE8E8E8B59167AE6606D2D1D1C4930FD3AB37C59410C28D0ECA96 - 34B26C088D4205D6AE6AB48658D6AD51CCC3B7C0880CB97C0BBAA78FCDA616E2 - C670A55405E6D08BB9790A904205C69550A14C03C6BBAAB47109AD7A4B8A4207 - A95E06F8F3EAB16B07E7D6C4C89A12BE820CDADADBD5D5D5C28E10CEC9C29443 - 04BE840CCBA014B77609B06908964203B57209AD6406B26E08A04903BF830BF1 - E8DAB7761AC69811C99D13B8770AC99F14A85B05A75A17D1CEC89C4504AB6007 - B7780AA96327A35105A35003F3F3F2964303AC6608A45204A24D04F2ECE4C18A - 0CECE2D4984403BD8735AE6707A65805B6750A9842038641089B4403C28A0EB6 - 7508FCF9F4D9BA9EB6730AC5A8869D48039A561CE0C59AA66A33B87924B06C08 - C69A70F2E8C7BC7E0B874107B574099C4402AC6206EEDFB7AD6419B77E3FDAB9 - 88AF6807D3D0CDC0B29E9D6430995C26CBA215FAF6F0EDDFC9904203D1A984C1 - AE939A4C0CFDFCFAB5720AFAF9F8954E13CCA51AD5D4D2AD640FA67040994304 - B16E1CCBA415C4900FB36F09934A0CD3D2D2BE82178C4509FEFEFDAA5D0FCA9E - 1BC0860CF7F0DBB99C788D4911A4510AC79610A35E22C18B0CAF6B28924304FC - FAF8B7760BAC6307AE6406944403C08A0E914609FFFEFEDCBC54934403C0870F - B77208DDBB66B46D05B36503A85503D6D6D7FCFBFBCFA824CEA819D9D8D7C48A - 22BD7E1B8B4105D2D2D3CEAA17A54D01E0C383D7D6D5B97A0EFEFDFCB27138AB - 5E05D0D0D0A55002C79516FEFEFEA04602DDDDDEA04A03D7D7D8B5720CD4D3D3 - FFFFFEBA7E0BB5740ABA7306AF64098E470CB0690DCECDCDA04E0BC89B16B16F - 09AF702D9B5012A55604BDA281B57609BD7F0FB46F0D8F4506CA95229B4201B6 - 7008C69117984708954806F7F7F6D4D4D5EEEEEDA34A01C38E0FC4B18FB7740F - B36F12B4700BB5760AA95909B36F0EA24E02B06505E2E2E3A8580FB36D09D0AE - 92B7710AC49212C38C19CF9E26B46A0EBF890DA35403CFCFD1BB7912D9D9D98A - 4306B57207EAD8A0C3871292511AA25214AA5805AA5C03AC5903AF60042C0000 - 0000C201FA000008FF005355182890E0C00A05111E4CC870E1C2571021128CD8 - 90202A0B6844D002C0B1A3C78F20438A1C49B2A4C9932853AA5CC9B2A5CB9730 - 63CA9C49B326498502732AACC047A74F9C3B05FDF42988E7509CA95E79C227E6 - 8ACDA750A34A9D4AB5AAD5AB5867F2292A686B85AE5C0571F50AF62BD9AD62CF - 8E15CBD6EC5AB3A83C611491B5AEDDBB78F3EADDCB17001F9E80FF0A161BB8B0 - E0C05E0F2BFE4A78B162547131D0ED4BB9B2E5CB9833433DC8B9B3E7CFA0438B - EEFCF71506319A53AB5ECDBA35DED1B063CB0E8DC04223D7B873EBDECD3BE4EC - DFC047A7F2842651B0DEC8932B5F6E7720E1CE4565473F385DF4F4EB5F072A45 - 73050FF3EFE0C38BFF5729288E79C64517C559849E6D58AEE6CB9B8FB38370DB - B63BE214CD0F3F7E1C3E4B8970C571E31568E081CAE9A71F575FC5D1427C4529 - 58411CD945E81F1FF33146E17DE76568218571A082C069726C84E08928A698D9 - 7CF3C9A7A07F2CC2C8E283EAC5C8A28B2DE467638B7120B09418DEA928E49044 - 62F59E7BED71B861791332B9645B204ED8607C49BAD79527A73955E4965C7609 - 9395EE2D68E58B0BD25726846CED28C8830A8269655CF84CE6E59C74D6F9D18E - 78E6A9E79E2DF4B9A7797C40804F2389D869E8A15BF6A9E8A28CFAD9E8A39046 - DAE70E90CED7426D4D158AE8A69C1A28E9A39446BAC3A8A0925AAAA98A5A5A1B - 779A76EAEAABC929FF3A6A0E39EE406B0EA6927AABAEB58E3A6B0BB8FA2AACAD - C00E4B29ADB9C20924ACCC368B9BB1BF1EDB2BA9B3425BEDB5BEE28A6CB1C3F6 - 5AEB3B72892187B3E4968B99AEC3EE8A2CBAD8AE1B6CB6F06ACBADB0F3E6606F - 1CE00E8A47ABE6F6EB6F56CAE45002B1F6DA5B82BD3B1C1CF0C1BB06AC8CAD05 - 0F1C70C1C56A6B2BC1C0029BC3C402CF3A221A25FE2BF2C853096CB2C0252873 - 30C32697E0B2C12B0BACF2CB289F0CF3C431172C33CD05C3D9081E04922CF4D0 - 2FE96CB0CD46B78CB4D2391BDD74D247B36CEF229EC4F273D04467AD75492FBB - EC320E2EABBCF3CC607F2D76D961A78C43C168978DF2CA5D7BDDB632AB5EC1EF - D678E70D40CA5ECFFFCC37D37EFBFDB6D870171E78DF2B1F9EB6CB3EEAABF7E3 - 789700F6E4924BAE72E0944FAE0C0E9B57AE76E799571EFAC1A187BE08A68442 - AEFAD05EB7EEFAEBB0C72EFBECB4BFFC8E2818D8A0E5EABCFB5BFBEFC0075FFB - 22EF60346EEFC8972BFCF2CC07AFCCE918DC96FCF4CC366FFDF5B1A3220A6AD4 - 77DFE9EB93E310090E68BB3C7EEB608F5F7E09E74B2EBEDCF0932FBFE8F24722 - 7A09547317A4F7FCD72977020970DFF812403EF405D0650988040109D8BE48E4 - 8280604B60F820584006BA2F82E2AB1FF9E846A2FE79704EEAC3010571F04005 - 6A3081EA53E00345C842074A907C2624DF08E547C11026608503249FCFEEF6C1 - 1EA62801ED002010FF8598400006D1880A8CC4119308C003105181404CE21187 - 684421B6438A006462249C98C05CDCAE293E0CA38A6EB8C01516F18166442319 - 4BB840008A50856B24A308D358C638BE918C002C612E96723C31FAD1404C24A2 - 200749C82C16F1899180220A034948461632010BC89D89FE4849F034F2919844 - E12013A9484D663291994C80F632C2C34A9A72379B3C642857C9CA560E921A08 - 10C51C7677CA5AEA46958674A5100F30C55DF6B295EDE02226490801C9D8F298 - B9D9E50184B9CC6512B199CBEC6433A138882D423389CB1CC433A7A94D683A33 - 8BCE54E00116100B3158026BC84C276694C9CC66266010C1F4E60122A1CD045C - 739EF22C6234B739FF4D790AD39EF34CE001F2F533751A143307D066379BA950 - 7F3A549E0D756844A1F9CE8A66B3A21375622E6209B2521EF4A376E1E620DC59 - CD4198F4A423CDA649B3A9D293D2D39F2B65284A4DFA4E9A5653A60C4D00358A - D9085A82F4A77599A950871A53A20E159A46256A4D156A4FA2B6831A4B69C424 - 814A55AB78E3AA58CDAA564F7A55AE6AF5AB5D152A58C17A546FA034ABEDF898 - 4FABCA56A8A4E0AD0A88EB5B532057BA2A00AB71C56B5C1530D7BDFA15AC7E0D - 6C60BB8AD541BC35AB7C85EB3B1C10A7B63A362A7DADAB5DE1CA57BF4656B282 - 4D6C0AAE4AD9CC06F6B09C9D6B64FBBAD172DAEDB1A89DC9652DBB5ACF6AD6B5 - 9AB52B6C593BD9CEFFBE36050B8040177497DADEBE24B0835040703D3B5CE0CE - 96B8C2DD6B708B7B5CCF5E630101F2AD745712D849CCD6BA82C56E73FDAA5DEE - 6E17B6B88DC51CF637DDF28E44BBD6AD827ABD915CF506D6BD7B55AF7AAD4B5F - 05D437BDF0B5AF7CAB60DF14ECF7BFF98D6B7DDDAB0C41A5CEBC08068902E4AB - 0009C897BE0CB66F5CDD0B60FE4EA20A1290707D1DBC5FFC32B80A9B78701526 - 018AFD4A58C0FA552F6E4541CA04BB982317562F87D5BB894DF897C621966F8D - 2B6C5D07DF57BF33B6B0892791821CD7F8C8FBCDF18825CCE06B20600D607C71 - 8231BC04094C221E55AE423C267161092C81CB5876F0961DEC653267B9CC5416 - F324CCCCE6345319FFCC93087199AF7CE63A93190102E8A394CBDB650C5B99CB - 4BF832A0035D672E1BFAD0184EF4A1C9CCE544FB58029066749F036DE844075A - D28826E7B2F6CC673263D8D097F632A19760E9439BDAD37F6EB48FD7ECE83543 - 5AD1AC16B5A1CD4CEA552F7AA759E2F4746BED6751877AD47506F6A81DDDEB60 - 6318148CA84295234D655E03DBD2C11E760ADE6160F2EAFAB191CEB6B6B30D8A - 6D7BFBDBE00EB7B8C71DE94D50C30173D0F3B51D4B6E486F0214DD6EB7BCE74D - EF6C23C0B4EB462DB819C1EF6D838205F10638A401CE086DF79BDB0497C0C1F9 - 5D706D233BDEDE3EB8C2FF0D7150B80302B1B041BEB11D0F09C483E10507450D - 18EEF19277FCE425FF17793EFADDF17FA3FCE5FC1E79CCBBFD729383DCE42C58 - 39BF5D6E720998DB0179B6F6C641CA0213181DE445AF81D26BC002A59B80E22C - 88FABFA3BEF49147DD04518F3A2300CE7546283DE635C03A0BB62E75809BA0EA - 64A77ACC8D8E75B66F1D140B584346D039F483567DE4780F3B28CEEEF4AF7BDD - 045EFF3ADE035FF5A7F3DDEB8447FCDDF59E77A78B1CED83CFFBD3F18E6B2608 - BDEEEA347AD8CF1EF8AB8B9DED4BA73AE4EF9EF5AC479EE945FF7BE94DEF74A3 - AF3EEB7FE77BD867AFF4432C80B14AF028E66D69827C9C5DF64CFF3DD57B1FFA - A6177FF1AF277DD47D1FF6D71BDFE9F9703EEA7B0F78EADF1D140860EC8177AF - CEA2BB1EF59EF7BEFFF3456F8200645DF3C167BBFAC5FEFAF58BBEF9ECF7BCD1 - CD5FFCF047DDF60EC808F70DBAFE1A987FFD01F07FDE777601E07A01A87E01E0 - 7FFE17800CC8800058740D58809A677EF2377F11A88058677E12C8768780005D - 7035FB874C00E88016D8806C978027B881D110800B18812498822E78829BB77E - E5D7800A1883087808BA65039717827FE4820CD882E5578309788030D8822C08 - 844648844A888417A88450D88287B00A10906753E5839404855AE88263B085C2 - B08560188662D880877008E8A66E58E84701F88563188163D0855B08876D1800 - 72488772F88575388774484EDC9186951400C210888008886F38886FF885C250 - 8888288888F8868EFF38068198888A68875D888876D888957889801889967888 - 86388978F888EE404E1AE7877F148813008991988A9C3801ABA88A89E88AAD38 - 06A9588B13508BB0488BB01888B4C889B9288BC2808B91D88BC3C88ABE588BD1 - 200C17D787A62846A8088CC19801A89801B7F88CB2788BD41888D4888DB7D88D - DCA88DD5188CDC888DC1B88AC03801DB688DD2088EE1188DDD488DD1B0015026 - 029DD08C3ED48DB4788BF9688BDEC88FFBF88FF8D88FFA1890032990005990FC - E88DFBA890043901D140855D1065F6E841DE288EDD288EDBF88E02A9911BC991 - 1B9901B3208DAE28921D898ED5388E1A99911B1992C2E0040EF081573891D4D3 - 8F16598E2AE99125FF999325998E17B991C2A09216A99302B98DB6270A022027 - 32D93D219901D4D894E8C8945009925109952169925069955879954EC9943A90 - 015D09925F599552199556E99562F9945B99954C3901B3E00471C78C49493D5D - F9955339973AA003B3609773B99451D9954130955079978069967B5998814998 - 3AF0975C99977D19957FF99819F097820992ACB0015D304B71493D5E19987729 - 9841D0997A299876C999A0499AA0599A73B999A93999A1D999AAF999931999A7 - 399B9D697B72B756990939B4099A41009B9DD99BBEF998BF199979B99BC6799C - B3099CBE7997BD299BBF199CBDB99BACB000BBD583B989372EE002C0999DDCD9 - 9BDCF99DDDE99DDAFF1904E0999DE4499EE5999EE3899EDFE99DE2999E56D09E - EFA903C4A09EE6E902876099E3759DAB639FFEF99F001AA002AA9EEC39A0E579 - 09D3997131C99F5A139FE0190551909E106AA0DF39A1DC69A1FF09A11A1A050E - FA9D56D0A11DBAA1171AA1EAA9A12E1005F4B00102A00496C0A07A63051BCAA1 - 1FAAA1200AA31EFAA1334AA338AAA3109AA33D5AA3DC89A3420AA31B1A9FF189 - A13A4AA4187AA23BFAA35140852BEAA279C30A2E6005A1F0A34AFAA1D939A337 - DAA4589AA544EAA3321AA4353AA44A8AA5274AA2692AA3675AA15E3AA397E004 - 61B0A2BA27A5FEE204AC400CE0900565500659F0A77FDAA7304A0C7C6A05C4C0 - A17E1AA87DBAA88CFF0AA87C9AA880BAA85140A882EAA896BAA8803A0CC3F0A1 - 967AA990FAA71FDAA88AFAA737B001F9A711764A348E80A73A100AF700A87990 - 073110031E10037F2AABB67A0FB31AABB83AAB8C5A06B69A05B11A039FFAA8C1 - 9A05B31A03BCDAA97DBAABBC9AACD0FAACC9FAA7CADAABD09A05BACAAB797003 - 0B204B6898AAFED201DFB0014E000EA1600D5620ACB8DAA7D24AACCE6AADBF1A - ACC35AACCDFA0BD43AABC310ABCC0AACD53AACD0FAAED78AACCAFAAFB31A0A56 - D0AFB25AAA507605F508AE22E3031DE000E4FA0B79A0AB1E70B1189BB11A9BB1 - 04FBAF18DBB1B45AABD0FAB11DABB123BBB1241BB2282BB2B3AAB10A2B2E75EA - B0AFD207103BAEABFFE0952ABBB23A0BB239CBB12D7BB1270BB4C03AB43DCBB2 - 45ABB32B9BAC1B3B0CACF092BC25B3FD620A28E0031130AE4E400CA170B448BB - B55B4B085CFBB5600BB6CBB0B1E0F00561B05BB809B5AFB20DF5200B7D10011D - B0AAE0000E1E600D84600D757BB71A8BB7176BB78470B780FBB778EBB779EBB5 - 7D9BB17F6BB82BEBB7899BB18C3BB87AEBB87A6BB77C7BB1893BB8184B084D0B - 936A4B2EAE800228D0076F6BB337200D60A00EA7AB0EAA9BB884B0BA7FABBA33 - 3003AAABBAA93BBBB53B03CB90B8EAF0B7B1EBBAACABBBEA10BBBDCBBABD3BBB - 33D0BABBFBBAB3BBBCC94B080CC0BC7FBB0C33500E2E799469DBB9886208DABB - 0D27A00A55BB010BFFC00AD6D0BBCBC0BCE60BBBB24BBBCB50BB6050BEB0BB0C - F7A0BCC19BBEE7BBBCC24BBFE86BBFE90BBCF5AB0EEB7BBEB80B06E0E0046B40 - 028DD0B0D8EB2ADA0B0CAE200BA6F0B66EE0080B400FD6300A8470BA6020BC18 - 8CBA1C8CC1F7DBC1BD7BBAF73BC233B0C1B1BBC11E7CBF265CC21C7CC22DFCC1 - 28DCC1202CBBA7BB0C6D59C0DF9AC086720BAED0C386800227500F2A80058EF0 - 0037700FBBCB000C20BC0C00064D5C0EED0B0650BCC41A0CC5EBCBC4541CBB59 - ACC423D0C44B6CC552ACC4593CBD4E2CC60C3002503C0362CCC4F76BC667ECC5 - 5D5CC625BCBECFABB0E916B33ACC2506700B7B7C0B86500FBCA00A10FB0C1B70 - 03A330022390C1B1FFFB0260700C0CC0C818DCC830DCC4F3ABC66EBCC58ECCC8 - 4BECC499BCC61AECC68EECC496ECC66DECC68C9CC98DBCC4942CC63740C02440 - 8F799CBDAEC0C386E00A866000AEE00B6D10015AB001E1A00E877CC9C23CCC62 - 0C06C12CC6A340CCC39CCC979CCCCC7CC9882CCCCECC00CFACCC878CC6A57A99 - 2113CB76A20A7D6C00E07C0BDBE00BF530C81B90A7A3300A2FC0006C30022FF0 - 02EDECCEEF8CC82FE0CE887CCFF43CCFF58CCFEE7C0EFB0CC9F23CCFF6BCCFFC - 4CCFF28CC8FE1CCF600006FC9CD0F7CC062F700EF80CCFFFFC05FA79BDDC4C24 - E8500FB8CCC706A0BD28E00BB2E0032AF00D10C00AE0200DF03002C7C0C82F70 - 0CF4DCD2880C0602FF3DD1F04CD30CCDCFEFACD0FB8CD33DCDC8057DCF381DCF - F00CD3EE4CD313CD0646CDD2353D024ABDCFC7700C16ADCD789CD127C20DBC50 - 0FC0B0C7E0FCD1DB600A6E5BD28EA0065F100E67ECD42F500CF45C0CFBCCD6F1 - 9CD4690DCF054DD1880CD1751DD788ECD6419DD7748DD66AEDCE6C8DCF10FDD7 - 23A0D7F78CD785FDD2168DC356ED25DAC00DE8C00B7DC0D51F6D08DB8002AAD0 - 06252DB14E500E470DD16C40D3118DD66C50DAF0CC064F60DAA00D064F70D3A9 - 1DDAAB5DDAE70006107D0EA87DD3A08DDA6C60DBAD0DDB11ADDBB35DDBAA4DDB - BFDDDBAC5DDAC70DDBBBADD4168D059657D58D3D1EBAA0074510D993EDD15CBD - 0D6E5BB304E004E1FF000FA440DABAEDCE105D00A66DDE0510D12F80DE6C90DE - A5EDDEE7DDDEF2CDDEB95DDEF3ADDAA57DDFECEDDEA7FDDEF80DDF003EDFAD8C - 05E916DD5BA20BDA500403C00428700BF380CB5E0DBA6D40B56EB00185AC0E75 - 8DDA4F500023D0DB05F004B4FD0422FECFA92DE2BE5DDA208EE2ED2DE22C9EE2 - A81DE21B8EE2C90DE326BEE2235EE26090DEAD5DE2AF1DE32F5EE28A7DD1065E - 24D3ADE0BC000CD86DCB86D007A10BC145FC05D2400AED5D0054CEE255DEE2A9 - 6DDE586EE247B0E553BEE5C560E356FEE11A9EDA5DCEE2F33DE6562EE561BEE5 - 577E04BA6DE2ADBC069839E429D247A7A00D03800E28B0D5958DCB6CAB0AAAA0 - 021D40C85F000FE7FF40E557BEE105500C1FBEE5901EE98AEEE5BCDDE28B1EE9 - B62DE68AEEE83ABEDB2CEEE88C1EE9223EE7756EE708D2531D710A46AED55D0D - CEAEF0D1A04BB5847C0399A0E8B67EEBB89EEBBABEEB9920E2BBBEEB58AEEBC1 - FEEBB7FE04C7100E4E1091FB62EA073228BBA3EA7BAE0A86300F1E5DCB06600A - 224DB5BDFC052320E5B57EEB472003325000475000E25EEE8A2EEEEA5EEEE53E - EEB81EEEDF4EEEE26EEBEA7EEEE47EEFB79E09992003E88EEBF34EE5ECBEEBE5 - 9ECD4CD0A2CC5E2016701A221024790ED9B2E00A0FCEC31FDD070EDCE062CD0C - E09DE8FEEEEEE6CEF1545EEF1CFFEFFE1EEF1D4FEFF54EECFAEEF1B72EF2C4BE - E95F40C0E986C007FFFF1D4A711ABA5328D30DD927B00DB7D00610DE0786000C - A6500F27E003E34AD6C7A0EFFB0EF24CDFF44D9FEE4E1FF552AFEF50CFEF549E - F2275F00582FF5EEFE04D95CEA33CF1CA8A0141630282692F303500FB7800C7C - FCEAAF7ED927D0072AE006CFE0045F500C99700699800979BFF798F0F7800FF8 - 4E0FF800FFF7E2FEF77A7F06816FF820BFF87C4FF587FFF78A9EF78C3FEE47A0 - F78E5FF97F8FEE47D0DCCF1DF6CC9114648F061289070AAE0AB3DCD5D87DD914 - 5FB504A0068190F43280F9992FF8F5CEF78A8FF87ECFF780BFF7BB1FF87D1FF9 - B52FFC7DCFFBE13EFBBE9FFBB50FFC8ADFF996C904390CFAB911117181259902 - 009D700ADC3000BCFFB00DD47E0BD80D0CC0A0DD355BC4CC500CFF7006CABFFC - ECDFFEEEFFFEF01FFF8E9F06533D077A20FDC9111110E123A701108DE4740290 - 481B375E288019B8C5D0D0C33EA664B58980E5D90666F0FE9D01820908478F67 - 308D2439B2E3C7932051864CD932A44995314BBAEC089366CC964056FAF9B2A1 - 0B932B00840E255AD4E851A449952E65DAD4E953A851A54EA55AD5EA55AC4C5F - 6D7D95AA42855716308811114CA8B601BC78C97285ACA12B03AEB6995225CB47 - 042D1BBE043AA25327479D2501EBB4F597B0DFC2218084183C1848E19A8625AF - C474A6B0ADC68B15FB05BC19F167943ABF385933276856D4A955AF66DDDAF56B - D84F2B78A53DFB95FFA7B17284EA3A981685AB5BAE0CC13530DCD0B6BBDF1C39 - 61E6C723689C80311FFE08F98CE7D0D3634E7F6C38A448C2D2FD32AE8E98A365 - E82919170BE4040B133DB462CFA75FDFFE7DFCF90178FDDA7F362ADCC418400F - A1F0408B17530C3180A1051704C6141428B2E31935C2F9E71F5B420821C3C534 - DB50C30F35CC504410470CF14413432087440DAFD3B04314415471C6126B6411 - 440F350CE4813548D04D3F208314724822639BEDC80AF8F88A8FDB2CC0478C2B - E403408F01D0A9AB41B886DB06857A0C51A1030A2DECEEC3F33ECCF04C33D344 - 73CD34AF0382071233BCEECC8FD43413CE157960734FC5FAE490BC40D4E85104 - 3C8A34F450441345FFB4B6FEE2E82F15043C799250A14EE166801364C1B24160 - 7C39A18F36C074221045FEE9E7461353B5314654655C911C555B95F5555951A4 - B54FCD6C39468D3A0410E1148214157658628BC5CA3F24914CC59300AF2874CA - 4B4F3024B8E1B29C0B055023B0E381632E4C53C6174F05574634E31CF7DC1B65 - CC115D76DB6D11DC5D1D20815263EBB5F7DE7B91D5B7BF571070B291D34E2902 - 53141A9AA7C186E2AA47151528F8809934CEE8C71672E03CD7627429EE07E313 - DDDD906310416EB762912F1E97A75E9538055F965B7659487D05E143107D11F0 - 171F801329E8406090F121E1E25C71C597892270C39107020162621E7838F5E9 - A69D0E21EA109EAEFFBAE97E368E5A6AADB78EFA54ACA76EFA6A38ADA61A6CAF - CBFEBA6AB1D31E1B1E351CF035D897EBB6FBEED41AFD4A90381CADC05147F960 - 5294B11AB144284B106AABC1060D890818BB3A403A90346C89DA1FB7316F5A73 - 1E38E77CEBCF33BF7CF4CD49EFDC6DD443479D9C5D533E1C6FD863977DA9FEF8 - EEDBF63870AF4066002D4003A84A11F2058569DB882B2EB94E60A28F08280843 - 8D40AEDEB86B459CE6A1FAE9ADCFBEFAA6B1BF3E6AEEBFDFD87BEFB3DF5EFBAF - D3EF1E7DACC14F3F8D5AE456E2D9D9EBB71FEFDD6DDFA1EF38F6EFDB7FBEC92C - 524F0A5811D09110E21C0F2EAE00461F92E3880F0482643C986005A366C1A661 - 908217E460063BB8FF410F86108423D460093F48893008400972D0D9FD5CF842 - 7BF1EF7680E3DBDF6A98BBC0310B03681081503A41255ED4A360B7A0D643E632 - 1115B8210C0FF8821FBAA63528A00E8A518B62D3AAD83E1E40E18956A4E2D6A6 - C8453066B18B56ECDA18B358461EF8216E5DB001FD60F846381A4A8633A4230E - E9C8A49B89808500E8CD097A06B4E1A040900EEC801608A086CA95E27451BCE2 - 1531C7483142D29162F45C242D593A495A329399E4DC264FC74528F881121BC0 - 821806124754A6323F73FC5B2B01E74A58C6810F37234BA17431B0B5004341C4 - 71451FB6B1308A48CE0969F8A218C3D8C84B1A737A903C663291D94C68F6A393 - 9A34663551F89E3DFFAA529BDB6C4D1C5AC0BF1608429CDF1CE71CFBF64D5936 - 490C8DD80D2E55018C043E0418DBF005A8BE44802FF8C31650E06716F9090567 - F0E39FFF7406144A015081FEF3A0504868410FEAD08102D4A0FC6CE840FD59D0 - 813E74A2FCD4E84213CA518932320469D8C03AE6F0236EA654A5553127CD6CB7 - BBBED9D09C7DEBDD3AF1A00BDE70031D7E6C03B58413972DA9C2071D3824C4FC - C18F823A43A9FD8C6252258A513142B5A94FA5AA5393CA8380F213AA56AD6A48 - B1DA556744B5AAE40828494B2302BAAD54AD6B4D0A3ABDE9D616A033AEE0742B - FFF8B0084FF8CE943A13183A7CC1908624CC10F3EC431FBEF40C0230A318477D - E852B9AA54C83ED5FFB100856C652D3B59AB2EB5B1977D2C65935A59CF8616AA - A3ACC3BCA4C456D4A636AEAB656D6B5DFBDA16F021AF93D205006861C013B8A2 - A744844B1F86D3877AC8420576C0C831184B56A59243AB17606E73934BD97468 - 351DCDBD00642F8004E696E20200552E14980BD9EE7E57A9D4EDAE33CA5BDDF1 - 7E57B9CFF52E75B7AB08D2CEA187A9A5EF5A5F9B83D7EE40BFB06D410EF40B20 - 0CF8400996D0854130352D642C8838B700C609D0215C373C83398A80022EAE3B - 51675C001748C06E7321B161244062BBE90D312EACCBE10F5717C3E275C64359 - 0CE20B7494B21EDEF076B55BDD877EB8C3CCC56E0F78458222B4B0BE43D6A67E - 8DBC5FD71E59C947FF5EED0E5071B346888016BC1940977A2A1C2C17A73886A0 - C83712AB0867C8E3C6D4153373CB7C81339379CCD45DB37BDD9B5E35BB39CE68 - 6E6E9AEB9CE1EBDEB8071B28AD9489FC6754F657D0F8F5EF0E5A4B68411B79D0 - FDDD81329E2C16B2542A2DDB30805B80B6A03EF8C217123A242514518A1BCB83 - CEF240B1A8E5A163EC9A7AD41AC62E2490200F53971AD6293EF58655DD6A0E8F - 1AD5D75D35AC538D6652939AB93AAEAE107E5C0440271B868636346B91CC5F45 - B7D6C8A968120F83724B4C6D83889706060A8667D80E50002369E0873F9A7B63 - 2494A2C3EAE6F5BACF8DDD74C33BD4EC468233D62D6F37A7FBDD793EF7BEF5DD - EE3CE39B1C3E2EADFF124EAB6C84C38ED1882EF4A219DE024533DCC8FE5D042D - 7F35A5B4FC15610A76050AB66197E611E00FE40678ADDB8DE257A79CCEAF8604 - AA833D84535FF7D4B9E670885F2DEA56A738E528B630BC65FE6A98A73CD8250E - 31AB43ECE314CE2FE14BBF5B0E9CEE70A8337C110FA77A0B2A0E811D9EE620BC - 782743B214B42D45485BCF4B03128830849AFB1CEDF1E6F510AE1B66522361ED - 6DBF0024E2EE769F8B39E8D7957B87E1DDF7B9FBDCE77647FBDCF15E779A5FA0 - 075F483AD31DEFB21C28C3E94F9F7C7F293F79CC575EF3945746091CED3B81E0 - E11468F99482DEC2A98EB72189109420AB832E8F21E002E6AF4782EC612D0F22 - C0DEF63B7F7DEC85FF0E745B035DEE4387BDDC774FFCDFEB7EF6B69EFDD0435C - 8B14B6F1F1D3AF17A1735082EB675EFBDBE7FEE4B1EF687F6140BE7C4D8B2AFA - 40C4E30D761B85F50132C2CD4445900317B810B1D98770FF21E41ED6F7873511 - CE8EFF59BB80FCF33F0204B6DCB33F983BB5FBF33F03FCBFFC633960AB3FDC23 - 40FC5BC0FF3340DC1B82C57B002C903EEAFB4045E9BCEBEBBC12C0BEEECB3EED - C33E132441CF2B4165588477C8AB753A9C8340877A589CE0D832A13185130815 - 43528337903F5CA040FCF3BF0A1C40073C4224A440D823C0FF833DD81BC02274 - 4023544227ACC2293C420A6C394550830E7423100C432151C1EC33C113DC8113 - 743A3224431CC0AFFFD932A5534884813185B7180EE3890B53E0851E8C003021 - 004A480727AC402CB4C024D4C22B14B640B4422A5C44255CC241944241C44222 - 48031E99033014434CBC8F122C011C28C1EBDBC44E2CC1507441CF1BC516E444 - 5024C5CE7BC148198B5FD1039D92085D3A1EC6692003B80B0A780021E881FCB3 - C2214802470C44603CBB2B4CC2451CC65FECC56124026444460B44460A6C4665 - 84C4C24B0341F1C04CCCC6FA38456E64416F5C43520C471514C755AC38DCE0A1 - 42814574308579E8A9A0318036300414A00B5C24800F48835298BFFF2B467EEC - C740F44780DCC7801C487E94422240024AFC8983D346866C0D54EC44887C4889 - 1CC588AC488914C5FF892CC14713001B908360E82B4D39BD0509248950BD0843 - A47C4C028224C85F5CC9626C499774497358C221B0C63560024B10B286DC49D4 - D8449FCCC888F449534CC59F244A50AC384893323DC0A56D501005033B143801 - A17A3F6648075C80057388C97E9CC981348721BCC22408CB62FC4A0AE44A22C8 - 4AB4ECC75EBC424AC4269DE449B8A48AA29C4BBAAC4BBB9C4B1C58842713051E - B284D1C31460B805B7502003789089B80B3B482C22C0050E60C621C84A6054C9 - B34B027398499584CCB3CCCCC86446CD6CC9CAFCCC96BCCCCA4C46B4AC4CCEDC - CCCDAC4C9544CDD0244D228084B62481D7894BDA948ABBBC4DDCCC4D1C4000BE - 240B3DE8AB7AA034FF06F9A991340412B82788014473E806CA7C4C661C4DD574 - 4EB4C405B47C4CEBACCE99FC4CD5CC4EE91CCDB0D44EEE0CCFC784CEEB2C4FCB - 94CC21A0041E210102A94DF7748ADC8C4FF92CCAABB30001688442C125146088 - 041B49E1E836E6399A0760064548826E60CEEFE4000E08CB245050067D500865 - 50D58CD006E50073480258A04CF054D005CDD009FDCE0F055108FD4C06B5D0B0 - 84CD5A28ADF67C4F16458AF97CD1F9548659FA1739B8821AAC876DF3BA919485 - E141CC0DA8853480045858500E18520435D005A5500A0DD107E5806E28520C2D - D2CF3452281DD20C2DD1271DD10B7D501235D06ED852604C875A58071F79CB16 - 6D51184D53DC8C84FF48C081188C0534B0013DB8251B4C205A8C085FA807C352 - 0E35F8C364E8050E4DD2063D5225E552308550053DD227FD4C0E555441AD5042 - D5502D0553130DCB278504E85381F93A534E05C536C5011CF8D45045C536FDC9 - 500555501CD54EFCD4871C55BC045565F017345099A53CA06DC032A1A996B868 - A0A1D28201E5C50A35874065D0214D06134D06EDB4504065540BAD4C0E7DD064 - 084B0795D64015D46A1554676D56099D5063D54E48108230F0114EE5541C4880 - 724D80048884746D077445D7736D875335D7744DD7369D577745577695D77635 - D77A3DD57C4D805CB819749003BF4488A61CCEB850BF4DFB120A382472808527 - BD8340BD50739058FF0BBD830BE5008CAD500EB5588D25D26B0DD98E0D598FF5 - D84035D989A54C8CE55022B8A64D1D57F704D57A55D75C00587905D572CD0551 - 05D579C5599BF5D99AE5D99BFD547505D5A04DD74580807324144BD92959303D - E13022149085C2FA124750831E10D26A15560B15D96B0554AF0D5BB11D5BB2BD - D66F4D2139D083B482599E4457757DDB795557B76D57B95D57B885DBB9CDDB7D - 8DDBBD4D807FCD0500438346288222B8145EF82BA0C992A139817AB0DA077803 - 48385091055B0EA55C05ED05CCF55ACADDDCCA0D59CEBDDCB2AD56CB1D0270E5 - 486D605BDAB4D9BADD579ADDDBBA6D5DD6B5D9BE9D5B365D5DBADDD71280947F - 11013DD8BA85309EFF2C3B0E59785A15D01602E80188ED06B0C55CE66DDEE6AD - DCCC0DD4E8E580E9ADDEE7855EE7C55ECBFDDAEBBDDC7D48512C3038D4854BDA - 9D5DDBC5DB743D80BE45DFD8AD5DDBE5DB763D805C5800C2895339D00603E205 - 57988784218E79701C6010AA5CEC81ACED865DA001E74D60EBA55C89B55EE8D5 - 5ECB5560ED0DDBECBD5CCCFDDE30E8C0D91C5F6D9C5D0FF6E0F7FDE0F5655311 - DE5B65884151C0071BD006033B8179408604330EE1D8866D5005D5A300A4A184 - C8DD05E5C55C1AF861204EE01F166204F6E122EE852136E220665E206E620E6D - 62056662283662CCED816BC2460ECEC412F660F5DD62BFF5622F56DF76C8056A - 00107C90AFDE9D34FFF4631C8525A46DF943586862399E633AAE633BBEE33996 - E22446623C9663E63D5B6CCAE26C44D72E0EE3761D847F9DDD42E6E2441661F5 - 3D807618840AC00D1258213AD5B6C12CCEE43981E324AA07F0821EA0816EE863 - 522E6553F663252E65264E06217880756002941264103C005AA6E541B8E5423E - 8041A8655A3EE441885F5B26E45E16E67DBDE55DE6E54236665D3E665B9E5F51 - 30DDA65D881C649C5D85C7C3FAE47D38656DDE666E36E524E8010E6482D395E5 - 594666733E67744E6775E665665E675E2E017FE98239E0865350473ABC857694 - 61B998DA7AAC857418E51FDE823BDE058116E83BDE8203B663840E682046E884 - 4EE8839663842EE8FF8626E83B68E557DE607276BC5A4E8175F6E87676E75ADE - 658F46E79016695A2E8177E0CD595D4ADC3A3F6458A0E280A7E1F581D5FB0021 - 48061AD80582DE8289F6E99EF669A10E6AA21E6AA306EAA3FEE91F286AA14EEA - A666EA9F9E681AE8810F28B84BDC68654369ADDEEA745666941E04599D031BE0 - 86C24587DFD0D506F136AA65589C4E0603DE851F68EA2D58EAA68E6BB9BE6BBC - CEEBA58E6BBECE6BA1DEEBA0F66B9FA66B9FA6817DA86A8EC483B5C56A4043E6 - 141884C72E695B966C5E7EEC5B8E6CC8CE6CC97EECCA866C73CEECCBF66A5D8E - EC666E451F90D35398345DB25303D886796A835071983448021A88EB6C18EC1F - F80133986BDD3683FFDCC606DECEEDB8066E6C106EE0CEED2608EEDC3603E6F6 - EDDFDE82E4766EE1EE6DE6FEEBE9BE6EDD9E6EE64E06E85321C65E3A6436665C - 1EE993166FF3366FF266E7F156EFF36666D1BEE56B5869FB5C613988966DE05F - 9F1AC93C5485E679805AC8699EDEEDBE1EEC2D10F0DC9E6B04BFEEE04670028F - 6BDF16F0056F7004DF6DDF96F0BEEE6BE7E6EDDDBE03E89B97C5FEEEFAD2EC41 - F006122771F3F606D0CEEC125F711437E6163766CC2E71F3B6EC1167F1C82EF1 - 9126F16B6801DEFC092548E3BF1ACCAFEB36A2192A0115021AA8865D906EEC5E - 6E26CF6D2A606EE196F226A76EED7EF22B9F722CBF6E2AB7F2C3D6022003F164 - 63713237F11A7FF1FF324FF31657F3173F733697F15B5EF1413861C2110325C0 - 5F8460C7DD4A98799A0B1B8E8067D0C57408F01FA0822AEF7228EF6D2DAF722B - 77F22D77F245677445777433B8837DF8313F13F3217B7333877337E7F4385773 - F1E6743977F31438F541A0060848612610811ADC064BA36603F005B590100892 - 845E3083283FF427D7F52E47742EFF7560CF7248977461A7720CAEE40FD7F495 - 5200676771678FF6349776127FF66AA7766F70F6534F8168B77612DFF66DEF76 - 052873715FF1804D61B2285C5E681CE2E43843F081A17218494886E68E7449C7 - EE7ABF777DDF7747BF77C3C67466A7AF331F8471AF768277F36827783917F783 - 578086177788C7F6FF84777805387513A7786727F8673FF56B4000088805154A - 5B9DBA6F4B93691AE6673079987DD8856AA80643078428676E43176E2AA8799B - B7F942B77998A7F9979FEE9AFF01987FF99B77F9490F7AA0FF79A34FFA983783 - 5DF872D90C78D462F1814771687778AA5FF16E1F71ADA7FA88EFFA12CF78AEB7 - 781347F167D7F8AF8FEF7748E18E5CCA01F005E078FBA8A561AAA588A3C15A7A - E779A3F7799DFFF99A877940D8F9449F799A2F74C23774C3A702403870DF36FC - C26F7CA13F7CA33FEC3A68F58584FA6DAA716E2FF86CEFFA8CD77CB2EFF6CDA7 - 788DE77CD0F7066E6F7882DF7614AF82AC97F88C4FFB2E400374206B8291E691 - 0C1A53A8273EBCF5FF7DC86DBFAF06BF477CC4077EE20F7E40287EE137FEE45F - 7EE307FEBFA78226387AE59F7EE04FFEE2FF812F572133B5FC54E2FC6CAF02D6 - 7778F0277D6707FFF087F8F117F7F4277FF55F7FF38FF804A00604901B1B4804 - 5A4088FDAC43050106C80108147DDA4470F480520F6C54AA5101F483CAC38880 - 1A52816831E2C58C0F294ED4E8F1C744871F358694D8F0C7BE0FCF48C801E0F2 - 25CC983267D2AC69F326CE9C3A77F2ECE9F327D0A03E1510AD6294A882490A8C - 5699C41429D4A84637452D7A546A15A49B4065AD8AB5EBD2AB51376DAA420D02 - 3E26458A7043C7CB95815B060CC09D0B6CDB098214087C1072C74CC38E202B56 - 0354783044C18A2BFF0E36EC183164C5850B335E9C98B0E1C4930DDFA9158644 - 11A1A247932E6DFA34EAD43A958665EADAA8842A1290B26E9D14A90477466B67 - 7D4AD4E95309658F027FADF43572DAB2155C430021160925DAB4B575E5EA569B - B97481A1F0250B590437CF0E26DB129263E08E142D6EA9A8FE7DC5F8F0E36F3C - AF3EBDFD88520085E4DF11103629D5C1444BAA19782082092AB8204DB22D811C - 535B2D119B044E39352153B165E59404135AD89471143E384987116AB8DB8927 - 1AC5D5860E8A98550ACDC522800DDC1431003ABEB8828C5C7019F2A329F5F4E1 - 4307143CE00517BD9861866385F9D74443D5403965945352D6C495555281E544 - 4DF807C87E9B3501FFE5975C4AE99F1467FA17A54302CE5144220CCA39279D75 - DAE91285109A285B15544D42E26BB32995E79F1B16071C859BE4B99BA2530DC7 - A76BF90CC7219F142635493C912060411773D820475BA65C678021AEFC78CB36 - F5F0A20A416E10F08024BD54538D14B5A6B7A5AD63EA9A2B15526C491194EEC9 - 271F7FB68624C5945F72E42598FCE147E6AFFBA831A008775A7B2DB6D9EE5429 - B7896E82E99F80E6392E9F7FC6D32DBA159E3B2EA67CC65328B9C295A5AEB8E5 - FEA9E8350B38100B1A4A8830002FA6A04017C1DA6D270B918E7CB00F48B5D68A - A6C311473CE5C3C53A4CE59712FFDA04AF54522931B2B8D6EA71800FACC392B6 - 29ABBC729DE37E1BFF6E9E4BC82CF3BD7FC6DB54874B501A5BB8F63EC873B893 - CC3CB4CE94FE49F3D145077DB470F1B4F3CE7368D820C25AE86C330F8FA41A32 - 9721B29CA08A0A1D18244432B3D23AB1AEBA5663C4AEC88E3932C7308CB905C7 - 15C1DD76DA7973ECB6DE7DA70D03369284B18E0D78B07C38E28993E66215EF86 - 8B61CE339B0B2FE4134A90338990C3ECA1D0145E5EA1D04423DD21E8484BBE74 - D21280328937B920E0800068D8D8962F73C9A575A9BE08E443047638E245323F - 9811B1DC63B2FDB6119ABCCD370C6E37AF2B984D682245F178FBBD77DAC737A1 - 7DDFD4076EB25A712A3E3EF9E5CB34EEE7A4F329FAE532DFDCBECCB2353AF3FA - F17B1EB9E8F4C7C6FF3EFC33C32FA286A086010130C1463812D5EDB8F623147C - CD07AEF282249A4137EAF14D7A63AA46F59E273D18148F7A166C9E118CD03CE5 - EDAA7A6322E1DB4C983DEDA1507923BC83240880050299AF8636445CFA72A8C3 - 1DF2B0873EFC2110830844B32C00025DB0811EA8C38B79C4652E70810B3082D4 - 071588E74877389B0BA5A03CB66DD1835CE4A005B9B8BD0D364F6E623C6318D3 - B8C53472906D6D949E075D18B80D10CE1237BC231EAD25C43DF2B18F7EFC633C - AE210A0C88610022E006C0B621975B58676BAED8862CFA4082DE118019924846 - 13B650C6BE69704C60BC1E073B79BD51E6ED93D43B5E2739F83D2C142E8FAE7C - 6582FE28CB59D2B2FF8F2CF0C6594421007468430FDC780B8F126808EE6C0318 - BC73D591F6E1491884D00880588111A0D9CCEDB531846FD4441BD7B8C5668670 - 9B22646633C1E846667E109CDFACE6F6EEC0850760A15AB07C273C49934346D0 - 939EE9B3A704EAA9CF7D32E29EF3D4E73D019A4F7C7E8EA004BD1C3F135A507E - 4A2005EE40802E9970488099A254D861A4A95C210B534CB10376200092B6E0C5 - 1002C299DC5C6638E5E642726E8F84DC7CA935CDF9CD945A306E2945E798B0F1 - 8630084004B488275083BA937FD633A0084D68426B70D0811675A14D6DEA42A3 - 1A50A44235A12C60013DA136232628A12D27D8860190C1B5B9F4C117F5401815 - 09F00749DCA109E0FF2CE9334F3A3D7372708BD50CE11861FAD2BBCE34A66BBC - 6B28C119469DB2D39D423D2C626152CF78309505A0D0A76325108F7A82C2B196 - AD2C662FBB58D55D56B292ED2C632BDB4FC63296114AA5670D40E1D9D05AD6B4 - 8CB86C64599BD9D9E6831A0B58033E6AD4165EC8A2898D7C22A9BEE30685BD21 - 19A7DC2B5FFB8A8D153C131B814D29379F1B5DBA9A93B92BC00674F51A426CF4 - 200C73B06362C32BD4D79217AB2CA8017AD17BDEF492D704E97DAF09E2FBDEF9 - D6E0AAEB55EA7A4D7B5FF49277BEAFE52F7D035C0313B0C004FD15F080B1EA8E - 0588A20B6840075B06E08B79DCAE2EDB111215C723042CB9D59C748081349BB9 - 8215C04013308566FF8845C8B6E49158A6227E2989B54B074D6CD39B24F5421D - 48A007F1F2189EF8752D56D9ABD42197F7BDA64DAF094041E425BF1614061EB2 - 92511B64D7FE98C9EAA5328253EBDE201B39C0F4CC57D4D482C87AF8626B8C24 - D5235110C963C2EA0774AB66284F8C4DBDA658C5CAC36672A3095371EE59A578 - 35F14BEF80E339D0A2133D3E341EB37CE400CB77C04376B47B874CE0231BB8C0 - 8F5E7297912CDF48A3D7BD8B46707C398DE44BD3F710B914002FBA4AD1EB9CB9 - 2EDD31AB0AECF0803770E10ECCBC350CE8D0CC0F43B3C4271E7174675CE20F33 - 13D8211C71AE6F1AECBA963894780E742D5879054453BB862CC8877B096CDFF7 - 5E35BDDD56EF7EC1FFED6DCCD637DBE0FE74A7B1CD6DFB5E55DD49B6ECB7D5CD - EE6D7B3BDCF5BDF696F3710DA8E1630E5453C20976D4864692751BDDE9A84124 - A1C9BACE14C58046B19E59ACE71243BCC5209E73AFDB58713D6FBCE3D10C258A - 25F1001A55BBE4E32B707CE7BDEE7A83DBDEDF2EB77CAF4A6071CF97C0DAAE37 - BB438D726DAF57E7F3DEEFCBEBADF30098200067818E0D06A00474041C6B3DD2 - CE23F3120123D11ABBC70631B0291E4D60AF00E323C626D791AD01126B62C424 - E6F5D6511C76B5B33DEDB9063627441E012588CFE4764F19A70B1C809D879AE8 - F1DDFBDF59E0F75013BEF03E37BCB60B0F78C317D8BE860F400DF62EF394DB5C - F191A737E26B908FFF05DCB65345D006C06E810CB196EA4786D8867754109EB1 - 714C8424EEB8D93D5ED7B24793C6B4973DD6BB5EECE4959DEB1F2F76EC915D08 - CF90C0A7773F3EB6141F80C1177DF9D158FEE0973F60133C9FF97F773EE197DF - 77ED17BDFA018846A8BD5FFDE6639FC0DCCFFEF99D0FFDC18BFFFC8C7007351C - D0A901ECD614C03018D750A07F031049D66CA526AFAD5DECA51DB2CD58EFF15E - EF059FD9694200D2D8021EA0D91941002A201DACC01E105F68209F06D649F615 - 9D07FE9D07125DF4A51FE289A0E29D20089A60079A200B0E9DF591DF0A9220F4 - 151DCA415F0D9C1A0970830EBEC5225987A9185C3D9C0009A4D507704121B458 - DA1120EC91DDEDD9FF9E02C61E9E7DDDB1755D02725CEE29602875468E15C806 - 76A182AC1F187ADFFAB51F1896A1199E211A429F18A6211BB6A1FAB9610008C3 - 3518112FE8E0009802583951C118C0361802EF884D11DE81065CE1133EA11316 - 62F039E0D72520222E62238ED81E7CC03A1088A179A125AA061C66221A8E8126 - 76A227B62127BAA130D44011C5820FA8C58DF02013950A5D3C1230201CAC2CDC - EB3DE2236AC2275CE127E4222D6683266483021E221542E12AD9C0B45DA2319A - C627A6A13098E1322EE3FA35231B3A63324EA3342A23E4D996FCD90075B8451F - E0DF8FDC8540DC42048C075B91D8D8D16223DA62059A5D2E7E022DDA22232E62 - 022AE22216021CB0FF131380D731EE6350ACDF1884A226FEA33F026400086419 - 0A433532A3191AE434A2E132FE234412E4414A1F350C12133041D2E54837FAA0 - 13A1DE09F4C1D481141764433670103A16A22EC65E3BEE622FFE223DD2633016 - C24EB5133FD6E44F44E418648030E0244F22244242A44E42E4044CC04EFEE304 - 64C03FFEE43F660051FA244F26A5531A25513E255416255556A54FFAE4501EE5 - 50F6A45216650DAC0204AC01012192D5C4852369C736080C32A49517C8433668 - C03A16A25CAEC05C065F5DD2415DC6DE5CEAE55DDA655ECA653B56A05F02E65D - 0ADA4AD042DDD92463DA44446EE55562A5504E80508E01654A256662E6505A25 - 4E0A03641AE51870FF66672A6564FE64536AA56576254F52E66586A6670A8358 - 8A42BFA91A30654746B5A22AF0C22D0C575F34038811A2D90DE220D2250C0867 - 710667EE15E7719A9D721A673B3627749E2327AC4033D4C2246A436366674D6C - 25530E657772A57772A77886E7568A273DE4E47882A77A7E277BA6677B966778 - 9E275292E77AA667797EE77D72A709AC421175812AD8A12F8C9E1E920A776098 - 1B188917D81A88E9E5D855C22754825D3EE82730E80A382884EAA5856AC0D851 - 28876A28606EA8877628888E2860AE00177C00160C8076AE684CB0267CB2A665 - C6288CCEA88C76A58BDEA88CE6287CEA686A42268DCEA88DEAE88BF2E88BFE68 - 90CE68341C427F92FF40D2D90099C1C5EDF4C130ADA52CB40A48ED81820AE727 - 4CC3270C22974E43715682066C69971627996A809886A970A6299AAEA99BAA29 - 9CB6699C560227AC930070218B6AA77AE6277DBEE79EDA2757FA6977CE82A016 - 69A1F62977E227A2BE28536600A1BAE756060165DA962ECD4157E50885DDC28F - D4055E9C5578F0051CDC815FA2E9830AA6831226A98A69055AA861B66A61BE6A - 60A2AAACBA6AAC0AC167144125E66963326A79BE66777A669112A5B01A6AB002 - 6BB02A2AAF06EBB02EEA78FAAAB2C2A7B1DA6734AC822ED9005B040CD76494E9 - 994A1BF0CE7884EA20D2C134544225D0C184DA65AE4DE8719AEB86C200B98EA9 - B9C62BBAC6EBBAA6FFEB87C1EBB896EB838AE9348C9D068CAB5D4E0317A8C124 - EAA3AEDA24A1CE8277266CA38AA74E1265C3466CA006EAA30AAB3038EAC31E65 - 06482CC63E2AC73AEBC35E6CA06EEC51326CC9462CC9E667C75AECC636AAC71E - A59246CD00E84111588DD315CC30F5812A10C978D0DAD995AB5C6AA85C022D1D - 10AD5CD2815F96ABD232A8D0162DD23A6DB922EDD2326DD14E2DD4D24121AC13 - 4D1E2C63A26CA366800EA46CCAD627A2B6ECC48667C36A2CA4A62DD9B6EDD74A - 6CD9922CDBC2ADDAD667061C423E20C037E4A02FE508706DCD3075C777509123 - AC554922ADBF6AA8D4A26925F4EB0A1CAD5EE66BE3BEABD0FEEBA9566DD492EB - B822AEE2EE6BE34AFF6DBE6A0027BCC14AE8C16272AD3182ADEA6E6CD8826DEB - B62CECC6AEECC66ED8BE2EEBAEEEECC2AEEDE62EEFE6EEEEFA2EEED62EEEEA2E - EE06C12C040152EACB2ED1A629E01F5DA00047B501E1FE8111C2402B046DE726 - EDA83EEDD05E6DE576AFD43A6DF8466DD35EEDF832E8059E8C1C9C2EEA7AA10E - BC2FFCC66FD80681FCD6AFFDDEEFFB6600FDE22FFFE22FF2EE6FFFDAAFFE0630 - 01F7EF0444C35974011368C3B5DE9F1EFEC8364012C288CD5A7142E4226EE86A - 68BFF62BBF0A6DBF56EE067FAF0673EEBB7EF0BF9EB009A7F0D0BEC103748112 - 184EFB1A63FFBA80EB167000D3B00D177006E0700EC32F0FF7700E0781108F43 - 346C4017F002FDB5FF453D34D1801A0099B5016FBEC11E64C3D32E6DE58A69F7 - 6A28167FEF165FF1D16A71D18A709B6AB1D06231D2EE811738420EC6B0311AAF - 101B2FFC1EAF10CBB11BBFF11BD3B11DD3311EDB311FC32F1FFFB11EBF71FCE6 - F11DDFF1FBF2712003F21FD731001F3200CFB1108F4129D2C87460EA2D2410A9 - 98822C18023214C90330C34832AD079FB006A330068FB20AA732298F3208A3B2 - D072823E808FC1B2B10606C125BCF12D0B712EDBF225DC722EBB800BE0F21BBB - 402EEFF22E07B3102333302F333127B32E03B32EE3722FDBF2302373314F332F - 5F023447333707C13253F33747732F1BF338DF3230E7B20ECC027F92A5B57A15 - 5861F22BA68A2CF4FFCE037C001C1402F75EEF18EFB3AA86B11897B118773140 - 93B1086F719DB29312D0B217163224373436277330EF3131273223E331339FB3 - 1E6BB30B04F23817323067742FCB712F2333451F6F387B3334D331368B34366F - F32C8CC33804C1E6C91F4622122FE4219AB5E209F0423D50D15EBC013E336D08 - 8FF0069F7229ABF251FFAB289B70292775E58E2E4F89C02C2BB4C95DB4555F35 - 5667B5565B35315881156C355887B5588F35595FF42C38811159AA57D91FC158 - D85D00830AA88091DC730368C0F5DEF5F75E6F034C035EEB3516EFB507D7752B - 60B13E6B705DFFEB6157C25D13B65D6BE81EFC418E191655DBDD324781655BB6 - 5733F3654781557FFFF5575F35672FB3578FF66647C167BB00669FB60B58C166 - 577668A336677BF66BAFF668BBF668B3F665AF363097B66503B36A9B3669A7B6 - 7063B665B38258AE81D424D1009C00D6B4C1EDB441D7780748EEC51FC04125E4 - 9A8622C22A37350A7F6F08ABF2770BAD7687B77627F53470C23DCEDD641F9F6B - 5F7666F7766B5FB415743568BFF66D7B756967366CEBB70B74757CC3B66BD336 - 6B33F36DDB7670F7F67BF3B66F9F3670E3F7703BB869733631D0032B28EFA720 - D209D8CEED18421F08CCC010EE0748425CEAB5060876639B785D9B3889374025 - A47889BFB88BC7388CCFB88CD775DC8D1CAEAEB7C9F1B670C3B48257B6154003 - 3484F68F0BF8810FFF776A13F87F03386A2FF880EF776DEF7683E3F6650B398F - BB37348C837B8F761674B9834338980F83BE604074EC603D188273938A5DF4C1 - 5911899108C11E7082E27EF0614F0383DA399D1BF6502B755117752BE3B9778B - 2B9F17C21F7CC6FAEA78B59581A22F7A9737BAA2377A97978115383AA347FAA3 - 433AA65BFAA2C7400C2C7AA5673AA65F3AA597C1A87FFA300C83A7A7BAA797BA - AAA77A0C407AAAC33AA967410CD0C32A38C11ACC811CF8D24D67CDD638919AF9 - A1277BC123202D5F37402B344003D041B227FB5E2FFBB3D381604B3BB2573BB4 - 1F7B2B4CC3B52F7BB323BBB6333BB24BBBB60BEC0750403E223AB5A97AA8CF3A - A597FAA883FABA6FFF7AA7C73ABCCBFA30C83ABBAB7B979F7AABEB7B16F47BAB - C7401EB0BAAC37FA3078400C2C401794B94DE334CEBAC240A415504F686367BB - 8A8FFBB3637C89F375C56BBC5E63BCB657FCC6A338C617C21E3C4004E029BA8B - 17A7C7800794C132B4BCCCDF4328C8BCCDDF7C19BCFCCD0B7C1E0C7C162C43CE - 9701A7F77C1E047DCC733ACDDF4316DC83CDBF7CCC2BFDCEC33CA74B3DA703FD - CD5BFDD423BCCD077DCB533DA77B80D6CB7CCEDF7C28DC03D1DF43853B400414 - 9012B902D6188C750CC4741FC91E2876892BBB5DB782B3E3BDB2A738DFF3BDDE - 5BFBDD0BB6DEDF7DB713FEE197782BBCC124AEFCA1753AE40BBDE4373DE47F7D - E56FBDCC83FDCBF7FFBC07B043E4B73CD17FBED037FDE44FFECE5FFED48BBEEA - 977ED45F7EE96B3EEB8F7ED70F7DCF77BA71CBDF1C7003E8DDB4DB3BD137A60A - 48BACA1FE843366C7BC7673CF283FC5EE375F293BCF38B7CC6B7829DBE70AE3A - FE6105FDCB673FD77F7DF6B77CF76FBDCE733FD8133D2180FDF6133DF6A77FF6 - 9BBFF67FBFD887FFD7ABBFFCB7BFEC673DD7ABBFE6D37FD8C7BF0700441E811E - CA7820E604C21A12038A0CE0B5CDD52D03065C197205CC97AF3E2ADC10F8C0C5 - 58033A225B3528D9609A48942A538E6CD9C0A4C9972D4BB672599366CC562F1B - 207AF34000375A008816357A146952A54B993675FA146A54A953A956ADEA016B - 56AD5BB976F5FA15FF6C58B163C996355B7696930D6BD02811818E97A93EAE2A - 4E343411D809641D1C7D2CD440C34A0D3B05B70A3CCDF04A4480511A269C72F0 - E0942917DB736C0F7062CC903979D162E39455D1A34997367D1AB5E8AFCBB612 - F2C01AAB6BD85B677B20747BB6EBB3AF6D13AACD1BEC6FAEC281AFDE4DBBABEC - 1BD1368822C1841BB701BE80CD9B78DDC0B613BE22B8E9CBE5D3E55698C9D76C - 00E2BC4EF5E6D9AFC79CBE7D7B7D6178E1497D1F7F7EFDFB4F67B5268EABFF7A - D34A1CDD00D46DC0AC6E5BD036010911D02B047BBBADB5DB1CD4CA1A090364D0 - AB03152CEBC10E35F400C0ACEEA16703070480AE086E7891053BBC50F0451664 - 22A0E0012E383169FFBC063683C94798D003F2BD20612A1249227D1CF248259B - 2CE403016C188ABF2AADBC124BD46CB34D9D6528BC4D9D2FC55C509D325D2344 - 9A05D524A44C2FCF94C6CC2DCFB42DCD2DCD5C934D34C10C93CC30E5FC93CD38 - CFC4B3CB65D449F34B4027AC73CE33CB54B4510F6E40A80B12946891175FEE92 - 885314EA39A18F1BFD22A949CB78440F0410E25B4FA756D87B0FBD556BB20711 - 2FC2082ACB5C75DD95D7A2FA9C61863285E5734F75801D16D93BD52CB31C3793 - 7D16DA68930536D8649785160C6A855D068C72A41DF65862BFC5561D7056596B - 0E3DB471711B4E27AA0885190D50810202E040AC15265DB5673357FDFD176094 - F80518607E79CCD7FF47CC5C3D0F913D3ED082894E3AE995E28A2D2EEDD76A87 - BDD6588DA125541D309C1D976469B5B5B64F684F0E996592C34DB964648FB961 - 81582CD5A60874EA01C68079243244A26D68A4F70138F658CC24557B5498E0A6 - C93BD8691F5D45B53C84D1D3E7012CE408EDE2AEBDFE3AA98C9FA5D6E38EC7AE - B6D871C32D936C61450623DAB7A15D66066B463E3B666457E6736FB3856D7B5B - 71585940451100D0C6A1769171C5AE6D4C51A58DEE08F8030E63E8D8F7DFF4D0 - E3D732A5ADD61CBE7CC7B30755D14B2ADD737BF6F8631D26F4001BF6D82D76DB - 6FBDFB0E17EEBFCB4E16EEDC7507776FDFC9E53D646009119EE5DCD71E16F9B3 - 3D86FB768F012F13FF6E69C07142140144D0438F01D031E516EB7E064616596E - F1C1BB0FE0286447D25B2123DF5453E55C55F855951FFF544527835FFCDF8F5F - 7EFF0301ADE0400001286162B253E002AD443D6E2D4F77100C17B77E27AD7288 - CC76C05B9BDCB045416471AB1C3320C40C2E382C10B2AD6C27FCD6CABA952D09 - 4A8F851764C00888B10A1529817B0D4181016ED186EB6C0305B2A8471B3A80A3 - 3F70611A96995AAAD2C3397F290D74A83A8FBFFA37C5A99D477F531B4FC33ED0 - 3A4B30108C614C0D03C858466A9591016443631AD5C8C619AC916C6D5C2319CF - 38473BBAD18E7104161CEB58C6DEB9F18D74DC231EEFF8C73B12B28F7764C50D - B5710A6EA00346B7FF601C76DAA5820ED8E1017FD883FCE0673FFD79327FF9EB - 2427FFD749FA81C094FC2243AA1EF1064744C0706294E52CA932476A8D8201B8 - 4CE3329631023406128EA318812F75F9CB41E67114C03C64318F694C3A8E020C - BE446332CBF8025F92ED1ED41AA620D958C6629A519969B4E520CF98CC6F92F1 - 050751910D5E873857CC631E3EBC0B5D5060081F484E9388809F13F775CAFC01 - 507E9C23DDFC064A50FFF5D31EFAE862BA12484B873E142987EC261987294D89 - CE209A23C0A844EF98C83C72D496D9B2A820C1804E8D9AB1A4141DA938E99852 - 8E36F3A5E19C2103C0C10A0844C07500C8992F2262170318A20FF5DC48478E68 - 8C7EDA4FA0A1D45FFFFE926AD0801654809C43041C1E100125D807A25985E808 - E0E14BAE7A7304BAACA8345F708C91BE800D66ADE80CC43AC7AEA2B59A66FDE6 - 4A554AC6B4BE209AF0982357C7EA55BD8E000C6078C10CB7C9578B6EF38E88F5 - 255ED728D8931EF218831D2B03BA5AC611A0551D8BC40213B4A187869C601B77 - A1884580E129595892004533EAC0F6E9CF8332D59FFD7B2A295BCBAFD541EC8B - 5AD5ED2CFBDA5BDFA215AD2360C30B8A015C36B06198C545AE6F2B3ADC8A0677 - B8C54D2E70954B5CE31E7798C0ED6D74C70ADC232C97B9CFADAE78A99BDDE55A - 77B8E945AF79D10A5EED0A97B86365072BC2D00126C8E170D3D9865D186788D2 - A260237CF9803E4AFF690F53AE929308562A2A153CC00693817F0D4E15841F01 - 8730B421B7BBD530037B6B4D6B66B7AFC37D8187D30B86F4B297B91F36F16547 - F0041207F7B2EA95B171337AE2BEBE77982286F16F9B6B5C16CF38C71F2EF18C - 9D0B5F1B1B19C5E605C317D0258744AC8B1728E8E14FDBD0D3F2D9A82FFA40C4 - 78C6C3BF01E24FC2A15C65830DCC49D2159493207804178052840DBF5981C02D - 001BE63CE7F4D219CF0568AF9D8F7B5D3BB7F7B87F0E749EF36C5C43CBB8CFE7 - A0F39E01BDE7E33EBACE8026B47A05DDE740BFE01CD71D6EA6896C694FDF59CF - 97E6B49FF1FC046930790D73104122F4E02257204322D73144BC6E6149473C80 - C0AE82F0AE79DDEBFF5E1B98D713F6F5B0814D064420E20F6E60822512016767 - 7B8D0D8265838B9F306DB48281DAD6AE76B6A98DD6636CFB18C3E5F60BB64D6E - 6D6BFBDA238E76B5D31AED688F78DCDB16ECB5CB5DEF7377FBDDF736B78BD3FB - 6D6DB3B8BDE136F1BC5D0C6F13EBBBC4EADEB7B95F508E1BA04B04B48032E328 - 6E97B9C8227238D28751DF376C8F0FFB7D0CEE352A3BEEEB29D8C3C2563D4543 - 9FDDF25DBDE0082F987331F04CF3E3D27CE635D7F9B64B3D6D36E0FCE73ACF79 - CE871BF3A2F7BCE8E6063AD08DEEE8A50B3DE8491F7AD073CEF3A91777CEEC86 - B9D2DBFBF4AAB3A1E95EFFF913C040B80372CF45BEB8C5DAB153DA21DEA868D3 - F8B8C9A7E0F129D4FF7DEE1F6FA523DAA00796BB1CF0573AAEA2073FED276CFB - F03E2F4001847BF86A9FC3F19197BCE3153D79C93F9AE790773CE6271FE83957 - DEE78F37BCE513FF78C72FFEF405E83CE2511FF9D03F21EBA33F2EE97D3EFAC3 - 83FEF0E1D8401DDA82F617495292D871451B54A0024C1238EFBBC6FBB0EBBEFC - E4379F0C5380C30722E0E4C05FFF4AC2557C01484167EE1BFEBBB047AEF7EDAC - FAC92F1EFDE957FFFAD50F69F4477EFDC85DBCE751EFF3EEB3BFFDF87F7FEA53 - AF7FFFFF1F00D12F109CA00E56040F7461A736053BFCCB1088AF2FE0E0113AE9 - EE94EFEE2A10FA20AC0229D0023370EE5A490B44E0EFB04F0453A31CE081FCD8 - 0FFE180FFF2C2F00FF5B50FD5250FF4ED0055D3005FB6F066FF0FF5E201CD4A2 - 0B6C000FD4C52150A0A72C0E18EA0105E88500DE600F5C6502317003E96EF936 - D002F30E11E6C30747100BEF430D026104D2EF08600FF5BE100CD36F0C614FF2 - 70700661300DBF100D5F90FF0EAF0DE310058F80C9BA800944401B10E77B444B - D67CE10454010995F002A34F0AA34F039D500A9B90104DEE111E8004DC2C0B23 - B13436C009A4E11C32C10B0BE0083491FD363113D76F134311FD3CB113D58F14 - 17EF1447911345311533911539D1154D711555F11303F0156F111655311559F1 - 18586103BA600EF0ABD5D041152262F826C271402502EC20091F610A13111AA3 - 511A37B01123E00AFF25111BABA20328311C18401651F1FF5AF11B6D311C4B11 - 1CCF711C49511CD7911673511CF14F1DDB311ED1B1163DF1081E2E16D040044E - C191A6639E26E2160CC114C087239A1111A7112113F2EE1EE10F9EC107F02B1B - 23322A6C6D03BE201C8A21136420146580233D91233912163FB22339512465C0 - FC8E00134E4F143B920D4D72136500136EF1238F80265731260B20133261233B - F2264311134412256500137551136F72248FA02469F2F036322761722535F227 - 67322A3F32267BD22651F2258F81074920E24EA1215441087F0A5E4C21B40211 - D814122DA5F1112A2C6B944022DFD2294E80231CA12203A118CE0126A7B224F7 - 722A31E127FD522FCD5DF227D12F2FF572F14A1230A9D22FA91231171324176F - 31139323FB1226F7B23227D3312BB32F071332F35224033331255331FFF23135 - 333367660114821B4223674E40CAD8CE00DCEE087104020F322D6FD302DF200C - 98002E7B532978A11E542002BEE1199CE006F0B22AA9122911332827132B93F3 - 339B9327A5D332B1522A97132A81B22AB1B2289F133B9BD33A9D723BAF933CC5 - 533B9F733AAF733BF5D23B411229BD332A8F200468A67026E6B3DA25D6FCCB17 - 5EA420DF20027113402D501F0880047CD3408D222000003B} - end - end - object edtPassword: TEdit - Left = 96 - Top = 132 - Width = 278 - Height = 21 - PasswordChar = '*' - TabOrder = 2 - end - object bAceptar: TButton - Left = 208 - Top = 203 - Width = 75 - Height = 25 - Caption = '&Aceptar' - Default = True - TabOrder = 3 - OnClick = bAceptarClick - end - object bCancelar: TButton - Left = 296 - Top = 203 - Width = 75 - Height = 25 - Cancel = True - Caption = '&Salir' - ModalResult = 2 - TabOrder = 4 - end - object edtUser: TEdit - Left = 96 - Top = 104 - Width = 278 - Height = 21 - TabOrder = 1 - end - object Button1: TButton - Left = 16 - Top = 203 - Width = 129 - Height = 25 - Caption = 'C&onfigurar conexi'#243'n...' - TabOrder = 5 - OnClick = ToolButton4Click - end - object Timer1: TTimer - Enabled = False - Interval = 5000 - OnTimer = Timer1Timer - Left = 344 - Top = 64 - end - object JvAppRegistryStorage1: TJvAppRegistryStorage - StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' - StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' - StorageOptions.BooleanAsString = False - Root = 'Software\Administraci'#243'n de puntos de venta' - SubStorages = <> - Left = 14 - Top = 168 - end - object JvFormStorage1: TJvFormStorage - AppStorage = JvAppRegistryStorage1 - AppStoragePath = '\' - Options = [] - StoredProps.Strings = ( - 'edtUser.Text' - 'edtPassword.Text') - StoredValues = < - item - Name = 'Ruta' - Value = '' - end> - Left = 48 - Top = 168 - end -end diff --git a/Varela/Varela/Source/Usuarios/uLoginForm.pas b/Varela/Varela/Source/Usuarios/uLoginForm.pas deleted file mode 100644 index 6f0cb5a..0000000 --- a/Varela/Varela/Source/Usuarios/uLoginForm.pas +++ /dev/null @@ -1,100 +0,0 @@ -unit uLoginForm; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, - cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, - cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, - JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement, - JvAppStorage, JvAppRegistryStorage; - -type - TfLoginForm = class(TForm) - Panel1: TPanel; - Label3: TLabel; - Label4: TLabel; - edtPassword: TEdit; - bAceptar: TButton; - bCancelar: TButton; - Label1: TLabel; - edtUser: TEdit; - Image1: TImage; - JvGradient1: TJvGradient; - Button1: TButton; - Timer1: TTimer; - JvAppRegistryStorage1: TJvAppRegistryStorage; - JvFormStorage1: TJvFormStorage; - procedure bAceptarClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure ToolButton4Click(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure Timer1Timer(Sender: TObject); - private - FIntentos: Integer; - end; - -var - fLoginForm: TfLoginForm; - -implementation - -uses - uDataModuleUsuarios, uDataModuleBase; - -{$R *.dfm} - -{ -********************************* TfLoginForm ********************************** -} -procedure TfLoginForm.bAceptarClick(Sender: TObject); -var - bOk : Boolean; -begin - ShowHourglassCursor; - try - bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text); - finally - HideHourglassCursor; - end; - - if bOk then - ModalResult := mrOK - else begin - Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente' - + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK); - Dec(FIntentos); - if (FIntentos <= 0) then - ModalResult := mrCancel; - end; -end; - -procedure TfLoginForm.FormCreate(Sender: TObject); -begin - FIntentos := 3; -end; - -procedure TfLoginForm.ToolButton4Click(Sender: TObject); -begin - Timer1.Enabled := False; - dmBase.ConfigurarConexion; -end; - -procedure TfLoginForm.FormShow(Sender: TObject); -begin - Self.Caption := Self.Caption + ' - ' + dmBase.DarVersion; - JvFormStorage1.RestoreFormPlacement; - // Hacer login automática si hay usuario/password y no hay más de una base - // de datos como opción para conectarse. - if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then - Timer1.Enabled := True; -end; - -procedure TfLoginForm.Timer1Timer(Sender: TObject); -begin - Timer1.Enabled := False; - bAceptar.Click; -end; - -end. diff --git a/Varela/Varela/Source/Usuarios/uUsuario.dfm b/Varela/Varela/Source/Usuarios/uUsuario.dfm deleted file mode 100644 index 93fcc6e..0000000 --- a/Varela/Varela/Source/Usuarios/uUsuario.dfm +++ /dev/null @@ -1,123 +0,0 @@ -object fUsuario: TfUsuario - Left = 523 - Top = 415 - BorderStyle = bsDialog - Caption = 'Datos del usuario' - ClientHeight = 309 - ClientWidth = 308 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - PixelsPerInch = 96 - TextHeight = 13 - object Button1: TButton - Left = 138 - Top = 273 - Width = 75 - Height = 25 - Action = actAceptar - TabOrder = 1 - end - object Button2: TButton - Left = 226 - Top = 273 - Width = 75 - Height = 25 - Action = actCancelar - TabOrder = 2 - end - object TabControl1: TPageControl - Left = 8 - Top = 8 - Width = 293 - Height = 257 - ActivePage = pagUsuario - TabOrder = 0 - object pagUsuario: TTabSheet - Caption = 'Usuario' - object GroupBox1: TGroupBox - Left = 6 - Top = 5 - Width = 274 - Height = 99 - Caption = 'GroupBox1' - TabOrder = 0 - DesignSize = ( - 274 - 99) - object Label4: TLabel - Left = 34 - Top = 28 - Width = 39 - Height = 13 - Caption = 'Usuario:' - Transparent = False - end - object Label5: TLabel - Left = 16 - Top = 60 - Width = 57 - Height = 13 - Caption = 'Contrase'#241'a:' - Transparent = False - end - object edtUser: TEdit - Left = 88 - Top = 24 - Width = 169 - Height = 21 - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - end - object edtPassword: TEdit - Left = 88 - Top = 56 - Width = 169 - Height = 21 - Anchors = [akLeft, akTop, akRight] - PasswordChar = '*' - TabOrder = 1 - end - end - object GroupBox2: TGroupBox - Left = 7 - Top = 111 - Width = 273 - Height = 110 - Caption = 'Permisos y seguridad' - TabOrder = 1 - object Label1: TLabel - Left = 47 - Top = 36 - Width = 26 - Height = 13 - Caption = 'Perfil:' - Transparent = False - end - object cbPerfil: TComboBox - Left = 88 - Top = 28 - Width = 169 - Height = 21 - ItemHeight = 13 - TabOrder = 0 - end - end - end - end - object ActionList: TActionList - Left = 8 - Top = 272 - object actAceptar: TAction - Caption = '&Aceptar' - end - object actCancelar: TAction - Caption = '&Cancelar' - end - end -end diff --git a/Varela/Varela/Source/Usuarios/uUsuario.pas b/Varela/Varela/Source/Usuarios/uUsuario.pas deleted file mode 100644 index 90e722c..0000000 --- a/Varela/Varela/Source/Usuarios/uUsuario.pas +++ /dev/null @@ -1,39 +0,0 @@ -unit uUsuario; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ComCtrls, ActnList; - -type - TfUsuario = class(TForm) - Button1: TButton; - Button2: TButton; - TabControl1: TPageControl; - pagUsuario: TTabSheet; - GroupBox1: TGroupBox; - Label4: TLabel; - Label5: TLabel; - edtUser: TEdit; - edtPassword: TEdit; - GroupBox2: TGroupBox; - Label1: TLabel; - cbPerfil: TComboBox; - ActionList: TActionList; - actAceptar: TAction; - actCancelar: TAction; - private - { Private declarations } - public - { Public declarations } - end; - -var - fUsuario: TfUsuario; - -implementation - -{$R *.dfm} - -end. diff --git a/Varela/Varela/Source/Usuarios/uUsuarios.dfm b/Varela/Varela/Source/Usuarios/uUsuarios.dfm deleted file mode 100644 index a2faae2..0000000 --- a/Varela/Varela/Source/Usuarios/uUsuarios.dfm +++ /dev/null @@ -1,119 +0,0 @@ -object fUsuarios: TfUsuarios - Left = 490 - Top = 417 - BorderStyle = bsDialog - Caption = 'Administraci'#243'n de usuarios' - ClientHeight = 401 - ClientWidth = 550 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object Grid: TDBGrid - Left = 8 - Top = 40 - Width = 425 - Height = 313 - DataSource = DADataSource - TabOrder = 0 - TitleFont.Charset = DEFAULT_CHARSET - TitleFont.Color = clWindowText - TitleFont.Height = -11 - TitleFont.Name = 'MS Sans Serif' - TitleFont.Style = [] - end - object JvNavPanelHeader1: TJvNavPanelHeader - Left = 0 - Top = 0 - Width = 550 - Align = alTop - Caption = 'Panel de control' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWhite - Font.Height = -16 - Font.Name = 'Arial' - Font.Style = [fsBold] - ParentFont = False - ColorFrom = 8684164 - ColorTo = 8684164 - ImageIndex = 0 - StyleManager = dmBase.StyleManager - ParentStyleManager = False - end - object Button1: TButton - Left = 448 - Top = 40 - Width = 91 - Height = 25 - Action = actNuevo - TabOrder = 2 - end - object Button2: TButton - Left = 448 - Top = 136 - Width = 91 - Height = 25 - Action = actModificar - TabOrder = 3 - end - object Button3: TButton - Left = 448 - Top = 176 - Width = 91 - Height = 25 - Action = actEliminar - TabOrder = 4 - end - object Button4: TButton - Left = 448 - Top = 368 - Width = 91 - Height = 25 - Action = actCerrar - TabOrder = 5 - end - object Button5: TButton - Left = 448 - Top = 96 - Width = 91 - Height = 25 - Action = actCambiarPassword - TabOrder = 6 - end - object DADataSource: TDADataSource - DataTable = dmUsuarios.tbl_Usuarios - Left = 368 - Top = 40 - end - object ActionList: TActionList - Left = 8 - Top = 360 - object actCerrar: TAction - Caption = '&Cerrar' - OnExecute = actCerrarExecute - end - object actNuevo: TAction - Caption = 'Nuevo usuario' - OnUpdate = actNuevoUpdate - end - object actCambiarPassword: TAction - Caption = 'Cambiar contrase'#241'a' - OnUpdate = actCambiarPasswordUpdate - end - object actModificar: TAction - Caption = 'Modificar usuario' - OnUpdate = actModificarUpdate - end - object actEliminar: TAction - Caption = 'Eliminar usuario' - OnUpdate = actEliminarUpdate - end - end -end diff --git a/Varela/Varela/Source/Usuarios/uUsuarios.pas b/Varela/Varela/Source/Usuarios/uUsuarios.pas deleted file mode 100644 index dfad797..0000000 --- a/Varela/Varela/Source/Usuarios/uUsuarios.pas +++ /dev/null @@ -1,89 +0,0 @@ -unit uUsuarios; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls, - DBCtrls, uDataModuleBase, JvExControls, JvComponent, JvNavigationPane, - Grids, DBGrids, ActnList; - -type - TfUsuarios = class(TForm) - DADataSource: TDADataSource; - Grid: TDBGrid; - JvNavPanelHeader1: TJvNavPanelHeader; - Button1: TButton; - Button2: TButton; - Button3: TButton; - Button4: TButton; - Button5: TButton; - ActionList: TActionList; - actCerrar: TAction; - actNuevo: TAction; - actCambiarPassword: TAction; - actModificar: TAction; - actEliminar: TAction; - procedure actCerrarExecute(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure actEliminarUpdate(Sender: TObject); - procedure actModificarUpdate(Sender: TObject); - procedure actCambiarPasswordUpdate(Sender: TObject); - procedure actNuevoUpdate(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - -procedure AdministrarUsuarios; - -implementation - -{$R *.dfm} - - -procedure AdministrarUsuarios; -var - fUsuarios: TfUsuarios; -begin - fUsuarios := TfUsuarios.Create(NIL); - try - fUsuarios.ShowModal; - finally - fUsuarios.Free; - end; -end; - -procedure TfUsuarios.actCerrarExecute(Sender: TObject); -begin - Close; -end; - -procedure TfUsuarios.FormCreate(Sender: TObject); -begin - DADataSource.DataTable := dmUsuarios.tbl_Usuarios; - DADataSource.DataTable.Active := True; -end; - -procedure TfUsuarios.actEliminarUpdate(Sender: TObject); -begin - (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); -end; - -procedure TfUsuarios.actModificarUpdate(Sender: TObject); -begin - (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); -end; - -procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject); -begin - (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty); -end; - -procedure TfUsuarios.actNuevoUpdate(Sender: TObject); -begin - (Sender as TAction).Enabled := Assigned(DADataSource.DataTable); -end; - -end. diff --git a/Varela/Varela/Source/leeme.txt b/Varela/Varela/Source/leeme.txt deleted file mode 100644 index a3637e2..0000000 --- a/Varela/Varela/Source/leeme.txt +++ /dev/null @@ -1,5 +0,0 @@ -El archivo uDADataTable.pas es una versión -modificada del original de Data Abstract 5 para -implementar el uso de Where en TDADataTable. - -Ver procedimiento OnWhereChange. \ No newline at end of file diff --git a/Varela/Varela/Source/uDADataTable.pas b/Varela/Varela/Source/uDADataTable.pas deleted file mode 100644 index bb94913..0000000 --- a/Varela/Varela/Source/uDADataTable.pas +++ /dev/null @@ -1,4645 +0,0 @@ -unit uDADataTable; - -{----------------------------------------------------------------------------} -{ Data Abstract Library - Core Library } -{ } -{ compiler: Delphi 6 and up, Kylix 3 and up } -{ platform: Win32, Linux } -{ } -{ (c)opyright RemObjects Software. all rights reserved. } -{ } -{ Using this code requires a valid license of the Data Abstract } -{ which can be obtained at http://www.remobjects.com. } -{----------------------------------------------------------------------------} - -{$I DataAbstract.inc} - -interface - -uses - Classes, DB, Contnrs, SysUtils, - {$IFDEF MSWINDOWS}ActiveX,{$ENDIF} - uRODL, uROTypes, uROClasses, uROClientIntf, uRODynamicRequest,uDAExpressionEvaluator, - uDAInterfaces, uDAClasses, uDAEngine, uDAScriptingProvider, uDADataStreamer, uDADelta, - DataAbstract3_Intf, DataAbstract4_Intf,uDAWhere; - -const - RecIDFieldName = 'RecID'; // Do not change! - AllChanges = [ctInsert, ctUpdate, ctDelete]; - -type - //ToDo: remove and replace these three with TRO(Dynamic)Request* - TDARemoteRequest = TRODynamicRequest; - TDARemoteRequestParam = TRORequestParam; - TDARemoteRequestParams = TRORequestParamCollection; - - { Other types } - float = double; - datetime = TDateTime; - - TDADataTable = class; - TDatasetClass = class of TDataset; - TDADataTableRules = class; - - TDADataTableNotifyEvent = procedure(DataTable: TDADataTable) of object; - TDADataTableFilterEvent = procedure(DataTable: TDADataTable; var Accept: Boolean) of object; - TDADataTableErrorEvent = procedure(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction) of object; - TDADataTableDynamicMethodEvent = procedure(DataTable: TDADataTable; const aMessage: IROMessage) of object; - TDADataTableRemoteRequestEvent = procedure(DataTable: TDADataTable; Request: TDARemoteRequest) of object; - TDADataTableDataChangeEvent = procedure(DataTable: TDADataTable; Field: TDAField) of object; - TDADataRequestStreamEvent = procedure(DataTable: TDADataTable; Stream: TStream) of object; - - //TDADelta = class; - - TDAApplyUpdatesError = procedure(DataTable: TDADataTable; const Delta: IDADelta; var Ignore: boolean) of object; - TDAAfterApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; - TDABeforeApplyUpdatesEvent = procedure(DataTable: TDADataTable; const Delta: IDADelta) of object; - - TDADetailOption = (dtCascadeOpenClose, - dtCascadeApplyUpdates, - dtAutoFetch, - dtCascadeDelete, - dtCascadeUpdate, - dtDisableLogOfCascadeDeletes, - dtDisableLogOfCascadeUpdates, - dtIncludeInAllInOneFetch); - TDADetailOptions = set of TDADetailOption; - - TDAMasterOption = (moCascadeOpenClose, - moCascadeApplyUpdates, - moCascadeDelete, - moCascadeUpdate, - moDisableLogOfCascadeDeletes, - moDisableLogOfCascadeUpdates, - moAllInOneFetch); - - TDAMasterOptions = set of TDAMasterOption; - - TDAStreamingOption = (soIgnoreStreamSchema, soDisableEventsWhileStreaming); - TDAStreamingOptions = set of TDAStreamingOption; - - TDARemoteUpdatesOption = (ruoOnPost); - TDARemoteUpdatesOptions = set of TDARemoteUpdatesOption; - - TDABaseRemoteDataAdapter = class(TComponent) - protected - function GetDataStreamer: TDADataStreamer; virtual; abstract; - - { backward compatibility: to provide access to these in the legacy events } - function Get_GetSchemaCall: TDARemoteRequest; virtual; - function Get_GetDataCall: TDARemoteRequest; virtual; - function Get_UpdateDataCall: TDARemoteRequest; virtual; - function Get_GetScriptsCall: TDARemoteRequest; virtual; - public - function ApplyUpdates(aTables: array of TDADataTable; aRefetchAll: boolean = false): boolean; virtual; abstract; - procedure Fill(aTables: array of TDADataTable; aSaveCursor: boolean; aIncludeSchema: boolean); virtual; abstract; - procedure FillSchema(aTables: array of TDADataTable; aPreserveLookupFields: boolean = false; areserveClientCalcFields : boolean = false); virtual; abstract; - procedure FillScripts(aTables: array of TDADataTable); virtual; abstract; - - property DataStreamer: TDADataStreamer read GetDataStreamer; - end; - - { IDADataTableDataset } - IDADataTableDataset = interface - ['{3BADA4F8-BA32-411C-A7CD-DEBD10A4AF06}'] - function GetDataTable: TDADataTable; safecall; - end; - - { IDARangeController } - IDARangeController = interface - ['{5A182854-B824-496F-80C2-6F8064003E13}'] - procedure ApplyRange; safecall; - procedure CancelRange; safecall; - procedure SetRange(const StartValues, EndValues: array of const); safecall; - procedure EditRangeEnd; safecall; - procedure EditRangeStart; safecall; - procedure SetRangeEnd; safecall; - procedure SetRangeStart; safecall; - end; - - { IDANativeDatasetStreaming } - TDANativeDataFormat = (ndfBinary, ndfXML); - IDANativeDatasetStreaming = interface - ['{00B37B20-23DA-49A5-BB5D-B96E50C210F4}'] - procedure NativeSaveToFile(const aFileName : string; DataFormat : TDANativeDataFormat = ndfBinary); - procedure NativeLoadFromFile(const aFileName : string); - procedure NativeSaveToStream(aStream : TStream; DataFormat : TDANativeDataFormat = ndfBinary); - procedure NativeLoadFromStream(aStream : TStream); - end; - - - { TDADataSource } - TDADataSource = class(TDABaseDataSource) - private - fDataTable: TDADataTable; - - function GetDataset: TDataset; - procedure SetDataTable(const Value: TDADataTable); - procedure SetDataset(const Value: TDataset); - function GetOpening: boolean; - function GetActive: boolean; - - protected - procedure Notification(AComponent: TComponent; Operation: TOperation); override; - - property Dataset: TDataset read GetDataset write SetDataset; // hide base class property - public - constructor Create(aOwner: TComponent); override; - destructor Destroy; override; - - property Opening: boolean read GetOpening; - property Active: boolean read GetActive; - published - property DataTable: TDADataTable read fDataTable write SetDataTable; - end; - - { TDADataTable } - TDASortDirection = (sdAscending, sdDescending); - TDAMasterMappingMode = (mmDataRequest, mmParams, mmWhere); - - TDASortDirectionArray = array of TDASortDirection; - TStringArray = array of string; - - IDADataTableScriptingProvider = interface(IDAScriptingProvider) - ['{E16B7359-C733-4F09-96A8-10527CFABB6D}'] - procedure RunDataTableScript(aDataTable: TDADataTable; const aScript: string; const aMethod: string; aLanguage:TROSEScriptLanguage); - end; - - TAutoIncArray = array of Int64; - - {$WARN SYMBOL_DEPRECATED OFF} - TDADataTable = class(TScriptableComponent, {$IFDEF MSWINDOWS}ISupportErrorInfo,{$ENDIF} IDADataTable, IDASQLCommand, IDADataset, IDAEditableDataset, IDADeltaOwner, IDADataReader, IDADatasetEx) - private - fCurrRecId: integer; - - fMasterLink: TMasterDataLink; - - fDelta: IDADelta; - fWhere: TDAWhere; - - fRecIDField: TIntegerField; - - fStreamedActive, - fRefreshing, - fOpening: boolean; - - fDataset: TDataset; - - fFields: TDAFieldCollection; - - fAfterEdit: TDADataTableNotifyEvent; - fAfterInsert: TDADataTableNotifyEvent; - fAfterDelete: TDADataTableNotifyEvent; - fBeforeScroll: TDADataTableNotifyEvent; - fAfterClose: TDADataTableNotifyEvent; - fBeforePost: TDADataTableNotifyEvent; - fAfterScroll: TDADataTableNotifyEvent; - fBeforeCancel: TDADataTableNotifyEvent; - fBeforeRefresh: TDADataTableNotifyEvent; - fBeforeOpen: TDADataTableNotifyEvent; - fAfterRefresh: TDADataTableNotifyEvent; - fAfterOpen: TDADataTableNotifyEvent; - fBeforeEdit: TDADataTableNotifyEvent; - fBeforeClose: TDADataTableNotifyEvent; - fBeforeDelete: TDADataTableNotifyEvent; - fAfterPost: TDADataTableNotifyEvent; - fOnCalcFields: TDADataTableNotifyEvent; - fOnNewRecord: TDADataTableNotifyEvent; - fAfterCancel: TDADataTableNotifyEvent; - fBeforeInsert: TDADataTableNotifyEvent; - fOnFilterRecord: TDADataTableFilterEvent; - fOnEditError: TDADataTableErrorEvent; - fOnDeleteError: TDADataTableErrorEvent; - fOnPostError: TDADataTableErrorEvent; - fBeforeFieldChange: TDADataTableDataChangeEvent; - fAfterFieldChange: TDADataTableDataChangeEvent; - fLogChanges: boolean; - - fRemoteFetchEnabled: boolean; - fSortDirections: TDASortDirectionArray; - fSortFieldNames: TStringArray; - fParams: TDAParamCollection; - - fFetchedMasters: TStringList; - - fMasterParamsMappings, - fMasterRequestMappings: TStringList; - fDynamicWhere: TDAWhereBuilder; - - fDetailOptions: TDADetailOptions; - fMasterOptions: TDAMasterOptions; - fLogicalName: string; - fClosing: boolean; - fFetching: boolean; - fStreaming: boolean; - fOnAfterSchemaCall: TDADataTableRemoteRequestEvent; - fOnAfterDataRequestCall: TDADataTableRemoteRequestEvent; - fOnBeforeSchemaCall: TDADataTableRemoteRequestEvent; - fOnBeforeDataRequestCall: TDADataTableRemoteRequestEvent; - fOnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent; - fOnAfterDataUpdateCall: TDADataTableRemoteRequestEvent; - //fOnApplyUpdatesError: TDAApplyUpdatesError; - fOnReceiveDataStream: TDADataRequestStreamEvent; - fStreamingOptions: TDAStreamingOptions; - fRemoteUpdateOptions: TDARemoteUpdatesOptions; - fLocalSchema: TDASchema; - fLocalConnection: string; - - fBusinessRulesID: string; - fBusinessRules: TDADataTableRules; - fFieldRules: TObjectList; - - fAutoIncs : TAutoIncArray; - fOnAfterApplyUpdates: TDADataTableNotifyEvent; - fOnBeforeApplyUpdates: TDABeforeApplyUpdatesEvent; - fMasterMappingMode: TDAMasterMappingMode; - fMaxRecords: integer; - fOnBeforeMergeDelta: TDADataTableNotifyEvent; - fOnAfterMergeDelta: TDADataTableNotifyEvent; - fStoreActive: boolean; - fScriptCode: TStrings; - fOnBeforeScriptCall: TDADataTableRemoteRequestEvent; - fOnAfterScriptCall: TDADataTableRemoteRequestEvent; - - fOpenTick: cardinal; - fAfterOpenIDataset: TDAAfterOpenDatasetEvent; - fBeforeOpenIDataset: TDABeforeOpenDatasetEvent; - - fRemoteDataAdapter: TDABaseRemoteDataAdapter; - fLocalDataStreamer: TDADataStreamer; - fCustomAttributes: TStrings; - fExpressionEvaluator: TDAStdExpressionEvaluator; - fHasReducedDelta: Boolean; - procedure SetLocalDataStreamer(const Value: TDADataStreamer); - procedure SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); - - procedure SetLogChanges(const Value: boolean); - function GetDataset: TDataset; safecall; - function GetFields: TDAFieldCollection; safecall; - procedure SetFields(const Value: TDAFieldCollection); - function GetActive: boolean; safecall; - procedure SetActive(Value: boolean); safecall; - function GetLogChanges: boolean; - procedure SetParams(const Value: TDAParamCollection); - function GetEditing: boolean; - function GetMasterRequestMappings: TStrings; - procedure SetMasterRequestMappings(const Value: TStrings); - - procedure TempSetRowRecIDValue(Sender: TDataset); - - procedure SetLocalSchema(const Value: TDASchema); - procedure LoadFromLocalSchema; - - procedure SetBusinessRulesID(const Value: string); - function GetHasDelta: boolean; - function GetHasDeltaRecursive: boolean; - function GetRecNo: integer; - procedure SetRecNo(const Value: integer); - - { published property accessors cannot be safecall, so we need wrappers: } - function GetFieldsProperty: TDAFieldCollection; - function GetActiveProperty: boolean; - procedure SetActiveProperty(const Value: boolean); - function GetParamsProperty: TDAParamCollection; - function GetMasterParamsMappings: TStrings; - procedure SetMasterParamsMappings(const Value: TStrings); - - procedure PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); - procedure OnWhereChange(Sender: TObject); - procedure SetScriptCode(const Value: TStrings); - function GetDeltaInitialized: boolean; - procedure SetCustomAttributes(const Value: TStrings); - function Local_ApplyUpdates(RefetchAll: boolean = FALSE): boolean; - procedure InternalCancelUpdateChange(Change: TDADeltaChange); - procedure ExpessionEvaluatorGetValue(Sender: TDAExpressionEvaluator; const aIdentifier: string; out aValue: Variant); - procedure DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); - protected - function CreateAutoIncArray: TAutoIncArray; - function GetAutoIncs: TAutoIncArray; virtual; - procedure SetAutoIncs(const Value: TAutoIncArray); virtual; - - property AutoIncs: TAutoIncArray read GetAutoIncs write SetAutoIncs; - - function GetCurrRecId: integer; virtual; - procedure SetCurrRecId(const Value: integer); virtual; - - procedure Loaded; override; - - // To override - function GetDatasetClass: TDatasetClass; virtual; abstract; - procedure CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); virtual; - procedure DoRefresh(aDataset: TDataset); - procedure DoSort(const FieldNames: array of string; const Directions: array of TDASortDirection); virtual; abstract; - - procedure SetMasterSource(const Value: TDADataSource); virtual; - function GetMasterSource: TDADataSource; virtual; abstract; - procedure SetDetailsFields(const Value: string); virtual; abstract; - procedure SetMasterFields(const Value: string); virtual; - function GetDetailFields: string; virtual; abstract; - function GetMasterFields: string; virtual; abstract; - - function GetFilter: string; virtual; abstract; - function GetFiltered: boolean; virtual; abstract; - procedure SetFilter(const Value: string); virtual; abstract; - procedure SetFiltered(const Value: boolean); virtual; abstract; - - function GetReadOnly: boolean; virtual; - procedure SetReadOnly(const Value: boolean); virtual; - - procedure AttachEventHooks(aDataset: TDataset); virtual; - procedure DetachEventHooks(aDataset: TDataset); virtual; - - // Internal - procedure DoBeforeOpenDataset; virtual; - procedure DoBeforeCloseDataset; virtual; - procedure DoAfterOpenDataset; virtual; - procedure DoAfterCloseDataset; virtual; - procedure DoOpen(IgnoreAutoFetchSettings: Boolean = False); virtual; - - // Internal TDataset event handler hooks - procedure InternalAfterInsert(Sender: TDataset); dynamic; - procedure InternalAfterEdit(Sender: TDataset); dynamic; - procedure InternalBeforePost(Sender: TDataset); dynamic; - procedure InternalBeforeCancel(Sender: TDataset); dynamic; - procedure InternalAfterDelete(Sender: TDataset); dynamic; - procedure InternalBeforeScroll(Sender: TDataset); dynamic; - procedure InternalAfterScroll(Sender: TDataset); dynamic; - procedure InternalBeforeRefresh(Sender: TDataset); dynamic; - procedure InternalAfterRefresh(Sender: TDataset); dynamic; - procedure InternalOnCalcFields(Sender: TDataset); dynamic; - procedure InternalOnNewRecord(Sender: TDataset); dynamic; - procedure InternalAfterCancel(Sender: TDataset); dynamic; - procedure InternalBeforeInsert(Sender: TDataset); dynamic; - procedure InternalBeforeDelete(Sender: TDataset); dynamic; - procedure InternalBeforeEdit(Sender: TDataset); dynamic; - procedure InternalAfterPost(Sender: TDataset); dynamic; - procedure InternalBeforeFieldUpdate(Sender: TDACustomField); - procedure InternalAfterFieldUpdate(Sender: TDACustomField); - - procedure InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); dynamic; - - procedure InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; - procedure InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; - procedure InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); dynamic; - - // IDASQLCommand - function GetParams: TDAParamCollection; safecall; - procedure RefreshParams; safecall; - function Execute: integer; safecall; - function GetText: string; safecall; - procedure SetText(const Value: string); safecall; - function GetName: string; safecall; - - // IDADeltaOwner - function GetDelta: IDADelta; safecall; - - // IDADataReader - function IDADataReader.First = DataReaderFirst; - function IDADataReader.Next = DataReaderNext; - function DataReaderFirst: boolean; safecall; - function DataReaderNext: boolean; safecall; - - function GetFieldNames(Index: integer): string; safecall; - function GetFieldIndexes(const aName: string): integer; safecall; - function GetAsBoolean(Index: integer): boolean; overload; safecall; - function GetAsCurrency(Index: integer): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsDateTime(Index: integer): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsFloat(Index: integer): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsInteger(Index: integer): integer; overload; safecall; - function GetAsString(Index: integer): string; overload; safecall; - function GetAsVariant(Index: integer): variant; overload; safecall; - function GetAsBoolean(const FieldName: string): boolean; overload; safecall; - function GetAsCurrency(const FieldName: string): currency; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsDateTime(const FieldName: string): TDateTime; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsFloat(const FieldName: string): double; overload; {$IFNDEF FPC_SAFECALL_BUG}safecall;{$ENDIF} - function GetAsInteger(const FieldName: string): integer; overload; safecall; - function GetAsString(const FieldName: string): string; overload; safecall; - function GetAsVariant(const FieldName: string): variant; overload; safecall; - - // IDADataset - function GetIsEmpty: boolean; safecall; - function GetRecordCount: integer; safecall; - function GetFieldCount: integer; safecall; - function GetBOF: boolean; safecall; - function GetEOF: boolean; safecall; - function GetSQL: string; safecall; - procedure SetSQL(const Value: string); safecall; - function GetFieldValues(Index: integer): Variant; safecall; - function GetNames(Index: integer): string; safecall; - function GetWhere: TDAWhere; safecall; deprecated; - function GetDynamicWhere: TDAWhereBuilder; safecall; - procedure SetDynamicWhere(const Value: TDAWhereBuilder);safecall; - function GetPrepared: boolean; safecall; - procedure SetPrepared(Value: boolean); safecall; - function GetState: TDataSetState; safecall; - function GetLogicalName: string; safecall; - procedure SetLogicalName(aName : string); safecall; - - procedure Notification(AComponent: TComponent; Operation: TOperation); override; - - procedure OnMasterChange(Sender: TObject); virtual; - procedure OnMasterDisable(Sender: TObject); virtual; - - function GetOnAfterOpen: TDAAfterOpenDatasetEvent; safecall; - function GetOnBeforeOpen: TDABeforeOpenDatasetEvent; safecall; - procedure SetOnAfterOpen(const Value: TDAAfterOpenDatasetEvent); safecall; - procedure SetOnBeforeOpen(const Value: TDABeforeOpenDatasetEvent); safecall; - - function GetOnAfterExecute: TDAAfterExecuteCommandEvent; safecall; - function GetOnBeforeExecute: TDABeforeExecuteCommandEvent; safecall; - procedure SetOnAfterExecute(const Value: TDAAfterExecuteCommandEvent); safecall; - procedure SetOnBeforeExecute(const Value: TDABeforeExecuteCommandEvent); safecall; - function GetOnExecuteError: TDAExecuteCommandErrorEvent; safecall; - procedure SetOnExecuteError(const Value: TDAExecuteCommandErrorEvent); safecall; - function GetOnOpenError: TDAOpenDatasetErrorEvent; safecall; - procedure SetOnOpenError(const Value: TDAOpenDatasetErrorEvent); safecall; - - procedure NotifyFieldsClear; - - // IInterface - function QueryInterface(const IID: TGUID; out Obj): HResult; override; - - property MasterLink: TMasterDataLink read fMasterLink; - - {$IFDEF MSWINDOWS} - protected - function InterfaceSupportsErrorInfo(const iid: TGUID): HResult; stdcall; - - public - function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override; - {$ENDIF} - - public { for Delta } - property RecIDField : TIntegerField read fRecIDField write fRecIDField; - function GetRowRecIDValue: integer; - - - procedure CallScript(const aEvent: string); - - procedure InitializeDataTable; - procedure DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); - procedure WriteDeltaToStream(aStreamer: TDADataStreamer); - procedure ReadDeltaFromStream(aStreamer: TDADataStreamer; aFailedDeltas:TList);overload; - procedure ReadDeltaFromStream(aStreamer: TDADataStreamer); overload; - - public - constructor Create(aOwner: TComponent); override; - destructor Destroy; override; - - procedure EnableConstraints; virtual; safecall; abstract; - procedure DisableConstraints; virtual; safecall; abstract; - - procedure LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); virtual; - procedure FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings : Boolean = False); dynamic; - procedure LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); - procedure LoadScript(aDatasetName : string = ''); - - function ApplyUpdates(RefetchAll: boolean = FALSE): boolean; dynamic; - procedure CancelUpdates(IncludeDetails : boolean = TRUE); - procedure CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); - - procedure Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); - procedure UnSort; - - procedure ClearFields; - procedure ClearRows; - - procedure CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); overload; - procedure CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); overload; - - procedure SaveToStream(aStream: TStream); - procedure LoadFromStream(aStream: TStream); - procedure SaveToFile(const aFileName: string); - procedure LoadFromFile(const aFileName: string); - - procedure MergeDelta; virtual; - - // Master detail - function GetDetailDataTables: TList; - function GetDetailTablesforApplyUpdate(aRecursive: boolean = True): TList; - procedure GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); - function GetMasterDataTable : TDADataTable; - - // Methods - procedure Open; safecall; - procedure Close; safecall; - - procedure EnableControls; safecall; - procedure DisableControls; safecall; - - procedure Next; safecall; - - procedure Edit; safecall; - procedure Insert; safecall; - procedure Post; safecall; - procedure Cancel; safecall; - procedure Append; safecall; - procedure Delete; safecall; - - procedure Prior; safecall; - procedure First; safecall; - procedure Last; safecall; - - procedure Refresh; safecall; - - function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; safecall; - function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; safecall; - - function FieldByName(const aName: string): TDAField; safecall; - function FindField(const aName: string): TDAField; safecall; - function ParamByName(const aName: string): TDAParam; safecall; - - function GetBookmark: pointer; safecall; - procedure GotoBookmark(Bookmark: TBookmark); safecall; - procedure FreeBookmark(Bookmark: TBookmark); safecall; - - procedure EnableEventHandlers; safecall; - procedure DisableEventHandlers; safecall; - - procedure InternalSetFetching(aFetching: boolean); - - procedure AddRecord(const FieldNames : array of string; const FieldValues : array of Variant); safecall; - - function GetCurrentRecIdValue: integer; - procedure SetCurrentRecIdValue(Value: integer); - - // Properties - property CurrRecId: integer read GetCurrRecId write SetCurrRecId; - property RecIDValue: integer read GetRowRecIDValue; - property Delta: IDADelta read GetDelta write fDelta; - property RecNo : integer read GetRecNo write SetRecNo; - - property BOF: boolean read GetBOF; - property EOF: boolean read GetEOF; - property RecordCount: integer read GetRecordCount; - property FieldCount: integer read GetFieldCount; - property FieldValues[Index: integer]: Variant read GetFieldValues; - property Names[Index: integer]: string read GetNames; - - property SortFieldNames: TStringArray read fSortFieldNames; - property SortDirections: TDASortDirectionArray read fSortDirections; - - property Opening: boolean read fOpening; - property Closing: boolean read fClosing; - property Editing: boolean read GetEditing; - property Fetching: boolean read fFetching; - - property State: TDataSetState read GetState; - property Dataset: TDataset read GetDataset; - - property IsEmpty : boolean read GetIsEmpty; - - property BusinessEventsObj: TDADataTableRules read fBusinessRules; - - property HasDelta: boolean read GetHasDelta; - property HasDeltaRecursive: boolean read GetHasDeltaRecursive; - property DeltaInitialized: boolean read GetDeltaInitialized; - - property Where : TDAWhere read GetWhere; - property DynamicWhere: TDAWhereBuilder read GetDynamicWhere write SetDynamicWhere; - procedure CheckProperties(ACheckRemoteFetching: Boolean=False); virtual; - property HasReducedDelta: boolean read fHasReducedDelta; - published - property Active: boolean read GetActiveProperty write SetActiveProperty stored fStoreActive default false; - property StoreActive: boolean read fStoreActive write fStoreActive default false; - - property RemoteUpdatesOptions: TDARemoteUpdatesOptions read fRemoteUpdateOptions write fRemoteUpdateOptions; - - property MaxRecords : integer read fMaxRecords write fMaxRecords default -1; - - property Fields: TDAFieldCollection read GetFieldsProperty write SetFields; - property Params: TDAParamCollection read GetParamsProperty write SetParams; - - property MasterMappingMode : TDAMasterMappingMode read fMasterMappingMode write fMasterMappingMode default mmParams; - property MasterParamsMappings : TStrings read GetMasterParamsMappings write SetMasterParamsMappings; - - property LogChanges: boolean read GetLogChanges write SetLogChanges default true; - property StreamingOptions: TDAStreamingOptions read fStreamingOptions write fStreamingOptions; - property RemoteFetchEnabled: boolean read fRemoteFetchEnabled write fRemoteFetchEnabled default true; - - property ScriptCode : TStrings read fScriptCode write SetScriptCode; - property CustomAttributes : TStrings read fCustomAttributes write SetCustomAttributes; - - property RemoteDataAdapter: TDABaseRemoteDataAdapter read fRemoteDataAdapter write SetRemoteDataAdapter; - - property BeforeOpen: TDADataTableNotifyEvent read fBeforeOpen write fBeforeOpen; - property AfterOpen: TDADataTableNotifyEvent read fAfterOpen write fAfterOpen; - property BeforeClose: TDADataTableNotifyEvent read fBeforeClose write fBeforeClose; - property AfterClose: TDADataTableNotifyEvent read fAfterClose write fAfterClose; - property BeforeInsert: TDADataTableNotifyEvent read fBeforeInsert write fBeforeInsert; - property AfterInsert: TDADataTableNotifyEvent read fAfterInsert write fAfterInsert; - property BeforeEdit: TDADataTableNotifyEvent read fBeforeEdit write fBeforeEdit; - property AfterEdit: TDADataTableNotifyEvent read fAfterEdit write fAfterEdit; - property BeforePost: TDADataTableNotifyEvent read fBeforePost write fBeforePost; - property AfterPost: TDADataTableNotifyEvent read fAfterPost write fAfterPost; - property BeforeCancel: TDADataTableNotifyEvent read fBeforeCancel write fBeforeCancel; - property AfterCancel: TDADataTableNotifyEvent read fAfterCancel write fAfterCancel; - property BeforeDelete: TDADataTableNotifyEvent read fBeforeDelete write fBeforeDelete; - property AfterDelete: TDADataTableNotifyEvent read fAfterDelete write fAfterDelete; - property BeforeScroll: TDADataTableNotifyEvent read fBeforeScroll write fBeforeScroll; - property AfterScroll: TDADataTableNotifyEvent read fAfterScroll write fAfterScroll; - property BeforeRefresh: TDADataTableNotifyEvent read fBeforeRefresh write fBeforeRefresh; - property AfterRefresh: TDADataTableNotifyEvent read fAfterRefresh write fAfterRefresh; - property OnCalcFields: TDADataTableNotifyEvent read fOnCalcFields write fOnCalcFields; - property OnNewRecord: TDADataTableNotifyEvent read fOnNewRecord write fOnNewRecord; - - property OnFilterRecord: TDADataTableFilterEvent read fOnFilterRecord write fOnFilterRecord; - - property ReadOnly : boolean read GetReadOnly write SetReadOnly; - - property OnDeleteError: TDADataTableErrorEvent read fOnDeleteError write fOnDeleteError; - property OnEditError: TDADataTableErrorEvent read fOnEditError write fOnEditError; - property OnPostError: TDADataTableErrorEvent read fOnPostError write fOnPostError; - - property LocalSchema: TDASchema read fLocalSchema write SetLocalSchema; - property LocalDataStreamer: TDADataStreamer read fLocalDataStreamer write SetLocalDataStreamer; - property LocalConnection: string read fLocalConnection write fLocalConnection; - - property MasterSource: TDADataSource read GetMasterSource write SetMasterSource; - property MasterFields: string read GetMasterFields write SetMasterFields; - property DetailFields: string read GetDetailFields write SetDetailsFields; - property MasterRequestMappings: TStrings read GetMasterRequestMappings write SetMasterRequestMappings; - - property DetailOptions: TDADetailOptions read fDetailOptions write fDetailOptions; - property MasterOptions: TDAMasterOptions read fMasterOptions write fMasterOptions; - - property Filtered: boolean read GetFiltered write SetFiltered default false; - property Filter: string read GetFilter write SetFilter; - - property LogicalName: string read fLogicalName write fLogicalName; - - //property OnApplyUpdatesError: TDAApplyUpdatesError read fOnApplyUpdatesError write fOnApplyUpdatesError; - - property OnAfterApplyUpdates : TDADataTableNotifyEvent read fOnAfterApplyUpdates write fOnAfterApplyUpdates; - property OnBeforeApplyUpdates : TDABeforeApplyUpdatesEvent read fOnBeforeApplyUpdates write fOnBeforeApplyUpdates; - property OnBeforeMergeDelta : TDADataTableNotifyEvent read fOnBeforeMergeDelta write fOnBeforeMergeDelta; - property OnAfterMergeDelta : TDADataTableNotifyEvent read fOnAfterMergeDelta write fOnAfterMergeDelta; - - property OnBeforeDataRequestCall: TDADataTableRemoteRequestEvent read fOnBeforeDataRequestCall write fOnBeforeDataRequestCall; - property OnAfterDataRequestCall: TDADataTableRemoteRequestEvent read fOnAfterDataRequestCall write fOnAfterDataRequestCall; - property OnBeforeDataUpdateCall: TDADataTableRemoteRequestEvent read fOnBeforeDataUpdateCall write fOnBeforeDataUpdateCall; - property OnAfterDataUpdateCall: TDADataTableRemoteRequestEvent read fOnAfterDataUpdateCall write fOnAfterDataUpdateCall; - property OnBeforeSchemaCall: TDADataTableRemoteRequestEvent read fOnBeforeSchemaCall write fOnBeforeSchemaCall; - property OnAfterSchemaCall: TDADataTableRemoteRequestEvent read fOnAfterSchemaCall write fOnAfterSchemaCall; - property OnBeforeScriptCall: TDADataTableRemoteRequestEvent read fOnBeforeScriptCall write fOnBeforeScriptCall; - property OnAfterScriptCall: TDADataTableRemoteRequestEvent read fOnAfterScriptCall write fOnAfterScriptCall; - - property OnReceiveDataStream: TDADataRequestStreamEvent read fOnReceiveDataStream write fOnReceiveDataStream; - - property OnBeforeFieldChange: TDADataTableDataChangeEvent read fBeforeFieldChange write fBeforeFieldChange; - property OnAfterFieldChange: TDADataTableDataChangeEvent read fAfterFieldChange write fAfterFieldChange; - property BusinessRulesID: string read fBusinessRulesID write SetBusinessRulesID; - end; - - TDADataTableClass = class of TDADataTable; - {$WARN SYMBOL_DEPRECATED ON} - - { Exceptions } - EDABizValidationException = class(EROException); - - { TDABusinessRules } - TDABusinessRules = class(TDAEngineBaseObject) - private - protected - function _AddRef: Integer; override; - function _Release: Integer; override; - - public - constructor Create; virtual; - destructor Destroy; override; - - end; - - IDAStronglyTypedDataTable = interface - ['{4D4063AA-DFD0-4B4D-8CC2-FCE3BE1D2F87}'] - procedure Open; - procedure Close; - - function GetActive: boolean; - procedure SetActive(const Value: boolean); - - property Active: boolean read GetActive write SetActive; - - procedure Append; - procedure Cancel; - procedure Delete; - procedure Edit; - procedure First; - procedure Insert; - procedure Last; - procedure Next; - procedure Post; - procedure Prior; - - function Locate(const aKeyFields: string; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; - function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; - - function GetDataTable : TDADataTable; - - function GetState : TDatasetState; - function GetIsEmpty : boolean; - function GetRecNo : integer; - procedure SetRecNo(Value : integer); - function GetMasterOptions : TDAMasterOptions; - procedure SetMasterOptions(Value : TDAMasterOptions); - function GetDetailOptions : TDADetailOptions; - procedure SetDetailOptions(Value : TDADetailOptions); - - function IsFieldNull(const FieldIndexOrName : Variant) : boolean; - procedure ClearField(const FieldIndexOrName : Variant); - - function GetBOF: boolean; - function GetEOF: boolean; - function GetRecordCount: integer; - - property BOF: boolean read GetBOF; - property EOF: boolean read GetEOF; - property RecordCount: integer read GetRecordCount; - property RecNo : integer read GetRecNo write SetRecNo; - - property MasterOptions : TDAMasterOptions read GetMasterOptions write SetMasterOptions; - property DetailOptions : TDADetailOptions read GetDetailOptions write SetDetailOptions; - - property IsEmpty : boolean read GetIsEmpty; - property State : TDatasetState read GetState; - property DataTable : TDADataTable read GetDataTable; - end; - - { TDAFieldRules } - TDAFieldRules = class(TDABusinessRules) - private - fField : TDAField; - fDataTable : TDADataTable; - - protected - // Misc - procedure Attach(aDataTable: TDADataTable); virtual; - procedure Detach(aDataTable: TDADataTable); virtual; - - // Event handler hooks - procedure OnValidate(Sender: TDACustomField); virtual; - procedure OnChange(Sender: TDACustomField); virtual; - - property DataTable : TDADataTable read fDataTable; - - public - constructor Create(aField : TDAField; aDataTable : TDADataTable); reintroduce; virtual; - destructor Destroy; override; - end; - - TDAFieldRulesClass = class of TDAFieldRules; - - { TDADataTableRules } - TDADataTableRules = class(TDABusinessRules, IDAStronglyTypedDataTable, IDARangeController) - private - fDataTable: TDADataTable; - fDetails : TStringList; - - function GetDetails(Index: integer): TDADataTable; - function GetDetailsCount: integer; - - protected - // Misc - function GetDataTable: TDADataTable; - procedure Attach(aDataTable: TDADataTable); virtual; - procedure Detach(aDataTable: TDADataTable); virtual; - - procedure RefreshDetails; - - function FindDetail(const aLogicalName : string) : TDADataTable; - function DetailByName(const aLogicalName : string) : TDADataTable; - - // Business events - procedure BeforeOpen(Sender: TDADataTable); virtual; - procedure AfterOpen(Sender: TDADataTable); virtual; - procedure BeforeClose(Sender: TDADataTable); virtual; - procedure AfterClose(Sender: TDADataTable); virtual; - procedure BeforeInsert(Sender: TDADataTable); virtual; - procedure AfterInsert(Sender: TDADataTable); virtual; - procedure BeforeEdit(Sender: TDADataTable); virtual; - procedure AfterEdit(Sender: TDADataTable); virtual; - procedure BeforePost(Sender: TDADataTable); virtual; - procedure AfterPost(Sender: TDADataTable); virtual; - procedure BeforeCancel(Sender: TDADataTable); virtual; - procedure AfterCancel(Sender: TDADataTable); virtual; - procedure BeforeDelete(Sender: TDADataTable); virtual; - procedure AfterDelete(Sender: TDADataTable); virtual; - procedure BeforeScroll(Sender: TDADataTable); virtual; - procedure AfterScroll(Sender: TDADataTable); virtual; - procedure BeforeRefresh(Sender: TDADataTable); virtual; - procedure AfterRefresh(Sender: TDADataTable); virtual; - procedure OnCalcFields(Sender: TDADataTable); virtual; - procedure OnNewRecord(Sender: TDADataTable); virtual; - - procedure OnDeleteError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; - procedure OnEditError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; - procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction); virtual; - procedure OnFilterRecord(DataTable: TDADataTable; var Accept : boolean); virtual; - - procedure OnAfterSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnAfterDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnBeforeDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnAfterDataUpdateCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnBeforeScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - procedure OnAfterScriptCall(DataTable: TDADataTable; Request: TDARemoteRequest); virtual; - - procedure OnAfterApplyUpdates(DataTable: TDADataTable); virtual; - procedure OnBeforeMergeDelta(DataTable: TDADataTable); virtual; - procedure OnAfterMergeDelta(DataTable: TDADataTable); virtual; - - procedure OnReceiveDataStream(DataTable: TDADataTable; Stream: TStream); virtual; - procedure OnBeforeApplyUpdates(DataTable: TDADataTable; const Delta: IDADelta); virtual; - - procedure Open; virtual; - procedure Close; virtual; - - function GetActive: boolean; - procedure SetActive(const Value: boolean); - - property Active: boolean read GetActive write SetActive; - - procedure Append; virtual; - procedure Cancel; virtual; - procedure Delete; virtual; - procedure Edit; virtual; - procedure First; virtual; - procedure Insert; virtual; - procedure Last; virtual; - procedure Next; virtual; - procedure Post; virtual; - procedure Prior; virtual; - - function GetBOF: Boolean; virtual; - function GetEOF: Boolean; virtual; - function GetRecordCount: Integer; virtual; - function Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): Boolean; virtual; - function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; - - function GetMasterOptions : TDAMasterOptions; - procedure SetMasterOptions(Value : TDAMasterOptions); - function GetDetailOptions : TDADetailOptions; - procedure SetDetailOptions(Value : TDADetailOptions); - function GetRecNo : integer; - procedure SetRecNo(Value : integer); - function GetIsEmpty: boolean; - function GetState: TDatasetState; - - function IsFieldNull(const FieldIndexOrName : Variant) : boolean; - procedure ClearField(const FieldIndexOrName : Variant); - - property DataTable: TDADataTable read GetDataTable; - property Details[Index : integer] : TDADataTable read GetDetails; - property DetailCount : integer read GetDetailsCount; - property State : TDatasetState read GetState; - property IsEmpty : boolean read GetIsEmpty; - - { IDARangeController } - procedure ApplyRange; safecall; - procedure CancelRange; safecall; - procedure SetRange(const StartValues, EndValues: array of const); safecall; - procedure EditRangeEnd; safecall; - procedure EditRangeStart; safecall; - procedure SetRangeEnd; safecall; - procedure SetRangeStart; safecall; - - public - constructor Create(aDataTable: TDADataTable); reintroduce; virtual; - destructor Destroy; override; - end; - - TDADataTableRulesClass = class of TDADataTableRules; - - { TDADataTableList } - TDADataTableList = class(TList) - private - function GetItems(Index: integer): TDADataTable; - function GetPendingChangeCount: integer; - protected - public - constructor Create(aOwnerComponent : TComponent); - - function ScanAndAdd(aOwnerComponent : TComponent) : integer; - - function Add(aDataTable : TDADataTable) : integer; - procedure Remove(aDataTable : TDADataTable); - - property Items[Index : integer] : TDADataTable read GetItems; default; - property PendingChangeCount : integer read GetPendingChangeCount; - end; - -// Registration routines -procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); -function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; - -procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); -function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; - -// Helper functions -function NewDelta(aDataTable: TDADataTable): IDADelta; overload; - -function DatatableFromStream(aStream : TStream; - aDataTableClass : TDADataTableClass; - anAdapter : TDADataAdapter; - const aDatasetName : string = '') : TDADataTable; - -implementation - -uses - {$IFDEF DESIGNTIME} - {$IFDEF MSWINDOWS} - Dialogs, - {$ENDIF MSWINDOWS} - {$IFDEF LINUX} - QDialogs, - {$ENDIF LINUX} - {$ENDIF DESIGNTIME} - TypInfo, Variants, - uROClient, uROSessions, uROXMLIntf, - uDARegExpr, uDABusinessProcessor, - uDARemoteDataAdapter; - -var - _bizfields, - _bizdatatables: TStringList; - -type - TDataSetHack = class(TDataSet); - -function NewDelta(aDataTable: TDADataTable): IDADelta; -begin - result := TDADelta.Create(aDataTable); -end; - -procedure RegisterDataTableRules(const anID: string; const aDataTableRulesClass: TDADataTableRulesClass); -var - idx: integer; -begin - idx := _bizdatatables.IndexOf(anID); - - if (idx >= 0) then - _bizdatatables.Objects[idx] := TObject(aDataTableRulesClass) - else - _bizdatatables.AddObject(anID, TObject(aDataTableRulesClass)); -end; - -function FindDataTableRules(const anID: string; out aDataTableRulesClass: TDADataTableRulesClass): boolean; -var - idx: integer; -begin - result := FALSE; - idx := _bizdatatables.IndexOf(anID); - if (idx >= 0) then begin - aDataTableRulesClass := TDADataTableRulesClass(_bizdatatables.Objects[idx]); - result := TRUE; - end - else - aDataTableRulesClass := nil; -end; - -procedure RegisterFieldRules(const anID: string; const aFieldRulesClass: TDAFieldRulesClass); -var - idx: integer; -begin - idx := _bizfields.IndexOf(anID); - - if (idx >= 0) then - _bizfields.Objects[idx] := TObject(aFieldRulesClass) - else - _bizfields.AddObject(anID, TObject(aFieldRulesClass)); -end; - -function FindFieldRules(const anID: string; out aFieldRulesClass: TDAFieldRulesClass): boolean; -var - idx: integer; -begin - result := FALSE; - idx := _bizfields.IndexOf(anID); - if (idx >= 0) then begin - aFieldRulesClass := TDAFieldRulesClass(_bizfields.Objects[idx]); - result := TRUE; - end - else - aFieldRulesClass := nil; -end; - -function DatatableFromStream(aStream : TStream; - aDataTableClass : TDADataTableClass; - anAdapter : TDADataAdapter; - const aDatasetName : string = '') : TDADataTable; -begin - result := aDataTableClass.Create(NIL); - result.RemoteFetchEnabled := FALSE; - anAdapter.ReadDataset(aStream, result, TRUE, aDatasetName); - result.First; -end; - -{ TDADataTable } - -constructor TDADataTable.Create(aOwner: TComponent); -begin - inherited; - fHasReducedDelta := False; - fScriptCode := TStringList.Create; - fCustomAttributes := TStringList.Create; - fMaxRecords := -1; - - fMasterMappingMode := mmParams; - fMasterParamsMappings := TStringList.Create; - - fFieldRules := TObjectList.Create; - - fRemoteUpdateOptions := []; - fStreamingOptions := [soDisableEventsWhileStreaming]; - fDetailOptions := [dtCascadeOpenClose, - dtCascadeApplyUpdates, - dtAutoFetch, - dtCascadeDelete, - dtCascadeUpdate, - dtDisableLogOfCascadeDeletes, - dtDisableLogOfCascadeUpdates, - dtIncludeInAllInOneFetch // Done to avoid breaking existing apps - ]; - - fMasterOptions := [moCascadeOpenClose, - moCascadeApplyUpdates, - moCascadeDelete, - moCascadeUpdate, - moDisableLogOfCascadeDeletes, - moDisableLogOfCascadeUpdates]; - - fFetchedMasters := TStringList.Create; - fFetchedMasters.Duplicates := dupError; - fFetchedMasters.Sorted := TRUE; - - fMasterRequestMappings := TStringList.Create; - - fRemoteFetchEnabled := TRUE; - fStreaming := False; - - SetLength(fSortDirections, 0); - SetLength(fSortFieldNames, 0); - - fFields := TDAFieldCollection.Create(Self); - fFields.OnFieldBeforeUpdate := InternalBeforeFieldUpdate; - fFields.OnFieldAfterUpdate := InternalAfterFieldUpdate; - fParams := TDAParamCollection.Create(Self); - - fWhere := TDAWhere.Create(fFields, TRUE); - fWhere.OnChange := OnWhereChange; - - fDataset := GetDatasetClass.Create(Self); - fDataset.Name := 'Dataset'; - - fMasterLink := TMasterDataLink.Create(fDataset); - fMasterLink.OnMasterChange := OnMasterChange; - fMasterLink.OnMasterDisable := OnMasterDisable; - - fExpressionEvaluator := TDAStdExpressionEvaluator.Create; - fExpressionEvaluator.OnGetValue := ExpessionEvaluatorGetValue; - - fDynamicWhere := TDAWhereBuilder.Create; - fLogChanges := TRUE; -end; - -destructor TDADataTable.Destroy; -begin - fDynamicWhere.Free; - fExpressionEvaluator.Free; - fFields.Free; - fWhere.Free; - - fMasterLink.Free; - fMasterRequestMappings.Free; - fMasterParamsMappings.Free; - - fFetchedMasters.Free; - - if (fBusinessRules <> nil) then begin - fBusinessRules.Detach(Self); - fBusinessRules.Free; - end; - - fFieldRules.Free; - fParams.Free; - - fDelta := NIL; - fScriptCode.Free; - fCustomAttributes.Free; - - inherited; -end; - -procedure TDADataTable.OnWhereChange(Sender : TObject); -var - par : TRORequestParam; -begin - //TODO: par := DataRequestCall.FindParam(par_UserFilter); - //if (par<>NIL) then par.AsString := fWhere.Clause; - - if RemoteFetchEnabled and (RemoteDataAdapter <> nil) then - begin - par := (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall).FindParam('UserFilter'); - if (par <> NIL) then - par.AsString := fWhere.Clause; - end; -end; - -procedure TDADataTable.AttachEventHooks(aDataset: TDataset); -var i : integer; - lFieldRulesClass : TDAFieldRulesClass; - lFieldRules : TDAFieldRules; - lField : TDAField; -begin - if (csDesigning in ComponentState) then Exit; - - aDataset.BeforeInsert := InternalBeforeInsert; - aDataset.AfterInsert := InternalAfterInsert; - aDataset.BeforeEdit := InternalBeforeEdit; - aDataset.AfterEdit := InternalAfterEdit; - aDataset.BeforePost := InternalBeforePost; - aDataset.AfterPost := InternalAfterPost; - aDataset.BeforeCancel := InternalBeforeCancel; - aDataset.AfterCancel := InternalAfterCancel; - aDataset.BeforeDelete := InternalBeforeDelete; - aDataset.AfterDelete := InternalAfterDelete; - aDataset.BeforeScroll := InternalBeforeScroll; - aDataset.AfterScroll := InternalAfterScroll; - aDataset.BeforeRefresh := InternalBeforeRefresh; - aDataset.AfterRefresh := InternalAfterRefresh; - - aDataset.OnCalcFields := InternalOnCalcFields; - aDataset.OnNewRecord := InternalOnNewRecord; - - aDataset.OnFilterRecord := InternalOnFilterRecord; - - aDataset.OnDeleteError := InternalOnDeleteError; - aDataset.OnEditError := InternalOnEditError; - aDataset.OnPostError := InternalOnPostError; - - for i := 0 to (fFields.Count-1) do begin - lField := Fields[i]; - if (lField.BusinessClassID='') then Continue; - - Check(not FindFieldRules(lField.BusinessClassID, lFieldRulesClass), 'Invalid BusinessClassID "%s"', [lField.BusinessClassID]); - - lFieldRules := lFieldRulesClass.Create(lField, Self); - fFieldRules.Add(lFieldRules); - end; - - fFields.FieldEventsDisabled := FALSE; -end; - -procedure TDADataTable.DetachEventHooks(aDataset: TDataset); -begin - if (csDesigning in ComponentState) then Exit; - - aDataset.BeforeInsert := nil; - aDataset.AfterInsert := nil; - aDataset.BeforeEdit := nil; - aDataset.AfterEdit := nil; - aDataset.BeforePost := TempSetRowRecIDValue; // We still need to autoinc the RecID!!! - aDataset.AfterPost := nil; - aDataset.BeforeCancel := nil; - aDataset.AfterCancel := nil; - aDataset.BeforeDelete := nil; - aDataset.AfterDelete := nil; - aDataset.BeforeScroll := nil; - aDataset.AfterScroll := nil; - aDataset.BeforeRefresh := nil; - aDataset.AfterRefresh := nil; - if not Filtered then - aDataset.OnCalcFields := nil; - aDataset.OnNewRecord := nil; - - aDataset.OnFilterRecord := nil; - - aDataset.OnDeleteError := nil; - aDataset.OnEditError := nil; - aDataset.OnPostError := nil; - - fFields.FieldEventsDisabled := TRUE; - fFieldRules.Clear; // Destroyes them -end; - -procedure TDADataTable.InternalAfterDelete(Sender: TDataset); -begin - CallScript('AfterDelete'); - if Assigned(AfterDelete) then AfterDelete(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterDelete(Self); - - if (ruoOnPost in RemoteUpdatesOptions) then ApplyUpdates(); -end; - -procedure TDADataTable.InternalAfterEdit(Sender: TDataset); -begin - CallScript('AfterEdit'); - if Assigned(AfterEdit) then AfterEdit(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterEdit(Self); -end; - -procedure TDADataTable.InternalAfterInsert(Sender: TDataset); -var - i: integer; -begin - CallScript('AfterInsert'); - - if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... - // (autoinc) - for i := 0 to (fFields.Count-1) do - if (fFields[i].DataType=datLargeAutoInc) then begin - fFields[i].AsLargeInt := AutoIncs[i]; - AutoIncs[i] := AutoIncs[i]-1; - end else - if (fFields[i].DataType=datAutoInc) then begin - fFields[i].AsInteger := AutoIncs[i]; - AutoIncs[i] := AutoIncs[i]-1; - end; - end; - - if Assigned(AfterInsert) then AfterInsert(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterInsert(Self); -end; - -procedure TDADataTable.InternalAfterRefresh(Sender: TDataset); -begin - CallScript('AfterRefresh'); - if Assigned(AfterRefresh) then AfterRefresh(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterRefresh(Self); -end; - -procedure TDADataTable.InternalAfterScroll(Sender: TDataset); -begin - if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) - then Exit; - CallScript('AfterScroll'); - if Assigned(AfterScroll) then AfterScroll(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterScroll(Self); -end; - -procedure TDADataTable.InternalBeforeCancel(Sender: TDataset); -begin - CallScript('BeforeCancel'); - if Assigned(BeforeCancel) then BeforeCancel(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeCancel(Self); -end; - -procedure TDADataTable.InternalBeforeRefresh(Sender: TDataset); -begin - CallScript('BeforeRefresh'); - if Assigned(BeforeRefresh) then BeforeRefresh(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeRefresh(Self); - DoRefresh(fDataset); -end; - -procedure TDADataTable.InternalBeforeScroll(Sender: TDataset); -begin - if fStreaming and (soDisableEventsWhileStreaming in fStreamingOptions) - then Exit; - CallScript('BeforeScroll'); - if Assigned(BeforeScroll) then BeforeScroll(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeScroll(Self); -end; - -procedure TDADataTable.InternalOnCalcFields(Sender: TDataset); -var - i: integer; -begin - CallScript('OnCalcFields'); - if Assigned(OnCalcFields) then OnCalcFields(Self); - if Assigned(fBusinessRules) then fBusinessRules.OnCalcFields(Self); - For i:= 0 to fFields.Count-1 do - With fFields[i] do - if Calculated and (Expression <> '') then Value:= fExpressionEvaluator.Evaluate(Expression); -end; - -procedure TDADataTable.InternalOnDeleteError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); -begin - if Assigned(OnDeleteError) then OnDeleteError(Self, Error, Action); - if Assigned(fBusinessRules) then fBusinessRules.OnDeleteError(Self, Error, Action); -end; - -procedure TDADataTable.InternalOnEditError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); -begin - if Assigned(OnEditError) then OnEditError(Self, Error, Action); - if Assigned(fBusinessRules) then fBusinessRules.OnEditError(Self, Error, Action); -end; - -procedure TDADataTable.InternalOnFilterRecord(Dataset: TDataset; var Accept: Boolean); -begin - if Assigned(OnFilterRecord) then OnFilterRecord(Self, Accept); - if Assigned(fBusinessRules) then fBusinessRules.OnFilterRecord(Self, Accept); -end; - -procedure TDADataTable.InternalOnPostError(DataSet: TDataSet; Error: EDatabaseError; var Action: TDataAction); -begin - fDelta.RestoreLastChange; // ALEF: added as follow up to the Post errors (Jeff B.) - - if Assigned(OnPostError) then OnPostError(Self, Error, Action); - if Assigned(fBusinessRules) then fBusinessRules.OnPostError(Self, Error, Action); -end; - -procedure TDADataTable.SetLogChanges(const Value: boolean); -begin - fLogChanges := Value; -end; - -function TDADataTable.GetDataset: TDataset; -begin - result := fDataset // inherited Dataset; -end; - -function TDADataTable.GetFields: TDAFieldCollection; -begin - result := fFields; -end; - -procedure TDADataTable.SetFields(const Value: TDAFieldCollection); -begin - if Active then Close; - fFields.Assign(Value); -end; - -function TDADataTable.GetActive: boolean; -begin - result := fDataset.Active; -end; - -procedure TDADataTable.SetActive(Value: boolean); -begin - if (csLoading in ComponentState) then - fStreamedActive := Value - else begin - if (Value <> Active) then begin - if Value then - Open - else - Close - end; - end; -end; - -procedure TDADataTable.InternalOnNewRecord(Sender: TDataset); -var - i: integer; -begin - fFields.FieldEventsDisabled := TRUE; - try - try - for i := 0 to (fFields.Count - 1) do - if (fFields[i].DefaultValue <> '') then fFields[i].Value := fFields[i].DefaultValue; - - fFields.FieldEventsDisabled := FALSE; - - CallScript('OnNewRecord'); - if Assigned(OnNewRecord) then OnNewRecord(Self); - if Assigned(fBusinessRules) then fBusinessRules.OnNewRecord(Self); - except - fDelta.CancelChange; // OnNewRecord's exception put the dataset in read mode so we must cancel the change - raise; - end; - finally - fFields.FieldEventsDisabled := FALSE; // Just in case... - end; -end; - -procedure TDADataTable.DoCascadeOperation(aStreamer: TDADataStreamer; aOption: TDAMasterOption); -var - i: integer; - details: TList; - dt: TDADataTable; - flag: boolean; -begin - if aOption = moAllInOneFetch then begin - DoCascadeRemoteAllInOneFetch(aStreamer); - exit; - end; - details := GetDetailDataTables; - try - for i := 0 to (details.Count - 1) do begin - dt := TDADataTable(details[i]); - flag := dt.LogChanges; - - case aOption of - moCascadeDelete: begin - if (dtDisableLogOfCascadeDeletes in dt.DetailOptions) then dt.LogChanges := FALSE; - - dt.ClearRows; - end; - - moCascadeOpenClose: begin - if (dtCascadeOpenClose in dt.DetailOptions) then begin - if Opening then - dt.DoOpen - else if Closing then - dt.Close; - end; - end; - - moCascadeUpdate: begin - end; - - moAllInOneFetch: begin - { - if (dtIncludeInAllInOneFetch in dt.DetailOptions) then try - dt.LogChanges := FALSE; - - if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then - begin - aStreamer.ReadDataset(dt.LogicalName, dt, TRUE, FALSE); - dt.InitializeDataTable; - end; - - aStreamer.ReadDataset(dt.LogicalName, dt); - dt.DoCascadeOperation(aStreamer, moAllInOneFetch); - finally - dt.LogChanges := flag; - end; } - end; - end; - - dt.LogChanges := flag; - end; - finally - details.Free; - end; -end; - -procedure TDADataTable.DoCascadeRemoteAllInOneFetch(aStreamer: TDADataStreamer); -var - lFetchedMasters: TStringList; - - procedure ProcessDetailTable(aTable: TDADataTable); - begin - with aTable do begin - fFetchedMasters.Sorted:=False; - fFetchedMasters.AddStrings(lFetchedMasters); - fFetchedMasters.Sorted:=True; - DoCascadeRemoteAllInOneFetch(aStreamer); - end; - end; - -var - lLocalList, lRemoteList: TList; - ltbl: TDADataTable; - i: integer; - lflag: boolean; -begin - if moAllInOneFetch in fMasterOptions then begin - lRemoteList:= TList.Create; - lLocalList:= TList.Create; - try - GetDetailTablesforAllinOneFetch(lRemoteList,lLocalList, False); - if (lRemoteList.Count > 0) or (lLocalList.Count > 0) then begin - lFetchedMasters:= TStringList.Create; - try - First; - while not EOF do begin - lFetchedMasters.Add(IntToStr(GetRowRecIDValue)); - Next; - end; - lFetchedMasters.Sort; - - // these tables are read in RDA - for i := 0 to lRemoteList.Count - 1 do begin - ProcessDetailTable(TDADataTable(lRemoteList[i])); - end; - - // these tables we should read manually from streamer - for i := 0 to lLocalList.Count - 1 do begin - ltbl:= TDADataTable(lLocalList[i]); - if aStreamer.FindDatasetIndex(ltbl.LogicalName) = -1 then Continue; // may be to better raise an exception! - lflag := ltbl.LogChanges; - try - ltbl.LogChanges := False; - if Opening and not (soIgnoreStreamSchema in fStreamingOptions) then begin - aStreamer.ReadDataset(ltbl.LogicalName, ltbl, TRUE, FALSE); - ltbl.InitializeDataTable; - end; - aStreamer.ReadDataset(ltbl.LogicalName, ltbl); - finally - ltbl.LogChanges := lflag; - end; - ProcessDetailTable(ltbl); - end; - finally - lFetchedMasters.Free; - end; - end; - finally - lRemoteList.Free; - lLocalList.Free; - end; - end; -end; - -procedure TDADataTable.TempSetRowRecIDValue(Sender: TDataset); -begin - if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... - fRecIDField.AsInteger := CurrRecId; - CurrRecId := CurrRecId + 1; - end; -end; - -procedure TDADataTable.CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); -var - i, cnt: integer; - fld: TFieldDef; - fldcls: TFieldClass; - realfld: TField; -begin - // Creates the RecID field - fld := aDataset.FieldDefs.AddFieldDef; - fld.DataType := ftInteger; - fld.Name := RecIDFieldName; - - // Creates the autoinc map (autoinc) - AutoIncs := CreateAutoIncArray; - - // Adds the data fields (non calculated) to the FieldDefs - for i := 0 to (Fields.Count - 1) do begin - if Fields[i].Calculated or Fields[i].Lookup then Continue; // Added as fields later - - fld := aDataset.FieldDefs.AddFieldDef; - - // (autoinc) - if (Fields[i].DataType=datLargeAutoInc) - then fld.DataType := ftLargeint - else - if (Fields[i].DataType=datAutoInc) - then fld.DataType := ftInteger - else fld.DataType := DATypeToVCLType(Fields[i].DataType); - - fld.Name := Fields[i].Name; - - {if not (fld.DataType in [ftFloat, ftCurrency, ftBlob, ftInteger]) - then fld.Size := Fields[i].Size;} - - if (fld.DataType = ftString) or (fld.DataType = ftWideString) then fld.Size := Fields[i].Size; - if (fld.DataType = ftGuid) then fld.Size := 38; - - fld.Required := Fields[i].Required; - end; - - // Creates the data fields - for i := 0 to (aDataset.FieldDefs.Count - 1) do begin - realfld := aDataset.FieldDefs[i].CreateField(aDataset); - realfld.DataSet := aDataset; // NEW - end; - - // Creates the calculated fields - for i := 0 to (Fields.Count - 1) do begin - if not Fields[i].Calculated then Continue; - - fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; - if fldcls = nil then fldcls := TStringField; - realfld := fldcls.Create(Self); - realfld.Name := aDataset.Name + Fields[i].Name; - realfld.FieldName := Fields[i].Name; - realfld.DataSet := aDataset; - - if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; - - realfld.Required := Fields[i].Required; - if Fields[i].Calculated then realfld.FieldKind := fkCalculated; - - realfld.DataSet := aDataset; - end; - - // Creates the lookup fields - for i := 0 to (Fields.Count - 1) do begin - if not Fields[i].Lookup then Continue; - - fldcls := DefaultFieldClasses[DATypeToVCLType(Fields[i].DataType)]; - - if not Assigned(fldcls) then - RaiseError('No or invalid DataType specified for lookup field %s.%s',[self.Name, Fields[i].Name]); - - realfld := fldcls.Create(Self); - realfld.Name := aDataset.Name + Fields[i].Name; - realfld.FieldName := Fields[i].Name; - realfld.DataSet := aDataset; // NEW - - // Sets lookup properties - with Fields[i] do begin - {$IFDEF FPC} - realfld.FieldKind:=fkLookup; - {$ELSE} - realfld.Lookup := TRUE; - {$ENDIF} - if (LookupSource<>NIL) then - with TDADataSource(LookupSource) do - if Assigned(DataTable) - then realfld.LookupDataSet := DataTable.Dataset; - - realfld.LookupKeyFields := LookupKeyFields; - realfld.LookupCache := LookupCache; - realfld.LookupResultField := LookupResultField; - realfld.KeyFields := KeyFields; - end; - - if (Fields[i].DataType = datString) or (Fields[i].DataType = datWideString) then realfld.Size := Fields[i].Size; - - //realfld.DataSet := aDataset; - end; - - // Adjusts field positions (less intrusive than changing the code above) - cnt := Fields.Count-1; - for i := 0 to cnt do - aDataSet.FieldByName(Fields[i].Name).Index := i+1; -end; - -procedure TDADataTable.Loaded; -begin - inherited; - - if Assigned(fBusinessRules) - then fBusinessRules.Attach(Self); - - Active := fStreamedActive; - - AttachEventHooks(fDataset); -end; - -procedure TDADataTable.DoRefresh(aDataset: TDataset); -begin - if fRefreshing then Exit; - - fRefreshing := TRUE; - try - Close; - Open; - finally - fRefreshing := FALSE; - end; -end; - -procedure TDADataTable.InternalBeforeInsert(Sender: TDataset); -begin - CallScript('BeforeInsert'); - if Assigned(BeforeInsert) then BeforeInsert(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeInsert(Self); - - if not LogChanges or (csDesigning in ComponentState) then Exit; - - fDelta.StartChange(ctInsert); -end; - -procedure TDADataTable.InternalBeforeDelete(Sender: TDataset); -begin - CallScript('BeforeDelete'); - if Assigned(BeforeDelete) then BeforeDelete(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeDelete(Self); - - if not LogChanges or (csDesigning in ComponentState) then Exit; - - // Deletes the records from the detail tables - if (moCascadeDelete in MasterOptions) then DoCascadeOperation(nil, moCascadeDelete); - - // Logs the delete - fDelta.StartChange(ctDelete); - fDelta.EndChange; -end; - -procedure TDADataTable.InternalBeforeEdit(Sender: TDataset); -begin - CallScript('BeforeEdit'); - if Assigned(BeforeEdit) then BeforeEdit(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeEdit(Self); - - if not LogChanges or (csDesigning in ComponentState) then Exit; - - fDelta.StartChange(ctUpdate); -end; - -procedure TDADataTable.InternalBeforePost(Sender: TDataset); -var details : TList; - key : string; - i : integer; -begin - CallScript('BeforePost'); - if Assigned(BeforePost) then BeforePost(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforePost(Self); - - for i := 0 to (fFields.Count - 1) do - if (fFields[i].RegExpression <> '') and not fFields[i].IsNull then begin - if not ExecRegExpr(fFields[i].RegExpression, fFields[i].AsString) then RaiseError('Invalid input value for field ' + fFields[i].Name); - end; - - if (State <> dsEdit) then begin // Somehow it's gets in dsBrowse here... - fRecIDField.AsInteger := CurrRecId; - CurrRecId := CurrRecId + 1; - end; - - // This was originally in AfterPost. Moved here because after a post filters might step in and the current - // record can change resulting in half change from record X and the remaining from record Y - - if not LogChanges or (csDesigning in ComponentState) then Exit; - fDelta.EndChange; - - // Adds a reference to the RecID of this record to avoid double fetching records - // This is a new master record, so it means there are no details to fetch remotely - if (State=dsInsert) then begin - key := IntToStr(GetRowRecIDValue); - details := GetDetailDataTables; - try - for i := 0 to (details.Count-1) do begin - with TDADataTable(details[i]) do - if Active and (fFetchedMasters.IndexOf(key)<0) then fFetchedMasters.Add(key); - end; - finally - details.Free; - end; - end; - - if (ruoOnPost in RemoteUpdatesOptions) then try - ApplyUpdates(); - except - on E: Exception do - begin - fDelta.RestoreLastChange; - raise; - end; - end; -end; - -procedure TDADataTable.InternalAfterPost(Sender: TDataset); -begin - CallScript('AfterPost'); - if Assigned(AfterPost) then AfterPost(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterPost(Self); - - if not LogChanges or (csDesigning in ComponentState) then Exit; - -end; - -procedure TDADataTable.InternalAfterCancel(Sender: TDataset); -begin - CallScript('AfterCancel'); - if Assigned(AfterCancel) then AfterCancel(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterCancel(Self); - - fDelta.CancelChange; -end; - -function TDADataTable.GetLogChanges: boolean; -begin - result := fLogChanges; -end; - -procedure TDADataTable.DisableControls; -begin - fDataset.DisableControls; -end; - -procedure TDADataTable.EnableControls; -begin - fDataset.EnableControls; -end; - -function TDADataTable.GetBOF: boolean; -begin - result := fDataset.BOF -end; - -function TDADataTable.GetEOF: boolean; -begin - result := fDataset.EOF -end; - -function TDADataTable.GetFieldCount: integer; -begin - result := fFields.Count -end; - -function TDADataTable.GetFieldValues(Index: integer): Variant; -begin - result := Fields[Index].Value -end; - -function TDADataTable.GetNames(Index: integer): string; -begin - result := Fields[Index].Name -end; - -function TDADataTable.GetRecordCount: integer; -begin - result := fDataset.RecordCount; -end; - -function TDADataTable.GetSQL: string; -begin - // Not implemented in DataTables - result := ''; -end; - -function TDADataTable.Locate(const KeyFields: string; - const KeyValues: Variant; Options: TLocateOptions): Boolean; -begin - if VarIsArray(KeyValues) and (VarArrayHighBound(KeyValues, 1) = 0) - then result := fDataset.Locate(KeyFields, KeyValues[0], Options) - else result := fDataset.Locate(KeyFields, KeyValues, Options); -end; - -procedure TDADataTable.Next; -begin - fDataset.Next; -end; - -procedure TDADataTable.SetSQL(const Value: string); -begin - // Not implemented in DataTables -end; - -function TDADataTable.Execute: integer; -begin - // Not implemented in DataTables - result := -1; -end; - -function TDADataTable.GetParams: TDAParamCollection; -begin - // Not implemented in DataTables - result := fParams; -end; - -procedure TDADataTable.RefreshParams; -begin - // Not implemented in DataTables -end; - -procedure TDADataTable.Append; -begin - fDataset.Append; -end; - -procedure TDADataTable.Delete; -begin - fDataset.Delete; -end; - -procedure TDADataTable.Cancel; -begin - fDataset.Cancel; -end; - -procedure TDADataTable.Edit; -begin - fDataset.Edit; -end; - -procedure TDADataTable.Insert; -begin - fDataset.Insert; -end; - -procedure TDADataTable.Post; -begin - fDataset.Post; -end; - -{$WARN SYMBOL_DEPRECATED OFF} -function TDADataTable.GetWhere: TDAWhere; -begin - result := fWhere -end; -{$WARN SYMBOL_DEPRECATED ON} - -procedure TDADataTable.SetRemoteDataAdapter(const Value: TDABaseRemoteDataAdapter); -begin - if Value <> fRemoteDataAdapter then begin - fRemoteDataAdapter := Value; - if assigned(fRemoteDataAdapter) then fRemoteDataAdapter.FreeNotification(self); - end; -end; - -procedure TDADataTable.Close; -begin - if not Active then Exit; - - fClosing := TRUE; - try - DoBeforeCloseDataset; - if Assigned(BeforeClose) then BeforeClose(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeClose(Self); - - if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); - - Dataset.Close; - fFields.Unbind; - - //Dataset.Fields.Clear; - - fDelta := nil; - - fFetchedMasters.Clear; - - DoAfterCloseDataset; - if Assigned(AfterClose) then AfterClose(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterClose(Self); - finally - fClosing := FALSE; - end; -end; - -procedure TDADataTable.InitializeDataTable; -begin - fCurrRecId := 1; - - try - fDataset.Fields.Clear; - fDataset.FieldDefs.Clear; - finally - NotifyFieldsClear; - end; - try - // Creates the fields for the internal dataset - CreateInternalFields(fDataset, Fields); - finally - NotifyFieldsClear; - end; - - fRecIDField := fDataset.FieldByName(RecIDFieldName) as TIntegerField; - fRecIDField.Visible := FALSE; - - fFields.Bind(fDataset); - - // Prepares the delta - fDelta := TDADelta.Create(Self); - -(* - // Finishes to prepare the internal dataset (descendant might need additional customization and might not be open) - if RemoteFetchEnabled and - (RemoteDataAdapter<>nil) and - (TDARemoteDataAdapter(RemoteDataAdapter).GetDataCall.Default) then - LoadScript(); -*) - DoBeforeOpenDataset; - if not Dataset.Active then Dataset.Open; - DoAfterOpenDataset; -end; - -procedure TDADataTable.LoadFromLocalSchema; -var - lConnection: IDAConnection; - data: TStream; - gofirst, oldlog: boolean; - ds: IDADataset; - i: integer; - lDynFields: array of string; -begin - if (LocalSchema = nil) or (LogicalName = '') then begin - InitializeDataTable; - Exit; - end; - - // Local but from schema. Client/Server mode - CheckProperties; - - lConnection := LocalSchema.ConnectionManager.NewConnection(fLocalConnection); - try - SetLength(lDynFields, 0); - ds := LocalSchema.NewDataset(lConnection, fLogicalName,lDynFields,fDynamicWhere.Xml); - - oldlog := LogChanges; - fFetching := TRUE; - LogChanges := FALSE; -// book := nil; - - data := Binary.Create; - Binary(data).CapacityIncrement := LocalDataStreamer.BufferSize; - try - for i := 0 to (ds.Params.Count - 1) do - ds.Params[i].Value := ParamByName(ds.Params[i].Name).Value; - - LocalDataStreamer.WriteDataset(data, ds, [woRows, woSchema], -1); - - if Active then - gofirst := FALSE - else - gofirst := TRUE; - - if Assigned(fOnReceiveDataStream) then fOnReceiveDataStream(Self, data); - if Assigned(fBusinessRules) then fBusinessRules.OnReceiveDataStream(Self, data); - data.Position := 0; - - // Reads the data - LocalDataStreamer.Initialize(data, aiRead); - if (LocalDataStreamer.DatasetCount = 0) then RaiseError('Stream does not contain any dataset'); - - if Opening then begin - if not (soIgnoreStreamSchema in fStreamingOptions) then LocalDataStreamer.ReadDataset(LogicalName, Self, TRUE, FALSE); - - InitializeDataTable; - end; - - LocalDataStreamer.ReadDataset(LogicalName, Self, FALSE); - { - if (moAllInOneFetch in MasterOptions) then begin - DoCascadeOperation(LocalDataStreamer, moAllInOneFetch); - end;} - - LocalDataStreamer.Finalize; - - if gofirst then First; - finally - fFetching := FALSE; - data.Free; - LogChanges := oldlog; - end; - finally - lConnection := nil; - end; -end; - -procedure TDADataTable.DoOpen(IgnoreAutoFetchSettings: Boolean); -var i : integer; -begin - if Active or fOpening then Exit; - - fOpening := TRUE; - try - { Checks that all the lookup datasets are open. If not, we would get the error "Missing Data Provider"} - for i := 0 to (FieldCount-1) do - if Fields[i].Lookup and (Fields[i].LookupSource<>NIL) then begin - if (Fields[i].LookupSource is TDADataSource) then begin - if Assigned(TDADataSource(Fields[i].LookupSource).DataTable) - then TDADataSource(Fields[i].LookupSource).DataTable.Open; - end - else begin - if Assigned(Fields[i].LookupSource.DataSet) - then Fields[i].LookupSource.DataSet.Open; - end; - end; - - - if Assigned(BeforeOpen) then BeforeOpen(Self); - if Assigned(fBusinessRules) then fBusinessRules.BeforeOpen(Self); - - try - if not fFetching then begin - if fMasterLink.Active then - FetchMastersDetails(nil, nil, IgnoreAutoFetchSettings) // This calls InitializeDataTable possibily applying a new schema - else - if RemoteFetchEnabled then LoadFromRemoteSource else LoadFromLocalSchema; - end; - - if (moCascadeOpenClose in MasterOptions) then DoCascadeOperation(nil, moCascadeOpenClose); - - if Assigned(AfterOpen) then AfterOpen(Self); - if Assigned(fBusinessRules) then fBusinessRules.AfterOpen(Self); - except - on E: Exception do begin - Close; - {$IFDEF DESIGNTIME} - if (csDesigning in ComponentState) then begin - SysUtils.Beep; - MessageDlg(E.Message, mtError, [mbOK], 0); - end - else - {$ENDIF DESIGNTIME} - raise; - end; - end; - finally - fOpening := FALSE; - end; -end; - -procedure TDADataTable.Open; -begin - DoOpen(True); -end; - - -procedure TDADataTable.OnMasterChange(Sender: TObject); -begin - if (MasterSource <> nil) and (MasterSource.DataTable <> nil) then begin - if MasterSource.DataTable.fFetching then - exit; - end; - - FetchMastersDetails; -end; - -procedure TDADataTable.OnMasterDisable(Sender: TObject); -begin - -end; - -procedure TDADataTable.LoadFromRemoteSource(BookmarkPosition: boolean = FALSE); -begin - CheckProperties(True); - if Assigned(fOnBeforeDataRequestCall) then fOnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); - RemoteDataAdapter.Fill([self], BookmarkPosition, FieldCount = 0); - if Assigned(fOnAfterDataRequestCall) then fOnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); - if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataRequestCall(Self, RemoteDataAdapter.Get_GetDataCall); -end; - -function TDADataTable.ApplyUpdates(RefetchAll: boolean = FALSE): boolean; -var - details: TList; - i: integer; - dt: TDADataTable; -begin - details:= GetDetailTablesforApplyUpdate; - try - // check RDA - CheckProperties; - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - {if dt.RemoteFetchEnabled then } dt.CheckProperties; - end; - - //fOnBeforeApplyUpdates - if Assigned(fOnBeforeApplyUpdates) then fOnBeforeApplyUpdates(Self, fDelta); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnBeforeApplyUpdates) then dt.fOnBeforeApplyUpdates(dt, fDelta); - end; - - //fBusinessRules.OnBeforeApplyUpdates - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeApplyUpdates(Self, fDelta); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeApplyUpdates(dt, fDelta); - end; - - if RemoteFetchEnabled then begin - - //fOnBeforeDataUpdateCall - if Assigned(fOnBeforeDataUpdateCall) then fOnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnBeforeDataUpdateCall) then dt.fOnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); - end; - - //fBusinessRules.OnBeforeDataUpdateCall - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); - end; - - result := RemoteDataAdapter.ApplyUpdates([self], RefetchAll); - - //fOnAfterDataUpdateCall - if Assigned(fOnAfterDataUpdateCall) then fOnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnAfterDataUpdateCall) then dt.fOnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); - end; - - //fBusinessRules.OnAfterDataUpdateCall - if Assigned(fBusinessRules) then fBusinessRules.OnAfterDataUpdateCall(Self, RemoteDataAdapter.Get_UpdateDataCall); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterDataUpdateCall(dt, dt.RemoteDataAdapter.Get_UpdateDataCall); - end; - - end - else begin - result := Local_ApplyUpdates(RefetchAll); - end; - - //fOnAfterApplyUpdates - if Assigned(fOnAfterApplyUpdates) then fOnAfterApplyUpdates(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnAfterApplyUpdates) then dt.fOnAfterApplyUpdates(dt); - end; - - //fBusinessRules.OnAfterApplyUpdates - if Assigned(fBusinessRules) then fBusinessRules.OnAfterApplyUpdates(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterApplyUpdates(dt); - end; - finally - details.Free; - end; -end; - -procedure TDADataTable.LoadSchema(PreserveLookupFields : boolean = FALSE; PreserveClientCalcFields : boolean = FALSE); -begin - CheckProperties(True); - if Assigned(fOnBeforeSchemaCall) then fOnBeforeSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); - RemoteDataAdapter.FillSchema([self], PreserveLookupFields, PreserveClientCalcFields); - if Assigned(fOnAfterSchemaCall) then fOnAfterSchemaCall(Self, RemoteDataAdapter.Get_GetSchemaCall); - if Assigned(fBusinessRules) then fBusinessRules.OnAfterSchemaCall(self, RemoteDataAdapter.Get_GetSchemaCall); -end; - -procedure TDADataTable.LoadScript(aDatasetName : string = ''); -begin - CheckProperties(True); - if Assigned(fOnBeforeScriptCall) then fOnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); - RemoteDataAdapter.FillScripts([self]); - if Assigned(fOnAfterScriptCall) then fOnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); - if Assigned(fBusinessRules) then fBusinessRules.OnAfterScriptCall(Self, RemoteDataAdapter.Get_GetScriptsCall); -end; - -procedure TDADataTable.FetchMastersDetails(aMasterTable : TDADataTable = NIL; aRequestMappings : TStrings = NIL; IgnoreAutoFetchSettings: Boolean = False); - - procedure CombineDynamicWhere(aWhereExpression:TDAWhereExpression); - begin - if fMasterMappingMode = mmWhere then begin - if fDynamicWhere.Expression = nil then - fDynamicWhere.Expression:= aWhereExpression - else - fDynamicWhere.Expression:= fDynamicWhere.NewBinaryExpression(fDynamicWhere.Expression,aWhereExpression,dboAnd); - end; - end; - - procedure RevertDynamicWhere(aWhereExpression:TDAWhereExpression); - var - fUserWhereExpression: TDAWhereExpression; - begin - if fMasterMappingMode = mmWhere then begin - fUserWhereExpression:= nil; - if fDynamicWhere.Expression <> aWhereExpression then begin - fUserWhereExpression:= TDABinaryExpression(fDynamicWhere.Expression).Left; - TDABinaryExpression(fDynamicWhere.Expression).Left:=nil; - end; - fDynamicWhere.Clear; - fDynamicWhere.Expression:= fUserWhereExpression; - end; - end; - - - function GenerateWhereStatement: TDAWhereExpression; - var - lFieldName: string; - pos1, pos2: integer; - lfld1: TDAField; - lfld2: TDAField; - lExpression: TDAWhereExpression; - begin - //fDynamicWhere.Clear; - Pos1 := 1; - pos2 := 1; - Result:=nil; - while True do begin - if (Pos1 > Length(DetailFields)) and (Pos2 > Length(MasterFields)) then Break; - - if ((Pos1 > Length(DetailFields)) and (Pos2 <= Length(MasterFields))) or - ((Pos1 <= Length(DetailFields)) and (Pos2 > Length(MasterFields))) then - RaiseError('DetailFields should have same number of items as MasterFields'); - - {$WARN SYMBOL_DEPRECATED OFF} - lFieldName:= ExtractFieldName(DetailFields, Pos1); - {$WARN SYMBOL_DEPRECATED ON} - lfld1 := FindField(lFieldName); - if lfld1 = nil then RaiseError('Invalid field name %s in DetailFields', [lFieldName]); - {$WARN SYMBOL_DEPRECATED OFF} - lFieldName:= ExtractFieldName(MasterFields, Pos2); - {$WARN SYMBOL_DEPRECATED ON} - lfld2 := MasterSource.DataTable.Fields.FindField(lFieldName); - if lfld2 = nil then RaiseError('Invalid field name %s in MasterFields', [lFieldName]); - - lExpression := fDynamicWhere.NewBinaryExpression( - fDynamicWhere.NewField('',lfld1.Name), - fDynamicWhere.NewConstant(lfld2.Value,lfld2.DataType), - dboEqual); - - if Result <> nil then - Result:=fDynamicWhere.NewBinaryExpression(Result,lExpression,dboAnd) - else - Result:= lExpression; - end; - end; - -var - master: TDataset; - par: TDARemoteRequestParam; - fld: TDAField; - key: string; - i: integer; - dofetch: boolean; - mappings : TStrings; - detailparam : TDAParam; - lmmWhereExpression: TDAWhereExpression; -begin - if RemoteFetchEnabled then CheckProperties - else if not(Assigned(LocalSchema) and Assigned(LocalDataStreamer)) then begin - if fOpening then InitializeDataTable; - Exit; - end; - - // - // - // TODO: this doesnt properly use the new RDA's DMB yet. we need to discuss/rethink how to handle that! - // - // - - mappings := NIL; - - dofetch := (((dtAutoFetch in DetailOptions) or IgnoreAutoFetchSettings) {and RemoteFetchEnabled}) or (aMasterTable<>NIL); - - if (aRequestMappings<>NIL) then mappings := aRequestMappings - else begin - case fMasterMappingMode of - mmDataRequest : mappings := MasterRequestMappings; - mmParams : mappings := MasterParamsMappings; - end; - end; - - if (aMasterTable<>NIL) - then master := aMasterTable.Dataset - else master := fMasterLink.DataSet; - - if master = nil then exit; - - if (master.RecordCount = 0) then begin - if not Active then InitializeDataTable; // Master opened with 0 records and detail wasn't open yet - - Exit; - end - else if (MasterSource = nil) then Exit; - if (master.State=dsBrowse) and not MasterSource.DataTable.Delta.IsNewRecord then begin - if dofetch then begin - // Determines if the details for this master have been fetched - key := IntToStr(MasterSource.DataTable.GetRowRecIDValue); - if (fFetchedMasters.IndexOf(key) >= 0) then Exit; - if (fMasterMappingMode = mmWhere) or ((mappings<>NIL) and (mappings.Count > 0)) then begin - lmmWhereExpression:=nil; - if RemoteFetchEnabled then begin - // remotemode - - // If not, then assigns the param values from the current master record, - // invokes the remote call and loads the data - case MasterMappingMode of - mmWhere: begin - lmmWhereExpression:=GenerateWhereStatement; - end; - mmDataRequest : begin - for i := 0 to (mappings.Count - 1) do begin - par := nil; - if RemoteDataAdapter.Get_GetDataCall <> nil then - par := RemoteDataAdapter.Get_GetDataCall.Params.ParamByName(Trim(mappings.Names[i])); - if (par=NIL) then RaiseError('Invalid parameter name %s in master mappings', [Trim(mappings.Names[i])]); - - fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); - if (fld=NIL) then RaiseError('Invalid field name %s in master mappings', [Trim(mappings.Values[mappings.Names[i]])]); - - if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) - then par.AsVariant := fld.Value - end; - end; - mmParams : begin - // Fills it in - for i := 0 to (mappings.Count - 1) do begin - detailparam := Params.ParamByName(Trim(mappings.Names[i])); - if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); - - fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); - if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); - - if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) - then detailparam.Value := fld.Value - end; - end; - end; - - CombineDynamicWhere(lmmWhereExpression); - try - LoadFromRemoteSource; - finally - RevertDynamicWhere(lmmWhereExpression); - end; - - try - fFetchedMasters.Add(key); - except - raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); - end; - end { RemoteFetchEnabled }else begin - // localmode - - // If not, then assigns the param values from the current master record, - // invokes the remote call and loads the data - case MasterMappingMode of - mmWhere: begin - lmmWhereExpression := GenerateWhereStatement; - end; - mmParams: begin - // Fills it in - for i := 0 to (mappings.Count - 1) do begin - detailparam := Params.ParamByName(Trim(mappings.Names[i])); - if (detailparam=NIL) then RaiseError('Invalid parameter name %s in param mappings', [Trim(mappings.Names[i])]); - - fld := MasterSource.DataTable.Fields.FindField(Trim(mappings.Values[mappings.Names[i]])); - if (fld=NIL) then RaiseError('Invalid field name %s in param mappings', [Trim(mappings.Values[mappings.Names[i]])]); - - if (detailparam <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then detailparam.Value := fld.Value - end; - end; - mmDataRequest: raise Exception.Create('mmDataRequest mode only supported in RemoteFetchEnabled mode'); - end; - - CombineDynamicWhere(lmmWhereExpression); - try - LoadFromLocalSchema; - finally - RevertDynamicWhere(lmmWhereExpression); - end; - - try - fFetchedMasters.Add(key); - except - raise Exception.CreateFmt('Master record %s has been fetched twice', [key]); - end; - end; - end else begin - { ALEF: I removed the code below because it was never meant to be here to begin with. Very error prone. - Who added this??? - - // Automatics - for i := 0 to (DataRequestCall.Params.Count - 1) do begin - par := DataRequestCall.Params[i]; - fld := MasterSource.DataTable.Fields.FindField(par.Name); - - if (par <> nil) and (fld <> nil) and not VarIsNull(fld.Value) then par.Value := fld.Value; - end;} - - RaiseError('There are no mappings defined. Cannot fetch records for detail table '+Name); - end; - end; {dofetch} - end; -end; - -procedure TDADataTable.WriteDeltaToStream(aStreamer: TDADataStreamer); -var - i: integer; - details: TList; - lHasReducedDelta: Boolean; - oldMode: boolean; -begin - // And the details' updates (if specified) - details := GetDetailTablesforApplyUpdate; - try - lHasReducedDelta:= fHasReducedDelta; - if not aStreamer.SendReducedDelta then begin - if not lHasReducedDelta then - for i := 0 to (details.Count - 1) do begin - lHasReducedDelta:= TDADataTable(details[i]).fHasReducedDelta; - if lHasReducedDelta then Break; - end; - end; - oldMode:=aStreamer.SendReducedDelta; - if lHasReducedDelta then aStreamer.SendReducedDelta:=True; - try - // Writes its own updates - if self.HasDelta then aStreamer.WriteDelta(Self); - for i := 0 to (details.Count - 1) do - TDADataTable(details[i]).WriteDeltaToStream(aStreamer); - finally - aStreamer.SendReducedDelta := oldMode; - end; - finally - details.Free; - end; -end; - -procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer;aFailedDeltas:TList); -var - i: integer; - details: TList; -begin - // Reads its own updates - if aStreamer.FindDeltaIndex(Self.LogicalName) <> -1 then begin - Delta.Clear; - aStreamer.ReadDelta(Self); - if Delta.Count>0 then fHasReducedDelta := aStreamer.HasReducedDelta; - - For i := 0 to Delta.Count-1 do - if Delta.Changes[i].Status = csFailed then - aFailedDeltas.Add(Delta.Changes[i]); - end; - - // And the details' updates (if specified) - details := GetDetailTablesforApplyUpdate; - try - for i := 0 to (details.Count - 1) do - TDADataTable(details[i]).ReadDeltaFromStream(aStreamer, aFailedDeltas); - finally - details.Free; - end; -end; - -procedure TDADataTable.ReadDeltaFromStream(aStreamer: TDADataStreamer); -var - List: TList; -begin - List:= TList.Create; - try - ReadDeltaFromStream(aStreamer,List); - finally - List.Free; - end; -end; - -procedure TDADataTable.MergeDelta; -var - i, k, x: integer; - details: TList; - dt: TDADataTable; -// ok : boolean; -// failed, pending, resolved : integer; - oldval, newval, val : Variant; - fld : TDAField; - pkfields : string; - oldopt : TDARemoteUpdatesOptions; - oldlog : boolean; - keyvals : array of variant; - oldmastersource : TDADataSource; - lhasDelta: Boolean; - pk_array: array of boolean; -begin - details:=GetDetailTablesforApplyUpdate; - try - //fOnBeforeMergeDelta - if Assigned(fOnBeforeMergeDelta) then fOnBeforeMergeDelta(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnBeforeMergeDelta) then dt.fOnBeforeMergeDelta(dt); - end; - - //fBusinessRules.OnBeforeMergeDelta - if Assigned(fBusinessRules) then fBusinessRules.OnBeforeMergeDelta(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnBeforeMergeDelta(dt); - end; - - oldopt := RemoteUpdatesOptions; - oldlog := LogChanges; - oldmastersource := MasterSource; - - lhasDelta := Delta.Count > 0; - if lhasDelta then begin - RemoteUpdatesOptions := RemoteUpdatesOptions-[ruoOnPost]; - LogChanges := FALSE; - // Disables the M/D relationship so that Locates can work in all cases (master or detail tables, regardless - // of their positioning) - MasterSource := NIL; - end; - - try - pkfields := ''; - for i := 0 to (Delta.KeyFieldCount-1) do - pkfields := pkfields+Delta.KeyFieldNames[i]+';'; - pkfields := Copy(pkfields, 1, Length(pkfields)-1); - - SetLength(keyvals, Delta.KeyFieldCount); - - // Merges the updates - if (Delta.Count>0) then begin - SetLength(pk_array, Delta.LoggedFieldCount); - for i := 0 to Delta.LoggedFieldCount - 1 do - pk_array[i]:=False; - - for i := 0 to Delta.KeyFieldCount - 1 do begin - x := Delta.IndexOfLoggedField(Delta.KeyFieldNames[i]); - if x <> -1 then pk_array[x]:=True; - end; - for i := (Delta.Count-1) downto 0 do begin - if (Delta[i].Status<>csResolved) - then Continue; - if (Delta[i].ChangeType<>ctDelete) then begin - if (Self.State in [dsEdit, dsInsert]) and (ruoOnPost in oldopt) then begin - // Merge the details - for x := 0 to (details.Count - 1) do - TDADataTable(details[x]).MergeDelta; - for x := 0 to (Delta.LoggedFieldCount-1) do begin - fld := FieldByName(Delta.LoggedFieldNames[x]); - - newval := Delta[i].NewValueByName[fld.Name]; - oldval := Delta[i].OldValueByName[fld.Name]; - if fHasReducedDelta then begin - if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; - end; - if fld.ServerAutoRefresh or (not VarIsArray(newVal) and not ROVariantsEqual(newval,oldval)) then begin - VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); - end; - end; - end - else begin - for k := 0 to (Delta.KeyFieldCount-1) do begin - val := Delta[i].OldValueByName[Delta.KeyFieldNames[k]]; - keyvals[k] := val; - end; - - // Locates the original record - First; - if not Locate(pkfields, keyvals, []) then Continue; - - // Merge the details - for x := 0 to (details.Count - 1) do - TDADataTable(details[x]).MergeDelta; - - // Merges its own updates - Edit; - for x := 0 to (Delta.LoggedFieldCount-1) do begin - fld := FieldByName(Delta.LoggedFieldNames[x]); - - newval := Delta[i].NewValueByName[fld.Name]; - oldval := Delta[i].OldValueByName[fld.Name]; - if fHasReducedDelta then begin - if not pk_array[x] and ROVariantsEqual(oldVal,newVal) then continue; - end; - if fld.ServerAutoRefresh or (not VarIsArray(newVal) and (newval<>oldval)) then begin - VariantToFieldValue(Delta[i].NewValueByName[fld.Name], fld); - end; - end; - Post; - end; - end; - // Removes this merged change - Delta.Delete(i); - end; - end - - // If there are no updates for this master, the children still need to be processed - else begin - // Merge the details - for x := 0 to (details.Count - 1) do - TDADataTable(details[x]).MergeDelta; - end; - finally - if lhasDelta then begin - RemoteUpdatesOptions := oldopt; - LogChanges := oldlog; - - // Restores the M/D relationship - MasterSource := oldmastersource; - end; - //fOnAfterMergeDelta - if Assigned(fOnAfterMergeDelta) then fOnAfterMergeDelta(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fOnAfterMergeDelta) then dt.fOnAfterMergeDelta(dt); - end; - - //fBusinessRules.OnAfterMergeDelta - if Assigned(fBusinessRules) then fBusinessRules.OnAfterMergeDelta(Self); - for i := 0 to details.Count-1 do begin - dt:= TDADataTable(details[i]); - if Assigned(dt.fBusinessRules) then dt.fBusinessRules.OnAfterMergeDelta(dt); - end; - end; - finally - details.Free; - if Delta.Count = 0 then fHasReducedDelta:=False; - end; -end; - - -procedure TDADataTable.PackAllInOneFetchInfoArray(aDataTable : TDADataTable; OutArray: TDADatasetRequestInfoArray); -var outinfo : TDADatasetRequestInfo; - details : TList; - dt : TDADataTable; - i : integer; -begin - outinfo := outarray.Add; - outinfo.DatasetName := aDataTable.LogicalName; - outinfo.MaxRecords := aDataTable.MaxRecords; - outinfo.IncludeSchema := TRUE; - outinfo.Params := NIL; - - details := aDataTable.GetDetailDataTables; - try - for i := 0 to (details.Count - 1) do begin - dt := TDADataTable(details[i]); - - if (dtIncludeInAllInOneFetch in dt.DetailOptions) - then PackAllInOneFetchInfoArray(dt, OutArray); - end; - finally - details.Free; - end; -end; - -function TDADataTable.FieldByName(const aName: string): TDAField; -begin - result := fFields.FieldByName(aName) -end; - -function TDADataTable.ParamByName(const aName: string): TDAParam; -begin - result := fParams.ParamByName(aName) -end; - -procedure TDADataTable.First; -begin - fDataset.First -end; - -procedure TDADataTable.Last; -begin - fDataset.Last -end; - -procedure TDADataTable.Prior; -begin - fDataset.Prior -end; - -procedure TDADataTable.Sort(const FieldNames: array of string; const Directions: array of TDASortDirection); -var - i: integer; -begin - DoSort(FieldNames, Directions); - - // Stores the new settings for convenience - SetLength(fSortDirections, Length(Directions)); - for i := 0 to Length(Directions) - 1 do - fSortDirections[i] := Directions[i]; - - SetLength(fSortFieldNames, Length(FieldNames)); - for i := 0 to Length(FieldNames) - 1 do - fSortFieldNames[i] := FieldNames[i]; -end; - -procedure TDADataTable.UnSort; -begin - Sort([], []); -end; - -procedure TDADataTable.LoadFromStream(aStream: TStream); -var - //remfetch, - oldlogchanges, oldcascadeopenclose: boolean; - lStreamer: TDADataStreamer; - i: integer; -begin - Check(RemoteFetchEnabled, Name+'. Cannot do this operation when RemoteFetchEnabled is set to TRUE'); - if RemoteDataAdapter <> nil then - lStreamer:=RemoteDataAdapter.DataStreamer - else - lStreamer:=LocalDataStreamer; - - Check(lStreamer = nil, Name+'. RemoteDataAdapter or LocalDataStreamer must be assigned.'); - - Close; - - oldlogchanges := LogChanges; -// remfetch := RemoteFetchEnabled; - oldcascadeopenclose := moCascadeOpenClose in fMasterOptions; - -// RemoteFetchEnabled := FALSE; - LogChanges := FALSE; - if oldcascadeopenclose - then fMasterOptions := fMasterOptions - [moCascadeOpenClose]; - try - fStreaming := True; - try - lStreamer.Initialize(aStream, aiRead); - - if not (soIgnoreStreamSchema in fStreamingOptions) then - lStreamer.ReadDataset(LogicalName, Self, TRUE) - else - lStreamer.ReadDataset(LogicalName, Self, FALSE); - - lStreamer.ReadDelta(Self); - if Delta <> nil then - For i:= 0 to Delta.Count-1 do - if fCurrRecId <= Delta.Changes[i].RecID then - fCurrRecId := Delta.Changes[i].RecID+1; - finally - fStreaming := False; - end; - finally - lStreamer.Finalize; - LogChanges := oldlogchanges; -// RemoteFetchEnabled := remfetch; - if oldcascadeopenclose then begin - fMasterOptions := fMasterOptions + [moCascadeOpenClose]; - fOpening := True; - try - DoCascadeOperation(nil, moCascadeOpenClose); - finally - fOpening := False; - end; - end; - if Active then First; - end; -end; - -procedure TDADataTable.SaveToStream(aStream: TStream); -var - lStreamer: TDADataStreamer; - OldMasterSource: TDADataSource; -begin - if (soDisableEventsWhileStreaming in fStreamingOptions) then DisableControls; - try - OldMasterSource := MasterSource; - MasterSource := nil; - fStreaming := True; - try - First; // Important! - if RemoteFetchEnabled then - lStreamer:= RemoteDataAdapter.DataStreamer - else - lStreamer:=LocalDataStreamer; - if lStreamer = nil then CheckProperties; - lStreamer.Initialize(aStream, aiWrite); - lStreamer.WriteDataset(Self, [woRows, woSchema]); - lStreamer.WriteDelta(Self); - lStreamer.Finalize; - finally - fStreaming := False; - MasterSource := OldMasterSource; - end; - finally - if (soDisableEventsWhileStreaming in fStreamingOptions) then EnableControls; - end; -end; - -procedure TDADataTable.LoadFromFile(const aFileName: string); -var - fs: TFileStream; - oldval : boolean; -begin - oldval := RemoteFetchEnabled; - RemoteFetchEnabled := FALSE; - try - fs := TFileStream.Create(aFileName, fmOpenRead); - try - LoadFromStream(fs); - finally - fs.Free; - end; - finally - RemoteFetchEnabled := oldval; - end; -end; - -procedure TDADataTable.SaveToFile(const aFileName: string); -var - fs: TFileStream; -begin - fs := TFileStream.Create(aFileName, fmCreate); - try - SaveToStream(fs); - finally - fs.Free; - end; -end; - -procedure TDADataTable.SetParams(const Value: TDAParamCollection); -begin - fParams.Assign(Value); -end; - -procedure TDADataTable.ClearFields; -var - i: integer; -begin - for i := 0 to FieldCount - 1 do - Fields[i].Value := Null; -end; - -procedure TDADataTable.ClearRows; -var - CurChange: TDADeltaChange; -begin - while (RecordCount > 0) do begin - if (not LogChanges) and Assigned(Delta) then begin - CurChange := Delta.FindChange(RecIDValue); - if Assigned(CurChange) then - Delta.RemoveChange(CurChange); - end; - Delete; - end; -end; - -function TDADataTable.GetState: TDataSetState; -begin - result := fDataset.State -end; - -function TDADataTable.GetEditing: boolean; -begin - result := State in [dsEdit, dsInsert] -end; - -function TDADataTable.GetPrepared: boolean; -begin - result := FALSE -end; - -procedure TDADataTable.SetPrepared(Value: boolean); -begin - -end; - -function TDADataTable.GetText: string; -begin - result := '' -end; - -procedure TDADataTable.SetText(const Value: string); -begin - -end; - -procedure TDADataTable.Notification(AComponent: TComponent; - Operation: TOperation); -var - i: Integer; -begin - inherited; - - if (Operation = opRemove) then begin - if (AComponent = fLocalSchema) then fLocalSchema := nil; - if (AComponent = fRemoteDataAdapter) then fRemoteDataAdapter := nil; - if (AComponent = fLocalDataStreamer) then fLocalDataStreamer := nil; - if AComponent is TDataSource then begin - for i := 0 to Fields.Count - 1 do begin - if Fields[i].LookupSource = AComponent then - Fields[i].LookupSource := nil; - end; - end; - - end; - -end; - -procedure TDADataTable.SetMasterSource(const Value: TDADataSource); -begin - fMasterLink.DataSource := Value; -end; - -procedure TDADataTable.SetMasterFields(const Value: string); -begin - fMasterLink.FieldNames := Value; -end; - -function TDADataTable.GetMasterRequestMappings: TStrings; -begin - result := fMasterRequestMappings; -end; - -procedure TDADataTable.SetMasterRequestMappings(const Value: TStrings); -begin - fMasterRequestMappings.Assign(Value); -end; - -function TDADataTable.GetDetailDataTables: TList; -var - i: integer; - ownerdt: TDADataTable; - dtdataset: IDADataTableDataset; - tmplist: TList; -begin - // This function only returns the linked datatables and removes duplicates - // from the GetDetailDataSets call. I assume the duplicates are because of - // the masterlink TDADatatables create. - - result := TList.Create; - tmplist := TList.Create; - - try - {$IFNDEF FPC} - Dataset.GetDetailDataSets(tmplist); - {$ENDIF} - for i := 0 to (tmplist.Count - 1) do begin - if not Supports(TDataset(tmplist[i]), IDADataTableDataset, dtdataset) then Continue; - ownerdt := dtdataset.GetDataTable; - - if (result.IndexOf(ownerdt) < 0) then result.Add(ownerdt); - end; - finally - tmplist.Free; - end; -end; - -function TDADataTable.GetDelta: IDADelta; -begin - if (fDelta = nil) then raise Exception.Create('Delta has not yet been initialized by the datatable'); - result := fDelta; -end; - -function TDADataTable.GetName: string; -begin - if (LogicalName = '') then - result := Name - else - result := LogicalName; -end; - -procedure TDADataTable.DoAfterCloseDataset; -begin - CallScript('AfterClose'); -end; - -procedure TDADataTable.DoAfterOpenDataset; -begin - CallScript('AfterOpen'); - - if Assigned(fAfterOpenIDataset) then fAfterOpenIDataset(Self, '', ROGetTickCount-fOpenTick); -end; - -procedure TDADataTable.DoBeforeCloseDataset; -begin - CallScript('BeforeClose'); -end; - -procedure TDADataTable.CloneSelectedRecord(Source: TDADataTable; DoPost: boolean = TRUE); -begin - CloneSelectedRecord(Source as IDADataset, DoPost); -end; - -procedure TDADataTable.CloneSelectedRecord(const Source: IDADataset; DoPost: boolean = TRUE); -var - i: integer; - destfld, - srcfld: TDAField; - lreadonly: boolean; -begin - Insert; - for i := 0 to (Source.FieldCount - 1) do begin - srcfld := Source.Fields[i]; - destfld := Fields.FindField(srcfld.Name); - lreadonly := destfld.ReadOnly; - destfld.ReadOnly := False; - try - if destfld <> nil then destfld.Value := srcfld.Value; - finally - destfld.ReadOnly := lreadonly; - end; - end; - if DoPost then Post; -end; - -procedure TDADataTable.FreeBookmark(Bookmark: TBookmark); -begin - Dataset.FreeBookmark(Bookmark); -end; - -function TDADataTable.GetBookmark: pointer; -begin - result := Dataset.GetBookmark; -end; - -procedure TDADataTable.GotoBookmark(Bookmark: TBookmark); -begin - Dataset.GotoBookmark(Bookmark); -end; - -function TDADataTable.GetRowRecIDValue: integer; -begin - result := fRecIDField.AsInteger -end; - -procedure TDADataTable.DisableEventHandlers; -begin - DetachEventHooks(Dataset); -end; - -procedure TDADataTable.EnableEventHandlers; -begin - AttachEventHooks(Dataset); -end; - -procedure TDADataTable.Refresh; -begin - fDataset.Refresh; -end; - -procedure TDADataTable.SetLocalDataStreamer(const Value: TDADataStreamer); -begin - fLocalDataStreamer := Value; - if (fLocalDataStreamer <> nil) then - fLocalDataStreamer.FreeNotification(Self); -end; - -procedure TDADataTable.SetLocalSchema(const Value: TDASchema); -begin - fLocalSchema := Value; - if (fLocalSchema <> nil) then begin - fLocalSchema.FreeNotification(Self); - - RemoteFetchEnabled := FALSE; - end; -end; - -function TDADataTable.DataReaderFirst: boolean; -begin - result := RecordCount > 0; - if result then First; -end; - -function TDADataTable.DataReaderNext: boolean; -begin - result := not EOF; - if result then Next; -end; - -function TDADataTable.GetAsBoolean(Index: integer): boolean; -begin - result := fFields[Index].AsBoolean; -end; - -function TDADataTable.GetAsBoolean(const FieldName: string): boolean; -begin - result := FieldByName(FieldName).AsBoolean; -end; - -function TDADataTable.GetAsCurrency(Index: integer): Currency; -begin - Result:= fFields[Index].AsCurrency; -end; - -function TDADataTable.GetAsCurrency(const FieldName: string): currency; -begin - result := FieldByName(FieldName).AsCurrency; -end; - -function TDADataTable.GetAsDateTime(const FieldName: string): TDateTime; -begin - result := FieldByName(FieldName).AsDateTime; -end; - -function TDADataTable.GetAsDateTime(Index: integer): TDateTime; -begin - result := fFields[Index].AsDateTime; -end; - -function TDADataTable.GetAsFloat(const FieldName: string): double; -begin - result := FieldByName(FieldName).AsFloat; -end; - -function TDADataTable.GetAsFloat(Index: integer): double; -begin - result := fFields[Index].AsFloat; -end; - -function TDADataTable.GetAsInteger(Index: integer): integer; -begin - result := fFields[Index].AsInteger; -end; - -function TDADataTable.GetAsInteger(const FieldName: string): integer; -begin - result := FieldByName(FieldName).AsInteger; -end; - -function TDADataTable.GetAsString(const FieldName: string): string; -begin - result := FieldByName(FieldName).AsString; -end; - -function TDADataTable.GetAsString(Index: integer): string; -begin - result := fFields[Index].AsString; -end; - -function TDADataTable.GetAsVariant(const FieldName: string): variant; -begin - result := FieldByName(FieldName).Value; -end; - -function TDADataTable.GetAsVariant(Index: integer): variant; -begin - result := fFields[Index].Value -end; - -function TDADataTable.GetFieldIndexes(const aName: string): integer; -begin - result := fFields.FindItem(aName).Index -end; - -function TDADataTable.GetFieldNames(Index: integer): string; -begin - result := fFields[Index].Name -end; - -procedure TDADataTable.SetBusinessRulesID(const Value: string); -var - bizclass: TDADataTableRulesClass; -begin - if (Value = fBusinessRulesID) then Exit; - - if Assigned(fBusinessRules) then begin - fBusinessRules.Detach(Self); - FreeAndNIL(fBusinessRules); - end; - - fBusinessRulesID := Trim(Value); - - if (fBusinessRulesID <> '') and not (csDesigning in ComponentState) then begin - Check(not FindDataTableRules(Value, bizclass), 'Invalid BusinessRulesID "%s"', [Value]); - - fBusinessRules := bizclass.Create(Self); - fBusinessRules.Attach(Self); - end; -end; - -function TDADataTable.QueryInterface(const IID: TGUID; out Obj): HResult; -begin - result := inherited QueryInterface(IID, Obj); - - if (result <> S_OK) and Assigned(fBusinessRules) then begin - // Users might introduce specific interfaces at the business rule level - // This allows to type cast the data table to any additional business oriented interface - // they decide to create. - result := fBusinessRules.QueryInterface(IID, Obj); - end; -end; - -function TDADataTable.GetHasDelta: boolean; -begin - result := Assigned(fDelta) and (fDelta.Count > 0); -end; - -function TDADataTable.GetHasDeltaRecursive: boolean; -var - lDetails: TList; - lTable: TDADataTable; - i: integer; -begin - result := Assigned(fDelta) and (fDelta.Count > 0); - if not result then begin - lDetails := nil; - if (moCascadeApplyUpdates in fMasterOptions) then try - lDetails := GetDetailDataTables; - for i := 0 to (lDetails.Count-1) do begin - lTable := TDADataTable(lDetails[i]); - if lTable.HasDeltaRecursive then begin - result := true; - exit; - end; - end; - finally - lDetails.Free; - end; - end; -end; - -function TDADataTable.GetMasterDataTable: TDADataTable; -var lDatatableDataset : IDADataTableDataset; -begin - if Supports(fMasterLink.DataSet, IDADataTableDataset, lDatatableDataset) - then result := lDatatableDataset.GetDataTable - else result := NIL; -end; - -function TDADataTable.GetRecNo: integer; -begin - result := fDataset.RecNo -end; - -procedure TDADataTable.SetRecNo(const Value: integer); -begin - fDataset.RecNo := Value -end; - -function TDADataTable.GetFieldsProperty: TDAFieldCollection; -begin - result := GetFields; -end; - -function TDADataTable.GetActiveProperty: boolean; -begin - result := GetActive(); -end; - -procedure TDADataTable.SetActiveProperty(const Value: boolean); -begin - SetActive(Value); -end; - -function TDADataTable.GetParamsProperty: TDAParamCollection; -begin - result := GetParams(); -end; - -{$IFNDEF LINUX} -function TDADataTable.InterfaceSupportsErrorInfo(const iid: TGUID): HResult; -begin - if GetInterfaceEntry(iid) <> nil then - Result := S_OK - else - Result := S_FALSE; -end; - -function TDADataTable.SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; -begin - Result := uDAEngine.DAHandleSafeCallException(self,ExceptObject, ExceptAddr); -end; -{$ENDIF} - -procedure TDADataTable.CancelUpdates(IncludeDetails: boolean); -var list : TList; - i, orignextinc : integer; - wasfiltered, - remotefetch : boolean; - lOldMasterFields: string; -begin - if Editing then Cancel; - if not LogChanges then Exit; - - DisableControls; - wasfiltered := Filtered; - Filtered := FALSE; - try - // Truns off the remote fetching for this datatable and its details - remotefetch := RemoteFetchEnabled; - RemoteFetchEnabled := FALSE; - if IncludeDetails then list := GetDetailDataTables else list := TList.Create; - - // Disable the log of changes (we're about to make a bunch!) - LogChanges := FALSE; - - // Saves the current recinc (we'll change this during the restore) - orignextinc := CurrRecId; - try - lOldMasterFields := MasterFields; - MasterFields := ''; - try - // Reverts the records to the original state - for i := 0 to (Delta.Count-1) do - InternalCancelUpdateChange(Delta[i]); - finally - MasterFields := lOldMasterFields; - end; - - // Cancels the updates for the details - for i := 0 to list.Count-1 do begin - TDADataTable(list[i]).CancelUpdates(TRUE); - end; - - // Erases the delta - Delta.Clear; - - finally - fHasReducedDelta:=False; - list.Free; - CurrRecId := orignextinc; - LogChanges := TRUE; - RemoteFetchEnabled := remotefetch; - end; - finally - Filtered := wasfiltered; - EnableControls; - end; -end; - -procedure TDADataTable.DoBeforeOpenDataset; -begin - CallScript('BeforeOpen'); - - fOpenTick := ROGetTickCount; - if Assigned(fBeforeOpenIDataset) then fBeforeOpenIDataset(Self); -end; - -function TDADataTable.Lookup(const KeyFields: string; - const KeyValues: Variant; const ResultFields: string): Variant; -begin - result := fDataset.Lookup(KeyFields, KeyValues, ResultFields); -end; - -function TDADataTable.GetIsEmpty: boolean; -begin - result := fDataset.IsEmpty; -end; - -function TDADataTable.GetMasterParamsMappings: TStrings; -begin - result := fMasterParamsMappings -end; - -procedure TDADataTable.SetMasterParamsMappings(const Value: TStrings); -begin - fMasterParamsMappings.Assign(Value); -end; - -function TDADataTable.GetLogicalName: string; -begin - result := fLogicalName; -end; - -function TDADataTable.GetReadOnly: boolean; -begin - result := FALSE; -end; - -procedure TDADataTable.SetReadOnly(const Value: boolean); -begin - // By default this property cannot be set. Raising exceptions creates problems - // at design time and it's useless -end; - -procedure TDADataTable.SetScriptCode(const Value: TStrings); -begin - fScriptCode.Assign(Value); -end; - -procedure TDADataTable.CallScript(const aEvent: string); -begin - if Assigned(ScriptingProvider) and (ScriptCode.Count > 0) then begin - (ScriptingProvider as IDADataTableScriptingProvider).RunDataTableScript(self, ScriptCode.Text, aEvent, rslPascalScript); - end; -end; - -function TDADataTable.FindField(const aName: string): TDAField; -begin - result := fFields.FindField(aName); -end; - -procedure TDADataTable.AddRecord(const FieldNames: array of string; - const FieldValues: array of Variant); -var i : integer; -begin - Insert; - for i := 0 to Length(FieldNames)-1 do - FieldByName(FieldNames[i]).Value := FieldValues[i]; - Post; -end; - -procedure TDADataTable.SetLogicalName(aName: string); -begin - fLogicalName := aName; -end; - -function TDADataTable.GetDeltaInitialized: boolean; -begin - result := fDelta<>NIL -end; - -procedure TDADataTable.NotifyFieldsClear; -var - i, lLockCount: integer; -begin - // This method patches VCL issue with notification - // of datasources when clearing fields and controls is disabled - lLockCount := 0; - while DataSet.ControlsDisabled do begin - inc(lLockCount); - DataSet.EnableControls; - end; - TDataSetHack(DataSet).DataEvent(deFieldListChange, 0); - for i := 0 to lLockCount - 1 do begin - DataSet.DisableControls; - end; -end; - -function TDADataTable.GetOnAfterOpen: TDAAfterOpenDatasetEvent; -begin - result := fAfterOpenIDataset; -end; - -function TDADataTable.GetOnBeforeOpen: TDABeforeOpenDatasetEvent; -begin - result := fBeforeOpenIDataset; -end; - -procedure TDADataTable.SetOnAfterOpen( - const Value: TDAAfterOpenDatasetEvent); -begin - fAfterOpenIDataset := Value; -end; - -procedure TDADataTable.SetOnBeforeOpen( - const Value: TDABeforeOpenDatasetEvent); -begin - fBeforeOpenIDataset := Value; -end; - -function TDADataTable.GetOnAfterExecute: TDAAfterExecuteCommandEvent; -begin - NotSupported(); -end; - -function TDADataTable.GetOnBeforeExecute: TDABeforeExecuteCommandEvent; -begin - NotSupported(); -end; - -procedure TDADataTable.SetOnAfterExecute( - const Value: TDAAfterExecuteCommandEvent); -begin - NotSupported(); -end; - -procedure TDADataTable.SetOnBeforeExecute( - const Value: TDABeforeExecuteCommandEvent); -begin - NotSupported(); -end; - -function TDADataTable.GetOnExecuteError: TDAExecuteCommandErrorEvent; -begin - NotSupported(); -end; - -function TDADataTable.GetOnOpenError: TDAOpenDatasetErrorEvent; -begin - NotSupported(); -end; - -procedure TDADataTable.SetOnExecuteError( - const Value: TDAExecuteCommandErrorEvent); -begin - NotSupported(); -end; - -procedure TDADataTable.SetOnOpenError( - const Value: TDAOpenDatasetErrorEvent); -begin - NotSupported(); -end; - -function TDADataTable.GetCurrRecId: integer; -begin - result := fCurrRecId; -end; - -procedure TDADataTable.SetCurrRecId(const Value: integer); -begin - fCurrRecId := Value; -end; - -function TDADataTable.GetAutoIncs: TAutoIncArray; -begin - result := fAutoIncs; -end; - -procedure TDADataTable.SetAutoIncs(const Value: TAutoIncArray); -begin - fAutoIncs := Value; -end; - -function TDADataTable.CreateAutoIncArray: TAutoIncArray; -var i: integer; -begin - SetLength(result, Fields.Count); - for i := 0 to Fields.Count-1 do result[i] := -1; -end; - -function TDADataTable.GetCurrentRecIdValue: integer; -begin - result := fCurrRecId; -end; - -procedure TDADataTable.SetCurrentRecIdValue(Value: integer); -begin - fCurrRecId := Value; -end; - -procedure TDADataTable.InternalAfterFieldUpdate(Sender: TDACustomField); -begin - if assigned(fAfterFieldChange) and (Sender is TDAField) then - fAfterFieldChange(self, TDAField(Sender)); -end; - -procedure TDADataTable.InternalBeforeFieldUpdate(Sender: TDACustomField); -begin - if assigned(fBeforeFieldChange) and (Sender is TDAField) then - fBeforeFieldChange(self, TDAField(Sender)); -end; - -procedure TDADataTable.InternalSetFetching(aFetching: boolean); -begin - fFetching := aFetching; -end; - -procedure TDADataTable.SetCustomAttributes(const Value: TStrings); -begin - fCustomAttributes.Assign(Value); -end; - -function TDADataTable.Local_ApplyUpdates(RefetchAll: boolean): boolean; - - function UnpackDeltas(var lStruct: TDADeltaStruct): TDABusinessProcessor; - var - j: integer; - lBizProc: TDABusinessProcessor; - lDetails: TDADatasetRelationshipList; - lFound: boolean; - begin - result := nil; - lStruct := nil; - // Reads the deltas. - lFound := false; - { Tries to locate a user-defined business processor } - if LocalSchema.Owner <> nil then - for j := 0 to (LocalSchema.Owner.ComponentCount - 1) do begin - if (LocalSchema.Owner.Components[j] is TDABusinessProcessor) then begin - lBizProc := TDABusinessProcessor(LocalSchema.Owner.Components[j]); - if SameText(lBizProc.ReferencedDataset, Self.LogicalName) then begin - lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); - lFound := true; - Break; - end; - end; - end; - { Either creates one} - if not lFound then begin - lBizProc := TDABusinessProcessor.Create(nil); - lBizProc.ReferencedDataset := Self.LogicalName; - lBizProc.Schema := LocalSchema; - Result := lBizProc; - lStruct := TDADeltaStruct.Create(Self.Delta, lBizProc); - end; - - { Sets the master/detail relationships } - if (LocalSchema.RelationShips.Count > 0) then begin - lDetails := TDADatasetRelationshipList.Create; - try - LocalSchema.RelationShips.GetDetails(lStruct.BusinessProcessor.ReferencedDataset, lDetails); - if (lDetails.Count <> 0) then begin - { Prepares an array with the references to the detail deltas that will be used later on to adjust - autoincs, etc. } - for j := 0 to lDetails.Count - 1 do begin - if lDetails[j].DetailDatasetName = LogicalName then begin - lStruct.DetailDeltas.Add(lStruct.Delta); - lStruct.RelationShips.Add(lDetails[j]); - end; - end; - end; - finally - lDetails.Free; - end; - end; - end; - -var - FLocalConnection: IDAConnection; - lProcessedDeltas: TStringList; - lStruct: TDADeltaStruct; - lBizProc: TDABusinessProcessor; - i, j: integer; -begin - Result:=False; - CheckProperties; - FLocalConnection := LocalSchema.ConnectionManager.NewConnection(LocalConnection); - if (Delta = nil) or (Delta.Count = 0) then Exit; - lBizProc := UnpackDeltas(lStruct); - try - {if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then} FLocalConnection.BeginTransaction; - try - if (LocalSchema.UpdateRules.Count = 0) then begin - lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); - end - else begin - lProcessedDeltas := TStringList.Create; - try - - for i := 0 to (LocalSchema.UpdateRules.Count - 1) do begin - // Processes them in the order defined in the schema - if LocalSchema.UpdateRules[i].DatasetName = LogicalName then begin - // Adds the dataset name to the list of processed deltas. Those that don't have update rules will be processed later - lProcessedDeltas.Add(LogicalName); - - // Processes the delta - lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, LocalSchema.UpdateRules[i].ChangeTypes); - - if (ctInsert in LocalSchema.UpdateRules[i].ChangeTypes) then begin - for j := 0 to (lStruct.DetailDeltas.Count - 1) do - lStruct.BusinessProcessor.SynchronizeAutoIncs(lStruct.Delta, lStruct.DetailDeltas[j], lStruct.RelationShips[j]); - end; - end; - end; - // Processes the deltas for which update rules were not defined - if lProcessedDeltas.IndexOf(LogicalName) = -1 then - lStruct.BusinessProcessor.ProcessDelta(FLocalConnection, lStruct.Delta, AllChanges); - finally - lProcessedDeltas.Free; - end; - end; - if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataCommitTransaction)} then FLocalConnection.CommitTransaction; - MergeDelta; - Result:=True; - except - on E: Exception do begin - if FLocalConnection.InTransaction {and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction)} then FLocalConnection.RollbackTransaction; - raise; - end; - end; - finally - if lStruct <> nil then lStruct.Free; - if lBizProc <> nil then lBizProc.Free; - end; - if RefetchAll and result then begin - if Active then Close; - Open; - end; -end; - -procedure TDADataTable.GetDetailTablesforAllinOneFetch(aRemote, aLocal:TList; aRecursive: boolean); -var - i: integer; - dt: TDADataTable; - dtList: TList; - scc: IDASimpleClonedCursorsSupport; -begin - if (moAllInOneFetch in fMasterOptions) then begin - dtList:=GetDetailDataTables; - try - for i := 0 to dtList.Count-1 do begin - dt := TDADataTable(dtList[i]); - if (dtIncludeInAllInOneFetch in dt.DetailOptions) then begin - if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin - dt:= TDADatatable(scc.GetSimpleCloneSource); - end; - - if self.RemoteFetchEnabled and dt.RemoteFetchEnabled and (dt.RemoteDataAdapter = Self.RemoteDataAdapter) then begin - if aRemote.IndexOf(dt) = -1 then aRemote.Add(dt); - end - else begin - if aLocal.IndexOf(dt) = -1 then aLocal.Add(dt); - end; - if aRecursive then dt.GetDetailTablesforAllinOneFetch(aRemote,aLocal, aRecursive); - end; - end; - finally - dtList.Free; - end; - end -end; - -function TDADataTable.GetDetailTablesforApplyUpdate(aRecursive: boolean): TList; -var - i: integer; - dt: TDADataTable; - dtList, dtlist1: TList; - scc: IDASimpleClonedCursorsSupport; -begin - Result:= TList.Create; - if (moCascadeApplyUpdates in fMasterOptions) then begin - dtList:=GetDetailDataTables; - try - for i := 0 to dtList.Count-1 do begin - dt := TDADataTable(dtList[i]); - if dt.Active and (dtCascadeApplyUpdates in dt.DetailOptions) then begin - if (dt.QueryInterface(IDASimpleClonedCursorsSupport, scc) = S_OK) and (scc.GetSimpleCloneSource <> nil) then begin - dt:= TDADatatable(scc.GetSimpleCloneSource); - end; - if Result.IndexOf(dt) = -1 then Result.Add(dt); - if aRecursive then begin - dtlist1:= dt.GetDetailTablesforApplyUpdate(aRecursive); - try - Result.Assign(dtlist1,laOr); - finally - dtlist1.Free; - end; - end; - end; - end; - finally - dtList.Free; - end; - end -end; - -procedure TDADataTable.CancelUpdateChange(Change: TDADeltaChange;IncludeDetails : boolean = TRUE); -var - orignextinc : integer; - wasfiltered, - remotefetch : boolean; - lOldMasterFields: string; - details: TList; - i,j,k: integer; - detailChange: TDADeltaChange; - ChangePKValueArray: array of Variant; - lNeedDeleteChange: boolean; - keyvalue: variant; -begin - if Editing then Cancel; - if not LogChanges then Exit; - - DisableControls; - wasfiltered := Filtered; - Filtered := FALSE; - try - // Truns off the remote fetching for this datatable and its details - remotefetch := RemoteFetchEnabled; - RemoteFetchEnabled := FALSE; - - // Disable the log of changes (we're about to make a bunch!) - LogChanges := FALSE; - // Saves the current recinc (we'll change this during the restore) - orignextinc := CurrRecId; - try - lOldMasterFields := MasterFields; - MasterFields := ''; - try - // Reverts the records to the original state - - if IncludeDetails then begin - SetLength(ChangePKValueArray,Change.Delta.KeyFieldCount); - For i:=1 to Change.Delta.KeyFieldCount do begin - if Change.ChangeType = ctInsert then - keyvalue:=Change.NewValueByName[Change.Delta.KeyFieldNames[i-1]] - else - keyvalue:=Change.OldValueByName[Change.Delta.KeyFieldNames[i-1]]; - ChangePKValueArray[0]:=keyvalue; - end; - details:=GetDetailTablesforApplyUpdate; - try - for i:=0 to details.Count-1 do begin - for j:=0 to TDADataTable(details[i]).Delta.Count-1 do begin - detailChange :=TDADataTable(details[i]).Delta.Changes[j]; - if detailChange.Status <> csResolved then begin - lNeedDeleteChange:= True; - for k:=0 to Change.Delta.KeyFieldCount-1 do begin - if detailChange.ChangeType = ctInsert then - keyvalue:=detailChange.NewValueByName[Change.Delta.KeyFieldNames[k]] - else - keyvalue:=detailChange.oldValueByName[Change.Delta.KeyFieldNames[k]]; - if not VarSameValue(keyValue, ChangePKValueArray[k]) then begin - lNeedDeleteChange:= False; - Break; - end; - end; - if lNeedDeleteChange then TDADataTable(details[i]).CancelUpdateChange(detailChange,IncludeDetails); - end; - end; - end; - finally - details.Free; - end; - end; - InternalCancelUpdateChange(change); - Delta.RemoveChange(change); - finally - if Delta.Count = 0 then fHasReducedDelta:=False; - MasterFields := lOldMasterFields; - end; - finally - CurrRecId := orignextinc; - LogChanges := TRUE; - RemoteFetchEnabled := remotefetch; - end; - finally - Filtered := wasfiltered; - EnableControls; - end; -end; - -procedure TDADataTable.InternalCancelUpdateChange(Change: TDADeltaChange); -var - i, x : integer; - fldname : string; - fldvalue : Variant; - details: TList; - RecID:string; -begin - case Change.ChangeType of - ctDelete : begin - CurrRecId := change.RecID; // We want the same autoinc regenerated - RecID:=IntToStr(Change.RecID); - Insert; - for x := 0 to (Delta.LoggedFieldCount-1) do begin - fldname := Delta.LoggedFieldNames[x]; - fldvalue := change.OldValues[x]; - VariantToFieldValue(fldValue, FieldByName(fldname)); - end; - Post; - - details := GetDetailDataTables; - try - for x := 0 to (details.Count-1) do begin - i:=TDADataTable(details[x]).fFetchedMasters.IndexOf(RecID); - if i<>-1 then TDADataTable(details[x]).fFetchedMasters.Delete(i); - end; - finally - details.Free; - end; - - - end; - - else begin - if not Locate(RecIDFieldName, change.RecID, []) then RaiseError('Couldn''t find record #'+FormatRecIDString(change.RecID)); - - if (change.ChangeType=ctInsert) then Delete - else begin - Edit; - for x := 0 to (Delta.LoggedFieldCount-1) do begin - fldname := Delta.LoggedFieldNames[x]; - fldvalue := change.OldValues[x]; - if fHasReducedDelta and ROVariantsEqual(fldvalue, change.NewValues[x]) then Continue; - VariantToFieldValue(fldValue, FieldByName(fldname)); - end; - Post; - end; - end; - end; -end; - -procedure TDADataTable.CheckProperties(ACheckRemoteFetching: Boolean=False); -begin - if RemoteFetchEnabled or ACheckRemoteFetching then begin - Check(RemoteDataAdapter = nil, Name+'.RemoteDataAdapter must be assigned.'); - end - else begin - Check(LocalDataStreamer = nil , Name+'.LocalDataStreamer must be assigned.'); - Check(LocalSchema = nil, Name+'.LocalSchema must be assigned.'); - LocalSchema.CheckProperties; - end; -end; - - -procedure TDADataTable.ExpessionEvaluatorGetValue( - Sender: TDAExpressionEvaluator; const aIdentifier: string; - out aValue: Variant); -begin - aValue := Fields.FieldByName(aIdentifier).Value; -end; - -function TDADataTable.GetDynamicWhere: TDAWhereBuilder; -begin - Result := fDynamicWhere; -end; - -procedure TDADataTable.SetDynamicWhere(const Value: TDAWhereBuilder); -begin - if Value <> nil then - FDynamicWhere.Xml := Value.Xml - else - FDynamicWhere.Clear; -end; - -{ TDADataSource } - -constructor TDADataSource.Create(aOwner: TComponent); -begin - inherited; -end; - -destructor TDADataSource.Destroy; -begin - inherited; -end; - -function TDADataSource.GetActive: boolean; -begin - result := (fDataTable <> nil) and fDataTable.Active -end; - -function TDADataSource.GetDataset: TDataset; -begin - result := nil; -end; - -function TDADataSource.GetOpening: boolean; -begin - result := (fDataTable <> nil) and fDataTable.Opening -end; - -procedure TDADataSource.Notification(AComponent: TComponent; - Operation: TOperation); -begin - inherited; - - if (AComponent = fDataTable) then begin - fDataTable := nil; - inherited Dataset := nil; - end; -end; - -procedure TDADataSource.SetDataset(const Value: TDataset); -begin - -end; - -procedure TDADataSource.SetDataTable(const Value: TDADataTable); -begin - fDataTable := Value; - if (fDataTable <> nil) then begin - fDataTable.FreeNotification(Self); - inherited Dataset := fDataTable.Dataset; - end - else - inherited Dataset := nil; -end; - -{ TDABusinessRules } - -constructor TDABusinessRules.Create; -begin - inherited; -end; - -destructor TDABusinessRules.Destroy; -begin - inherited; -end; - -function TDABusinessRules._AddRef: Integer; -begin - result := -1; -end; - -function TDABusinessRules._Release: Integer; -begin - result := -1; -end; - -{ TDADataTableRules } - -constructor TDADataTableRules.Create(aDataTable: TDADataTable); -begin - inherited Create; - - Check(not Assigned(aDatatable), 'DataTable cannot be NIL'); - - fDetails := TStringList.Create; - fDetails.Sorted := TRUE; - fDetails.Duplicates := dupError; - - fDataTable := aDataTable; -end; - -destructor TDADataTableRules.Destroy; -begin - fDetails.Free; - - inherited; -end; - -procedure TDADataTableRules.AfterCancel(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterClose(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterDelete(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterEdit(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterInsert(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterOpen(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterPost(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterRefresh(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.AfterScroll(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeCancel(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeClose(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeDelete(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeEdit(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeInsert(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeOpen(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforePost(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeRefresh(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.BeforeScroll(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnCalcFields(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnNewRecord(Sender: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnDeleteError(DataTable: TDADataTable; - Error: EDatabaseError; var Action: TDataAction); -begin - -end; - -procedure TDADataTableRules.OnEditError(DataTable: TDADataTable; - Error: EDatabaseError; var Action: TDataAction); -begin - -end; - -procedure TDADataTableRules.Attach(aDataTable: TDADataTable); -begin - RefreshDetails; -end; - -procedure TDADataTableRules.Detach(aDataTable: TDADataTable); -begin - fDetails.Clear; -end; - -procedure TDADataTableRules.Append; -begin - fDataTable.Append(); -end; - -procedure TDADataTableRules.Cancel; -begin - fDataTable.Cancel(); -end; - -procedure TDADataTableRules.Delete; -begin - fDataTable.Delete(); -end; - -procedure TDADataTableRules.Edit; -begin - fDataTable.Edit(); -end; - -procedure TDADataTableRules.First; -begin - fDataTable.First(); -end; - -procedure TDADataTableRules.Insert; -begin - fDataTable.Insert(); -end; - -procedure TDADataTableRules.Last; -begin - fDataTable.Last(); -end; - -procedure TDADataTableRules.Next; -begin - fDataTable.Next(); -end; - -procedure TDADataTableRules.Post; -begin - fDataTable.Post(); -end; - -procedure TDADataTableRules.Prior; -begin - fDataTable.Prior(); -end; - -function TDADataTableRules.GetBOF: Boolean; -begin - result := fDataTable.BOF; -end; - -function TDADataTableRules.GetEOF: Boolean; -begin - result := fDataTable.EOF; -end; - -function TDADataTableRules.GetRecordCount: Integer; -begin - result := fDataTable.RecordCount; -end; - -function TDADataTableRules.Locate(const aKeyFields: String; const aKeyValues: Variant; aOptions: TLocateOptions = []): boolean; -begin - result := fDataTable.Locate(aKeyFields, aKeyValues, aOptions); -end; - -function TDADataTableRules.GetDetails(Index: integer): TDADataTable; -begin - result := TDADataTable(fDetails[Index]) -end; - -function TDADataTableRules.GetDetailsCount: integer; -begin - result := fDetails.Count -end; - -function TDADataTableRules.FindDetail( - const aLogicalName: string): TDADataTable; -var i : integer; -begin - result := NIL; - i := fDetails.IndexOf(aLogicalName); - - if (i>=0) then result := TDADataTable(fDetails.Objects[i]); -end; - -function TDADataTableRules.DetailByName( - const aLogicalName: string): TDADataTable; -begin - result := FindDetail(aLogicalName); - if (result=NIL) - then raise Exception.CreateFmt('Cannot find the detail DataTable %s ', [aLogicalName]); -end; - -procedure TDADataTableRules.RefreshDetails; -var lList : TList; - i : integer; - lLogicalName : string; -begin - lList := DataTable.GetDetailDataTables; - fDetails.Clear; - try - for i := 0 to (lList.Count-1) do begin - lLogicalName := TDADataTable(lList[i]).LogicalName; - - if (lLogicalName<>'') - then fDetails.AddObject(lLogicalName, lList[i]); - end; - finally - lList.Free; - end; -end; - -function TDADataTableRules.GetDetailOptions: TDADetailOptions; -begin - result := DataTable.DetailOptions -end; - -function TDADataTableRules.GetMasterOptions: TDAMasterOptions; -begin - result := DataTable.MasterOptions -end; - -procedure TDADataTableRules.SetDetailOptions(Value: TDADetailOptions); -begin - DataTable.DetailOptions := Value -end; - -procedure TDADataTableRules.SetMasterOptions(Value: TDAMasterOptions); -begin - DataTable.MasterOptions := Value -end; - -function TDADataTableRules.GetRecNo: integer; -begin - result := fDataTable.RecNo -end; - -procedure TDADataTableRules.SetRecNo(Value: integer); -begin - fDataTable.RecNo := Value -end; - -procedure TDADataTableRules.OnFilterRecord(DataTable: TDADataTable; - var Accept: boolean); -begin - -end; - -procedure TDADataTableRules.OnPostError(DataTable: TDADataTable; - Error: EDatabaseError; var Action: TDataAction); -begin - -end; - -function TDADataTableRules.Lookup(const KeyFields: string; - const KeyValues: Variant; const ResultFields: string): Variant; -begin - result := fDataTable.Lookup(KeyFields, KeyValues, ResultFields); -end; - -function TDADataTableRules.GetIsEmpty: boolean; -begin - result := fDataTable.IsEmpty -end; - -function TDADataTableRules.GetState: TDatasetState; -begin - result := fDataTable.State -end; - -function TDADataTableRules.IsFieldNull( - const FieldIndexOrName: Variant): boolean; -var fld : TDAField; -begin - case VarType(FieldIndexOrName) of - varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); - else fld := DataTable.Fields[FieldIndexOrName]; - end; - - result := fld.IsNull; -end; - -procedure TDADataTableRules.ClearField(const FieldIndexOrName: Variant); -var fld : TDAField; -begin - case VarType(FieldIndexOrName) of - varString, varOleStr, varStrArg : fld := DataTable.FieldByName(VarToStr(FieldIndexOrName)); - else fld := DataTable.Fields[FieldIndexOrName]; - end; - - fld.Clear; -end; - -function TDADataTableRules.GetDataTable: TDADataTable; -begin - result := fDataTable; -end; - -procedure TDADataTableRules.ApplyRange; -begin - (fDataTable as IDARangeController).ApplyRange -end; - -procedure TDADataTableRules.CancelRange; -begin - (fDataTable as IDARangeController).CancelRange -end; - -procedure TDADataTableRules.EditRangeEnd; -begin - (fDataTable as IDARangeController).EditRangeEnd -end; - -procedure TDADataTableRules.EditRangeStart; -begin - (fDataTable as IDARangeController).EditRangeStart -end; - -procedure TDADataTableRules.SetRange(const StartValues, - EndValues: array of const); -begin - (fDataTable as IDARangeController).SetRange(StartValues, EndValues); -end; - -procedure TDADataTableRules.SetRangeEnd; -begin - (fDataTable as IDARangeController).SetRangeEnd -end; - -procedure TDADataTableRules.SetRangeStart; -begin - (fDataTable as IDARangeController).SetRangeStart -end; - -procedure TDADataTableRules.Close; -begin - fDataTable.Close; -end; - -procedure TDADataTableRules.Open; -begin - fDataTable.Open; -end; - -function TDADataTableRules.GetActive: boolean; -begin - result := fDataTable.Active; -end; - -procedure TDADataTableRules.SetActive(const Value: boolean); -begin - fDataTable.Active := Value; -end; - -procedure TDADataTableRules.OnAfterApplyUpdates(DataTable: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnAfterDataRequestCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnAfterDataUpdateCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnAfterMergeDelta(DataTable: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnAfterSchemaCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnAfterScriptCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnBeforeApplyUpdates(DataTable: TDADataTable; - const Delta: IDADelta); -begin - -end; - -procedure TDADataTableRules.OnBeforeDataRequestCall( - DataTable: TDADataTable; Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnBeforeDataUpdateCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnBeforeMergeDelta(DataTable: TDADataTable); -begin - -end; - -procedure TDADataTableRules.OnBeforeSchemaCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnBeforeScriptCall(DataTable: TDADataTable; - Request: TDARemoteRequest); -begin - -end; - -procedure TDADataTableRules.OnReceiveDataStream(DataTable: TDADataTable; - Stream: TStream); -begin - -end; - -{ TDAFieldRules } -constructor TDAFieldRules.Create(aField : TDAField; aDataTable : TDADataTable); -begin - inherited Create; - - fDataTable := aDataTable; - - fField := aField; - fField.OnValidate := OnValidate; - fField.OnChange := OnChange; - - Attach(fDataTable); -end; - -destructor TDAFieldRules.Destroy; -begin - Detach(fDataTable); - inherited; -end; - -procedure TDAFieldRules.Attach(aDataTable: TDADataTable); -begin - -end; - -procedure TDAFieldRules.Detach(aDataTable: TDADataTable); -begin - -end; - -procedure TDAFieldRules.OnChange(Sender: TDACustomField); -begin -end; - -procedure TDAFieldRules.OnValidate(Sender: TDACustomField); -begin -end; - -{ TDADataTableList } -constructor TDADataTableList.Create(aOwnerComponent: TComponent); -begin - inherited Create; - - ScanAndAdd(aOwnerComponent); -end; - -function TDADataTableList.Add(aDataTable: TDADataTable): integer; -begin - result := inherited Add(aDataTable); -end; - -function TDADataTableList.GetItems(Index: integer): TDADataTable; -begin - result := TDADataTable(inherited Items[Index]); -end; - -procedure TDADataTableList.Remove(aDataTable: TDADataTable); -begin - inherited Remove(aDataTable); -end; - - -function TDADataTableList.ScanAndAdd(aOwnerComponent: TComponent): integer; -var i : integer; -begin - result := 0; - with aOwnerComponent do begin - for i := 0 to (Count-1) do - if (Components[i] is TDADataTable) then begin - Add(TDADataTable(Components[i])); - Inc(result); - end; - end; -end; - -function TDADataTableList.GetPendingChangeCount: integer; -var i : integer; -begin - result := 0; - for i := 0 to (Count-1) do - if Items[i].Active and Items[i].LogChanges - then Inc(result, Items[i].Delta.Count); -end; - -{ TDABaseRemoteDataAdapter } - -function TDABaseRemoteDataAdapter.Get_GetDataCall: TDARemoteRequest; -begin - result := nil; -end; - -function TDABaseRemoteDataAdapter.Get_GetSchemaCall: TDARemoteRequest; -begin - result := nil; -end; - -function TDABaseRemoteDataAdapter.Get_GetScriptsCall: TDARemoteRequest; -begin - result := nil; -end; - -function TDABaseRemoteDataAdapter.Get_UpdateDataCall: TDARemoteRequest; -begin - result := nil; -end; - -initialization - RegisterExceptionClass(EDABizValidationException); - - _bizfields := TStringList.Create; - _bizfields.Sorted := TRUE; - - _bizdatatables := TStringList.Create; - _bizdatatables.Sorted := TRUE; - -finalization - UnregisterExceptionClass(EDABizValidationException); - _bizdatatables.Free; - _bizfields.Free; - -end. From f7a9cbb8b76caa689b3af6529d889afc0c6bc679 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 11:09:08 +0000 Subject: [PATCH 05/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@27 1c943782-d109-9647-9548-93b3ac332352 From 320cce3609c06c6edf87f764ffbbff1828b24e2d Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 11:09:48 +0000 Subject: [PATCH 06/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@28 1c943782-d109-9647-9548-93b3ac332352 From 289048178b68c598276116c95492733351194ed2 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 11:16:44 +0000 Subject: [PATCH 07/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@29 1c943782-d109-9647-9548-93b3ac332352 From e187e0dc9140eb68e5c0bf368538e1ae62b3e450 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 19:04:01 +0000 Subject: [PATCH 08/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@30 1c943782-d109-9647-9548-93b3ac332352 --- Build/Build.fbl5 | Bin 2621440 -> 2621440 bytes Build/Build.fbp5 | 47 +- Build/Build.fbv | 2 +- Source/Base/BaseD10.res | Bin 4748 -> 384 bytes Source/Servidor/AdminPV_Server.dproj | 699 +++++++++++++++++++++++++++ Source/Servidor/AdminPV_Server.drc | 88 ++-- Source/Servidor/AdminPV_Server.rc | 27 +- Source/Servidor/AdminPV_Server.res | Bin 23588 -> 22748 bytes 8 files changed, 763 insertions(+), 100 deletions(-) create mode 100644 Source/Servidor/AdminPV_Server.dproj diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 index dd58805fdeab2a06bd1ab29789e2cd5a94d5b18e..65f72f39877a995f78fca13bd71863c51c7c20dd 100644 GIT binary patch literal 2621440 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

Q`}qo_-`AGcFpQ9)5rQAtr* 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 U00v+H24DaNU_h;b>&3wT0V2f_ivR!s delta 106280 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

D4g6!&cQ=m3YF*N$Q`V?9CCs9D=%O6 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 literal 2621440 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

>hHux@~L2doERJpthS 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

ps9BdlB0;=c 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 z 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 - 0 + 8388736 @@ -285,7 +285,7 @@ 1000 False

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 x8y&fXDe;f^3X80 1252 12 - Release + Debug False @@ -451,7 +451,7 @@ source_path %project_path%\Resources\Iconos\Servidor.ico False True - True + False True False False @@ -461,16 +461,16 @@ source_path False False True - 3082 + 3081 1 0 - 2 + 0 False 0 %source_path%\Servidor\AdminPV_Server.dpr True - 5 + 0 rcBorland @@ -483,17 +483,7 @@ source_path [usPackages,usVersionInfo] False True - @@ -540,7 +530,7 @@ CompileDate=miércoles, 05 de septiembre de 2007 19:15 True %output_path%\Servidor False - vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;vclsmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclofficexp;cxlibraryvcld7;dxthemed7;cxtreelistvcld7;cxeditorsvcld7;cxdatad7;cxexteditorsvcld7;cxgridvcld7;cxpagecontrolvcld7;cxschedulervcld7;dxcomnd7;dxsbd7;dxbard7;dxbardbnavd7;dxbarextdbitemsd7;dxbarextitemsd7;dxdockingd7;dxlayoutcontrold7;dxnavbard7;dxpscored7;cxexportvcld7;cxintl5d7;cxintlprintsys3d7;cxintlschedulerd7;fsibx7;fs7;fqb70;frx7;frxado7;frxbde7;frxcs7;frxdb7;frxdbx7;frxe7;frxibx7;fsado7;fsbde7;fsdb7;cxverticalgridvcld7;easylistviewd7;remobjects_indy_d10;indyprotocols;indycore;indysystem;pascalscript_ro_d10;dataabstract_core_d10;dataabstract_scripting_d10;dataabstract_ide_d10 + False fa8 True @@ -639,8 +629,8 @@ CompileDate=miércoles, 05 de septiembre de 2007 19:15 True 0 1252 - 11 - Release + 12 + Debug False @@ -663,14 +653,14 @@ CompileDate=miércoles, 05 de septiembre de 2007 19:15 False 3082 - 1 + 2 0 0 False 0 %source_path%\Base\BaseD10.dpk True - 3 + 0 rcBorland @@ -680,12 +670,12 @@ CompileDate=miércoles, 05 de septiembre de 2007 19:15 False False False - [usVersionInfo] + [] False False False False False - True + False True True False @@ -727,7 +717,7 @@ Comments= False False True - %library_path% + %DELPHI2007DIR%\Lib;%BDSCOMMONDIR%\Dcp;%library_path% 0 True 0 @@ -2763,9 +2753,8 @@ Comments= - - - False + %project_path%\Lib + True False False library_path @@ -2805,7 +2794,7 @@ Comments= vtProject - %DELPHI2006% + %DELPHI2007% False False False diff --git a/Build/Build.fbv b/Build/Build.fbv index bd99b75..5057e92 100644 --- a/Build/Build.fbv +++ b/Build/Build.fbv @@ -1 +1 @@ - + diff --git a/Source/Base/BaseD10.res b/Source/Base/BaseD10.res index 45dc55f7e508c2aadceb4f8bfc5080153c1b52cf..01cbcba5c522d4341b374ed55ece934f71eafc4c 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&1)oO5XLJepe&2#;C*uNAUVh=d+&(4um?YIom`vX7lLeHS8qb+Kbagvr2mJd z=PWtqD9j$byGIXV`~0fj>YkZQVq!y0y&v_~^Hja{zSFds*@2|*L)2V*e%;UcUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1kx1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8r6~2;>lIU&LZsTwze(H0n{VM+hwDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BZ13A6`$Y1AeJY*L>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDUkC$M)E2{eEPhtM$kcYR7x1HqZ0DKmWm>*(=^pU6tOR?fGo!x;ppY z$M%CgweReSeQOV;zqhaD`H6jFr<(uCZKjH9stBj{KpbE+wb$e??T@wQsXf!`Q?2BA z&)$(uifIk@pULXfzOoDW%RDv?HJW^XAbvoADzBGhMMej=|U KhkN(`*!vewsZSLE diff --git a/Source/Servidor/AdminPV_Server.dproj b/Source/Servidor/AdminPV_Server.dproj new file mode 100644 index 0000000..0ec2541 --- /dev/null +++ b/Source/Servidor/AdminPV_Server.dproj @@ -0,0 +1,699 @@ + + + {86364157-b301-43dd-bfad-250a58064559} + AdminPV_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\AdminPV_Server.exe + + + 7.0 + False + False + True + 0 + 3 + ..\..\Output\Debug\Servidor + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + EUREKALOG;EUREKALOG_VER6;RELEASE + + + 7.0 + True + 3 + ..\..\Output\Debug\Servidor + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + EUREKALOG;EUREKALOG_VER6;DEBUG + + + Delphi.Personality + VCLApplication + + + False + True + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 2 + 5 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 1.2.5.0 + + + + + AdminPV_Server + 1.2.5.0 + + miércoles, 05 de septiembre de 2007 19:15 + + + AdminPV_Server.dpr + + + + + + + MainSource + + + + + +
srvControles
+
+ +
srvDevoluciones
+
+ + + + + +
srvParametros
+
+ +
srvRecepciones
+
+ + + + +
srvReferenciaGenerica
+
+ + + +
srvStock
+
+ +
srvTraspasos
+
+ + + +
srvVentasEnProceso
+
+ + + +
srvVentasTerminadas
+
+ +
frConexionBD
+
+ +
frConfFicherosEDI
+
+ +
frConfGeneral
+
+ +
fConfiguracion
+
+ +
FrameConfiguracion
+
+ + + + + + + + +
ServerForm
+
+ + + + + +
dmEDIInventary
+
+ + + + +
dmEDISales
+
+ +
srvLogin
+
+ +
srvTransfereciaFicheros
+
+ +
srvInformes
+
+ +
fAcercaDe
+
+ +
dmServer
+
+ + + +
+ +
+ + diff --git a/Source/Servidor/AdminPV_Server.drc b/Source/Servidor/AdminPV_Server.drc index 7d1135a..81e21e7 100644 --- a/Source/Servidor/AdminPV_Server.drc +++ b/Source/Servidor/AdminPV_Server.drc @@ -2516,64 +2516,64 @@ BEGIN SysConst_SEndOfFile, "Read beyond end of file" END -/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\controls.res */ /* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ /* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ -/* T:\Componentes\FastReport 3\LibD10\frxProgress.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxCtrls.RES */ -/* T:\Componentes\FastReport 3\LibD10\frxDock.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.RES */ -/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.DFM */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\buttons.res */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\extdlgs.res */ +/* T:\Componentes\FastReport 3\LibD10\frxProgress.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxCtrls.res */ +/* T:\Componentes\FastReport 3\LibD10\frxDock.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.res */ +/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.dfm */ /* T:\Componentes\FastReport 3\LibD10\frxPassw.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.DFM */ -/* T:\Componentes\FastReport 3\LibD10\frxClass.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.dfm */ +/* T:\Componentes\FastReport 3\LibD10\frxClass.res */ /* T:\Componentes\jvcl\resources\JvConsts.res */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\WindowsXP.res */ /* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ /* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */ /* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */ /* T:\Componentes\jvcl\lib\d10\JvLogForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uDataModuleServer.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ -/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\uDataModuleServer.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\filectrl.res */ /* T:\Componentes\jvcl\resources\JvToolEdit.res */ -/* T:\Componentes\jvcl\resources\JvSpin.Res */ +/* T:\Componentes\jvcl\resources\JvSpin.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\dxOffice11.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxLookAndFeelPainters.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxControls.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxEdit.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxShellBrowser.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConexionBD.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfGeneral.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Configuracion\uConfiguracion.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Sales_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConexionBD.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfGeneral.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfiguracion.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Sales_Impl.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxGrid.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterControlDialog.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterDialog.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Log_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\uAcercaDe.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\fServerForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\EDI_Inventary_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\srvInformes_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\RODLFile.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Servidor\AdminPV_Server.drf */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Log_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\uAcercaDe.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\fServerForm.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Inventary_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\srvInformes_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\AdminPV_Server.res */ +/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\RODLFILE.res */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf89.tmp */ diff --git a/Source/Servidor/AdminPV_Server.rc b/Source/Servidor/AdminPV_Server.rc index 66b42e9..932a34a 100644 --- a/Source/Servidor/AdminPV_Server.rc +++ b/Source/Servidor/AdminPV_Server.rc @@ -1,26 +1 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Servidor.ico" -1 VERSIONINFO -FILEVERSION 1,2,5,0 -PRODUCTVERSION 1,2,5,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "1.2.5.0\0" - VALUE "ProductName", "AdminPV_Server\0" - VALUE "ProductVersion", "1.2.5.0\0" - VALUE "CompileDate", "jueves, 06 de septiembre de 2007 12:09\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END +MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Resources\Iconos\Servidor.ico" diff --git a/Source/Servidor/AdminPV_Server.res b/Source/Servidor/AdminPV_Server.res index 77f5947782c2fa03a538f3ee3a2ad2ed2fb7384e..9be40d33b07427b50afe27d8933bf530ea5a76a0 100644 GIT binary patch delta 9 QcmZ3ogYnKr#tnBO02oyS&;S4c delta 856 zcmZ9K&n`nz5XQe-m54}KSXnh9A|i50MOYAN35g&ojh&QMHR@{G`nT%VgLnXTHr~Y2 z#>yMuH*;Mr=Vs2Id%l_Z=9}~S6g)f!kFSTFsXi$q>Fa9*3)o4a28VpZG}V`7E~=m- z=5_6}+tRLfIBzj;u($D&{`iyvr7)@gcU|>cDa{&3|M|gkpHhdVpthQ-DN>biHPuxi zbfi;Va$8QBL#Q0KhGijPlr}X=z#NzhHB(3R*{G0`sW07QuzE7WXtokJxVF?RPShG}bw6Lswr>ty-0 zqG2fP0XE65sJ`9H5!uVYEyx~k;0W=o?rWdTKkKUe_5ZKUe`UtJ=v;@C7tX~bO8B?E zDM@eR7mh^wc=q>#Xjo5s) From 4c3c04bbcc4f2911102d534dba72277dbac6e635 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 19:07:41 +0000 Subject: [PATCH 09/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@31 1c943782-d109-9647-9548-93b3ac332352 From acea1b6c0d8ea5a9b9107b708707c2323894e446 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 20:42:44 +0000 Subject: [PATCH 10/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@32 1c943782-d109-9647-9548-93b3ac332352 From 64c04d6975124081b26e7ab9444c842ac9ea9ca4 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 20:45:21 +0000 Subject: [PATCH 11/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@33 1c943782-d109-9647-9548-93b3ac332352 --- Build/Build.fbl5 | Bin 2621440 -> 2621440 bytes Build/Build.fbp5 | 27 +++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 index 65f72f39877a995f78fca13bd71863c51c7c20dd..e133f82aa77691e2279f3ef4f9470bc5f0c78d9a 100644 GIT binary patch delta 16407 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 - True + False True search_path False @@ -490,8 +490,8 @@ source_path False False False - True - True + False + False True False False @@ -518,8 +518,7 @@ source_path False False True - - + %library_path% 0 True 3 @@ -535,7 +534,7 @@ source_path fa8 True False - ..\Lib;..\Base + True True True @@ -690,7 +689,7 @@ Comments= False False False - True + False True False False @@ -733,7 +732,7 @@ Comments= fa8 True False - %search_path% + True True False @@ -2743,7 +2742,7 @@ Comments= vtProject - + False False @@ -2753,7 +2752,7 @@ Comments= - %project_path%\Lib + %DELPHI2007DIR%\Lib;%library_3rdparty_path% True False False @@ -2809,6 +2808,14 @@ Comments= source_path vtProject + + %project_path%\Lib;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK; + True + False + False + library_3rdparty_path + vtProject +
From 49cf4ad0cca95e10350448724699addc61fa404e Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 20:55:27 +0000 Subject: [PATCH 12/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@34 1c943782-d109-9647-9548-93b3ac332352 From 6a5bce9c5ba6627a5029c7a48718e7f832da4b68 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 21:13:37 +0000 Subject: [PATCH 13/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@35 1c943782-d109-9647-9548-93b3ac332352 From d62dbd7153ed1509cdc14576a09e65f0e08247a9 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Sep 2007 22:32:32 +0000 Subject: [PATCH 14/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@36 1c943782-d109-9647-9548-93b3ac332352 From 3a95882154cbbdd28fdc5b31055676c014e712cd Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 09:56:25 +0000 Subject: [PATCH 15/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@37 1c943782-d109-9647-9548-93b3ac332352 From a7fa67d1af2f691383d092d5828a62a9bfee9922 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 10:41:20 +0000 Subject: [PATCH 16/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@38 1c943782-d109-9647-9548-93b3ac332352 From f15be3bff65a96fac6bfb63ef39673ca49fc4669 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 11:09:48 +0000 Subject: [PATCH 17/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@39 1c943782-d109-9647-9548-93b3ac332352 From 4d20afb062ca39620d11a1a34b4a80dc8ef31f13 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 11:11:01 +0000 Subject: [PATCH 18/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@40 1c943782-d109-9647-9548-93b3ac332352 From faf38c2e3d1d7c756427581ddf629c57de2b524c Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 11:12:51 +0000 Subject: [PATCH 19/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@41 1c943782-d109-9647-9548-93b3ac332352 From 7bf9dbbfe4293e96fe31081d09d9b7f55acc6c5a Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 16:09:29 +0000 Subject: [PATCH 20/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@42 1c943782-d109-9647-9548-93b3ac332352 From 71a5586a35e69a5425af6bdd1d1ff899a6389152 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 16:45:50 +0000 Subject: [PATCH 21/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@43 1c943782-d109-9647-9548-93b3ac332352 From abb105802bcfb20742171eda31cc2fdc576fab45 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 16:49:09 +0000 Subject: [PATCH 22/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@44 1c943782-d109-9647-9548-93b3ac332352 From fd079b5a5dda0ef0dfbe59650ca714532e71d1ae Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 16:53:50 +0000 Subject: [PATCH 23/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@45 1c943782-d109-9647-9548-93b3ac332352 From b2ef1e462b9f0fe9b14c32c6af162e97a325e598 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 16:54:24 +0000 Subject: [PATCH 24/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@46 1c943782-d109-9647-9548-93b3ac332352 From 357dde2dbb2e4972d2c4772af073480f95fd6f53 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Sep 2007 17:20:49 +0000 Subject: [PATCH 25/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@47 1c943782-d109-9647-9548-93b3ac332352 From c66cb122cb95a680446087e39d138d3479474d63 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 07:54:46 +0000 Subject: [PATCH 26/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@48 1c943782-d109-9647-9548-93b3ac332352 From 3459e99ffb5ffb648e3a736b948a480c9e9f5a65 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 08:35:43 +0000 Subject: [PATCH 27/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@49 1c943782-d109-9647-9548-93b3ac332352 From 2a8faa627b7f36c6092b8b655ad02aa9756382af Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 09:07:09 +0000 Subject: [PATCH 28/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@50 1c943782-d109-9647-9548-93b3ac332352 From de4cd23745545b49af73540f5bedabbddc459205 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 15:32:18 +0000 Subject: [PATCH 29/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@51 1c943782-d109-9647-9548-93b3ac332352 From c9256d15d45cefdc9ae261318a97a8fb9ac7111a Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 15:38:13 +0000 Subject: [PATCH 30/32] Removed file/folder git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@52 1c943782-d109-9647-9548-93b3ac332352 --- .../Informes/InformeReferenciaGenerica.fr3 | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 diff --git a/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 b/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 deleted file mode 100644 index 0de6515..0000000 --- a/Output/Debug/Servidor/Informes/InformeReferenciaGenerica.fr3 +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - From b0576eec20f67c4e9654f0b2f95b2ff98b269acd Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Sep 2007 16:31:06 +0000 Subject: [PATCH 31/32] =?UTF-8?q?Adaptaci=C3=B3n=20a=20D2007=20y=20compila?= =?UTF-8?q?ci=C3=B3n=20automatizada=20con=20FinalBuilder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@53 1c943782-d109-9647-9548-93b3ac332352 --- Build/Build.fbl5 | Bin 2621440 -> 3014656 bytes Build/Build.fbp5 | 2413 +++++++++-------- Build/Build.fbv | 2 +- Build/buildlog.html | 1017 ++++--- Source/AdminPVGroup.groupproj | 184 ++ Source/Base/BaseD10.dpk | 5 +- Source/Base/BaseD10.dproj | 652 +++++ Source/Base/BaseD10.drc | 30 +- Source/Base/BaseD10.identcache | Bin 2882 -> 1442 bytes Source/CargaEDI/CargaEDI.dproj | 584 ++++ Source/CargaEDI/CargaEDI.drc | 8 +- Source/CargaEDI/CargaEDI.identcache | Bin 239 -> 119 bytes Source/CargaEDI/CargaEDI.rc | 2 +- Source/Cliente/AdminPV.dpr | 1 - Source/Cliente/AdminPV.dproj | 554 ++++ Source/Cliente/AdminPV.identcache | Bin 1038 -> 556 bytes Source/Cliente/AdminPV.rc | 3 +- Source/Cliente/AdminPV.res | Bin 18368 -> 18480 bytes Source/Configuracion/Configuracion.dpk | 1 + Source/Configuracion/Configuracion.dproj | 606 +++++ Source/Configuracion/Configuracion.drc | 7 +- Source/Configuracion/Configuracion.rc | 22 - Source/Configuracion/Configuracion.res | Bin 4748 -> 32 bytes .../Cliente/uViewControlesBase.dfm | 5 + .../Cliente/uViewControlesBase.pas | 4 +- Source/ControlesBase/ControlesBaseD10.dpk | 3 +- Source/ControlesBase/ControlesBaseD10.dproj | 627 +++++ Source/ControlesBase/ControlesBaseD10.drc | 19 +- .../ControlesBase/ControlesBaseD10.identcache | Bin 2239 -> 1274 bytes Source/ControlesBase/ControlesBaseD10.res | Bin 4748 -> 384 bytes Source/Informes/InformeReferenciaGenerica.fr3 | 27 + .../Devoluciones/Cliente/Devoluciones.dpk | 1 + .../Devoluciones/Cliente/Devoluciones.dproj | 659 +++++ .../Devoluciones/Cliente/Devoluciones.drc | 11 +- .../Devoluciones/Cliente/Devoluciones.rc | 22 - .../Devoluciones/Cliente/Devoluciones.res | Bin 4748 -> 32 bytes .../FicherosEDI/Cliente/FicherosEDI.dpk | 1 + .../FicherosEDI/Cliente/FicherosEDI.dproj | 655 +++++ .../FicherosEDI/Cliente/FicherosEDI.drc | 11 +- .../FicherosEDI/Cliente/FicherosEDI.rc | 22 - .../FicherosEDI/Cliente/FicherosEDI.res | Bin 4748 -> 32 bytes .../Modulos/Parametros/Cliente/Parametros.dpk | 1 + .../Parametros/Cliente/Parametros.dproj} | 317 +-- .../Modulos/Parametros/Cliente/Parametros.drc | 9 +- .../Modulos/Parametros/Cliente/Parametros.rc | 22 - .../Modulos/Parametros/Cliente/Parametros.res | Bin 5056 -> 32 bytes .../Recepciones/Cliente/Recepciones.dpk | 1 + .../Recepciones/Cliente/Recepciones.dproj | 677 +++++ .../Recepciones/Cliente/Recepciones.drc | 13 +- .../Recepciones/Cliente/Recepciones.rc | 22 - .../Recepciones/Cliente/Recepciones.res | Bin 4748 -> 32 bytes .../Cliente/ReferenciaGenerica.dpk | 1 + .../Cliente/ReferenciaGenerica.dproj | 657 +++++ .../Cliente/ReferenciaGenerica.drc | 11 +- .../Cliente/ReferenciaGenerica.rc | 22 - .../Cliente/ReferenciaGenerica.res | Bin 4748 -> 32 bytes Source/Modulos/Stock/Cliente/Stock.dpk | 1 + Source/Modulos/Stock/Cliente/Stock.dproj | 668 +++++ Source/Modulos/Stock/Cliente/Stock.drc | 15 +- Source/Modulos/Stock/Cliente/Stock.rc | 22 - Source/Modulos/Stock/Cliente/Stock.res | Bin 4748 -> 32 bytes .../Modulos/Traspasos/Cliente/Traspasos.dpk | 1 + .../Modulos/Traspasos/Cliente/Traspasos.dproj | 664 +++++ .../Modulos/Traspasos/Cliente/Traspasos.drc | 11 +- Source/Modulos/Traspasos/Cliente/Traspasos.rc | 22 - .../Modulos/Traspasos/Cliente/Traspasos.res | Bin 4748 -> 32 bytes .../VentasProceso/Cliente/VentasProceso.dpk | 1 + .../VentasProceso/Cliente/VentasProceso.dproj | 660 +++++ .../VentasProceso/Cliente/VentasProceso.drc | 13 +- .../VentasProceso/Cliente/VentasProceso.rc | 22 - .../VentasProceso/Cliente/VentasProceso.res | Bin 4748 -> 32 bytes .../Cliente/VentasTerminadas.dpk | 3 +- .../Cliente/VentasTerminadas.dproj | 642 +++++ .../Cliente/VentasTerminadas.drc | 15 +- .../Cliente/VentasTerminadas.res | Bin 4748 -> 384 bytes Source/Servidor/AdminPV_Server.bdsproj | 505 +--- Source/Servidor/AdminPV_Server.dof | 480 ---- Source/Servidor/AdminPV_Server.dpr | 5 +- Source/Servidor/AdminPV_Server.dproj | 407 ++- Source/Servidor/AdminPV_Server.drc | 93 +- Source/Servidor/AdminPV_Server.identcache | Bin 7940 -> 0 bytes Source/Servidor/AdminPV_Server.rc | 27 +- Source/Servidor/AdminPV_Server.res | Bin 22748 -> 23348 bytes Source/Servidor/uDataModuleServer.pas | 2 +- Source/Usuarios/Usuarios.dpk | 3 +- Source/Usuarios/Usuarios.dproj | 597 ++++ Source/Usuarios/Usuarios.drc | 11 +- Source/Usuarios/Usuarios.res | Bin 4748 -> 384 bytes 88 files changed, 11472 insertions(+), 3329 deletions(-) create mode 100644 Source/AdminPVGroup.groupproj create mode 100644 Source/Base/BaseD10.dproj create mode 100644 Source/CargaEDI/CargaEDI.dproj create mode 100644 Source/Cliente/AdminPV.dproj create mode 100644 Source/Configuracion/Configuracion.dproj create mode 100644 Source/ControlesBase/ControlesBaseD10.dproj create mode 100644 Source/Informes/InformeReferenciaGenerica.fr3 create mode 100644 Source/Modulos/Devoluciones/Cliente/Devoluciones.dproj create mode 100644 Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dproj rename Source/{Cliente/AdminPV.bdsproj => Modulos/Parametros/Cliente/Parametros.dproj} (62%) create mode 100644 Source/Modulos/Recepciones/Cliente/Recepciones.dproj create mode 100644 Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.dproj create mode 100644 Source/Modulos/Stock/Cliente/Stock.dproj create mode 100644 Source/Modulos/Traspasos/Cliente/Traspasos.dproj create mode 100644 Source/Modulos/VentasProceso/Cliente/VentasProceso.dproj create mode 100644 Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.dproj delete mode 100644 Source/Servidor/AdminPV_Server.identcache create mode 100644 Source/Usuarios/Usuarios.dproj diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 index e133f82aa77691e2279f3ef4f9470bc5f0c78d9a..2264de95dde3148394d1d9378259e69c08fe5ccd 100644 GIT binary patch literal 3014656 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 z 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
0JOs79q+X{ks9E6yxwsz6S)6 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

Fz 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 WzqU}amVd4y^uKo5AQ$!jsr?VuxB!^| diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png deleted file mode 100644 index 4f721ba5d69dd79d30de3eda3493a778b2be448f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpeMv+?RCwB?lFuu{aTv#6pRZ*cmWzW(If%nI5?=4BP%;-YT-Hw2V9)ysFobeNpkS5Eu_hBg-I;F8~Z*k+uE0zm3KY$e0rYe z_3rb0J}MaS4FVyo8uEDk8~h;=K?MUo86K>(6jnCUWkG%g6hMl~^-5sc8JI87p>6!Hc^eME`g?Cd$udz z7@l;JTy5iJ*~!CPBQtKIGj5szv_kg=`wcZ!X+%sqTODjoxd7;$jX#vA5` zL3>jLn`89=3@kmP-*Y`4A#QnvD&rByWthYLc+q9m0t@{xx(Vw?^a5@mk_YUq&6nKv z*)uHa`D1r(IR70>Mb=HS;r>zo&u~dVS;HVIoBWVcN+?5L0|1@|6mpG8hi3o)002ov JPDHLkV1gWH(z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QprAb6VRCwBql09z|K@>&L1dD_sP|y(3p%hRiAVq0_ zpAac&BSe8nVbU5GZU~b9fFmUZLNrvQrvuU$AxmHh!9qwRK0<_KQ{Yv0X4W&0VjZ(1 z?8LX(nccbPzIks|ty);Yp6L_FRYuo`C)#97?oAEL%* zUheRo`wtk)r~ho9VfI2hGdqXZ8ZimZ93rW~n*`fQGBYdy{{YR%adCW~a}zd8wg#~p zZ#9xye5yISeviFR-vJt>SM2ry`E=jy;*IW^lPo#S_E+a_FxS`sco;PCD1EXJXLs&e zoK6sDxLJQ1G_X`&pj71xtf)RhrDOg>e4qnY)ze1f2=}+PHll9>< zyPQ2f?6>*VNod6>=Pyk$52%? x6(5D=_sjq%R*;vP*%Y8}4*r8tl{W+Y9RPPs?QT}qs*V5v002ovPDHLkV1nyG<7of@ diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png deleted file mode 100644 index 114cf33d69fbeccdeb1df10c057c161b2527f8f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*HqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;AW1|)RCwB?Q%!3VQ4~FIW-^_m`7o8L87LKM8~o_U z!i5OZwIYbr6m6*p-SrQ+5NQw!?p(PMQINDk?51uMH@a$3D3mlQu~s8Zn%GuNNYXbm z$-MVmB{qiCMbGx$bM8IwolAreI1Cg3AcQm(B5^S!5k6rUEXcT!i9p%wQy1oAiRi1* zbCud)3f^)JZ7^V*rr|P6X7Ev%a3oh>F_)7yw8B5MD55Aq0uW zg?ehlezLw!XR^7f6CiN8WH1g`6@gUBB9>LXnTR|KHdy$uv^^HaaTwjQvKlLeY%UX8 zw(%pogWP7);+&OL&ExOv8j_MpQyQHdy9Z#rz5xKFzZGsREf(tJ+}1YIsnyT^?*888 zxlrd`ap%EqCIQnF0C2I!s|zqrh~`oWE!)WF4P;WWR4MNnd^gjZ1|ST=pH{5B3geA$ zRu@=FnZGWRy zI_3a~BrBvj2LKRoW&jf?nt-Hu!vi;7Kx^xJ^lA1&5de`xZ=VORAS!jhbp}1RXS0fJ1=N-P} zo(o@djspN%MY%E8Lh}6Fe69!F=Lh>;f64oC;581vZ#h5+0U-p)VbA%`0LVM?El<3U QhX4Qo07*qoM6N<$fz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Gf6~2RCwB)lg&y4F%*T*z%0c_aNz?KT=|0_Sy;MI z&_xx*Zi+%JtsOydrP3#GpimIOmG99vaPMolNSaJ;#ziJGozB?N353Aqe@k*1;J-a!az5xLIWx=4+D&43wuyfSM z+8XD*$l)U2RZC(7Uvzl0yP39N zY7lhV34sxq6aU>nDB!NkKqgC$C?l8?FP;Gz4T>Y15CJdmMS|1g>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Qb|NXRCwB)lRroTQ5e8~nvg?*O^&WLw6ztAL*dfD zL8pX>8!W672^xZ;A?K5WmRy=`i@?pvscg#zr^bes2CqBsT@7}fr{`Hd_~7xq@B4kf z2k!+kYFY*qCR>FNpvYVKKUE9M#IQ7U(Tly6BPD1bKEBmhUVrgzj&HVkes7=)4dv<@ zfRNoROECan2!JfbC|8`C5WrG2MY+<0H0~B$4aSeIAv88JACxPvM5d!|06?%6M=ior zz2h-A41`gObI^*>S$r4<0OYf&k?MvCdKVJg2kc%(ya52`YTXlXEG4 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;B}qgL<~Ue+U3l=aag~W8>_uM!FSGMcRN7YDD>oW=K_f| zQf6wV-4^Qt-{;JNcQ~_;+@Ba6G4|gsqwrrqhmo9Ks5suU7b|#O4SJKNKC@}Sx@;tr z;mo0@3st;&yNt(AYS6R8<2Or4Zwhdd`ZPznwGK_fvMgw76QP){rt;m>{{$M>M|-`= z{Bh|lA`w?$Sr$w~1G5V~8$WuZjDfZQMT1l53;T!!%&Z36wlSLP0F#4IEYg`C>MU;v z@T?I~lV-_vzJR5JjFRe{YBQpVU_|!0t%WK+vx*H zfTazR0%5(&pG{~}e*y2Wq_=1zh0{&vvxmt6O9xC2CJ*I^ZcOTS2(q4nQ`;|x`qZZcyz6Y;nY(LX!;eJ2046X?fF+m-d-5*il0@~JZ1oAm1ON~u#{ta$9sr1D V4d{?bS6l!9002ovPDHLkV1mU?B_{v? diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png deleted file mode 100644 index 812c814e1d8a966fee1bf06fba54752b8022b2d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;)Ja4^RCwByQe8+>aTNdk@4cJb+}!5;z_yvQ<`*g| zCT67-(L+HoGOrz} ztu$p6m}Hb%ODCqK(AmXV%2a)ddCkvPGZN{5&*NaJ?E{Pjt7ct>&U*BCiKK0Yl2e9Uqn47(NmL-100`^Y(rg$R*E}U* z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;#z{m$RCwByl3z$uaU8|Z@7_Dz=5(7*%{Kqc5~pBj zl!%4WTYo?#5~8;V(x+asXYsWNdaPcIdMMH;3(S9SX{KhH*KOM7oObR|4u|0Hkk+=2Tse#y8r`Est#u{s0 zxmC^Rjci(ui7h@+q{}v&O134rj#H&fc<1fH0fX~R7fW-^xlb=NR2yuDG!hOI@T-7t z69{fIFyv$qQ?@SC|2F zWl32@4Yxo3eT_nCjk(m!%=!r$?|nSb4?oDGySEwnHmgyu&#p@ zSCTtO1f;d+?nzff$3>NNEwDua3V$*6cXoH4iMKR*vA~o(A$2gulq@-b7tfrfJHKJv%DbFsOvg@rusBpwPTu( zpifALJrJ*VuSc}UY*m-jGYnQ)jC5^Ya;C5+*)x6(RqjC(-43R{GP!!fDHih-flK>imRw^9@AepG2~@1>~VyJVCV|J z9CPpdgm&&wxYu*3u0_ZtqR3*{i$_0000U%yxeg5-L74Hahxq?^mqg`ElaILuTf~t?crW_x3(Y2>3AL!+aCw1+(mJDh?d@ z@Q~qfvn*@G;zri#jQnvm2|qqOV2(TcBlbhnhO|9wHai?6jO&;?E}S_41Qr&?!kP>Q Z3^B)Cj$C7A`v`O*gQu&X%Q~loCIA_8WwQVP diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png b/Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png deleted file mode 100644 index f673f28204714e5ea1a8e2d724e68f7351f3d1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs-5fU;uunKE9uYw|MtwP4V{fn4Obc5+}wEHL{xsXzo}QSV#kO72V0q+R32RT=+J)_ z{@PE67?%A!#B0PPxa{XacD6Qlc@Gny$YFLij(?4}8N_m$*sXXZ>}#z*#-Bei=i%Y* zeja(d2@hL~C+kS)&$T}J;Q?!%_ygV}ApXpMcNgfW&YPWbP~%8h^QI*=d6QU`^(>Da goH^5jv4N2xL)QL4#K$~EphFovUHx3vIVCg!0E;F@K(bUAi zy2i{hB<9Ee2ZtCB#r^oey!#mof9<0~40jo3JmWU+;61`WW0rhPLPEud#zqtI119x9 z4lo?F-ynUU>2w3LEL+d~eRF@TPft1b;o(vDHvS{K8W>M5E1s+)p+DF9`7;uunK>&Rq9zC#WoF83#K^#%4aG#zYG);Ppy;S|iN&TvxDf~{}riKB}9a|E7T zzpC3d;ey_UWla+&pE>=H&sz^_ShBzO z5;uJG=DqNwrxqL+7ae3a1IaMKfNq)K z&zu6S43jjqeu=RyC~MXc;PV$?JF!(NZ;PV_&x1D$AI;ovADn$4nc-JK46n$={7j%H O7(8A5T-G@yGywo;i+6Sa diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/About.png b/Varela/Varela/Resources/Iconos/Generales/24x24/About.png deleted file mode 100644 index 5d0ba3e2c80b8a094ddf1e7f444273badada7c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 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

- + # 16711680 @@ -302,16 +302,15 @@ 1000 False - - + + - 0 + 16711680 - + False True - search_path False True False @@ -319,14 +318,115 @@ 0 False 0 - SOFTWARE\Borland\BDS\5.0\Library - -2147483647 - rtString - - 1000 False + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 8388736 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + True + False + _aux_path + False + True + False + + + + 0 + False + 0 + 1000 + True + False + + + + 0 + + True + True + %_aux_path% + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + + 0 + + True + True + _aux_path + False + True + False + + 0 + False + 0 + 1000 + False + + # 16711680 @@ -344,6 +444,23 @@ 1000 False + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + @@ -364,10 +481,12 @@ False - + 0 + + True True True @@ -382,6 +501,7 @@ 1000 False 0 1000 False - + 0 @@ -440,7 +560,7 @@ source_path 0 1252 12 - Debug + Release False @@ -451,7 +571,7 @@ source_path %project_path%\Resources\Iconos\Servidor.ico False True - False + True True False False @@ -461,16 +581,16 @@ source_path False False True - 3081 + 3082 1 0 - 0 + 2 False 0 %source_path%\Servidor\AdminPV_Server.dpr True - 0 + 5 rcBorland @@ -480,33 +600,40 @@ source_path True False False - [usPackages,usVersionInfo] + [usPackages,usCompiler,usLinker,usVersionInfo] False True - False False - False + False False False True False False - + False - True + False - True + False False True @@ -520,7 +647,7 @@ source_path True %library_path% 0 - True + False 3 1048576 16384 @@ -532,9 +659,9 @@ source_path False fa8 - True + False False - + .\ True True True @@ -602,7 +729,7 @@ source_path Base - 255 + 8388736 Base True @@ -669,7 +796,7 @@ source_path False False False - [] + [usPackages,usCompiler,usLinker,usVersionInfo] False False False False %package_path% - + False @@ -716,15 +840,15 @@ Comments= False False True - %DELPHI2007DIR%\Lib;%BDSCOMMONDIR%\Dcp;%library_path% + %library_path% 0 True - 0 + 3 1048576 16384 True - True + False %output_path%\Cliente False @@ -735,7 +859,7 @@ Comments= True True - False + True False WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; @@ -756,7 +880,7 @@ Comments= True 0 1252 - 11 + 12 Release False @@ -797,7 +921,7 @@ Comments= False False False - [usVersionInfo] + [usPackages,usCompiler,usLinker,usVersionInfo] False False False False False - True - True + False + False True False False %package_path% - + False %base_dcp_path% - True + False - True + False False True @@ -846,24 +967,24 @@ Comments= True %library_path% 0 - True - 0 + False + 3 1048576 16384 True - True + False %output_path%\Cliente False False fa8 - True + False False - %search_path% + True True - False + True False WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; @@ -884,8 +1005,8 @@ Comments= True 0 1252 - 11 - Release + 12 + Debug False @@ -896,7 +1017,7 @@ Comments= False False - True + False True False False @@ -906,7 +1027,7 @@ Comments= False False False - 3082 + 3081 1 0 @@ -925,35 +1046,23 @@ Comments= False False False - [usVersionInfo] + [usPackages,usCompiler,usLinker,usVersionInfo] False False - False False False - True - True + False + False True False False %package_path% - + False @@ -975,7 +1084,7 @@ Comments= %library_path% 0 True - 0 + 3 1048576 16384 @@ -988,10 +1097,10 @@ Comments= fa8 True False - %search_path% + True True - False + True False WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; @@ -1012,8 +1121,8 @@ Comments= True 0 1252 - 11 - Release + 12 + Debug False @@ -1053,7 +1162,7 @@ Comments= False False False - [usVersionInfo] + [usPackages,usCompiler,usLinker,usVersionInfo] False False False False False - True - True + False + False True False False %package_path% - + False @@ -1100,11 +1206,126 @@ Comments= False False True - - + %library_path% 0 True - 0 + 3 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Configuracion\Configuracion.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 1048576 16384 @@ -1129,8 +1350,25 @@ Comments= True - - + + + Módulos + 8388736 + + Módulos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + 0 @@ -1141,10 +1379,126 @@ Comments= True 0 1252 - 11 - Release + 12 + Debug False - + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + True True @@ -1170,7 +1524,7 @@ Comments= 0 False 0 - %source_path%\Configuracion\Configuracion.dpk + %source_path%\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk True 3 @@ -1182,7 +1536,7 @@ Comments= False False False - [usVersionInfo] + [usPackages,usCompiler,usLinker,usVersionInfo] False False False False - False - True - True + False + False + False True False False %package_path% - + False @@ -1229,16 +1580,15 @@ Comments= False False True - - + %library_path% 0 True - 0 + 3 1048576 16384 True - True + False %output_path%\Cliente False @@ -1249,6 +1599,122 @@ Comments= True True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True False False WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; @@ -1258,1059 +1724,590 @@ Comments= True - - Módulos + + + 0 - Módulos + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + True True + + False + False + False + False True False + False + False + False + False + False + False + False + 3081 + 1 0 + 0 False 0 + %source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk + True + 0 + + + rcBorland 1000 + False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Devoluciones\Cliente\Devoluciones.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Stock\Cliente\Stock.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Devoluciones\Cliente\Devoluciones.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk - True - 3 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 11 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Stock\Cliente\Stock.dpk - True - 2 - - - rcBorland - 1000 - - False - False - False - False - [usVersionInfo] - False - False - - - - False - False - False - True - True - True - False - False - %package_path% - - - - False - %modules_dcp_path% - True - - True - - False - True - False - False - True - 4194304 - False - False - False - True - - - 0 - True - 0 - 1048576 - 16384 - - True - True - %output_path%\Cliente - False - - False - fa8 - True - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path%\Cliente + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True Cliente - 0 + 8388736 Cliente True @@ -2327,19 +2324,19 @@ Comments= - + 0 True - False + True False True True 0 1252 - 11 - Release + 12 + Debug False @@ -2349,8 +2346,8 @@ Comments= False %project_path%\Resources\Iconos\Cliente.ico False - False - True + True + False True False False @@ -2360,56 +2357,44 @@ Comments= False False False - 3082 + 3081 1 0 - 1 + 0 False 0 %source_path%\Cliente\AdminPV.dpr True - 1 + 0 rcBorland 1000 False - False - False + True + True False - [usPackages,usVersionInfo] - False - False - [usCompiler,usLinker,usVersionInfo] + True + True + False False - False - True - True + True + False + False True False False - + - + DEBUG False True @@ -2426,8 +2411,7 @@ Comments= False False True - - + %library_path%;%modules_dcp_path% 0 True 0 @@ -2438,7 +2422,7 @@ Comments= True %output_path%\Cliente False - based10;configuracion;controlesbased10;usuarios;ficherosedi;ventasproceso;ventasterminadas;referenciagenerica + BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica False fa8 True @@ -2449,7 +2433,7 @@ Comments= False False WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - + .\ False True True @@ -2469,8 +2453,8 @@ Comments= True 0 1252 - 11 - Release + 12 + Debug False @@ -2493,14 +2477,14 @@ Comments= False 3082 - 1 + 2 0 - 1 + 0 False 0 %source_path%\CargaEDI\CargaEDI.dpr True - 1 + 0 rcBorland @@ -2510,12 +2494,12 @@ Comments= False False False - [usPackages,usVersionInfo] + [usCompiler,usLinker,usVersionInfo] False False False False False - True - True + False + False True False False - + False @@ -2557,11 +2538,10 @@ Comments= False False True - - + %library_path%;%modules_dcp_path% 0 True - 0 + 3 1048576 16384 @@ -2569,7 +2549,7 @@ Comments= True %output_path%\Cliente False - based10;configuracion;ficherosedi;rtl;dbrtl;vcldb;dataabstract_core_d10;dataabstract_ide_d10 + BaseD10;Configuracion;FicherosEDI False fa8 True @@ -2676,6 +2656,51 @@ Comments= False + + + + 8388736 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + False + True + True + False + False + %source_path%\Informes\*.* + True + False + True + False + + 0 + False + False + 0 + False + 1000 + False + %output_path%\Servidor\Informes + True + + @@ -2809,13 +2834,29 @@ Comments= vtProject - %project_path%\Lib;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK; + %DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport3;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview; True False False library_3rdparty_path vtProject + + C:\Varela_D2007\Output + True + False + False + path_aux + vtProject + + + + False + False + False + _aux_path + vtProject + diff --git a/Build/Build.fbv b/Build/Build.fbv index 5057e92..048e500 100644 --- a/Build/Build.fbv +++ b/Build/Build.fbv @@ -1 +1 @@ - + diff --git a/Build/buildlog.html b/Build/buildlog.html index e6beb80..f29c3af 100644 --- a/Build/buildlog.html +++ b/Build/buildlog.html @@ -57,7 +57,7 @@ function domCollapseAll(show){ Project File : -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build\Build.fbl5 +C:\Varela_D2007\Build\Build.fbl5 Log Title : @@ -65,19 +65,19 @@ function domCollapseAll(show){ Date : -06/09/2007 +11/09/2007 Start Time : -12:09:00 +18:23:07 End Time : -12:09:45 +18:23:51 Run Time : -00:00:45 +00:00:44
@@ -94,24 +94,24 @@ function domCollapseAll(show){ - - - + + + - - - + + + - - + + @@ -125,17 +125,17 @@ function domCollapseAll(show){ - - + + - - - - + + + + @@ -144,9 +144,9 @@ function domCollapseAll(show){ [Microsoft .NET Framework, Version 2.0.50727.42] Copyright (C) Microsoft Corporation 2005. All rights reserved. -Build started 06/09/2007 12:09:01. +Build started 11/09/2007 18:23:10. __________________________________________________ -Project "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ClearFiles.msbuild" (CleanFiles target(s)): +Project "C:\Varela_D2007\Source\ClearFiles.msbuild" (CleanFiles target(s)): Target CleanFiles: Deleting file "Base\BaseD10.dcu". @@ -282,14 +282,6 @@ Target CleanFiles: Deleting file "Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.dcu". Deleting file "Modulos\VentasTerminadas\Reglas\uBizControlVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.dcu". - Deleting file "Servidor\DARemoteService_Impl.dcu". - Deleting file "Servidor\DataAbstract3_Intf.dcu". - Deleting file "Servidor\DataAbstract3_Invk.dcu". - Deleting file "Servidor\DataAbstract4_Intf.dcu". - Deleting file "Servidor\EBase64.dcu". - Deleting file "Servidor\EConsts.dcu". - Deleting file "Servidor\ECore.dcu". - Deleting file "Servidor\EDebug.dcu". Deleting file "Servidor\EDI_Inventary_Impl.dcu". Deleting file "Servidor\EDI_INVRPT.dcu". Deleting file "Servidor\EDI_Log_Impl.dcu". @@ -297,67 +289,6 @@ Target CleanFiles: Deleting file "Servidor\EDI_Sales_Impl.dcu". Deleting file "Servidor\EDI_SLSRPT.dcu". Deleting file "Servidor\EDI_Utils.dcu". - Deleting file "Servidor\EDisAsm.dcu". - Deleting file "Servidor\EEncrypt.dcu". - Deleting file "Servidor\EHash.dcu". - Deleting file "Servidor\EHook.dcu". - Deleting file "Servidor\ELang.dcu". - Deleting file "Servidor\ELeaks.dcu". - Deleting file "Servidor\EListView.dcu". - Deleting file "Servidor\ELogManager.dcu". - Deleting file "Servidor\ESockets.dcu". - Deleting file "Servidor\ETypes.dcu". - Deleting file "Servidor\EWebTools.dcu". - Deleting file "Servidor\ExceptionLog.dcu". - Deleting file "Servidor\EXMLBuilder.dcu". - Deleting file "Servidor\EZip.dcu". - Deleting file "Servidor\EZLib.dcu". - Deleting file "Servidor\frxAggregate.dcu". - Deleting file "Servidor\frxChm.dcu". - Deleting file "Servidor\frxClass.dcu". - Deleting file "Servidor\frxClassRTTI.dcu". - Deleting file "Servidor\frxCtrls.dcu". - Deleting file "Servidor\frxDBSet.dcu". - Deleting file "Servidor\frxDialogForm.dcu". - Deleting file "Servidor\frxDMPClass.dcu". - Deleting file "Servidor\frxDock.dcu". - Deleting file "Servidor\frxDsgnIntf.dcu". - Deleting file "Servidor\frxEngine.dcu". - Deleting file "Servidor\frxFormUtils.dcu". - Deleting file "Servidor\frxGraphicUtils.dcu". - Deleting file "Servidor\frxPassw.dcu". - Deleting file "Servidor\frxPreview.dcu". - Deleting file "Servidor\frxPreviewPages.dcu". - Deleting file "Servidor\frxPreviewPageSettings.dcu". - Deleting file "Servidor\frxPrintDialog.dcu". - Deleting file "Servidor\frxPrinter.dcu". - Deleting file "Servidor\frxProgress.dcu". - Deleting file "Servidor\frxrcClass.dcu". - Deleting file "Servidor\frxRes.dcu". - Deleting file "Servidor\frxSearchDialog.dcu". - Deleting file "Servidor\frxUnicodeUtils.dcu". - Deleting file "Servidor\frxUtils.dcu". - Deleting file "Servidor\frxVariables.dcu". - Deleting file "Servidor\frxXML.dcu". - Deleting file "Servidor\frxXMLSerializer.dcu". - Deleting file "Servidor\fs_ibasic.dcu". - Deleting file "Servidor\fs_iclassesrtti.dcu". - Deleting file "Servidor\fs_iconst.dcu". - Deleting file "Servidor\fs_icpp.dcu". - Deleting file "Servidor\fs_idialogsrtti.dcu". - Deleting file "Servidor\fs_idisp.dcu". - Deleting file "Servidor\fs_ievents.dcu". - Deleting file "Servidor\fs_iexpression.dcu". - Deleting file "Servidor\fs_iformsrtti.dcu". - Deleting file "Servidor\fs_igraphicsrtti.dcu". - Deleting file "Servidor\fs_iilparser.dcu". - Deleting file "Servidor\fs_iinterpreter.dcu". - Deleting file "Servidor\fs_ijs.dcu". - Deleting file "Servidor\fs_iparser.dcu". - Deleting file "Servidor\fs_ipascal.dcu". - Deleting file "Servidor\fs_isysrtti.dcu". - Deleting file "Servidor\fs_itools.dcu". - Deleting file "Servidor\fs_xml.dcu". Deleting file "Servidor\fServerForm.dcu". Deleting file "Servidor\RegExpr.dcu". Deleting file "Servidor\schControlesClient_Intf.dcu". @@ -398,92 +329,13 @@ Target CleanFiles: Deleting file "Servidor\uConfFicherosEDI.dcu". Deleting file "Servidor\uConfGeneral.dcu". Deleting file "Servidor\uConfiguracion.dcu". - Deleting file "Servidor\uDAADODriver.dcu". - Deleting file "Servidor\uDAADOInterfaces.dcu". - Deleting file "Servidor\uDABinAdapter.dcu". - Deleting file "Servidor\uDABusinessProcessor.dcu". - Deleting file "Servidor\uDACache.dcu". - Deleting file "Servidor\uDACDSDataTable.dcu". - Deleting file "Servidor\uDAClasses.dcu". - Deleting file "Servidor\uDADatasetWrapper.dcu". - Deleting file "Servidor\uDADataStreamer.dcu". - Deleting file "Servidor\uDADataTable.dcu". - Deleting file "Servidor\uDADataTableReferenceCollection.dcu". - Deleting file "Servidor\uDADelta.dcu". - Deleting file "Servidor\uDADriverManager.dcu". - Deleting file "Servidor\uDAEngine.dcu". - Deleting file "Servidor\uDAExceptions.dcu". - Deleting file "Servidor\uDAExpressionEvaluator.dcu". - Deleting file "Servidor\uDAHelpers.dcu". - Deleting file "Servidor\uDAIBInterfaces.dcu". - Deleting file "Servidor\uDAIBXDriver.dcu". - Deleting file "Servidor\uDAInterfaces.dcu". - Deleting file "Servidor\uDAInterfacesEx.dcu". - Deleting file "Servidor\uDAMacroProcessors.dcu". - Deleting file "Servidor\uDAMacros.dcu". - Deleting file "Servidor\uDAMemDataset.dcu". - Deleting file "Servidor\uDAMemDataTable.dcu". - Deleting file "Servidor\uDAOracleInterfaces.dcu". - Deleting file "Servidor\uDAPostgresInterfaces.dcu". - Deleting file "Servidor\uDAReconcileDialog.dcu". - Deleting file "Servidor\uDAReconcileDialogDetails.dcu". - Deleting file "Servidor\uDARegExpr.dcu". - Deleting file "Servidor\uDARemoteDataAdapter.dcu". - Deleting file "Servidor\uDARemoteDataAdapterRequests.dcu". - Deleting file "Servidor\uDARes.dcu". - Deleting file "Servidor\uDAScriptingProvider.dcu". - Deleting file "Servidor\uDAServerLog.dcu". - Deleting file "Servidor\uDASQL92Interfaces.dcu". - Deleting file "Servidor\uDASQL92QueryBuilder.dcu". - Deleting file "Servidor\uDASupportClasses.dcu". Deleting file "Servidor\uDataModuleEDI_Inventary.dcu". Deleting file "Servidor\uDataModuleEDI_Sales.dcu". Deleting file "Servidor\uDataModuleServer.dcu". Deleting file "Servidor\uDataTableUtils.dcu". - Deleting file "Servidor\uDAUtils.dcu". - Deleting file "Servidor\uDAWhere.dcu". - Deleting file "Servidor\uDAXmlUtils.dcu". Deleting file "Servidor\uDBSelectionList.dcu". Deleting file "Servidor\uFrameConfiguracion.dcu". Deleting file "Servidor\uIntegerList.dcu". - Deleting file "Servidor\uROBinaryHelpers.dcu". - Deleting file "Servidor\uROBinMessage.dcu". - Deleting file "Servidor\uROCipher.dcu". - Deleting file "Servidor\uROCipher1.dcu". - Deleting file "Servidor\uROCiphers.dcu". - Deleting file "Servidor\uROClasses.dcu". - Deleting file "Servidor\uROClient.dcu". - Deleting file "Servidor\uROClientIntf.dcu". - Deleting file "Servidor\uROCOMInit.dcu". - Deleting file "Servidor\uROCompression.dcu". - Deleting file "Servidor\uRODECConst.dcu". - Deleting file "Servidor\uRODECUtil.dcu". - Deleting file "Servidor\uRODL.dcu". - Deleting file "Servidor\uRODLToXML.dcu". - Deleting file "Servidor\uRODynamicRequest.dcu". - Deleting file "Servidor\uROEncryption.dcu". - Deleting file "Servidor\uROEventRepository.dcu". - Deleting file "Servidor\uROHash.dcu". - Deleting file "Servidor\uROHtmlServerInfo.dcu". - Deleting file "Servidor\uROHTTPDispatch.dcu". - Deleting file "Servidor\uROHTTPTools.dcu". - Deleting file "Servidor\uROIndyHTTPServer.dcu". - Deleting file "Servidor\uROIndyTCPServer.dcu". - Deleting file "Servidor\uROMSXML2_TLB.dcu". - Deleting file "Servidor\uROMSXMLImpl.dcu". - Deleting file "Servidor\uROPoweredByRemObjectsButton.dcu". - Deleting file "Servidor\uRORemoteDataModule.dcu". - Deleting file "Servidor\uRORemoteService.dcu". - Deleting file "Servidor\uRORes.dcu". - Deleting file "Servidor\uROSerializer.dcu". - Deleting file "Servidor\uROServer.dcu". - Deleting file "Servidor\uROServerIntf.dcu". - Deleting file "Servidor\uROSessions.dcu". - Deleting file "Servidor\uROStreamSerializer.dcu". - Deleting file "Servidor\uROTypes.dcu". - Deleting file "Servidor\uROXMLIntf.dcu". - Deleting file "Servidor\uROXMLSerializer.dcu". - Deleting file "Servidor\uROZLib.dcu". Deleting file "Servidor\uSchemaUtilsServer.dcu". Deleting file "Servidor\VARELA_Intf.dcu". Deleting file "Servidor\VARELA_Invk.dcu". @@ -511,46 +363,294 @@ Build succeeded. 0 Warning(s) 0 Error(s) -Time Elapsed 00:00:00.67 +Time Elapsed 00:00:00.56 Program returned code : 0 - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -558,29 +658,30 @@ source_path = C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Pr - - + + - - - - + + + + @@ -806,17 +907,17 @@ C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\ - - + + - - - + + + @@ -826,9 +927,9 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Base\BaseD10.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Base\BaseD10.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleBase.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleBase.pas(22) Warning: W1000 Symbol 'TDABINAdapter' is deprecated uDataModuleBase.pas(32) Warning: W1000 Symbol 'TDABINAdapter' is deprecated @@ -842,12 +943,12 @@ uDataTableUtils.pas(136) Warning: W1036 Variable 'AFiltered' might not have been uDataTableUtils.pas(199) Warning: W1011 Text after final 'END.' - ignored by compiler uEditorUtils.pas(65) Hint: H2077 Value assigned to 'P' never used uEditorUtils.pas(99) Warning: W1035 Return value of function 'ShowEditor' might be undefined -uEditorPreview.pas(82) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' +uEditorPreview.pas(81) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' uSysFunc.pas(126) Hint: H2077 Value assigned to 'DarFicheroExportar' never used uSysFunc.pas(193) Hint: H2164 Variable 'lpMsgBuf' is declared but never used in 'CopiarFichero' uEditorDBItem.pas(47) Hint: H2164 Variable 'Respuesta' is declared but never used in 'TfEditorDBItem.actPrevisualizarExecute' uEditorDBItem.pas(69) Hint: H2164 Variable 'Respuesta' is declared but never used in 'TfEditorDBItem.actImprimirExecute' -8656 lines, 1.88 seconds, 135140 bytes code, 452 bytes data. +8652 lines, 4.14 seconds, 134712 bytes code, 452 bytes data. @@ -855,9 +956,9 @@ uEditorDBItem.pas(69) Hint: H2164 Variable 'Respuesta' is declared but never use - - - + + + @@ -867,9 +968,9 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ControlesBase\ControlesBaseD10.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\ControlesBase\ControlesBaseD10.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear Cliente\uViewControlesBase.pas(56) Warning: W1010 Method 'GetPopupMenu' hides virtual method of base type 'TControl' Cliente\uEditorControlesBase.pas(36) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' Cliente\uDataModuleControles.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated @@ -889,7 +990,7 @@ Cliente\uViewFiltros.pas(136) Hint: H2164 Variable 'AColumn' is declared but nev Cliente\uViewFiltros.pas(137) Hint: H2164 Variable 'AItemIndex' is declared but never used in 'TfrViewFiltros.vgFiltrosEditorRow1EditPropertiesEditValueChanged' Cliente\uDateUtils.pas(37) Warning: W1035 Return value of function 'NumberDayOfTheWeek' might be undefined Cliente\uDateUtils.pas(65) Warning: W1035 Return value of function 'NumberMonthOfTheYear' might be undefined -2900 lines, 1.11 seconds, 53872 bytes code, 164 bytes data. +2901 lines, 1.81 seconds, 53896 bytes code, 164 bytes data. @@ -897,8 +998,8 @@ Cliente\uDateUtils.pas(65) Warning: W1035 Return value of function 'NumberMonthO - - + + @@ -909,13 +1010,13 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\Parametros\Cliente\Parametros.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\Parametros\Cliente\Parametros.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleParametros.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleParametros.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleParametros.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated -574 lines, 1.06 seconds, 21956 bytes code, 96 bytes data. +575 lines, 1.06 seconds, 21684 bytes code, 96 bytes data. @@ -923,9 +1024,9 @@ uDataModuleParametros.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is dep - - - + + + @@ -935,14 +1036,14 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Usuarios\Usuarios.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Usuarios\Usuarios.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleUsuarios.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleUsuarios.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleUsuarios.pas(15) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uDataModuleUsuarios.pas(105) Hint: H2077 Value assigned to 'TdmUsuarios.CambiarPassword' never used -448 lines, 0.66 seconds, 12812 bytes code, 112 bytes data. +449 lines, 0.73 seconds, 12892 bytes code, 112 bytes data. @@ -950,8 +1051,8 @@ uDataModuleUsuarios.pas(105) Hint: H2077 Value assigned to 'TdmUsuarios.CambiarP - - + + @@ -962,10 +1063,10 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Configuracion\Configuracion.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation -89 lines, 0.73 seconds, 7440 bytes code, 68 bytes data. +Using Command Line : /B C:\Varela_D2007\Source\Configuracion\Configuracion.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +90 lines, 0.64 seconds, 7464 bytes code, 68 bytes data. @@ -973,16 +1074,16 @@ Copyright (c) 1983,2005 Borland Software Corporation - - + + - - + + @@ -993,9 +1094,9 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uAsistenteCargaFicheros.pas(11) Warning: W1006 Unit 'uROServiceComponent' is deprecated uSubirFicheros.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uCargarFicheros.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated @@ -1006,7 +1107,7 @@ uDataModuleFicherosEDI.pas(7) Warning: W1006 Unit 'uROServiceComponent' is depre uDataModuleFicherosEDI.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uViewHistorialCargasEDI.pas(64) Hint: H2164 Variable 'ADate' is declared but never used in 'TfrViewHistorialCargasEDI.cxGridViewFECHAGetDisplayText' uEditorHistorialCargasEDI.pas(25) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1567 lines, 1.48 seconds, 33384 bytes code, 128 bytes data. +1568 lines, 0.98 seconds, 33408 bytes code, 128 bytes data. @@ -1014,8 +1115,8 @@ uEditorHistorialCargasEDI.pas(25) Warning: W1010 Method 'FormShow' hides virtual - - + + @@ -1026,15 +1127,15 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleVentasTerminadas.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleVentasTerminadas.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasTerminadas\Reglas\uBizVentWarning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasTerminadas\Reglas\uBizVentWarning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasTerminadas\Reglas\uBizVentWarning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasTerminadas\Reglas\uBizVentWarning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.pas(27) Warning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.pas(28) Warning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.pas(40) Warning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.pas(42) Warning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' uDataModuleVentasTerminadas.pas(16) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uViewControGridlVentasTerminadas.pas(142) Hint: H2164 Variable 'AColumn' is declared but never used in 'TfrViewControlGridVentasTerminadas.cxGridViewStylesGetContentStyle' uViewControGridlVentasTerminadas.pas(143) Hint: H2164 Variable 'AFecha' is declared but never used in 'TfrViewControlGridVentasTerminadas.cxGridViewStylesGetContentStyle' @@ -1044,7 +1145,7 @@ uEditorControlResumenVentas.pas(48) Warning: W1010 Method 'FormShow' hides virtu uEditorControlResumenVentas.pas(125) Hint: H2164 Variable 'UltimoDia' is declared but never used in 'TfEditorControlResumenVentas.actRefrescarExecute' uEditorControlResumenVentas.pas(126) Hint: H2164 Variable 'i' is declared but never used in 'TfEditorControlResumenVentas.actRefrescarExecute' uEditorControlVentasTerminadas.pas(41) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' -4628 lines, 1.45 seconds, 95868 bytes code, 136 bytes data. +4629 lines, 1.51 seconds, 95544 bytes code, 136 bytes data. @@ -1052,8 +1153,8 @@ uEditorControlVentasTerminadas.pas(41) Warning: W1010 Method 'FormShow' hides vi - - + + @@ -1064,18 +1165,18 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasProceso\Cliente\VentasProceso.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\VentasProceso.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleVentasProceso.pas(14) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleVentasProceso.pas(14) Warning: W1006 Unit 'uROServiceComponent' is deprecated -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasProceso\Reglas\uBizVentasPWarning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' -C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\VentasProceso\Reglas\uBizVentasPWarning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasProceso\Reglas\uBizVentasProceso.pas(26) Warning: W1010 Method 'OnBeforeDataRequestCall' hides virtual method of base type 'TDADataTableRules' +C:\Varela_D2007\Source\Modulos\VentasProceso\Reglas\uBizVentasProceso.pas(28) Warning: W1010 Method 'OnBeforeSchemaCall' hides virtual method of base type 'TDADataTableRules' uDataModuleVentasProceso.pas(23) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uViewControGridlVentaProceso.pas(146) Warning: W1036 Variable 'AFecha' might not have been initialized uEditorControlVentaProceso.pas(41) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' uEditorControlVentaProceso.pas(53) Warning: W1010 Method 'RellenarCabeceraInforme' hides virtual method of base type 'TfEditorControlBase' -1675 lines, 1.11 seconds, 38124 bytes code, 124 bytes data. +1676 lines, 1.14 seconds, 38148 bytes code, 124 bytes data. @@ -1083,8 +1184,8 @@ uEditorControlVentaProceso.pas(53) Warning: W1010 Method 'RellenarCabeceraInform - - + + @@ -1095,9 +1196,9 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleReferenciaGenerica.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleReferenciaGenerica.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleReferenciaGenerica.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated @@ -1107,7 +1208,7 @@ uDataModuleReferenciaGenerica.pas(129) Warning: W1036 Variable 'AStream' might n uViewListaReferenciaGenerica.pas(150) Hint: H2164 Variable 'ARecord' is declared but never used in 'TfrViewListaReferenciaGenerica.cxGridViewMouseDown' uEditorListaReferenciaGenerica.pas(48) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uEditorListaReferenciaGenerica.pas(425) Hint: H2164 Variable 'i' is declared but never used in 'TfEditorListaReferenciaGenerica.actEliminarExecute' -3520 lines, 1.12 seconds, 70168 bytes code, 112 bytes data. +3521 lines, 1.09 seconds, 69816 bytes code, 112 bytes data. @@ -1115,8 +1216,8 @@ uEditorListaReferenciaGenerica.pas(425) Hint: H2164 Variable 'i' is declared but - - + + @@ -1127,16 +1228,16 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\Recepciones\Cliente\Recepciones.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\Recepciones.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleRecepciones.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleRecepciones.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleRecepciones.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uEditorListaRecepciones.pas(53) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uViewListaRecepcionesAlbaran.pas(97) Hint: H2164 Variable 'ARecIndex' is declared but never used in 'TfrViewListaRecepcionesAlbaran.cxGridViewALBARANGetDataText' uEditorListaRecepcionesAlbaran.pas(36) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -2024 lines, 1.24 seconds, 48152 bytes code, 112 bytes data. +2025 lines, 1.17 seconds, 47800 bytes code, 112 bytes data. @@ -1144,8 +1245,8 @@ uEditorListaRecepcionesAlbaran.pas(36) Warning: W1010 Method 'FormShow' hides vi - - + + @@ -1156,15 +1257,15 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\Devoluciones\Cliente\Devoluciones.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\Devoluciones.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleDevoluciones.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleDevoluciones.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleDevoluciones.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uDataModuleDevoluciones.pas(63) Hint: H2164 Variable 'AStr' is declared but never used in 'TdmDevoluciones.GetItems' uEditorListaDevoluciones.pas(51) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1643 lines, 1.19 seconds, 40016 bytes code, 104 bytes data. +1644 lines, 1.05 seconds, 39664 bytes code, 104 bytes data. @@ -1172,9 +1273,9 @@ uEditorListaDevoluciones.pas(51) Warning: W1010 Method 'FormShow' hides virtual - - - + + + @@ -1184,16 +1285,16 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\Traspasos\Cliente\Traspasos.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\Traspasos.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleTraspasos.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleTraspasos.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleTraspasos.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uDataModuleTraspasos.pas(63) Hint: H2164 Variable 'AStr' is declared but never used in 'TdmTraspasos.GetItems' uEditorListaTraspasos.pas(46) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uEditorAjustarTraspasos.pas(249) Hint: H2164 Variable 'aux' is declared but never used in 'TfEditorAjustarTraspasos.SalvarValores' -1482 lines, 1.83 seconds, 37060 bytes code, 104 bytes data. +1483 lines, 1.06 seconds, 36708 bytes code, 104 bytes data. @@ -1201,8 +1302,8 @@ uEditorAjustarTraspasos.pas(249) Hint: H2164 Variable 'aux' is declared but neve - - + + @@ -1213,14 +1314,14 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Modulos\Stock\Cliente\Stock.dpk" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Modulos\Stock\Cliente\Stock.dpk /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uDataModuleStock.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleStock.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleStock.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uEditorControlStockVARELA.pas(38) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1687 lines, 1.28 seconds, 48016 bytes code, 120 bytes data. +1688 lines, 1.20 seconds, 48040 bytes code, 120 bytes data. @@ -1228,16 +1329,16 @@ uEditorControlStockVARELA.pas(38) Warning: W1010 Method 'FormShow' hides virtual - - + + - - - + + + @@ -1248,16 +1349,16 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\Cliente\AdminPV.dpr" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation +Using Command Line : /B C:\Varela_D2007\Source\Cliente\AdminPV.dpr /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear uPantallaPrincipal.pas(86) Hint: H2365 Override method TfPantallaPrincipal.IsShortcut should match case of ancestor TCustomForm.IsShortCut uMenuUtils.pas(131) Hint: H2077 Value assigned to 'CreatePageNavPane' never used uPantallaPrincipal.pas(515) Warning: W1035 Return value of function 'TfPantallaPrincipal.IsShortCut' might be undefined uPantallaPrincipal.pas(520) Hint: H2164 Variable 'i' is declared but never used in 'TfPantallaPrincipal.Button1Click' uPantallaPrincipal.pas(521) Hint: H2164 Variable 'AModule' is declared but never used in 'TfPantallaPrincipal.Button1Click' uPantallaPrincipal.pas(82) Hint: H2219 Private symbol 'ExecuteActionMenu' declared but never used -38303 lines, 1.28 seconds, 367792 bytes code, 40176 bytes data. +988 lines, 1.02 seconds, 24504 bytes code, 80 bytes data. @@ -1265,8 +1366,8 @@ uPantallaPrincipal.pas(82) Hint: H2219 Private symbol 'ExecuteActionMenu' declar - - + + @@ -1277,10 +1378,34 @@ Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Resource Compiled OK. Running Delphi compiler.... -Using Command Line : /B "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\CargaEDI\CargaEDI.dpr" /Q -Borland Delphi for Win32 compiler version 18.0 -Copyright (c) 1983,2005 Borland Software Corporation -181 lines, 0.64 seconds, 8636 bytes code, 56 bytes data. +Using Command Line : /B C:\Varela_D2007\Source\CargaEDI\CargaEDI.dpr /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +181 lines, 0.53 seconds, 8532 bytes code, 56 bytes data. + + + + + + + + + + + + + + + + + + + + + + @@ -1288,8 +1413,8 @@ Copyright (c) 1983,2005 Borland Software Corporation - - + +
- Action List Action List: Main12:09:0012:09:4500:00:4518:23:0718:23:5100:00:44
Completed Set VariableSet Variable project_path to [ C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Build ]12:09:0012:09:00Set Variable project_path to [ C:\Varela_D2007\Build ]18:23:0718:23:07 00:00:00
Completed String Replace String Replace12:09:0012:09:0018:23:0718:23:07 00:00:00 View
Completed Action Group Borrar ficheros temporales12:09:0012:09:0018:23:0718:23:07 00:00:00
Completed Run DOS CommandRun DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Source\ClearFiles.msbuild" /t:CleanFiles ]12:09:0012:09:0200:00:02Run DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Varela_D2007\Source\ClearFiles.msbuild" /t:CleanFiles ]18:23:0718:23:1100:00:03 View
CompletedRead Registry ValueLeer la ruta de búsqueda de Delphi desde el registro12:09:0212:09:02Action GroupCrear directorios de salida18:23:1118:23:11 00:00:00View
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00View
-
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Debug\Cliente ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Debug\Servidor ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Debug\Servidor\Carga ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Debug\Servidor\Almacen ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Debug\Servidor\Informes ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Release\Cliente ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1118:23:1100:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Release\Servidor ]18:23:1118:23:1100:00:00View
+
+
CompletedList IteratorList Iterator18:23:1218:23:1200:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Release\Servidor\Carga ]18:23:1218:23:1200:00:00View
+
+
CompletedList IteratorList Iterator18:23:1218:23:1200:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Release\Servidor\Almacen ]18:23:1218:23:1200:00:00View
+
+
CompletedList IteratorList Iterator18:23:1218:23:1200:00:00
CompletedCreate DirectoryCreate Directory [ C:\Varela_D2007\Output\Release\Servidor\Informes ]18:23:1218:23:1200:00:00View
+
+
CompletedList IteratorList Iterator18:23:1218:23:1200:00:00
CompletedReset Variable to DefaultReset Variable to Default18:23:1218:23:1200:00:00
Completed Log Variable ValuesLog Variable Values12:09:0212:09:02Listar valores de las variables del proyecto18:23:1218:23:13 00:00:00 View
Completed Action Group Servidor12:09:0212:09:0218:23:1318:23:13 00:00:00
Completed Compile Delphi Win32 Project Compile Servidor\AdminPV_Server.dpr12:09:0212:09:2200:00:19View18:23:1318:23:2400:00:11View
-
Completed Action Group Base12:09:2212:09:2218:23:2418:23:24 00:00:00
Completed Compile Delphi Win32 Project Compile Base\BaseD10.dpk12:09:2212:09:2400:00:0218:23:2418:23:2900:00:04 View
Completed Compile Delphi Win32 Project Compile ControlesBase\ControlesBaseD10.dpk12:09:2412:09:2500:00:0118:23:2918:23:3100:00:02 View
Completed Compile Delphi Win32 Project Compile Modulos\Parametros\Cliente\Parametros.dpk12:09:2512:09:2718:23:3118:23:33 00:00:01 View
Completed Compile Delphi Win32 Project Compile Usuarios\Usuarios.dpk12:09:2712:09:2800:00:0018:23:3318:23:3400:00:01 View
Completed Compile Delphi Win32 Project Compile Configuracion\Configuracion.dpk12:09:2812:09:2918:23:3418:23:35 00:00:01 View
Completed Action Group Módulos12:09:2912:09:2918:23:3518:23:35 00:00:00
Completed Compile Delphi Win32 Project Compile Modulos\FicherosEDI\Cliente\FicherosEDI.dpk12:09:2912:09:3118:23:3518:23:36 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk12:09:3112:09:3218:23:3618:23:38 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\VentasProceso\Cliente\VentasProceso.dpk12:09:3212:09:3418:23:3818:23:40 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk12:09:3412:09:3518:23:4018:23:41 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Recepciones\Cliente\Recepciones.dpk12:09:3512:09:3718:23:4118:23:43 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Devoluciones\Cliente\Devoluciones.dpk12:09:3712:09:3818:23:4318:23:45 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Traspasos\Cliente\Traspasos.dpk12:09:3812:09:4000:00:0218:23:4518:23:4600:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Stock\Cliente\Stock.dpk12:09:4012:09:4218:23:4618:23:48 00:00:01 View
Completed Action Group Cliente12:09:4212:09:4218:23:4818:23:48 00:00:00
Completed Compile Delphi Win32 ProjectCompile Cliente\AdminPV.dpr ]12:09:4212:09:44Compile Cliente\AdminPV.dpr 18:23:4818:23:49 00:00:01 View
Completed Compile Delphi Win32 Project Compile CargaEDI\CargaEDI.dpr ]12:09:4412:09:4518:23:4918:23:50 00:00:00 View
CompletedAction GroupCopiar los informes al directorio de salida18:23:5018:23:5000:00:00
CompletedCopy File(s)Copy File(s) [ C:\Varela_D2007\Source\Informes\*.* ]18:23:5018:23:5100:00:00View
+
Completed Export Log Export Log12:09:4512:09:4518:23:5118:23:51 00:00:00


diff --git a/Source/AdminPVGroup.groupproj b/Source/AdminPVGroup.groupproj new file mode 100644 index 0000000..5ba9cae --- /dev/null +++ b/Source/AdminPVGroup.groupproj @@ -0,0 +1,184 @@ + + + {fad576a4-cc33-4b34-a98b-46e69bb566c8} + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Base/BaseD10.dpk b/Source/Base/BaseD10.dpk index a568907..9555c9f 100644 --- a/Source/Base/BaseD10.dpk +++ b/Source/Base/BaseD10.dpk @@ -24,6 +24,7 @@ package BaseD10; {$IMAGEBASE $400000} {$RUNONLY} {$IMPLICITBUILD OFF} +{$DEFINE DEBUG} requires rtl, @@ -33,7 +34,6 @@ requires vcljpg, dbrtl, dsnap, - vcldb, PNG_D10, PngComponentsD10, JvCoreD10R, @@ -77,9 +77,6 @@ requires dxPSLnksD10, vclshlctrls, dclcxLibraryD10, - teeui, - fsTee10, - frxTee10, RemObjects_Core_D10, DataAbstract_Core_D10; diff --git a/Source/Base/BaseD10.dproj b/Source/Base/BaseD10.dproj new file mode 100644 index 0000000..a7a06df --- /dev/null +++ b/Source/Base/BaseD10.dproj @@ -0,0 +1,652 @@ + + + {51b1cbd5-e922-4e6d-b778-6de1bca9118c} + BaseD10.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\BaseD10.bpl + + + 7.0 + False + False + False + True + 0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + RELEASE + + + 7.0 + False + True + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseTrueC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2000FalseFalseFalseFalseFalse308212522.0.0.01.0.0.0 + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + (untitled) + BaseD10.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
+
+ +
dmBase
+
+ + + +
fEditorBase
+
+ +
fEditorDBBase
+
+ +
fEditorDBItem
+
+ +
fEditorGridBase
+
+ +
fEditorItem
+
+ +
fEditorPreview
+
+ + + + + + +
frViewBarraSeleccion
+
+ +
frViewBase
+
+ +
frViewGrid
+
+ +
frViewGridBase
+
+ +
frViewPreview
+
+
+
+ diff --git a/Source/Base/BaseD10.drc b/Source/Base/BaseD10.drc index edfdcdc..6c03fcc 100644 --- a/Source/Base/BaseD10.drc +++ b/Source/Base/BaseD10.drc @@ -12,18 +12,18 @@ STRINGTABLE BEGIN END -/* uConfigurarConexion.dfm */ -/* uDataModuleBase.DFM */ -/* uViewBase.dfm */ -/* uEditorBase.dfm */ -/* uEditorItem.dfm */ -/* uEditorDBBase.dfm */ -/* uViewGridBase.dfm */ -/* uEditorGridBase.dfm */ -/* uViewPreview.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorPreview.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uEditorDBItem.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewBarraSeleccion.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\uViewGrid.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela\Source\Base\BaseD10.drf */ +/* C:\Varela_D2007\Source\Base\uConfigurarConexion.dfm */ +/* C:\Varela_D2007\Source\Base\uDataModuleBase.DFM */ +/* C:\Varela_D2007\Source\Base\uViewBase.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorBase.dfm */ +/* C:\Varela_D2007\Source\Base\uViewGridBase.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorItem.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorDBBase.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorGridBase.dfm */ +/* C:\Varela_D2007\Source\Base\uViewPreview.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorPreview.dfm */ +/* C:\Varela_D2007\Source\Base\uEditorDBItem.dfm */ +/* C:\Varela_D2007\Source\Base\uViewBarraSeleccion.dfm */ +/* C:\Varela_D2007\Source\Base\uViewGrid.dfm */ +/* C:\Varela_D2007\Source\Base\BaseD10.res */ +/* C:\Varela_D2007\Source\Base\BaseD10.drf */ diff --git a/Source/Base/BaseD10.identcache b/Source/Base/BaseD10.identcache index cb0bec11a290610b8aca1302a62aaa07fac4972d..3d1570901ecd7db21979233927e3a0e09d3ae4ab 100644 GIT binary patch literal 1442 zcmbVM%TB{E5bS602|P;$2PAGyQc$HLp$2lYR2gSeEZn$SJEidT#EGboYi|LcVkxt; zGdt^}!C-Kn-m-!tD89(9Mxz^+>jnj|gd1SZq?A_Uvz5vW*W9%K@6H7YEF`?&qbyyS zzae|dED0emNzRO0{={Dt1p7TBv6HQUwUxTw(@Aso-Nuxr5zYr)HcA_oTP@z$9F~e3 zX2ffEPnCq)E~d4ueCPgEF9+NJ2I~zY{rw#NBf_Q~rr%1;7RM$_jjR~YC$n*omd;!& z9F~AHX{=9rV1`{-rxsQ|j?U_L;zGy~=};m+r*)-q1tt_%TBlo)h`GlkYyM&Gnp*fG zuSt+&OE@CWL4go$(tZ4I%nhlGC7}!t3$JBLw@(6@!Q bHPv+`mkn}kzhE1%l}=EWbn|d8PblzTRHK}l literal 2882 zcmcguL2kk@5aby><^_E~Z-mea2_%GplcmbFH^E?Rw6-bjrC+a2svd$lF1aL8B28v? zW;Rcw(Wsle@W#n_1RH!Mtg0A*#z%qL@rCx4`g_HBz8W_b3sI#fOLTjX!Sk&^ zFoH7|Q39`p2Og(N2Zyr&$LEvq3F`mQ#F$N8LN#QlP0he09kjD^?Zc4njtqFK;d6;_ zPNyO0fef?}K`fk#2J)PTxYT|sVbXG4iw^^vpp74L{UOl!s%%Ob3r-&R3OXY^_i}f= zXMktG_n8gt@LTBIUF+|eZ55D4a-?d3D6Wx~Dbhow2_1fs zaLO%mh zTTm;9d^=uE=i_1>(iOzS*;aQE1*R*w6bfQbrgA^sI~$*NxY<&VOKi5&Jrh5C>rRYL JKgUIz{Q{K0;&1=} diff --git a/Source/CargaEDI/CargaEDI.dproj b/Source/CargaEDI/CargaEDI.dproj new file mode 100644 index 0000000..6c2765e --- /dev/null +++ b/Source/CargaEDI/CargaEDI.dproj @@ -0,0 +1,584 @@ + + + + {f4b339bd-0b22-48c7-b8f3-aea30a5c3ef7} + CargaEDI.dpr + Debug + AnyCPU + true + BaseD10;Configuracion;FicherosEDI + DCC32 + ..\..\Output\Debug\Cliente\CargaEDI.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib + ..\Lib + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib + ..\Lib + DEBUG + + + Delphi.Personality + VCLApplication + +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2000FalseFalseFalseFalseFalse308212522.0.0.01.0.0.0 + + + + + + + + + + + + + + + + + + + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + CargaEDI.dpr + + + + + MainSource + + +
fCargaEDI
+
+
+
+ diff --git a/Source/CargaEDI/CargaEDI.drc b/Source/CargaEDI/CargaEDI.drc index 7642ac9..69a44c9 100644 --- a/Source/CargaEDI/CargaEDI.drc +++ b/Source/CargaEDI/CargaEDI.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,7 @@ STRINGTABLE BEGIN END +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Varela_D2007\Source\CargaEDI\uCargaEDI.dfm */ +/* C:\Varela_D2007\Source\CargaEDI\CargaEDI.res */ +/* C:\Varela_D2007\Source\CargaEDI\CargaEDI.drf */ diff --git a/Source/CargaEDI/CargaEDI.identcache b/Source/CargaEDI/CargaEDI.identcache index 2895ca953b309136dd0fab9d7ba78e0e49cf873c..f6d811238c0db21c64d0a45694f198570fe60e47 100644 GIT binary patch delta 47 ocmaFQST4fEz`&sEY!wrhSd^NR81G_aU|>G+sFr{Zx>$fF06TgOu>b%7 literal 239 zcmcJ|JqiLb5C!1iNpgZcfSqi%un@$c)igsA)`(`7`MJL-G&k5+J$MhkgLCdVA0be( zPiZP1TlTT2*0u`V#gHq(rHaqL3klp#!AG^+mn+k&Bo%ldmp4Kr<5XZqUU3QMQKr0c Qw?^uosQvkALm6Z*Uwzw8I{*Lx diff --git a/Source/CargaEDI/CargaEDI.rc b/Source/CargaEDI/CargaEDI.rc index ab63d7e..44990e7 100644 --- a/Source/CargaEDI/CargaEDI.rc +++ b/Source/CargaEDI/CargaEDI.rc @@ -1,4 +1,4 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\CargaEDI.ico" +MAINICON ICON "C:\Varela_D2007\Resources\Iconos\CargaEDI.ico" 1 VERSIONINFO FILEVERSION 2,0,0,0 PRODUCTVERSION 2,0,0,0 diff --git a/Source/Cliente/AdminPV.dpr b/Source/Cliente/AdminPV.dpr index 9946450..e50b5c9 100644 --- a/Source/Cliente/AdminPV.dpr +++ b/Source/Cliente/AdminPV.dpr @@ -1,7 +1,6 @@ program AdminPV; uses - ExceptionLog, Forms, uLoginForm, uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, diff --git a/Source/Cliente/AdminPV.dproj b/Source/Cliente/AdminPV.dproj new file mode 100644 index 0000000..10dda5b --- /dev/null +++ b/Source/Cliente/AdminPV.dproj @@ -0,0 +1,554 @@ + + + {c1d52109-a098-45a1-97ed-37902144cf8a} + AdminPV.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\AdminPV.exe + true + BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica + + + 7.0 + False + False + 0 + RELEASE + ..\..\Output\Release\Cliente + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib + ..\Lib + + + 7.0 + DEBUG + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\Lib + ..\Lib + ..\Lib + ..\Lib + + + Delphi.Personality + VCLApplication + + FalseTrueFalseTrueFalse2000FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.0.0.0Administración de puntos de ventaAdministración de puntos de venta1.0.0.0 + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + AdminPV.dpr + + + + + MainSource + + + + + +
fAcercaDe
+
+ + +
fPantallaPrincipal
+
+ +
SplashScreen
+
+
+
+ diff --git a/Source/Cliente/AdminPV.identcache b/Source/Cliente/AdminPV.identcache index 576f2d8b4225c10a95d7a124e4bb9d9c8f65b60c..bef36276f049e5baa6fd4d71060099fc7d0bac34 100644 GIT binary patch literal 556 zcmb_Z(F(#a4BVsNB07d3f^Tzs5gZJs1EDZN7q>#~M$-EI7KA+%#t_U?Ai3OKZWTq* zIy;IQ2sJeME=dle8XQR!nO0~l3RjI9xQ|C*zdhA{308u!pf!}Fj8r4&@WNx}LNT;X z4=id=4}3#~`f6>?#y&%q%?!(AFO^6VatwjnC18QZ-L29bBL8Tt kLV6?pWb6d&L-Vh|4(X!UhVqsIPh0=+vX0x4rnG(Y0cdKc3`NsjkC7A10lG^kn?eJj?qp>s!qy}z9y^un-lX@fpd|~_t)X5SWc>A? zzV5rOyPhBHm|VGG%+f>jy}_I*u3|4zfGOFDr1!s1lGvAF>`g9SD>J8ebXn{Ii~+1k zg&o>+ApH$(F?#^nPCJMy9fw*#l+9lza)wWKq8$ugEuw;6Wkbs@AQz ztuFn*d3%caTDSPopu=MpGiZw;z|0gK?GS49{{qM$ea9nIzX- dT5ibTH8AsX@;e{vp_djuk01;V*};gl&u>E~Y25$- diff --git a/Source/Cliente/AdminPV.rc b/Source/Cliente/AdminPV.rc index 3c6d592..dd78514 100644 --- a/Source/Cliente/AdminPV.rc +++ b/Source/Cliente/AdminPV.rc @@ -1,4 +1,4 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Varela\Resources\Iconos\Cliente.ico" +MAINICON ICON "C:\Varela_D2007\Resources\Iconos\Cliente.ico" 1 VERSIONINFO FILEVERSION 2,0,0,0 PRODUCTVERSION 2,0,0,0 @@ -17,6 +17,7 @@ BEGIN VALUE "InternalName", "Administración de puntos de venta\0" VALUE "ProductName", "Administración de puntos de venta\0" VALUE "ProductVersion", "1.0.0.0\0" + VALUE "CompileDate", "martes, 11 de septiembre de 2007 18:23\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/AdminPV.res b/Source/Cliente/AdminPV.res index 2d5243fce9ca0ce2c3af7a0a118215f8640cbd1b..b08ecabcfd346e6189804a542cee0811f553eff1 100644 GIT binary patch delta 167 zcmX@m&$wX%FzuJS;#&^4NA1LNd#u1btOn?JgCGfsZv?g9WHuMX@0 diff --git a/Source/Configuracion/Configuracion.dpk b/Source/Configuracion/Configuracion.dpk index e59d02e..122da4b 100644 --- a/Source/Configuracion/Configuracion.dpk +++ b/Source/Configuracion/Configuracion.dpk @@ -23,6 +23,7 @@ package Configuracion; {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD ON} +{$DEFINE DEBUG} requires JvGlobusD10R, diff --git a/Source/Configuracion/Configuracion.dproj b/Source/Configuracion/Configuracion.dproj new file mode 100644 index 0000000..cfb5b1e --- /dev/null +++ b/Source/Configuracion/Configuracion.dproj @@ -0,0 +1,606 @@ + + + {60c479d5-4a7e-4944-8c2c-759005f12e4e} + Configuracion.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\Configuracion.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + Configuracion.dpk + + + + + + + MainSource + + + + + +
fPanelControl
+
+
+ +
+ + diff --git a/Source/Configuracion/Configuracion.drc b/Source/Configuracion/Configuracion.drc index 7642ac9..aecef17 100644 --- a/Source/Configuracion/Configuracion.drc +++ b/Source/Configuracion/Configuracion.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,6 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Configuracion\uPanelControl.dfm */ +/* C:\Varela_D2007\Source\Configuracion\Configuracion.res */ +/* C:\Varela_D2007\Source\Configuracion\Configuracion.drf */ diff --git a/Source/Configuracion/Configuracion.rc b/Source/Configuracion/Configuracion.rc index 169f997..e69de29 100644 --- a/Source/Configuracion/Configuracion.rc +++ b/Source/Configuracion/Configuracion.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Configuracion/Configuracion.res b/Source/Configuracion/Configuracion.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + {5a36df18-a9b1-4d84-b46c-41d1522c62e2} + ControlesBaseD10.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\ControlesBaseD10.bpl + + + 7.0 + False + False + False + True + 0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + RELEASE + + + 7.0 + False + True + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseTrueC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1030FalseFalseFalseFalseFalse308212521.0.3.01.0.0.0ControlesBaseD10.dpk + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmControles
+
+ + +
fEditorControlBase
+
+ +
fEditorControlesBase
+
+ +
frPropiedadesControl
+
+ +
frViewAgrupaciones
+
+ +
frViewColumnas
+
+ +
frViewControlBase
+
+ +
frViewControlesBase
+
+ +
frViewControlGrid
+
+ +
frViewFiltros
+
+ +
frViewParametrosControlGrid
+
+ +
frViewPeriodoFechas
+
+ +
frViewSumarios
+
+ + +
+ + diff --git a/Source/ControlesBase/ControlesBaseD10.drc b/Source/ControlesBase/ControlesBaseD10.drc index 7642ac9..ac1854f 100644 --- a/Source/ControlesBase/ControlesBaseD10.drc +++ b/Source/ControlesBase/ControlesBaseD10.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,18 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uFormPropiedadesControl.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewControlesBase.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uEditorControlesBase.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uDataModuleControles.DFM */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewControlGrid.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewParametrosControlGrid.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewAgrupaciones.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewColumnas.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewSumarios.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewFiltros.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewControlBase.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uEditorControlBase.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewPeriodoFechas.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\ControlesBaseD10.res */ +/* C:\Varela_D2007\Source\ControlesBase\ControlesBaseD10.drf */ diff --git a/Source/ControlesBase/ControlesBaseD10.identcache b/Source/ControlesBase/ControlesBaseD10.identcache index e66917df4222bf5ff05cc111810e1d061fdbc29e..626882ecd6bb00002187f68c85917539ff5a0a36 100644 GIT binary patch literal 1274 zcmb`H-AcqT5Jvk5K8Y;e2#UfsyInAc6vVbA~nA5-iF$JZZ4fHs^3JG-2nC&z<|Y?!gYI zaMp{MKLC{eK=?UfcZO6W7>bLCWO|RLP^c9l( zhd#E79GgFh4|(~Gn^BP-7BOiev)Ny6bF;qWo7G^T#ZhjWd2V}`H8S@X%vs*&Sq>Y5 J?~Zhm-Z!16lXCz7 literal 2239 zcmc(h-AcnS6vyiu_y~OhAHch9wc^E~tZY{SIV8s}k|rf5VK`6`1z+2g)#9?@-O}Eb zg!1G6aZazZEPGwtvchoRqIQ&n7I}@%N!<`zlLspeTT05saK#W?&5FEsUWAj%nrGyW z*aj>rV72j2ltWijFpzx+-_%<@Xk+>U<`h%MeC;*JlG$i*{ikRdrttPX^`VP1> z8YxEkxJt)zC!{m>$h;V5pN{5`7Uf$FC#rlWRHf&rz(R{5(=@1aE;TP{wJD|QfntZ= z(^6CzCWJ60^6jZjmv8h68wJGtT<-tPZOR%I;9zNlS2!ZYCMB*>?c08kPnngY*>Z0B ze1!-S0_<`z~4^CChgKSDMSX>PO2##`m>!6i#yii^YRW2btb+Yt8@5!czn?A HDF*rh2i6y6 diff --git a/Source/ControlesBase/ControlesBaseD10.res b/Source/ControlesBase/ControlesBaseD10.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..784f75e021b97a9a705950f0aba7f33fbe782458 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk index 21fec2e..929e16d 100644 --- a/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dpk @@ -23,6 +23,7 @@ package Devoluciones; {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD ON} +{$DEFINE DEBUG} requires rtl, diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.dproj b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dproj new file mode 100644 index 0000000..607a53c --- /dev/null +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.dproj @@ -0,0 +1,659 @@ + + + {b18cc884-6459-4d3a-be2f-ae618ad4aa76} + Devoluciones.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Devoluciones.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Devoluciones.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmDevoluciones
+
+ +
fEditorAjustarRecepciones
+
+ +
fEditorListaDevoluciones
+
+ +
ModuleDevoluciones
+
+ +
frViewListaDevoluciones
+
+
+ +
+ + diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc index 7642ac9..3099efa 100644 --- a/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,10 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uDataModuleDevoluciones.DFM */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uViewListaDevoluciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uEditorListaDevoluciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uPluginControllerDevoluciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uEditorAjustarDevoluciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\Devoluciones.res */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\Devoluciones.drf */ diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc b/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc index 153736a..e69de29 100644 --- a/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.res b/Source/Modulos/Devoluciones/Cliente/Devoluciones.res index 1641339fcc482e7e3492d1b45813a86619622c33..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk index 7b45b1e..e014b67 100644 --- a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dpk @@ -23,6 +23,7 @@ package FicherosEDI; {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD ON} +{$DEFINE DEBUG} requires vcl, diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dproj b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dproj new file mode 100644 index 0000000..0b28833 --- /dev/null +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.dproj @@ -0,0 +1,655 @@ + + + {184c8df1-a667-496a-975e-df3d0e0781b0} + FicherosEDI.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\FicherosEDI.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + FicherosEDI.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fAsistenteCargaFicheros
+
+ + +
dmFicherosEDI
+
+ +
fEditorHistorialCargasEDI
+
+ +
ModuleFicherosEDI
+
+ + +
frViewHistorialCargasEDI
+
+
+ +
+ + diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc index 7642ac9..ad1b50f 100644 --- a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,10 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uAsistenteCargaFicheros.dfm */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uDataModuleFicherosEDI.DFM */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uViewHistorialCargasEDI.dfm */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uEditorHistorialCargasEDI.dfm */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uPluginControllerFicherosEDI.dfm */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.res */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.drf */ diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc index 169f997..e69de29 100644 --- a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp - - - - - - - - - - - AdminPV.dpr - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 3 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - ..\..\Output\Debug\Cliente - .\ - ..\Lib - ..\Lib - ..\Lib;..\Base - BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica - EUREKALOG;EUREKALOG_VER6 - - True - - - - - - False - - - True - False - - - - $00000000 - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 2 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - Rodax Software S.L. - - 2.0.0.0 - Administración de puntos de venta - - - - Administración de puntos de venta - 1.0.0.0 - - - + + + {6be250c1-7a66-46ce-a9aa-2c4fe6aa768e} + Parametros.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Parametros.bpl + + + 7.0 + False + False + True + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + True + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Parametros.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + +
dmParametros
+
+ +
frViewParametrosCentro
+
+ +
frViewParametrosColeccion
+
+
+ +
+ -
diff --git a/Source/Modulos/Parametros/Cliente/Parametros.drc b/Source/Modulos/Parametros/Cliente/Parametros.drc index 7642ac9..0f36b8a 100644 --- a/Source/Modulos/Parametros/Cliente/Parametros.drc +++ b/Source/Modulos/Parametros/Cliente/Parametros.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,8 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uDataModuleParametros.DFM */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uViewParametrosCentro.dfm */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uViewParametrosColeccion.dfm */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\Parametros.res */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\Parametros.drf */ diff --git a/Source/Modulos/Parametros/Cliente/Parametros.rc b/Source/Modulos/Parametros/Cliente/Parametros.rc index 153736a..e69de29 100644 --- a/Source/Modulos/Parametros/Cliente/Parametros.rc +++ b/Source/Modulos/Parametros/Cliente/Parametros.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.0.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/Parametros/Cliente/Parametros.res b/Source/Modulos/Parametros/Cliente/Parametros.res index ea6f55be3be373bb77635abcf5cb62b4a1d7e3e8..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmX@0t}sCX00sd8xBvhE literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!`F$75hlhW6Znuj?mK*AD#yu zyD#i}D-7Op{Esw$$7f;tP&`q4$G+Cec!K8`_qihW>`Se?FaOBC5tDo(_GZaJ)xb^O z^u`KAjXqWE17-V8+7DJ3nreye<(O6VtJ+_8T~T|`s6jHk=0ta$cd{CH)9g(@388Rb PtL`asx)+zP{Bh}DvbcG> diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.dpk b/Source/Modulos/Recepciones/Cliente/Recepciones.dpk index 76a3206..ad71ba4 100644 --- a/Source/Modulos/Recepciones/Cliente/Recepciones.dpk +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.dpk @@ -23,6 +23,7 @@ package Recepciones; {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD ON} +{$DEFINE DEBUG} requires rtl, diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.dproj b/Source/Modulos/Recepciones/Cliente/Recepciones.dproj new file mode 100644 index 0000000..f880b17 --- /dev/null +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.dproj @@ -0,0 +1,677 @@ + + + {5990f68e-d16f-46ae-93db-ba7d141d4021} + Recepciones.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Recepciones.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + + + + + Intraweb 8.0 Design Package for Borland Development Studio 2006 + + + Recepciones.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmRecepciones
+
+ +
fEditorAjustarRecepciones
+
+ +
fEditorListaRecepciones
+
+ +
fEditorListaRecepcionesAlbaran
+
+ +
ModuleRecepciones
+
+ +
frViewListaRecepciones
+
+ +
frViewListaRecepcionesAlbaran
+
+
+ +
+ + diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.drc b/Source/Modulos/Recepciones/Cliente/Recepciones.drc index 7642ac9..2c1e586 100644 --- a/Source/Modulos/Recepciones/Cliente/Recepciones.drc +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,12 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uDataModuleRecepciones.DFM */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uViewListaRecepciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uEditorListaRecepciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uViewListaRecepcionesAlbaran.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uEditorListaRecepcionesAlbaran.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uPluginControllerRecepciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uEditorAjustarRecepciones.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\Recepciones.res */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\Recepciones.drf */ diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.rc b/Source/Modulos/Recepciones/Cliente/Recepciones.rc index 169f997..e69de29 100644 --- a/Source/Modulos/Recepciones/Cliente/Recepciones.rc +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.res b/Source/Modulos/Recepciones/Cliente/Recepciones.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + {d34ce1e7-d660-436d-a982-7683ff67eecd} + ReferenciaGenerica.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\ReferenciaGenerica.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + ReferenciaGenerica.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmReferenciaGenerica
+
+ +
fEditorCambioReferenciaGenerica
+
+ +
fEditorListaReferenciaGenerica
+
+ +
ModuleReferenciaGenerica
+
+ +
frViewListaReferenciaGenerica
+
+
+ + + + diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc index 7642ac9..855053a 100644 --- a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,10 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uDataModuleReferenciaGenerica.DFM */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uViewListaReferenciaGenerica.dfm */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uEditorListaReferenciaGenerica.dfm */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uPluginControllerReferenciaGenerica.dfm */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uEditorCambioReferenciaGenerica.dfm */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.res */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.drf */ diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc index 169f997..e69de29 100644 --- a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + {4380a611-ee0c-4a44-ba5c-1ae341efa141} + Stock.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Stock.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 2 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.2.0 + + + + + + 1.0.0.0 + + + + Stock.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmStock
+
+ +
fEditorControlStockEDI
+
+ +
fEditorControlStockVARELA
+
+ +
ModuleStock
+
+ +
frViewControlGridStockEDI
+
+ +
frViewControlGridStockEDIInventario
+
+ +
frViewControlGridStockPrendasCentros
+
+ +
frViewControlGridStockVARELA
+
+ +
frViewFiltrosStock
+
+
+ + + + diff --git a/Source/Modulos/Stock/Cliente/Stock.drc b/Source/Modulos/Stock/Cliente/Stock.drc index 7642ac9..8ce5d7c 100644 --- a/Source/Modulos/Stock/Cliente/Stock.drc +++ b/Source/Modulos/Stock/Cliente/Stock.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,14 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uDataModuleStock.DFM */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewFiltrosStock.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockEDI.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockPrendasCentros.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockEDIInventario.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uEditorControlStockEDI.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockVARELA.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uEditorControlStockVARELA.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uPluginControllerStock.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\Stock.res */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\Stock.drf */ diff --git a/Source/Modulos/Stock/Cliente/Stock.rc b/Source/Modulos/Stock/Cliente/Stock.rc index f4e84f6..e69de29 100644 --- a/Source/Modulos/Stock/Cliente/Stock.rc +++ b/Source/Modulos/Stock/Cliente/Stock.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,2,0 -PRODUCTVERSION 1,0,2,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.2.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/Stock/Cliente/Stock.res b/Source/Modulos/Stock/Cliente/Stock.res index 31c891c793c14bddb38063f7b351f28a1e100258..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5J8vXa5QWRw5@@vo2jt^`06AC_-nK+c8)h~|7%x4LJ>V`I}+x$dKGol|w|-f6X&*@2|*L)2V*e%a6YUD@pT z-2VQ(`)TyH8V8ai$&RS*lvEcnpYGCT*v*wp+Fc)g*7;Yqk{jGC8O%pW7aAkaj-i+H)%$#se=n^d0dxj@`?CHTJeXblZsiQn4#; z;)larTK+a4{3BqK;~~##CkNN+yB+@I$Mf%N$p7KMgBX2}l!I2baBv>WtMQXle0m(% z!z;3U;knszwriTjHwKM$eVoiR>!nS;C%} z=Gu<6*hu7mM!$>o;DbTT5qE37Y_cEt^4&;;yZC+K_Qc;dt@p{dHQEPkYOs?7y5O#1 zivxYlB|fp@8|^&05<5OMHmf6Ux9MUG4)oc7$DRv&0#E5$dcwMh-P<=AzIqiFcgST})7$=9$ z0c>Ov`|p_I4ky}h^&AMxYf;=n)4#5*+-n^;oZ$gm{$fu{{K=sj<0t1Pzr;^|IMcyn zbWd{^QpflG+$Puw`qaR)^FUK`+$kGky992@1oA=bh{?ZgkgJ$}!> zd^u*#-iDasXD;s?&ynV$?xlsD@l*S;KUxdE1k4oXX>W=#hj^PV`#P9pB zHt~9%YWbHP^X{_?ET7lfyc?Oz^FZ7C&362#Y2q$>hkwPN`0l&l2X@T2O{rh`jr@z7 z#u5w7I|4cdpPM=GJ(!pKjTj1k zY~p)gcb)%sB*tXC|GfUxCnpH}xWDj4T*U6&6gxT0So2x1 zBgUv7;^Q5NbME8nb59MmDPGus&mG8b6~2;>lIU&LZsTwze(H0n{VKl$wDYd3nQzvN&G^e{AVpvI`R+lXu(Q#Hx^0|FO+A9fu% z!S`*RZ&d=s}zcA}H__yRQ$xF!#$)d=aG;-JHOrIT)h1o9h!t7P~enS`& zVO7HH`^9emrkPD8egC?BWbfHy`&jb6eIlLD>URykX6Spy!GV9(;48?E9qIGOf&18( zA9eIhZTuE;wDV9S$M(c({r}KDQ|qxK)Q + + {8271ac21-0741-43b7-8373-432a0bf0ec7a} + Traspasos.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Traspasos.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + Traspasos.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmTraspasos
+
+ +
fEditorAjustarTraspasos
+
+ +
fEditorListaTraspasos
+
+ +
ModuleTraspasos
+
+ +
frViewListaTraspasos
+
+
+ + + + diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.drc b/Source/Modulos/Traspasos/Cliente/Traspasos.drc index 7642ac9..b92e7f2 100644 --- a/Source/Modulos/Traspasos/Cliente/Traspasos.drc +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,10 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uDataModuleTraspasos.DFM */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uViewListaTraspasos.dfm */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uEditorListaTraspasos.dfm */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uPluginControllerTraspasos.dfm */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uEditorAjustarTraspasos.dfm */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\Traspasos.res */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\Traspasos.drf */ diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.rc b/Source/Modulos/Traspasos/Cliente/Traspasos.rc index 169f997..e69de29 100644 --- a/Source/Modulos/Traspasos/Cliente/Traspasos.rc +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.res b/Source/Modulos/Traspasos/Cliente/Traspasos.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + {4210e006-6776-47b8-963e-f11c96ed5691} + VentasProceso.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\VentasProceso.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 1 + 0 + 3 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.3.0 + + + + + + 1.0.0.0 + + + + VentasProceso.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmVentasEnProceso
+
+ +
fEditorControlesVentasProceso
+
+ +
fEditorControlVentaProceso
+
+ +
ModuleVentasProceso
+
+ +
frViewControlGridVentaProceso
+
+ +
frViewControlesVentaProceso
+
+ +
frViewControlVentaProceso
+
+
+ + + + diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc index 7642ac9..098f26d 100644 --- a/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,12 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uDataModuleVentasProceso.DFM */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uViewControlesVentaProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uEditorControlesVentaProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uPluginControllerVentasProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uViewControGridlVentaProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uViewControlVentaProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uEditorControlVentaProceso.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\VentasProceso.res */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\VentasProceso.drf */ diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc b/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc index 169f997..e69de29 100644 --- a/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.rc @@ -1,22 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,0,3,0 -PRODUCTVERSION 1,0,3,0 -FILEFLAGSMASK 0x3FL -FILEFLAGS 0x00L -FILEOS 0x40004L -FILETYPE 0x1L -FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "0C0A04E4" - BEGIN - VALUE "FileVersion", "1.0.3.0\0" - VALUE "ProductVersion", "1.0.0.0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0C0A, 1252 - END -END diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.res b/Source/Modulos/VentasProceso/Cliente/VentasProceso.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmeBCRhXav00i{`f&c&j literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + + {e78ab5a1-3e67-4073-abb0-540b2303c7d3} + VentasTerminadas.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\VentasTerminadas.bpl + + + 7.0 + False + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + RELEASE + + + 7.0 + False + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + ..\..\..\Lib + DEBUG + True + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1030FalseFalseFalseFalseFalse308212521.0.3.01.0.0.0VentasTerminadas.dpk + + + + + + + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dmVentasTerminadas
+
+ +
fEditorControlesVentasTerminadas
+
+ +
fEditorControlResumenVentas
+
+ +
fEditorControlVentasTerminadas
+
+ +
ModuleVentasTerminadas
+
+ +
frViewControlGridVentasTerminadas
+
+ +
frViewControlGridResumenVentas
+
+ +
frViewControlesVentasTerminadas
+
+ +
frViewControlVentasTerminadas
+
+ + + + + + +
+ + diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc index 7642ac9..99d0438 100644 --- a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,14 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uDataModuleVentasTerminadas.DFM */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControlesVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uEditorControlesVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControGridlVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControlVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControGridResumenVentas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uEditorControlResumenVentas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uPluginControllerVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uEditorControlVentasTerminadas.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.res */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.drf */ diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..784f75e021b97a9a705950f0aba7f33fbe782458 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp + diff --git a/Source/Servidor/AdminPV_Server.dof b/Source/Servidor/AdminPV_Server.dof index 1804a4b..e69de29 100644 --- a/Source/Servidor/AdminPV_Server.dof +++ b/Source/Servidor/AdminPV_Server.dof @@ -1,480 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=3 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir=..\..\Output\Servidor -UnitOutputDir=.\ -PackageDLLOutputDir=..\Lib -PackageDCPOutputDir=..\Lib -SearchPath=..\Lib;..\Base -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7;EasyListviewD7 -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\ -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=1 -MinorVer=2 -Release=5 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=3082 -CodePage=1252 -[Version Info Keys] -CompanyName=Rodax Software S.L. -FileDescription= -FileVersion=1.2.5.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName=AdminPV_Server -ProductVersion=1.1.0.0 -Comments= -[Excluded Packages] -c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview -T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc. -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=3 -Item0=..\Lib -Item1=..\Lib;..\Base -Item2=..\..\..\Lib -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=.\ -[HistoryLists\hlOutputDirectorry] -Count=2 -Item0=..\..\Output\Cliente -Item1=..\..\Output\Servidor -[HistoryLists\hlBPLOutput] -Count=3 -Item0=..\Lib -Item1=..\..\..\..\Output\Cliente -Item2=..\..\Output\Cliente -[HistoryLists\hlDCPOutput] -Count=2 -Item0=..\Lib -Item1=..\..\..\Lib -[Exception Log] -EurekaLog Version=519 -Activate=0 -Activate Handle=1 -Save Log File=1 -Foreground Tab=0 -Freeze Activate=0 -Freeze Timeout=0 -Freeze Message=The application seems to be frozen. -SMTP From=eurekalog@email.com -SMTP Host= -SMTP Port=25 -SMTP UserID= -SMTP Password= -Append to Log=0 -Show TerminateBtn=1 -TerminateBtn Operation=1 -Errors Number=32 -Errors Terminate=3 -Email Address= -Email Object= -Email Send Options=0 -Output Path= -Encrypt Password= -AutoCloseDialogSecs=0 -WebSendMode=0 -SupportULR= -HTMLLayout Count=15 -HTMLLine0="%3Chtml%3E" -HTMLLine1=" %3Chead%3E" -HTMLLine2=" %3C/head%3E" -HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E" -HTMLLine4=" %3Ctable width="100%%" border="0"%3E" -HTMLLine5=" %3Ctr%3E" -HTMLLine6=" %3Ctd nowrap%3E" -HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E" -HTMLLine8=" %3C%%HTML_TAG%%%3E" -HTMLLine9=" %3C/font%3E" -HTMLLine10=" %3C/td%3E" -HTMLLine11=" %3C/tr%3E" -HTMLLine12=" %3C/table%3E" -HTMLLine13=" %3C/body%3E" -HTMLLine14="%3C/html%3E" -AutoCrashOperation=1 -AutoCrashNumber=10 -AutoCrashMinutes=1 -WebURL= -WebUserID= -WebPassword= -WebPort=0 -AttachedFiles= -Count=0 -EMail Message Line Count=0 -loNoDuplicateErrors=0 -loAppendReproduceText=0 -loDeleteLogAtVersionChange=0 -loAddComputerNameInLogFileName=0 -loSaveModulesSection=1 -loSaveCPUSection=1 -soAppStartDate=1 -soAppName=1 -soAppVersionNumber=1 -soAppParameters=1 -soAppCompilationDate=1 -soExcDate=1 -soExcAddress=1 -soExcModule=1 -soExcType=1 -soExcMessage=1 -soActCtlsFormClass=1 -soActCtlsFormText=1 -soActCtlsControlClass=1 -soActCtlsControlText=1 -soCmpName=1 -soCmpUser=1 -soCmpTotalMemory=1 -soCmpFreeMemory=1 -soCmpTotalDisk=1 -soCmpFreeDisk=1 -soCmpSysUpTime=1 -soCmpProcessor=1 -soCmpDisplayMode=1 -soOSType=1 -soOSBuildN=1 -soOSUpdate=1 -soOSLanguage=1 -soNetIP=1 -soNetSubmask=1 -soNetGateway=1 -soNetDNS1=1 -soNetDNS2=1 -soNetDHCP=1 -sndShowSendDialog=1 -sndShowSuccessFailureMsg=0 -sndSendEntireLog=0 -sndSendXMLLogCopy=0 -sndSendScreenshot=0 -sndUseOnlyActiveWindow=0 -sndSendLastHTMLPage=1 -sndSendInSeparatedThread=0 -sndAddDateInFileName=0 -sndCompressAllFiles=0 -edoShowExceptionDialog=1 -edoSendEmailChecked=1 -edoAttachScreenshotChecked=1 -edoShowCopyToClipOption=1 -edoShowDetailsButton=1 -edoShowInDetailedMode=0 -edoShowInTopMostMode=0 -edoUseEurekaLogLookAndFeel=1 -csoShowDLLs=1 -csoShowBPLs=1 -csoShowBorlandThreads=1 -csoShowWindowsThreads=1 -csoShowProcedureOffset=0 -boActivateCrashDetection=0 -boPauseBorlandThreads=0 -boDoNotPauseMainThread=0 -boPauseWindowsThreads=0 -boUseMainModuleOptions=1 -boCopyLogInCaseOfError=1 -boSaveCompressedCopyInCaseOfError=0 -Count mtInformationMsgCaption=1 -mtInformationMsgCaption0="Information." -Count mtQuestionMsgCaption=1 -mtQuestionMsgCaption0="Question." -Count mtDialog_Caption=1 -mtDialog_Caption0="Error." -Count mtDialog_ErrorMsgCaption=2 -mtDialog_ErrorMsgCaption0="An error has occurred during program execution." -mtDialog_ErrorMsgCaption1="Please read the following information for further details." -Count mtDialog_GeneralCaption=1 -mtDialog_GeneralCaption0="General" -Count mtDialog_GeneralHeader=1 -mtDialog_GeneralHeader0="General Information" -Count mtDialog_CallStackCaption=1 -mtDialog_CallStackCaption0="Call Stack" -Count mtDialog_CallStackHeader=1 -mtDialog_CallStackHeader0="Call Stack Information" -Count mtDialog_ModulesCaption=1 -mtDialog_ModulesCaption0="Modules" -Count mtDialog_ModulesHeader=1 -mtDialog_ModulesHeader0="Modules Information" -Count mtDialog_CPUCaption=1 -mtDialog_CPUCaption0="CPU" -Count mtDialog_CPUHeader=1 -mtDialog_CPUHeader0="CPU Information" -Count mtDialog_CustomDataCaption=1 -mtDialog_CustomDataCaption0="Other" -Count mtDialog_CustomDataHeader=1 -mtDialog_CustomDataHeader0="Other Information" -Count mtDialog_OKButtonCaption=1 -mtDialog_OKButtonCaption0="%26OK" -Count mtDialog_TerminateButtonCaption=1 -mtDialog_TerminateButtonCaption0="%26Terminate" -Count mtDialog_RestartButtonCaption=1 -mtDialog_RestartButtonCaption0="%26Restart" -Count mtDialog_DetailsButtonCaption=1 -mtDialog_DetailsButtonCaption0="%26Details" -Count mtDialog_SendMessage=1 -mtDialog_SendMessage0="%26Send this error via Internet" -Count mtDialog_ScreenshotMessage=1 -mtDialog_ScreenshotMessage0="%26Attach a Screenshot image" -Count mtDialog_CopyMessage=1 -mtDialog_CopyMessage0="%26Copy to Clipboard" -Count mtDialog_SupportMessage=1 -mtDialog_SupportMessage0="Go to the Support Page" -Count mtLog_AppHeader=1 -mtLog_AppHeader0="Application" -Count mtLog_AppStartDate=1 -mtLog_AppStartDate0="Start Date" -Count mtLog_AppName=1 -mtLog_AppName0="Name/Description" -Count mtLog_AppVersionNumber=1 -mtLog_AppVersionNumber0="Version Number" -Count mtLog_AppParameters=1 -mtLog_AppParameters0="Parameters" -Count mtLog_AppCompilationDate=1 -mtLog_AppCompilationDate0="Compilation Date" -Count mtLog_ExcHeader=1 -mtLog_ExcHeader0="Exception" -Count mtLog_ExcDate=1 -mtLog_ExcDate0="Date" -Count mtLog_ExcAddress=1 -mtLog_ExcAddress0="Address" -Count mtLog_ExcModule=1 -mtLog_ExcModule0="Module" -Count mtLog_ExcType=1 -mtLog_ExcType0="Type" -Count mtLog_ExcMessage=1 -mtLog_ExcMessage0="Message" -Count mtLog_ActCtrlsHeader=1 -mtLog_ActCtrlsHeader0="Active Controls" -Count mtLog_ActCtrlsFormClass=1 -mtLog_ActCtrlsFormClass0="Form Class" -Count mtLog_ActCtrlsFormText=1 -mtLog_ActCtrlsFormText0="Form Text" -Count mtLog_ActCtrlsControlClass=1 -mtLog_ActCtrlsControlClass0="Control Class" -Count mtLog_ActCtrlsControlText=1 -mtLog_ActCtrlsControlText0="Control Text" -Count mtLog_CmpHeader=1 -mtLog_CmpHeader0="Computer" -Count mtLog_CmpName=1 -mtLog_CmpName0="Name" -Count mtLog_CmpUser=1 -mtLog_CmpUser0="User" -Count mtLog_CmpTotalMemory=1 -mtLog_CmpTotalMemory0="Total Memory" -Count mtLog_CmpFreeMemory=1 -mtLog_CmpFreeMemory0="Free Memory" -Count mtLog_CmpTotalDisk=1 -mtLog_CmpTotalDisk0="Total Disk" -Count mtLog_CmpFreeDisk=1 -mtLog_CmpFreeDisk0="Free Disk" -Count mtLog_CmpSystemUpTime=1 -mtLog_CmpSystemUpTime0="System Up Time" -Count mtLog_CmpProcessor=1 -mtLog_CmpProcessor0="Processor" -Count mtLog_CmpDisplayMode=1 -mtLog_CmpDisplayMode0="Display Mode" -Count mtLog_OSHeader=1 -mtLog_OSHeader0="Operating System" -Count mtLog_OSType=1 -mtLog_OSType0="Type" -Count mtLog_OSBuildN=1 -mtLog_OSBuildN0="Build #" -Count mtLog_OSUpdate=1 -mtLog_OSUpdate0="Update" -Count mtLog_OSLanguage=1 -mtLog_OSLanguage0="Language" -Count mtLog_NetHeader=1 -mtLog_NetHeader0="Network" -Count mtLog_NetIP=1 -mtLog_NetIP0="IP Address" -Count mtLog_NetSubmask=1 -mtLog_NetSubmask0="Submask" -Count mtLog_NetGateway=1 -mtLog_NetGateway0="Gateway" -Count mtLog_NetDNS1=1 -mtLog_NetDNS10="DNS 1" -Count mtLog_NetDNS2=1 -mtLog_NetDNS20="DNS 2" -Count mtLog_NetDHCP=1 -mtLog_NetDHCP0="DHCP" -Count mtLog_CustInfoHeader=1 -mtLog_CustInfoHeader0="Custom Information" -Count mtCallStack_Address=1 -mtCallStack_Address0="Address" -Count mtCallStack_Name=1 -mtCallStack_Name0="Module" -Count mtCallStack_Unit=1 -mtCallStack_Unit0="Unit" -Count mtCallStack_Class=1 -mtCallStack_Class0="Class" -Count mtCallStack_Procedure=1 -mtCallStack_Procedure0="Procedure/Method" -Count mtCallStack_Line=1 -mtCallStack_Line0="Line" -Count mtCallStack_MainThread=1 -mtCallStack_MainThread0="Main" -Count mtCallStack_ExceptionThread=1 -mtCallStack_ExceptionThread0="Exception Thread" -Count mtCallStack_RunningThread=1 -mtCallStack_RunningThread0="Running Thread" -Count mtCallStack_CallingThread=1 -mtCallStack_CallingThread0="Calling Thread" -Count mtCallStack_ThreadID=1 -mtCallStack_ThreadID0="ID" -Count mtCallStack_ThreadPriority=1 -mtCallStack_ThreadPriority0="Priority" -Count mtCallStack_ThreadClass=1 -mtCallStack_ThreadClass0="Class" -Count mtSendDialog_Caption=1 -mtSendDialog_Caption0="Send." -Count mtSendDialog_Message=1 -mtSendDialog_Message0="Message" -Count mtSendDialog_Resolving=1 -mtSendDialog_Resolving0="Resolving DNS..." -Count mtSendDialog_Connecting=1 -mtSendDialog_Connecting0="Connecting with server..." -Count mtSendDialog_Connected=1 -mtSendDialog_Connected0="Connected with server." -Count mtSendDialog_Sending=1 -mtSendDialog_Sending0="Sending message..." -Count mtReproduceDialog_Caption=1 -mtReproduceDialog_Caption0="Request" -Count mtReproduceDialog_Request=1 -mtReproduceDialog_Request0="Please describe the steps to reproduce the error:" -Count mtReproduceDialog_OKButtonCaption=1 -mtReproduceDialog_OKButtonCaption0="%26OK" -Count mtModules_Handle=1 -mtModules_Handle0="Handle" -Count mtModules_Name=1 -mtModules_Name0="Name" -Count mtModules_Description=1 -mtModules_Description0="Description" -Count mtModules_Version=1 -mtModules_Version0="Version" -Count mtModules_Size=1 -mtModules_Size0="Size" -Count mtModules_LastModified=1 -mtModules_LastModified0="Modified" -Count mtModules_Path=1 -mtModules_Path0="Path" -Count mtCPU_Registers=1 -mtCPU_Registers0="Registers" -Count mtCPU_Stack=1 -mtCPU_Stack0="Stack" -Count mtCPU_MemoryDump=1 -mtCPU_MemoryDump0="Memory Dump" -Count mtSend_SuccessMsg=1 -mtSend_SuccessMsg0="The message was sent successfully." -Count mtSend_FailureMsg=1 -mtSend_FailureMsg0="Sorry, sending the message didn't work." - - diff --git a/Source/Servidor/AdminPV_Server.dpr b/Source/Servidor/AdminPV_Server.dpr index 7ed1aae..168ff0e 100644 --- a/Source/Servidor/AdminPV_Server.dpr +++ b/Source/Servidor/AdminPV_Server.dpr @@ -3,7 +3,6 @@ program AdminPV_Server; {#ROGEN:VARELA.rodl} // RemObjects: Careful, do not remove! uses - uROComInit, Forms, fServerForm in 'fServerForm.pas' {ServerForm}, VARELA_Intf in 'VARELA_Intf.pas', @@ -59,7 +58,9 @@ uses EDI_Log_Impl in 'EDI_Log_Impl.pas', schControlesClient_Intf in '..\ControlesBase\Reglas\schControlesClient_Intf.pas', schControlesServer_Intf in '..\ControlesBase\Reglas\schControlesServer_Intf.pas', - RegExpr in 'RegExpr.pas'; + RegExpr in 'RegExpr.pas', + uDBSelectionList in '..\Base\uDBSelectionList.pas', + uIntegerList in '..\Base\uIntegerList.pas'; {$R *.res} {$R RODLFile.res} diff --git a/Source/Servidor/AdminPV_Server.dproj b/Source/Servidor/AdminPV_Server.dproj index 0ec2541..dcc9ed6 100644 --- a/Source/Servidor/AdminPV_Server.dproj +++ b/Source/Servidor/AdminPV_Server.dproj @@ -1,4 +1,5 @@ - + + {86364157-b301-43dd-bfad-250a58064559} AdminPV_Server.dpr @@ -6,6 +7,7 @@ AnyCPU DCC32 ..\..\Output\Debug\Servidor\AdminPV_Server.exe + vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dbxcds;DbxCommonDriver;dbexpress;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;xmlrtl;RemObjects_Core_D10;RemObjects_WebBroker_D10;RemObjects_RODX_D10;RemObjects_BPDX_D10;RemObjects_Synapse_D10;RemObjects_Indy_D10;DataAbstract_Core_D10;DataAbstract_IDE_D10;DataAbstract_DBXDriver_D10B;DataAbstract_SQLiteDriver_D10;DataAbstract_Scripting_D10;PascalScript_RO_D10;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;fqb100;frx10;frxADO10;frxBDE10;frxDB10;frxe10;frxIBX10;fs10;fsADO10;fsBDE10;fsDB10;fsIBX10;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;ccpack10dsg;ccpack10;EasyListviewD10;GUISDK_D10;JvAppFrmD10R;JvCoreD10R;JclVcl;Jcl;JvSystemD10R;JvStdCtrlsD10R;JvBandsD10R;JvDBD10R;JvDlgsD10R;JvBDED10R;JvCmpD10R;JvCryptD10R;JvCtrlsD10R;JvCustomD10R;JvDockingD10R;JvDotNetCtrlsD10R;JvEDID10R;JvGlobusD10R;JvHMID10R;JvInterpreterD10R;JvJansD10R;JvManagedThreadsD10R;JvMMD10R;JvPageCompsD10R;JvPrintPreviewD10R;JvRuntimeDesignD10R;JvTimeFrameworkD10R;JvUIBD10R;JvValidatorsD10R;JvWizardD10R;JvXPCtrlsD10R;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;RemObjects_DataSnap_D10 7.0 @@ -14,17 +16,15 @@ True 0 3 - ..\..\Output\Debug\Servidor + ..\..\Output\Release\Servidor .\ .\ .\ - ..\Lib - ..\Lib ..\Lib;..\Base ..\Lib;..\Base ..\Lib;..\Base ..\Lib;..\Base - EUREKALOG;EUREKALOG_VER6;RELEASE + RELEASE 7.0 @@ -34,65 +34,33 @@ .\ .\ .\ - ..\Lib - ..\Lib ..\Lib;..\Base ..\Lib;..\Base ..\Lib;..\Base ..\Lib;..\Base - EUREKALOG;EUREKALOG_VER6;DEBUG + DEBUG Delphi.Personality VCLApplication - - False - True - False - - - C:\Archivos de programa\Borland\Delphi7\Bin\ - - - True - False - 1 - 2 - 5 - 0 - False - False - False - False - False - 3082 - 1252 - - - Rodax Software S.L. - - 1.2.5.0 - - - - - AdminPV_Server - 1.2.5.0 - - miércoles, 05 de septiembre de 2007 19:15 - - - AdminPV_Server.dpr - - +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1250FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.2.5.0AdminPV_Server1.2.5.0martes, 11 de septiembre de 2007 9:33AdminPV_Server.dpr + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + - + MainSource + + @@ -192,27 +160,23 @@ - - diff --git a/Source/Servidor/AdminPV_Server.drc b/Source/Servidor/AdminPV_Server.drc index 81e21e7..7e58c75 100644 --- a/Source/Servidor/AdminPV_Server.drc +++ b/Source/Servidor/AdminPV_Server.drc @@ -2516,64 +2516,63 @@ BEGIN SysConst_SEndOfFile, "Read beyond end of file" END -/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\controls.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */ /* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */ /* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */ -/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\buttons.res */ -/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\extdlgs.res */ -/* T:\Componentes\FastReport 3\LibD10\frxProgress.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxCtrls.res */ -/* T:\Componentes\FastReport 3\LibD10\frxDock.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxPreview.res */ -/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */ +/* T:\Componentes\FastReport 3\LibD10\frxProgress.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxCtrls.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxDock.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxSearchDialog.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreviewPageSettings.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxPreview.RES */ +/* T:\Componentes\FastReport 3\LibD10\frxPrintDialog.DFM */ /* T:\Componentes\FastReport 3\LibD10\frxPassw.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.dfm */ -/* T:\Componentes\FastReport 3\LibD10\frxClass.res */ -/* T:\Componentes\jvcl\resources\JvConsts.res */ -/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\WindowsXP.res */ +/* T:\Componentes\FastReport 3\LibD10\frxDialogForm.DFM */ +/* T:\Componentes\FastReport 3\LibD10\frxClass.RES */ +/* T:\Componentes\jvcl\lib\d10\JvConsts.res */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ /* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */ /* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */ -/* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */ /* T:\Componentes\jvcl\lib\d10\JvLogForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\uDataModuleServer.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ -/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\lib\filectrl.res */ -/* T:\Componentes\jvcl\resources\JvToolEdit.res */ -/* T:\Componentes\jvcl\resources\JvSpin.res */ +/* C:\Varela_D2007\Source\Servidor\uDataModuleServer.dfm */ +/* C:\Varela_D2007\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */ +/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */ +/* T:\Componentes\jvcl\lib\d10\JvToolEdit.res */ +/* T:\Componentes\jvcl\lib\d10\JvSpin.Res */ /* T:\Componentes\Developer Express Inc\Lib\D10\dxOffice11.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxLookAndFeelPainters.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxControls.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxEdit.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ +/* C:\Varela_D2007\Source\Servidor\Configuracion\uConfFicherosEDI.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxShellBrowser.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConexionBD.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfGeneral.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Configuracion\uConfiguracion.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Sales_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\Configuracion\uConexionBD.dfm */ +/* C:\Varela_D2007\Source\Servidor\Configuracion\uConfGeneral.dfm */ +/* C:\Varela_D2007\Source\Servidor\Configuracion\uConfiguracion.dfm */ +/* C:\Varela_D2007\Source\Servidor\EDI_Sales_Impl.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxGrid.res */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterControlDialog.dfm */ /* T:\Componentes\Developer Express Inc\Lib\D10\cxFilterDialog.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Log_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\uAcercaDe.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\fServerForm.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\EDI_Inventary_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\srvInformes_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\AdminPV_Server.res */ -/* C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Source\Servidor\RODLFILE.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf89.tmp */ +/* C:\Varela_D2007\Source\Servidor\EDI_Log_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\Services\EDI_Sales\uDataModuleEDI_Sales.dfm */ +/* C:\Varela_D2007\Source\Servidor\uAcercaDe.dfm */ +/* C:\Varela_D2007\Source\Servidor\fServerForm.dfm */ +/* C:\Varela_D2007\Source\Servidor\EDI_Inventary_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\Services\EDI_Inventary\uDataModuleEDI_Inventary.dfm */ +/* C:\Varela_D2007\Source\Servidor\Services\Login\srvLogin_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\srvInformes_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\Services\TransferenciaFicheros\srvTransfereciaFicheros_Impl.dfm */ +/* C:\Varela_D2007\Source\ControlesBase\Servidor\srvControles_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Servidor\srvVentasEnProceso_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Servidor\srvVentasTerminadas_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Servidor\srvReferenciaGenerica_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Servidor\srvRecepciones_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Servidor\srvDevoluciones_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Servidor\srvTraspasos_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\Stock\Servidor\srvStock_Impl.dfm */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.dfm */ +/* C:\Varela_D2007\Source\Servidor\AdminPV_Server.res */ +/* C:\Varela_D2007\Source\Servidor\RODLFile.res */ +/* C:\Varela_D2007\Source\Servidor\AdminPV_Server.drf */ diff --git a/Source/Servidor/AdminPV_Server.identcache b/Source/Servidor/AdminPV_Server.identcache deleted file mode 100644 index 091f9f93c5aaaa289530c471953df73f73dc1d8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7940 zcmd5>O>fgc5H0^Czo2KtEv-`&sYQ{U=42^a>`A)R*$rzuY5{=|0>l9!4jd4Fmhn1X z+mn@VleAK$^{l0xym@av*3Zw*&b~amd=UpaDL0^sd?Zvlil8W@TIca?UJ4_1d?WKw zx_?FIaX1b}QBkJ2Gc)=PBt;%Cgn>-NkuFUF@r_Q)4Bwm^k#9wgs|d_arrN~0**WWS zy4hyu_yYRj{uF~h?(}iGk!rSBRt7NV>DIV&aq*7>3wO3%Bw$fd`3elEM2ah!+<`%a zYGCS(j{W!;O@e8R|I6vCML3(&@Vw;=PZ@|pSn|L=LWCTj7*21<8WlRZk3(2z0;7@K z+2_klqAr$GRjeoy-;cu<8w#~UFNArF%M1AqEz`z8o#FuKkinHtk;stCdw=W$_2u^| z0K&j^@u_Kay!bU_3L$}QBDF${9DXSAj@_&5dj^8L^B3cAay|Bf!Ex?|$RW0po{QHR z+!iv+DM$WtaHI`FlVx9m0wWXAk#`7mb3p4Hvbxl&Fd9WU+N<=9MMdDNX4)%J zxaIh37gd{6!Q$#vod;~Zp|?RXTXV7-i~HnZYv`FQJ+Kq8m3P}#IQsyb-!p*FXsvE@ zT(~gZSc{h_j|_gelM#rOT$e^v9F9wTga=$*1T;KfIr!SZF%w2?026V)PPb++Ff7V; z$n+#sr<=O1vFice7|wY0Wa~xc1LyIFbZOZ`8S{seF?CUzgTYZ!q&O?I+NN7oAi;PW zu2V8-z^yH32r<`8)k>QUNaCPdPT|m6gsT|hOlbu zuqh|g6Ybf(JmMH;Y)-B&uvRrTS4d+TIo8g+94BBB5db}vTQ&8h?**FsXe-zdM2dHH zsi!n&KcVEZFWuEG)?wbH>y#)Ba4X|XkJSi@CD_Xvjw{-R zG~Q1`10b*t!j>{sDnults=gcAg%=doW}S+;BPhBxAS>28i!#Ems~cf&wCi|L8T|)z CkMcMG diff --git a/Source/Servidor/AdminPV_Server.rc b/Source/Servidor/AdminPV_Server.rc index 932a34a..7706437 100644 --- a/Source/Servidor/AdminPV_Server.rc +++ b/Source/Servidor/AdminPV_Server.rc @@ -1 +1,26 @@ -MAINICON ICON "C:\Documents and Settings\Usuario\Mis documentos\RAD Studio\Projects\Varela_D2007\Resources\Iconos\Servidor.ico" +MAINICON ICON "C:\Varela_D2007\Resources\Iconos\Servidor.ico" +1 VERSIONINFO +FILEVERSION 1,2,5,0 +PRODUCTVERSION 1,2,5,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "CompanyName", "Rodax Software S.L.\0" + VALUE "FileVersion", "1.2.5.0\0" + VALUE "ProductName", "AdminPV_Server\0" + VALUE "ProductVersion", "1.2.5.0\0" + VALUE "CompileDate", "martes, 11 de septiembre de 2007 18:23\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Servidor/AdminPV_Server.res b/Source/Servidor/AdminPV_Server.res index 9be40d33b07427b50afe27d8933bf530ea5a76a0..cac81e412e2606bad7c2f83111ad04e29edb19d2 100644 GIT binary patch delta 614 zcmZ9J(MkeQ5QhJi4MK#v=mES4x`|lLXz8L5EfS(6L%ImW%0g&e*|n^zeT$x>AiC>K zyzIU=$i8!2Q#^;6Idf*t|If@By*nSD&fDlR@iS6h(s;azIGiL;*_=I~{7ebmR6{NF zq0Twgbf#1M8v2N{SzqqYujD9$NK60rz(ysPJwZ<|Ft3ghOhW@j>Z+%E;JSKH2k4&e z6cUZ>D^C^5DkCL|FeM#p4ZsRHf%7EYdEL_OvnA?PNw(x)}g#R$x0bUaU>}E3oqvVtS3yeKNb)K-cL6Cb6p`J$c%- oPkims>9z%|THUm;)7i{EMOx=Sr3=8!=wm+36f>JzHuvrR0euBoYybcN delta 9 Qcmdn8jq%P##tnBO02tK--T(jq diff --git a/Source/Servidor/uDataModuleServer.pas b/Source/Servidor/uDataModuleServer.pas index 0475be5..72cdbd4 100644 --- a/Source/Servidor/uDataModuleServer.pas +++ b/Source/Servidor/uDataModuleServer.pas @@ -7,7 +7,7 @@ uses uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer, uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent, JvAppStorage, JvAppRegistryStorage, uDAInterfaces, - JvComponentBase, uDAADODriver, uROEventRepository, uDAServerLog, ExceptionLog, + JvComponentBase, uDAADODriver, uROEventRepository, uDAServerLog, JvLogFile, SyncObjs; const diff --git a/Source/Usuarios/Usuarios.dpk b/Source/Usuarios/Usuarios.dpk index 584f8f1..5c2b1a0 100644 --- a/Source/Usuarios/Usuarios.dpk +++ b/Source/Usuarios/Usuarios.dpk @@ -16,7 +16,7 @@ package Usuarios; {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} +{$STACKFRAMES ON} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} @@ -24,6 +24,7 @@ package Usuarios; {$IMAGEBASE $400000} {$DESCRIPTION 'Pedidos a proveedor'} {$IMPLICITBUILD ON} +{$DEFINE DEBUG} requires vcl, diff --git a/Source/Usuarios/Usuarios.dproj b/Source/Usuarios/Usuarios.dproj new file mode 100644 index 0000000..0be61ab --- /dev/null +++ b/Source/Usuarios/Usuarios.dproj @@ -0,0 +1,597 @@ + + + {c2514fab-bd64-47eb-ac2d-4b0b5460f98f} + Usuarios.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\Usuarios.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + DEBUG + True + + + Delphi.Personality + Package + +FalseTrueFalsePedidos a proveedorTrueFalseFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1030FalseFalseFalseFalseFalse308212521.0.3.01.0.0.0Usuarios.dpk + + + + + + + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + + + + + +
fCambiarPassword
+
+ +
dmUsuarios
+
+ +
fLoginForm
+
+ +
fUsuario
+
+ +
fUsuarios
+
+ + + + + +
+
+ diff --git a/Source/Usuarios/Usuarios.drc b/Source/Usuarios/Usuarios.drc index 7642ac9..e453ecb 100644 --- a/Source/Usuarios/Usuarios.drc +++ b/Source/Usuarios/Usuarios.drc @@ -1,5 +1,5 @@ -/* VER180 - Generated by the Borland Delphi Pascal Compiler +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler because -GD or --drc was supplied to the compiler. This file contains compiler-generated resources that @@ -12,3 +12,10 @@ STRINGTABLE BEGIN END +/* C:\Varela_D2007\Source\Usuarios\uLoginForm.dfm */ +/* C:\Varela_D2007\Source\Usuarios\uCambiarPassword.dfm */ +/* C:\Varela_D2007\Source\Usuarios\uDataModuleUsuarios.DFM */ +/* C:\Varela_D2007\Source\Usuarios\uUsuarios.dfm */ +/* C:\Varela_D2007\Source\Usuarios\uUsuario.dfm */ +/* C:\Varela_D2007\Source\Usuarios\Usuarios.res */ +/* C:\Varela_D2007\Source\Usuarios\Usuarios.drf */ diff --git a/Source/Usuarios/Usuarios.res b/Source/Usuarios/Usuarios.res index bf4c1a49a442bef039b348cda86ff716dc7726f1..784f75e021b97a9a705950f0aba7f33fbe782458 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&1)oO5XLJcpe&2#;C*uNAUP}}?!6=G!XEsx;GplEIc6MfM)3~Oc^7Hw*&8nGU6Z&way*i%rqy8^G zU?g^G#*#-nZ+*TOueO<4D-NsTe7Z}UVK-MYX?K0}WqaL|7_;IRKgp%78;kMC1-!r} z4{IDW=J;SYt=Ur8%jBT8d~SQdLE8D4YtOB47!SPQ(09b&ICd}l)!5tm&}}33OU16Z zi60JgY5CiH@Q;8^j)y#}og7@N?{@f;AJ4z9A^(R14`TE^QVv?#!ohhguf|VK@#%43 zk3aW0=D{&FHxqyS^}S-Mu@eW@h|8)t*G{>YJ#n|-Zizqq1|Itu93rni*MKQ0I${bA zv!?8`Vs*UKiUE7-MSsTxW6ZHcQ^8$DNUC$g)QX9;^^ znrl1OVk43N8T~HSgAWEVN8GLTvdMnn%XcFY?&9}_+Y^7=wB9G*)@UEFsliST=z_b3 zEe`ZGm-xhrZ?yC1O6>U5*sPAY-KL8%IM8SR9eXb92|T51=?Uv1err}^2VcTm!=8tq zSHJxd9J=7(XSR_aiPhk%#xD8+lRjJ>e=ZwrYw0S4{CNEG=kdK;t$All@(@SI3jT2}`LVg$qYKXJRlLG{U;=d|w)4&K)JV4NH} z2e6Sz?7w4*JDh04)pH;$uSIbSP5-*Ka<6sZaE1qL`HMX*@h69BjGvsF{1QL;;Y`Xt$4uj*yJDFxLe4t&KvlvB7afCCGNU#nTWG|`JR{fbB}zV$g^z0Auiv0@#D_* zb1GcM!N!NTx8Sqh^IeIb1TG<}KXKzc#~l#ydu@P2KI*bZb8M9VhFA*+wG%(|_V_*j z^5vK{dmCbkpSiqqJV%;~x|bGq#!v0X{%9@u5-?Mkr_K3W%YE60s5|a2IEF9$5x?)h z+QjR5s^wpH%)8GnuzX%?^KN7=&jW4mH{0=}rir`k9sU)6;=AvHAJ{S9Hl=>$H}WrT z8cQrR?+EA=d~W8z_h4S`H)1IGk$?5Iw`QEt%uSrNVSnIO$xds1f26%0>vAT=A%ELh zvx)D0-F5!kkrv$5&bg1P&pkENrg&ikK6fC$RrpFiN}{(}yN$z@_^HpO_N)93(9XNYYeF2o z?uDDR3zpwE1vhIDY@Xz@4WBV;(equ6`Odtr>58}`_B^|sGq48^O|;3y>cc$e>Lw0D z%}>C9%c@?-CdcDFOMB!1*5<<)vh6G+C-w*%zh|n%8+H8d6&%$=zDK6cdUqe21k`67 zNxW_4Pqp3+==wz=(VKr)pt4H|B{0((8JKcff}RMZX>dFOw}as4+vcReb{y6 z1mCxLlEY2)aD^9q2ObyYOv2%A*vT(Bpgp!*F>7sIzOA^{lcu*;NOzJB(EedC5s|w(#Tz(GktbI7G}H1OS9MH`%Pg? zgjET%?-#rMTV^(u^!*$5vAu7P?Gwod_NjC}tKT*FnxXF*2M7LDgRdYvcBIcA2kv8E ze$>%3weefX(auAS9NQDC_5UOLT&>5BP&?iuwRv9b{rM06LUspTF{x)yf8jm){6F{R z6Z^rQ*?0ETzO_fv-`m&n{M5d&Q_cV6Hd944RfJP}C=M{1+UxR{_QzWD%${rYsaEp5 zYY$}ez}|ChT7&&(vO2Y|>__`jsGF;D4eQA3hwkavPP8hKMrLMjD<-oqG$ MuOo+h_y5@Y7gMoM8vp Date: Wed, 12 Sep 2007 09:08:32 +0000 Subject: [PATCH 32/32] git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/branches/DA5_D2007@54 1c943782-d109-9647-9548-93b3ac332352 --- Build/Build.fbl5 | Bin 3014656 -> 3014656 bytes Build/buildlog.html | 465 ++++--- Source/Base/BaseD10.drc | 4 +- Source/CargaEDI/CargaEDI.drc | 4 +- Source/Cliente/AdminPV.rc | 2 +- Source/Cliente/AdminPV.res | Bin 18480 -> 18484 bytes Source/Configuracion/Configuracion.drc | 2 +- Source/ControlesBase/ControlesBaseD10.drc | 4 +- .../Devoluciones/Cliente/Devoluciones.drc | 4 +- .../FicherosEDI/Cliente/FicherosEDI.drc | 4 +- .../Modulos/Parametros/Cliente/Parametros.drc | 4 +- .../Recepciones/Cliente/Recepciones.drc | 4 +- .../Cliente/ReferenciaGenerica.drc | 4 +- Source/Modulos/Stock/Cliente/Stock.drc | 4 +- .../Modulos/Traspasos/Cliente/Traspasos.drc | 4 +- .../VentasProceso/Cliente/VentasProceso.drc | 4 +- .../Cliente/VentasTerminadas.drc | 4 +- Source/Servidor/AdminPV_Server.dproj | 322 ++--- Source/Servidor/AdminPV_Server.drc | 1194 ++++++++--------- Source/Servidor/AdminPV_Server.rc | 2 +- Source/Servidor/AdminPV_Server.res | Bin 23348 -> 23352 bytes Source/Usuarios/Usuarios.drc | 4 +- 22 files changed, 1083 insertions(+), 956 deletions(-) diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 index 2264de95dde3148394d1d9378259e69c08fe5ccd..6ec1045b5352bc3415a551c69e04be0b824c125b 100644 GIT binary patch delta 55640 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 delta 44030 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 U!&mkPn$}^{H!qsGyLf5;AMN8(yZ`_I diff --git a/Build/buildlog.html b/Build/buildlog.html index f29c3af..9016cb6 100644 --- a/Build/buildlog.html +++ b/Build/buildlog.html @@ -65,19 +65,19 @@ function domCollapseAll(show){ Date : -11/09/2007 +12/09/2007 Start Time : -18:23:07 +10:21:54 End Time : -18:23:51 +10:22:35 Run Time : -00:00:44 +00:00:41
@@ -94,24 +94,24 @@ function domCollapseAll(show){ - - - + + + - - + + - - + + @@ -125,17 +125,17 @@ function domCollapseAll(show){ - - + + - - - + + + @@ -144,12 +144,14 @@ function domCollapseAll(show){ [Microsoft .NET Framework, Version 2.0.50727.42] Copyright (C) Microsoft Corporation 2005. All rights reserved. -Build started 11/09/2007 18:23:10. +Build started 12/09/2007 10:21:57. __________________________________________________ Project "C:\Varela_D2007\Source\ClearFiles.msbuild" (CleanFiles target(s)): Target CleanFiles: Deleting file "Base\BaseD10.dcu". + Deleting file "Base\schStockClient_Intf.dcu". + Deleting file "Base\schStockServer_Intf.dcu". Deleting file "Base\uBizInformesBase.dcu". Deleting file "Base\uConfigurarConexion.dcu". Deleting file "Base\uDataModuleBase.dcu". @@ -171,6 +173,7 @@ Target CleanFiles: Deleting file "Base\uViewGrid.dcu". Deleting file "Base\uViewGridBase.dcu". Deleting file "Base\uViewPreview.dcu". + Deleting file "Base\VARELA_Intf.dcu". Deleting file "CargaEDI\uCargaEDI.dcu". Deleting file "Cliente\uAcercaDe.dcu". Deleting file "Cliente\uMenuUtils.dcu". @@ -178,48 +181,49 @@ Target CleanFiles: Deleting file "Cliente\uSplash.dcu". Deleting file "Configuracion\Configuracion.dcu". Deleting file "Configuracion\uPanelControl.dcu". - Deleting file "ControlesBase\Cliente\uDataModuleControles.dcu". - Deleting file "ControlesBase\Cliente\uDateUtils.dcu". - Deleting file "ControlesBase\Cliente\uEditorControlBase.dcu". - Deleting file "ControlesBase\Cliente\uEditorControlesBase.dcu". - Deleting file "ControlesBase\Cliente\uFormPropiedadesControl.dcu". - Deleting file "ControlesBase\Cliente\uViewAgrupaciones.dcu". - Deleting file "ControlesBase\Cliente\uViewColumnas.dcu". - Deleting file "ControlesBase\Cliente\uViewControlBase.dcu". - Deleting file "ControlesBase\Cliente\uViewControlesBase.dcu". - Deleting file "ControlesBase\Cliente\uViewControlGrid.dcu". - Deleting file "ControlesBase\Cliente\uViewFiltros.dcu". - Deleting file "ControlesBase\Cliente\uViewParametrosControlGrid.dcu". - Deleting file "ControlesBase\Cliente\uViewPeriodoFechas.dcu". - Deleting file "ControlesBase\Cliente\uViewSumarios.dcu". Deleting file "ControlesBase\ControlesBaseD10.dcu". - Deleting file "ControlesBase\Reglas\schControlesClient_Intf.dcu". - Deleting file "ControlesBase\Reglas\uBizControlesBase.dcu". + Deleting file "ControlesBase\schControlesClient_Intf.dcu". + Deleting file "ControlesBase\uBizControlesBase.dcu". + Deleting file "ControlesBase\uDataModuleControles.dcu". + Deleting file "ControlesBase\uDateUtils.dcu". + Deleting file "ControlesBase\uEditorControlBase.dcu". + Deleting file "ControlesBase\uEditorControlesBase.dcu". + Deleting file "ControlesBase\uFormPropiedadesControl.dcu". + Deleting file "ControlesBase\uViewAgrupaciones.dcu". + Deleting file "ControlesBase\uViewColumnas.dcu". + Deleting file "ControlesBase\uViewControlBase.dcu". + Deleting file "ControlesBase\uViewControlesBase.dcu". + Deleting file "ControlesBase\uViewControlGrid.dcu". + Deleting file "ControlesBase\uViewFiltros.dcu". + Deleting file "ControlesBase\uViewParametrosControlGrid.dcu". + Deleting file "ControlesBase\uViewPeriodoFechas.dcu". + Deleting file "ControlesBase\uViewSumarios.dcu". Deleting file "Modulos\Devoluciones\Cliente\Devoluciones.dcu". + Deleting file "Modulos\Devoluciones\Cliente\uBizDevoluciones.dcu". Deleting file "Modulos\Devoluciones\Cliente\uDataModuleDevoluciones.dcu". Deleting file "Modulos\Devoluciones\Cliente\uEditorAjustarDevoluciones.dcu". Deleting file "Modulos\Devoluciones\Cliente\uEditorListaDevoluciones.dcu". Deleting file "Modulos\Devoluciones\Cliente\uPluginControllerDevoluciones.dcu". Deleting file "Modulos\Devoluciones\Cliente\uViewListaDevoluciones.dcu". - Deleting file "Modulos\Devoluciones\Reglas\uBizDevoluciones.dcu". Deleting file "Modulos\FicherosEDI\Cliente\FicherosEDI.dcu". + Deleting file "Modulos\FicherosEDI\Cliente\schEDILogClient_Intf.dcu". + Deleting file "Modulos\FicherosEDI\Cliente\schEDILogServer_Intf.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uAsistenteCargaFicheros.dcu". + Deleting file "Modulos\FicherosEDI\Cliente\uBizEDILog.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uCargarFicheros.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uDataModuleFicherosEDI.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uEditorHistorialCargasEDI.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uPluginControllerFicherosEDI.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uSubirFicheros.dcu". Deleting file "Modulos\FicherosEDI\Cliente\uViewHistorialCargasEDI.dcu". - Deleting file "Modulos\FicherosEDI\Reglas\schEDILogClient_Intf.dcu". - Deleting file "Modulos\FicherosEDI\Reglas\schEDILogServer_Intf.dcu". - Deleting file "Modulos\FicherosEDI\Reglas\uBizEDILog.dcu". Deleting file "Modulos\Parametros\Cliente\Parametros.dcu". + Deleting file "Modulos\Parametros\Cliente\schParametrosClient_Intf.dcu". + Deleting file "Modulos\Parametros\Cliente\uBizParametros.dcu". Deleting file "Modulos\Parametros\Cliente\uDataModuleParametros.dcu". Deleting file "Modulos\Parametros\Cliente\uViewParametrosCentro.dcu". Deleting file "Modulos\Parametros\Cliente\uViewParametrosColeccion.dcu". - Deleting file "Modulos\Parametros\Reglas\schParametrosClient_Intf.dcu". - Deleting file "Modulos\Parametros\Reglas\uBizParametros.dcu". Deleting file "Modulos\Recepciones\Cliente\Recepciones.dcu". + Deleting file "Modulos\Recepciones\Cliente\uBizRecepciones.dcu". Deleting file "Modulos\Recepciones\Cliente\uDataModuleRecepciones.dcu". Deleting file "Modulos\Recepciones\Cliente\uEditorAjustarRecepciones.dcu". Deleting file "Modulos\Recepciones\Cliente\uEditorListaRecepciones.dcu". @@ -227,17 +231,17 @@ Target CleanFiles: Deleting file "Modulos\Recepciones\Cliente\uPluginControllerRecepciones.dcu". Deleting file "Modulos\Recepciones\Cliente\uViewListaRecepciones.dcu". Deleting file "Modulos\Recepciones\Cliente\uViewListaRecepcionesAlbaran.dcu". - Deleting file "Modulos\Recepciones\Reglas\uBizRecepciones.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dcu". + Deleting file "Modulos\ReferenciaGenerica\Cliente\schReferenciaGenericaClient_Intf.dcu". + Deleting file "Modulos\ReferenciaGenerica\Cliente\schReferenciaGenericaServer_Intf.dcu". + Deleting file "Modulos\ReferenciaGenerica\Cliente\uBizReferenciaGenerica.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\uDataModuleReferenciaGenerica.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\uEditorCambioReferenciaGenerica.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\uEditorListaReferenciaGenerica.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\uPluginControllerReferenciaGenerica.dcu". Deleting file "Modulos\ReferenciaGenerica\Cliente\uViewListaReferenciaGenerica.dcu". - Deleting file "Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaClient_Intf.dcu". - Deleting file "Modulos\ReferenciaGenerica\Reglas\schReferenciaGenericaServer_Intf.dcu". - Deleting file "Modulos\ReferenciaGenerica\Reglas\uBizReferenciaGenerica.dcu". Deleting file "Modulos\Stock\Cliente\Stock.dcu". + Deleting file "Modulos\Stock\Cliente\uBizStock.dcu". Deleting file "Modulos\Stock\Cliente\uDataModuleStock.dcu". Deleting file "Modulos\Stock\Cliente\uEditorControlStockEDI.dcu". Deleting file "Modulos\Stock\Cliente\uEditorControlStockVARELA.dcu". @@ -247,16 +251,16 @@ Target CleanFiles: Deleting file "Modulos\Stock\Cliente\uViewControGridStockPrendasCentros.dcu". Deleting file "Modulos\Stock\Cliente\uViewControGridStockVARELA.dcu". Deleting file "Modulos\Stock\Cliente\uViewFiltrosStock.dcu". - Deleting file "Modulos\Stock\Reglas\schStockClient_Intf.dcu". - Deleting file "Modulos\Stock\Reglas\schStockServer_Intf.dcu". - Deleting file "Modulos\Stock\Reglas\uBizStock.dcu". Deleting file "Modulos\Traspasos\Cliente\Traspasos.dcu". + Deleting file "Modulos\Traspasos\Cliente\uBizTraspasos.dcu". Deleting file "Modulos\Traspasos\Cliente\uDataModuleTraspasos.dcu". Deleting file "Modulos\Traspasos\Cliente\uEditorAjustarTraspasos.dcu". Deleting file "Modulos\Traspasos\Cliente\uEditorListaTraspasos.dcu". Deleting file "Modulos\Traspasos\Cliente\uPluginControllerTraspasos.dcu". Deleting file "Modulos\Traspasos\Cliente\uViewListaTraspasos.dcu". - Deleting file "Modulos\Traspasos\Reglas\uBizTraspasos.dcu". + Deleting file "Modulos\VentasProceso\Cliente\schVentasEnProcesoClient_Intf.dcu". + Deleting file "Modulos\VentasProceso\Cliente\uBizControlVentasProceso.dcu". + Deleting file "Modulos\VentasProceso\Cliente\uBizVentasProceso.dcu". Deleting file "Modulos\VentasProceso\Cliente\uDataModuleVentasProceso.dcu". Deleting file "Modulos\VentasProceso\Cliente\uEditorControlesVentaProceso.dcu". Deleting file "Modulos\VentasProceso\Cliente\uEditorControlVentaProceso.dcu". @@ -265,9 +269,10 @@ Target CleanFiles: Deleting file "Modulos\VentasProceso\Cliente\uViewControlesVentaProceso.dcu". Deleting file "Modulos\VentasProceso\Cliente\uViewControlVentaProceso.dcu". Deleting file "Modulos\VentasProceso\Cliente\VentasProceso.dcu". - Deleting file "Modulos\VentasProceso\Reglas\schVentasEnProcesoClient_Intf.dcu". - Deleting file "Modulos\VentasProceso\Reglas\uBizControlVentasProceso.dcu". - Deleting file "Modulos\VentasProceso\Reglas\uBizVentasProceso.dcu". + Deleting file "Modulos\VentasTerminadas\Cliente\schVentasTerminadasClient_Intf.dcu". + Deleting file "Modulos\VentasTerminadas\Cliente\schVentasTerminadasServer_Intf.dcu". + Deleting file "Modulos\VentasTerminadas\Cliente\uBizControlVentasTerminadas.dcu". + Deleting file "Modulos\VentasTerminadas\Cliente\uBizVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Cliente\uDataModuleVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Cliente\uEditorControlesVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Cliente\uEditorControlResumenVentas.dcu". @@ -278,10 +283,10 @@ Target CleanFiles: Deleting file "Modulos\VentasTerminadas\Cliente\uViewControlesVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Cliente\uViewControlVentasTerminadas.dcu". Deleting file "Modulos\VentasTerminadas\Cliente\VentasTerminadas.dcu". - Deleting file "Modulos\VentasTerminadas\Reglas\schVentasTerminadasClient_Intf.dcu". - Deleting file "Modulos\VentasTerminadas\Reglas\schVentasTerminadasServer_Intf.dcu". - Deleting file "Modulos\VentasTerminadas\Reglas\uBizControlVentasTerminadas.dcu". - Deleting file "Modulos\VentasTerminadas\Reglas\uBizVentasTerminadas.dcu". + Deleting file "Servidor\DARemoteService_Impl.dcu". + Deleting file "Servidor\DataAbstract3_Intf.dcu". + Deleting file "Servidor\DataAbstract3_Invk.dcu". + Deleting file "Servidor\DataAbstract4_Intf.dcu". Deleting file "Servidor\EDI_Inventary_Impl.dcu". Deleting file "Servidor\EDI_INVRPT.dcu". Deleting file "Servidor\EDI_Log_Impl.dcu". @@ -289,6 +294,52 @@ Target CleanFiles: Deleting file "Servidor\EDI_Sales_Impl.dcu". Deleting file "Servidor\EDI_SLSRPT.dcu". Deleting file "Servidor\EDI_Utils.dcu". + Deleting file "Servidor\frxAggregate.dcu". + Deleting file "Servidor\frxChm.dcu". + Deleting file "Servidor\frxClass.dcu". + Deleting file "Servidor\frxClassRTTI.dcu". + Deleting file "Servidor\frxCtrls.dcu". + Deleting file "Servidor\frxDBSet.dcu". + Deleting file "Servidor\frxDialogForm.dcu". + Deleting file "Servidor\frxDMPClass.dcu". + Deleting file "Servidor\frxDock.dcu". + Deleting file "Servidor\frxDsgnIntf.dcu". + Deleting file "Servidor\frxEngine.dcu". + Deleting file "Servidor\frxFormUtils.dcu". + Deleting file "Servidor\frxGraphicUtils.dcu". + Deleting file "Servidor\frxPassw.dcu". + Deleting file "Servidor\frxPreview.dcu". + Deleting file "Servidor\frxPreviewPages.dcu". + Deleting file "Servidor\frxPreviewPageSettings.dcu". + Deleting file "Servidor\frxPrintDialog.dcu". + Deleting file "Servidor\frxPrinter.dcu". + Deleting file "Servidor\frxProgress.dcu". + Deleting file "Servidor\frxrcClass.dcu". + Deleting file "Servidor\frxRes.dcu". + Deleting file "Servidor\frxSearchDialog.dcu". + Deleting file "Servidor\frxUnicodeUtils.dcu". + Deleting file "Servidor\frxUtils.dcu". + Deleting file "Servidor\frxVariables.dcu". + Deleting file "Servidor\frxXML.dcu". + Deleting file "Servidor\frxXMLSerializer.dcu". + Deleting file "Servidor\fs_ibasic.dcu". + Deleting file "Servidor\fs_iclassesrtti.dcu". + Deleting file "Servidor\fs_iconst.dcu". + Deleting file "Servidor\fs_icpp.dcu". + Deleting file "Servidor\fs_idialogsrtti.dcu". + Deleting file "Servidor\fs_idisp.dcu". + Deleting file "Servidor\fs_ievents.dcu". + Deleting file "Servidor\fs_iexpression.dcu". + Deleting file "Servidor\fs_iformsrtti.dcu". + Deleting file "Servidor\fs_igraphicsrtti.dcu". + Deleting file "Servidor\fs_iilparser.dcu". + Deleting file "Servidor\fs_iinterpreter.dcu". + Deleting file "Servidor\fs_ijs.dcu". + Deleting file "Servidor\fs_iparser.dcu". + Deleting file "Servidor\fs_ipascal.dcu". + Deleting file "Servidor\fs_isysrtti.dcu". + Deleting file "Servidor\fs_itools.dcu". + Deleting file "Servidor\fs_xml.dcu". Deleting file "Servidor\fServerForm.dcu". Deleting file "Servidor\RegExpr.dcu". Deleting file "Servidor\schControlesClient_Intf.dcu". @@ -329,13 +380,87 @@ Target CleanFiles: Deleting file "Servidor\uConfFicherosEDI.dcu". Deleting file "Servidor\uConfGeneral.dcu". Deleting file "Servidor\uConfiguracion.dcu". + Deleting file "Servidor\uDAADODriver.dcu". + Deleting file "Servidor\uDAADOInterfaces.dcu". + Deleting file "Servidor\uDABINAdapter.dcu". + Deleting file "Servidor\uDABusinessProcessor.dcu". + Deleting file "Servidor\uDACache.dcu". + Deleting file "Servidor\uDACDSDataTable.dcu". + Deleting file "Servidor\uDAClasses.dcu". + Deleting file "Servidor\uDADatasetWrapper.dcu". + Deleting file "Servidor\uDADataStreamer.dcu". + Deleting file "Servidor\uDADataTable.dcu". + Deleting file "Servidor\uDADataTableReferenceCollection.dcu". + Deleting file "Servidor\uDADelta.dcu". + Deleting file "Servidor\uDADriverManager.dcu". + Deleting file "Servidor\uDAEngine.dcu". + Deleting file "Servidor\uDAExceptions.dcu". + Deleting file "Servidor\uDAExpressionEvaluator.dcu". + Deleting file "Servidor\uDAHelpers.dcu". + Deleting file "Servidor\uDAIBInterfaces.dcu". + Deleting file "Servidor\uDAIBXDriver.dcu". + Deleting file "Servidor\uDAInterfaces.dcu". + Deleting file "Servidor\uDAInterfacesEx.dcu". + Deleting file "Servidor\uDAMacroProcessors.dcu". + Deleting file "Servidor\uDAMacros.dcu". + Deleting file "Servidor\uDAMemDataset.dcu". + Deleting file "Servidor\uDAMemDataTable.dcu". + Deleting file "Servidor\uDAOracleInterfaces.dcu". + Deleting file "Servidor\uDAPostgresInterfaces.dcu". + Deleting file "Servidor\uDARegExpr.dcu". + Deleting file "Servidor\uDARes.dcu". + Deleting file "Servidor\uDAScriptingProvider.dcu". + Deleting file "Servidor\uDAServerLog.dcu". + Deleting file "Servidor\uDASQL92Interfaces.dcu". + Deleting file "Servidor\uDASQL92QueryBuilder.dcu". + Deleting file "Servidor\uDASupportClasses.dcu". Deleting file "Servidor\uDataModuleEDI_Inventary.dcu". Deleting file "Servidor\uDataModuleEDI_Sales.dcu". Deleting file "Servidor\uDataModuleServer.dcu". Deleting file "Servidor\uDataTableUtils.dcu". + Deleting file "Servidor\uDAUtils.dcu". + Deleting file "Servidor\uDAWhere.dcu". + Deleting file "Servidor\uDAXMLUtils.dcu". Deleting file "Servidor\uDBSelectionList.dcu". Deleting file "Servidor\uFrameConfiguracion.dcu". Deleting file "Servidor\uIntegerList.dcu". + Deleting file "Servidor\uROBinaryHelpers.dcu". + Deleting file "Servidor\uROBinMessage.dcu". + Deleting file "Servidor\uROCipher.dcu". + Deleting file "Servidor\uroCipher1.dcu". + Deleting file "Servidor\uROCiphers.dcu". + Deleting file "Servidor\uROClasses.dcu". + Deleting file "Servidor\uROClient.dcu". + Deleting file "Servidor\uROClientIntf.dcu". + Deleting file "Servidor\uROCompression.dcu". + Deleting file "Servidor\uRODECConst.dcu". + Deleting file "Servidor\uRODECUtil.dcu". + Deleting file "Servidor\uRODL.dcu". + Deleting file "Servidor\uRODLToXML.dcu". + Deleting file "Servidor\uRODynamicRequest.dcu". + Deleting file "Servidor\uROEncryption.dcu". + Deleting file "Servidor\uROEventRepository.dcu". + Deleting file "Servidor\uROHash.dcu". + Deleting file "Servidor\uROHtmlServerInfo.dcu". + Deleting file "Servidor\uROHTTPDispatch.dcu". + Deleting file "Servidor\uROHTTPTools.dcu". + Deleting file "Servidor\uROIndyHTTPServer.dcu". + Deleting file "Servidor\uROIndyTCPServer.dcu". + Deleting file "Servidor\uROMSXML2_TLB.dcu". + Deleting file "Servidor\uROMSXMLImpl.dcu". + Deleting file "Servidor\uROPoweredByRemObjectsButton.dcu". + Deleting file "Servidor\uRORemoteDataModule.dcu". + Deleting file "Servidor\uRORemoteService.dcu". + Deleting file "Servidor\uRORes.dcu". + Deleting file "Servidor\uROSerializer.dcu". + Deleting file "Servidor\uROServer.dcu". + Deleting file "Servidor\uROServerIntf.dcu". + Deleting file "Servidor\uROSessions.dcu". + Deleting file "Servidor\uROStreamSerializer.dcu". + Deleting file "Servidor\uROTypes.dcu". + Deleting file "Servidor\uROXMLIntf.dcu". + Deleting file "Servidor\uROXMLSerializer.dcu". + Deleting file "Servidor\uROZLib.dcu". Deleting file "Servidor\uSchemaUtilsServer.dcu". Deleting file "Servidor\VARELA_Intf.dcu". Deleting file "Servidor\VARELA_Invk.dcu". @@ -358,12 +483,14 @@ Target CleanFiles: Deleting file "Lib\Usuarios.dcp". Deleting file "Lib\VentasProceso.dcp". Deleting file "Lib\VentasTerminadas.dcp". + Deleting file "Servidor\__history\VARELA_Intf.pas.~1~". + Deleting file "Servidor\__history\VARELA_Invk.pas.~1~". Build succeeded. 0 Warning(s) 0 Error(s) -Time Elapsed 00:00:00.56 +Time Elapsed 00:00:03.42 Program returned code : 0 @@ -372,16 +499,16 @@ Program returned code : 0 - - + + - - + + @@ -396,8 +523,8 @@ Found 10 Items - - + + @@ -411,16 +538,16 @@ Found 10 Items - - + + - - + + @@ -434,16 +561,16 @@ Found 10 Items - - + + - - + + @@ -457,16 +584,16 @@ Found 10 Items - - + + - - + + @@ -480,16 +607,16 @@ Found 10 Items - - + + - - + + @@ -503,16 +630,16 @@ Found 10 Items - - + + - - + + @@ -526,16 +653,16 @@ Found 10 Items - - + + - - + + @@ -549,16 +676,16 @@ Found 10 Items - - + + - - + + @@ -572,16 +699,16 @@ Found 10 Items - - + + - - + + @@ -595,16 +722,16 @@ Found 10 Items - - + + - - + + @@ -618,24 +745,24 @@ Found 10 Items - - + + - - + + - - + + @@ -658,17 +785,17 @@ source_path = C:\Varela_D2007\Source - - + + - - - + + + @@ -899,7 +1026,7 @@ C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.pas(29) Wa C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.pas(29) Warning: W1000 Symbol 'GetMultipleDatasets' is deprecated C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.pas(29) Warning: W1000 Symbol 'ExecuteSQLCommandEx' is deprecated C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.pas(39) Warning: W1000 Symbol 'Create' is deprecated -30411 lines, 10.38 seconds, 4459352 bytes code, 210912 bytes data. +30411 lines, 8.92 seconds, 4459352 bytes code, 210912 bytes data. @@ -907,17 +1034,17 @@ C:\Varela_D2007\Source\Modulos\Parametros\Servidor\srvParametros_Impl.pas(39) Wa - - + + - - - + + + @@ -948,7 +1075,7 @@ uSysFunc.pas(126) Hint: H2077 Value assigned to 'DarFicheroExportar' never used uSysFunc.pas(193) Hint: H2164 Variable 'lpMsgBuf' is declared but never used in 'CopiarFichero' uEditorDBItem.pas(47) Hint: H2164 Variable 'Respuesta' is declared but never used in 'TfEditorDBItem.actPrevisualizarExecute' uEditorDBItem.pas(69) Hint: H2164 Variable 'Respuesta' is declared but never used in 'TfEditorDBItem.actImprimirExecute' -8652 lines, 4.14 seconds, 134712 bytes code, 452 bytes data. +8652 lines, 1.95 seconds, 134712 bytes code, 452 bytes data. @@ -956,9 +1083,9 @@ uEditorDBItem.pas(69) Hint: H2164 Variable 'Respuesta' is declared but never use - - - + + + @@ -990,7 +1117,7 @@ Cliente\uViewFiltros.pas(136) Hint: H2164 Variable 'AColumn' is declared but nev Cliente\uViewFiltros.pas(137) Hint: H2164 Variable 'AItemIndex' is declared but never used in 'TfrViewFiltros.vgFiltrosEditorRow1EditPropertiesEditValueChanged' Cliente\uDateUtils.pas(37) Warning: W1035 Return value of function 'NumberDayOfTheWeek' might be undefined Cliente\uDateUtils.pas(65) Warning: W1035 Return value of function 'NumberMonthOfTheYear' might be undefined -2901 lines, 1.81 seconds, 53896 bytes code, 164 bytes data. +2901 lines, 2.59 seconds, 53896 bytes code, 164 bytes data. @@ -998,8 +1125,8 @@ Cliente\uDateUtils.pas(65) Warning: W1035 Return value of function 'NumberMonthO - - + + @@ -1016,7 +1143,7 @@ Copyright (c) 1983,2007 CodeGear uDataModuleParametros.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleParametros.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleParametros.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated -575 lines, 1.06 seconds, 21684 bytes code, 96 bytes data. +575 lines, 0.75 seconds, 21684 bytes code, 96 bytes data. @@ -1024,8 +1151,8 @@ uDataModuleParametros.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is dep - - + + @@ -1043,7 +1170,7 @@ uDataModuleUsuarios.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecat uDataModuleUsuarios.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleUsuarios.pas(15) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uDataModuleUsuarios.pas(105) Hint: H2077 Value assigned to 'TdmUsuarios.CambiarPassword' never used -449 lines, 0.73 seconds, 12892 bytes code, 112 bytes data. +449 lines, 0.55 seconds, 12892 bytes code, 112 bytes data. @@ -1051,9 +1178,9 @@ uDataModuleUsuarios.pas(105) Hint: H2077 Value assigned to 'TdmUsuarios.CambiarP - - - + + + @@ -1066,7 +1193,7 @@ Running Delphi compiler.... Using Command Line : /B C:\Varela_D2007\Source\Configuracion\Configuracion.dpk /Q CodeGear Delphi for Win32 compiler version 18.5 Copyright (c) 1983,2007 CodeGear -90 lines, 0.64 seconds, 7464 bytes code, 68 bytes data. +90 lines, 0.52 seconds, 7464 bytes code, 68 bytes data. @@ -1074,16 +1201,16 @@ Copyright (c) 1983,2007 CodeGear - - + + - - + + @@ -1107,7 +1234,7 @@ uDataModuleFicherosEDI.pas(7) Warning: W1006 Unit 'uROServiceComponent' is depre uDataModuleFicherosEDI.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uViewHistorialCargasEDI.pas(64) Hint: H2164 Variable 'ADate' is declared but never used in 'TfrViewHistorialCargasEDI.cxGridViewFECHAGetDisplayText' uEditorHistorialCargasEDI.pas(25) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1568 lines, 0.98 seconds, 33408 bytes code, 128 bytes data. +1568 lines, 0.81 seconds, 33408 bytes code, 128 bytes data. @@ -1115,8 +1242,8 @@ uEditorHistorialCargasEDI.pas(25) Warning: W1010 Method 'FormShow' hides virtual - - + + @@ -1145,7 +1272,7 @@ uEditorControlResumenVentas.pas(48) Warning: W1010 Method 'FormShow' hides virtu uEditorControlResumenVentas.pas(125) Hint: H2164 Variable 'UltimoDia' is declared but never used in 'TfEditorControlResumenVentas.actRefrescarExecute' uEditorControlResumenVentas.pas(126) Hint: H2164 Variable 'i' is declared but never used in 'TfEditorControlResumenVentas.actRefrescarExecute' uEditorControlVentasTerminadas.pas(41) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' -4629 lines, 1.51 seconds, 95544 bytes code, 136 bytes data. +4629 lines, 1.11 seconds, 95544 bytes code, 136 bytes data. @@ -1153,8 +1280,8 @@ uEditorControlVentasTerminadas.pas(41) Warning: W1010 Method 'FormShow' hides vi - - + + @@ -1176,7 +1303,7 @@ uDataModuleVentasProceso.pas(23) Warning: W1000 Symbol 'TDAClientDataModule' is uViewControGridlVentaProceso.pas(146) Warning: W1036 Variable 'AFecha' might not have been initialized uEditorControlVentaProceso.pas(41) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' uEditorControlVentaProceso.pas(53) Warning: W1010 Method 'RellenarCabeceraInforme' hides virtual method of base type 'TfEditorControlBase' -1676 lines, 1.14 seconds, 38148 bytes code, 124 bytes data. +1676 lines, 0.88 seconds, 38148 bytes code, 124 bytes data. @@ -1184,8 +1311,8 @@ uEditorControlVentaProceso.pas(53) Warning: W1010 Method 'RellenarCabeceraInform - - + + @@ -1208,7 +1335,7 @@ uDataModuleReferenciaGenerica.pas(129) Warning: W1036 Variable 'AStream' might n uViewListaReferenciaGenerica.pas(150) Hint: H2164 Variable 'ARecord' is declared but never used in 'TfrViewListaReferenciaGenerica.cxGridViewMouseDown' uEditorListaReferenciaGenerica.pas(48) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uEditorListaReferenciaGenerica.pas(425) Hint: H2164 Variable 'i' is declared but never used in 'TfEditorListaReferenciaGenerica.actEliminarExecute' -3521 lines, 1.09 seconds, 69816 bytes code, 112 bytes data. +3521 lines, 0.97 seconds, 69816 bytes code, 112 bytes data. @@ -1216,8 +1343,8 @@ uEditorListaReferenciaGenerica.pas(425) Hint: H2164 Variable 'i' is declared but - - + + @@ -1237,7 +1364,7 @@ uDataModuleRecepciones.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is de uEditorListaRecepciones.pas(53) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uViewListaRecepcionesAlbaran.pas(97) Hint: H2164 Variable 'ARecIndex' is declared but never used in 'TfrViewListaRecepcionesAlbaran.cxGridViewALBARANGetDataText' uEditorListaRecepcionesAlbaran.pas(36) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -2025 lines, 1.17 seconds, 47800 bytes code, 112 bytes data. +2025 lines, 0.97 seconds, 47800 bytes code, 112 bytes data. @@ -1245,8 +1372,8 @@ uEditorListaRecepcionesAlbaran.pas(36) Warning: W1010 Method 'FormShow' hides vi - - + + @@ -1265,7 +1392,7 @@ uDataModuleDevoluciones.pas(8) Warning: W1006 Unit 'uROServiceComponent' is depr uDataModuleDevoluciones.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uDataModuleDevoluciones.pas(63) Hint: H2164 Variable 'AStr' is declared but never used in 'TdmDevoluciones.GetItems' uEditorListaDevoluciones.pas(51) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1644 lines, 1.05 seconds, 39664 bytes code, 104 bytes data. +1644 lines, 0.92 seconds, 39664 bytes code, 104 bytes data. @@ -1273,8 +1400,8 @@ uEditorListaDevoluciones.pas(51) Warning: W1010 Method 'FormShow' hides virtual - - + + @@ -1294,7 +1421,7 @@ uDataModuleTraspasos.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is depr uDataModuleTraspasos.pas(63) Hint: H2164 Variable 'AStr' is declared but never used in 'TdmTraspasos.GetItems' uEditorListaTraspasos.pas(46) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' uEditorAjustarTraspasos.pas(249) Hint: H2164 Variable 'aux' is declared but never used in 'TfEditorAjustarTraspasos.SalvarValores' -1483 lines, 1.06 seconds, 36708 bytes code, 104 bytes data. +1483 lines, 0.89 seconds, 36708 bytes code, 104 bytes data. @@ -1302,8 +1429,8 @@ uEditorAjustarTraspasos.pas(249) Hint: H2164 Variable 'aux' is declared but neve - - + + @@ -1321,7 +1448,7 @@ uDataModuleStock.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated uDataModuleStock.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated uDataModuleStock.pas(12) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated uEditorControlStockVARELA.pas(38) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorGridBase' -1688 lines, 1.20 seconds, 48040 bytes code, 120 bytes data. +1688 lines, 0.98 seconds, 48040 bytes code, 120 bytes data. @@ -1329,16 +1456,16 @@ uEditorControlStockVARELA.pas(38) Warning: W1010 Method 'FormShow' hides virtual - - + + - - + + @@ -1358,7 +1485,7 @@ uPantallaPrincipal.pas(515) Warning: W1035 Return value of function 'TfPantallaP uPantallaPrincipal.pas(520) Hint: H2164 Variable 'i' is declared but never used in 'TfPantallaPrincipal.Button1Click' uPantallaPrincipal.pas(521) Hint: H2164 Variable 'AModule' is declared but never used in 'TfPantallaPrincipal.Button1Click' uPantallaPrincipal.pas(82) Hint: H2219 Private symbol 'ExecuteActionMenu' declared but never used -988 lines, 1.02 seconds, 24504 bytes code, 80 bytes data. +988 lines, 0.67 seconds, 24504 bytes code, 80 bytes data. @@ -1366,8 +1493,8 @@ uPantallaPrincipal.pas(82) Hint: H2219 Private symbol 'ExecuteActionMenu' declar - - + + @@ -1381,7 +1508,7 @@ Running Delphi compiler.... Using Command Line : /B C:\Varela_D2007\Source\CargaEDI\CargaEDI.dpr /Q CodeGear Delphi for Win32 compiler version 18.5 Copyright (c) 1983,2007 CodeGear -181 lines, 0.53 seconds, 8532 bytes code, 56 bytes data. +181 lines, 0.42 seconds, 8532 bytes code, 56 bytes data. @@ -1389,16 +1516,16 @@ Copyright (c) 1983,2007 CodeGear - - + + - - + + @@ -1413,8 +1540,8 @@ Copyright (c) 1983,2007 CodeGear - - + +
- Action List Action List: Main18:23:0718:23:5100:00:4410:21:5410:22:3500:00:41
Completed Set Variable Set Variable project_path to [ C:\Varela_D2007\Build ]18:23:0718:23:0710:21:5410:21:54 00:00:00
Completed String Replace String Replace18:23:0718:23:0710:21:5410:21:54 00:00:00 View
Completed Action Group Borrar ficheros temporales18:23:0718:23:0710:21:5410:21:54 00:00:00
Completed Run DOS Command Run DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Varela_D2007\Source\ClearFiles.msbuild" /t:CleanFiles ]18:23:0718:23:1100:00:0310:21:5410:22:0300:00:08 View
Completed Action Group Crear directorios de salida18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Debug\Cliente ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Debug\Servidor ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Debug\Servidor\Carga ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Debug\Servidor\Almacen ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Debug\Servidor\Informes ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Release\Cliente ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1118:23:1110:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Release\Servidor ]18:23:1118:23:1110:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1218:23:1210:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Release\Servidor\Carga ]18:23:1218:23:1210:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1218:23:1210:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Release\Servidor\Almacen ]18:23:1218:23:1210:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1218:23:1210:22:0310:22:03 00:00:00
Completed Create Directory Create Directory [ C:\Varela_D2007\Output\Release\Servidor\Informes ]18:23:1218:23:1210:22:0310:22:03 00:00:00 View
Completed List Iterator List Iterator18:23:1218:23:1210:22:0310:22:03 00:00:00
Completed Reset Variable to Default Reset Variable to Default18:23:1218:23:1210:22:0310:22:03 00:00:00
Completed Log Variable Values Listar valores de las variables del proyecto18:23:1218:23:1310:22:0310:22:03 00:00:00 View
Completed Action Group Servidor18:23:1318:23:1310:22:0310:22:03 00:00:00
Completed Compile Delphi Win32 Project Compile Servidor\AdminPV_Server.dpr18:23:1318:23:2400:00:1110:22:0310:22:1300:00:09 View
Completed Action Group Base18:23:2418:23:2410:22:1310:22:13 00:00:00
Completed Compile Delphi Win32 Project Compile Base\BaseD10.dpk18:23:2418:23:2900:00:0410:22:1310:22:1500:00:02 View
Completed Compile Delphi Win32 Project Compile ControlesBase\ControlesBaseD10.dpk18:23:2918:23:3100:00:0210:22:1510:22:1900:00:03 View
Completed Compile Delphi Win32 Project Compile Modulos\Parametros\Cliente\Parametros.dpk18:23:3118:23:3310:22:1910:22:20 00:00:01 View
Completed Compile Delphi Win32 Project Compile Usuarios\Usuarios.dpk18:23:3318:23:3410:22:2010:22:21 00:00:01 View
Completed Compile Delphi Win32 Project Compile Configuracion\Configuracion.dpk18:23:3418:23:3500:00:0110:22:2110:22:2200:00:00 View
Completed Action Group Módulos18:23:3518:23:3510:22:2210:22:22 00:00:00
Completed Compile Delphi Win32 Project Compile Modulos\FicherosEDI\Cliente\FicherosEDI.dpk18:23:3518:23:3610:22:2210:22:23 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\VentasTerminadas\Cliente\VentasTerminadas.dpk18:23:3618:23:3810:22:2310:22:25 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\VentasProceso\Cliente\VentasProceso.dpk18:23:3818:23:4010:22:2510:22:26 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk18:23:4018:23:4110:22:2610:22:28 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Recepciones\Cliente\Recepciones.dpk18:23:4118:23:4310:22:2810:22:29 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Devoluciones\Cliente\Devoluciones.dpk18:23:4318:23:4510:22:2910:22:30 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Traspasos\Cliente\Traspasos.dpk18:23:4518:23:4610:22:3010:22:32 00:00:01 View
Completed Compile Delphi Win32 Project Compile Modulos\Stock\Cliente\Stock.dpk18:23:4618:23:4810:22:3210:22:33 00:00:01 View
Completed Action Group Cliente18:23:4818:23:4810:22:3310:22:33 00:00:00
Completed Compile Delphi Win32 Project Compile Cliente\AdminPV.dpr 18:23:4818:23:4910:22:3310:22:34 00:00:01 View
Completed Compile Delphi Win32 Project Compile CargaEDI\CargaEDI.dpr ]18:23:4918:23:5010:22:3410:22:35 00:00:00 View
Completed Action Group Copiar los informes al directorio de salida18:23:5018:23:5010:22:3510:22:35 00:00:00
Completed Copy File(s) Copy File(s) [ C:\Varela_D2007\Source\Informes\*.* ]18:23:5018:23:5110:22:3510:22:35 00:00:00 View
Completed Export Log Export Log18:23:5118:23:5110:22:3510:22:35 00:00:00


diff --git a/Source/Base/BaseD10.drc b/Source/Base/BaseD10.drc index 6c03fcc..ad83b8e 100644 --- a/Source/Base/BaseD10.drc +++ b/Source/Base/BaseD10.drc @@ -13,7 +13,7 @@ BEGIN END /* C:\Varela_D2007\Source\Base\uConfigurarConexion.dfm */ -/* C:\Varela_D2007\Source\Base\uDataModuleBase.DFM */ +/* C:\Varela_D2007\Source\Base\uDataModuleBase.dfm */ /* C:\Varela_D2007\Source\Base\uViewBase.dfm */ /* C:\Varela_D2007\Source\Base\uEditorBase.dfm */ /* C:\Varela_D2007\Source\Base\uViewGridBase.dfm */ @@ -26,4 +26,4 @@ END /* C:\Varela_D2007\Source\Base\uViewBarraSeleccion.dfm */ /* C:\Varela_D2007\Source\Base\uViewGrid.dfm */ /* C:\Varela_D2007\Source\Base\BaseD10.res */ -/* C:\Varela_D2007\Source\Base\BaseD10.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf6.tmp */ diff --git a/Source/CargaEDI/CargaEDI.drc b/Source/CargaEDI/CargaEDI.drc index 69a44c9..67ba08b 100644 --- a/Source/CargaEDI/CargaEDI.drc +++ b/Source/CargaEDI/CargaEDI.drc @@ -12,7 +12,7 @@ STRINGTABLE BEGIN END -/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */ +/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\WindowsXP.res */ /* C:\Varela_D2007\Source\CargaEDI\uCargaEDI.dfm */ /* C:\Varela_D2007\Source\CargaEDI\CargaEDI.res */ -/* C:\Varela_D2007\Source\CargaEDI\CargaEDI.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf22.tmp */ diff --git a/Source/Cliente/AdminPV.rc b/Source/Cliente/AdminPV.rc index dd78514..236a4b2 100644 --- a/Source/Cliente/AdminPV.rc +++ b/Source/Cliente/AdminPV.rc @@ -17,7 +17,7 @@ BEGIN VALUE "InternalName", "Administración de puntos de venta\0" VALUE "ProductName", "Administración de puntos de venta\0" VALUE "ProductVersion", "1.0.0.0\0" - VALUE "CompileDate", "martes, 11 de septiembre de 2007 18:23\0" + VALUE "CompileDate", "miércoles, 12 de septiembre de 2007 10:22\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/AdminPV.res b/Source/Cliente/AdminPV.res index b08ecabcfd346e6189804a542cee0811f553eff1..58ed9a5eb217eec6e5499c8d5b74abbc3d1964a3 100644 GIT binary patch delta 83 zcmdlmfpNlRT4V{7_1nK7>pShCckxe2LK*z7cT$+ diff --git a/Source/Configuracion/Configuracion.drc b/Source/Configuracion/Configuracion.drc index aecef17..80e4b17 100644 --- a/Source/Configuracion/Configuracion.drc +++ b/Source/Configuracion/Configuracion.drc @@ -14,4 +14,4 @@ END /* C:\Varela_D2007\Source\Configuracion\uPanelControl.dfm */ /* C:\Varela_D2007\Source\Configuracion\Configuracion.res */ -/* C:\Varela_D2007\Source\Configuracion\Configuracion.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtfE.tmp */ diff --git a/Source/ControlesBase/ControlesBaseD10.drc b/Source/ControlesBase/ControlesBaseD10.drc index ac1854f..d1f1368 100644 --- a/Source/ControlesBase/ControlesBaseD10.drc +++ b/Source/ControlesBase/ControlesBaseD10.drc @@ -15,7 +15,7 @@ END /* C:\Varela_D2007\Source\ControlesBase\Cliente\uFormPropiedadesControl.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewControlesBase.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uEditorControlesBase.dfm */ -/* C:\Varela_D2007\Source\ControlesBase\Cliente\uDataModuleControles.DFM */ +/* C:\Varela_D2007\Source\ControlesBase\Cliente\uDataModuleControles.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewControlGrid.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewParametrosControlGrid.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewAgrupaciones.dfm */ @@ -26,4 +26,4 @@ END /* C:\Varela_D2007\Source\ControlesBase\Cliente\uEditorControlBase.dfm */ /* C:\Varela_D2007\Source\ControlesBase\Cliente\uViewPeriodoFechas.dfm */ /* C:\Varela_D2007\Source\ControlesBase\ControlesBaseD10.res */ -/* C:\Varela_D2007\Source\ControlesBase\ControlesBaseD10.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf8.tmp */ diff --git a/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc index 3099efa..aec5e05 100644 --- a/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc +++ b/Source/Modulos/Devoluciones/Cliente/Devoluciones.drc @@ -12,10 +12,10 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uDataModuleDevoluciones.DFM */ +/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uDataModuleDevoluciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uViewListaDevoluciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uEditorListaDevoluciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uPluginControllerDevoluciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\uEditorAjustarDevoluciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\Devoluciones.res */ -/* C:\Varela_D2007\Source\Modulos\Devoluciones\Cliente\Devoluciones.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1A.tmp */ diff --git a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc index ad1b50f..a133ba7 100644 --- a/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc +++ b/Source/Modulos/FicherosEDI/Cliente/FicherosEDI.drc @@ -13,9 +13,9 @@ BEGIN END /* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uAsistenteCargaFicheros.dfm */ -/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uDataModuleFicherosEDI.DFM */ +/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uDataModuleFicherosEDI.dfm */ /* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uViewHistorialCargasEDI.dfm */ /* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uEditorHistorialCargasEDI.dfm */ /* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\uPluginControllerFicherosEDI.dfm */ /* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.res */ -/* C:\Varela_D2007\Source\Modulos\FicherosEDI\Cliente\FicherosEDI.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf10.tmp */ diff --git a/Source/Modulos/Parametros/Cliente/Parametros.drc b/Source/Modulos/Parametros/Cliente/Parametros.drc index 0f36b8a..31da31d 100644 --- a/Source/Modulos/Parametros/Cliente/Parametros.drc +++ b/Source/Modulos/Parametros/Cliente/Parametros.drc @@ -12,8 +12,8 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uDataModuleParametros.DFM */ +/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uDataModuleParametros.dfm */ /* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uViewParametrosCentro.dfm */ /* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\uViewParametrosColeccion.dfm */ /* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\Parametros.res */ -/* C:\Varela_D2007\Source\Modulos\Parametros\Cliente\Parametros.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtfA.tmp */ diff --git a/Source/Modulos/Recepciones/Cliente/Recepciones.drc b/Source/Modulos/Recepciones/Cliente/Recepciones.drc index 2c1e586..239fd85 100644 --- a/Source/Modulos/Recepciones/Cliente/Recepciones.drc +++ b/Source/Modulos/Recepciones/Cliente/Recepciones.drc @@ -12,7 +12,7 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uDataModuleRecepciones.DFM */ +/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uDataModuleRecepciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uViewListaRecepciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uEditorListaRecepciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uViewListaRecepcionesAlbaran.dfm */ @@ -20,4 +20,4 @@ END /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uPluginControllerRecepciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\uEditorAjustarRecepciones.dfm */ /* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\Recepciones.res */ -/* C:\Varela_D2007\Source\Modulos\Recepciones\Cliente\Recepciones.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf18.tmp */ diff --git a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc index 855053a..6087eef 100644 --- a/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc +++ b/Source/Modulos/ReferenciaGenerica/Cliente/ReferenciaGenerica.drc @@ -12,10 +12,10 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uDataModuleReferenciaGenerica.DFM */ +/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uDataModuleReferenciaGenerica.dfm */ /* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uViewListaReferenciaGenerica.dfm */ /* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uEditorListaReferenciaGenerica.dfm */ /* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uPluginControllerReferenciaGenerica.dfm */ /* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\uEditorCambioReferenciaGenerica.dfm */ /* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.res */ -/* C:\Varela_D2007\Source\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf16.tmp */ diff --git a/Source/Modulos/Stock/Cliente/Stock.drc b/Source/Modulos/Stock/Cliente/Stock.drc index 8ce5d7c..9ef0597 100644 --- a/Source/Modulos/Stock/Cliente/Stock.drc +++ b/Source/Modulos/Stock/Cliente/Stock.drc @@ -12,7 +12,7 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uDataModuleStock.DFM */ +/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uDataModuleStock.dfm */ /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewFiltrosStock.dfm */ /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockEDI.dfm */ /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uViewControGridStockPrendasCentros.dfm */ @@ -22,4 +22,4 @@ END /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uEditorControlStockVARELA.dfm */ /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\uPluginControllerStock.dfm */ /* C:\Varela_D2007\Source\Modulos\Stock\Cliente\Stock.res */ -/* C:\Varela_D2007\Source\Modulos\Stock\Cliente\Stock.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1E.tmp */ diff --git a/Source/Modulos/Traspasos/Cliente/Traspasos.drc b/Source/Modulos/Traspasos/Cliente/Traspasos.drc index b92e7f2..cc647b2 100644 --- a/Source/Modulos/Traspasos/Cliente/Traspasos.drc +++ b/Source/Modulos/Traspasos/Cliente/Traspasos.drc @@ -12,10 +12,10 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uDataModuleTraspasos.DFM */ +/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uDataModuleTraspasos.dfm */ /* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uViewListaTraspasos.dfm */ /* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uEditorListaTraspasos.dfm */ /* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uPluginControllerTraspasos.dfm */ /* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\uEditorAjustarTraspasos.dfm */ /* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\Traspasos.res */ -/* C:\Varela_D2007\Source\Modulos\Traspasos\Cliente\Traspasos.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1C.tmp */ diff --git a/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc index 098f26d..21350ef 100644 --- a/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc +++ b/Source/Modulos/VentasProceso/Cliente/VentasProceso.drc @@ -12,7 +12,7 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uDataModuleVentasProceso.DFM */ +/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uDataModuleVentasProceso.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uViewControlesVentaProceso.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uEditorControlesVentaProceso.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uPluginControllerVentasProceso.dfm */ @@ -20,4 +20,4 @@ END /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uViewControlVentaProceso.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\uEditorControlVentaProceso.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\VentasProceso.res */ -/* C:\Varela_D2007\Source\Modulos\VentasProceso\Cliente\VentasProceso.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf14.tmp */ diff --git a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc index 99d0438..4f3a297 100644 --- a/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc +++ b/Source/Modulos/VentasTerminadas/Cliente/VentasTerminadas.drc @@ -12,7 +12,7 @@ STRINGTABLE BEGIN END -/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uDataModuleVentasTerminadas.DFM */ +/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uDataModuleVentasTerminadas.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControlesVentasTerminadas.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uEditorControlesVentasTerminadas.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uViewControGridlVentasTerminadas.dfm */ @@ -22,4 +22,4 @@ END /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uPluginControllerVentasTerminadas.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\uEditorControlVentasTerminadas.dfm */ /* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.res */ -/* C:\Varela_D2007\Source\Modulos\VentasTerminadas\Cliente\VentasTerminadas.drf */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf12.tmp */ diff --git a/Source/Servidor/AdminPV_Server.dproj b/Source/Servidor/AdminPV_Server.dproj index dcc9ed6..b495747 100644 --- a/Source/Servidor/AdminPV_Server.dproj +++ b/Source/Servidor/AdminPV_Server.dproj @@ -1,165 +1,165 @@ - + - - {86364157-b301-43dd-bfad-250a58064559} - AdminPV_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\AdminPV_Server.exe - vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dbxcds;DbxCommonDriver;dbexpress;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;xmlrtl;RemObjects_Core_D10;RemObjects_WebBroker_D10;RemObjects_RODX_D10;RemObjects_BPDX_D10;RemObjects_Synapse_D10;RemObjects_Indy_D10;DataAbstract_Core_D10;DataAbstract_IDE_D10;DataAbstract_DBXDriver_D10B;DataAbstract_SQLiteDriver_D10;DataAbstract_Scripting_D10;PascalScript_RO_D10;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;fqb100;frx10;frxADO10;frxBDE10;frxDB10;frxe10;frxIBX10;fs10;fsADO10;fsBDE10;fsDB10;fsIBX10;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;ccpack10dsg;ccpack10;EasyListviewD10;GUISDK_D10;JvAppFrmD10R;JvCoreD10R;JclVcl;Jcl;JvSystemD10R;JvStdCtrlsD10R;JvBandsD10R;JvDBD10R;JvDlgsD10R;JvBDED10R;JvCmpD10R;JvCryptD10R;JvCtrlsD10R;JvCustomD10R;JvDockingD10R;JvDotNetCtrlsD10R;JvEDID10R;JvGlobusD10R;JvHMID10R;JvInterpreterD10R;JvJansD10R;JvManagedThreadsD10R;JvMMD10R;JvPageCompsD10R;JvPrintPreviewD10R;JvRuntimeDesignD10R;JvTimeFrameworkD10R;JvUIBD10R;JvValidatorsD10R;JvWizardD10R;JvXPCtrlsD10R;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;RemObjects_DataSnap_D10 - - - 7.0 - False - False - True - 0 - 3 - ..\..\Output\Release\Servidor - .\ - .\ - .\ - ..\Lib;..\Base - ..\Lib;..\Base - ..\Lib;..\Base - ..\Lib;..\Base - RELEASE - - - 7.0 - True - 3 - ..\..\Output\Debug\Servidor - .\ - .\ - .\ - ..\Lib;..\Base - ..\Lib;..\Base - ..\Lib;..\Base - ..\Lib;..\Base - DEBUG - - - Delphi.Personality - VCLApplication - -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1250FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.2.5.0AdminPV_Server1.2.5.0martes, 11 de septiembre de 2007 9:33AdminPV_Server.dpr - CodeGear WebSnap Components - CodeGear SOAP Components - Microsoft Office XP Sample Automation Server Wrapper Components - Microsoft Office 2000 Sample Automation Server Wrapper Components - CodeGear C++Builder Office 2000 Servers Package - CodeGear C++Builder Office XP Servers Package - - - - - - MainSource - - - - - - - -
srvControles
-
- -
srvDevoluciones
-
- - - - - -
srvParametros
-
- -
srvRecepciones
-
- - - - -
srvReferenciaGenerica
-
- - - -
srvStock
-
- -
srvTraspasos
-
- - - -
srvVentasEnProceso
-
- - - -
srvVentasTerminadas
-
- -
frConexionBD
-
- -
frConfFicherosEDI
-
- -
frConfGeneral
-
- -
fConfiguracion
-
- -
FrameConfiguracion
-
- - - - - - - - -
ServerForm
-
- - - - - -
dmEDIInventary
-
- - - - -
dmEDISales
-
- -
srvLogin
-
- -
srvTransfereciaFicheros
-
- -
srvInformes
-
- -
fAcercaDe
-
- -
dmServer
-
- - - -
+ + {86364157-b301-43dd-bfad-250a58064559} + AdminPV_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\AdminPV_Server.exe + vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dbxcds;DbxCommonDriver;dbexpress;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;xmlrtl;RemObjects_Core_D10;RemObjects_WebBroker_D10;RemObjects_RODX_D10;RemObjects_BPDX_D10;RemObjects_Synapse_D10;RemObjects_Indy_D10;DataAbstract_Core_D10;DataAbstract_IDE_D10;DataAbstract_DBXDriver_D10B;DataAbstract_SQLiteDriver_D10;DataAbstract_Scripting_D10;PascalScript_RO_D10;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;fqb100;frx10;frxADO10;frxBDE10;frxDB10;frxe10;frxIBX10;fs10;fsADO10;fsBDE10;fsDB10;fsIBX10;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;ccpack10dsg;ccpack10;EasyListviewD10;GUISDK_D10;JvAppFrmD10R;JvCoreD10R;JclVcl;Jcl;JvSystemD10R;JvStdCtrlsD10R;JvBandsD10R;JvDBD10R;JvDlgsD10R;JvBDED10R;JvCmpD10R;JvCryptD10R;JvCtrlsD10R;JvCustomD10R;JvDockingD10R;JvDotNetCtrlsD10R;JvEDID10R;JvGlobusD10R;JvHMID10R;JvInterpreterD10R;JvJansD10R;JvManagedThreadsD10R;JvMMD10R;JvPageCompsD10R;JvPrintPreviewD10R;JvRuntimeDesignD10R;JvTimeFrameworkD10R;JvUIBD10R;JvValidatorsD10R;JvWizardD10R;JvXPCtrlsD10R;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;RemObjects_DataSnap_D10 + + + 7.0 + False + False + True + 0 + 3 + ..\..\Output\Release\Servidor + .\ + .\ + .\ + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + RELEASE + + + 7.0 + True + 3 + ..\..\Output\Debug\Servidor + .\ + .\ + .\ + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + ..\Lib;..\Base + DEBUG + + + Delphi.Personality + VCLApplication + + FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1250FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.2.5.0AdminPV_Server1.2.5.0martes, 11 de septiembre de 2007 9:33AdminPV_Server.dpr + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + + +
srvControles
+
+ +
srvDevoluciones
+
+ + + + + +
srvParametros
+
+ +
srvRecepciones
+
+ + + + +
srvReferenciaGenerica
+
+ + + +
srvStock
+
+ +
srvTraspasos
+
+ + + +
srvVentasEnProceso
+
+ + + +
srvVentasTerminadas
+
+ +
frConexionBD
+
+ +
frConfFicherosEDI
+
+ +
frConfGeneral
+
+ +
fConfiguracion
+
+ +
FrameConfiguracion
+
+ + + + + + + + +
ServerForm
+
+ + + + + +
dmEDIInventary
+
+ + + + +
dmEDISales
+
+ +
srvLogin
+
+ +
srvTransfereciaFicheros
+
+ +
srvInformes
+
+ +
fAcercaDe
+
+ +
dmServer
+
+ + + +

Fz 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 WzqU}amVd4y^uKo5AQ$!jsr?VuxB!^| literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Total-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f721ba5d69dd79d30de3eda3493a778b2be448f GIT binary patch literal 519 zcmV+i0{H!jP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpeMv+?RCwB?lFuu{aTv#6pRZ*cmWzW(If%nI5?=4BP%;-YT-Hw2V9)ysFobeNpkS5Eu_hBg-I;F8~Z*k+uE0zm3KY$e0rYe z_3rb0J}MaS4FVyo8uEDk8~h;=K?MUo86K>(6jnCUWkG%g6hMl~^-5sc8JI87p>6!Hc^eME`g?Cd$udz z7@l;JTy5iJ*~!CPBQtKIGj5szv_kg=`wcZ!X+%sqTODjoxd7;$jX#vA5` zL3>jLn`89=3@kmP-*Y`4A#QnvD&rByWthYLc+q9m0t@{xx(Vw?^a5@mk_YUq&6nKv z*)uHa`D1r(IR70>Mb=HS;r>zo&u~dVS;HVIoBWVcN+?5L0|1@|6mpG8hi3o)002ov JPDHLkV1gWH(z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QprAb6VRCwBql09z|K@>&L1dD_sP|y(3p%hRiAVq0_ zpAac&BSe8nVbU5GZU~b9fFmUZLNrvQrvuU$AxmHh!9qwRK0<_KQ{Yv0X4W&0VjZ(1 z?8LX(nccbPzIks|ty);Yp6L_FRYuo`C)#97?oAEL%* zUheRo`wtk)r~ho9VfI2hGdqXZ8ZimZ93rW~n*`fQGBYdy{{YR%adCW~a}zd8wg#~p zZ#9xye5yISeviFR-vJt>SM2ry`E=jy;*IW^lPo#S_E+a_FxS`sco;PCD1EXJXLs&e zoK6sDxLJQ1G_X`&pj71xtf)RhrDOg>e4qnY)ze1f2=}+PHll9>< zyPQ2f?6>*VNod6>=Pyk$52%? x6(5D=_sjq%R*;vP*%Y8}4*r8tl{W+Y9RPPs?QT}qs*V5v002ovPDHLkV1nyG<7of@ literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Undo.png new file mode 100644 index 0000000000000000000000000000000000000000..114cf33d69fbeccdeb1df10c057c161b2527f8f8 GIT binary patch literal 682 zcmV;b0#*HqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;AW1|)RCwB?Q%!3VQ4~FIW-^_m`7o8L87LKM8~o_U z!i5OZwIYbr6m6*p-SrQ+5NQw!?p(PMQINDk?51uMH@a$3D3mlQu~s8Zn%GuNNYXbm z$-MVmB{qiCMbGx$bM8IwolAreI1Cg3AcQm(B5^S!5k6rUEXcT!i9p%wQy1oAiRi1* zbCud)3f^)JZ7^V*rr|P6X7Ev%a3oh>F_)7yw8B5MD55Aq0uW zg?ehlezLw!XR^7f6CiN8WH1g`6@gUBB9>LXnTR|KHdy$uv^^HaaTwjQvKlLeY%UX8 zw(%pogWP7);+&OL&ExOv8j_MpQyQHdy9Z#rz5xKFzZGsREf(tJ+}1YIsnyT^?*888 zxlrd`ap%EqCIQnF0C2I!s|zqrh~`oWE!)WF4P;WWR4MNnd^gjZ1|ST=pH{5B3geA$ zRu@=FnZGWRy zI_3a~BrBvj2LKRoW&jf?nt-Hu!vi;7Kx^xJ^lA1&5de`xZ=VORAS!jhbp}1RXS0fJ1=N-P} zo(o@djspN%MY%E8Lh}6Fe69!F=Lh>;f64oC;581vZ#h5+0U-p)VbA%`0LVM?El<3U QhX4Qo07*qoM6N<$fz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Gf6~2RCwB)lg&y4F%*T*z%0c_aNz?KT=|0_Sy;MI z&_xx*Zi+%JtsOydrP3#GpimIOmG99vaPMolNSaJ;#ziJGozB?N353Aqe@k*1;J-a!az5xLIWx=4+D&43wuyfSM z+8XD*$l)U2RZC(7Uvzl0yP39N zY7lhV34sxq6aU>nDB!NkKqgC$C?l8?FP;Gz4T>Y15CJdmMS|1g>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Qb|NXRCwB)lRroTQ5e8~nvg?*O^&WLw6ztAL*dfD zL8pX>8!W672^xZ;A?K5WmRy=`i@?pvscg#zr^bes2CqBsT@7}fr{`Hd_~7xq@B4kf z2k!+kYFY*qCR>FNpvYVKKUE9M#IQ7U(Tly6BPD1bKEBmhUVrgzj&HVkes7=)4dv<@ zfRNoROECan2!JfbC|8`C5WrG2MY+<0H0~B$4aSeIAv88JACxPvM5d!|06?%6M=ior zz2h-A41`gObI^*>S$r4<0OYf&k?MvCdKVJg2kc%(ya52`YTXlXEG4 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;B}qgL<~Ue+U3l=aag~W8>_uM!FSGMcRN7YDD>oW=K_f| zQf6wV-4^Qt-{;JNcQ~_;+@Ba6G4|gsqwrrqhmo9Ks5suU7b|#O4SJKNKC@}Sx@;tr z;mo0@3st;&yNt(AYS6R8<2Or4Zwhdd`ZPznwGK_fvMgw76QP){rt;m>{{$M>M|-`= z{Bh|lA`w?$Sr$w~1G5V~8$WuZjDfZQMT1l53;T!!%&Z36wlSLP0F#4IEYg`C>MU;v z@T?I~lV-_vzJR5JjFRe{YBQpVU_|!0t%WK+vx*H zfTazR0%5(&pG{~}e*y2Wq_=1zh0{&vvxmt6O9xC2CJ*I^ZcOTS2(q4nQ`;|x`qZZcyz6Y;nY(LX!;eJ2046X?fF+m-d-5*il0@~JZ1oAm1ON~u#{ta$9sr1D V4d{?bS6l!9002ovPDHLkV1mU?B_{v? literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png b/Varela/Varela/Resources/Iconos/Generales/16x16/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..812c814e1d8a966fee1bf06fba54752b8022b2d2 GIT binary patch literal 862 zcmV-k1EKthP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;)Ja4^RCwByQe8+>aTNdk@4cJb+}!5;z_yvQ<`*g| zCT67-(L+HoGOrz} ztu$p6m}Hb%ODCqK(AmXV%2a)ddCkvPGZN{5&*NaJ?E{Pjt7ct>&U*BCiKK0Yl2e9Uqn47(NmL-100`^Y(rg$R*E}U* z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;#z{m$RCwByl3z$uaU8|Z@7_Dz=5(7*%{Kqc5~pBj zl!%4WTYo?#5~8;V(x+asXYsWNdaPcIdMMH;3(S9SX{KhH*KOM7oObR|4u|0Hkk+=2Tse#y8r`Est#u{s0 zxmC^Rjci(ui7h@+q{}v&O134rj#H&fc<1fH0fX~R7fW-^xlb=NR2yuDG!hOI@T-7t z69{fIFyv$qQ?@SC|2F zWl32@4Yxo3eT_nCjk(m!%=!r$?|nSb4?oDGySEwnHmgyu&#p@ zSCTtO1f;d+?nzff$3>NNEwDua3V$*6cXoH4iMKR*vA~o(A$2gulq@-b7tfrfJHKJv%DbFsOvg@rusBpwPTu( zpifALJrJ*VuSc}UY*m-jGYnQ)jC5^Ya;C5+*)x6(RqjC(-43R{GP!!fDHih-flK>imRw^9@AepG2~@1>~VyJVCV|J z9CPpdgm&&wxYu*3u0_ZtqR3*{i$_0000U%yxeg5-L74Hahxq?^mqg`ElaILuTf~t?crW_x3(Y2>3AL!+aCw1+(mJDh?d@ z@Q~qfvn*@G;zri#jQnvm2|qqOV2(TcBlbhnhO|9wHai?6jO&;?E}S_41Qr&?!kP>Q Z3^B)Cj$C7A`v`O*gQu&X%Q~loCIA_8WwQVP literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png b/Varela/Varela/Resources/Iconos/Generales/16x16/db-Previous-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f673f28204714e5ea1a8e2d724e68f7351f3d1e3 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs-5fU;uunKE9uYw|MtwP4V{fn4Obc5+}wEHL{xsXzo}QSV#kO72V0q+R32RT=+J)_ z{@PE67?%A!#B0PPxa{XacD6Qlc@Gny$YFLij(?4}8N_m$*sXXZ>}#z*#-Bei=i%Y* zeja(d2@hL~C+kS)&$T}J;Q?!%_ygV}ApXpMcNgfW&YPWbP~%8h^QI*=d6QU`^(>Da goH^5jv4N2xL)QL4#K$~EphFovUHx3vIVCg!0E;F@K(bUAi zy2i{hB<9Ee2ZtCB#r^oey!#mof9<0~40jo3JmWU+;61`WW0rhPLPEud#zqtI119x9 z4lo?F-ynUU>2w3LEL+d~eRF@TPft1b;o(vDHvS{K8W>M5E1s+)p+DF9`7;uunK>&Rq9zC#WoF83#K^#%4aG#zYG);Ppy;S|iN&TvxDf~{}riKB}9a|E7T zzpC3d;ey_UWla+&pE>=H&sz^_ShBzO z5;uJG=DqNwrxqL+7ae3a1IaMKfNq)K z&zu6S43jjqeu=RyC~MXc;PV$?JF!(NZ;PV_&x1D$AI;ovADn$4nc-JK46n$={7j%H O7(8A5T-G@yGywo;i+6Sa literal 0 HcmV?d00001 diff --git a/Varela/Varela/Resources/Iconos/Generales/24x24/About.png b/Varela/Varela/Resources/Iconos/Generales/24x24/About.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0ba3e2c80b8a094ddf1e7f444273badada7c91 GIT binary patch literal 1054 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

Fz z1(y3CmvVacF*n*!M@OmIm`(>(>wS*aGf0{oZGCLcmuIJAW^+SV-x@jbJb6_{*jiH- z!*f*QQt$pk49}e$Vw1cVScgP8;vvq}giB(K0Vj%|WS5!eOZ$(UUaiw_n`B)sw!_eHBjMNmYS5`DV8r(~S>S8ttj(fIe>%K*A)}^z3*VlHN ze%y^t3r%#q{5onzdmZ&icRJ*;d9#j@(H7dVndQjI6^5-D{pNf7lv*Sh#wm`W&c`mR zx4kgocAu;GERpm1ei~nSdt6f4y^eVLXKTd+LsIO|5}ZU!mfe|Gg1Q~|l}4IewMX>}2j(0|y&xx5XLRrIej)UI}Mg@0}fNUU;%3Q6ID3S>BR7$+pumyXa$aV3x^x zC(XgDSGRKxOQDnJt1jHcbevvCm9ZR!0jW<#$2#hwWS7VwdqICe;B85&^cDSBN0SP5 zJr-|;b<{0GnatUJxdv)Z&wDsYlEr54ikO)0)-ZN$zLnU(>#2~vj{4B1*Vlh&k7v^4 zjt~3SQTi(_)30K_X=*hXOgBo)jb_;XNa`b=(i^5 zUhhm$O3P)ZPxel0tnq5i<-x->Bi6Kscd@b>E||TZTk2rJgfZwdn61&Z=mtAZyB;&d zOLE0c*~S<;Y&Xt1?hznKwxW*-kQCO?9hl86*={1y`*}#r zBQTP>LCv4r+jL$(g{4P z&PmW$j)@p@G-DE1GnRhn#Ipi=!EKm{?)${q?`9~KlVAAOoINzpxFkEBCYItY@7&I@ zHTt*aD;$G;I3Mk;2+aj+hJSqgZr)A*-T#mLcZdFh^(TkHy^PFAfA9JeER;3+y8Z_7 zX8)Ol#6S76@a5~D@7dQ@xbJZz{tVyWAb$tQN7kDniT`hqzZc{SewB}e&Bq1s0DNEz zfZRVy068H*1Z)F{0TO@|*ba~ZKl_yGYx5D)@{0TDnHI0T3RhXHW_ zsV4!sB;WuX1C9eyzzN_aAPvX>vVa^Q4=4bq07U@Vhce`+fir*#pbDq~X90CU12_k0 z0$PAJfYj54To2F(&I1;a^nBjirNZNLR^1>694zyr7jY|Q_hgX`g+F#ogp{D+O_TKwbZf56vQskaB+;bm8( zW$qx8)oPqy+{qYD`L60slGzp6tt01Zm?cj(93Enkpu;!}ZA}`OrgPLRW=Ku z*e9RUG<`;~s9`x<>d2d;M#n5?AI)kk#E4S7BtnIQS6y5`wo7LsdRIQy*RWq#X-c;= zfnScpb8@ovh3CZ+hX}_>o=rULXG$Rp?!<XyOi#@umLOv09*$S)}|ZA;_! z>8s8;E7Rk{TSv)PcB9VWu9 zm@a3SiZ15$<-D}W$4^L`H?iMwLlGu=+rM*#T zB(l%%n#^r1K|kDBdw+$GYuK5(DCy%;K+x6ptDTp`;tDF}>sScOy5ATZGzFKwd5BBY z-|^ni&^wBROH{SclKQ=tx@l#x*;Mp11^e8rHpjNhgQjPFv>@X-((PL5_&F~{`Dq#)^u#$#-*peuWd$;3$4pakQCAUme`EYSDh8JaB{|isG~yXD_R_&T ze3-pKj8}ACX7ymElEJUovPRWM;^W7!U%i1wm%`rDdHt!e|ekpTGe~* z*{D)pe$mC4WCJ}BO$m2Bvx!fWE-r^1a`Uk1XxA#fJXv-_*aq<^G@l;rl<9sRm5E#6?nEWwGJh`A^0oW5R89C3;L5EBIQ4c2`&s z;NLo`{3QKRI^Sy6Tp!t3329yA)(3_I6Y=>Mmz6?HNcivO&OSe0DlxJ1w9CSlb6XjC zswHU|EPZ($<1n+i2qStm}#&ocT95b$$1Z{KQGDIqE0KVUAk zEKF5~MpXcgYJ>+PKKLn5PyqSb9WPKj3i5{Z+fR zp+A3g{3h@>_#b#++_~ZZLDo9{ne<2eKSx16^1LP_3H=T7l|a7ASNXz!gM1y3kKAvG zq#y79-F$xIPtT?N$B*Ba3M$rEu!Ye)h1t(BS59l|>Rsm7JpR1$HrMWGqboWp#6SqC+Y?YZlUNzGb%#D#Z*FTk)pSjlHryx!va^~3GvL;;I#=Y0- z0!~=G;l<${ckb|U--{h_X~e;bjcU`MSO|0WoSV-@3nj!H3~>u;9+CCSj1@ijxH|lW zmA8cbBdiUEpkfyXx(Aj)Ubo{s?CT~YNA*6uc~5p;ZeEGcptPFLzy~^F7IL~g0o#G& ztJ`UW;`O`*O^;dR+)`~xgXz`w4srTLMR}ooV|BM(At8NF1KQWpJbt_H@{>itHjuWp?cMUsnCH*83h;D+GIkD3on@qqAAR*_V_)=f6Ojae$DQiRJ*_g;_OM*g>oXy*3&=1!f7t07?t5;93mG{Dl0=RQGU$EY2L(xS%eVw& zp9j9l%elq4zlJr~TJsKD#Qm^~tif{ZMe@OAtMWuVy*+(7h0Db~;jag8q<+35yjsiY zyp9U`@5TYqyZ?|j^bdI+;HLj!)Bo@z{SOmEl9j%Fp3!XRiir=6PwLHFxF277MG$J} za{j3ZtGONJA)J8r4@&R7m23vmt2&GKta!9$_pns(nMn|b%SF%B?+!TP^ZKO);ngQc zOVcdyIHL(mx2gGjToYQ^nuqO4$DX>JS8q8`FEGiKsCBe1M9-V|-YwCp3U-#F>pj;! zOU=h*$|Sc4NfNs^iRJmFcF1L;{UUkhjr~0z@GBB^8$EV?Onbs#z3zHW;91(8bN5EC zErmv|PP3+Wt-R@*|D2v~endP%hU&9#-}@2$C8ZM1xvB4Ht$(SE8~Vq)seha8-w$s8 zL@^$|bJO^jGB0a|e&iC5@W&&#KR`w zN<5#8i?C>D$mB`Az-#N9vEr-{5~R z1^o5-+TV|K|bHt^T)^g=RW_~X3(LsN9t8yHrXxP2T@nY)~NIIGzznMr6>5z+~mBr zmvh*#6}>ns6(+eKKX-dxX^HQWcg6JWUa`zD(Mj8=106~(hj|~>P{}X2)CCZc44$6i&uWWL;Gby!|3u zQ&t$TL^P!(%#PElE$NY?$1(W!TxRBnvl=gB7(!UDR8Q}l4l$$DrXvk5h#5Pez_au~ z0b3Z98>#=Gcdu~+-e~{a3KmL~X<2u-a8^BHA7T^hZ0p0+zhAbR%AHWyz1N?yi zAP~3<1OdT72yhPw1;PNN?kmV6fJop0@DPXsqJbFT5%3sz0>lDw08;NM`iN&uu@Ddc59FHiwg0#!gY z@EWKA-T<{g9Z(N60FA&~0NF<~VRsDxThw%fsSMiK1%3M^dl(TGh((KmPx=iEC(4~xT@svN^WavfG#j@GaqaDsZJCQ=ADyIp|0e6bEbg=JG7$ltEoy2tEcrs^X9mKySf}^u z9TCEYF4>p7Ud$b;*%6x-CEoaZnh%IZW&xIXHwuZ1W&*Fi^+$`rC4$6NMAcwterdHg zO7H&JesA{wH`lNI==E!>EM@L&g`sxR`RG&5Y;B&w-BFe@dBG0(Gx*^L8`*|QKDmCp zV||YCdJZAGviRyFhKgboTHj}SxEP(9@d7=o^Kr(}M(#$hW4uqlj8K^ZQ^g2Benz7C z;z9oFBv-UsRt_&Kx$>eNybRFuS(pRm<<28fdu8m56ft&IX66hm45qO-p@Vh@mVNF@ z?--RJT0XmS8SPN%aWfBt!%hjl^JD21m1k=mc_F%y0(>n z3x^BA4fPKr+0N3d;_2?wt&1gwTL^0`6I6eX0&74|$_V;(zl;wk4obTV(Om1TkC9&8 zPZ1rjKv_iFxgffb<(Jrh7k<`Xw$1+6-_rm3A8vnF4`4(p8p*ISD#G-kmG273xoQGB zl=5G8GYA~W;FEr36pMCRRMbE-SN3gNQ7CCkDLmqFq^j#ebW`<{f)+u)5$*2qUFiqAe z4p>J;1^$a_Zur0csn7r8`wRRJ$ecAYFAZJH@AALIL*H}b`P2M=UOo;oA1?Ge zsjvPIfxkdLGPi#4cgQaX`Kn*#3;uceUq<^}ze9c#$fx=$fAje{|5*Rm>K1H01}9sR zwCCjG3G$QAPBh2A%5xl!MCFE4B_6QJV<$gES7mkc_2?SSifWN1Z4B`^l|rJF_-v(_ zc(X+?Wr*IjTa&fv;g=*X8gw2}a_q)Np)rK!mded7s^|PNl@kaTUd&R2Y3|Vu?!=p#3so%8%=4Iz((R4dsU~*glb(ZN6+xX` zEy;?abN(%xbKL4ry0mnw!?>|p*2YFjk5w{%RYu93N(Z!SJ?>Gj<=V}lF~ zoN_t7)S1!mv=#XC-V|T zPKwoMyT0z$HsiqQ@V0dA#wwy89LLHG967AeJU1!Kb^I`cwyu;~=JSAdU3poi0?O`gMlv)Ps3>#ogjYaZ_6N&+>yBOC>O67q>SPh`5X2_X48Ib z+K(S=KbEQoc`9@zhtdN3`^6cOp56$bNLCQe4O6sa-TG#LWwoo3g_=ju2=}3#Xr)yN zL9vjjWR}Ivp>A`Ra_47bHdwC-_3UstYA?b`dP0h$(ou9u2A21DtOAq{CI_a;-uF=y>Dhx={ znmPCRiOVqsPh^d~)ixEeAM8wBYs9~KXV2YH+Xhh5S9Dww4r|loBFq@e?M0LmQ9pb({0UFm2yjR(aOH8+4*-& ze2xo#c<+a!def1xKOjd{Z8gW0=Si2cjmv-~<*^<6n-B4i#XsMwv_sD*<~)&*uA~7O zX{8xyw!0XnLLFUkSBAu4{+ZA1$7(39jJIUzs`aOfR% zdD%WaGNgfLD$xy|8AH~@QGF|Qx#nz1FvNrXz54U(Rt~uvh6PbK{sJ|m1^u@5)qs}M z_E*pN*w8;Dp2r_qKPvPWj6ae2V`SF(d&mEMF#bFW$BQK4KQA8#nTh5BzE}Pv$ln-$ zi~I%hk(q5|uH<{=uYmlG^%tUlfqX>nMuNlmuZale{f>YA{x|RcF}-YKYiIA^=;VC! zmZz8Z?K?ifA@@SV!tX~!K8cNsf0~e(^ei(gJ0~~qMgGgO@`}o;>en@Inp;}i+B@EL z{xAD)_j%lT$$`BcO`J#LuvAt$+EWyoRd1Q#rP9Pz_e{8~`9S{BcMT2QAvP;67zR14 zbu_cNno?hPWM!K7C9b!8B2>Xt_OfOEaUnIYKAMe|5UuROCdBrgG#=&&b(avQt zr`*aoNzOc1<$2egcl(`&q-JGk&%9>bl9nLNIhmRcQQccVoQ+$n?d^7#@J0qtM?qhZ z@yCC*xLojLg@5;isSW$PIsVw3|NO!8pR0eX{uO4aqcwa#V3=Aa)R$&mC7O9sW2*X0 zif1Re)2_=|vifw_Z3*hU`TBMK>B(&FZGIUcODSrxruwj&`FiF=cio(I%HFzX@{}Q- zIc=7yDLGmNU7X3|dB3{78PUuCl91<-Ax~gLv1orr`~pZX$r?Nihc7O~Z2PgnafC|_F z>;$L*q#hgObO1fT05Aefz%GCp*bVFf_5v&bD}dBH4*5P{KfnPT062kz02jaw@Bq93 zAHWX?07zXS$b|tBKomFxhyjNIao`9b0Z0NzfnxwtPYQB<;3Oao$N;i{93T%U0H**& zKnYL=P6KBEq`oTTYQR}Q9nb*I0h)jopbh8%x_};l)Ukm40$>0b0!Dx_a1k&8E&-;% zWxx!$0+<6xT{p8{HCG5TjE#k*@K3AVSwenWG!c%QsR%<1{ zctZ6>s<~0U_Tq;+|};#(ZzBL&-vwekJ%MTmVfa!Z`e=aKREu}9Di(%KYn9m zH8?cArcbXR*kQvYG5oUw>FrNoRd zgV{BlQhZL%XC2r+^t0K)KCihR;c{JNviF_(zHRxzbv>M9?3a9YP)a*dnH(u_Bj5|vxr9<_|xHf~`-FlmYSc-7B$F4mkj-wVXgGEkm3gaBf%Vvv{ zeP-I`Jnnftj1)_a?NRF}Z_DcGl8?Xpenq7F@@=w(nUalFU5YR#gTxEijXDdnEZ@$Z zNI(_jsn6f`e158V=r8a;AS=y~StDp#zH9vlEwnpgU;PifUsjGFhxW%3a{mh=cO!kz zUf4nYM*J1Nzd^nr$VcM!Ac_BPkbeT?Z#;i}!+vvb+V4&O{g3tEuaaO3Frrw-kMs2Q zvGFHU`g8_T)2~Ogzn2n-IH9nYkKqY%f#~o;Y`=14vZb#cDNUySScqBJtm4kq(3{uh zU+E|?vdiWb$Q12;k4F`KRW?=9Cx+x;@qS0UPjN5IMN~Z@f?W{%Xs(UljeLfoE8N%` zhUbI_-UQ?o?{XDyg6CgdWTHCZ8Mf2#;DP{oOHbWVQo$4yJT2iW>h!Z`JI|^)H%F89 zt5LeQ!&CE$T&MHG`$}mIB(jJ5rY5m58y%sa*36JX-S+k4oQ@79ubCk=x#nJ# zx@*tv`AY8V2TLU}dWrY9hhO)&)VE__WfV<0eI}FE5tXvu(F;X+xcCplX75nLv%ca~ zDD(H^B@&3%`@*cXNu?J3d;KoQl4EV+z8XG+c9z?-;y9MGVz5|)I`thoXcXgiE4?EF zmW1OTIn-HcAD5JJ9*;fm922e@8PS!TydY0BQc9P)Mop)+5Y|5 z_HVAorJ{H@rp~aUchB2NA?@0CTPkey-f0zDRY`yF;aYf8tnv45t-C4DD z-t~DH>zFQWiIt11Om^xrV&Dzly8q!do0*40fi`cK^|H{_L(;xaO@qcHN#|-q;>Jo0 zMYM`OL{(S_m+7|i2vXFsk_5{h!5PdD=NsVCpMQecn)l@6Qt|Z!&8|ymhT57d{*`5l z+#mR=&U&@!rZ`!Mq8NiEAMzezHxWN&HpJn+6!$=*XwIRaFw$9bF1P)oWt7z}0i65I zW&IcG6|~v*cbSDc=`p5HXMDdFa>0D|1!!_7VP@M7#xj=w(sFVjYRsO?^y`+B3*x6C z^WnzOikiZ!E5E3T_<0e}Fe*r=9q|gQ!rskc1=}z0l@|TE{YBy-{*n3fP5;HF|Kbn& zFP5_A1F-`b{rFY-I& zp9lG8zRDN+i{v9KpTGC~EkVBCSNXz!k^DoyL%uu6xB4poe|Y`Ma&X6Kv|`LH*HtAZ zYB!a#=0iD2=_>nP)sPaS;hk#rwlx()OHIJ(WLgK~ ziw?UCU#Ppi!VS7N$@#=a#XsntK}*5!pYr~NVsRqxv_(o!pev!5a~1kS$ol-BX1|e` zu(t5t8vcIkkwCl=2a$TX8}|1kTo0S}_s84c|6%=G>ej_56%9RzlGF$$Bk$}|pa^~3 zA{1gmU*!}aNYM}>S~X_0C3BPz_m+fI9Ja6Ws;d=xD$G@JkoI7U`g0#Mx*Xq#GYdM$ z@)-pim^Al|-X%nt(;BP=Q70s8Vm*{IcF|)*qAblB`43>-=ltJ1+I8ZbctEUAB~}Ve zpogih(hj6Iv+we{{@64xtV4Lr$&#(8au{>)%1*<(xGW^MHQ(9fU7ih7E;nuDuO3W1 zzD+~jysKvXfqAD#`K6%woc#lrn(qy_Kj2&x3=L^B%PP)wiR<{?9U;FoHt+}{@ieSq zB!sLm`&LhpI7`T#ov5O2N@Nss9L7hE@QLylJ-2{Y8~TgPXKd>4rvCoG__3d3?)1@$ zYhZ5bW_HZ=-F_)@eT8|~fazmx$Hyt3_xY`(YR!Uh8t=bTVd1&OXx)8h#GTM_sLGuM zI}m3oCQ}imGB}yOi^0rIN~5qOGfePyjd*4?XVBhHniOj0wbo2T8cKoHYcw7G7!g1G zU8oK_hC82oq>b_ekG=?H^`9~_GQN943OA1YSQV+gekR$ciS#aPWXm9pPYOGF=$rzC z^LbiN7H)U7dGU7h|JUA`fK$D7fBd*ar9uOhq71nuR}?8zNM_PNktvZwlFUO?=1M|Q znaY?D;T-ckg;1I2BDo0XAWoV7Ym@tSd++KB2qv7yMGPOjAQbhLbzPwFJc;M?N}Sq!3_k(~PyU z8kpYwEn@yUo-m&YkGX$}=4a6LG0-cz{+B0^vXe z5D7#9(LfCF2teb~p^pRNfdt?QkO(9JPl0401xN*O03JvK(AZMwGl4818^{52fjl4| zC;$q9BA^&30noT^=$`@QKm||u(00(}qg4(J7b1^R$~U;uaz3<5*IFhBr^02+(dkH+Bp55PDu0g!-? zz$ai5m;$DO8DJLmFmCNPx7mCQ!%__S{LTL}=Wl+ZE!GxeU75X-&dbt_uCu@8gZn+| zhc<$4Jv>ucb!Md>*bKL%B#T|7KER95n8mn>r^Q@zRBJhpGk^mDo%X!o9pnlScA)j% z=n%kgg~Mm<;Y`_AY%*I$WZRw>*q)C-nUm`f<-|xIOB|&sAE1FsNN_Tae60iGI z;UmGajlF}MAx-b4RVVIVrV&cSOuJ2K5nA5_#CEHAi}91P;Ap@V5(%wUJc%v|I0bQ> z9mc~X>-s@Ib%l(B*cl(1s^+weeA4?|cLVwChe8(%C$jDgWyWpCUaCz=JAO$eyf~XS zJZ8hFaznCO%CAG+k2M9H5B+<(%~^DJHMe^Q?I6Nt$Y&HYsmS-Li_eh9h5#KBP+Mq>-P@w^??dc zUk+J1oN>{aT*0KiKmJHO|Bxk>hyJEeJtw(Uk(*o^snZ;n5nGG>9Ti_W3R`g7UR9Wq z=Jd==Tdm11=u~H|S!&HDy_agL?8>tq)^TN`qeOTr>7j{B71r~7K}3*9c+ zO39qELx|7L>728;@0pB%Z8>)JPaf6A82Z~-F>A88+Cee+?Yuis& z_qFuN;0LrO$LxPguvz$2{)c|S|Dt?C^8A-P|6RoS@A%-^ZZofJi;GsV5e*5ednj8^ z_Niy$;&(~f9h@#nKgmqPvy~^^|LU64iNU1Su0ZdE!AJ!j{SpmLJF~5!S|&#+ByYU7 zYrUwFB<`Ww*<>unMVRmytJ>nYpNOj}2??fG5Xg1oyOCM?@Twp60jTA)O6XaEfXD{I z-Vz;Vr!9(BrgSF>J|3$Zgc6_N90c+A8ZA94ubgtMF7Rxxh~Z4Oj+n*p_oNEBY`8lq zUuW_QR(mA)w$0!fKRo^;YgAq6ayKUIp>j)kREFuh8;VdNF#2}%Uq+~;=GO92ZJFO! zdO`cdQLTOq*WrC=57vTy(SB^Qe#!b>MEy=E=@d@PVwPHkupW0QE3MHCE#)o^tto1_ ze1(7i%qPw3siP+=!u5476XVyR^HkffmPh23Cu;jX#`3opi3C`Ga?m^# zj~`e|V-lQweUFE}V`pY}gj(4(%Nlpql^_o=l6tAQ zWnQMr?UD68BhM9<6NkOE`AO_HgvJuNHyI);?q^{G*oOD}XTP%^G(N;k}_3?bd+s2TZs}KDfD&s1m8L^TRsur_*S-*?UeNCjvVO_=bBmil zH%(1SAwCt`RAUm=C&rRT4D@<(@1VW%{o@Dan_Ft-J9p~glMY`z;d1!^huuU$Vyl8Q z=}w#m)_%y1*Y*5xtEpRg?#=Pix1+9W9vpsRp3fdyCPb4!41C`jZJS$EEcj|*Zyr$$ z)0tBdAN6*5#gp{bwB^r(>`jGAE`rm@)2E}G+D!;)aIuL~if=j9E^*;m($aNQoX?HJ zcCY&wc~Ntpu#fz>ZW8UPkF6FTKiX-u&TJkl$P8}bq5E2vNM&=Uz_j%_Rehzh(~z}x z0bMWW=BcR4D(1#!^@YkXmcOn4JpE4n@%;nyPn2heb{Ku@{Id+^pE>Y)QRDvy?4uQM zao}6+H-LTi&-Qo!efxiT{{I&2FVvse^8@UUf_?ta?|&85|4!t!e%h&9JK&_|s}FN-5;yj%PwI-92h+3{P)73=uy5u&IkTCh zum7;m??k1r)`6iL^xH}fN8ZAei&iUJls{Mzb|Y;4Thdt*EH>QMdZ5&4M~uR-Gy4iBz%B9WYVb)Gs zzSmu8@oK^Zw+q&n*QYFb5>}Fzaww!Lj*h;is%zyTv%%54!vWJr3~iPl-yrYW@>5E5 zXIAPU6eI{DsZ6dToqbc|k~k&o9NT8nu-9gn@=H(YY~!a)-0L@3WA3r;T+i2Lx9)v` zF5~7{d~c8QF9Eo;0p~nL=Gdz67ju_^h5IL_@ATh`uU~qyerdsR;r{E-Z=a}g9)C!h zj4@K15M-r`suS3IS&s8EfiXF5Q_w~IQIYqXSoTuf{4g}bp~GmDw2?k(#qwZe;kz>sZ&;X_peLdGB~%&y_xDWy8gulw`zLb! zCi4Ef#g5<8=u9VBC9K>^%o`7JE4@)mBev$+3?;p1vrk))Px8m`*NTpXIea5y?{X@O zuXj~3by){4N%NYLafsAvD-pqWp7Crw=*>sH`6YJs$}0ypINWw*z1Qd=D&@#XuyB;u zVcon#staeaC1=vAG{5ugq}VXm^O2Mu$9v7gjrT{wR@*uhHi|P_W>s+&XiFE{2P@e) z!^Fn%saX~iNA@hn$du)9vyhpP)}feTYLyQj)s?%Ng2humRVh1UB@RSQ@-Rsi<-d7) z!azK}zBj9OYASImPIj#APxOk!_+>MKsDsV#G`kZXM%m<;Q@f1OJVypH@iw3aa{bMQ?)Z8xyA*jLeh}bOMrsQc}*n+Dg2lG%RSCJl~3k<2({4(YP@m8 z=@lc3P`%?ytifv&Ioz@#GsXQ;k=&;=rMBp@B9x4{DAla27I-`=lFx* z53s)qY)gH%zxVIkhp0HzzXQ-G0J=YIo4~foXZu3`fc-B&d4Fmgo`7QYXFuDgfFANW zFq8llumnJRvrs+vrNA;^IY0}n09FD>?{v`90}Q}w0G%ha7FY)`0%$(F9@qeE1egId zZZq^O04uNs*b1-#C?3ZFa02LB&ISAoYzNRdZs>OcJOHXy!wc*J_y82k+6|x@*a85` zZ9(VBpmF=4N4WvQ0NUd#3Wx#d{3%p}S^|&+(C6VGfcC+lacDk(YUH4EiP71XCjnF= zKnYL=P`=k;Kovl__b8rs3_$0Ks{!f&s_}#VmL>Ek-{};f1)#lODE~(n&;w2b`oI|g zQ;?h*Tn7@Uj5XKb&v)#=(wLMz(|CtSclahV2Qt?7_Uz9 z`qsng?&BZdn;w5_dnYp8P&M`0O_w43haDC1emg$pCJ^b=laptv(`u(Q63^W_5J%_! zfm(W`n|q7eMvK@bm-nrBlj*KnP&*yel^a;9y)!FFrhZS>x|d@?%odOOjy7?xkFHxL z+i+s*GwA@{%*!kD)x&O<_j-llt$Nn6_*$!I@wVFxIK>(rDK2ZOxO(lpTwIQ6^i0lQ zt^2>=rx)~x{1sV$Wc@9s{=_wibR|5@1=?Fpd{{}=qLPetYRqE<A7Tch;YCA{(b{;w z-lt#|LvNMn<;2(^aNU`%#psjL+X?<4QDwVcD+jqZ$Bvnt(aG7dTH)qef=Nm{ZYXnn z7Q-Ick%Q~|tMP^f-7WMB`a{=avi`{WTSWbRIyxRn(y}8ebQuiAPG=-w8E2SZ>AI+B ziRHIdnLJ9#e%VpTWcjr8;^oTqN`r>w>8ZxtT;m)hHzJcP(K_pmil;frUsdTep*({5 zV`S#!MyXBS=DTr~(@~~(nU6{4Kl07rx=|{tPsf|-7Rjb4K%0X>(QHq0 zGtr)G^;b1wwzm(yywOs8ESAf_sC3{CHV&8gZm1(y#$czFypa7}p`&h(_p}9@ ziLwOP)Z$z1Q@##7d=}t>{?Pp~S$|~xEu#J=xw@T8X;s|p1@FXasqj<{j;D#((3d~1 zq29@s#V7xw)b9~?oyL~6lv9cl%j?a$W--O4Ya|F~i=*QHKXq46^}^Bex|q=w zffKh(NA*J3uBhrNJsubhejMBwLMrQ)@ifh*>=IS3?(eD?5@kOg+T{7+XYbU8G*!)r z_*d00Po0siK7Pzq_i=NtpxAcX$)b&PH*t^59F-onbgrMNZV1$vu8PPf>U1blB}p@L zTxqZ@xHY7b8{r$aju?0|TWA)uN+64axXnwTb6hQ9c^Njb#+u6^=ynLB5T~@Pwd)RR zi>(Fh0=OL~0zx6{E9j{U2>ZxNl`s^ws2((9z)q~kH2{qI{%=LPp~ zUs2^M%#&^rwALv#R{;c73pfO8o)luyiOfnp*1!4jT}#h_Dq zQ9VQ+%#pcORSQ@#m7c2ze;#rqexKQmDgdFHQJCRbb+m8e&|DtHd^N={?IGWe>K9{n zoY0+r-oIYg{Hr_=^JD#_>;J=VhCHpV3|5`-<^+BAOWKrn6Jk@N) ziGB@t-#B9p@7w20Qxj<=Y#f%gVpQ1#MueZu*wZs?xJ#p(PMyxWmP8{(q$x5rDcMh* zYmn+*G2Yc8o9bZ8mLWJ2&+lscq-P6_9*&5+%qh32@kM4wn)y%t8;{zW6@T*fZlf=_ zWMKYUNq(s12p&&RVCnH?l&xtdI4N!lW~7iMYB}d?wCDI-UnBj(QTM*VxQ~T?jICj1 zfksq_cf4N$zI&5F$Ila@Df_l>^qW|9(sMb}U__XH{eI)sjx}A@Zt)$H*y#KAVd5(S zG3_#{k$&0gIhpwTVp;8d^NET`k$=$Ucfqs4BWMRQ#w#HjXT}1s(vm_Bpz2ZqOB{us*ef6CAjTs&U^fzkk8X@GjDAMl4(~MLto}B#%s^?w(%|^*UgT17n0Xba%K*-*8OzsvI-5hOiEj# zoApM=8e*@f$eNg6XV`0T+$mjEjM7(W-OlRrKCGrWdZo(#SZsNJL%{SZxoU3dj6aB> zEL{K4eByib^S_*I`e*0wOg45oMcG7<)~M&ESl?7IYEZW{jXJ$5T8#$J-eFNHDs4WC zNfGz5N@SW64pXb|b?}U-JIhGN;mvMGi(9(0S>H=duUzb2KE~cUK3VLJZBlEQ-FCM^ z%}Q@Se68y_qRWfkhKymi{Z`|?gkj02b*Z+Nw3Q~#+sA(0cG6Wsjy6!6c3qL+vXA#N z&d1c;*)DR%cvSdj-1)%F#!=Bnr?;2w4BcE{v9Dwl>u|E2Gbhp1y05PP*YIm&bZdVO WzqU}amVd4y^uKo5AQ$!jsr?VuxB!^| literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Total-capítulo.png b/Resources/Iconos/Generales/16x16/Total-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f721ba5d69dd79d30de3eda3493a778b2be448f GIT binary patch literal 519 zcmV+i0{H!jP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpeMv+?RCwB?lFuu{aTv#6pRZ*cmWzW(If%nI5?=4BP%;-YT-Hw2V9)ysFobeNpkS5Eu_hBg-I;F8~Z*k+uE0zm3KY$e0rYe z_3rb0J}MaS4FVyo8uEDk8~h;=K?MUo86K>(6jnCUWkG%g6hMl~^-5sc8JI87p>6!Hc^eME`g?Cd$udz z7@l;JTy5iJ*~!CPBQtKIGj5szv_kg=`wcZ!X+%sqTODjoxd7;$jX#vA5` zL3>jLn`89=3@kmP-*Y`4A#QnvD&rByWthYLc+q9m0t@{xx(Vw?^a5@mk_YUq&6nKv z*)uHa`D1r(IR70>Mb=HS;r>zo&u~dVS;HVIoBWVcN+?5L0|1@|6mpG8hi3o)002ov JPDHLkV1gWH(z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QprAb6VRCwBql09z|K@>&L1dD_sP|y(3p%hRiAVq0_ zpAac&BSe8nVbU5GZU~b9fFmUZLNrvQrvuU$AxmHh!9qwRK0<_KQ{Yv0X4W&0VjZ(1 z?8LX(nccbPzIks|ty);Yp6L_FRYuo`C)#97?oAEL%* zUheRo`wtk)r~ho9VfI2hGdqXZ8ZimZ93rW~n*`fQGBYdy{{YR%adCW~a}zd8wg#~p zZ#9xye5yISeviFR-vJt>SM2ry`E=jy;*IW^lPo#S_E+a_FxS`sco;PCD1EXJXLs&e zoK6sDxLJQ1G_X`&pj71xtf)RhrDOg>e4qnY)ze1f2=}+PHll9>< zyPQ2f?6>*VNod6>=Pyk$52%? x6(5D=_sjq%R*;vP*%Y8}4*r8tl{W+Y9RPPs?QT}qs*V5v002ovPDHLkV1nyG<7of@ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Undo.png b/Resources/Iconos/Generales/16x16/Undo.png new file mode 100644 index 0000000000000000000000000000000000000000..114cf33d69fbeccdeb1df10c057c161b2527f8f8 GIT binary patch literal 682 zcmV;b0#*HqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;AW1|)RCwB?Q%!3VQ4~FIW-^_m`7o8L87LKM8~o_U z!i5OZwIYbr6m6*p-SrQ+5NQw!?p(PMQINDk?51uMH@a$3D3mlQu~s8Zn%GuNNYXbm z$-MVmB{qiCMbGx$bM8IwolAreI1Cg3AcQm(B5^S!5k6rUEXcT!i9p%wQy1oAiRi1* zbCud)3f^)JZ7^V*rr|P6X7Ev%a3oh>F_)7yw8B5MD55Aq0uW zg?ehlezLw!XR^7f6CiN8WH1g`6@gUBB9>LXnTR|KHdy$uv^^HaaTwjQvKlLeY%UX8 zw(%pogWP7);+&OL&ExOv8j_MpQyQHdy9Z#rz5xKFzZGsREf(tJ+}1YIsnyT^?*888 zxlrd`ap%EqCIQnF0C2I!s|zqrh~`oWE!)WF4P;WWR4MNnd^gjZ1|ST=pH{5B3geA$ zRu@=FnZGWRy zI_3a~BrBvj2LKRoW&jf?nt-Hu!vi;7Kx^xJ^lA1&5de`xZ=VORAS!jhbp}1RXS0fJ1=N-P} zo(o@djspN%MY%E8Lh}6Fe69!F=Lh>;f64oC;581vZ#h5+0U-p)VbA%`0LVM?El<3U QhX4Qo07*qoM6N<$fz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Gf6~2RCwB)lg&y4F%*T*z%0c_aNz?KT=|0_Sy;MI z&_xx*Zi+%JtsOydrP3#GpimIOmG99vaPMolNSaJ;#ziJGozB?N353Aqe@k*1;J-a!az5xLIWx=4+D&43wuyfSM z+8XD*$l)U2RZC(7Uvzl0yP39N zY7lhV34sxq6aU>nDB!NkKqgC$C?l8?FP;Gz4T>Y15CJdmMS|1g>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Qb|NXRCwB)lRroTQ5e8~nvg?*O^&WLw6ztAL*dfD zL8pX>8!W672^xZ;A?K5WmRy=`i@?pvscg#zr^bes2CqBsT@7}fr{`Hd_~7xq@B4kf z2k!+kYFY*qCR>FNpvYVKKUE9M#IQ7U(Tly6BPD1bKEBmhUVrgzj&HVkes7=)4dv<@ zfRNoROECan2!JfbC|8`C5WrG2MY+<0H0~B$4aSeIAv88JACxPvM5d!|06?%6M=ior zz2h-A41`gObI^*>S$r4<0OYf&k?MvCdKVJg2kc%(ya52`YTXlXEG4 z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;B}qgL<~Ue+U3l=aag~W8>_uM!FSGMcRN7YDD>oW=K_f| zQf6wV-4^Qt-{;JNcQ~_;+@Ba6G4|gsqwrrqhmo9Ks5suU7b|#O4SJKNKC@}Sx@;tr z;mo0@3st;&yNt(AYS6R8<2Or4Zwhdd`ZPznwGK_fvMgw76QP){rt;m>{{$M>M|-`= z{Bh|lA`w?$Sr$w~1G5V~8$WuZjDfZQMT1l53;T!!%&Z36wlSLP0F#4IEYg`C>MU;v z@T?I~lV-_vzJR5JjFRe{YBQpVU_|!0t%WK+vx*H zfTazR0%5(&pG{~}e*y2Wq_=1zh0{&vvxmt6O9xC2CJ*I^ZcOTS2(q4nQ`;|x`qZZcyz6Y;nY(LX!;eJ2046X?fF+m-d-5*il0@~JZ1oAm1ON~u#{ta$9sr1D V4d{?bS6l!9002ovPDHLkV1mU?B_{v? literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Zoom-In.png b/Resources/Iconos/Generales/16x16/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..812c814e1d8a966fee1bf06fba54752b8022b2d2 GIT binary patch literal 862 zcmV-k1EKthP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;)Ja4^RCwByQe8+>aTNdk@4cJb+}!5;z_yvQ<`*g| zCT67-(L+HoGOrz} ztu$p6m}Hb%ODCqK(AmXV%2a)ddCkvPGZN{5&*NaJ?E{Pjt7ct>&U*BCiKK0Yl2e9Uqn47(NmL-100`^Y(rg$R*E}U* z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;#z{m$RCwByl3z$uaU8|Z@7_Dz=5(7*%{Kqc5~pBj zl!%4WTYo?#5~8;V(x+asXYsWNdaPcIdMMH;3(S9SX{KhH*KOM7oObR|4u|0Hkk+=2Tse#y8r`Est#u{s0 zxmC^Rjci(ui7h@+q{}v&O134rj#H&fc<1fH0fX~R7fW-^xlb=NR2yuDG!hOI@T-7t z69{fIFyv$qQ?@SC|2F zWl32@4Yxo3eT_nCjk(m!%=!r$?|nSb4?oDGySEwnHmgyu&#p@ zSCTtO1f;d+?nzff$3>NNEwDua3V$*6cXoH4iMKR*vA~o(A$2gulq@-b7tfrfJHKJv%DbFsOvg@rusBpwPTu( zpifALJrJ*VuSc}UY*m-jGYnQ)jC5^Ya;C5+*)x6(RqjC(-43R{GP!!fDHih-flK>imRw^9@AepG2~@1>~VyJVCV|J z9CPpdgm&&wxYu*3u0_ZtqR3*{i$_0000U%yxeg5-L74Hahxq?^mqg`ElaILuTf~t?crW_x3(Y2>3AL!+aCw1+(mJDh?d@ z@Q~qfvn*@G;zri#jQnvm2|qqOV2(TcBlbhnhO|9wHai?6jO&;?E}S_41Qr&?!kP>Q Z3^B)Cj$C7A`v`O*gQu&X%Q~loCIA_8WwQVP literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/db-Previous-2.png b/Resources/Iconos/Generales/16x16/db-Previous-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f673f28204714e5ea1a8e2d724e68f7351f3d1e3 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs-5fU;uunKE9uYw|MtwP4V{fn4Obc5+}wEHL{xsXzo}QSV#kO72V0q+R32RT=+J)_ z{@PE67?%A!#B0PPxa{XacD6Qlc@Gny$YFLij(?4}8N_m$*sXXZ>}#z*#-Bei=i%Y* zeja(d2@hL~C+kS)&$T}J;Q?!%_ygV}ApXpMcNgfW&YPWbP~%8h^QI*=d6QU`^(>Da goH^5jv4N2xL)QL4#K$~EphFovUHx3vIVCg!0E;F@K(bUAi zy2i{hB<9Ee2ZtCB#r^oey!#mof9<0~40jo3JmWU+;61`WW0rhPLPEud#zqtI119x9 z4lo?F-ynUU>2w3LEL+d~eRF@TPft1b;o(vDHvS{K8W>M5E1s+)p+DF9`7;uunK>&Rq9zC#WoF83#K^#%4aG#zYG);Ppy;S|iN&TvxDf~{}riKB}9a|E7T zzpC3d;ey_UWla+&pE>=H&sz^_ShBzO z5;uJG=DqNwrxqL+7ae3a1IaMKfNq)K z&zu6S43jjqeu=RyC~MXc;PV$?JF!(NZ;PV_&x1D$AI;ovADn$4nc-JK46n$={7j%H O7(8A5T-G@yGywo;i+6Sa literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/About.png b/Resources/Iconos/Generales/24x24/About.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0ba3e2c80b8a094ddf1e7f444273badada7c91 GIT binary patch literal 1054 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